rip-lang 3.9.1 → 3.9.3

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.
@@ -1,28 +1,28 @@
1
- function H1(Y){let U=Y.prototype;U.rewriteTypes=function(){let Z=this.tokens,W=(A,$,Q)=>{let F=[A,$];if(F.pre=0,F.data=null,F.loc=Q?.loc??{r:0,c:0,n:0},F.spaced=!1,F.newLine=!1,F.generated=!0,Q)F.origin=Q;return F};this.scanTokens((A,$,Q)=>{let F=A[0];if(F==="IDENTIFIER"){let J=Q[$+1];if(J&&J[0]==="COMPARE"&&J[1]==="<"&&!J.spaced){let D=Q[$-1]?.[0]==="DEF",X=C1(Q,$+1);if(X){let z=!D&&Q[$+1+X.length]?.[0]==="TYPE_ALIAS";if(D||z){if(!A.data)A.data={};if(A.data.typeParams=p(X),Q.splice($+1,X.length),D&&Q[$+1]?.[0]==="("){Q[$+1][0]="CALL_START";let M=1,K=$+2;while(K<Q.length&&M>0){if(Q[K][0]==="("||Q[K][0]==="CALL_START")M++;if(Q[K][0]===")"||Q[K][0]==="CALL_END")M--;if(M===0)Q[K][0]="CALL_END";K++}}}}}}if(F==="TYPE_ANNOTATION"){let J=Q[$-1];if(!J)return 1;let D=D1(Q,$+1),X=p(D),z=J,M="type";if(J[0]==="CALL_END"||J[0]===")"){let H=1,G=$-2;while(G>=0&&H>0){let q=Q[G][0];if(q==="CALL_END"||q===")")H++;if(q==="CALL_START"||q==="(")H--;G--}if(G>=0)z=Q[G];M="returnType"}else if(J[0]==="PARAM_END"){let H=$+1+D.length,G=Q[H];if(G&&(G[0]==="->"||G[0]==="=>"))z=G;M="returnType"}else if(J[0]==="IDENTIFIER"&&$>=2&&Q[$-2]?.[0]==="DEF")M="returnType";if(!z.data)z.data={};z.data[M]=X;let K=1+D.length;return Q.splice($,K),0}if(F==="TYPE_ALIAS"){let J=Q[$-1];if(!J)return 1;let D=J[1],X=$>=2&&Q[$-2]?.[0]==="EXPORT",z=X?$-2:$-1,M=Q[$+1],K=(G)=>{let q=W("TYPE_DECL",D,J);if(q.data={name:D,typeText:G,exported:X},J.data?.typeParams)q.data.typeParams=J.data.typeParams;return q};if(M&&M[0]==="IDENTIFIER"&&M[1]==="type"&&Q[$+2]?.[0]==="INDENT"){let G=A1(Q,$+2);return Q.splice(z,G-z+1,K(z1(Q,$+2))),0}if(M&&(M[0]==="TERMINATOR"||M[0]==="INDENT")){let G=h1(Q,$+1);if(G)return Q.splice(z,G.endIdx-z+1,K(G.typeText)),0}let H=D1(Q,$+1);return Q.splice(z,$+1+H.length-z,K(p(H))),0}if(F==="INTERFACE"){let J=$>=1&&Q[$-1]?.[0]==="EXPORT",D=$+1,X=Q[D];if(!X)return 1;let z=X[1],M=null,K=D+1;if(Q[K]?.[0]==="EXTENDS")M=Q[K+1]?.[1],K=K+2;if(Q[K]?.[0]==="INDENT"){let H=z1(Q,K),G=A1(Q,K),q=W("TYPE_DECL",z,X);q.data={name:z,kind:"interface",extends:M,typeText:H,exported:J};let R=J?$-1:$,w=G-R+1;return Q.splice(R,w,q),0}return 1}return 1})}}function D1(Y,U){let Z=[],W=0;while(U<Y.length){let A=Y[U],$=A[0],Q=$==="("||$==="["||$==="CALL_START"||$==="PARAM_START"||$==="INDEX_START"||$==="COMPARE"&&A[1]==="<",F=$===")"||$==="]"||$==="CALL_END"||$==="PARAM_END"||$==="INDEX_END"||$==="COMPARE"&&A[1]===">";if($==="SHIFT"&&A[1]===">>"&&W>=2){W-=2,Z.push(A),U++;continue}if(Q){W++,Z.push(A),U++;continue}if(F){if(W>0){W--,Z.push(A),U++;continue}break}if(W===0){if($==="="||$==="REACTIVE_ASSIGN"||$==="COMPUTED_ASSIGN"||$==="READONLY_ASSIGN"||$==="REACT_ASSIGN"||$==="TERMINATOR"||$==="INDENT"||$==="OUTDENT"||$==="->"||$===",")break}Z.push(A),U++}return Z}function p(Y){if(Y.length===0)return"";if(Y[0]?.[0]==="=>")Y.unshift(["","()"]);let U=Y.map((Z)=>Z[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 C1(Y,U){if(U>=Y.length)return null;let Z=Y[U];if(Z[0]!=="COMPARE"||Z[1]!=="<")return null;let W=[Z],A=1,$=U+1;while($<Y.length&&A>0){let Q=Y[$];if(W.push(Q),Q[0]==="COMPARE"&&Q[1]==="<")A++;else if(Q[0]==="COMPARE"&&Q[1]===">")A--;$++}return A===0?W:null}function z1(Y,U){let Z=[],W=U+1,A=1;while(W<Y.length&&A>0){let $=Y[W];if($[0]==="INDENT"){A++,W++;continue}if($[0]==="OUTDENT"){if(A--,A===0)break;W++;continue}if($[0]==="TERMINATOR"){W++;continue}if(A===1&&($[0]==="PROPERTY"||$[0]==="IDENTIFIER")){let Q=$[1],F=!1,J=!1;if(W++,Q==="readonly"&&(Y[W]?.[0]==="PROPERTY"||Y[W]?.[0]==="IDENTIFIER")){if(J=!0,Q=Y[W][1],Y[W].data?.predicate)F=!0;W++}if($.data?.predicate)F=!0;if(Y[W]?.[1]==="?"&&!Y[W]?.spaced)F=!0,W++;if(Y[W]?.[1]===":"||Y[W]?.[0]==="TYPE_ANNOTATION")W++;let D=[],X=0;while(W<Y.length){let H=Y[W];if(H[0]==="INDENT"){X++,W++;continue}if(H[0]==="OUTDENT"){if(X>0){X--,W++;continue}break}if(H[0]==="TERMINATOR"&&X===0)break;D.push(H),W++}let z=p(D),M=J?"readonly ":"",K=F?"?":"";Z.push(`${M}${Q}${K}: ${z}`)}else W++}return"{ "+Z.join("; ")+" }"}function A1(Y,U){let Z=0;for(let W=U;W<Y.length;W++){if(Y[W][0]==="INDENT")Z++;if(Y[W][0]==="OUTDENT"){if(Z--,Z===0)return W}}return Y.length-1}function h1(Y,U){let Z=U;if(Y[Z]?.[0]==="TERMINATOR")Z++;if(Y[Z]?.[0]!=="INDENT")return null;let W=Z;Z++;while(Z<Y.length&&Y[Z][0]==="TERMINATOR")Z++;if(!Y[Z]||Y[Z][1]!=="|")return null;let A=[],$=1;Z=W+1;while(Z<Y.length&&$>0){let F=Y[Z];if(F[0]==="INDENT"){$++,Z++;continue}if(F[0]==="OUTDENT"){if($--,$===0)break;Z++;continue}if(F[0]==="TERMINATOR"){Z++;continue}if(F[1]==="|"&&$===1){Z++;let J=[];while(Z<Y.length){let D=Y[Z];if(D[0]==="TERMINATOR"||D[0]==="OUTDENT"||D[1]==="|"&&$===1)break;J.push(D),Z++}if(J.length>0)A.push(p(J));continue}Z++}if(A.length===0)return null;let Q=A1(Y,W);return{typeText:A.join(" | "),endIdx:Q}}function W1(Y,U=null){let Z=[],W=0,A=" ",$=()=>A.repeat(W),Q=!1,F=!1,J=!1,D=(K,H,G)=>{if(H.startsWith("{ ")&&H.endsWith(" }")){let q=H.slice(2,-2).split("; ").filter((R)=>R.trim());if(q.length>0){Z.push(`${$()}${K}{`),W++;for(let R of q)Z.push(`${$()}${R};`);W--,Z.push(`${$()}}${G}`);return}}Z.push(`${$()}${K}${H}${G}`)},X=(K,H)=>{let G=[],q=H,R=K[q]?.[0];if(R!=="CALL_START"&&R!=="PARAM_START")return{params:G,endIdx:q};let w=R==="CALL_START"?"CALL_END":"PARAM_END";q++;let B=0;while(q<K.length&&!(K[q][0]===w&&B===0)){let P=K[q];if(P[1]===","&&B===0){q++;continue}if(P[0]==="{"||P[0]==="["||P[0]==="CALL_START"||P[0]==="PARAM_START"||P[0]==="INDEX_START")B++;if(P[0]==="}"||P[0]==="]"||P[0]==="CALL_END"||P[0]==="PARAM_END"||P[0]==="INDEX_END"){B--,q++;continue}if(P[0]==="@"){if(q++,K[q]?.[0]==="PROPERTY"||K[q]?.[0]==="IDENTIFIER"){let E=K[q][1],_=K[q].data?.type;G.push(_?`${E}: ${C(_)}`:E),q++}continue}if(P[0]==="SPREAD"||P[1]==="..."){if(q++,K[q]?.[0]==="IDENTIFIER"){let E=K[q][1],_=K[q].data?.type;G.push(_?`...${E}: ${C(_)}`:`...${E}: any[]`),q++}continue}if(P[0]==="{"){let E="{";q++;let _=1;while(q<K.length&&_>0){if(K[q][0]==="{")_++;if(K[q][0]==="}")_--;if(_>0)E+=K[q][1]+(K[q+1]?.[0]==="}"?"":", ");q++}E+="}";let O=K[q-1]?.data?.type;G.push(O?`${E}: ${C(O)}`:E);continue}if(P[0]==="IDENTIFIER"){let E=P[1],_=P.data?.type,O=!1;if(K[q+1]?.[0]==="=")O=!0;if(_)G.push(`${E}${O?"?":""}: ${C(_)}`);else G.push(E);if(q++,O){q++;let I=0;while(q<K.length){let N=K[q];if(N[0]==="("||N[0]==="["||N[0]==="{")I++;if(N[0]===")"||N[0]==="]"||N[0]==="}")I--;if(I===0&&(N[1]===","||N[0]==="CALL_END"))break;q++}}continue}q++}return{params:G,endIdx:q}};for(let K=0;K<Y.length;K++){let H=Y[K],G=H[0],q=!1;if(G==="EXPORT"){if(q=!0,K++,K>=Y.length)break;if(H=Y[K],G=H[0],G==="DEFAULT"){if(K++,K>=Y.length)break;if(H=Y[K],G=H[0],G==="IDENTIFIER")Z.push(`${$()}export default ${H[1]};`);continue}}if(G==="IMPORT"){let R=[],w=K+1;while(w<Y.length&&Y[w][0]!=="TERMINATOR")R.push(Y[w]),w++;let B="import "+R.map((P)=>P[1]).join(" ");B=B.replace(/\s+/g," ").replace(/\s*,\s*/g,", ").replace(/\{\s*/g,"{ ").replace(/\s*\}/g," }").trim(),Z.push(`${$()}${B};`),K=w;continue}if(G==="TYPE_DECL"){let R=H.data;if(!R)continue;let w=q||R.exported?"export ":"",B=R.typeParams||"";if(R.kind==="interface"){let P=R.extends?` extends ${R.extends}`:"";D(`${w}interface ${R.name}${B}${P} `,R.typeText||"{}","")}else{let P=C(R.typeText||"");D(`${w}type ${R.name}${B} = `,P,";")}continue}if(G==="ENUM"){let R=q?"export ":"",w=Y[K+1];if(!w)continue;let B=w[1],P=K+2;if(Y[P]?.[0]==="INDENT"){Z.push(`${$()}${R}enum ${B} {`),W++,P++;let E=[];while(P<Y.length&&Y[P][0]!=="OUTDENT"){if(Y[P][0]==="TERMINATOR"){P++;continue}if(Y[P][0]==="IDENTIFIER"){let _=Y[P][1];if(P++,Y[P]?.[1]==="="){P++;let O=Y[P]?.[1];E.push(`${_} = ${O}`),P++}else E.push(_)}else P++}for(let _=0;_<E.length;_++){let O=_<E.length-1?",":"";Z.push(`${$()}${E[_]}${O}`)}W--,Z.push(`${$()}}`)}continue}if(G==="CLASS"){let R=q?"export ":"",w=Y[K+1];if(!w)continue;let B=w[1],P="",E=K+2;if(Y[E]?.[0]==="EXTENDS")P=` extends ${Y[E+1]?.[1]||""}`,E+=2;if(Y[E]?.[0]==="INDENT"){let _=!1,O=E+1;while(O<Y.length&&Y[O][0]!=="OUTDENT"){if(Y[O].data?.type||Y[O].data?.returnType){_=!0;break}O++}if(_)Z.push(`${$()}${R}declare class ${B}${P} {`),Q=!0,W++}continue}if(G==="DEF"){let R=Y[K+1];if(!R)continue;let w=R[1],B=R.data?.returnType,P=R.data?.typeParams||"",{params:E,endIdx:_}=X(Y,K+2);if(B||E.some((O)=>O.includes(":"))){let O=q?"export ":"",I=Q?"":q?"":"declare ",N=B?`: ${C(B)}`:"",T=E.join(", ");if(Q)Z.push(`${$()}${w}${P}(${T})${N};`);else Z.push(`${$()}${O}${I}function ${w}${P}(${T})${N};`)}continue}if(G==="{"&&Q){let R=K+1,w=1;while(R<Y.length&&w>0){let B=Y[R];if(B[0]==="{"){w++,R++;continue}if(B[0]==="}"){w--,R++;continue}if(B[0]==="TERMINATOR"){R++;continue}if(B[0]==="PROPERTY"&&w===1){let P=B[1],E=B.data?.returnType;if(R++,Y[R]?.[1]===":")R++;let _=[];if(Y[R]?.[0]==="PARAM_START"){let O=X(Y,R);_=O.params,R=O.endIdx+1}if(Y[R]?.[0]==="->"||Y[R]?.[0]==="=>")R++;if(Y[R]?.[0]==="INDENT"){let O=1;R++;while(R<Y.length&&O>0){if(Y[R][0]==="INDENT")O++;if(Y[R][0]==="OUTDENT")O--;R++}}if(E||_.some((O)=>O.includes(":"))){let O=E?`: ${C(E)}`:"",I=_.join(", ");Z.push(`${$()}${P}(${I})${O};`)}continue}R++}K=R-1;continue}if(G==="INDENT")continue;if(G==="OUTDENT"){if(Q)W--,Z.push(`${$()}}`),Q=!1;continue}if(G==="IDENTIFIER"&&!Q&&Y[K+1]?.[0]==="="&&(Y[K+2]?.[0]==="PARAM_START"||Y[K+2]?.[0]==="(")){let R=H[1],w=K+2,{params:B}=X(Y,w),P=w,E=0;while(P<Y.length){if(Y[P][0]==="PARAM_START"||Y[P][0]==="(")E++;if(Y[P][0]==="PARAM_END"||Y[P][0]===")")E--;if(E===0&&(Y[P][0]==="->"||Y[P][0]==="=>"))break;P++}let _=Y[P]?.data?.returnType;if(_||B.some((O)=>O.includes(":"))){let O=q?"export ":"",I=q?"":"declare ",N=_?`: ${C(_)}`:"",T=B.join(", ");Z.push(`${$()}${O}${I}function ${R}(${T})${N};`);continue}}if(G==="IDENTIFIER"&&H.data?.type){let R=H[1],w=C(H.data.type),B=Y[K+1];if(B){let P=q?"export ":"",E=q?"":"declare ";if(B[0]==="READONLY_ASSIGN")Z.push(`${$()}${P}${E}const ${R}: ${w};`);else if(B[0]==="REACTIVE_ASSIGN")F=!0,Z.push(`${$()}${P}${E}const ${R}: Signal<${w}>;`);else if(B[0]==="COMPUTED_ASSIGN")J=!0,Z.push(`${$()}${P}${E}const ${R}: Computed<${w}>;`);else if(B[0]==="REACT_ASSIGN")Z.push(`${$()}${P}${E}const ${R}: () => void;`);else if(B[0]==="="){let _=K+2;if(Y[_]?.[0]==="PARAM_START"){let I=1,N=_+1;while(N<Y.length&&I>0){if(Y[N][0]==="PARAM_START")I++;if(Y[N][0]==="PARAM_END")I--;N++}_=N}let O=Y[_];if(O&&(O[0]==="->"||O[0]==="=>")&&O.data?.returnType){let I=C(O.data.returnType),{params:N}=X(Y,K+2),T=N.join(", ");Z.push(`${$()}${P}${E}function ${R}(${T}): ${I};`)}else if(Q)Z.push(`${$()}${R}: ${w};`);else Z.push(`${$()}${P}let ${R}: ${w};`)}else if(Q)Z.push(`${$()}${R}: ${w};`)}else if(Q)Z.push(`${$()}${R}: ${w};`)}}let z=new Set;if(U){if(Y1(U,Z,$,W,z),z.size>0)for(let K=Z.length-1;K>=0;K--){let H=Z[K].match(/(?:declare |export )*(?:const|let) (\w+)/);if(H&&z.has(H[1]))Z.splice(K,1)}}if(Z.length===0)return null;let M=[];if(F)M.push("interface Signal<T> { value: T; read(): T; lock(): Signal<T>; free(): Signal<T>; kill(): T; }");if(J)M.push("interface Computed<T> { readonly value: T; read(): T; lock(): Computed<T>; free(): Computed<T>; kill(): T; }");if(M.length>0)M.push("");return M.concat(Z).join(`
1
+ function H1(A){let U=A.prototype;U.rewriteTypes=function(){let Z=this.tokens,W=(Y,$,Q)=>{let F=[Y,$];if(F.pre=0,F.data=null,F.loc=Q?.loc??{r:0,c:0,n:0},F.spaced=!1,F.newLine=!1,F.generated=!0,Q)F.origin=Q;return F};this.scanTokens((Y,$,Q)=>{let F=Y[0];if(F==="IDENTIFIER"){let J=Q[$+1];if(J&&J[0]==="COMPARE"&&J[1]==="<"&&!J.spaced){let D=Q[$-1]?.[0]==="DEF",X=C1(Q,$+1);if(X){let z=!D&&Q[$+1+X.length]?.[0]==="TYPE_ALIAS";if(D||z){if(!Y.data)Y.data={};if(Y.data.typeParams=p(X),Q.splice($+1,X.length),D&&Q[$+1]?.[0]==="("){Q[$+1][0]="CALL_START";let M=1,K=$+2;while(K<Q.length&&M>0){if(Q[K][0]==="("||Q[K][0]==="CALL_START")M++;if(Q[K][0]===")"||Q[K][0]==="CALL_END")M--;if(M===0)Q[K][0]="CALL_END";K++}}}}}}if(F==="TYPE_ANNOTATION"){let J=Q[$-1];if(!J)return 1;let D=D1(Q,$+1),X=p(D),z=J,M="type";if(J[0]==="CALL_END"||J[0]===")"){let H=1,G=$-2;while(G>=0&&H>0){let q=Q[G][0];if(q==="CALL_END"||q===")")H++;if(q==="CALL_START"||q==="(")H--;G--}if(G>=0)z=Q[G];M="returnType"}else if(J[0]==="PARAM_END"){let H=$+1+D.length,G=Q[H];if(G&&(G[0]==="->"||G[0]==="=>"))z=G;M="returnType"}else if(J[0]==="IDENTIFIER"&&$>=2&&Q[$-2]?.[0]==="DEF")M="returnType";if(!z.data)z.data={};z.data[M]=X;let K=1+D.length;return Q.splice($,K),0}if(F==="TYPE_ALIAS"){let J=Q[$-1];if(!J)return 1;let D=J[1],X=$>=2&&Q[$-2]?.[0]==="EXPORT",z=X?$-2:$-1,M=Q[$+1],K=(G)=>{let q=W("TYPE_DECL",D,J);if(q.data={name:D,typeText:G,exported:X},J.data?.typeParams)q.data.typeParams=J.data.typeParams;return q};if(M&&M[0]==="IDENTIFIER"&&M[1]==="type"&&Q[$+2]?.[0]==="INDENT"){let G=Y1(Q,$+2);return Q.splice(z,G-z+1,K(z1(Q,$+2))),0}if(M&&(M[0]==="TERMINATOR"||M[0]==="INDENT")){let G=h1(Q,$+1);if(G)return Q.splice(z,G.endIdx-z+1,K(G.typeText)),0}let H=D1(Q,$+1);return Q.splice(z,$+1+H.length-z,K(p(H))),0}if(F==="INTERFACE"){let J=$>=1&&Q[$-1]?.[0]==="EXPORT",D=$+1,X=Q[D];if(!X)return 1;let z=X[1],M=null,K=D+1;if(Q[K]?.[0]==="EXTENDS")M=Q[K+1]?.[1],K=K+2;if(Q[K]?.[0]==="INDENT"){let H=z1(Q,K),G=Y1(Q,K),q=W("TYPE_DECL",z,X);q.data={name:z,kind:"interface",extends:M,typeText:H,exported:J};let R=J?$-1:$,w=G-R+1;return Q.splice(R,w,q),0}return 1}return 1})}}function D1(A,U){let Z=[],W=0;while(U<A.length){let Y=A[U],$=Y[0],Q=$==="("||$==="["||$==="CALL_START"||$==="PARAM_START"||$==="INDEX_START"||$==="COMPARE"&&Y[1]==="<",F=$===")"||$==="]"||$==="CALL_END"||$==="PARAM_END"||$==="INDEX_END"||$==="COMPARE"&&Y[1]===">";if($==="SHIFT"&&Y[1]===">>"&&W>=2){W-=2,Z.push(Y),U++;continue}if(Q){W++,Z.push(Y),U++;continue}if(F){if(W>0){W--,Z.push(Y),U++;continue}break}if(W===0){if($==="="||$==="REACTIVE_ASSIGN"||$==="COMPUTED_ASSIGN"||$==="READONLY_ASSIGN"||$==="REACT_ASSIGN"||$==="TERMINATOR"||$==="INDENT"||$==="OUTDENT"||$==="->"||$===",")break}Z.push(Y),U++}return Z}function p(A){if(A.length===0)return"";if(A[0]?.[0]==="=>")A.unshift(["","()"]);let U=A.map((Z)=>Z[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 C1(A,U){if(U>=A.length)return null;let Z=A[U];if(Z[0]!=="COMPARE"||Z[1]!=="<")return null;let W=[Z],Y=1,$=U+1;while($<A.length&&Y>0){let Q=A[$];if(W.push(Q),Q[0]==="COMPARE"&&Q[1]==="<")Y++;else if(Q[0]==="COMPARE"&&Q[1]===">")Y--;$++}return Y===0?W:null}function z1(A,U){let Z=[],W=U+1,Y=1;while(W<A.length&&Y>0){let $=A[W];if($[0]==="INDENT"){Y++,W++;continue}if($[0]==="OUTDENT"){if(Y--,Y===0)break;W++;continue}if($[0]==="TERMINATOR"){W++;continue}if(Y===1&&($[0]==="PROPERTY"||$[0]==="IDENTIFIER")){let Q=$[1],F=!1,J=!1;if(W++,Q==="readonly"&&(A[W]?.[0]==="PROPERTY"||A[W]?.[0]==="IDENTIFIER")){if(J=!0,Q=A[W][1],A[W].data?.predicate)F=!0;W++}if($.data?.predicate)F=!0;if(A[W]?.[1]==="?"&&!A[W]?.spaced)F=!0,W++;if(A[W]?.[1]===":"||A[W]?.[0]==="TYPE_ANNOTATION")W++;let D=[],X=0;while(W<A.length){let H=A[W];if(H[0]==="INDENT"){X++,W++;continue}if(H[0]==="OUTDENT"){if(X>0){X--,W++;continue}break}if(H[0]==="TERMINATOR"&&X===0)break;D.push(H),W++}let z=p(D),M=J?"readonly ":"",K=F?"?":"";Z.push(`${M}${Q}${K}: ${z}`)}else W++}return"{ "+Z.join("; ")+" }"}function Y1(A,U){let Z=0;for(let W=U;W<A.length;W++){if(A[W][0]==="INDENT")Z++;if(A[W][0]==="OUTDENT"){if(Z--,Z===0)return W}}return A.length-1}function h1(A,U){let Z=U;if(A[Z]?.[0]==="TERMINATOR")Z++;if(A[Z]?.[0]!=="INDENT")return null;let W=Z;Z++;while(Z<A.length&&A[Z][0]==="TERMINATOR")Z++;if(!A[Z]||A[Z][1]!=="|")return null;let Y=[],$=1;Z=W+1;while(Z<A.length&&$>0){let F=A[Z];if(F[0]==="INDENT"){$++,Z++;continue}if(F[0]==="OUTDENT"){if($--,$===0)break;Z++;continue}if(F[0]==="TERMINATOR"){Z++;continue}if(F[1]==="|"&&$===1){Z++;let J=[];while(Z<A.length){let D=A[Z];if(D[0]==="TERMINATOR"||D[0]==="OUTDENT"||D[1]==="|"&&$===1)break;J.push(D),Z++}if(J.length>0)Y.push(p(J));continue}Z++}if(Y.length===0)return null;let Q=Y1(A,W);return{typeText:Y.join(" | "),endIdx:Q}}function W1(A,U=null){let Z=[],W=0,Y=" ",$=()=>Y.repeat(W),Q=!1,F=!1,J=!1,D=(K,H,G)=>{if(H.startsWith("{ ")&&H.endsWith(" }")){let q=H.slice(2,-2).split("; ").filter((R)=>R.trim());if(q.length>0){Z.push(`${$()}${K}{`),W++;for(let R of q)Z.push(`${$()}${R};`);W--,Z.push(`${$()}}${G}`);return}}Z.push(`${$()}${K}${H}${G}`)},X=(K,H)=>{let G=[],q=H,R=K[q]?.[0];if(R!=="CALL_START"&&R!=="PARAM_START")return{params:G,endIdx:q};let w=R==="CALL_START"?"CALL_END":"PARAM_END";q++;let I=0;while(q<K.length&&!(K[q][0]===w&&I===0)){let P=K[q];if(P[1]===","&&I===0){q++;continue}if(P[0]==="{"||P[0]==="["||P[0]==="CALL_START"||P[0]==="PARAM_START"||P[0]==="INDEX_START")I++;if(P[0]==="}"||P[0]==="]"||P[0]==="CALL_END"||P[0]==="PARAM_END"||P[0]==="INDEX_END"){I--,q++;continue}if(P[0]==="@"){if(q++,K[q]?.[0]==="PROPERTY"||K[q]?.[0]==="IDENTIFIER"){let E=K[q][1],_=K[q].data?.type;G.push(_?`${E}: ${C(_)}`:E),q++}continue}if(P[0]==="SPREAD"||P[1]==="..."){if(q++,K[q]?.[0]==="IDENTIFIER"){let E=K[q][1],_=K[q].data?.type;G.push(_?`...${E}: ${C(_)}`:`...${E}: any[]`),q++}continue}if(P[0]==="{"){let E="{";q++;let _=1;while(q<K.length&&_>0){if(K[q][0]==="{")_++;if(K[q][0]==="}")_--;if(_>0)E+=K[q][1]+(K[q+1]?.[0]==="}"?"":", ");q++}E+="}";let O=K[q-1]?.data?.type;G.push(O?`${E}: ${C(O)}`:E);continue}if(P[0]==="IDENTIFIER"){let E=P[1],_=P.data?.type,O=!1;if(K[q+1]?.[0]==="=")O=!0;if(_)G.push(`${E}${O?"?":""}: ${C(_)}`);else G.push(E);if(q++,O){q++;let B=0;while(q<K.length){let N=K[q];if(N[0]==="("||N[0]==="["||N[0]==="{")B++;if(N[0]===")"||N[0]==="]"||N[0]==="}")B--;if(B===0&&(N[1]===","||N[0]==="CALL_END"))break;q++}}continue}q++}return{params:G,endIdx:q}};for(let K=0;K<A.length;K++){let H=A[K],G=H[0],q=!1;if(G==="EXPORT"){if(q=!0,K++,K>=A.length)break;if(H=A[K],G=H[0],G==="DEFAULT"){if(K++,K>=A.length)break;if(H=A[K],G=H[0],G==="IDENTIFIER")Z.push(`${$()}export default ${H[1]};`);continue}}if(G==="IMPORT"){let R=[],w=K+1;while(w<A.length&&A[w][0]!=="TERMINATOR")R.push(A[w]),w++;let I="import "+R.map((P)=>P[1]).join(" ");I=I.replace(/\s+/g," ").replace(/\s*,\s*/g,", ").replace(/\{\s*/g,"{ ").replace(/\s*\}/g," }").trim(),Z.push(`${$()}${I};`),K=w;continue}if(G==="TYPE_DECL"){let R=H.data;if(!R)continue;let w=q||R.exported?"export ":"",I=R.typeParams||"";if(R.kind==="interface"){let P=R.extends?` extends ${R.extends}`:"";D(`${w}interface ${R.name}${I}${P} `,R.typeText||"{}","")}else{let P=C(R.typeText||"");D(`${w}type ${R.name}${I} = `,P,";")}continue}if(G==="ENUM"){let R=q?"export ":"",w=A[K+1];if(!w)continue;let I=w[1],P=K+2;if(A[P]?.[0]==="INDENT"){Z.push(`${$()}${R}enum ${I} {`),W++,P++;let E=[];while(P<A.length&&A[P][0]!=="OUTDENT"){if(A[P][0]==="TERMINATOR"){P++;continue}if(A[P][0]==="IDENTIFIER"){let _=A[P][1];if(P++,A[P]?.[1]==="="){P++;let O=A[P]?.[1];E.push(`${_} = ${O}`),P++}else E.push(_)}else P++}for(let _=0;_<E.length;_++){let O=_<E.length-1?",":"";Z.push(`${$()}${E[_]}${O}`)}W--,Z.push(`${$()}}`)}continue}if(G==="CLASS"){let R=q?"export ":"",w=A[K+1];if(!w)continue;let I=w[1],P="",E=K+2;if(A[E]?.[0]==="EXTENDS")P=` extends ${A[E+1]?.[1]||""}`,E+=2;if(A[E]?.[0]==="INDENT"){let _=!1,O=E+1;while(O<A.length&&A[O][0]!=="OUTDENT"){if(A[O].data?.type||A[O].data?.returnType){_=!0;break}O++}if(_)Z.push(`${$()}${R}declare class ${I}${P} {`),Q=!0,W++}continue}if(G==="DEF"){let R=A[K+1];if(!R)continue;let w=R[1],I=R.data?.returnType,P=R.data?.typeParams||"",{params:E,endIdx:_}=X(A,K+2);if(I||E.some((O)=>O.includes(":"))){let O=q?"export ":"",B=Q?"":q?"":"declare ",N=I?`: ${C(I)}`:"",T=E.join(", ");if(Q)Z.push(`${$()}${w}${P}(${T})${N};`);else Z.push(`${$()}${O}${B}function ${w}${P}(${T})${N};`)}continue}if(G==="{"&&Q){let R=K+1,w=1;while(R<A.length&&w>0){let I=A[R];if(I[0]==="{"){w++,R++;continue}if(I[0]==="}"){w--,R++;continue}if(I[0]==="TERMINATOR"){R++;continue}if(I[0]==="PROPERTY"&&w===1){let P=I[1],E=I.data?.returnType;if(R++,A[R]?.[1]===":")R++;let _=[];if(A[R]?.[0]==="PARAM_START"){let O=X(A,R);_=O.params,R=O.endIdx+1}if(A[R]?.[0]==="->"||A[R]?.[0]==="=>")R++;if(A[R]?.[0]==="INDENT"){let O=1;R++;while(R<A.length&&O>0){if(A[R][0]==="INDENT")O++;if(A[R][0]==="OUTDENT")O--;R++}}if(E||_.some((O)=>O.includes(":"))){let O=E?`: ${C(E)}`:"",B=_.join(", ");Z.push(`${$()}${P}(${B})${O};`)}continue}R++}K=R-1;continue}if(G==="INDENT")continue;if(G==="OUTDENT"){if(Q)W--,Z.push(`${$()}}`),Q=!1;continue}if(G==="IDENTIFIER"&&!Q&&A[K+1]?.[0]==="="&&(A[K+2]?.[0]==="PARAM_START"||A[K+2]?.[0]==="(")){let R=H[1],w=K+2,{params:I}=X(A,w),P=w,E=0;while(P<A.length){if(A[P][0]==="PARAM_START"||A[P][0]==="(")E++;if(A[P][0]==="PARAM_END"||A[P][0]===")")E--;if(E===0&&(A[P][0]==="->"||A[P][0]==="=>"))break;P++}let _=A[P]?.data?.returnType;if(_||I.some((O)=>O.includes(":"))){let O=q?"export ":"",B=q?"":"declare ",N=_?`: ${C(_)}`:"",T=I.join(", ");Z.push(`${$()}${O}${B}function ${R}(${T})${N};`);continue}}if(G==="IDENTIFIER"&&H.data?.type){let R=H[1],w=C(H.data.type),I=A[K+1];if(I){let P=q?"export ":"",E=q?"":"declare ";if(I[0]==="READONLY_ASSIGN")Z.push(`${$()}${P}${E}const ${R}: ${w};`);else if(I[0]==="REACTIVE_ASSIGN")F=!0,Z.push(`${$()}${P}${E}const ${R}: Signal<${w}>;`);else if(I[0]==="COMPUTED_ASSIGN")J=!0,Z.push(`${$()}${P}${E}const ${R}: Computed<${w}>;`);else if(I[0]==="REACT_ASSIGN")Z.push(`${$()}${P}${E}const ${R}: () => void;`);else if(I[0]==="="){let _=K+2;if(A[_]?.[0]==="PARAM_START"){let B=1,N=_+1;while(N<A.length&&B>0){if(A[N][0]==="PARAM_START")B++;if(A[N][0]==="PARAM_END")B--;N++}_=N}let O=A[_];if(O&&(O[0]==="->"||O[0]==="=>")&&O.data?.returnType){let B=C(O.data.returnType),{params:N}=X(A,K+2),T=N.join(", ");Z.push(`${$()}${P}${E}function ${R}(${T}): ${B};`)}else if(Q)Z.push(`${$()}${R}: ${w};`);else Z.push(`${$()}${P}let ${R}: ${w};`)}else if(Q)Z.push(`${$()}${R}: ${w};`)}else if(Q)Z.push(`${$()}${R}: ${w};`)}}let z=new Set;if(U){if(A1(U,Z,$,W,z),z.size>0)for(let K=Z.length-1;K>=0;K--){let H=Z[K].match(/(?:declare |export )*(?:const|let) (\w+)/);if(H&&z.has(H[1]))Z.splice(K,1)}}if(Z.length===0)return null;let M=[];if(F)M.push("interface Signal<T> { value: T; read(): T; lock(): Signal<T>; free(): Signal<T>; kill(): T; }");if(J)M.push("interface Computed<T> { readonly value: T; read(): T; lock(): Computed<T>; free(): Computed<T>; kill(): T; }");if(M.length>0)M.push("");return M.concat(Z).join(`
2
2
  `)+`
3
- `}function C(Y){if(!Y)return Y;return Y=Y.replace(/::/g,":"),Y=Y.replace(/(\w+(?:<[^>]+>)?)\?\?/g,"$1 | null | undefined"),Y=Y.replace(/(\w+(?:<[^>]+>)?)\?(?![.:])/g,"$1 | undefined"),Y=Y.replace(/(\w+(?:<[^>]+>)?)\!/g,"NonNullable<$1>"),Y}function Y1(Y,U,Z,W,A){if(!Array.isArray(Y))return;let $=Y[0]?.valueOf?.()??Y[0],Q=!1,F=null,J=null;if($==="export"&&Array.isArray(Y[1])){Q=!0;let D=Y[1];if((D[0]?.valueOf?.()??D[0])==="="&&Array.isArray(D[2])&&(D[2][0]?.valueOf?.()??D[2][0])==="component")F=D[1]?.valueOf?.()??D[1],J=D[2]}else if($==="="&&Array.isArray(Y[2])&&(Y[2][0]?.valueOf?.()??Y[2][0])==="component")F=Y[1]?.valueOf?.()??Y[1],J=Y[2];if(F&&J){let D=Q?"export ":"",X=J[2],z=Array.isArray(X)&&(X[0]?.valueOf?.()??X[0])==="block"?X.slice(1):X?[X]:[],M=[],K=[];for(let H of z){if(!Array.isArray(H))continue;let G=H[0]?.valueOf?.()??H[0];if(G==="state"){let q=H[1]?.valueOf?.()??H[1],R=H[1]?.type;M.push(` ${q}: ${R?C(R):"any"};`),A.add(q)}else if(G==="computed"){let q=H[1]?.valueOf?.()??H[1],R=H[1]?.type;M.push(` readonly ${q}: ${R?C(R):"any"};`),A.add(q)}else if(G==="object")for(let q=1;q<H.length;q++){let R=H[q];if(!Array.isArray(R))continue;let w=R[0]?.valueOf?.()??R[0];if(w==="render")continue;let B=R[1];if(Array.isArray(B)){let P=B[0]?.valueOf?.()??B[0];if(P==="->"||P==="=>")K.push(` ${w}(): void;`)}}else if(G==="render")continue}U.push(`${D}declare class ${F} {`),U.push(" constructor(props?: Record<string, any>);");for(let H of M)U.push(H);for(let H of K)U.push(H);U.push(` mount(target: Element | string): ${F};`),U.push(" unmount(): void;"),U.push("}")}if($==="program"||$==="block"){for(let D=1;D<Y.length;D++)if(Array.isArray(Y[D]))Y1(Y[D],U,Z,W,A)}if($==="export"&&Array.isArray(Y[1])&&!J)Y1(Y[1],U,Z,W,A)}function M1(Y,U,Z){let[W,A]=U,$=W?.valueOf?.()??W,Q=[];if(Array.isArray(A)){let D=A[0]==="block"?A.slice(1):[A];for(let X of D)if(Array.isArray(X)){if(X[0]?.valueOf?.()==="="){let z=X[1]?.valueOf?.()??X[1],M=X[2]?.valueOf?.()??X[2];Q.push([z,M])}}}if(Q.length===0)return`const ${$} = {}`;let F=Q.map(([D,X])=>`${D}: ${X}`).join(", "),J=Q.map(([D,X])=>`${X}: "${D}"`).join(", ");return`const ${$} = {${F}, ${J}}`}var G1=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"]),R1=new Set(["undefined","Infinity","NaN","then","unless","until","loop","of","by","when","def","component","render","enum","interface"]),Z1={and:"&&",or:"||",is:"==",isnt:"!=",not:"!",yes:"true",no:"false",on:"true",off:"false"},q1=new Set(Object.keys(Z1)),b1=new Set(["case","function","var","void","with","const","let","native","implements","package","private","protected","public","static"]),y1=new Set(["break","continue","debugger"]),v1=new Set(["NEW","TYPEOF","DELETE"]),g1=new Set(["IN","OF","INSTANCEOF"]),r=new Set(["IDENTIFIER","PROPERTY",")","]","@","THIS","SUPER","DYNAMIC_IMPORT","?."]),T1=new Set([...r,"NUMBER","INFINITY","NAN","STRING","STRING_END","REGEX","REGEX_END","BOOL","NULL","UNDEFINED","}"]),a=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","@","->","=>","[","(","{","--","++"]),x1=new Set(["+","-"]),c1=new Set(["POST_IF","POST_UNLESS","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR","||","&&","PIPE"]),k1=new Set(["STRING","STRING_END","REGEX","REGEX_END","NUMBER","BOOL","NULL","UNDEFINED","INFINITY","NAN","]","}"]),x=new Set(["(","[","{","INDENT","CALL_START","PARAM_START","INDEX_START","STRING_START","INTERPOLATION_START","REGEX_START"]),g=new Set([")","]","}","OUTDENT","CALL_END","PARAM_END","INDEX_END","STRING_END","INTERPOLATION_END","REGEX_END"]),l1={"(":")",")":"(","[":"]","]":"[","{":"}","}":"{",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"},O1=new Set(["CATCH","THEN","ELSE","FINALLY",...g]),U1=new Set(["IDENTIFIER","PROPERTY","SUPER",")","CALL_END","]","INDEX_END","@","THIS"]),m1=new Set(["IF","TRY","FINALLY","CATCH","CLASS","SWITCH","COMPONENT"]),P1=new Set(["ELSE","->","=>","TRY","FINALLY","THEN"]),p1=new Set(["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"]),i=new Set(["INDENT","OUTDENT","TERMINATOR"]),_1=new Set([".","?."]),w1=new Set(["\\",".","?.","UNARY","DO","DO_IIFE","MATH","UNARY_MATH","+","-","**","SHIFT","RELATION","COMPARE","&","^","|","&&","||","SPACE?","EXTENDS"]),i1=new Set([...T1,"++","--"]),B1=new Set(["-=","+=","/=","*=","%=","||=","&&=","?=","??=","<<=",">>=",">>>=","&=","^=","|=","**=","//=","%%="]),d1=new Set(["*","/","%","//","%%"]),n1=new Set(["==","!=","===","!==","<",">","<=",">=","=~"]),a1=new Set(["<<",">>",">>>"]),r1=new Set(["!","~"]),s1=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+(?:!|[?](?![.?[(]))?)([^\n\S]*:(?![=:]))?/,o1=/^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,t1=/^(?:<=>|::=|::|[-=]>|~>|~=|:=|=!|===|!==|!\?|\?\?|=~|\|>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?\.?|\.{2,3})/,e1=/^[^\n\S]+/,$2=/^(?:\n[^\n\S]*)+/,A2=/^(\s*)###([^#][\s\S]*?)(?:###([^\n\S]*)|###$)|^((?:\s*#(?!##[^#]).*)+)/,Y2=/^[-=]>/,W2=/^(?:~[=>]|=!)/,U2=/^(?:'''\\|"""\\|'''|"""|'|")/,Z2=/^(?:[^\\']|\\[\s\S])*/,Q2=/^(?:[^\\"#$]|\\[\s\S]|\#(?!\{)|\$(?!\{))*/,F2=/^(?:[^\\']|\\[\s\S]|'(?!''))*/,J2=/^(?:[^\\"#$]|\\[\s\S]|"(?!"")|\#(?!\{)|\$(?!\{))*/,I1=/\n+([^\n\S]*)(?=\S)/g,X2=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/,E1=/^\w*/,K2=/^(?!.*(.).*\1)[gimsuy]*$/,D2=/^(?:[^\\\/#\s]|\\[\s\S]|\/(?!\/\/)|\#(?!\{)|\s+(?:#(?!\{).*)?)*/,z2=/^`(?!``)((?:[^`\\]|\\[\s\S])*)`/,H2=/^```((?:[^`\\]|\\[\s\S]|`(?!``))*)```/,M2=/\s+$/,N1=/^\s*(?:,|\??\.(?![.\d]))/,G2=65279;function s(Y,U,{pre:Z=0,row:W=0,col:A=0,len:$=0,data:Q=null}={}){let F=[Y,U];return F.pre=Z,F.data=Q,F.loc={r:W,c:A,n:$},F.spaced=Z>0,F.newLine=!1,F}function y(Y,U,Z){let W=s(Y,U);if(W.generated=!0,Z)W.origin=Z;return W}function b(Y,{row:U=0,col:Z=0,len:W=1}={}){let A=SyntaxError(Y);throw A.location={first_line:U,first_column:Z,last_column:Z+W-1},A}function R2(Y){if(Y==null)return NaN;switch(Y.charAt(1)){case"b":return parseInt(Y.slice(2).replace(/_/g,""),2);case"o":return parseInt(Y.slice(2).replace(/_/g,""),8);case"x":return parseInt(Y.slice(2).replace(/_/g,""),16);default:return parseFloat(Y.replace(/_/g,""))}}class c{tokenize(Y,U={}){this.code=Y,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,Y=this.clean(Y),this.code=Y;while(this.pos<Y.length){this.chunk=Y.slice(this.pos);let Z=this.identifierToken()||this.commentToken()||this.whitespaceToken()||this.lineToken()||this.stringToken()||this.numberToken()||this.regexToken()||this.jsToken()||this.literalToken();if(Z===0)b(`unexpected character: ${this.chunk.charAt(0)}`,{row:this.row,col:this.col});if(this.advance(Z),U.untilBalanced&&this.ends.length===0)return{tokens:this.tokens,index:this.pos}}if(this.closeIndentation(),this.ends.length>0){let Z=this.ends[this.ends.length-1];b(`missing ${Z.tag}`,{row:this.row,col:this.col})}if(U.rewrite===!1)return this.tokens;return this.rewrite(this.tokens)}clean(Y){if(Y.charCodeAt(0)===G2)Y=Y.slice(1);if(Y=Y.replace(/\r\n?/g,`
4
- `),Y=Y.replace(M2,""),/^[^\n\S]/.test(Y))Y=`
5
- `+Y;return Y}advance(Y){let U=this.code.slice(this.pos,this.pos+Y);for(let Z=0;Z<U.length;Z++)if(U[Z]===`
6
- `)this.row++,this.col=0;else this.col++;this.pos+=Y}emit(Y,U,{len:Z,data:W,pre:A}={}){let $=s(Y,U,{pre:A??0,row:this.row,col:this.col,len:Z??(typeof U==="string"?U.length:0),data:W});return this.tokens.push($),$}prev(){return this.tokens[this.tokens.length-1]}prevTag(){let Y=this.prev();return Y?Y[0]:void 0}prevVal(){let Y=this.prev();return Y?Y[1]:void 0}identifierToken(){if(W2.test(this.chunk))return 0;let Y=s1.exec(this.chunk);if(!Y)return 0;let[,U,Z]=Y,W=U.length,A={},$;if(U==="own"&&this.prevTag()==="FOR")return this.emit("OWN",U,{len:W}),W;if(U==="from"&&this.prevTag()==="YIELD")return this.emit("FROM",U,{len:W}),W;if(U==="as"&&!this.seenFor&&(this.seenImport||this.seenExport)){if(this.seenImport){if(this.prevVal()==="*")this.prev()[0]="IMPORT_ALL"}let X=this.prevTag();if(X==="DEFAULT"||X==="IMPORT_ALL"||X==="IDENTIFIER")return this.emit("AS",U,{len:W}),W}if((U==="as"||U==="as!")&&this.seenFor)return this.seenFor=!1,this.emit(U==="as!"?"FORASAWAIT":"FORAS","as",{len:W}),W;if(U==="default"&&this.seenExport&&(this.prevTag()==="EXPORT"||this.prevTag()==="AS"))return this.emit("DEFAULT",U,{len:W}),W;let Q;if(U==="do"&&(Q=/^(\s*super)(?!\(\))/.exec(this.chunk.slice(3))))return this.emit("SUPER","super"),this.emit("CALL_START","("),this.emit("CALL_END",")"),Q[1].length+3;let F=this.prev();if(Z&&F&&F[0]==="SPACE?")Z=null;if(Z||F&&(F[0]==="."||F[0]==="?."||!F.spaced&&F[0]==="@")){if($="PROPERTY",this.inRenderBlock&&F&&F[0]==="."&&!Z){let X=this.chunk.slice(W);while(X[0]==="-"&&/^-[a-zA-Z]/.test(X)){let z=/^-([a-zA-Z][\w]*)/.exec(X);if(!z)break;U+="-"+z[1],W+=1+z[1].length,X=this.chunk.slice(W)}}}else $="IDENTIFIER";let J=U.endsWith("!")||U.endsWith("?")?U.slice(0,-1):U;if($==="IDENTIFIER"&&!U.endsWith("!")&&!U.endsWith("?")&&(G1.has(U)||R1.has(U)||q1.has(U))&&!(this.exportSpecifierList&&q1.has(U))){if(Z1[U]!==void 0)A.original=U,U=Z1[U];$=this.classifyKeyword(U,$,A)}if($==="IDENTIFIER"&&b1.has(J))b(`reserved word '${J}'`,{row:this.row,col:this.col,len:W});if($==="PROPERTY"&&F){if(F[0]==="."&&this.tokens.length>1){let X=this.tokens[this.tokens.length-2];if(X[0]==="UNARY"&&X[1]==="new")X[0]="NEW_TARGET";if(X[0]==="IMPORT"&&X[1]==="import")this.seenImport=!1,X[0]="IMPORT_META"}}if(U.length>1&&U.endsWith("!"))A.await=!0,U=U.slice(0,-1);if(U.length>1&&U.endsWith("?"))A.predicate=!0,U=U.slice(0,-1);let D=this.emit($,U,{len:W,data:Object.keys(A).length?A:null});if($==="RENDER")this.inRenderBlock=!0,this.renderIndent=this.indent;if(Z)return this.emit(":",":",{len:1}),W+Z.length;return W}classifyKeyword(Y,U,Z){switch(Y){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"true":case"false":return"BOOL";case"&&":case"||":return Y}if(y1.has(Y))return"STATEMENT";let W=Y.toUpperCase();if(W==="WHEN"&&i.has(this.prevTag()))return"LEADING_WHEN";if(W==="FOR")return this.seenFor={endsLength:this.ends.length},"FOR";if(W==="UNLESS")return"UNLESS";if(W==="IMPORT")return this.seenImport=!0,"IMPORT";if(W==="EXPORT")return this.seenExport=!0,"EXPORT";if(v1.has(W))return"UNARY";if(g1.has(W)){if(W!=="INSTANCEOF"&&this.seenFor)return this.seenFor=!1,"FOR"+W;if(this.prevVal()==="!"){let A=this.tokens.pop();Z.invert=A.data?.original||A[1]}return"RELATION"}if(G1.has(Y)||R1.has(Y))return W;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 Z=/^#([a-zA-Z_][\w-]*)/.exec(this.chunk);if(Z)return this.emit("IDENTIFIER","div#"+Z[1]),Z[0].length}if(/^\s+#[a-zA-Z_]/.test(this.chunk))return 0}let Y=A2.exec(this.chunk);if(!Y)return 0;return Y[0].length}whitespaceToken(){let Y=e1.exec(this.chunk);if(!Y&&this.chunk[0]!==`
7
- `)return 0;let U=this.prev();if(U)if(Y)U.spaced=!0,U.pre=Y[0].length;else U.newLine=!0;return Y?Y[0].length:0}lineToken(){let Y=$2.exec(this.chunk);if(!Y)return 0;let U=Y[0],Z=U.length-1-U.lastIndexOf(`
8
- `);if(this.isUnfinished()){if(Z<this.indent&&/^\s*,/.test(this.chunk)&&!w1.has(this.prevTag())){if(this.outdentTo(Z,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(Z===this.indent)return this.emitNewline(),U.length;if(Z>this.indent){if(!this.tokens.length)return this.indent=Z,U.length;let W=Z-this.indent;return this.emit("INDENT",W,{len:Z}),this.indents.push(W),this.ends.push({tag:"OUTDENT"}),this.indent=Z,U.length}return this.outdentTo(Z,U.length),U.length}outdentTo(Y,U=0){if(this.inRenderBlock&&Y<=this.renderIndent)this.inRenderBlock=!1;let Z=this.indent-Y;while(Z>0){let W=this.indents[this.indents.length-1];if(!W)Z=0;else this.indents.pop(),this.pair("OUTDENT"),this.emit("OUTDENT",Z,{len:U}),Z-=W}this.emitNewline(),this.indent=Y}closeIndentation(){this.outdentTo(0)}emitNewline(){if(this.prevTag()!=="TERMINATOR")this.emit("TERMINATOR",`
9
- `,{len:0})}isUnfinished(){if(this.inRenderBlock&&N1.test(this.chunk)&&/^\s*\./.test(this.chunk))return!1;if(this.inRenderBlock&&this.prevTag()==="."){let Y=this.tokens.length;if(Y>=2){let U=this.tokens[Y-2][0];if(U==="INDENT"||U==="TERMINATOR"||U==="OUTDENT")return!1}}return N1.test(this.chunk)||w1.has(this.prevTag())}pair(Y){let U=this.ends[this.ends.length-1];if(!U||Y!==U.tag){if(U?.tag==="OUTDENT"){let Z=this.indents[this.indents.length-1];if(Z)this.outdentTo(this.indent-Z);return this.pair(Y)}b(`unmatched ${Y}`,{row:this.row,col:this.col})}return this.ends.pop()}stringToken(){let Y=U2.exec(this.chunk);if(!Y)return 0;let U=Y[0],Z=U.length>1&&U.endsWith("\\"),W=Z?U.slice(0,-1):U,A=this.prev();if(A&&this.prevVal()==="from"&&(this.seenImport||this.seenExport))A[0]="FROM";let $;switch(W){case"'":$=Z2;break;case'"':$=Q2;break;case"'''":$=F2;break;case'"""':$=J2;break}let{tokens:Q,index:F}=this.matchWithInterpolations($,U,W),J=W.length===3,D=null;if(J)D=this.processHeredocIndent(F,W,Q);return this.mergeInterpolationTokens(Q,{quote:W,indent:D,endOffset:F,raw:Z}),F}processHeredocIndent(Y,U,Z){let W=Y-U.length,A=W-1;while(A>=0&&this.chunk[A]!==`
10
- `)A--;A++;let $=this.chunk.slice(A,W),Q=/^\s*$/.test($)?$.length:null,F="";for(let X of Z)if(X[0]==="NEOSTRING")F+=X[1];let J=null,D;I1.lastIndex=0;while(D=I1.exec(F))if(J===null||D[1].length>0&&D[1].length<J.length)J=D[1];if(Q===null)return J;if(J===null)return" ".repeat(Q);if(Q<=J.length)return" ".repeat(Q);return J}matchWithInterpolations(Y,U,Z,W){if(!Z)Z=U;if(!W)W=/^[#$]\{/;let A=[],$=U.length;if(this.chunk.slice(0,$)!==U)return null;let Q=this.chunk.slice($);while(!0){let[F]=Y.exec(Q);A.push(["NEOSTRING",F,{offset:$}]),Q=Q.slice(F.length),$+=F.length;let J=W.exec(Q);if(!J)break;let X=J[0].length-1,z=Q.slice(X),M=new c().tokenize(z,{row:this.row,col:this.col+$+X,untilBalanced:!0,rewrite:!1}),K=M.index+X;if(Q[K-1]==="}"){let G=M.tokens[0],q=M.tokens[M.tokens.length-1];G[0]="INTERPOLATION_START",G[1]="(",q[0]="INTERPOLATION_END",q[1]=")"}if(M.tokens[1]?.[0]==="TERMINATOR")M.tokens.splice(1,1);let H=M.tokens.length;if(H>2&&M.tokens[H-3]?.[0]==="INDENT"&&M.tokens[H-2]?.[0]==="OUTDENT")M.tokens.splice(H-3,2);A.push(["TOKENS",M.tokens]),Q=Q.slice(K),$+=K}if(Q.slice(0,Z.length)!==Z)b(`missing ${Z}`,{row:this.row,col:this.col});return{tokens:A,index:$+Z.length}}mergeInterpolationTokens(Y,{quote:U,indent:Z,endOffset:W,raw:A}){if(Y.length>1)this.emit("STRING_START","(",{len:U?.length||0,data:{quote:U}});for(let $=0;$<Y.length;$++){let[Q,F]=Y[$];if(Q==="TOKENS")for(let J of F)this.tokens.push(J);else if(Q==="NEOSTRING"){let J=F;if(Z){let D=new RegExp("\\n"+Z,"g");J=J.replace(D,`
11
- `)}if($===0&&U?.length===3)J=J.replace(/^\n/,"");if($===Y.length-1&&U?.length===3)J=J.replace(/\n[^\S\n]*$/,"");if(A)J=J.replace(/\\([nrtbfv0\\'"`xu])/g,"\\\\$1");this.emit("STRING",`"${J}"`,{len:F.length,data:{quote:U}})}}if(Y.length>1)this.emit("STRING_END",")",{len:U?.length||0});return W}numberToken(){let Y=o1.exec(this.chunk);if(!Y)return 0;let U=Y[0],Z=U.length,W={row:this.row,col:this.col};if(/^0[BOX]/.test(U))b(`radix prefix in '${U}' must be lowercase`,{...W,col:W.col+1});if(/^0\d*[89]/.test(U))b(`decimal literal '${U}' must not be prefixed with '0'`,{...W,len:Z});if(/^0\d+/.test(U))b(`octal literal '${U}' must be prefixed with '0o'`,{...W,len:Z});let A=R2(U),$=A===1/0?"INFINITY":"NUMBER",Q={parsedValue:A};if($==="INFINITY")Q.original=U;return this.emit($,U,{len:Z,data:Q}),Z}regexToken(){let Y=this.matchWithInterpolations(D2,"///");if(Y){let{tokens:D,index:X}=Y,[z]=E1.exec(this.chunk.slice(X)),M=X+z.length;if(D.length===1||!D.some((K)=>K[0]==="TOKENS")){let K=(D[0]?.[1]||"").replace(/(?<!\\)\//g,"\\/");this.emit("REGEX",`/${K}/${z}`,{len:M,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(D,{quote:"///",endOffset:M-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 M}let U=X2.exec(this.chunk);if(!U)return 0;let[Z,W,A]=U,$=this.prev();if($){if($.spaced&&r.has($[0])&&(!A||/^\/=?\s/.test(Z)))return 0;if(i1.has($[0])&&!($.spaced&&r.has($[0])))return 0}if(!A)b("missing / (unclosed regex)",{row:this.row,col:this.col});let Q=Z.length,[F]=E1.exec(this.chunk.slice(Q)),J=Q+F.length;if(!K2.test(F))b(`invalid regular expression flags ${F}`,{row:this.row,col:this.col+Q,len:F.length});return this.emit("REGEX",`/${W}/${F}`,{len:J,data:{delimiter:"/"}}),J}jsToken(){if(this.chunk[0]!=="`")return 0;let Y=H2.exec(this.chunk)||z2.exec(this.chunk);if(!Y)return 0;let U=Y[1],Z=Y[0].length;return this.emit("JS",U,{len:Z,data:{here:Y[0].startsWith("```")}}),Z}literalToken(){let Y=t1.exec(this.chunk),U=Y?Y[0]:this.chunk.charAt(0),Z=U,W=this.prev();if(Y2.test(U))this.tagParameters();if(U==="="&&W&&W[1]==="."&&!W.spaced){let A=this.tokens,$=A.length-2;while($>=1&&A[$][0]==="PROPERTY"&&A[$-1]?.[1]===".")$-=2;if($>=0&&(A[$][0]==="IDENTIFIER"||A[$][0]===")"||A[$][0]==="]")){let Q=A.slice($,A.length-1);W[0]="=",W[1]="=";for(let F of Q)this.tokens.push(s(F[0],F[1],{pre:0,row:F[2],col:F[3],len:F[4]}));return this.tokens.push(s(".",".",{pre:0,row:this.row,col:this.col,len:1})),U.length}}if(W&&(U==="="||B1.has(U))){if(U==="="&&(W[1]==="||"||W[1]==="&&"||W[1]==="??")&&!W.spaced)return W[0]="COMPOUND_ASSIGN",W[1]+="=",U.length}if(U==="("&&W?.[0]==="IMPORT")W[0]="DYNAMIC_IMPORT";if(U==="{"&&this.seenImport)this.importSpecifierList=!0;if(U==="}"&&this.importSpecifierList)this.importSpecifierList=!1;if(U==="{"&&W?.[0]==="EXPORT")this.exportSpecifierList=!0;if(U==="}"&&this.exportSpecifierList)this.exportSpecifierList=!1;if(U===";")this.seenFor=this.seenImport=this.seenExport=!1,Z="TERMINATOR";else if(U==="|>")Z="PIPE";else if(U==="::=")Z="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==="::")Z="TYPE_ANNOTATION";else if(U==="~=")Z="COMPUTED_ASSIGN";else if(U===":=")Z="REACTIVE_ASSIGN";else if(U==="<=>")Z="BIND";else if(U==="~>")Z="REACT_ASSIGN";else if(U==="=!")Z="READONLY_ASSIGN";else if(U==="*"&&(!W||W[0]==="TERMINATOR"||W[0]==="INDENT"||W[0]==="OUTDENT")&&(/^[a-zA-Z_$]/.test(this.chunk[1]||"")||this.chunk[1]==="@")){let A=this.chunk.slice(1),$=/^@(\s*)=(?!=)/.exec(A);if($){let F=$[1];this.emit("IDENTIFIER","Object"),this.emit(".",".");let J=this.emit("PROPERTY","assign");return J.spaced=!0,this.emit("@","@"),this.emit(",",","),2+F.length+1}let Q=/^((?:(?!\s)[$\w\x7f-\uffff])+(?:\.[a-zA-Z_$][\w]*)*)(\s*)=(?!=)/.exec(A);if(Q){let F=Q[1],J=Q[2],D=F.split("."),X=()=>{this.emit("IDENTIFIER",D[0]);for(let M=1;M<D.length;M++)this.emit(".","."),this.emit("PROPERTY",D[M])};X(),this.emit("=","="),this.emit("IDENTIFIER","Object"),this.emit(".","."),this.emit("PROPERTY","assign"),this.emit("CALL_START","("),X(),this.emit("COMPOUND_ASSIGN","??="),this.emit("{","{"),this.emit("}","}"),this.emit(",",",");let z=this.prev();return z.mergeClose=!0,1+F.length+J.length+1}}else if(U==="*"&&W?.[0]==="EXPORT")Z="EXPORT_ALL";else if(d1.has(U))Z="MATH";else if(n1.has(U))Z="COMPARE";else if(B1.has(U))Z="COMPOUND_ASSIGN";else if(r1.has(U))Z="UNARY_MATH";else if(a1.has(U))Z="SHIFT";else if(U==="?"&&W?.spaced)Z="SPACE?";else if(U==="?"&&(this.chunk[1]==="["||this.chunk[1]==="("))Z="?.";else if(W){if(U==="("&&!W.spaced&&r.has(W[0])){if(W[0]==="?.")W[0]="ES6_OPTIONAL_CALL";Z="CALL_START"}if(U==="["&&!W.spaced&&T1.has(W[0])){if(Z="INDEX_START",W[0]==="?.")W[0]="ES6_OPTIONAL_INDEX"}}if(U==="("||U==="{"||U==="[")this.ends.push({tag:l1[U],origin:[Z,U]});else if(U===")"||U==="}"||U==="]")this.pair(U);return this.emit(Z,U,{len:U.length}),U.length}tagParameters(){if(this.prevTag()!==")")return this.tagDoIife();let Y=this.tokens.length-1,U=[];this.tokens[Y][0]="PARAM_END";while(Y-- >0){let Z=this.tokens[Y];if(Z[0]===")")U.push(Z);else if(Z[0]==="("||Z[0]==="CALL_START")if(U.length)U.pop();else if(Z[0]==="(")return Z[0]="PARAM_START",this.tagDoIife(Y-1);else{this.tokens[this.tokens.length-1][0]="CALL_END";return}}}tagDoIife(Y){let U=this.tokens[Y??this.tokens.length-1];if(U?.[0]==="DO")U[0]="DO_IIFE"}rewrite(Y){return this.tokens=Y,this.removeLeadingNewlines(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.rewriteRender?.(),this.rewriteTypes(),this.tagPostfixConditionals(),this.addImplicitBracesAndParens(),this.addImplicitCallCommas(),this.closeMergeAssignments(),this.tokens}removeLeadingNewlines(){let Y=0;while(this.tokens[Y]?.[0]==="TERMINATOR")Y++;if(Y>0)this.tokens.splice(0,Y)}closeOpenCalls(){this.scanTokens((Y,U)=>{if(Y[0]==="CALL_START")this.detectEnd(U+1,(Z)=>Z[0]===")"||Z[0]==="CALL_END",(Z)=>Z[0]="CALL_END");return 1})}closeOpenIndexes(){this.scanTokens((Y,U)=>{if(Y[0]==="INDEX_START")this.detectEnd(U+1,(Z)=>Z[0]==="]"||Z[0]==="INDEX_END",(Z,W)=>{if(this.tokens[W+1]?.[0]===":")Y[0]="[",Z[0]="]";else Z[0]="INDEX_END"});return 1})}normalizeLines(){let Y=null,U=null,Z=null,W=($,Q)=>{return $[1]!==";"&&p1.has($[0])&&!($[0]==="TERMINATOR"&&O1.has(this.tokens[Q+1]?.[0]))&&!($[0]==="ELSE"&&Y!=="THEN")||$[0]==="INDENT"&&!$.generated&&(Y==="->"||Y==="=>")||$[0]===","&&(Y==="->"||Y==="=>")&&!this.commaInImplicitCall(Q)&&!this.commaInImplicitObject(Q)||_1.has($[0])&&(this.tokens[Q-1]?.newLine||this.tokens[Q-1]?.[0]==="OUTDENT")},A=($,Q)=>{let F=this.tokens[Q-1]?.[0]===","?Q-1:Q;this.tokens.splice(F,0,Z)};this.scanTokens(($,Q,F)=>{let[J]=$;if(J==="TERMINATOR"){if(this.tokens[Q+1]?.[0]==="ELSE"&&this.tokens[Q-1]?.[0]!=="OUTDENT")return F.splice(Q,1,...this.makeIndentation()),1;if(O1.has(this.tokens[Q+1]?.[0]))return F.splice(Q,1),0}if(J==="CATCH")for(let D=1;D<=2;D++){let X=this.tokens[Q+D]?.[0];if(X==="OUTDENT"||X==="TERMINATOR"||X==="FINALLY")return F.splice(Q+D,0,...this.makeIndentation()),2+D}if((J==="->"||J==="=>")&&(this.tokens[Q+1]?.[0]===","||this.tokens[Q+1]?.[0]==="]"))return[U,Z]=this.makeIndentation(),F.splice(Q+1,0,U,Z),1;if(P1.has(J)&&this.tokens[Q+1]?.[0]!=="INDENT"&&!(J==="ELSE"&&this.tokens[Q+1]?.[0]==="IF")){if(Y=J,[U,Z]=this.makeIndentation(),J==="THEN")U.fromThen=!0;if(F.splice(Q+1,0,U),this.detectEnd(Q+2,W,A),J==="THEN")F.splice(Q,1);return 1}return 1})}tagPostfixConditionals(){let Y=null,U=(W,A)=>{return W[0]==="TERMINATOR"||W[0]==="INDENT"&&!P1.has(this.tokens[A-1]?.[0])},Z=(W)=>{if(W[0]!=="INDENT"||W.generated&&!W.fromThen)Y[0]="POST_"+Y[0]};this.scanTokens((W,A)=>{if(W[0]!=="IF"&&W[0]!=="UNLESS")return 1;return Y=W,this.detectEnd(A+1,U,Z),1})}addImplicitBracesAndParens(){let Y=[],U=!1;this.scanTokens((Z,W,A)=>{let[$]=Z,Q=A[W-1]||[],F=A[W+1]||[],[J]=Q,[D]=F,X=W,z=(O)=>W-X+O,M=()=>Y[Y.length-1],K=(O)=>O?.[2]?.ours,H=()=>K(M())&&M()?.[0]==="(",G=()=>K(M())&&M()?.[0]==="{",q=(O)=>{Y.push(["(",O,{ours:!0}]),A.splice(O,0,y("CALL_START","("))},R=()=>{Y.pop(),A.splice(W,0,y("CALL_END",")")),W+=1},w=(O,I={})=>{Y.push(["{",O,{sameLine:!0,startsLine:I.startsLine??!0,ours:!0}]);let N=y("{","{");if(!N.data)N.data={};N.data.generated=!0,A.splice(O,0,N)},B=(O)=>{O=O??W,Y.pop(),A.splice(O,0,y("}","}")),W+=1};if((H()||G())&&m1.has($))return Y.push(["CONTROL",W,{ours:!0}]),z(1);if($==="INDENT"&&K(M())){if(J!=="=>"&&J!=="->"&&J!=="["&&J!=="("&&J!==","&&J!=="{"&&J!=="ELSE"&&J!=="=")while(H()||G()&&J!==":")if(H())R();else B();if(M()?.[2]?.ours&&M()[0]==="CONTROL")Y.pop();return Y.push([$,W]),z(1)}if(x.has($))return Y.push([$,W]),z(1);if(g.has($)){while(K(M()))if(H())R();else if(G())B();else Y.pop();Y.pop()}if(U1.has($)&&Z.spaced&&(a.has(D)||D==="..."&&a.has(A[W+2]?.[0])||x1.has(D)&&!F.spaced&&!F.newLine)&&!(($==="]"||$==="}")&&(D==="->"||D==="=>")))return q(W+1),z(2);if(U1.has($)&&this.tokens[W+1]?.[0]==="INDENT"&&this.looksObjectish(W+2)&&!this.findTagsBackwards(W,["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"]))return q(W+1),Y.push(["INDENT",W+2]),z(3);if($==="SPACE?")U=!0;if($===":"){if(U)return U=!1,z(1);let O=g.has(this.tokens[W-1]?.[0])?Y[Y.length-1]?.[1]??W-1:W-1;if(this.tokens[W-2]?.[0]==="@")O=W-2;let I=O<=0||i.has(this.tokens[O-1]?.[0])||this.tokens[O-1]?.newLine;if(M()){let[N,T]=M(),S=Y[Y.length-2];if((N==="{"||N==="INDENT"&&S?.[0]==="{"&&!K(S))&&(I||this.tokens[O-1]?.[0]===","||this.tokens[O-1]?.[0]==="{"||this.tokens[O]?.[0]==="{"))return z(1)}return w(O,{startsLine:!!I}),z(2)}if(i.has($))for(let O=Y.length-1;O>=0;O--){if(!K(Y[O]))break;if(Y[O][0]==="{")Y[O][2].sameLine=!1}let P=J==="OUTDENT"||Q.newLine,E=$==="||"||$==="&&",_=!1;if(E){let O=W+1,I=A[O]?.[0];if(I==="("||I==="["||I==="{"){for(let N=1;++O<A.length&&N>0;)if(I=A[O][0],I==="("||I==="["||I==="{")N++;else if(I===")"||I==="]"||I==="}")N--}else if(I&&I!=="TERMINATOR"&&I!=="OUTDENT"&&I!==",")O++;_=A[O]?.[0]===","}if(c1.has($)&&!_||_1.has($)&&P)while(K(M())){let[O,,{sameLine:I,startsLine:N}]=M();if(H()&&J!==",")R();else if(G()&&!E&&I&&$!=="TERMINATOR"&&J!==":")B();else if(G()&&$==="TERMINATOR"&&J!==","&&!(N&&this.looksObjectish(W+1)))B();else if(M()?.[2]?.ours&&M()[0]==="CONTROL"&&A[M()[1]]?.[0]==="CLASS"&&$==="TERMINATOR")Y.pop();else break}if($===","&&!this.looksObjectish(W+1)&&G()&&(D!=="TERMINATOR"||!this.looksObjectish(W+2))){let O=D==="OUTDENT"?1:0;while(G())B(W+O)}return z(1)})}addImplicitCallCommas(){let Y=0,U=0,Z=this.tokens;while(U<Z.length){let W=Z[U][0],A=U>0?Z[U-1][0]:null;if(W==="CALL_START"||W==="(")Y++;if(W==="CALL_END"||W===")")Y--;if(Y>0&&(W==="->"||W==="=>")&&k1.has(A))Z.splice(U,0,y(",",",")),U++;U++}}scanTokens(Y){let U=0;while(U<this.tokens.length)U+=Y.call(this,this.tokens[U],U,this.tokens)}detectEnd(Y,U,Z,W={}){let A=0;while(Y<this.tokens.length){let $=this.tokens[Y];if(A===0&&U.call(this,$,Y))return Z.call(this,$,Y);if(x.has($[0]))A++;if(g.has($[0]))A--;if(A<0){if(W.returnOnNegativeLevel)return;return Z.call(this,$,Y)}Y++}}closeMergeAssignments(){let Y=this.tokens;for(let U=0;U<Y.length;U++){if(!Y[U].mergeClose)continue;let Z=0;for(let W=U+1;W<Y.length;W++){let A=Y[W][0];if(A==="("||A==="["||A==="{"||A==="CALL_START"||A==="INDEX_START"||A==="INDENT")Z++;if(A===")"||A==="]"||A==="}"||A==="CALL_END"||A==="INDEX_END"||A==="OUTDENT")Z--;if(Z<0||Z===0&&A==="TERMINATOR"){Y.splice(W,0,y("CALL_END",")",Y[W-1]));break}if(W===Y.length-1){Y.splice(W+1,0,y("CALL_END",")",Y[W]));break}}}}commaInImplicitCall(Y){let U=0;for(let Z=Y-1;Z>=0;Z--){let W=this.tokens[Z][0];if(g.has(W)){U++;continue}if(x.has(W)){if(W==="INDENT")return!1;if(U--,U<0)return!1;continue}if(U>0)continue;if(U1.has(W)&&this.tokens[Z].spaced){let A=this.tokens[Z+1]?.[0];return a.has(A)||A==="..."&&a.has(this.tokens[Z+2]?.[0])}}return!1}commaInImplicitObject(Y){let U=0;for(let Z=Y-1;Z>=0;Z--){let W=this.tokens[Z][0];if(g.has(W)){U++;continue}if(x.has(W)){if(U--,U<0)return!1;continue}if(U>0)continue;if(W===":"&&Z>0&&this.tokens[Z-1][0]==="PROPERTY")return this.looksObjectish(Y+1);if(i.has(W))return!1}return!1}looksObjectish(Y){if(!this.tokens[Y])return!1;if(this.tokens[Y]?.[0]==="@"&&this.tokens[Y+2]?.[0]===":")return!0;if(this.tokens[Y+1]?.[0]===":")return!0;if(x.has(this.tokens[Y]?.[0])){let U=null;if(this.detectEnd(Y+1,(Z)=>g.has(Z[0]),(Z,W)=>U=W),U&&this.tokens[U+1]?.[0]===":")return!0}return!1}findTagsBackwards(Y,U){let Z=new Set(U),W=[];while(Y>=0){let A=this.tokens[Y]?.[0];if(!W.length&&Z.has(A))return!0;if(g.has(A))W.push(A);if(x.has(A)&&W.length)W.pop();if(!W.length&&(x.has(A)&&!this.tokens[Y]?.generated||i.has(A)))break;Y--}return!1}makeIndentation(Y){let U=y("INDENT",2),Z=y("OUTDENT",2);if(Y)U.generated=Z.generated=!0,U.origin=Z.origin=Y;else U.explicit=Z.explicit=!0;return[U,Z]}}H1(c);var q2={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,ReactAssign: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,REACT_ASSIGN: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,"--":195,"++":196,MATH:197,"**":198,SHIFT:199,COMPARE:200,"&":201,"^":202,"|":203,"||":204,"??":205,"&&":206,"!?":207,PIPE:208,RELATION:209,"SPACE?":210,COMPOUND_ASSIGN:211},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:"REACT_ASSIGN",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:"--",196:"++",197:"MATH",198:"**",199:"SHIFT",200:"COMPARE",201:"&",202:"^",203:"|",204:"||",205:"??",206:"&&",207:"!?",208:"PIPE",209:"RELATION",210:"SPACE?",211:"COMPOUND_ASSIGN"},parseTable:(()=>{let Y=[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,2,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,4,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,54,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-13,-13,132,105,106,-13,-13,-13,-13,135,136,137,-13,138,-13,-13,-13,-13,-13,-13,-13,133,-13,139,-13,-13,134,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,131,-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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,140,141,142,-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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,57,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,143,144,145,146,147,-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,52,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,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,52,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,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,52,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,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,52,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,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,52,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,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,52,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,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,52,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,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,52,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,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,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,152,104,-173,-173,-173,154,155,153,99,157,156,151,148,-173,-173,149,150,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,2,1,159,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,160,102,103,158,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,2,1,161,162,163,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,2,1,164,165,163,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,2,1,166,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,172,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,173,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,174,163,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,175,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,177,178,179,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,176,72,73,93,99,83,87,84,85,167,168,90,91,86,88,89,82,171,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,177,178,179,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,180,72,73,93,99,83,87,84,85,167,168,90,91,86,88,89,82,171,60,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,-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,181,182,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,183,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,2,1,185,184,163,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,186,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,187,-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,4,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,160,188,2,66,10,160,189,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,4,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,193,152,104,154,155,153,99,190,191,83,156,195,192,194,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,2,1,196,163,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,197,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-304,-304,177,178,179,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-304,160,-304,102,103,-304,198,200,72,73,93,-304,99,-304,-304,-304,-304,-304,83,-304,87,-304,84,85,-304,-304,167,-304,168,90,91,86,88,89,82,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,199,171,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,1,66,201,2,66,10,160,202,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,2,1,203,163,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,204,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-224,-224,205,163,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,206,-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,167,-224,168,90,91,86,88,89,82,-224,69,64,65,207,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,169,170,171,46,47,48,50,51,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,2,55,1,208,104,2,55,1,209,104,6,15,19,89,2,1,1,211,210,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,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-221,-221,212,163,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,213,-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,167,-221,168,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,169,170,171,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,214,218,104,105,106,217,215,216,219,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,177,178,226,227,228,229,221,222,223,224,232,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,225,104,105,106,102,103,53,233,72,73,93,220,83,87,84,85,66,167,168,90,91,86,88,89,82,61,67,62,230,231,171,57,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,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,57,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,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,52,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,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,52,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,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,52,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,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,52,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,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,52,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,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,52,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,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,52,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,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,52,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,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,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,2,1,234,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,235,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,2,1,236,245,163,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,242,102,103,243,53,52,72,73,93,99,59,83,237,87,247,84,85,238,239,241,244,240,66,42,43,90,91,246,86,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,249,250,248,139,2,109,11,251,139,52,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,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,54,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-206,-206,252,253,-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,254,1,83,255,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,2,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,2,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,61,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,-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,61,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,-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,2,1,256,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,257,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,258,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,259,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,261,163,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,160,102,103,260,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,267,100,101,269,104,270,253,105,106,-109,-109,-109,271,262,-109,263,268,272,264,265,266,273,52,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,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,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,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,52,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,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,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,177,178,179,34,35,36,274,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,233,72,73,93,99,83,87,84,85,167,168,90,91,86,88,89,82,171,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,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,-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,55,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,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,6,54,5,1,1,2,1,278,105,106,275,276,277,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,2,1,-5,279,-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,2,1,280,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,281,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,282,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,283,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,284,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,285,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,286,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,287,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,288,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,291,163,289,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,290,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,294,163,292,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,293,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,297,163,295,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,296,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,298,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,299,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,300,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,301,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,302,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,303,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,14,39,16,1,24,1,1,7,4,5,5,2,24,37,2,307,152,104,154,155,153,99,304,305,83,156,195,306,194,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,2,1,308,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,309,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,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,4,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,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,53,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,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,53,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,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,2,109,11,310,139,2,57,1,311,253,2,57,1,312,253,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,2,1,313,163,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,318,77,78,79,80,81,100,101,92,104,105,106,314,102,103,316,53,52,72,73,93,315,99,59,83,87,320,84,85,317,319,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,85,321,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,2,1,326,245,163,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,325,102,103,53,52,72,73,93,99,59,83,87,247,84,85,324,66,322,42,43,90,91,246,323,86,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,327,253,2,57,1,328,253,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,2,1,329,163,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,330,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,332,331,163,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,333,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,335,334,163,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,336,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,338,337,163,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,160,102,103,339,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,341,340,163,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,342,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,344,343,163,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,345,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,9,6,60,1,5,23,1,8,18,2,-217,-217,-217,347,348,-217,-217,-217,346,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,349,-178,-178,15,6,49,1,10,1,5,8,1,1,7,14,2,17,2,5,-181,152,104,-181,-181,-181,154,155,153,99,157,156,-181,-181,350,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,252,253,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,2,1,326,245,163,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,242,102,103,243,53,52,72,73,93,99,59,83,237,87,247,84,85,238,239,241,244,240,66,42,43,90,91,246,86,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,52,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,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,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,2,1,352,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,351,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,125,126,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,118,-370,120,-370,-370,-370,9,1,5,59,1,1,5,32,18,16,-367,-367,-367,-367,-367,-367,-367,-367,-367,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,4,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,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,4,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,111,-372,-372,-372,-372,-372,-372,118,-372,120,-372,-372,-372,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,152,104,-173,-173,-173,154,155,153,99,157,156,151,353,-173,-173,149,150,2,66,10,160,158,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,2,1,161,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,164,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,5,15,108,2,1,1,211,167,168,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,4,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,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,4,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,4,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,125,126,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,118,-376,120,-376,-376,-376,2,81,8,354,99,57,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-378,-378,-86,-86,-378,-378,-378,-378,-86,-86,-86,-86,-86,-86,-86,-86,-378,-86,-378,-378,-378,-378,-378,-378,-378,-378,-86,-378,-378,-86,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-86,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,10,54,5,1,23,1,1,3,21,11,11,132,105,106,135,136,137,138,133,139,134,3,83,1,1,140,141,142,52,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,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,57,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-379,-379,-86,-86,-379,-379,-379,-379,-86,-86,-86,-86,-86,-86,-86,-86,-379,-86,-379,-379,-379,-379,-379,-379,-379,-379,-86,-379,-379,-86,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-86,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-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,4,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,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,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,2,1,357,355,163,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,356,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,2,1,358,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,359,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,66,10,68,160,360,361,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,362,363,364,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,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,4,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,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,4,94,69,2,2,366,365,367,368,11,55,1,24,1,1,7,4,10,2,24,39,152,104,154,155,153,99,369,157,156,195,194,11,55,1,24,1,1,7,4,10,2,24,39,152,104,154,155,153,99,370,157,156,195,194,3,66,10,88,160,371,372,5,72,22,69,2,2,373,-302,-302,-302,-302,6,72,1,21,69,2,2,-300,374,-300,-300,-300,-300,23,66,26,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,375,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,376,377,378,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,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,2,1,379,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,59,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-308,-308,-86,-86,-308,160,-308,-308,-86,-86,-86,380,-86,-86,-86,-86,-86,-308,-86,-308,-308,-308,-308,-308,-308,-308,-308,-86,-308,-308,-86,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,381,-308,-308,-86,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,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,2,1,384,385,386,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,382,383,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,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,4,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,387,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,4,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,388,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,2,1,389,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,66,10,44,160,391,390,2,66,10,160,392,9,1,5,59,1,1,5,32,18,16,-369,-369,-369,-369,-369,-369,-369,-369,-369,52,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,3,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,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,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,4,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,393,99,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,2,72,70,395,394,1,142,396,7,55,1,10,30,83,1,2,401,104,400,397,398,399,402,2,72,70,-337,-337,1,181,403,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,267,100,101,408,104,270,253,105,106,407,-109,-109,271,262,404,263,268,272,264,265,266,273,409,405,406,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,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,61,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,-89,-89,-89,-89,-89,-89,-89,-89,410,-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,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,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,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,2,1,411,163,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,412,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,142,413,56,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,144,145,146,147,-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,57,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,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,2,6,132,107,414,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,2,1,415,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-199,-199,-199,-199,127,-199,320,416,319,-199,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,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,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,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,2,1,326,245,163,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,243,53,52,72,73,93,99,59,83,417,87,247,84,85,419,418,66,42,43,90,91,246,86,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,421,422,-217,-217,420,-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,2,1,423,-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,2,1,326,245,163,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,242,102,103,243,53,52,72,73,93,99,59,83,87,247,84,85,425,424,241,244,240,66,42,43,90,91,246,86,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,2,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,2,1,-202,426,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,53,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,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,2,57,1,427,253,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,2,1,428,163,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,429,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,53,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,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,61,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,-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,61,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,-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,430,253,2,57,1,431,253,24,66,10,16,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,432,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,433,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-255,-255,-255,-255,-255,-255,-255,-255,127,-255,-255,434,-255,-255,-255,-255,-255,-255,-255,-255,125,126,96,97,-255,-255,-255,-255,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-257,-257,-257,-257,-257,-257,-257,-257,127,-257,-257,435,-257,-257,-257,-257,-257,-257,-257,-257,125,126,96,97,-257,-257,-257,-257,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,4,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,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-264,-264,-264,160,-264,-264,436,-264,-264,127,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,125,126,96,97,-264,-264,-264,-264,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,437,-114,8,6,60,1,5,23,1,8,18,-217,-217,-217,439,438,-217,-217,-217,7,6,60,1,5,1,18,5,-123,-123,-123,-123,440,-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,2,1,441,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,57,1,45,252,253,442,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,446,448,447,269,104,270,253,445,271,99,443,87,444,449,450,86,82,53,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,-39,-39,451,-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,278,105,106,452,453,277,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,2,1,454,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,456,455,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,125,126,-382,-382,-382,-382,-382,-382,-382,-382,110,111,-382,-382,-382,-382,-382,-382,118,-382,120,-382,-382,-382,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,4,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,125,126,-383,-383,-383,-383,-383,-383,-383,-383,110,111,-383,-383,-383,-383,-383,-383,118,-383,120,-383,-383,-383,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,4,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,125,126,-384,-384,-384,-384,-384,-384,-384,-384,-384,111,-384,-384,-384,-384,-384,-384,118,-384,120,-384,-384,-384,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,4,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,-385,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,4,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,109,108,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,4,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,109,108,110,111,112,-387,-387,-387,-387,-387,118,-387,120,-387,122,-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,4,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,109,108,110,111,112,113,-388,-388,-388,-388,118,-388,120,-388,122,-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,4,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,112,113,114,-389,-389,-389,118,-389,120,-389,122,-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,4,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,113,114,115,-390,-390,118,-390,120,-390,122,-390,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,4,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,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,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,4,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,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-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,4,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,125,126,-398,-398,-398,-398,-398,-398,109,108,110,111,112,113,114,115,116,-398,118,119,120,-398,122,-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,4,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,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-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,4,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,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-399,-399,-399,-399,-399,-399,-399,-399,127,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,124,125,126,96,97,-399,-399,-399,-399,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,4,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,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,4,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,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,4,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,125,126,-397,-397,-397,-397,-397,-397,109,108,110,111,112,113,114,115,116,-397,118,-397,120,-397,122,-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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-400,-400,-400,-400,-400,-400,-400,-400,127,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,124,125,126,96,97,-400,-400,-400,-400,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,4,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,117,118,119,120,-401,122,-401,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,125,126,-402,-402,-402,-402,-402,-402,109,108,110,111,112,-402,-402,-402,-402,-402,118,-402,120,-402,-402,-402,23,91,1,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,457,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,4,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,458,-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,4,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,4,94,69,2,2,460,459,461,462,11,55,1,24,1,1,7,4,10,2,24,39,152,104,154,155,153,99,463,157,156,195,194,11,55,1,24,1,1,7,4,10,2,24,39,152,104,154,155,153,99,464,157,156,195,194,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,4,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,-298,-298,-298,-298,465,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,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,4,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,4,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,124,125,126,96,97,-238,-238,-238,-238,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,53,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,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,61,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,-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,61,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,-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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,466,127,320,467,319,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,2,1,468,163,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,469,99,59,83,87,320,84,85,317,319,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,86,470,1,86,471,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,2,1,472,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,52,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,-46,-46,-46,-46,-46,473,-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,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,2,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,2,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,2,1,474,163,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,475,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,53,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,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,8,6,60,1,5,23,1,8,18,-217,-217,-217,477,476,-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,2,1,326,245,163,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,325,102,103,53,52,72,73,93,99,59,83,87,247,84,85,324,66,42,43,90,91,246,478,86,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,4,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,61,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,-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,61,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,-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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,479,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,2,1,480,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,2,1,481,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,482,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,2,1,483,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,484,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,2,1,485,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,4,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,2,1,486,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,487,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,2,1,488,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,489,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,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,152,104,-218,-218,154,155,153,99,-218,157,-218,156,151,-218,491,150,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,2,1,494,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,6,6,60,1,5,50,2,-180,-180,-180,-180,-180,-180,55,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,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,2,6,61,107,495,9,6,60,1,5,23,1,8,18,2,-217,-217,-217,347,348,-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,4,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,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,2,1,498,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,499,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,23,67,25,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,500,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,4,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,2,1,501,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,502,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,2,66,10,160,503,6,55,1,10,10,5,8,504,104,160,506,505,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,2,1,507,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,508,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,509,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,510,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,94,511,1,165,512,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,4,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,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,2,1,513,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,10,55,1,24,1,1,7,14,2,24,39,152,104,154,155,153,99,157,156,195,514,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,2,1,515,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,155,1,1,516,377,378,4,67,78,11,1,517,518,519,378,3,67,78,12,-251,-251,-251,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,2,1,521,163,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,167,168,90,91,520,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-306,-306,-306,160,-306,-306,522,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,125,126,-306,-306,-306,-306,-306,-306,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,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,2,1,523,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,2,6,61,525,524,2,6,61,-314,-314,24,6,61,25,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-317,-317,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,-318,-318,7,6,61,81,1,9,1,1,-319,-319,128,129,130,96,97,1,67,526,1,67,527,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,4,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,152,104,-173,-173,-173,154,155,153,99,157,156,151,528,-173,-173,149,150,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,4,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,4,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,1,67,529,3,54,5,1,530,105,106,3,89,89,5,532,531,219,3,54,5,1,533,105,106,1,142,534,8,6,60,1,5,23,1,8,18,-217,-217,-217,536,535,-217,-217,-217,5,6,60,1,5,24,-328,-328,-328,-328,-328,6,55,1,10,113,1,2,401,104,400,537,399,402,6,6,60,1,5,24,85,-333,-333,-333,-333,-333,538,6,6,60,1,5,24,85,-335,-335,-335,-335,-335,539,2,55,1,540,104,14,1,5,59,1,1,5,32,18,16,4,6,1,10,1,-339,-339,-339,-339,-339,-339,-339,-339,-339,541,-339,-339,-339,-339,8,6,60,1,5,23,1,8,18,-217,-217,-217,543,542,-217,-217,-217,5,6,60,1,5,24,-357,-357,-357,-357,-357,6,55,1,10,116,3,2,545,104,407,409,544,406,12,6,60,1,5,1,10,1,1,6,5,24,61,-362,-362,-362,-362,-120,-120,-120,-120,-120,-362,-120,546,6,6,60,1,5,24,85,-365,-365,-365,-365,-365,547,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,2,1,549,548,163,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,550,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-352,-352,-352,-352,-352,-352,127,-352,-352,-352,-352,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,81,8,551,99,3,54,5,1,552,105,106,52,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,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,2,6,61,107,553,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,2,1,554,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,57,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,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,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,2,1,423,-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,556,555,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,2,1,-218,326,245,163,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,243,53,52,72,73,93,99,59,-218,83,-218,87,247,84,85,558,557,244,240,66,-218,42,43,90,91,246,86,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,559,-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,2,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,421,422,-217,-217,560,-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,2,1,326,245,163,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,243,53,52,72,73,93,99,59,83,87,247,84,85,419,418,66,42,43,90,91,246,86,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,4,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,52,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,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,23,86,6,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,561,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,2,1,562,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,52,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,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,52,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,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,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,4,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,4,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,563,-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,2,1,564,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,565,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,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,2,1,566,163,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,567,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,6,60,30,569,570,568,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,267,100,101,269,104,270,253,105,106,-218,-218,271,572,-218,571,272,264,265,-218,266,273,-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,2,1,573,163,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,574,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,23,92,12,44,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,127,575,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,2,1,576,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,10,6,60,1,5,11,1,1,11,13,11,-127,-127,-127,-127,-129,-129,-129,-127,577,139,10,6,60,1,5,11,1,1,11,13,11,-128,-128,-128,-128,579,580,581,-128,578,139,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,249,250,582,139,2,109,11,583,139,52,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,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,55,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,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,4,59,1,2,2,-59,-59,-59,-59,2,6,59,107,584,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,2,1,585,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,2,1,586,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,66,587,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,2,1,588,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,589,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,590,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,591,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,594,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,61,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,-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,2,1,595,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,26,67,25,14,11,1,30,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,596,127,320,467,319,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,1,67,597,61,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,-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,61,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,-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,4,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,2,1,598,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,23,86,6,56,1,9,1,1,32,1,4,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,2,1,600,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,-218,326,245,163,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,247,84,85,604,66,-218,42,43,90,91,246,86,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,477,605,-217,-217,-217,61,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,-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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,23,67,25,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,610,127,124,125,126,96,97,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,2,1,612,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,160,102,103,611,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,152,104,154,155,153,99,157,156,151,613,150,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,152,104,-173,-173,-173,154,155,153,99,157,156,151,614,-173,-173,149,150,28,6,60,1,5,20,30,2,24,1,9,1,1,32,1,4,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,55,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,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,3,125,1,1,615,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,4,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,23,67,25,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,616,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,4,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,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,4,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,24,66,10,16,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,617,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,160,618,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,4,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,-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,160,619,2,66,10,160,620,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,4,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,26,66,10,16,5,51,1,9,1,1,4,28,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,621,127,622,124,125,126,96,97,623,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,624,127,625,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,626,127,627,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,628,127,629,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,2,1,630,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,631,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,24,66,10,16,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,632,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,-303,-303,-303,-303,27,72,20,2,54,1,9,1,1,3,2,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-301,127,-301,124,125,126,96,97,-301,-301,-301,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,67,78,11,1,633,634,519,378,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,4,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,2,66,10,160,635,3,67,78,12,-252,-252,-252,3,66,6,4,160,637,636,24,66,6,20,56,1,9,1,1,32,1,4,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-310,-310,-310,160,-310,-310,638,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,125,126,-310,-310,-310,-310,-310,-310,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,4,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,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,2,1,-316,384,385,386,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,-316,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,639,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,4,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,4,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,347,348,-217,-217,640,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,4,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,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,1,142,641,6,55,1,10,113,1,2,401,104,400,642,399,402,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,3,54,5,1,643,105,106,3,6,60,30,645,646,644,10,6,49,1,10,1,29,8,18,58,2,-218,401,104,-218,-218,-218,-218,-218,647,402,8,6,60,1,5,23,1,8,18,-217,-217,-217,536,648,-217,-217,-217,2,55,1,649,104,2,55,1,650,104,1,142,-338,3,54,5,1,651,105,106,3,6,60,30,653,654,652,10,6,49,1,10,1,29,8,18,60,5,-218,545,104,-218,-218,-218,-218,-218,409,655,8,6,60,1,5,23,1,8,18,-217,-217,-217,543,656,-217,-217,-217,6,6,60,1,5,24,85,-362,-362,-362,-362,-362,546,3,55,1,126,657,104,658,2,55,1,659,104,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-345,-345,-345,-345,-345,-345,127,-345,-345,-345,-345,125,126,-345,-345,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,2,1,660,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,661,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,67,662,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,1,138,663,23,92,12,44,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,127,664,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,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,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,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,2,1,326,245,163,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,242,102,103,243,53,52,72,73,93,99,59,83,87,247,84,85,425,665,241,244,240,66,42,43,90,91,246,86,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,2,1,326,245,163,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,243,53,52,72,73,93,99,59,83,-153,87,247,84,85,419,418,66,42,43,90,91,246,86,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,2,1,326,245,163,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,243,53,52,72,73,93,99,59,83,87,247,84,85,425,666,244,240,66,42,43,90,91,246,86,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,556,667,52,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,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,23,67,25,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,668,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,160,669,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,125,126,-256,-256,-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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,125,126,-258,-258,-258,-258,-258,-258,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-116,-116,-116,-116,670,-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,2,1,671,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,57,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,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,17,45,8,1,1,1,1,1,1,1,22,8,10,1,1,1,2,1,267,100,101,269,104,270,253,105,106,271,572,672,272,264,265,266,273,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,267,100,101,269,104,270,253,105,106,-109,-109,-109,271,572,-109,673,268,272,264,265,266,273,5,6,60,1,5,24,-111,-111,-111,-111,-111,6,6,60,1,5,19,5,-114,-114,-114,-114,674,-114,27,6,60,1,5,20,4,52,1,9,1,1,32,1,4,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,2,1,675,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,127,676,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,677,253,2,57,1,678,253,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,2,1,679,163,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,680,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,681,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,125,126,-403,-403,-403,-403,-403,-403,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,2,1,682,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,683,-283,-283,-283,-283,-283,-283,-283,-283,125,126,-283,-283,-283,684,-283,-283,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,685,-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,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,686,-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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,687,-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,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,2,1,688,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,689,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,125,126,-299,-299,-299,-299,-299,-299,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,4,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,690,1,86,691,23,86,6,56,1,9,1,1,32,1,4,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,61,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,-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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,692,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,53,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,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,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,2,1,326,245,163,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,247,84,85,693,66,42,43,90,91,246,86,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,2,1,326,245,163,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,325,102,103,53,52,72,73,93,99,59,83,87,247,84,85,324,66,42,43,90,91,246,694,86,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,695,1,86,696,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,4,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,4,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,4,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,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,4,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,52,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,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,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,347,697,-217,-217,-217,2,66,10,160,611,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,4,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,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,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,4,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,4,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,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,4,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,-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,4,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,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,4,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,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,2,1,698,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,699,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,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,2,1,700,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,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,2,1,701,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,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,2,1,702,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,25,66,10,16,5,51,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,703,127,704,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,705,127,706,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,4,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,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,4,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,2,66,10,160,707,1,67,708,4,6,61,78,12,709,-253,-253,-253,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,2,1,710,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,2,6,61,-315,-315,2,66,10,160,711,3,54,5,1,712,105,106,8,6,60,1,5,23,1,8,18,-217,-217,-217,536,713,-217,-217,-217,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,1,142,714,4,55,1,124,2,401,104,715,402,6,55,1,10,113,1,2,401,104,400,716,399,402,5,6,60,1,5,24,-329,-329,-329,-329,-329,3,6,60,1,645,646,717,5,6,60,1,5,24,-334,-334,-334,-334,-334,5,6,60,1,5,24,-336,-336,-336,-336,-336,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,14,1,5,59,1,1,5,32,18,16,4,6,1,10,1,-340,-340,-340,-340,-340,-340,-340,-340,-340,718,-340,-340,-340,-340,4,55,1,126,5,545,104,409,719,6,55,1,10,116,3,2,545,104,407,409,720,406,5,6,60,1,5,24,-358,-358,-358,-358,-358,3,6,60,1,653,654,721,5,6,60,1,5,24,-363,-363,-363,-363,-363,5,6,60,1,5,24,-364,-364,-364,-364,-364,5,6,60,1,5,24,-366,-366,-366,-366,-366,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,32,1,4,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,23,67,25,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,722,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,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,52,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,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,52,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,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,9,6,60,1,5,23,1,8,9,9,-217,-217,-217,421,422,-217,-217,723,-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,724,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,4,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,307,152,104,154,155,153,99,725,726,83,156,195,306,194,23,67,25,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,727,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,439,728,-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,2,1,729,163,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,567,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,23,67,25,56,1,9,1,1,32,1,4,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,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,731,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,2,1,732,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,65,733,23,67,25,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,734,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,2,1,735,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,736,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,737,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,738,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,739,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,740,-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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,741,-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,61,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,-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,61,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,-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,742,5,6,60,1,5,50,-196,-196,-196,-196,-196,8,6,60,1,5,23,1,8,18,-217,-217,-217,477,743,-217,-217,-217,5,6,60,1,5,50,-197,-197,-197,-197,-197,61,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,-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,744,25,66,10,16,56,1,9,1,1,4,28,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,745,127,124,125,126,96,97,746,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,747,127,748,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,750,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,751,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,4,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,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,2,1,752,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,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,2,1,753,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,67,754,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,4,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,3,67,78,12,-254,-254,-254,24,66,6,20,56,1,9,1,1,32,1,4,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,4,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,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,3,6,60,30,645,646,755,3,54,5,1,756,105,106,5,6,60,1,5,24,-330,-330,-330,-330,-330,8,6,60,1,5,23,1,8,18,-217,-217,-217,536,757,-217,-217,-217,5,6,60,1,5,24,-331,-331,-331,-331,-331,3,54,5,1,758,105,106,5,6,60,1,5,24,-359,-359,-359,-359,-359,8,6,60,1,5,23,1,8,18,-217,-217,-217,543,759,-217,-217,-217,5,6,60,1,5,24,-360,-360,-360,-360,-360,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,2,66,1,556,760,52,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,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,4,94,69,2,2,761,459,461,462,11,55,1,24,1,1,7,4,10,2,24,39,152,104,154,155,153,99,762,157,156,195,194,5,6,60,1,5,24,-117,-117,-117,-117,-117,3,6,60,1,569,570,763,27,6,60,1,5,20,4,52,1,9,1,1,32,1,4,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,764,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,4,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,125,126,-284,-284,-284,765,-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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,766,-285,-285,-285,-285,-285,-285,-285,-285,125,126,-285,-285,-285,-285,-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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-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,2,1,767,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,768,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,61,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,-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,769,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,4,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,2,1,770,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,2,1,771,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,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,4,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,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,4,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,24,66,10,16,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,772,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,773,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,4,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,1,142,774,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,3,6,60,1,645,646,775,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,3,6,60,1,653,654,776,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,2,1,777,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,94,778,5,6,60,1,5,24,-113,-113,-113,-113,-113,1,86,779,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,2,1,780,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,781,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-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,5,6,60,1,5,50,-198,-198,-198,-198,-198,24,66,10,16,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,782,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,783,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,4,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,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,4,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,3,54,5,1,784,105,106,5,6,60,1,5,24,-332,-332,-332,-332,-332,5,6,60,1,5,24,-361,-361,-361,-361,-361,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,787,-288,-288,-288,-288,785,-288,786,-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,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,2,1,788,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-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,4,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,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,4,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,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,4,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,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,1,96,789,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,2,1,790,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,787,-290,-290,-290,-290,791,-290,792,-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,57,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,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,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,787,-289,-289,-289,-289,793,-289,-289,-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,1,96,794,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,2,1,795,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,96,796,57,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,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,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,787,-291,-291,-291,-291,797,-291,-291,-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,57,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,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,1,96,798,57,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,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],U=[],Z=0,W,A,$,Q;while(Z<Y.length){W=Y[Z++],A={},$=0,Q=[];while(W--)$+=Y[Z++],Q.push($);for($ of Q)A[$]=Y[Z++];U.push(A)}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,5,21,2,21,3,21,4,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,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,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:(Y,U,Z,W)=>{let A=U,$=U.length-1;switch(Y){case 1:return["program"];case 2:return["program",...A[$]];case 3:case 58:case 110:case 150:case 154:case 174:case 194:case 203:case 251:case 302:case 314:case 328:case 357:return[A[$]];case 4:case 111:case 175:case 195:case 204:case 315:case 329:case 358:return[...A[$-2],A[$]];case 5:case 60:case 157:case 316:return A[$-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 262:case 300:case 317:case 318:case 319:case 333:case 335:case 337:case 362:case 365:return A[$];case 47:return"undefined";case 48:return"null";case 57:return["str",...A[$-1]];case 59:case 151:case 155:case 252:return[...A[$-1],A[$]];case 61:case 193:case 197:case 331:case 360:return A[$-2];case 62:return"";case 65:return["regex",A[$-1]];case 66:return["regex-index",A[$-2],A[$]];case 67:return["regex-index",A[$],null];case 68:return["=",A[$-2],A[$]];case 69:return["=",A[$-3],A[$]];case 70:return["=",A[$-4],A[$-1]];case 71:return["state",A[$-2],A[$]];case 72:return["state",A[$-3],A[$]];case 73:return["state",A[$-4],A[$-1]];case 74:case 76:return["computed",A[$-2],A[$]];case 75:return["computed",A[$-3],A[$]];case 77:return["readonly",A[$-2],A[$]];case 78:return["readonly",A[$-3],A[$]];case 79:return["readonly",A[$-4],A[$-1]];case 80:return["effect",A[$-2],A[$]];case 81:return["effect",A[$-3],A[$]];case 82:return["effect",A[$-4],A[$-1]];case 83:case 84:return["effect",null,A[$]];case 85:return["effect",null,A[$-1]];case 91:case 100:case 138:return[".",A[$-2],A[$]];case 92:case 101:case 139:return["?.",A[$-2],A[$]];case 93:case 95:case 102:case 140:return["[]",A[$-3],A[$-1]];case 94:case 96:case 103:case 141:return["[]",A[$-5],A[$-2]];case 97:return[A[$-1][0],A[$-3],...A[$-1].slice(1)];case 98:return["optindex",A[$-4],A[$-1]];case 99:return["optindex",A[$-6],A[$-2]];case 104:return["object-comprehension",A[$-8],A[$-6],[["for-of",A[$-4],A[$-2],!1]],[]];case 105:return["object-comprehension",A[$-10],A[$-8],[["for-of",A[$-6],A[$-4],!1]],[A[$-2]]];case 106:return["object-comprehension",A[$-9],A[$-7],[["for-of",A[$-4],A[$-2],!0]],[]];case 107:return["object-comprehension",A[$-11],A[$-9],[["for-of",A[$-6],A[$-4],!0]],[A[$-2]]];case 108:return["object",...A[$-2]];case 109:case 152:case 173:case 192:return[];case 112:case 176:case 196:case 330:case 359:return[...A[$-3],A[$]];case 113:case 177:case 198:case 332:case 361:return[...A[$-5],...A[$-2]];case 114:return[A[$],A[$],null];case 116:return[A[$-2],A[$],":"];case 117:return[A[$-4],A[$-1],":"];case 118:return[A[$-2],A[$],"="];case 119:return[A[$-4],A[$-1],"="];case 124:return["dynamicKey",A[$-1]];case 125:return["[]","this",A[$-1]];case 127:case 128:case 186:return["...",A[$]];case 134:case 190:return["super",...A[$]];case 135:case 136:case 137:case 188:case 191:return[A[$-1],...A[$]];case 142:return["array"];case 143:return["array",...A[$-1]];case 144:return["array",...A[$-2],...A[$-1]];case 146:return[...A[$-2],...A[$]];case 147:return[...A[$-3],...A[$]];case 148:return[...A[$-2],...A[$-1]];case 149:return[...A[$-5],...A[$-4],...A[$-2],...A[$-1]];case 153:return[...A[$]];case 156:return null;case 158:return"..";case 159:case 202:return"...";case 160:return[A[$-2],A[$-3],A[$-1]];case 161:case 384:case 386:case 387:case 402:case 404:return[A[$-1],A[$-2],A[$]];case 162:return[A[$],A[$-1],null];case 163:return[A[$-1],null,A[$]];case 164:return[A[$],null,null];case 165:return["def",A[$-4],A[$-2],A[$]];case 166:return["def",A[$-1],[],A[$]];case 167:case 169:return[A[$-1],A[$-3],A[$]];case 168:case 170:return[A[$-1],[],A[$]];case 179:case 301:return["default",A[$-2],A[$]];case 180:return["rest",A[$]];case 181:return["expansion"];case 187:return["tagged-template",A[$-1],A[$]];case 189:return["optcall",A[$-2],...A[$]];case 205:case 206:return"this";case 207:return[".","this",A[$]];case 208:return[".","super",A[$]];case 209:return["[]","super",A[$-1]];case 210:return["[]","super",A[$-2]];case 211:return[".","new",A[$]];case 212:return[".","import",A[$]];case 213:return["block"];case 214:return["block",...A[$-1]];case 215:return A[$-1].length===1?A[$-1][0]:["block",...A[$-1]];case 216:return A[$-2].length===1?A[$-2][0]:["block",...A[$-2]];case 219:return["return",A[$]];case 220:return["return",A[$-1]];case 221:return["return"];case 222:return["throw",A[$]];case 223:return["throw",A[$-1]];case 224:return["yield"];case 225:return["yield",A[$]];case 226:return["yield",A[$-1]];case 227:return["yield-from",A[$]];case 228:return["if",A[$-1],A[$]];case 229:return A[$-4].length===3?["if",A[$-4][1],A[$-4][2],["if",A[$-1],A[$]]]:[...A[$-4],["if",A[$-1],A[$]]];case 230:return["if",["!",A[$-1]],A[$]];case 231:return["if",["!",A[$-3]],A[$-2],A[$]];case 233:return A[$-2].length===3?["if",A[$-2][1],A[$-2][2],A[$]]:[...A[$-2],A[$]];case 235:case 236:return["if",A[$],[A[$-2]]];case 237:return["?:",A[$-4],A[$-6],A[$-1]];case 238:case 239:return["if",["!",A[$]],[A[$-2]]];case 240:return["try",A[$]];case 241:return["try",A[$-1],A[$]];case 242:return["try",A[$-2],A[$]];case 243:return["try",A[$-3],A[$-2],A[$]];case 244:case 245:case 367:case 370:case 372:return[A[$-1],A[$]];case 246:return[null,A[$]];case 247:return["switch",A[$-3],A[$-1],null];case 248:return["switch",A[$-5],A[$-3],A[$-1]];case 249:return["switch",null,A[$-1],null];case 250:return["switch",null,A[$-3],A[$-1]];case 253:return["when",A[$-1],A[$]];case 254:return["when",A[$-2],A[$-1]];case 255:return["while",A[$]];case 256:return["while",A[$-2],A[$]];case 257:return["while",["!",A[$]]];case 258:return["while",["!",A[$-2]],A[$]];case 259:return A[$-1].length===2?[A[$-1][0],A[$-1][1],A[$]]:[A[$-1][0],A[$-1][1],A[$-1][2],A[$]];case 260:case 261:return A[$].length===2?[A[$][0],A[$][1],[A[$-1]]]:[A[$][0],A[$][1],A[$][2],[A[$-1]]];case 263:return["loop",A[$]];case 264:return["loop",[A[$]]];case 265:return["loop-n",A[$-1],A[$]];case 266:return["for-in",A[$-3],A[$-1],null,null,A[$]];case 267:return["for-in",A[$-5],A[$-3],null,A[$-1],A[$]];case 268:return["for-in",A[$-5],A[$-3],A[$-1],null,A[$]];case 269:return["for-in",A[$-7],A[$-5],A[$-1],A[$-3],A[$]];case 270:return["for-in",A[$-7],A[$-5],A[$-3],A[$-1],A[$]];case 271:return["for-of",A[$-3],A[$-1],!1,null,A[$]];case 272:return["for-of",A[$-5],A[$-3],!1,A[$-1],A[$]];case 273:return["for-of",A[$-3],A[$-1],!0,null,A[$]];case 274:return["for-of",A[$-5],A[$-3],!0,A[$-1],A[$]];case 275:return["for-as",A[$-3],A[$-1],!1,null,A[$]];case 276:return["for-as",A[$-5],A[$-3],!1,A[$-1],A[$]];case 277:case 279:return["for-as",A[$-3],A[$-1],!0,null,A[$]];case 278:case 280:return["for-as",A[$-5],A[$-3],!0,A[$-1],A[$]];case 281:return["for-in",[],A[$-1],null,null,A[$]];case 282:return["for-in",[],A[$-3],A[$-1],null,A[$]];case 283:return["comprehension",A[$-4],[["for-in",A[$-2],A[$],null]],[]];case 284:return["comprehension",A[$-6],[["for-in",A[$-4],A[$-2],null]],[A[$]]];case 285:return["comprehension",A[$-6],[["for-in",A[$-4],A[$-2],A[$]]],[]];case 286:return["comprehension",A[$-8],[["for-in",A[$-6],A[$-4],A[$]]],[A[$-2]]];case 287:return["comprehension",A[$-8],[["for-in",A[$-6],A[$-4],A[$-2]]],[A[$]]];case 288:return["comprehension",A[$-4],[["for-of",A[$-2],A[$],!1]],[]];case 289:return["comprehension",A[$-6],[["for-of",A[$-4],A[$-2],!1]],[A[$]]];case 290:return["comprehension",A[$-5],[["for-of",A[$-2],A[$],!0]],[]];case 291:return["comprehension",A[$-7],[["for-of",A[$-4],A[$-2],!0]],[A[$]]];case 292:return["comprehension",A[$-4],[["for-as",A[$-2],A[$],!1,null]],[]];case 293:return["comprehension",A[$-6],[["for-as",A[$-4],A[$-2],!1,null]],[A[$]]];case 294:return["comprehension",A[$-5],[["for-as",A[$-2],A[$],!0,null]],[]];case 295:return["comprehension",A[$-7],[["for-as",A[$-4],A[$-2],!0,null]],[A[$]]];case 296:return["comprehension",A[$-4],[["for-as",A[$-2],A[$],!0,null]],[]];case 297:return["comprehension",A[$-6],[["for-as",A[$-4],A[$-2],!0,null]],[A[$]]];case 298:return["comprehension",A[$-2],[["for-in",[],A[$],null]],[]];case 299:return["comprehension",A[$-4],[["for-in",[],A[$-2],A[$]]],[]];case 303:case 334:case 336:case 363:case 364:case 366:return[A[$-2],A[$]];case 304:return["class",null,null];case 305:return["class",null,null,A[$]];case 306:return["class",null,A[$]];case 307:return["class",null,A[$-1],A[$]];case 308:return["class",A[$],null];case 309:return["class",A[$-1],null,A[$]];case 310:return["class",A[$-2],A[$]];case 311:return["class",A[$-3],A[$-1],A[$]];case 312:return["enum",A[$-1],A[$]];case 313:return["component",null,["block",...A[$-1]]];case 320:return["render",A[$]];case 321:case 324:return["import","{}",A[$]];case 322:case 323:return["import",A[$-2],A[$]];case 325:return["import",A[$-4],A[$]];case 326:return["import",[A[$-4],A[$-2]],A[$]];case 327:return["import",[A[$-7],A[$-4]],A[$]];case 338:return["*",A[$]];case 339:return["export","{}"];case 340:return["export",A[$-2]];case 341:case 342:case 343:case 344:case 348:case 349:case 350:case 351:return["export",A[$]];case 345:return["export",["=",A[$-2],A[$]]];case 346:return["export",["=",A[$-3],A[$]]];case 347:return["export",["=",A[$-4],A[$-1]]];case 352:return["export-default",A[$]];case 353:return["export-default",A[$-1]];case 354:return["export-all",A[$]];case 355:return["export-from","{}",A[$]];case 356:return["export-from",A[$-4],A[$]];case 368:case 369:case 371:case 407:return["do-iife",A[$]];case 373:return["-",A[$]];case 374:return["+",A[$]];case 375:return["?",A[$-1]];case 376:return["await",A[$]];case 377:return["await",A[$-1]];case 378:return["--",A[$],!1];case 379:return["++",A[$],!1];case 380:return["--",A[$-1],!0];case 381:return["++",A[$-1],!0];case 382:return["+",A[$-2],A[$]];case 383:return["-",A[$-2],A[$]];case 385:return["**",A[$-2],A[$]];case 388:return["&",A[$-2],A[$]];case 389:return["^",A[$-2],A[$]];case 390:return["|",A[$-2],A[$]];case 391:case 392:case 393:case 394:case 395:case 396:return["control",A[$-1],A[$-2],A[$]];case 397:return["&&",A[$-2],A[$]];case 398:return["||",A[$-2],A[$]];case 399:return["??",A[$-2],A[$]];case 400:return["!?",A[$-2],A[$]];case 401:return["|>",A[$-2],A[$]];case 403:return["?:",A[$-4],A[$-2],A[$]];case 405:return[A[$-3],A[$-4],A[$-1]];case 406:return[A[$-2],A[$-3],A[$]]}},parseError(Y,U){let Z,W,A,$,Q,F,J;if(U.recoverable)return this.trace(Y);else throw A=(U.line||0)+1,Z=U.loc?.c||0,J=U.token?` (token: ${U.token})`:"",F=U.text?` near '${U.text}'`:"",$=`line ${A}, column ${Z}`,Q=`Parse error at ${$}${J}${F}: ${Y}`,W=Error(Q),W.hash=U,W},parse(Y){let U,Z,W,A,$,Q,F,J,D,X,z,M,K,H,G,q,R,w,B,P,E,_,O,I,N,T;[P,T,X]=[[0],[null],[]],[K,N,O,_,q]=[this.parseTable,"",0,0,0],[Z,U]=[2,1],J=Object.create(this.lexer),w={ctx:{}};for(let S in this.ctx){if(!Object.hasOwn(this.ctx,S))continue;let V=this.ctx[S];w.ctx[S]=V}if(J.setInput(Y,w.ctx),[w.ctx.lexer,w.ctx.parser]=[J,this],J.loc==null)J.loc={};I=J.loc,X.push(I),this.parseError=typeof w.ctx.parseError==="function"?w.ctx.parseError:Object.getPrototypeOf(this).parseError,F=()=>{let S;if(S=J.lex()||U,typeof S!=="number")S=this.symbolIds[S]||S;return S},E=H=B=W=G=M=Q=z=$=null,R={};while(!0){if(B=P[P.length-1],E==null)E=F();if(W=K[B]?.[E],W==null){if(A="",!q)$=(()=>{let S=[];for(let V in K[B]){if(!Object.hasOwn(K[B],V))continue;if(this.tokenNames[V]&&V>Z)S.push(`'${this.tokenNames[V]}'`)}return S})();throw A=(()=>{if(J.showPosition)return`Parse error on line ${O+1}:
3
+ `}function C(A){if(!A)return A;return A=A.replace(/::/g,":"),A=A.replace(/(\w+(?:<[^>]+>)?)\?\?/g,"$1 | null | undefined"),A=A.replace(/(\w+(?:<[^>]+>)?)\?(?![.:])/g,"$1 | undefined"),A=A.replace(/(\w+(?:<[^>]+>)?)\!/g,"NonNullable<$1>"),A}function A1(A,U,Z,W,Y){if(!Array.isArray(A))return;let $=A[0]?.valueOf?.()??A[0],Q=!1,F=null,J=null;if($==="export"&&Array.isArray(A[1])){Q=!0;let D=A[1];if((D[0]?.valueOf?.()??D[0])==="="&&Array.isArray(D[2])&&(D[2][0]?.valueOf?.()??D[2][0])==="component")F=D[1]?.valueOf?.()??D[1],J=D[2]}else if($==="="&&Array.isArray(A[2])&&(A[2][0]?.valueOf?.()??A[2][0])==="component")F=A[1]?.valueOf?.()??A[1],J=A[2];if(F&&J){let D=Q?"export ":"",X=J[2],z=Array.isArray(X)&&(X[0]?.valueOf?.()??X[0])==="block"?X.slice(1):X?[X]:[],M=[],K=[];for(let H of z){if(!Array.isArray(H))continue;let G=H[0]?.valueOf?.()??H[0];if(G==="state"){let q=H[1]?.valueOf?.()??H[1],R=H[1]?.type;M.push(` ${q}: ${R?C(R):"any"};`),Y.add(q)}else if(G==="computed"){let q=H[1]?.valueOf?.()??H[1],R=H[1]?.type;M.push(` readonly ${q}: ${R?C(R):"any"};`),Y.add(q)}else if(G==="object")for(let q=1;q<H.length;q++){let R=H[q];if(!Array.isArray(R))continue;let w=R[0]?.valueOf?.()??R[0];if(w==="render")continue;let I=R[1];if(Array.isArray(I)){let P=I[0]?.valueOf?.()??I[0];if(P==="->"||P==="=>")K.push(` ${w}(): void;`)}}else if(G==="render")continue}U.push(`${D}declare class ${F} {`),U.push(" constructor(props?: Record<string, any>);");for(let H of M)U.push(H);for(let H of K)U.push(H);U.push(` mount(target: Element | string): ${F};`),U.push(" unmount(): void;"),U.push("}")}if($==="program"||$==="block"){for(let D=1;D<A.length;D++)if(Array.isArray(A[D]))A1(A[D],U,Z,W,Y)}if($==="export"&&Array.isArray(A[1])&&!J)A1(A[1],U,Z,W,Y)}function M1(A,U,Z){let[W,Y]=U,$=W?.valueOf?.()??W,Q=[];if(Array.isArray(Y)){let D=Y[0]==="block"?Y.slice(1):[Y];for(let X of D)if(Array.isArray(X)){if(X[0]?.valueOf?.()==="="){let z=X[1]?.valueOf?.()??X[1],M=X[2]?.valueOf?.()??X[2];Q.push([z,M])}}}if(Q.length===0)return`const ${$} = {}`;let F=Q.map(([D,X])=>`${D}: ${X}`).join(", "),J=Q.map(([D,X])=>`${X}: "${D}"`).join(", ");return`const ${$} = {${F}, ${J}}`}var G1=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"]),R1=new Set(["undefined","Infinity","NaN","then","unless","until","loop","of","by","when","def","component","render","enum","interface"]),Z1={and:"&&",or:"||",is:"==",isnt:"!=",not:"!",yes:"true",no:"false",on:"true",off:"false"},q1=new Set(Object.keys(Z1)),b1=new Set(["case","function","var","void","with","const","let","native","implements","package","private","protected","public","static"]),y1=new Set(["break","continue","debugger"]),v1=new Set(["NEW","TYPEOF","DELETE"]),g1=new Set(["IN","OF","INSTANCEOF"]),r=new Set(["IDENTIFIER","PROPERTY",")","]","@","THIS","SUPER","DYNAMIC_IMPORT","?."]),T1=new Set([...r,"NUMBER","INFINITY","NAN","STRING","STRING_END","REGEX","REGEX_END","BOOL","NULL","UNDEFINED","}"]),a=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","@","->","=>","[","(","{","--","++"]),x1=new Set(["+","-"]),c1=new Set(["POST_IF","POST_UNLESS","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR","||","&&","PIPE"]),k1=new Set(["STRING","STRING_END","REGEX","REGEX_END","NUMBER","BOOL","NULL","UNDEFINED","INFINITY","NAN","]","}"]),x=new Set(["(","[","{","INDENT","CALL_START","PARAM_START","INDEX_START","STRING_START","INTERPOLATION_START","REGEX_START"]),g=new Set([")","]","}","OUTDENT","CALL_END","PARAM_END","INDEX_END","STRING_END","INTERPOLATION_END","REGEX_END"]),m1={"(":")",")":"(","[":"]","]":"[","{":"}","}":"{",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"},O1=new Set(["CATCH","THEN","ELSE","FINALLY",...g]),U1=new Set(["IDENTIFIER","PROPERTY","SUPER",")","CALL_END","]","INDEX_END","@","THIS"]),l1=new Set(["IF","TRY","FINALLY","CATCH","CLASS","SWITCH","COMPONENT"]),P1=new Set(["ELSE","->","=>","TRY","FINALLY","THEN"]),p1=new Set(["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"]),i=new Set(["INDENT","OUTDENT","TERMINATOR"]),_1=new Set([".","?."]),w1=new Set(["\\",".","?.","UNARY","DO","DO_IIFE","MATH","UNARY_MATH","+","-","**","SHIFT","RELATION","COMPARE","&","^","|","&&","||","SPACE?","EXTENDS"]),i1=new Set([...T1,"++","--"]),I1=new Set(["-=","+=","/=","*=","%=","||=","&&=","?=","??=","<<=",">>=",">>>=","&=","^=","|=","**=","//=","%%="]),d1=new Set(["*","/","%","//","%%"]),n1=new Set(["==","!=","===","!==","<",">","<=",">=","=~"]),a1=new Set(["<<",">>",">>>"]),r1=new Set(["!","~"]),s1=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+(?:!|[?](?![.?[(]))?)([^\n\S]*:(?![=:]))?/,o1=/^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,t1=/^(?:<=>|::=|::|[-=]>|~>|~=|:=|=!|===|!==|!\?|\?\?|=~|\|>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?\.?|\.{2,3})/,e1=/^[^\n\S]+/,$2=/^(?:\n[^\n\S]*)+/,Y2=/^(\s*)###([^#][\s\S]*?)(?:###([^\n\S]*)|###$)|^((?:\s*#(?!##[^#]).*)+)/,A2=/^[-=]>/,W2=/^(?:~[=>]|=!)/,U2=/^(?:'''\\|"""\\|'''|"""|'|")/,Z2=/^(?:[^\\']|\\[\s\S])*/,Q2=/^(?:[^\\"#$]|\\[\s\S]|\#(?!\{)|\$(?!\{))*/,F2=/^(?:[^\\']|\\[\s\S]|'(?!''))*/,J2=/^(?:[^\\"#$]|\\[\s\S]|"(?!"")|\#(?!\{)|\$(?!\{))*/,B1=/\n+([^\n\S]*)(?=\S)/g,X2=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/,E1=/^\w*/,K2=/^(?!.*(.).*\1)[gimsuy]*$/,D2=/^(?:[^\\\/#\s]|\\[\s\S]|\/(?!\/\/)|\#(?!\{)|\s+(?:#(?!\{).*)?)*/,z2=/^`(?!``)((?:[^`\\]|\\[\s\S])*)`/,H2=/^```((?:[^`\\]|\\[\s\S]|`(?!``))*)```/,M2=/\s+$/,N1=/^\s*(?:,|\??\.(?![.\d]))/,G2=65279;function s(A,U,{pre:Z=0,row:W=0,col:Y=0,len:$=0,data:Q=null}={}){let F=[A,U];return F.pre=Z,F.data=Q,F.loc={r:W,c:Y,n:$},F.spaced=Z>0,F.newLine=!1,F}function y(A,U,Z){let W=s(A,U);if(W.generated=!0,Z)W.origin=Z;return W}function b(A,{row:U=0,col:Z=0,len:W=1}={}){let Y=SyntaxError(A);throw Y.location={first_line:U,first_column:Z,last_column:Z+W-1},Y}function R2(A){if(A==null)return NaN;switch(A.charAt(1)){case"b":return parseInt(A.slice(2).replace(/_/g,""),2);case"o":return parseInt(A.slice(2).replace(/_/g,""),8);case"x":return parseInt(A.slice(2).replace(/_/g,""),16);default:return parseFloat(A.replace(/_/g,""))}}class c{tokenize(A,U={}){this.code=A,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,A=this.clean(A),this.code=A;while(this.pos<A.length){this.chunk=A.slice(this.pos);let Z=this.identifierToken()||this.commentToken()||this.whitespaceToken()||this.lineToken()||this.stringToken()||this.numberToken()||this.regexToken()||this.jsToken()||this.literalToken();if(Z===0)b(`unexpected character: ${this.chunk.charAt(0)}`,{row:this.row,col:this.col});if(this.advance(Z),U.untilBalanced&&this.ends.length===0)return{tokens:this.tokens,index:this.pos}}if(this.closeIndentation(),this.ends.length>0){let Z=this.ends[this.ends.length-1];b(`missing ${Z.tag}`,{row:this.row,col:this.col})}if(U.rewrite===!1)return this.tokens;return this.rewrite(this.tokens)}clean(A){if(A.charCodeAt(0)===G2)A=A.slice(1);if(A=A.replace(/\r\n?/g,`
4
+ `),A=A.replace(M2,""),/^[^\n\S]/.test(A))A=`
5
+ `+A;return A}advance(A){let U=this.code.slice(this.pos,this.pos+A);for(let Z=0;Z<U.length;Z++)if(U[Z]===`
6
+ `)this.row++,this.col=0;else this.col++;this.pos+=A}emit(A,U,{len:Z,data:W,pre:Y}={}){let $=s(A,U,{pre:Y??0,row:this.row,col:this.col,len:Z??(typeof U==="string"?U.length:0),data:W});return this.tokens.push($),$}prev(){return this.tokens[this.tokens.length-1]}prevTag(){let A=this.prev();return A?A[0]:void 0}prevVal(){let A=this.prev();return A?A[1]:void 0}identifierToken(){if(W2.test(this.chunk))return 0;let A=s1.exec(this.chunk);if(!A)return 0;let[,U,Z]=A,W=U.length,Y={},$;if(U==="own"&&this.prevTag()==="FOR")return this.emit("OWN",U,{len:W}),W;if(U==="from"&&this.prevTag()==="YIELD")return this.emit("FROM",U,{len:W}),W;if(U==="as"&&!this.seenFor&&(this.seenImport||this.seenExport)){if(this.seenImport){if(this.prevVal()==="*")this.prev()[0]="IMPORT_ALL"}let X=this.prevTag();if(X==="DEFAULT"||X==="IMPORT_ALL"||X==="IDENTIFIER")return this.emit("AS",U,{len:W}),W}if((U==="as"||U==="as!")&&this.seenFor)return this.seenFor=!1,this.emit(U==="as!"?"FORASAWAIT":"FORAS","as",{len:W}),W;if(U==="default"&&this.seenExport&&(this.prevTag()==="EXPORT"||this.prevTag()==="AS"))return this.emit("DEFAULT",U,{len:W}),W;let Q;if(U==="do"&&(Q=/^(\s*super)(?!\(\))/.exec(this.chunk.slice(3))))return this.emit("SUPER","super"),this.emit("CALL_START","("),this.emit("CALL_END",")"),Q[1].length+3;let F=this.prev();if(Z&&F&&F[0]==="SPACE?")Z=null;if(Z||F&&(F[0]==="."||F[0]==="?."||!F.spaced&&F[0]==="@")){if($="PROPERTY",this.inRenderBlock&&F&&F[0]==="."&&!Z){let X=this.chunk.slice(W);while(X[0]==="-"&&/^-[a-zA-Z]/.test(X)){let z=/^-([a-zA-Z][\w]*)/.exec(X);if(!z)break;U+="-"+z[1],W+=1+z[1].length,X=this.chunk.slice(W)}}}else $="IDENTIFIER";let J=U.endsWith("!")||U.endsWith("?")?U.slice(0,-1):U;if($==="IDENTIFIER"&&!U.endsWith("!")&&!U.endsWith("?")&&(G1.has(U)||R1.has(U)||q1.has(U))&&!(this.exportSpecifierList&&q1.has(U))){if(Z1[U]!==void 0)Y.original=U,U=Z1[U];$=this.classifyKeyword(U,$,Y)}if($==="IDENTIFIER"&&b1.has(J))b(`reserved word '${J}'`,{row:this.row,col:this.col,len:W});if($==="PROPERTY"&&F){if(F[0]==="."&&this.tokens.length>1){let X=this.tokens[this.tokens.length-2];if(X[0]==="UNARY"&&X[1]==="new")X[0]="NEW_TARGET";if(X[0]==="IMPORT"&&X[1]==="import")this.seenImport=!1,X[0]="IMPORT_META"}}if(U.length>1&&U.endsWith("!"))Y.await=!0,U=U.slice(0,-1);if(U.length>1&&U.endsWith("?"))Y.predicate=!0,U=U.slice(0,-1);let D=this.emit($,U,{len:W,data:Object.keys(Y).length?Y:null});if($==="RENDER")this.inRenderBlock=!0,this.renderIndent=this.indent;if(Z)return this.emit(":",":",{len:1}),W+Z.length;return W}classifyKeyword(A,U,Z){switch(A){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"true":case"false":return"BOOL";case"&&":case"||":return A}if(y1.has(A))return"STATEMENT";let W=A.toUpperCase();if(W==="WHEN"&&i.has(this.prevTag()))return"LEADING_WHEN";if(W==="FOR")return this.seenFor={endsLength:this.ends.length},"FOR";if(W==="UNLESS")return"UNLESS";if(W==="IMPORT")return this.seenImport=!0,"IMPORT";if(W==="EXPORT")return this.seenExport=!0,"EXPORT";if(v1.has(W))return"UNARY";if(g1.has(W)){if(W!=="INSTANCEOF"&&this.seenFor)return this.seenFor=!1,"FOR"+W;if(this.prevVal()==="!"){let Y=this.tokens.pop();Z.invert=Y.data?.original||Y[1]}return"RELATION"}if(G1.has(A)||R1.has(A))return W;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 Z=/^#([a-zA-Z_][\w-]*)/.exec(this.chunk);if(Z)return this.emit("IDENTIFIER","div#"+Z[1]),Z[0].length}if(/^\s+#[a-zA-Z_]/.test(this.chunk))return 0}let A=Y2.exec(this.chunk);if(!A)return 0;return A[0].length}whitespaceToken(){let A=e1.exec(this.chunk);if(!A&&this.chunk[0]!==`
7
+ `)return 0;let U=this.prev();if(U)if(A)U.spaced=!0,U.pre=A[0].length;else U.newLine=!0;return A?A[0].length:0}lineToken(){let A=$2.exec(this.chunk);if(!A)return 0;let U=A[0],Z=U.length-1-U.lastIndexOf(`
8
+ `);if(this.isUnfinished()){if(Z<this.indent&&/^\s*,/.test(this.chunk)&&!w1.has(this.prevTag())){if(this.outdentTo(Z,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(Z===this.indent)return this.emitNewline(),U.length;if(Z>this.indent){if(!this.tokens.length)return this.indent=Z,U.length;let W=Z-this.indent;return this.emit("INDENT",W,{len:Z}),this.indents.push(W),this.ends.push({tag:"OUTDENT"}),this.indent=Z,U.length}return this.outdentTo(Z,U.length),U.length}outdentTo(A,U=0){if(this.inRenderBlock&&A<=this.renderIndent)this.inRenderBlock=!1;let Z=this.indent-A;while(Z>0){let W=this.indents[this.indents.length-1];if(!W)Z=0;else this.indents.pop(),this.pair("OUTDENT"),this.emit("OUTDENT",Z,{len:U}),Z-=W}this.emitNewline(),this.indent=A}closeIndentation(){this.outdentTo(0)}emitNewline(){if(this.prevTag()!=="TERMINATOR")this.emit("TERMINATOR",`
9
+ `,{len:0})}isUnfinished(){if(this.inRenderBlock&&N1.test(this.chunk)&&/^\s*\./.test(this.chunk))return!1;if(this.inRenderBlock&&this.prevTag()==="."){let A=this.tokens.length;if(A>=2){let U=this.tokens[A-2][0];if(U==="INDENT"||U==="TERMINATOR"||U==="OUTDENT")return!1}}return N1.test(this.chunk)||w1.has(this.prevTag())}pair(A){let U=this.ends[this.ends.length-1];if(!U||A!==U.tag){if(U?.tag==="OUTDENT"){let Z=this.indents[this.indents.length-1];if(Z)this.outdentTo(this.indent-Z);return this.pair(A)}b(`unmatched ${A}`,{row:this.row,col:this.col})}return this.ends.pop()}stringToken(){let A=U2.exec(this.chunk);if(!A)return 0;let U=A[0],Z=U.length>1&&U.endsWith("\\"),W=Z?U.slice(0,-1):U,Y=this.prev();if(Y&&this.prevVal()==="from"&&(this.seenImport||this.seenExport))Y[0]="FROM";let $;switch(W){case"'":$=Z2;break;case'"':$=Q2;break;case"'''":$=F2;break;case'"""':$=J2;break}let{tokens:Q,index:F}=this.matchWithInterpolations($,U,W),J=W.length===3,D=null;if(J)D=this.processHeredocIndent(F,W,Q);return this.mergeInterpolationTokens(Q,{quote:W,indent:D,endOffset:F,raw:Z}),F}processHeredocIndent(A,U,Z){let W=A-U.length,Y=W-1;while(Y>=0&&this.chunk[Y]!==`
10
+ `)Y--;Y++;let $=this.chunk.slice(Y,W),Q=/^\s*$/.test($)?$.length:null,F="";for(let X of Z)if(X[0]==="NEOSTRING")F+=X[1];let J=null,D;B1.lastIndex=0;while(D=B1.exec(F))if(J===null||D[1].length>0&&D[1].length<J.length)J=D[1];if(Q===null)return J;if(J===null)return" ".repeat(Q);if(Q<=J.length)return" ".repeat(Q);return J}matchWithInterpolations(A,U,Z,W){if(!Z)Z=U;if(!W)W=/^[#$]\{/;let Y=[],$=U.length;if(this.chunk.slice(0,$)!==U)return null;let Q=this.chunk.slice($);while(!0){let[F]=A.exec(Q);Y.push(["NEOSTRING",F,{offset:$}]),Q=Q.slice(F.length),$+=F.length;let J=W.exec(Q);if(!J)break;let X=J[0].length-1,z=Q.slice(X),M=new c().tokenize(z,{row:this.row,col:this.col+$+X,untilBalanced:!0,rewrite:!1}),K=M.index+X;if(Q[K-1]==="}"){let G=M.tokens[0],q=M.tokens[M.tokens.length-1];G[0]="INTERPOLATION_START",G[1]="(",q[0]="INTERPOLATION_END",q[1]=")"}if(M.tokens[1]?.[0]==="TERMINATOR")M.tokens.splice(1,1);let H=M.tokens.length;if(H>2&&M.tokens[H-3]?.[0]==="INDENT"&&M.tokens[H-2]?.[0]==="OUTDENT")M.tokens.splice(H-3,2);Y.push(["TOKENS",M.tokens]),Q=Q.slice(K),$+=K}if(Q.slice(0,Z.length)!==Z)b(`missing ${Z}`,{row:this.row,col:this.col});return{tokens:Y,index:$+Z.length}}mergeInterpolationTokens(A,{quote:U,indent:Z,endOffset:W,raw:Y}){if(A.length>1)this.emit("STRING_START","(",{len:U?.length||0,data:{quote:U}});for(let $=0;$<A.length;$++){let[Q,F]=A[$];if(Q==="TOKENS")for(let J of F)this.tokens.push(J);else if(Q==="NEOSTRING"){let J=F;if(Z){let D=new RegExp("\\n"+Z,"g");J=J.replace(D,`
11
+ `)}if($===0&&U?.length===3)J=J.replace(/^\n/,"");if($===A.length-1&&U?.length===3)J=J.replace(/\n[^\S\n]*$/,"");if(Y)J=J.replace(/\\([nrtbfv0\\'"`xu])/g,"\\\\$1");this.emit("STRING",`"${J}"`,{len:F.length,data:{quote:U}})}}if(A.length>1)this.emit("STRING_END",")",{len:U?.length||0});return W}numberToken(){let A=o1.exec(this.chunk);if(!A)return 0;let U=A[0],Z=U.length,W={row:this.row,col:this.col};if(/^0[BOX]/.test(U))b(`radix prefix in '${U}' must be lowercase`,{...W,col:W.col+1});if(/^0\d*[89]/.test(U))b(`decimal literal '${U}' must not be prefixed with '0'`,{...W,len:Z});if(/^0\d+/.test(U))b(`octal literal '${U}' must be prefixed with '0o'`,{...W,len:Z});let Y=R2(U),$=Y===1/0?"INFINITY":"NUMBER",Q={parsedValue:Y};if($==="INFINITY")Q.original=U;return this.emit($,U,{len:Z,data:Q}),Z}regexToken(){let A=this.matchWithInterpolations(D2,"///");if(A){let{tokens:D,index:X}=A,[z]=E1.exec(this.chunk.slice(X)),M=X+z.length;if(D.length===1||!D.some((K)=>K[0]==="TOKENS")){let K=(D[0]?.[1]||"").replace(/(?<!\\)\//g,"\\/");this.emit("REGEX",`/${K}/${z}`,{len:M,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(D,{quote:"///",endOffset:M-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 M}let U=X2.exec(this.chunk);if(!U)return 0;let[Z,W,Y]=U,$=this.prev();if($){if($.spaced&&r.has($[0])&&(!Y||/^\/=?\s/.test(Z)))return 0;if(i1.has($[0])&&!($.spaced&&r.has($[0])))return 0}if(!Y)b("missing / (unclosed regex)",{row:this.row,col:this.col});let Q=Z.length,[F]=E1.exec(this.chunk.slice(Q)),J=Q+F.length;if(!K2.test(F))b(`invalid regular expression flags ${F}`,{row:this.row,col:this.col+Q,len:F.length});return this.emit("REGEX",`/${W}/${F}`,{len:J,data:{delimiter:"/"}}),J}jsToken(){if(this.chunk[0]!=="`")return 0;let A=H2.exec(this.chunk)||z2.exec(this.chunk);if(!A)return 0;let U=A[1],Z=A[0].length;return this.emit("JS",U,{len:Z,data:{here:A[0].startsWith("```")}}),Z}literalToken(){let A=t1.exec(this.chunk),U=A?A[0]:this.chunk.charAt(0),Z=U,W=this.prev();if(A2.test(U))this.tagParameters();if(U==="="&&W&&W[1]==="."&&!W.spaced){let Y=this.tokens,$=Y.length-2;while($>=1&&Y[$][0]==="PROPERTY"&&Y[$-1]?.[1]===".")$-=2;if($>=0&&(Y[$][0]==="IDENTIFIER"||Y[$][0]===")"||Y[$][0]==="]")){let Q=Y.slice($,Y.length-1);W[0]="=",W[1]="=";for(let F of Q)this.tokens.push(s(F[0],F[1],{pre:0,row:F[2],col:F[3],len:F[4]}));return this.tokens.push(s(".",".",{pre:0,row:this.row,col:this.col,len:1})),U.length}}if(W&&(U==="="||I1.has(U))){if(U==="="&&(W[1]==="||"||W[1]==="&&"||W[1]==="??")&&!W.spaced)return W[0]="COMPOUND_ASSIGN",W[1]+="=",U.length}if(U==="("&&W?.[0]==="IMPORT")W[0]="DYNAMIC_IMPORT";if(U==="{"&&this.seenImport)this.importSpecifierList=!0;if(U==="}"&&this.importSpecifierList)this.importSpecifierList=!1;if(U==="{"&&W?.[0]==="EXPORT")this.exportSpecifierList=!0;if(U==="}"&&this.exportSpecifierList)this.exportSpecifierList=!1;if(U===";")this.seenFor=this.seenImport=this.seenExport=!1,Z="TERMINATOR";else if(U==="|>")Z="PIPE";else if(U==="::=")Z="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==="::")Z="TYPE_ANNOTATION";else if(U==="~=")Z="COMPUTED_ASSIGN";else if(U===":=")Z="REACTIVE_ASSIGN";else if(U==="<=>")Z="BIND";else if(U==="~>")Z="REACT_ASSIGN";else if(U==="=!")Z="READONLY_ASSIGN";else if(U==="*"&&(!W||W[0]==="TERMINATOR"||W[0]==="INDENT"||W[0]==="OUTDENT")&&(/^[a-zA-Z_$]/.test(this.chunk[1]||"")||this.chunk[1]==="@")){let Y=this.chunk.slice(1),$=/^@(\s*)=(?!=)/.exec(Y);if($){let F=$[1];this.emit("IDENTIFIER","Object"),this.emit(".",".");let J=this.emit("PROPERTY","assign");return J.spaced=!0,this.emit("@","@"),this.emit(",",","),2+F.length+1}let Q=/^((?:(?!\s)[$\w\x7f-\uffff])+(?:\.[a-zA-Z_$][\w]*)*)(\s*)=(?!=)/.exec(Y);if(Q){let F=Q[1],J=Q[2],D=F.split("."),X=()=>{this.emit("IDENTIFIER",D[0]);for(let M=1;M<D.length;M++)this.emit(".","."),this.emit("PROPERTY",D[M])};X(),this.emit("=","="),this.emit("IDENTIFIER","Object"),this.emit(".","."),this.emit("PROPERTY","assign"),this.emit("CALL_START","("),X(),this.emit("COMPOUND_ASSIGN","??="),this.emit("{","{"),this.emit("}","}"),this.emit(",",",");let z=this.prev();return z.mergeClose=!0,1+F.length+J.length+1}}else if(U==="*"&&W?.[0]==="EXPORT")Z="EXPORT_ALL";else if(d1.has(U))Z="MATH";else if(n1.has(U))Z="COMPARE";else if(I1.has(U))Z="COMPOUND_ASSIGN";else if(r1.has(U))Z="UNARY_MATH";else if(a1.has(U))Z="SHIFT";else if(U==="?"&&W?.spaced)Z="SPACE?";else if(U==="?"&&(this.chunk[1]==="["||this.chunk[1]==="("))Z="?.";else if(W){if(U==="("&&!W.spaced&&r.has(W[0])){if(W[0]==="?.")W[0]="ES6_OPTIONAL_CALL";Z="CALL_START"}if(U==="["&&!W.spaced&&T1.has(W[0])){if(Z="INDEX_START",W[0]==="?.")W[0]="ES6_OPTIONAL_INDEX"}}if(U==="("||U==="{"||U==="[")this.ends.push({tag:m1[U],origin:[Z,U]});else if(U===")"||U==="}"||U==="]")this.pair(U);return this.emit(Z,U,{len:U.length}),U.length}tagParameters(){if(this.prevTag()!==")")return this.tagDoIife();let A=this.tokens.length-1,U=[];this.tokens[A][0]="PARAM_END";while(A-- >0){let Z=this.tokens[A];if(Z[0]===")")U.push(Z);else if(Z[0]==="("||Z[0]==="CALL_START")if(U.length)U.pop();else if(Z[0]==="(")return Z[0]="PARAM_START",this.tagDoIife(A-1);else{this.tokens[this.tokens.length-1][0]="CALL_END";return}}}tagDoIife(A){let U=this.tokens[A??this.tokens.length-1];if(U?.[0]==="DO")U[0]="DO_IIFE"}rewrite(A){return this.tokens=A,this.removeLeadingNewlines(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.rewriteRender?.(),this.rewriteTypes(),this.tagPostfixConditionals(),this.addImplicitBracesAndParens(),this.addImplicitCallCommas(),this.closeMergeAssignments(),this.tokens}removeLeadingNewlines(){let A=0;while(this.tokens[A]?.[0]==="TERMINATOR")A++;if(A>0)this.tokens.splice(0,A)}closeOpenCalls(){this.scanTokens((A,U)=>{if(A[0]==="CALL_START")this.detectEnd(U+1,(Z)=>Z[0]===")"||Z[0]==="CALL_END",(Z)=>Z[0]="CALL_END");return 1})}closeOpenIndexes(){this.scanTokens((A,U)=>{if(A[0]==="INDEX_START")this.detectEnd(U+1,(Z)=>Z[0]==="]"||Z[0]==="INDEX_END",(Z,W)=>{if(this.tokens[W+1]?.[0]===":")A[0]="[",Z[0]="]";else Z[0]="INDEX_END"});return 1})}normalizeLines(){let A=null,U=null,Z=null,W=($,Q)=>{return $[1]!==";"&&p1.has($[0])&&!($[0]==="TERMINATOR"&&O1.has(this.tokens[Q+1]?.[0]))&&!($[0]==="ELSE"&&A!=="THEN")||$[0]==="INDENT"&&!$.generated&&(A==="->"||A==="=>")||$[0]===","&&(A==="->"||A==="=>")&&!this.commaInImplicitCall(Q)&&!this.commaInImplicitObject(Q)||_1.has($[0])&&(this.tokens[Q-1]?.newLine||this.tokens[Q-1]?.[0]==="OUTDENT")},Y=($,Q)=>{let F=this.tokens[Q-1]?.[0]===","?Q-1:Q;this.tokens.splice(F,0,Z)};this.scanTokens(($,Q,F)=>{let[J]=$;if(J==="TERMINATOR"){if(this.tokens[Q+1]?.[0]==="ELSE"&&this.tokens[Q-1]?.[0]!=="OUTDENT")return F.splice(Q,1,...this.makeIndentation()),1;if(O1.has(this.tokens[Q+1]?.[0]))return F.splice(Q,1),0}if(J==="CATCH")for(let D=1;D<=2;D++){let X=this.tokens[Q+D]?.[0];if(X==="OUTDENT"||X==="TERMINATOR"||X==="FINALLY")return F.splice(Q+D,0,...this.makeIndentation()),2+D}if((J==="->"||J==="=>")&&(this.tokens[Q+1]?.[0]===","||this.tokens[Q+1]?.[0]==="]"))return[U,Z]=this.makeIndentation(),F.splice(Q+1,0,U,Z),1;if(P1.has(J)&&this.tokens[Q+1]?.[0]!=="INDENT"&&!(J==="ELSE"&&this.tokens[Q+1]?.[0]==="IF")){if(A=J,[U,Z]=this.makeIndentation(),J==="THEN")U.fromThen=!0;if(F.splice(Q+1,0,U),this.detectEnd(Q+2,W,Y),J==="THEN")F.splice(Q,1);return 1}return 1})}tagPostfixConditionals(){let A=null,U=(W,Y)=>{return W[0]==="TERMINATOR"||W[0]==="INDENT"&&!P1.has(this.tokens[Y-1]?.[0])},Z=(W)=>{if(W[0]!=="INDENT"||W.generated&&!W.fromThen)A[0]="POST_"+A[0]};this.scanTokens((W,Y)=>{if(W[0]!=="IF"&&W[0]!=="UNLESS")return 1;return A=W,this.detectEnd(Y+1,U,Z),1})}addImplicitBracesAndParens(){let A=[],U=!1;this.scanTokens((Z,W,Y)=>{let[$]=Z,Q=Y[W-1]||[],F=Y[W+1]||[],[J]=Q,[D]=F,X=W,z=(O)=>W-X+O,M=()=>A[A.length-1],K=(O)=>O?.[2]?.ours,H=()=>K(M())&&M()?.[0]==="(",G=()=>K(M())&&M()?.[0]==="{",q=(O)=>{A.push(["(",O,{ours:!0}]),Y.splice(O,0,y("CALL_START","("))},R=()=>{A.pop(),Y.splice(W,0,y("CALL_END",")")),W+=1},w=(O,B={})=>{A.push(["{",O,{sameLine:!0,startsLine:B.startsLine??!0,ours:!0}]);let N=y("{","{");if(!N.data)N.data={};N.data.generated=!0,Y.splice(O,0,N)},I=(O)=>{O=O??W,A.pop(),Y.splice(O,0,y("}","}")),W+=1};if((H()||G())&&l1.has($))return A.push(["CONTROL",W,{ours:!0}]),z(1);if($==="INDENT"&&K(M())){if(J!=="=>"&&J!=="->"&&J!=="["&&J!=="("&&J!==","&&J!=="{"&&J!=="ELSE"&&J!=="=")while(H()||G()&&J!==":")if(H())R();else I();if(M()?.[2]?.ours&&M()[0]==="CONTROL")A.pop();return A.push([$,W]),z(1)}if(x.has($))return A.push([$,W]),z(1);if(g.has($)){while(K(M()))if(H())R();else if(G())I();else A.pop();A.pop()}if(U1.has($)&&Z.spaced&&(a.has(D)||D==="..."&&a.has(Y[W+2]?.[0])||x1.has(D)&&!F.spaced&&!F.newLine)&&!(($==="]"||$==="}")&&(D==="->"||D==="=>")))return q(W+1),z(2);if(U1.has($)&&this.tokens[W+1]?.[0]==="INDENT"&&this.looksObjectish(W+2)&&!this.findTagsBackwards(W,["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"]))return q(W+1),A.push(["INDENT",W+2]),z(3);if($==="SPACE?")U=!0;if($===":"){if(U)return U=!1,z(1);let O=g.has(this.tokens[W-1]?.[0])?A[A.length-1]?.[1]??W-1:W-1;if(this.tokens[W-2]?.[0]==="@")O=W-2;let B=O<=0||i.has(this.tokens[O-1]?.[0])||this.tokens[O-1]?.newLine;if(M()){let[N,T]=M(),S=A[A.length-2];if((N==="{"||N==="INDENT"&&S?.[0]==="{"&&!K(S))&&(B||this.tokens[O-1]?.[0]===","||this.tokens[O-1]?.[0]==="{"||this.tokens[O]?.[0]==="{"))return z(1)}return w(O,{startsLine:!!B}),z(2)}if(i.has($))for(let O=A.length-1;O>=0;O--){if(!K(A[O]))break;if(A[O][0]==="{")A[O][2].sameLine=!1}let P=J==="OUTDENT"||Q.newLine,E=$==="||"||$==="&&",_=!1;if(E){let O=W+1,B=Y[O]?.[0];if(B==="("||B==="["||B==="{"){for(let N=1;++O<Y.length&&N>0;)if(B=Y[O][0],B==="("||B==="["||B==="{")N++;else if(B===")"||B==="]"||B==="}")N--}else if(B&&B!=="TERMINATOR"&&B!=="OUTDENT"&&B!==",")O++;_=Y[O]?.[0]===","}if(c1.has($)&&!_||_1.has($)&&P)while(K(M())){let[O,,{sameLine:B,startsLine:N}]=M();if(H()&&J!==",")R();else if(G()&&!E&&B&&$!=="TERMINATOR"&&J!==":")I();else if(G()&&$==="TERMINATOR"&&J!==","&&!(N&&this.looksObjectish(W+1)))I();else if(M()?.[2]?.ours&&M()[0]==="CONTROL"&&Y[M()[1]]?.[0]==="CLASS"&&$==="TERMINATOR")A.pop();else break}if($===","&&!this.looksObjectish(W+1)&&G()&&(D!=="TERMINATOR"||!this.looksObjectish(W+2))){let O=D==="OUTDENT"?1:0;while(G())I(W+O)}return z(1)})}addImplicitCallCommas(){let A=0,U=0,Z=this.tokens;while(U<Z.length){let W=Z[U][0],Y=U>0?Z[U-1][0]:null;if(W==="CALL_START"||W==="(")A++;if(W==="CALL_END"||W===")")A--;if(A>0&&(W==="->"||W==="=>")&&k1.has(Y))Z.splice(U,0,y(",",",")),U++;U++}}scanTokens(A){let U=0;while(U<this.tokens.length)U+=A.call(this,this.tokens[U],U,this.tokens)}detectEnd(A,U,Z,W={}){let Y=0;while(A<this.tokens.length){let $=this.tokens[A];if(Y===0&&U.call(this,$,A))return Z.call(this,$,A);if(x.has($[0]))Y++;if(g.has($[0]))Y--;if(Y<0){if(W.returnOnNegativeLevel)return;return Z.call(this,$,A)}A++}}closeMergeAssignments(){let A=this.tokens;for(let U=0;U<A.length;U++){if(!A[U].mergeClose)continue;let Z=0;for(let W=U+1;W<A.length;W++){let Y=A[W][0];if(Y==="("||Y==="["||Y==="{"||Y==="CALL_START"||Y==="INDEX_START"||Y==="INDENT")Z++;if(Y===")"||Y==="]"||Y==="}"||Y==="CALL_END"||Y==="INDEX_END"||Y==="OUTDENT")Z--;if(Z<0||Z===0&&Y==="TERMINATOR"){A.splice(W,0,y("CALL_END",")",A[W-1]));break}if(W===A.length-1){A.splice(W+1,0,y("CALL_END",")",A[W]));break}}}}commaInImplicitCall(A){let U=0;for(let Z=A-1;Z>=0;Z--){let W=this.tokens[Z][0];if(g.has(W)){U++;continue}if(x.has(W)){if(W==="INDENT")return!1;if(U--,U<0)return!1;continue}if(U>0)continue;if(U1.has(W)&&this.tokens[Z].spaced){let Y=this.tokens[Z+1]?.[0];return a.has(Y)||Y==="..."&&a.has(this.tokens[Z+2]?.[0])}}return!1}commaInImplicitObject(A){let U=0;for(let Z=A-1;Z>=0;Z--){let W=this.tokens[Z][0];if(g.has(W)){U++;continue}if(x.has(W)){if(U--,U<0)return!1;continue}if(U>0)continue;if(W===":"&&Z>0&&this.tokens[Z-1][0]==="PROPERTY")return this.looksObjectish(A+1);if(i.has(W))return!1}return!1}looksObjectish(A){if(!this.tokens[A])return!1;if(this.tokens[A]?.[0]==="@"&&this.tokens[A+2]?.[0]===":")return!0;if(this.tokens[A+1]?.[0]===":")return!0;if(x.has(this.tokens[A]?.[0])){let U=null;if(this.detectEnd(A+1,(Z)=>g.has(Z[0]),(Z,W)=>U=W),U&&this.tokens[U+1]?.[0]===":")return!0}return!1}findTagsBackwards(A,U){let Z=new Set(U),W=[];while(A>=0){let Y=this.tokens[A]?.[0];if(!W.length&&Z.has(Y))return!0;if(g.has(Y))W.push(Y);if(x.has(Y)&&W.length)W.pop();if(!W.length&&(x.has(Y)&&!this.tokens[A]?.generated||i.has(Y)))break;A--}return!1}makeIndentation(A){let U=y("INDENT",2),Z=y("OUTDENT",2);if(A)U.generated=Z.generated=!0,U.origin=Z.origin=A;else U.explicit=Z.explicit=!0;return[U,Z]}}H1(c);var q2={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,ReactAssign: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,REACT_ASSIGN: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,"--":195,"++":196,MATH:197,"**":198,SHIFT:199,COMPARE:200,"&":201,"^":202,"|":203,"||":204,"??":205,"&&":206,"!?":207,PIPE:208,RELATION:209,"SPACE?":210,COMPOUND_ASSIGN:211},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:"REACT_ASSIGN",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:"--",196:"++",197:"MATH",198:"**",199:"SHIFT",200:"COMPARE",201:"&",202:"^",203:"|",204:"||",205:"??",206:"&&",207:"!?",208:"PIPE",209:"RELATION",210:"SPACE?",211:"COMPOUND_ASSIGN"},parseTable:(()=>{let A=[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,2,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,4,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,54,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-13,-13,132,105,106,-13,-13,-13,-13,135,136,137,-13,138,-13,-13,-13,-13,-13,-13,-13,133,-13,139,-13,-13,134,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,131,-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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,140,141,142,-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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,57,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,143,144,145,146,147,-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,52,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,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,52,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,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,52,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,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,52,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,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,52,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,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,52,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,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,52,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,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,52,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,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,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,152,104,-173,-173,-173,154,155,153,99,157,156,151,148,-173,-173,149,150,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,2,1,159,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,160,102,103,158,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,2,1,161,162,163,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,2,1,164,165,163,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,2,1,166,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,172,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,173,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,174,163,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,175,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,177,178,179,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,176,72,73,93,99,83,87,84,85,167,168,90,91,86,88,89,82,171,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,177,178,179,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,180,72,73,93,99,83,87,84,85,167,168,90,91,86,88,89,82,171,60,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,-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,181,182,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,183,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,2,1,185,184,163,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,186,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,187,-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,4,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,160,188,2,66,10,160,189,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,4,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,193,152,104,154,155,153,99,190,191,83,156,195,192,194,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,2,1,196,163,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,197,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-304,-304,177,178,179,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-304,160,-304,102,103,-304,198,200,72,73,93,-304,99,-304,-304,-304,-304,-304,83,-304,87,-304,84,85,-304,-304,167,-304,168,90,91,86,88,89,82,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,199,171,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,1,66,201,2,66,10,160,202,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,2,1,203,163,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,204,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-224,-224,205,163,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,206,-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,167,-224,168,90,91,86,88,89,82,-224,69,64,65,207,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,169,170,171,46,47,48,50,51,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,2,55,1,208,104,2,55,1,209,104,6,15,19,89,2,1,1,211,210,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,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-221,-221,212,163,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,213,-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,167,-221,168,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,169,170,171,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,214,218,104,105,106,217,215,216,219,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,177,178,226,227,228,229,221,222,223,224,232,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,225,104,105,106,102,103,53,233,72,73,93,220,83,87,84,85,66,167,168,90,91,86,88,89,82,61,67,62,230,231,171,57,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,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,57,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,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,52,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,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,52,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,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,52,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,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,52,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,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,52,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,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,52,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,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,52,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,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,52,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,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,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,2,1,234,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,235,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,2,1,236,245,163,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,242,102,103,243,53,52,72,73,93,99,59,83,237,87,247,84,85,238,239,241,244,240,66,42,43,90,91,246,86,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,249,250,248,139,2,109,11,251,139,52,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,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,54,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-206,-206,252,253,-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,254,1,83,255,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,2,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,2,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,61,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,-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,61,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,-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,2,1,256,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,257,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,258,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,259,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,261,163,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,160,102,103,260,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,267,100,101,269,104,270,253,105,106,-109,-109,-109,271,262,-109,263,268,272,264,265,266,273,52,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,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,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,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,52,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,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,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,177,178,179,34,35,36,274,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,233,72,73,93,99,83,87,84,85,167,168,90,91,86,88,89,82,171,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,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,-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,55,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,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,6,54,5,1,1,2,1,278,105,106,275,276,277,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,2,1,-5,279,-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,2,1,280,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,281,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,282,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,283,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,284,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,285,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,286,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,287,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,288,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,291,163,289,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,290,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,294,163,292,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,293,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,297,163,295,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,296,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,298,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,299,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,300,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,301,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,302,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,303,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,14,39,16,1,24,1,1,7,4,5,5,2,24,37,2,307,152,104,154,155,153,99,304,305,83,156,195,306,194,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,2,1,308,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,309,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,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,4,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,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,53,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,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,53,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,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,2,109,11,310,139,2,57,1,311,253,2,57,1,312,253,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,2,1,313,163,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,318,77,78,79,80,81,100,101,92,104,105,106,314,102,103,316,53,52,72,73,93,315,99,59,83,87,320,84,85,317,319,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,85,321,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,2,1,326,245,163,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,325,102,103,53,52,72,73,93,99,59,83,87,247,84,85,324,66,322,42,43,90,91,246,323,86,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,327,253,2,57,1,328,253,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,2,1,329,163,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,330,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,332,331,163,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,333,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,335,334,163,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,336,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,338,337,163,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,160,102,103,339,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,341,340,163,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,342,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,344,343,163,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,345,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,9,6,60,1,5,23,1,8,18,2,-217,-217,-217,347,348,-217,-217,-217,346,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,349,-178,-178,15,6,49,1,10,1,5,8,1,1,7,14,2,17,2,5,-181,152,104,-181,-181,-181,154,155,153,99,157,156,-181,-181,350,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,252,253,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,2,1,326,245,163,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,242,102,103,243,53,52,72,73,93,99,59,83,237,87,247,84,85,238,239,241,244,240,66,42,43,90,91,246,86,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,52,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,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,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,2,1,352,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,351,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,125,126,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,118,-370,120,-370,-370,-370,9,1,5,59,1,1,5,32,18,16,-367,-367,-367,-367,-367,-367,-367,-367,-367,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,4,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,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,4,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,111,-372,-372,-372,-372,-372,-372,118,-372,120,-372,-372,-372,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,152,104,-173,-173,-173,154,155,153,99,157,156,151,353,-173,-173,149,150,2,66,10,160,158,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,2,1,161,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,164,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,5,15,108,2,1,1,211,167,168,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,4,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,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,4,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,4,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,125,126,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,118,-376,120,-376,-376,-376,2,81,8,354,99,57,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-378,-378,-86,-86,-378,-378,-378,-378,-86,-86,-86,-86,-86,-86,-86,-86,-378,-86,-378,-378,-378,-378,-378,-378,-378,-378,-86,-378,-378,-86,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-86,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,10,54,5,1,23,1,1,3,21,11,11,132,105,106,135,136,137,138,133,139,134,3,83,1,1,140,141,142,52,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,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,57,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-379,-379,-86,-86,-379,-379,-379,-379,-86,-86,-86,-86,-86,-86,-86,-86,-379,-86,-379,-379,-379,-379,-379,-379,-379,-379,-86,-379,-379,-86,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-86,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-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,4,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,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,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,2,1,357,355,163,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,356,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,2,1,358,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,359,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,66,10,68,160,360,361,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,362,363,364,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,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,4,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,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,4,94,69,2,2,366,365,367,368,11,55,1,24,1,1,7,4,10,2,24,39,152,104,154,155,153,99,369,157,156,195,194,11,55,1,24,1,1,7,4,10,2,24,39,152,104,154,155,153,99,370,157,156,195,194,3,66,10,88,160,371,372,5,72,22,69,2,2,373,-302,-302,-302,-302,6,72,1,21,69,2,2,-300,374,-300,-300,-300,-300,23,66,26,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,375,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,376,377,378,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,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,2,1,379,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,59,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-308,-308,-86,-86,-308,160,-308,-308,-86,-86,-86,380,-86,-86,-86,-86,-86,-308,-86,-308,-308,-308,-308,-308,-308,-308,-308,-86,-308,-308,-86,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,381,-308,-308,-86,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,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,2,1,384,385,386,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,382,383,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,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,4,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,387,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,4,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,388,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,2,1,389,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,66,10,44,160,391,390,2,66,10,160,392,9,1,5,59,1,1,5,32,18,16,-369,-369,-369,-369,-369,-369,-369,-369,-369,52,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,3,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,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,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,4,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,393,99,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,2,72,70,395,394,1,142,396,7,55,1,10,30,83,1,2,401,104,400,397,398,399,402,2,72,70,-337,-337,1,181,403,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,267,100,101,408,104,270,253,105,106,407,-109,-109,271,262,404,263,268,272,264,265,266,273,409,405,406,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,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,61,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,-89,-89,-89,-89,-89,-89,-89,-89,410,-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,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,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,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,2,1,411,163,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,412,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,142,413,56,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,144,145,146,147,-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,57,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,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,2,6,132,107,414,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,2,1,415,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-199,-199,-199,-199,127,-199,320,416,319,-199,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,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,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,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,2,1,326,245,163,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,243,53,52,72,73,93,99,59,83,417,87,247,84,85,419,418,66,42,43,90,91,246,86,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,421,422,-217,-217,420,-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,2,1,423,-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,2,1,326,245,163,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,242,102,103,243,53,52,72,73,93,99,59,83,87,247,84,85,425,424,241,244,240,66,42,43,90,91,246,86,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,2,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,2,1,-202,426,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,53,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,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,2,57,1,427,253,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,2,1,428,163,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,429,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,53,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,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,61,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,-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,61,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,-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,430,253,2,57,1,431,253,24,66,10,16,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,432,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,433,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-255,-255,-255,-255,-255,-255,-255,-255,127,-255,-255,434,-255,-255,-255,-255,-255,-255,-255,-255,125,126,96,97,-255,-255,-255,-255,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-257,-257,-257,-257,-257,-257,-257,-257,127,-257,-257,435,-257,-257,-257,-257,-257,-257,-257,-257,125,126,96,97,-257,-257,-257,-257,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,4,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,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-264,-264,-264,160,-264,-264,436,-264,-264,127,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,125,126,96,97,-264,-264,-264,-264,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,437,-114,8,6,60,1,5,23,1,8,18,-217,-217,-217,439,438,-217,-217,-217,7,6,60,1,5,1,18,5,-123,-123,-123,-123,440,-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,2,1,441,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,57,1,45,252,253,442,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,446,448,447,269,104,270,253,445,271,99,443,87,444,449,450,86,82,53,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,-39,-39,451,-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,278,105,106,452,453,277,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,2,1,454,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,456,455,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,125,126,-382,-382,-382,-382,-382,-382,-382,-382,110,111,-382,-382,-382,-382,-382,-382,118,-382,120,-382,-382,-382,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,4,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,125,126,-383,-383,-383,-383,-383,-383,-383,-383,110,111,-383,-383,-383,-383,-383,-383,118,-383,120,-383,-383,-383,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,4,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,125,126,-384,-384,-384,-384,-384,-384,-384,-384,-384,111,-384,-384,-384,-384,-384,-384,118,-384,120,-384,-384,-384,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,4,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,-385,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,4,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,109,108,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,4,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,109,108,110,111,112,-387,-387,-387,-387,-387,118,-387,120,-387,122,-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,4,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,109,108,110,111,112,113,-388,-388,-388,-388,118,-388,120,-388,122,-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,4,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,112,113,114,-389,-389,-389,118,-389,120,-389,122,-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,4,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,113,114,115,-390,-390,118,-390,120,-390,122,-390,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,4,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,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,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,4,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,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-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,4,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,125,126,-398,-398,-398,-398,-398,-398,109,108,110,111,112,113,114,115,116,-398,118,119,120,-398,122,-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,4,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,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-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,4,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,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-399,-399,-399,-399,-399,-399,-399,-399,127,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,124,125,126,96,97,-399,-399,-399,-399,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,4,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,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,4,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,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,4,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,125,126,-397,-397,-397,-397,-397,-397,109,108,110,111,112,113,114,115,116,-397,118,-397,120,-397,122,-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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-400,-400,-400,-400,-400,-400,-400,-400,127,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,124,125,126,96,97,-400,-400,-400,-400,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,4,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,117,118,119,120,-401,122,-401,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,125,126,-402,-402,-402,-402,-402,-402,109,108,110,111,112,-402,-402,-402,-402,-402,118,-402,120,-402,-402,-402,23,91,1,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,457,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,4,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,458,-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,4,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,4,94,69,2,2,460,459,461,462,11,55,1,24,1,1,7,4,10,2,24,39,152,104,154,155,153,99,463,157,156,195,194,11,55,1,24,1,1,7,4,10,2,24,39,152,104,154,155,153,99,464,157,156,195,194,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,4,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,-298,-298,-298,-298,465,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,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,4,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,4,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,124,125,126,96,97,-238,-238,-238,-238,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,53,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,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,61,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,-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,61,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,-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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,466,127,320,467,319,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,2,1,468,163,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,469,99,59,83,87,320,84,85,317,319,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,86,470,1,86,471,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,2,1,472,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,52,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,-46,-46,-46,-46,-46,473,-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,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,2,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,2,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,2,1,474,163,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,475,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,53,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,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,8,6,60,1,5,23,1,8,18,-217,-217,-217,477,476,-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,2,1,326,245,163,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,325,102,103,53,52,72,73,93,99,59,83,87,247,84,85,324,66,42,43,90,91,246,478,86,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,4,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,61,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,-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,61,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,-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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,479,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,2,1,480,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,2,1,481,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,482,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,2,1,483,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,484,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,2,1,485,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,4,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,2,1,486,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,487,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,2,1,488,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,489,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,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,152,104,-218,-218,154,155,153,99,-218,157,-218,156,151,-218,491,150,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,2,1,494,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,6,6,60,1,5,50,2,-180,-180,-180,-180,-180,-180,55,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,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,2,6,61,107,495,9,6,60,1,5,23,1,8,18,2,-217,-217,-217,347,348,-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,4,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,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,2,1,498,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,499,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,23,67,25,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,500,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,4,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,2,1,501,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,502,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,2,66,10,160,503,6,55,1,10,10,5,8,504,104,160,506,505,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,2,1,507,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,508,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,509,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,510,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,94,511,1,165,512,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,4,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,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,2,1,513,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,10,55,1,24,1,1,7,14,2,24,39,152,104,154,155,153,99,157,156,195,514,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,2,1,515,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,155,1,1,516,377,378,4,67,78,11,1,517,518,519,378,3,67,78,12,-251,-251,-251,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,2,1,521,163,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,167,168,90,91,520,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-306,-306,-306,160,-306,-306,522,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,125,126,-306,-306,-306,-306,-306,-306,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,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,2,1,523,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,2,6,61,525,524,2,6,61,-314,-314,24,6,61,25,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-317,-317,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,-318,-318,7,6,61,81,1,9,1,1,-319,-319,128,129,130,96,97,1,67,526,1,67,527,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,4,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,152,104,-173,-173,-173,154,155,153,99,157,156,151,528,-173,-173,149,150,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,4,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,4,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,1,67,529,3,54,5,1,530,105,106,3,89,89,5,532,531,219,3,54,5,1,533,105,106,1,142,534,8,6,60,1,5,23,1,8,18,-217,-217,-217,536,535,-217,-217,-217,5,6,60,1,5,24,-328,-328,-328,-328,-328,6,55,1,10,113,1,2,401,104,400,537,399,402,6,6,60,1,5,24,85,-333,-333,-333,-333,-333,538,6,6,60,1,5,24,85,-335,-335,-335,-335,-335,539,2,55,1,540,104,14,1,5,59,1,1,5,32,18,16,4,6,1,10,1,-339,-339,-339,-339,-339,-339,-339,-339,-339,541,-339,-339,-339,-339,8,6,60,1,5,23,1,8,18,-217,-217,-217,543,542,-217,-217,-217,5,6,60,1,5,24,-357,-357,-357,-357,-357,6,55,1,10,116,3,2,545,104,407,409,544,406,12,6,60,1,5,1,10,1,1,6,5,24,61,-362,-362,-362,-362,-120,-120,-120,-120,-120,-362,-120,546,6,6,60,1,5,24,85,-365,-365,-365,-365,-365,547,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,2,1,549,548,163,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,550,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-352,-352,-352,-352,-352,-352,127,-352,-352,-352,-352,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,81,8,551,99,3,54,5,1,552,105,106,52,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,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,2,6,61,107,553,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,2,1,554,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,57,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,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,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,2,1,423,-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,556,555,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,2,1,-218,326,245,163,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,243,53,52,72,73,93,99,59,-218,83,-218,87,247,84,85,558,557,244,240,66,-218,42,43,90,91,246,86,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,559,-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,2,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,421,422,-217,-217,560,-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,2,1,326,245,163,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,243,53,52,72,73,93,99,59,83,87,247,84,85,419,418,66,42,43,90,91,246,86,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,4,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,52,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,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,23,86,6,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,561,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,2,1,562,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,52,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,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,52,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,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,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,4,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,4,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,563,-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,2,1,564,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,565,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,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,2,1,566,163,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,567,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,6,60,30,569,570,568,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,267,100,101,269,104,270,253,105,106,-218,-218,271,572,-218,571,272,264,265,-218,266,273,-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,2,1,573,163,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,574,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,23,92,12,44,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,127,575,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,2,1,576,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,10,6,60,1,5,11,1,1,11,13,11,-127,-127,-127,-127,-129,-129,-129,-127,577,139,10,6,60,1,5,11,1,1,11,13,11,-128,-128,-128,-128,579,580,581,-128,578,139,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,249,250,582,139,2,109,11,583,139,52,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,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,55,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,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,4,59,1,2,2,-59,-59,-59,-59,2,6,59,107,584,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,2,1,585,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,2,1,586,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,66,587,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,2,1,588,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,589,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,590,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,591,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,594,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,61,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,-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,2,1,595,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,26,67,25,14,11,1,30,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,596,127,320,467,319,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,1,67,597,61,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,-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,61,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,-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,4,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,2,1,598,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,23,86,6,56,1,9,1,1,32,1,4,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,2,1,600,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,-218,326,245,163,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,247,84,85,604,66,-218,42,43,90,91,246,86,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,477,605,-217,-217,-217,61,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,-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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,23,67,25,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,610,127,124,125,126,96,97,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,2,1,612,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,160,102,103,611,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,152,104,154,155,153,99,157,156,151,613,150,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,152,104,-173,-173,-173,154,155,153,99,157,156,151,614,-173,-173,149,150,28,6,60,1,5,20,30,2,24,1,9,1,1,32,1,4,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,55,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,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,3,125,1,1,615,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,4,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,23,67,25,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,616,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,4,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,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,4,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,24,66,10,16,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,617,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,160,618,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,4,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,-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,160,619,2,66,10,160,620,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,4,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,26,66,10,16,5,51,1,9,1,1,4,28,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,621,127,622,124,125,126,96,97,623,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,624,127,625,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,626,127,627,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,628,127,629,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,2,1,630,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,631,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,24,66,10,16,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,632,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,-303,-303,-303,-303,27,72,20,2,54,1,9,1,1,3,2,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-301,127,-301,124,125,126,96,97,-301,-301,-301,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,67,78,11,1,633,634,519,378,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,4,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,2,66,10,160,635,3,67,78,12,-252,-252,-252,3,66,6,4,160,637,636,24,66,6,20,56,1,9,1,1,32,1,4,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-310,-310,-310,160,-310,-310,638,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,125,126,-310,-310,-310,-310,-310,-310,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,4,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,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,2,1,-316,384,385,386,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,-316,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,639,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,4,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,4,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,347,348,-217,-217,640,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,4,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,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,1,142,641,6,55,1,10,113,1,2,401,104,400,642,399,402,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,3,54,5,1,643,105,106,3,6,60,30,645,646,644,10,6,49,1,10,1,29,8,18,58,2,-218,401,104,-218,-218,-218,-218,-218,647,402,8,6,60,1,5,23,1,8,18,-217,-217,-217,536,648,-217,-217,-217,2,55,1,649,104,2,55,1,650,104,1,142,-338,3,54,5,1,651,105,106,3,6,60,30,653,654,652,10,6,49,1,10,1,29,8,18,60,5,-218,545,104,-218,-218,-218,-218,-218,409,655,8,6,60,1,5,23,1,8,18,-217,-217,-217,543,656,-217,-217,-217,6,6,60,1,5,24,85,-362,-362,-362,-362,-362,546,3,55,1,126,657,104,658,2,55,1,659,104,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-345,-345,-345,-345,-345,-345,127,-345,-345,-345,-345,125,126,-345,-345,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,2,1,660,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,661,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,67,662,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,1,138,663,23,92,12,44,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,127,664,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,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,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,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,2,1,326,245,163,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,242,102,103,243,53,52,72,73,93,99,59,83,87,247,84,85,425,665,241,244,240,66,42,43,90,91,246,86,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,2,1,326,245,163,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,243,53,52,72,73,93,99,59,83,-153,87,247,84,85,419,418,66,42,43,90,91,246,86,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,2,1,326,245,163,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,243,53,52,72,73,93,99,59,83,87,247,84,85,425,666,244,240,66,42,43,90,91,246,86,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,556,667,52,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,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,23,67,25,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,668,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,160,669,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,125,126,-256,-256,-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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,125,126,-258,-258,-258,-258,-258,-258,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-116,-116,-116,-116,670,-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,2,1,671,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,57,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,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,17,45,8,1,1,1,1,1,1,1,22,8,10,1,1,1,2,1,267,100,101,269,104,270,253,105,106,271,572,672,272,264,265,266,273,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,267,100,101,269,104,270,253,105,106,-109,-109,-109,271,572,-109,673,268,272,264,265,266,273,5,6,60,1,5,24,-111,-111,-111,-111,-111,6,6,60,1,5,19,5,-114,-114,-114,-114,674,-114,27,6,60,1,5,20,4,52,1,9,1,1,32,1,4,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,2,1,675,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,127,676,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,677,253,2,57,1,678,253,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,2,1,679,163,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,680,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,681,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,125,126,-403,-403,-403,-403,-403,-403,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,2,1,682,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,683,-283,-283,-283,-283,-283,-283,-283,-283,125,126,-283,-283,-283,684,-283,-283,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,685,-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,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,686,-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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,687,-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,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,2,1,688,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,689,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,125,126,-299,-299,-299,-299,-299,-299,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,4,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,690,1,86,691,23,86,6,56,1,9,1,1,32,1,4,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,61,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,-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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,692,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,53,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,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,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,2,1,326,245,163,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,247,84,85,693,66,42,43,90,91,246,86,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,2,1,326,245,163,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,325,102,103,53,52,72,73,93,99,59,83,87,247,84,85,324,66,42,43,90,91,246,694,86,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,695,1,86,696,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,4,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,4,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,4,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,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,4,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,52,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,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,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,347,697,-217,-217,-217,2,66,10,160,611,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,4,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,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,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,4,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,4,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,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,4,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,-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,4,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,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,4,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,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,2,1,698,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,699,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,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,2,1,700,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,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,2,1,701,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,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,2,1,702,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,25,66,10,16,5,51,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,703,127,704,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,705,127,706,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,4,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,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,4,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,2,66,10,160,707,1,67,708,4,6,61,78,12,709,-253,-253,-253,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,2,1,710,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,2,6,61,-315,-315,2,66,10,160,711,3,54,5,1,712,105,106,8,6,60,1,5,23,1,8,18,-217,-217,-217,536,713,-217,-217,-217,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,1,142,714,4,55,1,124,2,401,104,715,402,6,55,1,10,113,1,2,401,104,400,716,399,402,5,6,60,1,5,24,-329,-329,-329,-329,-329,3,6,60,1,645,646,717,5,6,60,1,5,24,-334,-334,-334,-334,-334,5,6,60,1,5,24,-336,-336,-336,-336,-336,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,14,1,5,59,1,1,5,32,18,16,4,6,1,10,1,-340,-340,-340,-340,-340,-340,-340,-340,-340,718,-340,-340,-340,-340,4,55,1,126,5,545,104,409,719,6,55,1,10,116,3,2,545,104,407,409,720,406,5,6,60,1,5,24,-358,-358,-358,-358,-358,3,6,60,1,653,654,721,5,6,60,1,5,24,-363,-363,-363,-363,-363,5,6,60,1,5,24,-364,-364,-364,-364,-364,5,6,60,1,5,24,-366,-366,-366,-366,-366,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,32,1,4,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,23,67,25,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,722,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,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,52,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,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,52,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,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,9,6,60,1,5,23,1,8,9,9,-217,-217,-217,421,422,-217,-217,723,-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,724,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,4,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,307,152,104,154,155,153,99,725,726,83,156,195,306,194,23,67,25,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,727,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,439,728,-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,2,1,729,163,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,567,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,23,67,25,56,1,9,1,1,32,1,4,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,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,731,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,2,1,732,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,65,733,23,67,25,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,734,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,2,1,735,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,736,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,737,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,738,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,739,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,740,-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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,741,-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,61,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,-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,61,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,-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,742,5,6,60,1,5,50,-196,-196,-196,-196,-196,8,6,60,1,5,23,1,8,18,-217,-217,-217,477,743,-217,-217,-217,5,6,60,1,5,50,-197,-197,-197,-197,-197,61,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,-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,744,25,66,10,16,56,1,9,1,1,4,28,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,745,127,124,125,126,96,97,746,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,747,127,748,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,750,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,751,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,4,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,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,2,1,752,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,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,2,1,753,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,67,754,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,4,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,3,67,78,12,-254,-254,-254,24,66,6,20,56,1,9,1,1,32,1,4,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,4,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,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,3,6,60,30,645,646,755,3,54,5,1,756,105,106,5,6,60,1,5,24,-330,-330,-330,-330,-330,8,6,60,1,5,23,1,8,18,-217,-217,-217,536,757,-217,-217,-217,5,6,60,1,5,24,-331,-331,-331,-331,-331,3,54,5,1,758,105,106,5,6,60,1,5,24,-359,-359,-359,-359,-359,8,6,60,1,5,23,1,8,18,-217,-217,-217,543,759,-217,-217,-217,5,6,60,1,5,24,-360,-360,-360,-360,-360,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,2,66,1,556,760,52,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,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,4,94,69,2,2,761,459,461,462,11,55,1,24,1,1,7,4,10,2,24,39,152,104,154,155,153,99,762,157,156,195,194,5,6,60,1,5,24,-117,-117,-117,-117,-117,3,6,60,1,569,570,763,27,6,60,1,5,20,4,52,1,9,1,1,32,1,4,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,764,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,4,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,125,126,-284,-284,-284,765,-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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,766,-285,-285,-285,-285,-285,-285,-285,-285,125,126,-285,-285,-285,-285,-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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-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,2,1,767,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,768,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,61,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,-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,769,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,4,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,2,1,770,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,2,1,771,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,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,4,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,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,4,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,24,66,10,16,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,772,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,773,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,4,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,1,142,774,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,3,6,60,1,645,646,775,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,3,6,60,1,653,654,776,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,2,1,777,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,94,778,5,6,60,1,5,24,-113,-113,-113,-113,-113,1,86,779,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,2,1,780,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,781,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-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,5,6,60,1,5,50,-198,-198,-198,-198,-198,24,66,10,16,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,782,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,783,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,4,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,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,4,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,3,54,5,1,784,105,106,5,6,60,1,5,24,-332,-332,-332,-332,-332,5,6,60,1,5,24,-361,-361,-361,-361,-361,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,787,-288,-288,-288,-288,785,-288,786,-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,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,2,1,788,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-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,4,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,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,4,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,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,4,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,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,1,96,789,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,2,1,790,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,787,-290,-290,-290,-290,791,-290,792,-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,57,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,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,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,787,-289,-289,-289,-289,793,-289,-289,-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,1,96,794,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,2,1,795,163,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,96,796,57,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,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,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,787,-291,-291,-291,-291,797,-291,-291,-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,57,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,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,1,96,798,57,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,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],U=[],Z=0,W,Y,$,Q;while(Z<A.length){W=A[Z++],Y={},$=0,Q=[];while(W--)$+=A[Z++],Q.push($);for($ of Q)Y[$]=A[Z++];U.push(Y)}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,5,21,2,21,3,21,4,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,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,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:(A,U,Z,W)=>{let Y=U,$=U.length-1;switch(A){case 1:return["program"];case 2:return["program",...Y[$]];case 3:case 58:case 110:case 150:case 154:case 174:case 194:case 203:case 251:case 302:case 314:case 328:case 357:return[Y[$]];case 4:case 111:case 175:case 195:case 204:case 315:case 329:case 358:return[...Y[$-2],Y[$]];case 5:case 60:case 157:case 316:return Y[$-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 262:case 300:case 317:case 318:case 319:case 333:case 335:case 337:case 362:case 365:return Y[$];case 47:return"undefined";case 48:return"null";case 57:return["str",...Y[$-1]];case 59:case 151:case 155:case 252:return[...Y[$-1],Y[$]];case 61:case 193:case 197:case 331:case 360:return Y[$-2];case 62:return"";case 65:return["regex",Y[$-1]];case 66:return["regex-index",Y[$-2],Y[$]];case 67:return["regex-index",Y[$],null];case 68:return["=",Y[$-2],Y[$]];case 69:return["=",Y[$-3],Y[$]];case 70:return["=",Y[$-4],Y[$-1]];case 71:return["state",Y[$-2],Y[$]];case 72:return["state",Y[$-3],Y[$]];case 73:return["state",Y[$-4],Y[$-1]];case 74:case 76:return["computed",Y[$-2],Y[$]];case 75:return["computed",Y[$-3],Y[$]];case 77:return["readonly",Y[$-2],Y[$]];case 78:return["readonly",Y[$-3],Y[$]];case 79:return["readonly",Y[$-4],Y[$-1]];case 80:return["effect",Y[$-2],Y[$]];case 81:return["effect",Y[$-3],Y[$]];case 82:return["effect",Y[$-4],Y[$-1]];case 83:case 84:return["effect",null,Y[$]];case 85:return["effect",null,Y[$-1]];case 91:case 100:case 138:return[".",Y[$-2],Y[$]];case 92:case 101:case 139:return["?.",Y[$-2],Y[$]];case 93:case 95:case 102:case 140:return["[]",Y[$-3],Y[$-1]];case 94:case 96:case 103:case 141:return["[]",Y[$-5],Y[$-2]];case 97:return[Y[$-1][0],Y[$-3],...Y[$-1].slice(1)];case 98:return["optindex",Y[$-4],Y[$-1]];case 99:return["optindex",Y[$-6],Y[$-2]];case 104:return["object-comprehension",Y[$-8],Y[$-6],[["for-of",Y[$-4],Y[$-2],!1]],[]];case 105:return["object-comprehension",Y[$-10],Y[$-8],[["for-of",Y[$-6],Y[$-4],!1]],[Y[$-2]]];case 106:return["object-comprehension",Y[$-9],Y[$-7],[["for-of",Y[$-4],Y[$-2],!0]],[]];case 107:return["object-comprehension",Y[$-11],Y[$-9],[["for-of",Y[$-6],Y[$-4],!0]],[Y[$-2]]];case 108:return["object",...Y[$-2]];case 109:case 152:case 173:case 192:return[];case 112:case 176:case 196:case 330:case 359:return[...Y[$-3],Y[$]];case 113:case 177:case 198:case 332:case 361:return[...Y[$-5],...Y[$-2]];case 114:return[Y[$],Y[$],null];case 116:return[Y[$-2],Y[$],":"];case 117:return[Y[$-4],Y[$-1],":"];case 118:return[Y[$-2],Y[$],"="];case 119:return[Y[$-4],Y[$-1],"="];case 124:return["dynamicKey",Y[$-1]];case 125:return["[]","this",Y[$-1]];case 127:case 128:case 186:return["...",Y[$]];case 134:case 190:return["super",...Y[$]];case 135:case 136:case 137:case 188:case 191:return[Y[$-1],...Y[$]];case 142:return["array"];case 143:return["array",...Y[$-1]];case 144:return["array",...Y[$-2],...Y[$-1]];case 146:return[...Y[$-2],...Y[$]];case 147:return[...Y[$-3],...Y[$]];case 148:return[...Y[$-2],...Y[$-1]];case 149:return[...Y[$-5],...Y[$-4],...Y[$-2],...Y[$-1]];case 153:return[...Y[$]];case 156:return null;case 158:return"..";case 159:case 202:return"...";case 160:return[Y[$-2],Y[$-3],Y[$-1]];case 161:case 384:case 386:case 387:case 402:case 404:return[Y[$-1],Y[$-2],Y[$]];case 162:return[Y[$],Y[$-1],null];case 163:return[Y[$-1],null,Y[$]];case 164:return[Y[$],null,null];case 165:return["def",Y[$-4],Y[$-2],Y[$]];case 166:return["def",Y[$-1],[],Y[$]];case 167:case 169:return[Y[$-1],Y[$-3],Y[$]];case 168:case 170:return[Y[$-1],[],Y[$]];case 179:case 301:return["default",Y[$-2],Y[$]];case 180:return["rest",Y[$]];case 181:return["expansion"];case 187:return["tagged-template",Y[$-1],Y[$]];case 189:return["optcall",Y[$-2],...Y[$]];case 205:case 206:return"this";case 207:return[".","this",Y[$]];case 208:return[".","super",Y[$]];case 209:return["[]","super",Y[$-1]];case 210:return["[]","super",Y[$-2]];case 211:return[".","new",Y[$]];case 212:return[".","import",Y[$]];case 213:return["block"];case 214:return["block",...Y[$-1]];case 215:return Y[$-1].length===1?Y[$-1][0]:["block",...Y[$-1]];case 216:return Y[$-2].length===1?Y[$-2][0]:["block",...Y[$-2]];case 219:return["return",Y[$]];case 220:return["return",Y[$-1]];case 221:return["return"];case 222:return["throw",Y[$]];case 223:return["throw",Y[$-1]];case 224:return["yield"];case 225:return["yield",Y[$]];case 226:return["yield",Y[$-1]];case 227:return["yield-from",Y[$]];case 228:return["if",Y[$-1],Y[$]];case 229:return Y[$-4].length===3?["if",Y[$-4][1],Y[$-4][2],["if",Y[$-1],Y[$]]]:[...Y[$-4],["if",Y[$-1],Y[$]]];case 230:return["if",["!",Y[$-1]],Y[$]];case 231:return["if",["!",Y[$-3]],Y[$-2],Y[$]];case 233:return Y[$-2].length===3?["if",Y[$-2][1],Y[$-2][2],Y[$]]:[...Y[$-2],Y[$]];case 235:case 236:return["if",Y[$],[Y[$-2]]];case 237:return["?:",Y[$-4],Y[$-6],Y[$-1]];case 238:case 239:return["if",["!",Y[$]],[Y[$-2]]];case 240:return["try",Y[$]];case 241:return["try",Y[$-1],Y[$]];case 242:return["try",Y[$-2],Y[$]];case 243:return["try",Y[$-3],Y[$-2],Y[$]];case 244:case 245:case 367:case 370:case 372:return[Y[$-1],Y[$]];case 246:return[null,Y[$]];case 247:return["switch",Y[$-3],Y[$-1],null];case 248:return["switch",Y[$-5],Y[$-3],Y[$-1]];case 249:return["switch",null,Y[$-1],null];case 250:return["switch",null,Y[$-3],Y[$-1]];case 253:return["when",Y[$-1],Y[$]];case 254:return["when",Y[$-2],Y[$-1]];case 255:return["while",Y[$]];case 256:return["while",Y[$-2],Y[$]];case 257:return["while",["!",Y[$]]];case 258:return["while",["!",Y[$-2]],Y[$]];case 259:return Y[$-1].length===2?[Y[$-1][0],Y[$-1][1],Y[$]]:[Y[$-1][0],Y[$-1][1],Y[$-1][2],Y[$]];case 260:case 261:return Y[$].length===2?[Y[$][0],Y[$][1],[Y[$-1]]]:[Y[$][0],Y[$][1],Y[$][2],[Y[$-1]]];case 263:return["loop",Y[$]];case 264:return["loop",[Y[$]]];case 265:return["loop-n",Y[$-1],Y[$]];case 266:return["for-in",Y[$-3],Y[$-1],null,null,Y[$]];case 267:return["for-in",Y[$-5],Y[$-3],null,Y[$-1],Y[$]];case 268:return["for-in",Y[$-5],Y[$-3],Y[$-1],null,Y[$]];case 269:return["for-in",Y[$-7],Y[$-5],Y[$-1],Y[$-3],Y[$]];case 270:return["for-in",Y[$-7],Y[$-5],Y[$-3],Y[$-1],Y[$]];case 271:return["for-of",Y[$-3],Y[$-1],!1,null,Y[$]];case 272:return["for-of",Y[$-5],Y[$-3],!1,Y[$-1],Y[$]];case 273:return["for-of",Y[$-3],Y[$-1],!0,null,Y[$]];case 274:return["for-of",Y[$-5],Y[$-3],!0,Y[$-1],Y[$]];case 275:return["for-as",Y[$-3],Y[$-1],!1,null,Y[$]];case 276:return["for-as",Y[$-5],Y[$-3],!1,Y[$-1],Y[$]];case 277:case 279:return["for-as",Y[$-3],Y[$-1],!0,null,Y[$]];case 278:case 280:return["for-as",Y[$-5],Y[$-3],!0,Y[$-1],Y[$]];case 281:return["for-in",[],Y[$-1],null,null,Y[$]];case 282:return["for-in",[],Y[$-3],Y[$-1],null,Y[$]];case 283:return["comprehension",Y[$-4],[["for-in",Y[$-2],Y[$],null]],[]];case 284:return["comprehension",Y[$-6],[["for-in",Y[$-4],Y[$-2],null]],[Y[$]]];case 285:return["comprehension",Y[$-6],[["for-in",Y[$-4],Y[$-2],Y[$]]],[]];case 286:return["comprehension",Y[$-8],[["for-in",Y[$-6],Y[$-4],Y[$]]],[Y[$-2]]];case 287:return["comprehension",Y[$-8],[["for-in",Y[$-6],Y[$-4],Y[$-2]]],[Y[$]]];case 288:return["comprehension",Y[$-4],[["for-of",Y[$-2],Y[$],!1]],[]];case 289:return["comprehension",Y[$-6],[["for-of",Y[$-4],Y[$-2],!1]],[Y[$]]];case 290:return["comprehension",Y[$-5],[["for-of",Y[$-2],Y[$],!0]],[]];case 291:return["comprehension",Y[$-7],[["for-of",Y[$-4],Y[$-2],!0]],[Y[$]]];case 292:return["comprehension",Y[$-4],[["for-as",Y[$-2],Y[$],!1,null]],[]];case 293:return["comprehension",Y[$-6],[["for-as",Y[$-4],Y[$-2],!1,null]],[Y[$]]];case 294:return["comprehension",Y[$-5],[["for-as",Y[$-2],Y[$],!0,null]],[]];case 295:return["comprehension",Y[$-7],[["for-as",Y[$-4],Y[$-2],!0,null]],[Y[$]]];case 296:return["comprehension",Y[$-4],[["for-as",Y[$-2],Y[$],!0,null]],[]];case 297:return["comprehension",Y[$-6],[["for-as",Y[$-4],Y[$-2],!0,null]],[Y[$]]];case 298:return["comprehension",Y[$-2],[["for-in",[],Y[$],null]],[]];case 299:return["comprehension",Y[$-4],[["for-in",[],Y[$-2],Y[$]]],[]];case 303:case 334:case 336:case 363:case 364:case 366:return[Y[$-2],Y[$]];case 304:return["class",null,null];case 305:return["class",null,null,Y[$]];case 306:return["class",null,Y[$]];case 307:return["class",null,Y[$-1],Y[$]];case 308:return["class",Y[$],null];case 309:return["class",Y[$-1],null,Y[$]];case 310:return["class",Y[$-2],Y[$]];case 311:return["class",Y[$-3],Y[$-1],Y[$]];case 312:return["enum",Y[$-1],Y[$]];case 313:return["component",null,["block",...Y[$-1]]];case 320:return["render",Y[$]];case 321:case 324:return["import","{}",Y[$]];case 322:case 323:return["import",Y[$-2],Y[$]];case 325:return["import",Y[$-4],Y[$]];case 326:return["import",[Y[$-4],Y[$-2]],Y[$]];case 327:return["import",[Y[$-7],Y[$-4]],Y[$]];case 338:return["*",Y[$]];case 339:return["export","{}"];case 340:return["export",Y[$-2]];case 341:case 342:case 343:case 344:case 348:case 349:case 350:case 351:return["export",Y[$]];case 345:return["export",["=",Y[$-2],Y[$]]];case 346:return["export",["=",Y[$-3],Y[$]]];case 347:return["export",["=",Y[$-4],Y[$-1]]];case 352:return["export-default",Y[$]];case 353:return["export-default",Y[$-1]];case 354:return["export-all",Y[$]];case 355:return["export-from","{}",Y[$]];case 356:return["export-from",Y[$-4],Y[$]];case 368:case 369:case 371:case 407:return["do-iife",Y[$]];case 373:return["-",Y[$]];case 374:return["+",Y[$]];case 375:return["?",Y[$-1]];case 376:return["await",Y[$]];case 377:return["await",Y[$-1]];case 378:return["--",Y[$],!1];case 379:return["++",Y[$],!1];case 380:return["--",Y[$-1],!0];case 381:return["++",Y[$-1],!0];case 382:return["+",Y[$-2],Y[$]];case 383:return["-",Y[$-2],Y[$]];case 385:return["**",Y[$-2],Y[$]];case 388:return["&",Y[$-2],Y[$]];case 389:return["^",Y[$-2],Y[$]];case 390:return["|",Y[$-2],Y[$]];case 391:case 392:case 393:case 394:case 395:case 396:return["control",Y[$-1],Y[$-2],Y[$]];case 397:return["&&",Y[$-2],Y[$]];case 398:return["||",Y[$-2],Y[$]];case 399:return["??",Y[$-2],Y[$]];case 400:return["!?",Y[$-2],Y[$]];case 401:return["|>",Y[$-2],Y[$]];case 403:return["?:",Y[$-4],Y[$-2],Y[$]];case 405:return[Y[$-3],Y[$-4],Y[$-1]];case 406:return[Y[$-2],Y[$-3],Y[$]]}},parseError(A,U){let Z,W,Y,$,Q,F,J;if(U.recoverable)return this.trace(A);else throw Y=(U.line||0)+1,Z=U.loc?.c||0,J=U.token?` (token: ${U.token})`:"",F=U.text?` near '${U.text}'`:"",$=`line ${Y}, column ${Z}`,Q=`Parse error at ${$}${J}${F}: ${A}`,W=Error(Q),W.hash=U,W},parse(A){let U,Z,W,Y,$,Q,F,J,D,X,z,M,K,H,G,q,R,w,I,P,E,_,O,B,N,T;[P,T,X]=[[0],[null],[]],[K,N,O,_,q]=[this.parseTable,"",0,0,0],[Z,U]=[2,1],J=Object.create(this.lexer),w={ctx:{}};for(let S in this.ctx){if(!Object.hasOwn(this.ctx,S))continue;let f=this.ctx[S];w.ctx[S]=f}if(J.setInput(A,w.ctx),[w.ctx.lexer,w.ctx.parser]=[J,this],J.loc==null)J.loc={};B=J.loc,X.push(B),this.parseError=typeof w.ctx.parseError==="function"?w.ctx.parseError:Object.getPrototypeOf(this).parseError,F=()=>{let S;if(S=J.lex()||U,typeof S!=="number")S=this.symbolIds[S]||S;return S},E=H=I=W=G=M=Q=z=$=null,R={};while(!0){if(I=P[P.length-1],E==null)E=F();if(W=K[I]?.[E],W==null){if(Y="",!q)$=(()=>{let S=[];for(let f in K[I]){if(!Object.hasOwn(K[I],f))continue;if(this.tokenNames[f]&&f>Z)S.push(`'${this.tokenNames[f]}'`)}return S})();throw Y=(()=>{if(J.showPosition)return`Parse error on line ${O+1}:
12
12
  ${J.showPosition()}
13
- Expecting ${$.join(", ")}, got '${this.tokenNames[E]||E}'`;else return`Parse error on line ${O+1}: Unexpected ${E===U?"end of input":`'${this.tokenNames[E]||E}'`}`,this.parseError(A,{text:J.match,token:this.tokenNames[E]||E,line:J.line,loc:I,expected:$})})(),Error(A)}if(W>0)if(P.push(E,W),T.push(J.text),X.push(J.loc),E=null,!H){if([_,N,O,I]=[J.len,J.text,J.line,J.loc],q>0)q--}else[E,H]=[H,null];else if(W<0){if(Q=this.ruleTable[-W*2+1],R.$=T[T.length-Q],D=X[X.length-(Q||1)],R._$={r:D.r,c:D.c},G=this.ruleActions.call(R,-W,T,X,w.ctx),G!=null)R.$=G;if(Array.isArray(R.$))R.$.loc=R._$;if(Q)P.length-=Q*2,T.length-=Q,X.length-=Q;P.push(this.ruleTable[-W*2]),T.push(R.$),X.push(R._$),z=K[P[P.length-2]][P[P.length-1]],P.push(z)}else if(W===0)return T[T.length-1]}},trace(){},ctx:{}},O2=(Y={})=>{let U=Object.create(q2);return Object.defineProperty(U,"ctx",{value:{...Y},enumerable:!1,writable:!0,configurable:!0}),U},l=O2();var u2=l.parse.bind(l);var P2=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"]),_2=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"]),Q1=new Set([...P2,..._2]);var S1="__bind_",L1="__",V1=new Set(["beforeMount","mounted","updated","beforeUnmount","unmounted"]);function w2(Y){for(let U of Y){if(!Array.isArray(U))continue;let Z=U[0]instanceof String?U[0].valueOf():U[0],W=U[1]instanceof String?U[1].valueOf():U[1];if(Z==="type"&&typeof W==="string")return W.replace(/^["']|["']$/g,"")}return null}function o(Y){if(typeof Y==="string")return Y;if(Array.isArray(Y)&&Y[0]==="."&&Y[1]==="this"&&typeof Y[2]==="string")return Y[2];return null}function f1(Y,U,Z){let W=Z(Y);if(!/_frag\d+$/.test(W))return null;let A=[],$=new RegExp(`^${W.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\.appendChild\\(([^)]+)\\);`);for(let Q of U){let F=Z(Q).match($);if(F)A.push(F[1])}return A.length>0?A:null}function u1(Y,U){U.prototype.rewriteRender=function(){let W=(M,K,H)=>{let G=[M,K];if(G.pre=0,G.data=null,G.loc=H?.loc??{r:0,c:0,n:0},G.spaced=!1,G.newLine=!1,G.generated=!0,H)G.origin=H;return G},A=!1,$=0,Q=0,F=[],J=(M)=>{let K=M.split("#")[0];return Q1.has(K)},D=(M)=>{if(!M||typeof M!=="string")return!1;return/^[A-Z]/.test(M)},X=(M)=>{return J(M)||D(M)},z=(M,K)=>{let H=K;while(H>0){let G=M[H-1][0];if(G==="TERMINATOR"||G==="RENDER")break;if(G==="INDENT"||G==="OUTDENT"){let q=M[H][0];if(q==="CALL_END"||q===")"){let R=q==="CALL_END"?"CALL_START":"(",w=1,B=H-1;while(B>=0&&w>0){let P=M[B][0];if(P===q)w++;else if(P===R)w--;if(w>0)B--}H=B;continue}break}if(G==="CALL_END"||G===")"){let q=G==="CALL_END"?"CALL_START":"(",R=1,w=H-2;while(w>=0&&R>0){let B=M[w][0];if(B==="CALL_END"||B===")")R++;else if(B==="CALL_START"||B==="(")R--;if(R>0)w--}H=w;continue}H--}return M[H]&&M[H][0]==="IDENTIFIER"&&X(M[H][1])};this.scanTokens(function(M,K,H){let G=M[0],q=K<H.length-1?H[K+1]:null;if(G==="RENDER")return A=!0,$=Q+1,1;if(G==="INDENT")return Q++,1;if(G==="OUTDENT"){Q--;let R=0;while(F.length>0&&F[F.length-1]>Q){let w=W("CALL_END",")",M);H.splice(K+1+R,0,w),F.pop(),R++}if(A&&Q<$)A=!1;return 1+R}if(!A)return 1;if(G==="IDENTIFIER"&&!M.spaced){let R=[M[1]],w=K+1;while(w+1<H.length){let B=H[w],P=H[w+1];if(B[0]==="-"&&!B.spaced&&(P[0]==="IDENTIFIER"||P[0]==="PROPERTY")){if(R.push(P[1]),w+=2,P[0]==="PROPERTY")break}else break}if(R.length>1&&w>K+1&&H[w-1][0]==="PROPERTY")return M[0]="STRING",M[1]=`"${R.join("-")}"`,H.splice(K+1,w-K-1),1}if(G==="."){let R=K>0?H[K-1]:null,w=R?R[0]:null;if(w==="INDENT"||w==="TERMINATOR"){if(q&&q[0]==="PROPERTY"){let B=W("IDENTIFIER","div",M);return H.splice(K,0,B),2}if(!q||q[0]!=="(")return M[0]="IDENTIFIER",M[1]="div",0}}if(G==="IDENTIFIER"||G==="PROPERTY"){let R=H[K+1],w=H[K+2];if(R&&R[0]==="#"&&w&&(w[0]==="PROPERTY"||w[0]==="IDENTIFIER")){if(M[1]=M[1]+"#"+w[1],w.spaced)M.spaced=!0;return H.splice(K+1,2),1}}if(G==="BIND"){let R=K>0?H[K-1]:null,w=H[K+1];if(R&&(R[0]==="IDENTIFIER"||R[0]==="PROPERTY")&&w&&w[0]==="IDENTIFIER")return R[1]=`__bind_${R[1]}__`,M[0]=":",M[1]=":",1}if(G==="@"){let R=K+1;if(R<H.length&&H[R][0]==="PROPERTY"){R++;while(R+1<H.length&&H[R][0]==="."&&H[R+1][0]==="PROPERTY")R+=2;if(R>K+2&&R<H.length&&H[R][0]===":"){let w=W("[","[",M);H.splice(K,0,w);let B=W("]","]",H[R+1]);return H.splice(R+1,0,B),2}}}if(G==="."&&q&&q[0]==="("){let R=K>0?H[K-1]:null,w=R?R[0]:null,B=w==="INDENT"||w==="TERMINATOR",P=W("PROPERTY","__clsx",M);q[0]="CALL_START";let E=1;for(let _=K+2;_<H.length&&E>0;_++)if(H[_][0]==="("||H[_][0]==="CALL_START")E++;else if(H[_][0]===")"){if(E--,E===0)H[_][0]="CALL_END"}else if(H[_][0]==="CALL_END")E--;if(B){let _=W("IDENTIFIER","div",M);return H.splice(K,0,_),H.splice(K+2,0,P),3}else return H.splice(K+1,0,P),2}if(q&&q[0]==="INDENT"){if(G==="->"||G==="=>"||G==="CALL_START"||G==="(")return 1;let R=!1,w=K>0?H[K-1][0]:null,B=w==="IF"||w==="UNLESS"||w==="WHILE"||w==="UNTIL"||w==="WHEN",P=!1;if(G==="CALL_END"){let E=1;for(let _=K-1;_>=0&&E>0;_--)if(H[_][0]==="CALL_END")E++;else if(H[_][0]==="CALL_START"){if(E--,E===0&&_>0&&H[_-1][0]==="PROPERTY"&&H[_-1][1]==="__clsx")P=!0}}if(P)R=!0;else if(G==="IDENTIFIER"&&X(M[1])&&!B)R=!0;else if(G==="PROPERTY"||G==="STRING"||G==="STRING_END"||G==="CALL_END"||G===")")R=z(H,K);else if(G==="IDENTIFIER"&&K>1&&H[K-1][0]==="..."){if(z(H,K)){let E=W(",",",",M),_=W("->","->",M);return _.newLine=!0,H.splice(K+1,0,E,_),3}}if(R){let E=G==="PROPERTY"&&K>0&&(H[K-1][0]==="."||H[K-1][0]==="#");if(P){let _=W("CALL_START","(",M),O=W("->","->",M);return O.newLine=!0,H.splice(K+1,0,_,O),F.push(Q+1),3}else if(G==="IDENTIFIER"&&X(M[1])||E){let _=W("CALL_START","(",M),O=W("->","->",M);return O.newLine=!0,H.splice(K+1,0,_,O),F.push(Q+1),3}else{let _=W(",",",",M),O=W("->","->",M);return O.newLine=!0,H.splice(K+1,0,_,O),3}}}if(G==="IDENTIFIER"&&D(M[1])&&q&&(q[0]==="OUTDENT"||q[0]==="TERMINATOR"))return H.splice(K+1,0,W("CALL_START","(",M),W("CALL_END",")",M)),3;return 1})};let Z=Y.prototype;Z.localizeVar=function(W){let A=W.replace(/this\.(_el\d+|_t\d+|_anchor\d+|_frag\d+|_slot\d+|_c\d+|_inst\d+|_empty\d+)/g,"$1");return A=A.replace(/\bthis\b/g,"ctx"),A},Z.isHtmlTag=function(W){let A=W.split("#")[0];return Q1.has(A.toLowerCase())},Z.isComponent=function(W){if(!W||typeof W!=="string")return!1;return/^[A-Z]/.test(W)},Z.collectTemplateClasses=function(W){let A=[],$=W;while(this.is($,".")){let D=$[2];if(typeof D==="string"||D instanceof String)A.unshift(D.valueOf());$=$[1]}let Q=typeof $==="string"?$:$ instanceof String?$.valueOf():"div",[F,J]=Q.split("#");if(!F)F="div";return{tag:F,classes:A,id:J}},Z.transformComponentMembers=function(W){if(!Array.isArray(W)){if(typeof W==="string"&&this.reactiveMembers&&this.reactiveMembers.has(W))return[".",[".","this",W],"value"];if(typeof W==="string"&&this.componentMembers&&this.componentMembers.has(W))return[".","this",W];return W}if(W[0]==="."&&W[1]==="this"&&typeof W[2]==="string"){let A=W[2];if(this.reactiveMembers&&this.reactiveMembers.has(A))return[".",W,"value"];return W}if(W[0]===".")return[".",this.transformComponentMembers(W[1]),W[2]];if(W[0]==="->")return["=>",...W.slice(1).map((A)=>this.transformComponentMembers(A))];return W.map((A)=>this.transformComponentMembers(A))},Z.generateComponent=function(W,A,$,Q){let[,F]=A;this.usesTemplates=!0,this.usesReactivity=!0;let J=this.is(F,"block")?F.slice(1):[],D=[],X=[],z=[],M=[],K=[],H=[],G=null,q=new Set,R=new Set;for(let _ of J){if(!Array.isArray(_))continue;let[O]=_;if(O==="state"){let I=o(_[1]);if(I)D.push({name:I,value:_[2]}),q.add(I),R.add(I)}else if(O==="computed"){let I=o(_[1]);if(I)X.push({name:I,expr:_[2]}),q.add(I),R.add(I)}else if(O==="readonly"){let I=o(_[1]);if(I)z.push({name:I,value:_[2]}),q.add(I)}else if(O==="="){let I=o(_[1]);if(I)if(V1.has(I))K.push({name:I,value:_[2]});else{let N=_[2];if(Array.isArray(N)&&(N[0]==="->"||N[0]==="=>"))M.push({name:I,func:N}),q.add(I);else D.push({name:I,value:N}),q.add(I),R.add(I)}}else if(O==="effect")H.push(_);else if(O==="render")G=_;else if(O==="object")for(let I=1;I<_.length;I++){let N=_[I];if(!Array.isArray(N))continue;let[T,S]=N;if(typeof T==="string"&&V1.has(T))K.push({name:T,value:S});else if(typeof T==="string")M.push({name:T,func:S}),q.add(T)}}let w=this.componentMembers,B=this.reactiveMembers;this.componentMembers=q,this.reactiveMembers=R;let P=[],E="";P.push("class extends __Component {"),P.push(" _init(props) {");for(let{name:_,value:O}of z){let I=this.generateInComponent(O,"value");P.push(` this.${_} = props.${_} ?? ${I};`)}for(let{name:_,value:O}of D){let I=this.generateInComponent(O,"value");P.push(` this.${_} = __state(props.${_} ?? ${I});`)}for(let{name:_,expr:O}of X)if(this.is(O,"block")&&O.length>2){let I=this.transformComponentMembers(O),N=this.generateFunctionBody(I);P.push(` this.${_} = __computed(() => ${N});`)}else{let I=this.generateInComponent(O,"value");P.push(` this.${_} = __computed(() => ${I});`)}for(let _ of H){let O=_[2],I=this.generateInComponent(O,"value");P.push(` __effect(() => { ${I}; });`)}P.push(" }");for(let{name:_,func:O}of M)if(Array.isArray(O)&&(O[0]==="->"||O[0]==="=>")){let[,I,N]=O,T=Array.isArray(I)?I.map((h)=>this.formatParam(h)).join(", "):"",S=this.reactiveMembers?this.transformComponentMembers(N):N,V=this.containsAwait(N),f=this.generateFunctionBody(S,I||[]);P.push(` ${V?"async ":""}${_}(${T}) ${f}`)}for(let{name:_,value:O}of K)if(Array.isArray(O)&&(O[0]==="->"||O[0]==="=>")){let[,,I]=O,N=this.reactiveMembers?this.transformComponentMembers(I):I,T=this.containsAwait(I),S=this.generateFunctionBody(N,[]);P.push(` ${T?"async ":""}${_}() ${S}`)}if(G){let _=G[1],O=this.buildRender(_);if(O.blockFactories.length>0)E=O.blockFactories.join(`
13
+ Expecting ${$.join(", ")}, got '${this.tokenNames[E]||E}'`;else return`Parse error on line ${O+1}: Unexpected ${E===U?"end of input":`'${this.tokenNames[E]||E}'`}`,this.parseError(Y,{text:J.match,token:this.tokenNames[E]||E,line:J.line,loc:B,expected:$})})(),Error(Y)}if(W>0)if(P.push(E,W),T.push(J.text),X.push(J.loc),E=null,!H){if([_,N,O,B]=[J.len,J.text,J.line,J.loc],q>0)q--}else[E,H]=[H,null];else if(W<0){if(Q=this.ruleTable[-W*2+1],R.$=T[T.length-Q],D=X[X.length-(Q||1)],R._$={r:D.r,c:D.c},G=this.ruleActions.call(R,-W,T,X,w.ctx),G!=null)R.$=G;if(Array.isArray(R.$))R.$.loc=R._$;if(Q)P.length-=Q*2,T.length-=Q,X.length-=Q;P.push(this.ruleTable[-W*2]),T.push(R.$),X.push(R._$),z=K[P[P.length-2]][P[P.length-1]],P.push(z)}else if(W===0)return T[T.length-1]}},trace(){},ctx:{}},O2=(A={})=>{let U=Object.create(q2);return Object.defineProperty(U,"ctx",{value:{...A},enumerable:!1,writable:!0,configurable:!0}),U},m=O2();var j2=m.parse.bind(m);var P2=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"]),_2=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"]),Q1=new Set([...P2,..._2]);var S1="__bind_",L1="__",f1=new Set(["beforeMount","mounted","updated","beforeUnmount","unmounted"]),w2=new Set(["disabled","hidden","readonly","required","checked","selected","autofocus","autoplay","controls","loop","muted","multiple","novalidate","open","reversed","defer","async","formnovalidate","allowfullscreen","inert"]);function I2(A){for(let U of A){if(!Array.isArray(U))continue;let Z=U[0]instanceof String?U[0].valueOf():U[0],W=U[1]instanceof String?U[1].valueOf():U[1];if(Z==="type"&&typeof W==="string")return W.replace(/^["']|["']$/g,"")}return null}function o(A){if(typeof A==="string")return A;if(Array.isArray(A)&&A[0]==="."&&A[1]==="this"&&typeof A[2]==="string")return A[2];return null}function V1(A,U,Z){let W=Z(A);if(!/_frag\d+$/.test(W))return null;let Y=[],$=new RegExp(`^${W.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\.appendChild\\(([^)]+)\\);`);for(let Q of U){let F=Z(Q).match($);if(F)Y.push(F[1])}return Y.length>0?Y:null}function u1(A,U){U.prototype.rewriteRender=function(){let W=(M,K,H)=>{let G=[M,K];if(G.pre=0,G.data=null,G.loc=H?.loc??{r:0,c:0,n:0},G.spaced=!1,G.newLine=!1,G.generated=!0,H)G.origin=H;return G},Y=!1,$=0,Q=0,F=[],J=(M)=>{let K=M.split("#")[0];return Q1.has(K)},D=(M)=>{if(!M||typeof M!=="string")return!1;return/^[A-Z]/.test(M)},X=(M)=>{return J(M)||D(M)},z=(M,K)=>{let H=K;while(H>0){let G=M[H-1][0];if(G==="TERMINATOR"||G==="RENDER")break;if(G==="INDENT"||G==="OUTDENT"){let q=M[H][0];if(q==="CALL_END"||q===")"){let R=q==="CALL_END"?"CALL_START":"(",w=1,I=H-1;while(I>=0&&w>0){let P=M[I][0];if(P===q)w++;else if(P===R)w--;if(w>0)I--}H=I;continue}break}if(G==="CALL_END"||G===")"){let q=G==="CALL_END"?"CALL_START":"(",R=1,w=H-2;while(w>=0&&R>0){let I=M[w][0];if(I==="CALL_END"||I===")")R++;else if(I==="CALL_START"||I==="(")R--;if(R>0)w--}H=w;continue}H--}return M[H]&&M[H][0]==="IDENTIFIER"&&X(M[H][1])};this.scanTokens(function(M,K,H){let G=M[0],q=K<H.length-1?H[K+1]:null;if(G==="RENDER")return Y=!0,$=Q+1,1;if(G==="INDENT")return Q++,1;if(G==="OUTDENT"){Q--;let R=0;while(F.length>0&&F[F.length-1]>Q){let w=W("CALL_END",")",M);H.splice(K+1+R,0,w),F.pop(),R++}if(Y&&Q<$)Y=!1;return 1+R}if(!Y)return 1;if(G==="IDENTIFIER"&&!M.spaced){let R=[M[1]],w=K+1;while(w+1<H.length){let I=H[w],P=H[w+1];if(I[0]==="-"&&!I.spaced&&(P[0]==="IDENTIFIER"||P[0]==="PROPERTY")){if(R.push(P[1]),w+=2,P[0]==="PROPERTY")break}else break}if(R.length>1&&w>K+1&&H[w-1][0]==="PROPERTY")return M[0]="STRING",M[1]=`"${R.join("-")}"`,H.splice(K+1,w-K-1),1}if(G==="."){let R=K>0?H[K-1]:null,w=R?R[0]:null;if(w==="INDENT"||w==="TERMINATOR"){if(q&&q[0]==="PROPERTY"){let I=W("IDENTIFIER","div",M);return H.splice(K,0,I),2}if(!q||q[0]!=="(")return M[0]="IDENTIFIER",M[1]="div",0}}if(G==="IDENTIFIER"||G==="PROPERTY"){let R=H[K+1],w=H[K+2];if(R&&R[0]==="#"&&w&&(w[0]==="PROPERTY"||w[0]==="IDENTIFIER")){if(M[1]=M[1]+"#"+w[1],w.spaced)M.spaced=!0;return H.splice(K+1,2),1}}if(G==="BIND"){let R=K>0?H[K-1]:null,w=H[K+1];if(R&&(R[0]==="IDENTIFIER"||R[0]==="PROPERTY")&&w&&w[0]==="IDENTIFIER")return R[1]=`__bind_${R[1]}__`,M[0]=":",M[1]=":",1}if(G==="@"){let R=K+1;if(R<H.length&&H[R][0]==="PROPERTY"){R++;while(R+1<H.length&&H[R][0]==="."&&H[R+1][0]==="PROPERTY")R+=2;if(R>K+2&&R<H.length&&H[R][0]===":"){let w=W("[","[",M);H.splice(K,0,w);let I=W("]","]",H[R+1]);return H.splice(R+1,0,I),2}}}if(G==="."&&q&&q[0]==="("){let R=K>0?H[K-1]:null,w=R?R[0]:null,I=w==="INDENT"||w==="TERMINATOR",P=W("PROPERTY","__clsx",M);q[0]="CALL_START";let E=1;for(let _=K+2;_<H.length&&E>0;_++)if(H[_][0]==="("||H[_][0]==="CALL_START")E++;else if(H[_][0]===")"){if(E--,E===0)H[_][0]="CALL_END"}else if(H[_][0]==="CALL_END")E--;if(I){let _=W("IDENTIFIER","div",M);return H.splice(K,0,_),H.splice(K+2,0,P),3}else if(w===":")return H[K]=W("IDENTIFIER","__clsx",M),1;else return H.splice(K+1,0,P),2}if(q&&q[0]==="INDENT"){if(G==="->"||G==="=>"||G==="CALL_START"||G==="(")return 1;let R=!1,w=K>0?H[K-1][0]:null,I=w==="IF"||w==="UNLESS"||w==="WHILE"||w==="UNTIL"||w==="WHEN",P=!1;if(G==="CALL_END"){let E=1;for(let _=K-1;_>=0&&E>0;_--)if(H[_][0]==="CALL_END")E++;else if(H[_][0]==="CALL_START"){if(E--,E===0&&_>0&&H[_-1][0]==="PROPERTY"&&H[_-1][1]==="__clsx")P=!0}}if(P)R=!0;else if(G==="IDENTIFIER"&&X(M[1])&&!I)R=!0;else if(G==="PROPERTY"||G==="STRING"||G==="STRING_END"||G==="CALL_END"||G===")")R=z(H,K);else if(G==="IDENTIFIER"&&K>1&&H[K-1][0]==="..."){if(z(H,K)){let E=W(",",",",M),_=W("->","->",M);return _.newLine=!0,H.splice(K+1,0,E,_),3}}if(R){let E=G==="PROPERTY"&&K>0&&(H[K-1][0]==="."||H[K-1][0]==="#");if(P){let _=W("CALL_START","(",M),O=W("->","->",M);return O.newLine=!0,H.splice(K+1,0,_,O),F.push(Q+1),3}else if(G==="IDENTIFIER"&&X(M[1])||E){let _=W("CALL_START","(",M),O=W("->","->",M);return O.newLine=!0,H.splice(K+1,0,_,O),F.push(Q+1),3}else{let _=W(",",",",M),O=W("->","->",M);return O.newLine=!0,H.splice(K+1,0,_,O),3}}}if(G==="IDENTIFIER"&&D(M[1])&&q&&(q[0]==="OUTDENT"||q[0]==="TERMINATOR"))return H.splice(K+1,0,W("CALL_START","(",M),W("CALL_END",")",M)),3;return 1})};let Z=A.prototype;Z.localizeVar=function(W){let Y=W.replace(/this\.(_el\d+|_t\d+|_anchor\d+|_frag\d+|_slot\d+|_c\d+|_inst\d+|_empty\d+)/g,"$1");return Y=Y.replace(/\bthis\b/g,"ctx"),Y},Z.isHtmlTag=function(W){let Y=W.split("#")[0];return Q1.has(Y.toLowerCase())},Z.isComponent=function(W){if(!W||typeof W!=="string")return!1;return/^[A-Z]/.test(W)},Z.collectTemplateClasses=function(W){let Y=[],$=W;while(this.is($,".")){let D=$[2];if(typeof D==="string"||D instanceof String)Y.unshift(D.valueOf());$=$[1]}let Q=typeof $==="string"?$:$ instanceof String?$.valueOf():"div",[F,J]=Q.split("#");if(!F)F="div";return{tag:F,classes:Y,id:J}},Z.transformComponentMembers=function(W){if(!Array.isArray(W)){if(typeof W==="string"&&this.reactiveMembers&&this.reactiveMembers.has(W))return[".",[".","this",W],"value"];if(typeof W==="string"&&this.componentMembers&&this.componentMembers.has(W))return[".","this",W];return W}if(W[0]==="."&&W[1]==="this"&&typeof W[2]==="string"){let Y=W[2];if(this.reactiveMembers&&this.reactiveMembers.has(Y))return[".",W,"value"];return W}if(W[0]===".")return[".",this.transformComponentMembers(W[1]),W[2]];if(W[0]==="->")return["=>",...W.slice(1).map((Y)=>this.transformComponentMembers(Y))];return W.map((Y)=>this.transformComponentMembers(Y))},Z.generateComponent=function(W,Y,$,Q){let[,F]=Y;this.usesTemplates=!0,this.usesReactivity=!0;let J=this.is(F,"block")?F.slice(1):[],D=[],X=[],z=[],M=[],K=[],H=[],G=null,q=new Set,R=new Set;for(let _ of J){if(!Array.isArray(_))continue;let[O]=_;if(O==="state"){let B=o(_[1]);if(B)D.push({name:B,value:_[2]}),q.add(B),R.add(B)}else if(O==="computed"){let B=o(_[1]);if(B)X.push({name:B,expr:_[2]}),q.add(B),R.add(B)}else if(O==="readonly"){let B=o(_[1]);if(B)z.push({name:B,value:_[2]}),q.add(B)}else if(O==="="){let B=o(_[1]);if(B)if(f1.has(B))K.push({name:B,value:_[2]});else{let N=_[2];if(Array.isArray(N)&&(N[0]==="->"||N[0]==="=>"))M.push({name:B,func:N}),q.add(B);else D.push({name:B,value:N}),q.add(B),R.add(B)}}else if(O==="effect")H.push(_);else if(O==="render")G=_;else if(O==="object")for(let B=1;B<_.length;B++){let N=_[B];if(!Array.isArray(N))continue;let[T,S]=N;if(typeof T==="string"&&f1.has(T))K.push({name:T,value:S});else if(typeof T==="string")M.push({name:T,func:S}),q.add(T)}}let w=this.componentMembers,I=this.reactiveMembers;this.componentMembers=q,this.reactiveMembers=R;let P=[],E="";P.push("class extends __Component {"),P.push(" _init(props) {");for(let{name:_,value:O}of z){let B=this.generateInComponent(O,"value");P.push(` this.${_} = props.${_} ?? ${B};`)}for(let{name:_,value:O}of D){let B=this.generateInComponent(O,"value");P.push(` this.${_} = __state(props.${_} ?? ${B});`)}for(let{name:_,expr:O}of X)if(this.is(O,"block")&&O.length>2){let B=this.transformComponentMembers(O),N=this.generateFunctionBody(B);P.push(` this.${_} = __computed(() => ${N});`)}else{let B=this.generateInComponent(O,"value");P.push(` this.${_} = __computed(() => ${B});`)}for(let _ of H){let O=_[2],B=this.generateInComponent(O,"value");P.push(` __effect(() => { ${B}; });`)}P.push(" }");for(let{name:_,func:O}of M)if(Array.isArray(O)&&(O[0]==="->"||O[0]==="=>")){let[,B,N]=O,T=Array.isArray(B)?B.map((h)=>this.formatParam(h)).join(", "):"",S=this.reactiveMembers?this.transformComponentMembers(N):N,f=this.containsAwait(N),V=this.generateFunctionBody(S,B||[]);P.push(` ${f?"async ":""}${_}(${T}) ${V}`)}for(let{name:_,value:O}of K)if(Array.isArray(O)&&(O[0]==="->"||O[0]==="=>")){let[,,B]=O,N=this.reactiveMembers?this.transformComponentMembers(B):B,T=this.containsAwait(B),S=this.generateFunctionBody(N,[]);P.push(` ${T?"async ":""}${_}() ${S}`)}if(G){let _=G[1],O=this.buildRender(_);if(O.blockFactories.length>0)E=O.blockFactories.join(`
14
14
 
15
15
  `)+`
16
16
 
17
- `;P.push(" _create() {");for(let I of O.createLines)P.push(` ${I}`);if(P.push(` return ${O.rootVar};`),P.push(" }"),O.setupLines.length>0){P.push(" _setup() {");for(let I of O.setupLines)P.push(` ${I}`);P.push(" }")}}if(P.push("}"),this.componentMembers=w,this.reactiveMembers=B,E)return`(() => {
17
+ `;P.push(" _create() {");for(let B of O.createLines)P.push(` ${B}`);if(P.push(` return ${O.rootVar};`),P.push(" }"),O.setupLines.length>0){P.push(" _setup() {");for(let B of O.setupLines)P.push(` ${B}`);P.push(" }")}}if(P.push("}"),this.componentMembers=w,this.reactiveMembers=I,E)return`(() => {
18
18
  ${E}return ${P.join(`
19
19
  `)};
20
20
  })()`;return P.join(`
21
- `)},Z.generateInComponent=function(W,A){if(typeof W==="string"&&this.reactiveMembers&&this.reactiveMembers.has(W))return`this.${W}.value`;if(typeof W==="string"&&this.componentMembers&&this.componentMembers.has(W))return`this.${W}`;if(Array.isArray(W)&&this.reactiveMembers){let $=this.transformComponentMembers(W);return this.generate($,A)}return this.generate(W,A)},Z.generateRender=function(W,A,$,Q){throw Error("render blocks can only be used inside a component")},Z.buildRender=function(W){this._elementCount=0,this._textCount=0,this._blockCount=0,this._createLines=[],this._setupLines=[],this._blockFactories=[];let A=this.is(W,"block")?W.slice(1):[W],$;if(A.length===0)$="null";else if(A.length===1)$=this.generateNode(A[0]);else{$=this.newElementVar("frag"),this._createLines.push(`${$} = document.createDocumentFragment();`);for(let Q of A){let F=this.generateNode(Q);this._createLines.push(`${$}.appendChild(${F});`)}}return{createLines:this._createLines,setupLines:this._setupLines,blockFactories:this._blockFactories,rootVar:$}},Z.newBlockVar=function(){return`create_block_${this._blockCount++}`},Z.newElementVar=function(W="el"){return`this._${W}${this._elementCount++}`},Z.newTextVar=function(){return`this._t${this._textCount++}`},Z.generateNode=function(W){if(typeof W==="string"||W instanceof String){let D=W.valueOf();if(D.startsWith('"')||D.startsWith("'")||D.startsWith("`")){let K=this.newTextVar();return this._createLines.push(`${K} = document.createTextNode(${D});`),K}if(this.reactiveMembers&&this.reactiveMembers.has(D)){let K=this.newTextVar();return this._createLines.push(`${K} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${K}.data = this.${D}.value; });`),K}let[X,z]=D.split("#"),M=this.newElementVar();if(this._createLines.push(`${M} = document.createElement('${X||"div"}');`),z)this._createLines.push(`${M}.id = '${z}';`);return M}if(!Array.isArray(W)){let D=this.newElementVar("c");return this._createLines.push(`${D} = document.createComment('unknown');`),D}let[A,...$]=W,Q=typeof A==="string"?A:A instanceof String?A.valueOf():null;if(Q&&this.isComponent(Q))return this.generateChildComponent(Q,$);if(Q&&this.isHtmlTag(Q)){let[D,X]=Q.split("#");return this.generateTag(D||"div",[],$,X)}if(Q==="."){let[,D,X]=W;if(D==="this"&&typeof X==="string"){if(this.reactiveMembers&&this.reactiveMembers.has(X)){let R=this.newTextVar();return this._createLines.push(`${R} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${R}.data = this.${X}.value; });`),R}let q=this.newElementVar("slot");return this._createLines.push(`${q} = this.${X} instanceof Node ? this.${X} : (this.${X} != null ? document.createTextNode(String(this.${X})) : document.createComment(''));`),q}let{tag:z,classes:M,id:K}=this.collectTemplateClasses(W);if(z&&this.isHtmlTag(z))return this.generateTag(z,M,[],K);let H=this.newTextVar(),G=this.generateInComponent(W,"value");return this._createLines.push(`${H} = document.createTextNode(String(${G}));`),H}if(Array.isArray(A)){if(Array.isArray(A[0])&&A[0][0]==="."&&(A[0][2]==="__clsx"||A[0][2]instanceof String&&A[0][2].valueOf()==="__clsx")){let M=typeof A[0][1]==="string"?A[0][1]:A[0][1].valueOf(),K=A.slice(1);return this.generateDynamicTag(M,K,$)}let{tag:D,classes:X,id:z}=this.collectTemplateClasses(A);if(D&&this.isHtmlTag(D)){if(X.length===1&&X[0]==="__clsx")return this.generateDynamicTag(D,$,[]);return this.generateTag(D,X,$,z)}}if(Q==="->"||Q==="=>")return this.generateTemplateBlock($[1]);if(Q==="if")return this.generateConditional(W);if(Q==="for"||Q==="for-in"||Q==="for-of"||Q==="for-as")return this.generateTemplateLoop(W);let F=this.newTextVar(),J=this.generateInComponent(W,"value");if(this.hasReactiveDeps(W))this._createLines.push(`${F} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${F}.data = ${J}; });`);else this._createLines.push(`${F} = document.createTextNode(String(${J}));`);return F},Z.appendChildren=function(W,A){for(let $ of A)if(this.is($,"->")||this.is($,"=>")){let Q=$[2];if(this.is(Q,"block"))for(let F of Q.slice(1)){let J=this.generateNode(F);this._createLines.push(`${W}.appendChild(${J});`)}else if(Q){let F=this.generateNode(Q);this._createLines.push(`${W}.appendChild(${F});`)}}else if(this.is($,"object"))this.generateAttributes(W,$);else if(typeof $==="string"||$ instanceof String){let Q=this.newTextVar(),F=$.valueOf();if(F.startsWith('"')||F.startsWith("'")||F.startsWith("`"))this._createLines.push(`${Q} = document.createTextNode(${F});`);else if(this.reactiveMembers&&this.reactiveMembers.has(F))this._createLines.push(`${Q} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${Q}.data = this.${F}.value; });`);else if(this.componentMembers&&this.componentMembers.has(F))this._createLines.push(`${Q} = document.createTextNode(String(this.${F}));`);else this._createLines.push(`${Q} = document.createTextNode(${this.generateInComponent($,"value")});`);this._createLines.push(`${W}.appendChild(${Q});`)}else if($){let Q=this.generateNode($);this._createLines.push(`${W}.appendChild(${Q});`)}},Z.generateTag=function(W,A,$,Q){let F=this.newElementVar();if(this._createLines.push(`${F} = document.createElement('${W}');`),Q)this._createLines.push(`${F}.id = '${Q}';`);if(A.length>0)this._createLines.push(`${F}.className = '${A.join(" ")}';`);return this.appendChildren(F,$),F},Z.generateDynamicTag=function(W,A,$){let Q=this.newElementVar();if(this._createLines.push(`${Q} = document.createElement('${W}');`),A.length>0){let F=A.map((J)=>this.generateInComponent(J,"value")).join(", ");this._setupLines.push(`__effect(() => { ${Q}.className = __clsx(${F}); });`)}return this.appendChildren(Q,$),Q},Z.generateAttributes=function(W,A){let $=w2(A.slice(1));for(let Q=1;Q<A.length;Q++){let[F,J]=A[Q];if(this.is(F,".")&&F[1]==="this"){let D=F[2];if(typeof J==="string"&&this.componentMembers?.has(J))this._createLines.push(`${W}.addEventListener('${D}', (e) => __batch(() => this.${J}(e)));`);else{let X=this.generateInComponent(J,"value");this._createLines.push(`${W}.addEventListener('${D}', (e) => __batch(() => (${X})(e)));`)}continue}if(typeof F==="string"){if(F.startsWith('"')&&F.endsWith('"'))F=F.slice(1,-1);if(F==="ref"){let X=String(J).replace(/^["']|["']$/g,"");this._createLines.push(`this.${X} = ${W};`);continue}if(F.startsWith(S1)&&F.endsWith(L1)){let X=F.slice(S1.length,-L1.length),z=this.generateInComponent(J,"value"),M,K;if(X==="checked")M="change",K="e.target.checked";else M="input",K=$==="number"||$==="range"?"e.target.valueAsNumber":"e.target.value";this._setupLines.push(`__effect(() => { ${W}.${X} = ${z}; });`),this._createLines.push(`${W}.addEventListener('${M}', (e) => ${z} = ${K});`);continue}let D=this.generateInComponent(J,"value");if((F==="value"||F==="checked")&&this.hasReactiveDeps(J)){this._setupLines.push(`__effect(() => { ${W}.${F} = ${D}; });`);let X=F==="checked"?"change":"input",z=F==="checked"?"e.target.checked":$==="number"||$==="range"?"e.target.valueAsNumber":"e.target.value";this._createLines.push(`${W}.addEventListener('${X}', (e) => { ${D} = ${z}; });`);continue}if(this.hasReactiveDeps(J))this._setupLines.push(`__effect(() => { ${W}.setAttribute('${F}', ${D}); });`);else this._createLines.push(`${W}.setAttribute('${F}', ${D});`)}}},Z.generateTemplateBlock=function(W){if(!Array.isArray(W)||W[0]!=="block")return this.generateNode(W);let A=W.slice(1);if(A.length===0){let Q=this.newElementVar("empty");return this._createLines.push(`${Q} = document.createComment('');`),Q}if(A.length===1)return this.generateNode(A[0]);let $=this.newElementVar("frag");this._createLines.push(`${$} = document.createDocumentFragment();`);for(let Q of A){let F=this.generateNode(Q);this._createLines.push(`${$}.appendChild(${F});`)}return $},Z.generateConditional=function(W){let[,A,$,Q]=W,F=this.newElementVar("anchor");this._createLines.push(`${F} = document.createComment('if');`);let J=this.generateInComponent(A,"value"),D=this.newBlockVar();this.generateConditionBranch(D,$);let X=null;if(Q)X=this.newBlockVar(),this.generateConditionBranch(X,Q);let z=[];if(z.push(`// Conditional: ${D}${X?" / "+X:""}`),z.push("{"),z.push(` const anchor = ${F};`),z.push(" let currentBlock = null;"),z.push(" let showing = null;"),z.push(" __effect(() => {"),z.push(` const show = !!(${J});`),z.push(` const want = show ? 'then' : ${Q?"'else'":"null"};`),z.push(" if (want === showing) return;"),z.push(""),z.push(" if (currentBlock) {"),z.push(" currentBlock.d(true);"),z.push(" currentBlock = null;"),z.push(" }"),z.push(" showing = want;"),z.push(""),z.push(" if (want === 'then') {"),z.push(` currentBlock = ${D}(this);`),z.push(" currentBlock.c();"),z.push(" currentBlock.m(anchor.parentNode, anchor.nextSibling);"),z.push(" currentBlock.p(this);"),z.push(" }"),Q)z.push(" if (want === 'else') {"),z.push(` currentBlock = ${X}(this);`),z.push(" currentBlock.c();"),z.push(" currentBlock.m(anchor.parentNode, anchor.nextSibling);"),z.push(" currentBlock.p(this);"),z.push(" }");return z.push(" });"),z.push("}"),this._setupLines.push(z.join(`
22
- `)),F},Z.generateConditionBranch=function(W,A){let $=this._createLines,Q=this._setupLines;this._createLines=[],this._setupLines=[];let F=this.generateTemplateBlock(A),J=this._createLines,D=this._setupLines;this._createLines=$,this._setupLines=Q;let X=(G)=>this.localizeVar(G),z=[];z.push(`function ${W}(ctx) {`);let M=new Set;for(let G of J){let q=G.match(/^this\.(_(?:el|t|anchor|frag|slot|c|inst|empty)\d+)\s*=/);if(q)M.add(q[1])}if(M.size>0)z.push(` let ${[...M].join(", ")};`);let K=D.length>0;if(K)z.push(" let disposers = [];");z.push(" return {"),z.push(" c() {");for(let G of J)z.push(` ${X(G)}`);if(z.push(" },"),z.push(" m(target, anchor) {"),z.push(` target.insertBefore(${X(F)}, anchor);`),z.push(" },"),z.push(" p(ctx) {"),K){z.push(" disposers.forEach(d => d());"),z.push(" disposers = [];");for(let G of D){let R=X(G).replace(/__effect\(\(\) => \{/g,"disposers.push(__effect(() => {").replace(/\}\);$/gm,"}));");z.push(` ${R}`)}}if(z.push(" },"),z.push(" d(detaching) {"),K)z.push(" disposers.forEach(d => d());");let H=f1(F,J,X);if(H)for(let G of H)z.push(` if (detaching) ${G}.remove();`);else z.push(` if (detaching) ${X(F)}.remove();`);z.push(" }"),z.push(" };"),z.push("}"),this._blockFactories.push(z.join(`
23
- `))},Z.generateTemplateLoop=function(W){let[A,$,Q,F,J,D]=W,X=this.newBlockVar(),z=this.newElementVar("anchor");this._createLines.push(`${z} = document.createComment('for');`);let M=Array.isArray($)?$:[$],K=M[0],H=M[1]||"i",G=this.generateInComponent(Q,"value"),q=K;if(this.is(D,"block")&&D.length>1){let V=D[1];if(Array.isArray(V))for(let f of V){if(this.is(f,"object"))for(let h=1;h<f.length;h++){let[n,j1]=f[h];if(n==="key"){q=this.generate(j1,"value");break}}if(q!==K)break}}let R=this._createLines,w=this._setupLines;this._createLines=[],this._setupLines=[];let B=this.generateTemplateBlock(D),P=this._createLines,E=this._setupLines;this._createLines=R,this._setupLines=w;let _=(V)=>this.localizeVar(V),O=[];O.push(`function ${X}(ctx, ${K}, ${H}) {`);let I=new Set;for(let V of P){let f=V.match(/^this\.(_(?:el|t|anchor|frag|slot|c|inst|empty)\d+)\s*=/);if(f)I.add(f[1])}if(I.size>0)O.push(` let ${[...I].join(", ")};`);let N=E.length>0;if(N)O.push(" let disposers = [];");O.push(" return {"),O.push(" c() {");for(let V of P)O.push(` ${_(V)}`);O.push(" },");let T=f1(B,P,_);if(O.push(" m(target, anchor) {"),T)for(let V of T)O.push(` target.insertBefore(${V}, anchor);`);else O.push(` target.insertBefore(${_(B)}, anchor);`);if(O.push(" },"),O.push(` p(ctx, ${K}, ${H}) {`),N){O.push(" disposers.forEach(d => d());"),O.push(" disposers = [];");for(let V of E){let h=_(V).replace(/__effect\(\(\) => \{/g,"disposers.push(__effect(() => {").replace(/\}\);$/gm,"}));");O.push(` ${h}`)}}if(O.push(" },"),O.push(" d(detaching) {"),N)O.push(" disposers.forEach(d => d());");if(T)for(let V of T)O.push(` if (detaching) ${V}.remove();`);else O.push(` if (detaching) ${_(B)}.remove();`);O.push(" }"),O.push(" };"),O.push("}"),this._blockFactories.push(O.join(`
21
+ `)},Z.generateInComponent=function(W,Y){if(typeof W==="string"&&this.reactiveMembers&&this.reactiveMembers.has(W))return`this.${W}.value`;if(typeof W==="string"&&this.componentMembers&&this.componentMembers.has(W))return`this.${W}`;if(Array.isArray(W)&&this.reactiveMembers){let $=this.transformComponentMembers(W);return this.generate($,Y)}return this.generate(W,Y)},Z.generateRender=function(W,Y,$,Q){throw Error("render blocks can only be used inside a component")},Z.buildRender=function(W){this._elementCount=0,this._textCount=0,this._blockCount=0,this._createLines=[],this._setupLines=[],this._blockFactories=[];let Y=this.is(W,"block")?W.slice(1):[W],$;if(Y.length===0)$="null";else if(Y.length===1)$=this.generateNode(Y[0]);else{$=this.newElementVar("frag"),this._createLines.push(`${$} = document.createDocumentFragment();`);for(let Q of Y){let F=this.generateNode(Q);this._createLines.push(`${$}.appendChild(${F});`)}}return{createLines:this._createLines,setupLines:this._setupLines,blockFactories:this._blockFactories,rootVar:$}},Z.newBlockVar=function(){return`create_block_${this._blockCount++}`},Z.newElementVar=function(W="el"){return`this._${W}${this._elementCount++}`},Z.newTextVar=function(){return`this._t${this._textCount++}`},Z.generateNode=function(W){if(typeof W==="string"||W instanceof String){let D=W.valueOf();if(D.startsWith('"')||D.startsWith("'")||D.startsWith("`")){let K=this.newTextVar();return this._createLines.push(`${K} = document.createTextNode(${D});`),K}if(this.reactiveMembers&&this.reactiveMembers.has(D)){let K=this.newTextVar();return this._createLines.push(`${K} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${K}.data = this.${D}.value; });`),K}let[X,z]=D.split("#"),M=this.newElementVar();if(this._createLines.push(`${M} = document.createElement('${X||"div"}');`),z)this._createLines.push(`${M}.id = '${z}';`);return M}if(!Array.isArray(W)){let D=this.newElementVar("c");return this._createLines.push(`${D} = document.createComment('unknown');`),D}let[Y,...$]=W,Q=typeof Y==="string"?Y:Y instanceof String?Y.valueOf():null;if(Q&&this.isComponent(Q))return this.generateChildComponent(Q,$);if(Q&&this.isHtmlTag(Q)){let[D,X]=Q.split("#");return this.generateTag(D||"div",[],$,X)}if(Q==="."){let[,D,X]=W;if(D==="this"&&typeof X==="string"){if(this.reactiveMembers&&this.reactiveMembers.has(X)){let R=this.newTextVar();return this._createLines.push(`${R} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${R}.data = this.${X}.value; });`),R}let q=this.newElementVar("slot");return this._createLines.push(`${q} = this.${X} instanceof Node ? this.${X} : (this.${X} != null ? document.createTextNode(String(this.${X})) : document.createComment(''));`),q}let{tag:z,classes:M,id:K}=this.collectTemplateClasses(W);if(z&&this.isHtmlTag(z))return this.generateTag(z,M,[],K);let H=this.newTextVar(),G=this.generateInComponent(W,"value");return this._createLines.push(`${H} = document.createTextNode(String(${G}));`),H}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 M=typeof Y[0][1]==="string"?Y[0][1]:Y[0][1].valueOf(),K=Y.slice(1);return this.generateDynamicTag(M,K,$)}let{tag:D,classes:X,id:z}=this.collectTemplateClasses(Y);if(D&&this.isHtmlTag(D)){if(X.length===1&&X[0]==="__clsx")return this.generateDynamicTag(D,$,[]);return this.generateTag(D,X,$,z)}}if(Q==="->"||Q==="=>")return this.generateTemplateBlock($[1]);if(Q==="if")return this.generateConditional(W);if(Q==="for"||Q==="for-in"||Q==="for-of"||Q==="for-as")return this.generateTemplateLoop(W);let F=this.newTextVar(),J=this.generateInComponent(W,"value");if(this.hasReactiveDeps(W))this._createLines.push(`${F} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${F}.data = ${J}; });`);else this._createLines.push(`${F} = document.createTextNode(String(${J}));`);return F},Z.appendChildren=function(W,Y){for(let $ of Y)if(this.is($,"->")||this.is($,"=>")){let Q=$[2];if(this.is(Q,"block"))for(let F of Q.slice(1))if(this.is(F,"object"))this.generateAttributes(W,F);else{let J=this.generateNode(F);this._createLines.push(`${W}.appendChild(${J});`)}else if(Q){let F=this.generateNode(Q);this._createLines.push(`${W}.appendChild(${F});`)}}else if(this.is($,"object"))this.generateAttributes(W,$);else if(typeof $==="string"||$ instanceof String){let Q=this.newTextVar(),F=$.valueOf();if(F.startsWith('"')||F.startsWith("'")||F.startsWith("`"))this._createLines.push(`${Q} = document.createTextNode(${F});`);else if(this.reactiveMembers&&this.reactiveMembers.has(F))this._createLines.push(`${Q} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${Q}.data = this.${F}.value; });`);else if(this.componentMembers&&this.componentMembers.has(F))this._createLines.push(`${Q} = document.createTextNode(String(this.${F}));`);else this._createLines.push(`${Q} = document.createTextNode(${this.generateInComponent($,"value")});`);this._createLines.push(`${W}.appendChild(${Q});`)}else if($){let Q=this.generateNode($);this._createLines.push(`${W}.appendChild(${Q});`)}},Z.generateTag=function(W,Y,$,Q){let F=this.newElementVar();if(this._createLines.push(`${F} = document.createElement('${W}');`),Q)this._createLines.push(`${F}.id = '${Q}';`);if(Y.length>0)this._createLines.push(`${F}.className = '${Y.join(" ")}';`);return this.appendChildren(F,$),F},Z.generateDynamicTag=function(W,Y,$){let Q=this.newElementVar();this._createLines.push(`${Q} = document.createElement('${W}');`);let F=Y.map((X)=>this.generateInComponent(X,"value")),J=this._pendingClassArgs,D=this._pendingClassEl;if(this._pendingClassArgs=F,this._pendingClassEl=Q,this.appendChildren(Q,$),this._pendingClassArgs.length>0){let X=this._pendingClassArgs.join(", ");this._setupLines.push(`__effect(() => { ${Q}.className = __clsx(${X}); });`)}return this._pendingClassArgs=J,this._pendingClassEl=D,Q},Z.generateAttributes=function(W,Y){let $=I2(Y.slice(1));for(let Q=1;Q<Y.length;Q++){let[F,J]=Y[Q];if(this.is(F,".")&&F[1]==="this"){let D=F[2];if(typeof J==="string"&&this.componentMembers?.has(J))this._createLines.push(`${W}.addEventListener('${D}', (e) => __batch(() => this.${J}(e)));`);else{let X=this.generateInComponent(J,"value");this._createLines.push(`${W}.addEventListener('${D}', (e) => __batch(() => (${X})(e)));`)}continue}if(typeof F==="string"){if(F.startsWith('"')&&F.endsWith('"'))F=F.slice(1,-1);if(F==="class"||F==="className"){let X=this.generateInComponent(J,"value");if(this._pendingClassArgs&&this._pendingClassEl===W)this._pendingClassArgs.push(X);else if(this.hasReactiveDeps(J))this._setupLines.push(`__effect(() => { ${W}.className = __clsx(${X}); });`);else this._createLines.push(`${W}.className = ${X};`);continue}if(F==="ref"){let X=String(J).replace(/^["']|["']$/g,"");this._createLines.push(`this.${X} = ${W};`);continue}if(F.startsWith(S1)&&F.endsWith(L1)){let X=F.slice(S1.length,-L1.length),z=this.generateInComponent(J,"value"),M,K;if(X==="checked")M="change",K="e.target.checked";else M="input",K=$==="number"||$==="range"?"e.target.valueAsNumber":"e.target.value";this._setupLines.push(`__effect(() => { ${W}.${X} = ${z}; });`),this._createLines.push(`${W}.addEventListener('${M}', (e) => ${z} = ${K});`);continue}let D=this.generateInComponent(J,"value");if((F==="value"||F==="checked")&&this.hasReactiveDeps(J)){this._setupLines.push(`__effect(() => { ${W}.${F} = ${D}; });`);let X=F==="checked"?"change":"input",z=F==="checked"?"e.target.checked":$==="number"||$==="range"?"e.target.valueAsNumber":"e.target.value";this._createLines.push(`${W}.addEventListener('${X}', (e) => { ${D} = ${z}; });`);continue}if(w2.has(F))if(this.hasReactiveDeps(J))this._setupLines.push(`__effect(() => { ${W}.toggleAttribute('${F}', !!${D}); });`);else this._createLines.push(`if (${D}) ${W}.setAttribute('${F}', '');`);else if(this.hasReactiveDeps(J))this._setupLines.push(`__effect(() => { ${W}.setAttribute('${F}', ${D}); });`);else this._createLines.push(`${W}.setAttribute('${F}', ${D});`)}}},Z.generateTemplateBlock=function(W){if(!Array.isArray(W)||W[0]!=="block")return this.generateNode(W);let Y=W.slice(1);if(Y.length===0){let Q=this.newElementVar("empty");return this._createLines.push(`${Q} = document.createComment('');`),Q}if(Y.length===1)return this.generateNode(Y[0]);let $=this.newElementVar("frag");this._createLines.push(`${$} = document.createDocumentFragment();`);for(let Q of Y){let F=this.generateNode(Q);this._createLines.push(`${$}.appendChild(${F});`)}return $},Z.generateConditional=function(W){let[,Y,$,Q]=W,F=this.newElementVar("anchor");this._createLines.push(`${F} = document.createComment('if');`);let J=this.generateInComponent(Y,"value"),D=this.newBlockVar();this.generateConditionBranch(D,$);let X=null;if(Q)X=this.newBlockVar(),this.generateConditionBranch(X,Q);let z=[];if(z.push(`// Conditional: ${D}${X?" / "+X:""}`),z.push("{"),z.push(` const anchor = ${F};`),z.push(" let currentBlock = null;"),z.push(" let showing = null;"),z.push(" __effect(() => {"),z.push(` const show = !!(${J});`),z.push(` const want = show ? 'then' : ${Q?"'else'":"null"};`),z.push(" if (want === showing) return;"),z.push(""),z.push(" if (currentBlock) {"),z.push(" currentBlock.d(true);"),z.push(" currentBlock = null;"),z.push(" }"),z.push(" showing = want;"),z.push(""),z.push(" if (want === 'then') {"),z.push(` currentBlock = ${D}(this);`),z.push(" currentBlock.c();"),z.push(" currentBlock.m(anchor.parentNode, anchor.nextSibling);"),z.push(" currentBlock.p(this);"),z.push(" }"),Q)z.push(" if (want === 'else') {"),z.push(` currentBlock = ${X}(this);`),z.push(" currentBlock.c();"),z.push(" currentBlock.m(anchor.parentNode, anchor.nextSibling);"),z.push(" currentBlock.p(this);"),z.push(" }");return z.push(" });"),z.push("}"),this._setupLines.push(z.join(`
22
+ `)),F},Z.generateConditionBranch=function(W,Y){let $=this._createLines,Q=this._setupLines;this._createLines=[],this._setupLines=[];let F=this.generateTemplateBlock(Y),J=this._createLines,D=this._setupLines;this._createLines=$,this._setupLines=Q;let X=(G)=>this.localizeVar(G),z=[];z.push(`function ${W}(ctx) {`);let M=new Set;for(let G of J){let q=G.match(/^this\.(_(?:el|t|anchor|frag|slot|c|inst|empty)\d+)\s*=/);if(q)M.add(q[1])}if(M.size>0)z.push(` let ${[...M].join(", ")};`);let K=D.length>0;if(K)z.push(" let disposers = [];");z.push(" return {"),z.push(" c() {");for(let G of J)z.push(` ${X(G)}`);if(z.push(" },"),z.push(" m(target, anchor) {"),z.push(` target.insertBefore(${X(F)}, anchor);`),z.push(" },"),z.push(" p(ctx) {"),K){z.push(" disposers.forEach(d => d());"),z.push(" disposers = [];");for(let G of D){let R=X(G).replace(/__effect\(\(\) => \{/g,"disposers.push(__effect(() => {").replace(/\}\);$/gm,"}));");z.push(` ${R}`)}}if(z.push(" },"),z.push(" d(detaching) {"),K)z.push(" disposers.forEach(d => d());");let H=V1(F,J,X);if(H)for(let G of H)z.push(` if (detaching) ${G}.remove();`);else z.push(` if (detaching) ${X(F)}.remove();`);z.push(" }"),z.push(" };"),z.push("}"),this._blockFactories.push(z.join(`
23
+ `))},Z.generateTemplateLoop=function(W){let[Y,$,Q,F,J,D]=W,X=this.newBlockVar(),z=this.newElementVar("anchor");this._createLines.push(`${z} = document.createComment('for');`);let M=Array.isArray($)?$:[$],K=M[0],H=M[1]||"i",G=this.generateInComponent(Q,"value"),q=K;if(this.is(D,"block")&&D.length>1){let f=D[1];if(Array.isArray(f))for(let V of f){if(this.is(V,"object"))for(let h=1;h<V.length;h++){let[n,j1]=V[h];if(n==="key"){q=this.generate(j1,"value");break}}if(q!==K)break}}let R=this._createLines,w=this._setupLines;this._createLines=[],this._setupLines=[];let I=this.generateTemplateBlock(D),P=this._createLines,E=this._setupLines;this._createLines=R,this._setupLines=w;let _=(f)=>this.localizeVar(f),O=[];O.push(`function ${X}(ctx, ${K}, ${H}) {`);let B=new Set;for(let f of P){let V=f.match(/^this\.(_(?:el|t|anchor|frag|slot|c|inst|empty)\d+)\s*=/);if(V)B.add(V[1])}if(B.size>0)O.push(` let ${[...B].join(", ")};`);let N=E.length>0;if(N)O.push(" let disposers = [];");O.push(" return {"),O.push(" c() {");for(let f of P)O.push(` ${_(f)}`);O.push(" },");let T=V1(I,P,_);if(O.push(" m(target, anchor) {"),T)for(let f of T)O.push(` target.insertBefore(${f}, anchor);`);else O.push(` target.insertBefore(${_(I)}, anchor);`);if(O.push(" },"),O.push(` p(ctx, ${K}, ${H}) {`),N){O.push(" disposers.forEach(d => d());"),O.push(" disposers = [];");for(let f of E){let h=_(f).replace(/__effect\(\(\) => \{/g,"disposers.push(__effect(() => {").replace(/\}\);$/gm,"}));");O.push(` ${h}`)}}if(O.push(" },"),O.push(" d(detaching) {"),N)O.push(" disposers.forEach(d => d());");if(T)for(let f of T)O.push(` if (detaching) ${f}.remove();`);else O.push(` if (detaching) ${_(I)}.remove();`);O.push(" }"),O.push(" };"),O.push("}"),this._blockFactories.push(O.join(`
24
24
  `));let S=[];return S.push(`// Loop: ${X}`),S.push("{"),S.push(` const anchor = ${z};`),S.push(" const map = new Map();"),S.push(" __effect(() => {"),S.push(` const items = ${G};`),S.push(" const parent = anchor.parentNode;"),S.push(" const newMap = new Map();"),S.push(""),S.push(` for (let ${H} = 0; ${H} < items.length; ${H}++) {`),S.push(` const ${K} = items[${H}];`),S.push(` const key = ${q};`),S.push(" let block = map.get(key);"),S.push(" if (!block) {"),S.push(` block = ${X}(this, ${K}, ${H});`),S.push(" block.c();"),S.push(" }"),S.push(" block.m(parent, anchor);"),S.push(` block.p(this, ${K}, ${H});`),S.push(" newMap.set(key, block);"),S.push(" }"),S.push(""),S.push(" for (const [key, block] of map) {"),S.push(" if (!newMap.has(key)) block.d(true);"),S.push(" }"),S.push(""),S.push(" map.clear();"),S.push(" for (const [k, v] of newMap) map.set(k, v);"),S.push(" });"),S.push("}"),this._setupLines.push(S.join(`
25
- `)),z},Z.generateChildComponent=function(W,A){let $=this.newElementVar("inst"),Q=this.newElementVar("el"),{propsCode:F,childrenSetupLines:J}=this.buildComponentProps(A);this._createLines.push(`${$} = new ${W}(${F});`),this._createLines.push(`${Q} = ${$}._create();`),this._createLines.push(`(this._children || (this._children = [])).push(${$});`),this._setupLines.push(`if (${$}._setup) ${$}._setup();`);for(let D of J)this._setupLines.push(D);return Q},Z.buildComponentProps=function(W){let A=[],$=null,Q=[];for(let J of W)if(this.is(J,"object"))for(let D=1;D<J.length;D++){let[X,z]=J[D];if(typeof X==="string"){let M=this.reactiveMembers;this.reactiveMembers=new Set;let K=this.generateInComponent(z,"value");this.reactiveMembers=M,A.push(`${X}: ${K}`)}}else if(Array.isArray(J)&&(J[0]==="->"||J[0]==="=>")){let D=J[2];if(D){let X=this._createLines,z=this._setupLines;this._createLines=[],this._setupLines=[],$=this.generateTemplateBlock(D);let M=this._createLines,K=this._setupLines;this._createLines=X,this._setupLines=z;for(let H of M)this._createLines.push(H);Q.push(...K),A.push(`children: ${$}`)}}return{propsCode:A.length>0?`{ ${A.join(", ")} }`:"{}",childrenSetupLines:Q}},Z.hasReactiveDeps=function(W){if(typeof W==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(W));if(!Array.isArray(W))return!1;if(W[0]==="."&&W[1]==="this"&&typeof W[2]==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(W[2]));if(W[0]==="."&&this._rootsAtThis(W[1]))return!0;for(let A of W)if(this.hasReactiveDeps(A))return!0;return!1},Z._rootsAtThis=function(W){if(typeof W==="string")return W==="this";if(!Array.isArray(W)||W[0]!==".")return!1;return this._rootsAtThis(W[1])},Z.getComponentRuntime=function(){return`
25
+ `)),z},Z.generateChildComponent=function(W,Y){let $=this.newElementVar("inst"),Q=this.newElementVar("el"),{propsCode:F,childrenSetupLines:J}=this.buildComponentProps(Y);this._createLines.push(`${$} = new ${W}(${F});`),this._createLines.push(`${Q} = ${$}._create();`),this._createLines.push(`(this._children || (this._children = [])).push(${$});`),this._setupLines.push(`if (${$}._setup) ${$}._setup();`);for(let D of J)this._setupLines.push(D);return Q},Z.buildComponentProps=function(W){let Y=[],$=null,Q=[];for(let J of W)if(this.is(J,"object"))for(let D=1;D<J.length;D++){let[X,z]=J[D];if(typeof X==="string"){let M=this.reactiveMembers;this.reactiveMembers=new Set;let K=this.generateInComponent(z,"value");this.reactiveMembers=M,Y.push(`${X}: ${K}`)}}else if(Array.isArray(J)&&(J[0]==="->"||J[0]==="=>")){let D=J[2];if(D){if(this.is(D,"block")){let X=[];for(let z of D.slice(1))if(this.is(z,"object"))for(let M=1;M<z.length;M++){let[K,H]=z[M];if(typeof K==="string"){let G=this.reactiveMembers;this.reactiveMembers=new Set;let q=this.generateInComponent(H,"value");this.reactiveMembers=G,Y.push(`${K}: ${q}`)}}else X.push(z);D=X.length>0?["block",...X]:null}if(D){let X=this._createLines,z=this._setupLines;this._createLines=[],this._setupLines=[],$=this.generateTemplateBlock(D);let M=this._createLines,K=this._setupLines;this._createLines=X,this._setupLines=z;for(let H of M)this._createLines.push(H);Q.push(...K),Y.push(`children: ${$}`)}}}return{propsCode:Y.length>0?`{ ${Y.join(", ")} }`:"{}",childrenSetupLines:Q}},Z.hasReactiveDeps=function(W){if(typeof W==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(W));if(!Array.isArray(W))return!1;if(W[0]==="."&&W[1]==="this"&&typeof W[2]==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(W[2]));if(W[0]==="."&&this._rootsAtThis(W[1]))return!0;for(let Y of W)if(this.hasReactiveDeps(Y))return!0;return!1},Z._rootsAtThis=function(W){if(typeof W==="string")return W==="this";if(!Array.isArray(W)||W[0]!==".")return!1;return this._rootsAtThis(W[1])},Z.getComponentRuntime=function(){return`
26
26
  // ============================================================================
27
27
  // Rip Component Runtime
28
28
  // ============================================================================
@@ -103,53 +103,53 @@ if (typeof globalThis !== 'undefined') {
103
103
  globalThis.__ripComponent = { __pushComponent, __popComponent, setContext, getContext, hasContext, __clsx, __Component };
104
104
  }
105
105
 
106
- `}}function m(Y){let U="",Z=Y<0?-Y<<1|1:Y<<1;do{let W=Z&31;if(Z>>>=5,Z>0)W|=32;U+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[W]}while(Z>0);return U}class F1{constructor(Y,U,Z=null){this.file=Y,this.source=U,this.sourceContent=Z,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(Y){while(this.lines.length<=Y)this.lines.push([])}addName(Y){if(this.nameIndex.has(Y))return this.nameIndex.get(Y);let U=this.names.length;return this.names.push(Y),this.nameIndex.set(Y,U),U}addMapping(Y,U,Z,W,A){if(this.ensureLine(Y),this.currentLine!==Y)this.prevGenCol=0,this.currentLine=Y;if(Z==null){this.lines[Y].push(m(U-this.prevGenCol)),this.prevGenCol=U;return}this.mappings.push({genLine:Y,genCol:U,origLine:Z,origCol:W});let $=m(U-this.prevGenCol);if(this.prevGenCol=U,$+=m(0),$+=m(Z-this.prevOrigLine),this.prevOrigLine=Z,$+=m(W-this.prevOrigCol),this.prevOrigCol=W,A!=null){let Q=this.addName(A);$+=m(Q-this.prevNameIdx),this.prevNameIdx=Q}this.lines[Y].push($)}toReverseMap(){let Y=new Map;for(let U of this.mappings)if(!Y.has(U.origLine))Y.set(U.origLine,{genLine:U.genLine,genCol:U.genCol});return Y}toJSON(){let Y=this.lines.map((Z)=>Z.join(",")).join(";"),U={version:3,file:this.file,sources:[this.source],names:this.names,mappings:Y};if(this.sourceContent!=null)U.sourcesContent=[this.sourceContent];return JSON.stringify(U)}}var u=(Y,U)=>Y instanceof String?Y[U]:void 0,L=(Y)=>Y instanceof String?Y.valueOf():Y,B2=new Set(["+","-","*","/","%","//","%%","**","==","!=","<",">","<=",">=","===","!==","&&","||","??","!?","not","&","|","^","<<",">>",">>>","=",".","?.","[]","!","typeof","void","delete","new","...","rest","expansion","optindex","optcall"]);function t(Y){if(!Array.isArray(Y)||Y.length===0)return!1;let U=Y[0]?.valueOf?.()??Y[0];if(B2.has(U))return!0;return Y.length<=4&&!Y.some(Array.isArray)}function d(Y){if(Array.isArray(Y))return"(???)";if(typeof Y==="number")return String(Y);if(Y===null)return"null";if(Y==="")return'""';let U=String(Y);if(U[0]==="/"&&U.indexOf(`
107
- `)>=0){let Z=U.match(/\/([gimsuvy]*)$/),W=Z?Z[1]:"",A=U.slice(1);return A=W?A.slice(0,-W.length-1):A.slice(0,-1),`"/${A.split(`
108
- `).map((F)=>F.replace(/#.*$/,"").trim()).join("")}/${W}"`}return U}function v(Y,U=0,Z=!1){if(!Array.isArray(Y))return d(Y);if(Z&&Y[0]==="program"){let D=Y[1],z=[Array.isArray(D)?"(program":"(program "+d(D)],M=Array.isArray(D)?1:2;for(let K=M;K<Y.length;K++){let H=v(Y[K],2,!1);z.push(H[0]==="("?" "+H:H)}return z.push(")"),z.join(`
109
- `)}let W=Y[0];if(t(Y)&&Y.slice(1).every((D)=>!Array.isArray(D)||t(D))){let X=`(${Y.map((z)=>Array.isArray(z)?v(z,0,!1):d(z)).join(" ")})`;if(!X.includes(`
106
+ `}}function l(A){let U="",Z=A<0?-A<<1|1:A<<1;do{let W=Z&31;if(Z>>>=5,Z>0)W|=32;U+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[W]}while(Z>0);return U}class F1{constructor(A,U,Z=null){this.file=A,this.source=U,this.sourceContent=Z,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(A){while(this.lines.length<=A)this.lines.push([])}addName(A){if(this.nameIndex.has(A))return this.nameIndex.get(A);let U=this.names.length;return this.names.push(A),this.nameIndex.set(A,U),U}addMapping(A,U,Z,W,Y){if(this.ensureLine(A),this.currentLine!==A)this.prevGenCol=0,this.currentLine=A;if(Z==null){this.lines[A].push(l(U-this.prevGenCol)),this.prevGenCol=U;return}this.mappings.push({genLine:A,genCol:U,origLine:Z,origCol:W});let $=l(U-this.prevGenCol);if(this.prevGenCol=U,$+=l(0),$+=l(Z-this.prevOrigLine),this.prevOrigLine=Z,$+=l(W-this.prevOrigCol),this.prevOrigCol=W,Y!=null){let Q=this.addName(Y);$+=l(Q-this.prevNameIdx),this.prevNameIdx=Q}this.lines[A].push($)}toReverseMap(){let A=new Map;for(let U of this.mappings)if(!A.has(U.origLine))A.set(U.origLine,{genLine:U.genLine,genCol:U.genCol});return A}toJSON(){let A=this.lines.map((Z)=>Z.join(",")).join(";"),U={version:3,file:this.file,sources:[this.source],names:this.names,mappings:A};if(this.sourceContent!=null)U.sourcesContent=[this.sourceContent];return JSON.stringify(U)}}var u=(A,U)=>A instanceof String?A[U]:void 0,L=(A)=>A instanceof String?A.valueOf():A,B2=new Set(["+","-","*","/","%","//","%%","**","==","!=","<",">","<=",">=","===","!==","&&","||","??","!?","not","&","|","^","<<",">>",">>>","=",".","?.","[]","!","typeof","void","delete","new","...","rest","expansion","optindex","optcall"]);function t(A){if(!Array.isArray(A)||A.length===0)return!1;let U=A[0]?.valueOf?.()??A[0];if(B2.has(U))return!0;return A.length<=4&&!A.some(Array.isArray)}function d(A){if(Array.isArray(A))return"(???)";if(typeof A==="number")return String(A);if(A===null)return"null";if(A==="")return'""';let U=String(A);if(U[0]==="/"&&U.indexOf(`
107
+ `)>=0){let Z=U.match(/\/([gimsuvy]*)$/),W=Z?Z[1]:"",Y=U.slice(1);return Y=W?Y.slice(0,-W.length-1):Y.slice(0,-1),`"/${Y.split(`
108
+ `).map((F)=>F.replace(/#.*$/,"").trim()).join("")}/${W}"`}return U}function v(A,U=0,Z=!1){if(!Array.isArray(A))return d(A);if(Z&&A[0]==="program"){let D=A[1],z=[Array.isArray(D)?"(program":"(program "+d(D)],M=Array.isArray(D)?1:2;for(let K=M;K<A.length;K++){let H=v(A[K],2,!1);z.push(H[0]==="("?" "+H:H)}return z.push(")"),z.join(`
109
+ `)}let W=A[0];if(t(A)&&A.slice(1).every((D)=>!Array.isArray(D)||t(D))){let X=`(${A.map((z)=>Array.isArray(z)?v(z,0,!1):d(z)).join(" ")})`;if(!X.includes(`
110
110
  `))return" ".repeat(U)+X}let $=" ".repeat(U),Q;if(Array.isArray(W)){if(Q=v(W,0,!1),Q.includes(`
111
111
  `))Q=Q.split(`
112
112
  `).map((X,z)=>z===0?X:" ".repeat(U+2)+X).join(`
113
- `)}else Q=d(W);let F=[`${$}(${Q}`],J=W==="block";for(let D=1;D<Y.length;D++){let X=Y[D];if(!Array.isArray(X))F[F.length-1]+=" "+d(X);else{let z=t(X)&&X.every((M)=>!Array.isArray(M)||t(M));if(!J&&z){let M=v(X,0,!1);if(!M.includes(`
113
+ `)}else Q=d(W);let F=[`${$}(${Q}`],J=W==="block";for(let D=1;D<A.length;D++){let X=A[D];if(!Array.isArray(X))F[F.length-1]+=" "+d(X);else{let z=t(X)&&X.every((M)=>!Array.isArray(M)||t(M));if(!J&&z){let M=v(X,0,!1);if(!M.includes(`
114
114
  `)){F[F.length-1]+=" "+M;continue}}F.push(v(X,U+2,!1))}}return F[F.length-1]+=")",F.join(`
115
- `)}class j{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","?:":"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(Y={}){if(this.options=Y,this.indentLevel=0,this.indentString=" ",this.comprehensionDepth=0,this.dataSection=Y.dataSection,this.sourceMap=Y.sourceMap||null,Y.reactiveVars)this.reactiveVars=new Set(Y.reactiveVars)}compile(Y){this.programVars=new Set,this.functionVars=new Map,this.helpers=new Set,this.scopeStack=[],this.collectProgramVariables(Y);let U=this.generate(Y);if(this.sourceMap)this.buildMappings(U,Y);return U}buildMappings(Y,U){if(!U||U[0]!=="program")return;let Z=[],W=(Q)=>{if(!Array.isArray(Q))return;let F=Q[0];if(F==="program"||F==="block")for(let J=1;J<Q.length;J++){let D=Q[J];if(Array.isArray(D)&&D.loc)Z.push(D.loc);W(D)}else for(let J=1;J<Q.length;J++)W(Q[J])};W(U);let A=Y.split(`
116
- `),$=0;for(let Q=0;Q<A.length;Q++){let F=A[Q],J=F.trim();if(!J||J==="}"||J==="});")continue;if(J.startsWith("let ")||J.startsWith("var "))continue;if(J.startsWith("const slice")||J.startsWith("const modulo")||J.startsWith("const toMatchable"))continue;if(J.startsWith("const {")&&J.includes("__"))continue;if(J.startsWith("} else"))continue;if(J.startsWith("//# source"))continue;if($<Z.length){let D=F.length-J.length;this.sourceMap.addMapping(Q,D,Z[$].r,Z[$].c),$++}}}collectProgramVariables(Y){if(!Array.isArray(Y))return;let[U,...Z]=Y;if(U=L(U),Array.isArray(U)){Y.forEach((W)=>this.collectProgramVariables(W));return}if(U==="export"||U==="export-default"||U==="export-all"||U==="export-from")return;if(U==="state"||U==="computed"){let[W]=Z,A=L(W)??W;if(!this.reactiveVars)this.reactiveVars=new Set;this.reactiveVars.add(A);return}if(U==="readonly")return;if(U==="component")return;if(j.ASSIGNMENT_OPS.has(U)){let[W,A]=Z;if(typeof W==="string"||W instanceof String){let $=L(W);if(!this.reactiveVars?.has($))this.programVars.add($)}else if(this.is(W,"array"))this.collectVarsFromArray(W,this.programVars);else if(this.is(W,"object"))this.collectVarsFromObject(W,this.programVars);this.collectProgramVariables(A);return}if(U==="def"||U==="->"||U==="=>")return;if(U==="if"){let[W,A,$]=Z;if(this.collectProgramVariables(W),this.collectProgramVariables(A),$)this.collectProgramVariables($);return}if(U==="try"){if(this.collectProgramVariables(Z[0]),Z.length>=2&&Array.isArray(Z[1])&&Z[1].length===2&&Z[1][0]!=="block"){let[W,A]=Z[1];if(W&&this.is(W,"object"))W.slice(1).forEach(($)=>{if(Array.isArray($)&&$.length===2&&typeof $[1]==="string")this.programVars.add($[1])});else if(W&&this.is(W,"array"))W.slice(1).forEach(($)=>{if(typeof $==="string")this.programVars.add($)});this.collectProgramVariables(A)}if(Z.length===3)this.collectProgramVariables(Z[2]);else if(Z.length===2&&(!Array.isArray(Z[1])||Z[1][0]==="block"))this.collectProgramVariables(Z[1]);return}Z.forEach((W)=>this.collectProgramVariables(W))}collectFunctionVariables(Y){let U=new Set,Z=(W)=>{if(!Array.isArray(W))return;let[A,...$]=W;if(A=L(A),Array.isArray(A)){W.forEach((Q)=>Z(Q));return}if(j.ASSIGNMENT_OPS.has(A)){let[Q,F]=$;if(typeof Q==="string")U.add(Q);else if(this.is(Q,"array"))this.collectVarsFromArray(Q,U);else if(this.is(Q,"object"))this.collectVarsFromObject(Q,U);Z(F);return}if(A==="def"||A==="->"||A==="=>")return;if(A==="try"){if(Z($[0]),$.length>=2&&Array.isArray($[1])&&$[1].length===2&&$[1][0]!=="block"){let[Q,F]=$[1];if(Q&&this.is(Q,"object"))Q.slice(1).forEach((J)=>{if(Array.isArray(J)&&J.length===2&&typeof J[1]==="string")U.add(J[1])});else if(Q&&this.is(Q,"array"))Q.slice(1).forEach((J)=>{if(typeof J==="string")U.add(J)});Z(F)}if($.length===3)Z($[2]);else if($.length===2&&(!Array.isArray($[1])||$[1][0]==="block"))Z($[1]);return}$.forEach((Q)=>Z(Q))};return Z(Y),U}generate(Y,U="statement"){if(Y instanceof String){if(u(Y,"await")===!0)return`await ${L(Y)}()`;if(u(Y,"predicate"))return`(${L(Y)} != null)`;if(u(Y,"delimiter")==="///"&&u(Y,"heregex")){let F=L(Y),J=F.match(/^\/(.*)\/([gimsuvy]*)$/s);if(J){let[,D,X]=J;return`/${this.processHeregex(D)}/${X}`}return F}let Q=u(Y,"quote");if(Q){let F=L(Y);if(Q==='"""'||Q==="'''"){let D=this.extractStringContent(Y);return D=D.replace(/`/g,"\\`").replace(/\${/g,"\\${"),`\`${D}\``}if(F[0]===Q)return F;let J=F.slice(1,-1);return`${Q}${J}${Q}`}Y=L(Y)}if(typeof Y==="string"){if(Y.startsWith('"')||Y.startsWith("'")||Y.startsWith("`")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive:",Y);let Q=Y.slice(1,-1);if(Q.includes(`
117
- `))return`\`${Q.replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}\``;let F=Q.includes("'")&&!Q.includes('"')?'"':"'",J=Q.replace(new RegExp(F,"g"),`\\${F}`);return`${F}${J}${F}`}if(this.reactiveVars?.has(Y)&&!this.suppressReactiveUnwrap)return`${Y}.value`;return Y}if(typeof Y==="number")return String(Y);if(Y===null||Y===void 0)return"null";if(!Array.isArray(Y))throw Error(`Invalid s-expression: ${JSON.stringify(Y)}`);let[Z,...W]=Y,A=u(Z,"await");Z=L(Z);let $=j.GENERATORS[Z];if($)return this[$](Z,W,U,Y);if(typeof Z==="string"&&!Z.startsWith('"')&&!Z.startsWith("'")){if(j.NUMBER_START_RE.test(Z))return Z;if(Z==="super"&&this.currentMethodName&&this.currentMethodName!=="constructor"){let X=W.map((z)=>this.unwrap(this.generate(z,"value"))).join(", ");return`super.${this.currentMethodName}(${X})`}if(U==="statement"&&W.length===1){let X=this.findPostfixConditional(W[0]);if(X){let z=this.rebuildWithoutConditional(X),M=this.generate(Z,"value"),K=this.generate(X.condition,"value"),H=this.generate(z,"value"),G=`${M}(${H})`;return`if (${K}) ${G}`}}let Q=A===!0,F=this.generate(Z,"value"),J=W.map((X)=>this.unwrap(this.generate(X,"value"))).join(", "),D=`${F}(${J})`;return Q?`await ${D}`:D}if(Array.isArray(Z)&&typeof Z[0]==="string"){if(["=","+=","-=","*=","/=","%=","**=","&&=","||=","??=","if","return","throw"].includes(Z[0]))return`(${Y.map((J)=>this.generate(J,"value")).join(", ")})`}if(Array.isArray(Z)){if(Z[0]==="."&&(Z[2]==="new"||L(Z[2])==="new")){let X=Z[1],z=this.generate(X,"value"),M=W.map((H)=>this.unwrap(this.generate(H,"value"))).join(", ");return`new ${Array.isArray(X)?`(${z})`:z}(${M})`}if(U==="statement"&&W.length===1){let X=this.findPostfixConditional(W[0]);if(X){let z=this.rebuildWithoutConditional(X),M=this.generate(Z,"value"),K=this.generate(X.condition,"value"),H=this.generate(z,"value"),G=`${M}(${H})`;return`if (${K}) ${G}`}}let Q=!1,F;if(Z[0]==="."&&u(Z[2],"await")===!0){Q=!0;let[X,z]=Z.slice(1),M=this.generate(X,"value");F=`${j.NUMBER_LITERAL_RE.test(M)||(this.is(X,"object")||this.is(X,"await")||this.is(X,"yield"))?`(${M})`:M}.${L(z)}`}else F=this.generate(Z,"value");let J=W.map((X)=>this.unwrap(this.generate(X,"value"))).join(", "),D=`${F}(${J})`;return Q?`await ${D}`:D}throw Error(`Unknown s-expression type: ${Z}`)}generateProgram(Y,U,Z,W){let A="",$=[],Q=[],F=[];for(let K of U){if(!Array.isArray(K)){F.push(K);continue}let H=K[0];if(H==="import")$.push(K);else if(H==="export"||H==="export-default"||H==="export-all"||H==="export-from")Q.push(K);else F.push(K)}let J=["def","class","if","for-in","for-of","for-as","while","loop","switch","try"],D=F.map((K,H)=>{let G=F.length===1&&$.length===0&&Q.length===0,q=this.is(K,"object"),R=q&&K.length===2&&Array.isArray(K[1])&&Array.isArray(K[1][1])&&K[1][1][0]==="comprehension",w=this.is(K,"comprehension")||this.is(K,"object-comprehension")||this.is(K,"do-iife"),B=this.programVars.size===0,P=G&&q&&B&&!w&&!R,_=H===F.length-1&&w,O;if(P)O=`(${this.generate(K,"value")})`;else if(_)O=this.generate(K,"value");else O=this.generate(K,"statement");if(O&&!O.endsWith(";")){let I=Array.isArray(K)?K[0]:null;if(!J.includes(I)||!O.endsWith("}"))return O+";"}return O}).join(`
118
- `),X=!1;if($.length>0)A+=$.map((K)=>this.addSemicolon(K,this.generate(K,"statement"))).join(`
119
- `),X=!0;if(this.programVars.size>0){let K=Array.from(this.programVars).sort().join(", ");if(X)A+=`
120
- `;A+=`let ${K};
121
- `,X=!0}let z=this.options.skipPreamble;if(!z){if(this.helpers.has("slice"))A+=`const slice = [].slice;
122
- `,X=!0;if(this.helpers.has("modulo"))A+=`const modulo = (n, d) => { n = +n; d = +d; return (n % d + d) % d; };
123
- `,X=!0;if(this.helpers.has("toMatchable"))A+=`const toMatchable = (v, allowNewlines) => {
124
- `,A+=` if (typeof v === "string") return !allowNewlines && /[\\n\\r]/.test(v) ? null : v;
125
- `,A+=` if (v == null) return "";
126
- `,A+=` if (typeof v === "number" || typeof v === "bigint" || typeof v === "boolean") return String(v);
127
- `,A+=` if (typeof v === "symbol") return v.description || "";
128
- `,A+=` if (v instanceof Uint8Array || v instanceof ArrayBuffer) {
129
- `,A+=` return new TextDecoder().decode(v instanceof Uint8Array ? v : new Uint8Array(v));
130
- `,A+=` }
131
- `,A+=` if (Array.isArray(v)) return v.join(",");
132
- `,A+=` if (typeof v.toString === "function" && v.toString !== Object.prototype.toString) {
133
- `,A+=` try { return v.toString(); } catch { return ""; }
134
- `,A+=` }
135
- `,A+=` return "";
136
- `,A+=`};
115
+ `)}class j{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","?:":"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(A={}){if(this.options=A,this.indentLevel=0,this.indentString=" ",this.comprehensionDepth=0,this.dataSection=A.dataSection,this.sourceMap=A.sourceMap||null,A.reactiveVars)this.reactiveVars=new Set(A.reactiveVars)}compile(A){this.programVars=new Set,this.functionVars=new Map,this.helpers=new Set,this.scopeStack=[],this.collectProgramVariables(A);let U=this.generate(A);if(this.sourceMap)this.buildMappings(U,A);return U}buildMappings(A,U){if(!U||U[0]!=="program")return;let Z=[],W=(Q)=>{if(!Array.isArray(Q))return;let F=Q[0];if(F==="program"||F==="block")for(let J=1;J<Q.length;J++){let D=Q[J];if(Array.isArray(D)&&D.loc)Z.push(D.loc);W(D)}else for(let J=1;J<Q.length;J++)W(Q[J])};W(U);let Y=A.split(`
116
+ `),$=0;for(let Q=0;Q<Y.length;Q++){let F=Y[Q],J=F.trim();if(!J||J==="}"||J==="});")continue;if(J.startsWith("let ")||J.startsWith("var "))continue;if(J.startsWith("const slice")||J.startsWith("const modulo")||J.startsWith("const toMatchable"))continue;if(J.startsWith("const {")&&J.includes("__"))continue;if(J.startsWith("} else"))continue;if(J.startsWith("//# source"))continue;if($<Z.length){let D=F.length-J.length;this.sourceMap.addMapping(Q,D,Z[$].r,Z[$].c),$++}}}collectProgramVariables(A){if(!Array.isArray(A))return;let[U,...Z]=A;if(U=L(U),Array.isArray(U)){A.forEach((W)=>this.collectProgramVariables(W));return}if(U==="export"||U==="export-default"||U==="export-all"||U==="export-from")return;if(U==="state"||U==="computed"){let[W]=Z,Y=L(W)??W;if(!this.reactiveVars)this.reactiveVars=new Set;this.reactiveVars.add(Y);return}if(U==="readonly")return;if(U==="component")return;if(j.ASSIGNMENT_OPS.has(U)){let[W,Y]=Z;if(typeof W==="string"||W instanceof String){let $=L(W);if(!this.reactiveVars?.has($))this.programVars.add($)}else if(this.is(W,"array"))this.collectVarsFromArray(W,this.programVars);else if(this.is(W,"object"))this.collectVarsFromObject(W,this.programVars);this.collectProgramVariables(Y);return}if(U==="def"||U==="->"||U==="=>")return;if(U==="if"){let[W,Y,$]=Z;if(this.collectProgramVariables(W),this.collectProgramVariables(Y),$)this.collectProgramVariables($);return}if(U==="try"){if(this.collectProgramVariables(Z[0]),Z.length>=2&&Array.isArray(Z[1])&&Z[1].length===2&&Z[1][0]!=="block"){let[W,Y]=Z[1];if(W&&this.is(W,"object"))W.slice(1).forEach(($)=>{if(Array.isArray($)&&$.length===2&&typeof $[1]==="string")this.programVars.add($[1])});else if(W&&this.is(W,"array"))W.slice(1).forEach(($)=>{if(typeof $==="string")this.programVars.add($)});this.collectProgramVariables(Y)}if(Z.length===3)this.collectProgramVariables(Z[2]);else if(Z.length===2&&(!Array.isArray(Z[1])||Z[1][0]==="block"))this.collectProgramVariables(Z[1]);return}Z.forEach((W)=>this.collectProgramVariables(W))}collectFunctionVariables(A){let U=new Set,Z=(W)=>{if(!Array.isArray(W))return;let[Y,...$]=W;if(Y=L(Y),Array.isArray(Y)){W.forEach((Q)=>Z(Q));return}if(j.ASSIGNMENT_OPS.has(Y)){let[Q,F]=$;if(typeof Q==="string")U.add(Q);else if(this.is(Q,"array"))this.collectVarsFromArray(Q,U);else if(this.is(Q,"object"))this.collectVarsFromObject(Q,U);Z(F);return}if(Y==="def"||Y==="->"||Y==="=>")return;if(Y==="try"){if(Z($[0]),$.length>=2&&Array.isArray($[1])&&$[1].length===2&&$[1][0]!=="block"){let[Q,F]=$[1];if(Q&&this.is(Q,"object"))Q.slice(1).forEach((J)=>{if(Array.isArray(J)&&J.length===2&&typeof J[1]==="string")U.add(J[1])});else if(Q&&this.is(Q,"array"))Q.slice(1).forEach((J)=>{if(typeof J==="string")U.add(J)});Z(F)}if($.length===3)Z($[2]);else if($.length===2&&(!Array.isArray($[1])||$[1][0]==="block"))Z($[1]);return}$.forEach((Q)=>Z(Q))};return Z(A),U}generate(A,U="statement"){if(A instanceof String){if(u(A,"await")===!0)return`await ${L(A)}()`;if(u(A,"predicate"))return`(${L(A)} != null)`;if(u(A,"delimiter")==="///"&&u(A,"heregex")){let F=L(A),J=F.match(/^\/(.*)\/([gimsuvy]*)$/s);if(J){let[,D,X]=J;return`/${this.processHeregex(D)}/${X}`}return F}let Q=u(A,"quote");if(Q){let F=L(A);if(Q==='"""'||Q==="'''"){let D=this.extractStringContent(A);return D=D.replace(/`/g,"\\`").replace(/\${/g,"\\${"),`\`${D}\``}if(F[0]===Q)return F;let J=F.slice(1,-1);return`${Q}${J}${Q}`}A=L(A)}if(typeof A==="string"){if(A.startsWith('"')||A.startsWith("'")||A.startsWith("`")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive:",A);let Q=A.slice(1,-1);if(Q.includes(`
117
+ `))return`\`${Q.replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}\``;let F=Q.includes("'")&&!Q.includes('"')?'"':"'",J=Q.replace(new RegExp(F,"g"),`\\${F}`);return`${F}${J}${F}`}if(this.reactiveVars?.has(A)&&!this.suppressReactiveUnwrap)return`${A}.value`;return A}if(typeof A==="number")return String(A);if(A===null||A===void 0)return"null";if(!Array.isArray(A))throw Error(`Invalid s-expression: ${JSON.stringify(A)}`);let[Z,...W]=A,Y=u(Z,"await");Z=L(Z);let $=j.GENERATORS[Z];if($)return this[$](Z,W,U,A);if(typeof Z==="string"&&!Z.startsWith('"')&&!Z.startsWith("'")){if(j.NUMBER_START_RE.test(Z))return Z;if(Z==="super"&&this.currentMethodName&&this.currentMethodName!=="constructor"){let X=W.map((z)=>this.unwrap(this.generate(z,"value"))).join(", ");return`super.${this.currentMethodName}(${X})`}if(U==="statement"&&W.length===1){let X=this.findPostfixConditional(W[0]);if(X){let z=this.rebuildWithoutConditional(X),M=this.generate(Z,"value"),K=this.generate(X.condition,"value"),H=this.generate(z,"value"),G=`${M}(${H})`;return`if (${K}) ${G}`}}let Q=Y===!0,F=this.generate(Z,"value"),J=W.map((X)=>this.unwrap(this.generate(X,"value"))).join(", "),D=`${F}(${J})`;return Q?`await ${D}`:D}if(Array.isArray(Z)&&typeof Z[0]==="string"){if(["=","+=","-=","*=","/=","%=","**=","&&=","||=","??=","if","return","throw"].includes(Z[0]))return`(${A.map((J)=>this.generate(J,"value")).join(", ")})`}if(Array.isArray(Z)){if(Z[0]==="."&&(Z[2]==="new"||L(Z[2])==="new")){let X=Z[1],z=this.generate(X,"value"),M=W.map((H)=>this.unwrap(this.generate(H,"value"))).join(", ");return`new ${Array.isArray(X)?`(${z})`:z}(${M})`}if(U==="statement"&&W.length===1){let X=this.findPostfixConditional(W[0]);if(X){let z=this.rebuildWithoutConditional(X),M=this.generate(Z,"value"),K=this.generate(X.condition,"value"),H=this.generate(z,"value"),G=`${M}(${H})`;return`if (${K}) ${G}`}}let Q=!1,F;if(Z[0]==="."&&u(Z[2],"await")===!0){Q=!0;let[X,z]=Z.slice(1),M=this.generate(X,"value");F=`${j.NUMBER_LITERAL_RE.test(M)||(this.is(X,"object")||this.is(X,"await")||this.is(X,"yield"))?`(${M})`:M}.${L(z)}`}else F=this.generate(Z,"value");let J=W.map((X)=>this.unwrap(this.generate(X,"value"))).join(", "),D=`${F}(${J})`;return Q?`await ${D}`:D}throw Error(`Unknown s-expression type: ${Z}`)}generateProgram(A,U,Z,W){let Y="",$=[],Q=[],F=[];for(let K of U){if(!Array.isArray(K)){F.push(K);continue}let H=K[0];if(H==="import")$.push(K);else if(H==="export"||H==="export-default"||H==="export-all"||H==="export-from")Q.push(K);else F.push(K)}let J=["def","class","if","for-in","for-of","for-as","while","loop","switch","try"],D=F.map((K,H)=>{let G=F.length===1&&$.length===0&&Q.length===0,q=this.is(K,"object"),R=q&&K.length===2&&Array.isArray(K[1])&&Array.isArray(K[1][1])&&K[1][1][0]==="comprehension",w=this.is(K,"comprehension")||this.is(K,"object-comprehension")||this.is(K,"do-iife"),I=this.programVars.size===0,P=G&&q&&I&&!w&&!R,_=H===F.length-1&&w,O;if(P)O=`(${this.generate(K,"value")})`;else if(_)O=this.generate(K,"value");else O=this.generate(K,"statement");if(O&&!O.endsWith(";")){let B=Array.isArray(K)?K[0]:null;if(!J.includes(B)||!O.endsWith("}"))return O+";"}return O}).join(`
118
+ `),X=!1;if($.length>0)Y+=$.map((K)=>this.addSemicolon(K,this.generate(K,"statement"))).join(`
119
+ `),X=!0;if(this.programVars.size>0){let K=Array.from(this.programVars).sort().join(", ");if(X)Y+=`
120
+ `;Y+=`let ${K};
121
+ `,X=!0}let z=this.options.skipPreamble;if(!z){if(this.helpers.has("slice"))Y+=`const slice = [].slice;
122
+ `,X=!0;if(this.helpers.has("modulo"))Y+=`const modulo = (n, d) => { n = +n; d = +d; return (n % d + d) % d; };
123
+ `,X=!0;if(this.helpers.has("toMatchable"))Y+=`const toMatchable = (v, allowNewlines) => {
124
+ `,Y+=` if (typeof v === "string") return !allowNewlines && /[\\n\\r]/.test(v) ? null : v;
125
+ `,Y+=` if (v == null) return "";
126
+ `,Y+=` if (typeof v === "number" || typeof v === "bigint" || typeof v === "boolean") return String(v);
127
+ `,Y+=` if (typeof v === "symbol") return v.description || "";
128
+ `,Y+=` if (v instanceof Uint8Array || v instanceof ArrayBuffer) {
129
+ `,Y+=` return new TextDecoder().decode(v instanceof Uint8Array ? v : new Uint8Array(v));
130
+ `,Y+=` }
131
+ `,Y+=` if (Array.isArray(v)) return v.join(",");
132
+ `,Y+=` if (typeof v.toString === "function" && v.toString !== Object.prototype.toString) {
133
+ `,Y+=` try { return v.toString(); } catch { return ""; }
134
+ `,Y+=` }
135
+ `,Y+=` return "";
136
+ `,Y+=`};
137
137
  `,X=!0}let M="";if(Q.length>0)M=`
138
138
  `+Q.map((K)=>this.addSemicolon(K,this.generate(K,"statement"))).join(`
139
- `);if(this.usesReactivity&&!z){if(typeof globalThis<"u"&&globalThis.__rip)A+=`const { __state, __computed, __effect, __batch, __readonly, __setErrorHandler, __handleError, __catchErrors } = globalThis.__rip;
140
- `;else A+=this.getReactiveRuntime();X=!0}if(this.usesTemplates&&!z){if(typeof globalThis<"u"&&globalThis.__ripComponent)A+=`const { __pushComponent, __popComponent, setContext, getContext, hasContext, __clsx, __Component } = globalThis.__ripComponent;
141
- `;else A+=this.getComponentRuntime();X=!0}if(this.dataSection!==null&&this.dataSection!==void 0&&!z)A+=`var DATA;
139
+ `);if(this.usesReactivity&&!z){if(typeof globalThis<"u"&&globalThis.__rip)Y+=`const { __state, __computed, __effect, __batch, __readonly, __setErrorHandler, __handleError, __catchErrors } = globalThis.__rip;
140
+ `;else Y+=this.getReactiveRuntime();X=!0}if(this.usesTemplates&&!z){if(typeof globalThis<"u"&&globalThis.__ripComponent)Y+=`const { __pushComponent, __popComponent, setContext, getContext, hasContext, __clsx, __Component } = globalThis.__ripComponent;
141
+ `;else Y+=this.getComponentRuntime();X=!0}if(this.dataSection!==null&&this.dataSection!==void 0&&!z)Y+=`var DATA;
142
142
  _setDataSection();
143
- `,X=!0;if(X&&A.length>0)A+=`
144
- `;if(A+=D,A+=M,this.dataSection!==null&&this.dataSection!==void 0)A+=`
143
+ `,X=!0;if(X&&Y.length>0)Y+=`
144
+ `;if(Y+=D,Y+=M,this.dataSection!==null&&this.dataSection!==void 0)Y+=`
145
145
 
146
146
  function _setDataSection() {
147
147
  DATA = ${JSON.stringify(this.dataSection)};
148
- }`;return A}generateBinaryOp(Y,U,Z,W){if((Y==="+"||Y==="-")&&U.length===1)return`(${Y}${this.generate(U[0],"value")})`;let[A,$]=U;if(Y==="*"){let F=A?.valueOf?.()??A;if(typeof F==="string"&&/^["']/.test(F))return`${this.generate(A,"value")}.repeat(${this.generate($,"value")})`}let Q=new Set(["<",">","<=",">="]);if(Q.has(Y)&&Array.isArray(A)){let F=A[0]?.valueOf?.()??A[0];if(Q.has(F)){let J=this.generate(A[1],"value"),D=this.generate(A[2],"value"),X=this.generate($,"value");return`((${J} ${F} ${D}) && (${D} ${Y} ${X}))`}}if(Y==="!?"){let F=this.generate(A,"value"),J=this.generate($,"value");return`(${F} !== undefined ? ${F} : ${J})`}if(Y==="==")Y="===";if(Y==="!=")Y="!==";return`(${this.generate(A,"value")} ${Y} ${this.generate($,"value")})`}generateModulo(Y,U){let[Z,W]=U;return this.helpers.add("modulo"),`modulo(${this.generate(Z,"value")}, ${this.generate(W,"value")})`}generateModuloAssign(Y,U){let[Z,W]=U;this.helpers.add("modulo");let A=this.generate(Z,"value"),$=this.generate(W,"value");return`${A} = modulo(${A}, ${$})`}generateFloorDiv(Y,U){let[Z,W]=U;return`Math.floor(${this.generate(Z,"value")} / ${this.generate(W,"value")})`}generateFloorDivAssign(Y,U){let[Z,W]=U,A=this.generate(Z,"value"),$=this.generate(W,"value");return`${A} = Math.floor(${A} / ${$})`}generateAssignment(Y,U,Z,W){let[A,$]=U,Q=Y==="?="?"??=":Y,F=this.is($,"->")||this.is($,"=>")||this.is($,"def");if(A instanceof String&&u(A,"await")!==void 0&&!F){let G=u(A,"await")===!0?"!":"&";throw Error(`Cannot use ${G} sigil in variable declaration '${L(A)}'.`)}if(A instanceof String&&u(A,"await")===!0&&F)this.nextFunctionIsVoid=!0;let J=this.is(A,"array",0),D=this.is(A,"object",0);if(J||D){let G=this.generate($,"value");return D&&Z==="statement"?`(${G})`:G}if(Array.isArray($)&&Q==="="&&$[0]==="control"){let[,G,q,R]=$,w=L(G),B=R[0]==="return",P=this.generate(A,"value"),E=this.generate(q,"value"),_=R.length>1?R[1]:null,O=B?_?`return ${this.generate(_,"value")}`:"return":_?`throw ${this.generate(_,"value")}`:"throw new Error()";if(Z==="value"){if(w==="??")return`(() => { const __v = ${E}; if (__v == null) ${O}; return (${P} = __v); })()`;if(w==="||")return`(() => { const __v = ${E}; if (!__v) ${O}; return (${P} = __v); })()`;return`(() => { const __v = ${E}; if (__v) ${O}; return (${P} = __v); })()`}if(w==="??")return`if ((${P} = ${E}) == null) ${O}`;if(w==="||")return`if (!(${P} = ${E})) ${O}`;return`if ((${P} = ${E})) ${O}`}if(this.is(A,"array")){let G=A.slice(1).findIndex((q)=>this.is(q,"...")||q==="...");if(G!==-1&&G<A.length-2){let q=A.slice(1),R=q.slice(G+1),w=R.length;if(w>0){let B=this.generate($,"value"),E=q.slice(0,G).map((T)=>T===","?"":typeof T==="string"?T:this.generate(T,"value")).join(", "),_=R.map((T)=>T===","?"":typeof T==="string"?T:this.generate(T,"value")).join(", ");this.helpers.add("slice"),q.forEach((T)=>{if(T===","||T==="...")return;if(typeof T==="string")this.programVars.add(T);else if(this.is(T,"...")&&typeof T[1]==="string")this.programVars.add(T[1])});let O=q[G],I=this.is(O,"...")?O[1]:null,N=[];if(E)N.push(`[${E}] = ${B}`);if(I)N.push(`[...${I}] = ${B}.slice(${G}, -${w})`);return N.push(`[${_}] = slice.call(${B}, -${w})`),N.join(", ")}}}if(Z==="statement"&&Y==="="&&Array.isArray($)&&($[0]==="||"||$[0]==="&&")&&$.length===3){let[G,q,R]=$;if(this.is(R,"if")&&R.length===3){let[,w,B]=R,P=Array.isArray(B)&&B.length===1?B[0]:B,E=[G,q,P],_=this.generate(A,"value"),O=this.generate(w,"value"),I=this.generate(E,"value");return`if (${O}) ${_} = ${I}`}}if(Z==="statement"&&Y==="="&&Array.isArray($)&&$.length===3){let[G,q,R]=$,w=Array.isArray(R)&&R.length===1&&(!Array.isArray(R[0])||R[0][0]!=="block");if(G==="if"&&w){let B=Array.isArray(R)&&R.length===1?R[0]:R,P=this.generate(A,"value"),E=this.unwrapLogical(this.generate(q,"value")),_=this.generate(B,"value");return`if (${E}) ${P} = ${_}`}}let X;if(A instanceof String&&u(A,"await")!==void 0)X=L(A);else if(typeof A==="string"&&this.reactiveVars?.has(A))X=`${A}.value`;else this.suppressReactiveUnwrap=!0,X=this.generate(A,"value"),this.suppressReactiveUnwrap=!1;let z=this.generate($,"value");if(!this.is($,"object"))z=this.unwrap(z);let K=Z==="value",H=Z==="statement"&&this.is(A,"object");if(K||H)return`(${X} ${Q} ${z})`;return`${X} ${Q} ${z}`}generatePropertyAccess(Y,U,Z,W){let[A,$]=U;if(this._atParamMap&&A==="this"){let D=this._atParamMap.get(L($));if(D)return D}this.suppressReactiveUnwrap=!0;let Q=this.generate(A,"value");this.suppressReactiveUnwrap=!1;let J=j.NUMBER_LITERAL_RE.test(Q)||Q.startsWith("await ")||(this.is(A,"object")||this.is(A,"yield"))?`(${Q})`:Q;if(u($,"await")===!0)return`await ${J}.${L($)}()`;if(u($,"predicate"))return`(${J}.${L($)} != null)`;return`${J}.${L($)}`}generateOptionalProperty(Y,U){let[Z,W]=U;return`${this.generate(Z,"value")}?.${W}`}generateRegexIndex(Y,U){let[Z,W,A]=U;this.helpers.add("toMatchable"),this.programVars.add("_");let $=this.generate(Z,"value"),Q=this.generate(W,"value"),F=A!==null?this.generate(A,"value"):"0",J=Q.includes("/m")?", true":"";return`(_ = toMatchable(${$}${J}).match(${Q})) && _[${F}]`}generateIndexAccess(Y,U){let[Z,W]=U;if(this.is(W,"..")||this.is(W,"...")){let A=W[0]==="..",$=this.generate(Z,"value"),[Q,F]=W.slice(1);if(Q===null&&F===null)return`${$}.slice()`;if(Q===null){if(A&&this.is(F,"-",1)&&(L(F[1])??F[1])==1)return`${$}.slice(0)`;let X=this.generate(F,"value");return A?`${$}.slice(0, +${X} + 1 || 9e9)`:`${$}.slice(0, ${X})`}if(F===null)return`${$}.slice(${this.generate(Q,"value")})`;let J=this.generate(Q,"value");if(A&&this.is(F,"-",1)&&(L(F[1])??F[1])==1)return`${$}.slice(${J})`;let D=this.generate(F,"value");return A?`${$}.slice(${J}, +${D} + 1 || 9e9)`:`${$}.slice(${J}, ${D})`}if(this.is(W,"-",1)){let A=L(W[1])??W[1];if(typeof A==="number"||typeof A==="string"&&/^\d+$/.test(A))return`${this.generate(Z,"value")}.at(-${A})`}return`${this.generate(Z,"value")}[${this.unwrap(this.generate(W,"value"))}]`}generateOptIndex(Y,U){let[Z,W]=U;if(this.is(W,"-",1)){let A=L(W[1])??W[1];if(typeof A==="number"||typeof A==="string"&&/^\d+$/.test(A))return`${this.generate(Z,"value")}?.at(-${A})`}return`${this.generate(Z,"value")}?.[${this.generate(W,"value")}]`}generateOptCall(Y,U){let[Z,...W]=U;return`${this.generate(Z,"value")}?.(${W.map((A)=>this.generate(A,"value")).join(", ")})`}generateDef(Y,U,Z,W){let[A,$,Q]=U,F=u(A,"await")===!0,J=L(A),D=this.generateParamList($),X=this.generateFunctionBody(Q,$,F),z=this.containsAwait(Q),M=this.containsYield(Q);return`${z?"async ":""}function${M?"*":""} ${J}(${D}) ${X}`}generateThinArrow(Y,U,Z,W){let[A,$]=U;if((!A||Array.isArray(A)&&A.length===0)&&this.containsIt($))A=["it"];let Q=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let F=this.generateParamList(A),J=this.generateFunctionBody($,A,Q),D=this.containsAwait($),X=this.containsYield($),z=`${D?"async ":""}function${X?"*":""}(${F}) ${J}`;return Z==="value"?`(${z})`:z}generateFatArrow(Y,U,Z,W){let[A,$]=U;if((!A||Array.isArray(A)&&A.length===0)&&this.containsIt($))A=["it"];let Q=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let F=this.generateParamList(A),D=A.length===1&&typeof A[0]==="string"&&!F.includes("=")&&!F.includes("...")&&!F.includes("[")&&!F.includes("{")?F:`(${F})`,z=this.containsAwait($)?"async ":"";if(!Q){if(this.is($,"block")&&$.length===2){let K=$[1];if(!Array.isArray(K)||K[0]!=="return")return`${z}${D} => ${this.generate(K,"value")}`}if(!Array.isArray($)||$[0]!=="block")return`${z}${D} => ${this.generate($,"value")}`}let M=this.generateFunctionBody($,A,Q);return`${z}${D} => ${M}`}generateReturn(Y,U,Z,W){if(U.length===0)return"return";let[A]=U;if(this.sideEffectOnly)return"return";if(this.is(A,"if")){let[,$,Q,...F]=A;if(F.length===0){let J=Array.isArray(Q)&&Q.length===1?Q[0]:Q;return`if (${this.generate($,"value")}) return ${this.generate(J,"value")}`}}if(this.is(A,"new")&&Array.isArray(A[1])&&A[1][0]==="if"){let[,$,Q]=A[1],F=Array.isArray(Q)&&Q.length===1?Q[0]:Q;return`if (${this.generate($,"value")}) return ${this.generate(["new",F],"value")}`}return`return ${this.generate(A,"value")}`}generateState(Y,U){let[Z,W]=U;this.usesReactivity=!0;let A=L(Z)??Z;if(!this.reactiveVars)this.reactiveVars=new Set;return this.reactiveVars.add(A),`const ${A} = __state(${this.generate(W,"value")})`}generateComputed(Y,U){let[Z,W]=U;if(this.usesReactivity=!0,!this.reactiveVars)this.reactiveVars=new Set;let A=L(Z)??Z;if(this.reactiveVars.add(A),this.is(W,"block")&&W.length>2)return`const ${A} = __computed(() => ${this.generateFunctionBody(W)})`;return`const ${A} = __computed(() => ${this.generate(W,"value")})`}generateReadonly(Y,U){let[Z,W]=U;return`const ${L(Z)??Z} = ${this.generate(W,"value")}`}generateEffect(Y,U){let[Z,W]=U;this.usesReactivity=!0;let A;if(this.is(W,"block"))A=`{
148
+ }`;return Y}generateBinaryOp(A,U,Z,W){if((A==="+"||A==="-")&&U.length===1)return`(${A}${this.generate(U[0],"value")})`;let[Y,$]=U;if(A==="*"){let F=Y?.valueOf?.()??Y;if(typeof F==="string"&&/^["']/.test(F))return`${this.generate(Y,"value")}.repeat(${this.generate($,"value")})`}let Q=new Set(["<",">","<=",">="]);if(Q.has(A)&&Array.isArray(Y)){let F=Y[0]?.valueOf?.()??Y[0];if(Q.has(F)){let J=this.generate(Y[1],"value"),D=this.generate(Y[2],"value"),X=this.generate($,"value");return`((${J} ${F} ${D}) && (${D} ${A} ${X}))`}}if(A==="!?"){let F=this.generate(Y,"value"),J=this.generate($,"value");return`(${F} !== undefined ? ${F} : ${J})`}if(A==="==")A="===";if(A==="!=")A="!==";return`(${this.generate(Y,"value")} ${A} ${this.generate($,"value")})`}generateModulo(A,U){let[Z,W]=U;return this.helpers.add("modulo"),`modulo(${this.generate(Z,"value")}, ${this.generate(W,"value")})`}generateModuloAssign(A,U){let[Z,W]=U;this.helpers.add("modulo");let Y=this.generate(Z,"value"),$=this.generate(W,"value");return`${Y} = modulo(${Y}, ${$})`}generateFloorDiv(A,U){let[Z,W]=U;return`Math.floor(${this.generate(Z,"value")} / ${this.generate(W,"value")})`}generateFloorDivAssign(A,U){let[Z,W]=U,Y=this.generate(Z,"value"),$=this.generate(W,"value");return`${Y} = Math.floor(${Y} / ${$})`}generateAssignment(A,U,Z,W){let[Y,$]=U,Q=A==="?="?"??=":A,F=this.is($,"->")||this.is($,"=>")||this.is($,"def");if(Y instanceof String&&u(Y,"await")!==void 0&&!F){let G=u(Y,"await")===!0?"!":"&";throw Error(`Cannot use ${G} sigil in variable declaration '${L(Y)}'.`)}if(Y instanceof String&&u(Y,"await")===!0&&F)this.nextFunctionIsVoid=!0;let J=this.is(Y,"array",0),D=this.is(Y,"object",0);if(J||D){let G=this.generate($,"value");return D&&Z==="statement"?`(${G})`:G}if(Array.isArray($)&&Q==="="&&$[0]==="control"){let[,G,q,R]=$,w=L(G),I=R[0]==="return",P=this.generate(Y,"value"),E=this.generate(q,"value"),_=R.length>1?R[1]:null,O=I?_?`return ${this.generate(_,"value")}`:"return":_?`throw ${this.generate(_,"value")}`:"throw new Error()";if(Z==="value"){if(w==="??")return`(() => { const __v = ${E}; if (__v == null) ${O}; return (${P} = __v); })()`;if(w==="||")return`(() => { const __v = ${E}; if (!__v) ${O}; return (${P} = __v); })()`;return`(() => { const __v = ${E}; if (__v) ${O}; return (${P} = __v); })()`}if(w==="??")return`if ((${P} = ${E}) == null) ${O}`;if(w==="||")return`if (!(${P} = ${E})) ${O}`;return`if ((${P} = ${E})) ${O}`}if(this.is(Y,"array")){let G=Y.slice(1).findIndex((q)=>this.is(q,"...")||q==="...");if(G!==-1&&G<Y.length-2){let q=Y.slice(1),R=q.slice(G+1),w=R.length;if(w>0){let I=this.generate($,"value"),E=q.slice(0,G).map((T)=>T===","?"":typeof T==="string"?T:this.generate(T,"value")).join(", "),_=R.map((T)=>T===","?"":typeof T==="string"?T:this.generate(T,"value")).join(", ");this.helpers.add("slice"),q.forEach((T)=>{if(T===","||T==="...")return;if(typeof T==="string")this.programVars.add(T);else if(this.is(T,"...")&&typeof T[1]==="string")this.programVars.add(T[1])});let O=q[G],B=this.is(O,"...")?O[1]:null,N=[];if(E)N.push(`[${E}] = ${I}`);if(B)N.push(`[...${B}] = ${I}.slice(${G}, -${w})`);return N.push(`[${_}] = slice.call(${I}, -${w})`),N.join(", ")}}}if(Z==="statement"&&A==="="&&Array.isArray($)&&($[0]==="||"||$[0]==="&&")&&$.length===3){let[G,q,R]=$;if(this.is(R,"if")&&R.length===3){let[,w,I]=R,P=Array.isArray(I)&&I.length===1?I[0]:I,E=[G,q,P],_=this.generate(Y,"value"),O=this.generate(w,"value"),B=this.generate(E,"value");return`if (${O}) ${_} = ${B}`}}if(Z==="statement"&&A==="="&&Array.isArray($)&&$.length===3){let[G,q,R]=$,w=Array.isArray(R)&&R.length===1&&(!Array.isArray(R[0])||R[0][0]!=="block");if(G==="if"&&w){let I=Array.isArray(R)&&R.length===1?R[0]:R,P=this.generate(Y,"value"),E=this.unwrapLogical(this.generate(q,"value")),_=this.generate(I,"value");return`if (${E}) ${P} = ${_}`}}let X;if(Y instanceof String&&u(Y,"await")!==void 0)X=L(Y);else if(typeof Y==="string"&&this.reactiveVars?.has(Y))X=`${Y}.value`;else this.suppressReactiveUnwrap=!0,X=this.generate(Y,"value"),this.suppressReactiveUnwrap=!1;let z=this.generate($,"value");if(!this.is($,"object"))z=this.unwrap(z);let K=Z==="value",H=Z==="statement"&&this.is(Y,"object");if(K||H)return`(${X} ${Q} ${z})`;return`${X} ${Q} ${z}`}generatePropertyAccess(A,U,Z,W){let[Y,$]=U;if(this._atParamMap&&Y==="this"){let D=this._atParamMap.get(L($));if(D)return D}this.suppressReactiveUnwrap=!0;let Q=this.generate(Y,"value");this.suppressReactiveUnwrap=!1;let J=j.NUMBER_LITERAL_RE.test(Q)||Q.startsWith("await ")||(this.is(Y,"object")||this.is(Y,"yield"))?`(${Q})`:Q;if(u($,"await")===!0)return`await ${J}.${L($)}()`;if(u($,"predicate"))return`(${J}.${L($)} != null)`;return`${J}.${L($)}`}generateOptionalProperty(A,U){let[Z,W]=U;return`${this.generate(Z,"value")}?.${W}`}generateRegexIndex(A,U){let[Z,W,Y]=U;this.helpers.add("toMatchable"),this.programVars.add("_");let $=this.generate(Z,"value"),Q=this.generate(W,"value"),F=Y!==null?this.generate(Y,"value"):"0",J=Q.includes("/m")?", true":"";return`(_ = toMatchable(${$}${J}).match(${Q})) && _[${F}]`}generateIndexAccess(A,U){let[Z,W]=U;if(this.is(W,"..")||this.is(W,"...")){let Y=W[0]==="..",$=this.generate(Z,"value"),[Q,F]=W.slice(1);if(Q===null&&F===null)return`${$}.slice()`;if(Q===null){if(Y&&this.is(F,"-",1)&&(L(F[1])??F[1])==1)return`${$}.slice(0)`;let X=this.generate(F,"value");return Y?`${$}.slice(0, +${X} + 1 || 9e9)`:`${$}.slice(0, ${X})`}if(F===null)return`${$}.slice(${this.generate(Q,"value")})`;let J=this.generate(Q,"value");if(Y&&this.is(F,"-",1)&&(L(F[1])??F[1])==1)return`${$}.slice(${J})`;let D=this.generate(F,"value");return Y?`${$}.slice(${J}, +${D} + 1 || 9e9)`:`${$}.slice(${J}, ${D})`}if(this.is(W,"-",1)){let Y=L(W[1])??W[1];if(typeof Y==="number"||typeof Y==="string"&&/^\d+$/.test(Y))return`${this.generate(Z,"value")}.at(-${Y})`}return`${this.generate(Z,"value")}[${this.unwrap(this.generate(W,"value"))}]`}generateOptIndex(A,U){let[Z,W]=U;if(this.is(W,"-",1)){let Y=L(W[1])??W[1];if(typeof Y==="number"||typeof Y==="string"&&/^\d+$/.test(Y))return`${this.generate(Z,"value")}?.at(-${Y})`}return`${this.generate(Z,"value")}?.[${this.generate(W,"value")}]`}generateOptCall(A,U){let[Z,...W]=U;return`${this.generate(Z,"value")}?.(${W.map((Y)=>this.generate(Y,"value")).join(", ")})`}generateDef(A,U,Z,W){let[Y,$,Q]=U,F=u(Y,"await")===!0,J=L(Y),D=this.generateParamList($),X=this.generateFunctionBody(Q,$,F),z=this.containsAwait(Q),M=this.containsYield(Q);return`${z?"async ":""}function${M?"*":""} ${J}(${D}) ${X}`}generateThinArrow(A,U,Z,W){let[Y,$]=U;if((!Y||Array.isArray(Y)&&Y.length===0)&&this.containsIt($))Y=["it"];let Q=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let F=this.generateParamList(Y),J=this.generateFunctionBody($,Y,Q),D=this.containsAwait($),X=this.containsYield($),z=`${D?"async ":""}function${X?"*":""}(${F}) ${J}`;return Z==="value"?`(${z})`:z}generateFatArrow(A,U,Z,W){let[Y,$]=U;if((!Y||Array.isArray(Y)&&Y.length===0)&&this.containsIt($))Y=["it"];let Q=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let F=this.generateParamList(Y),D=Y.length===1&&typeof Y[0]==="string"&&!F.includes("=")&&!F.includes("...")&&!F.includes("[")&&!F.includes("{")?F:`(${F})`,z=this.containsAwait($)?"async ":"";if(!Q){if(this.is($,"block")&&$.length===2){let K=$[1];if(!Array.isArray(K)||K[0]!=="return")return`${z}${D} => ${this.generate(K,"value")}`}if(!Array.isArray($)||$[0]!=="block")return`${z}${D} => ${this.generate($,"value")}`}let M=this.generateFunctionBody($,Y,Q);return`${z}${D} => ${M}`}generateReturn(A,U,Z,W){if(U.length===0)return"return";let[Y]=U;if(this.sideEffectOnly)return"return";if(this.is(Y,"if")){let[,$,Q,...F]=Y;if(F.length===0){let J=Array.isArray(Q)&&Q.length===1?Q[0]:Q;return`if (${this.generate($,"value")}) return ${this.generate(J,"value")}`}}if(this.is(Y,"new")&&Array.isArray(Y[1])&&Y[1][0]==="if"){let[,$,Q]=Y[1],F=Array.isArray(Q)&&Q.length===1?Q[0]:Q;return`if (${this.generate($,"value")}) return ${this.generate(["new",F],"value")}`}return`return ${this.generate(Y,"value")}`}generateState(A,U){let[Z,W]=U;this.usesReactivity=!0;let Y=L(Z)??Z;if(!this.reactiveVars)this.reactiveVars=new Set;return this.reactiveVars.add(Y),`const ${Y} = __state(${this.generate(W,"value")})`}generateComputed(A,U){let[Z,W]=U;if(this.usesReactivity=!0,!this.reactiveVars)this.reactiveVars=new Set;let Y=L(Z)??Z;if(this.reactiveVars.add(Y),this.is(W,"block")&&W.length>2)return`const ${Y} = __computed(() => ${this.generateFunctionBody(W)})`;return`const ${Y} = __computed(() => ${this.generate(W,"value")})`}generateReadonly(A,U){let[Z,W]=U;return`const ${L(Z)??Z} = ${this.generate(W,"value")}`}generateEffect(A,U){let[Z,W]=U;this.usesReactivity=!0;let Y;if(this.is(W,"block"))Y=`{
149
149
  ${this.withIndent(()=>this.formatStatements(W.slice(1))).join(`
150
150
  `)}
151
- ${this.indent()}}`;else if(this.is(W,"->")||this.is(W,"=>")){let Q=this.generate(W,"value");if(Z)return`const ${L(Z)??this.generate(Z,"value")} = __effect(${Q})`;return`__effect(${Q})`}else A=`{ ${this.generate(W,"value")}; }`;let $=`__effect(() => ${A})`;if(Z)return`const ${L(Z)??this.generate(Z,"value")} = ${$}`;return $}generateBreak(){return"break"}generateContinue(){return"continue"}generateExistential(Y,U){return`(${this.generate(U[0],"value")} != null)`}generateTernary(Y,U,Z){let[W,A,$]=U;if((A?.[0]?.valueOf?.()??A?.[0])==="="&&Array.isArray(A)){let F=this.generate(A[1],"value"),J=this.generate(A[2],"value"),D=this.generate($,"value");return`${F} = (${this.unwrap(this.generate(W,"value"))} ? ${J} : ${D})`}return`(${this.unwrap(this.generate(W,"value"))} ? ${this.generate(A,"value")} : ${this.generate($,"value")})`}generatePipe(Y,U){let[Z,W]=U,A=this.generate(Z,"value");if(Array.isArray(W)&&W.length>1){let $=W[0];if(Array.isArray($)||typeof $==="string"&&/^[a-zA-Z_$]/.test($)){let F=this.generate($,"value"),J=W.slice(1).map((D)=>this.generate(D,"value"));return`${F}(${A}, ${J.join(", ")})`}}return`${this.generate(W,"value")}(${A})`}generateLoop(Y,U){return`while (true) ${this.generateLoopBody(U[0])}`}generateLoopN(Y,U){let[Z,W]=U;return`for (let it = 0; it < ${this.generate(Z,"value")}; it++) ${this.generateLoopBody(W)}`}generateAwait(Y,U){return`await ${this.generate(U[0],"value")}`}generateYield(Y,U){return U.length===0?"yield":`yield ${this.generate(U[0],"value")}`}generateYieldFrom(Y,U){return`yield* ${this.generate(U[0],"value")}`}generateIf(Y,U,Z,W){let[A,$,...Q]=U;return Z==="value"?this.generateIfAsExpression(A,$,Q):this.generateIfAsStatement(A,$,Q)}generateForIn(Y,U,Z,W){let[A,$,Q,F,J]=U;if(Z==="value"&&this.comprehensionDepth===0){let q=["for-in",A,$,Q];return this.generate(["comprehension",J,[q],F?[F]:[]],Z)}let D=Array.isArray(A)?A:[A],X=D.length===0,[z,M]=X?["_i",null]:D,K=this.is(z,"array")||this.is(z,"object")?this.generateDestructuringPattern(z):z;if(Q&&Q!==null){let q=this.generate($,"value"),R=M||"_i",w=this.generate(Q,"value"),B=this.is(Q,"-",1),P=B&&(Q[1]==="1"||Q[1]===1||L(Q[1])==="1"),E=!B&&(Q==="1"||Q===1||L(Q)==="1"),_;if(P)_=`for (let ${R} = ${q}.length - 1; ${R} >= 0; ${R}--) `;else if(E)_=`for (let ${R} = 0; ${R} < ${q}.length; ${R}++) `;else if(B)_=`for (let ${R} = ${q}.length - 1; ${R} >= 0; ${R} += ${w}) `;else _=`for (let ${R} = 0; ${R} < ${q}.length; ${R} += ${w}) `;if(this.is(J,"block")){let O=J.slice(1);this.indentLevel++;let I=[];if(!X)I.push(`const ${K} = ${q}[${R}];`);if(F)I.push(`if (${this.generate(F,"value")}) {`),this.indentLevel++,I.push(...this.formatStatements(O)),this.indentLevel--,I.push(this.indent()+"}");else I.push(...O.map((N)=>this.addSemicolon(N,this.generate(N,"statement"))));return this.indentLevel--,_+`{
152
- ${I.map((N)=>this.indent()+N).join(`
151
+ ${this.indent()}}`;else if(this.is(W,"->")||this.is(W,"=>")){let Q=this.generate(W,"value");if(Z)return`const ${L(Z)??this.generate(Z,"value")} = __effect(${Q})`;return`__effect(${Q})`}else Y=`{ ${this.generate(W,"value")}; }`;let $=`__effect(() => ${Y})`;if(Z)return`const ${L(Z)??this.generate(Z,"value")} = ${$}`;return $}generateBreak(){return"break"}generateContinue(){return"continue"}generateExistential(A,U){return`(${this.generate(U[0],"value")} != null)`}generateTernary(A,U,Z){let[W,Y,$]=U;if((Y?.[0]?.valueOf?.()??Y?.[0])==="="&&Array.isArray(Y)){let F=this.generate(Y[1],"value"),J=this.generate(Y[2],"value"),D=this.generate($,"value");return`${F} = (${this.unwrap(this.generate(W,"value"))} ? ${J} : ${D})`}return`(${this.unwrap(this.generate(W,"value"))} ? ${this.generate(Y,"value")} : ${this.generate($,"value")})`}generatePipe(A,U){let[Z,W]=U,Y=this.generate(Z,"value");if(Array.isArray(W)&&W.length>1){let $=W[0];if(Array.isArray($)||typeof $==="string"&&/^[a-zA-Z_$]/.test($)){let F=this.generate($,"value"),J=W.slice(1).map((D)=>this.generate(D,"value"));return`${F}(${Y}, ${J.join(", ")})`}}return`${this.generate(W,"value")}(${Y})`}generateLoop(A,U){return`while (true) ${this.generateLoopBody(U[0])}`}generateLoopN(A,U){let[Z,W]=U;return`for (let it = 0; it < ${this.generate(Z,"value")}; it++) ${this.generateLoopBody(W)}`}generateAwait(A,U){return`await ${this.generate(U[0],"value")}`}generateYield(A,U){return U.length===0?"yield":`yield ${this.generate(U[0],"value")}`}generateYieldFrom(A,U){return`yield* ${this.generate(U[0],"value")}`}generateIf(A,U,Z,W){let[Y,$,...Q]=U;return Z==="value"?this.generateIfAsExpression(Y,$,Q):this.generateIfAsStatement(Y,$,Q)}generateForIn(A,U,Z,W){let[Y,$,Q,F,J]=U;if(Z==="value"&&this.comprehensionDepth===0){let q=["for-in",Y,$,Q];return this.generate(["comprehension",J,[q],F?[F]:[]],Z)}let D=Array.isArray(Y)?Y:[Y],X=D.length===0,[z,M]=X?["_i",null]:D,K=this.is(z,"array")||this.is(z,"object")?this.generateDestructuringPattern(z):z;if(Q&&Q!==null){let q=this.generate($,"value"),R=M||"_i",w=this.generate(Q,"value"),I=this.is(Q,"-",1),P=I&&(Q[1]==="1"||Q[1]===1||L(Q[1])==="1"),E=!I&&(Q==="1"||Q===1||L(Q)==="1"),_;if(P)_=`for (let ${R} = ${q}.length - 1; ${R} >= 0; ${R}--) `;else if(E)_=`for (let ${R} = 0; ${R} < ${q}.length; ${R}++) `;else if(I)_=`for (let ${R} = ${q}.length - 1; ${R} >= 0; ${R} += ${w}) `;else _=`for (let ${R} = 0; ${R} < ${q}.length; ${R} += ${w}) `;if(this.is(J,"block")){let O=J.slice(1);this.indentLevel++;let B=[];if(!X)B.push(`const ${K} = ${q}[${R}];`);if(F)B.push(`if (${this.generate(F,"value")}) {`),this.indentLevel++,B.push(...this.formatStatements(O)),this.indentLevel--,B.push(this.indent()+"}");else B.push(...O.map((N)=>this.addSemicolon(N,this.generate(N,"statement"))));return this.indentLevel--,_+`{
152
+ ${B.map((N)=>this.indent()+N).join(`
153
153
  `)}
154
154
  ${this.indent()}}`}if(X)return F?_+`{ if (${this.generate(F,"value")}) ${this.generate(J,"statement")}; }`:_+`{ ${this.generate(J,"statement")}; }`;return F?_+`{ const ${K} = ${q}[${R}]; if (${this.generate(F,"value")}) ${this.generate(J,"statement")}; }`:_+`{ const ${K} = ${q}[${R}]; ${this.generate(J,"statement")}; }`}if(M){let q=this.generate($,"value"),R=`for (let ${M} = 0; ${M} < ${q}.length; ${M}++) `;if(this.is(J,"block")){if(R+=`{
155
155
  `,this.indentLevel++,R+=this.indent()+`const ${K} = ${q}[${M}];
@@ -159,33 +159,33 @@ ${this.indent()}}`}if(X)return F?_+`{ if (${this.generate(F,"value")}) ${this.ge
159
159
  `,this.indentLevel--,R+=this.indent()+`}
160
160
  `;else R+=this.formatStatements(J.slice(1)).join(`
161
161
  `)+`
162
- `;this.indentLevel--,R+=this.indent()+"}"}else R+=F?`{ const ${K} = ${q}[${M}]; if (${this.unwrap(this.generate(F,"value"))}) ${this.generate(J,"statement")}; }`:`{ const ${K} = ${q}[${M}]; ${this.generate(J,"statement")}; }`;return R}let H=Array.isArray($)&&$[0];if(H instanceof String)H=L(H);if(H===".."||H==="..."){let q=H==="...",[R,w]=$.slice(1),B=(P)=>typeof P==="number"||typeof P==="string"&&!P.includes("(")||P instanceof String&&!L(P).includes("(")||this.is(P,".");if(B(R)&&B(w)){let P=this.generate(R,"value"),E=this.generate(w,"value"),_=q?"<":"<=",O=Q?`${K} += ${this.generate(Q,"value")}`:`${K}++`,I=`for (let ${K} = ${P}; ${K} ${_} ${E}; ${O}) `;return I+=F?this.generateLoopBodyWithGuard(J,F):this.generateLoopBody(J),I}}let G=`for (const ${K} of ${this.generate($,"value")}) `;return G+=F?this.generateLoopBodyWithGuard(J,F):this.generateLoopBody(J),G}generateForOf(Y,U,Z,W){let[A,$,Q,F,J]=U,[D,X]=Array.isArray(A)?A:[A],z=this.generate($,"value"),M=`for (const ${D} in ${z}) `;if(Q&&!X&&!F){if(this.is(J,"block")){this.indentLevel++;let K=[`if (!Object.hasOwn(${z}, ${D})) continue;`,...J.slice(1).map((H)=>this.addSemicolon(H,this.generate(H,"statement")))];return this.indentLevel--,M+`{
162
+ `;this.indentLevel--,R+=this.indent()+"}"}else R+=F?`{ const ${K} = ${q}[${M}]; if (${this.unwrap(this.generate(F,"value"))}) ${this.generate(J,"statement")}; }`:`{ const ${K} = ${q}[${M}]; ${this.generate(J,"statement")}; }`;return R}let H=Array.isArray($)&&$[0];if(H instanceof String)H=L(H);if(H===".."||H==="..."){let q=H==="...",[R,w]=$.slice(1),I=(P)=>typeof P==="number"||typeof P==="string"&&!P.includes("(")||P instanceof String&&!L(P).includes("(")||this.is(P,".");if(I(R)&&I(w)){let P=this.generate(R,"value"),E=this.generate(w,"value"),_=q?"<":"<=",O=Q?`${K} += ${this.generate(Q,"value")}`:`${K}++`,B=`for (let ${K} = ${P}; ${K} ${_} ${E}; ${O}) `;return B+=F?this.generateLoopBodyWithGuard(J,F):this.generateLoopBody(J),B}}let G=`for (const ${K} of ${this.generate($,"value")}) `;return G+=F?this.generateLoopBodyWithGuard(J,F):this.generateLoopBody(J),G}generateForOf(A,U,Z,W){let[Y,$,Q,F,J]=U,[D,X]=Array.isArray(Y)?Y:[Y],z=this.generate($,"value"),M=`for (const ${D} in ${z}) `;if(Q&&!X&&!F){if(this.is(J,"block")){this.indentLevel++;let K=[`if (!Object.hasOwn(${z}, ${D})) continue;`,...J.slice(1).map((H)=>this.addSemicolon(H,this.generate(H,"statement")))];return this.indentLevel--,M+`{
163
163
  ${K.map((H)=>this.indent()+H).join(`
164
164
  `)}
165
165
  ${this.indent()}}`}return M+`{ if (!Object.hasOwn(${z}, ${D})) continue; ${this.generate(J,"statement")}; }`}if(X){if(this.is(J,"block")){let H=J.slice(1);this.indentLevel++;let G=[];if(Q)G.push(`if (!Object.hasOwn(${z}, ${D})) continue;`);if(G.push(`const ${X} = ${z}[${D}];`),F)G.push(`if (${this.generate(F,"value")}) {`),this.indentLevel++,G.push(...H.map((q)=>this.addSemicolon(q,this.generate(q,"statement")))),this.indentLevel--,G.push(this.indent()+"}");else G.push(...H.map((q)=>this.addSemicolon(q,this.generate(q,"statement"))));return this.indentLevel--,M+`{
166
166
  ${G.map((q)=>this.indent()+q).join(`
167
167
  `)}
168
- ${this.indent()}}`}let K="";if(Q)K+=`if (!Object.hasOwn(${z}, ${D})) continue; `;if(K+=`const ${X} = ${z}[${D}]; `,F)K+=`if (${this.generate(F,"value")}) `;return K+=`${this.generate(J,"statement")};`,M+`{ ${K} }`}return M+=F?this.generateLoopBodyWithGuard(J,F):this.generateLoopBody(J),M}generateForAs(Y,U,Z,W){let A=Array.isArray(U[0])?U[0]:[U[0]],[$]=A,Q=U[1],F=U[2],J=U[3],D=U[4],X=!1,z=[];if(this.is($,"array")){let q=$.slice(1),R=q.findIndex((w)=>this.is(w,"...")||w==="...");if(R!==-1&&R<q.length-1){X=!0;let w=q.slice(R+1),B=w.length,P=q.slice(0,R),E=q[R],_=this.is(E,"...")?E[1]:"_rest",O=P.map((T)=>T===","?"":typeof T==="string"?T:this.generate(T,"value")).join(", "),I=O?`${O}, ...${_}`:`...${_}`,N=w.map((T)=>T===","?"":typeof T==="string"?T:this.generate(T,"value")).join(", ");z.push(`[${I}] = _item`),z.push(`[${N}] = ${_}.splice(-${B})`),this.helpers.add("slice"),q.forEach((T)=>{if(T===","||T==="...")return;if(typeof T==="string")this.programVars.add(T);else if(this.is(T,"...")&&typeof T[1]==="string")this.programVars.add(T[1])})}}let M=this.generate(Q,"value"),K=F?"await ":"",H;if(X)H="_item";else if(this.is($,"array")||this.is($,"object"))H=this.generateDestructuringPattern($);else H=$;let G=`for ${K}(const ${H} of ${M}) `;if(X&&z.length>0){let q=this.unwrapBlock(D),R=this.withIndent(()=>[...z.map((w)=>this.indent()+w+";"),...this.formatStatements(q)]);G+=`{
168
+ ${this.indent()}}`}let K="";if(Q)K+=`if (!Object.hasOwn(${z}, ${D})) continue; `;if(K+=`const ${X} = ${z}[${D}]; `,F)K+=`if (${this.generate(F,"value")}) `;return K+=`${this.generate(J,"statement")};`,M+`{ ${K} }`}return M+=F?this.generateLoopBodyWithGuard(J,F):this.generateLoopBody(J),M}generateForAs(A,U,Z,W){let Y=Array.isArray(U[0])?U[0]:[U[0]],[$]=Y,Q=U[1],F=U[2],J=U[3],D=U[4],X=!1,z=[];if(this.is($,"array")){let q=$.slice(1),R=q.findIndex((w)=>this.is(w,"...")||w==="...");if(R!==-1&&R<q.length-1){X=!0;let w=q.slice(R+1),I=w.length,P=q.slice(0,R),E=q[R],_=this.is(E,"...")?E[1]:"_rest",O=P.map((T)=>T===","?"":typeof T==="string"?T:this.generate(T,"value")).join(", "),B=O?`${O}, ...${_}`:`...${_}`,N=w.map((T)=>T===","?"":typeof T==="string"?T:this.generate(T,"value")).join(", ");z.push(`[${B}] = _item`),z.push(`[${N}] = ${_}.splice(-${I})`),this.helpers.add("slice"),q.forEach((T)=>{if(T===","||T==="...")return;if(typeof T==="string")this.programVars.add(T);else if(this.is(T,"...")&&typeof T[1]==="string")this.programVars.add(T[1])})}}let M=this.generate(Q,"value"),K=F?"await ":"",H;if(X)H="_item";else if(this.is($,"array")||this.is($,"object"))H=this.generateDestructuringPattern($);else H=$;let G=`for ${K}(const ${H} of ${M}) `;if(X&&z.length>0){let q=this.unwrapBlock(D),R=this.withIndent(()=>[...z.map((w)=>this.indent()+w+";"),...this.formatStatements(q)]);G+=`{
169
169
  ${R.join(`
170
170
  `)}
171
- ${this.indent()}}`}else G+=J?this.generateLoopBodyWithGuard(D,J):this.generateLoopBody(D);return G}generateWhile(Y,U){let Z=U[0],W=U.length===3?U[1]:null,A=U[U.length-1];return`while (${this.unwrap(this.generate(Z,"value"))}) `+(W?this.generateLoopBodyWithGuard(A,W):this.generateLoopBody(A))}generateRange(Y,U){if(Y==="..."){if(U.length===1)return`...${this.generate(U[0],"value")}`;let[Q,F]=U,J=this.generate(Q,"value"),D=this.generate(F,"value");return`((s, e) => Array.from({length: Math.max(0, Math.abs(e - s))}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${J}, ${D})`}let[Z,W]=U,A=this.generate(Z,"value"),$=this.generate(W,"value");return`((s, e) => Array.from({length: Math.abs(e - s) + 1}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${A}, ${$})`}generateNot(Y,U){let[Z]=U;if(typeof Z==="string"||Z instanceof String)return`!${this.generate(Z,"value")}`;if(Array.isArray(Z)){if([".","?.","[]","optindex","optcall"].includes(Z[0]))return`!${this.generate(Z,"value")}`}let W=this.generate(Z,"value");return W.startsWith("(")?`!${W}`:`(!${W})`}generateBitwiseNot(Y,U){return`(~${this.generate(U[0],"value")})`}generateIncDec(Y,U){let[Z,W]=U,A=this.generate(Z,"value");return W?`(${A}${Y})`:`(${Y}${A})`}generateTypeof(Y,U){return`typeof ${this.generate(U[0],"value")}`}generateDelete(Y,U){return`(delete ${this.generate(U[0],"value")})`}generateInstanceof(Y,U,Z,W){let[A,$]=U,Q=u(W[0],"invert"),F=`(${this.generate(A,"value")} instanceof ${this.generate($,"value")})`;return Q?`(!${F})`:F}generateIn(Y,U,Z,W){let[A,$]=U,Q=this.generate(A,"value"),F=u(W[0],"invert");if(this.is($,"object")){let X=`(${Q} in ${this.generate($,"value")})`;return F?`(!${X})`:X}let J=this.generate($,"value"),D=`(Array.isArray(${J}) || typeof ${J} === 'string' ? ${J}.includes(${Q}) : (${Q} in ${J}))`;return F?`(!${D})`:D}generateOf(Y,U,Z,W){let[A,$]=U,Q=this.generate(A,"value"),F=this.generate($,"value"),J=u(W[0],"invert"),D=`(${Q} in ${F})`;return J?`(!${D})`:D}generateRegexMatch(Y,U){let[Z,W]=U;this.helpers.add("toMatchable"),this.programVars.add("_");let A=this.generate(W,"value"),$=A.includes("/m")?", true":"";return`(_ = toMatchable(${this.generate(Z,"value")}${$}).match(${A}))`}generateNew(Y,U){let[Z]=U;if(this.is(Z,".")||this.is(Z,"?.")){let[W,A,$]=Z;if(Array.isArray(A)&&!A[0].startsWith)return`(${this.generate(["new",A],"value")}).${$}`;return`new ${this.generate(A,"value")}.${$}`}if(Array.isArray(Z)){let[W,...A]=Z;return`new ${this.generate(W,"value")}(${A.map(($)=>this.unwrap(this.generate($,"value"))).join(", ")})`}return`new ${this.generate(Z,"value")}()`}generateLogicalAnd(Y,U,Z,W){let A=this.flattenBinaryChain(W).slice(1);if(A.length===0)return"true";if(A.length===1)return this.generate(A[0],"value");return`(${A.map(($)=>this.generate($,"value")).join(" && ")})`}generateLogicalOr(Y,U,Z,W){let A=this.flattenBinaryChain(W).slice(1);if(A.length===0)return"true";if(A.length===1)return this.generate(A[0],"value");return`(${A.map(($)=>this.generate($,"value")).join(" || ")})`}generateArray(Y,U){let Z=U.length>0&&U[U.length-1]===",",W=U.map((A)=>{if(A===",")return"";if(A==="...")return"";if(this.is(A,"..."))return`...${this.generate(A[1],"value")}`;return this.generate(A,"value")}).join(", ");return Z?`[${W},]`:`[${W}]`}generateObject(Y,U,Z){if(U.length===1&&Array.isArray(U[0])&&Array.isArray(U[0][1])&&U[0][1][0]==="comprehension"){let[A,$]=U[0],[,Q,F,J]=$;return this.generate(["object-comprehension",A,Q,F,J],Z)}return`{${U.map((A)=>{if(this.is(A,"..."))return`...${this.generate(A[1],"value")}`;let[$,Q,F]=A,J;if(this.is($,"dynamicKey"))J=`[${this.generate($[1],"value")}]`;else if(this.is($,"str"))J=`[${this.generate($,"value")}]`;else this.suppressReactiveUnwrap=!0,J=this.generate($,"value"),this.suppressReactiveUnwrap=!1;let D=this.generate(Q,"value");if(F==="=")return`${J} = ${D}`;if(F===":")return`${J}: ${D}`;if(J===D&&!Array.isArray($))return J;return`${J}: ${D}`}).join(", ")}}`}generateBlock(Y,U,Z){if(Z==="statement")return`{
171
+ ${this.indent()}}`}else G+=J?this.generateLoopBodyWithGuard(D,J):this.generateLoopBody(D);return G}generateWhile(A,U){let Z=U[0],W=U.length===3?U[1]:null,Y=U[U.length-1];return`while (${this.unwrap(this.generate(Z,"value"))}) `+(W?this.generateLoopBodyWithGuard(Y,W):this.generateLoopBody(Y))}generateRange(A,U){if(A==="..."){if(U.length===1)return`...${this.generate(U[0],"value")}`;let[Q,F]=U,J=this.generate(Q,"value"),D=this.generate(F,"value");return`((s, e) => Array.from({length: Math.max(0, Math.abs(e - s))}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${J}, ${D})`}let[Z,W]=U,Y=this.generate(Z,"value"),$=this.generate(W,"value");return`((s, e) => Array.from({length: Math.abs(e - s) + 1}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${Y}, ${$})`}generateNot(A,U){let[Z]=U;if(typeof Z==="string"||Z instanceof String)return`!${this.generate(Z,"value")}`;if(Array.isArray(Z)){if([".","?.","[]","optindex","optcall"].includes(Z[0]))return`!${this.generate(Z,"value")}`}let W=this.generate(Z,"value");return W.startsWith("(")?`!${W}`:`(!${W})`}generateBitwiseNot(A,U){return`(~${this.generate(U[0],"value")})`}generateIncDec(A,U){let[Z,W]=U,Y=this.generate(Z,"value");return W?`(${Y}${A})`:`(${A}${Y})`}generateTypeof(A,U){return`typeof ${this.generate(U[0],"value")}`}generateDelete(A,U){return`(delete ${this.generate(U[0],"value")})`}generateInstanceof(A,U,Z,W){let[Y,$]=U,Q=u(W[0],"invert"),F=`(${this.generate(Y,"value")} instanceof ${this.generate($,"value")})`;return Q?`(!${F})`:F}generateIn(A,U,Z,W){let[Y,$]=U,Q=this.generate(Y,"value"),F=u(W[0],"invert");if(this.is($,"object")){let X=`(${Q} in ${this.generate($,"value")})`;return F?`(!${X})`:X}let J=this.generate($,"value"),D=`(Array.isArray(${J}) || typeof ${J} === 'string' ? ${J}.includes(${Q}) : (${Q} in ${J}))`;return F?`(!${D})`:D}generateOf(A,U,Z,W){let[Y,$]=U,Q=this.generate(Y,"value"),F=this.generate($,"value"),J=u(W[0],"invert"),D=`(${Q} in ${F})`;return J?`(!${D})`:D}generateRegexMatch(A,U){let[Z,W]=U;this.helpers.add("toMatchable"),this.programVars.add("_");let Y=this.generate(W,"value"),$=Y.includes("/m")?", true":"";return`(_ = toMatchable(${this.generate(Z,"value")}${$}).match(${Y}))`}generateNew(A,U){let[Z]=U;if(this.is(Z,".")||this.is(Z,"?.")){let[W,Y,$]=Z;if(Array.isArray(Y)&&!Y[0].startsWith)return`(${this.generate(["new",Y],"value")}).${$}`;return`new ${this.generate(Y,"value")}.${$}`}if(Array.isArray(Z)){let[W,...Y]=Z;return`new ${this.generate(W,"value")}(${Y.map(($)=>this.unwrap(this.generate($,"value"))).join(", ")})`}return`new ${this.generate(Z,"value")}()`}generateLogicalAnd(A,U,Z,W){let Y=this.flattenBinaryChain(W).slice(1);if(Y.length===0)return"true";if(Y.length===1)return this.generate(Y[0],"value");return`(${Y.map(($)=>this.generate($,"value")).join(" && ")})`}generateLogicalOr(A,U,Z,W){let Y=this.flattenBinaryChain(W).slice(1);if(Y.length===0)return"true";if(Y.length===1)return this.generate(Y[0],"value");return`(${Y.map(($)=>this.generate($,"value")).join(" || ")})`}generateArray(A,U){let Z=U.length>0&&U[U.length-1]===",",W=U.map((Y)=>{if(Y===",")return"";if(Y==="...")return"";if(this.is(Y,"..."))return`...${this.generate(Y[1],"value")}`;return this.generate(Y,"value")}).join(", ");return Z?`[${W},]`:`[${W}]`}generateObject(A,U,Z){if(U.length===1&&Array.isArray(U[0])&&Array.isArray(U[0][1])&&U[0][1][0]==="comprehension"){let[Y,$]=U[0],[,Q,F,J]=$;return this.generate(["object-comprehension",Y,Q,F,J],Z)}return`{${U.map((Y)=>{if(this.is(Y,"..."))return`...${this.generate(Y[1],"value")}`;let[$,Q,F]=Y,J;if(this.is($,"dynamicKey"))J=`[${this.generate($[1],"value")}]`;else if(this.is($,"str"))J=`[${this.generate($,"value")}]`;else this.suppressReactiveUnwrap=!0,J=this.generate($,"value"),this.suppressReactiveUnwrap=!1;let D=this.generate(Q,"value");if(F==="=")return`${J} = ${D}`;if(F===":")return`${J}: ${D}`;if(J===D&&!Array.isArray($))return J;return`${J}: ${D}`}).join(", ")}}`}generateBlock(A,U,Z){if(Z==="statement")return`{
172
172
  ${this.withIndent(()=>this.formatStatements(U)).join(`
173
173
  `)}
174
174
  ${this.indent()}}`;if(U.length===0)return"undefined";if(U.length===1)return this.generate(U[0],Z);let W=U[U.length-1];if(Array.isArray(W)&&["break","continue","return","throw"].includes(W[0])){let $=U.map((Q)=>this.addSemicolon(Q,this.generate(Q,"statement")));return`{
175
175
  ${this.withIndent(()=>$.map((Q)=>this.indent()+Q).join(`
176
176
  `))}
177
- ${this.indent()}}`}return`(${U.map(($)=>this.generate($,"value")).join(", ")})`}generateTry(Y,U,Z){let W=Z==="value",A="try ",$=U[0];if(A+=W&&this.is($,"block")?this.generateBlockWithReturns($):this.generate($,"statement"),U.length>=2&&Array.isArray(U[1])&&U[1].length===2&&U[1][0]!=="block"){let[Q,F]=U[1];if(A+=" catch",Q&&(this.is(Q,"object")||this.is(Q,"array"))){A+=" (error)";let J=`(${this.generate(Q,"value")} = error)`;F=this.is(F,"block")?["block",J,...F.slice(1)]:["block",J,F]}else if(Q)A+=` (${Q})`;A+=" "+(W&&this.is(F,"block")?this.generateBlockWithReturns(F):this.generate(F,"statement"))}else if(U.length===2)A+=" finally "+this.generate(U[1],"statement");if(U.length===3)A+=" finally "+this.generate(U[2],"statement");if(W)return`(${this.containsAwait(U[0])||U[1]&&this.containsAwait(U[1])?"async ":""}() => { ${A} })()`;return A}generateThrow(Y,U,Z){let[W]=U;if(Array.isArray(W)){let $=W,Q=null;if(W[0]==="new"&&Array.isArray(W[1])&&W[1][0]==="if")Q="new",$=W[1];else if(W[0]==="if")$=W;if($[0]==="if"){let[,F,J]=$,D=Array.isArray(J)&&J.length===1?J[0]:J;W=Q==="new"?["new",D]:D;let X=this.generate(F,"value"),z=`throw ${this.generate(W,"value")}`;return`if (${X}) {
177
+ ${this.indent()}}`}return`(${U.map(($)=>this.generate($,"value")).join(", ")})`}generateTry(A,U,Z){let W=Z==="value",Y="try ",$=U[0];if(Y+=W&&this.is($,"block")?this.generateBlockWithReturns($):this.generate($,"statement"),U.length>=2&&Array.isArray(U[1])&&U[1].length===2&&U[1][0]!=="block"){let[Q,F]=U[1];if(Y+=" catch",Q&&(this.is(Q,"object")||this.is(Q,"array"))){Y+=" (error)";let J=`(${this.generate(Q,"value")} = error)`;F=this.is(F,"block")?["block",J,...F.slice(1)]:["block",J,F]}else if(Q)Y+=` (${Q})`;Y+=" "+(W&&this.is(F,"block")?this.generateBlockWithReturns(F):this.generate(F,"statement"))}else if(U.length===2)Y+=" finally "+this.generate(U[1],"statement");if(U.length===3)Y+=" finally "+this.generate(U[2],"statement");if(W)return`(${this.containsAwait(U[0])||U[1]&&this.containsAwait(U[1])?"async ":""}() => { ${Y} })()`;return Y}generateThrow(A,U,Z){let[W]=U;if(Array.isArray(W)){let $=W,Q=null;if(W[0]==="new"&&Array.isArray(W[1])&&W[1][0]==="if")Q="new",$=W[1];else if(W[0]==="if")$=W;if($[0]==="if"){let[,F,J]=$,D=Array.isArray(J)&&J.length===1?J[0]:J;W=Q==="new"?["new",D]:D;let X=this.generate(F,"value"),z=`throw ${this.generate(W,"value")}`;return`if (${X}) {
178
178
  ${this.indent()} ${z};
179
- ${this.indent()}}`}}let A=`throw ${this.generate(W,"value")}`;return Z==="value"?`(() => { ${A}; })()`:A}generateControl(Y,U,Z){let[W,A,$]=U,Q=L(W),F=$[0]==="return",J=this.generate(A,"value"),D=$.length>1?$[1]:null,X=F?D?`return ${this.generate(D,"value")}`:"return":D?`throw ${this.generate(D,"value")}`:"throw new Error()",z=this.wrapForCondition(J);if(Z==="value"){if(Q==="??")return`(() => { const __v = ${J}; if (__v == null) ${X}; return __v; })()`;if(Q==="||")return`(() => { const __v = ${J}; if (!__v) ${X}; return __v; })()`;return`(() => { const __v = ${J}; if (__v) ${X}; return __v; })()`}if(Q==="??")return`if (${z} == null) ${X}`;if(Q==="||")return`if (!${z}) ${X}`;return`if (${z}) ${X}`}generateSwitch(Y,U,Z){let[W,A,$]=U;if(W===null)return this.generateSwitchAsIfChain(A,$,Z);let Q=`switch (${this.generate(W,"value")}) {
180
- `;this.indentLevel++;for(let F of A){let[,J,D]=F;for(let X of J){let z=L(X)??X,M;if(Array.isArray(z))M=this.generate(z,"value");else if(typeof z==="string"&&(z.startsWith('"')||z.startsWith("'")))M=`'${z.slice(1,-1)}'`;else M=this.generate(z,"value");Q+=this.indent()+`case ${M}:
179
+ ${this.indent()}}`}}let Y=`throw ${this.generate(W,"value")}`;return Z==="value"?`(() => { ${Y}; })()`:Y}generateControl(A,U,Z){let[W,Y,$]=U,Q=L(W),F=$[0]==="return",J=this.generate(Y,"value"),D=$.length>1?$[1]:null,X=F?D?`return ${this.generate(D,"value")}`:"return":D?`throw ${this.generate(D,"value")}`:"throw new Error()",z=this.wrapForCondition(J);if(Z==="value"){if(Q==="??")return`(() => { const __v = ${J}; if (__v == null) ${X}; return __v; })()`;if(Q==="||")return`(() => { const __v = ${J}; if (!__v) ${X}; return __v; })()`;return`(() => { const __v = ${J}; if (__v) ${X}; return __v; })()`}if(Q==="??")return`if (${z} == null) ${X}`;if(Q==="||")return`if (!${z}) ${X}`;return`if (${z}) ${X}`}generateSwitch(A,U,Z){let[W,Y,$]=U;if(W===null)return this.generateSwitchAsIfChain(Y,$,Z);let Q=`switch (${this.generate(W,"value")}) {
180
+ `;this.indentLevel++;for(let F of Y){let[,J,D]=F;for(let X of J){let z=L(X)??X,M;if(Array.isArray(z))M=this.generate(z,"value");else if(typeof z==="string"&&(z.startsWith('"')||z.startsWith("'")))M=`'${z.slice(1,-1)}'`;else M=this.generate(z,"value");Q+=this.indent()+`case ${M}:
181
181
  `}this.indentLevel++,Q+=this.generateSwitchCaseBody(D,Z),this.indentLevel--}if($)Q+=this.indent()+`default:
182
- `,this.indentLevel++,Q+=this.generateSwitchCaseBody($,Z),this.indentLevel--;if(this.indentLevel--,Q+=this.indent()+"}",Z==="value")return`(${A.some((J)=>this.containsAwait(J[2]))||$&&this.containsAwait($)?"async ":""}() => { ${Q} })()`;return Q}generateWhen(){throw Error("when clause should be handled by switch")}_forInHeader(Y,U,Z){let W=Array.isArray(Y)?Y:[Y],A=W.length===0,[$,Q]=A?["_i",null]:W,F=this.is($,"array")||this.is($,"object")?this.generateDestructuringPattern($):$;if(Z&&Z!==null){let J=Array.isArray(U)&&U[0];if(J instanceof String)J=L(J);if(J===".."||J==="..."){let w=J==="...",[B,P]=U.slice(1),E=this.generate(B,"value"),_=this.generate(P,"value"),O=this.generate(Z,"value");return{header:`for (let ${F} = ${E}; ${F} ${w?"<":"<="} ${_}; ${F} += ${O})`,setup:null}}let X=this.generate(U,"value"),z=Q||"_i",M=this.generate(Z,"value"),K=this.is(Z,"-",1),H=K&&(Z[1]==="1"||Z[1]===1||L(Z[1])==="1"),G=!K&&(Z==="1"||Z===1||L(Z)==="1"),q=H?`${z}--`:G?`${z}++`:`${z} += ${M}`;return{header:K?`for (let ${z} = ${X}.length - 1; ${z} >= 0; ${q})`:`for (let ${z} = 0; ${z} < ${X}.length; ${q})`,setup:A?null:`const ${F} = ${X}[${z}];`}}if(Q){let J=this.generate(U,"value");return{header:`for (let ${Q} = 0; ${Q} < ${J}.length; ${Q}++)`,setup:`const ${F} = ${J}[${Q}];`}}return{header:`for (const ${F} of ${this.generate(U,"value")})`,setup:null}}_forOfHeader(Y,U,Z){let W=Array.isArray(Y)?Y:[Y],[A,$]=W,Q=this.is(A,"array")||this.is(A,"object")?this.generateDestructuringPattern(A):A,F=this.generate(U,"value");return{header:`for (const ${Q} in ${F})`,own:Z,vv:$,oc:F,kvp:Q}}_forAsHeader(Y,U,Z){let W=Array.isArray(Y)?Y:[Y],[A]=W,$=this.is(A,"array")||this.is(A,"object")?this.generateDestructuringPattern(A):A;return{header:`for ${Z?"await ":""}(const ${$} of ${this.generate(U,"value")})`}}generateComprehension(Y,U,Z){let[W,A,$]=U;if(Z==="statement")return this.generateComprehensionAsLoop(W,A,$);if(this.comprehensionTarget)return this.generateComprehensionWithTarget(W,A,$,this.comprehensionTarget);let F=`(${this.containsAwait(W)?"async ":""}() => {
182
+ `,this.indentLevel++,Q+=this.generateSwitchCaseBody($,Z),this.indentLevel--;if(this.indentLevel--,Q+=this.indent()+"}",Z==="value")return`(${Y.some((J)=>this.containsAwait(J[2]))||$&&this.containsAwait($)?"async ":""}() => { ${Q} })()`;return Q}generateWhen(){throw Error("when clause should be handled by switch")}_forInHeader(A,U,Z){let W=Array.isArray(A)?A:[A],Y=W.length===0,[$,Q]=Y?["_i",null]:W,F=this.is($,"array")||this.is($,"object")?this.generateDestructuringPattern($):$;if(Z&&Z!==null){let J=Array.isArray(U)&&U[0];if(J instanceof String)J=L(J);if(J===".."||J==="..."){let w=J==="...",[I,P]=U.slice(1),E=this.generate(I,"value"),_=this.generate(P,"value"),O=this.generate(Z,"value");return{header:`for (let ${F} = ${E}; ${F} ${w?"<":"<="} ${_}; ${F} += ${O})`,setup:null}}let X=this.generate(U,"value"),z=Q||"_i",M=this.generate(Z,"value"),K=this.is(Z,"-",1),H=K&&(Z[1]==="1"||Z[1]===1||L(Z[1])==="1"),G=!K&&(Z==="1"||Z===1||L(Z)==="1"),q=H?`${z}--`:G?`${z}++`:`${z} += ${M}`;return{header:K?`for (let ${z} = ${X}.length - 1; ${z} >= 0; ${q})`:`for (let ${z} = 0; ${z} < ${X}.length; ${q})`,setup:Y?null:`const ${F} = ${X}[${z}];`}}if(Q){let J=this.generate(U,"value");return{header:`for (let ${Q} = 0; ${Q} < ${J}.length; ${Q}++)`,setup:`const ${F} = ${J}[${Q}];`}}return{header:`for (const ${F} of ${this.generate(U,"value")})`,setup:null}}_forOfHeader(A,U,Z){let W=Array.isArray(A)?A:[A],[Y,$]=W,Q=this.is(Y,"array")||this.is(Y,"object")?this.generateDestructuringPattern(Y):Y,F=this.generate(U,"value");return{header:`for (const ${Q} in ${F})`,own:Z,vv:$,oc:F,kvp:Q}}_forAsHeader(A,U,Z){let W=Array.isArray(A)?A:[A],[Y]=W,$=this.is(Y,"array")||this.is(Y,"object")?this.generateDestructuringPattern(Y):Y;return{header:`for ${Z?"await ":""}(const ${$} of ${this.generate(U,"value")})`}}generateComprehension(A,U,Z){let[W,Y,$]=U;if(Z==="statement")return this.generateComprehensionAsLoop(W,Y,$);if(this.comprehensionTarget)return this.generateComprehensionWithTarget(W,Y,$,this.comprehensionTarget);let F=`(${this.containsAwait(W)?"async ":""}() => {
183
183
  `;this.indentLevel++,this.comprehensionDepth++,F+=this.indent()+`const result = [];
184
- `;for(let X of A){let[z,M,K,H]=X;if(z==="for-in"){let{header:G,setup:q}=this._forInHeader(M,K,H);if(F+=this.indent()+G+` {
184
+ `;for(let X of Y){let[z,M,K,H]=X;if(z==="for-in"){let{header:G,setup:q}=this._forInHeader(M,K,H);if(F+=this.indent()+G+` {
185
185
  `,this.indentLevel++,q)F+=this.indent()+q+`
186
- `}else if(z==="for-of"){let{header:G,own:q,vv:R,oc:w,kvp:B}=this._forOfHeader(M,K,H);if(F+=this.indent()+G+` {
187
- `,this.indentLevel++,q)F+=this.indent()+`if (!Object.hasOwn(${w}, ${B})) continue;
188
- `;if(R)F+=this.indent()+`const ${R} = ${w}[${B}];
186
+ `}else if(z==="for-of"){let{header:G,own:q,vv:R,oc:w,kvp:I}=this._forOfHeader(M,K,H);if(F+=this.indent()+G+` {
187
+ `,this.indentLevel++,q)F+=this.indent()+`if (!Object.hasOwn(${w}, ${I})) continue;
188
+ `;if(R)F+=this.indent()+`const ${R} = ${w}[${I}];
189
189
  `}else if(z==="for-as"){let{header:G}=this._forAsHeader(M,K,X[3]);F+=this.indent()+G+` {
190
190
  `,this.indentLevel++}}for(let X of $)F+=this.indent()+`if (${this.generate(X,"value")}) {
191
191
  `,this.indentLevel++;let J=(X)=>{if(typeof X==="string"&&(X==="break"||X==="continue"))return!0;if(!Array.isArray(X))return!1;if(["break","continue","return","throw"].includes(X[0]))return!0;if(X[0]==="if")return X.slice(1).some(J);return X.some(J)},D=["for-in","for-of","for-as","while","loop"];if(this.is(W,"block"))for(let X=0;X<W.length-1;X++){let z=W[X+1];if(X!==W.length-2||J(z))F+=this.indent()+this.generate(z,"statement")+`;
@@ -195,94 +195,94 @@ ${this.indent()}}`}}let A=`throw ${this.generate(W,"value")}`;return Z==="value"
195
195
  `;else if(Array.isArray(W)&&D.includes(W[0]))F+=this.indent()+this.generate(W,"statement")+`;
196
196
  `;else F+=this.indent()+`result.push(${this.generate(W,"value")});
197
197
  `;for(let X=0;X<$.length;X++)this.indentLevel--,F+=this.indent()+`}
198
- `;for(let X=0;X<A.length;X++)this.indentLevel--,F+=this.indent()+`}
198
+ `;for(let X=0;X<Y.length;X++)this.indentLevel--,F+=this.indent()+`}
199
199
  `;return F+=this.indent()+`return result;
200
- `,this.indentLevel--,this.comprehensionDepth--,F+=this.indent()+"})()",F}generateObjectComprehension(Y,U,Z){let[W,A,$,Q]=U,F=`(() => {
200
+ `,this.indentLevel--,this.comprehensionDepth--,F+=this.indent()+"})()",F}generateObjectComprehension(A,U,Z){let[W,Y,$,Q]=U,F=`(() => {
201
201
  `;this.indentLevel++,F+=this.indent()+`const result = {};
202
202
  `;for(let J of $){let[D,X,z,M]=J;if(D==="for-of"){let[K,H]=X,G=this.generate(z,"value");if(F+=this.indent()+`for (const ${K} in ${G}) {
203
203
  `,this.indentLevel++,M)F+=this.indent()+`if (!Object.hasOwn(${G}, ${K})) continue;
204
204
  `;if(H)F+=this.indent()+`const ${H} = ${G}[${K}];
205
205
  `}}for(let J of Q)F+=this.indent()+`if (${this.generate(J,"value")}) {
206
- `,this.indentLevel++;F+=this.indent()+`result[${this.generate(W,"value")}] = ${this.generate(A,"value")};
206
+ `,this.indentLevel++;F+=this.indent()+`result[${this.generate(W,"value")}] = ${this.generate(Y,"value")};
207
207
  `;for(let J=0;J<Q.length;J++)this.indentLevel--,F+=this.indent()+`}
208
208
  `;for(let J=0;J<$.length;J++)this.indentLevel--,F+=this.indent()+`}
209
209
  `;return F+=this.indent()+`return result;
210
- `,this.indentLevel--,F+=this.indent()+"})()",F}generateClass(Y,U,Z){let[W,A,...$]=U,Q=W?`class ${W}`:"class";if(A)Q+=` extends ${this.generate(A,"value")}`;if(Q+=` {
211
- `,$.length>0&&Array.isArray($[0])){let F=$[0];if(F[0]==="block"){let J=F.slice(1),D=J.length>0&&Array.isArray(J[0])&&J[0][0]==="object";if(D&&J.length===1){let X=J[0].slice(1);this.indentLevel++;let z=[];for(let[M,K]of X){let H=this.is(M,".")&&M[1]==="this",G=this.is(M,"computed"),q=this.extractMemberName(M);if(this.is(K,"=>")&&!H&&!G&&q!=="constructor")z.push(q)}for(let[M,K]of X){let H=this.is(M,".")&&M[1]==="this",G=this.is(M,"computed"),q=this.extractMemberName(M);if(this.is(K,"->")||this.is(K,"=>")){let[,R,w]=K,B=this.containsAwait(w),P=this.containsYield(w),E=R,_=[];if(q==="constructor"){let N=!!A,T=N?new Map:null;E=R.map((S)=>{if(this.is(S,".")&&S[1]==="this"){let V=S[2],f=N?`_${V}`:V;if(_.push(`this.${V} = ${f}`),N)T.set(V,f);return f}if(this.is(S,"default")&&this.is(S[1],".")&&S[1][1]==="this"){let V=S[1][2],f=N?`_${V}`:V;if(_.push(`this.${V} = ${f}`),N)T.set(V,f);return["default",f,S[2]]}return S});for(let S of z)_.unshift(`this.${S} = this.${S}.bind(this)`);if(T?.size>0)this._atParamMap=T}let O=this.generateParamList(E),I=(H?"static ":"")+(B?"async ":"")+(P?"*":"");if(Q+=this.indent()+`${I}${q}(${O}) `,!G)this.currentMethodName=q;Q+=this.generateMethodBody(w,_,q==="constructor",E),this._atParamMap=null,this.currentMethodName=null,Q+=`
210
+ `,this.indentLevel--,F+=this.indent()+"})()",F}generateClass(A,U,Z){let[W,Y,...$]=U,Q=W?`class ${W}`:"class";if(Y)Q+=` extends ${this.generate(Y,"value")}`;if(Q+=` {
211
+ `,$.length>0&&Array.isArray($[0])){let F=$[0];if(F[0]==="block"){let J=F.slice(1),D=J.length>0&&Array.isArray(J[0])&&J[0][0]==="object";if(D&&J.length===1){let X=J[0].slice(1);this.indentLevel++;let z=[];for(let[M,K]of X){let H=this.is(M,".")&&M[1]==="this",G=this.is(M,"computed"),q=this.extractMemberName(M);if(this.is(K,"=>")&&!H&&!G&&q!=="constructor")z.push(q)}for(let[M,K]of X){let H=this.is(M,".")&&M[1]==="this",G=this.is(M,"computed"),q=this.extractMemberName(M);if(this.is(K,"->")||this.is(K,"=>")){let[,R,w]=K,I=this.containsAwait(w),P=this.containsYield(w),E=R,_=[];if(q==="constructor"){let N=!!Y,T=N?new Map:null;E=R.map((S)=>{if(this.is(S,".")&&S[1]==="this"){let f=S[2],V=N?`_${f}`:f;if(_.push(`this.${f} = ${V}`),N)T.set(f,V);return V}if(this.is(S,"default")&&this.is(S[1],".")&&S[1][1]==="this"){let f=S[1][2],V=N?`_${f}`:f;if(_.push(`this.${f} = ${V}`),N)T.set(f,V);return["default",V,S[2]]}return S});for(let S of z)_.unshift(`this.${S} = this.${S}.bind(this)`);if(T?.size>0)this._atParamMap=T}let O=this.generateParamList(E),B=(H?"static ":"")+(I?"async ":"")+(P?"*":"");if(Q+=this.indent()+`${B}${q}(${O}) `,!G)this.currentMethodName=q;Q+=this.generateMethodBody(w,_,q==="constructor",E),this._atParamMap=null,this.currentMethodName=null,Q+=`
212
212
  `}else if(H)Q+=this.indent()+`static ${q} = ${this.generate(K,"value")};
213
213
  `;else Q+=this.indent()+`${q} = ${this.generate(K,"value")};
214
- `}this.indentLevel--}else if(D){let X=J[0].slice(1),z=J.slice(1);this.indentLevel++;for(let[M,K]of X){let H=this.is(M,".")&&M[1]==="this",G=this.extractMemberName(M);if(this.is(K,"->")||this.is(K,"=>")){let[,q,R]=K,w=this.generateParamList(q),B=(H?"static ":"")+(this.containsAwait(R)?"async ":"")+(this.containsYield(R)?"*":"");Q+=this.indent()+`${B}${G}(${w}) `,this.currentMethodName=G,Q+=this.generateMethodBody(R,[],G==="constructor",q),this.currentMethodName=null,Q+=`
214
+ `}this.indentLevel--}else if(D){let X=J[0].slice(1),z=J.slice(1);this.indentLevel++;for(let[M,K]of X){let H=this.is(M,".")&&M[1]==="this",G=this.extractMemberName(M);if(this.is(K,"->")||this.is(K,"=>")){let[,q,R]=K,w=this.generateParamList(q),I=(H?"static ":"")+(this.containsAwait(R)?"async ":"")+(this.containsYield(R)?"*":"");Q+=this.indent()+`${I}${G}(${w}) `,this.currentMethodName=G,Q+=this.generateMethodBody(R,[],G==="constructor",q),this.currentMethodName=null,Q+=`
215
215
  `}else if(H)Q+=this.indent()+`static ${G} = ${this.generate(K,"value")};
216
216
  `;else Q+=this.indent()+`${G} = ${this.generate(K,"value")};
217
217
  `}for(let M of z)if(this.is(M,"class")){let[,K,H,...G]=M;if(this.is(K,".")&&K[1]==="this")Q+=this.indent()+`static ${K[2]} = ${this.generate(["class",null,H,...G],"value")};
218
218
  `}else Q+=this.indent()+this.generate(M,"statement")+`;
219
219
  `;this.indentLevel--}else{this.indentLevel++;for(let X of J)if(this.is(X,"=")&&Array.isArray(X[1])&&X[1][0]==="."&&X[1][1]==="this")Q+=this.indent()+`static ${X[1][2]} = ${this.generate(X[2],"value")};
220
220
  `;else Q+=this.indent()+this.generate(X,"statement")+`;
221
- `;this.indentLevel--}}}return Q+=this.indent()+"}",Q}generateSuper(Y,U){if(U.length===0){if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}()`;return"super"}let Z=U.map((W)=>this.unwrap(this.generate(W,"value"))).join(", ");if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}(${Z})`;return`super(${Z})`}generateImport(Y,U,Z,W){if(U.length===1){let F=`import(${this.generate(U[0],"value")})`;if(u(W[0],"await")===!0)return`(await ${F})`;return F}let[A,$]=U,Q=this.addJsExtensionAndAssertions($);if(typeof A==="string")return`import ${A} from ${Q}`;if(Array.isArray(A)){if(A[0]==="*"&&A.length===2)return`import * as ${A[1]} from ${Q}`;if(typeof A[0]==="string"&&Array.isArray(A[1])){let J=A[0],D=A[1];if(D[0]==="*"&&D.length===2)return`import ${J}, * as ${D[1]} from ${Q}`;let X=(Array.isArray(D)?D:[D]).map((z)=>Array.isArray(z)&&z.length===2?`${z[0]} as ${z[1]}`:z).join(", ");return`import ${J}, { ${X} } from ${Q}`}return`import { ${A.map((J)=>Array.isArray(J)&&J.length===2?`${J[0]} as ${J[1]}`:J).join(", ")} } from ${Q}`}return`import ${this.generate(A,"value")} from ${Q}`}generateExport(Y,U){let[Z]=U;if(Array.isArray(Z)&&Z.every((W)=>typeof W==="string"))return`export { ${Z.join(", ")} }`;if(this.is(Z,"="))return`export const ${Z[1]} = ${this.generate(Z[2],"value")}`;return`export ${this.generate(Z,"statement")}`}generateExportDefault(Y,U){let[Z]=U;if(this.is(Z,"="))return`const ${Z[1]} = ${this.generate(Z[2],"value")};
222
- export default ${Z[1]}`;return`export default ${this.generate(Z,"statement")}`}generateExportAll(Y,U){return`export * from ${this.addJsExtensionAndAssertions(U[0])}`}generateExportFrom(Y,U){let[Z,W]=U,A=this.addJsExtensionAndAssertions(W);if(Array.isArray(Z))return`export { ${Z.map((Q)=>Array.isArray(Q)&&Q.length===2?`${Q[0]} as ${Q[1]}`:Q).join(", ")} } from ${A}`;return`export ${Z} from ${A}`}generateDoIIFE(Y,U){return`(${this.generate(U[0],"statement")})()`}generateRegex(Y,U){return U.length===0?Y:this.generate(U[0],"value")}generateTaggedTemplate(Y,U){let[Z,W]=U,A=this.generate(Z,"value"),$=this.generate(W,"value");if($.startsWith("`"))return`${A}${$}`;if($.startsWith('"')||$.startsWith("'"))return`${A}\`${$.slice(1,-1)}\``;return`${A}\`${$}\``}generateString(Y,U){let Z="`";for(let W of U)if(W instanceof String)Z+=this.extractStringContent(W);else if(typeof W==="string")if(W.startsWith('"')||W.startsWith("'")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive in str:",W);Z+=W.slice(1,-1)}else Z+=W;else if(Array.isArray(W))if(W.length===1&&typeof W[0]==="string"&&!Array.isArray(W[0])){let A=W[0];Z+=/^[\d"']/.test(A)?"${"+this.generate(A,"value")+"}":"${"+A+"}"}else{let A=W.length===1&&Array.isArray(W[0])?W[0]:W;Z+="${"+this.generate(A,"value")+"}"}return Z+"`"}findPostfixConditional(Y){if(!Array.isArray(Y))return null;let U=Y[0];if(U==="if"&&Y.length===3)return{type:U,condition:Y[1],value:Y[2]};if(U==="+"||U==="-"||U==="*"||U==="/")for(let Z=1;Z<Y.length;Z++){let W=this.findPostfixConditional(Y[Z]);if(W)return W.parentOp=U,W.operandIndex=Z,W.otherOperands=Y.slice(1).filter((A,$)=>$!==Z-1),W}return null}rebuildWithoutConditional(Y){let U=Array.isArray(Y.value)&&Y.value.length===1?Y.value[0]:Y.value;if(Y.parentOp)return[Y.parentOp,...Y.otherOperands,U];return U}generateDestructuringPattern(Y){return this.formatParam(Y)}generateParamList(Y){let U=Y.findIndex((W)=>this.is(W,"expansion"));if(U!==-1){let W=Y.slice(0,U),A=Y.slice(U+1),$=W.map((Q)=>this.formatParam(Q)).join(", ");return this.expansionAfterParams=A,$?`${$}, ..._rest`:"..._rest"}let Z=Y.findIndex((W)=>this.is(W,"rest"));if(Z!==-1&&Z<Y.length-1){let W=Y.slice(0,Z),A=Y[Z],$=Y.slice(Z+1),Q=W.map((F)=>this.formatParam(F));return this.restMiddleParam={restName:A[1],afterParams:$,beforeCount:W.length},Q.length>0?`${Q.join(", ")}, ...${A[1]}`:`...${A[1]}`}return this.expansionAfterParams=null,this.restMiddleParam=null,Y.map((W)=>this.formatParam(W)).join(", ")}formatParam(Y){if(typeof Y==="string")return Y;if(Y instanceof String)return Y.valueOf();if(this.is(Y,"rest"))return`...${Y[1]}`;if(this.is(Y,"default"))return`${Y[1]} = ${this.generate(Y[2],"value")}`;if(this.is(Y,".")&&Y[1]==="this")return Y[2];if(this.is(Y,"array"))return`[${Y.slice(1).map((Z)=>{if(Z===",")return"";if(Z==="...")return"";if(this.is(Z,"..."))return`...${Z[1]}`;if(this.is(Z,"=")&&typeof Z[1]==="string")return`${Z[1]} = ${this.generate(Z[2],"value")}`;if(typeof Z==="string")return Z;return this.formatParam(Z)}).join(", ")}]`;if(this.is(Y,"object"))return`{${Y.slice(1).map((Z)=>{if(this.is(Z,"..."))return`...${Z[1]}`;if(this.is(Z,"default"))return`${Z[1]} = ${this.generate(Z[2],"value")}`;let[W,A]=Z;if(W===A)return W;return`${W}: ${A}`}).join(", ")}}`;return JSON.stringify(Y)}generateBodyWithReturns(Y,U=[],Z={}){let{sideEffectOnly:W=!1,autoAssignments:A=[],isConstructor:$=!1,hasExpansionParams:Q=!1}=Z,F=this.sideEffectOnly;this.sideEffectOnly=W;let J=new Set,D=(G)=>{if(typeof G==="string")J.add(G);else if(Array.isArray(G)){if(G[0]==="rest"||G[0]==="..."){if(typeof G[1]==="string")J.add(G[1])}else if(G[0]==="default"){if(typeof G[1]==="string")J.add(G[1])}else if(G[0]==="array"||G[0]==="object")this.collectVarsFromArray(G,J)}};if(Array.isArray(U))U.forEach(D);let X=this.collectFunctionVariables(Y),z=new Set([...X].filter((G)=>!this.programVars.has(G)&&!this.reactiveVars?.has(G)&&!J.has(G)&&!this.scopeStack.some((q)=>q.has(G)))),M=["return","throw","break","continue"],K=["for-in","for-of","for-as","while","loop"];if(this.scopeStack.push(new Set([...z,...J])),this.is(Y,"block")){let G=this.unwrapBlock(Y);if(Q&&this.expansionAfterParams?.length>0)G=[...this.expansionAfterParams.map((P,E)=>{return`const ${typeof P==="string"?P:JSON.stringify(P)} = _rest[_rest.length - ${this.expansionAfterParams.length-E}]`}),...G],this.expansionAfterParams=null;if(this.restMiddleParam){let{restName:B,afterParams:P}=this.restMiddleParam,E=P.length,_=[];if(P.forEach((O,I)=>{let N=typeof O==="string"?O:this.is(O,"default")?O[1]:JSON.stringify(O);_.push(`const ${N} = ${B}[${B}.length - ${E-I}]`)}),E>0)_.push(`${B} = ${B}.slice(0, -${E})`);G=[..._,...G],this.restMiddleParam=null}this.indentLevel++;let q=`{
221
+ `;this.indentLevel--}}}return Q+=this.indent()+"}",Q}generateSuper(A,U){if(U.length===0){if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}()`;return"super"}let Z=U.map((W)=>this.unwrap(this.generate(W,"value"))).join(", ");if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}(${Z})`;return`super(${Z})`}generateImport(A,U,Z,W){if(U.length===1){let F=`import(${this.generate(U[0],"value")})`;if(u(W[0],"await")===!0)return`(await ${F})`;return F}let[Y,$]=U,Q=this.addJsExtensionAndAssertions($);if(typeof Y==="string")return`import ${Y} from ${Q}`;if(Array.isArray(Y)){if(Y[0]==="*"&&Y.length===2)return`import * as ${Y[1]} from ${Q}`;if(typeof Y[0]==="string"&&Array.isArray(Y[1])){let J=Y[0],D=Y[1];if(D[0]==="*"&&D.length===2)return`import ${J}, * as ${D[1]} from ${Q}`;let X=(Array.isArray(D)?D:[D]).map((z)=>Array.isArray(z)&&z.length===2?`${z[0]} as ${z[1]}`:z).join(", ");return`import ${J}, { ${X} } from ${Q}`}return`import { ${Y.map((J)=>Array.isArray(J)&&J.length===2?`${J[0]} as ${J[1]}`:J).join(", ")} } from ${Q}`}return`import ${this.generate(Y,"value")} from ${Q}`}generateExport(A,U){let[Z]=U;if(Array.isArray(Z)&&Z.every((W)=>typeof W==="string"))return`export { ${Z.join(", ")} }`;if(this.is(Z,"="))return`export const ${Z[1]} = ${this.generate(Z[2],"value")}`;return`export ${this.generate(Z,"statement")}`}generateExportDefault(A,U){let[Z]=U;if(this.is(Z,"="))return`const ${Z[1]} = ${this.generate(Z[2],"value")};
222
+ export default ${Z[1]}`;return`export default ${this.generate(Z,"statement")}`}generateExportAll(A,U){return`export * from ${this.addJsExtensionAndAssertions(U[0])}`}generateExportFrom(A,U){let[Z,W]=U,Y=this.addJsExtensionAndAssertions(W);if(Array.isArray(Z))return`export { ${Z.map((Q)=>Array.isArray(Q)&&Q.length===2?`${Q[0]} as ${Q[1]}`:Q).join(", ")} } from ${Y}`;return`export ${Z} from ${Y}`}generateDoIIFE(A,U){return`(${this.generate(U[0],"statement")})()`}generateRegex(A,U){return U.length===0?A:this.generate(U[0],"value")}generateTaggedTemplate(A,U){let[Z,W]=U,Y=this.generate(Z,"value"),$=this.generate(W,"value");if($.startsWith("`"))return`${Y}${$}`;if($.startsWith('"')||$.startsWith("'"))return`${Y}\`${$.slice(1,-1)}\``;return`${Y}\`${$}\``}generateString(A,U){let Z="`";for(let W of U)if(W instanceof String)Z+=this.extractStringContent(W);else if(typeof W==="string")if(W.startsWith('"')||W.startsWith("'")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive in str:",W);Z+=W.slice(1,-1)}else Z+=W;else if(Array.isArray(W))if(W.length===1&&typeof W[0]==="string"&&!Array.isArray(W[0])){let Y=W[0];Z+=/^[\d"']/.test(Y)?"${"+this.generate(Y,"value")+"}":"${"+Y+"}"}else{let Y=W.length===1&&Array.isArray(W[0])?W[0]:W;Z+="${"+this.generate(Y,"value")+"}"}return Z+"`"}findPostfixConditional(A){if(!Array.isArray(A))return null;let U=A[0];if(U==="if"&&A.length===3)return{type:U,condition:A[1],value:A[2]};if(U==="+"||U==="-"||U==="*"||U==="/")for(let Z=1;Z<A.length;Z++){let W=this.findPostfixConditional(A[Z]);if(W)return W.parentOp=U,W.operandIndex=Z,W.otherOperands=A.slice(1).filter((Y,$)=>$!==Z-1),W}return null}rebuildWithoutConditional(A){let U=Array.isArray(A.value)&&A.value.length===1?A.value[0]:A.value;if(A.parentOp)return[A.parentOp,...A.otherOperands,U];return U}generateDestructuringPattern(A){return this.formatParam(A)}generateParamList(A){let U=A.findIndex((W)=>this.is(W,"expansion"));if(U!==-1){let W=A.slice(0,U),Y=A.slice(U+1),$=W.map((Q)=>this.formatParam(Q)).join(", ");return this.expansionAfterParams=Y,$?`${$}, ..._rest`:"..._rest"}let Z=A.findIndex((W)=>this.is(W,"rest"));if(Z!==-1&&Z<A.length-1){let W=A.slice(0,Z),Y=A[Z],$=A.slice(Z+1),Q=W.map((F)=>this.formatParam(F));return this.restMiddleParam={restName:Y[1],afterParams:$,beforeCount:W.length},Q.length>0?`${Q.join(", ")}, ...${Y[1]}`:`...${Y[1]}`}return this.expansionAfterParams=null,this.restMiddleParam=null,A.map((W)=>this.formatParam(W)).join(", ")}formatParam(A){if(typeof A==="string")return A;if(A instanceof String)return A.valueOf();if(this.is(A,"rest"))return`...${A[1]}`;if(this.is(A,"default"))return`${A[1]} = ${this.generate(A[2],"value")}`;if(this.is(A,".")&&A[1]==="this")return A[2];if(this.is(A,"array"))return`[${A.slice(1).map((Z)=>{if(Z===",")return"";if(Z==="...")return"";if(this.is(Z,"..."))return`...${Z[1]}`;if(this.is(Z,"=")&&typeof Z[1]==="string")return`${Z[1]} = ${this.generate(Z[2],"value")}`;if(typeof Z==="string")return Z;return this.formatParam(Z)}).join(", ")}]`;if(this.is(A,"object"))return`{${A.slice(1).map((Z)=>{if(this.is(Z,"..."))return`...${Z[1]}`;if(this.is(Z,"default"))return`${Z[1]} = ${this.generate(Z[2],"value")}`;let[W,Y]=Z;if(W===Y)return W;return`${W}: ${Y}`}).join(", ")}}`;return JSON.stringify(A)}generateBodyWithReturns(A,U=[],Z={}){let{sideEffectOnly:W=!1,autoAssignments:Y=[],isConstructor:$=!1,hasExpansionParams:Q=!1}=Z,F=this.sideEffectOnly;this.sideEffectOnly=W;let J=new Set,D=(G)=>{if(typeof G==="string")J.add(G);else if(Array.isArray(G)){if(G[0]==="rest"||G[0]==="..."){if(typeof G[1]==="string")J.add(G[1])}else if(G[0]==="default"){if(typeof G[1]==="string")J.add(G[1])}else if(G[0]==="array"||G[0]==="object")this.collectVarsFromArray(G,J)}};if(Array.isArray(U))U.forEach(D);let X=this.collectFunctionVariables(A),z=new Set([...X].filter((G)=>!this.programVars.has(G)&&!this.reactiveVars?.has(G)&&!J.has(G)&&!this.scopeStack.some((q)=>q.has(G)))),M=["return","throw","break","continue"],K=["for-in","for-of","for-as","while","loop"];if(this.scopeStack.push(new Set([...z,...J])),this.is(A,"block")){let G=this.unwrapBlock(A);if(Q&&this.expansionAfterParams?.length>0)G=[...this.expansionAfterParams.map((P,E)=>{return`const ${typeof P==="string"?P:JSON.stringify(P)} = _rest[_rest.length - ${this.expansionAfterParams.length-E}]`}),...G],this.expansionAfterParams=null;if(this.restMiddleParam){let{restName:I,afterParams:P}=this.restMiddleParam,E=P.length,_=[];if(P.forEach((O,B)=>{let N=typeof O==="string"?O:this.is(O,"default")?O[1]:JSON.stringify(O);_.push(`const ${N} = ${I}[${I}.length - ${E-B}]`)}),E>0)_.push(`${I} = ${I}.slice(0, -${E})`);G=[..._,...G],this.restMiddleParam=null}this.indentLevel++;let q=`{
223
223
  `;if(z.size>0)q+=this.indent()+`let ${Array.from(z).sort().join(", ")};
224
- `;let R=A.length>0&&G.length>0&&Array.isArray(G[0])&&G[0][0]==="super",w=(B)=>{B.forEach((P,E)=>{let _=E===B.length-1,O=Array.isArray(P)?P[0]:null;if(!_&&O==="comprehension"){let[,S,V,f]=P;q+=this.indent()+this.generateComprehensionAsLoop(S,V,f)+`
225
- `;return}if(!$&&!W&&_&&O==="if"){let[S,V,...f]=P.slice(1),h=(n)=>this.is(n,"block")&&n.length>2;if(h(V)||f.some(h)){q+=this.generateIfElseWithEarlyReturns(P);return}}if(!$&&!W&&_&&O==="="){let[S,V]=P.slice(1);if(typeof S==="string"&&Array.isArray(V)){let f=V[0];if(f==="comprehension"||f==="for-in"){this.comprehensionTarget=S,q+=this.generate(V,"value"),this.comprehensionTarget=null,q+=this.indent()+`return ${S};
226
- `;return}}}let I=!$&&!W&&_&&!M.includes(O)&&!K.includes(O)&&!this.hasExplicitControlFlow(P),N=I?"value":"statement",T=this.generate(P,N);if(I)q+=this.indent()+"return "+T+`;
224
+ `;let R=Y.length>0&&G.length>0&&Array.isArray(G[0])&&G[0][0]==="super",w=(I)=>{I.forEach((P,E)=>{let _=E===I.length-1,O=Array.isArray(P)?P[0]:null;if(!_&&O==="comprehension"){let[,S,f,V]=P;q+=this.indent()+this.generateComprehensionAsLoop(S,f,V)+`
225
+ `;return}if(!$&&!W&&_&&O==="if"){let[S,f,...V]=P.slice(1),h=(n)=>this.is(n,"block")&&n.length>2;if(h(f)||V.some(h)){q+=this.generateIfElseWithEarlyReturns(P);return}}if(!$&&!W&&_&&O==="="){let[S,f]=P.slice(1);if(typeof S==="string"&&Array.isArray(f)){let V=f[0];if(V==="comprehension"||V==="for-in"){this.comprehensionTarget=S,q+=this.generate(f,"value"),this.comprehensionTarget=null,q+=this.indent()+`return ${S};
226
+ `;return}}}let B=!$&&!W&&_&&!M.includes(O)&&!K.includes(O)&&!this.hasExplicitControlFlow(P),N=B?"value":"statement",T=this.generate(P,N);if(B)q+=this.indent()+"return "+T+`;
227
227
  `;else q+=this.indent()+this.addSemicolon(P,T)+`
228
228
  `})};if(R){if(G.length===1&&!$)q+=this.indent()+"return "+this.generate(G[0],"value")+`;
229
229
  `;else q+=this.indent()+this.generate(G[0],"statement")+`;
230
- `;for(let P of A)q+=this.indent()+P+`;
231
- `;w(G.slice(1))}else{for(let B of A)q+=this.indent()+B+`;
232
- `;w(G)}if(W&&G.length>0){let B=Array.isArray(G[G.length-1])?G[G.length-1][0]:null;if(!M.includes(B))q+=this.indent()+`return;
233
- `}return this.indentLevel--,q+=this.indent()+"}",this.scopeStack.pop(),this.sideEffectOnly=F,q}this.sideEffectOnly=F;let H;if($&&A.length>0){let G=Array.isArray(Y)&&Y[0]==="super",q=this.generate(Y,"statement"),R=A.map((w)=>`${w};`).join(" ");H=G?`{ ${q}; ${R} }`:`{ ${R} ${q}; }`}else if($||this.hasExplicitControlFlow(Y))H=`{ ${this.generate(Y,"statement")}; }`;else if(Array.isArray(Y)&&(M.includes(Y[0])||K.includes(Y[0])))H=`{ ${this.generate(Y,"statement")}; }`;else if(W)H=`{ ${this.generate(Y,"statement")}; return; }`;else H=`{ return ${this.generate(Y,"value")}; }`;return this.scopeStack.pop(),H}generateFunctionBody(Y,U=[],Z=!1){return this.generateBodyWithReturns(Y,U,{sideEffectOnly:Z,hasExpansionParams:this.expansionAfterParams?.length>0})}generateMethodBody(Y,U=[],Z=!1,W=[]){return this.generateBodyWithReturns(Y,W,{autoAssignments:U,isConstructor:Z})}generateBlockWithReturns(Y){if(!Array.isArray(Y)||Y[0]!=="block")return this.generate(Y,"statement");let U=this.unwrapBlock(Y);return`{
234
- ${this.withIndent(()=>U.map((W,A)=>{let $=A===U.length-1,Q=Array.isArray(W)?W[0]:null,F=$&&!["return","throw","break","continue"].includes(Q),J=this.generate(W,F?"value":"statement");return F?this.indent()+"return "+J+";":this.indent()+J+";"})).join(`
230
+ `;for(let P of Y)q+=this.indent()+P+`;
231
+ `;w(G.slice(1))}else{for(let I of Y)q+=this.indent()+I+`;
232
+ `;w(G)}if(W&&G.length>0){let I=Array.isArray(G[G.length-1])?G[G.length-1][0]:null;if(!M.includes(I))q+=this.indent()+`return;
233
+ `}return this.indentLevel--,q+=this.indent()+"}",this.scopeStack.pop(),this.sideEffectOnly=F,q}this.sideEffectOnly=F;let H;if($&&Y.length>0){let G=Array.isArray(A)&&A[0]==="super",q=this.generate(A,"statement"),R=Y.map((w)=>`${w};`).join(" ");H=G?`{ ${q}; ${R} }`:`{ ${R} ${q}; }`}else if($||this.hasExplicitControlFlow(A))H=`{ ${this.generate(A,"statement")}; }`;else if(Array.isArray(A)&&(M.includes(A[0])||K.includes(A[0])))H=`{ ${this.generate(A,"statement")}; }`;else if(W)H=`{ ${this.generate(A,"statement")}; return; }`;else H=`{ return ${this.generate(A,"value")}; }`;return this.scopeStack.pop(),H}generateFunctionBody(A,U=[],Z=!1){return this.generateBodyWithReturns(A,U,{sideEffectOnly:Z,hasExpansionParams:this.expansionAfterParams?.length>0})}generateMethodBody(A,U=[],Z=!1,W=[]){return this.generateBodyWithReturns(A,W,{autoAssignments:U,isConstructor:Z})}generateBlockWithReturns(A){if(!Array.isArray(A)||A[0]!=="block")return this.generate(A,"statement");let U=this.unwrapBlock(A);return`{
234
+ ${this.withIndent(()=>U.map((W,Y)=>{let $=Y===U.length-1,Q=Array.isArray(W)?W[0]:null,F=$&&!["return","throw","break","continue"].includes(Q),J=this.generate(W,F?"value":"statement");return F?this.indent()+"return "+J+";":this.indent()+J+";"})).join(`
235
235
  `)}
236
- ${this.indent()}}`}generateLoopBody(Y){if(!Array.isArray(Y))return`{ ${this.generate(Y,"statement")}; }`;if(Y[0]==="block"||Array.isArray(Y[0])){let U=Y[0]==="block"?Y.slice(1):Y;return`{
237
- ${this.withIndent(()=>U.map((W)=>{if(this.is(W,"comprehension")){let[,A,$,Q]=W;return this.indent()+this.generateComprehensionAsLoop(A,$,Q)}return this.indent()+this.addSemicolon(W,this.generate(W,"statement"))})).join(`
236
+ ${this.indent()}}`}generateLoopBody(A){if(!Array.isArray(A))return`{ ${this.generate(A,"statement")}; }`;if(A[0]==="block"||Array.isArray(A[0])){let U=A[0]==="block"?A.slice(1):A;return`{
237
+ ${this.withIndent(()=>U.map((W)=>{if(this.is(W,"comprehension")){let[,Y,$,Q]=W;return this.indent()+this.generateComprehensionAsLoop(Y,$,Q)}return this.indent()+this.addSemicolon(W,this.generate(W,"statement"))})).join(`
238
238
  `)}
239
- ${this.indent()}}`}return`{ ${this.generate(Y,"statement")}; }`}generateLoopBodyWithGuard(Y,U){let Z=this.unwrap(this.generate(U,"value"));if(!Array.isArray(Y))return`{ if (${Z}) ${this.generate(Y,"statement")}; }`;if(Y[0]==="block"||Array.isArray(Y[0])){let W=Y[0]==="block"?Y.slice(1):Y,A=this.withIndent(()=>this.indent()),$=`if (${Z}) {
239
+ ${this.indent()}}`}return`{ ${this.generate(A,"statement")}; }`}generateLoopBodyWithGuard(A,U){let Z=this.unwrap(this.generate(U,"value"));if(!Array.isArray(A))return`{ if (${Z}) ${this.generate(A,"statement")}; }`;if(A[0]==="block"||Array.isArray(A[0])){let W=A[0]==="block"?A.slice(1):A,Y=this.withIndent(()=>this.indent()),$=`if (${Z}) {
240
240
  `,Q=this.withIndent(()=>{this.indentLevel++;let J=this.formatStatements(W);return this.indentLevel--,J}),F=this.withIndent(()=>this.indent()+"}");return`{
241
- ${A}${$}${Q.join(`
241
+ ${Y}${$}${Q.join(`
242
242
  `)}
243
243
  ${F}
244
- ${this.indent()}}`}return`{ if (${this.generate(U,"value")}) ${this.generate(Y,"statement")}; }`}generateComprehensionWithTarget(Y,U,Z,W){let A="";A+=this.indent()+`${W} = [];
245
- `;let $=this.is(Y,"block")&&Y.length===2?Y[1]:Y;if(U.length===1){let[Q,F,J,D]=U[0];if(Q==="for-in"){let{header:X,setup:z}=this._forInHeader(F,J,D);if(A+=this.indent()+X+` {
246
- `,this.indentLevel++,z)A+=this.indent()+z+`
247
- `;if(Z&&Z.length>0)A+=this.indent()+`if (${Z.map((M)=>this.generate(M,"value")).join(" && ")}) {
248
- `,this.indentLevel++;if(A+=this.indent()+`${W}.push(${this.unwrap(this.generate($,"value"))});
249
- `,Z&&Z.length>0)this.indentLevel--,A+=this.indent()+`}
250
- `;return this.indentLevel--,A+=this.indent()+`}
251
- `,A}}return this.indent()+`${W} = (() => { /* complex comprehension */ })();
252
- `}generateComprehensionAsLoop(Y,U,Z){let W="",A=Z?.length?Z.map((Q)=>this.generate(Q,"value")).join(" && "):null,$=()=>{if(A)W+=this.indent()+`if (${A}) {
253
- `,this.indentLevel++,W+=this.indent()+this.generate(Y,"statement")+`;
244
+ ${this.indent()}}`}return`{ if (${this.generate(U,"value")}) ${this.generate(A,"statement")}; }`}generateComprehensionWithTarget(A,U,Z,W){let Y="";Y+=this.indent()+`${W} = [];
245
+ `;let $=this.is(A,"block")&&A.length===2?A[1]:A;if(U.length===1){let[Q,F,J,D]=U[0];if(Q==="for-in"){let{header:X,setup:z}=this._forInHeader(F,J,D);if(Y+=this.indent()+X+` {
246
+ `,this.indentLevel++,z)Y+=this.indent()+z+`
247
+ `;if(Z&&Z.length>0)Y+=this.indent()+`if (${Z.map((M)=>this.generate(M,"value")).join(" && ")}) {
248
+ `,this.indentLevel++;if(Y+=this.indent()+`${W}.push(${this.unwrap(this.generate($,"value"))});
249
+ `,Z&&Z.length>0)this.indentLevel--,Y+=this.indent()+`}
250
+ `;return this.indentLevel--,Y+=this.indent()+`}
251
+ `,Y}}return this.indent()+`${W} = (() => { /* complex comprehension */ })();
252
+ `}generateComprehensionAsLoop(A,U,Z){let W="",Y=Z?.length?Z.map((Q)=>this.generate(Q,"value")).join(" && "):null,$=()=>{if(Y)W+=this.indent()+`if (${Y}) {
253
+ `,this.indentLevel++,W+=this.indent()+this.generate(A,"statement")+`;
254
254
  `,this.indentLevel--,W+=this.indent()+`}
255
- `;else W+=this.indent()+this.generate(Y,"statement")+`;
255
+ `;else W+=this.indent()+this.generate(A,"statement")+`;
256
256
  `};if(U.length===1){let[Q,F,J,D]=U[0];if(Q==="for-in"){let{header:X,setup:z}=this._forInHeader(F,J,D);if(W+=X+` {
257
257
  `,this.indentLevel++,z)W+=this.indent()+z+`
258
258
  `;return $(),this.indentLevel--,W+=this.indent()+"}",W}if(Q==="for-as"){let{header:X}=this._forAsHeader(F,J,D);return W+=X+` {
259
259
  `,this.indentLevel++,$(),this.indentLevel--,W+=this.indent()+"}",W}if(Q==="for-of"){let{header:X,own:z,vv:M,oc:K,kvp:H}=this._forOfHeader(F,J,D);if(W+=X+` {
260
260
  `,this.indentLevel++,z)W+=this.indent()+`if (!Object.hasOwn(${K}, ${H})) continue;
261
261
  `;if(M)W+=this.indent()+`const ${M} = ${K}[${H}];
262
- `;return $(),this.indentLevel--,W+=this.indent()+"}",W}}return this.generate(["comprehension",Y,U,Z],"value")}generateIfElseWithEarlyReturns(Y){let[U,Z,W,...A]=Y,$="",Q=this.generate(Z,"value");$+=this.indent()+`if (${Q}) {
263
- `,$+=this.withIndent(()=>this.generateBranchWithReturn(W)),$+=this.indent()+"}";for(let F of A)if($+=" else ",this.is(F,"if")){let[,J,D,...X]=F;$+=`if (${this.generate(J,"value")}) {
262
+ `;return $(),this.indentLevel--,W+=this.indent()+"}",W}}return this.generate(["comprehension",A,U,Z],"value")}generateIfElseWithEarlyReturns(A){let[U,Z,W,...Y]=A,$="",Q=this.generate(Z,"value");$+=this.indent()+`if (${Q}) {
263
+ `,$+=this.withIndent(()=>this.generateBranchWithReturn(W)),$+=this.indent()+"}";for(let F of Y)if($+=" else ",this.is(F,"if")){let[,J,D,...X]=F;$+=`if (${this.generate(J,"value")}) {
264
264
  `,$+=this.withIndent(()=>this.generateBranchWithReturn(D)),$+=this.indent()+"}";for(let z of X)$+=` else {
265
265
  `,$+=this.withIndent(()=>this.generateBranchWithReturn(z)),$+=this.indent()+"}"}else $+=`{
266
- `,$+=this.withIndent(()=>this.generateBranchWithReturn(F)),$+=this.indent()+"}";return $}generateBranchWithReturn(Y){let U=this.unwrapBlock(Y),Z="";for(let W=0;W<U.length;W++){let A=W===U.length-1,$=U[W],Q=Array.isArray($)?$[0]:null;if(A&&!(Q==="return"||Q==="throw"||Q==="break"||Q==="continue"))Z+=this.indent()+`return ${this.generate($,"value")};
266
+ `,$+=this.withIndent(()=>this.generateBranchWithReturn(F)),$+=this.indent()+"}";return $}generateBranchWithReturn(A){let U=this.unwrapBlock(A),Z="";for(let W=0;W<U.length;W++){let Y=W===U.length-1,$=U[W],Q=Array.isArray($)?$[0]:null;if(Y&&!(Q==="return"||Q==="throw"||Q==="break"||Q==="continue"))Z+=this.indent()+`return ${this.generate($,"value")};
267
267
  `;else Z+=this.indent()+this.generate($,"statement")+`;
268
- `}return Z}generateIfAsExpression(Y,U,Z){if(this.is(U,"block")&&U.length>2||this.hasStatementInBranch(U)||Z.some((F)=>this.is(F,"block")&&F.length>2||this.hasStatementInBranch(F)||this.hasNestedMultiStatement(F))){let F=this.containsAwait(Y)||this.containsAwait(U)||Z.some((D)=>this.containsAwait(D)),J=`${F?"await ":""}(${F?"async ":""}() => { `;J+=`if (${this.generate(Y,"value")}) `,J+=this.generateBlockWithReturns(U);for(let D of Z)if(J+=" else ",this.is(D,"if")){let[X,z,M,...K]=D;J+=`if (${this.generate(z,"value")}) `,J+=this.generateBlockWithReturns(M);for(let H of K)if(J+=" else ",this.is(H,"if")){let[G,q,R,...w]=H;J+=`if (${this.generate(q,"value")}) `,J+=this.generateBlockWithReturns(R),Z.push(...w)}else J+=this.generateBlockWithReturns(H)}else J+=this.generateBlockWithReturns(D);return J+" })()"}let A=this.extractExpression(this.unwrapIfBranch(U)),$=this.buildTernaryChain(Z),Q=this.generate(Y,"value");if(this.is(Y,"yield")||this.is(Y,"await"))Q=`(${Q})`;return`(${Q} ? ${A} : ${$})`}generateIfAsStatement(Y,U,Z){let W=`if (${this.unwrap(this.generate(Y,"value"))}) `;W+=this.generate(this.unwrapIfBranch(U),"statement");for(let A of Z)W+=" else "+this.generate(this.unwrapIfBranch(A),"statement");return W}generateSwitchCaseBody(Y,U){let Z="";if(this.hasExplicitControlFlow(Y))for(let A of this.unwrapBlock(Y))Z+=this.indent()+this.generate(A,"statement")+`;
269
- `;else if(U==="value")if(this.is(Y,"block")&&Y.length>2){let A=Y.slice(1);for(let $=0;$<A.length;$++)if($===A.length-1)Z+=this.indent()+`return ${this.generate(A[$],"value")};
270
- `;else Z+=this.indent()+this.generate(A[$],"statement")+`;
271
- `}else Z+=this.indent()+`return ${this.extractExpression(Y)};
272
- `;else{if(this.is(Y,"block")&&Y.length>1)for(let A of Y.slice(1))Z+=this.indent()+this.generate(A,"statement")+`;
273
- `;else Z+=this.indent()+this.generate(Y,"statement")+`;
268
+ `}return Z}generateIfAsExpression(A,U,Z){if(this.is(U,"block")&&U.length>2||this.hasStatementInBranch(U)||Z.some((F)=>this.is(F,"block")&&F.length>2||this.hasStatementInBranch(F)||this.hasNestedMultiStatement(F))){let F=this.containsAwait(A)||this.containsAwait(U)||Z.some((D)=>this.containsAwait(D)),J=`${F?"await ":""}(${F?"async ":""}() => { `;J+=`if (${this.generate(A,"value")}) `,J+=this.generateBlockWithReturns(U);for(let D of Z)if(J+=" else ",this.is(D,"if")){let[X,z,M,...K]=D;J+=`if (${this.generate(z,"value")}) `,J+=this.generateBlockWithReturns(M);for(let H of K)if(J+=" else ",this.is(H,"if")){let[G,q,R,...w]=H;J+=`if (${this.generate(q,"value")}) `,J+=this.generateBlockWithReturns(R),Z.push(...w)}else J+=this.generateBlockWithReturns(H)}else J+=this.generateBlockWithReturns(D);return J+" })()"}let Y=this.extractExpression(this.unwrapIfBranch(U)),$=this.buildTernaryChain(Z),Q=this.generate(A,"value");if(this.is(A,"yield")||this.is(A,"await"))Q=`(${Q})`;return`(${Q} ? ${Y} : ${$})`}generateIfAsStatement(A,U,Z){let W=`if (${this.unwrap(this.generate(A,"value"))}) `;W+=this.generate(this.unwrapIfBranch(U),"statement");for(let Y of Z)W+=" else "+this.generate(this.unwrapIfBranch(Y),"statement");return W}generateSwitchCaseBody(A,U){let Z="";if(this.hasExplicitControlFlow(A))for(let Y of this.unwrapBlock(A))Z+=this.indent()+this.generate(Y,"statement")+`;
269
+ `;else if(U==="value")if(this.is(A,"block")&&A.length>2){let Y=A.slice(1);for(let $=0;$<Y.length;$++)if($===Y.length-1)Z+=this.indent()+`return ${this.generate(Y[$],"value")};
270
+ `;else Z+=this.indent()+this.generate(Y[$],"statement")+`;
271
+ `}else Z+=this.indent()+`return ${this.extractExpression(A)};
272
+ `;else{if(this.is(A,"block")&&A.length>1)for(let Y of A.slice(1))Z+=this.indent()+this.generate(Y,"statement")+`;
273
+ `;else Z+=this.indent()+this.generate(A,"statement")+`;
274
274
  `;Z+=this.indent()+`break;
275
- `}return Z}generateSwitchAsIfChain(Y,U,Z){let W="";for(let A=0;A<Y.length;A++){let[,$,Q]=Y[A],F=Array.isArray($)?$[0]:$;if(W+=(A===0?"":" else ")+`if (${this.generate(F,"value")}) {
275
+ `}return Z}generateSwitchAsIfChain(A,U,Z){let W="";for(let Y=0;Y<A.length;Y++){let[,$,Q]=A[Y],F=Array.isArray($)?$[0]:$;if(W+=(Y===0?"":" else ")+`if (${this.generate(F,"value")}) {
276
276
  `,this.indentLevel++,Z==="value")W+=this.indent()+`return ${this.extractExpression(Q)};
277
277
  `;else for(let J of this.unwrapBlock(Q))W+=this.indent()+this.generate(J,"statement")+`;
278
278
  `;this.indentLevel--,W+=this.indent()+"}"}if(U){if(W+=` else {
279
279
  `,this.indentLevel++,Z==="value")W+=this.indent()+`return ${this.extractExpression(U)};
280
- `;else for(let A of this.unwrapBlock(U))W+=this.indent()+this.generate(A,"statement")+`;
281
- `;this.indentLevel--,W+=this.indent()+"}"}return Z==="value"?`(() => { ${W} })()`:W}extractExpression(Y){let U=this.unwrapBlock(Y);return U.length>0?this.generate(U[U.length-1],"value"):"undefined"}unwrapBlock(Y){if(!Array.isArray(Y))return[Y];if(Y[0]==="block")return Y.slice(1);if(Array.isArray(Y[0]))return Y;return[Y]}indent(){return this.indentString.repeat(this.indentLevel)}needsSemicolon(Y,U){if(!U||U.endsWith(";"))return!1;if(!U.endsWith("}"))return!0;let Z=Array.isArray(Y)?Y[0]:null;return!["def","class","if","for-in","for-of","for-as","while","loop","switch","try"].includes(Z)}addSemicolon(Y,U){return U+(this.needsSemicolon(Y,U)?";":"")}formatStatements(Y,U="statement"){return Y.map((Z)=>this.indent()+this.addSemicolon(Z,this.generate(Z,U)))}wrapForCondition(Y){if(/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(Y))return Y;if(Y.startsWith("(")&&Y.endsWith(")"))return Y;return`(${Y})`}hasExplicitControlFlow(Y){if(!Array.isArray(Y))return!1;let U=Y[0];if(U==="return"||U==="throw"||U==="break"||U==="continue")return!0;if(U==="block")return Y.slice(1).some((Z)=>Array.isArray(Z)&&["return","throw","break","continue"].includes(Z[0]));if(U==="switch"){let[,,Z]=Y;return Z?.some((W)=>{return this.unwrapBlock(W[2]).some(($)=>Array.isArray($)&&["return","throw","break","continue"].includes($[0]))})}if(U==="if"){let[,,Z,W]=Y;return this.branchHasControlFlow(Z)&&W&&this.branchHasControlFlow(W)}return!1}branchHasControlFlow(Y){if(!Array.isArray(Y))return!1;let U=this.unwrapBlock(Y);if(U.length===0)return!1;let Z=U[U.length-1];return Array.isArray(Z)&&["return","throw","break","continue"].includes(Z[0])}withIndent(Y){this.indentLevel++;let U=Y();return this.indentLevel--,U}is(Y,U,Z){if(!Array.isArray(Y))return null;if((L(Y[0])??Y[0])!==U)return null;let W=Y.slice(1);if(Z!=null&&W.length!==Z)return null;return W}unwrap(Y){if(typeof Y!=="string")return Y;while(Y.startsWith("(")&&Y.endsWith(")")){let U=0,Z=0,W=!0,A=!1;for(let $=0;$<Y.length;$++){if(Y[$]==="(")U++;if(Y[$]===")")U--;if(Y[$]==="["||Y[$]==="{")Z++;if(Y[$]==="]"||Y[$]==="}")Z--;if(Y[$]===","&&U===1&&Z===0)A=!0;if(U===0&&$<Y.length-1){W=!1;break}}if(A)W=!1;if(W)Y=Y.slice(1,-1);else break}return Y}unwrapLogical(Y){if(typeof Y!=="string")return Y;while(Y.startsWith("(")&&Y.endsWith(")")){let U=0,Z=1/0;for(let W=1;W<Y.length-1;W++){if(Y[W]==="(")U++;if(Y[W]===")")U--;Z=Math.min(Z,U)}if(Z>=0)Y=Y.slice(1,-1);else break}return Y}unwrapIfBranch(Y){if(Array.isArray(Y)&&Y.length===1&&(!Array.isArray(Y[0])||Y[0][0]!=="block"))return Y[0];return Y}flattenBinaryChain(Y){if(!Array.isArray(Y)||Y.length<3)return Y;let[U,...Z]=Y;if(U!=="&&"&&U!=="||")return Y;let W=[],A=($)=>{if(Array.isArray($)&&$[0]===U)for(let Q=1;Q<$.length;Q++)A($[Q]);else W.push($)};for(let $ of Z)A($);return[U,...W]}hasStatementInBranch(Y){if(!Array.isArray(Y))return!1;let U=Y[0];if(U==="return"||U==="throw"||U==="break"||U==="continue")return!0;if(U==="block")return Y.slice(1).some((Z)=>this.hasStatementInBranch(Z));return!1}hasNestedMultiStatement(Y){if(!Array.isArray(Y))return!1;if(Y[0]==="if"){let[U,Z,W,...A]=Y;return this.is(W,"block")&&W.length>2||A.some(($)=>this.hasNestedMultiStatement($))}return!1}buildTernaryChain(Y){if(Y.length===0)return"undefined";if(Y.length===1)return this.extractExpression(this.unwrapIfBranch(Y[0]));let U=Y[0];if(this.is(U,"if")){let[Z,W,A,...$]=U,Q=this.extractExpression(this.unwrapIfBranch(A)),F=this.buildTernaryChain([...$,...Y.slice(1)]);return`(${this.generate(W,"value")} ? ${Q} : ${F})`}return this.extractExpression(this.unwrapIfBranch(U))}collectVarsFromArray(Y,U){Y.slice(1).forEach((Z)=>{if(Z===","||Z==="...")return;if(typeof Z==="string"){U.add(Z);return}if(Array.isArray(Z)){if(Z[0]==="..."&&typeof Z[1]==="string")U.add(Z[1]);else if(Z[0]==="array")this.collectVarsFromArray(Z,U);else if(Z[0]==="object")this.collectVarsFromObject(Z,U)}})}collectVarsFromObject(Y,U){Y.slice(1).forEach((Z)=>{if(!Array.isArray(Z))return;if(Z[0]==="..."&&typeof Z[1]==="string"){U.add(Z[1]);return}if(Z.length>=2){let[W,A,$]=Z;if($==="="){if(typeof W==="string")U.add(W)}else if(typeof A==="string")U.add(A);else if(Array.isArray(A)){if(A[0]==="array")this.collectVarsFromArray(A,U);else if(A[0]==="object")this.collectVarsFromObject(A,U)}}})}extractStringContent(Y){let U=L(Y).slice(1,-1),Z=u(Y,"indent");if(Z)U=U.replace(new RegExp(`\\n${Z}`,"g"),`
282
- `);if(u(Y,"initialChunk")&&U.startsWith(`
283
- `))U=U.slice(1);if(u(Y,"finalChunk")&&U.endsWith(`
284
- `))U=U.slice(0,-1);return U}processHeregex(Y){let U="",Z=!1,W=0,A=()=>{let $=0,Q=W-1;while(Q>=0&&Y[Q]==="\\")$++,Q--;return $%2===1};while(W<Y.length){let $=Y[W];if($==="["&&!A()){Z=!0,U+=$,W++;continue}if($==="]"&&Z&&!A()){Z=!1,U+=$,W++;continue}if(Z){U+=$,W++;continue}if(/\s/.test($)){W++;continue}if($==="#"){if(A()){U+=$,W++;continue}let Q=W-1;while(Q>=0&&Y[Q]==="\\")Q--;if(Q<W-1){U+=$,W++;continue}while(W<Y.length&&Y[W]!==`
285
- `)W++;continue}U+=$,W++}return U}addJsExtensionAndAssertions(Y){if(Y instanceof String)Y=L(Y);if(typeof Y!=="string")return Y;let Z=Y.startsWith('"')||Y.startsWith("'")?Y.slice(1,-1):Y,W=Z.startsWith("./")||Z.startsWith("../"),A=Z,$="";if(W){let Q=Z.lastIndexOf("/"),F=Q>=0?Z.substring(Q+1):Z;if(F.includes(".")){if(F.endsWith(".json"))$=" with { type: 'json' }"}else A=Z+".js"}return`'${A}'`+$}containsIt(Y){if(!Y)return!1;if(Y==="it"||Y instanceof String&&L(Y)==="it")return!0;if(typeof Y!=="object")return!1;if(this.is(Y,"def")||this.is(Y,"->")||this.is(Y,"=>"))return!1;if(Array.isArray(Y))return Y.some((U)=>this.containsIt(U));return!1}containsAwait(Y){if(!Y)return!1;if(Y instanceof String&&u(Y,"await")===!0)return!0;if(typeof Y!=="object")return!1;if(this.is(Y,"await"))return!0;if(this.is(Y,"for-as")&&Y[3]===!0)return!0;if(this.is(Y,"def")||this.is(Y,"->")||this.is(Y,"=>")||this.is(Y,"class"))return!1;if(Array.isArray(Y))return Y.some((U)=>this.containsAwait(U));return!1}containsYield(Y){if(!Y)return!1;if(typeof Y!=="object")return!1;if(this.is(Y,"yield")||this.is(Y,"yield-from"))return!0;if(this.is(Y,"def")||this.is(Y,"->")||this.is(Y,"=>")||this.is(Y,"class"))return!1;if(Array.isArray(Y))return Y.some((U)=>this.containsYield(U));return!1}extractMemberName(Y){if(this.is(Y,".")&&Y[1]==="this")return Y[2];if(this.is(Y,"computed"))return`[${this.generate(Y[1],"value")}]`;return Y}getReactiveRuntime(){return`// ============================================================================
280
+ `;else for(let Y of this.unwrapBlock(U))W+=this.indent()+this.generate(Y,"statement")+`;
281
+ `;this.indentLevel--,W+=this.indent()+"}"}return Z==="value"?`(() => { ${W} })()`:W}extractExpression(A){let U=this.unwrapBlock(A);return U.length>0?this.generate(U[U.length-1],"value"):"undefined"}unwrapBlock(A){if(!Array.isArray(A))return[A];if(A[0]==="block")return A.slice(1);if(Array.isArray(A[0]))return A;return[A]}indent(){return this.indentString.repeat(this.indentLevel)}needsSemicolon(A,U){if(!U||U.endsWith(";"))return!1;if(!U.endsWith("}"))return!0;let Z=Array.isArray(A)?A[0]:null;return!["def","class","if","for-in","for-of","for-as","while","loop","switch","try"].includes(Z)}addSemicolon(A,U){return U+(this.needsSemicolon(A,U)?";":"")}formatStatements(A,U="statement"){return A.map((Z)=>this.indent()+this.addSemicolon(Z,this.generate(Z,U)))}wrapForCondition(A){if(/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(A))return A;if(A.startsWith("(")&&A.endsWith(")"))return A;return`(${A})`}hasExplicitControlFlow(A){if(!Array.isArray(A))return!1;let U=A[0];if(U==="return"||U==="throw"||U==="break"||U==="continue")return!0;if(U==="block")return A.slice(1).some((Z)=>Array.isArray(Z)&&["return","throw","break","continue"].includes(Z[0]));if(U==="switch"){let[,,Z]=A;return Z?.some((W)=>{return this.unwrapBlock(W[2]).some(($)=>Array.isArray($)&&["return","throw","break","continue"].includes($[0]))})}if(U==="if"){let[,,Z,W]=A;return this.branchHasControlFlow(Z)&&W&&this.branchHasControlFlow(W)}return!1}branchHasControlFlow(A){if(!Array.isArray(A))return!1;let U=this.unwrapBlock(A);if(U.length===0)return!1;let Z=U[U.length-1];return Array.isArray(Z)&&["return","throw","break","continue"].includes(Z[0])}withIndent(A){this.indentLevel++;let U=A();return this.indentLevel--,U}is(A,U,Z){if(!Array.isArray(A))return null;if((L(A[0])??A[0])!==U)return null;let W=A.slice(1);if(Z!=null&&W.length!==Z)return null;return W}unwrap(A){if(typeof A!=="string")return A;while(A.startsWith("(")&&A.endsWith(")")){let U=0,Z=0,W=!0,Y=!1;for(let $=0;$<A.length;$++){if(A[$]==="(")U++;if(A[$]===")")U--;if(A[$]==="["||A[$]==="{")Z++;if(A[$]==="]"||A[$]==="}")Z--;if(A[$]===","&&U===1&&Z===0)Y=!0;if(U===0&&$<A.length-1){W=!1;break}}if(Y)W=!1;if(W)A=A.slice(1,-1);else break}return A}unwrapLogical(A){if(typeof A!=="string")return A;while(A.startsWith("(")&&A.endsWith(")")){let U=0,Z=1/0;for(let W=1;W<A.length-1;W++){if(A[W]==="(")U++;if(A[W]===")")U--;Z=Math.min(Z,U)}if(Z>=0)A=A.slice(1,-1);else break}return A}unwrapIfBranch(A){if(Array.isArray(A)&&A.length===1&&(!Array.isArray(A[0])||A[0][0]!=="block"))return A[0];return A}flattenBinaryChain(A){if(!Array.isArray(A)||A.length<3)return A;let[U,...Z]=A;if(U!=="&&"&&U!=="||")return A;let W=[],Y=($)=>{if(Array.isArray($)&&$[0]===U)for(let Q=1;Q<$.length;Q++)Y($[Q]);else W.push($)};for(let $ of Z)Y($);return[U,...W]}hasStatementInBranch(A){if(!Array.isArray(A))return!1;let U=A[0];if(U==="return"||U==="throw"||U==="break"||U==="continue")return!0;if(U==="block")return A.slice(1).some((Z)=>this.hasStatementInBranch(Z));return!1}hasNestedMultiStatement(A){if(!Array.isArray(A))return!1;if(A[0]==="if"){let[U,Z,W,...Y]=A;return this.is(W,"block")&&W.length>2||Y.some(($)=>this.hasNestedMultiStatement($))}return!1}buildTernaryChain(A){if(A.length===0)return"undefined";if(A.length===1)return this.extractExpression(this.unwrapIfBranch(A[0]));let U=A[0];if(this.is(U,"if")){let[Z,W,Y,...$]=U,Q=this.extractExpression(this.unwrapIfBranch(Y)),F=this.buildTernaryChain([...$,...A.slice(1)]);return`(${this.generate(W,"value")} ? ${Q} : ${F})`}return this.extractExpression(this.unwrapIfBranch(U))}collectVarsFromArray(A,U){A.slice(1).forEach((Z)=>{if(Z===","||Z==="...")return;if(typeof Z==="string"){U.add(Z);return}if(Array.isArray(Z)){if(Z[0]==="..."&&typeof Z[1]==="string")U.add(Z[1]);else if(Z[0]==="array")this.collectVarsFromArray(Z,U);else if(Z[0]==="object")this.collectVarsFromObject(Z,U)}})}collectVarsFromObject(A,U){A.slice(1).forEach((Z)=>{if(!Array.isArray(Z))return;if(Z[0]==="..."&&typeof Z[1]==="string"){U.add(Z[1]);return}if(Z.length>=2){let[W,Y,$]=Z;if($==="="){if(typeof W==="string")U.add(W)}else if(typeof Y==="string")U.add(Y);else if(Array.isArray(Y)){if(Y[0]==="array")this.collectVarsFromArray(Y,U);else if(Y[0]==="object")this.collectVarsFromObject(Y,U)}}})}extractStringContent(A){let U=L(A).slice(1,-1),Z=u(A,"indent");if(Z)U=U.replace(new RegExp(`\\n${Z}`,"g"),`
282
+ `);if(u(A,"initialChunk")&&U.startsWith(`
283
+ `))U=U.slice(1);if(u(A,"finalChunk")&&U.endsWith(`
284
+ `))U=U.slice(0,-1);return U}processHeregex(A){let U="",Z=!1,W=0,Y=()=>{let $=0,Q=W-1;while(Q>=0&&A[Q]==="\\")$++,Q--;return $%2===1};while(W<A.length){let $=A[W];if($==="["&&!Y()){Z=!0,U+=$,W++;continue}if($==="]"&&Z&&!Y()){Z=!1,U+=$,W++;continue}if(Z){U+=$,W++;continue}if(/\s/.test($)){W++;continue}if($==="#"){if(Y()){U+=$,W++;continue}let Q=W-1;while(Q>=0&&A[Q]==="\\")Q--;if(Q<W-1){U+=$,W++;continue}while(W<A.length&&A[W]!==`
285
+ `)W++;continue}U+=$,W++}return U}addJsExtensionAndAssertions(A){if(A instanceof String)A=L(A);if(typeof A!=="string")return A;let Z=A.startsWith('"')||A.startsWith("'")?A.slice(1,-1):A,W=Z.startsWith("./")||Z.startsWith("../"),Y=Z,$="";if(W){let Q=Z.lastIndexOf("/"),F=Q>=0?Z.substring(Q+1):Z;if(F.includes(".")){if(F.endsWith(".json"))$=" with { type: 'json' }"}else Y=Z+".js"}return`'${Y}'`+$}containsIt(A){if(!A)return!1;if(A==="it"||A instanceof String&&L(A)==="it")return!0;if(typeof A!=="object")return!1;if(this.is(A,"def")||this.is(A,"->")||this.is(A,"=>"))return!1;if(Array.isArray(A))return A.some((U)=>this.containsIt(U));return!1}containsAwait(A){if(!A)return!1;if(A instanceof String&&u(A,"await")===!0)return!0;if(typeof A!=="object")return!1;if(this.is(A,"await"))return!0;if(this.is(A,"for-as")&&A[3]===!0)return!0;if(this.is(A,"def")||this.is(A,"->")||this.is(A,"=>")||this.is(A,"class"))return!1;if(Array.isArray(A))return A.some((U)=>this.containsAwait(U));return!1}containsYield(A){if(!A)return!1;if(typeof A!=="object")return!1;if(this.is(A,"yield")||this.is(A,"yield-from"))return!0;if(this.is(A,"def")||this.is(A,"->")||this.is(A,"=>")||this.is(A,"class"))return!1;if(Array.isArray(A))return A.some((U)=>this.containsYield(U));return!1}extractMemberName(A){if(this.is(A,".")&&A[1]==="this")return A[2];if(this.is(A,"computed"))return`[${this.generate(A[1],"value")}]`;return A}getReactiveRuntime(){return`// ============================================================================
286
286
  // Rip Reactive Runtime
287
287
  // A minimal, fine-grained reactivity system
288
288
  //
@@ -501,13 +501,13 @@ if (typeof globalThis !== 'undefined') {
501
501
  }
502
502
 
503
503
  // === End Reactive Runtime ===
504
- `}}class e{constructor(Y={}){this.options={showTokens:!1,showSExpr:!1,...Y}}compile(Y){let U=null,Z=Y.split(`
504
+ `}}class e{constructor(A={}){this.options={showTokens:!1,showSExpr:!1,...A}}compile(A){let U=null,Z=A.split(`
505
505
  `),W=Z.findIndex((H)=>H==="__DATA__");if(W!==-1){let H=Z.slice(W+1);U=H.length>0?H.join(`
506
506
  `)+`
507
- `:"",Y=Z.slice(0,W).join(`
508
- `)}let $=new c().tokenize(Y);if(this.options.showTokens)$.forEach((H)=>console.log(`${H[0].padEnd(12)} ${JSON.stringify(H[1])}`)),console.log();let Q=null,F=null;if(this.options.types==="emit"||this.options.types==="check"||this.options.types===!0)F=[...$];$=$.filter((H)=>H[0]!=="TYPE_DECL");while($.length>0&&$[0][0]==="TERMINATOR")$.shift();if($.every((H)=>H[0]==="TERMINATOR")){if(F)Q=W1(F,["program"]);return{tokens:$,sexpr:["program"],code:"",dts:Q,data:U,reactiveVars:{}}}l.lexer={tokens:$,pos:0,setInput:function(){},lex:function(){if(this.pos>=this.tokens.length)return 1;let H=this.tokens[this.pos++],G=H[1];if(H.data)G=new String(G),Object.assign(G,H.data);return this.text=G,this.loc=H.loc,H[0]}};let J;try{J=l.parse(Y)}catch(H){if(/\?\s*\([^)]*\?[^)]*:[^)]*\)\s*:/.test(Y)||/\?\s+\w+\s+\?\s+/.test(Y))throw Error("Nested ternary operators are not supported. Use if/else statements instead.");throw H}if(this.options.showSExpr)console.log(v(J,0,!0)),console.log();let D=null;if(this.options.sourceMap){let H=(this.options.filename||"output")+".js",G=this.options.filename||"input.rip";D=new F1(H,G,Y)}let X=new j({dataSection:U,skipPreamble:this.options.skipPreamble,reactiveVars:this.options.reactiveVars,sourceMap:D}),z=X.compile(J),M=D?D.toJSON():null,K=D?D.toReverseMap():null;if(M&&this.options.sourceMap==="inline"){let H=typeof Buffer<"u"?Buffer.from(M).toString("base64"):btoa(M);z+=`
507
+ `:"",A=Z.slice(0,W).join(`
508
+ `)}let $=new c().tokenize(A);if(this.options.showTokens)$.forEach((H)=>console.log(`${H[0].padEnd(12)} ${JSON.stringify(H[1])}`)),console.log();let Q=null,F=null;if(this.options.types==="emit"||this.options.types==="check"||this.options.types===!0)F=[...$];$=$.filter((H)=>H[0]!=="TYPE_DECL");while($.length>0&&$[0][0]==="TERMINATOR")$.shift();if($.every((H)=>H[0]==="TERMINATOR")){if(F)Q=W1(F,["program"]);return{tokens:$,sexpr:["program"],code:"",dts:Q,data:U,reactiveVars:{}}}m.lexer={tokens:$,pos:0,setInput:function(){},lex:function(){if(this.pos>=this.tokens.length)return 1;let H=this.tokens[this.pos++],G=H[1];if(H.data)G=new String(G),Object.assign(G,H.data);return this.text=G,this.loc=H.loc,H[0]}};let J;try{J=m.parse(A)}catch(H){if(/\?\s*\([^)]*\?[^)]*:[^)]*\)\s*:/.test(A)||/\?\s+\w+\s+\?\s+/.test(A))throw Error("Nested ternary operators are not supported. Use if/else statements instead.");throw H}if(this.options.showSExpr)console.log(v(J,0,!0)),console.log();let D=null;if(this.options.sourceMap){let H=(this.options.filename||"output")+".js",G=this.options.filename||"input.rip";D=new F1(H,G,A)}let X=new j({dataSection:U,skipPreamble:this.options.skipPreamble,reactiveVars:this.options.reactiveVars,sourceMap:D}),z=X.compile(J),M=D?D.toJSON():null,K=D?D.toReverseMap():null;if(M&&this.options.sourceMap==="inline"){let H=typeof Buffer<"u"?Buffer.from(M).toString("base64"):btoa(M);z+=`
509
509
  //# sourceMappingURL=data:application/json;base64,${H}`}else if(M&&this.options.filename)z+=`
510
- //# sourceMappingURL=${this.options.filename}.js.map`;if(F)Q=W1(F,J);return{tokens:$,sexpr:J,code:z,dts:Q,map:M,reverseMap:K,data:U,reactiveVars:X.reactiveVars}}compileToJS(Y){return this.compile(Y).code}compileToSExpr(Y){return this.compile(Y).sexpr}}u1(j,c);j.prototype.generateEnum=M1;function J1(Y,U={}){return new e(U).compile(Y)}function k(Y,U={}){return new e(U).compileToJS(Y)}function $1(){return new j({}).getReactiveRuntime()}function X1(){return new j({}).getComponentRuntime()}var I2="3.9.1",E2="2026-02-18@06:26:25GMT";if(typeof globalThis<"u"&&!globalThis.__rip)Function($1())();var N2=(Y)=>{let U=Y.match(/^[ \t]*(?=\S)/gm),Z=Math.min(...(U||[]).map((W)=>W.length));return Y.replace(RegExp(`^[ ]{${Z}}`,"gm"),"").trim()};async function T2(){let Y=document.querySelectorAll('script[type="text/rip"]');for(let U of Y){if(U.hasAttribute("data-rip-processed"))continue;try{let Z;if(U.src){let A=await fetch(U.src);if(!A.ok){console.error(`Rip: failed to fetch ${U.src} (${A.status})`);continue}Z=await A.text()}else Z=N2(U.textContent);let W;try{W=k(Z)}catch(A){console.error("Rip compile error:",A.message),console.error("Source:",Z);continue}await(0,eval)(`(async()=>{
510
+ //# sourceMappingURL=${this.options.filename}.js.map`;if(F)Q=W1(F,J);return{tokens:$,sexpr:J,code:z,dts:Q,map:M,reverseMap:K,data:U,reactiveVars:X.reactiveVars}}compileToJS(A){return this.compile(A).code}compileToSExpr(A){return this.compile(A).sexpr}}u1(j,c);j.prototype.generateEnum=M1;function J1(A,U={}){return new e(U).compile(A)}function k(A,U={}){return new e(U).compileToJS(A)}function $1(){return new j({}).getReactiveRuntime()}function X1(){return new j({}).getComponentRuntime()}var E2="3.9.2",N2="2026-02-19@08:08:25GMT";if(typeof globalThis<"u"&&!globalThis.__rip)Function($1())();var T2=(A)=>{let U=A.match(/^[ \t]*(?=\S)/gm),Z=Math.min(...(U||[]).map((W)=>W.length));return A.replace(RegExp(`^[ ]{${Z}}`,"gm"),"").trim()};async function S2(){let A=document.querySelectorAll('script[type="text/rip"]');for(let U of A){if(U.hasAttribute("data-rip-processed"))continue;try{let Z;if(U.src){let Y=await fetch(U.src);if(!Y.ok){console.error(`Rip: failed to fetch ${U.src} (${Y.status})`);continue}Z=await Y.text()}else Z=T2(U.textContent);let W;try{W=k(Z)}catch(Y){console.error("Rip compile error:",Y.message),console.error("Source:",Z);continue}await(0,eval)(`(async()=>{
511
511
  ${W}
512
- })()`),U.setAttribute("data-rip-processed","true")}catch(Z){console.error("Rip runtime error:",Z)}}}async function K1(Y){for(let[$,Q]of Object.entries(K1.modules))if(Y.includes($))return Q;let U=await fetch(Y).then(($)=>{if(!$.ok)throw Error(`importRip: ${Y} (${$.status})`);return $.text()}),Z=k(U),W=new Blob([Z],{type:"application/javascript"}),A=URL.createObjectURL(W);try{return await import(A)}finally{URL.revokeObjectURL(A)}}K1.modules={};function S2(Y){try{let U=Y.replace(/^/gm," "),W=k(`do ->
513
- ${U}`).replace(/^let\s+[^;]+;\s*\n\s*/m,"");W=W.replace(/^const\s+(\w+)\s*=/gm,"globalThis.$1 =");let A=(0,eval)(W);if(A&&typeof A.then==="function")return A.then(($)=>{if($!==void 0)globalThis._=$;return $});if(A!==void 0)globalThis._=A;return A}catch(U){console.error("Rip compilation error:",U.message);return}}if(typeof globalThis<"u")globalThis.rip=S2,globalThis.importRip=K1,globalThis.compileToJS=k,globalThis.__ripExports={compile:J1,compileToJS:k,formatSExpr:v,VERSION:I2,BUILD_DATE:E2,getReactiveRuntime:$1,getComponentRuntime:X1};if(typeof document<"u")globalThis.__ripScriptsReady=new Promise((Y)=>{let U=()=>T2().then(Y);if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",()=>queueMicrotask(U));else queueMicrotask(U)});export{S2 as rip,T2 as processRipScripts,l as parser,K1 as importRip,$1 as getReactiveRuntime,X1 as getComponentRuntime,v as formatSExpr,k as compileToJS,J1 as compile,I2 as VERSION,c as Lexer,e as Compiler,j as CodeGenerator,E2 as BUILD_DATE};
512
+ })()`),U.setAttribute("data-rip-processed","true")}catch(Z){console.error("Rip runtime error:",Z)}}}async function K1(A){for(let[$,Q]of Object.entries(K1.modules))if(A.includes($))return Q;let U=await fetch(A).then(($)=>{if(!$.ok)throw Error(`importRip: ${A} (${$.status})`);return $.text()}),Z=k(U),W=new Blob([Z],{type:"application/javascript"}),Y=URL.createObjectURL(W);try{return await import(Y)}finally{URL.revokeObjectURL(Y)}}K1.modules={};function L2(A){try{let U=A.replace(/^/gm," "),W=k(`do ->
513
+ ${U}`).replace(/^let\s+[^;]+;\s*\n\s*/m,"");W=W.replace(/^const\s+(\w+)\s*=/gm,"globalThis.$1 =");let Y=(0,eval)(W);if(Y&&typeof Y.then==="function")return Y.then(($)=>{if($!==void 0)globalThis._=$;return $});if(Y!==void 0)globalThis._=Y;return Y}catch(U){console.error("Rip compilation error:",U.message);return}}if(typeof globalThis<"u")globalThis.rip=L2,globalThis.importRip=K1,globalThis.compileToJS=k,globalThis.__ripExports={compile:J1,compileToJS:k,formatSExpr:v,VERSION:E2,BUILD_DATE:N2,getReactiveRuntime:$1,getComponentRuntime:X1};if(typeof document<"u")globalThis.__ripScriptsReady=new Promise((A)=>{let U=()=>S2().then(A);if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",()=>queueMicrotask(U));else queueMicrotask(U)});export{L2 as rip,S2 as processRipScripts,m as parser,K1 as importRip,$1 as getReactiveRuntime,X1 as getComponentRuntime,v as formatSExpr,k as compileToJS,J1 as compile,E2 as VERSION,c as Lexer,e as Compiler,j as CodeGenerator,N2 as BUILD_DATE};