rip-lang 3.13.32 → 3.13.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/bin/rip +5 -5
- package/docs/RIP-LANG.md +5 -5
- package/docs/dist/rip.js +35 -12
- package/docs/dist/rip.min.js +193 -193
- package/docs/dist/rip.min.js.br +0 -0
- package/package.json +1 -1
- package/src/components.js +33 -11
package/docs/dist/rip.min.js
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
(()=>{var{defineProperty:h1,getOwnPropertyNames:i2,getOwnPropertyDescriptor:n2}=Object,p2=Object.prototype.hasOwnProperty;var s1=new WeakMap,d2=($)=>{var W=s1.get($),F;if(W)return W;if(W=h1({},"__esModule",{value:!0}),$&&typeof $==="object"||typeof $==="function")i2($).map((U)=>!p2.call(W,U)&&h1(W,U,{get:()=>$[U],enumerable:!(F=n2($,U))||F.enumerable}));return s1.set($,W),W};var t1=($,W)=>{for(var F in W)h1($,F,{get:W[F],enumerable:!0,configurable:!0,set:(U)=>W[F]=()=>U})};var n3={};t1(n3,{rip:()=>q2,processRipScripts:()=>H2,parser:()=>s,importRip:()=>t,getStdlibCode:()=>Z1,getReactiveRuntime:()=>R1,getComponentRuntime:()=>w1,formatSExpr:()=>x,compileToJS:()=>d,compile:()=>P1,VERSION:()=>M2,Lexer:()=>p,Compiler:()=>A1,CodeGenerator:()=>y,BUILD_DATE:()=>D2});function f2($){let W=$.prototype;W.rewriteTypes=function(){let F=this.tokens,U=(u,f,Y)=>{let _=[u,f];if(_.pre=0,_.data=null,_.loc=Y?.loc??{r:0,c:0,n:0},_.spaced=!1,_.newLine=!1,_.generated=!0,Y)_.origin=Y;return _};this.scanTokens((u,f,Y)=>{let _=u[0];if(_==="IDENTIFIER"){let A=Y[f+1];if(A&&A[0]==="COMPARE"&&A[1]==="<"&&!A.spaced){let J=Y[f-1]?.[0]==="DEF",w=r2(Y,f+1);if(w){let z=!J&&Y[f+1+w.length]?.[0]==="TYPE_ALIAS";if(J||z){if(!u.data)u.data={};if(u.data.typeParams=W1(w),Y.splice(f+1,w.length),J&&Y[f+1]?.[0]==="("){Y[f+1][0]="CALL_START";let X=1,Z=f+2;while(Z<Y.length&&X>0){if(Y[Z][0]==="("||Y[Z][0]==="CALL_START")X++;if(Y[Z][0]===")"||Y[Z][0]==="CALL_END")X--;if(X===0)Y[Z][0]="CALL_END";Z++}}}}}}if(_==="TYPE_ANNOTATION"){let A=Y[f-1];if(!A)return 1;let J=e1(Y,f+1),w=W1(J),z=A,X="type";if(A[0]==="CALL_END"||A[0]===")"){let K=1,R=f-2;while(R>=0&&K>0){let Q=Y[R][0];if(Q==="CALL_END"||Q===")")K++;if(Q==="CALL_START"||Q==="(")K--;R--}if(R>=0)z=Y[R];X="returnType"}else if(A[0]==="PARAM_END"){let K=f+1+J.length,R=Y[K];if(R&&(R[0]==="->"||R[0]==="=>"))z=R;X="returnType"}else if(A[0]==="IDENTIFIER"&&f>=2&&Y[f-2]?.[0]==="DEF")X="returnType";if(!z.data)z.data={};z.data[X]=w;let Z=1+J.length;return Y.splice(f,Z),0}if(_==="TYPE_ALIAS"){let A=Y[f-1];if(!A)return 1;let J=A[1],w=f>=2&&Y[f-2]?.[0]==="EXPORT",z=w?f-2:f-1,X=Y[f+1],Z=(R)=>{let Q=U("TYPE_DECL",J,A);if(Q.data={name:J,typeText:R,exported:w},A.data?.typeParams)Q.data.typeParams=A.data.typeParams;return Q};if(X&&X[0]==="IDENTIFIER"&&X[1]==="type"&&Y[f+2]?.[0]==="INDENT"){let R=V1(Y,f+2);return Y.splice(z,R-z+1,Z(u2(Y,f+2))),0}if(X&&(X[0]==="TERMINATOR"||X[0]==="INDENT")){let R=o2(Y,f+1);if(R)return Y.splice(z,R.endIdx-z+1,Z(R.typeText)),0}let K=e1(Y,f+1);return Y.splice(z,f+1+K.length-z,Z(W1(K))),0}if(_==="INTERFACE"){let A=f>=1&&Y[f-1]?.[0]==="EXPORT",J=f+1,w=Y[J];if(!w)return 1;let z=w[1],X=null,Z=J+1;if(Y[Z]?.[0]==="EXTENDS")X=Y[Z+1]?.[1],Z=Z+2;if(Y[Z]?.[0]==="INDENT"){let K=u2(Y,Z),R=V1(Y,Z),Q=U("TYPE_DECL",z,w);Q.data={name:z,kind:"interface",extends:X,typeText:K,exported:A};let M=A?f-1:f,H=R-M+1;return Y.splice(M,H,Q),0}return 1}return 1})}}function e1($,W){let F=[],U=0;while(W<$.length){let u=$[W],f=u[0],Y=f==="("||f==="["||f==="CALL_START"||f==="PARAM_START"||f==="INDEX_START"||f==="COMPARE"&&u[1]==="<",_=f===")"||f==="]"||f==="CALL_END"||f==="PARAM_END"||f==="INDEX_END"||f==="COMPARE"&&u[1]===">";if(f==="SHIFT"&&u[1]===">>"&&U>=2){U-=2,F.push(u),W++;continue}if(Y){U++,F.push(u),W++;continue}if(_){if(U>0){U--,F.push(u),W++;continue}break}if(U===0){if(f==="="||f==="REACTIVE_ASSIGN"||f==="COMPUTED_ASSIGN"||f==="READONLY_ASSIGN"||f==="EFFECT"||f==="TERMINATOR"||f==="INDENT"||f==="OUTDENT"||f==="->"||f===",")break}F.push(u),W++}return F}function W1($){if($.length===0)return"";if($[0]?.[0]==="=>")$.unshift(["","()"]);let W=$.map((F)=>F[1]).join(" ").replace(/\s+/g," ").trim();return W=W.replace(/\s*<\s*/g,"<").replace(/\s*>\s*/g,">").replace(/\s*\[\s*/g,"[").replace(/\s*\]\s*/g,"]").replace(/\s*\(\s*/g,"(").replace(/\s*\)\s*/g,")").replace(/\s*,\s*/g,", ").replace(/\s*=>\s*/g," => ").replace(/ :: /g,": ").replace(/:: /g,": "),W}function r2($,W){if(W>=$.length)return null;let F=$[W];if(F[0]!=="COMPARE"||F[1]!=="<")return null;let U=[F],u=1,f=W+1;while(f<$.length&&u>0){let Y=$[f];if(U.push(Y),Y[0]==="COMPARE"&&Y[1]==="<")u++;else if(Y[0]==="COMPARE"&&Y[1]===">")u--;f++}return u===0?U:null}function u2($,W){let F=[],U=W+1,u=1;while(U<$.length&&u>0){let f=$[U];if(f[0]==="INDENT"){u++,U++;continue}if(f[0]==="OUTDENT"){if(u--,u===0)break;U++;continue}if(f[0]==="TERMINATOR"){U++;continue}if(u===1&&(f[0]==="PROPERTY"||f[0]==="IDENTIFIER")){let Y=f[1],_=!1,A=!1;if(U++,Y==="readonly"&&($[U]?.[0]==="PROPERTY"||$[U]?.[0]==="IDENTIFIER")){if(A=!0,Y=$[U][1],$[U].data?.predicate)_=!0;U++}if(f.data?.predicate)_=!0;if($[U]?.[1]==="?"&&!$[U]?.spaced)_=!0,U++;if($[U]?.[1]===":"||$[U]?.[0]==="TYPE_ANNOTATION")U++;let J=[],w=0;while(U<$.length){let K=$[U];if(K[0]==="INDENT"){w++,U++;continue}if(K[0]==="OUTDENT"){if(w>0){w--,U++;continue}break}if(K[0]==="TERMINATOR"&&w===0)break;J.push(K),U++}let z=W1(J),X=A?"readonly ":"",Z=_?"?":"";F.push(`${X}${Y}${Z}: ${z}`)}else U++}return"{ "+F.join("; ")+" }"}function V1($,W){let F=0;for(let U=W;U<$.length;U++){if($[U][0]==="INDENT")F++;if($[U][0]==="OUTDENT"){if(F--,F===0)return U}}return $.length-1}function o2($,W){let F=W;if($[F]?.[0]==="TERMINATOR")F++;if($[F]?.[0]!=="INDENT")return null;let U=F;F++;while(F<$.length&&$[F][0]==="TERMINATOR")F++;if(!$[F]||$[F][1]!=="|")return null;let u=[],f=1;F=U+1;while(F<$.length&&f>0){let _=$[F];if(_[0]==="INDENT"){f++,F++;continue}if(_[0]==="OUTDENT"){if(f--,f===0)break;F++;continue}if(_[0]==="TERMINATOR"){F++;continue}if(_[1]==="|"&&f===1){F++;let A=[];while(F<$.length){let J=$[F];if(J[0]==="TERMINATOR"||J[0]==="OUTDENT"||J[1]==="|"&&f===1)break;A.push(J),F++}if(A.length>0)u.push(W1(A));continue}F++}if(u.length===0)return null;let Y=V1($,U);return{typeText:u.join(" | "),endIdx:Y}}function C1($,W=null){let F=[],U=0,u=" ",f=()=>u.repeat(U),Y=!1,_=!1,A=!1,J=(Z,K,R)=>{if(K.startsWith("{ ")&&K.endsWith(" }")){let Q=K.slice(2,-2).split("; ").filter((M)=>M.trim());if(Q.length>0){F.push(`${f()}${Z}{`),U++;for(let M of Q)F.push(`${f()}${M};`);U--,F.push(`${f()}}${R}`);return}}F.push(`${f()}${Z}${K}${R}`)},w=(Z,K)=>{let R=[],Q=K,M=Z[Q]?.[0];if(M!=="CALL_START"&&M!=="PARAM_START")return{params:R,endIdx:Q};let H=M==="CALL_START"?"CALL_END":"PARAM_END";Q++;let O=0;while(Q<Z.length&&!(Z[Q][0]===H&&O===0)){let q=Z[Q];if(q[1]===","&&O===0){Q++;continue}if(q[0]==="{"||q[0]==="["||q[0]==="CALL_START"||q[0]==="PARAM_START"||q[0]==="INDEX_START")O++;if(q[0]==="}"||q[0]==="]"||q[0]==="CALL_END"||q[0]==="PARAM_END"||q[0]==="INDEX_END"){O--,Q++;continue}if(q[0]==="@"){if(Q++,Z[Q]?.[0]==="PROPERTY"||Z[Q]?.[0]==="IDENTIFIER"){let E=Z[Q][1],I=Z[Q].data?.type;R.push(I?`${E}: ${g(I)}`:E),Q++}continue}if(q[0]==="SPREAD"||q[1]==="..."){if(Q++,Z[Q]?.[0]==="IDENTIFIER"){let E=Z[Q][1],I=Z[Q].data?.type;R.push(I?`...${E}: ${g(I)}`:`...${E}: any[]`),Q++}continue}if(q[0]==="{"){let E="{";Q++;let I=1;while(Q<Z.length&&I>0){if(Z[Q][0]==="{")I++;if(Z[Q][0]==="}")I--;if(I>0)E+=Z[Q][1]+(Z[Q+1]?.[0]==="}"?"":", ");Q++}E+="}";let D=Z[Q-1]?.data?.type;R.push(D?`${E}: ${g(D)}`:E);continue}if(q[0]==="IDENTIFIER"){let E=q[1],I=q.data?.type,D=!1;if(Z[Q+1]?.[0]==="=")D=!0;if(I)R.push(`${E}${D?"?":""}: ${g(I)}`);else R.push(E);if(Q++,D){Q++;let G=0;while(Q<Z.length){let P=Z[Q];if(P[0]==="("||P[0]==="["||P[0]==="{")G++;if(P[0]===")"||P[0]==="]"||P[0]==="}")G--;if(G===0&&(P[1]===","||P[0]==="CALL_END"))break;Q++}}continue}Q++}return{params:R,endIdx:Q}};for(let Z=0;Z<$.length;Z++){let K=$[Z],R=K[0],Q=!1;if(R==="EXPORT"){if(Q=!0,Z++,Z>=$.length)break;if(K=$[Z],R=K[0],R==="DEFAULT"){if(Z++,Z>=$.length)break;if(K=$[Z],R=K[0],R==="IDENTIFIER")F.push(`${f()}export default ${K[1]};`);continue}}if(R==="IMPORT"){let M=[],H=Z+1;while(H<$.length&&$[H][0]!=="TERMINATOR")M.push($[H]),H++;let O="import "+M.map((q)=>q[1]).join(" ");O=O.replace(/\s+/g," ").replace(/\s*,\s*/g,", ").replace(/\{\s*/g,"{ ").replace(/\s*\}/g," }").trim(),F.push(`${f()}${O};`),Z=H;continue}if(R==="TYPE_DECL"){let M=K.data;if(!M)continue;let H=Q||M.exported?"export ":"",O=M.typeParams||"";if(M.kind==="interface"){let q=M.extends?` extends ${M.extends}`:"";J(`${H}interface ${M.name}${O}${q} `,M.typeText||"{}","")}else{let q=g(M.typeText||"");J(`${H}type ${M.name}${O} = `,q,";")}continue}if(R==="ENUM"){let M=Q?"export ":"",H=$[Z+1];if(!H)continue;let O=H[1],q=Z+2;if($[q]?.[0]==="INDENT"){F.push(`${f()}${M}enum ${O} {`),U++,q++;let E=[];while(q<$.length&&$[q][0]!=="OUTDENT"){if($[q][0]==="TERMINATOR"){q++;continue}if($[q][0]==="IDENTIFIER"){let I=$[q][1];if(q++,$[q]?.[1]==="="){q++;let D=$[q]?.[1];E.push(`${I} = ${D}`),q++}else E.push(I)}else q++}for(let I=0;I<E.length;I++){let D=I<E.length-1?",":"";F.push(`${f()}${E[I]}${D}`)}U--,F.push(`${f()}}`)}continue}if(R==="CLASS"){let M=Q?"export ":"",H=$[Z+1];if(!H)continue;let O=H[1],q="",E=Z+2;if($[E]?.[0]==="EXTENDS")q=` extends ${$[E+1]?.[1]||""}`,E+=2;if($[E]?.[0]==="INDENT"){let I=!1,D=E+1;while(D<$.length&&$[D][0]!=="OUTDENT"){if($[D].data?.type||$[D].data?.returnType){I=!0;break}D++}if(I)F.push(`${f()}${M}declare class ${O}${q} {`),Y=!0,U++}continue}if(R==="DEF"){let M=$[Z+1];if(!M)continue;let H=M[1],O=M.data?.returnType,q=M.data?.typeParams||"",{params:E,endIdx:I}=w($,Z+2);if(O||E.some((D)=>D.includes(":"))){let D=Q?"export ":"",G=Y?"":Q?"":"declare ",P=O?`: ${g(O)}`:"",B=E.join(", ");if(Y)F.push(`${f()}${H}${q}(${B})${P};`);else F.push(`${f()}${D}${G}function ${H}${q}(${B})${P};`)}continue}if(R==="{"&&Y){let M=Z+1,H=1;while(M<$.length&&H>0){let O=$[M];if(O[0]==="{"){H++,M++;continue}if(O[0]==="}"){H--,M++;continue}if(O[0]==="TERMINATOR"){M++;continue}if(O[0]==="PROPERTY"&&H===1){let q=O[1],E=O.data?.returnType;if(M++,$[M]?.[1]===":")M++;let I=[];if($[M]?.[0]==="PARAM_START"){let D=w($,M);I=D.params,M=D.endIdx+1}if($[M]?.[0]==="->"||$[M]?.[0]==="=>")M++;if($[M]?.[0]==="INDENT"){let D=1;M++;while(M<$.length&&D>0){if($[M][0]==="INDENT")D++;if($[M][0]==="OUTDENT")D--;M++}}if(E||I.some((D)=>D.includes(":"))){let D=E?`: ${g(E)}`:"",G=I.join(", ");F.push(`${f()}${q}(${G})${D};`)}continue}M++}Z=M-1;continue}if(R==="INDENT")continue;if(R==="OUTDENT"){if(Y)U--,F.push(`${f()}}`),Y=!1;continue}if(R==="IDENTIFIER"&&!Y&&$[Z+1]?.[0]==="="&&($[Z+2]?.[0]==="PARAM_START"||$[Z+2]?.[0]==="(")){let M=K[1],H=Z+2,{params:O}=w($,H),q=H,E=0;while(q<$.length){if($[q][0]==="PARAM_START"||$[q][0]==="(")E++;if($[q][0]==="PARAM_END"||$[q][0]===")")E--;if(E===0&&($[q][0]==="->"||$[q][0]==="=>"))break;q++}let I=$[q]?.data?.returnType;if(I||O.some((D)=>D.includes(":"))){let D=Q?"export ":"",G=Q?"":"declare ",P=I?`: ${g(I)}`:"",B=O.join(", ");F.push(`${f()}${D}${G}function ${M}(${B})${P};`);continue}}if(R==="IDENTIFIER"&&K.data?.type){let M=K[1],H=g(K.data.type),O=$[Z+1];if(O){let q=Q?"export ":"",E=Q?"":"declare ";if(O[0]==="READONLY_ASSIGN")F.push(`${f()}${q}${E}const ${M}: ${H};`);else if(O[0]==="REACTIVE_ASSIGN")_=!0,F.push(`${f()}${q}${E}const ${M}: Signal<${H}>;`);else if(O[0]==="COMPUTED_ASSIGN")A=!0,F.push(`${f()}${q}${E}const ${M}: Computed<${H}>;`);else if(O[0]==="EFFECT")F.push(`${f()}${q}${E}const ${M}: () => void;`);else if(O[0]==="="){let I=Z+2;if($[I]?.[0]==="PARAM_START"){let G=1,P=I+1;while(P<$.length&&G>0){if($[P][0]==="PARAM_START")G++;if($[P][0]==="PARAM_END")G--;P++}I=P}let D=$[I];if(D&&(D[0]==="->"||D[0]==="=>")&&D.data?.returnType){let G=g(D.data.returnType),{params:P}=w($,Z+2),B=P.join(", ");F.push(`${f()}${q}${E}function ${M}(${B}): ${G};`)}else if(Y)F.push(`${f()}${M}: ${H};`);else F.push(`${f()}${q}let ${M}: ${H};`)}else if(Y)F.push(`${f()}${M}: ${H};`)}else if(Y)F.push(`${f()}${M}: ${H};`)}}let z=new Set;if(W){if(j1(W,F,f,U,z),z.size>0)for(let Z=F.length-1;Z>=0;Z--){let K=F[Z].match(/(?:declare |export )*(?:const|let) (\w+)/);if(K&&z.has(K[1]))F.splice(Z,1)}}if(F.length===0)return null;let X=[];if(_)X.push("interface Signal<T> { value: T; read(): T; lock(): Signal<T>; free(): Signal<T>; kill(): T; }");if(A)X.push("interface Computed<T> { readonly value: T; read(): T; lock(): Computed<T>; free(): Computed<T>; kill(): T; }");if(X.length>0)X.push("");return X.concat(F).join(`
|
|
1
|
+
(()=>{var{defineProperty:V1,getOwnPropertyNames:i2,getOwnPropertyDescriptor:n2}=Object,p2=Object.prototype.hasOwnProperty;var s1=new WeakMap,d2=($)=>{var U=s1.get($),W;if(U)return U;if(U=V1({},"__esModule",{value:!0}),$&&typeof $==="object"||typeof $==="function")i2($).map((F)=>!p2.call(U,F)&&V1(U,F,{get:()=>$[F],enumerable:!(W=n2($,F))||W.enumerable}));return s1.set($,U),U};var t1=($,U)=>{for(var W in U)V1($,W,{get:U[W],enumerable:!0,configurable:!0,set:(F)=>U[W]=()=>F})};var n3={};t1(n3,{rip:()=>q2,processRipScripts:()=>H2,parser:()=>s,importRip:()=>t,getStdlibCode:()=>w1,getReactiveRuntime:()=>J1,getComponentRuntime:()=>Q1,formatSExpr:()=>k,compileToJS:()=>r,compile:()=>I1,VERSION:()=>D2,Lexer:()=>d,Compiler:()=>R1,CodeGenerator:()=>b,BUILD_DATE:()=>M2});function f2($){let U=$.prototype;U.rewriteTypes=function(){let W=this.tokens,F=(f,u,Y)=>{let A=[f,u];if(A.pre=0,A.data=null,A.loc=Y?.loc??{r:0,c:0,n:0},A.spaced=!1,A.newLine=!1,A.generated=!0,Y)A.origin=Y;return A};this.scanTokens((f,u,Y)=>{let A=f[0];if(A==="IDENTIFIER"){let _=Y[u+1];if(_&&_[0]==="COMPARE"&&_[1]==="<"&&!_.spaced){let R=Y[u-1]?.[0]==="DEF",w=r2(Y,u+1);if(w){let z=!R&&Y[u+1+w.length]?.[0]==="TYPE_ALIAS";if(R||z){if(!f.data)f.data={};if(f.data.typeParams=Y1(w),Y.splice(u+1,w.length),R&&Y[u+1]?.[0]==="("){Y[u+1][0]="CALL_START";let X=1,K=u+2;while(K<Y.length&&X>0){if(Y[K][0]==="("||Y[K][0]==="CALL_START")X++;if(Y[K][0]===")"||Y[K][0]==="CALL_END")X--;if(X===0)Y[K][0]="CALL_END";K++}}}}}}if(A==="TYPE_ANNOTATION"){let _=Y[u-1];if(!_)return 1;let R=e1(Y,u+1),w=Y1(R),z=_,X="type";if(_[0]==="CALL_END"||_[0]===")"){let D=1,Z=u-2;while(Z>=0&&D>0){let J=Y[Z][0];if(J==="CALL_END"||J===")")D++;if(J==="CALL_START"||J==="(")D--;Z--}if(Z>=0)z=Y[Z];X="returnType"}else if(_[0]==="PARAM_END"){let D=u+1+R.length,Z=Y[D];if(Z&&(Z[0]==="->"||Z[0]==="=>"))z=Z;X="returnType"}else if(_[0]==="IDENTIFIER"&&u>=2&&Y[u-2]?.[0]==="DEF")X="returnType";if(!z.data)z.data={};z.data[X]=w;let K=1+R.length;return Y.splice(u,K),0}if(A==="TYPE_ALIAS"){let _=Y[u-1];if(!_)return 1;let R=_[1],w=u>=2&&Y[u-2]?.[0]==="EXPORT",z=w?u-2:u-1,X=Y[u+1],K=(Z)=>{let J=F("TYPE_DECL",R,_);if(J.data={name:R,typeText:Z,exported:w},_.data?.typeParams)J.data.typeParams=_.data.typeParams;return J};if(X&&X[0]==="IDENTIFIER"&&X[1]==="type"&&Y[u+2]?.[0]==="INDENT"){let Z=j1(Y,u+2);return Y.splice(z,Z-z+1,K(u2(Y,u+2))),0}if(X&&(X[0]==="TERMINATOR"||X[0]==="INDENT")){let Z=o2(Y,u+1);if(Z)return Y.splice(z,Z.endIdx-z+1,K(Z.typeText)),0}let D=e1(Y,u+1);return Y.splice(z,u+1+D.length-z,K(Y1(D))),0}if(A==="INTERFACE"){let _=u>=1&&Y[u-1]?.[0]==="EXPORT",R=u+1,w=Y[R];if(!w)return 1;let z=w[1],X=null,K=R+1;if(Y[K]?.[0]==="EXTENDS")X=Y[K+1]?.[1],K=K+2;if(Y[K]?.[0]==="INDENT"){let D=u2(Y,K),Z=j1(Y,K),J=F("TYPE_DECL",z,w);J.data={name:z,kind:"interface",extends:X,typeText:D,exported:_};let Q=_?u-1:u,H=Z-Q+1;return Y.splice(Q,H,J),0}return 1}return 1})}}function e1($,U){let W=[],F=0;while(U<$.length){let f=$[U],u=f[0],Y=u==="("||u==="["||u==="CALL_START"||u==="PARAM_START"||u==="INDEX_START"||u==="COMPARE"&&f[1]==="<",A=u===")"||u==="]"||u==="CALL_END"||u==="PARAM_END"||u==="INDEX_END"||u==="COMPARE"&&f[1]===">";if(u==="SHIFT"&&f[1]===">>"&&F>=2){F-=2,W.push(f),U++;continue}if(Y){F++,W.push(f),U++;continue}if(A){if(F>0){F--,W.push(f),U++;continue}break}if(F===0){if(u==="="||u==="REACTIVE_ASSIGN"||u==="COMPUTED_ASSIGN"||u==="READONLY_ASSIGN"||u==="EFFECT"||u==="TERMINATOR"||u==="INDENT"||u==="OUTDENT"||u==="->"||u===",")break}W.push(f),U++}return W}function Y1($){if($.length===0)return"";if($[0]?.[0]==="=>")$.unshift(["","()"]);let U=$.map((W)=>W[1]).join(" ").replace(/\s+/g," ").trim();return U=U.replace(/\s*<\s*/g,"<").replace(/\s*>\s*/g,">").replace(/\s*\[\s*/g,"[").replace(/\s*\]\s*/g,"]").replace(/\s*\(\s*/g,"(").replace(/\s*\)\s*/g,")").replace(/\s*,\s*/g,", ").replace(/\s*=>\s*/g," => ").replace(/ :: /g,": ").replace(/:: /g,": "),U}function r2($,U){if(U>=$.length)return null;let W=$[U];if(W[0]!=="COMPARE"||W[1]!=="<")return null;let F=[W],f=1,u=U+1;while(u<$.length&&f>0){let Y=$[u];if(F.push(Y),Y[0]==="COMPARE"&&Y[1]==="<")f++;else if(Y[0]==="COMPARE"&&Y[1]===">")f--;u++}return f===0?F:null}function u2($,U){let W=[],F=U+1,f=1;while(F<$.length&&f>0){let u=$[F];if(u[0]==="INDENT"){f++,F++;continue}if(u[0]==="OUTDENT"){if(f--,f===0)break;F++;continue}if(u[0]==="TERMINATOR"){F++;continue}if(f===1&&(u[0]==="PROPERTY"||u[0]==="IDENTIFIER")){let Y=u[1],A=!1,_=!1;if(F++,Y==="readonly"&&($[F]?.[0]==="PROPERTY"||$[F]?.[0]==="IDENTIFIER")){if(_=!0,Y=$[F][1],$[F].data?.predicate)A=!0;F++}if(u.data?.predicate)A=!0;if($[F]?.[1]==="?"&&!$[F]?.spaced)A=!0,F++;if($[F]?.[1]===":"||$[F]?.[0]==="TYPE_ANNOTATION")F++;let R=[],w=0;while(F<$.length){let D=$[F];if(D[0]==="INDENT"){w++,F++;continue}if(D[0]==="OUTDENT"){if(w>0){w--,F++;continue}break}if(D[0]==="TERMINATOR"&&w===0)break;R.push(D),F++}let z=Y1(R),X=_?"readonly ":"",K=A?"?":"";W.push(`${X}${Y}${K}: ${z}`)}else F++}return"{ "+W.join("; ")+" }"}function j1($,U){let W=0;for(let F=U;F<$.length;F++){if($[F][0]==="INDENT")W++;if($[F][0]==="OUTDENT"){if(W--,W===0)return F}}return $.length-1}function o2($,U){let W=U;if($[W]?.[0]==="TERMINATOR")W++;if($[W]?.[0]!=="INDENT")return null;let F=W;W++;while(W<$.length&&$[W][0]==="TERMINATOR")W++;if(!$[W]||$[W][1]!=="|")return null;let f=[],u=1;W=F+1;while(W<$.length&&u>0){let A=$[W];if(A[0]==="INDENT"){u++,W++;continue}if(A[0]==="OUTDENT"){if(u--,u===0)break;W++;continue}if(A[0]==="TERMINATOR"){W++;continue}if(A[1]==="|"&&u===1){W++;let _=[];while(W<$.length){let R=$[W];if(R[0]==="TERMINATOR"||R[0]==="OUTDENT"||R[1]==="|"&&u===1)break;_.push(R),W++}if(_.length>0)f.push(Y1(_));continue}W++}if(f.length===0)return null;let Y=j1($,F);return{typeText:f.join(" | "),endIdx:Y}}function y1($,U=null){let W=[],F=0,f=" ",u=()=>f.repeat(F),Y=!1,A=!1,_=!1,R=(K,D,Z)=>{if(D.startsWith("{ ")&&D.endsWith(" }")){let J=D.slice(2,-2).split("; ").filter((Q)=>Q.trim());if(J.length>0){W.push(`${u()}${K}{`),F++;for(let Q of J)W.push(`${u()}${Q};`);F--,W.push(`${u()}}${Z}`);return}}W.push(`${u()}${K}${D}${Z}`)},w=(K,D)=>{let Z=[],J=D,Q=K[J]?.[0];if(Q!=="CALL_START"&&Q!=="PARAM_START")return{params:Z,endIdx:J};let H=Q==="CALL_START"?"CALL_END":"PARAM_END";J++;let O=0;while(J<K.length&&!(K[J][0]===H&&O===0)){let M=K[J];if(M[1]===","&&O===0){J++;continue}if(M[0]==="{"||M[0]==="["||M[0]==="CALL_START"||M[0]==="PARAM_START"||M[0]==="INDEX_START")O++;if(M[0]==="}"||M[0]==="]"||M[0]==="CALL_END"||M[0]==="PARAM_END"||M[0]==="INDEX_END"){O--,J++;continue}if(M[0]==="@"){if(J++,K[J]?.[0]==="PROPERTY"||K[J]?.[0]==="IDENTIFIER"){let G=K[J][1],B=K[J].data?.type;Z.push(B?`${G}: ${v(B)}`:G),J++}continue}if(M[0]==="SPREAD"||M[1]==="..."){if(J++,K[J]?.[0]==="IDENTIFIER"){let G=K[J][1],B=K[J].data?.type;Z.push(B?`...${G}: ${v(B)}`:`...${G}: any[]`),J++}continue}if(M[0]==="{"){let G="{";J++;let B=1;while(J<K.length&&B>0){if(K[J][0]==="{")B++;if(K[J][0]==="}")B--;if(B>0)G+=K[J][1]+(K[J+1]?.[0]==="}"?"":", ");J++}G+="}";let q=K[J-1]?.data?.type;Z.push(q?`${G}: ${v(q)}`:G);continue}if(M[0]==="IDENTIFIER"){let G=M[1],B=M.data?.type,q=!1;if(K[J+1]?.[0]==="=")q=!0;if(B)Z.push(`${G}${q?"?":""}: ${v(B)}`);else Z.push(G);if(J++,q){J++;let P=0;while(J<K.length){let E=K[J];if(E[0]==="("||E[0]==="["||E[0]==="{")P++;if(E[0]===")"||E[0]==="]"||E[0]==="}")P--;if(P===0&&(E[1]===","||E[0]==="CALL_END"))break;J++}}continue}J++}return{params:Z,endIdx:J}};for(let K=0;K<$.length;K++){let D=$[K],Z=D[0],J=!1;if(Z==="EXPORT"){if(J=!0,K++,K>=$.length)break;if(D=$[K],Z=D[0],Z==="DEFAULT"){if(K++,K>=$.length)break;if(D=$[K],Z=D[0],Z==="IDENTIFIER")W.push(`${u()}export default ${D[1]};`);continue}}if(Z==="IMPORT"){let Q=[],H=K+1;while(H<$.length&&$[H][0]!=="TERMINATOR")Q.push($[H]),H++;let O="import "+Q.map((M)=>M[1]).join(" ");O=O.replace(/\s+/g," ").replace(/\s*,\s*/g,", ").replace(/\{\s*/g,"{ ").replace(/\s*\}/g," }").trim(),W.push(`${u()}${O};`),K=H;continue}if(Z==="TYPE_DECL"){let Q=D.data;if(!Q)continue;let H=J||Q.exported?"export ":"",O=Q.typeParams||"";if(Q.kind==="interface"){let M=Q.extends?` extends ${Q.extends}`:"";R(`${H}interface ${Q.name}${O}${M} `,Q.typeText||"{}","")}else{let M=v(Q.typeText||"");R(`${H}type ${Q.name}${O} = `,M,";")}continue}if(Z==="ENUM"){let Q=J?"export ":"",H=$[K+1];if(!H)continue;let O=H[1],M=K+2;if($[M]?.[0]==="INDENT"){W.push(`${u()}${Q}enum ${O} {`),F++,M++;let G=[];while(M<$.length&&$[M][0]!=="OUTDENT"){if($[M][0]==="TERMINATOR"){M++;continue}if($[M][0]==="IDENTIFIER"){let B=$[M][1];if(M++,$[M]?.[1]==="="){M++;let q=$[M]?.[1];G.push(`${B} = ${q}`),M++}else G.push(B)}else M++}for(let B=0;B<G.length;B++){let q=B<G.length-1?",":"";W.push(`${u()}${G[B]}${q}`)}F--,W.push(`${u()}}`)}continue}if(Z==="CLASS"){let Q=J?"export ":"",H=$[K+1];if(!H)continue;let O=H[1],M="",G=K+2;if($[G]?.[0]==="EXTENDS")M=` extends ${$[G+1]?.[1]||""}`,G+=2;if($[G]?.[0]==="INDENT"){let B=!1,q=G+1;while(q<$.length&&$[q][0]!=="OUTDENT"){if($[q].data?.type||$[q].data?.returnType){B=!0;break}q++}if(B)W.push(`${u()}${Q}declare class ${O}${M} {`),Y=!0,F++}continue}if(Z==="DEF"){let Q=$[K+1];if(!Q)continue;let H=Q[1],O=Q.data?.returnType,M=Q.data?.typeParams||"",{params:G,endIdx:B}=w($,K+2);if(O||G.some((q)=>q.includes(":"))){let q=J?"export ":"",P=Y?"":J?"":"declare ",E=O?`: ${v(O)}`:"",I=G.join(", ");if(Y)W.push(`${u()}${H}${M}(${I})${E};`);else W.push(`${u()}${q}${P}function ${H}${M}(${I})${E};`)}continue}if(Z==="{"&&Y){let Q=K+1,H=1;while(Q<$.length&&H>0){let O=$[Q];if(O[0]==="{"){H++,Q++;continue}if(O[0]==="}"){H--,Q++;continue}if(O[0]==="TERMINATOR"){Q++;continue}if(O[0]==="PROPERTY"&&H===1){let M=O[1],G=O.data?.returnType;if(Q++,$[Q]?.[1]===":")Q++;let B=[];if($[Q]?.[0]==="PARAM_START"){let q=w($,Q);B=q.params,Q=q.endIdx+1}if($[Q]?.[0]==="->"||$[Q]?.[0]==="=>")Q++;if($[Q]?.[0]==="INDENT"){let q=1;Q++;while(Q<$.length&&q>0){if($[Q][0]==="INDENT")q++;if($[Q][0]==="OUTDENT")q--;Q++}}if(G||B.some((q)=>q.includes(":"))){let q=G?`: ${v(G)}`:"",P=B.join(", ");W.push(`${u()}${M}(${P})${q};`)}continue}Q++}K=Q-1;continue}if(Z==="INDENT")continue;if(Z==="OUTDENT"){if(Y)F--,W.push(`${u()}}`),Y=!1;continue}if(Z==="IDENTIFIER"&&!Y&&$[K+1]?.[0]==="="&&($[K+2]?.[0]==="PARAM_START"||$[K+2]?.[0]==="(")){let Q=D[1],H=K+2,{params:O}=w($,H),M=H,G=0;while(M<$.length){if($[M][0]==="PARAM_START"||$[M][0]==="(")G++;if($[M][0]==="PARAM_END"||$[M][0]===")")G--;if(G===0&&($[M][0]==="->"||$[M][0]==="=>"))break;M++}let B=$[M]?.data?.returnType;if(B||O.some((q)=>q.includes(":"))){let q=J?"export ":"",P=J?"":"declare ",E=B?`: ${v(B)}`:"",I=O.join(", ");W.push(`${u()}${q}${P}function ${Q}(${I})${E};`);continue}}if(Z==="IDENTIFIER"&&D.data?.type){let Q=D[1],H=v(D.data.type),O=$[K+1];if(O){let M=J?"export ":"",G=J?"":"declare ";if(O[0]==="READONLY_ASSIGN")W.push(`${u()}${M}${G}const ${Q}: ${H};`);else if(O[0]==="REACTIVE_ASSIGN")A=!0,W.push(`${u()}${M}${G}const ${Q}: Signal<${H}>;`);else if(O[0]==="COMPUTED_ASSIGN")_=!0,W.push(`${u()}${M}${G}const ${Q}: Computed<${H}>;`);else if(O[0]==="EFFECT")W.push(`${u()}${M}${G}const ${Q}: () => void;`);else if(O[0]==="="){let B=K+2;if($[B]?.[0]==="PARAM_START"){let P=1,E=B+1;while(E<$.length&&P>0){if($[E][0]==="PARAM_START")P++;if($[E][0]==="PARAM_END")P--;E++}B=E}let q=$[B];if(q&&(q[0]==="->"||q[0]==="=>")&&q.data?.returnType){let P=v(q.data.returnType),{params:E}=w($,K+2),I=E.join(", ");W.push(`${u()}${M}${G}function ${Q}(${I}): ${P};`)}else if(Y)W.push(`${u()}${Q}: ${H};`);else W.push(`${u()}${M}let ${Q}: ${H};`)}else if(Y)W.push(`${u()}${Q}: ${H};`)}else if(Y)W.push(`${u()}${Q}: ${H};`)}}let z=new Set;if(U){if(C1(U,W,u,F,z),z.size>0)for(let K=W.length-1;K>=0;K--){let D=W[K].match(/(?:declare |export )*(?:const|let) (\w+)/);if(D&&z.has(D[1]))W.splice(K,1)}}if(W.length===0)return null;let X=[];if(A)X.push("interface Signal<T> { value: T; read(): T; lock(): Signal<T>; free(): Signal<T>; kill(): T; }");if(_)X.push("interface Computed<T> { readonly value: T; read(): T; lock(): Computed<T>; free(): Computed<T>; kill(): T; }");if(X.length>0)X.push("");return X.concat(W).join(`
|
|
2
2
|
`)+`
|
|
3
|
-
`}function
|
|
3
|
+
`}function v($){if(!$)return $;return $=$.replace(/::/g,":"),$=$.replace(/(\w+(?:<[^>]+>)?)\?\?/g,"$1 | null | undefined"),$=$.replace(/(\w+(?:<[^>]+>)?)\?(?![.:])/g,"$1 | undefined"),$=$.replace(/(\w+(?:<[^>]+>)?)\!/g,"NonNullable<$1>"),$}function C1($,U,W,F,f){if(!Array.isArray($))return;let u=$[0]?.valueOf?.()??$[0],Y=!1,A=null,_=null;if(u==="export"&&Array.isArray($[1])){Y=!0;let R=$[1];if((R[0]?.valueOf?.()??R[0])==="="&&Array.isArray(R[2])&&(R[2][0]?.valueOf?.()??R[2][0])==="component")A=R[1]?.valueOf?.()??R[1],_=R[2]}else if(u==="="&&Array.isArray($[2])&&($[2][0]?.valueOf?.()??$[2][0])==="component")A=$[1]?.valueOf?.()??$[1],_=$[2];if(A&&_){let R=Y?"export ":"",w=_[2],z=Array.isArray(w)&&(w[0]?.valueOf?.()??w[0])==="block"?w.slice(1):w?[w]:[],X=[],K=!1;for(let D of z){if(!Array.isArray(D))continue;let Z=D[0]?.valueOf?.()??D[0],J,Q,H,O,M;if(Z==="state"||Z==="readonly"||Z==="computed"){if(J=D[1],H=Array.isArray(J)&&(J[0]?.valueOf?.()??J[0])==="."&&(J[1]?.valueOf?.()??J[1])==="this",Q=H?J[2]?.valueOf?.()??J[2]:J?.valueOf?.()??J,O=H?J[2]?.type:J?.type,M=!0,!H)f.add(Q)}else if(Z==="."){if(H=(D[1]?.valueOf?.()??D[1])==="this",Q=H?D[2]?.valueOf?.()??D[2]:null,O=H?D[2]?.type:null,M=!1,!H&&Q)f.add(Q)}else continue;if(!H||!Q)continue;let G=O?v(O):"any",B=M?"?":"";if(!M)K=!0;X.push(` ${Q}${B}: ${G};`)}if(U.push(`${R}declare class ${A} {`),X.length>0){let D=K?"":"?";U.push(` constructor(props${D}: {`);for(let Z of X)U.push(Z);U.push(" });")}U.push("}")}if(u==="program"||u==="block"){for(let R=1;R<$.length;R++)if(Array.isArray($[R]))C1($[R],U,W,F,f)}if(u==="export"&&Array.isArray($[1])&&!_)C1($[1],U,W,F,f)}function $2($,U,W){let[F,f]=U,u=F?.valueOf?.()??F,Y=[];if(Array.isArray(f)){let R=f[0]==="block"?f.slice(1):[f];for(let w of R)if(Array.isArray(w)){if(w[0]?.valueOf?.()==="="){let z=w[1]?.valueOf?.()??w[1],X=w[2]?.valueOf?.()??w[2];Y.push([z,X])}}}if(Y.length===0)return`const ${u} = {}`;let A=Y.map(([R,w])=>`${R}: ${w}`).join(", "),_=Y.map(([R,w])=>`${w}: "${R}"`).join(", ");return`const ${u} = {${A}, ${_}}`}var U2=new Set(["true","false","null","this","new","delete","typeof","in","instanceof","return","throw","break","continue","debugger","yield","await","if","else","switch","for","while","do","try","catch","finally","class","extends","super","import","export","default"]),W2=new Set(["undefined","Infinity","NaN","then","unless","until","loop","of","by","when","def","component","render","enum","interface"]),c1={and:"&&",or:"||",is:"==",isnt:"!=",not:"!",yes:"true",no:"false",on:"true",off:"false"},F2=new Set(Object.keys(c1)),a2=new Set(["case","function","var","void","with","const","let","native","implements","package","private","protected","public","static"]),s2=new Set(["break","continue","debugger"]),t2=new Set(["NEW","TYPEOF","DELETE"]),e2=new Set(["IN","OF","INSTANCEOF"]),q1=new Set(["IDENTIFIER","PROPERTY",")","]","@","THIS","SUPER","DYNAMIC_IMPORT","?."]),X2=new Set([...q1,"NUMBER","INFINITY","NAN","STRING","STRING_END","REGEX","REGEX_END","BOOL","NULL","UNDEFINED","}"]),H1=new Set(["IDENTIFIER","PROPERTY","NUMBER","INFINITY","NAN","STRING","STRING_START","REGEX","REGEX_START","JS","NEW","PARAM_START","CLASS","IF","TRY","SWITCH","THIS","DYNAMIC_IMPORT","IMPORT_META","NEW_TARGET","UNDEFINED","NULL","BOOL","UNARY","DO","DO_IIFE","YIELD","AWAIT","UNARY_MATH","SUPER","THROW","@","->","=>","[","(","{","--","++"]),u3=new Set(["+","-"]),f3=new Set(["POST_IF","POST_UNLESS","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR","||","&&","PIPE"]),$3=new Set(["STRING","STRING_END","REGEX","REGEX_END","NUMBER","BOOL","NULL","UNDEFINED","INFINITY","NAN","]","}"]),a=new Set(["(","[","{","INDENT","CALL_START","PARAM_START","INDEX_START","STRING_START","INTERPOLATION_START","REGEX_START"]),p=new Set([")","]","}","OUTDENT","CALL_END","PARAM_END","INDEX_END","STRING_END","INTERPOLATION_END","REGEX_END"]),U3={"(":")",")":"(","[":"]","]":"[","{":"}","}":"{",INDENT:"OUTDENT",OUTDENT:"INDENT",CALL_START:"CALL_END",CALL_END:"CALL_START",PARAM_START:"PARAM_END",PARAM_END:"PARAM_START",INDEX_START:"INDEX_END",INDEX_END:"INDEX_START",STRING_START:"STRING_END",STRING_END:"STRING_START",INTERPOLATION_START:"INTERPOLATION_END",INTERPOLATION_END:"INTERPOLATION_START",REGEX_START:"REGEX_END",REGEX_END:"REGEX_START"},Y2=new Set(["CATCH","THEN","ELSE","FINALLY",...p]),b1=new Set(["IDENTIFIER","PROPERTY","SUPER",")","CALL_END","]","INDEX_END","@","THIS"]),W3=new Set(["IF","TRY","FINALLY","CATCH","CLASS","SWITCH","COMPONENT"]),A2=new Set(["ELSE","->","=>","TRY","FINALLY","THEN"]),F3=new Set(["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"]),A1=new Set(["INDENT","OUTDENT","TERMINATOR"]),_2=new Set([".","?."]),Z2=new Set(["\\",".","?.","UNARY","DO","DO_IIFE","MATH","UNARY_MATH","+","-","**","SHIFT","RELATION","COMPARE","&","^","|","&&","||","TERNARY","EXTENDS"]),Y3=new Set([...X2,"++","--"]),R2=new Set(["-=","+=","/=","*=","%=","||=","&&=","?=","??=","<<=",">>=",">>>=","&=","^=","|=","**=","//=","%%="]),A3=new Set(["*","/","%","//","%%"]),_3=new Set(["==","!=","===","!==","<",">","<=",">=","=~"]),Z3=new Set(["<<",">>",">>>"]),R3=new Set(["!","~"]),w3=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+(?:!(?!\?)|[?](?![.?![(]))?)([^\n\S]*:(?![=:]))?/,J3=/^0b[01](?:_?[01])*n?|^0o[0-7](?:_?[0-7])*n?|^0x[\da-f](?:_?[\da-f])*n?|^\d+(?:_\d+)*n|^(?:\d+(?:_\d+)*)?\.?\d+(?:_\d+)*(?:e[+-]?\d+(?:_\d+)*)?/i,Q3=/^(?:<=>|::=|::|[-=]>|~>|~=|:=|=!|===|!==|!\?|\?\!|\?\?|=~|\|>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?\.?|\.{2,3})/,X3=/^[^\n\S]+/,z3=/^(?:\n[^\n\S]*)+/,K3=/^(\s*)###([^#][\s\S]*?)(?:###([^\n\S]*)|###$)|^((?:\s*#(?!##[^#]).*)+)/,D3=/^[-=]>/,M3=/^(?:~[=>]|=!)/,H3=/^(?:'''\\|"""\\|'''|"""|'|")/,q3=/^(?:[^\\']|\\[\s\S])*/,O3=/^(?:[^\\"#$]|\\[\s\S]|\#(?!\{)|\$(?!\{))*/,G3=/^(?:[^\\']|\\[\s\S]|'(?!''))*/,P3=/^(?:[^\\"#$]|\\[\s\S]|"(?!"")|\#(?!\{)|\$(?!\{))*/,w2=/\n+([^\n\S]*)(?=\S)/g,I3=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/,J2=/^\w*/,E3=/^(?!.*(.).*\1)[gimsuy]*$/,B3=/^(?:[^\\\/#\s]|\\[\s\S]|\/(?!\/\/)|\#(?!\{)|\s+(?:#(?!\{).*)?)*/,N3=/^`(?!``)((?:[^`\\]|\\[\s\S])*)`/,T3=/^```((?:[^`\\]|\\[\s\S]|`(?!``))*)```/,L3=/\s+$/,Q2=/^\s*(?:,|\??\.(?![.\d]))/,S3=65279;function O1($,U,{pre:W=0,row:F=0,col:f=0,len:u=0,data:Y=null}={}){let A=[$,U];return A.pre=W,A.data=Y,A.loc={r:F,c:f,n:u},A.spaced=W>0,A.newLine=!1,A}function i($,U,W){let F=O1($,U);if(F.generated=!0,W)F.origin=W;return F}function x($,{row:U=0,col:W=0,len:F=1}={}){let f=SyntaxError($);throw f.location={first_line:U,first_column:W,last_column:W+F-1},f}function h3($){if($==null)return NaN;switch($.charAt(1)){case"b":return parseInt($.slice(2).replace(/_/g,""),2);case"o":return parseInt($.slice(2).replace(/_/g,""),8);case"x":return parseInt($.slice(2).replace(/_/g,""),16);default:return parseFloat($.replace(/_/g,""))}}class d{tokenize($,U={}){this.code=$,this.tokens=[],this.ends=[],this.chunk="",this.pos=0,this.row=U.row||0,this.col=U.col||0,this.indent=0,this.indents=[],this.seenFor=!1,this.seenImport=!1,this.seenExport=!1,this.importSpecifierList=!1,this.exportSpecifierList=!1,this.inRenderBlock=!1,this.renderIndent=0,$=this.clean($),this.code=$;while(this.pos<$.length){this.chunk=$.slice(this.pos);let W=this.identifierToken()||this.commentToken()||this.whitespaceToken()||this.lineToken()||this.stringToken()||this.numberToken()||this.regexToken()||this.jsToken()||this.literalToken();if(W===0)x(`unexpected character: ${this.chunk.charAt(0)}`,{row:this.row,col:this.col});if(this.advance(W),U.untilBalanced&&this.ends.length===0)return{tokens:this.tokens,index:this.pos}}if(this.closeIndentation(),this.ends.length>0){let W=this.ends[this.ends.length-1];x(`missing ${W.tag}`,{row:this.row,col:this.col})}if(U.rewrite===!1)return this.tokens;return this.rewrite(this.tokens)}clean($){if($.charCodeAt(0)===S3)$=$.slice(1);if($=$.replace(/\r\n?/g,`
|
|
4
4
|
`),$=$.replace(L3,""),/^[^\n\S]/.test($))$=`
|
|
5
|
-
`+$;return $}advance($){let
|
|
6
|
-
`)this.row++,this.col=0;else this.col++;this.pos+=$}emit($,
|
|
7
|
-
`)return 0;let
|
|
8
|
-
`);if(this.isUnfinished()){if(
|
|
9
|
-
`,{len:0})}isUnfinished(){if(this.inRenderBlock&&Q2.test(this.chunk)&&/^\s*\./.test(this.chunk))return!1;if(this.inRenderBlock&&this.prevTag()==="."){let
|
|
10
|
-
`)
|
|
11
|
-
`)}if(f===0&&W?.length===3)A=A.replace(/^\n/,"");if(f===$.length-1&&W?.length===3)A=A.replace(/\n[^\S\n]*$/,"");if(u)A=A.replace(/\\([nrtbfv0\\'"`xu])/g,"\\\\$1");this.emit("STRING",`"${A}"`,{len:_.length,data:{quote:W}})}}if($.length>1)this.emit("STRING_END",")",{len:W?.length||0});return U}numberToken(){let $=J3.exec(this.chunk);if(!$)return 0;let W=$[0],F=W.length,U={row:this.row,col:this.col};if(/^0[BOX]/.test(W))l(`radix prefix in '${W}' must be lowercase`,{...U,col:U.col+1});if(/^0\d*[89]/.test(W))l(`decimal literal '${W}' must not be prefixed with '0'`,{...U,len:F});if(/^0\d+/.test(W))l(`octal literal '${W}' must be prefixed with '0o'`,{...U,len:F});let u=h3(W),f=u===1/0?"INFINITY":"NUMBER",Y={parsedValue:u};if(f==="INFINITY")Y.original=W;return this.emit(f,W,{len:F,data:Y}),F}regexToken(){let $=this.matchWithInterpolations(B3,"///");if($){let{tokens:J,index:w}=$,[z]=J2.exec(this.chunk.slice(w)),X=w+z.length;if(J.length===1||!J.some((Z)=>Z[0]==="TOKENS")){let Z=(J[0]?.[1]||"").replace(/(?<!\\)\//g,"\\/");this.emit("REGEX",`/${Z}/${z}`,{len:X,data:{delimiter:"///",heregex:{flags:z}}})}else{if(this.emit("REGEX_START","(",{len:0}),this.emit("IDENTIFIER","RegExp",{len:0}),this.emit("CALL_START","(",{len:0}),this.mergeInterpolationTokens(J,{quote:"///",endOffset:X-z.length}),z)this.emit(",",",",{len:0}),this.emit("STRING",`"${z}"`,{len:z.length});this.emit(")",")",{len:0}),this.emit("REGEX_END",")",{len:0})}return X}let W=I3.exec(this.chunk);if(!W)return 0;let[F,U,u]=W,f=this.prev();if(f){if(f.spaced&&H1.has(f[0])&&(!u||/^\/=?\s/.test(F)))return 0;if(Y3.has(f[0])&&!(f.spaced&&H1.has(f[0])))return 0}if(!u)l("missing / (unclosed regex)",{row:this.row,col:this.col});let Y=F.length,[_]=J2.exec(this.chunk.slice(Y)),A=Y+_.length;if(!E3.test(_))l(`invalid regular expression flags ${_}`,{row:this.row,col:this.col+Y,len:_.length});return this.emit("REGEX",`/${U}/${_}`,{len:A,data:{delimiter:"/"}}),A}jsToken(){if(this.chunk[0]!=="`")return 0;let $=T3.exec(this.chunk)||N3.exec(this.chunk);if(!$)return 0;let W=$[1],F=$[0].length;return this.emit("JS",W,{len:F,data:{here:$[0].startsWith("```")}}),F}literalToken(){let $=Q3.exec(this.chunk),W=$?$[0]:this.chunk.charAt(0),F=W,U=this.prev();if(M3.test(W))this.tagParameters();if(W==="="&&U&&U[1]==="."&&!U.spaced){let u=this.tokens,f=u.length-2;while(f>=1&&u[f][0]==="PROPERTY"&&u[f-1]?.[1]===".")f-=2;if(f>=0&&(u[f][0]==="IDENTIFIER"||u[f][0]===")"||u[f][0]==="]")){let Y=u.slice(f,u.length-1);U[0]="=",U[1]="=";for(let _ of Y)this.tokens.push(q1(_[0],_[1],{pre:0,row:_[2],col:_[3],len:_[4]}));return this.tokens.push(q1(".",".",{pre:0,row:this.row,col:this.col,len:1})),W.length}}if(U&&(W==="="||R2.has(W))){if(W==="="&&(U[1]==="||"||U[1]==="&&"||U[1]==="??")&&!U.spaced)return U[0]="COMPOUND_ASSIGN",U[1]+="=",W.length}if(W==="("&&U?.[0]==="IMPORT")U[0]="DYNAMIC_IMPORT";if(W==="{"&&this.seenImport)this.importSpecifierList=!0;if(W==="}"&&this.importSpecifierList)this.importSpecifierList=!1;if(W==="{"&&U?.[0]==="EXPORT")this.exportSpecifierList=!0;if(W==="}"&&this.exportSpecifierList)this.exportSpecifierList=!1;if(W===";")this.seenFor=this.seenImport=this.seenExport=!1,F="TERMINATOR";else if(W==="|>")F="PIPE";else if(W==="::=")F="TYPE_ALIAS";else if(W==="::"&&/^[a-zA-Z_$]/.test(this.chunk[2]||""))return this.emit(".","."),this.emit("PROPERTY","prototype"),this.emit(".","."),2;else if(W==="::")F="TYPE_ANNOTATION";else if(W==="~=")F="COMPUTED_ASSIGN";else if(W===":=")F="REACTIVE_ASSIGN";else if(W==="<=>")F="BIND";else if(W==="~>")F="EFFECT";else if(W==="=!")F="READONLY_ASSIGN";else if(W==="*"&&(!U||U[0]==="TERMINATOR"||U[0]==="INDENT"||U[0]==="OUTDENT")&&(/^[a-zA-Z_$]/.test(this.chunk[1]||"")||this.chunk[1]==="@")){let u=this.chunk.slice(1),f=/^@(\s*)=(?!=)/.exec(u);if(f){let _=f[1];this.emit("IDENTIFIER","Object"),this.emit(".",".");let A=this.emit("PROPERTY","assign");return A.spaced=!0,this.emit("@","@"),this.emit(",",","),2+_.length+1}let Y=/^((?:(?!\s)[$\w\x7f-\uffff])+(?:\.[a-zA-Z_$][\w]*)*)(\s*)=(?!=)/.exec(u);if(Y){let _=Y[1],A=Y[2],J=_.split("."),w=()=>{this.emit("IDENTIFIER",J[0]);for(let X=1;X<J.length;X++)this.emit(".","."),this.emit("PROPERTY",J[X])};w(),this.emit("=","="),this.emit("IDENTIFIER","Object"),this.emit(".","."),this.emit("PROPERTY","assign"),this.emit("CALL_START","("),w(),this.emit("COMPOUND_ASSIGN","??="),this.emit("{","{"),this.emit("}","}"),this.emit(",",",");let z=this.prev();return z.mergeClose=!0,1+_.length+A.length+1}}else if(W==="*"&&U?.[0]==="EXPORT")F="EXPORT_ALL";else if(_3.has(W))F="MATH";else if(A3.has(W))F="COMPARE";else if(R2.has(W))F="COMPOUND_ASSIGN";else if(R3.has(W))F="UNARY_MATH";else if(Z3.has(W))F="SHIFT";else if(W==="?"&&U?.spaced)F="TERNARY";else if(W==="!?"&&U&&!U.spaced)F="DEFINED";else if(W==="?!"&&U&&!U.spaced)F="PRESENCE";else if(W==="?"&&(this.chunk[1]==="["||this.chunk[1]==="("))F="?.";else if(U){if(W==="("&&!U.spaced&&H1.has(U[0])){if(U[0]==="?.")U[0]="ES6_OPTIONAL_CALL";F="CALL_START"}if(W==="["&&!U.spaced&&X2.has(U[0])){if(F="INDEX_START",U[0]==="?.")U[0]="ES6_OPTIONAL_INDEX"}}if(W==="("||W==="{"||W==="[")this.ends.push({tag:U3[W],origin:[F,W]});else if(W===")"||W==="}"||W==="]")this.pair(W);return this.emit(F,W,{len:W.length}),W.length}tagParameters(){if(this.prevTag()!==")")return this.tagDoIife();let $=this.tokens.length-1,W=[];this.tokens[$][0]="PARAM_END";while($-- >0){let F=this.tokens[$];if(F[0]===")")W.push(F);else if(F[0]==="("||F[0]==="CALL_START")if(W.length)W.pop();else if(F[0]==="(")return F[0]="PARAM_START",this.tagDoIife($-1);else{this.tokens[this.tokens.length-1][0]="CALL_END";return}}}tagDoIife($){let W=this.tokens[$??this.tokens.length-1];if(W?.[0]==="DO")W[0]="DO_IIFE"}rewrite($){return this.tokens=$,this.removeLeadingNewlines(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.rewriteRender?.(),this.rewriteTypes(),this.tagPostfixConditionals(),this.addImplicitBracesAndParens(),this.addImplicitCallCommas(),this.closeMergeAssignments(),this.tokens}removeLeadingNewlines(){let $=0;while(this.tokens[$]?.[0]==="TERMINATOR")$++;if($>0)this.tokens.splice(0,$)}closeOpenCalls(){this.scanTokens(($,W)=>{if($[0]==="CALL_START")this.detectEnd(W+1,(F)=>F[0]===")"||F[0]==="CALL_END",(F)=>F[0]="CALL_END");return 1})}closeOpenIndexes(){this.scanTokens(($,W)=>{if($[0]==="INDEX_START")this.detectEnd(W+1,(F)=>F[0]==="]"||F[0]==="INDEX_END",(F,U)=>{if(this.tokens[U+1]?.[0]===":")$[0]="[",F[0]="]";else F[0]="INDEX_END"});return 1})}normalizeLines(){let $=null,W=null,F=null,U=(f,Y)=>{return f[1]!==";"&&F3.has(f[0])&&!(f[0]==="TERMINATOR"&&Y2.has(this.tokens[Y+1]?.[0]))&&!(f[0]==="ELSE"&&$!=="THEN")||f[0]==="INDENT"&&!f.generated&&($==="->"||$==="=>")||f[0]===","&&($==="->"||$==="=>")&&!this.commaInImplicitCall(Y)&&!this.commaInImplicitObject(Y)||A2.has(f[0])&&(this.tokens[Y-1]?.newLine||this.tokens[Y-1]?.[0]==="OUTDENT")},u=(f,Y)=>{let _=this.tokens[Y-1]?.[0]===","?Y-1:Y;this.tokens.splice(_,0,F)};this.scanTokens((f,Y,_)=>{let[A]=f;if(A==="TERMINATOR"){if(this.tokens[Y+1]?.[0]==="ELSE"&&this.tokens[Y-1]?.[0]!=="OUTDENT")return _.splice(Y,1,...this.makeIndentation()),1;if(Y2.has(this.tokens[Y+1]?.[0]))return _.splice(Y,1),0}if(A==="CATCH")for(let J=1;J<=2;J++){let w=this.tokens[Y+J]?.[0];if(w==="OUTDENT"||w==="TERMINATOR"||w==="FINALLY")return _.splice(Y+J,0,...this.makeIndentation()),2+J}if((A==="->"||A==="=>")&&(this.tokens[Y+1]?.[0]===","||this.tokens[Y+1]?.[0]==="]"))return[W,F]=this.makeIndentation(),_.splice(Y+1,0,W,F),1;if(_2.has(A)&&this.tokens[Y+1]?.[0]!=="INDENT"&&!(A==="ELSE"&&this.tokens[Y+1]?.[0]==="IF")&&!(A==="ELSE"&&this.tokens[Y-1]?.[0]!=="OUTDENT")){if($=A,[W,F]=this.makeIndentation(),A==="THEN")W.fromThen=!0;if(_.splice(Y+1,0,W),this.detectEnd(Y+2,U,u),A==="THEN")_.splice(Y,1);return 1}return 1})}tagPostfixConditionals(){let $=null,W=(U,u)=>{return U[0]==="TERMINATOR"||U[0]==="INDENT"&&!_2.has(this.tokens[u-1]?.[0])},F=(U)=>{if(U[0]!=="INDENT"||U.generated&&!U.fromThen)$[0]="POST_"+$[0]};this.scanTokens((U,u)=>{if(U[0]!=="IF"&&U[0]!=="UNLESS")return 1;if(this.tokens[u-1]?.[0]==="INTERPOLATION_START")return 1;return $=U,this.detectEnd(u+1,W,F),1})}addImplicitBracesAndParens(){let $=[],W=!1;this.scanTokens((F,U,u)=>{let[f]=F,Y=u[U-1]||[],_=u[U+1]||[],[A]=Y,[J]=_,w=U,z=(D)=>U-w+D,X=()=>$[$.length-1],Z=(D)=>D?.[2]?.ours,K=()=>Z(X())&&X()?.[0]==="(",R=()=>Z(X())&&X()?.[0]==="{",Q=(D)=>{$.push(["(",D,{ours:!0}]),u.splice(D,0,i("CALL_START","("))},M=()=>{$.pop(),u.splice(U,0,i("CALL_END",")")),U+=1},H=(D,G={})=>{$.push(["{",D,{sameLine:!0,startsLine:G.startsLine??!0,ours:!0}]);let P=i("{","{");if(!P.data)P.data={};P.data.generated=!0,u.splice(D,0,P)},O=(D)=>{D=D??U,$.pop(),u.splice(D,0,i("}","}")),U+=1};if((K()||R())&&W3.has(f))return $.push(["CONTROL",U,{ours:!0}]),z(1);if(f==="INDENT"&&Z(X())){if(A!=="=>"&&A!=="->"&&A!=="["&&A!=="("&&A!==","&&A!=="{"&&A!=="ELSE"&&A!=="=")while(K()||R()&&A!==":")if(K())M();else O();if(X()?.[2]?.ours&&X()[0]==="CONTROL")$.pop();return $.push([f,U]),z(1)}if(a.has(f))return $.push([f,U]),z(1);if(n.has(f)){while(Z(X()))if(K())M();else if(R())O();else $.pop();$.pop()}if(y1.has(f)&&F.spaced&&(D1.has(J)||J==="..."&&D1.has(u[U+2]?.[0])||u3.has(J)&&!_.spaced&&!_.newLine)&&!((f==="]"||f==="}")&&(J==="->"||J==="=>")))return Q(U+1),z(2);if(y1.has(f)&&this.tokens[U+1]?.[0]==="INDENT"&&this.looksObjectish(U+2)&&!this.findTagsBackwards(U,["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"]))return Q(U+1),$.push(["INDENT",U+2]),z(3);if(f==="TERNARY")W=!0;if(f===":"){if(W)return W=!1,z(1);let D=n.has(this.tokens[U-1]?.[0])?$[$.length-1]?.[1]??U-1:U-1;if(this.tokens[U-2]?.[0]==="@")D=U-2;let G=D<=0||F1.has(this.tokens[D-1]?.[0])||this.tokens[D-1]?.newLine;if(X()){let[P,B]=X(),N=$[$.length-2];if((P==="{"||P==="INDENT"&&N?.[0]==="{"&&!Z(N))&&(G||this.tokens[D-1]?.[0]===","||this.tokens[D-1]?.[0]==="{"||this.tokens[D]?.[0]==="{"))return z(1)}return H(D,{startsLine:!!G}),z(2)}if(F1.has(f))for(let D=$.length-1;D>=0;D--){if(!Z($[D]))break;if($[D][0]==="{")$[D][2].sameLine=!1}let q=A==="OUTDENT"||Y.newLine,E=f==="||"||f==="&&",I=!1;if(E){let D=U+1,G=u[D]?.[0];if(G==="("||G==="["||G==="{"){for(let P=1;++D<u.length&&P>0;)if(G=u[D][0],G==="("||G==="["||G==="{")P++;else if(G===")"||G==="]"||G==="}")P--}else if(G&&G!=="TERMINATOR"&&G!=="OUTDENT"&&G!==",")D++;I=u[D]?.[0]===","}if(f3.has(f)&&!I||A2.has(f)&&q)while(Z(X())){let[D,,{sameLine:G,startsLine:P}]=X();if(K()&&A!==",")M();else if(R()&&!E&&G&&f!=="TERMINATOR"&&A!==":")O();else if(R()&&f==="TERMINATOR"&&A!==","&&!(P&&this.looksObjectish(U+1)))O();else if(X()?.[2]?.ours&&X()[0]==="CONTROL"&&u[X()[1]]?.[0]==="CLASS"&&f==="TERMINATOR")$.pop();else break}if(f===","&&!this.looksObjectish(U+1)&&R()&&(J!=="TERMINATOR"||!this.looksObjectish(U+2))){let D=J==="OUTDENT"?1:0;while(R())O(U+D)}return z(1)})}addImplicitCallCommas(){let $=0,W=0,F=this.tokens;while(W<F.length){let U=F[W][0],u=W>0?F[W-1][0]:null;if(U==="CALL_START"||U==="(")$++;if(U==="CALL_END"||U===")")$--;if($>0&&(U==="->"||U==="=>")&&$3.has(u))F.splice(W,0,i(",",",")),W++;W++}}scanTokens($){let W=0;while(W<this.tokens.length)W+=$.call(this,this.tokens[W],W,this.tokens)}detectEnd($,W,F,U={}){let u=0;while($<this.tokens.length){let f=this.tokens[$];if(u===0&&W.call(this,f,$))return F.call(this,f,$);if(a.has(f[0]))u++;if(n.has(f[0]))u--;if(u<0){if(U.returnOnNegativeLevel)return;return F.call(this,f,$)}$++}}closeMergeAssignments(){let $=this.tokens;for(let W=0;W<$.length;W++){if(!$[W].mergeClose)continue;let F=0;for(let U=W+1;U<$.length;U++){let u=$[U][0];if(u==="("||u==="["||u==="{"||u==="CALL_START"||u==="INDEX_START"||u==="INDENT")F++;if(u===")"||u==="]"||u==="}"||u==="CALL_END"||u==="INDEX_END"||u==="OUTDENT")F--;if(F<0||F===0&&u==="TERMINATOR"){$.splice(U,0,i("CALL_END",")",$[U-1]));break}if(U===$.length-1){$.splice(U+1,0,i("CALL_END",")",$[U]));break}}}}commaInImplicitCall($){let W=0;for(let F=$-1;F>=0;F--){let U=this.tokens[F][0];if(n.has(U)){W++;continue}if(a.has(U)){if(U==="INDENT")return!1;if(W--,W<0)return!1;continue}if(W>0)continue;if(y1.has(U)&&this.tokens[F].spaced){let u=this.tokens[F+1]?.[0];return D1.has(u)||u==="..."&&D1.has(this.tokens[F+2]?.[0])}}return!1}commaInImplicitObject($){let W=0;for(let F=$-1;F>=0;F--){let U=this.tokens[F][0];if(n.has(U)){W++;continue}if(a.has(U)){if(W--,W<0)return!1;continue}if(W>0)continue;if(U===":"&&F>0&&this.tokens[F-1][0]==="PROPERTY")return this.looksObjectish($+1);if(F1.has(U))return!1}return!1}looksObjectish($){if(!this.tokens[$])return!1;if(this.tokens[$]?.[0]==="@"&&this.tokens[$+2]?.[0]===":")return!0;if(this.tokens[$+1]?.[0]===":")return!0;if(a.has(this.tokens[$]?.[0])){let W=null;if(this.detectEnd($+1,(F)=>n.has(F[0]),(F,U)=>W=U),W&&this.tokens[W+1]?.[0]===":")return!0}return!1}findTagsBackwards($,W){let F=new Set(W),U=[];while($>=0){let u=this.tokens[$]?.[0];if(!U.length&&F.has(u))return!0;if(n.has(u))U.push(u);if(a.has(u)&&U.length)U.pop();if(!U.length&&(a.has(u)&&!this.tokens[$]?.generated||F1.has(u)))break;$--}return!1}makeIndentation($){let W=i("INDENT",2),F=i("OUTDENT",2);if($)W.generated=F.generated=!0,W.origin=F.origin=$;else W.explicit=F.explicit=!0;return[W,F]}}f2(p);var V3={symbolIds:{$accept:0,$end:1,error:2,Root:3,Body:4,Line:5,TERMINATOR:6,Expression:7,ExpressionLine:8,Statement:9,Return:10,STATEMENT:11,Import:12,Export:13,Value:14,Code:15,Operation:16,Assign:17,ReactiveAssign:18,ComputedAssign:19,ReadonlyAssign:20,Effect:21,If:22,Try:23,While:24,For:25,Switch:26,Class:27,Component:28,Render:29,Throw:30,Yield:31,Def:32,Enum:33,CodeLine:34,OperationLine:35,Assignable:36,Literal:37,Parenthetical:38,Range:39,Invocation:40,DoIife:41,This:42,Super:43,MetaProperty:44,AlphaNumeric:45,JS:46,Regex:47,UNDEFINED:48,NULL:49,BOOL:50,INFINITY:51,NAN:52,NUMBER:53,String:54,Identifier:55,IDENTIFIER:56,Property:57,PROPERTY:58,STRING:59,STRING_START:60,Interpolations:61,STRING_END:62,InterpolationChunk:63,INTERPOLATION_START:64,INTERPOLATION_END:65,INDENT:66,OUTDENT:67,REGEX:68,REGEX_START:69,REGEX_END:70,RegexWithIndex:71,",":72,"=":73,REACTIVE_ASSIGN:74,COMPUTED_ASSIGN:75,Block:76,READONLY_ASSIGN:77,EFFECT:78,SimpleAssignable:79,Array:80,Object:81,ThisProperty:82,".":83,"?.":84,INDEX_START:85,INDEX_END:86,Slice:87,ES6_OPTIONAL_INDEX:88,"{":89,ObjAssignable:90,":":91,FOR:92,ForVariables:93,FOROF:94,OptComma:95,"}":96,WHEN:97,OWN:98,AssignList:99,AssignObj:100,ObjRestValue:101,SimpleObjAssignable:102,"[":103,"]":104,"@":105,"...":106,ObjSpreadExpr:107,SUPER:108,Arguments:109,DYNAMIC_IMPORT:110,Elisions:111,ArgElisionList:112,OptElisions:113,ArgElision:114,Arg:115,Elision:116,RangeDots:117,"..":118,DEF:119,CALL_START:120,ParamList:121,CALL_END:122,PARAM_START:123,PARAM_END:124,FuncGlyph:125,"->":126,"=>":127,Param:128,ParamVar:129,Splat:130,ES6_OPTIONAL_CALL:131,ArgList:132,SimpleArgs:133,THIS:134,NEW_TARGET:135,IMPORT_META:136,"(":137,")":138,RETURN:139,THROW:140,YIELD:141,FROM:142,IfBlock:143,IF:144,ELSE:145,UnlessBlock:146,UNLESS:147,POST_IF:148,POST_UNLESS:149,TRY:150,Catch:151,FINALLY:152,CATCH:153,SWITCH:154,Whens:155,When:156,LEADING_WHEN:157,WhileSource:158,WHILE:159,UNTIL:160,Loop:161,LOOP:162,FORIN:163,BY:164,FORAS:165,AWAIT:166,FORASAWAIT:167,ForValue:168,CLASS:169,EXTENDS:170,ENUM:171,COMPONENT:172,ComponentBody:173,ComponentLine:174,RENDER:175,IMPORT:176,ImportDefaultSpecifier:177,ImportNamespaceSpecifier:178,ImportSpecifierList:179,ImportSpecifier:180,AS:181,DEFAULT:182,IMPORT_ALL:183,EXPORT:184,ExportSpecifierList:185,EXPORT_ALL:186,ExportSpecifier:187,UNARY:188,DO:189,DO_IIFE:190,UNARY_MATH:191,"-":192,"+":193,"?":194,DEFINED:195,PRESENCE:196,"--":197,"++":198,MATH:199,"**":200,SHIFT:201,COMPARE:202,"&":203,"^":204,"|":205,"||":206,"??":207,"&&":208,"!?":209,PIPE:210,RELATION:211,TERNARY:212,COMPOUND_ASSIGN:213},tokenNames:{2:"error",6:"TERMINATOR",11:"STATEMENT",46:"JS",48:"UNDEFINED",49:"NULL",50:"BOOL",51:"INFINITY",52:"NAN",53:"NUMBER",56:"IDENTIFIER",58:"PROPERTY",59:"STRING",60:"STRING_START",62:"STRING_END",64:"INTERPOLATION_START",65:"INTERPOLATION_END",66:"INDENT",67:"OUTDENT",68:"REGEX",69:"REGEX_START",70:"REGEX_END",72:",",73:"=",74:"REACTIVE_ASSIGN",75:"COMPUTED_ASSIGN",77:"READONLY_ASSIGN",78:"EFFECT",83:".",84:"?.",85:"INDEX_START",86:"INDEX_END",88:"ES6_OPTIONAL_INDEX",89:"{",91:":",92:"FOR",94:"FOROF",96:"}",97:"WHEN",98:"OWN",103:"[",104:"]",105:"@",106:"...",108:"SUPER",110:"DYNAMIC_IMPORT",118:"..",119:"DEF",120:"CALL_START",122:"CALL_END",123:"PARAM_START",124:"PARAM_END",126:"->",127:"=>",131:"ES6_OPTIONAL_CALL",134:"THIS",135:"NEW_TARGET",136:"IMPORT_META",137:"(",138:")",139:"RETURN",140:"THROW",141:"YIELD",142:"FROM",144:"IF",145:"ELSE",147:"UNLESS",148:"POST_IF",149:"POST_UNLESS",150:"TRY",152:"FINALLY",153:"CATCH",154:"SWITCH",157:"LEADING_WHEN",159:"WHILE",160:"UNTIL",162:"LOOP",163:"FORIN",164:"BY",165:"FORAS",166:"AWAIT",167:"FORASAWAIT",169:"CLASS",170:"EXTENDS",171:"ENUM",172:"COMPONENT",175:"RENDER",176:"IMPORT",181:"AS",182:"DEFAULT",183:"IMPORT_ALL",184:"EXPORT",186:"EXPORT_ALL",188:"UNARY",189:"DO",190:"DO_IIFE",191:"UNARY_MATH",192:"-",193:"+",194:"?",195:"DEFINED",196:"PRESENCE",197:"--",198:"++",199:"MATH",200:"**",201:"SHIFT",202:"COMPARE",203:"&",204:"^",205:"|",206:"||",207:"??",208:"&&",209:"!?",210:"PIPE",211:"RELATION",212:"TERNARY",213:"COMPOUND_ASSIGN"},parseTable:(()=>{let $=[107,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,-1,1,2,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,1,1,0,2,1,5,-2,107,5,1,5,59,2,71,-3,-3,-3,-3,-3,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-6,-6,-6,-6,-6,-6,127,-6,-6,-6,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,9,1,5,59,1,1,5,32,18,16,-7,-7,-7,-7,-7,-7,-7,-7,-7,14,1,5,59,1,1,5,32,18,16,10,1,9,1,1,-8,-8,-8,-8,-8,-8,-8,-8,-8,128,129,130,96,97,56,1,5,48,5,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,3,9,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-13,-13,134,105,106,-13,-13,-13,-13,137,138,139,-13,140,-13,-13,-13,-13,-13,-13,-13,135,-13,141,-13,-13,136,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,131,132,133,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,46,1,5,59,1,1,5,11,1,1,1,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,142,143,144,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,9,1,5,59,1,1,5,32,18,16,-33,-33,-33,-33,-33,-33,-33,-33,-33,9,1,5,59,1,1,5,32,18,16,-34,-34,-34,-34,-34,-34,-34,-34,-34,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,145,146,147,148,149,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,154,104,-173,-173,-173,156,157,155,99,159,158,153,150,-173,-173,151,152,106,5,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,161,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,162,102,103,160,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,103,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,163,164,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,103,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,166,167,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,168,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,174,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,175,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,176,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,177,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,45,14,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,7,14,2,3,2,13,2,1,1,7,1,1,1,53,179,180,181,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,178,72,73,93,99,83,87,84,85,169,170,90,91,86,88,89,82,173,45,14,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,7,14,2,3,2,13,2,1,1,7,1,1,1,53,179,180,181,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,182,72,73,93,99,83,87,84,85,169,170,90,91,86,88,89,82,173,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,183,184,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,185,103,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,187,186,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,162,102,103,188,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,189,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,2,66,10,162,190,2,66,10,162,191,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,14,39,16,1,24,1,1,7,4,5,5,2,24,37,2,195,154,104,156,157,155,99,192,193,83,158,197,194,196,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,198,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,199,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,90,1,5,8,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,4,3,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,4,1,1,1,1,1,7,1,1,1,1,7,3,1,10,1,3,1,1,2,3,20,2,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-305,-305,179,180,181,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-305,162,-305,102,103,-305,200,202,72,73,93,-305,99,-305,-305,-305,-305,-305,83,-305,87,-305,84,85,-305,-305,169,-305,170,90,91,86,88,89,82,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,201,173,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,1,66,203,2,66,10,162,204,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,205,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,206,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,139,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,6,1,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,1,3,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,2,2,1,3,1,8,4,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-224,-224,207,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-224,208,-224,102,103,-224,53,52,72,73,93,-224,99,-224,-224,-224,-224,-224,83,-224,87,-224,84,85,-224,66,-224,169,-224,170,90,91,86,88,89,82,-224,69,64,65,209,54,94,-224,55,95,-224,-224,56,60,57,-224,-224,58,98,-224,-224,-224,49,-224,61,67,62,63,70,71,171,172,173,46,47,48,50,51,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,2,55,1,210,104,2,55,1,211,104,6,15,19,89,2,1,1,213,212,42,43,90,91,138,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,6,1,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,1,3,1,1,1,1,1,7,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,2,2,1,3,1,8,4,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-221,-221,214,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-221,215,-221,102,103,-221,53,52,72,73,93,-221,99,-221,-221,-221,-221,-221,83,-221,87,-221,84,85,-221,66,-221,169,-221,170,90,91,86,88,89,82,-221,69,64,65,54,94,-221,55,95,-221,-221,56,60,57,-221,-221,58,98,-221,-221,-221,49,-221,61,67,62,63,70,71,171,172,173,46,47,48,50,51,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,9,54,1,1,3,1,29,88,1,5,216,220,104,105,106,219,217,218,221,60,14,1,3,1,1,1,6,1,4,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,14,2,3,2,9,4,2,1,1,7,1,1,1,32,2,1,10,4,4,179,180,228,229,230,231,223,224,225,226,234,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,227,104,105,106,102,103,53,235,72,73,93,222,83,87,84,85,66,169,170,90,91,86,88,89,82,61,67,62,232,233,173,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,106,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,236,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,237,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,113,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,6,1,1,1,1,7,3,11,1,1,1,2,2,1,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,238,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,244,102,103,245,53,52,72,73,93,99,59,83,239,87,249,84,85,240,241,243,246,242,66,42,43,90,91,248,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,4,83,2,24,11,251,252,250,141,2,109,11,253,141,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,56,1,5,51,1,1,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-206,-206,254,255,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,1,83,256,1,83,257,54,11,35,2,1,1,1,1,1,3,3,1,6,2,1,9,11,3,11,2,3,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,54,11,35,2,1,1,1,1,1,3,3,1,6,2,1,9,11,3,11,2,3,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,258,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,259,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,260,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,261,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,263,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,162,102,103,262,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,23,6,39,8,1,1,1,1,1,1,1,6,1,5,10,8,6,3,1,1,1,1,2,1,-109,269,100,101,271,104,272,255,105,106,-109,-109,-109,273,264,-109,265,270,274,266,267,268,275,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,45,14,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,7,14,2,3,2,13,2,1,1,7,1,1,1,53,179,180,181,34,35,36,276,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,235,72,73,93,99,83,87,84,85,169,170,90,91,86,88,89,82,173,65,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,4,3,3,1,10,1,3,1,1,2,3,11,11,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,57,1,5,53,1,2,2,1,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,6,54,5,1,1,2,1,280,105,106,277,278,279,109,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,2,1,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,1,1,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,-5,281,-5,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-5,-5,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,-5,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,282,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,283,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,284,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,285,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,286,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,287,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,288,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,289,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,290,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,293,165,291,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,292,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,296,165,294,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,295,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,299,165,297,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,298,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,300,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,301,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,302,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,303,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,304,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,305,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,14,39,16,1,24,1,1,7,4,5,5,2,24,37,2,309,154,104,156,157,155,99,306,307,83,158,197,308,196,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,310,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,311,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,55,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,55,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,2,109,11,312,141,2,57,1,313,255,2,57,1,314,255,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,2,7,1,1,1,1,5,2,3,11,2,1,2,2,7,1,1,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,315,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,320,77,78,79,80,81,100,101,92,104,105,106,316,102,103,318,53,52,72,73,93,317,99,59,83,87,322,84,85,319,321,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,85,323,109,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,1,2,2,5,4,3,1,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,327,102,103,53,52,72,73,93,99,59,83,87,249,84,85,326,66,324,42,43,90,91,248,325,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,2,57,1,329,255,2,57,1,330,255,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,331,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,332,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,334,333,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,335,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,337,336,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,338,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,103,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,340,339,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,162,102,103,341,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,343,342,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,344,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,103,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,346,345,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,162,102,103,347,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,9,6,60,1,5,23,1,8,18,2,-217,-217,-217,349,350,-217,-217,-217,348,6,6,60,1,5,50,2,-174,-174,-174,-174,-174,-174,7,6,60,1,5,1,49,2,-178,-178,-178,-178,351,-178,-178,15,6,49,1,10,1,5,8,1,1,7,14,2,17,2,5,-181,154,104,-181,-181,-181,156,157,155,99,159,158,-181,-181,352,11,6,60,1,5,1,21,28,2,39,2,2,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,11,6,60,1,5,1,21,28,2,39,2,2,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,11,6,60,1,5,1,21,28,2,39,2,2,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,11,6,60,1,5,1,21,28,2,39,2,2,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,2,57,1,254,255,113,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,6,1,1,1,1,7,3,11,1,1,1,2,2,1,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,244,102,103,245,53,52,72,73,93,99,59,83,239,87,249,84,85,240,241,243,246,242,66,42,43,90,91,248,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,9,1,5,59,1,1,5,32,18,16,-170,-170,-170,-170,-170,-170,-170,-170,-170,106,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,354,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,353,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,125,126,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,118,-371,120,-371,-371,-371,9,1,5,59,1,1,5,32,18,16,-368,-368,-368,-368,-368,-368,-368,-368,-368,5,148,1,9,1,1,128,129,130,96,97,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,125,126,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,118,-372,120,-372,-372,-372,9,1,5,59,1,1,5,32,18,16,-369,-369,-369,-369,-369,-369,-369,-369,-369,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,125,126,-373,-373,-373,-373,-373,-373,-373,-373,-373,111,-373,-373,-373,-373,-373,-373,118,-373,120,-373,-373,-373,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,154,104,-173,-173,-173,156,157,155,99,159,158,153,355,-173,-173,151,152,2,66,10,162,160,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,163,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,166,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,5,15,108,2,1,1,213,169,170,90,91,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,125,126,-374,-374,-374,-374,-374,-374,-374,-374,-374,111,-374,-374,-374,-374,-374,-374,118,-374,120,-374,-374,-374,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,125,126,-375,-375,-375,-375,-375,-375,-375,-375,-375,111,-375,-375,-375,-375,-375,-375,118,-375,120,-375,-375,-375,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,125,126,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,118,-379,120,-379,-379,-379,2,81,8,356,99,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-381,-381,-86,-86,-381,-381,-381,-381,-86,-86,-86,-86,-86,-86,-86,-86,-381,-86,-381,-381,-381,-381,-381,-381,-381,-381,-86,-381,-381,-86,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-86,-86,-86,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,10,54,5,1,23,1,1,3,21,11,11,134,105,106,137,138,139,140,135,141,136,3,83,1,1,142,143,144,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-382,-382,-86,-86,-382,-382,-382,-382,-86,-86,-86,-86,-86,-86,-86,-86,-382,-86,-382,-382,-382,-382,-382,-382,-382,-382,-86,-382,-382,-86,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-86,-86,-86,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,359,357,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,358,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-83,-83,-83,-83,-83,-83,-83,-83,127,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,124,125,126,96,97,-83,-83,-83,-83,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,360,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,3,66,10,68,162,361,362,46,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,2,1,1,6,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,363,364,365,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,4,94,69,2,2,367,366,368,369,11,55,1,24,1,1,7,4,10,2,24,39,154,104,156,157,155,99,370,159,158,197,196,11,55,1,24,1,1,7,4,10,2,24,39,154,104,156,157,155,99,371,159,158,197,196,3,66,10,88,162,372,373,5,72,22,69,2,2,374,-303,-303,-303,-303,6,72,1,21,69,2,2,-301,375,-301,-301,-301,-301,23,66,26,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,376,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,3,155,1,1,377,378,379,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,380,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,61,1,5,53,1,5,1,1,5,1,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-309,-309,-86,-86,-309,162,-309,-309,-86,-86,-86,381,-86,-86,-86,-86,-86,-309,-86,-309,-309,-309,-309,-309,-309,-309,-309,-86,-309,-309,-86,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,382,-309,-309,-86,-86,-86,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,105,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,1,1,1,1,8,4,1,1,1,1,1,4,1,385,386,387,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,383,384,63,70,71,44,45,68,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,125,126,-222,-222,-222,-222,-222,-222,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,81,8,388,99,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,125,126,-225,-225,-225,-225,-225,-225,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,81,8,389,99,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,390,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,3,66,10,44,162,392,391,2,66,10,162,393,9,1,5,59,1,1,5,32,18,16,-370,-370,-370,-370,-370,-370,-370,-370,-370,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,125,126,-219,-219,-219,-219,-219,-219,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,81,8,394,99,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,2,72,70,396,395,1,142,397,7,55,1,10,30,83,1,2,402,104,401,398,399,400,403,2,72,70,-338,-338,1,181,404,26,6,39,8,1,1,1,1,1,1,1,6,1,5,10,8,6,3,1,1,1,1,2,1,76,3,2,-109,269,100,101,409,104,272,255,105,106,408,-109,-109,273,264,405,265,270,274,266,267,268,275,410,406,407,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-89,-89,-89,-89,-89,-89,-89,-89,411,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,412,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,413,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,142,414,58,1,5,53,1,5,1,1,5,2,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,146,147,148,149,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,2,6,132,107,415,105,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,416,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,31,6,60,1,5,20,12,2,11,1,4,26,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-199,-199,-199,-199,127,-199,322,417,321,-199,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,109,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,6,1,1,1,1,7,3,11,1,1,1,2,2,5,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,245,53,52,72,73,93,99,59,83,418,87,249,84,85,420,419,66,42,43,90,91,248,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,9,6,60,1,5,23,1,8,9,9,-217,-217,-217,422,423,-217,-217,421,-217,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,6,11,3,11,1,1,1,2,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,424,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,5,6,60,1,5,32,-145,-145,-145,-145,-145,112,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,6,1,1,1,1,7,3,11,2,1,2,2,1,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,244,102,103,245,53,52,72,73,93,99,59,83,87,249,84,85,426,425,243,246,242,66,42,43,90,91,248,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,6,11,3,11,1,1,1,2,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,5,6,60,1,5,32,-150,-150,-150,-150,-150,6,6,60,1,5,32,18,-200,-200,-200,-200,-200,-200,6,6,60,1,5,32,18,-201,-201,-201,-201,-201,-201,106,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,6,1,1,1,1,7,3,11,1,1,3,2,9,3,1,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,-202,427,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-202,-202,102,103,-202,53,52,72,73,93,99,59,83,-202,87,84,85,66,-202,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,55,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,2,57,1,428,255,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,429,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,430,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,55,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,2,57,1,431,255,2,57,1,432,255,24,66,10,16,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,433,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,10,16,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,434,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-256,-256,-256,-256,-256,-256,-256,-256,127,-256,-256,435,-256,-256,-256,-256,-256,-256,-256,-256,125,126,96,97,-256,-256,-256,-256,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-258,-258,-258,-258,-258,-258,-258,-258,127,-258,-258,436,-258,-258,-258,-258,-258,-258,-258,-258,125,126,96,97,-258,-258,-258,-258,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,45,1,5,59,1,1,5,4,10,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-265,-265,-265,162,-265,-265,437,-265,-265,127,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,125,126,96,97,-265,-265,-265,-265,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,6,6,60,1,5,19,5,-114,-114,-114,-114,438,-114,8,6,60,1,5,23,1,8,18,-217,-217,-217,440,439,-217,-217,-217,7,6,60,1,5,1,18,5,-123,-123,-123,-123,441,-123,-123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,442,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,3,57,1,45,254,255,443,6,6,60,1,5,19,5,-126,-126,-126,-126,-126,-126,5,6,60,1,5,24,-110,-110,-110,-110,-110,11,6,60,1,5,1,10,1,1,6,5,24,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,11,6,60,1,5,1,10,1,1,6,5,24,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,11,6,60,1,5,1,10,1,1,6,5,24,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,5,6,60,1,5,24,-115,-115,-115,-115,-115,17,38,4,1,12,1,1,1,23,1,7,13,3,2,1,2,24,3,447,449,448,271,104,272,255,446,273,99,444,87,445,450,451,86,82,55,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,-39,-39,452,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,6,54,5,1,2,1,1,280,105,106,453,454,279,4,59,1,2,2,-58,-58,-58,-58,107,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,455,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,457,456,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,4,59,1,2,2,-63,-63,-63,-63,5,1,5,59,2,71,-4,-4,-4,-4,-4,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,125,126,-385,-385,-385,-385,-385,-385,-385,-385,110,111,-385,-385,-385,-385,-385,-385,118,-385,120,-385,-385,-385,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,125,126,-386,-386,-386,-386,-386,-386,-386,-386,110,111,-386,-386,-386,-386,-386,-386,118,-386,120,-386,-386,-386,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,125,126,-387,-387,-387,-387,-387,-387,-387,-387,-387,111,-387,-387,-387,-387,-387,-387,118,-387,120,-387,-387,-387,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,125,126,-388,-388,-388,-388,-388,-388,-388,-388,-388,111,-388,-388,-388,-388,-388,-388,118,-388,120,-388,-388,-388,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,125,126,-389,-389,-389,-389,-389,-389,109,108,110,111,-389,-389,-389,-389,-389,-389,118,-389,120,-389,-389,-389,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,125,126,-390,-390,-390,-390,-390,-390,109,108,110,111,112,-390,-390,-390,-390,-390,118,-390,120,-390,122,-390,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,125,126,-391,-391,-391,-391,-391,-391,109,108,110,111,112,113,-391,-391,-391,-391,118,-391,120,-391,122,-391,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,125,126,-392,-392,-392,-392,-392,-392,109,108,110,111,112,113,114,-392,-392,-392,118,-392,120,-392,122,-392,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,125,126,-393,-393,-393,-393,-393,-393,109,108,110,111,112,113,114,115,-393,-393,118,-393,120,-393,122,-393,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,125,126,-401,-401,-401,-401,-401,-401,109,108,110,111,112,113,114,115,116,-401,118,119,120,-401,122,-401,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-402,-402,-402,-402,-402,-402,-402,-402,127,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,124,125,126,96,97,-402,-402,-402,-402,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,125,126,-400,-400,-400,-400,-400,-400,109,108,110,111,112,113,114,115,116,-400,118,-400,120,-400,122,-400,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-403,-403,-403,-403,-403,-403,-403,-403,127,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,124,125,126,96,97,-403,-403,-403,-403,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,125,126,-404,-404,-404,-404,-404,-404,109,108,110,111,112,113,114,115,116,117,118,119,120,-404,122,-404,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,125,126,-405,-405,-405,-405,-405,-405,109,108,110,111,112,-405,-405,-405,-405,-405,118,-405,120,-405,-405,-405,23,91,1,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,458,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-236,-236,-236,-236,-236,-236,-236,-236,127,-236,-236,-236,-236,-236,-236,-236,-236,-236,459,-236,125,126,96,97,-236,-236,-236,-236,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-240,-240,-240,-240,-240,-240,-240,-240,127,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,124,125,126,96,97,-240,-240,-240,-240,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,94,69,2,2,461,460,462,463,11,55,1,24,1,1,7,4,10,2,24,39,154,104,156,157,155,99,464,159,158,197,196,11,55,1,24,1,1,7,4,10,2,24,39,154,104,156,157,155,99,465,159,158,197,196,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,466,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-235,-235,-235,-235,-235,-235,-235,-235,127,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,125,126,96,97,-235,-235,-235,-235,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-239,-239,-239,-239,-239,-239,-239,-239,127,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,124,125,126,96,97,-239,-239,-239,-239,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,55,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,26,86,6,14,11,1,30,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,467,127,322,468,321,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,104,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,5,2,3,11,2,1,2,2,7,1,1,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,469,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,470,99,59,83,87,322,84,85,319,321,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,86,471,1,86,472,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,9,1,1,1,1,4,3,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,473,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-164,102,103,53,52,72,73,93,-164,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,-46,-46,-46,-46,-46,474,-46,-46,-46,-67,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,55,11,35,2,1,1,1,1,1,3,3,1,7,1,1,9,8,3,3,11,2,3,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,55,11,35,2,1,1,1,1,1,3,3,1,7,1,1,9,8,3,3,11,2,3,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,475,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,476,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,55,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,8,6,60,1,5,23,1,8,18,-217,-217,-217,478,477,-217,-217,-217,5,6,60,1,5,50,-194,-194,-194,-194,-194,108,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,1,2,2,5,4,4,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,327,102,103,53,52,72,73,93,99,59,83,87,249,84,85,326,66,42,43,90,91,248,479,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,28,6,60,1,5,20,12,18,26,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-199,-199,-199,-199,127,-199,-199,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,23,86,6,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,480,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,481,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,125,126,-68,-68,-68,-68,-68,-68,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,482,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,483,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-71,-71,-71,-71,-71,-71,-71,-71,127,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,124,125,126,96,97,-71,-71,-71,-71,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,484,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,485,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-74,-74,-74,-74,-74,-74,-74,-74,127,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,124,125,126,96,97,-74,-74,-74,-74,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,486,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-77,-77,-77,-77,-77,-77,-77,-77,127,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,124,125,126,96,97,-77,-77,-77,-77,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,487,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,488,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-80,-80,-80,-80,-80,-80,-80,-80,127,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,124,125,126,96,97,-80,-80,-80,-80,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,489,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,3,125,1,1,490,90,91,17,6,49,1,10,1,13,1,1,7,7,7,1,1,1,16,6,1,-218,154,104,-218,-218,156,157,155,99,-218,159,-218,158,153,-218,491,152,2,6,60,492,493,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,494,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,6,6,60,1,5,50,2,-180,-180,-180,-180,-180,-180,57,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,3,1,4,2,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,2,6,61,107,495,9,6,60,1,5,23,1,8,18,2,-217,-217,-217,349,350,-217,-217,-217,496,1,67,497,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,125,126,-407,-407,-407,-407,-407,-407,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,498,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,499,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-84,-84,-84,-84,-84,-84,-84,-84,127,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,124,125,126,96,97,-84,-84,-84,-84,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,500,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,501,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,2,66,10,162,502,6,55,1,10,10,5,8,503,104,162,505,504,99,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,506,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,507,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,508,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,509,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,94,510,1,165,511,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,512,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,10,55,1,24,1,1,7,14,2,24,39,154,104,156,157,155,99,159,158,197,513,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,514,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,3,155,1,1,515,378,379,4,67,78,11,1,516,517,518,379,3,67,78,12,-252,-252,-252,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,6,1,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,520,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,519,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,45,1,5,59,1,1,5,4,10,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-307,-307,-307,162,-307,-307,521,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,125,126,-307,-307,-307,-307,-307,-307,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,522,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,2,6,61,524,523,2,6,61,-315,-315,24,6,61,25,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-318,-318,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,6,61,-319,-319,7,6,61,81,1,9,1,1,-320,-320,128,129,130,96,97,1,67,525,1,67,526,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,125,126,-227,-227,-227,-227,-227,-227,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,154,104,-173,-173,-173,156,157,155,99,159,158,153,527,-173,-173,151,152,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,1,67,528,3,54,5,1,529,105,106,3,89,89,5,531,530,221,3,54,5,1,532,105,106,1,142,533,8,6,60,1,5,23,1,8,18,-217,-217,-217,535,534,-217,-217,-217,5,6,60,1,5,24,-329,-329,-329,-329,-329,6,55,1,10,113,1,2,402,104,401,536,400,403,6,6,60,1,5,24,85,-334,-334,-334,-334,-334,537,6,6,60,1,5,24,85,-336,-336,-336,-336,-336,538,2,55,1,539,104,14,1,5,59,1,1,5,32,18,16,4,6,1,10,1,-340,-340,-340,-340,-340,-340,-340,-340,-340,540,-340,-340,-340,-340,8,6,60,1,5,23,1,8,18,-217,-217,-217,542,541,-217,-217,-217,5,6,60,1,5,24,-358,-358,-358,-358,-358,6,55,1,10,116,3,2,544,104,408,410,543,407,12,6,60,1,5,1,10,1,1,6,5,24,61,-363,-363,-363,-363,-120,-120,-120,-120,-120,-363,-120,545,6,6,60,1,5,24,85,-366,-366,-366,-366,-366,546,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,548,547,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,549,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-353,-353,-353,-353,-353,-353,127,-353,-353,-353,-353,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,81,8,550,99,3,54,5,1,551,105,106,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,2,6,61,107,552,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,553,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,6,11,3,11,1,1,1,2,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,424,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,5,6,60,1,5,32,-151,-151,-151,-151,-151,2,66,38,555,554,116,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,6,1,1,1,1,7,3,4,7,1,1,1,2,2,1,3,1,1,3,3,1,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,-218,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-218,-218,102,103,245,53,52,72,73,93,99,59,-218,83,-218,87,249,84,85,557,556,246,242,66,-218,42,43,90,91,248,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,4,6,60,1,37,558,-152,-152,-152,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,6,11,3,11,1,1,1,2,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,9,6,60,1,5,23,1,8,9,9,-217,-217,-217,422,423,-217,-217,559,-217,108,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,6,1,1,1,1,7,3,11,2,1,2,2,5,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,245,53,52,72,73,93,99,59,83,87,249,84,85,420,419,66,42,43,90,91,248,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,28,6,60,1,5,20,12,18,26,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-186,-186,-186,-186,127,-186,-186,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,23,86,6,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,560,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,561,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,562,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,563,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,564,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,565,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,566,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,3,6,60,30,568,569,567,23,6,39,8,1,1,1,1,1,1,1,6,1,15,8,6,4,1,1,1,1,1,1,16,-218,269,100,101,271,104,272,255,105,106,-218,-218,273,571,-218,570,274,266,267,-218,268,275,-218,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,572,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,573,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,23,92,12,44,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,127,574,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,575,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,10,6,60,1,5,11,1,1,11,13,11,-127,-127,-127,-127,-129,-129,-129,-127,576,141,10,6,60,1,5,11,1,1,11,13,11,-128,-128,-128,-128,578,579,580,-128,577,141,9,6,60,1,5,11,1,1,11,24,-130,-130,-130,-130,-130,-130,-130,-130,-130,9,6,60,1,5,11,1,1,11,24,-131,-131,-131,-131,-131,-131,-131,-131,-131,9,6,60,1,5,11,1,1,11,24,-132,-132,-132,-132,-132,-132,-132,-132,-132,9,6,60,1,5,11,1,1,11,24,-133,-133,-133,-133,-133,-133,-133,-133,-133,4,83,2,24,11,251,252,581,141,2,109,11,582,141,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,57,1,5,53,1,2,2,1,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,4,59,1,2,2,-59,-59,-59,-59,2,6,59,107,583,105,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,584,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,4,59,1,2,2,-62,-62,-62,-62,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,585,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,587,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,586,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,588,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,589,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,590,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,591,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,94,592,1,165,593,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,594,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,9,1,1,1,1,4,3,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,595,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-162,102,103,53,52,72,73,93,-162,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,26,67,25,14,11,1,30,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,596,127,322,468,321,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,1,67,597,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,24,67,19,6,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-163,-163,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,598,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,23,86,6,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,599,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,600,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,3,6,60,56,602,603,601,112,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,9,1,1,1,1,7,3,4,7,1,1,1,2,2,5,4,3,1,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,-218,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-218,-218,102,103,53,52,72,73,93,99,59,-218,83,-218,87,249,84,85,604,66,-218,42,43,90,91,248,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,8,6,60,1,5,23,1,8,18,-217,-217,-217,478,605,-217,-217,-217,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,23,67,25,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,606,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,125,126,-69,-69,-69,-69,-69,-69,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,25,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,607,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-72,-72,-72,-72,-72,-72,-72,-72,127,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,124,125,126,96,97,-72,-72,-72,-72,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,25,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,608,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-75,-75,-75,-75,-75,-75,-75,-75,127,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,124,125,126,96,97,-75,-75,-75,-75,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-78,-78,-78,-78,-78,-78,-78,-78,127,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,124,125,126,96,97,-78,-78,-78,-78,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,25,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,609,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-81,-81,-81,-81,-81,-81,-81,-81,127,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,124,125,126,96,97,-81,-81,-81,-81,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,106,5,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,611,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,162,102,103,610,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,6,6,60,1,5,50,2,-175,-175,-175,-175,-175,-175,11,55,1,24,1,1,7,14,2,1,22,1,154,104,156,157,155,99,159,158,153,612,152,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,154,104,-173,-173,-173,156,157,155,99,159,158,153,613,-173,-173,151,152,28,6,60,1,5,20,30,2,24,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-179,-179,-179,-179,127,-179,-179,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,57,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,3,1,4,2,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,3,125,1,1,614,90,91,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,23,67,25,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,615,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,125,126,-409,-409,-409,-409,-409,-409,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,10,16,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,616,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,66,10,162,617,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,2,66,10,162,618,2,66,10,162,619,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,26,66,10,16,5,51,1,9,1,1,4,28,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,620,127,621,124,125,126,96,97,622,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,10,16,5,51,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,623,127,624,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,10,16,5,51,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,625,127,626,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,10,16,5,51,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,627,127,628,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,629,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,630,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,24,66,10,16,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,631,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,94,69,2,2,-304,-304,-304,-304,27,72,20,2,54,1,9,1,1,3,2,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-302,127,-302,124,125,126,96,97,-302,-302,-302,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,67,78,11,1,632,633,518,379,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,2,66,10,162,634,3,67,78,12,-253,-253,-253,3,66,6,4,162,636,635,24,66,6,20,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-203,-203,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,45,1,5,59,1,1,5,4,10,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-311,-311,-311,162,-311,-311,637,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,125,126,-311,-311,-311,-311,-311,-311,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,106,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,1,1,8,4,1,1,1,1,1,4,1,-317,385,386,387,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-317,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,638,63,70,71,44,45,68,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,8,6,60,1,5,23,1,8,18,-217,-217,-217,349,350,-217,-217,639,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,1,142,640,6,55,1,10,113,1,2,402,104,401,641,400,403,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,3,54,5,1,642,105,106,3,6,60,30,644,645,643,10,6,49,1,10,1,29,8,18,58,2,-218,402,104,-218,-218,-218,-218,-218,646,403,8,6,60,1,5,23,1,8,18,-217,-217,-217,535,647,-217,-217,-217,2,55,1,648,104,2,55,1,649,104,1,142,-339,3,54,5,1,650,105,106,3,6,60,30,652,653,651,10,6,49,1,10,1,29,8,18,60,5,-218,544,104,-218,-218,-218,-218,-218,410,654,8,6,60,1,5,23,1,8,18,-217,-217,-217,542,655,-217,-217,-217,6,6,60,1,5,24,85,-363,-363,-363,-363,-363,545,3,55,1,126,656,104,657,2,55,1,658,104,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-346,-346,-346,-346,-346,-346,127,-346,-346,-346,-346,125,126,-346,-346,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,659,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,660,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,67,661,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,1,138,662,23,92,12,44,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,127,663,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,112,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,6,1,1,1,1,7,3,11,2,1,2,2,1,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,244,102,103,245,53,52,72,73,93,99,59,83,87,249,84,85,426,664,243,246,242,66,42,43,90,91,248,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,5,6,60,1,5,32,-146,-146,-146,-146,-146,111,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,6,1,1,1,1,7,3,11,1,1,1,2,2,5,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-153,-153,102,103,245,53,52,72,73,93,99,59,83,-153,87,249,84,85,420,419,66,42,43,90,91,248,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,110,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,6,1,1,1,1,7,3,11,2,1,2,2,1,3,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,245,53,52,72,73,93,99,59,83,87,249,84,85,426,665,246,242,66,42,43,90,91,248,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,2,66,1,555,666,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,23,67,25,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,667,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,66,10,162,668,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,125,126,-257,-257,-257,-257,-257,-257,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,125,126,-259,-259,-259,-259,-259,-259,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,27,6,60,1,5,20,4,52,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-116,-116,-116,-116,669,-116,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,670,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,17,45,8,1,1,1,1,1,1,1,22,8,10,1,1,1,2,1,269,100,101,271,104,272,255,105,106,273,571,671,274,266,267,268,275,23,6,39,8,1,1,1,1,1,1,1,6,1,5,10,8,6,3,1,1,1,1,2,1,-109,269,100,101,271,104,272,255,105,106,-109,-109,-109,273,571,-109,672,270,274,266,267,268,275,5,6,60,1,5,24,-111,-111,-111,-111,-111,6,6,60,1,5,19,5,-114,-114,-114,-114,673,-114,27,6,60,1,5,20,4,52,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-118,-118,-118,-118,127,-118,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,674,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,6,6,60,1,5,19,5,-124,-124,-124,-124,-124,-124,23,92,12,44,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,127,675,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,9,6,60,1,5,11,1,1,11,24,-136,-136,-136,-136,-136,-136,-136,-136,-136,9,6,60,1,5,11,1,1,11,24,-137,-137,-137,-137,-137,-137,-137,-137,-137,2,57,1,676,255,2,57,1,677,255,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,678,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,679,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,9,6,60,1,5,11,1,1,11,24,-134,-134,-134,-134,-134,-134,-134,-134,-134,9,6,60,1,5,11,1,1,11,24,-135,-135,-135,-135,-135,-135,-135,-135,-135,4,59,1,2,2,-60,-60,-60,-60,2,6,61,107,680,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,125,126,-406,-406,-406,-406,-406,-406,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,681,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-238,-238,-238,-238,-238,-238,-238,-238,127,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,125,126,96,97,-238,-238,-238,-238,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,682,-284,-284,-284,-284,-284,-284,-284,-284,125,126,-284,-284,-284,683,-284,-284,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,684,-289,-289,-289,-289,-289,-289,-289,-289,125,126,-289,-289,-289,-289,-289,-289,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,685,-293,-293,-293,-293,-293,-293,-293,-293,125,126,-293,-293,-293,-293,-293,-293,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,686,-297,-297,-297,-297,-297,-297,-297,-297,125,126,-297,-297,-297,-297,-297,-297,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,687,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,688,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,125,126,-300,-300,-300,-300,-300,-300,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,67,19,6,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-161,-161,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,1,86,689,1,86,690,23,86,6,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-66,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,23,67,25,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,691,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,55,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,106,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,1,2,2,5,4,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,249,84,85,692,66,42,43,90,91,248,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,108,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,1,2,2,5,4,4,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,327,102,103,53,52,72,73,93,99,59,83,87,249,84,85,326,66,42,43,90,91,248,693,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,5,6,60,1,5,50,-195,-195,-195,-195,-195,3,6,60,1,602,603,694,1,86,695,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,9,1,5,59,1,1,5,32,18,16,-169,-169,-169,-169,-169,-169,-169,-169,-169,6,6,60,1,5,50,2,-176,-176,-176,-176,-176,-176,8,6,60,1,5,23,1,8,18,-217,-217,-217,349,696,-217,-217,-217,2,66,10,162,610,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,697,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,698,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,699,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,700,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,701,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,25,66,10,16,5,51,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,702,127,703,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,10,16,5,51,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,704,127,705,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,2,66,10,162,706,1,67,707,4,6,61,78,12,708,-254,-254,-254,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,709,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,2,6,61,-316,-316,2,66,10,162,710,3,54,5,1,711,105,106,8,6,60,1,5,23,1,8,18,-217,-217,-217,535,712,-217,-217,-217,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,1,142,713,4,55,1,124,2,402,104,714,403,6,55,1,10,113,1,2,402,104,401,715,400,403,5,6,60,1,5,24,-330,-330,-330,-330,-330,3,6,60,1,644,645,716,5,6,60,1,5,24,-335,-335,-335,-335,-335,5,6,60,1,5,24,-337,-337,-337,-337,-337,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,14,1,5,59,1,1,5,32,18,16,4,6,1,10,1,-341,-341,-341,-341,-341,-341,-341,-341,-341,717,-341,-341,-341,-341,4,55,1,126,5,544,104,410,718,6,55,1,10,116,3,2,544,104,408,410,719,407,5,6,60,1,5,24,-359,-359,-359,-359,-359,3,6,60,1,652,653,720,5,6,60,1,5,24,-364,-364,-364,-364,-364,5,6,60,1,5,24,-365,-365,-365,-365,-365,5,6,60,1,5,24,-367,-367,-367,-367,-367,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-347,-347,-347,-347,-347,-347,127,-347,-347,-347,-347,125,126,-347,-347,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,25,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,721,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,9,6,60,1,5,23,1,8,9,9,-217,-217,-217,422,423,-217,-217,722,-217,5,6,60,1,5,32,-147,-147,-147,-147,-147,5,6,60,1,5,32,-148,-148,-148,-148,-148,1,86,723,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,14,39,16,1,24,1,1,7,4,5,5,2,24,37,2,309,154,104,156,157,155,99,724,725,83,158,197,308,196,23,67,25,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,726,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,60,1,5,24,-112,-112,-112,-112,-112,8,6,60,1,5,23,1,8,18,-217,-217,-217,440,727,-217,-217,-217,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,728,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,566,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,23,67,25,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,729,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,6,6,60,1,5,19,5,-125,-125,-125,-125,-125,-125,9,6,60,1,5,11,1,1,11,24,-138,-138,-138,-138,-138,-138,-138,-138,-138,9,6,60,1,5,11,1,1,11,24,-139,-139,-139,-139,-139,-139,-139,-139,-139,23,86,6,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,730,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,731,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,65,732,23,67,25,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,733,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,734,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,735,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,736,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,737,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,738,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,739,-291,-291,-291,-291,-291,-291,-291,-291,125,126,-291,-291,-291,-291,-291,-291,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,740,-295,-295,-295,-295,-295,-295,-295,-295,125,126,-295,-295,-295,-295,-295,-295,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,1,86,741,5,6,60,1,5,50,-196,-196,-196,-196,-196,8,6,60,1,5,23,1,8,18,-217,-217,-217,478,742,-217,-217,-217,5,6,60,1,5,50,-197,-197,-197,-197,-197,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,3,6,60,1,492,493,743,25,66,10,16,56,1,9,1,1,4,28,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,744,127,124,125,126,96,97,745,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,10,16,5,51,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,746,127,747,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,10,16,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,748,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,10,16,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,749,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,10,16,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,750,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,751,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,752,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,67,753,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,3,67,78,12,-255,-255,-255,24,66,6,20,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-204,-204,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,3,6,60,30,644,645,754,3,54,5,1,755,105,106,5,6,60,1,5,24,-331,-331,-331,-331,-331,8,6,60,1,5,23,1,8,18,-217,-217,-217,535,756,-217,-217,-217,5,6,60,1,5,24,-332,-332,-332,-332,-332,3,54,5,1,757,105,106,5,6,60,1,5,24,-360,-360,-360,-360,-360,8,6,60,1,5,23,1,8,18,-217,-217,-217,542,758,-217,-217,-217,5,6,60,1,5,24,-361,-361,-361,-361,-361,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,2,66,1,555,759,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,4,94,69,2,2,760,460,462,463,11,55,1,24,1,1,7,4,10,2,24,39,154,104,156,157,155,99,761,159,158,197,196,5,6,60,1,5,24,-117,-117,-117,-117,-117,3,6,60,1,568,569,762,27,6,60,1,5,20,4,52,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-116,-116,-116,-116,127,-116,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,60,1,5,24,-119,-119,-119,-119,-119,9,6,60,1,5,11,1,1,11,24,-140,-140,-140,-140,-140,-140,-140,-140,-140,23,67,25,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,763,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,59,1,2,2,-61,-61,-61,-61,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,125,126,-285,-285,-285,764,-285,-285,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,765,-286,-286,-286,-286,-286,-286,-286,-286,125,126,-286,-286,-286,-286,-286,-286,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,125,126,-290,-290,-290,-290,-290,-290,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,125,126,-294,-294,-294,-294,-294,-294,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,125,126,-298,-298,-298,-298,-298,-298,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,766,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,767,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,3,6,60,1,602,603,768,6,6,60,1,5,50,2,-177,-177,-177,-177,-177,-177,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,769,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,770,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,24,66,10,16,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,771,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,10,16,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,772,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,1,142,773,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,3,6,60,1,644,645,774,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,3,6,60,1,652,653,775,5,6,60,1,5,32,-149,-149,-149,-149,-149,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,776,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,94,777,5,6,60,1,5,24,-113,-113,-113,-113,-113,1,86,778,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,779,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,780,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,125,126,-292,-292,-292,-292,-292,-292,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,125,126,-296,-296,-296,-296,-296,-296,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,60,1,5,50,-198,-198,-198,-198,-198,24,66,10,16,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,781,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,10,16,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,782,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,3,54,5,1,783,105,106,5,6,60,1,5,24,-333,-333,-333,-333,-333,5,6,60,1,5,24,-362,-362,-362,-362,-362,45,1,5,59,1,1,5,14,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,786,-289,-289,-289,-289,784,-289,785,-289,-289,-289,-289,-289,-289,-289,-289,125,126,-289,-289,-289,-289,-289,-289,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,787,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,9,6,60,1,5,11,1,1,11,24,-141,-141,-141,-141,-141,-141,-141,-141,-141,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,125,126,-287,-287,-287,-287,-287,-287,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,125,126,-288,-288,-288,-288,-288,-288,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,1,96,788,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,789,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,6,6,60,1,29,8,18,-218,-218,-218,-218,-218,-218,45,1,5,59,1,1,5,14,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,786,-291,-291,-291,-291,790,-291,791,-291,-291,-291,-291,-291,-291,-291,-291,125,126,-291,-291,-291,-291,-291,-291,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,45,1,5,59,1,1,5,14,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,786,-290,-290,-290,-290,792,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,125,126,-290,-290,-290,-290,-290,-290,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,1,96,793,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,794,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,96,795,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,45,1,5,59,1,1,5,14,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-292,-292,-292,-292,-292,786,-292,-292,-292,-292,796,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,125,126,-292,-292,-292,-292,-292,-292,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,1,96,797,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107],W=[],F=0,U,u,f,Y;while(F<$.length){U=$[F++],u={},f=0,Y=[];while(U--)f+=$[F++],Y.push(f);for(f of Y)u[f]=$[F++];W.push(u)}return W})(),ruleTable:[0,0,3,0,3,1,4,1,4,3,4,2,5,1,5,1,5,1,9,1,9,1,9,1,9,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,8,1,8,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,45,1,45,1,55,1,57,1,54,1,54,3,61,1,61,2,63,3,63,5,63,2,63,1,47,1,47,3,71,3,71,1,17,3,17,4,17,5,18,3,18,4,18,5,19,3,19,4,19,3,20,3,20,4,20,5,21,3,21,4,21,3,21,2,21,3,21,2,36,1,36,1,36,1,79,1,79,1,79,3,79,3,79,4,79,6,79,4,79,6,79,4,79,5,79,7,79,3,79,3,79,4,79,6,81,10,81,12,81,11,81,13,81,4,99,0,99,1,99,3,99,4,99,6,100,1,100,1,100,3,100,5,100,3,100,5,102,1,102,1,102,1,90,1,90,3,90,4,90,1,101,2,101,2,107,1,107,1,107,1,107,1,107,1,107,2,107,2,107,2,107,2,107,3,107,3,107,4,107,6,80,2,80,3,80,4,112,1,112,3,112,4,112,4,112,6,114,1,114,2,113,1,113,2,111,1,111,2,116,1,116,2,117,1,117,1,39,5,87,3,87,2,87,2,87,1,32,6,32,3,15,5,15,2,34,5,34,2,125,1,125,1,121,0,121,1,121,3,121,4,121,6,128,1,128,3,128,2,128,1,129,1,129,1,129,1,129,1,130,2,40,2,40,2,40,3,40,2,40,2,109,2,109,4,132,1,132,3,132,4,132,4,132,6,115,1,115,1,115,1,115,1,133,1,133,3,42,1,42,1,82,2,43,3,43,4,43,6,44,3,44,3,76,2,76,3,38,3,38,5,95,0,95,1,10,2,10,4,10,1,30,2,30,4,31,1,31,2,31,4,31,3,143,3,143,5,146,3,146,5,22,1,22,3,22,1,22,3,22,3,22,7,22,5,22,3,22,3,23,2,23,3,23,4,23,5,151,3,151,3,151,2,26,5,26,7,26,4,26,6,155,1,155,2,156,3,156,4,158,2,158,4,158,2,158,4,24,2,24,2,24,2,24,1,161,2,161,2,161,3,25,5,25,7,25,7,25,9,25,9,25,5,25,7,25,6,25,8,25,5,25,7,25,6,25,8,25,5,25,7,25,3,25,5,25,5,25,7,25,7,25,9,25,9,25,5,25,7,25,6,25,8,25,5,25,7,25,6,25,8,25,5,25,7,25,3,25,5,168,1,168,3,93,1,93,3,27,1,27,2,27,3,27,4,27,2,27,3,27,4,27,5,33,3,28,4,173,1,173,3,173,2,174,1,174,1,174,1,29,2,12,2,12,4,12,4,12,5,12,7,12,6,12,9,179,1,179,3,179,4,179,4,179,6,180,1,180,3,180,1,180,3,177,1,178,3,13,3,13,5,13,2,13,2,13,2,13,2,13,4,13,5,13,6,13,2,13,2,13,2,13,2,13,3,13,5,13,4,13,5,13,7,185,1,185,3,185,4,185,4,185,6,187,1,187,3,187,3,187,1,187,3,35,2,35,2,35,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,4,16,2,16,2,16,2,16,2,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,5,16,3,16,5,16,4,41,2],ruleActions:($,W,F,U)=>{let u=W,f=W.length-1;switch($){case 1:return["program"];case 2:return["program",...u[f]];case 3:case 58:case 110:case 150:case 154:case 174:case 194:case 203:case 252:case 303:case 315:case 329:case 358:return[u[f]];case 4:case 111:case 175:case 195:case 204:case 316:case 330:case 359:return[...u[f-2],u[f]];case 5:case 60:case 157:case 317:return u[f-1];case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 63:case 64:case 86:case 87:case 88:case 89:case 90:case 115:case 120:case 121:case 122:case 123:case 126:case 129:case 130:case 131:case 132:case 133:case 145:case 171:case 172:case 178:case 182:case 183:case 184:case 185:case 199:case 200:case 201:case 217:case 218:case 232:case 234:case 263:case 301:case 318:case 319:case 320:case 334:case 336:case 338:case 363:case 366:return u[f];case 47:return"undefined";case 48:return"null";case 57:return["str",...u[f-1]];case 59:case 151:case 155:case 253:return[...u[f-1],u[f]];case 61:case 193:case 197:case 332:case 361:return u[f-2];case 62:return"";case 65:return["regex",u[f-1]];case 66:return["regex-index",u[f-2],u[f]];case 67:return["regex-index",u[f],null];case 68:return["=",u[f-2],u[f]];case 69:return["=",u[f-3],u[f]];case 70:return["=",u[f-4],u[f-1]];case 71:return["state",u[f-2],u[f]];case 72:return["state",u[f-3],u[f]];case 73:return["state",u[f-4],u[f-1]];case 74:case 76:return["computed",u[f-2],u[f]];case 75:return["computed",u[f-3],u[f]];case 77:return["readonly",u[f-2],u[f]];case 78:return["readonly",u[f-3],u[f]];case 79:return["readonly",u[f-4],u[f-1]];case 80:case 82:return["effect",u[f-2],u[f]];case 81:return["effect",u[f-3],u[f]];case 83:case 84:case 85:return["effect",null,u[f]];case 91:case 100:case 138:return[".",u[f-2],u[f]];case 92:case 101:case 139:return["?.",u[f-2],u[f]];case 93:case 95:case 102:case 140:return["[]",u[f-3],u[f-1]];case 94:case 96:case 103:case 141:return["[]",u[f-5],u[f-2]];case 97:return[u[f-1][0],u[f-3],...u[f-1].slice(1)];case 98:return["optindex",u[f-4],u[f-1]];case 99:return["optindex",u[f-6],u[f-2]];case 104:return["object-comprehension",u[f-8],u[f-6],[["for-of",u[f-4],u[f-2],!1]],[]];case 105:return["object-comprehension",u[f-10],u[f-8],[["for-of",u[f-6],u[f-4],!1]],[u[f-2]]];case 106:return["object-comprehension",u[f-9],u[f-7],[["for-of",u[f-4],u[f-2],!0]],[]];case 107:return["object-comprehension",u[f-11],u[f-9],[["for-of",u[f-6],u[f-4],!0]],[u[f-2]]];case 108:return["object",...u[f-2]];case 109:case 152:case 173:case 192:return[];case 112:case 176:case 196:case 331:case 360:return[...u[f-3],u[f]];case 113:case 177:case 198:case 333:case 362:return[...u[f-5],...u[f-2]];case 114:return[u[f],u[f],null];case 116:return[u[f-2],u[f],":"];case 117:return[u[f-4],u[f-1],":"];case 118:return[u[f-2],u[f],"="];case 119:return[u[f-4],u[f-1],"="];case 124:return["dynamicKey",u[f-1]];case 125:return["[]","this",u[f-1]];case 127:case 128:case 186:return["...",u[f]];case 134:case 190:return["super",...u[f]];case 135:case 136:case 137:case 188:case 191:return[u[f-1],...u[f]];case 142:return["array"];case 143:return["array",...u[f-1]];case 144:return["array",...u[f-2],...u[f-1]];case 146:return[...u[f-2],...u[f]];case 147:return[...u[f-3],...u[f]];case 148:return[...u[f-2],...u[f-1]];case 149:return[...u[f-5],...u[f-4],...u[f-2],...u[f-1]];case 153:return[...u[f]];case 156:return null;case 158:return"..";case 159:case 202:return"...";case 160:return[u[f-2],u[f-3],u[f-1]];case 161:case 387:case 389:case 390:case 405:case 407:return[u[f-1],u[f-2],u[f]];case 162:return[u[f],u[f-1],null];case 163:return[u[f-1],null,u[f]];case 164:return[u[f],null,null];case 165:return["def",u[f-4],u[f-2],u[f]];case 166:return["def",u[f-1],[],u[f]];case 167:case 169:return[u[f-1],u[f-3],u[f]];case 168:case 170:return[u[f-1],[],u[f]];case 179:case 302:return["default",u[f-2],u[f]];case 180:return["rest",u[f]];case 181:return["expansion"];case 187:return["tagged-template",u[f-1],u[f]];case 189:return["optcall",u[f-2],...u[f]];case 205:case 206:return"this";case 207:return[".","this",u[f]];case 208:return[".","super",u[f]];case 209:return["[]","super",u[f-1]];case 210:return["[]","super",u[f-2]];case 211:return[".","new",u[f]];case 212:return[".","import",u[f]];case 213:return["block"];case 214:return["block",...u[f-1]];case 215:return u[f-1].length===1?u[f-1][0]:["block",...u[f-1]];case 216:return u[f-2].length===1?u[f-2][0]:["block",...u[f-2]];case 219:return["return",u[f]];case 220:return["return",u[f-1]];case 221:return["return"];case 222:return["throw",u[f]];case 223:return["throw",u[f-1]];case 224:return["yield"];case 225:return["yield",u[f]];case 226:return["yield",u[f-1]];case 227:return["yield-from",u[f]];case 228:return["if",u[f-1],u[f]];case 229:return u[f-4].length===3?["if",u[f-4][1],u[f-4][2],["if",u[f-1],u[f]]]:[...u[f-4],["if",u[f-1],u[f]]];case 230:return["if",["!",u[f-1]],u[f]];case 231:return["if",["!",u[f-3]],u[f-2],u[f]];case 233:return u[f-2].length===3?["if",u[f-2][1],u[f-2][2],u[f]]:[...u[f-2],u[f]];case 235:case 236:return["if",u[f],[u[f-2]]];case 237:return["?:",u[f-4],u[f-6],u[f-1]];case 238:return["?:",u[f-2],u[f-4],u[f]];case 239:case 240:return["if",["!",u[f]],[u[f-2]]];case 241:return["try",u[f]];case 242:return["try",u[f-1],u[f]];case 243:return["try",u[f-2],u[f]];case 244:return["try",u[f-3],u[f-2],u[f]];case 245:case 246:case 368:case 371:case 373:return[u[f-1],u[f]];case 247:return[null,u[f]];case 248:return["switch",u[f-3],u[f-1],null];case 249:return["switch",u[f-5],u[f-3],u[f-1]];case 250:return["switch",null,u[f-1],null];case 251:return["switch",null,u[f-3],u[f-1]];case 254:return["when",u[f-1],u[f]];case 255:return["when",u[f-2],u[f-1]];case 256:return["while",u[f]];case 257:return["while",u[f-2],u[f]];case 258:return["while",["!",u[f]]];case 259:return["while",["!",u[f-2]],u[f]];case 260:return u[f-1].length===2?[u[f-1][0],u[f-1][1],u[f]]:[u[f-1][0],u[f-1][1],u[f-1][2],u[f]];case 261:case 262:return u[f].length===2?[u[f][0],u[f][1],[u[f-1]]]:[u[f][0],u[f][1],u[f][2],[u[f-1]]];case 264:return["loop",u[f]];case 265:return["loop",[u[f]]];case 266:return["loop-n",u[f-1],u[f]];case 267:return["for-in",u[f-3],u[f-1],null,null,u[f]];case 268:return["for-in",u[f-5],u[f-3],null,u[f-1],u[f]];case 269:return["for-in",u[f-5],u[f-3],u[f-1],null,u[f]];case 270:return["for-in",u[f-7],u[f-5],u[f-1],u[f-3],u[f]];case 271:return["for-in",u[f-7],u[f-5],u[f-3],u[f-1],u[f]];case 272:return["for-of",u[f-3],u[f-1],!1,null,u[f]];case 273:return["for-of",u[f-5],u[f-3],!1,u[f-1],u[f]];case 274:return["for-of",u[f-3],u[f-1],!0,null,u[f]];case 275:return["for-of",u[f-5],u[f-3],!0,u[f-1],u[f]];case 276:return["for-as",u[f-3],u[f-1],!1,null,u[f]];case 277:return["for-as",u[f-5],u[f-3],!1,u[f-1],u[f]];case 278:case 280:return["for-as",u[f-3],u[f-1],!0,null,u[f]];case 279:case 281:return["for-as",u[f-5],u[f-3],!0,u[f-1],u[f]];case 282:return["for-in",[],u[f-1],null,null,u[f]];case 283:return["for-in",[],u[f-3],u[f-1],null,u[f]];case 284:return["comprehension",u[f-4],[["for-in",u[f-2],u[f],null]],[]];case 285:return["comprehension",u[f-6],[["for-in",u[f-4],u[f-2],null]],[u[f]]];case 286:return["comprehension",u[f-6],[["for-in",u[f-4],u[f-2],u[f]]],[]];case 287:return["comprehension",u[f-8],[["for-in",u[f-6],u[f-4],u[f]]],[u[f-2]]];case 288:return["comprehension",u[f-8],[["for-in",u[f-6],u[f-4],u[f-2]]],[u[f]]];case 289:return["comprehension",u[f-4],[["for-of",u[f-2],u[f],!1]],[]];case 290:return["comprehension",u[f-6],[["for-of",u[f-4],u[f-2],!1]],[u[f]]];case 291:return["comprehension",u[f-5],[["for-of",u[f-2],u[f],!0]],[]];case 292:return["comprehension",u[f-7],[["for-of",u[f-4],u[f-2],!0]],[u[f]]];case 293:return["comprehension",u[f-4],[["for-as",u[f-2],u[f],!1,null]],[]];case 294:return["comprehension",u[f-6],[["for-as",u[f-4],u[f-2],!1,null]],[u[f]]];case 295:return["comprehension",u[f-5],[["for-as",u[f-2],u[f],!0,null]],[]];case 296:return["comprehension",u[f-7],[["for-as",u[f-4],u[f-2],!0,null]],[u[f]]];case 297:return["comprehension",u[f-4],[["for-as",u[f-2],u[f],!0,null]],[]];case 298:return["comprehension",u[f-6],[["for-as",u[f-4],u[f-2],!0,null]],[u[f]]];case 299:return["comprehension",u[f-2],[["for-in",[],u[f],null]],[]];case 300:return["comprehension",u[f-4],[["for-in",[],u[f-2],u[f]]],[]];case 304:case 335:case 337:case 364:case 365:case 367:return[u[f-2],u[f]];case 305:return["class",null,null];case 306:return["class",null,null,u[f]];case 307:return["class",null,u[f]];case 308:return["class",null,u[f-1],u[f]];case 309:return["class",u[f],null];case 310:return["class",u[f-1],null,u[f]];case 311:return["class",u[f-2],u[f]];case 312:return["class",u[f-3],u[f-1],u[f]];case 313:return["enum",u[f-1],u[f]];case 314:return["component",null,["block",...u[f-1]]];case 321:return["render",u[f]];case 322:case 325:return["import","{}",u[f]];case 323:case 324:return["import",u[f-2],u[f]];case 326:return["import",u[f-4],u[f]];case 327:return["import",[u[f-4],u[f-2]],u[f]];case 328:return["import",[u[f-7],u[f-4]],u[f]];case 339:return["*",u[f]];case 340:return["export","{}"];case 341:return["export",u[f-2]];case 342:case 343:case 344:case 345:case 349:case 350:case 351:case 352:return["export",u[f]];case 346:return["export",["=",u[f-2],u[f]]];case 347:return["export",["=",u[f-3],u[f]]];case 348:return["export",["=",u[f-4],u[f-1]]];case 353:return["export-default",u[f]];case 354:return["export-default",u[f-1]];case 355:return["export-all",u[f]];case 356:return["export-from","{}",u[f]];case 357:return["export-from",u[f-4],u[f]];case 369:case 370:case 372:case 410:return["do-iife",u[f]];case 374:return["-",u[f]];case 375:return["+",u[f]];case 376:return["?",u[f-1]];case 377:return["defined",u[f-1]];case 378:return["presence",u[f-1]];case 379:return["await",u[f]];case 380:return["await",u[f-1]];case 381:return["--",u[f],!1];case 382:return["++",u[f],!1];case 383:return["--",u[f-1],!0];case 384:return["++",u[f-1],!0];case 385:return["+",u[f-2],u[f]];case 386:return["-",u[f-2],u[f]];case 388:return["**",u[f-2],u[f]];case 391:return["&",u[f-2],u[f]];case 392:return["^",u[f-2],u[f]];case 393:return["|",u[f-2],u[f]];case 394:case 395:case 396:case 397:case 398:case 399:return["control",u[f-1],u[f-2],u[f]];case 400:return["&&",u[f-2],u[f]];case 401:return["||",u[f-2],u[f]];case 402:return["??",u[f-2],u[f]];case 403:return["!?",u[f-2],u[f]];case 404:return["|>",u[f-2],u[f]];case 406:return["?:",u[f-4],u[f-2],u[f]];case 408:return[u[f-3],u[f-4],u[f-1]];case 409:return[u[f-2],u[f-3],u[f]]}},parseError($,W){let F,U,u,f,Y,_,A;if(W.recoverable)return this.trace($);else throw u=(W.line||0)+1,F=W.loc?.c||0,A=W.token?` (token: ${W.token})`:"",_=W.text?` near '${W.text}'`:"",f=`line ${u}, column ${F}`,Y=`Parse error at ${f}${A}${_}: ${$}`,U=Error(Y),U.hash=W,U},parse($){let W,F,U,u,f,Y,_,A,J,w,z,X,Z,K,R,Q,M,H,O,q,E,I,D,G,P,B;[q,B,w]=[[0],[null],[]],[Z,P,D,I,Q]=[this.parseTable,"",0,0,0],[F,W]=[2,1],A=Object.create(this.lexer),H={ctx:{}};for(let N in this.ctx){if(!Object.hasOwn(this.ctx,N))continue;let T=this.ctx[N];H.ctx[N]=T}if(A.setInput($,H.ctx),[H.ctx.lexer,H.ctx.parser]=[A,this],A.loc==null)A.loc={};G=A.loc,w.push(G),this.parseError=typeof H.ctx.parseError==="function"?H.ctx.parseError:Object.getPrototypeOf(this).parseError,_=()=>{let N;if(N=A.lex()||W,typeof N!=="number")N=this.symbolIds[N]||N;return N},E=K=O=U=R=X=Y=z=f=null,M={};while(!0){if(O=q[q.length-1],E==null)E=_();if(U=Z[O]?.[E],U==null){if(u="",!Q)f=(()=>{let N=[];for(let T in Z[O]){if(!Object.hasOwn(Z[O],T))continue;if(this.tokenNames[T]&&T>F)N.push(`'${this.tokenNames[T]}'`)}return N})();throw u=(()=>{if(A.showPosition)return`Parse error on line ${D+1}:
|
|
12
|
-
${
|
|
13
|
-
Expecting ${f.join(", ")}, got '${this.tokenNames[E]||E}'`;else return`Parse error on line ${D+1}: Unexpected ${E===W?"end of input":`'${this.tokenNames[E]||E}'`}`,this.parseError(u,{text:A.match,token:this.tokenNames[E]||E,line:A.line,loc:G,expected:f})})(),Error(u)}if(U>0)if(q.push(E,U),B.push(A.text),w.push(A.loc),E=null,!K){if([I,P,D,G]=[A.len,A.text,A.line,A.loc],Q>0)Q--}else[E,K]=[K,null];else if(U<0){if(Y=this.ruleTable[-U*2+1],M.$=B[B.length-Y],J=w[w.length-(Y||1)],M._$={r:J.r,c:J.c},R=this.ruleActions.call(M,-U,B,w,H.ctx),R!=null)M.$=R;if(Array.isArray(M.$))M.$.loc=M._$;if(Y)q.length-=Y*2,B.length-=Y,w.length-=Y;q.push(this.ruleTable[-U*2]),B.push(M.$),w.push(M._$),z=Z[q[q.length-2]][q[q.length-1]],q.push(z)}else if(U===0)return B[B.length-1]}},trace(){},ctx:{}},j3=($={})=>{let W=Object.create(V3);return Object.defineProperty(W,"ctx",{value:{...$},enumerable:!1,writable:!0,configurable:!0}),W},s=j3();var a3=s.parse.bind(s);var C3=new Set(["html","head","title","base","link","meta","style","body","address","article","aside","footer","header","h1","h2","h3","h4","h5","h6","main","nav","section","blockquote","dd","div","dl","dt","figcaption","figure","hr","li","ol","p","pre","ul","a","abbr","b","bdi","bdo","br","cite","code","data","dfn","em","i","kbd","mark","q","rp","rt","ruby","s","samp","small","span","strong","sub","sup","time","u","var","wbr","area","audio","img","map","track","video","embed","iframe","object","param","picture","portal","source","svg","math","canvas","noscript","script","del","ins","caption","col","colgroup","table","tbody","td","tfoot","th","thead","tr","button","datalist","fieldset","form","input","label","legend","meter","optgroup","option","output","progress","select","textarea","details","dialog","menu","summary","slot","template"]),Y1=new Set(["svg","g","defs","symbol","use","marker","clipPath","mask","pattern","circle","ellipse","line","path","polygon","polyline","rect","text","textPath","tspan","linearGradient","radialGradient","stop","filter","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","animate","animateMotion","animateTransform","set","mpath","desc","foreignObject","image","metadata","switch","title","view"]),z2=new Set([...C3,...Y1]);var c1=new Set(["beforeMount","mounted","updated","beforeUnmount","unmounted","onError"]),y3=new Set(["disabled","hidden","readonly","required","checked","selected","autofocus","autoplay","controls","loop","muted","multiple","novalidate","open","reversed","defer","async","formnovalidate","allowfullscreen","inert"]);function b3($){for(let W of $){if(!Array.isArray(W))continue;let F=W[0]instanceof String?W[0].valueOf():W[0],U=W[1]instanceof String?W[1].valueOf():W[1];if(F==="type"&&typeof U==="string")return U.replace(/^["']|["']$/g,"")}return null}function O1($){if(typeof $==="string")return $;if(Array.isArray($)&&$[0]==="."&&$[1]==="this"&&typeof $[2]==="string")return $[2];return null}function g1($){return Array.isArray($)&&$[0]==="."&&$[1]==="this"}function K2($,W){W.prototype.rewriteRender=function(){let U=(Z,K,R)=>{let Q=[Z,K];if(Q.pre=0,Q.data=null,Q.loc=R?.loc??{r:0,c:0,n:0},Q.spaced=!1,Q.newLine=!1,Q.generated=!0,R)Q.origin=R;return Q},u=!1,f=0,Y=0,_=[],A=(Z)=>{let K=Z.split("#")[0];return z2.has(K)},J=(Z)=>{if(!Z||typeof Z!=="string")return!1;return/^[A-Z]/.test(Z)},w=(Z)=>{return A(Z)||J(Z)},z=(Z,K,R,Q)=>{let M=1,H=K;while(H>=0&&M>0){let O=Z[H][0];if(O===R)M++;else if(O===Q)M--;if(M>0)H--}return H},X=(Z,K)=>{let R=K;while(R>0){let Q=Z[R-1][0];if(Q==="TERMINATOR"||Q==="RENDER")break;if(Q==="INDENT"||Q==="OUTDENT"){let M=Z[R][0];if(M==="CALL_END"||M===")"){R=z(Z,R-1,M,M==="CALL_END"?"CALL_START":"(");continue}break}if(Q==="CALL_END"||Q===")"){R=z(Z,R-2,Q,Q==="CALL_END"?"CALL_START":"(");continue}if(Q==="INTERPOLATION_END"){R=z(Z,R-2,"INTERPOLATION_END","INTERPOLATION_START");continue}if(Q==="STRING_END"){R=z(Z,R-2,"STRING_END","STRING_START");continue}R--}return Z[R]&&Z[R][0]==="IDENTIFIER"&&w(Z[R][1])};this.scanTokens(function(Z,K,R){let Q=Z[0],M=K<R.length-1?R[K+1]:null;if(Q==="RENDER")return u=!0,f=Y+1,1;if(Q==="INDENT")return Y++,1;if(Q==="OUTDENT"){Y--;let H=0;while(_.length>0&&_[_.length-1]>Y){let O=U("CALL_END",")",Z);R.splice(K+1+H,0,O),_.pop(),H++}if(u&&Y<f)u=!1;return 1+H}if(!u)return 1;if(Q==="UNARY_MATH"&&Z[1]==="~"&&M&&M[0]==="IDENTIFIER"){Z[0]="PROPERTY",Z[1]="__transition__";let H=U(":",":",Z),O=U("STRING",`"${M[1]}"`,M);return R.splice(K+1,1,H,O),1}if(Q==="IDENTIFIER"&&!Z.spaced){let H=[Z[1]],O=K+1;while(O+1<R.length){let q=R[O],E=R[O+1];if(q[0]==="-"&&!q.spaced&&(E[0]==="IDENTIFIER"||E[0]==="PROPERTY")){if(H.push(E[1]),O+=2,E[0]==="PROPERTY")break}else break}if(H.length>1&&O>K+1&&R[O-1][0]==="PROPERTY")return Z[0]="STRING",Z[1]=`"${H.join("-")}"`,R.splice(K+1,O-K-1),1}if(Q==="."){let H=K>0?R[K-1]:null,O=H?H[0]:null;if(O==="INDENT"||O==="TERMINATOR"){if(M&&M[0]==="PROPERTY"){let q=K+2<R.length?R[K+2]:null;if(!q||q[0]!==":"){let E=U("IDENTIFIER","div",Z);return R.splice(K,0,E),2}}if(!M||M[0]!=="(")return Z[0]="IDENTIFIER",Z[1]="div",0}}if(Q==="IDENTIFIER"||Q==="PROPERTY"){let H=R[K+1],O=R[K+2];if(H&&H[0]==="#"&&O&&(O[0]==="PROPERTY"||O[0]==="IDENTIFIER")){if(Z[1]=Z[1]+"#"+O[1],O.spaced)Z.spaced=!0;return R.splice(K+1,2),0}}if(Q==="BIND"){let H=K>0?R[K-1]:null,O=R[K+1];if(H&&(H[0]==="IDENTIFIER"||H[0]==="PROPERTY")&&O&&O[0]==="IDENTIFIER")return H[1]=`__bind_${H[1]}__`,Z[0]=":",Z[1]=":",1}if(Q==="@"){let H=K+1;if(H<R.length&&R[H][0]==="PROPERTY"){H++;while(H+1<R.length&&R[H][0]==="."&&R[H+1][0]==="PROPERTY")H+=2;if(H>K+2&&H<R.length&&R[H][0]===":"){let O=U("[","[",Z);R.splice(K,0,O);let q=U("]","]",R[H+1]);return R.splice(H+1,0,q),2}}}if(Q==="."&&M&&M[0]==="("){let H=K>0?R[K-1]:null,O=H?H[0]:null,q=O==="INDENT"||O==="TERMINATOR",E=U("PROPERTY","__clsx",Z);M[0]="CALL_START";let I=1;for(let D=K+2;D<R.length&&I>0;D++)if(R[D][0]==="("||R[D][0]==="CALL_START")I++;else if(R[D][0]===")"){if(I--,I===0)R[D][0]="CALL_END"}else if(R[D][0]==="CALL_END")I--;if(q){let D=U("IDENTIFIER","div",Z);return R.splice(K,0,D),R.splice(K+2,0,E),3}else if(O===":")return R[K]=U("IDENTIFIER","__clsx",Z),1;else return R.splice(K+1,0,E),2}if(M&&M[0]==="INDENT"){if(M.fromThen)return 1;if(Q==="->"||Q==="=>"||Q==="CALL_START"||Q==="(")return 1;let H=!1,O=K>0?R[K-1][0]:null,q=O==="IF"||O==="UNLESS"||O==="WHILE"||O==="UNTIL"||O==="WHEN",E=!1;if(Q==="CALL_END"){let I=1;for(let D=K-1;D>=0&&I>0;D--)if(R[D][0]==="CALL_END")I++;else if(R[D][0]==="CALL_START"){if(I--,I===0&&D>0&&R[D-1][0]==="PROPERTY"&&R[D-1][1]==="__clsx")E=!0}}if(E)H=!0;else if(Q==="IDENTIFIER"&&w(Z[1])&&!q)H=!0;else if(Q==="IDENTIFIER"&&!q)H=X(R,K);else if(Q==="PROPERTY"||Q==="STRING"||Q==="STRING_END"||Q==="NUMBER"||Q==="BOOL"||Q==="CALL_END"||Q===")"||Q==="PRESENCE")H=X(R,K);if(H){let I=Q==="PROPERTY"&&K>0&&(R[K-1][0]==="."||R[K-1][0]==="#");if(E||Q==="IDENTIFIER"&&w(Z[1])||I){let G=U("CALL_START","(",Z),P=U("->","->",Z);return P.newLine=!0,R.splice(K+1,0,G,P),_.push(Y+1),3}else{let G=U(",",",",Z),P=U("->","->",Z);return P.newLine=!0,R.splice(K+1,0,G,P),3}}}if(Q==="IDENTIFIER"&&J(Z[1])&&M&&(M[0]==="OUTDENT"||M[0]==="TERMINATOR"))return R.splice(K+1,0,U("CALL_START","(",Z),U("CALL_END",")",Z)),3;return 1})};let F=$.prototype;F.isHtmlTag=function(U){let u=U.split("#")[0];return z2.has(u.toLowerCase())},F.isComponent=function(U){if(!U||typeof U!=="string")return!1;return/^[A-Z]/.test(U)},F.collectTemplateClasses=function(U){let u=[],f=U;while(this.is(f,".")){let J=f[2];if(typeof J==="string"||J instanceof String)u.unshift(J.valueOf());f=f[1]}let Y=typeof f==="string"?f:f instanceof String?f.valueOf():null;if(Y===null)return{tag:null,classes:u,id:void 0};let[_,A]=Y.split("#");if(!_)_="div";return{tag:_,classes:u,id:A}},F.transformComponentMembers=function(U){let u=this._self;if(!Array.isArray(U)){if(typeof U==="string"&&this.reactiveMembers&&this.reactiveMembers.has(U))return[".",[".",u,U],"value"];if(typeof U==="string"&&this.componentMembers&&this.componentMembers.has(U))return[".",u,U];return U}if(U[0]==="."&&U[1]==="this"&&typeof U[2]==="string"){let f=U[2];if(this.reactiveMembers&&this.reactiveMembers.has(f))return[".",[".",u,f],"value"];return this._factoryMode?[".",u,U[2]]:U}if(U[0]==="."||U[0]==="?.")return[U[0],this.transformComponentMembers(U[1]),U[2]];if(U[0]==="->")return["=>",...U.slice(1).map((f)=>this.transformComponentMembers(f))];if(U[0]==="object")return["object",...U.slice(1).map((f)=>{if(Array.isArray(f)&&f.length>=2){let Y=f[0],_=Array.isArray(Y)?this.transformComponentMembers(Y):Y,A=this.transformComponentMembers(f[1]);return[_,A,f[2]]}return this.transformComponentMembers(f)})];return U.map((f)=>this.transformComponentMembers(f))},F.generateComponent=function(U,u,f,Y){let[,_]=u;this.usesTemplates=!0,this.usesReactivity=!0;let A=this.is(_,"block")?_.slice(1):[],J=[],w=[],z=[],X=[],Z=[],K=[],R=null,Q=new Set,M=new Set;for(let G of A){if(!Array.isArray(G))continue;let[P]=G;if(P==="state"){let B=O1(G[1]);if(B)J.push({name:B,value:G[2],isPublic:g1(G[1])}),Q.add(B),M.add(B)}else if(P==="computed"){let B=O1(G[1]);if(B)w.push({name:B,expr:G[2]}),Q.add(B),M.add(B)}else if(P==="readonly"){let B=O1(G[1]);if(B)z.push({name:B,value:G[2],isPublic:g1(G[1])}),Q.add(B)}else if(P==="="){let B=O1(G[1]);if(B)if(c1.has(B))Z.push({name:B,value:G[2]});else{let N=G[2];if(Array.isArray(N)&&(N[0]==="->"||N[0]==="=>"))X.push({name:B,func:N}),Q.add(B);else J.push({name:B,value:N,isPublic:g1(G[1])}),Q.add(B),M.add(B)}}else if(P==="effect")K.push(G);else if(P==="render")R=G;else if(P==="object")for(let B=1;B<G.length;B++){let N=G[B];if(!Array.isArray(N))continue;let[T,S]=N;if(typeof T==="string"&&c1.has(T))Z.push({name:T,value:S});else if(typeof T==="string")X.push({name:T,func:S}),Q.add(T)}}let H=new Map;for(let{name:G}of X)if(/^on[A-Z]/.test(G)&&!c1.has(G))H.set(G[2].toLowerCase()+G.slice(3),G);let O=this.componentMembers,q=this.reactiveMembers,E=this._autoEventHandlers;this.componentMembers=Q,this.reactiveMembers=M,this._autoEventHandlers=H.size>0?H:null;let I=[],D="";I.push("class extends __Component {"),I.push(" _init(props) {");for(let{name:G,value:P,isPublic:B}of z){let N=this.generateInComponent(P,"value");I.push(B?` this.${G} = props.${G} ?? ${N};`:` this.${G} = ${N};`)}for(let{name:G,value:P,isPublic:B}of J){let N=this.generateInComponent(P,"value");I.push(B?` this.${G} = __state(props.__bind_${G}__ ?? props.${G} ?? ${N});`:` this.${G} = __state(${N});`)}for(let{name:G,expr:P}of w)if(this.is(P,"block")&&P.length>2){let B=this.transformComponentMembers(P),N=this.generateFunctionBody(B);I.push(` this.${G} = __computed(() => ${N});`)}else{let B=this.generateInComponent(P,"value");I.push(` this.${G} = __computed(() => ${B});`)}for(let G of K){let P=G[2],B=this.containsAwait(P)?"async ":"";if(this.is(P,"block")&&P.length>2){let N=this.transformComponentMembers(P),T=this.generateFunctionBody(N,[],!0);I.push(` __effect(${B}() => ${T});`)}else{let N=this.generateInComponent(P,"value");I.push(` __effect(${B}() => { ${N}; });`)}}I.push(" }");for(let{name:G,func:P}of X)if(Array.isArray(P)&&(P[0]==="->"||P[0]==="=>")){let[,B,N]=P,T=Array.isArray(B)?B.map((c)=>this.formatParam(c)).join(", "):"",S=this.reactiveMembers?this.transformComponentMembers(N):N,j=this.containsAwait(N),C=this.generateFunctionBody(S,B||[]);I.push(` ${j?"async ":""}${G}(${T}) ${C}`)}for(let{name:G,value:P}of Z)if(Array.isArray(P)&&(P[0]==="->"||P[0]==="=>")){let[,B,N]=P,T=Array.isArray(B)?B.map((c)=>this.formatParam(c)).join(", "):"",S=this.reactiveMembers?this.transformComponentMembers(N):N,j=this.containsAwait(N),C=this.generateFunctionBody(S,B||[]);I.push(` ${j?"async ":""}${G}(${T}) ${C}`)}if(R){let G=R[1],P=this.buildRender(G);if(P.blockFactories.length>0)D=P.blockFactories.join(`
|
|
5
|
+
`+$;return $}advance($){let U=this.code.slice(this.pos,this.pos+$);for(let W=0;W<U.length;W++)if(U[W]===`
|
|
6
|
+
`)this.row++,this.col=0;else this.col++;this.pos+=$}emit($,U,{len:W,data:F,pre:f}={}){let u=O1($,U,{pre:f??0,row:this.row,col:this.col,len:W??(typeof U==="string"?U.length:0),data:F});return this.tokens.push(u),u}prev(){return this.tokens[this.tokens.length-1]}prevTag(){let $=this.prev();return $?$[0]:void 0}prevVal(){let $=this.prev();return $?$[1]:void 0}identifierToken(){if(M3.test(this.chunk))return 0;let $=w3.exec(this.chunk);if(!$)return 0;let[,U,W]=$,F=U.length,f={},u;if(U==="own"&&this.prevTag()==="FOR")return this.emit("OWN",U,{len:F}),F;if(U==="from"&&this.prevTag()==="YIELD")return this.emit("FROM",U,{len:F}),F;if(U==="as"&&!this.seenFor&&(this.seenImport||this.seenExport)){if(this.seenImport){if(this.prevVal()==="*")this.prev()[0]="IMPORT_ALL"}let w=this.prevTag();if(w==="DEFAULT"||w==="IMPORT_ALL"||w==="IDENTIFIER")return this.emit("AS",U,{len:F}),F}if((U==="as"||U==="as!")&&this.seenFor)return this.seenFor=!1,this.emit(U==="as!"?"FORASAWAIT":"FORAS","as",{len:F}),F;if(U==="default"&&this.seenExport&&(this.prevTag()==="EXPORT"||this.prevTag()==="AS"))return this.emit("DEFAULT",U,{len:F}),F;let Y;if(U==="do"&&(Y=/^(\s*super)(?!\(\))/.exec(this.chunk.slice(3))))return this.emit("SUPER","super"),this.emit("CALL_START","("),this.emit("CALL_END",")"),Y[1].length+3;let A=this.prev();if(W&&A&&A[0]==="TERNARY")W=null;if(W||A&&(A[0]==="."||A[0]==="?."||!A.spaced&&A[0]==="@")){if(u="PROPERTY",this.inRenderBlock&&A&&A[0]==="."&&!W){let w=this.chunk.slice(F);while(w[0]==="-"&&/^-[a-zA-Z]/.test(w)){let z=/^-([a-zA-Z][\w]*)/.exec(w);if(!z)break;U+="-"+z[1],F+=1+z[1].length,w=this.chunk.slice(F)}}}else u="IDENTIFIER";let _=U.endsWith("!")||U.endsWith("?")?U.slice(0,-1):U;if(u==="IDENTIFIER"&&!U.endsWith("!")&&!U.endsWith("?")&&(U2.has(U)||W2.has(U)||F2.has(U))&&!(this.exportSpecifierList&&F2.has(U))){if(c1[U]!==void 0)f.original=U,U=c1[U];u=this.classifyKeyword(U,u,f)}if(u==="IDENTIFIER"&&a2.has(_))x(`reserved word '${_}'`,{row:this.row,col:this.col,len:F});if(u==="PROPERTY"&&A){if(A[0]==="."&&this.tokens.length>1){let w=this.tokens[this.tokens.length-2];if(w[0]==="UNARY"&&w[1]==="new")w[0]="NEW_TARGET";if(w[0]==="IMPORT"&&w[1]==="import")this.seenImport=!1,w[0]="IMPORT_META"}}if(U.length>1&&U.endsWith("!"))f.await=!0,U=U.slice(0,-1);if(U.length>1&&U.endsWith("?"))f.predicate=!0,U=U.slice(0,-1);let R=this.emit(u,U,{len:F,data:Object.keys(f).length?f:null});if(u==="RENDER")this.inRenderBlock=!0,this.renderIndent=this.indent;if(W)return this.emit(":",":",{len:1}),F+W.length;return F}classifyKeyword($,U,W){switch($){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"true":case"false":return"BOOL";case"&&":case"||":return $}if(s2.has($))return"STATEMENT";let F=$.toUpperCase();if(F==="WHEN"&&A1.has(this.prevTag()))return"LEADING_WHEN";if(F==="FOR")return this.seenFor={endsLength:this.ends.length},"FOR";if(F==="UNLESS")return"UNLESS";if(F==="IMPORT")return this.seenImport=!0,"IMPORT";if(F==="EXPORT")return this.seenExport=!0,"EXPORT";if(t2.has(F))return"UNARY";if(e2.has(F)){if(F!=="INSTANCEOF"&&this.seenFor)return this.seenFor=!1,"FOR"+F;if(this.prevVal()==="!"){let f=this.tokens.pop();W.invert=f.data?.original||f[1]}return"RELATION"}if(U2.has($)||W2.has($))return F;return U}commentToken(){if(this.inRenderBlock){if(/^#[a-zA-Z_]/.test(this.chunk)){let U=this.prev();if(U&&(U[0]==="IDENTIFIER"||U[0]==="PROPERTY"))return 0;let W=/^#([a-zA-Z_][\w-]*)/.exec(this.chunk);if(W)return this.emit("IDENTIFIER",W[1]==="content"?"slot":"div#"+W[1]),W[0].length}if(/^\s+#[a-zA-Z_]/.test(this.chunk))return 0}let $=K3.exec(this.chunk);if(!$)return 0;return $[0].length}whitespaceToken(){let $=X3.exec(this.chunk);if(!$&&this.chunk[0]!==`
|
|
7
|
+
`)return 0;let U=this.prev();if(U)if($)U.spaced=!0,U.pre=$[0].length;else U.newLine=!0;return $?$[0].length:0}lineToken(){let $=z3.exec(this.chunk);if(!$)return 0;let U=$[0],W=U.length-1-U.lastIndexOf(`
|
|
8
|
+
`);if(this.isUnfinished()){if(W<this.indent&&/^\s*,/.test(this.chunk)&&!Z2.has(this.prevTag())){if(this.outdentTo(W,U.length),this.prevTag()==="TERMINATOR")this.tokens.pop();return U.length}return U.length}if(this.seenFor&&!(this.seenFor.endsLength<this.ends.length))this.seenFor=!1;if(!this.importSpecifierList)this.seenImport=!1;if(!this.exportSpecifierList)this.seenExport=!1;if(W===this.indent)return this.emitNewline(),U.length;if(W>this.indent){if(!this.tokens.length)return this.indent=W,U.length;let F=W-this.indent;return this.emit("INDENT",F,{len:W}),this.indents.push(F),this.ends.push({tag:"OUTDENT"}),this.indent=W,U.length}return this.outdentTo(W,U.length),U.length}outdentTo($,U=0){if(this.inRenderBlock&&$<=this.renderIndent)this.inRenderBlock=!1;let W=this.indent-$;while(W>0){let F=this.indents[this.indents.length-1];if(!F)W=0;else this.indents.pop(),this.pair("OUTDENT"),this.emit("OUTDENT",W,{len:U}),W-=F}this.emitNewline(),this.indent=$}closeIndentation(){this.outdentTo(0)}emitNewline(){if(this.prevTag()!=="TERMINATOR")this.emit("TERMINATOR",`
|
|
9
|
+
`,{len:0})}isUnfinished(){if(this.inRenderBlock&&Q2.test(this.chunk)&&/^\s*\./.test(this.chunk))return!1;if(this.inRenderBlock&&this.prevTag()==="."){let U=this.tokens.length;if(U>=2){let W=this.tokens[U-2][0];if(W==="INDENT"||W==="TERMINATOR"||W==="OUTDENT")return!1}}let $=this.tokens[this.tokens.length-1];if($?.[0]==="COMPARE"&&$[1]===">"){let U=0;for(let W=this.tokens.length-1;W>=0;W--){let F=this.tokens[W];if(F[0]==="COMPARE"&&F[1]===">")U++;else if(F[0]==="COMPARE"&&F[1]==="<")U--;if(U===0&&F[0]==="TYPE_ANNOTATION")return!1;if(F[0]==="TERMINATOR"||F[0]==="INDENT"||F[0]==="OUTDENT")break}}return Q2.test(this.chunk)||Z2.has(this.prevTag())}pair($){let U=this.ends[this.ends.length-1];if(!U||$!==U.tag){if(U?.tag==="OUTDENT"){let W=this.indents[this.indents.length-1];if(W)this.outdentTo(this.indent-W);return this.pair($)}x(`unmatched ${$}`,{row:this.row,col:this.col})}return this.ends.pop()}stringToken(){let $=H3.exec(this.chunk);if(!$)return 0;let U=$[0],W=U.length>1&&U.endsWith("\\"),F=W?U.slice(0,-1):U,f=this.prev();if(f&&this.prevVal()==="from"&&(this.seenImport||this.seenExport))f[0]="FROM";let u;switch(F){case"'":u=q3;break;case'"':u=O3;break;case"'''":u=G3;break;case'"""':u=P3;break}let{tokens:Y,index:A}=this.matchWithInterpolations(u,U,F),_=F.length===3,R=null;if(_)R=this.processHeredocIndent(A,F,Y);return this.mergeInterpolationTokens(Y,{quote:F,indent:R,endOffset:A,raw:W}),A}processHeredocIndent($,U,W){let F=$-U.length,f=F-1;while(f>=0&&this.chunk[f]!==`
|
|
10
|
+
`)f--;f++;let u=this.chunk.slice(f,F),Y=/^\s*$/.test(u)?u.length:null,A="";for(let w of W)if(w[0]==="NEOSTRING")A+=w[1];let _=null,R;w2.lastIndex=0;while(R=w2.exec(A))if(_===null||R[1].length>0&&R[1].length<_.length)_=R[1];if(Y===null)return _;if(_===null)return" ".repeat(Y);if(Y<=_.length)return" ".repeat(Y);return _}matchWithInterpolations($,U,W,F){if(!W)W=U;if(!F)F=/^[#$]\{/;let f=[],u=U.length;if(this.chunk.slice(0,u)!==U)return null;let Y=this.chunk.slice(u);while(!0){let[A]=$.exec(Y);f.push(["NEOSTRING",A,{offset:u}]),Y=Y.slice(A.length),u+=A.length;let _=F.exec(Y);if(!_)break;let w=_[0].length-1,z=Y.slice(w),X=new d().tokenize(z,{row:this.row,col:this.col+u+w,untilBalanced:!0,rewrite:!1}),K=X.index+w;if(Y[K-1]==="}"){let Z=X.tokens[0],J=X.tokens[X.tokens.length-1];Z[0]="INTERPOLATION_START",Z[1]="(",J[0]="INTERPOLATION_END",J[1]=")"}if(X.tokens[1]?.[0]==="TERMINATOR")X.tokens.splice(1,1);let D=X.tokens.length;if(D>2&&X.tokens[D-3]?.[0]==="INDENT"&&X.tokens[D-2]?.[0]==="OUTDENT")X.tokens.splice(D-3,2);f.push(["TOKENS",X.tokens]),Y=Y.slice(K),u+=K}if(Y.slice(0,W.length)!==W)x(`missing ${W}`,{row:this.row,col:this.col});return{tokens:f,index:u+W.length}}mergeInterpolationTokens($,{quote:U,indent:W,endOffset:F,raw:f}){if($.length>1)this.emit("STRING_START","(",{len:U?.length||0,data:{quote:U}});for(let u=0;u<$.length;u++){let[Y,A]=$[u];if(Y==="TOKENS")for(let _ of A)this.tokens.push(_);else if(Y==="NEOSTRING"){let _=A;if(W){let R=new RegExp("\\n"+W,"g");_=_.replace(R,`
|
|
11
|
+
`)}if(u===0&&U?.length===3)_=_.replace(/^\n/,"");if(u===$.length-1&&U?.length===3)_=_.replace(/\n[^\S\n]*$/,"");if(f)_=_.replace(/\\([nrtbfv0\\'"`xu])/g,"\\\\$1");this.emit("STRING",`"${_}"`,{len:A.length,data:{quote:U}})}}if($.length>1)this.emit("STRING_END",")",{len:U?.length||0});return F}numberToken(){let $=J3.exec(this.chunk);if(!$)return 0;let U=$[0],W=U.length,F={row:this.row,col:this.col};if(/^0[BOX]/.test(U))x(`radix prefix in '${U}' must be lowercase`,{...F,col:F.col+1});if(/^0\d*[89]/.test(U))x(`decimal literal '${U}' must not be prefixed with '0'`,{...F,len:W});if(/^0\d+/.test(U))x(`octal literal '${U}' must be prefixed with '0o'`,{...F,len:W});let f=h3(U),u=f===1/0?"INFINITY":"NUMBER",Y={parsedValue:f};if(u==="INFINITY")Y.original=U;return this.emit(u,U,{len:W,data:Y}),W}regexToken(){let $=this.matchWithInterpolations(B3,"///");if($){let{tokens:R,index:w}=$,[z]=J2.exec(this.chunk.slice(w)),X=w+z.length;if(R.length===1||!R.some((K)=>K[0]==="TOKENS")){let K=(R[0]?.[1]||"").replace(/(?<!\\)\//g,"\\/");this.emit("REGEX",`/${K}/${z}`,{len:X,data:{delimiter:"///",heregex:{flags:z}}})}else{if(this.emit("REGEX_START","(",{len:0}),this.emit("IDENTIFIER","RegExp",{len:0}),this.emit("CALL_START","(",{len:0}),this.mergeInterpolationTokens(R,{quote:"///",endOffset:X-z.length}),z)this.emit(",",",",{len:0}),this.emit("STRING",`"${z}"`,{len:z.length});this.emit(")",")",{len:0}),this.emit("REGEX_END",")",{len:0})}return X}let U=I3.exec(this.chunk);if(!U)return 0;let[W,F,f]=U,u=this.prev();if(u){if(u.spaced&&q1.has(u[0])&&(!f||/^\/=?\s/.test(W)))return 0;if(Y3.has(u[0])&&!(u.spaced&&q1.has(u[0])))return 0}if(!f)x("missing / (unclosed regex)",{row:this.row,col:this.col});let Y=W.length,[A]=J2.exec(this.chunk.slice(Y)),_=Y+A.length;if(!E3.test(A))x(`invalid regular expression flags ${A}`,{row:this.row,col:this.col+Y,len:A.length});return this.emit("REGEX",`/${F}/${A}`,{len:_,data:{delimiter:"/"}}),_}jsToken(){if(this.chunk[0]!=="`")return 0;let $=T3.exec(this.chunk)||N3.exec(this.chunk);if(!$)return 0;let U=$[1],W=$[0].length;return this.emit("JS",U,{len:W,data:{here:$[0].startsWith("```")}}),W}literalToken(){let $=Q3.exec(this.chunk),U=$?$[0]:this.chunk.charAt(0),W=U,F=this.prev();if(D3.test(U))this.tagParameters();if(U==="="&&F&&F[1]==="."&&!F.spaced){let f=this.tokens,u=f.length-2;while(u>=1&&f[u][0]==="PROPERTY"&&f[u-1]?.[1]===".")u-=2;if(u>=0&&(f[u][0]==="IDENTIFIER"||f[u][0]===")"||f[u][0]==="]")){let Y=f.slice(u,f.length-1);F[0]="=",F[1]="=";for(let A of Y)this.tokens.push(O1(A[0],A[1],{pre:0,row:A[2],col:A[3],len:A[4]}));return this.tokens.push(O1(".",".",{pre:0,row:this.row,col:this.col,len:1})),U.length}}if(F&&(U==="="||R2.has(U))){if(U==="="&&(F[1]==="||"||F[1]==="&&"||F[1]==="??")&&!F.spaced)return F[0]="COMPOUND_ASSIGN",F[1]+="=",U.length}if(U==="("&&F?.[0]==="IMPORT")F[0]="DYNAMIC_IMPORT";if(U==="{"&&this.seenImport)this.importSpecifierList=!0;if(U==="}"&&this.importSpecifierList)this.importSpecifierList=!1;if(U==="{"&&F?.[0]==="EXPORT")this.exportSpecifierList=!0;if(U==="}"&&this.exportSpecifierList)this.exportSpecifierList=!1;if(U===";")this.seenFor=this.seenImport=this.seenExport=!1,W="TERMINATOR";else if(U==="|>")W="PIPE";else if(U==="::=")W="TYPE_ALIAS";else if(U==="::"&&/^[a-zA-Z_$]/.test(this.chunk[2]||""))return this.emit(".","."),this.emit("PROPERTY","prototype"),this.emit(".","."),2;else if(U==="::")W="TYPE_ANNOTATION";else if(U==="~=")W="COMPUTED_ASSIGN";else if(U===":=")W="REACTIVE_ASSIGN";else if(U==="<=>")W="BIND";else if(U==="~>")W="EFFECT";else if(U==="=!")W="READONLY_ASSIGN";else if(U==="*"&&(!F||F[0]==="TERMINATOR"||F[0]==="INDENT"||F[0]==="OUTDENT")&&(/^[a-zA-Z_$]/.test(this.chunk[1]||"")||this.chunk[1]==="@")){let f=this.chunk.slice(1),u=/^@(\s*)=(?!=)/.exec(f);if(u){let A=u[1];this.emit("IDENTIFIER","Object"),this.emit(".",".");let _=this.emit("PROPERTY","assign");return _.spaced=!0,this.emit("@","@"),this.emit(",",","),2+A.length+1}let Y=/^((?:(?!\s)[$\w\x7f-\uffff])+(?:\.[a-zA-Z_$][\w]*)*)(\s*)=(?!=)/.exec(f);if(Y){let A=Y[1],_=Y[2],R=A.split("."),w=()=>{this.emit("IDENTIFIER",R[0]);for(let X=1;X<R.length;X++)this.emit(".","."),this.emit("PROPERTY",R[X])};w(),this.emit("=","="),this.emit("IDENTIFIER","Object"),this.emit(".","."),this.emit("PROPERTY","assign"),this.emit("CALL_START","("),w(),this.emit("COMPOUND_ASSIGN","??="),this.emit("{","{"),this.emit("}","}"),this.emit(",",",");let z=this.prev();return z.mergeClose=!0,1+A.length+_.length+1}}else if(U==="*"&&F?.[0]==="EXPORT")W="EXPORT_ALL";else if(A3.has(U))W="MATH";else if(_3.has(U))W="COMPARE";else if(R2.has(U))W="COMPOUND_ASSIGN";else if(R3.has(U))W="UNARY_MATH";else if(Z3.has(U))W="SHIFT";else if(U==="?"&&F?.spaced)W="TERNARY";else if(U==="!?"&&F&&!F.spaced)W="DEFINED";else if(U==="?!"&&F&&!F.spaced)W="PRESENCE";else if(U==="?"&&(this.chunk[1]==="["||this.chunk[1]==="("))W="?.";else if(F){if(U==="("&&!F.spaced&&q1.has(F[0])){if(F[0]==="?.")F[0]="ES6_OPTIONAL_CALL";W="CALL_START"}if(U==="["&&!F.spaced&&X2.has(F[0])){if(W="INDEX_START",F[0]==="?.")F[0]="ES6_OPTIONAL_INDEX"}}if(U==="("||U==="{"||U==="[")this.ends.push({tag:U3[U],origin:[W,U]});else if(U===")"||U==="}"||U==="]")this.pair(U);return this.emit(W,U,{len:U.length}),U.length}tagParameters(){if(this.prevTag()!==")")return this.tagDoIife();let $=this.tokens.length-1,U=[];this.tokens[$][0]="PARAM_END";while($-- >0){let W=this.tokens[$];if(W[0]===")")U.push(W);else if(W[0]==="("||W[0]==="CALL_START")if(U.length)U.pop();else if(W[0]==="(")return W[0]="PARAM_START",this.tagDoIife($-1);else{this.tokens[this.tokens.length-1][0]="CALL_END";return}}}tagDoIife($){let U=this.tokens[$??this.tokens.length-1];if(U?.[0]==="DO")U[0]="DO_IIFE"}rewrite($){return this.tokens=$,this.removeLeadingNewlines(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.rewriteRender?.(),this.rewriteTypes(),this.tagPostfixConditionals(),this.addImplicitBracesAndParens(),this.addImplicitCallCommas(),this.closeMergeAssignments(),this.tokens}removeLeadingNewlines(){let $=0;while(this.tokens[$]?.[0]==="TERMINATOR")$++;if($>0)this.tokens.splice(0,$)}closeOpenCalls(){this.scanTokens(($,U)=>{if($[0]==="CALL_START")this.detectEnd(U+1,(W)=>W[0]===")"||W[0]==="CALL_END",(W)=>W[0]="CALL_END");return 1})}closeOpenIndexes(){this.scanTokens(($,U)=>{if($[0]==="INDEX_START")this.detectEnd(U+1,(W)=>W[0]==="]"||W[0]==="INDEX_END",(W,F)=>{if(this.tokens[F+1]?.[0]===":")$[0]="[",W[0]="]";else W[0]="INDEX_END"});return 1})}normalizeLines(){let $=null,U=null,W=null,F=(u,Y)=>{return u[1]!==";"&&F3.has(u[0])&&!(u[0]==="TERMINATOR"&&Y2.has(this.tokens[Y+1]?.[0]))&&!(u[0]==="ELSE"&&$!=="THEN")||u[0]==="INDENT"&&!u.generated&&($==="->"||$==="=>")||u[0]===","&&($==="->"||$==="=>")&&!this.commaInImplicitCall(Y)&&!this.commaInImplicitObject(Y)||_2.has(u[0])&&(this.tokens[Y-1]?.newLine||this.tokens[Y-1]?.[0]==="OUTDENT")},f=(u,Y)=>{let A=this.tokens[Y-1]?.[0]===","?Y-1:Y;this.tokens.splice(A,0,W)};this.scanTokens((u,Y,A)=>{let[_]=u;if(_==="TERMINATOR"){if(this.tokens[Y+1]?.[0]==="ELSE"&&this.tokens[Y-1]?.[0]!=="OUTDENT")return A.splice(Y,1,...this.makeIndentation()),1;if(Y2.has(this.tokens[Y+1]?.[0]))return A.splice(Y,1),0}if(_==="CATCH")for(let R=1;R<=2;R++){let w=this.tokens[Y+R]?.[0];if(w==="OUTDENT"||w==="TERMINATOR"||w==="FINALLY")return A.splice(Y+R,0,...this.makeIndentation()),2+R}if((_==="->"||_==="=>")&&(this.tokens[Y+1]?.[0]===","||this.tokens[Y+1]?.[0]==="]"))return[U,W]=this.makeIndentation(),A.splice(Y+1,0,U,W),1;if(A2.has(_)&&this.tokens[Y+1]?.[0]!=="INDENT"&&!(_==="ELSE"&&this.tokens[Y+1]?.[0]==="IF")&&!(_==="ELSE"&&this.tokens[Y-1]?.[0]!=="OUTDENT")){if($=_,[U,W]=this.makeIndentation(),_==="THEN")U.fromThen=!0;if(A.splice(Y+1,0,U),this.detectEnd(Y+2,F,f),_==="THEN")A.splice(Y,1);return 1}return 1})}tagPostfixConditionals(){let $=null,U=(F,f)=>{return F[0]==="TERMINATOR"||F[0]==="INDENT"&&!A2.has(this.tokens[f-1]?.[0])},W=(F)=>{if(F[0]!=="INDENT"||F.generated&&!F.fromThen)$[0]="POST_"+$[0]};this.scanTokens((F,f)=>{if(F[0]!=="IF"&&F[0]!=="UNLESS")return 1;if(this.tokens[f-1]?.[0]==="INTERPOLATION_START")return 1;return $=F,this.detectEnd(f+1,U,W),1})}addImplicitBracesAndParens(){let $=[],U=!1;this.scanTokens((W,F,f)=>{let[u]=W,Y=f[F-1]||[],A=f[F+1]||[],[_]=Y,[R]=A,w=F,z=(q)=>F-w+q,X=()=>$[$.length-1],K=(q)=>q?.[2]?.ours,D=()=>K(X())&&X()?.[0]==="(",Z=()=>K(X())&&X()?.[0]==="{",J=(q)=>{$.push(["(",q,{ours:!0}]),f.splice(q,0,i("CALL_START","("))},Q=()=>{$.pop(),f.splice(F,0,i("CALL_END",")")),F+=1},H=(q,P={})=>{$.push(["{",q,{sameLine:!0,startsLine:P.startsLine??!0,ours:!0}]);let E=i("{","{");if(!E.data)E.data={};E.data.generated=!0,f.splice(q,0,E)},O=(q)=>{q=q??F,$.pop(),f.splice(q,0,i("}","}")),F+=1};if((D()||Z())&&W3.has(u))return $.push(["CONTROL",F,{ours:!0}]),z(1);if(u==="INDENT"&&K(X())){if(_!=="=>"&&_!=="->"&&_!=="["&&_!=="("&&_!==","&&_!=="{"&&_!=="ELSE"&&_!=="=")while(D()||Z()&&_!==":")if(D())Q();else O();if(X()?.[2]?.ours&&X()[0]==="CONTROL")$.pop();return $.push([u,F]),z(1)}if(a.has(u))return $.push([u,F]),z(1);if(p.has(u)){while(K(X()))if(D())Q();else if(Z())O();else $.pop();$.pop()}if(b1.has(u)&&W.spaced&&(H1.has(R)||R==="..."&&H1.has(f[F+2]?.[0])||u3.has(R)&&!A.spaced&&!A.newLine)&&!((u==="]"||u==="}")&&(R==="->"||R==="=>")))return J(F+1),z(2);if(b1.has(u)&&this.tokens[F+1]?.[0]==="INDENT"&&this.looksObjectish(F+2)&&!this.findTagsBackwards(F,["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"]))return J(F+1),$.push(["INDENT",F+2]),z(3);if(u==="TERNARY")U=!0;if(u===":"){if(U)return U=!1,z(1);let q=p.has(this.tokens[F-1]?.[0])?$[$.length-1]?.[1]??F-1:F-1;if(this.tokens[F-2]?.[0]==="@")q=F-2;let P=q<=0||A1.has(this.tokens[q-1]?.[0])||this.tokens[q-1]?.newLine;if(X()){let[E,I]=X(),N=$[$.length-2];if((E==="{"||E==="INDENT"&&N?.[0]==="{"&&!K(N))&&(P||this.tokens[q-1]?.[0]===","||this.tokens[q-1]?.[0]==="{"||this.tokens[q]?.[0]==="{"))return z(1)}return H(q,{startsLine:!!P}),z(2)}if(A1.has(u))for(let q=$.length-1;q>=0;q--){if(!K($[q]))break;if($[q][0]==="{")$[q][2].sameLine=!1}let M=_==="OUTDENT"||Y.newLine,G=u==="||"||u==="&&",B=!1;if(G){let q=F+1,P=f[q]?.[0];if(P==="("||P==="["||P==="{"){for(let E=1;++q<f.length&&E>0;)if(P=f[q][0],P==="("||P==="["||P==="{")E++;else if(P===")"||P==="]"||P==="}")E--}else if(P&&P!=="TERMINATOR"&&P!=="OUTDENT"&&P!==",")q++;B=f[q]?.[0]===","}if(f3.has(u)&&!B||_2.has(u)&&M)while(K(X())){let[q,,{sameLine:P,startsLine:E}]=X();if(D()&&_!==",")Q();else if(Z()&&!G&&P&&u!=="TERMINATOR"&&_!==":")O();else if(Z()&&u==="TERMINATOR"&&_!==","&&!(E&&this.looksObjectish(F+1)))O();else if(X()?.[2]?.ours&&X()[0]==="CONTROL"&&f[X()[1]]?.[0]==="CLASS"&&u==="TERMINATOR")$.pop();else break}if(u===","&&!this.looksObjectish(F+1)&&Z()&&(R!=="TERMINATOR"||!this.looksObjectish(F+2))){let q=R==="OUTDENT"?1:0;while(Z())O(F+q)}return z(1)})}addImplicitCallCommas(){let $=0,U=0,W=this.tokens;while(U<W.length){let F=W[U][0],f=U>0?W[U-1][0]:null;if(F==="CALL_START"||F==="(")$++;if(F==="CALL_END"||F===")")$--;if($>0&&(F==="->"||F==="=>")&&$3.has(f))W.splice(U,0,i(",",",")),U++;U++}}scanTokens($){let U=0;while(U<this.tokens.length)U+=$.call(this,this.tokens[U],U,this.tokens)}detectEnd($,U,W,F={}){let f=0;while($<this.tokens.length){let u=this.tokens[$];if(f===0&&U.call(this,u,$))return W.call(this,u,$);if(a.has(u[0]))f++;if(p.has(u[0]))f--;if(f<0){if(F.returnOnNegativeLevel)return;return W.call(this,u,$)}$++}}closeMergeAssignments(){let $=this.tokens;for(let U=0;U<$.length;U++){if(!$[U].mergeClose)continue;let W=0;for(let F=U+1;F<$.length;F++){let f=$[F][0];if(f==="("||f==="["||f==="{"||f==="CALL_START"||f==="INDEX_START"||f==="INDENT")W++;if(f===")"||f==="]"||f==="}"||f==="CALL_END"||f==="INDEX_END"||f==="OUTDENT")W--;if(W<0||W===0&&f==="TERMINATOR"){$.splice(F,0,i("CALL_END",")",$[F-1]));break}if(F===$.length-1){$.splice(F+1,0,i("CALL_END",")",$[F]));break}}}}commaInImplicitCall($){let U=0;for(let W=$-1;W>=0;W--){let F=this.tokens[W][0];if(p.has(F)){U++;continue}if(a.has(F)){if(F==="INDENT")return!1;if(U--,U<0)return!1;continue}if(U>0)continue;if(b1.has(F)&&this.tokens[W].spaced){let f=this.tokens[W+1]?.[0];return H1.has(f)||f==="..."&&H1.has(this.tokens[W+2]?.[0])}}return!1}commaInImplicitObject($){let U=0;for(let W=$-1;W>=0;W--){let F=this.tokens[W][0];if(p.has(F)){U++;continue}if(a.has(F)){if(U--,U<0)return!1;continue}if(U>0)continue;if(F===":"&&W>0&&this.tokens[W-1][0]==="PROPERTY")return this.looksObjectish($+1);if(A1.has(F))return!1}return!1}looksObjectish($){if(!this.tokens[$])return!1;if(this.tokens[$]?.[0]==="@"&&this.tokens[$+2]?.[0]===":")return!0;if(this.tokens[$+1]?.[0]===":")return!0;if(a.has(this.tokens[$]?.[0])){let U=null;if(this.detectEnd($+1,(W)=>p.has(W[0]),(W,F)=>U=F),U&&this.tokens[U+1]?.[0]===":")return!0}return!1}findTagsBackwards($,U){let W=new Set(U),F=[];while($>=0){let f=this.tokens[$]?.[0];if(!F.length&&W.has(f))return!0;if(p.has(f))F.push(f);if(a.has(f)&&F.length)F.pop();if(!F.length&&(a.has(f)&&!this.tokens[$]?.generated||A1.has(f)))break;$--}return!1}makeIndentation($){let U=i("INDENT",2),W=i("OUTDENT",2);if($)U.generated=W.generated=!0,U.origin=W.origin=$;else U.explicit=W.explicit=!0;return[U,W]}}f2(d);var V3={symbolIds:{$accept:0,$end:1,error:2,Root:3,Body:4,Line:5,TERMINATOR:6,Expression:7,ExpressionLine:8,Statement:9,Return:10,STATEMENT:11,Import:12,Export:13,Value:14,Code:15,Operation:16,Assign:17,ReactiveAssign:18,ComputedAssign:19,ReadonlyAssign:20,Effect:21,If:22,Try:23,While:24,For:25,Switch:26,Class:27,Component:28,Render:29,Throw:30,Yield:31,Def:32,Enum:33,CodeLine:34,OperationLine:35,Assignable:36,Literal:37,Parenthetical:38,Range:39,Invocation:40,DoIife:41,This:42,Super:43,MetaProperty:44,AlphaNumeric:45,JS:46,Regex:47,UNDEFINED:48,NULL:49,BOOL:50,INFINITY:51,NAN:52,NUMBER:53,String:54,Identifier:55,IDENTIFIER:56,Property:57,PROPERTY:58,STRING:59,STRING_START:60,Interpolations:61,STRING_END:62,InterpolationChunk:63,INTERPOLATION_START:64,INTERPOLATION_END:65,INDENT:66,OUTDENT:67,REGEX:68,REGEX_START:69,REGEX_END:70,RegexWithIndex:71,",":72,"=":73,REACTIVE_ASSIGN:74,COMPUTED_ASSIGN:75,Block:76,READONLY_ASSIGN:77,EFFECT:78,SimpleAssignable:79,Array:80,Object:81,ThisProperty:82,".":83,"?.":84,INDEX_START:85,INDEX_END:86,Slice:87,ES6_OPTIONAL_INDEX:88,"{":89,ObjAssignable:90,":":91,FOR:92,ForVariables:93,FOROF:94,OptComma:95,"}":96,WHEN:97,OWN:98,AssignList:99,AssignObj:100,ObjRestValue:101,SimpleObjAssignable:102,"[":103,"]":104,"@":105,"...":106,ObjSpreadExpr:107,SUPER:108,Arguments:109,DYNAMIC_IMPORT:110,Elisions:111,ArgElisionList:112,OptElisions:113,ArgElision:114,Arg:115,Elision:116,RangeDots:117,"..":118,DEF:119,CALL_START:120,ParamList:121,CALL_END:122,PARAM_START:123,PARAM_END:124,FuncGlyph:125,"->":126,"=>":127,Param:128,ParamVar:129,Splat:130,ES6_OPTIONAL_CALL:131,ArgList:132,SimpleArgs:133,THIS:134,NEW_TARGET:135,IMPORT_META:136,"(":137,")":138,RETURN:139,THROW:140,YIELD:141,FROM:142,IfBlock:143,IF:144,ELSE:145,UnlessBlock:146,UNLESS:147,POST_IF:148,POST_UNLESS:149,TRY:150,Catch:151,FINALLY:152,CATCH:153,SWITCH:154,Whens:155,When:156,LEADING_WHEN:157,WhileSource:158,WHILE:159,UNTIL:160,Loop:161,LOOP:162,FORIN:163,BY:164,FORAS:165,AWAIT:166,FORASAWAIT:167,ForValue:168,CLASS:169,EXTENDS:170,ENUM:171,COMPONENT:172,ComponentBody:173,ComponentLine:174,RENDER:175,IMPORT:176,ImportDefaultSpecifier:177,ImportNamespaceSpecifier:178,ImportSpecifierList:179,ImportSpecifier:180,AS:181,DEFAULT:182,IMPORT_ALL:183,EXPORT:184,ExportSpecifierList:185,EXPORT_ALL:186,ExportSpecifier:187,UNARY:188,DO:189,DO_IIFE:190,UNARY_MATH:191,"-":192,"+":193,"?":194,DEFINED:195,PRESENCE:196,"--":197,"++":198,MATH:199,"**":200,SHIFT:201,COMPARE:202,"&":203,"^":204,"|":205,"||":206,"??":207,"&&":208,"!?":209,PIPE:210,RELATION:211,TERNARY:212,COMPOUND_ASSIGN:213},tokenNames:{2:"error",6:"TERMINATOR",11:"STATEMENT",46:"JS",48:"UNDEFINED",49:"NULL",50:"BOOL",51:"INFINITY",52:"NAN",53:"NUMBER",56:"IDENTIFIER",58:"PROPERTY",59:"STRING",60:"STRING_START",62:"STRING_END",64:"INTERPOLATION_START",65:"INTERPOLATION_END",66:"INDENT",67:"OUTDENT",68:"REGEX",69:"REGEX_START",70:"REGEX_END",72:",",73:"=",74:"REACTIVE_ASSIGN",75:"COMPUTED_ASSIGN",77:"READONLY_ASSIGN",78:"EFFECT",83:".",84:"?.",85:"INDEX_START",86:"INDEX_END",88:"ES6_OPTIONAL_INDEX",89:"{",91:":",92:"FOR",94:"FOROF",96:"}",97:"WHEN",98:"OWN",103:"[",104:"]",105:"@",106:"...",108:"SUPER",110:"DYNAMIC_IMPORT",118:"..",119:"DEF",120:"CALL_START",122:"CALL_END",123:"PARAM_START",124:"PARAM_END",126:"->",127:"=>",131:"ES6_OPTIONAL_CALL",134:"THIS",135:"NEW_TARGET",136:"IMPORT_META",137:"(",138:")",139:"RETURN",140:"THROW",141:"YIELD",142:"FROM",144:"IF",145:"ELSE",147:"UNLESS",148:"POST_IF",149:"POST_UNLESS",150:"TRY",152:"FINALLY",153:"CATCH",154:"SWITCH",157:"LEADING_WHEN",159:"WHILE",160:"UNTIL",162:"LOOP",163:"FORIN",164:"BY",165:"FORAS",166:"AWAIT",167:"FORASAWAIT",169:"CLASS",170:"EXTENDS",171:"ENUM",172:"COMPONENT",175:"RENDER",176:"IMPORT",181:"AS",182:"DEFAULT",183:"IMPORT_ALL",184:"EXPORT",186:"EXPORT_ALL",188:"UNARY",189:"DO",190:"DO_IIFE",191:"UNARY_MATH",192:"-",193:"+",194:"?",195:"DEFINED",196:"PRESENCE",197:"--",198:"++",199:"MATH",200:"**",201:"SHIFT",202:"COMPARE",203:"&",204:"^",205:"|",206:"||",207:"??",208:"&&",209:"!?",210:"PIPE",211:"RELATION",212:"TERNARY",213:"COMPOUND_ASSIGN"},parseTable:(()=>{let $=[107,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,-1,1,2,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,1,1,0,2,1,5,-2,107,5,1,5,59,2,71,-3,-3,-3,-3,-3,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-6,-6,-6,-6,-6,-6,127,-6,-6,-6,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,9,1,5,59,1,1,5,32,18,16,-7,-7,-7,-7,-7,-7,-7,-7,-7,14,1,5,59,1,1,5,32,18,16,10,1,9,1,1,-8,-8,-8,-8,-8,-8,-8,-8,-8,128,129,130,96,97,56,1,5,48,5,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,3,9,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-13,-13,134,105,106,-13,-13,-13,-13,137,138,139,-13,140,-13,-13,-13,-13,-13,-13,-13,135,-13,141,-13,-13,136,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,131,132,133,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,46,1,5,59,1,1,5,11,1,1,1,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,142,143,144,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,9,1,5,59,1,1,5,32,18,16,-33,-33,-33,-33,-33,-33,-33,-33,-33,9,1,5,59,1,1,5,32,18,16,-34,-34,-34,-34,-34,-34,-34,-34,-34,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,145,146,147,148,149,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,154,104,-173,-173,-173,156,157,155,99,159,158,153,150,-173,-173,151,152,106,5,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,161,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,162,102,103,160,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,103,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,163,164,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,103,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,166,167,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,168,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,174,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,175,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,176,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,177,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,45,14,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,7,14,2,3,2,13,2,1,1,7,1,1,1,53,179,180,181,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,178,72,73,93,99,83,87,84,85,169,170,90,91,86,88,89,82,173,45,14,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,7,14,2,3,2,13,2,1,1,7,1,1,1,53,179,180,181,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,182,72,73,93,99,83,87,84,85,169,170,90,91,86,88,89,82,173,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,183,184,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,185,103,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,187,186,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,162,102,103,188,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,189,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,2,66,10,162,190,2,66,10,162,191,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,14,39,16,1,24,1,1,7,4,5,5,2,24,37,2,195,154,104,156,157,155,99,192,193,83,158,197,194,196,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,198,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,199,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,90,1,5,8,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,4,3,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,4,1,1,1,1,1,7,1,1,1,1,7,3,1,10,1,3,1,1,2,3,20,2,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-305,-305,179,180,181,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-305,162,-305,102,103,-305,200,202,72,73,93,-305,99,-305,-305,-305,-305,-305,83,-305,87,-305,84,85,-305,-305,169,-305,170,90,91,86,88,89,82,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,201,173,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,1,66,203,2,66,10,162,204,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,205,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,206,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,139,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,6,1,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,1,3,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,2,2,1,3,1,8,4,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-224,-224,207,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-224,208,-224,102,103,-224,53,52,72,73,93,-224,99,-224,-224,-224,-224,-224,83,-224,87,-224,84,85,-224,66,-224,169,-224,170,90,91,86,88,89,82,-224,69,64,65,209,54,94,-224,55,95,-224,-224,56,60,57,-224,-224,58,98,-224,-224,-224,49,-224,61,67,62,63,70,71,171,172,173,46,47,48,50,51,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,2,55,1,210,104,2,55,1,211,104,6,15,19,89,2,1,1,213,212,42,43,90,91,138,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,6,1,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,1,3,1,1,1,1,1,7,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,2,2,1,3,1,8,4,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-221,-221,214,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-221,215,-221,102,103,-221,53,52,72,73,93,-221,99,-221,-221,-221,-221,-221,83,-221,87,-221,84,85,-221,66,-221,169,-221,170,90,91,86,88,89,82,-221,69,64,65,54,94,-221,55,95,-221,-221,56,60,57,-221,-221,58,98,-221,-221,-221,49,-221,61,67,62,63,70,71,171,172,173,46,47,48,50,51,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,9,54,1,1,3,1,29,88,1,5,216,220,104,105,106,219,217,218,221,60,14,1,3,1,1,1,6,1,4,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,14,2,3,2,9,4,2,1,1,7,1,1,1,32,2,1,10,4,4,179,180,228,229,230,231,223,224,225,226,234,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,227,104,105,106,102,103,53,235,72,73,93,222,83,87,84,85,66,169,170,90,91,86,88,89,82,61,67,62,232,233,173,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,106,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,236,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,237,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,113,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,6,1,1,1,1,7,3,11,1,1,1,2,2,1,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,238,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,244,102,103,245,53,52,72,73,93,99,59,83,239,87,249,84,85,240,241,243,246,242,66,42,43,90,91,248,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,4,83,2,24,11,251,252,250,141,2,109,11,253,141,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,56,1,5,51,1,1,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-206,-206,254,255,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,1,83,256,1,83,257,54,11,35,2,1,1,1,1,1,3,3,1,6,2,1,9,11,3,11,2,3,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,54,11,35,2,1,1,1,1,1,3,3,1,6,2,1,9,11,3,11,2,3,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,258,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,259,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,260,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,261,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,263,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,162,102,103,262,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,23,6,39,8,1,1,1,1,1,1,1,6,1,5,10,8,6,3,1,1,1,1,2,1,-109,269,100,101,271,104,272,255,105,106,-109,-109,-109,273,264,-109,265,270,274,266,267,268,275,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,45,14,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,7,14,2,3,2,13,2,1,1,7,1,1,1,53,179,180,181,34,35,36,276,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,235,72,73,93,99,83,87,84,85,169,170,90,91,86,88,89,82,173,65,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,4,3,3,1,10,1,3,1,1,2,3,11,11,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,57,1,5,53,1,2,2,1,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,6,54,5,1,1,2,1,280,105,106,277,278,279,109,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,2,1,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,1,1,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,-5,281,-5,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-5,-5,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,-5,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,282,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,283,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,284,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,285,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,286,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,287,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,288,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,289,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,290,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,293,165,291,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,292,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,296,165,294,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,295,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,299,165,297,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,298,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,300,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,301,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,302,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,303,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,304,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,305,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,14,39,16,1,24,1,1,7,4,5,5,2,24,37,2,309,154,104,156,157,155,99,306,307,83,158,197,308,196,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,310,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,311,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,55,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,55,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,2,109,11,312,141,2,57,1,313,255,2,57,1,314,255,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,2,7,1,1,1,1,5,2,3,11,2,1,2,2,7,1,1,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,315,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,320,77,78,79,80,81,100,101,92,104,105,106,316,102,103,318,53,52,72,73,93,317,99,59,83,87,322,84,85,319,321,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,85,323,109,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,1,2,2,5,4,3,1,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,327,102,103,53,52,72,73,93,99,59,83,87,249,84,85,326,66,324,42,43,90,91,248,325,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,2,57,1,329,255,2,57,1,330,255,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,331,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,332,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,334,333,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,335,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,337,336,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,338,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,103,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,340,339,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,162,102,103,341,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,343,342,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,344,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,103,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,346,345,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,162,102,103,347,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,9,6,60,1,5,23,1,8,18,2,-217,-217,-217,349,350,-217,-217,-217,348,6,6,60,1,5,50,2,-174,-174,-174,-174,-174,-174,7,6,60,1,5,1,49,2,-178,-178,-178,-178,351,-178,-178,15,6,49,1,10,1,5,8,1,1,7,14,2,17,2,5,-181,154,104,-181,-181,-181,156,157,155,99,159,158,-181,-181,352,11,6,60,1,5,1,21,28,2,39,2,2,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,11,6,60,1,5,1,21,28,2,39,2,2,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,11,6,60,1,5,1,21,28,2,39,2,2,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,11,6,60,1,5,1,21,28,2,39,2,2,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,2,57,1,254,255,113,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,6,1,1,1,1,7,3,11,1,1,1,2,2,1,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,244,102,103,245,53,52,72,73,93,99,59,83,239,87,249,84,85,240,241,243,246,242,66,42,43,90,91,248,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,9,1,5,59,1,1,5,32,18,16,-170,-170,-170,-170,-170,-170,-170,-170,-170,106,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,354,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,353,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,125,126,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,118,-371,120,-371,-371,-371,9,1,5,59,1,1,5,32,18,16,-368,-368,-368,-368,-368,-368,-368,-368,-368,5,148,1,9,1,1,128,129,130,96,97,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,125,126,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,118,-372,120,-372,-372,-372,9,1,5,59,1,1,5,32,18,16,-369,-369,-369,-369,-369,-369,-369,-369,-369,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,125,126,-373,-373,-373,-373,-373,-373,-373,-373,-373,111,-373,-373,-373,-373,-373,-373,118,-373,120,-373,-373,-373,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,154,104,-173,-173,-173,156,157,155,99,159,158,153,355,-173,-173,151,152,2,66,10,162,160,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,163,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,166,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,5,15,108,2,1,1,213,169,170,90,91,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,125,126,-374,-374,-374,-374,-374,-374,-374,-374,-374,111,-374,-374,-374,-374,-374,-374,118,-374,120,-374,-374,-374,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,125,126,-375,-375,-375,-375,-375,-375,-375,-375,-375,111,-375,-375,-375,-375,-375,-375,118,-375,120,-375,-375,-375,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,125,126,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,118,-379,120,-379,-379,-379,2,81,8,356,99,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-381,-381,-86,-86,-381,-381,-381,-381,-86,-86,-86,-86,-86,-86,-86,-86,-381,-86,-381,-381,-381,-381,-381,-381,-381,-381,-86,-381,-381,-86,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-86,-86,-86,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,10,54,5,1,23,1,1,3,21,11,11,134,105,106,137,138,139,140,135,141,136,3,83,1,1,142,143,144,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-382,-382,-86,-86,-382,-382,-382,-382,-86,-86,-86,-86,-86,-86,-86,-86,-382,-86,-382,-382,-382,-382,-382,-382,-382,-382,-86,-382,-382,-86,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-86,-86,-86,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,359,357,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,358,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-83,-83,-83,-83,-83,-83,-83,-83,127,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,124,125,126,96,97,-83,-83,-83,-83,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,360,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,3,66,10,68,162,361,362,46,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,2,1,1,6,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,363,364,365,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,4,94,69,2,2,367,366,368,369,11,55,1,24,1,1,7,4,10,2,24,39,154,104,156,157,155,99,370,159,158,197,196,11,55,1,24,1,1,7,4,10,2,24,39,154,104,156,157,155,99,371,159,158,197,196,3,66,10,88,162,372,373,5,72,22,69,2,2,374,-303,-303,-303,-303,6,72,1,21,69,2,2,-301,375,-301,-301,-301,-301,23,66,26,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,376,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,3,155,1,1,377,378,379,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,380,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,61,1,5,53,1,5,1,1,5,1,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-309,-309,-86,-86,-309,162,-309,-309,-86,-86,-86,381,-86,-86,-86,-86,-86,-309,-86,-309,-309,-309,-309,-309,-309,-309,-309,-86,-309,-309,-86,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,382,-309,-309,-86,-86,-86,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,105,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,1,1,1,1,8,4,1,1,1,1,1,4,1,385,386,387,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,383,384,63,70,71,44,45,68,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,125,126,-222,-222,-222,-222,-222,-222,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,81,8,388,99,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,125,126,-225,-225,-225,-225,-225,-225,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,81,8,389,99,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,390,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,3,66,10,44,162,392,391,2,66,10,162,393,9,1,5,59,1,1,5,32,18,16,-370,-370,-370,-370,-370,-370,-370,-370,-370,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,125,126,-219,-219,-219,-219,-219,-219,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,81,8,394,99,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,2,72,70,396,395,1,142,397,7,55,1,10,30,83,1,2,402,104,401,398,399,400,403,2,72,70,-338,-338,1,181,404,26,6,39,8,1,1,1,1,1,1,1,6,1,5,10,8,6,3,1,1,1,1,2,1,76,3,2,-109,269,100,101,409,104,272,255,105,106,408,-109,-109,273,264,405,265,270,274,266,267,268,275,410,406,407,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-89,-89,-89,-89,-89,-89,-89,-89,411,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,412,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,413,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,142,414,58,1,5,53,1,5,1,1,5,2,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,146,147,148,149,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,2,6,132,107,415,105,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,416,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,31,6,60,1,5,20,12,2,11,1,4,26,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-199,-199,-199,-199,127,-199,322,417,321,-199,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,109,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,6,1,1,1,1,7,3,11,1,1,1,2,2,5,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,245,53,52,72,73,93,99,59,83,418,87,249,84,85,420,419,66,42,43,90,91,248,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,9,6,60,1,5,23,1,8,9,9,-217,-217,-217,422,423,-217,-217,421,-217,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,6,11,3,11,1,1,1,2,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,424,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,5,6,60,1,5,32,-145,-145,-145,-145,-145,112,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,6,1,1,1,1,7,3,11,2,1,2,2,1,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,244,102,103,245,53,52,72,73,93,99,59,83,87,249,84,85,426,425,243,246,242,66,42,43,90,91,248,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,6,11,3,11,1,1,1,2,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,5,6,60,1,5,32,-150,-150,-150,-150,-150,6,6,60,1,5,32,18,-200,-200,-200,-200,-200,-200,6,6,60,1,5,32,18,-201,-201,-201,-201,-201,-201,106,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,6,1,1,1,1,7,3,11,1,1,3,2,9,3,1,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,-202,427,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-202,-202,102,103,-202,53,52,72,73,93,99,59,83,-202,87,84,85,66,-202,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,55,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,2,57,1,428,255,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,429,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,430,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,55,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,2,57,1,431,255,2,57,1,432,255,24,66,10,16,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,433,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,10,16,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,434,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-256,-256,-256,-256,-256,-256,-256,-256,127,-256,-256,435,-256,-256,-256,-256,-256,-256,-256,-256,125,126,96,97,-256,-256,-256,-256,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-258,-258,-258,-258,-258,-258,-258,-258,127,-258,-258,436,-258,-258,-258,-258,-258,-258,-258,-258,125,126,96,97,-258,-258,-258,-258,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,45,1,5,59,1,1,5,4,10,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-265,-265,-265,162,-265,-265,437,-265,-265,127,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,125,126,96,97,-265,-265,-265,-265,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,6,6,60,1,5,19,5,-114,-114,-114,-114,438,-114,8,6,60,1,5,23,1,8,18,-217,-217,-217,440,439,-217,-217,-217,7,6,60,1,5,1,18,5,-123,-123,-123,-123,441,-123,-123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,442,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,3,57,1,45,254,255,443,6,6,60,1,5,19,5,-126,-126,-126,-126,-126,-126,5,6,60,1,5,24,-110,-110,-110,-110,-110,11,6,60,1,5,1,10,1,1,6,5,24,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,11,6,60,1,5,1,10,1,1,6,5,24,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,11,6,60,1,5,1,10,1,1,6,5,24,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,5,6,60,1,5,24,-115,-115,-115,-115,-115,17,38,4,1,12,1,1,1,23,1,7,13,3,2,1,2,24,3,447,449,448,271,104,272,255,446,273,99,444,87,445,450,451,86,82,55,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,-39,-39,452,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,6,54,5,1,2,1,1,280,105,106,453,454,279,4,59,1,2,2,-58,-58,-58,-58,107,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,455,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,457,456,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,4,59,1,2,2,-63,-63,-63,-63,5,1,5,59,2,71,-4,-4,-4,-4,-4,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,125,126,-385,-385,-385,-385,-385,-385,-385,-385,110,111,-385,-385,-385,-385,-385,-385,118,-385,120,-385,-385,-385,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,125,126,-386,-386,-386,-386,-386,-386,-386,-386,110,111,-386,-386,-386,-386,-386,-386,118,-386,120,-386,-386,-386,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,125,126,-387,-387,-387,-387,-387,-387,-387,-387,-387,111,-387,-387,-387,-387,-387,-387,118,-387,120,-387,-387,-387,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,125,126,-388,-388,-388,-388,-388,-388,-388,-388,-388,111,-388,-388,-388,-388,-388,-388,118,-388,120,-388,-388,-388,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,125,126,-389,-389,-389,-389,-389,-389,109,108,110,111,-389,-389,-389,-389,-389,-389,118,-389,120,-389,-389,-389,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,125,126,-390,-390,-390,-390,-390,-390,109,108,110,111,112,-390,-390,-390,-390,-390,118,-390,120,-390,122,-390,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,125,126,-391,-391,-391,-391,-391,-391,109,108,110,111,112,113,-391,-391,-391,-391,118,-391,120,-391,122,-391,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,125,126,-392,-392,-392,-392,-392,-392,109,108,110,111,112,113,114,-392,-392,-392,118,-392,120,-392,122,-392,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,125,126,-393,-393,-393,-393,-393,-393,109,108,110,111,112,113,114,115,-393,-393,118,-393,120,-393,122,-393,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,125,126,-401,-401,-401,-401,-401,-401,109,108,110,111,112,113,114,115,116,-401,118,119,120,-401,122,-401,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-402,-402,-402,-402,-402,-402,-402,-402,127,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,124,125,126,96,97,-402,-402,-402,-402,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,125,126,-400,-400,-400,-400,-400,-400,109,108,110,111,112,113,114,115,116,-400,118,-400,120,-400,122,-400,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-403,-403,-403,-403,-403,-403,-403,-403,127,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,124,125,126,96,97,-403,-403,-403,-403,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,125,126,-404,-404,-404,-404,-404,-404,109,108,110,111,112,113,114,115,116,117,118,119,120,-404,122,-404,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,125,126,-405,-405,-405,-405,-405,-405,109,108,110,111,112,-405,-405,-405,-405,-405,118,-405,120,-405,-405,-405,23,91,1,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,458,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-236,-236,-236,-236,-236,-236,-236,-236,127,-236,-236,-236,-236,-236,-236,-236,-236,-236,459,-236,125,126,96,97,-236,-236,-236,-236,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-240,-240,-240,-240,-240,-240,-240,-240,127,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,124,125,126,96,97,-240,-240,-240,-240,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,94,69,2,2,461,460,462,463,11,55,1,24,1,1,7,4,10,2,24,39,154,104,156,157,155,99,464,159,158,197,196,11,55,1,24,1,1,7,4,10,2,24,39,154,104,156,157,155,99,465,159,158,197,196,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,466,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-235,-235,-235,-235,-235,-235,-235,-235,127,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,125,126,96,97,-235,-235,-235,-235,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-239,-239,-239,-239,-239,-239,-239,-239,127,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,124,125,126,96,97,-239,-239,-239,-239,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,55,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,26,86,6,14,11,1,30,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,467,127,322,468,321,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,104,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,5,2,3,11,2,1,2,2,7,1,1,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,469,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,470,99,59,83,87,322,84,85,319,321,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,86,471,1,86,472,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,9,1,1,1,1,4,3,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,473,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-164,102,103,53,52,72,73,93,-164,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,-46,-46,-46,-46,-46,474,-46,-46,-46,-67,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,55,11,35,2,1,1,1,1,1,3,3,1,7,1,1,9,8,3,3,11,2,3,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,55,11,35,2,1,1,1,1,1,3,3,1,7,1,1,9,8,3,3,11,2,3,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,475,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,476,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,55,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,8,6,60,1,5,23,1,8,18,-217,-217,-217,478,477,-217,-217,-217,5,6,60,1,5,50,-194,-194,-194,-194,-194,108,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,1,2,2,5,4,4,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,327,102,103,53,52,72,73,93,99,59,83,87,249,84,85,326,66,42,43,90,91,248,479,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,28,6,60,1,5,20,12,18,26,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-199,-199,-199,-199,127,-199,-199,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,23,86,6,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,480,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,481,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,125,126,-68,-68,-68,-68,-68,-68,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,482,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,483,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-71,-71,-71,-71,-71,-71,-71,-71,127,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,124,125,126,96,97,-71,-71,-71,-71,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,484,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,485,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-74,-74,-74,-74,-74,-74,-74,-74,127,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,124,125,126,96,97,-74,-74,-74,-74,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,486,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-77,-77,-77,-77,-77,-77,-77,-77,127,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,124,125,126,96,97,-77,-77,-77,-77,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,487,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,488,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-80,-80,-80,-80,-80,-80,-80,-80,127,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,124,125,126,96,97,-80,-80,-80,-80,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,489,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,3,125,1,1,490,90,91,17,6,49,1,10,1,13,1,1,7,7,7,1,1,1,16,6,1,-218,154,104,-218,-218,156,157,155,99,-218,159,-218,158,153,-218,491,152,2,6,60,492,493,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,494,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,6,6,60,1,5,50,2,-180,-180,-180,-180,-180,-180,57,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,3,1,4,2,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,2,6,61,107,495,9,6,60,1,5,23,1,8,18,2,-217,-217,-217,349,350,-217,-217,-217,496,1,67,497,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,125,126,-407,-407,-407,-407,-407,-407,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,498,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,499,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-84,-84,-84,-84,-84,-84,-84,-84,127,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,124,125,126,96,97,-84,-84,-84,-84,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,500,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,501,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,2,66,10,162,502,6,55,1,10,10,5,8,503,104,162,505,504,99,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,506,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,507,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,508,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,509,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,94,510,1,165,511,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,512,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,10,55,1,24,1,1,7,14,2,24,39,154,104,156,157,155,99,159,158,197,513,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,514,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,3,155,1,1,515,378,379,4,67,78,11,1,516,517,518,379,3,67,78,12,-252,-252,-252,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,6,1,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,520,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,519,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,45,1,5,59,1,1,5,4,10,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-307,-307,-307,162,-307,-307,521,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,125,126,-307,-307,-307,-307,-307,-307,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,522,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,2,6,61,524,523,2,6,61,-315,-315,24,6,61,25,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-318,-318,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,6,61,-319,-319,7,6,61,81,1,9,1,1,-320,-320,128,129,130,96,97,1,67,525,1,67,526,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,125,126,-227,-227,-227,-227,-227,-227,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,154,104,-173,-173,-173,156,157,155,99,159,158,153,527,-173,-173,151,152,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,1,67,528,3,54,5,1,529,105,106,3,89,89,5,531,530,221,3,54,5,1,532,105,106,1,142,533,8,6,60,1,5,23,1,8,18,-217,-217,-217,535,534,-217,-217,-217,5,6,60,1,5,24,-329,-329,-329,-329,-329,6,55,1,10,113,1,2,402,104,401,536,400,403,6,6,60,1,5,24,85,-334,-334,-334,-334,-334,537,6,6,60,1,5,24,85,-336,-336,-336,-336,-336,538,2,55,1,539,104,14,1,5,59,1,1,5,32,18,16,4,6,1,10,1,-340,-340,-340,-340,-340,-340,-340,-340,-340,540,-340,-340,-340,-340,8,6,60,1,5,23,1,8,18,-217,-217,-217,542,541,-217,-217,-217,5,6,60,1,5,24,-358,-358,-358,-358,-358,6,55,1,10,116,3,2,544,104,408,410,543,407,12,6,60,1,5,1,10,1,1,6,5,24,61,-363,-363,-363,-363,-120,-120,-120,-120,-120,-363,-120,545,6,6,60,1,5,24,85,-366,-366,-366,-366,-366,546,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,548,547,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,549,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-353,-353,-353,-353,-353,-353,127,-353,-353,-353,-353,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,81,8,550,99,3,54,5,1,551,105,106,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,2,6,61,107,552,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,553,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,6,11,3,11,1,1,1,2,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,424,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,5,6,60,1,5,32,-151,-151,-151,-151,-151,2,66,38,555,554,116,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,6,1,1,1,1,7,3,4,7,1,1,1,2,2,1,3,1,1,3,3,1,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,-218,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-218,-218,102,103,245,53,52,72,73,93,99,59,-218,83,-218,87,249,84,85,557,556,246,242,66,-218,42,43,90,91,248,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,4,6,60,1,37,558,-152,-152,-152,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,6,11,3,11,1,1,1,2,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,9,6,60,1,5,23,1,8,9,9,-217,-217,-217,422,423,-217,-217,559,-217,108,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,6,1,1,1,1,7,3,11,2,1,2,2,5,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,245,53,52,72,73,93,99,59,83,87,249,84,85,420,419,66,42,43,90,91,248,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,28,6,60,1,5,20,12,18,26,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-186,-186,-186,-186,127,-186,-186,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,23,86,6,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,560,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,561,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,562,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,563,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,564,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,565,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,566,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,3,6,60,30,568,569,567,23,6,39,8,1,1,1,1,1,1,1,6,1,15,8,6,4,1,1,1,1,1,1,16,-218,269,100,101,271,104,272,255,105,106,-218,-218,273,571,-218,570,274,266,267,-218,268,275,-218,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,572,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,573,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,23,92,12,44,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,127,574,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,575,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,10,6,60,1,5,11,1,1,11,13,11,-127,-127,-127,-127,-129,-129,-129,-127,576,141,10,6,60,1,5,11,1,1,11,13,11,-128,-128,-128,-128,578,579,580,-128,577,141,9,6,60,1,5,11,1,1,11,24,-130,-130,-130,-130,-130,-130,-130,-130,-130,9,6,60,1,5,11,1,1,11,24,-131,-131,-131,-131,-131,-131,-131,-131,-131,9,6,60,1,5,11,1,1,11,24,-132,-132,-132,-132,-132,-132,-132,-132,-132,9,6,60,1,5,11,1,1,11,24,-133,-133,-133,-133,-133,-133,-133,-133,-133,4,83,2,24,11,251,252,581,141,2,109,11,582,141,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,57,1,5,53,1,2,2,1,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,4,59,1,2,2,-59,-59,-59,-59,2,6,59,107,583,105,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,584,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,4,59,1,2,2,-62,-62,-62,-62,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,585,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,587,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,586,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,588,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,589,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,590,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,591,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,94,592,1,165,593,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,594,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,9,1,1,1,1,4,3,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,595,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-162,102,103,53,52,72,73,93,-162,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,26,67,25,14,11,1,30,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,596,127,322,468,321,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,1,67,597,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,24,67,19,6,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-163,-163,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,598,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,23,86,6,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,599,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,600,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,3,6,60,56,602,603,601,112,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,9,1,1,1,1,7,3,4,7,1,1,1,2,2,5,4,3,1,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,-218,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-218,-218,102,103,53,52,72,73,93,99,59,-218,83,-218,87,249,84,85,604,66,-218,42,43,90,91,248,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,8,6,60,1,5,23,1,8,18,-217,-217,-217,478,605,-217,-217,-217,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,23,67,25,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,606,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,125,126,-69,-69,-69,-69,-69,-69,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,25,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,607,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-72,-72,-72,-72,-72,-72,-72,-72,127,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,124,125,126,96,97,-72,-72,-72,-72,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,25,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,608,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-75,-75,-75,-75,-75,-75,-75,-75,127,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,124,125,126,96,97,-75,-75,-75,-75,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-78,-78,-78,-78,-78,-78,-78,-78,127,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,124,125,126,96,97,-78,-78,-78,-78,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,25,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,609,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-81,-81,-81,-81,-81,-81,-81,-81,127,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,124,125,126,96,97,-81,-81,-81,-81,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,106,5,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,611,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,162,102,103,610,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,6,6,60,1,5,50,2,-175,-175,-175,-175,-175,-175,11,55,1,24,1,1,7,14,2,1,22,1,154,104,156,157,155,99,159,158,153,612,152,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,154,104,-173,-173,-173,156,157,155,99,159,158,153,613,-173,-173,151,152,28,6,60,1,5,20,30,2,24,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-179,-179,-179,-179,127,-179,-179,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,57,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,3,1,4,2,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,3,125,1,1,614,90,91,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,23,67,25,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,615,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,125,126,-409,-409,-409,-409,-409,-409,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,10,16,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,616,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,66,10,162,617,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,2,66,10,162,618,2,66,10,162,619,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,26,66,10,16,5,51,1,9,1,1,4,28,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,620,127,621,124,125,126,96,97,622,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,10,16,5,51,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,623,127,624,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,10,16,5,51,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,625,127,626,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,10,16,5,51,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,627,127,628,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,629,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,630,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,24,66,10,16,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,631,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,94,69,2,2,-304,-304,-304,-304,27,72,20,2,54,1,9,1,1,3,2,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-302,127,-302,124,125,126,96,97,-302,-302,-302,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,67,78,11,1,632,633,518,379,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,2,66,10,162,634,3,67,78,12,-253,-253,-253,3,66,6,4,162,636,635,24,66,6,20,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-203,-203,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,45,1,5,59,1,1,5,4,10,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-311,-311,-311,162,-311,-311,637,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,125,126,-311,-311,-311,-311,-311,-311,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,106,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,1,1,8,4,1,1,1,1,1,4,1,-317,385,386,387,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-317,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,638,63,70,71,44,45,68,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,8,6,60,1,5,23,1,8,18,-217,-217,-217,349,350,-217,-217,639,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,1,142,640,6,55,1,10,113,1,2,402,104,401,641,400,403,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,3,54,5,1,642,105,106,3,6,60,30,644,645,643,10,6,49,1,10,1,29,8,18,58,2,-218,402,104,-218,-218,-218,-218,-218,646,403,8,6,60,1,5,23,1,8,18,-217,-217,-217,535,647,-217,-217,-217,2,55,1,648,104,2,55,1,649,104,1,142,-339,3,54,5,1,650,105,106,3,6,60,30,652,653,651,10,6,49,1,10,1,29,8,18,60,5,-218,544,104,-218,-218,-218,-218,-218,410,654,8,6,60,1,5,23,1,8,18,-217,-217,-217,542,655,-217,-217,-217,6,6,60,1,5,24,85,-363,-363,-363,-363,-363,545,3,55,1,126,656,104,657,2,55,1,658,104,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-346,-346,-346,-346,-346,-346,127,-346,-346,-346,-346,125,126,-346,-346,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,659,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,660,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,67,661,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,1,138,662,23,92,12,44,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,127,663,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,112,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,6,1,1,1,1,7,3,11,2,1,2,2,1,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,244,102,103,245,53,52,72,73,93,99,59,83,87,249,84,85,426,664,243,246,242,66,42,43,90,91,248,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,5,6,60,1,5,32,-146,-146,-146,-146,-146,111,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,6,1,1,1,1,7,3,11,1,1,1,2,2,5,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-153,-153,102,103,245,53,52,72,73,93,99,59,83,-153,87,249,84,85,420,419,66,42,43,90,91,248,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,110,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,6,1,1,1,1,7,3,11,2,1,2,2,1,3,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,245,53,52,72,73,93,99,59,83,87,249,84,85,426,665,246,242,66,42,43,90,91,248,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,2,66,1,555,666,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,23,67,25,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,667,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,66,10,162,668,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,125,126,-257,-257,-257,-257,-257,-257,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,125,126,-259,-259,-259,-259,-259,-259,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,27,6,60,1,5,20,4,52,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-116,-116,-116,-116,669,-116,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,670,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,17,45,8,1,1,1,1,1,1,1,22,8,10,1,1,1,2,1,269,100,101,271,104,272,255,105,106,273,571,671,274,266,267,268,275,23,6,39,8,1,1,1,1,1,1,1,6,1,5,10,8,6,3,1,1,1,1,2,1,-109,269,100,101,271,104,272,255,105,106,-109,-109,-109,273,571,-109,672,270,274,266,267,268,275,5,6,60,1,5,24,-111,-111,-111,-111,-111,6,6,60,1,5,19,5,-114,-114,-114,-114,673,-114,27,6,60,1,5,20,4,52,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-118,-118,-118,-118,127,-118,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,674,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,6,6,60,1,5,19,5,-124,-124,-124,-124,-124,-124,23,92,12,44,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,127,675,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,9,6,60,1,5,11,1,1,11,24,-136,-136,-136,-136,-136,-136,-136,-136,-136,9,6,60,1,5,11,1,1,11,24,-137,-137,-137,-137,-137,-137,-137,-137,-137,2,57,1,676,255,2,57,1,677,255,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,678,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,679,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,9,6,60,1,5,11,1,1,11,24,-134,-134,-134,-134,-134,-134,-134,-134,-134,9,6,60,1,5,11,1,1,11,24,-135,-135,-135,-135,-135,-135,-135,-135,-135,4,59,1,2,2,-60,-60,-60,-60,2,6,61,107,680,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,125,126,-406,-406,-406,-406,-406,-406,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,681,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-238,-238,-238,-238,-238,-238,-238,-238,127,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,125,126,96,97,-238,-238,-238,-238,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,682,-284,-284,-284,-284,-284,-284,-284,-284,125,126,-284,-284,-284,683,-284,-284,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,684,-289,-289,-289,-289,-289,-289,-289,-289,125,126,-289,-289,-289,-289,-289,-289,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,685,-293,-293,-293,-293,-293,-293,-293,-293,125,126,-293,-293,-293,-293,-293,-293,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,686,-297,-297,-297,-297,-297,-297,-297,-297,125,126,-297,-297,-297,-297,-297,-297,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,687,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,688,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,125,126,-300,-300,-300,-300,-300,-300,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,67,19,6,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-161,-161,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,1,86,689,1,86,690,23,86,6,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-66,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,23,67,25,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,691,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,55,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,106,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,1,2,2,5,4,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,249,84,85,692,66,42,43,90,91,248,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,108,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,1,2,2,5,4,4,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,327,102,103,53,52,72,73,93,99,59,83,87,249,84,85,326,66,42,43,90,91,248,693,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,5,6,60,1,5,50,-195,-195,-195,-195,-195,3,6,60,1,602,603,694,1,86,695,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,9,1,5,59,1,1,5,32,18,16,-169,-169,-169,-169,-169,-169,-169,-169,-169,6,6,60,1,5,50,2,-176,-176,-176,-176,-176,-176,8,6,60,1,5,23,1,8,18,-217,-217,-217,349,696,-217,-217,-217,2,66,10,162,610,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,697,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,698,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,699,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,700,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,701,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,25,66,10,16,5,51,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,702,127,703,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,10,16,5,51,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,704,127,705,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,2,66,10,162,706,1,67,707,4,6,61,78,12,708,-254,-254,-254,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,709,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,2,6,61,-316,-316,2,66,10,162,710,3,54,5,1,711,105,106,8,6,60,1,5,23,1,8,18,-217,-217,-217,535,712,-217,-217,-217,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,1,142,713,4,55,1,124,2,402,104,714,403,6,55,1,10,113,1,2,402,104,401,715,400,403,5,6,60,1,5,24,-330,-330,-330,-330,-330,3,6,60,1,644,645,716,5,6,60,1,5,24,-335,-335,-335,-335,-335,5,6,60,1,5,24,-337,-337,-337,-337,-337,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,14,1,5,59,1,1,5,32,18,16,4,6,1,10,1,-341,-341,-341,-341,-341,-341,-341,-341,-341,717,-341,-341,-341,-341,4,55,1,126,5,544,104,410,718,6,55,1,10,116,3,2,544,104,408,410,719,407,5,6,60,1,5,24,-359,-359,-359,-359,-359,3,6,60,1,652,653,720,5,6,60,1,5,24,-364,-364,-364,-364,-364,5,6,60,1,5,24,-365,-365,-365,-365,-365,5,6,60,1,5,24,-367,-367,-367,-367,-367,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-347,-347,-347,-347,-347,-347,127,-347,-347,-347,-347,125,126,-347,-347,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,25,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,721,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,9,6,60,1,5,23,1,8,9,9,-217,-217,-217,422,423,-217,-217,722,-217,5,6,60,1,5,32,-147,-147,-147,-147,-147,5,6,60,1,5,32,-148,-148,-148,-148,-148,1,86,723,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,14,39,16,1,24,1,1,7,4,5,5,2,24,37,2,309,154,104,156,157,155,99,724,725,83,158,197,308,196,23,67,25,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,726,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,60,1,5,24,-112,-112,-112,-112,-112,8,6,60,1,5,23,1,8,18,-217,-217,-217,440,727,-217,-217,-217,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,728,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,566,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,23,67,25,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,729,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,6,6,60,1,5,19,5,-125,-125,-125,-125,-125,-125,9,6,60,1,5,11,1,1,11,24,-138,-138,-138,-138,-138,-138,-138,-138,-138,9,6,60,1,5,11,1,1,11,24,-139,-139,-139,-139,-139,-139,-139,-139,-139,23,86,6,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,730,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,731,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,65,732,23,67,25,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,733,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,734,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,735,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,736,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,737,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,738,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,739,-291,-291,-291,-291,-291,-291,-291,-291,125,126,-291,-291,-291,-291,-291,-291,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,740,-295,-295,-295,-295,-295,-295,-295,-295,125,126,-295,-295,-295,-295,-295,-295,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,1,86,741,5,6,60,1,5,50,-196,-196,-196,-196,-196,8,6,60,1,5,23,1,8,18,-217,-217,-217,478,742,-217,-217,-217,5,6,60,1,5,50,-197,-197,-197,-197,-197,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,3,6,60,1,492,493,743,25,66,10,16,56,1,9,1,1,4,28,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,744,127,124,125,126,96,97,745,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,10,16,5,51,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,746,127,747,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,10,16,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,748,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,10,16,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,749,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,10,16,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,750,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,751,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,752,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,67,753,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,3,67,78,12,-255,-255,-255,24,66,6,20,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-204,-204,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,3,6,60,30,644,645,754,3,54,5,1,755,105,106,5,6,60,1,5,24,-331,-331,-331,-331,-331,8,6,60,1,5,23,1,8,18,-217,-217,-217,535,756,-217,-217,-217,5,6,60,1,5,24,-332,-332,-332,-332,-332,3,54,5,1,757,105,106,5,6,60,1,5,24,-360,-360,-360,-360,-360,8,6,60,1,5,23,1,8,18,-217,-217,-217,542,758,-217,-217,-217,5,6,60,1,5,24,-361,-361,-361,-361,-361,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,2,66,1,555,759,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,4,94,69,2,2,760,460,462,463,11,55,1,24,1,1,7,4,10,2,24,39,154,104,156,157,155,99,761,159,158,197,196,5,6,60,1,5,24,-117,-117,-117,-117,-117,3,6,60,1,568,569,762,27,6,60,1,5,20,4,52,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-116,-116,-116,-116,127,-116,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,60,1,5,24,-119,-119,-119,-119,-119,9,6,60,1,5,11,1,1,11,24,-140,-140,-140,-140,-140,-140,-140,-140,-140,23,67,25,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,763,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,59,1,2,2,-61,-61,-61,-61,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,125,126,-285,-285,-285,764,-285,-285,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,765,-286,-286,-286,-286,-286,-286,-286,-286,125,126,-286,-286,-286,-286,-286,-286,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,125,126,-290,-290,-290,-290,-290,-290,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,125,126,-294,-294,-294,-294,-294,-294,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,125,126,-298,-298,-298,-298,-298,-298,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,766,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,767,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,3,6,60,1,602,603,768,6,6,60,1,5,50,2,-177,-177,-177,-177,-177,-177,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,769,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,770,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,24,66,10,16,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,771,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,10,16,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,772,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,1,142,773,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,3,6,60,1,644,645,774,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,3,6,60,1,652,653,775,5,6,60,1,5,32,-149,-149,-149,-149,-149,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,776,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,94,777,5,6,60,1,5,24,-113,-113,-113,-113,-113,1,86,778,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,779,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,780,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,125,126,-292,-292,-292,-292,-292,-292,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,125,126,-296,-296,-296,-296,-296,-296,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,60,1,5,50,-198,-198,-198,-198,-198,24,66,10,16,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,781,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,10,16,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,782,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,3,54,5,1,783,105,106,5,6,60,1,5,24,-333,-333,-333,-333,-333,5,6,60,1,5,24,-362,-362,-362,-362,-362,45,1,5,59,1,1,5,14,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,786,-289,-289,-289,-289,784,-289,785,-289,-289,-289,-289,-289,-289,-289,-289,125,126,-289,-289,-289,-289,-289,-289,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,787,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,9,6,60,1,5,11,1,1,11,24,-141,-141,-141,-141,-141,-141,-141,-141,-141,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,125,126,-287,-287,-287,-287,-287,-287,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,125,126,-288,-288,-288,-288,-288,-288,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,1,96,788,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,789,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,6,6,60,1,29,8,18,-218,-218,-218,-218,-218,-218,45,1,5,59,1,1,5,14,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,786,-291,-291,-291,-291,790,-291,791,-291,-291,-291,-291,-291,-291,-291,-291,125,126,-291,-291,-291,-291,-291,-291,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,45,1,5,59,1,1,5,14,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,786,-290,-290,-290,-290,792,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,125,126,-290,-290,-290,-290,-290,-290,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,1,96,793,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,4,1,794,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,96,795,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,45,1,5,59,1,1,5,14,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-292,-292,-292,-292,-292,786,-292,-292,-292,-292,796,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,125,126,-292,-292,-292,-292,-292,-292,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,1,96,797,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107],U=[],W=0,F,f,u,Y;while(W<$.length){F=$[W++],f={},u=0,Y=[];while(F--)u+=$[W++],Y.push(u);for(u of Y)f[u]=$[W++];U.push(f)}return U})(),ruleTable:[0,0,3,0,3,1,4,1,4,3,4,2,5,1,5,1,5,1,9,1,9,1,9,1,9,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,8,1,8,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,45,1,45,1,55,1,57,1,54,1,54,3,61,1,61,2,63,3,63,5,63,2,63,1,47,1,47,3,71,3,71,1,17,3,17,4,17,5,18,3,18,4,18,5,19,3,19,4,19,3,20,3,20,4,20,5,21,3,21,4,21,3,21,2,21,3,21,2,36,1,36,1,36,1,79,1,79,1,79,3,79,3,79,4,79,6,79,4,79,6,79,4,79,5,79,7,79,3,79,3,79,4,79,6,81,10,81,12,81,11,81,13,81,4,99,0,99,1,99,3,99,4,99,6,100,1,100,1,100,3,100,5,100,3,100,5,102,1,102,1,102,1,90,1,90,3,90,4,90,1,101,2,101,2,107,1,107,1,107,1,107,1,107,1,107,2,107,2,107,2,107,2,107,3,107,3,107,4,107,6,80,2,80,3,80,4,112,1,112,3,112,4,112,4,112,6,114,1,114,2,113,1,113,2,111,1,111,2,116,1,116,2,117,1,117,1,39,5,87,3,87,2,87,2,87,1,32,6,32,3,15,5,15,2,34,5,34,2,125,1,125,1,121,0,121,1,121,3,121,4,121,6,128,1,128,3,128,2,128,1,129,1,129,1,129,1,129,1,130,2,40,2,40,2,40,3,40,2,40,2,109,2,109,4,132,1,132,3,132,4,132,4,132,6,115,1,115,1,115,1,115,1,133,1,133,3,42,1,42,1,82,2,43,3,43,4,43,6,44,3,44,3,76,2,76,3,38,3,38,5,95,0,95,1,10,2,10,4,10,1,30,2,30,4,31,1,31,2,31,4,31,3,143,3,143,5,146,3,146,5,22,1,22,3,22,1,22,3,22,3,22,7,22,5,22,3,22,3,23,2,23,3,23,4,23,5,151,3,151,3,151,2,26,5,26,7,26,4,26,6,155,1,155,2,156,3,156,4,158,2,158,4,158,2,158,4,24,2,24,2,24,2,24,1,161,2,161,2,161,3,25,5,25,7,25,7,25,9,25,9,25,5,25,7,25,6,25,8,25,5,25,7,25,6,25,8,25,5,25,7,25,3,25,5,25,5,25,7,25,7,25,9,25,9,25,5,25,7,25,6,25,8,25,5,25,7,25,6,25,8,25,5,25,7,25,3,25,5,168,1,168,3,93,1,93,3,27,1,27,2,27,3,27,4,27,2,27,3,27,4,27,5,33,3,28,4,173,1,173,3,173,2,174,1,174,1,174,1,29,2,12,2,12,4,12,4,12,5,12,7,12,6,12,9,179,1,179,3,179,4,179,4,179,6,180,1,180,3,180,1,180,3,177,1,178,3,13,3,13,5,13,2,13,2,13,2,13,2,13,4,13,5,13,6,13,2,13,2,13,2,13,2,13,3,13,5,13,4,13,5,13,7,185,1,185,3,185,4,185,4,185,6,187,1,187,3,187,3,187,1,187,3,35,2,35,2,35,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,4,16,2,16,2,16,2,16,2,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,5,16,3,16,5,16,4,41,2],ruleActions:($,U,W,F)=>{let f=U,u=U.length-1;switch($){case 1:return["program"];case 2:return["program",...f[u]];case 3:case 58:case 110:case 150:case 154:case 174:case 194:case 203:case 252:case 303:case 315:case 329:case 358:return[f[u]];case 4:case 111:case 175:case 195:case 204:case 316:case 330:case 359:return[...f[u-2],f[u]];case 5:case 60:case 157:case 317:return f[u-1];case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 63:case 64:case 86:case 87:case 88:case 89:case 90:case 115:case 120:case 121:case 122:case 123:case 126:case 129:case 130:case 131:case 132:case 133:case 145:case 171:case 172:case 178:case 182:case 183:case 184:case 185:case 199:case 200:case 201:case 217:case 218:case 232:case 234:case 263:case 301:case 318:case 319:case 320:case 334:case 336:case 338:case 363:case 366:return f[u];case 47:return"undefined";case 48:return"null";case 57:return["str",...f[u-1]];case 59:case 151:case 155:case 253:return[...f[u-1],f[u]];case 61:case 193:case 197:case 332:case 361:return f[u-2];case 62:return"";case 65:return["regex",f[u-1]];case 66:return["regex-index",f[u-2],f[u]];case 67:return["regex-index",f[u],null];case 68:return["=",f[u-2],f[u]];case 69:return["=",f[u-3],f[u]];case 70:return["=",f[u-4],f[u-1]];case 71:return["state",f[u-2],f[u]];case 72:return["state",f[u-3],f[u]];case 73:return["state",f[u-4],f[u-1]];case 74:case 76:return["computed",f[u-2],f[u]];case 75:return["computed",f[u-3],f[u]];case 77:return["readonly",f[u-2],f[u]];case 78:return["readonly",f[u-3],f[u]];case 79:return["readonly",f[u-4],f[u-1]];case 80:case 82:return["effect",f[u-2],f[u]];case 81:return["effect",f[u-3],f[u]];case 83:case 84:case 85:return["effect",null,f[u]];case 91:case 100:case 138:return[".",f[u-2],f[u]];case 92:case 101:case 139:return["?.",f[u-2],f[u]];case 93:case 95:case 102:case 140:return["[]",f[u-3],f[u-1]];case 94:case 96:case 103:case 141:return["[]",f[u-5],f[u-2]];case 97:return[f[u-1][0],f[u-3],...f[u-1].slice(1)];case 98:return["optindex",f[u-4],f[u-1]];case 99:return["optindex",f[u-6],f[u-2]];case 104:return["object-comprehension",f[u-8],f[u-6],[["for-of",f[u-4],f[u-2],!1]],[]];case 105:return["object-comprehension",f[u-10],f[u-8],[["for-of",f[u-6],f[u-4],!1]],[f[u-2]]];case 106:return["object-comprehension",f[u-9],f[u-7],[["for-of",f[u-4],f[u-2],!0]],[]];case 107:return["object-comprehension",f[u-11],f[u-9],[["for-of",f[u-6],f[u-4],!0]],[f[u-2]]];case 108:return["object",...f[u-2]];case 109:case 152:case 173:case 192:return[];case 112:case 176:case 196:case 331:case 360:return[...f[u-3],f[u]];case 113:case 177:case 198:case 333:case 362:return[...f[u-5],...f[u-2]];case 114:return[f[u],f[u],null];case 116:return[f[u-2],f[u],":"];case 117:return[f[u-4],f[u-1],":"];case 118:return[f[u-2],f[u],"="];case 119:return[f[u-4],f[u-1],"="];case 124:return["dynamicKey",f[u-1]];case 125:return["[]","this",f[u-1]];case 127:case 128:case 186:return["...",f[u]];case 134:case 190:return["super",...f[u]];case 135:case 136:case 137:case 188:case 191:return[f[u-1],...f[u]];case 142:return["array"];case 143:return["array",...f[u-1]];case 144:return["array",...f[u-2],...f[u-1]];case 146:return[...f[u-2],...f[u]];case 147:return[...f[u-3],...f[u]];case 148:return[...f[u-2],...f[u-1]];case 149:return[...f[u-5],...f[u-4],...f[u-2],...f[u-1]];case 153:return[...f[u]];case 156:return null;case 158:return"..";case 159:case 202:return"...";case 160:return[f[u-2],f[u-3],f[u-1]];case 161:case 387:case 389:case 390:case 405:case 407:return[f[u-1],f[u-2],f[u]];case 162:return[f[u],f[u-1],null];case 163:return[f[u-1],null,f[u]];case 164:return[f[u],null,null];case 165:return["def",f[u-4],f[u-2],f[u]];case 166:return["def",f[u-1],[],f[u]];case 167:case 169:return[f[u-1],f[u-3],f[u]];case 168:case 170:return[f[u-1],[],f[u]];case 179:case 302:return["default",f[u-2],f[u]];case 180:return["rest",f[u]];case 181:return["expansion"];case 187:return["tagged-template",f[u-1],f[u]];case 189:return["optcall",f[u-2],...f[u]];case 205:case 206:return"this";case 207:return[".","this",f[u]];case 208:return[".","super",f[u]];case 209:return["[]","super",f[u-1]];case 210:return["[]","super",f[u-2]];case 211:return[".","new",f[u]];case 212:return[".","import",f[u]];case 213:return["block"];case 214:return["block",...f[u-1]];case 215:return f[u-1].length===1?f[u-1][0]:["block",...f[u-1]];case 216:return f[u-2].length===1?f[u-2][0]:["block",...f[u-2]];case 219:return["return",f[u]];case 220:return["return",f[u-1]];case 221:return["return"];case 222:return["throw",f[u]];case 223:return["throw",f[u-1]];case 224:return["yield"];case 225:return["yield",f[u]];case 226:return["yield",f[u-1]];case 227:return["yield-from",f[u]];case 228:return["if",f[u-1],f[u]];case 229:return f[u-4].length===3?["if",f[u-4][1],f[u-4][2],["if",f[u-1],f[u]]]:[...f[u-4],["if",f[u-1],f[u]]];case 230:return["if",["!",f[u-1]],f[u]];case 231:return["if",["!",f[u-3]],f[u-2],f[u]];case 233:return f[u-2].length===3?["if",f[u-2][1],f[u-2][2],f[u]]:[...f[u-2],f[u]];case 235:case 236:return["if",f[u],[f[u-2]]];case 237:return["?:",f[u-4],f[u-6],f[u-1]];case 238:return["?:",f[u-2],f[u-4],f[u]];case 239:case 240:return["if",["!",f[u]],[f[u-2]]];case 241:return["try",f[u]];case 242:return["try",f[u-1],f[u]];case 243:return["try",f[u-2],f[u]];case 244:return["try",f[u-3],f[u-2],f[u]];case 245:case 246:case 368:case 371:case 373:return[f[u-1],f[u]];case 247:return[null,f[u]];case 248:return["switch",f[u-3],f[u-1],null];case 249:return["switch",f[u-5],f[u-3],f[u-1]];case 250:return["switch",null,f[u-1],null];case 251:return["switch",null,f[u-3],f[u-1]];case 254:return["when",f[u-1],f[u]];case 255:return["when",f[u-2],f[u-1]];case 256:return["while",f[u]];case 257:return["while",f[u-2],f[u]];case 258:return["while",["!",f[u]]];case 259:return["while",["!",f[u-2]],f[u]];case 260:return f[u-1].length===2?[f[u-1][0],f[u-1][1],f[u]]:[f[u-1][0],f[u-1][1],f[u-1][2],f[u]];case 261:case 262:return f[u].length===2?[f[u][0],f[u][1],[f[u-1]]]:[f[u][0],f[u][1],f[u][2],[f[u-1]]];case 264:return["loop",f[u]];case 265:return["loop",[f[u]]];case 266:return["loop-n",f[u-1],f[u]];case 267:return["for-in",f[u-3],f[u-1],null,null,f[u]];case 268:return["for-in",f[u-5],f[u-3],null,f[u-1],f[u]];case 269:return["for-in",f[u-5],f[u-3],f[u-1],null,f[u]];case 270:return["for-in",f[u-7],f[u-5],f[u-1],f[u-3],f[u]];case 271:return["for-in",f[u-7],f[u-5],f[u-3],f[u-1],f[u]];case 272:return["for-of",f[u-3],f[u-1],!1,null,f[u]];case 273:return["for-of",f[u-5],f[u-3],!1,f[u-1],f[u]];case 274:return["for-of",f[u-3],f[u-1],!0,null,f[u]];case 275:return["for-of",f[u-5],f[u-3],!0,f[u-1],f[u]];case 276:return["for-as",f[u-3],f[u-1],!1,null,f[u]];case 277:return["for-as",f[u-5],f[u-3],!1,f[u-1],f[u]];case 278:case 280:return["for-as",f[u-3],f[u-1],!0,null,f[u]];case 279:case 281:return["for-as",f[u-5],f[u-3],!0,f[u-1],f[u]];case 282:return["for-in",[],f[u-1],null,null,f[u]];case 283:return["for-in",[],f[u-3],f[u-1],null,f[u]];case 284:return["comprehension",f[u-4],[["for-in",f[u-2],f[u],null]],[]];case 285:return["comprehension",f[u-6],[["for-in",f[u-4],f[u-2],null]],[f[u]]];case 286:return["comprehension",f[u-6],[["for-in",f[u-4],f[u-2],f[u]]],[]];case 287:return["comprehension",f[u-8],[["for-in",f[u-6],f[u-4],f[u]]],[f[u-2]]];case 288:return["comprehension",f[u-8],[["for-in",f[u-6],f[u-4],f[u-2]]],[f[u]]];case 289:return["comprehension",f[u-4],[["for-of",f[u-2],f[u],!1]],[]];case 290:return["comprehension",f[u-6],[["for-of",f[u-4],f[u-2],!1]],[f[u]]];case 291:return["comprehension",f[u-5],[["for-of",f[u-2],f[u],!0]],[]];case 292:return["comprehension",f[u-7],[["for-of",f[u-4],f[u-2],!0]],[f[u]]];case 293:return["comprehension",f[u-4],[["for-as",f[u-2],f[u],!1,null]],[]];case 294:return["comprehension",f[u-6],[["for-as",f[u-4],f[u-2],!1,null]],[f[u]]];case 295:return["comprehension",f[u-5],[["for-as",f[u-2],f[u],!0,null]],[]];case 296:return["comprehension",f[u-7],[["for-as",f[u-4],f[u-2],!0,null]],[f[u]]];case 297:return["comprehension",f[u-4],[["for-as",f[u-2],f[u],!0,null]],[]];case 298:return["comprehension",f[u-6],[["for-as",f[u-4],f[u-2],!0,null]],[f[u]]];case 299:return["comprehension",f[u-2],[["for-in",[],f[u],null]],[]];case 300:return["comprehension",f[u-4],[["for-in",[],f[u-2],f[u]]],[]];case 304:case 335:case 337:case 364:case 365:case 367:return[f[u-2],f[u]];case 305:return["class",null,null];case 306:return["class",null,null,f[u]];case 307:return["class",null,f[u]];case 308:return["class",null,f[u-1],f[u]];case 309:return["class",f[u],null];case 310:return["class",f[u-1],null,f[u]];case 311:return["class",f[u-2],f[u]];case 312:return["class",f[u-3],f[u-1],f[u]];case 313:return["enum",f[u-1],f[u]];case 314:return["component",null,["block",...f[u-1]]];case 321:return["render",f[u]];case 322:case 325:return["import","{}",f[u]];case 323:case 324:return["import",f[u-2],f[u]];case 326:return["import",f[u-4],f[u]];case 327:return["import",[f[u-4],f[u-2]],f[u]];case 328:return["import",[f[u-7],f[u-4]],f[u]];case 339:return["*",f[u]];case 340:return["export","{}"];case 341:return["export",f[u-2]];case 342:case 343:case 344:case 345:case 349:case 350:case 351:case 352:return["export",f[u]];case 346:return["export",["=",f[u-2],f[u]]];case 347:return["export",["=",f[u-3],f[u]]];case 348:return["export",["=",f[u-4],f[u-1]]];case 353:return["export-default",f[u]];case 354:return["export-default",f[u-1]];case 355:return["export-all",f[u]];case 356:return["export-from","{}",f[u]];case 357:return["export-from",f[u-4],f[u]];case 369:case 370:case 372:case 410:return["do-iife",f[u]];case 374:return["-",f[u]];case 375:return["+",f[u]];case 376:return["?",f[u-1]];case 377:return["defined",f[u-1]];case 378:return["presence",f[u-1]];case 379:return["await",f[u]];case 380:return["await",f[u-1]];case 381:return["--",f[u],!1];case 382:return["++",f[u],!1];case 383:return["--",f[u-1],!0];case 384:return["++",f[u-1],!0];case 385:return["+",f[u-2],f[u]];case 386:return["-",f[u-2],f[u]];case 388:return["**",f[u-2],f[u]];case 391:return["&",f[u-2],f[u]];case 392:return["^",f[u-2],f[u]];case 393:return["|",f[u-2],f[u]];case 394:case 395:case 396:case 397:case 398:case 399:return["control",f[u-1],f[u-2],f[u]];case 400:return["&&",f[u-2],f[u]];case 401:return["||",f[u-2],f[u]];case 402:return["??",f[u-2],f[u]];case 403:return["!?",f[u-2],f[u]];case 404:return["|>",f[u-2],f[u]];case 406:return["?:",f[u-4],f[u-2],f[u]];case 408:return[f[u-3],f[u-4],f[u-1]];case 409:return[f[u-2],f[u-3],f[u]]}},parseError($,U){let W,F,f,u,Y,A,_;if(U.recoverable)return this.trace($);else throw f=(U.line||0)+1,W=U.loc?.c||0,_=U.token?` (token: ${U.token})`:"",A=U.text?` near '${U.text}'`:"",u=`line ${f}, column ${W}`,Y=`Parse error at ${u}${_}${A}: ${$}`,F=Error(Y),F.hash=U,F},parse($){let U,W,F,f,u,Y,A,_,R,w,z,X,K,D,Z,J,Q,H,O,M,G,B,q,P,E,I;[M,I,w]=[[0],[null],[]],[K,E,q,B,J]=[this.parseTable,"",0,0,0],[W,U]=[2,1],_=Object.create(this.lexer),H={ctx:{}};for(let N in this.ctx){if(!Object.hasOwn(this.ctx,N))continue;let T=this.ctx[N];H.ctx[N]=T}if(_.setInput($,H.ctx),[H.ctx.lexer,H.ctx.parser]=[_,this],_.loc==null)_.loc={};P=_.loc,w.push(P),this.parseError=typeof H.ctx.parseError==="function"?H.ctx.parseError:Object.getPrototypeOf(this).parseError,A=()=>{let N;if(N=_.lex()||U,typeof N!=="number")N=this.symbolIds[N]||N;return N},G=D=O=F=Z=X=Y=z=u=null,Q={};while(!0){if(O=M[M.length-1],G==null)G=A();if(F=K[O]?.[G],F==null){if(f="",!J)u=(()=>{let N=[];for(let T in K[O]){if(!Object.hasOwn(K[O],T))continue;if(this.tokenNames[T]&&T>W)N.push(`'${this.tokenNames[T]}'`)}return N})();throw f=(()=>{if(_.showPosition)return`Parse error on line ${q+1}:
|
|
12
|
+
${_.showPosition()}
|
|
13
|
+
Expecting ${u.join(", ")}, got '${this.tokenNames[G]||G}'`;else return`Parse error on line ${q+1}: Unexpected ${G===U?"end of input":`'${this.tokenNames[G]||G}'`}`,this.parseError(f,{text:_.match,token:this.tokenNames[G]||G,line:_.line,loc:P,expected:u})})(),Error(f)}if(F>0)if(M.push(G,F),I.push(_.text),w.push(_.loc),G=null,!D){if([B,E,q,P]=[_.len,_.text,_.line,_.loc],J>0)J--}else[G,D]=[D,null];else if(F<0){if(Y=this.ruleTable[-F*2+1],Q.$=I[I.length-Y],R=w[w.length-(Y||1)],Q._$={r:R.r,c:R.c},Z=this.ruleActions.call(Q,-F,I,w,H.ctx),Z!=null)Q.$=Z;if(Array.isArray(Q.$))Q.$.loc=Q._$;if(Y)M.length-=Y*2,I.length-=Y,w.length-=Y;M.push(this.ruleTable[-F*2]),I.push(Q.$),w.push(Q._$),z=K[M[M.length-2]][M[M.length-1]],M.push(z)}else if(F===0)return I[I.length-1]}},trace(){},ctx:{}},j3=($={})=>{let U=Object.create(V3);return Object.defineProperty(U,"ctx",{value:{...$},enumerable:!1,writable:!0,configurable:!0}),U},s=j3();var a3=s.parse.bind(s);var C3=new Set(["html","head","title","base","link","meta","style","body","address","article","aside","footer","header","h1","h2","h3","h4","h5","h6","main","nav","section","blockquote","dd","div","dl","dt","figcaption","figure","hr","li","ol","p","pre","ul","a","abbr","b","bdi","bdo","br","cite","code","data","dfn","em","i","kbd","mark","q","rp","rt","ruby","s","samp","small","span","strong","sub","sup","time","u","var","wbr","area","audio","img","map","track","video","embed","iframe","object","param","picture","portal","source","svg","math","canvas","noscript","script","del","ins","caption","col","colgroup","table","tbody","td","tfoot","th","thead","tr","button","datalist","fieldset","form","input","label","legend","meter","optgroup","option","output","progress","select","textarea","details","dialog","menu","summary","slot","template"]),_1=new Set(["svg","g","defs","symbol","use","marker","clipPath","mask","pattern","circle","ellipse","line","path","polygon","polyline","rect","text","textPath","tspan","linearGradient","radialGradient","stop","filter","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","animate","animateMotion","animateTransform","set","mpath","desc","foreignObject","image","metadata","switch","title","view"]),z2=new Set([...C3,..._1]);var g1=new Set(["beforeMount","mounted","updated","beforeUnmount","unmounted","onError"]),y3=new Set(["disabled","hidden","readonly","required","checked","selected","autofocus","autoplay","controls","loop","muted","multiple","novalidate","open","reversed","defer","async","formnovalidate","allowfullscreen","inert"]);function b3($){for(let U of $){if(!Array.isArray(U))continue;let W=U[0]instanceof String?U[0].valueOf():U[0],F=U[1]instanceof String?U[1].valueOf():U[1];if(W==="type"&&typeof F==="string")return F.replace(/^["']|["']$/g,"")}return null}function G1($){if(typeof $==="string")return $;if(Array.isArray($)&&$[0]==="."&&$[1]==="this"&&typeof $[2]==="string")return $[2];return null}function v1($){return Array.isArray($)&&$[0]==="."&&$[1]==="this"}function K2($,U){U.prototype.rewriteRender=function(){let u=(Z,J,Q)=>{let H=[Z,J];if(H.pre=0,H.data=null,H.loc=Q?.loc??{r:0,c:0,n:0},H.spaced=!1,H.newLine=!1,H.generated=!0,Q)H.origin=Q;return H},Y=!1,A=0,_=0,R=[],w=(Z)=>{let J=Z.split("#")[0];return z2.has(J)},z=(Z)=>{if(!Z||typeof Z!=="string")return!1;return/^[A-Z]/.test(Z)},X=(Z)=>{return w(Z)||z(Z)},K=(Z,J,Q,H)=>{let O=1,M=J;while(M>=0&&O>0){let G=Z[M][0];if(G===Q)O++;else if(G===H)O--;if(O>0)M--}return M},D=(Z,J)=>{let Q=J;while(Q>0){let H=Z[Q-1][0];if(H==="TERMINATOR"||H==="RENDER")break;if(H==="INDENT"||H==="OUTDENT"){let O=Z[Q][0];if(O==="CALL_END"||O===")"){Q=K(Z,Q-1,O,O==="CALL_END"?"CALL_START":"(");continue}break}if(H==="CALL_END"||H===")"){Q=K(Z,Q-2,H,H==="CALL_END"?"CALL_START":"(");continue}if(H==="INTERPOLATION_END"){Q=K(Z,Q-2,"INTERPOLATION_END","INTERPOLATION_START");continue}if(H==="STRING_END"){Q=K(Z,Q-2,"STRING_END","STRING_START");continue}Q--}return Z[Q]&&Z[Q][0]==="IDENTIFIER"&&X(Z[Q][1])};this.scanTokens(function(Z,J,Q){let H=Z[0],O=J<Q.length-1?Q[J+1]:null;if(H==="RENDER")return Y=!0,A=_+1,1;if(H==="INDENT")return _++,1;if(H==="OUTDENT"){_--;let M=0;while(R.length>0&&R[R.length-1]>_){let G=u("CALL_END",")",Z);Q.splice(J+1+M,0,G),R.pop(),M++}if(Y&&_<A)Y=!1;return 1+M}if(!Y)return 1;if(H==="UNARY_MATH"&&Z[1]==="~"&&O&&O[0]==="IDENTIFIER"){Z[0]="PROPERTY",Z[1]="__transition__";let M=u(":",":",Z),G=u("STRING",`"${O[1]}"`,O);return Q.splice(J+1,1,M,G),1}if(H==="IDENTIFIER"&&!Z.spaced){let M=[Z[1]],G=J+1;while(G+1<Q.length){let B=Q[G],q=Q[G+1];if(B[0]==="-"&&!B.spaced&&(q[0]==="IDENTIFIER"||q[0]==="PROPERTY")){if(M.push(q[1]),G+=2,q[0]==="PROPERTY")break}else break}if(M.length>1&&G>J+1&&Q[G-1][0]==="PROPERTY")return Z[0]="STRING",Z[1]=`"${M.join("-")}"`,Q.splice(J+1,G-J-1),1}if(H==="."){let M=J>0?Q[J-1]:null,G=M?M[0]:null;if(G==="INDENT"||G==="TERMINATOR"){if(O&&O[0]==="PROPERTY"){let B=J+2<Q.length?Q[J+2]:null;if(!B||B[0]!==":"){let q=u("IDENTIFIER","div",Z);return Q.splice(J,0,q),2}}if(!O||O[0]!=="(")return Z[0]="IDENTIFIER",Z[1]="div",0}}if(H==="IDENTIFIER"||H==="PROPERTY"){let M=Q[J+1],G=Q[J+2];if(M&&M[0]==="#"&&G&&(G[0]==="PROPERTY"||G[0]==="IDENTIFIER")){if(Z[1]=Z[1]+"#"+G[1],G.spaced)Z.spaced=!0;return Q.splice(J+1,2),0}}if(H==="BIND"){let M=J>0?Q[J-1]:null,G=Q[J+1];if(M&&(M[0]==="IDENTIFIER"||M[0]==="PROPERTY")&&G&&G[0]==="IDENTIFIER")return M[1]=`__bind_${M[1]}__`,Z[0]=":",Z[1]=":",1}if(H==="@"){let M=J+1;if(M<Q.length&&Q[M][0]==="PROPERTY"){M++;while(M+1<Q.length&&Q[M][0]==="."&&Q[M+1][0]==="PROPERTY")M+=2;if(M>J+2&&M<Q.length&&Q[M][0]===":"){let G=u("[","[",Z);Q.splice(J,0,G);let B=u("]","]",Q[M+1]);return Q.splice(M+1,0,B),2}}}if(H==="."&&O&&O[0]==="("){let M=J>0?Q[J-1]:null,G=M?M[0]:null,B=G==="INDENT"||G==="TERMINATOR",q=u("PROPERTY","__clsx",Z);O[0]="CALL_START";let P=1;for(let E=J+2;E<Q.length&&P>0;E++)if(Q[E][0]==="("||Q[E][0]==="CALL_START")P++;else if(Q[E][0]===")"){if(P--,P===0)Q[E][0]="CALL_END"}else if(Q[E][0]==="CALL_END")P--;if(B){let E=u("IDENTIFIER","div",Z);return Q.splice(J,0,E),Q.splice(J+2,0,q),3}else if(G===":")return Q[J]=u("IDENTIFIER","__clsx",Z),1;else return Q.splice(J+1,0,q),2}if(O&&O[0]==="INDENT"){if(O.fromThen)return 1;if(H==="->"||H==="=>"||H==="CALL_START"||H==="(")return 1;let M=!1,G=J>0?Q[J-1][0]:null,B=G==="IF"||G==="UNLESS"||G==="WHILE"||G==="UNTIL"||G==="WHEN",q=!1;if(H==="CALL_END"){let P=1;for(let E=J-1;E>=0&&P>0;E--)if(Q[E][0]==="CALL_END")P++;else if(Q[E][0]==="CALL_START"){if(P--,P===0&&E>0&&Q[E-1][0]==="PROPERTY"&&Q[E-1][1]==="__clsx")q=!0}}if(q)M=!0;else if(H==="IDENTIFIER"&&X(Z[1])&&!B)M=!0;else if(H==="IDENTIFIER"&&!B)M=D(Q,J);else if(H==="PROPERTY"||H==="STRING"||H==="STRING_END"||H==="NUMBER"||H==="BOOL"||H==="CALL_END"||H===")"||H==="PRESENCE")M=D(Q,J);if(M){let P=H==="PROPERTY"&&J>0&&(Q[J-1][0]==="."||Q[J-1][0]==="#");if(q||H==="IDENTIFIER"&&X(Z[1])||P){let I=u("CALL_START","(",Z),N=u("->","->",Z);return N.newLine=!0,Q.splice(J+1,0,I,N),R.push(_+1),3}else{let I=u(",",",",Z),N=u("->","->",Z);return N.newLine=!0,Q.splice(J+1,0,I,N),3}}}if(H==="IDENTIFIER"&&z(Z[1])&&O&&(O[0]==="OUTDENT"||O[0]==="TERMINATOR"))return Q.splice(J+1,0,u("CALL_START","(",Z),u("CALL_END",")",Z)),3;return 1})};let W=$.prototype;W.isHtmlTag=function(u){let Y=u.split("#")[0];return z2.has(Y.toLowerCase())},W.isComponent=function(u){if(!u||typeof u!=="string")return!1;return/^[A-Z]/.test(u)},W.collectTemplateClasses=function(u){let Y=[],A=u;while(this.is(A,".")){let z=A[2];if(typeof z==="string"||z instanceof String)Y.unshift(z.valueOf());A=A[1]}let _=typeof A==="string"?A:A instanceof String?A.valueOf():null;if(_===null)return{tag:null,classes:Y,id:void 0};let[R,w]=_.split("#");if(!R)R="div";return{tag:R,classes:Y,id:w}};let F=(u)=>typeof u==="string"?u:u instanceof String?u.valueOf():null,f=(u,Y)=>{if(!(u instanceof String))return Y;let A=new String(Y);if(u.predicate)A.predicate=!0;if(u.await)A.await=!0;return A.predicate||A.await?A:Y};W.transformComponentMembers=function(u){let Y=this._self;if(!Array.isArray(u)){let A=F(u);if(A&&this.reactiveMembers&&this.reactiveMembers.has(A))return[".",[".",Y,A],f(u,"value")];if(A&&this.componentMembers&&this.componentMembers.has(A))return[".",Y,f(u,A)];return u}if(u[0]==="."&&u[1]==="this"&&F(u[2])!=null){let A=u[2],_=F(A);if(this.reactiveMembers&&this.reactiveMembers.has(_))return[".",[".",Y,_],f(A,"value")];return this._factoryMode?[".",Y,A]:u}if(u[0]==="."||u[0]==="?.")return[u[0],this.transformComponentMembers(u[1]),u[2]];if(u[0]==="->")return["=>",...u.slice(1).map((A)=>this.transformComponentMembers(A))];if(u[0]==="object")return["object",...u.slice(1).map((A)=>{if(Array.isArray(A)&&A.length>=2){let _=A[0],R=Array.isArray(_)?this.transformComponentMembers(_):_,w=this.transformComponentMembers(A[1]);return[R,w,A[2]]}return this.transformComponentMembers(A)})];return u.map((A)=>this.transformComponentMembers(A))},W.generateComponent=function(u,Y,A,_){let[,R]=Y;this.usesTemplates=!0,this.usesReactivity=!0;let w=this.is(R,"block")?R.slice(1):[],z=[],X=[],K=[],D=[],Z=[],J=[],Q=null,H=new Set,O=new Set;for(let I of w){if(!Array.isArray(I))continue;let[N]=I;if(N==="state"){let T=G1(I[1]);if(T)z.push({name:T,value:I[2],isPublic:v1(I[1])}),H.add(T),O.add(T)}else if(N==="computed"){let T=G1(I[1]);if(T)X.push({name:T,expr:I[2]}),H.add(T),O.add(T)}else if(N==="readonly"){let T=G1(I[1]);if(T)K.push({name:T,value:I[2],isPublic:v1(I[1])}),H.add(T)}else if(N==="="){let T=G1(I[1]);if(T)if(g1.has(T))Z.push({name:T,value:I[2]});else{let L=I[2];if(Array.isArray(L)&&(L[0]==="->"||L[0]==="=>"))D.push({name:T,func:L}),H.add(T);else z.push({name:T,value:L,isPublic:v1(I[1])}),H.add(T),O.add(T)}}else if(N==="effect")J.push(I);else if(N==="render")Q=I;else if(N==="object")for(let T=1;T<I.length;T++){let L=I[T];if(!Array.isArray(L))continue;let[h,V]=L;if(typeof h==="string"&&g1.has(h))Z.push({name:h,value:V});else if(typeof h==="string")D.push({name:h,func:V}),H.add(h)}}let M=new Map;for(let{name:I}of D)if(/^on[A-Z]/.test(I)&&!g1.has(I))M.set(I[2].toLowerCase()+I.slice(3),I);let G=this.componentMembers,B=this.reactiveMembers,q=this._autoEventHandlers;this.componentMembers=H,this.reactiveMembers=O,this._autoEventHandlers=M.size>0?M:null;let P=[],E="";P.push("class extends __Component {"),P.push(" _init(props) {");for(let{name:I,value:N,isPublic:T}of K){let L=this.generateInComponent(N,"value");P.push(T?` this.${I} = props.${I} ?? ${L};`:` this.${I} = ${L};`)}for(let{name:I,value:N,isPublic:T}of z){let L=this.generateInComponent(N,"value");P.push(T?` this.${I} = __state(props.__bind_${I}__ ?? props.${I} ?? ${L});`:` this.${I} = __state(${L});`)}for(let{name:I,expr:N}of X)if(this.is(N,"block")){let T=this.transformComponentMembers(N),L=this.generateFunctionBody(T);P.push(` this.${I} = __computed(() => ${L});`)}else{let T=this.generateInComponent(N,"value");P.push(` this.${I} = __computed(() => ${T});`)}for(let I of J){let N=I[2],T=this.containsAwait(N)?"async ":"";if(this.is(N,"block")){let L=this.transformComponentMembers(N),h=this.generateFunctionBody(L,[],!0);P.push(` __effect(${T}() => ${h});`)}else{let L=this.generateInComponent(N,"value");P.push(` __effect(${T}() => { ${L}; });`)}}P.push(" }");for(let{name:I,func:N}of D)if(Array.isArray(N)&&(N[0]==="->"||N[0]==="=>")){let[,T,L]=N,h=Array.isArray(T)?T.map((y)=>this.formatParam(y)).join(", "):"",V=this.reactiveMembers?this.transformComponentMembers(L):L,n=this.containsAwait(L),m=this.generateFunctionBody(V,T||[]);P.push(` ${n?"async ":""}${I}(${h}) ${m}`)}for(let{name:I,value:N}of Z)if(Array.isArray(N)&&(N[0]==="->"||N[0]==="=>")){let[,T,L]=N,h=Array.isArray(T)?T.map((y)=>this.formatParam(y)).join(", "):"",V=this.reactiveMembers?this.transformComponentMembers(L):L,n=this.containsAwait(L),m=this.generateFunctionBody(V,T||[]);P.push(` ${n?"async ":""}${I}(${h}) ${m}`)}if(Q){let I=Q[1],N=this.buildRender(I);if(N.blockFactories.length>0)E=N.blockFactories.join(`
|
|
14
14
|
|
|
15
15
|
`)+`
|
|
16
16
|
|
|
17
|
-
`;
|
|
18
|
-
${
|
|
17
|
+
`;P.push(" _create() {");for(let T of N.createLines)P.push(` ${T}`);if(P.push(` return ${N.rootVar};`),P.push(" }"),N.setupLines.length>0){P.push(" _setup() {");for(let T of N.setupLines)P.push(` ${T}`);P.push(" }")}}if(P.push("}"),this.componentMembers=G,this.reactiveMembers=B,this._autoEventHandlers=q,E)return`(() => {
|
|
18
|
+
${E}return ${P.join(`
|
|
19
19
|
`)};
|
|
20
|
-
})()`;return
|
|
21
|
-
`)},F.generateInComponent=function(U,u){if(typeof U==="string"&&this.reactiveMembers&&this.reactiveMembers.has(U))return`${this._self}.${U}.value`;if(typeof U==="string"&&this.componentMembers&&this.componentMembers.has(U))return`${this._self}.${U}`;if(Array.isArray(U)&&this.reactiveMembers){let f=this.transformComponentMembers(U);return this.generate(f,u)}return this.generate(U,u)},F.generateRender=function(U,u,f,Y){throw Error("render blocks can only be used inside a component")},F.buildRender=function(U){this._elementCount=0,this._textCount=0,this._blockCount=0,this._createLines=[],this._setupLines=[],this._blockFactories=[],this._loopVarStack=[],this._factoryMode=!1,this._factoryVars=null,this._fragChildren=new Map,this._pendingAutoWire=!1,this._autoWireEl=null,this._autoWireExplicit=null;let u=this.is(U,"block")?U.slice(1):[U],f;if(u.length===0)f="null";else if(u.length===1)this._pendingAutoWire=!!this._autoEventHandlers,f=this.generateNode(u[0]),this._pendingAutoWire=!1;else{f=this.newElementVar("frag"),this._createLines.push(`${f} = document.createDocumentFragment();`);let Y=[];for(let _ of u){let A=this.generateNode(_);this._createLines.push(`${f}.appendChild(${A});`),Y.push(A)}this._fragChildren.set(f,Y)}return{createLines:this._createLines,setupLines:this._setupLines,blockFactories:this._blockFactories,rootVar:f}},F.newBlockVar=function(){return`create_block_${this._blockCount++}`},F.newElementVar=function(U="el"){let u=`_${U}${this._elementCount++}`;if(this._factoryVars)this._factoryVars.add(u);return this._factoryMode?u:`this.${u}`},F.newTextVar=function(){let U=`_t${this._textCount++}`;if(this._factoryVars)this._factoryVars.add(U);return this._factoryMode?U:`this.${U}`},Object.defineProperty(F,"_self",{get(){return this._factoryMode?"ctx":"this"}}),F._pushEffect=function(U){if(this._factoryMode)this._setupLines.push(`disposers.push(__effect(() => { ${U} }));`);else this._setupLines.push(`__effect(() => { ${U} });`)},F.generateNode=function(U){if(typeof U==="string"||U instanceof String){let J=U.valueOf();if(J.startsWith('"')||J.startsWith("'")||J.startsWith("`")){let K=this.newTextVar();return this._createLines.push(`${K} = document.createTextNode(${J});`),K}if(this.reactiveMembers&&this.reactiveMembers.has(J)){let K=this.newTextVar();return this._createLines.push(`${K} = document.createTextNode('');`),this._pushEffect(`${K}.data = ${this._self}.${J}.value;`),K}let[w,z]=J.split("#"),X=this.newElementVar(),Z=w||"div";if(Y1.has(Z)||this._svgDepth>0)this._createLines.push(`${X} = document.createElementNS('http://www.w3.org/2000/svg', '${Z}');`);else this._createLines.push(`${X} = document.createElement('${Z}');`);if(z)this._createLines.push(`${X}.id = '${z}';`);return X}if(!Array.isArray(U)){let J=this.newElementVar("c");return this._createLines.push(`${J} = document.createComment('unknown');`),J}let[u,...f]=U,Y=typeof u==="string"?u:u instanceof String?u.valueOf():null;if(Y&&this.isComponent(Y))return this.generateChildComponent(Y,f);if(Y==="slot"&&this.componentMembers){let J=this._self,w=this.newElementVar("slot");return this._createLines.push(`${w} = ${J}.children instanceof Node ? ${J}.children : (${J}.children != null ? document.createTextNode(String(${J}.children)) : document.createComment(''));`),w}if(Y&&this.isHtmlTag(Y)){let[J,w]=Y.split("#");return this.generateTag(J||"div",[],f,w)}if(Y==="."){let[,J,w]=U;if(J==="this"&&typeof w==="string"){let Q=this._self;if(this.reactiveMembers&&this.reactiveMembers.has(w)){let H=this.newTextVar();return this._createLines.push(`${H} = document.createTextNode('');`),this._pushEffect(`${H}.data = ${Q}.${w}.value;`),H}let M=this.newElementVar("slot");return this._createLines.push(`${M} = ${Q}.${w} instanceof Node ? ${Q}.${w} : (${Q}.${w} != null ? document.createTextNode(String(${Q}.${w})) : document.createComment(''));`),M}let{tag:z,classes:X,id:Z}=this.collectTemplateClasses(U);if(z&&this.isHtmlTag(z))return this.generateTag(z,X,[],Z);let K=this.newTextVar(),R=this.generateInComponent(U,"value");return this._createLines.push(`${K} = document.createTextNode(String(${R}));`),K}if(Array.isArray(u)){if(Array.isArray(u[0])&&u[0][0]==="."&&(u[0][2]==="__clsx"||u[0][2]instanceof String&&u[0][2].valueOf()==="__clsx")){let X=typeof u[0][1]==="string"?u[0][1]:u[0][1].valueOf(),Z=u.slice(1);return this.generateDynamicTag(X,Z,f)}let{tag:J,classes:w,id:z}=this.collectTemplateClasses(u);if(J&&this.isHtmlTag(J)){if(w.length===1&&w[0]==="__clsx")return this.generateDynamicTag(J,f,[]);return this.generateTag(J,w,f,z)}}if(Y==="->"||Y==="=>")return this.generateTemplateBlock(f[1]);if(Y==="if")return this.generateConditional(U);if(Y==="for"||Y==="for-in"||Y==="for-of"||Y==="for-as")return this.generateTemplateLoop(U);let _=this.newTextVar(),A=this.generateInComponent(U,"value");if(this.hasReactiveDeps(U))this._createLines.push(`${_} = document.createTextNode('');`),this._pushEffect(`${_}.data = ${A};`);else this._createLines.push(`${_} = document.createTextNode(String(${A}));`);return _},F.appendChildren=function(U,u){for(let f of u)if(this.is(f,"->")||this.is(f,"=>")){let Y=f[2];if(this.is(Y,"block"))for(let _ of Y.slice(1))if(this.is(_,"object"))this.generateAttributes(U,_);else{let A=this.generateNode(_);this._createLines.push(`${U}.appendChild(${A});`)}else if(Y){let _=this.generateNode(Y);this._createLines.push(`${U}.appendChild(${_});`)}}else if(this.is(f,"object"))this.generateAttributes(U,f);else if(typeof f==="string"||f instanceof String){let Y=f.valueOf(),_=Y.split(/[#.]/)[0];if(this.isHtmlTag(_||"div")||this.isComponent(_)){let A=this.generateNode(f);this._createLines.push(`${U}.appendChild(${A});`)}else{let A=this.newTextVar();if(Y.startsWith('"')||Y.startsWith("'")||Y.startsWith("`"))this._createLines.push(`${A} = document.createTextNode(${Y});`);else if(this.reactiveMembers&&this.reactiveMembers.has(Y))this._createLines.push(`${A} = document.createTextNode('');`),this._pushEffect(`${A}.data = ${this._self}.${Y}.value;`);else if(this.componentMembers&&this.componentMembers.has(Y))this._createLines.push(`${A} = document.createTextNode(String(${this._self}.${Y}));`);else this._createLines.push(`${A} = document.createTextNode(${this.generateInComponent(f,"value")});`);this._createLines.push(`${U}.appendChild(${A});`)}}else if(f){let Y=this.generateNode(f);this._createLines.push(`${U}.appendChild(${Y});`)}},F._claimAutoWire=function(U){if(!this._pendingAutoWire||!this._autoEventHandlers?.size)return!1;return this._pendingAutoWire=!1,this._autoWireEl=U,this._autoWireExplicit=new Set,!0},F._emitAutoWire=function(U,u){if(!u)return;for(let[f,Y]of this._autoEventHandlers)if(!this._autoWireExplicit.has(f))this._createLines.push(`${U}.addEventListener('${f}', (e) => __batch(() => ${this._self}.${Y}(e)));`);this._autoWireEl=null,this._autoWireExplicit=null},F.generateTag=function(U,u,f,Y){let _=this.newElementVar(),A=Y1.has(U)||this._svgDepth>0;if(A)this._createLines.push(`${_} = document.createElementNS('http://www.w3.org/2000/svg', '${U}');`);else this._createLines.push(`${_} = document.createElement('${U}');`);if(Y)this._createLines.push(`${_}.id = '${Y}';`);let J=this._claimAutoWire(_),w=this._pendingClassArgs,z=this._pendingClassEl;if(u.length>0)this._pendingClassArgs=[`'${u.join(" ")}'`],this._pendingClassEl=_;if(U==="svg")this._svgDepth=(this._svgDepth||0)+1;if(this.appendChildren(_,f),U==="svg")this._svgDepth--;if(u.length>0){if(this._pendingClassArgs.length===1)if(A)this._createLines.push(`${_}.setAttribute('class', '${u.join(" ")}');`);else this._createLines.push(`${_}.className = '${u.join(" ")}';`);else{let X=this._pendingClassArgs.join(", ");if(A)this._pushEffect(`${_}.setAttribute('class', __clsx(${X}));`);else this._pushEffect(`${_}.className = __clsx(${X});`)}this._pendingClassArgs=w,this._pendingClassEl=z}return this._emitAutoWire(_,J),_},F.generateDynamicTag=function(U,u,f){let Y=this.newElementVar();if(Y1.has(U)||this._svgDepth>0)this._createLines.push(`${Y} = document.createElementNS('http://www.w3.org/2000/svg', '${U}');`);else this._createLines.push(`${Y} = document.createElement('${U}');`);let _=this._claimAutoWire(Y),A=u.map((z)=>this.generateInComponent(z,"value")),J=this._pendingClassArgs,w=this._pendingClassEl;if(this._pendingClassArgs=A,this._pendingClassEl=Y,U==="svg")this._svgDepth=(this._svgDepth||0)+1;if(this.appendChildren(Y,f),U==="svg")this._svgDepth--;if(this._pendingClassArgs.length>0){let z=this._pendingClassArgs.join(", ");if(Y1.has(U)||this._svgDepth>0)this._pushEffect(`${Y}.setAttribute('class', __clsx(${z}));`);else this._pushEffect(`${Y}.className = __clsx(${z});`)}return this._pendingClassArgs=J,this._pendingClassEl=w,this._emitAutoWire(Y,_),Y},F.generateAttributes=function(U,u){let f=b3(u.slice(1));for(let Y=1;Y<u.length;Y++){let[_,A]=u[Y];if(this.is(_,".")&&_[1]==="this"){let J=_[2];if(this._autoWireExplicit&&this._autoWireEl===U)this._autoWireExplicit.add(J);if(typeof A==="string"&&this.componentMembers?.has(A))this._createLines.push(`${U}.addEventListener('${J}', (e) => __batch(() => ${this._self}.${A}(e)));`);else{let w=this.generateInComponent(A,"value");this._createLines.push(`${U}.addEventListener('${J}', (e) => __batch(() => (${w})(e)));`)}continue}if(typeof _==="string"){if(_.startsWith('"')&&_.endsWith('"'))_=_.slice(1,-1);if(_==="class"||_==="className"){let w=this.generateInComponent(A,"value");if(this._pendingClassArgs&&this._pendingClassEl===U)this._pendingClassArgs.push(w);else if(this.hasReactiveDeps(A))if(this._svgDepth>0)this._pushEffect(`${U}.setAttribute('class', __clsx(${w}));`);else this._pushEffect(`${U}.className = __clsx(${w});`);else if(this._svgDepth>0)this._createLines.push(`${U}.setAttribute('class', ${w});`);else this._createLines.push(`${U}.className = ${w};`);continue}if(_==="__transition__"){let w=String(A).replace(/^["']|["']$/g,"");this._createLines.push(`this._t = "${w}";`);continue}if(_==="ref"){let w=String(A).replace(/^["']|["']$/g,"");this._createLines.push(`${this._self}.${w} = ${U};`);continue}if(_.startsWith("__bind_")&&_.endsWith("__")){let w=_.slice(7,-2),z=this.generateInComponent(A,"value"),X,Z;if(w==="checked")X="change",Z="e.target.checked";else X="input",Z=f==="number"||f==="range"?"e.target.valueAsNumber":"e.target.value";this._pushEffect(`${U}.${w} = ${z};`);let K=`${z} = ${Z}`,R=!this.isSimpleAssignable(A)&&this.findRootReactiveMember(A);if(R)K+=`; ${this._self}.${R}.touch?.()`;this._createLines.push(`${U}.addEventListener('${X}', (e) => { ${K}; });`);continue}let J=this.generateInComponent(A,"value");if((_==="value"||_==="checked")&&this.hasReactiveDeps(A)){this._pushEffect(`${U}.${_} = ${J};`);let w=!this.isSimpleAssignable(A)&&this.findRootReactiveMember(A);if(this.isSimpleAssignable(A)||w){let z=_==="checked"?"change":"input",Z=`${J} = ${_==="checked"?"e.target.checked":f==="number"||f==="range"?"e.target.valueAsNumber":"e.target.value"}`;if(w)Z+=`; ${this._self}.${w}.touch?.()`;this._createLines.push(`${U}.addEventListener('${z}', (e) => { ${Z}; });`)}continue}if(_==="innerHTML"||_==="textContent"||_==="innerText")if(this.hasReactiveDeps(A))this._pushEffect(`${U}.${_} = ${J};`);else this._createLines.push(`${U}.${_} = ${J};`);else if(y3.has(_))if(this.hasReactiveDeps(A))this._pushEffect(`${U}.toggleAttribute('${_}', !!${J});`);else this._createLines.push(`if (${J}) ${U}.setAttribute('${_}', '');`);else if(this.hasReactiveDeps(A))this._pushEffect(`${U}.setAttribute('${_}', ${J});`);else this._createLines.push(`${U}.setAttribute('${_}', ${J});`)}}},F.generateTemplateBlock=function(U){if(!Array.isArray(U)||U[0]!=="block")return this.generateNode(U);let u=U.slice(1);if(u.length===0){let _=this.newElementVar("empty");return this._createLines.push(`${_} = document.createComment('');`),_}if(u.length===1)return this.generateNode(u[0]);let f=this.newElementVar("frag");this._createLines.push(`${f} = document.createDocumentFragment();`);let Y=[];for(let _ of u){let A=this.generateNode(_);this._createLines.push(`${f}.appendChild(${A});`),Y.push(A)}return this._fragChildren.set(f,Y),f},F.generateConditional=function(U){this._pendingAutoWire=!1;let[,u,f,Y]=U,_=this.newElementVar("anchor");this._createLines.push(`${_} = document.createComment('if');`);let A=this.generateInComponent(u,"value"),J=this._loopVarStack.map((Q)=>`${Q.itemVar}, ${Q.indexVar}`).join(", "),w=J?`, ${J}`:"",z=this.newBlockVar();this.generateConditionBranch(z,f);let X=null;if(Y)X=this.newBlockVar(),this.generateConditionBranch(X,Y);let Z=[];Z.push(`// Conditional: ${z}${X?" / "+X:""}`),Z.push("{"),Z.push(` const anchor = ${_};`),Z.push(" let currentBlock = null;"),Z.push(" let showing = null;");let K=this._factoryMode?"disposers.push(__effect(() => {":"__effect(() => {",R=this._factoryMode?"}));":"});";if(Z.push(` ${K}`),Z.push(` const show = !!(${A});`),Z.push(` const want = show ? 'then' : ${Y?"'else'":"null"};`),Z.push(" if (want === showing) return;"),Z.push(""),Z.push(" if (currentBlock) {"),Z.push(" const leaving = currentBlock;"),Z.push(" if (leaving._t) { __transition(leaving._first, leaving._t, 'leave', () => leaving.d(true)); }"),Z.push(" else { leaving.d(true); }"),Z.push(" currentBlock = null;"),Z.push(" }"),Z.push(" showing = want;"),Z.push(""),Z.push(" if (want === 'then') {"),Z.push(` currentBlock = ${z}(${this._self}${w});`),Z.push(" currentBlock.c();"),Z.push(" if (anchor.parentNode) currentBlock.m(anchor.parentNode, anchor.nextSibling);"),Z.push(` currentBlock.p(${this._self}${w});`),Z.push(" if (currentBlock._t) __transition(currentBlock._first, currentBlock._t, 'enter');"),Z.push(" }"),Y)Z.push(" if (want === 'else') {"),Z.push(` currentBlock = ${X}(${this._self}${w});`),Z.push(" currentBlock.c();"),Z.push(" if (anchor.parentNode) currentBlock.m(anchor.parentNode, anchor.nextSibling);"),Z.push(` currentBlock.p(${this._self}${w});`),Z.push(" if (currentBlock._t) __transition(currentBlock._first, currentBlock._t, 'enter');"),Z.push(" }");return Z.push(` ${R}`),Z.push("}"),this._setupLines.push(Z.join(`
|
|
22
|
-
`)),
|
|
23
|
-
`))},
|
|
24
|
-
`)),
|
|
20
|
+
})()`;return P.join(`
|
|
21
|
+
`)},W.generateInComponent=function(u,Y){if(typeof u==="string"&&this.reactiveMembers&&this.reactiveMembers.has(u))return`${this._self}.${u}.value`;if(typeof u==="string"&&this.componentMembers&&this.componentMembers.has(u))return`${this._self}.${u}`;if(Array.isArray(u)&&this.reactiveMembers){let A=this.transformComponentMembers(u);return this.generate(A,Y)}return this.generate(u,Y)},W.generateRender=function(u,Y,A,_){throw Error("render blocks can only be used inside a component")},W.buildRender=function(u){this._elementCount=0,this._textCount=0,this._blockCount=0,this._createLines=[],this._setupLines=[],this._blockFactories=[],this._loopVarStack=[],this._factoryMode=!1,this._factoryVars=null,this._fragChildren=new Map,this._pendingAutoWire=!1,this._autoWireEl=null,this._autoWireExplicit=null;let Y=this.is(u,"block")?u.slice(1):[u],A;if(Y.length===0)A="null";else if(Y.length===1)this._pendingAutoWire=!!this._autoEventHandlers,A=this.generateNode(Y[0]),this._pendingAutoWire=!1;else{A=this.newElementVar("frag"),this._createLines.push(`${A} = document.createDocumentFragment();`);let _=[];for(let R of Y){let w=this.generateNode(R);this._createLines.push(`${A}.appendChild(${w});`),_.push(w)}this._fragChildren.set(A,_)}return{createLines:this._createLines,setupLines:this._setupLines,blockFactories:this._blockFactories,rootVar:A}},W.newBlockVar=function(){return`create_block_${this._blockCount++}`},W.newElementVar=function(u="el"){let Y=`_${u}${this._elementCount++}`;if(this._factoryVars)this._factoryVars.add(Y);return this._factoryMode?Y:`this.${Y}`},W.newTextVar=function(){let u=`_t${this._textCount++}`;if(this._factoryVars)this._factoryVars.add(u);return this._factoryMode?u:`this.${u}`},Object.defineProperty(W,"_self",{get(){return this._factoryMode?"ctx":"this"}}),W._pushEffect=function(u){if(this._factoryMode)this._setupLines.push(`disposers.push(__effect(() => { ${u} }));`);else this._setupLines.push(`__effect(() => { ${u} });`)},W.generateNode=function(u){if(typeof u==="string"||u instanceof String){let z=u.valueOf();if(z.startsWith('"')||z.startsWith("'")||z.startsWith("`")){let J=this.newTextVar();return this._createLines.push(`${J} = document.createTextNode(${z});`),J}if(this.reactiveMembers&&this.reactiveMembers.has(z)){let J=this.newTextVar();return this._createLines.push(`${J} = document.createTextNode('');`),this._pushEffect(`${J}.data = ${this._self}.${z}.value;`),J}if(z==="slot"&&this.componentMembers){let J=this._self,Q=this.newElementVar("slot");return this._createLines.push(`${Q} = ${J}.children instanceof Node ? ${J}.children : (${J}.children != null ? document.createTextNode(String(${J}.children)) : document.createComment(''));`),Q}let[X,K]=z.split("#"),D=this.newElementVar(),Z=X||"div";if(_1.has(Z)||this._svgDepth>0)this._createLines.push(`${D} = document.createElementNS('http://www.w3.org/2000/svg', '${Z}');`);else this._createLines.push(`${D} = document.createElement('${Z}');`);if(K)this._createLines.push(`${D}.id = '${K}';`);return D}if(!Array.isArray(u)){let z=this.newElementVar("c");return this._createLines.push(`${z} = document.createComment('unknown');`),z}let[Y,...A]=u,_=typeof Y==="string"?Y:Y instanceof String?Y.valueOf():null;if(_&&this.isComponent(_))return this.generateChildComponent(_,A);if(_==="slot"&&this.componentMembers){let z=this._self,X=this.newElementVar("slot");return this._createLines.push(`${X} = ${z}.children instanceof Node ? ${z}.children : (${z}.children != null ? document.createTextNode(String(${z}.children)) : document.createComment(''));`),X}if(_&&this.isHtmlTag(_)){let[z,X]=_.split("#");return this.generateTag(z||"div",[],A,X)}if(_==="."){let[,z,X]=u;if(z==="this"&&typeof X==="string"){let H=this._self;if(this.reactiveMembers&&this.reactiveMembers.has(X)){let M=this.newTextVar();return this._createLines.push(`${M} = document.createTextNode('');`),this._pushEffect(`${M}.data = ${H}.${X}.value;`),M}let O=this.newElementVar("slot");return this._createLines.push(`${O} = ${H}.${X} instanceof Node ? ${H}.${X} : (${H}.${X} != null ? document.createTextNode(String(${H}.${X})) : document.createComment(''));`),O}let{tag:K,classes:D,id:Z}=this.collectTemplateClasses(u);if(K&&this.isHtmlTag(K))return this.generateTag(K,D,[],Z);let J=this.newTextVar(),Q=this.generateInComponent(u,"value");return this._createLines.push(`${J} = document.createTextNode(String(${Q}));`),J}if(Array.isArray(Y)){if(Array.isArray(Y[0])&&Y[0][0]==="."&&(Y[0][2]==="__clsx"||Y[0][2]instanceof String&&Y[0][2].valueOf()==="__clsx")){let D=typeof Y[0][1]==="string"?Y[0][1]:Y[0][1].valueOf(),Z=Y.slice(1);return this.generateDynamicTag(D,Z,A)}let{tag:z,classes:X,id:K}=this.collectTemplateClasses(Y);if(z&&this.isHtmlTag(z)){if(X.length===1&&X[0]==="__clsx")return this.generateDynamicTag(z,A,[]);return this.generateTag(z,X,A,K)}}if(_==="->"||_==="=>")return this.generateTemplateBlock(A[1]);if(_==="if")return this.generateConditional(u);if(_==="for"||_==="for-in"||_==="for-of"||_==="for-as")return this.generateTemplateLoop(u);let R=this.newTextVar(),w=this.generateInComponent(u,"value");if(this.hasReactiveDeps(u))this._createLines.push(`${R} = document.createTextNode('');`),this._pushEffect(`${R}.data = ${w};`);else this._createLines.push(`${R} = document.createTextNode(String(${w}));`);return R},W.appendChildren=function(u,Y){for(let A of Y)if(this.is(A,"->")||this.is(A,"=>")){let _=A[2];if(this.is(_,"block"))for(let R of _.slice(1))if(this.is(R,"object"))this.generateAttributes(u,R);else{let w=this.generateNode(R);this._createLines.push(`${u}.appendChild(${w});`)}else if(_){let R=this.generateNode(_);this._createLines.push(`${u}.appendChild(${R});`)}}else if(this.is(A,"object"))this.generateAttributes(u,A);else if(typeof A==="string"||A instanceof String){let _=A.valueOf(),R=_.split(/[#.]/)[0];if(this.isHtmlTag(R||"div")||this.isComponent(R)){let w=this.generateNode(A);this._createLines.push(`${u}.appendChild(${w});`)}else{let w=this.newTextVar();if(_.startsWith('"')||_.startsWith("'")||_.startsWith("`"))this._createLines.push(`${w} = document.createTextNode(${_});`);else if(this.reactiveMembers&&this.reactiveMembers.has(_))this._createLines.push(`${w} = document.createTextNode('');`),this._pushEffect(`${w}.data = ${this._self}.${_}.value;`);else if(this.componentMembers&&this.componentMembers.has(_))this._createLines.push(`${w} = document.createTextNode(String(${this._self}.${_}));`);else this._createLines.push(`${w} = document.createTextNode(${this.generateInComponent(A,"value")});`);this._createLines.push(`${u}.appendChild(${w});`)}}else if(A){let _=this.generateNode(A);this._createLines.push(`${u}.appendChild(${_});`)}},W._claimAutoWire=function(u){if(!this._pendingAutoWire||!this._autoEventHandlers?.size)return!1;return this._pendingAutoWire=!1,this._autoWireEl=u,this._autoWireExplicit=new Set,!0},W._emitAutoWire=function(u,Y){if(!Y)return;for(let[A,_]of this._autoEventHandlers)if(!this._autoWireExplicit.has(A))this._createLines.push(`${u}.addEventListener('${A}', (e) => __batch(() => ${this._self}.${_}(e)));`);this._autoWireEl=null,this._autoWireExplicit=null},W.generateTag=function(u,Y,A,_){let R=this.newElementVar(),w=_1.has(u)||this._svgDepth>0;if(w)this._createLines.push(`${R} = document.createElementNS('http://www.w3.org/2000/svg', '${u}');`);else this._createLines.push(`${R} = document.createElement('${u}');`);if(_)this._createLines.push(`${R}.id = '${_}';`);let z=this._claimAutoWire(R),X=this._pendingClassArgs,K=this._pendingClassEl;if(Y.length>0)this._pendingClassArgs=[`'${Y.join(" ")}'`],this._pendingClassEl=R;if(u==="svg")this._svgDepth=(this._svgDepth||0)+1;if(this.appendChildren(R,A),u==="svg")this._svgDepth--;if(Y.length>0){if(this._pendingClassArgs.length===1)if(w)this._createLines.push(`${R}.setAttribute('class', '${Y.join(" ")}');`);else this._createLines.push(`${R}.className = '${Y.join(" ")}';`);else{let D=this._pendingClassArgs.join(", ");if(w)this._pushEffect(`${R}.setAttribute('class', __clsx(${D}));`);else this._pushEffect(`${R}.className = __clsx(${D});`)}this._pendingClassArgs=X,this._pendingClassEl=K}return this._emitAutoWire(R,z),R},W.generateDynamicTag=function(u,Y,A){let _=this.newElementVar();if(_1.has(u)||this._svgDepth>0)this._createLines.push(`${_} = document.createElementNS('http://www.w3.org/2000/svg', '${u}');`);else this._createLines.push(`${_} = document.createElement('${u}');`);let R=this._claimAutoWire(_),w=Y.map((K)=>this.generateInComponent(K,"value")),z=this._pendingClassArgs,X=this._pendingClassEl;if(this._pendingClassArgs=w,this._pendingClassEl=_,u==="svg")this._svgDepth=(this._svgDepth||0)+1;if(this.appendChildren(_,A),u==="svg")this._svgDepth--;if(this._pendingClassArgs.length>0){let K=this._pendingClassArgs.join(", ");if(_1.has(u)||this._svgDepth>0)this._pushEffect(`${_}.setAttribute('class', __clsx(${K}));`);else this._pushEffect(`${_}.className = __clsx(${K});`)}return this._pendingClassArgs=z,this._pendingClassEl=X,this._emitAutoWire(_,R),_},W.generateAttributes=function(u,Y){let A=b3(Y.slice(1));for(let _=1;_<Y.length;_++){let[R,w]=Y[_];if(this.is(R,".")&&R[1]==="this"){let z=R[2];if(this._autoWireExplicit&&this._autoWireEl===u)this._autoWireExplicit.add(z);if(typeof w==="string"&&this.componentMembers?.has(w))this._createLines.push(`${u}.addEventListener('${z}', (e) => __batch(() => ${this._self}.${w}(e)));`);else{let X=this.generateInComponent(w,"value");this._createLines.push(`${u}.addEventListener('${z}', (e) => __batch(() => (${X})(e)));`)}continue}if(typeof R==="string"){if(R.startsWith('"')&&R.endsWith('"'))R=R.slice(1,-1);if(R==="class"||R==="className"){let X=this.generateInComponent(w,"value");if(this._pendingClassArgs&&this._pendingClassEl===u)this._pendingClassArgs.push(X);else if(this.hasReactiveDeps(w))if(this._svgDepth>0)this._pushEffect(`${u}.setAttribute('class', __clsx(${X}));`);else this._pushEffect(`${u}.className = __clsx(${X});`);else if(this._svgDepth>0)this._createLines.push(`${u}.setAttribute('class', ${X});`);else this._createLines.push(`${u}.className = ${X};`);continue}if(R==="__transition__"){let X=String(w).replace(/^["']|["']$/g,"");this._createLines.push(`this._t = "${X}";`);continue}if(R==="ref"){let X=String(w).replace(/^["']|["']$/g,"");this._createLines.push(`${this._self}.${X} = ${u};`);continue}if(R.startsWith("__bind_")&&R.endsWith("__")){let X=R.slice(7,-2),K=this.generateInComponent(w,"value"),D,Z;if(X==="checked")D="change",Z="e.target.checked";else D="input",Z=A==="number"||A==="range"?"e.target.valueAsNumber":"e.target.value";this._pushEffect(`${u}.${X} = ${K};`);let J=`${K} = ${Z}`,Q=!this.isSimpleAssignable(w)&&this.findRootReactiveMember(w);if(Q)J+=`; ${this._self}.${Q}.touch?.()`;this._createLines.push(`${u}.addEventListener('${D}', (e) => { ${J}; });`);continue}let z=this.generateInComponent(w,"value");if((R==="value"||R==="checked")&&this.hasReactiveDeps(w)){this._pushEffect(`${u}.${R} = ${z};`);let X=!this.isSimpleAssignable(w)&&this.findRootReactiveMember(w);if(this.isSimpleAssignable(w)||X){let K=R==="checked"?"change":"input",Z=`${z} = ${R==="checked"?"e.target.checked":A==="number"||A==="range"?"e.target.valueAsNumber":"e.target.value"}`;if(X)Z+=`; ${this._self}.${X}.touch?.()`;this._createLines.push(`${u}.addEventListener('${K}', (e) => { ${Z}; });`)}continue}if(R==="innerHTML"||R==="textContent"||R==="innerText")if(this.hasReactiveDeps(w))this._pushEffect(`${u}.${R} = ${z};`);else this._createLines.push(`${u}.${R} = ${z};`);else if(y3.has(R))if(this.hasReactiveDeps(w))this._pushEffect(`${u}.toggleAttribute('${R}', !!${z});`);else this._createLines.push(`if (${z}) ${u}.setAttribute('${R}', '');`);else if(this.hasReactiveDeps(w))if(Array.isArray(w)&&w[0]==="presence")this._pushEffect(`{ const __v = ${z}; __v == null ? ${u}.removeAttribute('${R}') : ${u}.setAttribute('${R}', __v); }`);else this._pushEffect(`${u}.setAttribute('${R}', ${z});`);else this._createLines.push(`${u}.setAttribute('${R}', ${z});`)}}},W.generateTemplateBlock=function(u){if(!Array.isArray(u)||u[0]!=="block")return this.generateNode(u);let Y=u.slice(1);if(Y.length===0){let R=this.newElementVar("empty");return this._createLines.push(`${R} = document.createComment('');`),R}if(Y.length===1)return this.generateNode(Y[0]);let A=this.newElementVar("frag");this._createLines.push(`${A} = document.createDocumentFragment();`);let _=[];for(let R of Y){let w=this.generateNode(R);this._createLines.push(`${A}.appendChild(${w});`),_.push(w)}return this._fragChildren.set(A,_),A},W.generateConditional=function(u){this._pendingAutoWire=!1;let[,Y,A,_]=u,R=this.newElementVar("anchor");this._createLines.push(`${R} = document.createComment('if');`);let w=this.generateInComponent(Y,"value"),z=this._loopVarStack.map((H)=>`${H.itemVar}, ${H.indexVar}`).join(", "),X=z?`, ${z}`:"",K=this.newBlockVar();this.generateConditionBranch(K,A);let D=null;if(_)D=this.newBlockVar(),this.generateConditionBranch(D,_);let Z=[];Z.push(`// Conditional: ${K}${D?" / "+D:""}`),Z.push("{"),Z.push(` const anchor = ${R};`),Z.push(" let currentBlock = null;"),Z.push(" let showing = null;");let J=this._factoryMode?"disposers.push(__effect(() => {":"__effect(() => {",Q=this._factoryMode?"}));":"});";if(Z.push(` ${J}`),Z.push(` const show = !!(${w});`),Z.push(` const want = show ? 'then' : ${_?"'else'":"null"};`),Z.push(" if (want === showing) return;"),Z.push(""),Z.push(" if (currentBlock) {"),Z.push(" const leaving = currentBlock;"),Z.push(" if (leaving._t) { __transition(leaving._first, leaving._t, 'leave', () => leaving.d(true)); }"),Z.push(" else { leaving.d(true); }"),Z.push(" currentBlock = null;"),Z.push(" }"),Z.push(" showing = want;"),Z.push(""),Z.push(" if (want === 'then') {"),Z.push(` currentBlock = ${K}(${this._self}${X});`),Z.push(" currentBlock.c();"),Z.push(" if (anchor.parentNode) currentBlock.m(anchor.parentNode, anchor.nextSibling);"),Z.push(` currentBlock.p(${this._self}${X});`),Z.push(" if (currentBlock._t) __transition(currentBlock._first, currentBlock._t, 'enter');"),Z.push(" }"),_)Z.push(" if (want === 'else') {"),Z.push(` currentBlock = ${D}(${this._self}${X});`),Z.push(" currentBlock.c();"),Z.push(" if (anchor.parentNode) currentBlock.m(anchor.parentNode, anchor.nextSibling);"),Z.push(` currentBlock.p(${this._self}${X});`),Z.push(" if (currentBlock._t) __transition(currentBlock._first, currentBlock._t, 'enter');"),Z.push(" }");return Z.push(` ${Q}`),Z.push("}"),this._setupLines.push(Z.join(`
|
|
22
|
+
`)),R},W.generateConditionBranch=function(u,Y){let A=[this._createLines,this._setupLines,this._factoryMode,this._factoryVars];this._createLines=[],this._setupLines=[],this._factoryMode=!0,this._factoryVars=new Set;let _=this.generateTemplateBlock(Y),R=this._createLines,w=this._setupLines,z=this._factoryVars;[this._createLines,this._setupLines,this._factoryMode,this._factoryVars]=A;let X=this._loopVarStack.map((D)=>`${D.itemVar}, ${D.indexVar}`).join(", "),K=X?`, ${X}`:"";this.emitBlockFactory(u,`ctx${K}`,_,R,w,z)},W.emitBlockFactory=function(u,Y,A,_,R,w,z){let X=[];if(X.push(`function ${u}(${Y}) {`),w.size>0)X.push(` let ${[...w].join(", ")};`);let K=R.length>0;if(K)X.push(" let disposers = [];");if(X.push(" return {"),z)X.push(" _s: true,");let D=this._fragChildren.get(A),Z=D?D[0]:A;X.push(" c() {");for(let J of _)X.push(` ${J}`);if(X.push(` this._first = ${Z};`),X.push(" },"),X.push(" m(target, anchor) {"),D)for(let J of D)X.push(` if (target) target.insertBefore(${J}, anchor);`);else X.push(` if (target) target.insertBefore(${A}, anchor);`);if(X.push(" },"),X.push(` p(${Y}) {`),K){X.push(" disposers.forEach(d => d());"),X.push(" disposers = [];");for(let J of R)X.push(` ${J}`)}if(X.push(" },"),X.push(" d(detaching) {"),K)X.push(" disposers.forEach(d => d());");if(D)for(let J of D)X.push(` if (detaching && ${J}) ${J}.remove();`);else X.push(` if (detaching && ${A}) ${A}.remove();`);X.push(" }"),X.push(" };"),X.push("}"),this._blockFactories.push(X.join(`
|
|
23
|
+
`))},W.generateTemplateLoop=function(u){this._pendingAutoWire=!1;let[Y,A,_,R,w,z]=u,X=this.newBlockVar(),K=this.newElementVar("anchor");this._createLines.push(`${K} = document.createComment('for');`);let D=Array.isArray(A)?A:[A],Z=D[0],J=D[1]||"i",Q=this.generateInComponent(_,"value"),H=Z;if(this.is(z,"block")&&z.length>1){let y=z[1];if(Array.isArray(y))for(let u1 of y){if(this.is(u1,"object"))for(let g=1;g<u1.length;g++){let[D1,f1]=u1[g];if(D1==="key"){H=this.generate(f1,"value");break}}if(H!==Z)break}}let O=[this._createLines,this._setupLines,this._factoryMode,this._factoryVars];this._createLines=[],this._setupLines=[],this._factoryMode=!0,this._factoryVars=new Set;let M=this._loopVarStack.map((y)=>`${y.itemVar}, ${y.indexVar}`).join(", "),G=M?`, ${M}`:"";this._loopVarStack.push({itemVar:Z,indexVar:J});let B=this.generateTemplateBlock(z);this._loopVarStack.pop();let q=this._createLines,P=this._setupLines,E=this._factoryVars;[this._createLines,this._setupLines,this._factoryMode,this._factoryVars]=O;let I=P.length===0,N=`ctx, ${Z}, ${J}${G}`;this.emitBlockFactory(X,N,B,q,P,E,I);let L=H!==Z?`(${Z}, ${J}) => ${H}`:"null",h=M?`, ${M}`:"",V=[];V.push(`// Loop: ${X}`),V.push("{"),V.push(" const __s = { blocks: [], keys: [] };");let n=this._factoryMode?"disposers.push(__effect(() => {":"__effect(() => {",m=this._factoryMode?"}));":"});";return V.push(` ${n}`),V.push(` __reconcile(${K}, __s, ${Q}, ${this._self}, ${X}, ${L}${h});`),V.push(` ${m}`),V.push("}"),this._setupLines.push(V.join(`
|
|
24
|
+
`)),K},W.generateChildComponent=function(u,Y){this._pendingAutoWire=!1;let A=this.newElementVar("inst"),_=this.newElementVar("el"),{propsCode:R,reactiveProps:w,eventBindings:z,childrenSetupLines:X}=this.buildComponentProps(Y),K=this._self;this._createLines.push(`${A} = new ${u}(${R});`),this._createLines.push(`${_} = ${A}._root = ${A}._create();`),this._createLines.push(`(${K}._children || (${K}._children = [])).push(${A});`);for(let{event:D,value:Z}of z){let J=this.generateInComponent(Z,"value");this._createLines.push(`${_}.addEventListener('${D}', (e) => __batch(() => (${J})(e)));`)}this._setupLines.push(`try { if (${A}._setup) ${A}._setup(); if (${A}.mounted) ${A}.mounted(); } catch (__e) { __handleComponentError(__e, ${A}); }`);for(let{key:D,valueCode:Z}of w)this._pushEffect(`if (${A}.${D}) ${A}.${D}.value = ${Z};`);for(let D of X)this._setupLines.push(D);return _},W.buildComponentProps=function(u){let Y=[],A=[],_=[],R=null,w=[],z=(D,Z)=>{if(D.startsWith("@")){_.push({event:D.slice(1).split(".")[0],value:Z});return}if(this.reactiveMembers&&(typeof Z==="string"&&this.reactiveMembers.has(Z)||Array.isArray(Z)&&Z[0]==="."&&Z[1]==="this"&&typeof Z[2]==="string"&&this.reactiveMembers.has(Z[2]))){let Q=typeof Z==="string"?Z:Z[2];Y.push(`${D}: ${this._self}.${Q}`)}else{let Q=this.generateInComponent(Z,"value");if(Y.push(`${D}: ${Q}`),this.hasReactiveDeps(Z))A.push({key:D,valueCode:Q})}},X=(D)=>{for(let Z=1;Z<D.length;Z++){let[J,Q]=D[Z];if(typeof J==="string")z(J,Q);else if(Array.isArray(J)&&J[0]==="."&&J[1]==="this"&&typeof J[2]==="string")_.push({event:J[2],value:Q})}};for(let D of u)if(this.is(D,"object"))X(D);else if(Array.isArray(D)&&(D[0]==="->"||D[0]==="=>")){let Z=D[2];if(Z){if(this.is(Z,"block")){let J=[];for(let Q of Z.slice(1))if(this.is(Q,"object"))X(Q);else J.push(Q);Z=J.length>0?["block",...J]:null}if(Z){let J=this._createLines,Q=this._setupLines;this._createLines=[],this._setupLines=[],R=this.generateTemplateBlock(Z);let H=this._createLines,O=this._setupLines;this._createLines=J,this._setupLines=Q;for(let M of H)this._createLines.push(M);w.push(...O),Y.push(`children: ${R}`)}}}return{propsCode:Y.length>0?`{ ${Y.join(", ")} }`:"{}",reactiveProps:A,eventBindings:_,childrenSetupLines:w}},W.hasReactiveDeps=function(u){if(typeof u==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(u));if(!Array.isArray(u))return!1;if(u[0]==="."&&u[1]==="this"&&typeof u[2]==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(u[2]));if(u[0]==="."&&this._rootsAtThis(u[1]))return!0;for(let Y of u)if(this.hasReactiveDeps(Y))return!0;return!1},W.isSimpleAssignable=function(u){if(typeof u==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(u));if(Array.isArray(u)&&u[0]==="."&&u[1]==="this"&&typeof u[2]==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(u[2]));return!1},W.findRootReactiveMember=function(u){if(typeof u==="string")return this.reactiveMembers?.has(u)?u:null;if(!Array.isArray(u))return null;if(u[0]==="."&&u[1]==="this"&&typeof u[2]==="string")return this.reactiveMembers?.has(u[2])?u[2]:null;if(u[0]==="."||u[0]==="[]")return this.findRootReactiveMember(u[1]);return null},W._rootsAtThis=function(u){if(typeof u==="string")return u==="this";if(!Array.isArray(u)||u[0]!==".")return!1;return this._rootsAtThis(u[1])},W.getComponentRuntime=function(){return`
|
|
25
25
|
// ============================================================================
|
|
26
26
|
// Rip Component Runtime
|
|
27
27
|
// ============================================================================
|
|
@@ -292,187 +292,187 @@ if (typeof globalThis !== 'undefined') {
|
|
|
292
292
|
globalThis.__ripComponent = { __pushComponent, __popComponent, setContext, getContext, hasContext, __clsx, __lis, __reconcile, __transition, __handleComponentError, __Component };
|
|
293
293
|
}
|
|
294
294
|
|
|
295
|
-
`}}function
|
|
296
|
-
`)>=0){let
|
|
297
|
-
`).map((
|
|
298
|
-
`)}let
|
|
299
|
-
`))return" ".repeat(
|
|
295
|
+
`}}function W1($){let U="",W=$<0?-$<<1|1:$<<1;do{let F=W&31;if(W>>>=5,W>0)F|=32;U+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[F]}while(W>0);return U}class l1{constructor($,U,W=null){this.file=$,this.source=U,this.sourceContent=W,this.names=[],this.nameIndex=new Map,this.lines=[],this.mappings=[],this.prevGenCol=0,this.prevOrigLine=0,this.prevOrigCol=0,this.prevNameIdx=0,this.currentLine=-1}ensureLine($){while(this.lines.length<=$)this.lines.push([])}addName($){if(this.nameIndex.has($))return this.nameIndex.get($);let U=this.names.length;return this.names.push($),this.nameIndex.set($,U),U}addMapping($,U,W,F,f){if(this.ensureLine($),this.currentLine!==$)this.prevGenCol=0,this.currentLine=$;if(W==null){this.lines[$].push(W1(U-this.prevGenCol)),this.prevGenCol=U;return}this.mappings.push({genLine:$,genCol:U,origLine:W,origCol:F});let u=W1(U-this.prevGenCol);if(this.prevGenCol=U,u+=W1(0),u+=W1(W-this.prevOrigLine),this.prevOrigLine=W,u+=W1(F-this.prevOrigCol),this.prevOrigCol=F,f!=null){let Y=this.addName(f);u+=W1(Y-this.prevNameIdx),this.prevNameIdx=Y}this.lines[$].push(u)}toReverseMap(){let $=new Map;for(let U of this.mappings)if(!$.has(U.origLine))$.set(U.origLine,{genLine:U.genLine,genCol:U.genCol});return $}toJSON(){let $=this.lines.map((W)=>W.join(",")).join(";"),U={version:3,file:this.file,sources:[this.source],names:this.names,mappings:$};if(this.sourceContent!=null)U.sourcesContent=[this.sourceContent];return JSON.stringify(U)}}var j=($,U)=>$ instanceof String?$[U]:void 0,S=($)=>$ instanceof String?$.valueOf():$,c3=new Set(["+","-","*","/","%","//","%%","**","==","!=","<",">","<=",">=","===","!==","&&","||","??","!?","not","&","|","^","<<",">>",">>>","=",".","?.","[]","!","typeof","void","delete","new","...","rest","expansion","optindex","optcall"]);function P1($){if(!Array.isArray($)||$.length===0)return!1;let U=$[0]?.valueOf?.()??$[0];if(c3.has(U))return!0;return $.length<=4&&!$.some(Array.isArray)}function Z1($){if(Array.isArray($))return"(???)";if(typeof $==="number")return String($);if($===null)return"null";if($==="")return'""';let U=String($);if(U[0]==="/"&&U.indexOf(`
|
|
296
|
+
`)>=0){let W=U.match(/\/([gimsuvy]*)$/),F=W?W[1]:"",f=U.slice(1);return f=F?f.slice(0,-F.length-1):f.slice(0,-1),`"/${f.split(`
|
|
297
|
+
`).map((A)=>A.replace(/#.*$/,"").trim()).join("")}/${F}"`}return U}function k($,U=0,W=!1){if(!Array.isArray($))return Z1($);if(W&&$[0]==="program"){let R=$[1],z=[Array.isArray(R)?"(program":"(program "+Z1(R)],X=Array.isArray(R)?1:2;for(let K=X;K<$.length;K++){let D=k($[K],2,!1);z.push(D[0]==="("?" "+D:D)}return z.push(")"),z.join(`
|
|
298
|
+
`)}let F=$[0];if(P1($)&&$.slice(1).every((R)=>!Array.isArray(R)||P1(R))){let w=`(${$.map((z)=>Array.isArray(z)?k(z,0,!1):Z1(z)).join(" ")})`;if(!w.includes(`
|
|
299
|
+
`))return" ".repeat(U)+w}let u=" ".repeat(U),Y;if(Array.isArray(F)){if(Y=k(F,0,!1),Y.includes(`
|
|
300
300
|
`))Y=Y.split(`
|
|
301
|
-
`).map((w,z)=>z===0?w:" ".repeat(
|
|
302
|
-
`)}else Y=
|
|
303
|
-
`)){
|
|
304
|
-
`)}class
|
|
305
|
-
`).length}}collectProgramVariables($){if(!Array.isArray($))return;let[W
|
|
306
|
-
`))return`\`${Y.replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}\``;let
|
|
307
|
-
`),z=!1;if(
|
|
308
|
-
`),z=!0;if(this.programVars.size>0){let
|
|
309
|
-
`;
|
|
310
|
-
`,z=!0}let X=this.options.skipPreamble,
|
|
311
|
-
`;
|
|
312
|
-
`,z=!0;if(this.helpers.has("modulo"))
|
|
313
|
-
`,z=!0;if(this.helpers.has("toMatchable"))
|
|
314
|
-
`,
|
|
315
|
-
`,
|
|
316
|
-
`,
|
|
317
|
-
`,
|
|
318
|
-
`,
|
|
319
|
-
`,
|
|
320
|
-
`,
|
|
321
|
-
`,
|
|
322
|
-
`,
|
|
323
|
-
`,
|
|
324
|
-
`,
|
|
325
|
-
`,
|
|
326
|
-
`,
|
|
327
|
-
`,z=!0}let
|
|
328
|
-
`+Y.map((
|
|
329
|
-
`);if(this.usesReactivity&&!X){if(
|
|
330
|
-
`;else if(typeof globalThis<"u"&&globalThis.__rip)
|
|
331
|
-
`;else
|
|
332
|
-
`;else if(typeof globalThis<"u"&&globalThis.__ripComponent)
|
|
333
|
-
`;else
|
|
301
|
+
`).map((w,z)=>z===0?w:" ".repeat(U+2)+w).join(`
|
|
302
|
+
`)}else Y=Z1(F);let A=[`${u}(${Y}`],_=F==="block";for(let R=1;R<$.length;R++){let w=$[R];if(!Array.isArray(w))A[A.length-1]+=" "+Z1(w);else{let z=P1(w)&&w.every((X)=>!Array.isArray(X)||P1(X));if(!_&&z){let X=k(w,0,!1);if(!X.includes(`
|
|
303
|
+
`)){A[A.length-1]+=" "+X;continue}}A.push(k(w,U+2,!1))}}return A[A.length-1]+=")",A.join(`
|
|
304
|
+
`)}class b{static ASSIGNMENT_OPS=new Set(["=","+=","-=","*=","/=","?=","&=","|=","^=","%=","**=","??=","&&=","||=","<<=",">>=",">>>="]);static NUMBER_LITERAL_RE=/^-?\d+(\.\d+)?([eE][+-]?\d+)?$/;static NUMBER_START_RE=/^-?\d/;static GENERATORS={program:"generateProgram","&&":"generateLogicalAnd","||":"generateLogicalOr","+":"generateBinaryOp","-":"generateBinaryOp","*":"generateBinaryOp","/":"generateBinaryOp","%":"generateBinaryOp","**":"generateBinaryOp","==":"generateBinaryOp","===":"generateBinaryOp","!=":"generateBinaryOp","!==":"generateBinaryOp","<":"generateBinaryOp",">":"generateBinaryOp","<=":"generateBinaryOp",">=":"generateBinaryOp","??":"generateBinaryOp","!?":"generateBinaryOp","&":"generateBinaryOp","|":"generateBinaryOp","^":"generateBinaryOp","<<":"generateBinaryOp",">>":"generateBinaryOp",">>>":"generateBinaryOp","%%":"generateModulo","%%=":"generateModuloAssign","//":"generateFloorDiv","//=":"generateFloorDivAssign","..":"generateRange","=":"generateAssignment","+=":"generateAssignment","-=":"generateAssignment","*=":"generateAssignment","/=":"generateAssignment","%=":"generateAssignment","**=":"generateAssignment","&&=":"generateAssignment","||=":"generateAssignment","??=":"generateAssignment","?=":"generateAssignment","&=":"generateAssignment","|=":"generateAssignment","^=":"generateAssignment","<<=":"generateAssignment",">>=":"generateAssignment",">>>=":"generateAssignment","...":"generateRange","!":"generateNot","~":"generateBitwiseNot","++":"generateIncDec","--":"generateIncDec","=~":"generateRegexMatch",instanceof:"generateInstanceof",in:"generateIn",of:"generateOf",typeof:"generateTypeof",delete:"generateDelete",new:"generateNew",array:"generateArray",object:"generateObject",block:"generateBlock",".":"generatePropertyAccess","?.":"generateOptionalProperty","[]":"generateIndexAccess",optindex:"generateOptIndex",optcall:"generateOptCall","regex-index":"generateRegexIndex",def:"generateDef","->":"generateThinArrow","=>":"generateFatArrow",return:"generateReturn",state:"generateState",computed:"generateComputed",readonly:"generateReadonly",effect:"generateEffect",break:"generateBreak",continue:"generateContinue","?":"generateExistential",defined:"generateDefined",presence:"generatePresence","?:":"generateTernary","|>":"generatePipe",loop:"generateLoop","loop-n":"generateLoopN",await:"generateAwait",yield:"generateYield","yield-from":"generateYieldFrom",if:"generateIf","for-in":"generateForIn","for-of":"generateForOf","for-as":"generateForAs",while:"generateWhile",try:"generateTry",throw:"generateThrow",control:"generateControl",switch:"generateSwitch",when:"generateWhen",comprehension:"generateComprehension","object-comprehension":"generateObjectComprehension",class:"generateClass",super:"generateSuper",component:"generateComponent",render:"generateRender",enum:"generateEnum",import:"generateImport",export:"generateExport","export-default":"generateExportDefault","export-all":"generateExportAll","export-from":"generateExportFrom","do-iife":"generateDoIIFE",regex:"generateRegex","tagged-template":"generateTaggedTemplate",str:"generateString"};constructor($={}){if(this.options=$,this.indentLevel=0,this.indentString=" ",this.comprehensionDepth=0,this.dataSection=$.dataSection,this.sourceMap=$.sourceMap||null,$.reactiveVars)this.reactiveVars=new Set($.reactiveVars)}compile($){this.programVars=new Set,this.functionVars=new Map,this.helpers=new Set,this.scopeStack=[],this.collectProgramVariables($);let U=this.generate($);if(this.sourceMap)this.buildMappings();return U}buildMappings(){if(!this._stmtEntries)return;let $=this._preambleLines;for(let U of this._stmtEntries){if(U.loc)this.sourceMap.addMapping($,0,U.loc.r,U.loc.c);$+=U.code.split(`
|
|
305
|
+
`).length}}collectProgramVariables($){if(!Array.isArray($))return;let[U,...W]=$;if(U=S(U),Array.isArray(U)){$.forEach((F)=>this.collectProgramVariables(F));return}if(U==="export"||U==="export-default"||U==="export-all"||U==="export-from")return;if(U==="state"||U==="computed"){let[F]=W,f=S(F)??F;if(!this.reactiveVars)this.reactiveVars=new Set;this.reactiveVars.add(f);return}if(U==="readonly")return;if(U==="component")return;if(b.ASSIGNMENT_OPS.has(U)){let[F,f]=W;if(typeof F==="string"||F instanceof String){let u=S(F);if(!this.reactiveVars?.has(u))this.programVars.add(u)}else if(this.is(F,"array"))this.collectVarsFromArray(F,this.programVars);else if(this.is(F,"object"))this.collectVarsFromObject(F,this.programVars);this.collectProgramVariables(f);return}if(U==="def"||U==="->"||U==="=>"||U==="effect")return;if(U==="if"){let[F,f,u]=W;if(this.collectProgramVariables(F),this.collectProgramVariables(f),u)this.collectProgramVariables(u);return}if(U==="try"){if(this.collectProgramVariables(W[0]),W.length>=2&&Array.isArray(W[1])&&W[1].length===2&&W[1][0]!=="block"){let[F,f]=W[1];if(F&&this.is(F,"object"))F.slice(1).forEach((u)=>{if(Array.isArray(u)&&u.length===2&&typeof u[1]==="string")this.programVars.add(u[1])});else if(F&&this.is(F,"array"))F.slice(1).forEach((u)=>{if(typeof u==="string")this.programVars.add(u)});this.collectProgramVariables(f)}if(W.length===3)this.collectProgramVariables(W[2]);else if(W.length===2&&(!Array.isArray(W[1])||W[1][0]==="block"))this.collectProgramVariables(W[1]);return}W.forEach((F)=>this.collectProgramVariables(F))}collectFunctionVariables($){let U=new Set,W=(F)=>{if(!Array.isArray(F))return;let[f,...u]=F;if(f=S(f),Array.isArray(f)){F.forEach((Y)=>W(Y));return}if(b.ASSIGNMENT_OPS.has(f)){let[Y,A]=u;if(typeof Y==="string")U.add(Y);else if(this.is(Y,"array"))this.collectVarsFromArray(Y,U);else if(this.is(Y,"object"))this.collectVarsFromObject(Y,U);W(A);return}if(f==="def"||f==="->"||f==="=>"||f==="effect")return;if(f==="try"){if(W(u[0]),u.length>=2&&Array.isArray(u[1])&&u[1].length===2&&u[1][0]!=="block"){let[Y,A]=u[1];if(Y&&this.is(Y,"object"))Y.slice(1).forEach((_)=>{if(Array.isArray(_)&&_.length===2&&typeof _[1]==="string")U.add(_[1])});else if(Y&&this.is(Y,"array"))Y.slice(1).forEach((_)=>{if(typeof _==="string")U.add(_)});W(A)}if(u.length===3)W(u[2]);else if(u.length===2&&(!Array.isArray(u[1])||u[1][0]==="block"))W(u[1]);return}u.forEach((Y)=>W(Y))};return W($),U}generate($,U="statement"){if($ instanceof String){if(j($,"await")===!0)return`await ${S($)}()`;if(j($,"predicate"))return`(${S($)} != null)`;if(j($,"delimiter")==="///"&&j($,"heregex")){let A=S($),_=A.match(/^\/(.*)\/([gimsuvy]*)$/s);if(_){let[,R,w]=_;return`/${this.processHeregex(R)}/${w}`}return A}let Y=j($,"quote");if(Y){let A=S($);if(Y==='"""'||Y==="'''"){let R=this.extractStringContent($);return R=R.replace(/`/g,"\\`").replace(/\${/g,"\\${"),`\`${R}\``}if(A[0]===Y)return A;let _=A.slice(1,-1);return`${Y}${_}${Y}`}$=S($)}if(typeof $==="string"){if($.startsWith('"')||$.startsWith("'")||$.startsWith("`")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive:",$);let Y=$.slice(1,-1);if(Y.includes(`
|
|
306
|
+
`))return`\`${Y.replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}\``;let A=Y.includes("'")&&!Y.includes('"')?'"':"'",_=Y.replace(new RegExp(A,"g"),`\\${A}`);return`${A}${_}${A}`}if(this.reactiveVars?.has($)&&!this.suppressReactiveUnwrap)return`${$}.value`;return $}if(typeof $==="number")return String($);if($===null||$===void 0)return"null";if(!Array.isArray($))throw Error(`Invalid s-expression: ${JSON.stringify($)}`);let[W,...F]=$,f=j(W,"await");W=S(W);let u=b.GENERATORS[W];if(u)return this[u](W,F,U,$);if(typeof W==="string"&&!W.startsWith('"')&&!W.startsWith("'")){if(b.NUMBER_START_RE.test(W))return W;if(W==="super"&&this.currentMethodName&&this.currentMethodName!=="constructor"){let w=F.map((z)=>this.unwrap(this.generate(z,"value"))).join(", ");return`super.${this.currentMethodName}(${w})`}if(U==="statement"&&F.length===1){let w=this.findPostfixConditional(F[0]);if(w){let z=this.rebuildWithoutConditional(w),X=this.generate(W,"value"),K=this.generate(w.condition,"value"),D=this.generate(z,"value"),Z=`${X}(${D})`;return`if (${K}) ${Z}`}}let Y=f===!0,A=this.generate(W,"value"),_=F.map((w)=>this.unwrap(this.generate(w,"value"))).join(", "),R=`${A}(${_})`;return Y?`await ${R}`:R}if(Array.isArray(W)&&typeof W[0]==="string"){if(["=","+=","-=","*=","/=","%=","**=","&&=","||=","??=","if","return","throw"].includes(W[0]))return`(${$.map((_)=>this.generate(_,"value")).join(", ")})`}if(Array.isArray(W)){if(W[0]==="."&&(W[2]==="new"||S(W[2])==="new")){let w=W[1],z=this.generate(w,"value"),X=F.map((D)=>this.unwrap(this.generate(D,"value"))).join(", ");return`new ${Array.isArray(w)?`(${z})`:z}(${X})`}if(U==="statement"&&F.length===1){let w=this.findPostfixConditional(F[0]);if(w){let z=this.rebuildWithoutConditional(w),X=this.generate(W,"value"),K=this.generate(w.condition,"value"),D=this.generate(z,"value"),Z=`${X}(${D})`;return`if (${K}) ${Z}`}}let Y=!1,A;if(W[0]==="."&&j(W[2],"await")===!0){Y=!0;let[w,z]=W.slice(1),X=this.generate(w,"value");A=`${b.NUMBER_LITERAL_RE.test(X)||(this.is(w,"object")||this.is(w,"await")||this.is(w,"yield"))?`(${X})`:X}.${S(z)}`}else A=this.generate(W,"value");let _=F.map((w)=>this.unwrap(this.generate(w,"value"))).join(", "),R=`${A}(${_})`;return Y?`await ${R}`:R}throw Error(`Unknown s-expression type: ${W}`)}generateProgram($,U,W,F){let f="",u=[],Y=[],A=[];for(let Z of U){if(!Array.isArray(Z)){A.push(Z);continue}let J=Z[0];if(J==="import")u.push(Z);else if(J==="export"||J==="export-default"||J==="export-all"||J==="export-from")Y.push(Z);else A.push(Z)}let _=["def","class","if","for-in","for-of","for-as","while","loop","switch","try"],R=A.map((Z,J)=>{let Q=A.length===1&&u.length===0&&Y.length===0,H=this.is(Z,"object"),O=H&&Z.length===2&&Array.isArray(Z[1])&&Array.isArray(Z[1][1])&&Z[1][1][0]==="comprehension",M=this.is(Z,"comprehension")||this.is(Z,"object-comprehension")||this.is(Z,"do-iife"),G=this.programVars.size===0,B=Q&&H&&G&&!M&&!O,P=J===A.length-1&&M,E;if(B)E=`(${this.generate(Z,"value")})`;else if(P)E=this.generate(Z,"value");else E=this.generate(Z,"statement");if(E&&!E.endsWith(";")){let N=Array.isArray(Z)?Z[0]:null;if(!_.includes(N)||!E.endsWith("}"))E+=";"}let I=Array.isArray(Z)?Z.loc:null;return{code:E,loc:I}}),w=R.map((Z)=>Z.code).join(`
|
|
307
|
+
`),z=!1;if(u.length>0)f+=u.map((Z)=>this.addSemicolon(Z,this.generate(Z,"statement"))).join(`
|
|
308
|
+
`),z=!0;if(this.programVars.size>0){let Z=Array.from(this.programVars).sort().join(", ");if(z)f+=`
|
|
309
|
+
`;f+=`let ${Z};
|
|
310
|
+
`,z=!0}let X=this.options.skipPreamble,K=this.options.skipRuntimes;if(!X){if(z)f+=`
|
|
311
|
+
`;f+=w1(),z=!0;let Z=K?"var":"const";if(this.helpers.has("slice"))f+=`${Z} slice = [].slice;
|
|
312
|
+
`,z=!0;if(this.helpers.has("modulo"))f+=`${Z} modulo = (n, d) => { n = +n; d = +d; return (n % d + d) % d; };
|
|
313
|
+
`,z=!0;if(this.helpers.has("toMatchable"))f+=`${Z} toMatchable = (v, allowNewlines) => {
|
|
314
|
+
`,f+=` if (typeof v === "string") return !allowNewlines && /[\\n\\r]/.test(v) ? null : v;
|
|
315
|
+
`,f+=` if (v == null) return "";
|
|
316
|
+
`,f+=` if (typeof v === "number" || typeof v === "bigint" || typeof v === "boolean") return String(v);
|
|
317
|
+
`,f+=` if (typeof v === "symbol") return v.description || "";
|
|
318
|
+
`,f+=` if (v instanceof Uint8Array || v instanceof ArrayBuffer) {
|
|
319
|
+
`,f+=` return new TextDecoder().decode(v instanceof Uint8Array ? v : new Uint8Array(v));
|
|
320
|
+
`,f+=` }
|
|
321
|
+
`,f+=` if (Array.isArray(v)) return v.join(",");
|
|
322
|
+
`,f+=` if (typeof v.toString === "function" && v.toString !== Object.prototype.toString) {
|
|
323
|
+
`,f+=` try { return v.toString(); } catch { return ""; }
|
|
324
|
+
`,f+=` }
|
|
325
|
+
`,f+=` return "";
|
|
326
|
+
`,f+=`};
|
|
327
|
+
`,z=!0}let D="";if(Y.length>0)D=`
|
|
328
|
+
`+Y.map((Z)=>this.addSemicolon(Z,this.generate(Z,"statement"))).join(`
|
|
329
|
+
`);if(this.usesReactivity&&!X){if(K)f+=`var { __state, __computed, __effect, __batch, __readonly, __setErrorHandler, __handleError, __catchErrors } = globalThis.__rip;
|
|
330
|
+
`;else if(typeof globalThis<"u"&&globalThis.__rip)f+=`const { __state, __computed, __effect, __batch, __readonly, __setErrorHandler, __handleError, __catchErrors } = globalThis.__rip;
|
|
331
|
+
`;else f+=this.getReactiveRuntime();z=!0}if(this.usesTemplates&&!X){if(K)f+=`var { __pushComponent, __popComponent, setContext, getContext, hasContext, __clsx, __lis, __reconcile, __transition, __handleComponentError, __Component } = globalThis.__ripComponent;
|
|
332
|
+
`;else if(typeof globalThis<"u"&&globalThis.__ripComponent)f+=`const { __pushComponent, __popComponent, setContext, getContext, hasContext, __clsx, __lis, __reconcile, __transition, __handleComponentError, __Component } = globalThis.__ripComponent;
|
|
333
|
+
`;else f+=this.getComponentRuntime();z=!0}if(this.dataSection!==null&&this.dataSection!==void 0&&!X)f+=`var DATA;
|
|
334
334
|
_setDataSection();
|
|
335
|
-
`,z=!0;if(z&&
|
|
336
|
-
`;if(this._stmtEntries=
|
|
337
|
-
`).length-1,
|
|
335
|
+
`,z=!0;if(z&&f.length>0)f+=`
|
|
336
|
+
`;if(this._stmtEntries=R,this._preambleLines=f.length===0?0:f.split(`
|
|
337
|
+
`).length-1,f+=w,f+=D,this.dataSection!==null&&this.dataSection!==void 0)f+=`
|
|
338
338
|
|
|
339
339
|
function _setDataSection() {
|
|
340
340
|
DATA = ${JSON.stringify(this.dataSection)};
|
|
341
|
-
}`;return u}generateBinaryOp($,W,F,U){if(($==="+"||$==="-")&&W.length===1)return`(${$}${this.generate(W[0],"value")})`;let[u,f]=W;if($==="*"){let _=u?.valueOf?.()??u;if(typeof _==="string"&&/^["']/.test(_))return`${this.generate(u,"value")}.repeat(${this.generate(f,"value")})`}let Y=new Set(["<",">","<=",">="]);if(Y.has($)&&Array.isArray(u)){let _=u[0]?.valueOf?.()??u[0];if(Y.has(_)){let A=this.generate(u[1],"value"),J=this.generate(u[2],"value"),w=this.generate(f,"value");return`((${A} ${_} ${J}) && (${J} ${$} ${w}))`}}if($==="!?"){let _=this.generate(u,"value"),A=this.generate(f,"value");return`(${_} !== undefined ? ${_} : ${A})`}if($==="==")$="===";if($==="!=")$="!==";return`(${this.generate(u,"value")} ${$} ${this.generate(f,"value")})`}generateModulo($,W){let[F,U]=W;return this.helpers.add("modulo"),`modulo(${this.generate(F,"value")}, ${this.generate(U,"value")})`}generateModuloAssign($,W){let[F,U]=W;this.helpers.add("modulo");let u=this.generate(F,"value"),f=this.generate(U,"value");return`${u} = modulo(${u}, ${f})`}generateFloorDiv($,W){let[F,U]=W;return`Math.floor(${this.generate(F,"value")} / ${this.generate(U,"value")})`}generateFloorDivAssign($,W){let[F,U]=W,u=this.generate(F,"value"),f=this.generate(U,"value");return`${u} = Math.floor(${u} / ${f})`}generateAssignment($,W,F,U){let[u,f]=W,Y=$==="?="?"??=":$,_=this.is(f,"->")||this.is(f,"=>")||this.is(f,"def");if(u instanceof String&&h(u,"await")!==void 0&&!_){let R=h(u,"await")===!0?"!":"&";throw Error(`Cannot use ${R} sigil in variable declaration '${L(u)}'.`)}if(u instanceof String&&h(u,"await")===!0&&_)this.nextFunctionIsVoid=!0;let A=this.is(u,"array",0),J=this.is(u,"object",0);if(A||J){let R=this.generate(f,"value");return J&&F==="statement"?`(${R})`:R}if(Array.isArray(f)&&Y==="="&&f[0]==="control"){let[,R,Q,M]=f,H=L(R),O=M[0]==="return",q=this.generate(u,"value"),E=this.generate(Q,"value"),I=M.length>1?M[1]:null,D=O?I?`return ${this.generate(I,"value")}`:"return":I?`throw ${this.generate(I,"value")}`:"throw new Error()";if(F==="value"){if(H==="??")return`(() => { const __v = ${E}; if (__v == null) ${D}; return (${q} = __v); })()`;if(H==="||")return`(() => { const __v = ${E}; if (!__v) ${D}; return (${q} = __v); })()`;return`(() => { const __v = ${E}; if (__v) ${D}; return (${q} = __v); })()`}if(H==="??")return`if ((${q} = ${E}) == null) ${D}`;if(H==="||")return`if (!(${q} = ${E})) ${D}`;return`if ((${q} = ${E})) ${D}`}if(this.is(u,"array")){let R=u.slice(1).findIndex((Q)=>this.is(Q,"...")||Q==="...");if(R!==-1&&R<u.length-2){let Q=u.slice(1),M=Q.slice(R+1),H=M.length;if(H>0){let O=this.generate(f,"value"),E=Q.slice(0,R).map((B)=>B===","?"":typeof B==="string"?B:this.generate(B,"value")).join(", "),I=M.map((B)=>B===","?"":typeof B==="string"?B:this.generate(B,"value")).join(", ");this.helpers.add("slice"),Q.forEach((B)=>{if(B===","||B==="...")return;if(typeof B==="string")this.programVars.add(B);else if(this.is(B,"...")&&typeof B[1]==="string")this.programVars.add(B[1])});let D=Q[R],G=this.is(D,"...")?D[1]:null,P=[];if(E)P.push(`[${E}] = ${O}`);if(G)P.push(`[...${G}] = ${O}.slice(${R}, -${H})`);return P.push(`[${I}] = slice.call(${O}, -${H})`),P.join(", ")}}}if(F==="statement"&&$==="="&&Array.isArray(f)&&(f[0]==="||"||f[0]==="&&")&&f.length===3){let[R,Q,M]=f;if(this.is(M,"if")&&M.length===3){let[,H,O]=M,q=Array.isArray(O)&&O.length===1?O[0]:O,E=[R,Q,q],I=this.generate(u,"value"),D=this.generate(H,"value"),G=this.generate(E,"value");return`if (${D}) ${I} = ${G}`}}if(F==="statement"&&$==="="&&Array.isArray(f)&&f.length===3){let[R,Q,M]=f,H=Array.isArray(M)&&M.length===1&&(!Array.isArray(M[0])||M[0][0]!=="block");if(R==="if"&&H){let O=Array.isArray(M)&&M.length===1?M[0]:M,q=this.generate(u,"value"),E=this.unwrapLogical(this.generate(Q,"value")),I=this.generate(O,"value");return`if (${E}) ${q} = ${I}`}}let w;if(u instanceof String&&h(u,"await")!==void 0)w=L(u);else if(typeof u==="string"&&this.reactiveVars?.has(u))w=`${u}.value`;else w=this.generate(u,"value");let z=this.generate(f,"value");if(!this.is(f,"object"))z=this.unwrap(z);let Z=F==="value",K=F==="statement"&&this.is(u,"object");if(Z||K)return`(${w} ${Y} ${z})`;return`${w} ${Y} ${z}`}generatePropertyAccess($,W,F,U){let[u,f]=W;if(this._atParamMap&&u==="this"){let J=this._atParamMap.get(L(f));if(J)return J}let Y=this.generate(u,"value"),A=y.NUMBER_LITERAL_RE.test(Y)||Y.startsWith("await ")||(this.is(u,"object")||this.is(u,"yield"))?`(${Y})`:Y;if(h(f,"await")===!0)return`await ${A}.${L(f)}()`;if(h(f,"predicate"))return`(${A}.${L(f)} != null)`;return`${A}.${L(f)}`}generateOptionalProperty($,W){let[F,U]=W;return`${this.generate(F,"value")}?.${U}`}generateRegexIndex($,W){let[F,U,u]=W;this.helpers.add("toMatchable"),this.programVars.add("_");let f=this.generate(F,"value"),Y=this.generate(U,"value"),_=u!==null?this.generate(u,"value"):"0",A=Y.includes("/m")?", true":"";return`(_ = toMatchable(${f}${A}).match(${Y})) && _[${_}]`}generateIndexAccess($,W){let[F,U]=W;if(this.is(U,"..")||this.is(U,"...")){let u=U[0]==="..",f=this.generate(F,"value"),[Y,_]=U.slice(1),A=(X)=>{if(X===null)return null;let Z=L(X)??X;if(typeof Z==="number")return Z;if(typeof Z==="string"&&/^\d+$/.test(Z))return+Z;if(Array.isArray(X)&&X[0]==="-"&&X.length===2){let K=L(X[1])??X[1];if(typeof K==="number")return-K;if(typeof K==="string"&&/^\d+$/.test(K))return-K}return null},J=(X,Z,K)=>{let R=A(K);if(R!==null&&R!==-1)return`${f}.slice(${X}, ${R+1})`;return`${f}.slice(${X}, +${Z} + 1 || 9e9)`};if(Y===null&&_===null)return`${f}.slice()`;if(Y===null){if(u&&this.is(_,"-",1)&&(L(_[1])??_[1])==1)return`${f}.slice(0)`;let X=this.generate(_,"value");return u?J("0",X,_):`${f}.slice(0, ${X})`}if(_===null)return`${f}.slice(${this.generate(Y,"value")})`;let w=this.generate(Y,"value");if(u&&this.is(_,"-",1)&&(L(_[1])??_[1])==1)return`${f}.slice(${w})`;let z=this.generate(_,"value");return u?J(w,z,_):`${f}.slice(${w}, ${z})`}if(this.is(U,"-",1)){let u=L(U[1])??U[1];if(typeof u==="number"||typeof u==="string"&&/^\d+$/.test(u))return`${this.generate(F,"value")}.at(-${u})`}return`${this.generate(F,"value")}[${this.unwrap(this.generate(U,"value"))}]`}generateOptIndex($,W){let[F,U]=W;if(this.is(U,"-",1)){let u=L(U[1])??U[1];if(typeof u==="number"||typeof u==="string"&&/^\d+$/.test(u))return`${this.generate(F,"value")}?.at(-${u})`}return`${this.generate(F,"value")}?.[${this.generate(U,"value")}]`}generateOptCall($,W){let[F,...U]=W;return`${this.generate(F,"value")}?.(${U.map((u)=>this.generate(u,"value")).join(", ")})`}generateDef($,W,F,U){let[u,f,Y]=W,_=h(u,"await")===!0,A=L(u),J=this.generateParamList(f),w=this.generateFunctionBody(Y,f,_),z=this.containsAwait(Y),X=this.containsYield(Y);return`${z?"async ":""}function${X?"*":""} ${A}(${J}) ${w}`}generateThinArrow($,W,F,U){let[u,f]=W;if((!u||Array.isArray(u)&&u.length===0)&&this.containsIt(f))u=["it"];let Y=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let _=this.generateParamList(u),A=this.generateFunctionBody(f,u,Y),J=this.containsAwait(f),w=this.containsYield(f),z=`${J?"async ":""}function${w?"*":""}(${_}) ${A}`;return F==="value"?`(${z})`:z}generateFatArrow($,W,F,U){let[u,f]=W;if((!u||Array.isArray(u)&&u.length===0)&&this.containsIt(f))u=["it"];let Y=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let _=this.generateParamList(u),J=u.length===1&&typeof u[0]==="string"&&!_.includes("=")&&!_.includes("...")&&!_.includes("[")&&!_.includes("{")?_:`(${_})`,z=this.containsAwait(f)?"async ":"";if(!Y){if(this.is(f,"block")&&f.length===2){let Z=f[1];if(!Array.isArray(Z)||Z[0]!=="return"){let K=this.generate(Z,"value");if(K[0]==="{")K=`(${K})`;return`${z}${J} => ${K}`}}if(!Array.isArray(f)||f[0]!=="block"){let Z=this.generate(f,"value");if(Z[0]==="{")Z=`(${Z})`;return`${z}${J} => ${Z}`}}let X=this.generateFunctionBody(f,u,Y);return`${z}${J} => ${X}`}generateReturn($,W,F,U){if(W.length===0)return"return";let[u]=W;if(this.sideEffectOnly)return"return";if(this.is(u,"if")){let[,f,Y,..._]=u;if(_.length===0){let A=Array.isArray(Y)&&Y.length===1?Y[0]:Y;return`if (${this.generate(f,"value")}) return ${this.generate(A,"value")}`}}if(this.is(u,"new")&&Array.isArray(u[1])&&u[1][0]==="if"){let[,f,Y]=u[1],_=Array.isArray(Y)&&Y.length===1?Y[0]:Y;return`if (${this.generate(f,"value")}) return ${this.generate(["new",_],"value")}`}return`return ${this.generate(u,"value")}`}generateState($,W){let[F,U]=W;this.usesReactivity=!0;let u=L(F)??F;if(!this.reactiveVars)this.reactiveVars=new Set;return this.reactiveVars.add(u),`const ${u} = __state(${this.generate(U,"value")})`}generateComputed($,W){let[F,U]=W;if(this.usesReactivity=!0,!this.reactiveVars)this.reactiveVars=new Set;let u=L(F)??F;if(this.reactiveVars.add(u),this.is(U,"block")&&U.length>2)return`const ${u} = __computed(() => ${this.generateFunctionBody(U)})`;return`const ${u} = __computed(() => ${this.generate(U,"value")})`}generateReadonly($,W){let[F,U]=W;return`const ${L(F)??F} = ${this.generate(U,"value")}`}generateEffect($,W){let[F,U]=W;this.usesReactivity=!0;let u;if(this.is(U,"block"))u=this.generateFunctionBody(U);else if(this.is(U,"->")||this.is(U,"=>")){let Y=this.generate(U,"value");if(F)return`const ${L(F)??this.generate(F,"value")} = __effect(${Y})`;return`__effect(${Y})`}else u=`{ ${this.generate(U,"value")}; }`;let f=`__effect(() => ${u})`;if(F)return`const ${L(F)??this.generate(F,"value")} = ${f}`;return f}generateBreak(){return"break"}generateContinue(){return"continue"}generateExistential($,W){return`(${this.generate(W[0],"value")} != null)`}generateDefined($,W){return`(${this.generate(W[0],"value")} !== undefined)`}generatePresence($,W){return`(${this.generate(W[0],"value")} ? true : undefined)`}generateTernary($,W,F){let[U,u,f]=W;if((u?.[0]?.valueOf?.()??u?.[0])==="="&&Array.isArray(u)){let _=this.generate(u[1],"value"),A=this.generate(u[2],"value"),J=this.generate(f,"value");return`${_} = (${this.unwrap(this.generate(U,"value"))} ? ${A} : ${J})`}return`(${this.unwrap(this.generate(U,"value"))} ? ${this.generate(u,"value")} : ${this.generate(f,"value")})`}generatePipe($,W){let[F,U]=W,u=this.generate(F,"value");if(Array.isArray(U)&&U.length>1){let f=U[0];if(Array.isArray(f)||typeof f==="string"&&/^[a-zA-Z_$]/.test(f)){let _=this.generate(f,"value"),A=U.slice(1).map((J)=>this.generate(J,"value"));return`${_}(${u}, ${A.join(", ")})`}}return`${this.generate(U,"value")}(${u})`}generateLoop($,W){return`while (true) ${this.generateLoopBody(W[0])}`}generateLoopN($,W){let[F,U]=W;return`for (let it = 0; it < ${this.generate(F,"value")}; it++) ${this.generateLoopBody(U)}`}generateAwait($,W){return`await ${this.generate(W[0],"value")}`}generateYield($,W){return W.length===0?"yield":`yield ${this.generate(W[0],"value")}`}generateYieldFrom($,W){return`yield* ${this.generate(W[0],"value")}`}generateIf($,W,F,U){let[u,f,...Y]=W;return F==="value"?this.generateIfAsExpression(u,f,Y):this.generateIfAsStatement(u,f,Y)}generateForIn($,W,F,U){let[u,f,Y,_,A]=W;if(F==="value"&&this.comprehensionDepth===0){let Q=["for-in",u,f,Y];return this.generate(["comprehension",A,[Q],_?[_]:[]],F)}let J=Array.isArray(u)?u:[u],w=J.length===0,[z,X]=w?["_i",null]:J,Z=this.is(z,"array")||this.is(z,"object")?this.generateDestructuringPattern(z):z;if(Y&&Y!==null){let Q=this.generate(f,"value"),M=X||"_i",H=this.generate(Y,"value"),O=this.is(Y,"-",1),q=O&&(Y[1]==="1"||Y[1]===1||L(Y[1])==="1"),E=!O&&(Y==="1"||Y===1||L(Y)==="1"),I;if(q)I=`for (let ${M} = ${Q}.length - 1; ${M} >= 0; ${M}--) `;else if(E)I=`for (let ${M} = 0; ${M} < ${Q}.length; ${M}++) `;else if(O)I=`for (let ${M} = ${Q}.length - 1; ${M} >= 0; ${M} += ${H}) `;else I=`for (let ${M} = 0; ${M} < ${Q}.length; ${M} += ${H}) `;if(this.is(A,"block")){let D=A.slice(1);this.indentLevel++;let G=[];if(!w)G.push(`const ${Z} = ${Q}[${M}];`);if(_)G.push(`if (${this.generate(_,"value")}) {`),this.indentLevel++,G.push(...this.formatStatements(D)),this.indentLevel--,G.push(this.indent()+"}");else G.push(...D.map((P)=>this.addSemicolon(P,this.generate(P,"statement"))));return this.indentLevel--,I+`{
|
|
342
|
-
${
|
|
341
|
+
}`;return f}generateBinaryOp($,U,W,F){if(($==="+"||$==="-")&&U.length===1)return`(${$}${this.generate(U[0],"value")})`;let[f,u]=U;if($==="*"){let A=f?.valueOf?.()??f;if(typeof A==="string"&&/^["']/.test(A))return`${this.generate(f,"value")}.repeat(${this.generate(u,"value")})`}let Y=new Set(["<",">","<=",">="]);if(Y.has($)&&Array.isArray(f)){let A=f[0]?.valueOf?.()??f[0];if(Y.has(A)){let _=this.generate(f[1],"value"),R=this.generate(f[2],"value"),w=this.generate(u,"value");return`((${_} ${A} ${R}) && (${R} ${$} ${w}))`}}if($==="!?"){let A=this.generate(f,"value"),_=this.generate(u,"value");return`(${A} !== undefined ? ${A} : ${_})`}if($==="==")$="===";if($==="!=")$="!==";return`(${this.generate(f,"value")} ${$} ${this.generate(u,"value")})`}generateModulo($,U){let[W,F]=U;return this.helpers.add("modulo"),`modulo(${this.generate(W,"value")}, ${this.generate(F,"value")})`}generateModuloAssign($,U){let[W,F]=U;this.helpers.add("modulo");let f=this.generate(W,"value"),u=this.generate(F,"value");return`${f} = modulo(${f}, ${u})`}generateFloorDiv($,U){let[W,F]=U;return`Math.floor(${this.generate(W,"value")} / ${this.generate(F,"value")})`}generateFloorDivAssign($,U){let[W,F]=U,f=this.generate(W,"value"),u=this.generate(F,"value");return`${f} = Math.floor(${f} / ${u})`}generateAssignment($,U,W,F){let[f,u]=U,Y=$==="?="?"??=":$,A=this.is(u,"->")||this.is(u,"=>")||this.is(u,"def");if(f instanceof String&&j(f,"await")!==void 0&&!A){let Z=j(f,"await")===!0?"!":"&";throw Error(`Cannot use ${Z} sigil in variable declaration '${S(f)}'.`)}if(f instanceof String&&j(f,"await")===!0&&A)this.nextFunctionIsVoid=!0;let _=this.is(f,"array",0),R=this.is(f,"object",0);if(_||R){let Z=this.generate(u,"value");return R&&W==="statement"?`(${Z})`:Z}if(Array.isArray(u)&&Y==="="&&u[0]==="control"){let[,Z,J,Q]=u,H=S(Z),O=Q[0]==="return",M=this.generate(f,"value"),G=this.generate(J,"value"),B=Q.length>1?Q[1]:null,q=O?B?`return ${this.generate(B,"value")}`:"return":B?`throw ${this.generate(B,"value")}`:"throw new Error()";if(W==="value"){if(H==="??")return`(() => { const __v = ${G}; if (__v == null) ${q}; return (${M} = __v); })()`;if(H==="||")return`(() => { const __v = ${G}; if (!__v) ${q}; return (${M} = __v); })()`;return`(() => { const __v = ${G}; if (__v) ${q}; return (${M} = __v); })()`}if(H==="??")return`if ((${M} = ${G}) == null) ${q}`;if(H==="||")return`if (!(${M} = ${G})) ${q}`;return`if ((${M} = ${G})) ${q}`}if(this.is(f,"array")){let Z=f.slice(1).findIndex((J)=>this.is(J,"...")||J==="...");if(Z!==-1&&Z<f.length-2){let J=f.slice(1),Q=J.slice(Z+1),H=Q.length;if(H>0){let O=this.generate(u,"value"),G=J.slice(0,Z).map((I)=>I===","?"":typeof I==="string"?I:this.generate(I,"value")).join(", "),B=Q.map((I)=>I===","?"":typeof I==="string"?I:this.generate(I,"value")).join(", ");this.helpers.add("slice"),J.forEach((I)=>{if(I===","||I==="...")return;if(typeof I==="string")this.programVars.add(I);else if(this.is(I,"...")&&typeof I[1]==="string")this.programVars.add(I[1])});let q=J[Z],P=this.is(q,"...")?q[1]:null,E=[];if(G)E.push(`[${G}] = ${O}`);if(P)E.push(`[...${P}] = ${O}.slice(${Z}, -${H})`);return E.push(`[${B}] = slice.call(${O}, -${H})`),E.join(", ")}}}if(W==="statement"&&$==="="&&Array.isArray(u)&&(u[0]==="||"||u[0]==="&&")&&u.length===3){let[Z,J,Q]=u;if(this.is(Q,"if")&&Q.length===3){let[,H,O]=Q,M=Array.isArray(O)&&O.length===1?O[0]:O,G=[Z,J,M],B=this.generate(f,"value"),q=this.generate(H,"value"),P=this.generate(G,"value");return`if (${q}) ${B} = ${P}`}}if(W==="statement"&&$==="="&&Array.isArray(u)&&u.length===3){let[Z,J,Q]=u,H=Array.isArray(Q)&&Q.length===1&&(!Array.isArray(Q[0])||Q[0][0]!=="block");if(Z==="if"&&H){let O=Array.isArray(Q)&&Q.length===1?Q[0]:Q,M=this.generate(f,"value"),G=this.unwrapLogical(this.generate(J,"value")),B=this.generate(O,"value");return`if (${G}) ${M} = ${B}`}}let w;if(f instanceof String&&j(f,"await")!==void 0)w=S(f);else if(typeof f==="string"&&this.reactiveVars?.has(f))w=`${f}.value`;else w=this.generate(f,"value");let z=this.generate(u,"value");if(!this.is(u,"object"))z=this.unwrap(z);let K=W==="value",D=W==="statement"&&this.is(f,"object");if(K||D)return`(${w} ${Y} ${z})`;return`${w} ${Y} ${z}`}generatePropertyAccess($,U,W,F){let[f,u]=U;if(this._atParamMap&&f==="this"){let R=this._atParamMap.get(S(u));if(R)return R}let Y=this.generate(f,"value"),_=b.NUMBER_LITERAL_RE.test(Y)||Y.startsWith("await ")||(this.is(f,"object")||this.is(f,"yield"))?`(${Y})`:Y;if(j(u,"await")===!0)return`await ${_}.${S(u)}()`;if(j(u,"predicate"))return`(${_}.${S(u)} != null)`;return`${_}.${S(u)}`}generateOptionalProperty($,U){let[W,F]=U;return`${this.generate(W,"value")}?.${F}`}generateRegexIndex($,U){let[W,F,f]=U;this.helpers.add("toMatchable"),this.programVars.add("_");let u=this.generate(W,"value"),Y=this.generate(F,"value"),A=f!==null?this.generate(f,"value"):"0",_=Y.includes("/m")?", true":"";return`(_ = toMatchable(${u}${_}).match(${Y})) && _[${A}]`}generateIndexAccess($,U){let[W,F]=U;if(this.is(F,"..")||this.is(F,"...")){let f=F[0]==="..",u=this.generate(W,"value"),[Y,A]=F.slice(1),_=(X)=>{if(X===null)return null;let K=S(X)??X;if(typeof K==="number")return K;if(typeof K==="string"&&/^\d+$/.test(K))return+K;if(Array.isArray(X)&&X[0]==="-"&&X.length===2){let D=S(X[1])??X[1];if(typeof D==="number")return-D;if(typeof D==="string"&&/^\d+$/.test(D))return-D}return null},R=(X,K,D)=>{let Z=_(D);if(Z!==null&&Z!==-1)return`${u}.slice(${X}, ${Z+1})`;return`${u}.slice(${X}, +${K} + 1 || 9e9)`};if(Y===null&&A===null)return`${u}.slice()`;if(Y===null){if(f&&this.is(A,"-",1)&&(S(A[1])??A[1])==1)return`${u}.slice(0)`;let X=this.generate(A,"value");return f?R("0",X,A):`${u}.slice(0, ${X})`}if(A===null)return`${u}.slice(${this.generate(Y,"value")})`;let w=this.generate(Y,"value");if(f&&this.is(A,"-",1)&&(S(A[1])??A[1])==1)return`${u}.slice(${w})`;let z=this.generate(A,"value");return f?R(w,z,A):`${u}.slice(${w}, ${z})`}if(this.is(F,"-",1)){let f=S(F[1])??F[1];if(typeof f==="number"||typeof f==="string"&&/^\d+$/.test(f))return`${this.generate(W,"value")}.at(-${f})`}return`${this.generate(W,"value")}[${this.unwrap(this.generate(F,"value"))}]`}generateOptIndex($,U){let[W,F]=U;if(this.is(F,"-",1)){let f=S(F[1])??F[1];if(typeof f==="number"||typeof f==="string"&&/^\d+$/.test(f))return`${this.generate(W,"value")}?.at(-${f})`}return`${this.generate(W,"value")}?.[${this.generate(F,"value")}]`}generateOptCall($,U){let[W,...F]=U;return`${this.generate(W,"value")}?.(${F.map((f)=>this.generate(f,"value")).join(", ")})`}generateDef($,U,W,F){let[f,u,Y]=U,A=j(f,"await")===!0,_=S(f),R=this.generateParamList(u),w=this.generateFunctionBody(Y,u,A),z=this.containsAwait(Y),X=this.containsYield(Y);return`${z?"async ":""}function${X?"*":""} ${_}(${R}) ${w}`}generateThinArrow($,U,W,F){let[f,u]=U;if((!f||Array.isArray(f)&&f.length===0)&&this.containsIt(u))f=["it"];let Y=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let A=this.generateParamList(f),_=this.generateFunctionBody(u,f,Y),R=this.containsAwait(u),w=this.containsYield(u),z=`${R?"async ":""}function${w?"*":""}(${A}) ${_}`;return W==="value"?`(${z})`:z}generateFatArrow($,U,W,F){let[f,u]=U;if((!f||Array.isArray(f)&&f.length===0)&&this.containsIt(u))f=["it"];let Y=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let A=this.generateParamList(f),R=f.length===1&&typeof f[0]==="string"&&!A.includes("=")&&!A.includes("...")&&!A.includes("[")&&!A.includes("{")?A:`(${A})`,z=this.containsAwait(u)?"async ":"";if(!Y){if(this.is(u,"block")&&u.length===2){let K=u[1];if(!Array.isArray(K)||K[0]!=="return"){let D=this.generate(K,"value");if(D[0]==="{")D=`(${D})`;return`${z}${R} => ${D}`}}if(!Array.isArray(u)||u[0]!=="block"){let K=this.generate(u,"value");if(K[0]==="{")K=`(${K})`;return`${z}${R} => ${K}`}}let X=this.generateFunctionBody(u,f,Y);return`${z}${R} => ${X}`}generateReturn($,U,W,F){if(U.length===0)return"return";let[f]=U;if(this.sideEffectOnly)return"return";if(this.is(f,"if")){let[,u,Y,...A]=f;if(A.length===0){let _=Array.isArray(Y)&&Y.length===1?Y[0]:Y;return`if (${this.generate(u,"value")}) return ${this.generate(_,"value")}`}}if(this.is(f,"new")&&Array.isArray(f[1])&&f[1][0]==="if"){let[,u,Y]=f[1],A=Array.isArray(Y)&&Y.length===1?Y[0]:Y;return`if (${this.generate(u,"value")}) return ${this.generate(["new",A],"value")}`}return`return ${this.generate(f,"value")}`}generateState($,U){let[W,F]=U;this.usesReactivity=!0;let f=S(W)??W;if(!this.reactiveVars)this.reactiveVars=new Set;return this.reactiveVars.add(f),`const ${f} = __state(${this.generate(F,"value")})`}generateComputed($,U){let[W,F]=U;if(this.usesReactivity=!0,!this.reactiveVars)this.reactiveVars=new Set;let f=S(W)??W;if(this.reactiveVars.add(f),this.is(F,"block")&&F.length>2)return`const ${f} = __computed(() => ${this.generateFunctionBody(F)})`;return`const ${f} = __computed(() => ${this.generate(F,"value")})`}generateReadonly($,U){let[W,F]=U;return`const ${S(W)??W} = ${this.generate(F,"value")}`}generateEffect($,U){let[W,F]=U;this.usesReactivity=!0;let f;if(this.is(F,"block"))f=this.generateFunctionBody(F);else if(this.is(F,"->")||this.is(F,"=>")){let Y=this.generate(F,"value");if(W)return`const ${S(W)??this.generate(W,"value")} = __effect(${Y})`;return`__effect(${Y})`}else f=`{ ${this.generate(F,"value")}; }`;let u=`__effect(() => ${f})`;if(W)return`const ${S(W)??this.generate(W,"value")} = ${u}`;return u}generateBreak(){return"break"}generateContinue(){return"continue"}generateExistential($,U){return`(${this.generate(U[0],"value")} != null)`}generateDefined($,U){return`(${this.generate(U[0],"value")} !== undefined)`}generatePresence($,U){return`(${this.generate(U[0],"value")} ? true : undefined)`}generateTernary($,U,W){let[F,f,u]=U;if((f?.[0]?.valueOf?.()??f?.[0])==="="&&Array.isArray(f)){let A=this.generate(f[1],"value"),_=this.generate(f[2],"value"),R=this.generate(u,"value");return`${A} = (${this.unwrap(this.generate(F,"value"))} ? ${_} : ${R})`}return`(${this.unwrap(this.generate(F,"value"))} ? ${this.generate(f,"value")} : ${this.generate(u,"value")})`}generatePipe($,U){let[W,F]=U,f=this.generate(W,"value");if(Array.isArray(F)&&F.length>1){let u=F[0];if(Array.isArray(u)||typeof u==="string"&&/^[a-zA-Z_$]/.test(u)){let A=this.generate(u,"value"),_=F.slice(1).map((R)=>this.generate(R,"value"));return`${A}(${f}, ${_.join(", ")})`}}return`${this.generate(F,"value")}(${f})`}generateLoop($,U){return`while (true) ${this.generateLoopBody(U[0])}`}generateLoopN($,U){let[W,F]=U;return`for (let it = 0; it < ${this.generate(W,"value")}; it++) ${this.generateLoopBody(F)}`}generateAwait($,U){return`await ${this.generate(U[0],"value")}`}generateYield($,U){return U.length===0?"yield":`yield ${this.generate(U[0],"value")}`}generateYieldFrom($,U){return`yield* ${this.generate(U[0],"value")}`}generateIf($,U,W,F){let[f,u,...Y]=U;return W==="value"?this.generateIfAsExpression(f,u,Y):this.generateIfAsStatement(f,u,Y)}generateForIn($,U,W,F){let[f,u,Y,A,_]=U;if(W==="value"&&this.comprehensionDepth===0){let J=["for-in",f,u,Y];return this.generate(["comprehension",_,[J],A?[A]:[]],W)}let R=Array.isArray(f)?f:[f],w=R.length===0,[z,X]=w?["_i",null]:R,K=this.is(z,"array")||this.is(z,"object")?this.generateDestructuringPattern(z):z;if(Y&&Y!==null){let J=this.generate(u,"value"),Q=X||"_i",H=this.generate(Y,"value"),O=this.is(Y,"-",1),M=O&&(Y[1]==="1"||Y[1]===1||S(Y[1])==="1"),G=!O&&(Y==="1"||Y===1||S(Y)==="1"),B;if(M)B=`for (let ${Q} = ${J}.length - 1; ${Q} >= 0; ${Q}--) `;else if(G)B=`for (let ${Q} = 0; ${Q} < ${J}.length; ${Q}++) `;else if(O)B=`for (let ${Q} = ${J}.length - 1; ${Q} >= 0; ${Q} += ${H}) `;else B=`for (let ${Q} = 0; ${Q} < ${J}.length; ${Q} += ${H}) `;if(this.is(_,"block")){let q=_.slice(1);this.indentLevel++;let P=[];if(!w)P.push(`const ${K} = ${J}[${Q}];`);if(A)P.push(`if (${this.generate(A,"value")}) {`),this.indentLevel++,P.push(...this.formatStatements(q)),this.indentLevel--,P.push(this.indent()+"}");else P.push(...q.map((E)=>this.addSemicolon(E,this.generate(E,"statement"))));return this.indentLevel--,B+`{
|
|
342
|
+
${P.map((E)=>this.indent()+E).join(`
|
|
343
343
|
`)}
|
|
344
|
-
${this.indent()}}`}if(w)return
|
|
345
|
-
`,this.indentLevel++,
|
|
346
|
-
`,
|
|
347
|
-
`,this.indentLevel++,
|
|
344
|
+
${this.indent()}}`}if(w)return A?B+`{ if (${this.generate(A,"value")}) ${this.generate(_,"statement")}; }`:B+`{ ${this.generate(_,"statement")}; }`;return A?B+`{ const ${K} = ${J}[${Q}]; if (${this.generate(A,"value")}) ${this.generate(_,"statement")}; }`:B+`{ const ${K} = ${J}[${Q}]; ${this.generate(_,"statement")}; }`}if(X){let J=this.generate(u,"value"),Q=`for (let ${X} = 0; ${X} < ${J}.length; ${X}++) `;if(this.is(_,"block")){if(Q+=`{
|
|
345
|
+
`,this.indentLevel++,Q+=this.indent()+`const ${K} = ${J}[${X}];
|
|
346
|
+
`,A)Q+=this.indent()+`if (${this.unwrap(this.generate(A,"value"))}) {
|
|
347
|
+
`,this.indentLevel++,Q+=this.formatStatements(_.slice(1)).join(`
|
|
348
348
|
`)+`
|
|
349
|
-
`,this.indentLevel--,
|
|
350
|
-
`;else
|
|
349
|
+
`,this.indentLevel--,Q+=this.indent()+`}
|
|
350
|
+
`;else Q+=this.formatStatements(_.slice(1)).join(`
|
|
351
351
|
`)+`
|
|
352
|
-
`;this.indentLevel--,
|
|
353
|
-
${
|
|
352
|
+
`;this.indentLevel--,Q+=this.indent()+"}"}else Q+=A?`{ const ${K} = ${J}[${X}]; if (${this.unwrap(this.generate(A,"value"))}) ${this.generate(_,"statement")}; }`:`{ const ${K} = ${J}[${X}]; ${this.generate(_,"statement")}; }`;return Q}let D=Array.isArray(u)&&u[0];if(D instanceof String)D=S(D);if(D===".."||D==="..."){let J=D==="...",[Q,H]=u.slice(1),O=(M)=>typeof M==="number"||typeof M==="string"&&!M.includes("(")||M instanceof String&&!S(M).includes("(")||this.is(M,".");if(O(Q)&&O(H)){let M=this.generate(Q,"value"),G=this.generate(H,"value"),B=J?"<":"<=",q=Y?`${K} += ${this.generate(Y,"value")}`:`${K}++`,P=`for (let ${K} = ${M}; ${K} ${B} ${G}; ${q}) `;return P+=A?this.generateLoopBodyWithGuard(_,A):this.generateLoopBody(_),P}}let Z=`for (const ${K} of ${this.generate(u,"value")}) `;return Z+=A?this.generateLoopBodyWithGuard(_,A):this.generateLoopBody(_),Z}generateForOf($,U,W,F){let[f,u,Y,A,_]=U;if(W==="value"&&this.comprehensionDepth===0){let K=["for-of",f,u,Y];return this.generate(["comprehension",_,[K],A?[A]:[]],W)}let[R,w]=Array.isArray(f)?f:[f],z=this.generate(u,"value"),X=`for (const ${R} in ${z}) `;if(Y&&!w&&!A){if(this.is(_,"block")){this.indentLevel++;let K=[`if (!Object.hasOwn(${z}, ${R})) continue;`,..._.slice(1).map((D)=>this.addSemicolon(D,this.generate(D,"statement")))];return this.indentLevel--,X+`{
|
|
353
|
+
${K.map((D)=>this.indent()+D).join(`
|
|
354
354
|
`)}
|
|
355
|
-
${this.indent()}}`}return X+`{ if (!Object.hasOwn(${z}, ${
|
|
356
|
-
${
|
|
355
|
+
${this.indent()}}`}return X+`{ if (!Object.hasOwn(${z}, ${R})) continue; ${this.generate(_,"statement")}; }`}if(w){if(this.is(_,"block")){let D=_.slice(1);this.indentLevel++;let Z=[];if(Y)Z.push(`if (!Object.hasOwn(${z}, ${R})) continue;`);if(Z.push(`const ${w} = ${z}[${R}];`),A)Z.push(`if (${this.generate(A,"value")}) {`),this.indentLevel++,Z.push(...D.map((J)=>this.addSemicolon(J,this.generate(J,"statement")))),this.indentLevel--,Z.push(this.indent()+"}");else Z.push(...D.map((J)=>this.addSemicolon(J,this.generate(J,"statement"))));return this.indentLevel--,X+`{
|
|
356
|
+
${Z.map((J)=>this.indent()+J).join(`
|
|
357
357
|
`)}
|
|
358
|
-
${this.indent()}}`}let
|
|
359
|
-
${
|
|
358
|
+
${this.indent()}}`}let K="";if(Y)K+=`if (!Object.hasOwn(${z}, ${R})) continue; `;if(K+=`const ${w} = ${z}[${R}]; `,A)K+=`if (${this.generate(A,"value")}) `;return K+=`${this.generate(_,"statement")};`,X+`{ ${K} }`}return X+=A?this.generateLoopBodyWithGuard(_,A):this.generateLoopBody(_),X}generateForAs($,U,W,F){let f=Array.isArray(U[0])?U[0]:[U[0]],[u]=f,Y=U[1],A=U[2],_=U[3],R=U[4],w=!1,z=[];if(this.is(u,"array")){let J=u.slice(1),Q=J.findIndex((H)=>this.is(H,"...")||H==="...");if(Q!==-1&&Q<J.length-1){w=!0;let H=J.slice(Q+1),O=H.length,M=J.slice(0,Q),G=J[Q],B=this.is(G,"...")?G[1]:"_rest",q=M.map((I)=>I===","?"":typeof I==="string"?I:this.generate(I,"value")).join(", "),P=q?`${q}, ...${B}`:`...${B}`,E=H.map((I)=>I===","?"":typeof I==="string"?I:this.generate(I,"value")).join(", ");z.push(`[${P}] = _item`),z.push(`[${E}] = ${B}.splice(-${O})`),this.helpers.add("slice"),J.forEach((I)=>{if(I===","||I==="...")return;if(typeof I==="string")this.programVars.add(I);else if(this.is(I,"...")&&typeof I[1]==="string")this.programVars.add(I[1])})}}let X=this.generate(Y,"value"),K=A?"await ":"",D;if(w)D="_item";else if(this.is(u,"array")||this.is(u,"object"))D=this.generateDestructuringPattern(u);else D=u;let Z=`for ${K}(const ${D} of ${X}) `;if(w&&z.length>0){let J=this.unwrapBlock(R),Q=this.withIndent(()=>[...z.map((H)=>this.indent()+H+";"),...this.formatStatements(J)]);Z+=`{
|
|
359
|
+
${Q.join(`
|
|
360
360
|
`)}
|
|
361
|
-
${this.indent()}}`}else
|
|
362
|
-
${this.withIndent(()=>this.formatStatements(
|
|
361
|
+
${this.indent()}}`}else Z+=_?this.generateLoopBodyWithGuard(R,_):this.generateLoopBody(R);return Z}generateWhile($,U){let W=U[0],F=U.length===3?U[1]:null,f=U[U.length-1];return`while (${this.unwrap(this.generate(W,"value"))}) `+(F?this.generateLoopBodyWithGuard(f,F):this.generateLoopBody(f))}generateRange($,U){if($==="..."){if(U.length===1)return`...${this.generate(U[0],"value")}`;let[Y,A]=U,_=this.generate(Y,"value"),R=this.generate(A,"value");return`((s, e) => Array.from({length: Math.max(0, Math.abs(e - s))}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${_}, ${R})`}let[W,F]=U,f=this.generate(W,"value"),u=this.generate(F,"value");return`((s, e) => Array.from({length: Math.abs(e - s) + 1}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${f}, ${u})`}generateNot($,U){let[W]=U;if(typeof W==="string"||W instanceof String)return`!${this.generate(W,"value")}`;if(Array.isArray(W)){if([".","?.","[]","optindex","optcall"].includes(W[0]))return`!${this.generate(W,"value")}`}let F=this.generate(W,"value");return F.startsWith("(")?`!${F}`:`(!${F})`}generateBitwiseNot($,U){return`(~${this.generate(U[0],"value")})`}generateIncDec($,U){let[W,F]=U,f=this.generate(W,"value");return F?`(${f}${$})`:`(${$}${f})`}generateTypeof($,U){return`typeof ${this.generate(U[0],"value")}`}generateDelete($,U){return`(delete ${this.generate(U[0],"value")})`}generateInstanceof($,U,W,F){let[f,u]=U,Y=j(F[0],"invert"),A=`(${this.generate(f,"value")} instanceof ${this.generate(u,"value")})`;return Y?`(!${A})`:A}generateIn($,U,W,F){let[f,u]=U,Y=this.generate(f,"value"),A=j(F[0],"invert");if(this.is(u,"object")){let w=`(${Y} in ${this.generate(u,"value")})`;return A?`(!${w})`:w}let _=this.generate(u,"value"),R=`(Array.isArray(${_}) || typeof ${_} === 'string' ? ${_}.includes(${Y}) : (${Y} in ${_}))`;return A?`(!${R})`:R}generateOf($,U,W,F){let[f,u]=U,Y=this.generate(f,"value"),A=this.generate(u,"value"),_=j(F[0],"invert"),R=`(${Y} in ${A})`;return _?`(!${R})`:R}generateRegexMatch($,U){let[W,F]=U;this.helpers.add("toMatchable"),this.programVars.add("_");let f=this.generate(F,"value"),u=f.includes("/m")?", true":"";return`(_ = toMatchable(${this.generate(W,"value")}${u}).match(${f}))`}generateNew($,U){let[W]=U;if(this.is(W,".")||this.is(W,"?.")){let[F,f,u]=W;if(Array.isArray(f)&&!f[0].startsWith)return`(${this.generate(["new",f],"value")}).${u}`;return`new ${this.generate(f,"value")}.${u}`}if(Array.isArray(W)){let[F,...f]=W;return`new ${this.generate(F,"value")}(${f.map((u)=>this.unwrap(this.generate(u,"value"))).join(", ")})`}return`new ${this.generate(W,"value")}()`}generateLogicalAnd($,U,W,F){let f=this.flattenBinaryChain(F).slice(1);if(f.length===0)return"true";if(f.length===1)return this.generate(f[0],"value");return`(${f.map((u)=>this.generate(u,"value")).join(" && ")})`}generateLogicalOr($,U,W,F){let f=this.flattenBinaryChain(F).slice(1);if(f.length===0)return"true";if(f.length===1)return this.generate(f[0],"value");return`(${f.map((u)=>this.generate(u,"value")).join(" || ")})`}generateArray($,U){let W=U.length>0&&U[U.length-1]===",",F=U.map((f)=>{if(f===",")return"";if(f==="...")return"";if(this.is(f,"..."))return`...${this.generate(f[1],"value")}`;return this.generate(f,"value")}).join(", ");return W?`[${F},]`:`[${F}]`}generateObject($,U,W){if(U.length===1&&Array.isArray(U[0])&&Array.isArray(U[0][1])&&U[0][1][0]==="comprehension"){let[f,u]=U[0],[,Y,A,_]=u;return this.generate(["object-comprehension",f,Y,A,_],W)}return`{${U.map((f)=>{if(this.is(f,"..."))return`...${this.generate(f[1],"value")}`;let[u,Y,A]=f,_;if(this.is(u,"dynamicKey"))_=`[${this.generate(u[1],"value")}]`;else if(this.is(u,"str"))_=`[${this.generate(u,"value")}]`;else this.suppressReactiveUnwrap=!0,_=this.generate(u,"value"),this.suppressReactiveUnwrap=!1;let R=this.generate(Y,"value");if(A==="=")return`${_} = ${R}`;if(A===":")return`${_}: ${R}`;if(_===R&&!Array.isArray(u))return _;return`${_}: ${R}`}).join(", ")}}`}generateBlock($,U,W){if(W==="statement")return`{
|
|
362
|
+
${this.withIndent(()=>this.formatStatements(U)).join(`
|
|
363
363
|
`)}
|
|
364
|
-
${this.indent()}}`;if(
|
|
365
|
-
${this.withIndent(()=>
|
|
364
|
+
${this.indent()}}`;if(U.length===0)return"undefined";if(U.length===1)return this.generate(U[0],W);let F=U[U.length-1];if(Array.isArray(F)&&["break","continue","return","throw"].includes(F[0])){let u=U.map((Y)=>this.addSemicolon(Y,this.generate(Y,"statement")));return`{
|
|
365
|
+
${this.withIndent(()=>u.map((Y)=>this.indent()+Y).join(`
|
|
366
366
|
`))}
|
|
367
|
-
${this.indent()}}`}return`(${
|
|
367
|
+
${this.indent()}}`}return`(${U.map((u)=>this.generate(u,"value")).join(", ")})`}generateTry($,U,W){let F=W==="value",f="try ",u=U[0];if(f+=F&&this.is(u,"block")?this.generateBlockWithReturns(u):this.generate(u,"statement"),U.length>=2&&Array.isArray(U[1])&&U[1].length===2&&U[1][0]!=="block"){let[Y,A]=U[1];if(f+=" catch",Y&&(this.is(Y,"object")||this.is(Y,"array"))){f+=" (error)";let _=`(${this.generate(Y,"value")} = error)`;A=this.is(A,"block")?["block",_,...A.slice(1)]:["block",_,A]}else if(Y)f+=` (${Y})`;f+=" "+(F&&this.is(A,"block")?this.generateBlockWithReturns(A):this.generate(A,"statement"))}else if(U.length===2)f+=" finally "+this.generate(U[1],"statement");if(U.length===3)f+=" finally "+this.generate(U[2],"statement");if(U.length===1)f+=" catch {}";if(F)return`(${this.containsAwait(U[0])||U[1]&&this.containsAwait(U[1])?"async ":""}() => { ${f} })()`;return f}generateThrow($,U,W){let[F]=U;if(Array.isArray(F)){let u=F,Y=null;if(F[0]==="new"&&Array.isArray(F[1])&&F[1][0]==="if")Y="new",u=F[1];else if(F[0]==="if")u=F;if(u[0]==="if"){let[,A,_]=u,R=Array.isArray(_)&&_.length===1?_[0]:_;F=Y==="new"?["new",R]:R;let w=this.generate(A,"value"),z=`throw ${this.generate(F,"value")}`;return`if (${w}) {
|
|
368
368
|
${this.indent()} ${z};
|
|
369
|
-
${this.indent()}}`}}let
|
|
370
|
-
`;this.indentLevel++;for(let
|
|
371
|
-
`}this.indentLevel++,Y+=this.generateSwitchCaseBody(
|
|
372
|
-
`,this.indentLevel++,Y+=this.generateSwitchCaseBody(
|
|
373
|
-
`;this.indentLevel++,this.comprehensionDepth++,
|
|
374
|
-
`;for(let w of
|
|
375
|
-
`,this.indentLevel++,
|
|
376
|
-
`}else if(z==="for-of"){let{header:
|
|
377
|
-
`,this.indentLevel++,
|
|
378
|
-
`;if(
|
|
379
|
-
`}else if(z==="for-as"){let{header:
|
|
380
|
-
`,this.indentLevel++}}for(let w of
|
|
381
|
-
`,this.indentLevel++;let
|
|
382
|
-
`;else if(Array.isArray(z)&&
|
|
383
|
-
`;else
|
|
384
|
-
`}else if(
|
|
385
|
-
`;else if(Array.isArray(
|
|
386
|
-
`;else
|
|
387
|
-
`;for(let w=0;w<
|
|
388
|
-
`;for(let w=0;w<
|
|
389
|
-
`;return
|
|
390
|
-
`,this.indentLevel--,this.comprehensionDepth--,
|
|
391
|
-
`;this.indentLevel++,
|
|
392
|
-
`;for(let
|
|
393
|
-
`,this.indentLevel++,X)
|
|
394
|
-
`;if(
|
|
395
|
-
`}}for(let
|
|
396
|
-
`,this.indentLevel++;
|
|
397
|
-
`;for(let
|
|
398
|
-
`;for(let
|
|
399
|
-
`;return
|
|
400
|
-
`,this.indentLevel--,
|
|
401
|
-
`,
|
|
402
|
-
`}else if(
|
|
403
|
-
`;else Y+=this.indent()+`${
|
|
404
|
-
`}this.indentLevel--}else if(
|
|
405
|
-
`}else if(
|
|
406
|
-
`;else Y+=this.indent()+`${
|
|
407
|
-
`}for(let X of z)if(this.is(X,"class")){let[,
|
|
369
|
+
${this.indent()}}`}}let f=`throw ${this.generate(F,"value")}`;return W==="value"?`(() => { ${f}; })()`:f}generateControl($,U,W){let[F,f,u]=U,Y=S(F),A=u[0]==="return",_=this.generate(f,"value"),R=u.length>1?u[1]:null,w=A?R?`return ${this.generate(R,"value")}`:"return":R?`throw ${this.generate(R,"value")}`:"throw new Error()",z=this.wrapForCondition(_);if(W==="value"){if(Y==="??")return`(() => { const __v = ${_}; if (__v == null) ${w}; return __v; })()`;if(Y==="||")return`(() => { const __v = ${_}; if (!__v) ${w}; return __v; })()`;return`(() => { const __v = ${_}; if (__v) ${w}; return __v; })()`}if(Y==="??")return`if (${z} == null) ${w}`;if(Y==="||")return`if (!${z}) ${w}`;return`if (${z}) ${w}`}generateSwitch($,U,W){let[F,f,u]=U;if(F===null)return this.generateSwitchAsIfChain(f,u,W);let Y=`switch (${this.generate(F,"value")}) {
|
|
370
|
+
`;this.indentLevel++;for(let A of f){let[,_,R]=A;for(let w of _){let z=S(w)??w,X;if(Array.isArray(z))X=this.generate(z,"value");else if(typeof z==="string"&&(z.startsWith('"')||z.startsWith("'")))X=`'${z.slice(1,-1)}'`;else X=this.generate(z,"value");Y+=this.indent()+`case ${X}:
|
|
371
|
+
`}this.indentLevel++,Y+=this.generateSwitchCaseBody(R,W),this.indentLevel--}if(u)Y+=this.indent()+`default:
|
|
372
|
+
`,this.indentLevel++,Y+=this.generateSwitchCaseBody(u,W),this.indentLevel--;if(this.indentLevel--,Y+=this.indent()+"}",W==="value")return`(${f.some((_)=>this.containsAwait(_[2]))||u&&this.containsAwait(u)?"async ":""}() => { ${Y} })()`;return Y}generateWhen(){throw Error("when clause should be handled by switch")}_forInHeader($,U,W){let F=Array.isArray($)?$:[$],f=F.length===0,[u,Y]=f?["_i",null]:F,A=this.is(u,"array")||this.is(u,"object")?this.generateDestructuringPattern(u):u;if(W&&W!==null){let _=Array.isArray(U)&&U[0];if(_ instanceof String)_=S(_);if(_===".."||_==="..."){let H=_==="...",[O,M]=U.slice(1),G=this.generate(O,"value"),B=this.generate(M,"value"),q=this.generate(W,"value");return{header:`for (let ${A} = ${G}; ${A} ${H?"<":"<="} ${B}; ${A} += ${q})`,setup:null}}let w=this.generate(U,"value"),z=Y||"_i",X=this.generate(W,"value"),K=this.is(W,"-",1),D=K&&(W[1]==="1"||W[1]===1||S(W[1])==="1"),Z=!K&&(W==="1"||W===1||S(W)==="1"),J=D?`${z}--`:Z?`${z}++`:`${z} += ${X}`;return{header:K?`for (let ${z} = ${w}.length - 1; ${z} >= 0; ${J})`:`for (let ${z} = 0; ${z} < ${w}.length; ${J})`,setup:f?null:`const ${A} = ${w}[${z}];`}}if(Y){let _=this.generate(U,"value");return{header:`for (let ${Y} = 0; ${Y} < ${_}.length; ${Y}++)`,setup:`const ${A} = ${_}[${Y}];`}}return{header:`for (const ${A} of ${this.generate(U,"value")})`,setup:null}}_forOfHeader($,U,W){let F=Array.isArray($)?$:[$],[f,u]=F,Y=this.is(f,"array")||this.is(f,"object")?this.generateDestructuringPattern(f):f,A=this.generate(U,"value");return{header:`for (const ${Y} in ${A})`,own:W,vv:u,oc:A,kvp:Y}}_forAsHeader($,U,W){let F=Array.isArray($)?$:[$],[f]=F,u=this.is(f,"array")||this.is(f,"object")?this.generateDestructuringPattern(f):f;return{header:`for ${W?"await ":""}(const ${u} of ${this.generate(U,"value")})`}}generateComprehension($,U,W){let[F,f,u]=U;if(W==="statement")return this.generateComprehensionAsLoop(F,f,u);if(this.comprehensionTarget)return this.generateComprehensionWithTarget(F,f,u,this.comprehensionTarget);let A=`(${this.containsAwait(F)?"async ":""}() => {
|
|
373
|
+
`;this.indentLevel++,this.comprehensionDepth++,A+=this.indent()+`const result = [];
|
|
374
|
+
`;for(let w of f){let[z,X,K,D]=w;if(z==="for-in"){let{header:Z,setup:J}=this._forInHeader(X,K,D);if(A+=this.indent()+Z+` {
|
|
375
|
+
`,this.indentLevel++,J)A+=this.indent()+J+`
|
|
376
|
+
`}else if(z==="for-of"){let{header:Z,own:J,vv:Q,oc:H,kvp:O}=this._forOfHeader(X,K,D);if(A+=this.indent()+Z+` {
|
|
377
|
+
`,this.indentLevel++,J)A+=this.indent()+`if (!Object.hasOwn(${H}, ${O})) continue;
|
|
378
|
+
`;if(Q)A+=this.indent()+`const ${Q} = ${H}[${O}];
|
|
379
|
+
`}else if(z==="for-as"){let{header:Z}=this._forAsHeader(X,K,w[3]);A+=this.indent()+Z+` {
|
|
380
|
+
`,this.indentLevel++}}for(let w of u)A+=this.indent()+`if (${this.generate(w,"value")}) {
|
|
381
|
+
`,this.indentLevel++;let _=(w)=>{if(typeof w==="string"&&(w==="break"||w==="continue"))return!0;if(!Array.isArray(w))return!1;if(["break","continue","return","throw"].includes(w[0]))return!0;if(w[0]==="if")return w.slice(1).some(_);return w.some(_)},R=["for-in","for-of","for-as","while","loop"];if(this.is(F,"block"))for(let w=0;w<F.length-1;w++){let z=F[w+1];if(w!==F.length-2||_(z))A+=this.indent()+this.generate(z,"statement")+`;
|
|
382
|
+
`;else if(Array.isArray(z)&&R.includes(z[0]))A+=this.indent()+this.generate(z,"statement")+`;
|
|
383
|
+
`;else A+=this.indent()+`result.push(${this.generate(z,"value")});
|
|
384
|
+
`}else if(_(F))A+=this.indent()+this.generate(F,"statement")+`;
|
|
385
|
+
`;else if(Array.isArray(F)&&R.includes(F[0]))A+=this.indent()+this.generate(F,"statement")+`;
|
|
386
|
+
`;else A+=this.indent()+`result.push(${this.generate(F,"value")});
|
|
387
|
+
`;for(let w=0;w<u.length;w++)this.indentLevel--,A+=this.indent()+`}
|
|
388
|
+
`;for(let w=0;w<f.length;w++)this.indentLevel--,A+=this.indent()+`}
|
|
389
|
+
`;return A+=this.indent()+`return result;
|
|
390
|
+
`,this.indentLevel--,this.comprehensionDepth--,A+=this.indent()+"})()",A}generateObjectComprehension($,U,W){let[F,f,u,Y]=U,A=`(() => {
|
|
391
|
+
`;this.indentLevel++,A+=this.indent()+`const result = {};
|
|
392
|
+
`;for(let _ of u){let[R,w,z,X]=_;if(R==="for-of"){let[K,D]=w,Z=this.generate(z,"value");if(A+=this.indent()+`for (const ${K} in ${Z}) {
|
|
393
|
+
`,this.indentLevel++,X)A+=this.indent()+`if (!Object.hasOwn(${Z}, ${K})) continue;
|
|
394
|
+
`;if(D)A+=this.indent()+`const ${D} = ${Z}[${K}];
|
|
395
|
+
`}}for(let _ of Y)A+=this.indent()+`if (${this.generate(_,"value")}) {
|
|
396
|
+
`,this.indentLevel++;A+=this.indent()+`result[${this.generate(F,"value")}] = ${this.generate(f,"value")};
|
|
397
|
+
`;for(let _=0;_<Y.length;_++)this.indentLevel--,A+=this.indent()+`}
|
|
398
|
+
`;for(let _=0;_<u.length;_++)this.indentLevel--,A+=this.indent()+`}
|
|
399
|
+
`;return A+=this.indent()+`return result;
|
|
400
|
+
`,this.indentLevel--,A+=this.indent()+"})()",A}generateClass($,U,W){let[F,f,...u]=U,Y=F?`class ${F}`:"class";if(f)Y+=` extends ${this.generate(f,"value")}`;if(Y+=` {
|
|
401
|
+
`,u.length>0&&Array.isArray(u[0])){let A=u[0];if(A[0]==="block"){let _=A.slice(1),R=_.length>0&&Array.isArray(_[0])&&_[0][0]==="object";if(R&&_.length===1){let w=_[0].slice(1);this.indentLevel++;let z=[];for(let[X,K]of w){let D=this.is(X,".")&&X[1]==="this",Z=this.is(X,"computed"),J=this.extractMemberName(X);if(this.is(K,"=>")&&!D&&!Z&&J!=="constructor")z.push(J)}for(let[X,K]of w){let D=this.is(X,".")&&X[1]==="this",Z=this.is(X,"computed"),J=this.extractMemberName(X);if(this.is(K,"->")||this.is(K,"=>")){let[,Q,H]=K,O=this.containsAwait(H),M=this.containsYield(H),G=Q,B=[];if(J==="constructor"){let E=!!f,I=E?new Map:null;G=Q.map((N)=>{if(this.is(N,".")&&N[1]==="this"){let T=N[2],L=E?`_${T}`:T;if(B.push(`this.${T} = ${L}`),E)I.set(T,L);return L}if(this.is(N,"default")&&this.is(N[1],".")&&N[1][1]==="this"){let T=N[1][2],L=E?`_${T}`:T;if(B.push(`this.${T} = ${L}`),E)I.set(T,L);return["default",L,N[2]]}return N});for(let N of z)B.unshift(`this.${N} = this.${N}.bind(this)`);if(I?.size>0)this._atParamMap=I}let q=this.generateParamList(G),P=(D?"static ":"")+(O?"async ":"")+(M?"*":"");if(Y+=this.indent()+`${P}${J}(${q}) `,!Z)this.currentMethodName=J;Y+=this.generateMethodBody(H,B,J==="constructor",G),this._atParamMap=null,this.currentMethodName=null,Y+=`
|
|
402
|
+
`}else if(D)Y+=this.indent()+`static ${J} = ${this.generate(K,"value")};
|
|
403
|
+
`;else Y+=this.indent()+`${J} = ${this.generate(K,"value")};
|
|
404
|
+
`}this.indentLevel--}else if(R){let w=_[0].slice(1),z=_.slice(1);this.indentLevel++;for(let[X,K]of w){let D=this.is(X,".")&&X[1]==="this",Z=this.extractMemberName(X);if(this.is(K,"->")||this.is(K,"=>")){let[,J,Q]=K,H=this.generateParamList(J),O=(D?"static ":"")+(this.containsAwait(Q)?"async ":"")+(this.containsYield(Q)?"*":"");Y+=this.indent()+`${O}${Z}(${H}) `,this.currentMethodName=Z,Y+=this.generateMethodBody(Q,[],Z==="constructor",J),this.currentMethodName=null,Y+=`
|
|
405
|
+
`}else if(D)Y+=this.indent()+`static ${Z} = ${this.generate(K,"value")};
|
|
406
|
+
`;else Y+=this.indent()+`${Z} = ${this.generate(K,"value")};
|
|
407
|
+
`}for(let X of z)if(this.is(X,"class")){let[,K,D,...Z]=X;if(this.is(K,".")&&K[1]==="this")Y+=this.indent()+`static ${K[2]} = ${this.generate(["class",null,D,...Z],"value")};
|
|
408
408
|
`}else Y+=this.indent()+this.generate(X,"statement")+`;
|
|
409
|
-
`;this.indentLevel--}else{this.indentLevel++;for(let w of
|
|
409
|
+
`;this.indentLevel--}else{this.indentLevel++;for(let w of _)if(this.is(w,"=")&&Array.isArray(w[1])&&w[1][0]==="."&&w[1][1]==="this")Y+=this.indent()+`static ${w[1][2]} = ${this.generate(w[2],"value")};
|
|
410
410
|
`;else Y+=this.indent()+this.generate(w,"statement")+`;
|
|
411
|
-
`;this.indentLevel--}}}return Y+=this.indent()+"}",Y}generateSuper($,
|
|
412
|
-
export default ${
|
|
413
|
-
`;if(z.size>0)
|
|
414
|
-
`;let
|
|
415
|
-
`;return}if(!
|
|
416
|
-
`;return}}}let
|
|
417
|
-
`;else
|
|
418
|
-
`})};if(
|
|
419
|
-
`;else
|
|
420
|
-
`;for(let
|
|
421
|
-
`;H(
|
|
422
|
-
`;H(
|
|
423
|
-
`}return this.indentLevel--,
|
|
424
|
-
${this.withIndent(()=>
|
|
411
|
+
`;this.indentLevel--}}}return Y+=this.indent()+"}",Y}generateSuper($,U){if(U.length===0){if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}()`;return"super"}let W=U.map((F)=>this.unwrap(this.generate(F,"value"))).join(", ");if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}(${W})`;return`super(${W})`}generateImport($,U,W,F){if(U.length===1){let A=`import(${this.generate(U[0],"value")})`;if(j(F[0],"await")===!0)return`(await ${A})`;return A}let[f,u]=U,Y=this.addJsExtensionAndAssertions(u);if(typeof f==="string")return`import ${f} from ${Y}`;if(Array.isArray(f)){if(f[0]==="*"&&f.length===2)return`import * as ${f[1]} from ${Y}`;if(typeof f[0]==="string"&&Array.isArray(f[1])){let _=f[0],R=f[1];if(R[0]==="*"&&R.length===2)return`import ${_}, * as ${R[1]} from ${Y}`;let w=(Array.isArray(R)?R:[R]).map((z)=>Array.isArray(z)&&z.length===2?`${z[0]} as ${z[1]}`:z).join(", ");return`import ${_}, { ${w} } from ${Y}`}return`import { ${f.map((_)=>Array.isArray(_)&&_.length===2?`${_[0]} as ${_[1]}`:_).join(", ")} } from ${Y}`}return`import ${this.generate(f,"value")} from ${Y}`}generateExport($,U){let[W]=U;if(this.options.skipExports){if(Array.isArray(W)&&W.every((F)=>typeof F==="string"))return"";if(this.is(W,"="))return`const ${W[1]} = ${this.generate(W[2],"value")}`;return this.generate(W,"statement")}if(Array.isArray(W)&&W.every((F)=>typeof F==="string"))return`export { ${W.join(", ")} }`;if(this.is(W,"="))return`export const ${W[1]} = ${this.generate(W[2],"value")}`;return`export ${this.generate(W,"statement")}`}generateExportDefault($,U){let[W]=U;if(this.options.skipExports){if(this.is(W,"="))return`const ${W[1]} = ${this.generate(W[2],"value")}`;return this.generate(W,"statement")}if(this.is(W,"="))return`const ${W[1]} = ${this.generate(W[2],"value")};
|
|
412
|
+
export default ${W[1]}`;return`export default ${this.generate(W,"statement")}`}generateExportAll($,U){if(this.options.skipExports)return"";return`export * from ${this.addJsExtensionAndAssertions(U[0])}`}generateExportFrom($,U){if(this.options.skipExports)return"";let[W,F]=U,f=this.addJsExtensionAndAssertions(F);if(Array.isArray(W))return`export { ${W.map((Y)=>Array.isArray(Y)&&Y.length===2?`${Y[0]} as ${Y[1]}`:Y).join(", ")} } from ${f}`;return`export ${W} from ${f}`}generateDoIIFE($,U){return`(${this.generate(U[0],"statement")})()`}generateRegex($,U){return U.length===0?$:this.generate(U[0],"value")}generateTaggedTemplate($,U){let[W,F]=U,f=this.generate(W,"value"),u=this.generate(F,"value");if(u.startsWith("`"))return`${f}${u}`;if(u.startsWith('"')||u.startsWith("'"))return`${f}\`${u.slice(1,-1)}\``;return`${f}\`${u}\``}generateString($,U){let W="`";for(let F of U)if(F instanceof String)W+=this.extractStringContent(F);else if(typeof F==="string")if(F.startsWith('"')||F.startsWith("'")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive in str:",F);W+=F.slice(1,-1)}else W+=F;else if(Array.isArray(F))if(F.length===1&&typeof F[0]==="string"&&!Array.isArray(F[0])){let f=F[0];W+=/^[\d"']/.test(f)?"${"+this.generate(f,"value")+"}":"${"+f+"}"}else{let f=F.length===1&&Array.isArray(F[0])?F[0]:F;W+="${"+this.generate(f,"value")+"}"}return W+"`"}findPostfixConditional($){if(!Array.isArray($))return null;let U=$[0];if(U==="if"&&$.length===3)return{type:U,condition:$[1],value:$[2]};if(U==="+"||U==="-"||U==="*"||U==="/")for(let W=1;W<$.length;W++){let F=this.findPostfixConditional($[W]);if(F)return F.parentOp=U,F.operandIndex=W,F.otherOperands=$.slice(1).filter((f,u)=>u!==W-1),F}return null}rebuildWithoutConditional($){let U=Array.isArray($.value)&&$.value.length===1?$.value[0]:$.value;if($.parentOp)return[$.parentOp,...$.otherOperands,U];return U}generateDestructuringPattern($){return this.formatParam($)}generateParamList($){let U=$.findIndex((F)=>this.is(F,"expansion"));if(U!==-1){let F=$.slice(0,U),f=$.slice(U+1),u=F.map((Y)=>this.formatParam(Y)).join(", ");return this.expansionAfterParams=f,u?`${u}, ..._rest`:"..._rest"}let W=$.findIndex((F)=>this.is(F,"rest"));if(W!==-1&&W<$.length-1){let F=$.slice(0,W),f=$[W],u=$.slice(W+1),Y=F.map((A)=>this.formatParam(A));return this.restMiddleParam={restName:f[1],afterParams:u,beforeCount:F.length},Y.length>0?`${Y.join(", ")}, ...${f[1]}`:`...${f[1]}`}return this.expansionAfterParams=null,this.restMiddleParam=null,$.map((F)=>this.formatParam(F)).join(", ")}formatParam($){if(typeof $==="string")return $;if($ instanceof String)return $.valueOf();if(this.is($,"rest"))return`...${$[1]}`;if(this.is($,"default"))return`${$[1]} = ${this.generate($[2],"value")}`;if(this.is($,".")&&$[1]==="this")return $[2];if(this.is($,"array"))return`[${$.slice(1).map((W)=>{if(W===",")return"";if(W==="...")return"";if(this.is(W,"..."))return`...${W[1]}`;if(this.is(W,"=")&&typeof W[1]==="string")return`${W[1]} = ${this.generate(W[2],"value")}`;if(typeof W==="string")return W;return this.formatParam(W)}).join(", ")}]`;if(this.is($,"object"))return`{${$.slice(1).map((W)=>{if(this.is(W,"..."))return`...${W[1]}`;if(this.is(W,"default"))return`${W[1]} = ${this.generate(W[2],"value")}`;let[F,f]=W;if(F===f)return F;return`${F}: ${f}`}).join(", ")}}`;return JSON.stringify($)}generateBodyWithReturns($,U=[],W={}){let{sideEffectOnly:F=!1,autoAssignments:f=[],isConstructor:u=!1,hasExpansionParams:Y=!1}=W,A=this.sideEffectOnly;this.sideEffectOnly=F;let _=new Set,R=(Z)=>{if(typeof Z==="string")_.add(Z);else if(Array.isArray(Z)){if(Z[0]==="rest"||Z[0]==="..."){if(typeof Z[1]==="string")_.add(Z[1])}else if(Z[0]==="default"){if(typeof Z[1]==="string")_.add(Z[1])}else if(Z[0]==="array"||Z[0]==="object")this.collectVarsFromArray(Z,_)}};if(Array.isArray(U))U.forEach(R);let w=this.collectFunctionVariables($),z=new Set([...w].filter((Z)=>!this.programVars.has(Z)&&!this.reactiveVars?.has(Z)&&!_.has(Z)&&!this.scopeStack.some((J)=>J.has(Z)))),X=["return","throw","break","continue"],K=["for-in","for-of","for-as","while","loop"];if(this.scopeStack.push(new Set([...z,..._])),this.is($,"block")){let Z=this.unwrapBlock($);if(Y&&this.expansionAfterParams?.length>0)Z=[...this.expansionAfterParams.map((M,G)=>{return`const ${typeof M==="string"?M:JSON.stringify(M)} = _rest[_rest.length - ${this.expansionAfterParams.length-G}]`}),...Z],this.expansionAfterParams=null;if(this.restMiddleParam){let{restName:O,afterParams:M}=this.restMiddleParam,G=M.length,B=[];if(M.forEach((q,P)=>{let E=typeof q==="string"?q:this.is(q,"default")?q[1]:JSON.stringify(q);B.push(`const ${E} = ${O}[${O}.length - ${G-P}]`)}),G>0)B.push(`${O} = ${O}.slice(0, -${G})`);Z=[...B,...Z],this.restMiddleParam=null}this.indentLevel++;let J=`{
|
|
413
|
+
`;if(z.size>0)J+=this.indent()+`let ${Array.from(z).sort().join(", ")};
|
|
414
|
+
`;let Q=f.length>0&&Z.length>0&&Array.isArray(Z[0])&&Z[0][0]==="super",H=(O)=>{O.forEach((M,G)=>{let B=G===O.length-1,q=Array.isArray(M)?M[0]:null;if(!B&&q==="comprehension"){let[,N,T,L]=M;J+=this.indent()+this.generateComprehensionAsLoop(N,T,L)+`
|
|
415
|
+
`;return}if(!u&&!F&&B&&q==="if"){let[N,T,...L]=M.slice(1),h=(V)=>this.is(V,"block")&&V.length>2;if(h(T)||L.some(h)){J+=this.generateIfElseWithEarlyReturns(M);return}}if(!u&&!F&&B&&q==="="){let[N,T]=M.slice(1);if(typeof N==="string"&&Array.isArray(T)){let L=T[0];if(L==="comprehension"||L==="for-in"){this.comprehensionTarget=N,J+=this.generate(T,"value"),this.comprehensionTarget=null,J+=this.indent()+`return ${N};
|
|
416
|
+
`;return}}}let P=!u&&!F&&B&&!X.includes(q)&&!K.includes(q)&&!this.hasExplicitControlFlow(M),E=P?"value":"statement",I=this.generate(M,E);if(P)J+=this.indent()+"return "+I+`;
|
|
417
|
+
`;else J+=this.indent()+this.addSemicolon(M,I)+`
|
|
418
|
+
`})};if(Q){if(Z.length===1&&!u)J+=this.indent()+"return "+this.generate(Z[0],"value")+`;
|
|
419
|
+
`;else J+=this.indent()+this.generate(Z[0],"statement")+`;
|
|
420
|
+
`;for(let M of f)J+=this.indent()+M+`;
|
|
421
|
+
`;H(Z.slice(1))}else{for(let O of f)J+=this.indent()+O+`;
|
|
422
|
+
`;H(Z)}if(F&&Z.length>0){let O=Array.isArray(Z[Z.length-1])?Z[Z.length-1][0]:null;if(!X.includes(O))J+=this.indent()+`return;
|
|
423
|
+
`}return this.indentLevel--,J+=this.indent()+"}",this.scopeStack.pop(),this.sideEffectOnly=A,J}this.sideEffectOnly=A;let D;if(u&&f.length>0){let Z=Array.isArray($)&&$[0]==="super",J=this.generate($,"statement"),Q=f.map((H)=>`${H};`).join(" ");D=Z?`{ ${J}; ${Q} }`:`{ ${Q} ${J}; }`}else if(u||this.hasExplicitControlFlow($))D=`{ ${this.generate($,"statement")}; }`;else if(Array.isArray($)&&(X.includes($[0])||K.includes($[0])))D=`{ ${this.generate($,"statement")}; }`;else if(F)D=`{ ${this.generate($,"statement")}; return; }`;else D=`{ return ${this.generate($,"value")}; }`;return this.scopeStack.pop(),D}generateFunctionBody($,U=[],W=!1){return this.generateBodyWithReturns($,U,{sideEffectOnly:W,hasExpansionParams:this.expansionAfterParams?.length>0})}generateMethodBody($,U=[],W=!1,F=[]){return this.generateBodyWithReturns($,F,{autoAssignments:U,isConstructor:W})}generateBlockWithReturns($){if(!Array.isArray($)||$[0]!=="block")return this.generate($,"statement");let U=this.unwrapBlock($);return`{
|
|
424
|
+
${this.withIndent(()=>U.map((F,f)=>{let u=f===U.length-1,Y=Array.isArray(F)?F[0]:null,A=u&&!["return","throw","break","continue"].includes(Y),_=this.generate(F,A?"value":"statement");return A?this.indent()+"return "+_+";":this.indent()+_+";"})).join(`
|
|
425
425
|
`)}
|
|
426
|
-
${this.indent()}}`}generateLoopBody($){if(!Array.isArray($))return`{ ${this.generate($,"statement")}; }`;if($[0]==="block"||Array.isArray($[0])){let
|
|
427
|
-
${this.withIndent(()=>
|
|
426
|
+
${this.indent()}}`}generateLoopBody($){if(!Array.isArray($))return`{ ${this.generate($,"statement")}; }`;if($[0]==="block"||Array.isArray($[0])){let U=$[0]==="block"?$.slice(1):$;return`{
|
|
427
|
+
${this.withIndent(()=>U.map((F)=>{if(this.is(F,"comprehension")){let[,f,u,Y]=F;return this.indent()+this.generateComprehensionAsLoop(f,u,Y)}return this.indent()+this.addSemicolon(F,this.generate(F,"statement"))})).join(`
|
|
428
428
|
`)}
|
|
429
|
-
${this.indent()}}`}return`{ ${this.generate($,"statement")}; }`}generateLoopBodyWithGuard($,
|
|
430
|
-
`,Y=this.withIndent(()=>{this.indentLevel++;let
|
|
431
|
-
${
|
|
429
|
+
${this.indent()}}`}return`{ ${this.generate($,"statement")}; }`}generateLoopBodyWithGuard($,U){let W=this.unwrap(this.generate(U,"value"));if(!Array.isArray($))return`{ if (${W}) ${this.generate($,"statement")}; }`;if($[0]==="block"||Array.isArray($[0])){let F=$[0]==="block"?$.slice(1):$,f=this.withIndent(()=>this.indent()),u=`if (${W}) {
|
|
430
|
+
`,Y=this.withIndent(()=>{this.indentLevel++;let _=this.formatStatements(F);return this.indentLevel--,_}),A=this.withIndent(()=>this.indent()+"}");return`{
|
|
431
|
+
${f}${u}${Y.join(`
|
|
432
432
|
`)}
|
|
433
|
-
${
|
|
434
|
-
${this.indent()}}`}return`{ if (${this.generate(
|
|
435
|
-
`;let
|
|
436
|
-
`,this.indentLevel++,z)
|
|
437
|
-
`;if(
|
|
438
|
-
`,this.indentLevel++;if(
|
|
439
|
-
`,
|
|
440
|
-
`;return this.indentLevel--,
|
|
441
|
-
`,
|
|
442
|
-
`}generateComprehensionAsLoop($,W
|
|
443
|
-
`,this.indentLevel++,
|
|
444
|
-
`,this.indentLevel--,
|
|
445
|
-
`;else U+=this.indent()+this.generate($,"statement")+`;
|
|
446
|
-
`};if(W.length===1){let[Y,_,A,J]=W[0];if(Y==="for-in"){let{header:w,setup:z}=this._forInHeader(_,A,J);if(U+=w+` {
|
|
447
|
-
`,this.indentLevel++,z)U+=this.indent()+z+`
|
|
448
|
-
`;return f(),this.indentLevel--,U+=this.indent()+"}",U}if(Y==="for-as"){let{header:w}=this._forAsHeader(_,A,J);return U+=w+` {
|
|
449
|
-
`,this.indentLevel++,f(),this.indentLevel--,U+=this.indent()+"}",U}if(Y==="for-of"){let{header:w,own:z,vv:X,oc:Z,kvp:K}=this._forOfHeader(_,A,J);if(U+=w+` {
|
|
450
|
-
`,this.indentLevel++,z)U+=this.indent()+`if (!Object.hasOwn(${Z}, ${K})) continue;
|
|
451
|
-
`;if(X)U+=this.indent()+`const ${X} = ${Z}[${K}];
|
|
452
|
-
`;return f(),this.indentLevel--,U+=this.indent()+"}",U}}return this.generate(["comprehension",$,W,F],"value")}generateIfElseWithEarlyReturns($){let[W,F,U,...u]=$,f="",Y=this.generate(F,"value");f+=this.indent()+`if (${Y}) {
|
|
453
|
-
`,f+=this.withIndent(()=>this.generateBranchWithReturn(U)),f+=this.indent()+"}";for(let _ of u)if(f+=" else ",this.is(_,"if")){let[,A,J,...w]=_;f+=`if (${this.generate(A,"value")}) {
|
|
454
|
-
`,f+=this.withIndent(()=>this.generateBranchWithReturn(J)),f+=this.indent()+"}";for(let z of w)f+=` else {
|
|
455
|
-
`,f+=this.withIndent(()=>this.generateBranchWithReturn(z)),f+=this.indent()+"}"}else f+=`{
|
|
456
|
-
`,f+=this.withIndent(()=>this.generateBranchWithReturn(_)),f+=this.indent()+"}";return f}generateBranchWithReturn($){let W=this.unwrapBlock($),F="";for(let U=0;U<W.length;U++){let u=U===W.length-1,f=W[U],Y=Array.isArray(f)?f[0]:null;if(u&&!(Y==="return"||Y==="throw"||Y==="break"||Y==="continue"))F+=this.indent()+`return ${this.generate(f,"value")};
|
|
457
|
-
`;else F+=this.indent()+this.generate(f,"statement")+`;
|
|
458
|
-
`}return F}generateIfAsExpression($,W,F){if(this.is(W,"block")&&W.length>2||this.hasStatementInBranch(W)||F.some((_)=>this.is(_,"block")&&_.length>2||this.hasStatementInBranch(_)||this.hasNestedMultiStatement(_))){let _=this.containsAwait($)||this.containsAwait(W)||F.some((J)=>this.containsAwait(J)),A=`${_?"await ":""}(${_?"async ":""}() => { `;A+=`if (${this.generate($,"value")}) `,A+=this.generateBlockWithReturns(W);for(let J of F)if(A+=" else ",this.is(J,"if")){let[w,z,X,...Z]=J;A+=`if (${this.generate(z,"value")}) `,A+=this.generateBlockWithReturns(X);for(let K of Z)if(A+=" else ",this.is(K,"if")){let[R,Q,M,...H]=K;A+=`if (${this.generate(Q,"value")}) `,A+=this.generateBlockWithReturns(M),F.push(...H)}else A+=this.generateBlockWithReturns(K)}else A+=this.generateBlockWithReturns(J);return A+" })()"}let u=this.extractExpression(this.unwrapIfBranch(W)),f=this.buildTernaryChain(F),Y=this.generate($,"value");if(this.is($,"yield")||this.is($,"await"))Y=`(${Y})`;return`(${Y} ? ${u} : ${f})`}generateIfAsStatement($,W,F){let U=`if (${this.unwrap(this.generate($,"value"))}) `;U+=this.generate(this.unwrapIfBranch(W),"statement");for(let u of F)U+=" else "+this.generate(this.unwrapIfBranch(u),"statement");return U}generateSwitchCaseBody($,W){let F="";if(this.hasExplicitControlFlow($))for(let u of this.unwrapBlock($))F+=this.indent()+this.generate(u,"statement")+`;
|
|
459
|
-
`;else if(W==="value")if(this.is($,"block")&&$.length>2){let u=$.slice(1);for(let f=0;f<u.length;f++)if(f===u.length-1)F+=this.indent()+`return ${this.generate(u[f],"value")};
|
|
460
|
-
`;else F+=this.indent()+this.generate(u[f],"statement")+`;
|
|
461
|
-
`}else F+=this.indent()+`return ${this.extractExpression($)};
|
|
462
|
-
`;else{if(this.is($,"block")&&$.length>1)for(let u of $.slice(1))F+=this.indent()+this.generate(u,"statement")+`;
|
|
433
|
+
${A}
|
|
434
|
+
${this.indent()}}`}return`{ if (${this.generate(U,"value")}) ${this.generate($,"statement")}; }`}generateComprehensionWithTarget($,U,W,F){let f="";f+=this.indent()+`${F} = [];
|
|
435
|
+
`;let u=this.is($,"block")&&$.length===2?$[1]:$;if(U.length===1){let[Y,A,_,R]=U[0];if(Y==="for-in"){let{header:w,setup:z}=this._forInHeader(A,_,R);if(f+=this.indent()+w+` {
|
|
436
|
+
`,this.indentLevel++,z)f+=this.indent()+z+`
|
|
437
|
+
`;if(W&&W.length>0)f+=this.indent()+`if (${W.map((X)=>this.generate(X,"value")).join(" && ")}) {
|
|
438
|
+
`,this.indentLevel++;if(f+=this.indent()+`${F}.push(${this.unwrap(this.generate(u,"value"))});
|
|
439
|
+
`,W&&W.length>0)this.indentLevel--,f+=this.indent()+`}
|
|
440
|
+
`;return this.indentLevel--,f+=this.indent()+`}
|
|
441
|
+
`,f}}return this.indent()+`${F} = (() => { /* complex comprehension */ })();
|
|
442
|
+
`}generateComprehensionAsLoop($,U,W){let F="",f=W?.length?W.map((Y)=>this.generate(Y,"value")).join(" && "):null,u=()=>{if(f)F+=this.indent()+`if (${f}) {
|
|
443
|
+
`,this.indentLevel++,F+=this.indent()+this.generate($,"statement")+`;
|
|
444
|
+
`,this.indentLevel--,F+=this.indent()+`}
|
|
463
445
|
`;else F+=this.indent()+this.generate($,"statement")+`;
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
`;
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
446
|
+
`};if(U.length===1){let[Y,A,_,R]=U[0];if(Y==="for-in"){let{header:w,setup:z}=this._forInHeader(A,_,R);if(F+=w+` {
|
|
447
|
+
`,this.indentLevel++,z)F+=this.indent()+z+`
|
|
448
|
+
`;return u(),this.indentLevel--,F+=this.indent()+"}",F}if(Y==="for-as"){let{header:w}=this._forAsHeader(A,_,R);return F+=w+` {
|
|
449
|
+
`,this.indentLevel++,u(),this.indentLevel--,F+=this.indent()+"}",F}if(Y==="for-of"){let{header:w,own:z,vv:X,oc:K,kvp:D}=this._forOfHeader(A,_,R);if(F+=w+` {
|
|
450
|
+
`,this.indentLevel++,z)F+=this.indent()+`if (!Object.hasOwn(${K}, ${D})) continue;
|
|
451
|
+
`;if(X)F+=this.indent()+`const ${X} = ${K}[${D}];
|
|
452
|
+
`;return u(),this.indentLevel--,F+=this.indent()+"}",F}}return this.generate(["comprehension",$,U,W],"value")}generateIfElseWithEarlyReturns($){let[U,W,F,...f]=$,u="",Y=this.generate(W,"value");u+=this.indent()+`if (${Y}) {
|
|
453
|
+
`,u+=this.withIndent(()=>this.generateBranchWithReturn(F)),u+=this.indent()+"}";for(let A of f)if(u+=" else ",this.is(A,"if")){let[,_,R,...w]=A;u+=`if (${this.generate(_,"value")}) {
|
|
454
|
+
`,u+=this.withIndent(()=>this.generateBranchWithReturn(R)),u+=this.indent()+"}";for(let z of w)u+=` else {
|
|
455
|
+
`,u+=this.withIndent(()=>this.generateBranchWithReturn(z)),u+=this.indent()+"}"}else u+=`{
|
|
456
|
+
`,u+=this.withIndent(()=>this.generateBranchWithReturn(A)),u+=this.indent()+"}";return u}generateBranchWithReturn($){let U=this.unwrapBlock($),W="";for(let F=0;F<U.length;F++){let f=F===U.length-1,u=U[F],Y=Array.isArray(u)?u[0]:null;if(f&&!(Y==="return"||Y==="throw"||Y==="break"||Y==="continue"))W+=this.indent()+`return ${this.generate(u,"value")};
|
|
457
|
+
`;else W+=this.indent()+this.generate(u,"statement")+`;
|
|
458
|
+
`}return W}generateIfAsExpression($,U,W){if(this.is(U,"block")&&U.length>2||this.hasStatementInBranch(U)||W.some((A)=>this.is(A,"block")&&A.length>2||this.hasStatementInBranch(A)||this.hasNestedMultiStatement(A))){let A=this.containsAwait($)||this.containsAwait(U)||W.some((R)=>this.containsAwait(R)),_=`${A?"await ":""}(${A?"async ":""}() => { `;_+=`if (${this.generate($,"value")}) `,_+=this.generateBlockWithReturns(U);for(let R of W)if(_+=" else ",this.is(R,"if")){let[w,z,X,...K]=R;_+=`if (${this.generate(z,"value")}) `,_+=this.generateBlockWithReturns(X);for(let D of K)if(_+=" else ",this.is(D,"if")){let[Z,J,Q,...H]=D;_+=`if (${this.generate(J,"value")}) `,_+=this.generateBlockWithReturns(Q),W.push(...H)}else _+=this.generateBlockWithReturns(D)}else _+=this.generateBlockWithReturns(R);return _+" })()"}let f=this.extractExpression(this.unwrapIfBranch(U)),u=this.buildTernaryChain(W),Y=this.generate($,"value");if(this.is($,"yield")||this.is($,"await"))Y=`(${Y})`;return`(${Y} ? ${f} : ${u})`}generateIfAsStatement($,U,W){let F=`if (${this.unwrap(this.generate($,"value"))}) `;F+=this.generate(this.unwrapIfBranch(U),"statement");for(let f of W)F+=" else "+this.generate(this.unwrapIfBranch(f),"statement");return F}generateSwitchCaseBody($,U){let W="";if(this.hasExplicitControlFlow($))for(let f of this.unwrapBlock($))W+=this.indent()+this.generate(f,"statement")+`;
|
|
459
|
+
`;else if(U==="value")if(this.is($,"block")&&$.length>2){let f=$.slice(1);for(let u=0;u<f.length;u++)if(u===f.length-1)W+=this.indent()+`return ${this.generate(f[u],"value")};
|
|
460
|
+
`;else W+=this.indent()+this.generate(f[u],"statement")+`;
|
|
461
|
+
`}else W+=this.indent()+`return ${this.extractExpression($)};
|
|
462
|
+
`;else{if(this.is($,"block")&&$.length>1)for(let f of $.slice(1))W+=this.indent()+this.generate(f,"statement")+`;
|
|
463
|
+
`;else W+=this.indent()+this.generate($,"statement")+`;
|
|
464
|
+
`;W+=this.indent()+`break;
|
|
465
|
+
`}return W}generateSwitchAsIfChain($,U,W){let F="";for(let f=0;f<$.length;f++){let[,u,Y]=$[f],A=Array.isArray(u)?u[0]:u;if(F+=(f===0?"":" else ")+`if (${this.generate(A,"value")}) {
|
|
466
|
+
`,this.indentLevel++,W==="value")F+=this.indent()+`return ${this.extractExpression(Y)};
|
|
467
|
+
`;else for(let _ of this.unwrapBlock(Y))F+=this.indent()+this.generate(_,"statement")+`;
|
|
468
|
+
`;this.indentLevel--,F+=this.indent()+"}"}if(U){if(F+=` else {
|
|
469
|
+
`,this.indentLevel++,W==="value")F+=this.indent()+`return ${this.extractExpression(U)};
|
|
470
|
+
`;else for(let f of this.unwrapBlock(U))F+=this.indent()+this.generate(f,"statement")+`;
|
|
471
|
+
`;this.indentLevel--,F+=this.indent()+"}"}return W==="value"?`(() => { ${F} })()`:F}extractExpression($){let U=this.unwrapBlock($);return U.length>0?this.generate(U[U.length-1],"value"):"undefined"}unwrapBlock($){if(!Array.isArray($))return[$];if($[0]==="block")return $.slice(1);if(Array.isArray($[0])){if(typeof $[0][0]==="string")return[$];return $}return[$]}indent(){return this.indentString.repeat(this.indentLevel)}needsSemicolon($,U){if(!U||U.endsWith(";"))return!1;if(!U.endsWith("}"))return!0;let W=Array.isArray($)?$[0]:null;return!["def","class","if","for-in","for-of","for-as","while","loop","switch","try"].includes(W)}addSemicolon($,U){return U+(this.needsSemicolon($,U)?";":"")}formatStatements($,U="statement"){return $.map((W)=>this.indent()+this.addSemicolon(W,this.generate(W,U)))}wrapForCondition($){if(/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test($))return $;if($.startsWith("(")&&$.endsWith(")"))return $;return`(${$})`}hasExplicitControlFlow($){if(!Array.isArray($))return!1;let U=$[0];if(U==="return"||U==="throw"||U==="break"||U==="continue")return!0;if(U==="block")return $.slice(1).some((W)=>Array.isArray(W)&&["return","throw","break","continue"].includes(W[0]));if(U==="switch"){let[,,W]=$;return W?.some((F)=>{return this.unwrapBlock(F[2]).some((u)=>Array.isArray(u)&&["return","throw","break","continue"].includes(u[0]))})}if(U==="if"){let[,,W,F]=$;return this.branchHasControlFlow(W)&&F&&this.branchHasControlFlow(F)}return!1}branchHasControlFlow($){if(!Array.isArray($))return!1;let U=this.unwrapBlock($);if(U.length===0)return!1;let W=U[U.length-1];return Array.isArray(W)&&["return","throw","break","continue"].includes(W[0])}withIndent($){this.indentLevel++;let U=$();return this.indentLevel--,U}is($,U,W){if(!Array.isArray($))return null;if((S($[0])??$[0])!==U)return null;let F=$.slice(1);if(W!=null&&F.length!==W)return null;return F}unwrap($){if(typeof $!=="string")return $;while($.startsWith("(")&&$.endsWith(")")){let U=0,W=0,F=!0,f=!1;for(let u=0;u<$.length;u++){if($[u]==="(")U++;if($[u]===")")U--;if($[u]==="["||$[u]==="{")W++;if($[u]==="]"||$[u]==="}")W--;if($[u]===","&&U===1&&W===0)f=!0;if(U===0&&u<$.length-1){F=!1;break}}if(f)F=!1;if(F)$=$.slice(1,-1);else break}return $}unwrapLogical($){if(typeof $!=="string")return $;while($.startsWith("(")&&$.endsWith(")")){let U=0,W=1/0;for(let F=1;F<$.length-1;F++){if($[F]==="(")U++;if($[F]===")")U--;W=Math.min(W,U)}if(W>=0)$=$.slice(1,-1);else break}return $}unwrapIfBranch($){if(Array.isArray($)&&$.length===1&&(!Array.isArray($[0])||$[0][0]!=="block"))return $[0];return $}flattenBinaryChain($){if(!Array.isArray($)||$.length<3)return $;let[U,...W]=$;if(U!=="&&"&&U!=="||")return $;let F=[],f=(u)=>{if(Array.isArray(u)&&u[0]===U)for(let Y=1;Y<u.length;Y++)f(u[Y]);else F.push(u)};for(let u of W)f(u);return[U,...F]}hasStatementInBranch($){if(!Array.isArray($))return!1;let U=$[0];if(U==="return"||U==="throw"||U==="break"||U==="continue")return!0;if(U==="block")return $.slice(1).some((W)=>this.hasStatementInBranch(W));return!1}hasNestedMultiStatement($){if(!Array.isArray($))return!1;if($[0]==="if"){let[U,W,F,...f]=$;return this.is(F,"block")&&F.length>2||f.some((u)=>this.hasNestedMultiStatement(u))}return!1}buildTernaryChain($){if($.length===0)return"undefined";if($.length===1)return this.extractExpression(this.unwrapIfBranch($[0]));let U=$[0];if(this.is(U,"if")){let[W,F,f,...u]=U,Y=this.extractExpression(this.unwrapIfBranch(f)),A=this.buildTernaryChain([...u,...$.slice(1)]);return`(${this.generate(F,"value")} ? ${Y} : ${A})`}return this.extractExpression(this.unwrapIfBranch(U))}collectVarsFromArray($,U){$.slice(1).forEach((W)=>{if(W===","||W==="...")return;if(typeof W==="string"){U.add(W);return}if(Array.isArray(W)){if(W[0]==="..."&&typeof W[1]==="string")U.add(W[1]);else if(W[0]==="array")this.collectVarsFromArray(W,U);else if(W[0]==="object")this.collectVarsFromObject(W,U)}})}collectVarsFromObject($,U){$.slice(1).forEach((W)=>{if(!Array.isArray(W))return;if(W[0]==="..."&&typeof W[1]==="string"){U.add(W[1]);return}if(W.length>=2){let[F,f,u]=W;if(u==="="){if(typeof F==="string")U.add(F)}else if(typeof f==="string")U.add(f);else if(Array.isArray(f)){if(f[0]==="array")this.collectVarsFromArray(f,U);else if(f[0]==="object")this.collectVarsFromObject(f,U)}}})}extractStringContent($){let U=S($).slice(1,-1),W=j($,"indent");if(W)U=U.replace(new RegExp(`\\n${W}`,"g"),`
|
|
472
|
+
`);if(j($,"initialChunk")&&U.startsWith(`
|
|
473
|
+
`))U=U.slice(1);if(j($,"finalChunk")&&U.endsWith(`
|
|
474
|
+
`))U=U.slice(0,-1);return U}processHeregex($){let U="",W=!1,F=0,f=()=>{let u=0,Y=F-1;while(Y>=0&&$[Y]==="\\")u++,Y--;return u%2===1};while(F<$.length){let u=$[F];if(u==="["&&!f()){W=!0,U+=u,F++;continue}if(u==="]"&&W&&!f()){W=!1,U+=u,F++;continue}if(W){U+=u,F++;continue}if(/\s/.test(u)){F++;continue}if(u==="#"){if(f()){U+=u,F++;continue}let Y=F-1;while(Y>=0&&$[Y]==="\\")Y--;if(Y<F-1){U+=u,F++;continue}while(F<$.length&&$[F]!==`
|
|
475
|
+
`)F++;continue}U+=u,F++}return U}addJsExtensionAndAssertions($){if($ instanceof String)$=S($);if(typeof $!=="string")return $;let W=$.startsWith('"')||$.startsWith("'")?$.slice(1,-1):$,F=W.startsWith("./")||W.startsWith("../"),f=W,u="";if(F){let Y=W.lastIndexOf("/"),A=Y>=0?W.substring(Y+1):W;if(A.includes(".")){if(A.endsWith(".json"))u=" with { type: 'json' }"}else f=W+".js"}return`'${f}'`+u}containsIt($){if(!$)return!1;if($==="it"||$ instanceof String&&S($)==="it")return!0;if(typeof $!=="object")return!1;if(this.is($,"def")||this.is($,"->")||this.is($,"=>"))return!1;if(Array.isArray($))return $.some((U)=>this.containsIt(U));return!1}containsAwait($){if(!$)return!1;if($ instanceof String&&j($,"await")===!0)return!0;if(typeof $!=="object")return!1;if(this.is($,"await"))return!0;if(this.is($,"for-as")&&$[3]===!0)return!0;if(this.is($,"def")||this.is($,"->")||this.is($,"=>")||this.is($,"class"))return!1;if(Array.isArray($))return $.some((U)=>this.containsAwait(U));return!1}containsYield($){if(!$)return!1;if(typeof $!=="object")return!1;if(this.is($,"yield")||this.is($,"yield-from"))return!0;if(this.is($,"def")||this.is($,"->")||this.is($,"=>")||this.is($,"class"))return!1;if(Array.isArray($))return $.some((U)=>this.containsYield(U));return!1}extractMemberName($){if(this.is($,".")&&$[1]==="this")return $[2];if(this.is($,"computed"))return`[${this.generate($[1],"value")}]`;return $}getReactiveRuntime(){return`// ============================================================================
|
|
476
476
|
// Rip Reactive Runtime
|
|
477
477
|
// A minimal, fine-grained reactivity system
|
|
478
478
|
//
|
|
@@ -701,13 +701,13 @@ if (typeof globalThis !== 'undefined') {
|
|
|
701
701
|
}
|
|
702
702
|
|
|
703
703
|
// === End Reactive Runtime ===
|
|
704
|
-
`}}class
|
|
705
|
-
`),
|
|
704
|
+
`}}class R1{constructor($={}){this.options={showTokens:!1,showSExpr:!1,...$}}compile($,U){if(U)this.options={...this.options,...U};let W=null,F=$.split(`
|
|
705
|
+
`),f=F.findIndex((Z)=>Z==="__DATA__");if(f!==-1){let Z=F.slice(f+1);W=Z.length>0?Z.join(`
|
|
706
706
|
`)+`
|
|
707
|
-
`:"",$=
|
|
708
|
-
`)}let Y=new
|
|
709
|
-
//# sourceMappingURL=data:application/json;base64,${
|
|
710
|
-
//# sourceMappingURL=${this.options.filename}.js.map`;if(A
|
|
707
|
+
`:"",$=F.slice(0,f).join(`
|
|
708
|
+
`)}let Y=new d().tokenize($);if(this.options.showTokens)Y.forEach((Z)=>console.log(`${Z[0].padEnd(12)} ${JSON.stringify(Z[1])}`)),console.log();let A=null,_=null;if(this.options.types==="emit"||this.options.types==="check"||this.options.types===!0)_=[...Y];Y=Y.filter((Z)=>Z[0]!=="TYPE_DECL");while(Y.length>0&&Y[0][0]==="TERMINATOR")Y.shift();if(Y.every((Z)=>Z[0]==="TERMINATOR")){if(_)A=y1(_,["program"]);return{tokens:Y,sexpr:["program"],code:"",dts:A,data:W,reactiveVars:{}}}s.lexer={tokens:Y,pos:0,setInput:function(){},lex:function(){if(this.pos>=this.tokens.length)return 1;let Z=this.tokens[this.pos++],J=Z[1];if(Z.data)J=new String(J),Object.assign(J,Z.data);return this.text=J,this.loc=Z.loc,Z[0]}};let R;try{R=s.parse($)}catch(Z){if(/\?\s*\([^)]*\?[^)]*:[^)]*\)\s*:/.test($)||/\?\s+\w+\s+\?\s+/.test($))throw Error("Nested ternary operators are not supported. Use if/else statements instead.");throw Z}if(this.options.showSExpr)console.log(k(R,0,!0)),console.log();let w=null;if(this.options.sourceMap){let Z=(this.options.filename||"output")+".js",J=this.options.filename||"input.rip";w=new l1(Z,J,$)}let z=new b({dataSection:W,skipPreamble:this.options.skipPreamble,skipRuntimes:this.options.skipRuntimes,skipExports:this.options.skipExports,reactiveVars:this.options.reactiveVars,sourceMap:w}),X=z.compile(R),K=w?w.toJSON():null,D=w?w.toReverseMap():null;if(K&&this.options.sourceMap==="inline"){let Z=typeof Buffer<"u"?Buffer.from(K).toString("base64"):btoa(K);X+=`
|
|
709
|
+
//# sourceMappingURL=data:application/json;base64,${Z}`}else if(K&&this.options.filename)X+=`
|
|
710
|
+
//# sourceMappingURL=${this.options.filename}.js.map`;if(_)A=y1(_,R);return{tokens:Y,sexpr:R,code:X,dts:A,map:K,reverseMap:D,data:W,reactiveVars:z.reactiveVars}}compileToJS($){return this.compile($).code}compileToSExpr($){return this.compile($).sexpr}}K2(b,d);b.prototype.generateEnum=$2;function I1($,U={}){return new R1(U).compile($)}function r($,U={}){return new R1(U).compileToJS($)}function w1(){return`globalThis.abort ??= (msg) => { if (msg) console.error(msg); process.exit(1); };
|
|
711
711
|
globalThis.assert ??= (v, msg) => { if (!v) throw new Error(msg || "Assertion failed"); };
|
|
712
712
|
globalThis.exit ??= (code) => process.exit(code || 0);
|
|
713
713
|
globalThis.kind ??= (v) => v != null ? (v.constructor?.name || Object.prototype.toString.call(v).slice(8, -1)).toLowerCase() : String(v);
|
|
@@ -720,12 +720,12 @@ globalThis.sleep ??= (ms) => new Promise(r => setTimeout(r, ms));
|
|
|
720
720
|
globalThis.todo ??= (msg) => { throw new Error(msg || "Not implemented"); };
|
|
721
721
|
globalThis.warn ??= console.warn;
|
|
722
722
|
globalThis.zip ??= (...a) => a[0].map((_, i) => a.map(b => b[i]));
|
|
723
|
-
`}function
|
|
724
|
-
`),
|
|
725
|
-
${
|
|
723
|
+
`}function J1(){return new b({}).getReactiveRuntime()}function Q1(){return new b({}).getComponentRuntime()}var D2="3.13.32",M2="2026-02-26@17:50:29GMT";if(typeof globalThis<"u"){if(!globalThis.__rip)Function(J1())();if(!globalThis.__ripComponent)Function(Q1())()}var g3=($)=>{let U=$.match(/^[ \t]*(?=\S)/gm),W=Math.min(...(U||[]).map((F)=>F.length));return $.replace(RegExp(`^[ ]{${W}}`,"gm"),"").trim()};async function H2(){let $=[],U=document.querySelector('script[src$="rip.min.js"], script[src$="rip.js"]'),W=U?.getAttribute("data-src");if(W){for(let f of W.trim().split(/\s+/))if(f)$.push({url:f})}for(let f of document.querySelectorAll('script[type="text/rip"]'))if(f.src)$.push({url:f.src});else{let u=g3(f.textContent);if(u)$.push({code:u})}if($.length>0){await Promise.all($.map(async(Y)=>{if(!Y.url)return;try{let A=await fetch(Y.url);if(!A.ok){console.error(`Rip: failed to fetch ${Y.url} (${A.status})`);return}Y.code=await A.text()}catch(A){console.error(`Rip: failed to fetch ${Y.url}:`,A.message)}}));let f={skipRuntimes:!0,skipExports:!0},u=[];for(let Y of $){if(!Y.code)continue;try{u.push(r(Y.code,f))}catch(A){console.error("Rip compile error:",A.message)}}if(u.length>0){let Y=u.join(`
|
|
724
|
+
`),A=U?.getAttribute("data-mount");if(A){let _=U.getAttribute("data-target")||"body";Y+=`
|
|
725
|
+
${A}.mount(${JSON.stringify(_)});`}try{await(0,eval)(`(async()=>{
|
|
726
726
|
${Y}
|
|
727
|
-
})()`)}catch(
|
|
728
|
-
`,
|
|
729
|
-
${
|
|
730
|
-
`,z=
|
|
731
|
-
`:"",f=new Blob([w+z],{type:"application/javascript"}),Q=URL.createObjectURL(f),X=await import(Q),u){J=x1(X);for(let M in J){let H=J[M];u.classes[M]=H}}if(F&&U)F.setCompiled(U,X);return X};E2=function($){let W,F,U;return U=1000,F=30000,W=function(){let u;return u=new EventSource($),u.addEventListener("connected",function(){return U=1000,console.log("[Rip] Hot reload connected")}),u.addEventListener("reload",function(){return console.log("[Rip] Reloading..."),location.reload()}),u.addEventListener("css",function(){for(let f of document.querySelectorAll('link[rel="stylesheet"]'))$=new URL(f.href),$.searchParams.set("_t",Date.now()),f.href=$.toString()}),u.onerror=function(){return u.close(),setTimeout(W,U),U=Math.min(U*2,F)}},W()};var c2=function($={}){return p1($)},g2=function($){return $?.[U1]?$[U1]:$},v3=function($){return $?.[B1]===!0},l3=function($,W={}){let F,U,u,f,Y;if(F=V(W.initial||null),u=V(!1),U=V(null),f=async function(){let _;return u.value=!0,U.value=null,(async()=>{try{return _=await $(),F.value=_}catch(A){return U.value=A}finally{u.value=!1}})()},Y={data:void 0,loading:void 0,error:void 0,refetch:f},Object.defineProperty(Y,"data",{get:function(){return F.value}}),Object.defineProperty(Y,"loading",{get:function(){return u.value}}),Object.defineProperty(Y,"error",{get:function(){return U.value}}),!W.lazy)f();return Y},v2=function($,W){let F,U;return F=X1(W),U=V(!!F()),e(function(){let u;if(F())return u=setTimeout(function(){return U.value=!0},$),function(){return clearTimeout(u)};else return U.value=!1}),typeof W!=="function"?Q1(U,W):U},x3=function($,W){let F,U;return F=X1(W),U=V(F()),e(function(){let u,f;return f=F(),u=setTimeout(function(){return U.value=f},$),function(){return clearTimeout(u)}}),typeof W!=="function"?Q1(U,W):U},k3=function($,W){let F,U,u;return F=X1(W),u=V(F()),U=0,e(function(){let f,Y,_,A;if(A=F(),f=Date.now(),Y=$-(f-U),Y<=0)return u.value=A,U=f;else return _=setTimeout(function(){return u.value=F(),U=Date.now()},Y),function(){return clearTimeout(_)}}),typeof W!=="function"?Q1(u,W):u},m3=function($,W){let F,U;return F=X1(W),U=V(!!F()),e(function(){let u;if(F())return U.value=!0;else return u=setTimeout(function(){return U.value=!1},$),function(){return clearTimeout(u)}}),typeof W!=="function"?Q1(U,W):U},l2=function(){let $,W,F,U;return W=new Map,U=[],$=new Map,F=function(u,f){for(let Y of U)Y(u,f)},{read:function(u){return W.get(u)},write:function(u,f){let Y;return Y=!W.has(u),W.set(u,f),$.delete(u),F(Y?"create":"change",u)},del:function(u){return W.delete(u),$.delete(u),F("delete",u)},exists:function(u){return W.has(u)},size:function(){return W.size},list:function(u=""){let f,Y,_;_=[],f=u?u+"/":"";for(let[A]of W)if(A.startsWith(f)){if(Y=A.slice(f.length),Y.includes("/"))continue;_.push(A)}return _},listAll:function(u=""){let f,Y;Y=[],f=u?u+"/":"";for(let[_]of W)if(_.startsWith(f))Y.push(_);return Y},load:function(u){for(let f in u){let Y=u[f];W.set(f,Y)}},watch:function(u){return U.push(u),function(){return U.splice(U.indexOf(u),1)}},getCompiled:function(u){return $.get(u)},setCompiled:function(u,f){return $.set(u,f)}}},x2=function($,W={}){let F,U,u,f,Y,_,A,J,w,z,X,Z,K,R,Q,M,H,O,q,E,I;if(H=W.root||"components",w=W.base||"",z=W.hash||!1,K=W.onError||null,q=function(D){return w&&D.startsWith(w)?D.slice(w.length)||"/":D},J=function(D){return w?w+D:D},Q=function(){let D;if(z){if(D=location.hash.slice(1),!D)return"/";return D[0]==="/"?D:"/"+D}else return location.pathname+location.search+location.hash},I=function(D){return z?D==="/"?location.pathname:"#"+D.slice(1):J(D)},Y=V(q(z?Q():location.pathname)),f=V({}),A=V(null),U=V([]),_=V({}),F=V(""),u=v2(100,V(!1)),E=I1($,H),X=new Set,$.watch(function(D,G){if(!G.startsWith(H+"/"))return;return E=I1($,H)}),M=function(D){let G,P,B,N,T;if(N=D.split("?")[0].split("#")[0],P=q(N),P=P[0]==="/"?P:"/"+P,B=D.split("?")[1]?.split("#")[0]||"",G=D.includes("#")?D.split("#")[1]:"",T=h2(P,E.routes),T){G2(function(){return Y.value=P,f.value=T.params,A.value=T.route,U.value=L2(T.route.file,H,E.layouts),_.value=Object.fromEntries(new URLSearchParams(B)),F.value=G});for(let S of X)S(O.current);return!0}if(K)K({status:404,path:P});return!1},R=function(){return M(Q())},typeof window<"u")window.addEventListener("popstate",R);if(Z=function(D){let G,P,B;if(D.button!==0||D.metaKey||D.ctrlKey||D.shiftKey||D.altKey)return;P=D.target;while(P&&P.tagName!=="A")P=P.parentElement;if(!P?.href)return;if(B=new URL(P.href,location.origin),B.origin!==location.origin)return;if(P.target==="_blank"||P.hasAttribute("data-external"))return;return D.preventDefault(),G=z&&B.hash?B.hash.slice(1)||"/":B.pathname+B.search+B.hash,O.push(G)},typeof document<"u")document.addEventListener("click",Z);return O={push:function(D){return M(D)?history.pushState(null,"",I(Y.read())):void 0},replace:function(D){return M(D)?history.replaceState(null,"",I(Y.read())):void 0},back:function(){return history.back()},forward:function(){return history.forward()},current:void 0,path:void 0,params:void 0,route:void 0,layouts:void 0,query:void 0,hash:void 0,navigating:void 0,onNavigate:function(D){return X.add(D),function(){return X.delete(D)}},rebuild:function(){return E=I1($,H)},routes:void 0,init:function(){return M(Q()),O},destroy:function(){if(typeof window<"u")window.removeEventListener("popstate",R);if(typeof document<"u")document.removeEventListener("click",Z);return X.clear()}},Object.defineProperty(O,"current",{get:function(){return{path:Y.value,params:f.value,route:A.value,layouts:U.value,query:_.value,hash:F.value}}}),Object.defineProperty(O,"path",{get:function(){return Y.value}}),Object.defineProperty(O,"params",{get:function(){return f.value}}),Object.defineProperty(O,"route",{get:function(){return A.value}}),Object.defineProperty(O,"layouts",{get:function(){return U.value}}),Object.defineProperty(O,"query",{get:function(){return _.value}}),Object.defineProperty(O,"hash",{get:function(){return F.value}}),Object.defineProperty(O,"navigating",{get:function(){return u.value},set:function(D){return u.value=D}}),Object.defineProperty(O,"routes",{get:function(){return E.routes}}),O},k2=function($={}){let W,F,U,u,f,Y,_,A,J,w,z,X,Z,K,R,Q,M,H,O,q,E,I;if({router:q,app:W,components:f,resolver:O,compile:U,target:E,onError:M}=$,Y=typeof E==="string"?document.querySelector(E):E||document.getElementById("app"),!Y)Y=document.createElement("div"),Y.id="app",document.body.appendChild(Y);return Y.style.opacity="0",_=null,w=null,J=null,A=[],Z=[],R=Y,X=0,z=null,u=new Map,K=$.cacheSize||10,F=function(){let D,G;if(_&&w){if(_.beforeUnmount)_.beforeUnmount();if(u.set(w,_),u.size>K){if(G=u.keys().next().value,D=u.get(G),D.unmounted)D.unmounted();u.delete(G)}return _=null,w=null}},I=function(){F();for(let D=Z.length-1;D>=0;D--){let G=Z[D];if(G.beforeUnmount)G.beforeUnmount();if(G.unmounted)G.unmounted();G._target?.remove()}return Z=[],R=Y},f.watch(function(D,G){let P;if(u.has(G)){if(P=u.get(G),P.unmounted)P.unmounted();return u.delete(G)}}),Q=async function(D){let G,P,B,N,T,S,j,C,c,o,k,z1,m,r1,K1,u1,M1,T1,b,o1,L1,f1;if({route:b,params:u1,layouts:C,query:T1}=D,!b)return;if(b.file===w&&JSON.stringify(u1)===JSON.stringify(J))return;return J=u1,N=++X,q.navigating=!0,(async()=>{try{if(L1=f.read(b.file),!L1){if(M)M({status:404,message:`File not found: ${b.file}`});q.navigating=!1;return}if(z1=await E1(L1,U,f,b.file,O),N!==X){q.navigating=!1;return}if(G=k1(z1),!G){if(M)M({status:500,message:`No component found in ${b.file}`});q.navigating=!1;return}if(k=!P2(C,A),r1=_?._target,k)I();else F();if(m=k?Y:R,k&&C.length>0){Y.innerHTML="",m=Y;for(let v of C){if(o=f.read(v),!o)continue;if(c=await E1(o,U,f,v,O),N!==X){q.navigating=!1;return}if(P=k1(c),!P)continue;if(S=new P({app:W,params:u1,router:q}),S.beforeMount)S.beforeMount();f1=document.createElement("div"),f1.setAttribute("data-layout",v),m.appendChild(f1),S.mount(f1),Z.push(S),o1=f1.querySelector("slot")||f1,m=o1}A=[...C],R=m}else if(k)Y.innerHTML="",A=[],R=Y;if(B=u.get(b.file),B)u.delete(b.file),m.appendChild(B._target),_=B,w=b.file;else{if(K1=document.createElement("div"),K1.setAttribute("data-component",b.file),m.appendChild(K1),j=new G({app:W,params:u1,query:T1,router:q}),j.beforeMount)j.beforeMount();if(j.mount(K1),_=j,w=b.file,j.load)await j.load(u1,T1)}return r1?.remove(),q.navigating=!1,Y.style.opacity==="0"?document.fonts.ready.then(function(){return requestAnimationFrame(function(){return Y.style.transition="opacity 150ms ease-in",Y.style.opacity="1"})}):void 0}catch(v){if(q.navigating=!1,Y.style.opacity="1",console.error(`Renderer: error mounting ${b.file}:`,v),M)M({status:500,message:v.message,error:v});T=!1;for(let S1=Z.length-1;S1>=0;S1--){let a1=Z[S1];if(a1.onError)try{a1.onError(v),T=!0;break}catch(m2){console.error("Renderer: error boundary failed:",m2)}}return(()=>{if(!T)return M1=document.createElement("pre"),M1.style.cssText="color:red;padding:1em",M1.textContent=v.stack||v.message,Y.innerHTML="",Y.appendChild(M1)})()}})()},H={start:function(){return z=e(function(){let D;return D=q.current,D.route?Q(D):void 0}),q.init(),H},stop:function(){if(I(),z)z(),z=null;return Y.innerHTML=""},remount:function(){let D;return D=q.current,D.route?Q(D):void 0},cache:u},H},i3=async function($="",W={}){let F,U,u,f,Y,_,A,J,w,z,X,Z,K,R,Q,M,H,O,q,E,I,D;if(globalThis.__ripLaunched=!0,typeof $==="object")W=$,$="";if($=$.replace(/\/+$/,""),D=W.target||"#app",w=W.compile||null,Q=W.persist||!1,K=W.hash||!1,!w)w=globalThis?.compileToJS||null;if(typeof document<"u"&&!document.querySelector(D))z=document.createElement("div"),z.id=D.replace(/^#/,""),document.body.prepend(z);if(W.bundle)_=W.bundle;else if(W.bundleUrl){if(R={},Z=`__rip_etag_${W.bundleUrl}`,A=sessionStorage.getItem(Z),A)R["If-None-Match"]=A;if(H=await fetch(W.bundleUrl,{headers:R}),H.status===304)_=JSON.parse(sessionStorage.getItem(`${Z}_data`));else if(H.ok){if(_=await H.json(),X=H.headers.get("etag"),X)sessionStorage.setItem(Z,X),sessionStorage.setItem(`${Z}_data`,JSON.stringify(_))}else throw Error(`launch: ${W.bundleUrl} (${H.status})`)}else throw Error("launch: no bundle or bundleUrl provided");if(f=c2({components:{},routes:{},data:{}}),_.data)f.data=_.data;if(_.routes)f.routes=_.routes;if(Q&&typeof sessionStorage<"u"){u=`__rip_${$}`,U=Q==="local"?localStorage:sessionStorage;try{if(E=U.getItem(u),E){I=JSON.parse(E);for(let G in I){let P=I[G];f.data[G]=P}}}catch{}F=function(){return(()=>{try{return U.setItem(u,JSON.stringify(g2(f.data)))}catch{return null}})()},e(function(){let G;return i1.value,G=setTimeout(F,2000),function(){return clearTimeout(G)}}),window.addEventListener("beforeunload",F)}if(Y=l2(),_.components)Y.load(_.components);if(J=`__rip_${$.replace(/\//g,"_")||"app"}`,O={map:I2(Y),classes:{},key:J},typeof globalThis<"u")globalThis[J]=O.classes;if(f.data.title&&typeof document<"u")document.title=f.data.title;if(q=x2(Y,{root:"components",base:$,hash:K,onError:function(G){return console.error(`[Rip] Error ${G.status}: ${G.message||G.path}`)}}),M=k2({router:q,app:f,components:Y,resolver:O,compile:w,target:D,onError:function(G){return console.error(`[Rip] ${G.message}`,G.error)}}),M.start(),_.data?.watch)E2(`${$}/watch`);if(typeof window<"u")window.app=f,window.__RIP__={app:f,components:Y,router:q,renderer:M,cache:M.cache,version:"0.3.0"};return{app:f,components:Y,router:q,renderer:M}};t.modules["app.rip"]=N1;for(let[$,W]of Object.entries(N1))if(typeof W==="function")globalThis[$]=W;})();
|
|
727
|
+
})()`)}catch(_){console.error("Rip runtime error:",_)}}}let F=document.querySelector("script[data-launch]");if(F&&!globalThis.__ripLaunched){let f=t.modules?.["app.rip"];if(f?.launch){let u=F.getAttribute("data-launch")||"",Y=F.getAttribute("data-hash"),A=F.getAttribute("data-persist"),_={hash:Y!=="false"};if(u)_.bundleUrl=u;if(A!=null)_.persist=A==="local"?"local":!0;await f.launch("",_)}}}async function t($){for(let[Y,A]of Object.entries(t.modules))if($.includes(Y))return A;let U=await fetch($).then((Y)=>{if(!Y.ok)throw Error(`importRip: ${$} (${Y.status})`);return Y.text()}),W=r(U),F=`// ${$}
|
|
728
|
+
`,f=new Blob([F+W],{type:"application/javascript"});return await import(URL.createObjectURL(f))}t.modules={};function q2($){try{let U=$.replace(/^/gm," "),F=r(`do ->
|
|
729
|
+
${U}`).replace(/^let\s+[^;]+;\s*\n\s*/m,"");F=F.replace(/^const\s+(\w+)\s*=/gm,"globalThis.$1 =");let f=(0,eval)(F);if(f&&typeof f.then==="function")return f.then((u)=>{if(u!==void 0)globalThis._=u;return u});if(f!==void 0)globalThis._=f;return f}catch(U){console.error("Rip compilation error:",U.message);return}}if(typeof globalThis<"u")globalThis.rip=q2,globalThis.importRip=t,globalThis.compileToJS=r,globalThis.__ripExports={compile:I1,compileToJS:r,formatSExpr:k,getStdlibCode:w1,VERSION:D2,BUILD_DATE:M2,getReactiveRuntime:J1,getComponentRuntime:Q1};if(typeof document<"u")globalThis.__ripScriptsReady=new Promise(($)=>{let U=()=>H2().then($);if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",()=>queueMicrotask(U));else queueMicrotask(U)});var T1={};t1(T1,{throttle:()=>k3,stash:()=>c2,setContext:()=>j2,raw:()=>g2,launch:()=>i3,isStash:()=>v3,hold:()=>m3,hasContext:()=>S2,getContext:()=>T2,delay:()=>v2,debounce:()=>x3,createRouter:()=>x2,createResource:()=>l3,createRenderer:()=>k2,createComponents:()=>l2});var O2,i1,F1,o,N1,G2,e,C,x1,z1,K1,n1,P2,I2,E1,B1,E2,B2,N2,k1,m1,T2,L2,p1,S2,X1,d1,h2,V2,j2,C2,y2,r1,b2;globalThis.abort??=($)=>{if($)console.error($);process.exit(1)};globalThis.assert??=($,U)=>{if(!$)throw Error(U||"Assertion failed")};globalThis.exit??=($)=>process.exit($||0);globalThis.kind??=($)=>$!=null?($.constructor?.name||Object.prototype.toString.call($).slice(8,-1)).toLowerCase():String($);globalThis.noop??=()=>{};globalThis.p??=console.log;globalThis.pp??=($)=>{return console.log(JSON.stringify($,null,2)),$};globalThis.raise??=($,U)=>{throw U!==void 0?new $(U):Error($)};globalThis.rand??=($,U)=>U!==void 0?($>U&&([$,U]=[U,$]),Math.floor(Math.random()*(U-$+1)+$)):$?Math.floor(Math.random()*$):Math.random();globalThis.sleep??=($)=>new Promise((U)=>setTimeout(U,$));globalThis.todo??=($)=>{throw Error($||"Not implemented")};globalThis.warn??=console.warn;globalThis.zip??=(...$)=>$[0].map((U,W)=>$.map((F)=>F[W]));({__state:C,__effect:e,__batch:G2}=globalThis.__rip);({setContext:j2,getContext:T2,hasContext:S2}=globalThis.__ripComponent||{});N1=Symbol("stash");o=Symbol("signals");F1=Symbol("raw");i1=new WeakMap;x1=0;n1=C(0);p1=function($,U){let W;if(!$[o])Object.defineProperty($,o,{value:new Map,enumerable:!1});if(W=$[o].get(U),!W)W=C($[U]),$[o].set(U,W);return W};X1=function($){return p1($,Symbol.for("keys"))};b2=function($){let U;if(!($!=null&&typeof $==="object"))return $;if($[N1])return $;if($ instanceof Date||$ instanceof RegExp||$ instanceof Map||$ instanceof Set||$ instanceof Promise)return $;if(U=i1.get($),U)return U;return d1($)};d1=function($){let U,W;return W=null,U={get:function(F,f){let u,Y;if(f===N1)return!0;if(f===F1)return F;if(typeof f==="symbol")return Reflect.get(F,f);if(f==="length"&&Array.isArray(F))return X1(F).value,F.length;if(f==="get")return function(A){return C2(W,A)};if(f==="set")return function(A,_){return y2(W,A,_)};if(u=p1(F,f),Y=u.value,Y!=null&&typeof Y==="object")return b2(Y);return Y},set:function(F,f,u){let Y,A;if(Y=F[f],A=u?.[F1]?u[F1]:u,A===Y)return!0;if(F[f]=A,F[o]?.has(f))F[o].get(f).value=A;if(Y===void 0&&A!==void 0)X1(F).value=++x1;return n1.value++,!0},deleteProperty:function(F,f){let u;if(delete F[f],u=F[o]?.get(f),u)u.value=void 0;return X1(F).value=++x1,!0},ownKeys:function(F){return X1(F).value,Reflect.ownKeys(F)}},W=new Proxy($,U),i1.set($,W),W};O2=/([./][^./\[\s]+|\[[-+]?\d+\]|\[(?:"[^"]+"|'[^']+')\])/;r1=function($){let U,W,F,f,u;F=("."+$).split(O2),F.shift(),u=[],W=0;while(W<F.length){if(f=F[W],U=f[0],U==="."||U==="/")u.push(f.slice(1));else if(U==="[")if(f[1]==='"'||f[1]==="'")u.push(f.slice(2,-2));else u.push(+f.slice(1,-1));W+=2}return u};C2=function($,U){let W,F;F=r1(U),W=$;for(let f of F){if(W==null)return;W=W[f]}return W};y2=function($,U,W){let F,f;f=r1(U),F=$;for(let u=0;u<f.length;u++){let Y=f[u];if(u===f.length-1)F[Y]=W;else{if(F[Y]==null)F[Y]={};F=F[Y]}}return W};K1=function($){return typeof $==="function"?$:function(){return $.value}};z1=function($,U){let W;return W={read:function(){return $.read()}},Object.defineProperty(W,"value",{get:function(){return $.value},set:function(F){return U.value=F}}),W};N2=function($){let U;if(U=$.replace(/\.rip$/,""),U=U.replace(/\[\.\.\.(\w+)\]/g,"*$1"),U=U.replace(/\[(\w+)\]/g,":$1"),U==="index")return"/";return U=U.replace(/\/index$/,""),"/"+U};V2=function($){let U,W;return U=[],W=$.replace(/\*(\w+)/g,function(F,f){return U.push(f),"(.+)"}).replace(/:(\w+)/g,function(F,f){return U.push(f),"([^/]+)"}),{regex:new RegExp("^"+W+"$"),names:U}};h2=function($,U){let W,F;for(let f of U)if(W=$.match(f.regex.regex),W){F={};for(let u=0;u<f.regex.names.length;u++){let Y=f.regex.names[u];F[Y]=decodeURIComponent(W[u+1])}return{route:f,params:F}}return null};E1=function($,U="components"){let W,F,f,u,Y,A,_,R,w;_=[],f=new Map,W=$.listAll(U);for(let z of W){if(A=z.slice(U.length+1),!A.endsWith(".rip"))continue;if(u=A.split("/").pop(),u==="_layout.rip"){F=A==="_layout.rip"?"":A.slice(0,-12),f.set(F,z);continue}if(u.startsWith("_"))continue;if(R=A.split("/"),R.length>1&&R.some(function(X,K){return K<R.length-1&&X.startsWith("_")}))continue;w=N2(A),Y=V2(w),_.push({pattern:w,regex:Y,file:z,rel:A})}return _.sort(function(z,X){let K,D,Z,J;if(D=(z.pattern.match(/:/g)||[]).length,J=(X.pattern.match(/:/g)||[]).length,K=z.pattern.includes("*")?1:0,Z=X.pattern.includes("*")?1:0,K!==Z)return K-Z;if(D!==J)return D-J;return z.pattern.localeCompare(X.pattern)}),{routes:_,layouts:f}};L2=function($,U,W){let F,f,u,Y;if(F=[],u=$.slice(U.length+1),Y=u.split("/"),f="",W.has(""))F.push(W.get(""));for(let A=0;A<Y.length;A++){let _=Y[A];if(A===Y.length-1)break;if(f=f?f+"/"+_:_,W.has(f))F.push(W.get(f))}return F};P2=function($,U){if($.length!==U.length)return!1;for(let W=0;W<$.length;W++)if($[W]!==U[W])return!1;return!0};m1=function($){for(let U in $){let W=$[U];if(typeof W==="function"&&(W.prototype?.mount||W.prototype?._create))return W}return typeof $.default==="function"?$.default:void 0};k1=function($){let U;U={};for(let W in $){let F=$[W];if(typeof F==="function"&&(F.prototype?.mount||F.prototype?._create))U[W]=F}return U};B2=function($){let U;return U=$.split("/").pop().replace(/\.rip$/,""),U.replace(/(^|[-_])([a-z])/g,function(W,F,f){return f.toUpperCase()})};I2=function($,U="components"){let W,F,f;F={};for(let u of $.listAll(U)){if(!u.endsWith(".rip"))continue;if(W=u.split("/").pop(),W.startsWith("_"))continue;if(f=B2(u),F[f])console.warn(`[Rip] Component name collision: ${f} (${F[f]} vs ${u})`);F[f]=u}return F};B1=async function($,U,W=null,F=null,f=null){let u,Y,A,_,R,w,z,X,K,D,Z,J;if(W&&F){if(Y=W.getCompiled(F),Y)return Y}if(z=U($),f){D={};for(let Q in f.map){let H=f.map[Q];if(H!==F&&z.includes(`new ${Q}(`)){if(!f.classes[Q]){if(_=W.read(H),_){A=await B1(_,U,W,H,f),R=k1(A);for(let O in R){let M=R[O];f.classes[O]=M}}}if(f.classes[Q])D[Q]=!0}}if(K=Object.keys(D),K.length>0)Z=`const {${K.join(", ")}} = globalThis['${f.key}'];
|
|
730
|
+
`,z=Z+z}if(w=F?`// ${F}
|
|
731
|
+
`:"",u=new Blob([w+z],{type:"application/javascript"}),J=URL.createObjectURL(u),X=await import(J),f){R=k1(X);for(let Q in R){let H=R[Q];f.classes[Q]=H}}if(W&&F)W.setCompiled(F,X);return X};E2=function($){let U,W,F;return F=1000,W=30000,U=function(){let f;return f=new EventSource($),f.addEventListener("connected",function(){return F=1000,console.log("[Rip] Hot reload connected")}),f.addEventListener("reload",function(){return console.log("[Rip] Reloading..."),location.reload()}),f.addEventListener("css",function(){for(let u of document.querySelectorAll('link[rel="stylesheet"]'))$=new URL(u.href),$.searchParams.set("_t",Date.now()),u.href=$.toString()}),f.onerror=function(){return f.close(),setTimeout(U,F),F=Math.min(F*2,W)}},U()};var c2=function($={}){return d1($)},g2=function($){return $?.[F1]?$[F1]:$},v3=function($){return $?.[N1]===!0},l3=function($,U={}){let W,F,f,u,Y;if(W=C(U.initial||null),f=C(!1),F=C(null),u=async function(){let A;return f.value=!0,F.value=null,(async()=>{try{return A=await $(),W.value=A}catch(_){return F.value=_}finally{f.value=!1}})()},Y={data:void 0,loading:void 0,error:void 0,refetch:u},Object.defineProperty(Y,"data",{get:function(){return W.value}}),Object.defineProperty(Y,"loading",{get:function(){return f.value}}),Object.defineProperty(Y,"error",{get:function(){return F.value}}),!U.lazy)u();return Y},v2=function($,U){let W,F;return W=K1(U),F=C(!!W()),e(function(){let f;if(W())return f=setTimeout(function(){return F.value=!0},$),function(){return clearTimeout(f)};else return F.value=!1}),typeof U!=="function"?z1(F,U):F},x3=function($,U){let W,F;return W=K1(U),F=C(W()),e(function(){let f,u;return u=W(),f=setTimeout(function(){return F.value=u},$),function(){return clearTimeout(f)}}),typeof U!=="function"?z1(F,U):F},k3=function($,U){let W,F,f;return W=K1(U),f=C(W()),F=0,e(function(){let u,Y,A,_;if(_=W(),u=Date.now(),Y=$-(u-F),Y<=0)return f.value=_,F=u;else return A=setTimeout(function(){return f.value=W(),F=Date.now()},Y),function(){return clearTimeout(A)}}),typeof U!=="function"?z1(f,U):f},m3=function($,U){let W,F;return W=K1(U),F=C(!!W()),e(function(){let f;if(W())return F.value=!0;else return f=setTimeout(function(){return F.value=!1},$),function(){return clearTimeout(f)}}),typeof U!=="function"?z1(F,U):F},l2=function(){let $,U,W,F;return U=new Map,F=[],$=new Map,W=function(f,u){for(let Y of F)Y(f,u)},{read:function(f){return U.get(f)},write:function(f,u){let Y;return Y=!U.has(f),U.set(f,u),$.delete(f),W(Y?"create":"change",f)},del:function(f){return U.delete(f),$.delete(f),W("delete",f)},exists:function(f){return U.has(f)},size:function(){return U.size},list:function(f=""){let u,Y,A;A=[],u=f?f+"/":"";for(let[_]of U)if(_.startsWith(u)){if(Y=_.slice(u.length),Y.includes("/"))continue;A.push(_)}return A},listAll:function(f=""){let u,Y;Y=[],u=f?f+"/":"";for(let[A]of U)if(A.startsWith(u))Y.push(A);return Y},load:function(f){for(let u in f){let Y=f[u];U.set(u,Y)}},watch:function(f){return F.push(f),function(){return F.splice(F.indexOf(f),1)}},getCompiled:function(f){return $.get(f)},setCompiled:function(f,u){return $.set(f,u)}}},x2=function($,U={}){let W,F,f,u,Y,A,_,R,w,z,X,K,D,Z,J,Q,H,O,M,G,B;if(H=U.root||"components",w=U.base||"",z=U.hash||!1,D=U.onError||null,M=function(q){return w&&q.startsWith(w)?q.slice(w.length)||"/":q},R=function(q){return w?w+q:q},J=function(){let q;if(z){if(q=location.hash.slice(1),!q)return"/";return q[0]==="/"?q:"/"+q}else return location.pathname+location.search+location.hash},B=function(q){return z?q==="/"?location.pathname:"#"+q.slice(1):R(q)},Y=C(M(z?J():location.pathname)),u=C({}),_=C(null),F=C([]),A=C({}),W=C(""),f=v2(100,C(!1)),G=E1($,H),X=new Set,$.watch(function(q,P){if(!P.startsWith(H+"/"))return;return G=E1($,H)}),Q=function(q){let P,E,I,N,T;if(N=q.split("?")[0].split("#")[0],E=M(N),E=E[0]==="/"?E:"/"+E,I=q.split("?")[1]?.split("#")[0]||"",P=q.includes("#")?q.split("#")[1]:"",T=h2(E,G.routes),T){G2(function(){return Y.value=E,u.value=T.params,_.value=T.route,F.value=L2(T.route.file,H,G.layouts),A.value=Object.fromEntries(new URLSearchParams(I)),W.value=P});for(let L of X)L(O.current);return!0}if(D)D({status:404,path:E});return!1},Z=function(){return Q(J())},typeof window<"u")window.addEventListener("popstate",Z);if(K=function(q){let P,E,I;if(q.button!==0||q.metaKey||q.ctrlKey||q.shiftKey||q.altKey)return;E=q.target;while(E&&E.tagName!=="A")E=E.parentElement;if(!E?.href)return;if(I=new URL(E.href,location.origin),I.origin!==location.origin)return;if(E.target==="_blank"||E.hasAttribute("data-external"))return;return q.preventDefault(),P=z&&I.hash?I.hash.slice(1)||"/":I.pathname+I.search+I.hash,O.push(P)},typeof document<"u")document.addEventListener("click",K);return O={push:function(q){return Q(q)?history.pushState(null,"",B(Y.read())):void 0},replace:function(q){return Q(q)?history.replaceState(null,"",B(Y.read())):void 0},back:function(){return history.back()},forward:function(){return history.forward()},current:void 0,path:void 0,params:void 0,route:void 0,layouts:void 0,query:void 0,hash:void 0,navigating:void 0,onNavigate:function(q){return X.add(q),function(){return X.delete(q)}},rebuild:function(){return G=E1($,H)},routes:void 0,init:function(){return Q(J()),O},destroy:function(){if(typeof window<"u")window.removeEventListener("popstate",Z);if(typeof document<"u")document.removeEventListener("click",K);return X.clear()}},Object.defineProperty(O,"current",{get:function(){return{path:Y.value,params:u.value,route:_.value,layouts:F.value,query:A.value,hash:W.value}}}),Object.defineProperty(O,"path",{get:function(){return Y.value}}),Object.defineProperty(O,"params",{get:function(){return u.value}}),Object.defineProperty(O,"route",{get:function(){return _.value}}),Object.defineProperty(O,"layouts",{get:function(){return F.value}}),Object.defineProperty(O,"query",{get:function(){return A.value}}),Object.defineProperty(O,"hash",{get:function(){return W.value}}),Object.defineProperty(O,"navigating",{get:function(){return f.value},set:function(q){return f.value=q}}),Object.defineProperty(O,"routes",{get:function(){return G.routes}}),O},k2=function($={}){let U,W,F,f,u,Y,A,_,R,w,z,X,K,D,Z,J,Q,H,O,M,G,B;if({router:M,app:U,components:u,resolver:O,compile:F,target:G,onError:Q}=$,Y=typeof G==="string"?document.querySelector(G):G||document.getElementById("app"),!Y)Y=document.createElement("div"),Y.id="app",document.body.appendChild(Y);return Y.style.opacity="0",A=null,w=null,R=null,_=[],K=[],Z=Y,X=0,z=null,f=new Map,D=$.cacheSize||10,W=function(){let q,P;if(A&&w){if(A.beforeUnmount)A.beforeUnmount();if(f.set(w,A),f.size>D){if(P=f.keys().next().value,q=f.get(P),q.unmounted)q.unmounted();f.delete(P)}return A=null,w=null}},B=function(){W();for(let q=K.length-1;q>=0;q--){let P=K[q];if(P.beforeUnmount)P.beforeUnmount();if(P.unmounted)P.unmounted();P._target?.remove()}return K=[],Z=Y},u.watch(function(q,P){let E;if(f.has(P)){if(E=f.get(P),E.unmounted)E.unmounted();return f.delete(P)}}),J=async function(q){let P,E,I,N,T,L,h,V,n,m,y,u1,g,D1,f1,$1,M1,L1,c,o1,S1,U1;if({route:c,params:$1,layouts:V,query:L1}=q,!c)return;if(c.file===w&&JSON.stringify($1)===JSON.stringify(R))return;return R=$1,N=++X,M.navigating=!0,(async()=>{try{if(S1=u.read(c.file),!S1){if(Q)Q({status:404,message:`File not found: ${c.file}`});M.navigating=!1;return}if(u1=await B1(S1,F,u,c.file,O),N!==X){M.navigating=!1;return}if(P=m1(u1),!P){if(Q)Q({status:500,message:`No component found in ${c.file}`});M.navigating=!1;return}if(y=!P2(V,_),D1=A?._target,y)B();else W();if(g=y?Y:Z,y&&V.length>0){Y.innerHTML="",g=Y;for(let l of V){if(m=u.read(l),!m)continue;if(n=await B1(m,F,u,l,O),N!==X){M.navigating=!1;return}if(E=m1(n),!E)continue;if(L=new E({app:U,params:$1,router:M}),L.beforeMount)L.beforeMount();U1=document.createElement("div"),U1.setAttribute("data-layout",l),g.appendChild(U1),L.mount(U1),K.push(L),o1=U1.querySelector("slot")||U1,g=o1}_=[...V],Z=g}else if(y)Y.innerHTML="",_=[],Z=Y;if(I=f.get(c.file),I)f.delete(c.file),g.appendChild(I._target),A=I,w=c.file;else{if(f1=document.createElement("div"),f1.setAttribute("data-component",c.file),g.appendChild(f1),h=new P({app:U,params:$1,query:L1,router:M}),h.beforeMount)h.beforeMount();if(h.mount(f1),A=h,w=c.file,h.load)await h.load($1,L1)}return D1?.remove(),M.navigating=!1,Y.style.opacity==="0"?document.fonts.ready.then(function(){return requestAnimationFrame(function(){return Y.style.transition="opacity 150ms ease-in",Y.style.opacity="1"})}):void 0}catch(l){if(M.navigating=!1,Y.style.opacity="1",console.error(`Renderer: error mounting ${c.file}:`,l),Q)Q({status:500,message:l.message,error:l});T=!1;for(let h1=K.length-1;h1>=0;h1--){let a1=K[h1];if(a1.onError)try{a1.onError(l),T=!0;break}catch(m2){console.error("Renderer: error boundary failed:",m2)}}return(()=>{if(!T)return M1=document.createElement("pre"),M1.style.cssText="color:red;padding:1em",M1.textContent=l.stack||l.message,Y.innerHTML="",Y.appendChild(M1)})()}})()},H={start:function(){return z=e(function(){let q;return q=M.current,q.route?J(q):void 0}),M.init(),H},stop:function(){if(B(),z)z(),z=null;return Y.innerHTML=""},remount:function(){let q;return q=M.current,q.route?J(q):void 0},cache:f},H},i3=async function($="",U={}){let W,F,f,u,Y,A,_,R,w,z,X,K,D,Z,J,Q,H,O,M,G,B,q;if(globalThis.__ripLaunched=!0,typeof $==="object")U=$,$="";if($=$.replace(/\/+$/,""),q=U.target||"#app",w=U.compile||null,J=U.persist||!1,D=U.hash||!1,!w)w=globalThis?.compileToJS||null;if(typeof document<"u"&&!document.querySelector(q))z=document.createElement("div"),z.id=q.replace(/^#/,""),document.body.prepend(z);if(U.bundle)A=U.bundle;else if(U.bundleUrl){if(Z={},K=`__rip_etag_${U.bundleUrl}`,_=sessionStorage.getItem(K),_)Z["If-None-Match"]=_;if(H=await fetch(U.bundleUrl,{headers:Z}),H.status===304)A=JSON.parse(sessionStorage.getItem(`${K}_data`));else if(H.ok){if(A=await H.json(),X=H.headers.get("etag"),X)sessionStorage.setItem(K,X),sessionStorage.setItem(`${K}_data`,JSON.stringify(A))}else throw Error(`launch: ${U.bundleUrl} (${H.status})`)}else throw Error("launch: no bundle or bundleUrl provided");if(u=c2({components:{},routes:{},data:{}}),A.data)u.data=A.data;if(A.routes)u.routes=A.routes;if(J&&typeof sessionStorage<"u"){f=`__rip_${$}`,F=J==="local"?localStorage:sessionStorage;try{if(G=F.getItem(f),G){B=JSON.parse(G);for(let P in B){let E=B[P];u.data[P]=E}}}catch{}W=function(){return(()=>{try{return F.setItem(f,JSON.stringify(g2(u.data)))}catch{return null}})()},e(function(){let P;return n1.value,P=setTimeout(W,2000),function(){return clearTimeout(P)}}),window.addEventListener("beforeunload",W)}if(Y=l2(),A.components)Y.load(A.components);if(R=`__rip_${$.replace(/\//g,"_")||"app"}`,O={map:I2(Y),classes:{},key:R},typeof globalThis<"u")globalThis[R]=O.classes;if(u.data.title&&typeof document<"u")document.title=u.data.title;if(M=x2(Y,{root:"components",base:$,hash:D,onError:function(P){return console.error(`[Rip] Error ${P.status}: ${P.message||P.path}`)}}),Q=k2({router:M,app:u,components:Y,resolver:O,compile:w,target:q,onError:function(P){return console.error(`[Rip] ${P.message}`,P.error)}}),Q.start(),A.data?.watch)E2(`${$}/watch`);if(typeof window<"u")window.app=u,window.__RIP__={app:u,components:Y,router:M,renderer:Q,cache:Q.cache,version:"0.3.0"};return{app:u,components:Y,router:M,renderer:Q}};t.modules["app.rip"]=T1;for(let[$,U]of Object.entries(T1))if(typeof U==="function")globalThis[$]=U;})();
|