rip-lang 3.13.53 → 3.13.55
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/docs/dist/rip.js +19 -4
- package/docs/dist/rip.min.js +182 -182
- package/docs/dist/rip.min.js.br +0 -0
- package/package.json +1 -1
- package/src/components.js +19 -0
- package/src/lexer.js +1 -1
package/docs/dist/rip.min.js
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
(()=>{var{defineProperty:j1,getOwnPropertyNames:i2,getOwnPropertyDescriptor:n2}=Object,p2=Object.prototype.hasOwnProperty;function d2($){return this[$]}var r2=($)=>{var U=(s1??=new WeakMap).get($),F;if(U)return U;if(U=j1({},"__esModule",{value:!0}),$&&typeof $==="object"||typeof $==="function"){for(var W of i2($))if(!p2.call(U,W))j1(U,W,{get:d2.bind($,W),enumerable:!(F=n2($,W))||F.enumerable})}return s1.set($,U),U},s1;var o2=($)=>$;function a2($,U){this[$]=o2.bind(null,U)}var t1=($,U)=>{for(var F in U)j1($,F,{get:U[F],enumerable:!0,configurable:!0,set:a2.bind(U,F)})};var r3={};t1(r3,{rip:()=>q2,processRipScripts:()=>H2,parser:()=>t,importRip:()=>e,getStdlibCode:()=>J1,getReactiveRuntime:()=>Q1,getComponentRuntime:()=>X1,formatSExpr:()=>n,compileToJS:()=>o,compile:()=>I1,VERSION:()=>D2,Lexer:()=>r,Compiler:()=>w1,CodeGenerator:()=>g,BUILD_DATE:()=>M2});function f2($){let U=$.prototype;U.rewriteTypes=function(){let F=this.tokens,W=(f,u,A)=>{let Y=[f,u];if(Y.pre=0,Y.data=null,Y.loc=A?.loc??{r:0,c:0,n:0},Y.spaced=!1,Y.newLine=!1,Y.generated=!0,A)Y.origin=A;return Y};this.scanTokens((f,u,A)=>{let Y=f[0];if(Y==="IDENTIFIER"){let _=A[u+1];if(_&&_[0]==="COMPARE"&&_[1]==="<"&&!_.spaced){let Z=A[u-1]?.[0]==="DEF",w=s2(A,u+1);if(w){let z=!Z&&A[u+1+w.length]?.[0]==="TYPE_ALIAS";if(Z||z){if(!f.data)f.data={};if(f.data.typeParams=Y1(w),A.splice(u+1,w.length),Z&&A[u+1]?.[0]==="("){A[u+1][0]="CALL_START";let X=1,K=u+2;while(K<A.length&&X>0){if(A[K][0]==="("||A[K][0]==="CALL_START")X++;if(A[K][0]===")"||A[K][0]==="CALL_END")X--;if(X===0)A[K][0]="CALL_END";K++}}}}}}if(Y==="TYPE_ANNOTATION"){let _=A[u-1];if(!_)return 1;let Z=e1(A,u+1),w=Y1(Z),z=_,X="type";if(_[0]==="CALL_END"||_[0]===")"){let D=1,R=u-2;while(R>=0&&D>0){let J=A[R][0];if(J==="CALL_END"||J===")")D++;if(J==="CALL_START"||J==="(")D--;R--}if(R>=0)z=A[R];X="returnType"}else if(_[0]==="PARAM_END"){let D=u+1+Z.length,R=A[D];if(R&&(R[0]==="->"||R[0]==="=>"))z=R;X="returnType"}else if(_[0]==="IDENTIFIER"&&u>=2&&A[u-2]?.[0]==="DEF")X="returnType";if(!z.data)z.data={};z.data[X]=w;let K=1+Z.length;return A.splice(u,K),0}if(Y==="TYPE_ALIAS"){let _=A[u-1];if(!_)return 1;let Z=_[1],w=u>=2&&A[u-2]?.[0]==="EXPORT",z=w?u-2:u-1,X=A[u+1],K=(R)=>{let J=W("TYPE_DECL",Z,_);if(J.data={name:Z,typeText:R,exported:w},_.data?.typeParams)J.data.typeParams=_.data.typeParams;return J};if(X&&X[0]==="IDENTIFIER"&&X[1]==="type"&&A[u+2]?.[0]==="INDENT"){let R=V1(A,u+2);return A.splice(z,R-z+1,K(u2(A,u+2))),0}if(X&&(X[0]==="TERMINATOR"||X[0]==="INDENT")){let R=t2(A,u+1);if(R)return A.splice(z,R.endIdx-z+1,K(R.typeText)),0}let D=e1(A,u+1);return A.splice(z,u+1+D.length-z,K(Y1(D))),0}if(Y==="INTERFACE"){let _=u>=1&&A[u-1]?.[0]==="EXPORT",Z=u+1,w=A[Z];if(!w)return 1;let z=w[1],X=null,K=Z+1;if(A[K]?.[0]==="EXTENDS")X=A[K+1]?.[1],K=K+2;if(A[K]?.[0]==="INDENT"){let D=u2(A,K),R=V1(A,K),J=W("TYPE_DECL",z,w);J.data={name:z,kind:"interface",extends:X,typeText:D,exported:_};let Q=_?u-1:u,q=R-Q+1;return A.splice(Q,q,J),0}return 1}return 1})}}function e1($,U){let F=[],W=0;while(U<$.length){let f=$[U],u=f[0],A=u==="("||u==="["||u==="CALL_START"||u==="PARAM_START"||u==="INDEX_START"||u==="COMPARE"&&f[1]==="<",Y=u===")"||u==="]"||u==="CALL_END"||u==="PARAM_END"||u==="INDEX_END"||u==="COMPARE"&&f[1]===">";if(u==="SHIFT"&&f[1]===">>"&&W>=2){W-=2,F.push(f),U++;continue}if(A){W++,F.push(f),U++;continue}if(Y){if(W>0){W--,F.push(f),U++;continue}break}if(W===0){if(u==="="||u==="REACTIVE_ASSIGN"||u==="COMPUTED_ASSIGN"||u==="READONLY_ASSIGN"||u==="EFFECT"||u==="TERMINATOR"||u==="INDENT"||u==="OUTDENT"||u==="->"||u===",")break}F.push(f),U++}return F}function Y1($){if($.length===0)return"";if($[0]?.[0]==="=>")$.unshift(["","()"]);let U=$.map((F)=>F[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 s2($,U){if(U>=$.length)return null;let F=$[U];if(F[0]!=="COMPARE"||F[1]!=="<")return null;let W=[F],f=1,u=U+1;while(u<$.length&&f>0){let A=$[u];if(W.push(A),A[0]==="COMPARE"&&A[1]==="<")f++;else if(A[0]==="COMPARE"&&A[1]===">")f--;u++}return f===0?W:null}function u2($,U){let F=[],W=U+1,f=1;while(W<$.length&&f>0){let u=$[W];if(u[0]==="INDENT"){f++,W++;continue}if(u[0]==="OUTDENT"){if(f--,f===0)break;W++;continue}if(u[0]==="TERMINATOR"){W++;continue}if(f===1&&(u[0]==="PROPERTY"||u[0]==="IDENTIFIER")){let A=u[1],Y=!1,_=!1;if(W++,A==="readonly"&&($[W]?.[0]==="PROPERTY"||$[W]?.[0]==="IDENTIFIER")){if(_=!0,A=$[W][1],$[W].data?.predicate)Y=!0;W++}if(u.data?.predicate)Y=!0;if($[W]?.[1]==="?"&&!$[W]?.spaced)Y=!0,W++;if($[W]?.[1]===":"||$[W]?.[0]==="TYPE_ANNOTATION")W++;let Z=[],w=0;while(W<$.length){let D=$[W];if(D[0]==="INDENT"){w++,W++;continue}if(D[0]==="OUTDENT"){if(w>0){w--,W++;continue}break}if(D[0]==="TERMINATOR"&&w===0)break;Z.push(D),W++}let z=Y1(Z),X=_?"readonly ":"",K=Y?"?":"";F.push(`${X}${A}${K}: ${z}`)}else W++}return"{ "+F.join("; ")+" }"}function V1($,U){let F=0;for(let W=U;W<$.length;W++){if($[W][0]==="INDENT")F++;if($[W][0]==="OUTDENT"){if(F--,F===0)return W}}return $.length-1}function t2($,U){let F=U;if($[F]?.[0]==="TERMINATOR")F++;if($[F]?.[0]!=="INDENT")return null;let W=F;F++;while(F<$.length&&$[F][0]==="TERMINATOR")F++;if(!$[F]||$[F][1]!=="|")return null;let f=[],u=1;F=W+1;while(F<$.length&&u>0){let Y=$[F];if(Y[0]==="INDENT"){u++,F++;continue}if(Y[0]==="OUTDENT"){if(u--,u===0)break;F++;continue}if(Y[0]==="TERMINATOR"){F++;continue}if(Y[1]==="|"&&u===1){F++;let _=[];while(F<$.length){let Z=$[F];if(Z[0]==="TERMINATOR"||Z[0]==="OUTDENT"||Z[1]==="|"&&u===1)break;_.push(Z),F++}if(_.length>0)f.push(Y1(_));continue}F++}if(f.length===0)return null;let A=V1($,W);return{typeText:f.join(" | "),endIdx:A}}function y1($,U=null){let F=[],W=0,f=" ",u=()=>f.repeat(W),A=!1,Y=!1,_=!1,Z=(K,D,R)=>{if(D.startsWith("{ ")&&D.endsWith(" }")){let J=D.slice(2,-2).split("; ").filter((Q)=>Q.trim());if(J.length>0){F.push(`${u()}${K}{`),W++;for(let Q of J)F.push(`${u()}${Q};`);W--,F.push(`${u()}}${R}`);return}}F.push(`${u()}${K}${D}${R}`)},w=(K,D)=>{let R=[],J=D,Q=K[J]?.[0];if(Q!=="CALL_START"&&Q!=="PARAM_START")return{params:R,endIdx:J};let q=Q==="CALL_START"?"CALL_END":"PARAM_END";J++;let O=0;while(J<K.length&&!(K[J][0]===q&&O===0)){let M=K[J];if(M[1]===","&&O===0){J++;continue}if(M[0]==="{"||M[0]==="["||M[0]==="CALL_START"||M[0]==="PARAM_START"||M[0]==="INDEX_START")O++;if(M[0]==="}"||M[0]==="]"||M[0]==="CALL_END"||M[0]==="PARAM_END"||M[0]==="INDEX_END"){O--,J++;continue}if(M[0]==="@"){if(J++,K[J]?.[0]==="PROPERTY"||K[J]?.[0]==="IDENTIFIER"){let G=K[J][1],I=K[J].data?.type;R.push(I?`${G}: ${x(I)}`:G),J++}continue}if(M[0]==="SPREAD"||M[1]==="..."){if(J++,K[J]?.[0]==="IDENTIFIER"){let G=K[J][1],I=K[J].data?.type;R.push(I?`...${G}: ${x(I)}`:`...${G}: any[]`),J++}continue}if(M[0]==="{"){let G="{";J++;let I=1;while(J<K.length&&I>0){if(K[J][0]==="{")I++;if(K[J][0]==="}")I--;if(I>0)G+=K[J][1]+(K[J+1]?.[0]==="}"?"":", ");J++}G+="}";let H=K[J-1]?.data?.type;R.push(H?`${G}: ${x(H)}`:G);continue}if(M[0]==="IDENTIFIER"){let G=M[1],I=M.data?.type,H=!1;if(K[J+1]?.[0]==="=")H=!0;if(I)R.push(`${G}${H?"?":""}: ${x(I)}`);else R.push(G);if(J++,H){J++;let P=0;while(J<K.length){let E=K[J];if(E[0]==="("||E[0]==="["||E[0]==="{")P++;if(E[0]===")"||E[0]==="]"||E[0]==="}")P--;if(P===0&&(E[1]===","||E[0]==="CALL_END"))break;J++}}continue}J++}return{params:R,endIdx:J}};for(let K=0;K<$.length;K++){let D=$[K],R=D[0],J=!1;if(R==="EXPORT"){if(J=!0,K++,K>=$.length)break;if(D=$[K],R=D[0],R==="DEFAULT"){if(K++,K>=$.length)break;if(D=$[K],R=D[0],R==="IDENTIFIER")F.push(`${u()}export default ${D[1]};`);continue}}if(R==="IMPORT"){let Q=[],q=K+1;while(q<$.length&&$[q][0]!=="TERMINATOR")Q.push($[q]),q++;let O="import "+Q.map((M)=>M[1]).join(" ");O=O.replace(/\s+/g," ").replace(/\s*,\s*/g,", ").replace(/\{\s*/g,"{ ").replace(/\s*\}/g," }").trim(),F.push(`${u()}${O};`),K=q;continue}if(R==="TYPE_DECL"){let Q=D.data;if(!Q)continue;let q=J||Q.exported?"export ":"",O=Q.typeParams||"";if(Q.kind==="interface"){let M=Q.extends?` extends ${Q.extends}`:"";Z(`${q}interface ${Q.name}${O}${M} `,Q.typeText||"{}","")}else{let M=x(Q.typeText||"");Z(`${q}type ${Q.name}${O} = `,M,";")}continue}if(R==="ENUM"){let Q=J?"export ":"",q=$[K+1];if(!q)continue;let O=q[1],M=K+2;if($[M]?.[0]==="INDENT"){F.push(`${u()}${Q}enum ${O} {`),W++,M++;let G=[];while(M<$.length&&$[M][0]!=="OUTDENT"){if($[M][0]==="TERMINATOR"){M++;continue}if($[M][0]==="IDENTIFIER"){let I=$[M][1];if(M++,$[M]?.[1]==="="){M++;let H=$[M]?.[1];G.push(`${I} = ${H}`),M++}else G.push(I)}else M++}for(let I=0;I<G.length;I++){let H=I<G.length-1?",":"";F.push(`${u()}${G[I]}${H}`)}W--,F.push(`${u()}}`)}continue}if(R==="CLASS"){let Q=J?"export ":"",q=$[K+1];if(!q)continue;let O=q[1],M="",G=K+2;if($[G]?.[0]==="EXTENDS")M=` extends ${$[G+1]?.[1]||""}`,G+=2;if($[G]?.[0]==="INDENT"){let I=!1,H=G+1;while(H<$.length&&$[H][0]!=="OUTDENT"){if($[H].data?.type||$[H].data?.returnType){I=!0;break}H++}if(I)F.push(`${u()}${Q}declare class ${O}${M} {`),A=!0,W++}continue}if(R==="DEF"){let Q=$[K+1];if(!Q)continue;let q=Q[1],O=Q.data?.returnType,M=Q.data?.typeParams||"",{params:G,endIdx:I}=w($,K+2);if(O||G.some((H)=>H.includes(":"))){let H=J?"export ":"",P=A?"":J?"":"declare ",E=O?`: ${x(O)}`:"",B=G.join(", ");if(A)F.push(`${u()}${q}${M}(${B})${E};`);else F.push(`${u()}${H}${P}function ${q}${M}(${B})${E};`)}continue}if(R==="{"&&A){let Q=K+1,q=1;while(Q<$.length&&q>0){let O=$[Q];if(O[0]==="{"){q++,Q++;continue}if(O[0]==="}"){q--,Q++;continue}if(O[0]==="TERMINATOR"){Q++;continue}if(O[0]==="PROPERTY"&&q===1){let M=O[1],G=O.data?.returnType;if(Q++,$[Q]?.[1]===":")Q++;let I=[];if($[Q]?.[0]==="PARAM_START"){let H=w($,Q);I=H.params,Q=H.endIdx+1}if($[Q]?.[0]==="->"||$[Q]?.[0]==="=>")Q++;if($[Q]?.[0]==="INDENT"){let H=1;Q++;while(Q<$.length&&H>0){if($[Q][0]==="INDENT")H++;if($[Q][0]==="OUTDENT")H--;Q++}}if(G||I.some((H)=>H.includes(":"))){let H=G?`: ${x(G)}`:"",P=I.join(", ");F.push(`${u()}${M}(${P})${H};`)}continue}Q++}K=Q-1;continue}if(R==="INDENT")continue;if(R==="OUTDENT"){if(A)W--,F.push(`${u()}}`),A=!1;continue}if(R==="IDENTIFIER"&&!A&&$[K+1]?.[0]==="="&&($[K+2]?.[0]==="PARAM_START"||$[K+2]?.[0]==="(")){let Q=D[1],q=K+2,{params:O}=w($,q),M=q,G=0;while(M<$.length){if($[M][0]==="PARAM_START"||$[M][0]==="(")G++;if($[M][0]==="PARAM_END"||$[M][0]===")")G--;if(G===0&&($[M][0]==="->"||$[M][0]==="=>"))break;M++}let I=$[M]?.data?.returnType;if(I||O.some((H)=>H.includes(":"))){let H=J?"export ":"",P=J?"":"declare ",E=I?`: ${x(I)}`:"",B=O.join(", ");F.push(`${u()}${H}${P}function ${Q}(${B})${E};`);continue}}if(R==="IDENTIFIER"&&D.data?.type){let Q=D[1],q=x(D.data.type),O=$[K+1];if(O){let M=J?"export ":"",G=J?"":"declare ";if(O[0]==="READONLY_ASSIGN")F.push(`${u()}${M}${G}const ${Q}: ${q};`);else if(O[0]==="REACTIVE_ASSIGN")Y=!0,F.push(`${u()}${M}${G}const ${Q}: Signal<${q}>;`);else if(O[0]==="COMPUTED_ASSIGN")_=!0,F.push(`${u()}${M}${G}const ${Q}: Computed<${q}>;`);else if(O[0]==="EFFECT")F.push(`${u()}${M}${G}const ${Q}: () => void;`);else if(O[0]==="="){let I=K+2;if($[I]?.[0]==="PARAM_START"){let P=1,E=I+1;while(E<$.length&&P>0){if($[E][0]==="PARAM_START")P++;if($[E][0]==="PARAM_END")P--;E++}I=E}let H=$[I];if(H&&(H[0]==="->"||H[0]==="=>")&&H.data?.returnType){let P=x(H.data.returnType),{params:E}=w($,K+2),B=E.join(", ");F.push(`${u()}${M}${G}function ${Q}(${B}): ${P};`)}else if(A)F.push(`${u()}${Q}: ${q};`);else F.push(`${u()}${M}let ${Q}: ${q};`)}else if(A)F.push(`${u()}${Q}: ${q};`)}else if(A)F.push(`${u()}${Q}: ${q};`)}}let z=new Set;if(U){if(C1(U,F,u,W,z),z.size>0)for(let K=F.length-1;K>=0;K--){let D=F[K].match(/(?:declare |export )*(?:const|let) (\w+)/);if(D&&z.has(D[1]))F.splice(K,1)}}if(F.length===0)return null;let X=[];if(Y)X.push("interface Signal<T> { value: T; read(): T; lock(): Signal<T>; free(): Signal<T>; kill(): T; }");if(_)X.push("interface Computed<T> { readonly value: T; read(): T; lock(): Computed<T>; free(): Computed<T>; kill(): T; }");if(X.length>0)X.push("");return X.concat(F).join(`
|
|
1
|
+
(()=>{var{defineProperty:j1,getOwnPropertyNames:i2,getOwnPropertyDescriptor:n2}=Object,p2=Object.prototype.hasOwnProperty;function d2($){return this[$]}var r2=($)=>{var U=(s1??=new WeakMap).get($),W;if(U)return U;if(U=j1({},"__esModule",{value:!0}),$&&typeof $==="object"||typeof $==="function"){for(var F of i2($))if(!p2.call(U,F))j1(U,F,{get:d2.bind($,F),enumerable:!(W=n2($,F))||W.enumerable})}return s1.set($,U),U},s1;var o2=($)=>$;function a2($,U){this[$]=o2.bind(null,U)}var t1=($,U)=>{for(var W in U)j1($,W,{get:U[W],enumerable:!0,configurable:!0,set:a2.bind(U,W)})};var r3={};t1(r3,{rip:()=>q2,processRipScripts:()=>H2,parser:()=>u1,importRip:()=>f1,getStdlibCode:()=>Q1,getReactiveRuntime:()=>X1,getComponentRuntime:()=>z1,formatSExpr:()=>p,compileToJS:()=>s,compile:()=>I1,VERSION:()=>D2,Lexer:()=>a,Compiler:()=>J1,CodeGenerator:()=>v,BUILD_DATE:()=>M2});function f2($){let U=$.prototype;U.rewriteTypes=function(){let W=this.tokens,F=(u,f,A)=>{let Y=[u,f];if(Y.pre=0,Y.data=null,Y.loc=A?.loc??{r:0,c:0,n:0},Y.spaced=!1,Y.newLine=!1,Y.generated=!0,A)Y.origin=A;return Y};this.scanTokens((u,f,A)=>{let Y=u[0];if(Y==="IDENTIFIER"){let _=A[f+1];if(_&&_[0]==="COMPARE"&&_[1]==="<"&&!_.spaced){let w=A[f-1]?.[0]==="DEF",R=s2(A,f+1);if(R){let z=!w&&A[f+1+R.length]?.[0]==="TYPE_ALIAS";if(w||z){if(!u.data)u.data={};if(u.data.typeParams=_1(R),A.splice(f+1,R.length),w&&A[f+1]?.[0]==="("){A[f+1][0]="CALL_START";let K=1,J=f+2;while(J<A.length&&K>0){if(A[J][0]==="("||A[J][0]==="CALL_START")K++;if(A[J][0]===")"||A[J][0]==="CALL_END")K--;if(K===0)A[J][0]="CALL_END";J++}}}}}}if(Y==="TYPE_ANNOTATION"){let _=A[f-1];if(!_)return 1;let w=e1(A,f+1),R=_1(w),z=_,K="type";if(_[0]==="CALL_END"||_[0]===")"){let M=1,Q=f-2;while(Q>=0&&M>0){let Z=A[Q][0];if(Z==="CALL_END"||Z===")")M++;if(Z==="CALL_START"||Z==="(")M--;Q--}if(Q>=0)z=A[Q];K="returnType"}else if(_[0]==="PARAM_END"){let M=f+1+w.length,Q=A[M];if(Q&&(Q[0]==="->"||Q[0]==="=>"))z=Q;K="returnType"}else if(_[0]==="IDENTIFIER"&&f>=2&&A[f-2]?.[0]==="DEF")K="returnType";if(!z.data)z.data={};z.data[K]=R;let J=1+w.length;return A.splice(f,J),0}if(Y==="TYPE_ALIAS"){let _=A[f-1];if(!_)return 1;let w=_[1],R=f>=2&&A[f-2]?.[0]==="EXPORT",z=R?f-2:f-1,K=A[f+1],J=(Q)=>{let Z=F("TYPE_DECL",w,_);if(Z.data={name:w,typeText:Q,exported:R},_.data?.typeParams)Z.data.typeParams=_.data.typeParams;return Z};if(K&&K[0]==="IDENTIFIER"&&K[1]==="type"&&A[f+2]?.[0]==="INDENT"){let Q=V1(A,f+2);return A.splice(z,Q-z+1,J(u2(A,f+2))),0}if(K&&(K[0]==="TERMINATOR"||K[0]==="INDENT")){let Q=t2(A,f+1);if(Q)return A.splice(z,Q.endIdx-z+1,J(Q.typeText)),0}let M=e1(A,f+1);return A.splice(z,f+1+M.length-z,J(_1(M))),0}if(Y==="INTERFACE"){let _=f>=1&&A[f-1]?.[0]==="EXPORT",w=f+1,R=A[w];if(!R)return 1;let z=R[1],K=null,J=w+1;if(A[J]?.[0]==="EXTENDS")K=A[J+1]?.[1],J=J+2;if(A[J]?.[0]==="INDENT"){let M=u2(A,J),Q=V1(A,J),Z=F("TYPE_DECL",z,R);Z.data={name:z,kind:"interface",extends:K,typeText:M,exported:_};let X=_?f-1:f,D=Q-X+1;return A.splice(X,D,Z),0}return 1}return 1})}}function e1($,U){let W=[],F=0;while(U<$.length){let u=$[U],f=u[0],A=f==="("||f==="["||f==="CALL_START"||f==="PARAM_START"||f==="INDEX_START"||f==="COMPARE"&&u[1]==="<",Y=f===")"||f==="]"||f==="CALL_END"||f==="PARAM_END"||f==="INDEX_END"||f==="COMPARE"&&u[1]===">";if(f==="SHIFT"&&u[1]===">>"&&F>=2){F-=2,W.push(u),U++;continue}if(A){F++,W.push(u),U++;continue}if(Y){if(F>0){F--,W.push(u),U++;continue}break}if(F===0){if(f==="="||f==="REACTIVE_ASSIGN"||f==="COMPUTED_ASSIGN"||f==="READONLY_ASSIGN"||f==="EFFECT"||f==="TERMINATOR"||f==="INDENT"||f==="OUTDENT"||f==="->"||f===",")break}W.push(u),U++}return W}function _1($){if($.length===0)return"";if($[0]?.[0]==="=>")$.unshift(["","()"]);let U=$.map((W)=>W[1]).join(" ").replace(/\s+/g," ").trim();return U=U.replace(/\s*<\s*/g,"<").replace(/\s*>\s*/g,">").replace(/\s*\[\s*/g,"[").replace(/\s*\]\s*/g,"]").replace(/\s*\(\s*/g,"(").replace(/\s*\)\s*/g,")").replace(/\s*,\s*/g,", ").replace(/\s*=>\s*/g," => ").replace(/ :: /g,": ").replace(/:: /g,": "),U}function s2($,U){if(U>=$.length)return null;let W=$[U];if(W[0]!=="COMPARE"||W[1]!=="<")return null;let F=[W],u=1,f=U+1;while(f<$.length&&u>0){let A=$[f];if(F.push(A),A[0]==="COMPARE"&&A[1]==="<")u++;else if(A[0]==="COMPARE"&&A[1]===">")u--;f++}return u===0?F:null}function u2($,U){let W=[],F=U+1,u=1;while(F<$.length&&u>0){let f=$[F];if(f[0]==="INDENT"){u++,F++;continue}if(f[0]==="OUTDENT"){if(u--,u===0)break;F++;continue}if(f[0]==="TERMINATOR"){F++;continue}if(u===1&&(f[0]==="PROPERTY"||f[0]==="IDENTIFIER")){let A=f[1],Y=!1,_=!1;if(F++,A==="readonly"&&($[F]?.[0]==="PROPERTY"||$[F]?.[0]==="IDENTIFIER")){if(_=!0,A=$[F][1],$[F].data?.predicate)Y=!0;F++}if(f.data?.predicate)Y=!0;if($[F]?.[1]==="?"&&!$[F]?.spaced)Y=!0,F++;if($[F]?.[1]===":"||$[F]?.[0]==="TYPE_ANNOTATION")F++;let w=[],R=0;while(F<$.length){let M=$[F];if(M[0]==="INDENT"){R++,F++;continue}if(M[0]==="OUTDENT"){if(R>0){R--,F++;continue}break}if(M[0]==="TERMINATOR"&&R===0)break;w.push(M),F++}let z=_1(w),K=_?"readonly ":"",J=Y?"?":"";W.push(`${K}${A}${J}: ${z}`)}else F++}return"{ "+W.join("; ")+" }"}function V1($,U){let W=0;for(let F=U;F<$.length;F++){if($[F][0]==="INDENT")W++;if($[F][0]==="OUTDENT"){if(W--,W===0)return F}}return $.length-1}function t2($,U){let W=U;if($[W]?.[0]==="TERMINATOR")W++;if($[W]?.[0]!=="INDENT")return null;let F=W;W++;while(W<$.length&&$[W][0]==="TERMINATOR")W++;if(!$[W]||$[W][1]!=="|")return null;let u=[],f=1;W=F+1;while(W<$.length&&f>0){let Y=$[W];if(Y[0]==="INDENT"){f++,W++;continue}if(Y[0]==="OUTDENT"){if(f--,f===0)break;W++;continue}if(Y[0]==="TERMINATOR"){W++;continue}if(Y[1]==="|"&&f===1){W++;let _=[];while(W<$.length){let w=$[W];if(w[0]==="TERMINATOR"||w[0]==="OUTDENT"||w[1]==="|"&&f===1)break;_.push(w),W++}if(_.length>0)u.push(_1(_));continue}W++}if(u.length===0)return null;let A=V1($,F);return{typeText:u.join(" | "),endIdx:A}}function y1($,U=null){let W=[],F=0,u=" ",f=()=>u.repeat(F),A=!1,Y=!1,_=!1,w=(J,M,Q)=>{if(M.startsWith("{ ")&&M.endsWith(" }")){let Z=M.slice(2,-2).split("; ").filter((X)=>X.trim());if(Z.length>0){W.push(`${f()}${J}{`),F++;for(let X of Z)W.push(`${f()}${X};`);F--,W.push(`${f()}}${Q}`);return}}W.push(`${f()}${J}${M}${Q}`)},R=(J,M)=>{let Q=[],Z=M,X=J[Z]?.[0];if(X!=="CALL_START"&&X!=="PARAM_START")return{params:Q,endIdx:Z};let D=X==="CALL_START"?"CALL_END":"PARAM_END";Z++;let O=0;while(Z<J.length&&!(J[Z][0]===D&&O===0)){let q=J[Z];if(q[1]===","&&O===0){Z++;continue}if(q[0]==="{"||q[0]==="["||q[0]==="CALL_START"||q[0]==="PARAM_START"||q[0]==="INDEX_START")O++;if(q[0]==="}"||q[0]==="]"||q[0]==="CALL_END"||q[0]==="PARAM_END"||q[0]==="INDEX_END"){O--,Z++;continue}if(q[0]==="@"){if(Z++,J[Z]?.[0]==="PROPERTY"||J[Z]?.[0]==="IDENTIFIER"){let G=J[Z][1],P=J[Z].data?.type;Q.push(P?`${G}: ${k(P)}`:G),Z++}continue}if(q[0]==="SPREAD"||q[1]==="..."){if(Z++,J[Z]?.[0]==="IDENTIFIER"){let G=J[Z][1],P=J[Z].data?.type;Q.push(P?`...${G}: ${k(P)}`:`...${G}: any[]`),Z++}continue}if(q[0]==="{"){let G="{";Z++;let P=1;while(Z<J.length&&P>0){if(J[Z][0]==="{")P++;if(J[Z][0]==="}")P--;if(P>0)G+=J[Z][1]+(J[Z+1]?.[0]==="}"?"":", ");Z++}G+="}";let H=J[Z-1]?.data?.type;Q.push(H?`${G}: ${k(H)}`:G);continue}if(q[0]==="IDENTIFIER"){let G=q[1],P=q.data?.type,H=!1;if(J[Z+1]?.[0]==="=")H=!0;if(P)Q.push(`${G}${H?"?":""}: ${k(P)}`);else Q.push(G);if(Z++,H){Z++;let I=0;while(Z<J.length){let E=J[Z];if(E[0]==="("||E[0]==="["||E[0]==="{")I++;if(E[0]===")"||E[0]==="]"||E[0]==="}")I--;if(I===0&&(E[1]===","||E[0]==="CALL_END"))break;Z++}}continue}Z++}return{params:Q,endIdx:Z}};for(let J=0;J<$.length;J++){let M=$[J],Q=M[0],Z=!1;if(Q==="EXPORT"){if(Z=!0,J++,J>=$.length)break;if(M=$[J],Q=M[0],Q==="DEFAULT"){if(J++,J>=$.length)break;if(M=$[J],Q=M[0],Q==="IDENTIFIER")W.push(`${f()}export default ${M[1]};`);continue}}if(Q==="IMPORT"){let X=[],D=J+1;while(D<$.length&&$[D][0]!=="TERMINATOR")X.push($[D]),D++;let O="import "+X.map((q)=>q[1]).join(" ");O=O.replace(/\s+/g," ").replace(/\s*,\s*/g,", ").replace(/\{\s*/g,"{ ").replace(/\s*\}/g," }").trim(),W.push(`${f()}${O};`),J=D;continue}if(Q==="TYPE_DECL"){let X=M.data;if(!X)continue;let D=Z||X.exported?"export ":"",O=X.typeParams||"";if(X.kind==="interface"){let q=X.extends?` extends ${X.extends}`:"";w(`${D}interface ${X.name}${O}${q} `,X.typeText||"{}","")}else{let q=k(X.typeText||"");w(`${D}type ${X.name}${O} = `,q,";")}continue}if(Q==="ENUM"){let X=Z?"export ":"",D=$[J+1];if(!D)continue;let O=D[1],q=J+2;if($[q]?.[0]==="INDENT"){W.push(`${f()}${X}enum ${O} {`),F++,q++;let G=[];while(q<$.length&&$[q][0]!=="OUTDENT"){if($[q][0]==="TERMINATOR"){q++;continue}if($[q][0]==="IDENTIFIER"){let P=$[q][1];if(q++,$[q]?.[1]==="="){q++;let H=$[q]?.[1];G.push(`${P} = ${H}`),q++}else G.push(P)}else q++}for(let P=0;P<G.length;P++){let H=P<G.length-1?",":"";W.push(`${f()}${G[P]}${H}`)}F--,W.push(`${f()}}`)}continue}if(Q==="CLASS"){let X=Z?"export ":"",D=$[J+1];if(!D)continue;let O=D[1],q="",G=J+2;if($[G]?.[0]==="EXTENDS")q=` extends ${$[G+1]?.[1]||""}`,G+=2;if($[G]?.[0]==="INDENT"){let P=!1,H=G+1;while(H<$.length&&$[H][0]!=="OUTDENT"){if($[H].data?.type||$[H].data?.returnType){P=!0;break}H++}if(P)W.push(`${f()}${X}declare class ${O}${q} {`),A=!0,F++}continue}if(Q==="DEF"){let X=$[J+1];if(!X)continue;let D=X[1],O=X.data?.returnType,q=X.data?.typeParams||"",{params:G,endIdx:P}=R($,J+2);if(O||G.some((H)=>H.includes(":"))){let H=Z?"export ":"",I=A?"":Z?"":"declare ",E=O?`: ${k(O)}`:"",B=G.join(", ");if(A)W.push(`${f()}${D}${q}(${B})${E};`);else W.push(`${f()}${H}${I}function ${D}${q}(${B})${E};`)}continue}if(Q==="{"&&A){let X=J+1,D=1;while(X<$.length&&D>0){let O=$[X];if(O[0]==="{"){D++,X++;continue}if(O[0]==="}"){D--,X++;continue}if(O[0]==="TERMINATOR"){X++;continue}if(O[0]==="PROPERTY"&&D===1){let q=O[1],G=O.data?.returnType;if(X++,$[X]?.[1]===":")X++;let P=[];if($[X]?.[0]==="PARAM_START"){let H=R($,X);P=H.params,X=H.endIdx+1}if($[X]?.[0]==="->"||$[X]?.[0]==="=>")X++;if($[X]?.[0]==="INDENT"){let H=1;X++;while(X<$.length&&H>0){if($[X][0]==="INDENT")H++;if($[X][0]==="OUTDENT")H--;X++}}if(G||P.some((H)=>H.includes(":"))){let H=G?`: ${k(G)}`:"",I=P.join(", ");W.push(`${f()}${q}(${I})${H};`)}continue}X++}J=X-1;continue}if(Q==="INDENT")continue;if(Q==="OUTDENT"){if(A)F--,W.push(`${f()}}`),A=!1;continue}if(Q==="IDENTIFIER"&&!A&&$[J+1]?.[0]==="="&&($[J+2]?.[0]==="PARAM_START"||$[J+2]?.[0]==="(")){let X=M[1],D=J+2,{params:O}=R($,D),q=D,G=0;while(q<$.length){if($[q][0]==="PARAM_START"||$[q][0]==="(")G++;if($[q][0]==="PARAM_END"||$[q][0]===")")G--;if(G===0&&($[q][0]==="->"||$[q][0]==="=>"))break;q++}let P=$[q]?.data?.returnType;if(P||O.some((H)=>H.includes(":"))){let H=Z?"export ":"",I=Z?"":"declare ",E=P?`: ${k(P)}`:"",B=O.join(", ");W.push(`${f()}${H}${I}function ${X}(${B})${E};`);continue}}if(Q==="IDENTIFIER"&&M.data?.type){let X=M[1],D=k(M.data.type),O=$[J+1];if(O){let q=Z?"export ":"",G=Z?"":"declare ";if(O[0]==="READONLY_ASSIGN")W.push(`${f()}${q}${G}const ${X}: ${D};`);else if(O[0]==="REACTIVE_ASSIGN")Y=!0,W.push(`${f()}${q}${G}const ${X}: Signal<${D}>;`);else if(O[0]==="COMPUTED_ASSIGN")_=!0,W.push(`${f()}${q}${G}const ${X}: Computed<${D}>;`);else if(O[0]==="EFFECT")W.push(`${f()}${q}${G}const ${X}: () => void;`);else if(O[0]==="="){let P=J+2;if($[P]?.[0]==="PARAM_START"){let I=1,E=P+1;while(E<$.length&&I>0){if($[E][0]==="PARAM_START")I++;if($[E][0]==="PARAM_END")I--;E++}P=E}let H=$[P];if(H&&(H[0]==="->"||H[0]==="=>")&&H.data?.returnType){let I=k(H.data.returnType),{params:E}=R($,J+2),B=E.join(", ");W.push(`${f()}${q}${G}function ${X}(${B}): ${I};`)}else if(A)W.push(`${f()}${X}: ${D};`);else W.push(`${f()}${q}let ${X}: ${D};`)}else if(A)W.push(`${f()}${X}: ${D};`)}else if(A)W.push(`${f()}${X}: ${D};`)}}let z=new Set;if(U){if(C1(U,W,f,F,z),z.size>0)for(let J=W.length-1;J>=0;J--){let M=W[J].match(/(?:declare |export )*(?:const|let) (\w+)/);if(M&&z.has(M[1]))W.splice(J,1)}}if(W.length===0)return null;let K=[];if(Y)K.push("interface Signal<T> { value: T; read(): T; lock(): Signal<T>; free(): Signal<T>; kill(): T; }");if(_)K.push("interface Computed<T> { readonly value: T; read(): T; lock(): Computed<T>; free(): Computed<T>; kill(): T; }");if(K.length>0)K.push("");return K.concat(W).join(`
|
|
2
2
|
`)+`
|
|
3
|
-
`}function
|
|
3
|
+
`}function k($){if(!$)return $;return $=$.replace(/::/g,":"),$=$.replace(/(\w+(?:<[^>]+>)?)\?\?/g,"$1 | null | undefined"),$=$.replace(/(\w+(?:<[^>]+>)?)\?(?![.:])/g,"$1 | undefined"),$=$.replace(/(\w+(?:<[^>]+>)?)\!/g,"NonNullable<$1>"),$}function C1($,U,W,F,u){if(!Array.isArray($))return;let f=$[0]?.valueOf?.()??$[0],A=!1,Y=null,_=null;if(f==="export"&&Array.isArray($[1])){A=!0;let w=$[1];if((w[0]?.valueOf?.()??w[0])==="="&&Array.isArray(w[2])&&(w[2][0]?.valueOf?.()??w[2][0])==="component")Y=w[1]?.valueOf?.()??w[1],_=w[2]}else if(f==="="&&Array.isArray($[2])&&($[2][0]?.valueOf?.()??$[2][0])==="component")Y=$[1]?.valueOf?.()??$[1],_=$[2];if(Y&&_){let w=A?"export ":"",R=_[2],z=Array.isArray(R)&&(R[0]?.valueOf?.()??R[0])==="block"?R.slice(1):R?[R]:[],K=[],J=!1;for(let M of z){if(!Array.isArray(M))continue;let Q=M[0]?.valueOf?.()??M[0],Z,X,D,O,q;if(Q==="state"||Q==="readonly"||Q==="computed"){if(Z=M[1],D=Array.isArray(Z)&&(Z[0]?.valueOf?.()??Z[0])==="."&&(Z[1]?.valueOf?.()??Z[1])==="this",X=D?Z[2]?.valueOf?.()??Z[2]:Z?.valueOf?.()??Z,O=D?Z[2]?.type:Z?.type,q=!0,!D)u.add(X)}else if(Q==="."){if(D=(M[1]?.valueOf?.()??M[1])==="this",X=D?M[2]?.valueOf?.()??M[2]:null,O=D?M[2]?.type:null,q=!1,!D&&X)u.add(X)}else continue;if(!D||!X)continue;let G=O?k(O):"any",P=q?"?":"";if(!q)J=!0;K.push(` ${X}${P}: ${G};`)}if(U.push(`${w}declare class ${Y} {`),K.length>0){let M=J?"":"?";U.push(` constructor(props${M}: {`);for(let Q of K)U.push(Q);U.push(" });")}U.push("}")}if(f==="program"||f==="block"){for(let w=1;w<$.length;w++)if(Array.isArray($[w]))C1($[w],U,W,F,u)}if(f==="export"&&Array.isArray($[1])&&!_)C1($[1],U,W,F,u)}function $2($,U,W){let[F,u]=U,f=F?.valueOf?.()??F,A=[];if(Array.isArray(u)){let w=u[0]==="block"?u.slice(1):[u];for(let R of w)if(Array.isArray(R)){if(R[0]?.valueOf?.()==="="){let z=R[1]?.valueOf?.()??R[1],K=R[2]?.valueOf?.()??R[2];A.push([z,K])}}}if(A.length===0)return`const ${f} = {}`;let Y=A.map(([w,R])=>`${w}: ${R}`).join(", "),_=A.map(([w,R])=>`${R}: "${w}"`).join(", ");return`const ${f} = {${Y}, ${_}}`}var U2=new Set(["true","false","null","this","new","delete","typeof","in","instanceof","return","throw","break","continue","debugger","yield","await","if","else","switch","for","while","do","try","catch","finally","class","extends","super","import","export","default"]),F2=new Set(["undefined","Infinity","NaN","then","unless","until","loop","of","by","when","def","component","render","enum","interface"]),c1={and:"&&",or:"||",is:"==",isnt:"!=",not:"!",yes:"true",no:"false",on:"true",off:"false"},W2=new Set(Object.keys(c1)),e2=new Set(["case","function","var","void","with","const","let","native","implements","package","private","protected","public","static"]),u3=new Set(["break","continue","debugger"]),f3=new Set(["NEW","TYPEOF","DELETE"]),$3=new Set(["IN","OF","INSTANCEOF"]),O1=new Set(["IDENTIFIER","PROPERTY",")","]","@","THIS","SUPER","DYNAMIC_IMPORT","?."]),X2=new Set([...O1,"NUMBER","INFINITY","NAN","STRING","STRING_END","REGEX","REGEX_END","BOOL","NULL","UNDEFINED","}"]),q1=new Set(["IDENTIFIER","PROPERTY","NUMBER","INFINITY","NAN","STRING","STRING_START","REGEX","REGEX_START","JS","NEW","PARAM_START","CLASS","IF","TRY","SWITCH","THIS","DYNAMIC_IMPORT","IMPORT_META","NEW_TARGET","UNDEFINED","NULL","BOOL","UNARY","DO","DO_IIFE","YIELD","AWAIT","UNARY_MATH","SUPER","THROW","@","->","=>","[","(","{","--","++"]),U3=new Set(["+","-"]),F3=new Set(["POST_IF","POST_UNLESS","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR","||","&&","PIPE"]),W3=new Set(["STRING","STRING_END","REGEX","REGEX_END","NUMBER","BOOL","NULL","UNDEFINED","INFINITY","NAN","]","}"]),e=new Set(["(","[","{","INDENT","CALL_START","PARAM_START","INDEX_START","STRING_START","INTERPOLATION_START","REGEX_START"]),o=new Set([")","]","}","OUTDENT","CALL_END","PARAM_END","INDEX_END","STRING_END","INTERPOLATION_END","REGEX_END"]),A3={"(":")",")":"(","[":"]","]":"[","{":"}","}":"{",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"},A2=new Set(["CATCH","THEN","ELSE","FINALLY",...o]),b1=new Set(["IDENTIFIER","PROPERTY","SUPER",")","CALL_END","]","INDEX_END","@","THIS"]),Y3=new Set(["IF","TRY","FINALLY","CATCH","CLASS","SWITCH","COMPONENT"]),Y2=new Set(["ELSE","->","=>","TRY","FINALLY","THEN"]),_3=new Set(["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"]),R1=new Set(["INDENT","OUTDENT","TERMINATOR"]),_2=new Set([".","?."]),R2=new Set(["\\",".","?.","UNARY","DO","DO_IIFE","MATH","UNARY_MATH","+","-","**","SHIFT","RELATION","COMPARE","&","^","|","&&","||","TERNARY","EXTENDS"]),R3=new Set([...X2,"++","--"]),Z2=new Set(["-=","+=","/=","*=","%=","||=","&&=","?=","??=","<<=",">>=",">>>=","&=","^=","|=","**=","//=","%%="]),Z3=new Set(["*","/","%","//","%%"]),w3=new Set(["==","!=","===","!==","<",">","<=",">=","=~"]),J3=new Set(["<<",">>",">>>"]),Q3=new Set(["!","~"]),X3=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+(?:!(?!\?)|[?](?![.?![(]))?)([^\n\S]*:(?![=:]))?/,z3=/^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,K3=/^(?:<=>|::=|::|[-=]>|~>|~=|:=|=!|===|!==|!\?|\?\!|\?\?|=~|\|>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?\.?|\.{2,3})/,D3=/^[^\n\S]+/,M3=/^(?:\n[^\n\S]*)+/,H3=/^(\s*)###([^#][\s\S]*?)(?:###([^\n\S]*)|###$)|^((?:\s*#(?!##[^#]).*)+)/,q3=/^[-=]>/,O3=/^(?:~[=>]|=!)/,G3=/^(?:'''\\|"""\\|'''|"""|'|")/,P3=/^(?:[^\\']|\\[\s\S])*/,I3=/^(?:[^\\"#$]|\\[\s\S]|\#(?!\{)|\$(?!\{))*/,E3=/^(?:[^\\']|\\[\s\S]|'(?!''))*/,B3=/^(?:[^\\"#$]|\\[\s\S]|"(?!"")|\#(?!\{)|\$(?!\{))*/,w2=/\n+([^\n\S]*)(?=\S)/g,N3=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/,J2=/^\w*/,T3=/^(?!.*(.).*\1)[gimsuy]*$/,L3=/^(?:[^\\\/#\s]|\\[\s\S]|\/(?!\/\/)|\#(?!\{)|\s+(?:#(?!\{).*)?)*/,S3=/^`(?!``)((?:[^`\\]|\\[\s\S])*)`/,h3=/^```((?:[^`\\]|\\[\s\S]|`(?!``))*)```/,j3=/\s+$/,Q2=/^\s*(?:,|\??\.(?![.\d]))/,V3=65279;function G1($,U,{pre:W=0,row:F=0,col:u=0,len:f=0,data:A=null}={}){let Y=[$,U];return Y.pre=W,Y.data=A,Y.loc={r:F,c:u,n:f},Y.spaced=W>0,Y.newLine=!1,Y}function d($,U,W){let F=G1($,U);if(F.generated=!0,W)F.origin=W;return F}function n($,{row:U=0,col:W=0,len:F=1}={}){let u=SyntaxError($);throw u.location={first_line:U,first_column:W,last_column:W+F-1},u}function C3($){if($==null)return NaN;switch($.charAt(1)){case"b":return parseInt($.slice(2).replace(/_/g,""),2);case"o":return parseInt($.slice(2).replace(/_/g,""),8);case"x":return parseInt($.slice(2).replace(/_/g,""),16);default:return parseFloat($.replace(/_/g,""))}}class a{tokenize($,U={}){this.code=$,this.tokens=[],this.ends=[],this.chunk="",this.pos=0,this.row=U.row||0,this.col=U.col||0,this.indent=0,this.indents=[],this.seenFor=!1,this.seenImport=!1,this.seenExport=!1,this.importSpecifierList=!1,this.exportSpecifierList=!1,this.inRenderBlock=!1,this.renderIndent=0,$=this.clean($),this.code=$;while(this.pos<$.length){this.chunk=$.slice(this.pos);let W=this.identifierToken()||this.commentToken()||this.whitespaceToken()||this.lineToken()||this.stringToken()||this.numberToken()||this.regexToken()||this.jsToken()||this.literalToken();if(W===0)n(`unexpected character: ${this.chunk.charAt(0)}`,{row:this.row,col:this.col});if(this.advance(W),U.untilBalanced&&this.ends.length===0)return{tokens:this.tokens,index:this.pos}}if(this.closeIndentation(),this.ends.length>0){let W=this.ends[this.ends.length-1];n(`missing ${W.tag}`,{row:this.row,col:this.col})}if(U.rewrite===!1)return this.tokens;return this.rewrite(this.tokens)}clean($){if($.charCodeAt(0)===V3)$=$.slice(1);if($=$.replace(/\r\n?/g,`
|
|
4
4
|
`),$=$.replace(j3,""),/^[^\n\S]/.test($))$=`
|
|
5
|
-
`+$;return $}advance($){let U=this.code.slice(this.pos,this.pos+$);for(let
|
|
6
|
-
`)this.row++,this.col=0;else this.col++;this.pos+=$}emit($,U,{len:
|
|
7
|
-
`)return 0;let U=this.prev();if(U)if($)U.spaced=!0,U.pre=$[0].length;else U.newLine=!0;return $?$[0].length:0}lineToken(){let $=M3.exec(this.chunk);if(!$)return 0;let U=$[0],
|
|
8
|
-
`);if(this.isUnfinished()){if(
|
|
9
|
-
`,{len:0})}isUnfinished(){if(this.inRenderBlock&&Q2.test(this.chunk)&&/^\s*\./.test(this.chunk))return!1;if(this.inRenderBlock&&this.prevTag()==="."){let U=this.tokens.length;if(U>=2){let
|
|
10
|
-
`)
|
|
11
|
-
`)}if(u===0&&U?.length===3)_=_.replace(/^\n/,"");if(u===$.length-1&&U?.length===3)_=_.replace(/\n[^\S\n]*$/,"");if(f)_=_.replace(/\\([nrtbfv0\\'"`xu])/g,"\\\\$1");this.emit("STRING",`"${_}"`,{len:Y.length,data:{quote:U}})}}if($.length>1)this.emit("STRING_END",")",{len:U?.length||0});return W}numberToken(){let $=z3.exec(this.chunk);if(!$)return 0;let U=$[0],F=U.length,W={row:this.row,col:this.col};if(/^0[BOX]/.test(U))i(`radix prefix in '${U}' must be lowercase`,{...W,col:W.col+1});if(/^0\d*[89]/.test(U))i(`decimal literal '${U}' must not be prefixed with '0'`,{...W,len:F});if(/^0\d+/.test(U))i(`octal literal '${U}' must be prefixed with '0o'`,{...W,len:F});let f=C3(U),u=f===1/0?"INFINITY":"NUMBER",A={parsedValue:f};if(u==="INFINITY")A.original=U;return this.emit(u,U,{len:F,data:A}),F}regexToken(){let $=this.matchWithInterpolations(L3,"///");if($){let{tokens:Z,index:w}=$,[z]=J2.exec(this.chunk.slice(w)),X=w+z.length;if(Z.length===1||!Z.some((K)=>K[0]==="TOKENS")){let K=(Z[0]?.[1]||"").replace(/(?<!\\)\//g,"\\/");this.emit("REGEX",`/${K}/${z}`,{len:X,data:{delimiter:"///",heregex:{flags:z}}})}else{if(this.emit("REGEX_START","(",{len:0}),this.emit("IDENTIFIER","RegExp",{len:0}),this.emit("CALL_START","(",{len:0}),this.mergeInterpolationTokens(Z,{quote:"///",endOffset:X-z.length}),z)this.emit(",",",",{len:0}),this.emit("STRING",`"${z}"`,{len:z.length});this.emit(")",")",{len:0}),this.emit("REGEX_END",")",{len:0})}return X}let U=N3.exec(this.chunk);if(!U)return 0;let[F,W,f]=U,u=this.prev();if(u){if(u.spaced&&O1.has(u[0])&&(!f||/^\/=?\s/.test(F)))return 0;if(R3.has(u[0])&&!(u.spaced&&O1.has(u[0])))return 0}if(!f)i("missing / (unclosed regex)",{row:this.row,col:this.col});let A=F.length,[Y]=J2.exec(this.chunk.slice(A)),_=A+Y.length;if(!T3.test(Y))i(`invalid regular expression flags ${Y}`,{row:this.row,col:this.col+A,len:Y.length});return this.emit("REGEX",`/${W}/${Y}`,{len:_,data:{delimiter:"/"}}),_}jsToken(){if(this.chunk[0]!=="`")return 0;let $=h3.exec(this.chunk)||S3.exec(this.chunk);if(!$)return 0;let U=$[1],F=$[0].length;return this.emit("JS",U,{len:F,data:{here:$[0].startsWith("```")}}),F}literalToken(){let $=K3.exec(this.chunk),U=$?$[0]:this.chunk.charAt(0),F=U,W=this.prev();if(q3.test(U))this.tagParameters();if(U==="="&&W&&W[1]==="."&&!W.spaced){let f=this.tokens,u=f.length-2;while(u>=1&&f[u][0]==="PROPERTY"&&f[u-1]?.[1]===".")u-=2;if(u>=0&&(f[u][0]==="IDENTIFIER"||f[u][0]===")"||f[u][0]==="]")){let A=f.slice(u,f.length-1);W[0]="=",W[1]="=";for(let Y of A)this.tokens.push(G1(Y[0],Y[1],{pre:0,row:Y[2],col:Y[3],len:Y[4]}));return this.tokens.push(G1(".",".",{pre:0,row:this.row,col:this.col,len:1})),U.length}}if(W&&(U==="="||Z2.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,F="TERMINATOR";else if(U==="|>")F="PIPE";else if(U==="::=")F="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==="::")F="TYPE_ANNOTATION";else if(U==="~=")F="COMPUTED_ASSIGN";else if(U===":=")F="REACTIVE_ASSIGN";else if(U==="<=>")F="BIND";else if(U==="~>")F="EFFECT";else if(U==="=!")F="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 f=this.chunk.slice(1),u=/^@(\s*)=(?!=)/.exec(f);if(u){let Y=u[1];this.emit("IDENTIFIER","Object"),this.emit(".",".");let _=this.emit("PROPERTY","assign");return _.spaced=!0,this.emit("@","@"),this.emit(",",","),2+Y.length+1}let A=/^((?:(?!\s)[$\w\x7f-\uffff])+(?:\.[a-zA-Z_$][\w]*)*)(\s*)=(?!=)/.exec(f);if(A){let Y=A[1],_=A[2],Z=Y.split("."),w=()=>{this.emit("IDENTIFIER",Z[0]);for(let X=1;X<Z.length;X++)this.emit(".","."),this.emit("PROPERTY",Z[X])};w(),this.emit("=","="),this.emit("IDENTIFIER","Object"),this.emit(".","."),this.emit("PROPERTY","assign"),this.emit("CALL_START","("),w(),this.emit("COMPOUND_ASSIGN","??="),this.emit("{","{"),this.emit("}","}"),this.emit(",",",");let z=this.prev();return z.mergeClose=!0,1+Y.length+_.length+1}}else if(U==="*"&&W?.[0]==="EXPORT")F="EXPORT_ALL";else if(Z3.has(U))F="MATH";else if(w3.has(U))F="COMPARE";else if(Z2.has(U))F="COMPOUND_ASSIGN";else if(Q3.has(U))F="UNARY_MATH";else if(J3.has(U))F="SHIFT";else if(U==="?"&&W?.spaced)F="TERNARY";else if(U==="!?"&&W&&!W.spaced)F="DEFINED";else if(U==="?!"&&W&&!W.spaced)F="PRESENCE";else if(U==="?"&&(this.chunk[1]==="["||this.chunk[1]==="("))F="?.";else if(W){if(U==="("&&!W.spaced&&O1.has(W[0])){if(W[0]==="?.")W[0]="ES6_OPTIONAL_CALL";F="CALL_START"}if(U==="["&&!W.spaced&&X2.has(W[0])){if(F="INDEX_START",W[0]==="?.")W[0]="ES6_OPTIONAL_INDEX"}}if(U==="("||U==="{"||U==="[")this.ends.push({tag:A3[U],origin:[F,U]});else if(U===")"||U==="}"||U==="]")this.pair(U);return this.emit(F,U,{len:U.length}),U.length}tagParameters(){if(this.prevTag()!==")")return this.tagDoIife();let $=this.tokens.length-1,U=[];this.tokens[$][0]="PARAM_END";while($-- >0){let F=this.tokens[$];if(F[0]===")")U.push(F);else if(F[0]==="("||F[0]==="CALL_START")if(U.length)U.pop();else if(F[0]==="(")return F[0]="PARAM_START",this.tagDoIife($-1);else{this.tokens[this.tokens.length-1][0]="CALL_END";return}}}tagDoIife($){let U=this.tokens[$??this.tokens.length-1];if(U?.[0]==="DO")U[0]="DO_IIFE"}rewrite($){return this.tokens=$,this.removeLeadingNewlines(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.rewriteRender?.(),this.rewriteTypes(),this.tagPostfixConditionals(),this.addImplicitBracesAndParens(),this.addImplicitCallCommas(),this.closeMergeAssignments(),this.tokens}removeLeadingNewlines(){let $=0;while(this.tokens[$]?.[0]==="TERMINATOR")$++;if($>0)this.tokens.splice(0,$)}closeOpenCalls(){this.scanTokens(($,U)=>{if($[0]==="CALL_START")this.detectEnd(U+1,(F)=>F[0]===")"||F[0]==="CALL_END",(F)=>F[0]="CALL_END");return 1})}closeOpenIndexes(){this.scanTokens(($,U)=>{if($[0]==="INDEX_START")this.detectEnd(U+1,(F)=>F[0]==="]"||F[0]==="INDEX_END",(F,W)=>{if(this.tokens[W+1]?.[0]===":")$[0]="[",F[0]="]";else F[0]="INDEX_END"});return 1})}normalizeLines(){let $=null,U=null,F=null,W=(u,A)=>{return u[1]!==";"&&_3.has(u[0])&&!(u[0]==="TERMINATOR"&&A2.has(this.tokens[A+1]?.[0]))&&!(u[0]==="ELSE"&&$!=="THEN")||u[0]==="INDENT"&&!u.generated&&($==="->"||$==="=>")||u[0]===","&&($==="->"||$==="=>")&&!this.commaInImplicitCall(A)&&!this.commaInImplicitObject(A)||_2.has(u[0])&&(this.tokens[A-1]?.newLine||this.tokens[A-1]?.[0]==="OUTDENT")},f=(u,A)=>{let Y=this.tokens[A-1]?.[0]===","?A-1:A;this.tokens.splice(Y,0,F)};this.scanTokens((u,A,Y)=>{let[_]=u;if(_==="TERMINATOR"){if(this.tokens[A+1]?.[0]==="ELSE"&&this.tokens[A-1]?.[0]!=="OUTDENT")return Y.splice(A,1,...this.makeIndentation()),1;if(A2.has(this.tokens[A+1]?.[0]))return Y.splice(A,1),0}if(_==="CATCH")for(let Z=1;Z<=2;Z++){let w=this.tokens[A+Z]?.[0];if(w==="OUTDENT"||w==="TERMINATOR"||w==="FINALLY")return Y.splice(A+Z,0,...this.makeIndentation()),2+Z}if((_==="->"||_==="=>")&&(this.tokens[A+1]?.[0]===","||this.tokens[A+1]?.[0]==="]"))return[U,F]=this.makeIndentation(),Y.splice(A+1,0,U,F),1;if(Y2.has(_)&&this.tokens[A+1]?.[0]!=="INDENT"&&!(_==="ELSE"&&this.tokens[A+1]?.[0]==="IF")&&!(_==="ELSE"&&this.tokens[A-1]?.[0]!=="OUTDENT")){if($=_,[U,F]=this.makeIndentation(),_==="THEN")U.fromThen=!0;if(Y.splice(A+1,0,U),this.detectEnd(A+2,W,f),_==="THEN")Y.splice(A,1);return 1}return 1})}tagPostfixConditionals(){let $=null,U=(W,f)=>{return W[0]==="TERMINATOR"||W[0]==="INDENT"&&!Y2.has(this.tokens[f-1]?.[0])},F=(W)=>{if(W[0]!=="INDENT"||W.generated&&!W.fromThen)$[0]="POST_"+$[0]};this.scanTokens((W,f)=>{if(W[0]!=="IF"&&W[0]!=="UNLESS")return 1;if(this.tokens[f-1]?.[0]==="INTERPOLATION_START")return 1;return $=W,this.detectEnd(f+1,U,F),1})}addImplicitBracesAndParens(){let $=[],U=!1;this.scanTokens((F,W,f)=>{let[u]=F,A=f[W-1]||[],Y=f[W+1]||[],[_]=A,[Z]=Y,w=W,z=(H)=>W-w+H,X=()=>$[$.length-1],K=(H)=>H?.[2]?.ours,D=()=>K(X())&&X()?.[0]==="(",R=()=>K(X())&&X()?.[0]==="{",J=(H)=>{$.push(["(",H,{ours:!0}]),f.splice(H,0,p("CALL_START","("))},Q=()=>{$.pop(),f.splice(W,0,p("CALL_END",")")),W+=1},q=(H,P={})=>{$.push(["{",H,{sameLine:!0,startsLine:P.startsLine??!0,ours:!0}]);let E=p("{","{");if(!E.data)E.data={};E.data.generated=!0,f.splice(H,0,E)},O=(H)=>{H=H??W,$.pop(),f.splice(H,0,p("}","}")),W+=1};if((D()||R())&&Y3.has(u))return $.push(["CONTROL",W,{ours:!0}]),z(1);if(u==="INDENT"&&K(X())){if(_!=="=>"&&_!=="->"&&_!=="["&&_!=="("&&_!==","&&_!=="{"&&_!=="ELSE"&&_!=="=")while(D()||R()&&_!==":")if(D())Q();else O();if(X()?.[2]?.ours&&X()[0]==="CONTROL")$.pop();return $.push([u,W]),z(1)}if(s.has(u))return $.push([u,W]),z(1);if(d.has(u)){while(K(X()))if(D())Q();else if(R())O();else $.pop();$.pop()}if(b1.has(u)&&F.spaced&&(q1.has(Z)||Z==="..."&&q1.has(f[W+2]?.[0])||U3.has(Z)&&!Y.spaced&&!Y.newLine)&&!((u==="]"||u==="}")&&(Z==="->"||Z==="=>")))return J(W+1),z(2);if(b1.has(u)&&this.tokens[W+1]?.[0]==="INDENT"&&this.looksObjectish(W+2)&&!this.findTagsBackwards(W,["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"]))return J(W+1),$.push(["INDENT",W+2]),z(3);if(u==="TERNARY")U=!0;if(u===":"){if(U)return U=!1,z(1);let H=d.has(this.tokens[W-1]?.[0])?$[$.length-1]?.[1]??W-1:W-1;if(this.tokens[W-2]?.[0]==="@")H=W-2;let P=H<=0||_1.has(this.tokens[H-1]?.[0])||this.tokens[H-1]?.newLine;if(X()){let[E,B]=X(),S=$[$.length-2];if((E==="{"||E==="INDENT"&&S?.[0]==="{"&&!K(S))&&(P||this.tokens[H-1]?.[0]===","||this.tokens[H-1]?.[0]==="{"||this.tokens[H]?.[0]==="{"))return z(1)}return q(H,{startsLine:!!P}),z(2)}if(_1.has(u))for(let H=$.length-1;H>=0;H--){if(!K($[H]))break;if($[H][0]==="{")$[H][2].sameLine=!1}let M=_==="OUTDENT"||A.newLine,G=u==="||"||u==="&&",I=!1;if(G){let H=W+1,P=f[H]?.[0];if(P==="("||P==="["||P==="{"){for(let E=1;++H<f.length&&E>0;)if(P=f[H][0],P==="("||P==="["||P==="{")E++;else if(P===")"||P==="]"||P==="}")E--}else if(P&&P!=="TERMINATOR"&&P!=="OUTDENT"&&P!==",")H++;I=f[H]?.[0]===","}if(F3.has(u)&&!I||_2.has(u)&&M)while(K(X())){let[H,,{sameLine:P,startsLine:E}]=X();if(D()&&_!==",")Q();else if(R()&&!G&&P&&u!=="TERMINATOR"&&_!==":")O();else if(R()&&u==="TERMINATOR"&&_!==","&&!(E&&this.looksObjectish(W+1)))O();else if(X()?.[2]?.ours&&X()[0]==="CONTROL"&&f[X()[1]]?.[0]==="CLASS"&&u==="TERMINATOR")$.pop();else break}if(u===","&&!this.looksObjectish(W+1)&&R()&&(Z!=="TERMINATOR"||!this.looksObjectish(W+2))){let H=Z==="OUTDENT"?1:0;while(R())O(W+H)}return z(1)})}addImplicitCallCommas(){let $=0,U=0,F=this.tokens;while(U<F.length){let W=F[U][0],f=U>0?F[U-1][0]:null;if(W==="CALL_START"||W==="(")$++;if(W==="CALL_END"||W===")")$--;if($>0&&(W==="->"||W==="=>")&&W3.has(f))F.splice(U,0,p(",",",")),U++;U++}}scanTokens($){let U=0;while(U<this.tokens.length)U+=$.call(this,this.tokens[U],U,this.tokens)}detectEnd($,U,F,W={}){let f=0;while($<this.tokens.length){let u=this.tokens[$];if(f===0&&U.call(this,u,$))return F.call(this,u,$);if(s.has(u[0]))f++;if(d.has(u[0]))f--;if(f<0){if(W.returnOnNegativeLevel)return;return F.call(this,u,$)}$++}}closeMergeAssignments(){let $=this.tokens;for(let U=0;U<$.length;U++){if(!$[U].mergeClose)continue;let F=0;for(let W=U+1;W<$.length;W++){let f=$[W][0];if(f==="("||f==="["||f==="{"||f==="CALL_START"||f==="INDEX_START"||f==="INDENT")F++;if(f===")"||f==="]"||f==="}"||f==="CALL_END"||f==="INDEX_END"||f==="OUTDENT")F--;if(F<0||F===0&&f==="TERMINATOR"){$.splice(W,0,p("CALL_END",")",$[W-1]));break}if(W===$.length-1){$.splice(W+1,0,p("CALL_END",")",$[W]));break}}}}commaInImplicitCall($){let U=0;for(let F=$-1;F>=0;F--){let W=this.tokens[F][0];if(d.has(W)){U++;continue}if(s.has(W)){if(W==="INDENT")return!1;if(U--,U<0)return!1;continue}if(U>0)continue;if(b1.has(W)&&this.tokens[F].spaced){let f=this.tokens[F+1]?.[0];return q1.has(f)||f==="..."&&q1.has(this.tokens[F+2]?.[0])}}return!1}commaInImplicitObject($){let U=0;for(let F=$-1;F>=0;F--){let W=this.tokens[F][0];if(d.has(W)){U++;continue}if(s.has(W)){if(U--,U<0)return!1;continue}if(U>0)continue;if(W===":"&&F>0&&this.tokens[F-1][0]==="PROPERTY")return this.looksObjectish($+1);if(_1.has(W))return!1}return!1}looksObjectish($){if(!this.tokens[$])return!1;if(this.tokens[$]?.[0]==="@"&&this.tokens[$+2]?.[0]===":")return!0;if(this.tokens[$+1]?.[0]===":")return!0;if(s.has(this.tokens[$]?.[0])){let U=null;if(this.detectEnd($+1,(F)=>d.has(F[0]),(F,W)=>U=W),U&&this.tokens[U+1]?.[0]===":")return!0}return!1}findTagsBackwards($,U){let F=new Set(U),W=[];while($>=0){let f=this.tokens[$]?.[0];if(!W.length&&F.has(f))return!0;if(d.has(f))W.push(f);if(s.has(f)&&W.length)W.pop();if(!W.length&&(s.has(f)&&!this.tokens[$]?.generated||_1.has(f)))break;$--}return!1}makeIndentation($){let U=p("INDENT",2),F=p("OUTDENT",2);if($)U.generated=F.generated=!0,U.origin=F.origin=$;else U.explicit=F.explicit=!0;return[U,F]}}f2(r);var y3={symbolIds:{$accept:0,$end:1,error:2,Root:3,Body:4,Line:5,TERMINATOR:6,Expression:7,ExpressionLine:8,Statement:9,Return:10,STATEMENT:11,Import:12,Export:13,Value:14,Code:15,Operation:16,Assign:17,ReactiveAssign:18,ComputedAssign:19,ReadonlyAssign:20,Effect:21,If:22,Try:23,While:24,For:25,Switch:26,Class:27,Component:28,Render:29,Throw:30,Yield:31,Def:32,Enum:33,CodeLine:34,OperationLine:35,Assignable:36,Literal:37,Parenthetical:38,Range:39,Invocation:40,DoIife:41,This:42,Super:43,MetaProperty:44,AlphaNumeric:45,JS:46,Regex:47,UNDEFINED:48,NULL:49,BOOL:50,INFINITY:51,NAN:52,NUMBER:53,String:54,Identifier:55,IDENTIFIER:56,Property:57,PROPERTY:58,STRING:59,STRING_START:60,Interpolations:61,STRING_END:62,InterpolationChunk:63,INTERPOLATION_START:64,INTERPOLATION_END:65,INDENT:66,OUTDENT:67,REGEX:68,REGEX_START:69,REGEX_END:70,RegexWithIndex:71,",":72,"=":73,REACTIVE_ASSIGN:74,COMPUTED_ASSIGN:75,Block:76,READONLY_ASSIGN:77,EFFECT:78,SimpleAssignable:79,Array:80,Object:81,ThisProperty:82,".":83,"?.":84,INDEX_START:85,INDEX_END:86,Slice:87,ES6_OPTIONAL_INDEX:88,"{":89,ObjAssignable:90,":":91,FOR:92,ForVariables:93,FOROF:94,OptComma:95,"}":96,WHEN:97,OWN:98,AssignList:99,AssignObj:100,ObjRestValue:101,SimpleObjAssignable:102,"[":103,"]":104,"@":105,"...":106,ObjSpreadExpr:107,SUPER:108,Arguments:109,DYNAMIC_IMPORT:110,Elisions:111,ArgElisionList:112,OptElisions:113,ArgElision:114,Arg:115,Elision:116,RangeDots:117,"..":118,DEF:119,CALL_START:120,ParamList:121,CALL_END:122,PARAM_START:123,PARAM_END:124,FuncGlyph:125,"->":126,"=>":127,Param:128,ParamVar:129,Splat:130,ES6_OPTIONAL_CALL:131,ArgList:132,SimpleArgs:133,THIS:134,NEW_TARGET:135,IMPORT_META:136,"(":137,")":138,RETURN:139,THROW:140,YIELD:141,FROM:142,IfBlock:143,IF:144,ELSE:145,UnlessBlock:146,UNLESS:147,POST_IF:148,POST_UNLESS:149,TRY:150,Catch:151,FINALLY:152,CATCH:153,SWITCH:154,Whens:155,When:156,LEADING_WHEN:157,WhileSource:158,WHILE:159,UNTIL:160,Loop:161,LOOP:162,FORIN:163,BY:164,FORAS:165,AWAIT:166,FORASAWAIT:167,ForValue:168,CLASS:169,EXTENDS:170,ENUM:171,COMPONENT:172,ComponentBody:173,ComponentLine:174,OFFER:175,ACCEPT:176,RENDER:177,IMPORT:178,ImportDefaultSpecifier:179,ImportNamespaceSpecifier:180,ImportSpecifierList:181,ImportSpecifier:182,AS:183,DEFAULT:184,IMPORT_ALL:185,EXPORT:186,ExportSpecifierList:187,EXPORT_ALL:188,ExportSpecifier:189,UNARY:190,DO:191,DO_IIFE:192,UNARY_MATH:193,"-":194,"+":195,"?":196,DEFINED:197,PRESENCE:198,"--":199,"++":200,MATH:201,"**":202,SHIFT:203,COMPARE:204,"&":205,"^":206,"|":207,"||":208,"??":209,"&&":210,"!?":211,PIPE:212,RELATION:213,TERNARY:214,COMPOUND_ASSIGN:215},tokenNames:{2:"error",6:"TERMINATOR",11:"STATEMENT",46:"JS",48:"UNDEFINED",49:"NULL",50:"BOOL",51:"INFINITY",52:"NAN",53:"NUMBER",56:"IDENTIFIER",58:"PROPERTY",59:"STRING",60:"STRING_START",62:"STRING_END",64:"INTERPOLATION_START",65:"INTERPOLATION_END",66:"INDENT",67:"OUTDENT",68:"REGEX",69:"REGEX_START",70:"REGEX_END",72:",",73:"=",74:"REACTIVE_ASSIGN",75:"COMPUTED_ASSIGN",77:"READONLY_ASSIGN",78:"EFFECT",83:".",84:"?.",85:"INDEX_START",86:"INDEX_END",88:"ES6_OPTIONAL_INDEX",89:"{",91:":",92:"FOR",94:"FOROF",96:"}",97:"WHEN",98:"OWN",103:"[",104:"]",105:"@",106:"...",108:"SUPER",110:"DYNAMIC_IMPORT",118:"..",119:"DEF",120:"CALL_START",122:"CALL_END",123:"PARAM_START",124:"PARAM_END",126:"->",127:"=>",131:"ES6_OPTIONAL_CALL",134:"THIS",135:"NEW_TARGET",136:"IMPORT_META",137:"(",138:")",139:"RETURN",140:"THROW",141:"YIELD",142:"FROM",144:"IF",145:"ELSE",147:"UNLESS",148:"POST_IF",149:"POST_UNLESS",150:"TRY",152:"FINALLY",153:"CATCH",154:"SWITCH",157:"LEADING_WHEN",159:"WHILE",160:"UNTIL",162:"LOOP",163:"FORIN",164:"BY",165:"FORAS",166:"AWAIT",167:"FORASAWAIT",169:"CLASS",170:"EXTENDS",171:"ENUM",172:"COMPONENT",175:"OFFER",176:"ACCEPT",177:"RENDER",178:"IMPORT",183:"AS",184:"DEFAULT",185:"IMPORT_ALL",186:"EXPORT",188:"EXPORT_ALL",190:"UNARY",191:"DO",192:"DO_IIFE",193:"UNARY_MATH",194:"-",195:"+",196:"?",197:"DEFINED",198:"PRESENCE",199:"--",200:"++",201:"MATH",202:"**",203:"SHIFT",204:"COMPARE",205:"&",206:"^",207:"|",208:"||",209:"??",210:"&&",211:"!?",212:"PIPE",213:"RELATION",214:"TERNARY",215:"COMPOUND_ASSIGN"},parseTable:(()=>{let $=[107,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,-1,1,2,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,1,1,0,2,1,5,-2,107,5,1,5,59,2,71,-3,-3,-3,-3,-3,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-6,-6,-6,-6,-6,-6,127,-6,-6,-6,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,9,1,5,59,1,1,5,32,18,16,-7,-7,-7,-7,-7,-7,-7,-7,-7,14,1,5,59,1,1,5,32,18,16,10,1,9,1,1,-8,-8,-8,-8,-8,-8,-8,-8,-8,128,129,130,96,97,56,1,5,48,5,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,3,9,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-13,-13,134,105,106,-13,-13,-13,-13,137,138,139,-13,140,-13,-13,-13,-13,-13,-13,-13,135,-13,141,-13,-13,136,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,131,132,133,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,46,1,5,59,1,1,5,11,1,1,1,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,142,143,144,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,9,1,5,59,1,1,5,32,18,16,-33,-33,-33,-33,-33,-33,-33,-33,-33,9,1,5,59,1,1,5,32,18,16,-34,-34,-34,-34,-34,-34,-34,-34,-34,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,145,146,147,148,149,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,154,104,-173,-173,-173,156,157,155,99,159,158,153,150,-173,-173,151,152,106,5,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,161,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,162,102,103,160,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,103,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,163,164,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,103,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,166,167,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,168,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,174,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,175,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,176,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,177,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,45,14,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,7,14,2,3,2,13,2,1,1,7,1,1,1,55,179,180,181,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,178,72,73,93,99,83,87,84,85,169,170,90,91,86,88,89,82,173,45,14,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,7,14,2,3,2,13,2,1,1,7,1,1,1,55,179,180,181,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,182,72,73,93,99,83,87,84,85,169,170,90,91,86,88,89,82,173,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,183,184,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,185,103,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,187,186,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,162,102,103,188,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,189,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,2,66,10,162,190,2,66,10,162,191,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,14,39,16,1,24,1,1,7,4,5,5,2,24,37,2,195,154,104,156,157,155,99,192,193,83,158,197,194,196,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,198,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,199,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,90,1,5,8,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,4,3,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,4,1,1,1,1,1,7,1,1,1,1,7,3,1,10,1,3,1,1,2,3,22,2,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-305,-305,179,180,181,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-305,162,-305,102,103,-305,200,202,72,73,93,-305,99,-305,-305,-305,-305,-305,83,-305,87,-305,84,85,-305,-305,169,-305,170,90,91,86,88,89,82,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,201,173,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,1,66,203,2,66,10,162,204,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,205,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,206,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,139,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,6,1,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,1,3,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,2,2,1,5,1,8,4,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-224,-224,207,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-224,208,-224,102,103,-224,53,52,72,73,93,-224,99,-224,-224,-224,-224,-224,83,-224,87,-224,84,85,-224,66,-224,169,-224,170,90,91,86,88,89,82,-224,69,64,65,209,54,94,-224,55,95,-224,-224,56,60,57,-224,-224,58,98,-224,-224,-224,49,-224,61,67,62,63,70,71,171,172,173,46,47,48,50,51,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,2,55,1,210,104,2,55,1,211,104,6,15,19,89,2,1,1,213,212,42,43,90,91,138,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,6,1,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,1,3,1,1,1,1,1,7,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,2,2,1,5,1,8,4,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-221,-221,214,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-221,215,-221,102,103,-221,53,52,72,73,93,-221,99,-221,-221,-221,-221,-221,83,-221,87,-221,84,85,-221,66,-221,169,-221,170,90,91,86,88,89,82,-221,69,64,65,54,94,-221,55,95,-221,-221,56,60,57,-221,-221,58,98,-221,-221,-221,49,-221,61,67,62,63,70,71,171,172,173,46,47,48,50,51,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,9,54,1,1,3,1,29,90,1,5,216,220,104,105,106,219,217,218,221,60,14,1,3,1,1,1,6,1,4,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,14,2,3,2,9,4,2,1,1,7,1,1,1,32,2,1,12,4,4,179,180,228,229,230,231,223,224,225,226,234,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,227,104,105,106,102,103,53,235,72,73,93,222,83,87,84,85,66,169,170,90,91,86,88,89,82,61,67,62,232,233,173,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,106,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,236,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,237,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,113,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,6,1,1,1,1,7,3,11,1,1,1,2,2,1,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,238,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,244,102,103,245,53,52,72,73,93,99,59,83,239,87,249,84,85,240,241,243,246,242,66,42,43,90,91,248,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,4,83,2,24,11,251,252,250,141,2,109,11,253,141,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,56,1,5,51,1,1,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-206,-206,254,255,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,1,83,256,1,83,257,54,11,35,2,1,1,1,1,1,3,3,1,6,2,1,9,11,3,11,2,3,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,54,11,35,2,1,1,1,1,1,3,3,1,6,2,1,9,11,3,11,2,3,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,258,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,259,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,260,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,261,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,263,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,162,102,103,262,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,23,6,39,8,1,1,1,1,1,1,1,6,1,5,10,8,6,3,1,1,1,1,2,1,-109,269,100,101,271,104,272,255,105,106,-109,-109,-109,273,264,-109,265,270,274,266,267,268,275,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,45,14,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,7,14,2,3,2,13,2,1,1,7,1,1,1,55,179,180,181,34,35,36,276,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,235,72,73,93,99,83,87,84,85,169,170,90,91,86,88,89,82,173,65,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,4,3,3,1,10,1,3,1,1,2,3,13,11,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,57,1,5,53,1,2,2,1,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,6,54,5,1,1,2,1,280,105,106,277,278,279,109,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,2,1,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,1,1,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,-5,281,-5,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-5,-5,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,-5,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,282,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,283,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,284,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,285,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,286,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,287,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,288,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,289,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,290,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,293,165,291,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,292,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,296,165,294,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,295,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,299,165,297,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,298,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,300,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,301,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,302,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,303,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,304,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,305,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,14,39,16,1,24,1,1,7,4,5,5,2,24,37,2,309,154,104,156,157,155,99,306,307,83,158,197,308,196,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,310,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,311,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,55,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,55,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,2,109,11,312,141,2,57,1,313,255,2,57,1,314,255,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,2,7,1,1,1,1,5,2,3,11,2,1,2,2,7,1,1,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,315,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,320,77,78,79,80,81,100,101,92,104,105,106,316,102,103,318,53,52,72,73,93,317,99,59,83,87,322,84,85,319,321,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,85,323,109,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,1,2,2,5,4,3,1,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,327,102,103,53,52,72,73,93,99,59,83,87,249,84,85,326,66,324,42,43,90,91,248,325,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,2,57,1,329,255,2,57,1,330,255,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,331,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,332,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,334,333,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,335,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,337,336,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,338,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,103,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,340,339,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,162,102,103,341,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,343,342,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,344,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,103,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,346,345,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,162,102,103,347,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,9,6,60,1,5,23,1,8,18,2,-217,-217,-217,349,350,-217,-217,-217,348,6,6,60,1,5,50,2,-174,-174,-174,-174,-174,-174,7,6,60,1,5,1,49,2,-178,-178,-178,-178,351,-178,-178,15,6,49,1,10,1,5,8,1,1,7,14,2,17,2,5,-181,154,104,-181,-181,-181,156,157,155,99,159,158,-181,-181,352,11,6,60,1,5,1,21,28,2,39,2,2,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,11,6,60,1,5,1,21,28,2,39,2,2,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,11,6,60,1,5,1,21,28,2,39,2,2,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,11,6,60,1,5,1,21,28,2,39,2,2,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,2,57,1,254,255,113,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,6,1,1,1,1,7,3,11,1,1,1,2,2,1,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,244,102,103,245,53,52,72,73,93,99,59,83,239,87,249,84,85,240,241,243,246,242,66,42,43,90,91,248,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,9,1,5,59,1,1,5,32,18,16,-170,-170,-170,-170,-170,-170,-170,-170,-170,106,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,354,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,353,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,125,126,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,118,-373,120,-373,-373,-373,9,1,5,59,1,1,5,32,18,16,-370,-370,-370,-370,-370,-370,-370,-370,-370,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,125,126,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,118,-374,120,-374,-374,-374,9,1,5,59,1,1,5,32,18,16,-371,-371,-371,-371,-371,-371,-371,-371,-371,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,125,126,-375,-375,-375,-375,-375,-375,-375,-375,-375,111,-375,-375,-375,-375,-375,-375,118,-375,120,-375,-375,-375,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,154,104,-173,-173,-173,156,157,155,99,159,158,153,355,-173,-173,151,152,2,66,10,162,160,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,163,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,166,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,5,15,108,2,1,1,213,169,170,90,91,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,125,126,-376,-376,-376,-376,-376,-376,-376,-376,-376,111,-376,-376,-376,-376,-376,-376,118,-376,120,-376,-376,-376,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,125,126,-377,-377,-377,-377,-377,-377,-377,-377,-377,111,-377,-377,-377,-377,-377,-377,118,-377,120,-377,-377,-377,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,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,125,126,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,118,-381,120,-381,-381,-381,2,81,8,356,99,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-383,-383,-86,-86,-383,-383,-383,-383,-86,-86,-86,-86,-86,-86,-86,-86,-383,-86,-383,-383,-383,-383,-383,-383,-383,-383,-86,-383,-383,-86,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-86,-86,-86,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,10,54,5,1,23,1,1,3,21,11,11,134,105,106,137,138,139,140,135,141,136,3,83,1,1,142,143,144,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-384,-384,-86,-86,-384,-384,-384,-384,-86,-86,-86,-86,-86,-86,-86,-86,-384,-86,-384,-384,-384,-384,-384,-384,-384,-384,-86,-384,-384,-86,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-86,-86,-86,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,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,5,1,8,4,1,1,1,1,1,4,1,359,357,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,358,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-83,-83,-83,-83,-83,-83,-83,-83,127,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,124,125,126,96,97,-83,-83,-83,-83,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,360,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,3,66,10,68,162,361,362,46,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,2,1,1,6,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,363,364,365,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,4,94,69,2,2,367,366,368,369,11,55,1,24,1,1,7,4,10,2,24,39,154,104,156,157,155,99,370,159,158,197,196,11,55,1,24,1,1,7,4,10,2,24,39,154,104,156,157,155,99,371,159,158,197,196,3,66,10,88,162,372,373,5,72,22,69,2,2,374,-303,-303,-303,-303,6,72,1,21,69,2,2,-301,375,-301,-301,-301,-301,23,66,26,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,376,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,3,155,1,1,377,378,379,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,380,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,61,1,5,53,1,5,1,1,5,1,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-309,-309,-86,-86,-309,162,-309,-309,-86,-86,-86,381,-86,-86,-86,-86,-86,-309,-86,-309,-309,-309,-309,-309,-309,-309,-309,-86,-309,-309,-86,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,382,-309,-309,-86,-86,-86,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,107,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,1,1,8,4,1,1,1,1,1,4,1,385,386,387,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,383,384,388,389,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,125,126,-222,-222,-222,-222,-222,-222,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,81,8,390,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,125,126,-225,-225,-225,-225,-225,-225,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,81,8,391,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,5,1,8,4,1,1,1,1,1,4,1,392,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,3,66,10,44,162,394,393,2,66,10,162,395,9,1,5,59,1,1,5,32,18,16,-372,-372,-372,-372,-372,-372,-372,-372,-372,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,125,126,-219,-219,-219,-219,-219,-219,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,81,8,396,99,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,2,72,70,398,397,1,142,399,7,55,1,10,30,85,1,2,404,104,403,400,401,402,405,2,72,70,-340,-340,1,183,406,26,6,39,8,1,1,1,1,1,1,1,6,1,5,10,8,6,3,1,1,1,1,2,1,78,3,2,-109,269,100,101,411,104,272,255,105,106,410,-109,-109,273,264,407,265,270,274,266,267,268,275,412,408,409,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,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,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-89,-89,-89,-89,-89,-89,-89,-89,413,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-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,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,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,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,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,5,1,8,4,1,1,1,1,1,4,1,414,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,415,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,142,416,58,1,5,53,1,5,1,1,5,2,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,146,147,148,149,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,2,6,132,107,417,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,5,1,8,4,1,1,1,1,1,4,1,418,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,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-199,-199,-199,-199,127,-199,322,419,321,-199,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,109,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,6,1,1,1,1,7,3,11,1,1,1,2,2,5,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,245,53,52,72,73,93,99,59,83,420,87,249,84,85,422,421,66,42,43,90,91,248,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,9,6,60,1,5,23,1,8,9,9,-217,-217,-217,424,425,-217,-217,423,-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,5,1,8,4,1,1,1,1,1,4,1,426,-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,5,1,8,4,1,1,1,1,1,4,1,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,244,102,103,245,53,52,72,73,93,99,59,83,87,249,84,85,428,427,243,246,242,66,42,43,90,91,248,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,6,11,3,11,1,1,1,2,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,5,6,60,1,5,32,-150,-150,-150,-150,-150,6,6,60,1,5,32,18,-200,-200,-200,-200,-200,-200,6,6,60,1,5,32,18,-201,-201,-201,-201,-201,-201,106,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,6,1,1,1,1,7,3,11,1,1,3,2,9,3,1,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,-202,429,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-202,-202,102,103,-202,53,52,72,73,93,99,59,83,-202,87,84,85,66,-202,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,55,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,2,57,1,430,255,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,431,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,432,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,55,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,2,57,1,433,255,2,57,1,434,255,24,66,10,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,435,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,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,436,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-256,-256,-256,-256,-256,-256,-256,-256,127,-256,-256,437,-256,-256,-256,-256,-256,-256,-256,-256,125,126,96,97,-256,-256,-256,-256,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-258,-258,-258,-258,-258,-258,-258,-258,127,-258,-258,438,-258,-258,-258,-258,-258,-258,-258,-258,125,126,96,97,-258,-258,-258,-258,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,45,1,5,59,1,1,5,4,10,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-265,-265,-265,162,-265,-265,439,-265,-265,127,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,125,126,96,97,-265,-265,-265,-265,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,6,6,60,1,5,19,5,-114,-114,-114,-114,440,-114,8,6,60,1,5,23,1,8,18,-217,-217,-217,442,441,-217,-217,-217,7,6,60,1,5,1,18,5,-123,-123,-123,-123,443,-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,5,1,8,4,1,1,1,1,1,4,1,444,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,3,57,1,45,254,255,445,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,449,451,450,271,104,272,255,448,273,99,446,87,447,452,453,86,82,55,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,-39,-39,454,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,6,54,5,1,2,1,1,280,105,106,455,456,279,4,59,1,2,2,-58,-58,-58,-58,107,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,457,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,459,458,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,125,126,-387,-387,-387,-387,-387,-387,-387,-387,110,111,-387,-387,-387,-387,-387,-387,118,-387,120,-387,-387,-387,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,125,126,-388,-388,-388,-388,-388,-388,-388,-388,110,111,-388,-388,-388,-388,-388,-388,118,-388,120,-388,-388,-388,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,125,126,-389,-389,-389,-389,-389,-389,-389,-389,-389,111,-389,-389,-389,-389,-389,-389,118,-389,120,-389,-389,-389,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,125,126,-390,-390,-390,-390,-390,-390,-390,-390,-390,111,-390,-390,-390,-390,-390,-390,118,-390,120,-390,-390,-390,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,125,126,-391,-391,-391,-391,-391,-391,109,108,110,111,-391,-391,-391,-391,-391,-391,118,-391,120,-391,-391,-391,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,125,126,-392,-392,-392,-392,-392,-392,109,108,110,111,112,-392,-392,-392,-392,-392,118,-392,120,-392,122,-392,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,125,126,-393,-393,-393,-393,-393,-393,109,108,110,111,112,113,-393,-393,-393,-393,118,-393,120,-393,122,-393,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,125,126,-394,-394,-394,-394,-394,-394,109,108,110,111,112,113,114,-394,-394,-394,118,-394,120,-394,122,-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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,125,126,-395,-395,-395,-395,-395,-395,109,108,110,111,112,113,114,115,-395,-395,118,-395,120,-395,122,-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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,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,-403,118,119,120,-403,122,-403,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-404,-404,-404,-404,-404,-404,-404,-404,127,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,124,125,126,96,97,-404,-404,-404,-404,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-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,27,1,6,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,113,114,115,116,-402,118,-402,120,-402,122,-402,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-405,-405,-405,-405,-405,-405,-405,-405,127,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,124,125,126,96,97,-405,-405,-405,-405,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,125,126,-406,-406,-406,-406,-406,-406,109,108,110,111,112,113,114,115,116,117,118,119,120,-406,122,-406,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,125,126,-407,-407,-407,-407,-407,-407,109,108,110,111,112,-407,-407,-407,-407,-407,118,-407,120,-407,-407,-407,23,91,1,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,460,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-236,-236,-236,-236,-236,-236,-236,-236,127,-236,-236,-236,-236,-236,-236,-236,-236,-236,461,-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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-240,-240,-240,-240,-240,-240,-240,-240,127,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,124,125,126,96,97,-240,-240,-240,-240,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,94,69,2,2,463,462,464,465,11,55,1,24,1,1,7,4,10,2,24,39,154,104,156,157,155,99,466,159,158,197,196,11,55,1,24,1,1,7,4,10,2,24,39,154,104,156,157,155,99,467,159,158,197,196,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,468,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-235,-235,-235,-235,-235,-235,-235,-235,127,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,125,126,96,97,-235,-235,-235,-235,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-239,-239,-239,-239,-239,-239,-239,-239,127,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,124,125,126,96,97,-239,-239,-239,-239,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,55,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,26,86,6,14,11,1,30,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,469,127,322,470,321,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,104,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,5,2,3,11,2,1,2,2,7,1,1,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,471,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,472,99,59,83,87,322,84,85,319,321,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,86,473,1,86,474,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,5,1,8,4,1,1,1,1,1,4,1,475,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-164,102,103,53,52,72,73,93,-164,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,-46,-46,-46,-46,-46,476,-46,-46,-46,-67,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,55,11,35,2,1,1,1,1,1,3,3,1,7,1,1,9,8,3,3,11,2,3,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,55,11,35,2,1,1,1,1,1,3,3,1,7,1,1,9,8,3,3,11,2,3,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,477,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,478,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,55,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,8,6,60,1,5,23,1,8,18,-217,-217,-217,480,479,-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,5,1,8,4,1,1,1,1,1,4,1,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,327,102,103,53,52,72,73,93,99,59,83,87,249,84,85,326,66,42,43,90,91,248,481,86,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,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-199,-199,-199,-199,127,-199,-199,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,23,86,6,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,482,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,5,1,8,4,1,1,1,1,1,4,1,483,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,125,126,-68,-68,-68,-68,-68,-68,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,484,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,485,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-71,-71,-71,-71,-71,-71,-71,-71,127,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,124,125,126,96,97,-71,-71,-71,-71,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,486,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,487,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-74,-74,-74,-74,-74,-74,-74,-74,127,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,124,125,126,96,97,-74,-74,-74,-74,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,488,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-77,-77,-77,-77,-77,-77,-77,-77,127,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,124,125,126,96,97,-77,-77,-77,-77,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,489,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,490,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-80,-80,-80,-80,-80,-80,-80,-80,127,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,124,125,126,96,97,-80,-80,-80,-80,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,491,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,3,125,1,1,492,90,91,17,6,49,1,10,1,13,1,1,7,7,7,1,1,1,16,6,1,-218,154,104,-218,-218,156,157,155,99,-218,159,-218,158,153,-218,493,152,2,6,60,494,495,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,496,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,6,6,60,1,5,50,2,-180,-180,-180,-180,-180,-180,57,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,3,1,4,2,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,2,6,61,107,497,9,6,60,1,5,23,1,8,18,2,-217,-217,-217,349,350,-217,-217,-217,498,1,67,499,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,125,126,-409,-409,-409,-409,-409,-409,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,500,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,501,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-84,-84,-84,-84,-84,-84,-84,-84,127,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,124,125,126,96,97,-84,-84,-84,-84,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,502,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,503,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,2,66,10,162,504,6,55,1,10,10,5,8,505,104,162,507,506,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,5,1,8,4,1,1,1,1,1,4,1,508,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,509,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,510,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,511,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,94,512,1,165,513,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,514,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,10,55,1,24,1,1,7,14,2,24,39,154,104,156,157,155,99,159,158,197,515,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,516,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,3,155,1,1,517,378,379,4,67,78,11,1,518,519,520,379,3,67,78,12,-252,-252,-252,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,6,1,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,522,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,521,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,45,1,5,59,1,1,5,4,10,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-307,-307,-307,162,-307,-307,523,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,125,126,-307,-307,-307,-307,-307,-307,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,524,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,2,6,61,526,525,2,6,61,-315,-315,24,6,61,25,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-318,-318,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,6,61,-319,-319,7,6,61,81,1,9,1,1,-320,-320,128,129,130,96,97,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,527,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,56,528,1,67,529,1,67,530,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,125,126,-227,-227,-227,-227,-227,-227,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,154,104,-173,-173,-173,156,157,155,99,159,158,153,531,-173,-173,151,152,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,1,67,532,3,54,5,1,533,105,106,3,89,91,5,535,534,221,3,54,5,1,536,105,106,1,142,537,8,6,60,1,5,23,1,8,18,-217,-217,-217,539,538,-217,-217,-217,5,6,60,1,5,24,-331,-331,-331,-331,-331,6,55,1,10,115,1,2,404,104,403,540,402,405,6,6,60,1,5,24,87,-336,-336,-336,-336,-336,541,6,6,60,1,5,24,87,-338,-338,-338,-338,-338,542,2,55,1,543,104,14,1,5,59,1,1,5,32,18,16,4,6,1,10,1,-342,-342,-342,-342,-342,-342,-342,-342,-342,544,-342,-342,-342,-342,8,6,60,1,5,23,1,8,18,-217,-217,-217,546,545,-217,-217,-217,5,6,60,1,5,24,-360,-360,-360,-360,-360,6,55,1,10,118,3,2,548,104,410,412,547,409,12,6,60,1,5,1,10,1,1,6,5,24,63,-365,-365,-365,-365,-120,-120,-120,-120,-120,-365,-120,549,6,6,60,1,5,24,87,-368,-368,-368,-368,-368,550,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,5,1,8,4,1,1,1,1,1,4,1,552,551,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,553,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-355,-355,-355,-355,-355,-355,127,-355,-355,-355,-355,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,81,8,554,99,3,54,5,1,555,105,106,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,2,6,61,107,556,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,557,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,6,11,3,11,1,1,1,2,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,426,-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,559,558,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,5,1,8,4,1,1,1,1,1,4,1,-218,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-218,-218,102,103,245,53,52,72,73,93,99,59,-218,83,-218,87,249,84,85,561,560,246,242,66,-218,42,43,90,91,248,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,4,6,60,1,37,562,-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,5,1,8,4,1,1,1,1,1,4,1,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,9,6,60,1,5,23,1,8,9,9,-217,-217,-217,424,425,-217,-217,563,-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,5,1,8,4,1,1,1,1,1,4,1,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,245,53,52,72,73,93,99,59,83,87,249,84,85,422,421,66,42,43,90,91,248,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,28,6,60,1,5,20,12,18,26,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-186,-186,-186,-186,127,-186,-186,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,23,86,6,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,564,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,5,1,8,4,1,1,1,1,1,4,1,565,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,566,-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,5,1,8,4,1,1,1,1,1,4,1,567,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,568,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,569,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,570,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,3,6,60,30,572,573,571,23,6,39,8,1,1,1,1,1,1,1,6,1,15,8,6,4,1,1,1,1,1,1,16,-218,269,100,101,271,104,272,255,105,106,-218,-218,273,575,-218,574,274,266,267,-218,268,275,-218,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,576,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,577,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,23,92,12,44,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,127,578,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,5,1,8,4,1,1,1,1,1,4,1,579,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,10,6,60,1,5,11,1,1,11,13,11,-127,-127,-127,-127,-129,-129,-129,-127,580,141,10,6,60,1,5,11,1,1,11,13,11,-128,-128,-128,-128,582,583,584,-128,581,141,9,6,60,1,5,11,1,1,11,24,-130,-130,-130,-130,-130,-130,-130,-130,-130,9,6,60,1,5,11,1,1,11,24,-131,-131,-131,-131,-131,-131,-131,-131,-131,9,6,60,1,5,11,1,1,11,24,-132,-132,-132,-132,-132,-132,-132,-132,-132,9,6,60,1,5,11,1,1,11,24,-133,-133,-133,-133,-133,-133,-133,-133,-133,4,83,2,24,11,251,252,585,141,2,109,11,586,141,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,57,1,5,53,1,2,2,1,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,4,59,1,2,2,-59,-59,-59,-59,2,6,59,107,587,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,5,1,8,4,1,1,1,1,1,4,1,588,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,5,1,8,4,1,1,1,1,1,4,1,589,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,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,5,1,8,4,1,1,1,1,1,4,1,591,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,590,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,592,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,593,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,594,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,595,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,94,596,1,165,597,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,598,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,9,1,1,1,1,4,3,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,599,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-162,102,103,53,52,72,73,93,-162,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,26,67,25,14,11,1,30,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,600,127,322,470,321,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,1,67,601,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,24,67,19,6,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-163,-163,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,602,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,23,86,6,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,603,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,5,1,8,4,1,1,1,1,1,4,1,604,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,3,6,60,56,606,607,605,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,5,1,8,4,1,1,1,1,1,4,1,-218,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-218,-218,102,103,53,52,72,73,93,99,59,-218,83,-218,87,249,84,85,608,66,-218,42,43,90,91,248,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,8,6,60,1,5,23,1,8,18,-217,-217,-217,480,609,-217,-217,-217,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,23,67,25,56,1,9,1,1,34,1,6,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,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,125,126,-69,-69,-69,-69,-69,-69,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,25,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,611,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-72,-72,-72,-72,-72,-72,-72,-72,127,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,124,125,126,96,97,-72,-72,-72,-72,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,25,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,612,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-75,-75,-75,-75,-75,-75,-75,-75,127,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,124,125,126,96,97,-75,-75,-75,-75,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-78,-78,-78,-78,-78,-78,-78,-78,127,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,124,125,126,96,97,-78,-78,-78,-78,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,25,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,613,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-81,-81,-81,-81,-81,-81,-81,-81,127,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,124,125,126,96,97,-81,-81,-81,-81,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,106,5,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,615,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,162,102,103,614,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,6,6,60,1,5,50,2,-175,-175,-175,-175,-175,-175,11,55,1,24,1,1,7,14,2,1,22,1,154,104,156,157,155,99,159,158,153,616,152,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,154,104,-173,-173,-173,156,157,155,99,159,158,153,617,-173,-173,151,152,28,6,60,1,5,20,30,2,24,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-179,-179,-179,-179,127,-179,-179,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,57,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,3,1,4,2,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,3,125,1,1,618,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,27,1,6,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,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,23,67,25,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,619,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,125,126,-411,-411,-411,-411,-411,-411,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,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,620,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,66,10,162,621,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,2,66,10,162,622,2,66,10,162,623,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,26,66,10,16,5,51,1,9,1,1,4,30,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,624,127,625,124,125,126,96,97,626,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,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,627,127,628,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,10,16,5,51,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,629,127,630,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,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,631,127,632,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,5,1,8,4,1,1,1,1,1,4,1,633,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,634,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,24,66,10,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,635,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,94,69,2,2,-304,-304,-304,-304,27,72,20,2,54,1,9,1,1,3,2,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-302,127,-302,124,125,126,96,97,-302,-302,-302,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,67,78,11,1,636,637,520,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,2,66,10,162,638,3,67,78,12,-253,-253,-253,3,66,6,4,162,640,639,24,66,6,20,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-203,-203,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,45,1,5,59,1,1,5,4,10,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-311,-311,-311,162,-311,-311,641,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,125,126,-311,-311,-311,-311,-311,-311,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,108,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,1,1,8,4,1,1,1,1,1,4,1,-317,385,386,387,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-317,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,642,388,389,63,70,71,44,45,68,46,47,48,50,51,24,6,61,25,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-321,-321,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,-322,-322,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,8,6,60,1,5,23,1,8,18,-217,-217,-217,349,350,-217,-217,643,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,1,142,644,6,55,1,10,115,1,2,404,104,403,645,402,405,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,54,5,1,646,105,106,3,6,60,30,648,649,647,10,6,49,1,10,1,29,8,18,60,2,-218,404,104,-218,-218,-218,-218,-218,650,405,8,6,60,1,5,23,1,8,18,-217,-217,-217,539,651,-217,-217,-217,2,55,1,652,104,2,55,1,653,104,1,142,-341,3,54,5,1,654,105,106,3,6,60,30,656,657,655,10,6,49,1,10,1,29,8,18,62,5,-218,548,104,-218,-218,-218,-218,-218,412,658,8,6,60,1,5,23,1,8,18,-217,-217,-217,546,659,-217,-217,-217,6,6,60,1,5,24,87,-365,-365,-365,-365,-365,549,3,55,1,128,660,104,661,2,55,1,662,104,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-348,-348,-348,-348,-348,-348,127,-348,-348,-348,-348,125,126,-348,-348,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,5,1,8,4,1,1,1,1,1,4,1,663,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,664,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,67,665,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,1,138,666,23,92,12,44,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,127,667,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,112,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,6,1,1,1,1,7,3,11,2,1,2,2,1,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,244,102,103,245,53,52,72,73,93,99,59,83,87,249,84,85,428,668,243,246,242,66,42,43,90,91,248,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,5,6,60,1,5,32,-146,-146,-146,-146,-146,111,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,6,1,1,1,1,7,3,11,1,1,1,2,2,5,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-153,-153,102,103,245,53,52,72,73,93,99,59,83,-153,87,249,84,85,422,421,66,42,43,90,91,248,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,110,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,6,1,1,1,1,7,3,11,2,1,2,2,1,3,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,245,53,52,72,73,93,99,59,83,87,249,84,85,428,669,246,242,66,42,43,90,91,248,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,2,66,1,559,670,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,23,67,25,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,671,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,66,10,162,672,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,125,126,-257,-257,-257,-257,-257,-257,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,125,126,-259,-259,-259,-259,-259,-259,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,27,6,60,1,5,20,4,52,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-116,-116,-116,-116,673,-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,5,1,8,4,1,1,1,1,1,4,1,674,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,17,45,8,1,1,1,1,1,1,1,22,8,10,1,1,1,2,1,269,100,101,271,104,272,255,105,106,273,575,675,274,266,267,268,275,23,6,39,8,1,1,1,1,1,1,1,6,1,5,10,8,6,3,1,1,1,1,2,1,-109,269,100,101,271,104,272,255,105,106,-109,-109,-109,273,575,-109,676,270,274,266,267,268,275,5,6,60,1,5,24,-111,-111,-111,-111,-111,6,6,60,1,5,19,5,-114,-114,-114,-114,677,-114,27,6,60,1,5,20,4,52,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-118,-118,-118,-118,127,-118,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,678,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,6,6,60,1,5,19,5,-124,-124,-124,-124,-124,-124,23,92,12,44,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,127,679,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,680,255,2,57,1,681,255,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,682,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,683,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,9,6,60,1,5,11,1,1,11,24,-134,-134,-134,-134,-134,-134,-134,-134,-134,9,6,60,1,5,11,1,1,11,24,-135,-135,-135,-135,-135,-135,-135,-135,-135,4,59,1,2,2,-60,-60,-60,-60,2,6,61,107,684,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,125,126,-408,-408,-408,-408,-408,-408,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,5,1,8,4,1,1,1,1,1,4,1,685,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-238,-238,-238,-238,-238,-238,-238,-238,127,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,125,126,96,97,-238,-238,-238,-238,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,686,-284,-284,-284,-284,-284,-284,-284,-284,125,126,-284,-284,-284,687,-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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,688,-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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,689,-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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,690,-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,5,1,8,4,1,1,1,1,1,4,1,691,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,692,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,125,126,-300,-300,-300,-300,-300,-300,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,67,19,6,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-161,-161,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,1,86,693,1,86,694,23,86,6,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-66,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,23,67,25,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,695,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,55,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,106,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,1,2,2,5,4,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,249,84,85,696,66,42,43,90,91,248,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,108,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,1,2,2,5,4,4,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,327,102,103,53,52,72,73,93,99,59,83,87,249,84,85,326,66,42,43,90,91,248,697,86,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,606,607,698,1,86,699,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,9,1,5,59,1,1,5,32,18,16,-169,-169,-169,-169,-169,-169,-169,-169,-169,6,6,60,1,5,50,2,-176,-176,-176,-176,-176,-176,8,6,60,1,5,23,1,8,18,-217,-217,-217,349,700,-217,-217,-217,2,66,10,162,614,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,701,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,702,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,703,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,704,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,705,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,25,66,10,16,5,51,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,706,127,707,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,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,708,127,709,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,2,66,10,162,710,1,67,711,4,6,61,78,12,712,-254,-254,-254,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,713,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,2,6,61,-316,-316,2,66,10,162,714,3,54,5,1,715,105,106,8,6,60,1,5,23,1,8,18,-217,-217,-217,539,716,-217,-217,-217,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,142,717,4,55,1,126,2,404,104,718,405,6,55,1,10,115,1,2,404,104,403,719,402,405,5,6,60,1,5,24,-332,-332,-332,-332,-332,3,6,60,1,648,649,720,5,6,60,1,5,24,-337,-337,-337,-337,-337,5,6,60,1,5,24,-339,-339,-339,-339,-339,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,14,1,5,59,1,1,5,32,18,16,4,6,1,10,1,-343,-343,-343,-343,-343,-343,-343,-343,-343,721,-343,-343,-343,-343,4,55,1,128,5,548,104,412,722,6,55,1,10,118,3,2,548,104,410,412,723,409,5,6,60,1,5,24,-361,-361,-361,-361,-361,3,6,60,1,656,657,724,5,6,60,1,5,24,-366,-366,-366,-366,-366,5,6,60,1,5,24,-367,-367,-367,-367,-367,5,6,60,1,5,24,-369,-369,-369,-369,-369,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-349,-349,-349,-349,-349,-349,127,-349,-349,-349,-349,125,126,-349,-349,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,25,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,725,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,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,9,6,60,1,5,23,1,8,9,9,-217,-217,-217,424,425,-217,-217,726,-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,727,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,14,39,16,1,24,1,1,7,4,5,5,2,24,37,2,309,154,104,156,157,155,99,728,729,83,158,197,308,196,23,67,25,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,730,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,60,1,5,24,-112,-112,-112,-112,-112,8,6,60,1,5,23,1,8,18,-217,-217,-217,442,731,-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,5,1,8,4,1,1,1,1,1,4,1,732,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,570,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,23,67,25,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,733,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,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,34,1,6,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,5,1,8,4,1,1,1,1,1,4,1,735,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,65,736,23,67,25,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,737,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,5,1,8,4,1,1,1,1,1,4,1,738,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,739,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,740,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,741,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,742,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,743,-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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,744,-295,-295,-295,-295,-295,-295,-295,-295,125,126,-295,-295,-295,-295,-295,-295,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,1,86,745,5,6,60,1,5,50,-196,-196,-196,-196,-196,8,6,60,1,5,23,1,8,18,-217,-217,-217,480,746,-217,-217,-217,5,6,60,1,5,50,-197,-197,-197,-197,-197,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,3,6,60,1,494,495,747,25,66,10,16,56,1,9,1,1,4,30,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,748,127,124,125,126,96,97,749,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,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,750,127,751,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,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,752,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,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,753,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,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,754,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,755,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,756,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,67,757,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,3,67,78,12,-255,-255,-255,24,66,6,20,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-204,-204,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,3,6,60,30,648,649,758,3,54,5,1,759,105,106,5,6,60,1,5,24,-333,-333,-333,-333,-333,8,6,60,1,5,23,1,8,18,-217,-217,-217,539,760,-217,-217,-217,5,6,60,1,5,24,-334,-334,-334,-334,-334,3,54,5,1,761,105,106,5,6,60,1,5,24,-362,-362,-362,-362,-362,8,6,60,1,5,23,1,8,18,-217,-217,-217,546,762,-217,-217,-217,5,6,60,1,5,24,-363,-363,-363,-363,-363,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,2,66,1,559,763,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,4,94,69,2,2,764,462,464,465,11,55,1,24,1,1,7,4,10,2,24,39,154,104,156,157,155,99,765,159,158,197,196,5,6,60,1,5,24,-117,-117,-117,-117,-117,3,6,60,1,572,573,766,27,6,60,1,5,20,4,52,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-116,-116,-116,-116,127,-116,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,60,1,5,24,-119,-119,-119,-119,-119,9,6,60,1,5,11,1,1,11,24,-140,-140,-140,-140,-140,-140,-140,-140,-140,23,67,25,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,767,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,125,126,-285,-285,-285,768,-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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,769,-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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,125,126,-290,-290,-290,-290,-290,-290,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,125,126,-294,-294,-294,-294,-294,-294,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,125,126,-298,-298,-298,-298,-298,-298,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,770,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,771,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,3,6,60,1,606,607,772,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,773,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,774,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,24,66,10,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,775,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,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,776,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,1,142,777,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,3,6,60,1,648,649,778,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,3,6,60,1,656,657,779,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,5,1,8,4,1,1,1,1,1,4,1,780,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,94,781,5,6,60,1,5,24,-113,-113,-113,-113,-113,1,86,782,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,783,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,784,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,125,126,-292,-292,-292,-292,-292,-292,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,125,126,-296,-296,-296,-296,-296,-296,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,60,1,5,50,-198,-198,-198,-198,-198,24,66,10,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,785,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,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,786,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,3,54,5,1,787,105,106,5,6,60,1,5,24,-335,-335,-335,-335,-335,5,6,60,1,5,24,-364,-364,-364,-364,-364,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,790,-289,-289,-289,-289,788,-289,789,-289,-289,-289,-289,-289,-289,-289,-289,125,126,-289,-289,-289,-289,-289,-289,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,791,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,9,6,60,1,5,11,1,1,11,24,-141,-141,-141,-141,-141,-141,-141,-141,-141,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,125,126,-287,-287,-287,-287,-287,-287,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,125,126,-288,-288,-288,-288,-288,-288,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,1,96,792,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,793,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,6,6,60,1,29,8,18,-218,-218,-218,-218,-218,-218,45,1,5,59,1,1,5,14,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,790,-291,-291,-291,-291,794,-291,795,-291,-291,-291,-291,-291,-291,-291,-291,125,126,-291,-291,-291,-291,-291,-291,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,45,1,5,59,1,1,5,14,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,790,-290,-290,-290,-290,796,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,125,126,-290,-290,-290,-290,-290,-290,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,1,96,797,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,798,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,96,799,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,45,1,5,59,1,1,5,14,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-292,-292,-292,-292,-292,790,-292,-292,-292,-292,800,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,125,126,-292,-292,-292,-292,-292,-292,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,1,96,801,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107],U=[],F=0,W,f,u,A;while(F<$.length){W=$[F++],f={},u=0,A=[];while(W--)u+=$[F++],A.push(u);for(u of A)f[u]=$[F++];U.push(f)}return U})(),ruleTable:[0,0,3,0,3,1,4,1,4,3,4,2,5,1,5,1,5,1,9,1,9,1,9,1,9,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,8,1,8,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,45,1,45,1,55,1,57,1,54,1,54,3,61,1,61,2,63,3,63,5,63,2,63,1,47,1,47,3,71,3,71,1,17,3,17,4,17,5,18,3,18,4,18,5,19,3,19,4,19,3,20,3,20,4,20,5,21,3,21,4,21,3,21,2,21,3,21,2,36,1,36,1,36,1,79,1,79,1,79,3,79,3,79,4,79,6,79,4,79,6,79,4,79,5,79,7,79,3,79,3,79,4,79,6,81,10,81,12,81,11,81,13,81,4,99,0,99,1,99,3,99,4,99,6,100,1,100,1,100,3,100,5,100,3,100,5,102,1,102,1,102,1,90,1,90,3,90,4,90,1,101,2,101,2,107,1,107,1,107,1,107,1,107,1,107,2,107,2,107,2,107,2,107,3,107,3,107,4,107,6,80,2,80,3,80,4,112,1,112,3,112,4,112,4,112,6,114,1,114,2,113,1,113,2,111,1,111,2,116,1,116,2,117,1,117,1,39,5,87,3,87,2,87,2,87,1,32,6,32,3,15,5,15,2,34,5,34,2,125,1,125,1,121,0,121,1,121,3,121,4,121,6,128,1,128,3,128,2,128,1,129,1,129,1,129,1,129,1,130,2,40,2,40,2,40,3,40,2,40,2,109,2,109,4,132,1,132,3,132,4,132,4,132,6,115,1,115,1,115,1,115,1,133,1,133,3,42,1,42,1,82,2,43,3,43,4,43,6,44,3,44,3,76,2,76,3,38,3,38,5,95,0,95,1,10,2,10,4,10,1,30,2,30,4,31,1,31,2,31,4,31,3,143,3,143,5,146,3,146,5,22,1,22,3,22,1,22,3,22,3,22,7,22,5,22,3,22,3,23,2,23,3,23,4,23,5,151,3,151,3,151,2,26,5,26,7,26,4,26,6,155,1,155,2,156,3,156,4,158,2,158,4,158,2,158,4,24,2,24,2,24,2,24,1,161,2,161,2,161,3,25,5,25,7,25,7,25,9,25,9,25,5,25,7,25,6,25,8,25,5,25,7,25,6,25,8,25,5,25,7,25,3,25,5,25,5,25,7,25,7,25,9,25,9,25,5,25,7,25,6,25,8,25,5,25,7,25,6,25,8,25,5,25,7,25,3,25,5,168,1,168,3,93,1,93,3,27,1,27,2,27,3,27,4,27,2,27,3,27,4,27,5,33,3,28,4,173,1,173,3,173,2,174,1,174,1,174,1,174,2,174,2,29,2,12,2,12,4,12,4,12,5,12,7,12,6,12,9,181,1,181,3,181,4,181,4,181,6,182,1,182,3,182,1,182,3,179,1,180,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,187,1,187,3,187,4,187,4,187,6,189,1,189,3,189,3,189,1,189,3,35,2,35,2,35,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,4,16,2,16,2,16,2,16,2,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,5,16,3,16,5,16,4,41,2],ruleActions:($,U,F,W)=>{let f=U,u=U.length-1;switch($){case 1:return["program"];case 2:return["program",...f[u]];case 3:case 58:case 110:case 150:case 154:case 174:case 194:case 203:case 252:case 303:case 315:case 331:case 360:return[f[u]];case 4:case 111:case 175:case 195:case 204:case 316:case 332:case 361:return[...f[u-2],f[u]];case 5:case 60:case 157:case 317:return f[u-1];case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 63:case 64:case 86:case 87:case 88:case 89:case 90:case 115:case 120:case 121:case 122:case 123:case 126:case 129:case 130:case 131:case 132:case 133:case 145:case 171:case 172:case 178:case 182:case 183:case 184:case 185:case 199:case 200:case 201:case 217:case 218:case 232:case 234:case 263:case 301:case 318:case 319:case 320:case 336:case 338:case 340:case 365:case 368:return f[u];case 47:return"undefined";case 48:return"null";case 57:return["str",...f[u-1]];case 59:case 151:case 155:case 253:return[...f[u-1],f[u]];case 61:case 193:case 197:case 334:case 363:return f[u-2];case 62:return"";case 65:return["regex",f[u-1]];case 66:return["regex-index",f[u-2],f[u]];case 67:return["regex-index",f[u],null];case 68:return["=",f[u-2],f[u]];case 69:return["=",f[u-3],f[u]];case 70:return["=",f[u-4],f[u-1]];case 71:return["state",f[u-2],f[u]];case 72:return["state",f[u-3],f[u]];case 73:return["state",f[u-4],f[u-1]];case 74:case 76:return["computed",f[u-2],f[u]];case 75:return["computed",f[u-3],f[u]];case 77:return["readonly",f[u-2],f[u]];case 78:return["readonly",f[u-3],f[u]];case 79:return["readonly",f[u-4],f[u-1]];case 80:case 82:return["effect",f[u-2],f[u]];case 81:return["effect",f[u-3],f[u]];case 83:case 84:case 85:return["effect",null,f[u]];case 91:case 100:case 138:return[".",f[u-2],f[u]];case 92:case 101:case 139:return["?.",f[u-2],f[u]];case 93:case 95:case 102:case 140:return["[]",f[u-3],f[u-1]];case 94:case 96:case 103:case 141:return["[]",f[u-5],f[u-2]];case 97:return[f[u-1][0],f[u-3],...f[u-1].slice(1)];case 98:return["optindex",f[u-4],f[u-1]];case 99:return["optindex",f[u-6],f[u-2]];case 104:return["object-comprehension",f[u-8],f[u-6],[["for-of",f[u-4],f[u-2],!1]],[]];case 105:return["object-comprehension",f[u-10],f[u-8],[["for-of",f[u-6],f[u-4],!1]],[f[u-2]]];case 106:return["object-comprehension",f[u-9],f[u-7],[["for-of",f[u-4],f[u-2],!0]],[]];case 107:return["object-comprehension",f[u-11],f[u-9],[["for-of",f[u-6],f[u-4],!0]],[f[u-2]]];case 108:return["object",...f[u-2]];case 109:case 152:case 173:case 192:return[];case 112:case 176:case 196:case 333:case 362:return[...f[u-3],f[u]];case 113:case 177:case 198:case 335:case 364:return[...f[u-5],...f[u-2]];case 114:return[f[u],f[u],null];case 116:return[f[u-2],f[u],":"];case 117:return[f[u-4],f[u-1],":"];case 118:return[f[u-2],f[u],"="];case 119:return[f[u-4],f[u-1],"="];case 124:return["dynamicKey",f[u-1]];case 125:return["[]","this",f[u-1]];case 127:case 128:case 186:return["...",f[u]];case 134:case 190:return["super",...f[u]];case 135:case 136:case 137:case 188:case 191:return[f[u-1],...f[u]];case 142:return["array"];case 143:return["array",...f[u-1]];case 144:return["array",...f[u-2],...f[u-1]];case 146:return[...f[u-2],...f[u]];case 147:return[...f[u-3],...f[u]];case 148:return[...f[u-2],...f[u-1]];case 149:return[...f[u-5],...f[u-4],...f[u-2],...f[u-1]];case 153:return[...f[u]];case 156:return null;case 158:return"..";case 159:case 202:return"...";case 160:return[f[u-2],f[u-3],f[u-1]];case 161:case 389:case 391:case 392:case 407:case 409:return[f[u-1],f[u-2],f[u]];case 162:return[f[u],f[u-1],null];case 163:return[f[u-1],null,f[u]];case 164:return[f[u],null,null];case 165:return["def",f[u-4],f[u-2],f[u]];case 166:return["def",f[u-1],[],f[u]];case 167:case 169:return[f[u-1],f[u-3],f[u]];case 168:case 170:return[f[u-1],[],f[u]];case 179:case 302:return["default",f[u-2],f[u]];case 180:return["rest",f[u]];case 181:return["expansion"];case 187:return["tagged-template",f[u-1],f[u]];case 189:return["optcall",f[u-2],...f[u]];case 205:case 206:return"this";case 207:return[".","this",f[u]];case 208:return[".","super",f[u]];case 209:return["[]","super",f[u-1]];case 210:return["[]","super",f[u-2]];case 211:return[".","new",f[u]];case 212:return[".","import",f[u]];case 213:return["block"];case 214:return["block",...f[u-1]];case 215:return f[u-1].length===1?f[u-1][0]:["block",...f[u-1]];case 216:return f[u-2].length===1?f[u-2][0]:["block",...f[u-2]];case 219:return["return",f[u]];case 220:return["return",f[u-1]];case 221:return["return"];case 222:return["throw",f[u]];case 223:return["throw",f[u-1]];case 224:return["yield"];case 225:return["yield",f[u]];case 226:return["yield",f[u-1]];case 227:return["yield-from",f[u]];case 228:return["if",f[u-1],f[u]];case 229:return f[u-4].length===3?["if",f[u-4][1],f[u-4][2],["if",f[u-1],f[u]]]:[...f[u-4],["if",f[u-1],f[u]]];case 230:return["if",["!",f[u-1]],f[u]];case 231:return["if",["!",f[u-3]],f[u-2],f[u]];case 233:return f[u-2].length===3?["if",f[u-2][1],f[u-2][2],f[u]]:[...f[u-2],f[u]];case 235:case 236:return["if",f[u],[f[u-2]]];case 237:return["?:",f[u-4],f[u-6],f[u-1]];case 238:return["?:",f[u-2],f[u-4],f[u]];case 239:case 240:return["if",["!",f[u]],[f[u-2]]];case 241:return["try",f[u]];case 242:return["try",f[u-1],f[u]];case 243:return["try",f[u-2],f[u]];case 244:return["try",f[u-3],f[u-2],f[u]];case 245:case 246:case 370:case 373:case 375:return[f[u-1],f[u]];case 247:return[null,f[u]];case 248:return["switch",f[u-3],f[u-1],null];case 249:return["switch",f[u-5],f[u-3],f[u-1]];case 250:return["switch",null,f[u-1],null];case 251:return["switch",null,f[u-3],f[u-1]];case 254:return["when",f[u-1],f[u]];case 255:return["when",f[u-2],f[u-1]];case 256:return["while",f[u]];case 257:return["while",f[u-2],f[u]];case 258:return["while",["!",f[u]]];case 259:return["while",["!",f[u-2]],f[u]];case 260:return f[u-1].length===2?[f[u-1][0],f[u-1][1],f[u]]:[f[u-1][0],f[u-1][1],f[u-1][2],f[u]];case 261:case 262:return f[u].length===2?[f[u][0],f[u][1],[f[u-1]]]:[f[u][0],f[u][1],f[u][2],[f[u-1]]];case 264:return["loop",f[u]];case 265:return["loop",[f[u]]];case 266:return["loop-n",f[u-1],f[u]];case 267:return["for-in",f[u-3],f[u-1],null,null,f[u]];case 268:return["for-in",f[u-5],f[u-3],null,f[u-1],f[u]];case 269:return["for-in",f[u-5],f[u-3],f[u-1],null,f[u]];case 270:return["for-in",f[u-7],f[u-5],f[u-1],f[u-3],f[u]];case 271:return["for-in",f[u-7],f[u-5],f[u-3],f[u-1],f[u]];case 272:return["for-of",f[u-3],f[u-1],!1,null,f[u]];case 273:return["for-of",f[u-5],f[u-3],!1,f[u-1],f[u]];case 274:return["for-of",f[u-3],f[u-1],!0,null,f[u]];case 275:return["for-of",f[u-5],f[u-3],!0,f[u-1],f[u]];case 276:return["for-as",f[u-3],f[u-1],!1,null,f[u]];case 277:return["for-as",f[u-5],f[u-3],!1,f[u-1],f[u]];case 278:case 280:return["for-as",f[u-3],f[u-1],!0,null,f[u]];case 279:case 281:return["for-as",f[u-5],f[u-3],!0,f[u-1],f[u]];case 282:return["for-in",[],f[u-1],null,null,f[u]];case 283:return["for-in",[],f[u-3],f[u-1],null,f[u]];case 284:return["comprehension",f[u-4],[["for-in",f[u-2],f[u],null]],[]];case 285:return["comprehension",f[u-6],[["for-in",f[u-4],f[u-2],null]],[f[u]]];case 286:return["comprehension",f[u-6],[["for-in",f[u-4],f[u-2],f[u]]],[]];case 287:return["comprehension",f[u-8],[["for-in",f[u-6],f[u-4],f[u]]],[f[u-2]]];case 288:return["comprehension",f[u-8],[["for-in",f[u-6],f[u-4],f[u-2]]],[f[u]]];case 289:return["comprehension",f[u-4],[["for-of",f[u-2],f[u],!1]],[]];case 290:return["comprehension",f[u-6],[["for-of",f[u-4],f[u-2],!1]],[f[u]]];case 291:return["comprehension",f[u-5],[["for-of",f[u-2],f[u],!0]],[]];case 292:return["comprehension",f[u-7],[["for-of",f[u-4],f[u-2],!0]],[f[u]]];case 293:return["comprehension",f[u-4],[["for-as",f[u-2],f[u],!1,null]],[]];case 294:return["comprehension",f[u-6],[["for-as",f[u-4],f[u-2],!1,null]],[f[u]]];case 295:return["comprehension",f[u-5],[["for-as",f[u-2],f[u],!0,null]],[]];case 296:return["comprehension",f[u-7],[["for-as",f[u-4],f[u-2],!0,null]],[f[u]]];case 297:return["comprehension",f[u-4],[["for-as",f[u-2],f[u],!0,null]],[]];case 298:return["comprehension",f[u-6],[["for-as",f[u-4],f[u-2],!0,null]],[f[u]]];case 299:return["comprehension",f[u-2],[["for-in",[],f[u],null]],[]];case 300:return["comprehension",f[u-4],[["for-in",[],f[u-2],f[u]]],[]];case 304:case 337:case 339:case 366:case 367:case 369:return[f[u-2],f[u]];case 305:return["class",null,null];case 306:return["class",null,null,f[u]];case 307:return["class",null,f[u]];case 308:return["class",null,f[u-1],f[u]];case 309:return["class",f[u],null];case 310:return["class",f[u-1],null,f[u]];case 311:return["class",f[u-2],f[u]];case 312:return["class",f[u-3],f[u-1],f[u]];case 313:return["enum",f[u-1],f[u]];case 314:return["component",null,["block",...f[u-1]]];case 321:return["offer",f[u]];case 322:return["accept",f[u]];case 323:return["render",f[u]];case 324:case 327:return["import","{}",f[u]];case 325:case 326:return["import",f[u-2],f[u]];case 328:return["import",f[u-4],f[u]];case 329:return["import",[f[u-4],f[u-2]],f[u]];case 330:return["import",[f[u-7],f[u-4]],f[u]];case 341:return["*",f[u]];case 342:return["export","{}"];case 343:return["export",f[u-2]];case 344:case 345:case 346:case 347:case 351:case 352:case 353:case 354:return["export",f[u]];case 348:return["export",["=",f[u-2],f[u]]];case 349:return["export",["=",f[u-3],f[u]]];case 350:return["export",["=",f[u-4],f[u-1]]];case 355:return["export-default",f[u]];case 356:return["export-default",f[u-1]];case 357:return["export-all",f[u]];case 358:return["export-from","{}",f[u]];case 359:return["export-from",f[u-4],f[u]];case 371:case 372:case 374:case 412:return["do-iife",f[u]];case 376:return["-",f[u]];case 377:return["+",f[u]];case 378:return["?",f[u-1]];case 379:return["defined",f[u-1]];case 380:return["presence",f[u-1]];case 381:return["await",f[u]];case 382:return["await",f[u-1]];case 383:return["--",f[u],!1];case 384:return["++",f[u],!1];case 385:return["--",f[u-1],!0];case 386:return["++",f[u-1],!0];case 387:return["+",f[u-2],f[u]];case 388:return["-",f[u-2],f[u]];case 390:return["**",f[u-2],f[u]];case 393:return["&",f[u-2],f[u]];case 394:return["^",f[u-2],f[u]];case 395:return["|",f[u-2],f[u]];case 396:case 397:case 398:case 399:case 400:case 401:return["control",f[u-1],f[u-2],f[u]];case 402:return["&&",f[u-2],f[u]];case 403:return["||",f[u-2],f[u]];case 404:return["??",f[u-2],f[u]];case 405:return["!?",f[u-2],f[u]];case 406:return["|>",f[u-2],f[u]];case 408:return["?:",f[u-4],f[u-2],f[u]];case 410:return[f[u-3],f[u-4],f[u-1]];case 411:return[f[u-2],f[u-3],f[u]]}},parseError($,U){let F,W,f,u,A,Y,_;if(U.recoverable)return this.trace($);else throw f=(U.line||0)+1,F=U.loc?.c||0,_=U.token?` (token: ${U.token})`:"",Y=U.text?` near '${U.text}'`:"",u=`line ${f}, column ${F}`,A=`Parse error at ${u}${_}${Y}: ${$}`,W=Error(A),W.hash=U,W},parse($){let U,F,W,f,u,A,Y,_,Z,w,z,X,K,D,R,J,Q,q,O,M,G,I,H,P,E,B;[M,B,w]=[[0],[null],[]],[K,E,H,I,J]=[this.parseTable,"",0,0,0],[F,U]=[2,1],_=Object.create(this.lexer),q={ctx:{}};for(let S in this.ctx){if(!Object.hasOwn(this.ctx,S))continue;let N=this.ctx[S];q.ctx[S]=N}if(_.setInput($,q.ctx),[q.ctx.lexer,q.ctx.parser]=[_,this],_.loc==null)_.loc={};P=_.loc,w.push(P),this.parseError=typeof q.ctx.parseError==="function"?q.ctx.parseError:Object.getPrototypeOf(this).parseError,Y=()=>{let S;if(S=_.lex()||U,typeof S!=="number")S=this.symbolIds[S]||S;return S},G=D=O=W=R=X=A=z=u=null,Q={};while(!0){if(O=M[M.length-1],G==null)G=Y();if(W=K[O]?.[G],W==null){if(f="",!J)u=(()=>{let S=[];for(let N in K[O]){if(!Object.hasOwn(K[O],N))continue;if(this.tokenNames[N]&&N>F)S.push(`'${this.tokenNames[N]}'`)}return S})();throw f=(()=>{if(_.showPosition)return`Parse error on line ${H+1}:
|
|
5
|
+
`+$;return $}advance($){let U=this.code.slice(this.pos,this.pos+$);for(let W=0;W<U.length;W++)if(U[W]===`
|
|
6
|
+
`)this.row++,this.col=0;else this.col++;this.pos+=$}emit($,U,{len:W,data:F,pre:u}={}){let f=G1($,U,{pre:u??0,row:this.row,col:this.col,len:W??(typeof U==="string"?U.length:0),data:F});return this.tokens.push(f),f}prev(){return this.tokens[this.tokens.length-1]}prevTag(){let $=this.prev();return $?$[0]:void 0}prevVal(){let $=this.prev();return $?$[1]:void 0}identifierToken(){if(O3.test(this.chunk))return 0;let $=X3.exec(this.chunk);if(!$)return 0;let[,U,W]=$,F=U.length,u={},f;if(U==="own"&&this.prevTag()==="FOR")return this.emit("OWN",U,{len:F}),F;if(U==="from"&&this.prevTag()==="YIELD")return this.emit("FROM",U,{len:F}),F;if(U==="as"&&!this.seenFor&&(this.seenImport||this.seenExport)){if(this.seenImport){if(this.prevVal()==="*")this.prev()[0]="IMPORT_ALL"}let R=this.prevTag();if(R==="DEFAULT"||R==="IMPORT_ALL"||R==="IDENTIFIER")return this.emit("AS",U,{len:F}),F}if((U==="as"||U==="as!")&&this.seenFor)return this.seenFor=!1,this.emit(U==="as!"?"FORASAWAIT":"FORAS","as",{len:F}),F;if(U==="default"&&this.seenExport&&(this.prevTag()==="EXPORT"||this.prevTag()==="AS"))return this.emit("DEFAULT",U,{len:F}),F;let A;if(U==="do"&&(A=/^(\s*super)(?!\(\))/.exec(this.chunk.slice(3))))return this.emit("SUPER","super"),this.emit("CALL_START","("),this.emit("CALL_END",")"),A[1].length+3;let Y=this.prev();if(W&&Y&&Y[0]==="TERNARY")W=null;if(W||Y&&(Y[0]==="."||Y[0]==="?."||!Y.spaced&&Y[0]==="@")){if(f="PROPERTY",this.inRenderBlock&&Y&&Y[0]==="."&&!W){let R=this.chunk.slice(F);while(R[0]==="-"&&/^-[a-zA-Z]/.test(R)){let z=/^-([a-zA-Z][\w]*)/.exec(R);if(!z)break;U+="-"+z[1],F+=1+z[1].length,R=this.chunk.slice(F)}}}else f="IDENTIFIER";let _=U.endsWith("!")||U.endsWith("?")?U.slice(0,-1):U;if(f==="IDENTIFIER"&&!U.endsWith("!")&&!U.endsWith("?")&&(U2.has(U)||F2.has(U)||W2.has(U))&&!(this.exportSpecifierList&&W2.has(U))){if(c1[U]!==void 0)u.original=U,U=c1[U];f=this.classifyKeyword(U,f,u)}if(f==="IDENTIFIER"&&e2.has(_))n(`reserved word '${_}'`,{row:this.row,col:this.col,len:F});if(f==="PROPERTY"&&Y){if(Y[0]==="."&&this.tokens.length>1){let R=this.tokens[this.tokens.length-2];if(R[0]==="UNARY"&&R[1]==="new")R[0]="NEW_TARGET";if(R[0]==="IMPORT"&&R[1]==="import")this.seenImport=!1,R[0]="IMPORT_META"}}if(U.length>1&&U.endsWith("!"))u.await=!0,U=U.slice(0,-1);if(U.length>1&&U.endsWith("?"))u.predicate=!0,U=U.slice(0,-1);let w=this.emit(f,U,{len:F,data:Object.keys(u).length?u:null});if(f==="RENDER")this.inRenderBlock=!0,this.renderIndent=this.indent;if(W)return this.emit(":",":",{len:1}),F+W.length;return F}classifyKeyword($,U,W){switch($){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"true":case"false":return"BOOL";case"&&":case"||":return $}if(u3.has($))return"STATEMENT";let F=$.toUpperCase();if(F==="WHEN"&&R1.has(this.prevTag()))return"LEADING_WHEN";if(F==="FOR")return this.seenFor={endsLength:this.ends.length},"FOR";if(F==="UNLESS")return"UNLESS";if(F==="IMPORT")return this.seenImport=!0,"IMPORT";if(F==="EXPORT")return this.seenExport=!0,"EXPORT";if(f3.has(F))return"UNARY";if($3.has(F)){if(F!=="INSTANCEOF"&&this.seenFor)return this.seenFor=!1,"FOR"+F;if(this.prevVal()==="!"){let u=this.tokens.pop();W.invert=u.data?.original||u[1]}return"RELATION"}if(U2.has($)||F2.has($))return F;return U}commentToken(){if(this.inRenderBlock){if(/^#[a-zA-Z_]/.test(this.chunk)){let U=this.prev();if(U&&(U[0]==="IDENTIFIER"||U[0]==="PROPERTY"))return 0;let W=/^#([a-zA-Z_][\w-]*)/.exec(this.chunk);if(W)return this.emit("IDENTIFIER",W[1]==="content"?"slot":"div#"+W[1]),W[0].length}if(/^\s+#[a-zA-Z_]/.test(this.chunk))return 0}let $=H3.exec(this.chunk);if(!$)return 0;return $[0].length}whitespaceToken(){let $=D3.exec(this.chunk);if(!$&&this.chunk[0]!==`
|
|
7
|
+
`)return 0;let U=this.prev();if(U)if($)U.spaced=!0,U.pre=$[0].length;else U.newLine=!0;return $?$[0].length:0}lineToken(){let $=M3.exec(this.chunk);if(!$)return 0;let U=$[0],W=U.length-1-U.lastIndexOf(`
|
|
8
|
+
`);if(this.isUnfinished()){if(W<this.indent&&/^\s*,/.test(this.chunk)&&!R2.has(this.prevTag())){if(this.outdentTo(W,U.length),this.prevTag()==="TERMINATOR")this.tokens.pop();return U.length}return U.length}if(this.seenFor&&!(this.seenFor.endsLength<this.ends.length))this.seenFor=!1;if(!this.importSpecifierList)this.seenImport=!1;if(!this.exportSpecifierList)this.seenExport=!1;if(W===this.indent)return this.emitNewline(),U.length;if(W>this.indent){if(!this.tokens.length)return this.indent=W,U.length;let F=W-this.indent;return this.emit("INDENT",F,{len:W}),this.indents.push(F),this.ends.push({tag:"OUTDENT"}),this.indent=W,U.length}return this.outdentTo(W,U.length),U.length}outdentTo($,U=0){if(this.inRenderBlock&&$<=this.renderIndent)this.inRenderBlock=!1;let W=this.indent-$;while(W>0){let F=this.indents[this.indents.length-1];if(!F)W=0;else this.indents.pop(),this.pair("OUTDENT"),this.emit("OUTDENT",W,{len:U}),W-=F}this.emitNewline(),this.indent=$}closeIndentation(){this.outdentTo(0)}emitNewline(){if(this.prevTag()!=="TERMINATOR")this.emit("TERMINATOR",`
|
|
9
|
+
`,{len:0})}isUnfinished(){if(this.inRenderBlock&&Q2.test(this.chunk)&&/^\s*\./.test(this.chunk))return!1;if(this.inRenderBlock&&this.prevTag()==="."){let U=this.tokens.length;if(U>=2){let W=this.tokens[U-2][0];if(W==="INDENT"||W==="TERMINATOR"||W==="OUTDENT")return!1}}let $=this.tokens[this.tokens.length-1];if($?.[0]==="COMPARE"&&$[1]===">"){let U=0;for(let W=this.tokens.length-1;W>=0;W--){let F=this.tokens[W];if(F[0]==="COMPARE"&&F[1]===">")U++;else if(F[0]==="COMPARE"&&F[1]==="<")U--;if(U===0&&F[0]==="TYPE_ANNOTATION")return!1;if(F[0]==="TERMINATOR"||F[0]==="INDENT"||F[0]==="OUTDENT")break}}return Q2.test(this.chunk)||R2.has(this.prevTag())}pair($){let U=this.ends[this.ends.length-1];if(!U||$!==U.tag){if(U?.tag==="OUTDENT"){let W=this.indents[this.indents.length-1];if(W)this.outdentTo(this.indent-W);return this.pair($)}n(`unmatched ${$}`,{row:this.row,col:this.col})}return this.ends.pop()}stringToken(){let $=G3.exec(this.chunk);if(!$)return 0;let U=$[0],W=U.length>1&&U.endsWith("\\"),F=W?U.slice(0,-1):U,u=this.prev();if(u&&this.prevVal()==="from"&&(this.seenImport||this.seenExport))u[0]="FROM";let f;switch(F){case"'":f=P3;break;case'"':f=I3;break;case"'''":f=E3;break;case'"""':f=B3;break}let{tokens:A,index:Y}=this.matchWithInterpolations(f,U,F),_=F.length===3,w=null;if(_)w=this.processHeredocIndent(Y,F,A);return this.mergeInterpolationTokens(A,{quote:F,indent:w,endOffset:Y,raw:W}),Y}processHeredocIndent($,U,W){let F=$-U.length,u=F-1;while(u>=0&&this.chunk[u]!==`
|
|
10
|
+
`)u--;u++;let f=this.chunk.slice(u,F),A=/^\s*$/.test(f)?f.length:null,Y="";for(let R of W)if(R[0]==="NEOSTRING")Y+=R[1];let _=null,w;w2.lastIndex=0;while(w=w2.exec(Y))if(_===null||w[1].length>0&&w[1].length<_.length)_=w[1];if(A===null)return _;if(_===null)return" ".repeat(A);if(A<=_.length)return" ".repeat(A);return _}matchWithInterpolations($,U,W,F){if(!W)W=U;if(!F)F=/^[#$]\{/;let u=[],f=U.length;if(this.chunk.slice(0,f)!==U)return null;let A=this.chunk.slice(f);while(!0){let[Y]=$.exec(A);u.push(["NEOSTRING",Y,{offset:f}]),A=A.slice(Y.length),f+=Y.length;let _=F.exec(A);if(!_)break;let R=_[0].length-1,z=A.slice(R),K=new a().tokenize(z,{row:this.row,col:this.col+f+R,untilBalanced:!0,rewrite:!1}),J=K.index+R;if(A[J-1]==="}"){let Q=K.tokens[0],Z=K.tokens[K.tokens.length-1];Q[0]="INTERPOLATION_START",Q[1]="(",Z[0]="INTERPOLATION_END",Z[1]=")"}if(K.tokens[1]?.[0]==="TERMINATOR")K.tokens.splice(1,1);let M=K.tokens.length;if(M>2&&K.tokens[M-3]?.[0]==="INDENT"&&K.tokens[M-2]?.[0]==="OUTDENT")K.tokens.splice(M-3,2);u.push(["TOKENS",K.tokens]),A=A.slice(J),f+=J}if(A.slice(0,W.length)!==W)n(`missing ${W}`,{row:this.row,col:this.col});return{tokens:u,index:f+W.length}}mergeInterpolationTokens($,{quote:U,indent:W,endOffset:F,raw:u}){if($.length>1)this.emit("STRING_START","(",{len:U?.length||0,data:{quote:U}});for(let f=0;f<$.length;f++){let[A,Y]=$[f];if(A==="TOKENS")for(let _ of Y)this.tokens.push(_);else if(A==="NEOSTRING"){let _=Y;if(W){let w=new RegExp("\\n"+W,"g");_=_.replace(w,`
|
|
11
|
+
`)}if(f===0&&U?.length===3)_=_.replace(/^\n/,"");if(f===$.length-1&&U?.length===3)_=_.replace(/\n[^\S\n]*$/,"");if(u)_=_.replace(/\\([nrtbfv0\\'"`xu])/g,"\\\\$1");this.emit("STRING",`"${_}"`,{len:Y.length,data:{quote:U}})}}if($.length>1)this.emit("STRING_END",")",{len:U?.length||0});return F}numberToken(){let $=z3.exec(this.chunk);if(!$)return 0;let U=$[0],W=U.length,F={row:this.row,col:this.col};if(/^0[BOX]/.test(U))n(`radix prefix in '${U}' must be lowercase`,{...F,col:F.col+1});if(/^0\d*[89]/.test(U))n(`decimal literal '${U}' must not be prefixed with '0'`,{...F,len:W});if(/^0\d+/.test(U))n(`octal literal '${U}' must be prefixed with '0o'`,{...F,len:W});let u=C3(U),f=u===1/0?"INFINITY":"NUMBER",A={parsedValue:u};if(f==="INFINITY")A.original=U;return this.emit(f,U,{len:W,data:A}),W}regexToken(){let $=this.matchWithInterpolations(L3,"///");if($){let{tokens:w,index:R}=$,[z]=J2.exec(this.chunk.slice(R)),K=R+z.length;if(w.length===1||!w.some((J)=>J[0]==="TOKENS")){let J=(w[0]?.[1]||"").replace(/(?<!\\)\//g,"\\/");this.emit("REGEX",`/${J}/${z}`,{len:K,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(w,{quote:"///",endOffset:K-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 K}let U=N3.exec(this.chunk);if(!U)return 0;let[W,F,u]=U,f=this.prev();if(f){if(f.spaced&&O1.has(f[0])&&(!u||/^\/=?\s/.test(W)))return 0;if(R3.has(f[0])&&!(f.spaced&&O1.has(f[0])))return 0}if(!u)n("missing / (unclosed regex)",{row:this.row,col:this.col});let A=W.length,[Y]=J2.exec(this.chunk.slice(A)),_=A+Y.length;if(!T3.test(Y))n(`invalid regular expression flags ${Y}`,{row:this.row,col:this.col+A,len:Y.length});return this.emit("REGEX",`/${F}/${Y}`,{len:_,data:{delimiter:"/"}}),_}jsToken(){if(this.chunk[0]!=="`")return 0;let $=h3.exec(this.chunk)||S3.exec(this.chunk);if(!$)return 0;let U=$[1],W=$[0].length;return this.emit("JS",U,{len:W,data:{here:$[0].startsWith("```")}}),W}literalToken(){let $=K3.exec(this.chunk),U=$?$[0]:this.chunk.charAt(0),W=U,F=this.prev();if(q3.test(U))this.tagParameters();if(U==="="&&F&&F[1]==="."&&!F.spaced){let u=this.tokens,f=u.length-2;while(f>=1&&u[f][0]==="PROPERTY"&&u[f-1]?.[1]===".")f-=2;if(f>=0&&(u[f][0]==="IDENTIFIER"||u[f][0]===")"||u[f][0]==="]")){let A=u.slice(f,u.length-1);F[0]="=",F[1]="=";for(let Y of A)this.tokens.push(G1(Y[0],Y[1],{pre:0,row:Y[2],col:Y[3],len:Y[4]}));return this.tokens.push(G1(".",".",{pre:0,row:this.row,col:this.col,len:1})),U.length}}if(F&&(U==="="||Z2.has(U))){if(U==="="&&(F[1]==="||"||F[1]==="&&"||F[1]==="??")&&!F.spaced)return F[0]="COMPOUND_ASSIGN",F[1]+="=",U.length}if(U==="("&&F?.[0]==="IMPORT")F[0]="DYNAMIC_IMPORT";if(U==="{"&&this.seenImport)this.importSpecifierList=!0;if(U==="}"&&this.importSpecifierList)this.importSpecifierList=!1;if(U==="{"&&F?.[0]==="EXPORT")this.exportSpecifierList=!0;if(U==="}"&&this.exportSpecifierList)this.exportSpecifierList=!1;if(U===";")this.seenFor=this.seenImport=this.seenExport=!1,W="TERMINATOR";else if(U==="|>")W="PIPE";else if(U==="::=")W="TYPE_ALIAS";else if(U==="::"&&/^[a-zA-Z_$]/.test(this.chunk[2]||""))return this.emit(".","."),this.emit("PROPERTY","prototype"),this.emit(".","."),2;else if(U==="::")W="TYPE_ANNOTATION";else if(U==="~=")W="COMPUTED_ASSIGN";else if(U===":=")W="REACTIVE_ASSIGN";else if(U==="<=>")W="BIND";else if(U==="~>")W="EFFECT";else if(U==="=!")W="READONLY_ASSIGN";else if(U==="*"&&(!F||F[0]==="TERMINATOR"||F[0]==="INDENT"||F[0]==="OUTDENT")&&(/^[a-zA-Z_$]/.test(this.chunk[1]||"")||this.chunk[1]==="@")){let u=this.chunk.slice(1),f=/^@(\s*)=(?!=)/.exec(u);if(f){let Y=f[1];this.emit("IDENTIFIER","Object"),this.emit(".",".");let _=this.emit("PROPERTY","assign");return _.spaced=!0,this.emit("@","@"),this.emit(",",","),2+Y.length+1}let A=/^((?:(?!\s)[$\w\x7f-\uffff])+(?:\.[a-zA-Z_$][\w]*)*)(\s*)=(?!=)/.exec(u);if(A){let Y=A[1],_=A[2],w=Y.split("."),R=()=>{this.emit("IDENTIFIER",w[0]);for(let K=1;K<w.length;K++)this.emit(".","."),this.emit("PROPERTY",w[K])};R(),this.emit("=","="),this.emit("IDENTIFIER","Object"),this.emit(".","."),this.emit("PROPERTY","assign"),this.emit("CALL_START","("),R(),this.emit("COMPOUND_ASSIGN","??="),this.emit("{","{"),this.emit("}","}"),this.emit(",",",");let z=this.prev();return z.mergeClose=!0,1+Y.length+_.length+1}}else if(U==="*"&&F?.[0]==="EXPORT")W="EXPORT_ALL";else if(Z3.has(U))W="MATH";else if(w3.has(U))W="COMPARE";else if(Z2.has(U))W="COMPOUND_ASSIGN";else if(Q3.has(U))W="UNARY_MATH";else if(J3.has(U))W="SHIFT";else if(U==="?"&&F?.spaced)W="TERNARY";else if(U==="!?"&&F&&!F.spaced)W="DEFINED";else if(U==="?!"&&F&&!F.spaced)W="PRESENCE";else if(U==="?"&&(this.chunk[1]==="["||this.chunk[1]==="("))W="?.";else if(F){if(U==="("&&!F.spaced&&O1.has(F[0])){if(F[0]==="?.")F[0]="ES6_OPTIONAL_CALL";W="CALL_START"}if(U==="["&&!F.spaced&&X2.has(F[0])){if(W="INDEX_START",F[0]==="?.")F[0]="ES6_OPTIONAL_INDEX"}}if(U==="("||U==="{"||U==="[")this.ends.push({tag:A3[U],origin:[W,U]});else if(U===")"||U==="}"||U==="]")this.pair(U);return this.emit(W,U,{len:U.length}),U.length}tagParameters(){if(this.prevTag()!==")")return this.tagDoIife();let $=this.tokens.length-1,U=[];this.tokens[$][0]="PARAM_END";while($-- >0){let W=this.tokens[$];if(W[0]===")")U.push(W);else if(W[0]==="("||W[0]==="CALL_START")if(U.length)U.pop();else if(W[0]==="(")return W[0]="PARAM_START",this.tagDoIife($-1);else{this.tokens[this.tokens.length-1][0]="CALL_END";return}}}tagDoIife($){let U=this.tokens[$??this.tokens.length-1];if(U?.[0]==="DO")U[0]="DO_IIFE"}rewrite($){return this.tokens=$,this.removeLeadingNewlines(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.rewriteRender?.(),this.rewriteTypes(),this.tagPostfixConditionals(),this.addImplicitBracesAndParens(),this.addImplicitCallCommas(),this.closeMergeAssignments(),this.tokens}removeLeadingNewlines(){let $=0;while(this.tokens[$]?.[0]==="TERMINATOR")$++;if($>0)this.tokens.splice(0,$)}closeOpenCalls(){this.scanTokens(($,U)=>{if($[0]==="CALL_START")this.detectEnd(U+1,(W)=>W[0]===")"||W[0]==="CALL_END",(W)=>W[0]="CALL_END");return 1})}closeOpenIndexes(){this.scanTokens(($,U)=>{if($[0]==="INDEX_START")this.detectEnd(U+1,(W)=>W[0]==="]"||W[0]==="INDEX_END",(W,F)=>{if(this.tokens[F+1]?.[0]===":")$[0]="[",W[0]="]";else W[0]="INDEX_END"});return 1})}normalizeLines(){let $=null,U=null,W=null,F=(f,A)=>{return f[1]!==";"&&_3.has(f[0])&&!(f[0]==="TERMINATOR"&&A2.has(this.tokens[A+1]?.[0]))&&!(f[0]==="ELSE"&&$!=="THEN")||f[0]==="INDENT"&&!f.generated&&($==="->"||$==="=>")||f[0]===","&&($==="->"||$==="=>")&&!this.commaInImplicitCall(A)&&!this.commaInImplicitObject(A)||_2.has(f[0])&&(this.tokens[A-1]?.newLine||this.tokens[A-1]?.[0]==="OUTDENT")},u=(f,A)=>{let Y=this.tokens[A-1]?.[0]===","?A-1:A;this.tokens.splice(Y,0,W)};this.scanTokens((f,A,Y)=>{let[_]=f;if(_==="TERMINATOR"){if(this.tokens[A+1]?.[0]==="ELSE"&&this.tokens[A-1]?.[0]!=="OUTDENT")return Y.splice(A,1,...this.makeIndentation()),1;if(A2.has(this.tokens[A+1]?.[0]))return Y.splice(A,1),0}if(_==="CATCH")for(let w=1;w<=2;w++){let R=this.tokens[A+w]?.[0];if(R==="OUTDENT"||R==="TERMINATOR"||R==="FINALLY")return Y.splice(A+w,0,...this.makeIndentation()),2+w}if((_==="->"||_==="=>")&&(this.tokens[A+1]?.[0]===","||this.tokens[A+1]?.[0]==="]"))return[U,W]=this.makeIndentation(),Y.splice(A+1,0,U,W),1;if(Y2.has(_)&&this.tokens[A+1]?.[0]!=="INDENT"&&!(_==="ELSE"&&this.tokens[A+1]?.[0]==="IF")&&!(_==="ELSE"&&this.tokens[A-1]?.[0]!=="OUTDENT")){if($=_,[U,W]=this.makeIndentation(),_==="THEN")U.fromThen=!0;if(Y.splice(A+1,0,U),this.detectEnd(A+2,F,u),_==="THEN")Y.splice(A,1);return 1}return 1})}tagPostfixConditionals(){let $=null,U=(F,u)=>{return F[0]==="TERMINATOR"||F[0]==="INDENT"&&!Y2.has(this.tokens[u-1]?.[0])},W=(F)=>{if(F[0]!=="INDENT"||F.generated&&!F.fromThen)$[0]="POST_"+$[0]};this.scanTokens((F,u)=>{if(F[0]!=="IF"&&F[0]!=="UNLESS")return 1;if(this.tokens[u-1]?.[0]==="INTERPOLATION_START")return 1;return $=F,this.detectEnd(u+1,U,W),1})}addImplicitBracesAndParens(){let $=[],U=!1;this.scanTokens((W,F,u)=>{let[f]=W,A=u[F-1]||[],Y=u[F+1]||[],[_]=A,[w]=Y,R=F,z=(H)=>F-R+H,K=()=>$[$.length-1],J=(H)=>H?.[2]?.ours,M=()=>J(K())&&K()?.[0]==="(",Q=()=>J(K())&&K()?.[0]==="{",Z=(H)=>{$.push(["(",H,{ours:!0}]),u.splice(H,0,d("CALL_START","("))},X=()=>{$.pop(),u.splice(F,0,d("CALL_END",")")),F+=1},D=(H,I={})=>{$.push(["{",H,{sameLine:!0,startsLine:I.startsLine??!0,ours:!0}]);let E=d("{","{");if(!E.data)E.data={};E.data.generated=!0,u.splice(H,0,E)},O=(H)=>{H=H??F,$.pop(),u.splice(H,0,d("}","}")),F+=1};if((M()||Q())&&Y3.has(f))return $.push(["CONTROL",F,{ours:!0}]),z(1);if(f==="INDENT"&&J(K())){if(_!=="=>"&&_!=="->"&&_!=="["&&_!=="("&&_!==","&&_!=="{"&&_!=="ELSE"&&_!=="=")while(M()||Q()&&_!==":")if(M())X();else O();if(K()?.[2]?.ours&&K()[0]==="CONTROL")$.pop();return $.push([f,F]),z(1)}if(e.has(f))return $.push([f,F]),z(1);if(o.has(f)){while(J(K()))if(M())X();else if(Q())O();else $.pop();$.pop()}if(b1.has(f)&&W.spaced&&(q1.has(w)||w==="..."&&q1.has(u[F+2]?.[0])||U3.has(w)&&!Y.spaced&&!Y.newLine)&&!((f==="]"||f==="}")&&(w==="->"||w==="=>")))return Z(F+1),z(2);if(b1.has(f)&&this.tokens[F+1]?.[0]==="INDENT"&&this.looksObjectish(F+2)&&!this.findTagsBackwards(F,["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"]))return Z(F+1),$.push(["INDENT",F+2]),z(3);if(f==="TERNARY")U=!0;if(f===":"){if(U)return U=!1,z(1);let H=o.has(this.tokens[F-1]?.[0])?$[$.length-1]?.[1]??F-1:F-1;if(this.tokens[F-2]?.[0]==="@")H=F-2;let I=H<=0||R1.has(this.tokens[H-1]?.[0])||this.tokens[H-1]?.newLine;if(K()){let[E,B]=K(),T=$[$.length-2];if((E==="{"||E==="INDENT"&&T?.[0]==="{"&&!J(T))&&(I||this.tokens[H-1]?.[0]===","||this.tokens[H-1]?.[0]==="{"||this.tokens[H]?.[0]==="{"))return z(1)}return D(H,{startsLine:!!I}),z(2)}if(R1.has(f))for(let H=$.length-1;H>=0;H--){if(!J($[H]))break;if($[H][0]==="{")$[H][2].sameLine=!1}let q=_==="OUTDENT"||A.newLine,G=f==="||"||f==="&&",P=!1;if(G){let H=F+1,I=u[H]?.[0];if(I==="("||I==="["||I==="{"){for(let E=1;++H<u.length&&E>0;)if(I=u[H][0],I==="("||I==="["||I==="{")E++;else if(I===")"||I==="]"||I==="}")E--}else if(I&&I!=="TERMINATOR"&&I!=="OUTDENT"&&I!==",")H++;P=u[H]?.[0]===","}if(F3.has(f)&&!P||_2.has(f)&&q)while(J(K())){let[H,,{sameLine:I,startsLine:E}]=K();if(M()&&_!==",")X();else if(Q()&&!G&&I&&f!=="TERMINATOR"&&_!==":")O();else if(Q()&&f==="TERMINATOR"&&_!==","&&!(E&&this.looksObjectish(F+1)))O();else if(K()?.[2]?.ours&&K()[0]==="CONTROL"&&u[K()[1]]?.[0]==="CLASS"&&f==="TERMINATOR")$.pop();else break}if(f===","&&!this.looksObjectish(F+1)&&Q()&&(w!=="TERMINATOR"||!this.looksObjectish(F+2))){let H=w==="OUTDENT"?1:0;while(Q())O(F+H)}return z(1)})}addImplicitCallCommas(){let $=0,U=0,W=this.tokens;while(U<W.length){let F=W[U][0],u=U>0?W[U-1][0]:null;if(F==="CALL_START"||F==="(")$++;if(F==="CALL_END"||F===")")$--;if($>0&&(F==="->"||F==="=>")&&W3.has(u))W.splice(U,0,d(",",",")),U++;U++}}scanTokens($){let U=0;while(U<this.tokens.length)U+=$.call(this,this.tokens[U],U,this.tokens)}detectEnd($,U,W,F={}){let u=0;while($<this.tokens.length){let f=this.tokens[$];if(u===0&&U.call(this,f,$))return W.call(this,f,$);if(e.has(f[0]))u++;if(o.has(f[0]))u--;if(u<0){if(F.returnOnNegativeLevel)return;return W.call(this,f,$)}$++}}closeMergeAssignments(){let $=this.tokens;for(let U=0;U<$.length;U++){if(!$[U].mergeClose)continue;let W=0;for(let F=U+1;F<$.length;F++){let u=$[F][0];if(u==="("||u==="["||u==="{"||u==="CALL_START"||u==="INDEX_START"||u==="INDENT")W++;if(u===")"||u==="]"||u==="}"||u==="CALL_END"||u==="INDEX_END"||u==="OUTDENT")W--;if(W<0||W===0&&u==="TERMINATOR"){$.splice(F,0,d("CALL_END",")",$[F-1]));break}if(F===$.length-1){$.splice(F+1,0,d("CALL_END",")",$[F]));break}}}}commaInImplicitCall($){let U=0;for(let W=$-1;W>=0;W--){let F=this.tokens[W][0];if(o.has(F)){U++;continue}if(e.has(F)){if(F==="INDENT")return!1;if(U--,U<0)return!1;continue}if(U>0)continue;if(b1.has(F)&&this.tokens[W].spaced){let u=this.tokens[W+1]?.[0];return q1.has(u)||u==="..."&&q1.has(this.tokens[W+2]?.[0])}}return!1}commaInImplicitObject($){let U=0;for(let W=$-1;W>=0;W--){let F=this.tokens[W][0];if(o.has(F)){U++;continue}if(e.has(F)){if(U--,U<0)return!1;continue}if(U>0)continue;if(F===":"&&W>0&&this.tokens[W-1][0]==="PROPERTY")return this.looksObjectish($+1);if(R1.has(F))return!1}return!1}looksObjectish($){if(!this.tokens[$])return!1;if(this.tokens[$]?.[0]==="@"&&this.tokens[$+2]?.[0]===":")return!0;if(this.tokens[$+1]?.[0]===":")return!0;if(e.has(this.tokens[$]?.[0])){let U=null;if(this.detectEnd($+1,(W)=>o.has(W[0]),(W,F)=>U=F),U&&this.tokens[U+1]?.[0]===":")return!0}return!1}findTagsBackwards($,U){let W=new Set(U),F=[];while($>=0){let u=this.tokens[$]?.[0];if(!F.length&&W.has(u))return!0;if(o.has(u))F.push(u);if(e.has(u)&&F.length)F.pop();if(!F.length&&(e.has(u)&&!this.tokens[$]?.generated||R1.has(u)))break;$--}return!1}makeIndentation($){let U=d("INDENT",2),W=d("OUTDENT",2);if($)U.generated=W.generated=!0,U.origin=W.origin=$;else U.explicit=W.explicit=!0;return[U,W]}}f2(a);var y3={symbolIds:{$accept:0,$end:1,error:2,Root:3,Body:4,Line:5,TERMINATOR:6,Expression:7,ExpressionLine:8,Statement:9,Return:10,STATEMENT:11,Import:12,Export:13,Value:14,Code:15,Operation:16,Assign:17,ReactiveAssign:18,ComputedAssign:19,ReadonlyAssign:20,Effect:21,If:22,Try:23,While:24,For:25,Switch:26,Class:27,Component:28,Render:29,Throw:30,Yield:31,Def:32,Enum:33,CodeLine:34,OperationLine:35,Assignable:36,Literal:37,Parenthetical:38,Range:39,Invocation:40,DoIife:41,This:42,Super:43,MetaProperty:44,AlphaNumeric:45,JS:46,Regex:47,UNDEFINED:48,NULL:49,BOOL:50,INFINITY:51,NAN:52,NUMBER:53,String:54,Identifier:55,IDENTIFIER:56,Property:57,PROPERTY:58,STRING:59,STRING_START:60,Interpolations:61,STRING_END:62,InterpolationChunk:63,INTERPOLATION_START:64,INTERPOLATION_END:65,INDENT:66,OUTDENT:67,REGEX:68,REGEX_START:69,REGEX_END:70,RegexWithIndex:71,",":72,"=":73,REACTIVE_ASSIGN:74,COMPUTED_ASSIGN:75,Block:76,READONLY_ASSIGN:77,EFFECT:78,SimpleAssignable:79,Array:80,Object:81,ThisProperty:82,".":83,"?.":84,INDEX_START:85,INDEX_END:86,Slice:87,ES6_OPTIONAL_INDEX:88,"{":89,ObjAssignable:90,":":91,FOR:92,ForVariables:93,FOROF:94,OptComma:95,"}":96,WHEN:97,OWN:98,AssignList:99,AssignObj:100,ObjRestValue:101,SimpleObjAssignable:102,"[":103,"]":104,"@":105,"...":106,ObjSpreadExpr:107,SUPER:108,Arguments:109,DYNAMIC_IMPORT:110,Elisions:111,ArgElisionList:112,OptElisions:113,ArgElision:114,Arg:115,Elision:116,RangeDots:117,"..":118,DEF:119,CALL_START:120,ParamList:121,CALL_END:122,PARAM_START:123,PARAM_END:124,FuncGlyph:125,"->":126,"=>":127,Param:128,ParamVar:129,Splat:130,ES6_OPTIONAL_CALL:131,ArgList:132,SimpleArgs:133,THIS:134,NEW_TARGET:135,IMPORT_META:136,"(":137,")":138,RETURN:139,THROW:140,YIELD:141,FROM:142,IfBlock:143,IF:144,ELSE:145,UnlessBlock:146,UNLESS:147,POST_IF:148,POST_UNLESS:149,TRY:150,Catch:151,FINALLY:152,CATCH:153,SWITCH:154,Whens:155,When:156,LEADING_WHEN:157,WhileSource:158,WHILE:159,UNTIL:160,Loop:161,LOOP:162,FORIN:163,BY:164,FORAS:165,AWAIT:166,FORASAWAIT:167,ForValue:168,CLASS:169,EXTENDS:170,ENUM:171,COMPONENT:172,ComponentBody:173,ComponentLine:174,OFFER:175,ACCEPT:176,RENDER:177,IMPORT:178,ImportDefaultSpecifier:179,ImportNamespaceSpecifier:180,ImportSpecifierList:181,ImportSpecifier:182,AS:183,DEFAULT:184,IMPORT_ALL:185,EXPORT:186,ExportSpecifierList:187,EXPORT_ALL:188,ExportSpecifier:189,UNARY:190,DO:191,DO_IIFE:192,UNARY_MATH:193,"-":194,"+":195,"?":196,DEFINED:197,PRESENCE:198,"--":199,"++":200,MATH:201,"**":202,SHIFT:203,COMPARE:204,"&":205,"^":206,"|":207,"||":208,"??":209,"&&":210,"!?":211,PIPE:212,RELATION:213,TERNARY:214,COMPOUND_ASSIGN:215},tokenNames:{2:"error",6:"TERMINATOR",11:"STATEMENT",46:"JS",48:"UNDEFINED",49:"NULL",50:"BOOL",51:"INFINITY",52:"NAN",53:"NUMBER",56:"IDENTIFIER",58:"PROPERTY",59:"STRING",60:"STRING_START",62:"STRING_END",64:"INTERPOLATION_START",65:"INTERPOLATION_END",66:"INDENT",67:"OUTDENT",68:"REGEX",69:"REGEX_START",70:"REGEX_END",72:",",73:"=",74:"REACTIVE_ASSIGN",75:"COMPUTED_ASSIGN",77:"READONLY_ASSIGN",78:"EFFECT",83:".",84:"?.",85:"INDEX_START",86:"INDEX_END",88:"ES6_OPTIONAL_INDEX",89:"{",91:":",92:"FOR",94:"FOROF",96:"}",97:"WHEN",98:"OWN",103:"[",104:"]",105:"@",106:"...",108:"SUPER",110:"DYNAMIC_IMPORT",118:"..",119:"DEF",120:"CALL_START",122:"CALL_END",123:"PARAM_START",124:"PARAM_END",126:"->",127:"=>",131:"ES6_OPTIONAL_CALL",134:"THIS",135:"NEW_TARGET",136:"IMPORT_META",137:"(",138:")",139:"RETURN",140:"THROW",141:"YIELD",142:"FROM",144:"IF",145:"ELSE",147:"UNLESS",148:"POST_IF",149:"POST_UNLESS",150:"TRY",152:"FINALLY",153:"CATCH",154:"SWITCH",157:"LEADING_WHEN",159:"WHILE",160:"UNTIL",162:"LOOP",163:"FORIN",164:"BY",165:"FORAS",166:"AWAIT",167:"FORASAWAIT",169:"CLASS",170:"EXTENDS",171:"ENUM",172:"COMPONENT",175:"OFFER",176:"ACCEPT",177:"RENDER",178:"IMPORT",183:"AS",184:"DEFAULT",185:"IMPORT_ALL",186:"EXPORT",188:"EXPORT_ALL",190:"UNARY",191:"DO",192:"DO_IIFE",193:"UNARY_MATH",194:"-",195:"+",196:"?",197:"DEFINED",198:"PRESENCE",199:"--",200:"++",201:"MATH",202:"**",203:"SHIFT",204:"COMPARE",205:"&",206:"^",207:"|",208:"||",209:"??",210:"&&",211:"!?",212:"PIPE",213:"RELATION",214:"TERNARY",215:"COMPOUND_ASSIGN"},parseTable:(()=>{let $=[107,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,-1,1,2,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,1,1,0,2,1,5,-2,107,5,1,5,59,2,71,-3,-3,-3,-3,-3,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-6,-6,-6,-6,-6,-6,127,-6,-6,-6,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,9,1,5,59,1,1,5,32,18,16,-7,-7,-7,-7,-7,-7,-7,-7,-7,14,1,5,59,1,1,5,32,18,16,10,1,9,1,1,-8,-8,-8,-8,-8,-8,-8,-8,-8,128,129,130,96,97,56,1,5,48,5,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,3,9,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-13,-13,134,105,106,-13,-13,-13,-13,137,138,139,-13,140,-13,-13,-13,-13,-13,-13,-13,135,-13,141,-13,-13,136,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,131,132,133,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,46,1,5,59,1,1,5,11,1,1,1,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,142,143,144,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,9,1,5,59,1,1,5,32,18,16,-33,-33,-33,-33,-33,-33,-33,-33,-33,9,1,5,59,1,1,5,32,18,16,-34,-34,-34,-34,-34,-34,-34,-34,-34,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,145,146,147,148,149,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,154,104,-173,-173,-173,156,157,155,99,159,158,153,150,-173,-173,151,152,106,5,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,161,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,162,102,103,160,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,103,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,163,164,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,103,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,166,167,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,168,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,174,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,175,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,176,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,177,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,45,14,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,7,14,2,3,2,13,2,1,1,7,1,1,1,55,179,180,181,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,178,72,73,93,99,83,87,84,85,169,170,90,91,86,88,89,82,173,45,14,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,7,14,2,3,2,13,2,1,1,7,1,1,1,55,179,180,181,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,182,72,73,93,99,83,87,84,85,169,170,90,91,86,88,89,82,173,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,183,184,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,185,103,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,187,186,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,162,102,103,188,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,189,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,2,66,10,162,190,2,66,10,162,191,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,14,39,16,1,24,1,1,7,4,5,5,2,24,37,2,195,154,104,156,157,155,99,192,193,83,158,197,194,196,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,198,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,199,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,90,1,5,8,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,4,3,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,4,1,1,1,1,1,7,1,1,1,1,7,3,1,10,1,3,1,1,2,3,22,2,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-305,-305,179,180,181,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-305,162,-305,102,103,-305,200,202,72,73,93,-305,99,-305,-305,-305,-305,-305,83,-305,87,-305,84,85,-305,-305,169,-305,170,90,91,86,88,89,82,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,201,173,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,1,66,203,2,66,10,162,204,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,205,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,206,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,139,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,6,1,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,1,3,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,2,2,1,5,1,8,4,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-224,-224,207,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-224,208,-224,102,103,-224,53,52,72,73,93,-224,99,-224,-224,-224,-224,-224,83,-224,87,-224,84,85,-224,66,-224,169,-224,170,90,91,86,88,89,82,-224,69,64,65,209,54,94,-224,55,95,-224,-224,56,60,57,-224,-224,58,98,-224,-224,-224,49,-224,61,67,62,63,70,71,171,172,173,46,47,48,50,51,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,2,55,1,210,104,2,55,1,211,104,6,15,19,89,2,1,1,213,212,42,43,90,91,138,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,6,1,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,1,3,1,1,1,1,1,7,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,2,2,1,5,1,8,4,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-221,-221,214,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-221,215,-221,102,103,-221,53,52,72,73,93,-221,99,-221,-221,-221,-221,-221,83,-221,87,-221,84,85,-221,66,-221,169,-221,170,90,91,86,88,89,82,-221,69,64,65,54,94,-221,55,95,-221,-221,56,60,57,-221,-221,58,98,-221,-221,-221,49,-221,61,67,62,63,70,71,171,172,173,46,47,48,50,51,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,9,54,1,1,3,1,29,90,1,5,216,220,104,105,106,219,217,218,221,60,14,1,3,1,1,1,6,1,4,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,14,2,3,2,9,4,2,1,1,7,1,1,1,32,2,1,12,4,4,179,180,228,229,230,231,223,224,225,226,234,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,227,104,105,106,102,103,53,235,72,73,93,222,83,87,84,85,66,169,170,90,91,86,88,89,82,61,67,62,232,233,173,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,106,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,236,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,237,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,113,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,6,1,1,1,1,7,3,11,1,1,1,2,2,1,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,238,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,244,102,103,245,53,52,72,73,93,99,59,83,239,87,249,84,85,240,241,243,246,242,66,42,43,90,91,248,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,4,83,2,24,11,251,252,250,141,2,109,11,253,141,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,56,1,5,51,1,1,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-206,-206,254,255,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,1,83,256,1,83,257,54,11,35,2,1,1,1,1,1,3,3,1,6,2,1,9,11,3,11,2,3,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,54,11,35,2,1,1,1,1,1,3,3,1,6,2,1,9,11,3,11,2,3,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,258,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,259,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,260,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,261,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,263,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,162,102,103,262,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,23,6,39,8,1,1,1,1,1,1,1,6,1,5,10,8,6,3,1,1,1,1,2,1,-109,269,100,101,271,104,272,255,105,106,-109,-109,-109,273,264,-109,265,270,274,266,267,268,275,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,45,14,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,7,14,2,3,2,13,2,1,1,7,1,1,1,55,179,180,181,34,35,36,276,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,235,72,73,93,99,83,87,84,85,169,170,90,91,86,88,89,82,173,65,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,4,3,3,1,10,1,3,1,1,2,3,13,11,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,57,1,5,53,1,2,2,1,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,6,54,5,1,1,2,1,280,105,106,277,278,279,109,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,2,1,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,1,1,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,-5,281,-5,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-5,-5,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,-5,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,282,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,283,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,284,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,285,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,286,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,287,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,288,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,289,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,290,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,293,165,291,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,292,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,296,165,294,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,295,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,299,165,297,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,298,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,300,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,301,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,302,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,303,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,304,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,305,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,14,39,16,1,24,1,1,7,4,5,5,2,24,37,2,309,154,104,156,157,155,99,306,307,83,158,197,308,196,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,310,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,311,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,55,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,55,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,2,109,11,312,141,2,57,1,313,255,2,57,1,314,255,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,2,7,1,1,1,1,5,2,3,11,2,1,2,2,7,1,1,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,315,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,320,77,78,79,80,81,100,101,92,104,105,106,316,102,103,318,53,52,72,73,93,317,99,59,83,87,322,84,85,319,321,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,85,323,109,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,1,2,2,5,4,3,1,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,327,102,103,53,52,72,73,93,99,59,83,87,249,84,85,326,66,324,42,43,90,91,248,325,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,2,57,1,329,255,2,57,1,330,255,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,331,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,332,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,334,333,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,335,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,337,336,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,338,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,103,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,340,339,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,162,102,103,341,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,343,342,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,344,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,103,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,346,345,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,162,102,103,347,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,9,6,60,1,5,23,1,8,18,2,-217,-217,-217,349,350,-217,-217,-217,348,6,6,60,1,5,50,2,-174,-174,-174,-174,-174,-174,7,6,60,1,5,1,49,2,-178,-178,-178,-178,351,-178,-178,15,6,49,1,10,1,5,8,1,1,7,14,2,17,2,5,-181,154,104,-181,-181,-181,156,157,155,99,159,158,-181,-181,352,11,6,60,1,5,1,21,28,2,39,2,2,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,11,6,60,1,5,1,21,28,2,39,2,2,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,11,6,60,1,5,1,21,28,2,39,2,2,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,11,6,60,1,5,1,21,28,2,39,2,2,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,2,57,1,254,255,113,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,6,1,1,1,1,7,3,11,1,1,1,2,2,1,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,244,102,103,245,53,52,72,73,93,99,59,83,239,87,249,84,85,240,241,243,246,242,66,42,43,90,91,248,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,9,1,5,59,1,1,5,32,18,16,-170,-170,-170,-170,-170,-170,-170,-170,-170,106,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,354,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,353,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,125,126,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,118,-373,120,-373,-373,-373,9,1,5,59,1,1,5,32,18,16,-370,-370,-370,-370,-370,-370,-370,-370,-370,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,125,126,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,118,-374,120,-374,-374,-374,9,1,5,59,1,1,5,32,18,16,-371,-371,-371,-371,-371,-371,-371,-371,-371,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,125,126,-375,-375,-375,-375,-375,-375,-375,-375,-375,111,-375,-375,-375,-375,-375,-375,118,-375,120,-375,-375,-375,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,154,104,-173,-173,-173,156,157,155,99,159,158,153,355,-173,-173,151,152,2,66,10,162,160,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,163,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,166,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,5,15,108,2,1,1,213,169,170,90,91,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,125,126,-376,-376,-376,-376,-376,-376,-376,-376,-376,111,-376,-376,-376,-376,-376,-376,118,-376,120,-376,-376,-376,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,125,126,-377,-377,-377,-377,-377,-377,-377,-377,-377,111,-377,-377,-377,-377,-377,-377,118,-377,120,-377,-377,-377,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,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,125,126,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,118,-381,120,-381,-381,-381,2,81,8,356,99,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-383,-383,-86,-86,-383,-383,-383,-383,-86,-86,-86,-86,-86,-86,-86,-86,-383,-86,-383,-383,-383,-383,-383,-383,-383,-383,-86,-383,-383,-86,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-86,-86,-86,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,10,54,5,1,23,1,1,3,21,11,11,134,105,106,137,138,139,140,135,141,136,3,83,1,1,142,143,144,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-384,-384,-86,-86,-384,-384,-384,-384,-86,-86,-86,-86,-86,-86,-86,-86,-384,-86,-384,-384,-384,-384,-384,-384,-384,-384,-86,-384,-384,-86,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-86,-86,-86,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,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,5,1,8,4,1,1,1,1,1,4,1,359,357,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,358,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-83,-83,-83,-83,-83,-83,-83,-83,127,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,124,125,126,96,97,-83,-83,-83,-83,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,360,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,3,66,10,68,162,361,362,46,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,2,1,1,6,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,363,364,365,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,4,94,69,2,2,367,366,368,369,11,55,1,24,1,1,7,4,10,2,24,39,154,104,156,157,155,99,370,159,158,197,196,11,55,1,24,1,1,7,4,10,2,24,39,154,104,156,157,155,99,371,159,158,197,196,3,66,10,88,162,372,373,5,72,22,69,2,2,374,-303,-303,-303,-303,6,72,1,21,69,2,2,-301,375,-301,-301,-301,-301,23,66,26,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,376,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,3,155,1,1,377,378,379,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,380,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,61,1,5,53,1,5,1,1,5,1,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-309,-309,-86,-86,-309,162,-309,-309,-86,-86,-86,381,-86,-86,-86,-86,-86,-309,-86,-309,-309,-309,-309,-309,-309,-309,-309,-86,-309,-309,-86,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,382,-309,-309,-86,-86,-86,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,107,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,1,1,8,4,1,1,1,1,1,4,1,385,386,387,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,383,384,388,389,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,125,126,-222,-222,-222,-222,-222,-222,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,81,8,390,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,125,126,-225,-225,-225,-225,-225,-225,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,81,8,391,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,5,1,8,4,1,1,1,1,1,4,1,392,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,3,66,10,44,162,394,393,2,66,10,162,395,9,1,5,59,1,1,5,32,18,16,-372,-372,-372,-372,-372,-372,-372,-372,-372,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,125,126,-219,-219,-219,-219,-219,-219,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,81,8,396,99,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,2,72,70,398,397,1,142,399,7,55,1,10,30,85,1,2,404,104,403,400,401,402,405,2,72,70,-340,-340,1,183,406,26,6,39,8,1,1,1,1,1,1,1,6,1,5,10,8,6,3,1,1,1,1,2,1,78,3,2,-109,269,100,101,411,104,272,255,105,106,410,-109,-109,273,264,407,265,270,274,266,267,268,275,412,408,409,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,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,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-89,-89,-89,-89,-89,-89,-89,-89,413,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-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,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,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,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,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,5,1,8,4,1,1,1,1,1,4,1,414,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,415,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,142,416,58,1,5,53,1,5,1,1,5,2,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,146,147,148,149,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,2,6,132,107,417,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,5,1,8,4,1,1,1,1,1,4,1,418,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,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-199,-199,-199,-199,127,-199,322,419,321,-199,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,109,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,6,1,1,1,1,7,3,11,1,1,1,2,2,5,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,245,53,52,72,73,93,99,59,83,420,87,249,84,85,422,421,66,42,43,90,91,248,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,9,6,60,1,5,23,1,8,9,9,-217,-217,-217,424,425,-217,-217,423,-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,5,1,8,4,1,1,1,1,1,4,1,426,-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,5,1,8,4,1,1,1,1,1,4,1,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,244,102,103,245,53,52,72,73,93,99,59,83,87,249,84,85,428,427,243,246,242,66,42,43,90,91,248,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,6,11,3,11,1,1,1,2,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,5,6,60,1,5,32,-150,-150,-150,-150,-150,6,6,60,1,5,32,18,-200,-200,-200,-200,-200,-200,6,6,60,1,5,32,18,-201,-201,-201,-201,-201,-201,106,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,6,1,1,1,1,7,3,11,1,1,3,2,9,3,1,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,-202,429,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-202,-202,102,103,-202,53,52,72,73,93,99,59,83,-202,87,84,85,66,-202,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,55,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,2,57,1,430,255,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,431,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,432,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,55,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,2,57,1,433,255,2,57,1,434,255,24,66,10,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,435,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,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,436,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-256,-256,-256,-256,-256,-256,-256,-256,127,-256,-256,437,-256,-256,-256,-256,-256,-256,-256,-256,125,126,96,97,-256,-256,-256,-256,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-258,-258,-258,-258,-258,-258,-258,-258,127,-258,-258,438,-258,-258,-258,-258,-258,-258,-258,-258,125,126,96,97,-258,-258,-258,-258,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,45,1,5,59,1,1,5,4,10,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-265,-265,-265,162,-265,-265,439,-265,-265,127,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,125,126,96,97,-265,-265,-265,-265,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,6,6,60,1,5,19,5,-114,-114,-114,-114,440,-114,8,6,60,1,5,23,1,8,18,-217,-217,-217,442,441,-217,-217,-217,7,6,60,1,5,1,18,5,-123,-123,-123,-123,443,-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,5,1,8,4,1,1,1,1,1,4,1,444,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,3,57,1,45,254,255,445,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,449,451,450,271,104,272,255,448,273,99,446,87,447,452,453,86,82,55,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,-39,-39,454,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,6,54,5,1,2,1,1,280,105,106,455,456,279,4,59,1,2,2,-58,-58,-58,-58,107,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,457,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,459,458,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,125,126,-387,-387,-387,-387,-387,-387,-387,-387,110,111,-387,-387,-387,-387,-387,-387,118,-387,120,-387,-387,-387,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,125,126,-388,-388,-388,-388,-388,-388,-388,-388,110,111,-388,-388,-388,-388,-388,-388,118,-388,120,-388,-388,-388,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,125,126,-389,-389,-389,-389,-389,-389,-389,-389,-389,111,-389,-389,-389,-389,-389,-389,118,-389,120,-389,-389,-389,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,125,126,-390,-390,-390,-390,-390,-390,-390,-390,-390,111,-390,-390,-390,-390,-390,-390,118,-390,120,-390,-390,-390,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,125,126,-391,-391,-391,-391,-391,-391,109,108,110,111,-391,-391,-391,-391,-391,-391,118,-391,120,-391,-391,-391,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,125,126,-392,-392,-392,-392,-392,-392,109,108,110,111,112,-392,-392,-392,-392,-392,118,-392,120,-392,122,-392,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,125,126,-393,-393,-393,-393,-393,-393,109,108,110,111,112,113,-393,-393,-393,-393,118,-393,120,-393,122,-393,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,125,126,-394,-394,-394,-394,-394,-394,109,108,110,111,112,113,114,-394,-394,-394,118,-394,120,-394,122,-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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,125,126,-395,-395,-395,-395,-395,-395,109,108,110,111,112,113,114,115,-395,-395,118,-395,120,-395,122,-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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,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,-403,118,119,120,-403,122,-403,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-404,-404,-404,-404,-404,-404,-404,-404,127,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,124,125,126,96,97,-404,-404,-404,-404,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-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,27,1,6,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,113,114,115,116,-402,118,-402,120,-402,122,-402,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-405,-405,-405,-405,-405,-405,-405,-405,127,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,124,125,126,96,97,-405,-405,-405,-405,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,125,126,-406,-406,-406,-406,-406,-406,109,108,110,111,112,113,114,115,116,117,118,119,120,-406,122,-406,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,125,126,-407,-407,-407,-407,-407,-407,109,108,110,111,112,-407,-407,-407,-407,-407,118,-407,120,-407,-407,-407,23,91,1,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,460,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-236,-236,-236,-236,-236,-236,-236,-236,127,-236,-236,-236,-236,-236,-236,-236,-236,-236,461,-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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-240,-240,-240,-240,-240,-240,-240,-240,127,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,124,125,126,96,97,-240,-240,-240,-240,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,94,69,2,2,463,462,464,465,11,55,1,24,1,1,7,4,10,2,24,39,154,104,156,157,155,99,466,159,158,197,196,11,55,1,24,1,1,7,4,10,2,24,39,154,104,156,157,155,99,467,159,158,197,196,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,468,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-235,-235,-235,-235,-235,-235,-235,-235,127,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,125,126,96,97,-235,-235,-235,-235,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-239,-239,-239,-239,-239,-239,-239,-239,127,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,124,125,126,96,97,-239,-239,-239,-239,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,55,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,26,86,6,14,11,1,30,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,469,127,322,470,321,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,104,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,5,2,3,11,2,1,2,2,7,1,1,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,471,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,472,99,59,83,87,322,84,85,319,321,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,86,473,1,86,474,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,5,1,8,4,1,1,1,1,1,4,1,475,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-164,102,103,53,52,72,73,93,-164,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,-46,-46,-46,-46,-46,476,-46,-46,-46,-67,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,55,11,35,2,1,1,1,1,1,3,3,1,7,1,1,9,8,3,3,11,2,3,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,55,11,35,2,1,1,1,1,1,3,3,1,7,1,1,9,8,3,3,11,2,3,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,477,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,478,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,55,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,8,6,60,1,5,23,1,8,18,-217,-217,-217,480,479,-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,5,1,8,4,1,1,1,1,1,4,1,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,327,102,103,53,52,72,73,93,99,59,83,87,249,84,85,326,66,42,43,90,91,248,481,86,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,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-199,-199,-199,-199,127,-199,-199,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,23,86,6,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,482,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,5,1,8,4,1,1,1,1,1,4,1,483,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,125,126,-68,-68,-68,-68,-68,-68,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,484,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,485,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-71,-71,-71,-71,-71,-71,-71,-71,127,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,124,125,126,96,97,-71,-71,-71,-71,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,486,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,487,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-74,-74,-74,-74,-74,-74,-74,-74,127,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,124,125,126,96,97,-74,-74,-74,-74,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,488,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-77,-77,-77,-77,-77,-77,-77,-77,127,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,124,125,126,96,97,-77,-77,-77,-77,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,489,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,490,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-80,-80,-80,-80,-80,-80,-80,-80,127,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,124,125,126,96,97,-80,-80,-80,-80,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,491,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,3,125,1,1,492,90,91,17,6,49,1,10,1,13,1,1,7,7,7,1,1,1,16,6,1,-218,154,104,-218,-218,156,157,155,99,-218,159,-218,158,153,-218,493,152,2,6,60,494,495,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,496,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,6,6,60,1,5,50,2,-180,-180,-180,-180,-180,-180,57,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,3,1,4,2,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,2,6,61,107,497,9,6,60,1,5,23,1,8,18,2,-217,-217,-217,349,350,-217,-217,-217,498,1,67,499,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,125,126,-409,-409,-409,-409,-409,-409,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,500,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,501,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-84,-84,-84,-84,-84,-84,-84,-84,127,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,124,125,126,96,97,-84,-84,-84,-84,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,502,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,503,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,2,66,10,162,504,6,55,1,10,10,5,8,505,104,162,507,506,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,5,1,8,4,1,1,1,1,1,4,1,508,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,509,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,510,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,511,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,94,512,1,165,513,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,514,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,10,55,1,24,1,1,7,14,2,24,39,154,104,156,157,155,99,159,158,197,515,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,516,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,3,155,1,1,517,378,379,4,67,78,11,1,518,519,520,379,3,67,78,12,-252,-252,-252,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,6,1,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,522,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,521,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,45,1,5,59,1,1,5,4,10,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-307,-307,-307,162,-307,-307,523,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,125,126,-307,-307,-307,-307,-307,-307,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,524,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,2,6,61,526,525,2,6,61,-315,-315,24,6,61,25,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-318,-318,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,6,61,-319,-319,7,6,61,81,1,9,1,1,-320,-320,128,129,130,96,97,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,527,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,56,528,1,67,529,1,67,530,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,125,126,-227,-227,-227,-227,-227,-227,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,154,104,-173,-173,-173,156,157,155,99,159,158,153,531,-173,-173,151,152,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,1,67,532,3,54,5,1,533,105,106,3,89,91,5,535,534,221,3,54,5,1,536,105,106,1,142,537,8,6,60,1,5,23,1,8,18,-217,-217,-217,539,538,-217,-217,-217,5,6,60,1,5,24,-331,-331,-331,-331,-331,6,55,1,10,115,1,2,404,104,403,540,402,405,6,6,60,1,5,24,87,-336,-336,-336,-336,-336,541,6,6,60,1,5,24,87,-338,-338,-338,-338,-338,542,2,55,1,543,104,14,1,5,59,1,1,5,32,18,16,4,6,1,10,1,-342,-342,-342,-342,-342,-342,-342,-342,-342,544,-342,-342,-342,-342,8,6,60,1,5,23,1,8,18,-217,-217,-217,546,545,-217,-217,-217,5,6,60,1,5,24,-360,-360,-360,-360,-360,6,55,1,10,118,3,2,548,104,410,412,547,409,12,6,60,1,5,1,10,1,1,6,5,24,63,-365,-365,-365,-365,-120,-120,-120,-120,-120,-365,-120,549,6,6,60,1,5,24,87,-368,-368,-368,-368,-368,550,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,5,1,8,4,1,1,1,1,1,4,1,552,551,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,553,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-355,-355,-355,-355,-355,-355,127,-355,-355,-355,-355,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,81,8,554,99,3,54,5,1,555,105,106,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,2,6,61,107,556,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,557,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,6,11,3,11,1,1,1,2,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,426,-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,559,558,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,5,1,8,4,1,1,1,1,1,4,1,-218,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-218,-218,102,103,245,53,52,72,73,93,99,59,-218,83,-218,87,249,84,85,561,560,246,242,66,-218,42,43,90,91,248,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,4,6,60,1,37,562,-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,5,1,8,4,1,1,1,1,1,4,1,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,9,6,60,1,5,23,1,8,9,9,-217,-217,-217,424,425,-217,-217,563,-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,5,1,8,4,1,1,1,1,1,4,1,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,245,53,52,72,73,93,99,59,83,87,249,84,85,422,421,66,42,43,90,91,248,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,28,6,60,1,5,20,12,18,26,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-186,-186,-186,-186,127,-186,-186,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,23,86,6,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,564,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,5,1,8,4,1,1,1,1,1,4,1,565,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,566,-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,5,1,8,4,1,1,1,1,1,4,1,567,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,568,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,569,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,570,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,3,6,60,30,572,573,571,23,6,39,8,1,1,1,1,1,1,1,6,1,15,8,6,4,1,1,1,1,1,1,16,-218,269,100,101,271,104,272,255,105,106,-218,-218,273,575,-218,574,274,266,267,-218,268,275,-218,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,576,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,577,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,23,92,12,44,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,127,578,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,5,1,8,4,1,1,1,1,1,4,1,579,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,10,6,60,1,5,11,1,1,11,13,11,-127,-127,-127,-127,-129,-129,-129,-127,580,141,10,6,60,1,5,11,1,1,11,13,11,-128,-128,-128,-128,582,583,584,-128,581,141,9,6,60,1,5,11,1,1,11,24,-130,-130,-130,-130,-130,-130,-130,-130,-130,9,6,60,1,5,11,1,1,11,24,-131,-131,-131,-131,-131,-131,-131,-131,-131,9,6,60,1,5,11,1,1,11,24,-132,-132,-132,-132,-132,-132,-132,-132,-132,9,6,60,1,5,11,1,1,11,24,-133,-133,-133,-133,-133,-133,-133,-133,-133,4,83,2,24,11,251,252,585,141,2,109,11,586,141,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,57,1,5,53,1,2,2,1,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,4,59,1,2,2,-59,-59,-59,-59,2,6,59,107,587,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,5,1,8,4,1,1,1,1,1,4,1,588,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,5,1,8,4,1,1,1,1,1,4,1,589,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,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,5,1,8,4,1,1,1,1,1,4,1,591,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,590,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,592,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,593,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,594,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,595,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,94,596,1,165,597,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,598,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,9,1,1,1,1,4,3,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,599,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-162,102,103,53,52,72,73,93,-162,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,26,67,25,14,11,1,30,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,600,127,322,470,321,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,1,67,601,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,24,67,19,6,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-163,-163,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,602,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,23,86,6,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,603,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,5,1,8,4,1,1,1,1,1,4,1,604,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,3,6,60,56,606,607,605,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,5,1,8,4,1,1,1,1,1,4,1,-218,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-218,-218,102,103,53,52,72,73,93,99,59,-218,83,-218,87,249,84,85,608,66,-218,42,43,90,91,248,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,8,6,60,1,5,23,1,8,18,-217,-217,-217,480,609,-217,-217,-217,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,23,67,25,56,1,9,1,1,34,1,6,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,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,125,126,-69,-69,-69,-69,-69,-69,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,25,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,611,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-72,-72,-72,-72,-72,-72,-72,-72,127,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,124,125,126,96,97,-72,-72,-72,-72,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,25,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,612,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-75,-75,-75,-75,-75,-75,-75,-75,127,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,124,125,126,96,97,-75,-75,-75,-75,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-78,-78,-78,-78,-78,-78,-78,-78,127,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,124,125,126,96,97,-78,-78,-78,-78,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,25,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,613,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-81,-81,-81,-81,-81,-81,-81,-81,127,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,124,125,126,96,97,-81,-81,-81,-81,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,106,5,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,615,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,162,102,103,614,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,6,6,60,1,5,50,2,-175,-175,-175,-175,-175,-175,11,55,1,24,1,1,7,14,2,1,22,1,154,104,156,157,155,99,159,158,153,616,152,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,154,104,-173,-173,-173,156,157,155,99,159,158,153,617,-173,-173,151,152,28,6,60,1,5,20,30,2,24,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-179,-179,-179,-179,127,-179,-179,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,57,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,3,1,4,2,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,3,125,1,1,618,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,27,1,6,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,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,23,67,25,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,619,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,125,126,-411,-411,-411,-411,-411,-411,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,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,620,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,66,10,162,621,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,2,66,10,162,622,2,66,10,162,623,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,26,66,10,16,5,51,1,9,1,1,4,30,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,624,127,625,124,125,126,96,97,626,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,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,627,127,628,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,10,16,5,51,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,629,127,630,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,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,631,127,632,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,5,1,8,4,1,1,1,1,1,4,1,633,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,634,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,24,66,10,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,635,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,94,69,2,2,-304,-304,-304,-304,27,72,20,2,54,1,9,1,1,3,2,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-302,127,-302,124,125,126,96,97,-302,-302,-302,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,67,78,11,1,636,637,520,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,2,66,10,162,638,3,67,78,12,-253,-253,-253,3,66,6,4,162,640,639,24,66,6,20,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-203,-203,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,45,1,5,59,1,1,5,4,10,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-311,-311,-311,162,-311,-311,641,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,125,126,-311,-311,-311,-311,-311,-311,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,108,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,1,1,8,4,1,1,1,1,1,4,1,-317,385,386,387,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-317,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,642,388,389,63,70,71,44,45,68,46,47,48,50,51,24,6,61,25,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-321,-321,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,-322,-322,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,8,6,60,1,5,23,1,8,18,-217,-217,-217,349,350,-217,-217,643,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,1,142,644,6,55,1,10,115,1,2,404,104,403,645,402,405,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,54,5,1,646,105,106,3,6,60,30,648,649,647,10,6,49,1,10,1,29,8,18,60,2,-218,404,104,-218,-218,-218,-218,-218,650,405,8,6,60,1,5,23,1,8,18,-217,-217,-217,539,651,-217,-217,-217,2,55,1,652,104,2,55,1,653,104,1,142,-341,3,54,5,1,654,105,106,3,6,60,30,656,657,655,10,6,49,1,10,1,29,8,18,62,5,-218,548,104,-218,-218,-218,-218,-218,412,658,8,6,60,1,5,23,1,8,18,-217,-217,-217,546,659,-217,-217,-217,6,6,60,1,5,24,87,-365,-365,-365,-365,-365,549,3,55,1,128,660,104,661,2,55,1,662,104,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-348,-348,-348,-348,-348,-348,127,-348,-348,-348,-348,125,126,-348,-348,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,5,1,8,4,1,1,1,1,1,4,1,663,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,664,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,67,665,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,1,138,666,23,92,12,44,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,127,667,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,112,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,6,1,1,1,1,7,3,11,2,1,2,2,1,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,244,102,103,245,53,52,72,73,93,99,59,83,87,249,84,85,428,668,243,246,242,66,42,43,90,91,248,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,5,6,60,1,5,32,-146,-146,-146,-146,-146,111,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,6,1,1,1,1,7,3,11,1,1,1,2,2,5,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-153,-153,102,103,245,53,52,72,73,93,99,59,83,-153,87,249,84,85,422,421,66,42,43,90,91,248,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,110,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,6,1,1,1,1,7,3,11,2,1,2,2,1,3,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,245,53,52,72,73,93,99,59,83,87,249,84,85,428,669,246,242,66,42,43,90,91,248,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,2,66,1,559,670,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,23,67,25,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,671,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,66,10,162,672,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,125,126,-257,-257,-257,-257,-257,-257,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,125,126,-259,-259,-259,-259,-259,-259,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,27,6,60,1,5,20,4,52,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-116,-116,-116,-116,673,-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,5,1,8,4,1,1,1,1,1,4,1,674,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,17,45,8,1,1,1,1,1,1,1,22,8,10,1,1,1,2,1,269,100,101,271,104,272,255,105,106,273,575,675,274,266,267,268,275,23,6,39,8,1,1,1,1,1,1,1,6,1,5,10,8,6,3,1,1,1,1,2,1,-109,269,100,101,271,104,272,255,105,106,-109,-109,-109,273,575,-109,676,270,274,266,267,268,275,5,6,60,1,5,24,-111,-111,-111,-111,-111,6,6,60,1,5,19,5,-114,-114,-114,-114,677,-114,27,6,60,1,5,20,4,52,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-118,-118,-118,-118,127,-118,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,678,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,6,6,60,1,5,19,5,-124,-124,-124,-124,-124,-124,23,92,12,44,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,127,679,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,680,255,2,57,1,681,255,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,682,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,683,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,9,6,60,1,5,11,1,1,11,24,-134,-134,-134,-134,-134,-134,-134,-134,-134,9,6,60,1,5,11,1,1,11,24,-135,-135,-135,-135,-135,-135,-135,-135,-135,4,59,1,2,2,-60,-60,-60,-60,2,6,61,107,684,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,125,126,-408,-408,-408,-408,-408,-408,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,5,1,8,4,1,1,1,1,1,4,1,685,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-238,-238,-238,-238,-238,-238,-238,-238,127,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,125,126,96,97,-238,-238,-238,-238,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,686,-284,-284,-284,-284,-284,-284,-284,-284,125,126,-284,-284,-284,687,-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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,688,-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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,689,-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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,690,-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,5,1,8,4,1,1,1,1,1,4,1,691,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,692,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,125,126,-300,-300,-300,-300,-300,-300,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,67,19,6,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-161,-161,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,1,86,693,1,86,694,23,86,6,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-66,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,23,67,25,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,695,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,55,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,106,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,1,2,2,5,4,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,249,84,85,696,66,42,43,90,91,248,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,108,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,1,2,2,5,4,4,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,328,247,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,327,102,103,53,52,72,73,93,99,59,83,87,249,84,85,326,66,42,43,90,91,248,697,86,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,606,607,698,1,86,699,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,9,1,5,59,1,1,5,32,18,16,-169,-169,-169,-169,-169,-169,-169,-169,-169,6,6,60,1,5,50,2,-176,-176,-176,-176,-176,-176,8,6,60,1,5,23,1,8,18,-217,-217,-217,349,700,-217,-217,-217,2,66,10,162,614,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,701,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,702,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,703,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,704,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,705,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,25,66,10,16,5,51,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,706,127,707,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,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,708,127,709,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,2,66,10,162,710,1,67,711,4,6,61,78,12,712,-254,-254,-254,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,713,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,2,6,61,-316,-316,2,66,10,162,714,3,54,5,1,715,105,106,8,6,60,1,5,23,1,8,18,-217,-217,-217,539,716,-217,-217,-217,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,142,717,4,55,1,126,2,404,104,718,405,6,55,1,10,115,1,2,404,104,403,719,402,405,5,6,60,1,5,24,-332,-332,-332,-332,-332,3,6,60,1,648,649,720,5,6,60,1,5,24,-337,-337,-337,-337,-337,5,6,60,1,5,24,-339,-339,-339,-339,-339,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,14,1,5,59,1,1,5,32,18,16,4,6,1,10,1,-343,-343,-343,-343,-343,-343,-343,-343,-343,721,-343,-343,-343,-343,4,55,1,128,5,548,104,412,722,6,55,1,10,118,3,2,548,104,410,412,723,409,5,6,60,1,5,24,-361,-361,-361,-361,-361,3,6,60,1,656,657,724,5,6,60,1,5,24,-366,-366,-366,-366,-366,5,6,60,1,5,24,-367,-367,-367,-367,-367,5,6,60,1,5,24,-369,-369,-369,-369,-369,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-349,-349,-349,-349,-349,-349,127,-349,-349,-349,-349,125,126,-349,-349,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,25,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,725,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,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,9,6,60,1,5,23,1,8,9,9,-217,-217,-217,424,425,-217,-217,726,-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,727,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,14,39,16,1,24,1,1,7,4,5,5,2,24,37,2,309,154,104,156,157,155,99,728,729,83,158,197,308,196,23,67,25,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,730,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,60,1,5,24,-112,-112,-112,-112,-112,8,6,60,1,5,23,1,8,18,-217,-217,-217,442,731,-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,5,1,8,4,1,1,1,1,1,4,1,732,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,570,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,23,67,25,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,733,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,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,34,1,6,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,5,1,8,4,1,1,1,1,1,4,1,735,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,65,736,23,67,25,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,737,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,5,1,8,4,1,1,1,1,1,4,1,738,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,739,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,740,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,741,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,742,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,743,-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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,744,-295,-295,-295,-295,-295,-295,-295,-295,125,126,-295,-295,-295,-295,-295,-295,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,1,86,745,5,6,60,1,5,50,-196,-196,-196,-196,-196,8,6,60,1,5,23,1,8,18,-217,-217,-217,480,746,-217,-217,-217,5,6,60,1,5,50,-197,-197,-197,-197,-197,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,3,6,60,1,494,495,747,25,66,10,16,56,1,9,1,1,4,30,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,748,127,124,125,126,96,97,749,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,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,750,127,751,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,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,752,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,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,753,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,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,754,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,755,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,756,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,67,757,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,3,67,78,12,-255,-255,-255,24,66,6,20,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-204,-204,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,3,6,60,30,648,649,758,3,54,5,1,759,105,106,5,6,60,1,5,24,-333,-333,-333,-333,-333,8,6,60,1,5,23,1,8,18,-217,-217,-217,539,760,-217,-217,-217,5,6,60,1,5,24,-334,-334,-334,-334,-334,3,54,5,1,761,105,106,5,6,60,1,5,24,-362,-362,-362,-362,-362,8,6,60,1,5,23,1,8,18,-217,-217,-217,546,762,-217,-217,-217,5,6,60,1,5,24,-363,-363,-363,-363,-363,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,2,66,1,559,763,54,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,4,94,69,2,2,764,462,464,465,11,55,1,24,1,1,7,4,10,2,24,39,154,104,156,157,155,99,765,159,158,197,196,5,6,60,1,5,24,-117,-117,-117,-117,-117,3,6,60,1,572,573,766,27,6,60,1,5,20,4,52,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-116,-116,-116,-116,127,-116,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,60,1,5,24,-119,-119,-119,-119,-119,9,6,60,1,5,11,1,1,11,24,-140,-140,-140,-140,-140,-140,-140,-140,-140,23,67,25,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,767,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,125,126,-285,-285,-285,768,-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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,769,-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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,125,126,-290,-290,-290,-290,-290,-290,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,125,126,-294,-294,-294,-294,-294,-294,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,125,126,-298,-298,-298,-298,-298,-298,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,770,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,771,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,63,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,3,6,60,1,606,607,772,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,773,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,774,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,24,66,10,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,775,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,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,776,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,1,142,777,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,3,6,60,1,648,649,778,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,3,6,60,1,656,657,779,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,5,1,8,4,1,1,1,1,1,4,1,780,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,94,781,5,6,60,1,5,24,-113,-113,-113,-113,-113,1,86,782,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,783,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,784,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,125,126,-292,-292,-292,-292,-292,-292,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,125,126,-296,-296,-296,-296,-296,-296,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,60,1,5,50,-198,-198,-198,-198,-198,24,66,10,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,785,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,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,786,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,3,54,5,1,787,105,106,5,6,60,1,5,24,-335,-335,-335,-335,-335,5,6,60,1,5,24,-364,-364,-364,-364,-364,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,790,-289,-289,-289,-289,788,-289,789,-289,-289,-289,-289,-289,-289,-289,-289,125,126,-289,-289,-289,-289,-289,-289,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,791,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,9,6,60,1,5,11,1,1,11,24,-141,-141,-141,-141,-141,-141,-141,-141,-141,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,125,126,-287,-287,-287,-287,-287,-287,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,125,126,-288,-288,-288,-288,-288,-288,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,1,96,792,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,793,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,6,6,60,1,29,8,18,-218,-218,-218,-218,-218,-218,45,1,5,59,1,1,5,14,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,790,-291,-291,-291,-291,794,-291,795,-291,-291,-291,-291,-291,-291,-291,-291,125,126,-291,-291,-291,-291,-291,-291,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,45,1,5,59,1,1,5,14,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,790,-290,-290,-290,-290,796,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,125,126,-290,-290,-290,-290,-290,-290,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,1,96,797,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,798,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,96,799,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,45,1,5,59,1,1,5,14,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-292,-292,-292,-292,-292,790,-292,-292,-292,-292,800,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,125,126,-292,-292,-292,-292,-292,-292,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,1,96,801,59,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107],U=[],W=0,F,u,f,A;while(W<$.length){F=$[W++],u={},f=0,A=[];while(F--)f+=$[W++],A.push(f);for(f of A)u[f]=$[W++];U.push(u)}return U})(),ruleTable:[0,0,3,0,3,1,4,1,4,3,4,2,5,1,5,1,5,1,9,1,9,1,9,1,9,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,8,1,8,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,45,1,45,1,55,1,57,1,54,1,54,3,61,1,61,2,63,3,63,5,63,2,63,1,47,1,47,3,71,3,71,1,17,3,17,4,17,5,18,3,18,4,18,5,19,3,19,4,19,3,20,3,20,4,20,5,21,3,21,4,21,3,21,2,21,3,21,2,36,1,36,1,36,1,79,1,79,1,79,3,79,3,79,4,79,6,79,4,79,6,79,4,79,5,79,7,79,3,79,3,79,4,79,6,81,10,81,12,81,11,81,13,81,4,99,0,99,1,99,3,99,4,99,6,100,1,100,1,100,3,100,5,100,3,100,5,102,1,102,1,102,1,90,1,90,3,90,4,90,1,101,2,101,2,107,1,107,1,107,1,107,1,107,1,107,2,107,2,107,2,107,2,107,3,107,3,107,4,107,6,80,2,80,3,80,4,112,1,112,3,112,4,112,4,112,6,114,1,114,2,113,1,113,2,111,1,111,2,116,1,116,2,117,1,117,1,39,5,87,3,87,2,87,2,87,1,32,6,32,3,15,5,15,2,34,5,34,2,125,1,125,1,121,0,121,1,121,3,121,4,121,6,128,1,128,3,128,2,128,1,129,1,129,1,129,1,129,1,130,2,40,2,40,2,40,3,40,2,40,2,109,2,109,4,132,1,132,3,132,4,132,4,132,6,115,1,115,1,115,1,115,1,133,1,133,3,42,1,42,1,82,2,43,3,43,4,43,6,44,3,44,3,76,2,76,3,38,3,38,5,95,0,95,1,10,2,10,4,10,1,30,2,30,4,31,1,31,2,31,4,31,3,143,3,143,5,146,3,146,5,22,1,22,3,22,1,22,3,22,3,22,7,22,5,22,3,22,3,23,2,23,3,23,4,23,5,151,3,151,3,151,2,26,5,26,7,26,4,26,6,155,1,155,2,156,3,156,4,158,2,158,4,158,2,158,4,24,2,24,2,24,2,24,1,161,2,161,2,161,3,25,5,25,7,25,7,25,9,25,9,25,5,25,7,25,6,25,8,25,5,25,7,25,6,25,8,25,5,25,7,25,3,25,5,25,5,25,7,25,7,25,9,25,9,25,5,25,7,25,6,25,8,25,5,25,7,25,6,25,8,25,5,25,7,25,3,25,5,168,1,168,3,93,1,93,3,27,1,27,2,27,3,27,4,27,2,27,3,27,4,27,5,33,3,28,4,173,1,173,3,173,2,174,1,174,1,174,1,174,2,174,2,29,2,12,2,12,4,12,4,12,5,12,7,12,6,12,9,181,1,181,3,181,4,181,4,181,6,182,1,182,3,182,1,182,3,179,1,180,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,187,1,187,3,187,4,187,4,187,6,189,1,189,3,189,3,189,1,189,3,35,2,35,2,35,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,4,16,2,16,2,16,2,16,2,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,5,16,3,16,5,16,4,41,2],ruleActions:($,U,W,F)=>{let u=U,f=U.length-1;switch($){case 1:return["program"];case 2:return["program",...u[f]];case 3:case 58:case 110:case 150:case 154:case 174:case 194:case 203:case 252:case 303:case 315:case 331:case 360:return[u[f]];case 4:case 111:case 175:case 195:case 204:case 316:case 332:case 361:return[...u[f-2],u[f]];case 5:case 60:case 157:case 317:return u[f-1];case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 63:case 64:case 86:case 87:case 88:case 89:case 90:case 115:case 120:case 121:case 122:case 123:case 126:case 129:case 130:case 131:case 132:case 133:case 145:case 171:case 172:case 178:case 182:case 183:case 184:case 185:case 199:case 200:case 201:case 217:case 218:case 232:case 234:case 263:case 301:case 318:case 319:case 320:case 336:case 338:case 340:case 365:case 368:return u[f];case 47:return"undefined";case 48:return"null";case 57:return["str",...u[f-1]];case 59:case 151:case 155:case 253:return[...u[f-1],u[f]];case 61:case 193:case 197:case 334:case 363:return u[f-2];case 62:return"";case 65:return["regex",u[f-1]];case 66:return["regex-index",u[f-2],u[f]];case 67:return["regex-index",u[f],null];case 68:return["=",u[f-2],u[f]];case 69:return["=",u[f-3],u[f]];case 70:return["=",u[f-4],u[f-1]];case 71:return["state",u[f-2],u[f]];case 72:return["state",u[f-3],u[f]];case 73:return["state",u[f-4],u[f-1]];case 74:case 76:return["computed",u[f-2],u[f]];case 75:return["computed",u[f-3],u[f]];case 77:return["readonly",u[f-2],u[f]];case 78:return["readonly",u[f-3],u[f]];case 79:return["readonly",u[f-4],u[f-1]];case 80:case 82:return["effect",u[f-2],u[f]];case 81:return["effect",u[f-3],u[f]];case 83:case 84:case 85:return["effect",null,u[f]];case 91:case 100:case 138:return[".",u[f-2],u[f]];case 92:case 101:case 139:return["?.",u[f-2],u[f]];case 93:case 95:case 102:case 140:return["[]",u[f-3],u[f-1]];case 94:case 96:case 103:case 141:return["[]",u[f-5],u[f-2]];case 97:return[u[f-1][0],u[f-3],...u[f-1].slice(1)];case 98:return["optindex",u[f-4],u[f-1]];case 99:return["optindex",u[f-6],u[f-2]];case 104:return["object-comprehension",u[f-8],u[f-6],[["for-of",u[f-4],u[f-2],!1]],[]];case 105:return["object-comprehension",u[f-10],u[f-8],[["for-of",u[f-6],u[f-4],!1]],[u[f-2]]];case 106:return["object-comprehension",u[f-9],u[f-7],[["for-of",u[f-4],u[f-2],!0]],[]];case 107:return["object-comprehension",u[f-11],u[f-9],[["for-of",u[f-6],u[f-4],!0]],[u[f-2]]];case 108:return["object",...u[f-2]];case 109:case 152:case 173:case 192:return[];case 112:case 176:case 196:case 333:case 362:return[...u[f-3],u[f]];case 113:case 177:case 198:case 335:case 364:return[...u[f-5],...u[f-2]];case 114:return[u[f],u[f],null];case 116:return[u[f-2],u[f],":"];case 117:return[u[f-4],u[f-1],":"];case 118:return[u[f-2],u[f],"="];case 119:return[u[f-4],u[f-1],"="];case 124:return["dynamicKey",u[f-1]];case 125:return["[]","this",u[f-1]];case 127:case 128:case 186:return["...",u[f]];case 134:case 190:return["super",...u[f]];case 135:case 136:case 137:case 188:case 191:return[u[f-1],...u[f]];case 142:return["array"];case 143:return["array",...u[f-1]];case 144:return["array",...u[f-2],...u[f-1]];case 146:return[...u[f-2],...u[f]];case 147:return[...u[f-3],...u[f]];case 148:return[...u[f-2],...u[f-1]];case 149:return[...u[f-5],...u[f-4],...u[f-2],...u[f-1]];case 153:return[...u[f]];case 156:return null;case 158:return"..";case 159:case 202:return"...";case 160:return[u[f-2],u[f-3],u[f-1]];case 161:case 389:case 391:case 392:case 407:case 409:return[u[f-1],u[f-2],u[f]];case 162:return[u[f],u[f-1],null];case 163:return[u[f-1],null,u[f]];case 164:return[u[f],null,null];case 165:return["def",u[f-4],u[f-2],u[f]];case 166:return["def",u[f-1],[],u[f]];case 167:case 169:return[u[f-1],u[f-3],u[f]];case 168:case 170:return[u[f-1],[],u[f]];case 179:case 302:return["default",u[f-2],u[f]];case 180:return["rest",u[f]];case 181:return["expansion"];case 187:return["tagged-template",u[f-1],u[f]];case 189:return["optcall",u[f-2],...u[f]];case 205:case 206:return"this";case 207:return[".","this",u[f]];case 208:return[".","super",u[f]];case 209:return["[]","super",u[f-1]];case 210:return["[]","super",u[f-2]];case 211:return[".","new",u[f]];case 212:return[".","import",u[f]];case 213:return["block"];case 214:return["block",...u[f-1]];case 215:return u[f-1].length===1?u[f-1][0]:["block",...u[f-1]];case 216:return u[f-2].length===1?u[f-2][0]:["block",...u[f-2]];case 219:return["return",u[f]];case 220:return["return",u[f-1]];case 221:return["return"];case 222:return["throw",u[f]];case 223:return["throw",u[f-1]];case 224:return["yield"];case 225:return["yield",u[f]];case 226:return["yield",u[f-1]];case 227:return["yield-from",u[f]];case 228:return["if",u[f-1],u[f]];case 229:return u[f-4].length===3?["if",u[f-4][1],u[f-4][2],["if",u[f-1],u[f]]]:[...u[f-4],["if",u[f-1],u[f]]];case 230:return["if",["!",u[f-1]],u[f]];case 231:return["if",["!",u[f-3]],u[f-2],u[f]];case 233:return u[f-2].length===3?["if",u[f-2][1],u[f-2][2],u[f]]:[...u[f-2],u[f]];case 235:case 236:return["if",u[f],[u[f-2]]];case 237:return["?:",u[f-4],u[f-6],u[f-1]];case 238:return["?:",u[f-2],u[f-4],u[f]];case 239:case 240:return["if",["!",u[f]],[u[f-2]]];case 241:return["try",u[f]];case 242:return["try",u[f-1],u[f]];case 243:return["try",u[f-2],u[f]];case 244:return["try",u[f-3],u[f-2],u[f]];case 245:case 246:case 370:case 373:case 375:return[u[f-1],u[f]];case 247:return[null,u[f]];case 248:return["switch",u[f-3],u[f-1],null];case 249:return["switch",u[f-5],u[f-3],u[f-1]];case 250:return["switch",null,u[f-1],null];case 251:return["switch",null,u[f-3],u[f-1]];case 254:return["when",u[f-1],u[f]];case 255:return["when",u[f-2],u[f-1]];case 256:return["while",u[f]];case 257:return["while",u[f-2],u[f]];case 258:return["while",["!",u[f]]];case 259:return["while",["!",u[f-2]],u[f]];case 260:return u[f-1].length===2?[u[f-1][0],u[f-1][1],u[f]]:[u[f-1][0],u[f-1][1],u[f-1][2],u[f]];case 261:case 262:return u[f].length===2?[u[f][0],u[f][1],[u[f-1]]]:[u[f][0],u[f][1],u[f][2],[u[f-1]]];case 264:return["loop",u[f]];case 265:return["loop",[u[f]]];case 266:return["loop-n",u[f-1],u[f]];case 267:return["for-in",u[f-3],u[f-1],null,null,u[f]];case 268:return["for-in",u[f-5],u[f-3],null,u[f-1],u[f]];case 269:return["for-in",u[f-5],u[f-3],u[f-1],null,u[f]];case 270:return["for-in",u[f-7],u[f-5],u[f-1],u[f-3],u[f]];case 271:return["for-in",u[f-7],u[f-5],u[f-3],u[f-1],u[f]];case 272:return["for-of",u[f-3],u[f-1],!1,null,u[f]];case 273:return["for-of",u[f-5],u[f-3],!1,u[f-1],u[f]];case 274:return["for-of",u[f-3],u[f-1],!0,null,u[f]];case 275:return["for-of",u[f-5],u[f-3],!0,u[f-1],u[f]];case 276:return["for-as",u[f-3],u[f-1],!1,null,u[f]];case 277:return["for-as",u[f-5],u[f-3],!1,u[f-1],u[f]];case 278:case 280:return["for-as",u[f-3],u[f-1],!0,null,u[f]];case 279:case 281:return["for-as",u[f-5],u[f-3],!0,u[f-1],u[f]];case 282:return["for-in",[],u[f-1],null,null,u[f]];case 283:return["for-in",[],u[f-3],u[f-1],null,u[f]];case 284:return["comprehension",u[f-4],[["for-in",u[f-2],u[f],null]],[]];case 285:return["comprehension",u[f-6],[["for-in",u[f-4],u[f-2],null]],[u[f]]];case 286:return["comprehension",u[f-6],[["for-in",u[f-4],u[f-2],u[f]]],[]];case 287:return["comprehension",u[f-8],[["for-in",u[f-6],u[f-4],u[f]]],[u[f-2]]];case 288:return["comprehension",u[f-8],[["for-in",u[f-6],u[f-4],u[f-2]]],[u[f]]];case 289:return["comprehension",u[f-4],[["for-of",u[f-2],u[f],!1]],[]];case 290:return["comprehension",u[f-6],[["for-of",u[f-4],u[f-2],!1]],[u[f]]];case 291:return["comprehension",u[f-5],[["for-of",u[f-2],u[f],!0]],[]];case 292:return["comprehension",u[f-7],[["for-of",u[f-4],u[f-2],!0]],[u[f]]];case 293:return["comprehension",u[f-4],[["for-as",u[f-2],u[f],!1,null]],[]];case 294:return["comprehension",u[f-6],[["for-as",u[f-4],u[f-2],!1,null]],[u[f]]];case 295:return["comprehension",u[f-5],[["for-as",u[f-2],u[f],!0,null]],[]];case 296:return["comprehension",u[f-7],[["for-as",u[f-4],u[f-2],!0,null]],[u[f]]];case 297:return["comprehension",u[f-4],[["for-as",u[f-2],u[f],!0,null]],[]];case 298:return["comprehension",u[f-6],[["for-as",u[f-4],u[f-2],!0,null]],[u[f]]];case 299:return["comprehension",u[f-2],[["for-in",[],u[f],null]],[]];case 300:return["comprehension",u[f-4],[["for-in",[],u[f-2],u[f]]],[]];case 304:case 337:case 339:case 366:case 367:case 369:return[u[f-2],u[f]];case 305:return["class",null,null];case 306:return["class",null,null,u[f]];case 307:return["class",null,u[f]];case 308:return["class",null,u[f-1],u[f]];case 309:return["class",u[f],null];case 310:return["class",u[f-1],null,u[f]];case 311:return["class",u[f-2],u[f]];case 312:return["class",u[f-3],u[f-1],u[f]];case 313:return["enum",u[f-1],u[f]];case 314:return["component",null,["block",...u[f-1]]];case 321:return["offer",u[f]];case 322:return["accept",u[f]];case 323:return["render",u[f]];case 324:case 327:return["import","{}",u[f]];case 325:case 326:return["import",u[f-2],u[f]];case 328:return["import",u[f-4],u[f]];case 329:return["import",[u[f-4],u[f-2]],u[f]];case 330:return["import",[u[f-7],u[f-4]],u[f]];case 341:return["*",u[f]];case 342:return["export","{}"];case 343:return["export",u[f-2]];case 344:case 345:case 346:case 347:case 351:case 352:case 353:case 354:return["export",u[f]];case 348:return["export",["=",u[f-2],u[f]]];case 349:return["export",["=",u[f-3],u[f]]];case 350:return["export",["=",u[f-4],u[f-1]]];case 355:return["export-default",u[f]];case 356:return["export-default",u[f-1]];case 357:return["export-all",u[f]];case 358:return["export-from","{}",u[f]];case 359:return["export-from",u[f-4],u[f]];case 371:case 372:case 374:case 412:return["do-iife",u[f]];case 376:return["-",u[f]];case 377:return["+",u[f]];case 378:return["?",u[f-1]];case 379:return["defined",u[f-1]];case 380:return["presence",u[f-1]];case 381:return["await",u[f]];case 382:return["await",u[f-1]];case 383:return["--",u[f],!1];case 384:return["++",u[f],!1];case 385:return["--",u[f-1],!0];case 386:return["++",u[f-1],!0];case 387:return["+",u[f-2],u[f]];case 388:return["-",u[f-2],u[f]];case 390:return["**",u[f-2],u[f]];case 393:return["&",u[f-2],u[f]];case 394:return["^",u[f-2],u[f]];case 395:return["|",u[f-2],u[f]];case 396:case 397:case 398:case 399:case 400:case 401:return["control",u[f-1],u[f-2],u[f]];case 402:return["&&",u[f-2],u[f]];case 403:return["||",u[f-2],u[f]];case 404:return["??",u[f-2],u[f]];case 405:return["!?",u[f-2],u[f]];case 406:return["|>",u[f-2],u[f]];case 408:return["?:",u[f-4],u[f-2],u[f]];case 410:return[u[f-3],u[f-4],u[f-1]];case 411:return[u[f-2],u[f-3],u[f]]}},parseError($,U){let W,F,u,f,A,Y,_;if(U.recoverable)return this.trace($);else throw u=(U.line||0)+1,W=U.loc?.c||0,_=U.token?` (token: ${U.token})`:"",Y=U.text?` near '${U.text}'`:"",f=`line ${u}, column ${W}`,A=`Parse error at ${f}${_}${Y}: ${$}`,F=Error(A),F.hash=U,F},parse($){let U,W,F,u,f,A,Y,_,w,R,z,K,J,M,Q,Z,X,D,O,q,G,P,H,I,E,B;[q,B,R]=[[0],[null],[]],[J,E,H,P,Z]=[this.parseTable,"",0,0,0],[W,U]=[2,1],_=Object.create(this.lexer),D={ctx:{}};for(let T in this.ctx){if(!Object.hasOwn(this.ctx,T))continue;let h=this.ctx[T];D.ctx[T]=h}if(_.setInput($,D.ctx),[D.ctx.lexer,D.ctx.parser]=[_,this],_.loc==null)_.loc={};I=_.loc,R.push(I),this.parseError=typeof D.ctx.parseError==="function"?D.ctx.parseError:Object.getPrototypeOf(this).parseError,Y=()=>{let T;if(T=_.lex()||U,typeof T!=="number")T=this.symbolIds[T]||T;return T},G=M=O=F=Q=K=A=z=f=null,X={};while(!0){if(O=q[q.length-1],G==null)G=Y();if(F=J[O]?.[G],F==null){if(u="",!Z)f=(()=>{let T=[];for(let h in J[O]){if(!Object.hasOwn(J[O],h))continue;if(this.tokenNames[h]&&h>W)T.push(`'${this.tokenNames[h]}'`)}return T})();throw u=(()=>{if(_.showPosition)return`Parse error on line ${H+1}:
|
|
12
12
|
${_.showPosition()}
|
|
13
|
-
Expecting ${u.join(", ")}, got '${this.tokenNames[G]||G}'`;else return`Parse error on line ${H+1}: Unexpected ${G===U?"end of input":`'${this.tokenNames[G]||G}'`}`,this.parseError(f,{text:_.match,token:this.tokenNames[G]||G,line:_.line,loc:P,expected:u})})(),Error(f)}if(W>0)if(M.push(G,W),B.push(_.text),w.push(_.loc),G=null,!D){if([I,E,H,P]=[_.len,_.text,_.line,_.loc],J>0)J--}else[G,D]=[D,null];else if(W<0){if(A=this.ruleTable[-W*2+1],Q.$=B[B.length-A],Z=w[w.length-(A||1)],Q._$={r:Z.r,c:Z.c},R=this.ruleActions.call(Q,-W,B,w,q.ctx),R!=null)Q.$=R;if(Array.isArray(Q.$))Q.$.loc=Q._$;if(A)M.length-=A*2,B.length-=A,w.length-=A;M.push(this.ruleTable[-W*2]),B.push(Q.$),w.push(Q._$),z=K[M[M.length-2]][M[M.length-1]],M.push(z)}else if(W===0)return B[B.length-1]}},trace(){},ctx:{}},b3=($={})=>{let U=Object.create(y3);return Object.defineProperty(U,"ctx",{value:{...$},enumerable:!1,writable:!0,configurable:!0}),U},t=b3();var e3=t.parse.bind(t);var c3=new Set(["html","head","title","base","link","meta","style","body","address","article","aside","footer","header","h1","h2","h3","h4","h5","h6","main","nav","section","blockquote","dd","div","dl","dt","figcaption","figure","hr","li","ol","p","pre","ul","a","abbr","b","bdi","bdo","br","cite","code","data","dfn","em","i","kbd","mark","q","rp","rt","ruby","s","samp","small","span","strong","sub","sup","time","u","var","wbr","area","audio","img","map","track","video","embed","iframe","object","param","picture","portal","source","svg","math","canvas","noscript","script","del","ins","caption","col","colgroup","table","tbody","td","tfoot","th","thead","tr","button","datalist","fieldset","form","input","label","legend","meter","optgroup","option","output","progress","select","textarea","details","dialog","menu","summary","slot","template"]),R1=new Set(["svg","g","defs","symbol","use","marker","clipPath","mask","pattern","circle","ellipse","line","path","polygon","polyline","rect","text","textPath","tspan","linearGradient","radialGradient","stop","filter","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","animate","animateMotion","animateTransform","set","mpath","desc","foreignObject","image","metadata","switch","title","view"]),z2=new Set([...c3,...R1]);var g1=new Set(["beforeMount","mounted","updated","beforeUnmount","unmounted","onError"]),g3=new Set(["disabled","hidden","readonly","required","checked","selected","autofocus","autoplay","controls","loop","muted","multiple","novalidate","open","reversed","defer","async","formnovalidate","allowfullscreen","inert"]);function v3($){for(let U of $){if(!Array.isArray(U))continue;let F=U[0]instanceof String?U[0].valueOf():U[0],W=U[1]instanceof String?U[1].valueOf():U[1];if(F==="type"&&typeof W==="string")return W.replace(/^["']|["']$/g,"")}return null}function F1($){if(typeof $==="string")return $;if(Array.isArray($)&&$[0]==="."&&$[1]==="this"&&typeof $[2]==="string")return $[2];return null}function v1($){return Array.isArray($)&&$[0]==="."&&$[1]==="this"}function K2($,U){U.prototype.rewriteRender=function(){let u=(R,J,Q)=>{let q=[R,J];if(q.pre=0,q.data=null,q.loc=Q?.loc??{r:0,c:0,n:0},q.spaced=!1,q.newLine=!1,q.generated=!0,Q)q.origin=Q;return q},A=!1,Y=0,_=0,Z=[],w=(R)=>{let J=R.split("#")[0];return z2.has(J)},z=(R)=>{if(!R||typeof R!=="string")return!1;return/^[A-Z]/.test(R)},X=(R)=>{return w(R)||z(R)},K=(R,J,Q,q)=>{let O=1,M=J;while(M>=0&&O>0){let G=R[M][0];if(G===Q)O++;else if(G===q)O--;if(O>0)M--}return M},D=(R,J)=>{let Q=J;while(Q>0){let q=R[Q-1][0];if(q==="TERMINATOR"||q==="RENDER")break;if(q==="INDENT"||q==="OUTDENT"){let O=R[Q][0];if(O==="CALL_END"||O===")"){Q=K(R,Q-1,O,O==="CALL_END"?"CALL_START":"(");continue}break}if(q==="CALL_END"||q===")"){Q=K(R,Q-2,q,q==="CALL_END"?"CALL_START":"(");continue}if(q==="INTERPOLATION_END"){Q=K(R,Q-2,"INTERPOLATION_END","INTERPOLATION_START");continue}if(q==="STRING_END"){Q=K(R,Q-2,"STRING_END","STRING_START");continue}Q--}return R[Q]&&R[Q][0]==="IDENTIFIER"&&X(R[Q][1])};this.scanTokens(function(R,J,Q){let q=R[0],O=J<Q.length-1?Q[J+1]:null;if(q==="RENDER")return A=!0,Y=_+1,1;if(q==="INDENT")return _++,1;if(q==="OUTDENT"){_--;let M=0;while(Z.length>0&&Z[Z.length-1]>_){let G=u("CALL_END",")",R);Q.splice(J+1+M,0,G),Z.pop(),M++}if(A&&_<Y)A=!1;return 1+M}if(!A)return 1;if(q==="UNARY_MATH"&&R[1]==="~"&&O&&O[0]==="IDENTIFIER"){R[0]="PROPERTY",R[1]="__transition__";let M=u(":",":",R),G=u("STRING",`"${O[1]}"`,O);return Q.splice(J+1,1,M,G),1}if(q==="IDENTIFIER"&&!R.spaced){let M=[R[1]],G=J+1;while(G+1<Q.length){let I=Q[G],H=Q[G+1];if(I[0]==="-"&&!I.spaced&&(H[0]==="IDENTIFIER"||H[0]==="PROPERTY")){if(M.push(H[1]),G+=2,H[0]==="PROPERTY")break}else break}if(M.length>1&&G>J+1&&Q[G-1][0]==="PROPERTY")return R[0]="STRING",R[1]=`"${M.join("-")}"`,Q.splice(J+1,G-J-1),1}if(q==="."){let M=J>0?Q[J-1]:null,G=M?M[0]:null;if(G==="INDENT"||G==="TERMINATOR"){if(O&&O[0]==="PROPERTY"){let I=J+2<Q.length?Q[J+2]:null;if(!I||I[0]!==":"){let H=u("IDENTIFIER","div",R);return Q.splice(J,0,H),2}}if(!O||O[0]!=="(")return R[0]="IDENTIFIER",R[1]="div",0}}if(q==="IDENTIFIER"||q==="PROPERTY"){let M=Q[J+1],G=Q[J+2];if(M&&M[0]==="#"&&G&&(G[0]==="PROPERTY"||G[0]==="IDENTIFIER")){if(R[1]=R[1]+"#"+G[1],G.spaced)R.spaced=!0;return Q.splice(J+1,2),0}}if(q==="BIND"){let M=J>0?Q[J-1]:null,G=Q[J+1];if(M&&(M[0]==="IDENTIFIER"||M[0]==="PROPERTY")&&G&&G[0]==="IDENTIFIER")return M[1]=`__bind_${M[1]}__`,R[0]=":",R[1]=":",1}if(q==="@"){let M=J+1;if(M<Q.length&&Q[M][0]==="PROPERTY"){M++;while(M+1<Q.length&&Q[M][0]==="."&&Q[M+1][0]==="PROPERTY")M+=2;if(M>J+2&&M<Q.length&&Q[M][0]===":"){let G=u("[","[",R);Q.splice(J,0,G);let I=u("]","]",Q[M+1]);return Q.splice(M+1,0,I),2}}}if(q==="."&&O&&O[0]==="("){let M=J>0?Q[J-1]:null,G=M?M[0]:null,I=G==="INDENT"||G==="TERMINATOR",H=u("PROPERTY","__clsx",R);O[0]="CALL_START";let P=1;for(let E=J+2;E<Q.length&&P>0;E++)if(Q[E][0]==="("||Q[E][0]==="CALL_START")P++;else if(Q[E][0]===")"){if(P--,P===0)Q[E][0]="CALL_END"}else if(Q[E][0]==="CALL_END")P--;if(I){let E=u("IDENTIFIER","div",R);return Q.splice(J,0,E),Q.splice(J+2,0,H),3}else if(G===":")return Q[J]=u("IDENTIFIER","__clsx",R),1;else return Q.splice(J+1,0,H),2}if(O&&O[0]==="INDENT"){if(O.fromThen)return 1;if(q==="->"||q==="=>"||q==="CALL_START"||q==="(")return 1;let M=!1,G=J>0?Q[J-1][0]:null,I=G==="IF"||G==="UNLESS"||G==="WHILE"||G==="UNTIL"||G==="WHEN",H=!1;if(q==="CALL_END"){let P=1;for(let E=J-1;E>=0&&P>0;E--)if(Q[E][0]==="CALL_END")P++;else if(Q[E][0]==="CALL_START"){if(P--,P===0&&E>0&&Q[E-1][0]==="PROPERTY"&&Q[E-1][1]==="__clsx")H=!0}}if(H)M=!0;else if(q==="IDENTIFIER"&&X(R[1])&&!I)M=!0;else if(q==="IDENTIFIER"&&!I)M=D(Q,J);else if(q==="PROPERTY"||q==="STRING"||q==="STRING_END"||q==="NUMBER"||q==="BOOL"||q==="CALL_END"||q===")"||q==="PRESENCE")M=D(Q,J);if(M){let P=q==="PROPERTY"&&J>0&&(Q[J-1][0]==="."||Q[J-1][0]==="#");if(H||q==="IDENTIFIER"&&X(R[1])||P){let B=u("CALL_START","(",R),S=u("->","->",R);return S.newLine=!0,Q.splice(J+1,0,B,S),Z.push(_+1),3}else{let B=u(",",",",R),S=u("->","->",R);return S.newLine=!0,Q.splice(J+1,0,B,S),3}}}if(q==="IDENTIFIER"&&z(R[1])&&O&&(O[0]==="OUTDENT"||O[0]==="TERMINATOR"))return Q.splice(J+1,0,u("CALL_START","(",R),u("CALL_END",")",R)),3;return 1})};let F=$.prototype;F.isHtmlTag=function(u){let A=u.split("#")[0];return z2.has(A.toLowerCase())},F.isComponent=function(u){if(!u||typeof u!=="string")return!1;return/^[A-Z]/.test(u)},F.collectTemplateClasses=function(u){let A=[],Y=u;while(this.is(Y,".")){let z=Y[2];if(typeof z==="string"||z instanceof String)A.unshift(z.valueOf());Y=Y[1]}let _=typeof Y==="string"?Y:Y instanceof String?Y.valueOf():null;if(_===null)return{tag:null,classes:A,id:void 0};let[Z,w]=_.split("#");if(!Z)Z="div";return{tag:Z,classes:A,id:w}};let W=(u)=>typeof u==="string"?u:u instanceof String?u.valueOf():null,f=(u,A)=>{if(!(u instanceof String))return A;let Y=new String(A);if(u.predicate)Y.predicate=!0;if(u.await)Y.await=!0;return Y.predicate||Y.await?Y:A};F.transformComponentMembers=function(u){let A=this._self;if(!Array.isArray(u)){let Y=W(u);if(Y&&this.reactiveMembers&&this.reactiveMembers.has(Y))return[".",[".",A,Y],f(u,"value")];if(Y&&this.componentMembers&&this.componentMembers.has(Y))return[".",A,f(u,Y)];return u}if(u[0]==="."&&u[1]==="this"&&W(u[2])!=null){let Y=u[2],_=W(Y);if(this.reactiveMembers&&this.reactiveMembers.has(_))return[".",[".",A,_],f(Y,"value")];return this._factoryMode?[".",A,Y]:u}if(u[0]==="."||u[0]==="?.")return[u[0],this.transformComponentMembers(u[1]),u[2]];if(u[0]==="->")return["=>",...u.slice(1).map((Y)=>this.transformComponentMembers(Y))];if(u[0]==="object")return["object",...u.slice(1).map((Y)=>{if(Array.isArray(Y)&&Y.length>=2){let _=Y[0],Z=Array.isArray(_)?this.transformComponentMembers(_):_,w=this.transformComponentMembers(Y[1]);return[Z,w,Y[2]]}return this.transformComponentMembers(Y)})];return u.map((Y)=>this.transformComponentMembers(Y))},F.generateComponent=function(u,A,Y,_){let[,Z]=A;this.usesTemplates=!0,this.usesReactivity=!0;let w=this.is(Z,"block")?Z.slice(1):[],z=[],X=[],K=[],D=[],R=[],J=[],Q=[],q=[],O=null,M=new Set,G=new Set;for(let N of w){if(!Array.isArray(N))continue;let[L]=N;if(L==="offer"){if(N=N[1],!Array.isArray(N))continue;L=N[0];let T=F1(N[1]);if(T)Q.push(T)}if(L==="accept"){let T=typeof N[1]==="string"?N[1]:F1(N[1]);if(T)q.push(T),M.add(T),G.add(T)}else if(L==="state"){let T=F1(N[1]);if(T)z.push({name:T,value:N[2],isPublic:v1(N[1])}),M.add(T),G.add(T)}else if(L==="computed"){let T=F1(N[1]);if(T)X.push({name:T,expr:N[2]}),M.add(T),G.add(T)}else if(L==="readonly"){let T=F1(N[1]);if(T)K.push({name:T,value:N[2],isPublic:v1(N[1])}),M.add(T)}else if(L==="="){let T=F1(N[1]);if(T)if(g1.has(T))R.push({name:T,value:N[2]});else{let h=N[2];if(Array.isArray(h)&&(h[0]==="->"||h[0]==="=>"))D.push({name:T,func:h}),M.add(T);else z.push({name:T,value:h,isPublic:v1(N[1])}),M.add(T),G.add(T)}}else if(L==="effect")J.push(N);else if(L==="render")O=N;else if(L==="object")for(let T=1;T<N.length;T++){let h=N[T];if(!Array.isArray(h))continue;let[C,l]=h;if(typeof C==="string"&&g1.has(C))R.push({name:C,value:l});else if(typeof C==="string")D.push({name:C,func:l}),M.add(C)}}let I=new Map;for(let{name:N}of D)if(/^on[A-Z]/.test(N)&&!g1.has(N))I.set(N[2].toLowerCase()+N.slice(3),N);let H=this.componentMembers,P=this.reactiveMembers,E=this._autoEventHandlers;this.componentMembers=M,this.reactiveMembers=G,this._autoEventHandlers=I.size>0?I:null;let B=[],S="";B.push("class extends __Component {"),B.push(" _init(props) {");for(let{name:N,value:L,isPublic:T}of K){let h=this.generateInComponent(L,"value");B.push(T?` this.${N} = props.${N} ?? ${h};`:` this.${N} = ${h};`)}for(let N of q)B.push(` this.${N} = getContext('${N}');`);for(let{name:N,value:L,isPublic:T}of z){let h=this.generateInComponent(L,"value");B.push(T?` this.${N} = __state(props.__bind_${N}__ ?? props.${N} ?? ${h});`:` this.${N} = __state(${h});`)}for(let{name:N,expr:L}of X)if(this.is(L,"block")){let T=this.transformComponentMembers(L),h=this.generateFunctionBody(T);B.push(` this.${N} = __computed(() => ${h});`)}else{let T=this.generateInComponent(L,"value");B.push(` this.${N} = __computed(() => ${T});`)}for(let N of Q)B.push(` setContext('${N}', this.${N});`);for(let N of J){let L=N[2],T=this.containsAwait(L)?"async ":"";if(this.is(L,"block")){let h=this.transformComponentMembers(L),C=this.generateFunctionBody(h,[],!0);B.push(` __effect(${T}() => ${C});`)}else{let h=this.generateInComponent(L,"value");B.push(` __effect(${T}() => { ${h}; });`)}}B.push(" }");for(let{name:N,func:L}of D)if(Array.isArray(L)&&(L[0]==="->"||L[0]==="=>")){let[,T,h]=L,C=Array.isArray(T)?T.map((c)=>this.formatParam(c)).join(", "):"",l=this.reactiveMembers?this.transformComponentMembers(h):h,b=this.containsAwait(h),k=this.generateFunctionBody(l,T||[]);B.push(` ${b?"async ":""}${N}(${C}) ${k}`)}for(let{name:N,value:L}of R)if(Array.isArray(L)&&(L[0]==="->"||L[0]==="=>")){let[,T,h]=L,C=Array.isArray(T)?T.map((c)=>this.formatParam(c)).join(", "):"",l=this.reactiveMembers?this.transformComponentMembers(h):h,b=this.containsAwait(h),k=this.generateFunctionBody(l,T||[]);B.push(` ${b?"async ":""}${N}(${C}) ${k}`)}if(O){let N=O[1],L=this.buildRender(N);if(L.blockFactories.length>0)S=L.blockFactories.join(`
|
|
13
|
+
Expecting ${f.join(", ")}, got '${this.tokenNames[G]||G}'`;else return`Parse error on line ${H+1}: Unexpected ${G===U?"end of input":`'${this.tokenNames[G]||G}'`}`,this.parseError(u,{text:_.match,token:this.tokenNames[G]||G,line:_.line,loc:I,expected:f})})(),Error(u)}if(F>0)if(q.push(G,F),B.push(_.text),R.push(_.loc),G=null,!M){if([P,E,H,I]=[_.len,_.text,_.line,_.loc],Z>0)Z--}else[G,M]=[M,null];else if(F<0){if(A=this.ruleTable[-F*2+1],X.$=B[B.length-A],w=R[R.length-(A||1)],X._$={r:w.r,c:w.c},Q=this.ruleActions.call(X,-F,B,R,D.ctx),Q!=null)X.$=Q;if(Array.isArray(X.$))X.$.loc=X._$;if(A)q.length-=A*2,B.length-=A,R.length-=A;q.push(this.ruleTable[-F*2]),B.push(X.$),R.push(X._$),z=J[q[q.length-2]][q[q.length-1]],q.push(z)}else if(F===0)return B[B.length-1]}},trace(){},ctx:{}},b3=($={})=>{let U=Object.create(y3);return Object.defineProperty(U,"ctx",{value:{...$},enumerable:!1,writable:!0,configurable:!0}),U},u1=b3();var e3=u1.parse.bind(u1);var c3=new Set(["html","head","title","base","link","meta","style","body","address","article","aside","footer","header","h1","h2","h3","h4","h5","h6","main","nav","section","blockquote","dd","div","dl","dt","figcaption","figure","hr","li","ol","p","pre","ul","a","abbr","b","bdi","bdo","br","cite","code","data","dfn","em","i","kbd","mark","q","rp","rt","ruby","s","samp","small","span","strong","sub","sup","time","u","var","wbr","area","audio","img","map","track","video","embed","iframe","object","param","picture","portal","source","svg","math","canvas","noscript","script","del","ins","caption","col","colgroup","table","tbody","td","tfoot","th","thead","tr","button","datalist","fieldset","form","input","label","legend","meter","optgroup","option","output","progress","select","textarea","details","dialog","menu","summary","slot","template"]),Z1=new Set(["svg","g","defs","symbol","use","marker","clipPath","mask","pattern","circle","ellipse","line","path","polygon","polyline","rect","text","textPath","tspan","linearGradient","radialGradient","stop","filter","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","animate","animateMotion","animateTransform","set","mpath","desc","foreignObject","image","metadata","switch","title","view"]),z2=new Set([...c3,...Z1]);var g1=new Set(["beforeMount","mounted","updated","beforeUnmount","unmounted","onError"]),g3=new Set(["disabled","hidden","readonly","required","checked","selected","autofocus","autoplay","controls","loop","muted","multiple","novalidate","open","reversed","defer","async","formnovalidate","allowfullscreen","inert"]);function v3($){for(let U of $){if(!Array.isArray(U))continue;let W=U[0]instanceof String?U[0].valueOf():U[0],F=U[1]instanceof String?U[1].valueOf():U[1];if(W==="type"&&typeof F==="string")return F.replace(/^["']|["']$/g,"")}return null}function W1($){if(typeof $==="string")return $;if(Array.isArray($)&&$[0]==="."&&$[1]==="this"&&typeof $[2]==="string")return $[2];return null}function v1($){return Array.isArray($)&&$[0]==="."&&$[1]==="this"}function K2($,U){let W=U.prototype.classifyKeyword;U.prototype.classifyKeyword=function(A,Y,_){if(A==="offer"||A==="accept"){let w=0;for(let R=this.tokens.length-1;R>=0;R--){let z=this.tokens[R][0];if(z==="OUTDENT")w++;else if(z==="INDENT")w--;if(w<0&&this.tokens[R-1]?.[0]==="COMPONENT")return A.toUpperCase()}return Y}return W.call(this,A,Y,_)},U.prototype.rewriteRender=function(){let A=(Z,X,D)=>{let O=[Z,X];if(O.pre=0,O.data=null,O.loc=D?.loc??{r:0,c:0,n:0},O.spaced=!1,O.newLine=!1,O.generated=!0,D)O.origin=D;return O},Y=!1,_=0,w=0,R=[],z=(Z)=>{let X=Z.split("#")[0];return z2.has(X)},K=(Z)=>{if(!Z||typeof Z!=="string")return!1;return/^[A-Z]/.test(Z)},J=(Z)=>{return z(Z)||K(Z)},M=(Z,X,D,O)=>{let q=1,G=X;while(G>=0&&q>0){let P=Z[G][0];if(P===D)q++;else if(P===O)q--;if(q>0)G--}return G},Q=(Z,X)=>{let D=X;while(D>0){let O=Z[D-1][0];if(O==="TERMINATOR"||O==="RENDER")break;if(O==="INDENT"||O==="OUTDENT"){let q=Z[D][0];if(q==="CALL_END"||q===")"){D=M(Z,D-1,q,q==="CALL_END"?"CALL_START":"(");continue}break}if(O==="CALL_END"||O===")"){D=M(Z,D-2,O,O==="CALL_END"?"CALL_START":"(");continue}if(O==="INTERPOLATION_END"){D=M(Z,D-2,"INTERPOLATION_END","INTERPOLATION_START");continue}if(O==="STRING_END"){D=M(Z,D-2,"STRING_END","STRING_START");continue}D--}return Z[D]&&Z[D][0]==="IDENTIFIER"&&J(Z[D][1])};this.scanTokens(function(Z,X,D){let O=Z[0],q=X<D.length-1?D[X+1]:null;if(O==="RENDER")return Y=!0,_=w+1,1;if(O==="INDENT")return w++,1;if(O==="OUTDENT"){w--;let G=0;while(R.length>0&&R[R.length-1]>w){let P=A("CALL_END",")",Z);D.splice(X+1+G,0,P),R.pop(),G++}if(Y&&w<_)Y=!1;return 1+G}if(!Y)return 1;if(O==="UNARY_MATH"&&Z[1]==="~"&&q&&q[0]==="IDENTIFIER"){Z[0]="PROPERTY",Z[1]="__transition__";let G=A(":",":",Z),P=A("STRING",`"${q[1]}"`,q);return D.splice(X+1,1,G,P),1}if(O==="IDENTIFIER"&&!Z.spaced){let G=[Z[1]],P=X+1;while(P+1<D.length){let H=D[P],I=D[P+1];if(H[0]==="-"&&!H.spaced&&(I[0]==="IDENTIFIER"||I[0]==="PROPERTY")){if(G.push(I[1]),P+=2,I[0]==="PROPERTY")break}else break}if(G.length>1&&P>X+1&&D[P-1][0]==="PROPERTY")return Z[0]="STRING",Z[1]=`"${G.join("-")}"`,D.splice(X+1,P-X-1),1}if(O==="."){let G=X>0?D[X-1]:null,P=G?G[0]:null;if(P==="INDENT"||P==="TERMINATOR"){if(q&&q[0]==="PROPERTY"){let H=X+2<D.length?D[X+2]:null;if(!H||H[0]!==":"){let I=A("IDENTIFIER","div",Z);return D.splice(X,0,I),2}}if(!q||q[0]!=="(")return Z[0]="IDENTIFIER",Z[1]="div",0}}if(O==="IDENTIFIER"||O==="PROPERTY"){let G=D[X+1],P=D[X+2];if(G&&G[0]==="#"&&P&&(P[0]==="PROPERTY"||P[0]==="IDENTIFIER")){if(Z[1]=Z[1]+"#"+P[1],P.spaced)Z.spaced=!0;return D.splice(X+1,2),0}}if(O==="BIND"){let G=X>0?D[X-1]:null,P=D[X+1];if(G&&(G[0]==="IDENTIFIER"||G[0]==="PROPERTY")&&P&&P[0]==="IDENTIFIER")return G[1]=`__bind_${G[1]}__`,Z[0]=":",Z[1]=":",1}if(O==="@"){let G=X+1;if(G<D.length&&D[G][0]==="PROPERTY"){G++;while(G+1<D.length&&D[G][0]==="."&&D[G+1][0]==="PROPERTY")G+=2;if(G>X+2&&G<D.length&&D[G][0]===":"){let P=A("[","[",Z);D.splice(X,0,P);let H=A("]","]",D[G+1]);return D.splice(G+1,0,H),2}}}if(O==="."&&q&&q[0]==="("){let G=X>0?D[X-1]:null,P=G?G[0]:null,H=P==="INDENT"||P==="TERMINATOR",I=A("PROPERTY","__clsx",Z);q[0]="CALL_START";let E=1;for(let B=X+2;B<D.length&&E>0;B++)if(D[B][0]==="("||D[B][0]==="CALL_START")E++;else if(D[B][0]===")"){if(E--,E===0)D[B][0]="CALL_END"}else if(D[B][0]==="CALL_END")E--;if(H){let B=A("IDENTIFIER","div",Z);return D.splice(X,0,B),D.splice(X+2,0,I),3}else if(P===":")return D[X]=A("IDENTIFIER","__clsx",Z),1;else return D.splice(X+1,0,I),2}if(q&&q[0]==="INDENT"){if(q.fromThen)return 1;if(O==="->"||O==="=>"||O==="CALL_START"||O==="(")return 1;let G=!1,P=X>0?D[X-1][0]:null,H=P==="IF"||P==="UNLESS"||P==="WHILE"||P==="UNTIL"||P==="WHEN",I=!1;if(O==="CALL_END"){let E=1;for(let B=X-1;B>=0&&E>0;B--)if(D[B][0]==="CALL_END")E++;else if(D[B][0]==="CALL_START"){if(E--,E===0&&B>0&&D[B-1][0]==="PROPERTY"&&D[B-1][1]==="__clsx")I=!0}}if(I)G=!0;else if(O==="IDENTIFIER"&&J(Z[1])&&!H)G=!0;else if(O==="IDENTIFIER"&&!H)G=Q(D,X);else if(O==="PROPERTY"||O==="STRING"||O==="STRING_END"||O==="NUMBER"||O==="BOOL"||O==="CALL_END"||O===")"||O==="PRESENCE")G=Q(D,X);if(G){let E=O==="PROPERTY"&&X>0&&(D[X-1][0]==="."||D[X-1][0]==="#");if(I||O==="IDENTIFIER"&&J(Z[1])||E){let T=A("CALL_START","(",Z),h=A("->","->",Z);return h.newLine=!0,D.splice(X+1,0,T,h),R.push(w+1),3}else{let T=A(",",",",Z),h=A("->","->",Z);return h.newLine=!0,D.splice(X+1,0,T,h),3}}}if(O==="IDENTIFIER"&&K(Z[1])&&q&&(q[0]==="OUTDENT"||q[0]==="TERMINATOR"))return D.splice(X+1,0,A("CALL_START","(",Z),A("CALL_END",")",Z)),3;return 1})};let F=$.prototype;F.isHtmlTag=function(A){let Y=A.split("#")[0];return z2.has(Y.toLowerCase())},F.isComponent=function(A){if(!A||typeof A!=="string")return!1;return/^[A-Z]/.test(A)},F.collectTemplateClasses=function(A){let Y=[],_=A;while(this.is(_,".")){let K=_[2];if(typeof K==="string"||K instanceof String)Y.unshift(K.valueOf());_=_[1]}let w=typeof _==="string"?_:_ instanceof String?_.valueOf():null;if(w===null)return{tag:null,classes:Y,id:void 0};let[R,z]=w.split("#");if(!R)R="div";return{tag:R,classes:Y,id:z}};let u=(A)=>typeof A==="string"?A:A instanceof String?A.valueOf():null,f=(A,Y)=>{if(!(A instanceof String))return Y;let _=new String(Y);if(A.predicate)_.predicate=!0;if(A.await)_.await=!0;return _.predicate||_.await?_:Y};F.transformComponentMembers=function(A){let Y=this._self;if(!Array.isArray(A)){let _=u(A);if(_&&this.reactiveMembers&&this.reactiveMembers.has(_))return[".",[".",Y,_],f(A,"value")];if(_&&this.componentMembers&&this.componentMembers.has(_))return[".",Y,f(A,_)];return A}if(A[0]==="."&&A[1]==="this"&&u(A[2])!=null){let _=A[2],w=u(_);if(this.reactiveMembers&&this.reactiveMembers.has(w))return[".",[".",Y,w],f(_,"value")];return this._factoryMode?[".",Y,_]:A}if(A[0]==="."||A[0]==="?.")return[A[0],this.transformComponentMembers(A[1]),A[2]];if(A[0]==="->")return["=>",...A.slice(1).map((_)=>this.transformComponentMembers(_))];if(A[0]==="object")return["object",...A.slice(1).map((_)=>{if(Array.isArray(_)&&_.length>=2){let w=_[0],R=Array.isArray(w)?this.transformComponentMembers(w):w,z=this.transformComponentMembers(_[1]);return[R,z,_[2]]}return this.transformComponentMembers(_)})];return A.map((_)=>this.transformComponentMembers(_))},F.generateComponent=function(A,Y,_,w){let[,R]=Y;this.usesTemplates=!0,this.usesReactivity=!0;let z=this.is(R,"block")?R.slice(1):[],K=[],J=[],M=[],Q=[],Z=[],X=[],D=[],O=[],q=null,G=new Set,P=new Set;for(let N of z){if(!Array.isArray(N))continue;let[S]=N;if(S==="offer"){if(N=N[1],!Array.isArray(N))continue;S=N[0];let L=W1(N[1]);if(L)D.push(L)}if(S==="accept"){let L=typeof N[1]==="string"?N[1]:W1(N[1]);if(L)O.push(L),G.add(L),P.add(L)}else if(S==="state"){let L=W1(N[1]);if(L)K.push({name:L,value:N[2],isPublic:v1(N[1])}),G.add(L),P.add(L)}else if(S==="computed"){let L=W1(N[1]);if(L)J.push({name:L,expr:N[2]}),G.add(L),P.add(L)}else if(S==="readonly"){let L=W1(N[1]);if(L)M.push({name:L,value:N[2],isPublic:v1(N[1])}),G.add(L)}else if(S==="="){let L=W1(N[1]);if(L)if(g1.has(L))Z.push({name:L,value:N[2]});else{let V=N[2];if(Array.isArray(V)&&(V[0]==="->"||V[0]==="=>"))Q.push({name:L,func:V}),G.add(L);else K.push({name:L,value:V,isPublic:v1(N[1])}),G.add(L),P.add(L)}}else if(S==="effect")X.push(N);else if(S==="render")q=N;else if(S==="object")for(let L=1;L<N.length;L++){let V=N[L];if(!Array.isArray(V))continue;let[y,g]=V;if(typeof y==="string"&&g1.has(y))Z.push({name:y,value:g});else if(typeof y==="string")Q.push({name:y,func:g}),G.add(y)}}let H=new Map;for(let{name:N}of Q)if(/^on[A-Z]/.test(N)&&!g1.has(N))H.set(N[2].toLowerCase()+N.slice(3),N);let I=this.componentMembers,E=this.reactiveMembers,B=this._autoEventHandlers;this.componentMembers=G,this.reactiveMembers=P,this._autoEventHandlers=H.size>0?H:null;let T=[],h="";T.push("class extends __Component {"),T.push(" _init(props) {");for(let{name:N,value:S,isPublic:L}of M){let V=this.generateInComponent(S,"value");T.push(L?` this.${N} = props.${N} ?? ${V};`:` this.${N} = ${V};`)}for(let N of O)T.push(` this.${N} = getContext('${N}');`);for(let{name:N,value:S,isPublic:L}of K){let V=this.generateInComponent(S,"value");T.push(L?` this.${N} = __state(props.__bind_${N}__ ?? props.${N} ?? ${V});`:` this.${N} = __state(${V});`)}for(let{name:N,expr:S}of J)if(this.is(S,"block")){let L=this.transformComponentMembers(S),V=this.generateFunctionBody(L);T.push(` this.${N} = __computed(() => ${V});`)}else{let L=this.generateInComponent(S,"value");T.push(` this.${N} = __computed(() => ${L});`)}for(let N of D)T.push(` setContext('${N}', this.${N});`);for(let N of X){let S=N[2],L=this.containsAwait(S)?"async ":"";if(this.is(S,"block")){let V=this.transformComponentMembers(S),y=this.generateFunctionBody(V,[],!0);T.push(` __effect(${L}() => ${y});`)}else{let V=this.generateInComponent(S,"value");T.push(` __effect(${L}() => { ${V}; });`)}}T.push(" }");for(let{name:N,func:S}of Q)if(Array.isArray(S)&&(S[0]==="->"||S[0]==="=>")){let[,L,V]=S,y=Array.isArray(L)?L.map((m)=>this.formatParam(m)).join(", "):"",g=this.reactiveMembers?this.transformComponentMembers(V):V,x=this.containsAwait(V),c=this.generateFunctionBody(g,L||[]);T.push(` ${x?"async ":""}${N}(${y}) ${c}`)}for(let{name:N,value:S}of Z)if(Array.isArray(S)&&(S[0]==="->"||S[0]==="=>")){let[,L,V]=S,y=Array.isArray(L)?L.map((m)=>this.formatParam(m)).join(", "):"",g=this.reactiveMembers?this.transformComponentMembers(V):V,x=this.containsAwait(V),c=this.generateFunctionBody(g,L||[]);T.push(` ${x?"async ":""}${N}(${y}) ${c}`)}if(q){let N=q[1],S=this.buildRender(N);if(S.blockFactories.length>0)h=S.blockFactories.join(`
|
|
14
14
|
|
|
15
15
|
`)+`
|
|
16
16
|
|
|
17
|
-
`;
|
|
18
|
-
${
|
|
17
|
+
`;T.push(" _create() {");for(let L of S.createLines)T.push(` ${L}`);if(T.push(` return ${S.rootVar};`),T.push(" }"),S.setupLines.length>0){T.push(" _setup() {");for(let L of S.setupLines)T.push(` ${L}`);T.push(" }")}}if(T.push("}"),this.componentMembers=I,this.reactiveMembers=E,this._autoEventHandlers=B,h)return`(() => {
|
|
18
|
+
${h}return ${T.join(`
|
|
19
19
|
`)};
|
|
20
|
-
})()`;return
|
|
21
|
-
`)},F.generateInComponent=function(u,A){if(typeof u==="string"&&this.reactiveMembers&&this.reactiveMembers.has(u))return`${this._self}.${u}.value`;if(typeof u==="string"&&this.componentMembers&&this.componentMembers.has(u))return`${this._self}.${u}`;if(Array.isArray(u)&&this.reactiveMembers){let Y=this.transformComponentMembers(u);return this.generate(Y,A)}return this.generate(u,A)},F.generateRender=function(u,A,Y,_){throw Error("render blocks can only be used inside a component")},F.generateOffer=function(u,A,Y,_){throw Error("offer can only be used inside a component")},F.generateAccept=function(u,A,Y,_){throw Error("accept can only be used inside a component")},F.buildRender=function(u){this._elementCount=0,this._textCount=0,this._blockCount=0,this._createLines=[],this._setupLines=[],this._blockFactories=[],this._loopVarStack=[],this._factoryMode=!1,this._factoryVars=null,this._fragChildren=new Map,this._pendingAutoWire=!1,this._autoWireEl=null,this._autoWireExplicit=null;let A=this.is(u,"block")?u.slice(1):[u],Y;if(A.length===0)Y="null";else if(A.length===1)this._pendingAutoWire=!!this._autoEventHandlers,Y=this.generateNode(A[0]),this._pendingAutoWire=!1;else{Y=this.newElementVar("frag"),this._createLines.push(`${Y} = document.createDocumentFragment();`);let _=[];for(let Z of A){let w=this.generateNode(Z);this._createLines.push(`${Y}.appendChild(${w});`),_.push(w)}this._fragChildren.set(Y,_)}return{createLines:this._createLines,setupLines:this._setupLines,blockFactories:this._blockFactories,rootVar:Y}},F.newBlockVar=function(){return`create_block_${this._blockCount++}`},F.newElementVar=function(u="el"){let A=`_${u}${this._elementCount++}`;if(this._factoryVars)this._factoryVars.add(A);return this._factoryMode?A:`this.${A}`},F.newTextVar=function(){let u=`_t${this._textCount++}`;if(this._factoryVars)this._factoryVars.add(u);return this._factoryMode?u:`this.${u}`},Object.defineProperty(F,"_self",{get(){return this._factoryMode?"ctx":"this"}}),F._pushEffect=function(u){if(this._factoryMode)this._setupLines.push(`disposers.push(__effect(() => { ${u} }));`);else this._setupLines.push(`__effect(() => { ${u} });`)},F.generateNode=function(u){if(typeof u==="string"||u instanceof String){let z=u.valueOf();if(z.startsWith('"')||z.startsWith("'")||z.startsWith("`")){let J=this.newTextVar();return this._createLines.push(`${J} = document.createTextNode(${z});`),J}if(this.reactiveMembers&&this.reactiveMembers.has(z)){let J=this.newTextVar();return this._createLines.push(`${J} = document.createTextNode('');`),this._pushEffect(`${J}.data = ${this._self}.${z}.value;`),J}if(z==="slot"&&this.componentMembers){let J=this._self,Q=this.newElementVar("slot");return this._createLines.push(`${Q} = ${J}.children instanceof Node ? ${J}.children : (${J}.children != null ? document.createTextNode(String(${J}.children)) : document.createComment(''));`),Q}let[X,K]=z.split("#"),D=this.newElementVar(),R=X||"div";if(R1.has(R)||this._svgDepth>0)this._createLines.push(`${D} = document.createElementNS('http://www.w3.org/2000/svg', '${R}');`);else this._createLines.push(`${D} = document.createElement('${R}');`);if(K)this._createLines.push(`${D}.id = '${K}';`);return D}if(!Array.isArray(u)){let z=this.newElementVar("c");return this._createLines.push(`${z} = document.createComment('unknown');`),z}let[A,...Y]=u,_=typeof A==="string"?A:A instanceof String?A.valueOf():null;if(_&&this.isComponent(_))return this.generateChildComponent(_,Y);if(_==="slot"&&this.componentMembers){let z=this._self,X=this.newElementVar("slot");return this._createLines.push(`${X} = ${z}.children instanceof Node ? ${z}.children : (${z}.children != null ? document.createTextNode(String(${z}.children)) : document.createComment(''));`),X}if(_&&this.isHtmlTag(_)){let[z,X]=_.split("#");return this.generateTag(z||"div",[],Y,X)}if(_==="."){let[,z,X]=u;if(z==="this"&&typeof X==="string"){let q=this._self;if(this.reactiveMembers&&this.reactiveMembers.has(X)){let M=this.newTextVar();return this._createLines.push(`${M} = document.createTextNode('');`),this._pushEffect(`${M}.data = ${q}.${X}.value;`),M}let O=this.newElementVar("slot");return this._createLines.push(`${O} = ${q}.${X} instanceof Node ? ${q}.${X} : (${q}.${X} != null ? document.createTextNode(String(${q}.${X})) : document.createComment(''));`),O}let{tag:K,classes:D,id:R}=this.collectTemplateClasses(u);if(K&&this.isHtmlTag(K))return this.generateTag(K,D,[],R);let J=this.newTextVar(),Q=this.generateInComponent(u,"value");return this._createLines.push(`${J} = document.createTextNode(String(${Q}));`),J}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 D=typeof A[0][1]==="string"?A[0][1]:A[0][1].valueOf(),R=A.slice(1);return this.generateDynamicTag(D,R,Y)}let{tag:z,classes:X,id:K}=this.collectTemplateClasses(A);if(z&&this.isHtmlTag(z)){if(X.length===1&&X[0]==="__clsx")return this.generateDynamicTag(z,Y,[]);return this.generateTag(z,X,Y,K)}}if(_==="->"||_==="=>")return this.generateTemplateBlock(Y[1]);if(_==="if")return this.generateConditional(u);if(_==="for"||_==="for-in"||_==="for-of"||_==="for-as")return this.generateTemplateLoop(u);let Z=this.newTextVar(),w=this.generateInComponent(u,"value");if(this.hasReactiveDeps(u))this._createLines.push(`${Z} = document.createTextNode('');`),this._pushEffect(`${Z}.data = ${w};`);else this._createLines.push(`${Z} = document.createTextNode(String(${w}));`);return Z},F.appendChildren=function(u,A){for(let Y of A)if(this.is(Y,"->")||this.is(Y,"=>")){let _=Y[2];if(this.is(_,"block"))for(let Z of _.slice(1))if(this.is(Z,"object"))this.generateAttributes(u,Z);else{let w=this.generateNode(Z);this._createLines.push(`${u}.appendChild(${w});`)}else if(_){let Z=this.generateNode(_);this._createLines.push(`${u}.appendChild(${Z});`)}}else if(this.is(Y,"object"))this.generateAttributes(u,Y);else if(typeof Y==="string"||Y instanceof String){let _=Y.valueOf(),Z=_.split(/[#.]/)[0];if(this.isHtmlTag(Z||"div")||this.isComponent(Z)){let w=this.generateNode(Y);this._createLines.push(`${u}.appendChild(${w});`)}else{let w=this.newTextVar();if(_.startsWith('"')||_.startsWith("'")||_.startsWith("`"))this._createLines.push(`${w} = document.createTextNode(${_});`);else if(this.reactiveMembers&&this.reactiveMembers.has(_))this._createLines.push(`${w} = document.createTextNode('');`),this._pushEffect(`${w}.data = ${this._self}.${_}.value;`);else if(this.componentMembers&&this.componentMembers.has(_))this._createLines.push(`${w} = document.createTextNode(String(${this._self}.${_}));`);else this._createLines.push(`${w} = document.createTextNode(${this.generateInComponent(Y,"value")});`);this._createLines.push(`${u}.appendChild(${w});`)}}else if(Y){let _=this.generateNode(Y);this._createLines.push(`${u}.appendChild(${_});`)}},F._claimAutoWire=function(u){if(!this._pendingAutoWire||!this._autoEventHandlers?.size)return!1;return this._pendingAutoWire=!1,this._autoWireEl=u,this._autoWireExplicit=new Set,!0},F._emitAutoWire=function(u,A){if(!A)return;for(let[Y,_]of this._autoEventHandlers)if(!this._autoWireExplicit.has(Y))this._createLines.push(`${u}.addEventListener('${Y}', (e) => __batch(() => ${this._self}.${_}(e)));`);this._autoWireEl=null,this._autoWireExplicit=null},F.generateTag=function(u,A,Y,_){let Z=this.newElementVar(),w=R1.has(u)||this._svgDepth>0;if(w)this._createLines.push(`${Z} = document.createElementNS('http://www.w3.org/2000/svg', '${u}');`);else this._createLines.push(`${Z} = document.createElement('${u}');`);if(_)this._createLines.push(`${Z}.id = '${_}';`);let z=this._claimAutoWire(Z),X=this._pendingClassArgs,K=this._pendingClassEl;if(A.length>0)this._pendingClassArgs=[`'${A.join(" ")}'`],this._pendingClassEl=Z;if(u==="svg")this._svgDepth=(this._svgDepth||0)+1;if(this.appendChildren(Z,Y),u==="svg")this._svgDepth--;if(A.length>0){if(this._pendingClassArgs.length===1)if(w)this._createLines.push(`${Z}.setAttribute('class', '${A.join(" ")}');`);else this._createLines.push(`${Z}.className = '${A.join(" ")}';`);else{let D=this._pendingClassArgs.join(", ");if(w)this._pushEffect(`${Z}.setAttribute('class', __clsx(${D}));`);else this._pushEffect(`${Z}.className = __clsx(${D});`)}this._pendingClassArgs=X,this._pendingClassEl=K}return this._emitAutoWire(Z,z),Z},F.generateDynamicTag=function(u,A,Y){let _=this.newElementVar();if(R1.has(u)||this._svgDepth>0)this._createLines.push(`${_} = document.createElementNS('http://www.w3.org/2000/svg', '${u}');`);else this._createLines.push(`${_} = document.createElement('${u}');`);let Z=this._claimAutoWire(_),w=A.map((K)=>this.generateInComponent(K,"value")),z=this._pendingClassArgs,X=this._pendingClassEl;if(this._pendingClassArgs=w,this._pendingClassEl=_,u==="svg")this._svgDepth=(this._svgDepth||0)+1;if(this.appendChildren(_,Y),u==="svg")this._svgDepth--;if(this._pendingClassArgs.length>0){let K=this._pendingClassArgs.join(", ");if(R1.has(u)||this._svgDepth>0)this._pushEffect(`${_}.setAttribute('class', __clsx(${K}));`);else this._pushEffect(`${_}.className = __clsx(${K});`)}return this._pendingClassArgs=z,this._pendingClassEl=X,this._emitAutoWire(_,Z),_},F.generateAttributes=function(u,A){let Y=v3(A.slice(1));for(let _=1;_<A.length;_++){let[Z,w]=A[_];if(this.is(Z,".")&&Z[1]==="this"){let z=Z[2];if(this._autoWireExplicit&&this._autoWireEl===u)this._autoWireExplicit.add(z);if(typeof w==="string"&&this.componentMembers?.has(w))this._createLines.push(`${u}.addEventListener('${z}', (e) => __batch(() => ${this._self}.${w}(e)));`);else{let X=this.generateInComponent(w,"value");this._createLines.push(`${u}.addEventListener('${z}', (e) => __batch(() => (${X})(e)));`)}continue}if(typeof Z==="string"){if(Z.startsWith('"')&&Z.endsWith('"'))Z=Z.slice(1,-1);if(Z==="class"||Z==="className"){let X=this.generateInComponent(w,"value");if(this._pendingClassArgs&&this._pendingClassEl===u)this._pendingClassArgs.push(X);else if(this.hasReactiveDeps(w))if(this._svgDepth>0)this._pushEffect(`${u}.setAttribute('class', __clsx(${X}));`);else this._pushEffect(`${u}.className = __clsx(${X});`);else if(this._svgDepth>0)this._createLines.push(`${u}.setAttribute('class', ${X});`);else this._createLines.push(`${u}.className = ${X};`);continue}if(Z==="__transition__"){let X=String(w).replace(/^["']|["']$/g,"");this._createLines.push(`this._t = "${X}";`);continue}if(Z==="ref"){let X=String(w).replace(/^["']|["']$/g,"");this._createLines.push(`${this._self}.${X} = ${u};`);continue}if(Z.startsWith("__bind_")&&Z.endsWith("__")){let X=Z.slice(7,-2),K=this.generateInComponent(w,"value"),D,R;if(X==="checked")D="change",R="e.target.checked";else D="input",R=Y==="number"||Y==="range"?"e.target.valueAsNumber":"e.target.value";this._pushEffect(`${u}.${X} = ${K};`);let J=`${K} = ${R}`,Q=!this.isSimpleAssignable(w)&&this.findRootReactiveMember(w);if(Q)J+=`; ${this._self}.${Q}.touch?.()`;this._createLines.push(`${u}.addEventListener('${D}', (e) => { ${J}; });`);continue}let z=this.generateInComponent(w,"value");if((Z==="value"||Z==="checked")&&this.hasReactiveDeps(w)){this._pushEffect(`${u}.${Z} = ${z};`);let X=!this.isSimpleAssignable(w)&&this.findRootReactiveMember(w);if(this.isSimpleAssignable(w)||X){let K=Z==="checked"?"change":"input",R=`${z} = ${Z==="checked"?"e.target.checked":Y==="number"||Y==="range"?"e.target.valueAsNumber":"e.target.value"}`;if(X)R+=`; ${this._self}.${X}.touch?.()`;this._createLines.push(`${u}.addEventListener('${K}', (e) => { ${R}; });`)}continue}if(Z==="innerHTML"||Z==="textContent"||Z==="innerText")if(this.hasReactiveDeps(w))this._pushEffect(`${u}.${Z} = ${z};`);else this._createLines.push(`${u}.${Z} = ${z};`);else if(g3.has(Z))if(this.hasReactiveDeps(w))this._pushEffect(`${u}.toggleAttribute('${Z}', !!${z});`);else this._createLines.push(`if (${z}) ${u}.setAttribute('${Z}', '');`);else if(this.hasReactiveDeps(w))if(Array.isArray(w)&&w[0]==="presence")this._pushEffect(`{ const __v = ${z}; __v == null ? ${u}.removeAttribute('${Z}') : ${u}.setAttribute('${Z}', __v); }`);else this._pushEffect(`${u}.setAttribute('${Z}', ${z});`);else this._createLines.push(`${u}.setAttribute('${Z}', ${z});`)}}},F.generateTemplateBlock=function(u){if(!Array.isArray(u)||u[0]!=="block")return this.generateNode(u);let A=u.slice(1);if(A.length===0){let Z=this.newElementVar("empty");return this._createLines.push(`${Z} = document.createComment('');`),Z}if(A.length===1)return this.generateNode(A[0]);let Y=this.newElementVar("frag");this._createLines.push(`${Y} = document.createDocumentFragment();`);let _=[];for(let Z of A){let w=this.generateNode(Z);this._createLines.push(`${Y}.appendChild(${w});`),_.push(w)}return this._fragChildren.set(Y,_),Y},F.generateConditional=function(u){this._pendingAutoWire=!1;let[,A,Y,_]=u,Z=this.newElementVar("anchor");this._createLines.push(`${Z} = document.createComment('if');`);let w=this.generateInComponent(A,"value"),z=this._loopVarStack.map((q)=>`${q.itemVar}, ${q.indexVar}`).join(", "),X=z?`, ${z}`:"",K=this.newBlockVar();this.generateConditionBranch(K,Y);let D=null;if(_)D=this.newBlockVar(),this.generateConditionBranch(D,_);let R=[];R.push(`// Conditional: ${K}${D?" / "+D:""}`),R.push("{"),R.push(` const anchor = ${Z};`),R.push(" let currentBlock = null;"),R.push(" let showing = null;");let J=this._factoryMode?"disposers.push(__effect(() => {":"__effect(() => {",Q=this._factoryMode?"}));":"});";if(R.push(` ${J}`),R.push(` const show = !!(${w});`),R.push(` const want = show ? 'then' : ${_?"'else'":"null"};`),R.push(" if (want === showing) return;"),R.push(""),R.push(" if (currentBlock) {"),R.push(" const leaving = currentBlock;"),R.push(" if (leaving._t) { __transition(leaving._first, leaving._t, 'leave', () => leaving.d(true)); }"),R.push(" else { leaving.d(true); }"),R.push(" currentBlock = null;"),R.push(" }"),R.push(" showing = want;"),R.push(""),R.push(" if (want === 'then') {"),R.push(` currentBlock = ${K}(${this._self}${X});`),R.push(" currentBlock.c();"),R.push(" if (anchor.parentNode) currentBlock.m(anchor.parentNode, anchor.nextSibling);"),R.push(` currentBlock.p(${this._self}${X});`),R.push(" if (currentBlock._t) __transition(currentBlock._first, currentBlock._t, 'enter');"),R.push(" }"),_)R.push(" if (want === 'else') {"),R.push(` currentBlock = ${D}(${this._self}${X});`),R.push(" currentBlock.c();"),R.push(" if (anchor.parentNode) currentBlock.m(anchor.parentNode, anchor.nextSibling);"),R.push(` currentBlock.p(${this._self}${X});`),R.push(" if (currentBlock._t) __transition(currentBlock._first, currentBlock._t, 'enter');"),R.push(" }");return R.push(` ${Q}`),R.push("}"),this._setupLines.push(R.join(`
|
|
22
|
-
`)),
|
|
23
|
-
`))},F.generateTemplateLoop=function(
|
|
24
|
-
`)),
|
|
20
|
+
})()`;return T.join(`
|
|
21
|
+
`)},F.generateInComponent=function(A,Y){if(typeof A==="string"&&this.reactiveMembers&&this.reactiveMembers.has(A))return`${this._self}.${A}.value`;if(typeof A==="string"&&this.componentMembers&&this.componentMembers.has(A))return`${this._self}.${A}`;if(Array.isArray(A)&&this.reactiveMembers){let _=this.transformComponentMembers(A);return this.generate(_,Y)}return this.generate(A,Y)},F.generateRender=function(A,Y,_,w){throw Error("render blocks can only be used inside a component")},F.generateOffer=function(A,Y,_,w){throw Error("offer can only be used inside a component")},F.generateAccept=function(A,Y,_,w){throw Error("accept can only be used inside a component")},F.buildRender=function(A){this._elementCount=0,this._textCount=0,this._blockCount=0,this._createLines=[],this._setupLines=[],this._blockFactories=[],this._loopVarStack=[],this._factoryMode=!1,this._factoryVars=null,this._fragChildren=new Map,this._pendingAutoWire=!1,this._autoWireEl=null,this._autoWireExplicit=null;let Y=this.is(A,"block")?A.slice(1):[A],_;if(Y.length===0)_="null";else if(Y.length===1)this._pendingAutoWire=!!this._autoEventHandlers,_=this.generateNode(Y[0]),this._pendingAutoWire=!1;else{_=this.newElementVar("frag"),this._createLines.push(`${_} = document.createDocumentFragment();`);let w=[];for(let R of Y){let z=this.generateNode(R);this._createLines.push(`${_}.appendChild(${z});`),w.push(z)}this._fragChildren.set(_,w)}return{createLines:this._createLines,setupLines:this._setupLines,blockFactories:this._blockFactories,rootVar:_}},F.newBlockVar=function(){return`create_block_${this._blockCount++}`},F.newElementVar=function(A="el"){let Y=`_${A}${this._elementCount++}`;if(this._factoryVars)this._factoryVars.add(Y);return this._factoryMode?Y:`this.${Y}`},F.newTextVar=function(){let A=`_t${this._textCount++}`;if(this._factoryVars)this._factoryVars.add(A);return this._factoryMode?A:`this.${A}`},Object.defineProperty(F,"_self",{get(){return this._factoryMode?"ctx":"this"}}),F._pushEffect=function(A){if(this._factoryMode)this._setupLines.push(`disposers.push(__effect(() => { ${A} }));`);else this._setupLines.push(`__effect(() => { ${A} });`)},F.generateNode=function(A){if(typeof A==="string"||A instanceof String){let K=A.valueOf();if(K.startsWith('"')||K.startsWith("'")||K.startsWith("`")){let X=this.newTextVar();return this._createLines.push(`${X} = document.createTextNode(${K});`),X}if(this.reactiveMembers&&this.reactiveMembers.has(K)){let X=this.newTextVar();return this._createLines.push(`${X} = document.createTextNode('');`),this._pushEffect(`${X}.data = ${this._self}.${K}.value;`),X}if(K==="slot"&&this.componentMembers){let X=this._self,D=this.newElementVar("slot");return this._createLines.push(`${D} = ${X}.children instanceof Node ? ${X}.children : (${X}.children != null ? document.createTextNode(String(${X}.children)) : document.createComment(''));`),D}let[J,M]=K.split("#"),Q=this.newElementVar(),Z=J||"div";if(Z1.has(Z)||this._svgDepth>0)this._createLines.push(`${Q} = document.createElementNS('http://www.w3.org/2000/svg', '${Z}');`);else this._createLines.push(`${Q} = document.createElement('${Z}');`);if(M)this._createLines.push(`${Q}.id = '${M}';`);return Q}if(!Array.isArray(A)){let K=this.newElementVar("c");return this._createLines.push(`${K} = document.createComment('unknown');`),K}let[Y,..._]=A,w=typeof Y==="string"?Y:Y instanceof String?Y.valueOf():null;if(w&&this.isComponent(w))return this.generateChildComponent(w,_);if(w==="slot"&&this.componentMembers){let K=this._self,J=this.newElementVar("slot");return this._createLines.push(`${J} = ${K}.children instanceof Node ? ${K}.children : (${K}.children != null ? document.createTextNode(String(${K}.children)) : document.createComment(''));`),J}if(w&&this.isHtmlTag(w)){let[K,J]=w.split("#");return this.generateTag(K||"div",[],_,J)}if(w==="."){let[,K,J]=A;if(K==="this"&&typeof J==="string"){let O=this._self;if(this.reactiveMembers&&this.reactiveMembers.has(J)){let G=this.newTextVar();return this._createLines.push(`${G} = document.createTextNode('');`),this._pushEffect(`${G}.data = ${O}.${J}.value;`),G}let q=this.newElementVar("slot");return this._createLines.push(`${q} = ${O}.${J} instanceof Node ? ${O}.${J} : (${O}.${J} != null ? document.createTextNode(String(${O}.${J})) : document.createComment(''));`),q}let{tag:M,classes:Q,id:Z}=this.collectTemplateClasses(A);if(M&&this.isHtmlTag(M))return this.generateTag(M,Q,[],Z);let X=this.newTextVar(),D=this.generateInComponent(A,"value");return this._createLines.push(`${X} = document.createTextNode(String(${D}));`),X}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 Q=typeof Y[0][1]==="string"?Y[0][1]:Y[0][1].valueOf(),Z=Y.slice(1);return this.generateDynamicTag(Q,Z,_)}let{tag:K,classes:J,id:M}=this.collectTemplateClasses(Y);if(K&&this.isHtmlTag(K)){if(J.length===1&&J[0]==="__clsx")return this.generateDynamicTag(K,_,[]);return this.generateTag(K,J,_,M)}}if(w==="->"||w==="=>")return this.generateTemplateBlock(_[1]);if(w==="if")return this.generateConditional(A);if(w==="for"||w==="for-in"||w==="for-of"||w==="for-as")return this.generateTemplateLoop(A);let R=this.newTextVar(),z=this.generateInComponent(A,"value");if(this.hasReactiveDeps(A))this._createLines.push(`${R} = document.createTextNode('');`),this._pushEffect(`${R}.data = ${z};`);else this._createLines.push(`${R} = document.createTextNode(String(${z}));`);return R},F.appendChildren=function(A,Y){for(let _ of Y)if(this.is(_,"->")||this.is(_,"=>")){let w=_[2];if(this.is(w,"block"))for(let R of w.slice(1))if(this.is(R,"object"))this.generateAttributes(A,R);else{let z=this.generateNode(R);this._createLines.push(`${A}.appendChild(${z});`)}else if(w){let R=this.generateNode(w);this._createLines.push(`${A}.appendChild(${R});`)}}else if(this.is(_,"object"))this.generateAttributes(A,_);else if(typeof _==="string"||_ instanceof String){let w=_.valueOf(),R=w.split(/[#.]/)[0];if(this.isHtmlTag(R||"div")||this.isComponent(R)){let z=this.generateNode(_);this._createLines.push(`${A}.appendChild(${z});`)}else{let z=this.newTextVar();if(w.startsWith('"')||w.startsWith("'")||w.startsWith("`"))this._createLines.push(`${z} = document.createTextNode(${w});`);else if(this.reactiveMembers&&this.reactiveMembers.has(w))this._createLines.push(`${z} = document.createTextNode('');`),this._pushEffect(`${z}.data = ${this._self}.${w}.value;`);else if(this.componentMembers&&this.componentMembers.has(w))this._createLines.push(`${z} = document.createTextNode(String(${this._self}.${w}));`);else this._createLines.push(`${z} = document.createTextNode(${this.generateInComponent(_,"value")});`);this._createLines.push(`${A}.appendChild(${z});`)}}else if(_){let w=this.generateNode(_);this._createLines.push(`${A}.appendChild(${w});`)}},F._claimAutoWire=function(A){if(!this._pendingAutoWire||!this._autoEventHandlers?.size)return!1;return this._pendingAutoWire=!1,this._autoWireEl=A,this._autoWireExplicit=new Set,!0},F._emitAutoWire=function(A,Y){if(!Y)return;for(let[_,w]of this._autoEventHandlers)if(!this._autoWireExplicit.has(_))this._createLines.push(`${A}.addEventListener('${_}', (e) => __batch(() => ${this._self}.${w}(e)));`);this._autoWireEl=null,this._autoWireExplicit=null},F.generateTag=function(A,Y,_,w){let R=this.newElementVar(),z=Z1.has(A)||this._svgDepth>0;if(z)this._createLines.push(`${R} = document.createElementNS('http://www.w3.org/2000/svg', '${A}');`);else this._createLines.push(`${R} = document.createElement('${A}');`);if(w)this._createLines.push(`${R}.id = '${w}';`);let K=this._claimAutoWire(R),J=this._pendingClassArgs,M=this._pendingClassEl;if(Y.length>0)this._pendingClassArgs=[`'${Y.join(" ")}'`],this._pendingClassEl=R;if(A==="svg")this._svgDepth=(this._svgDepth||0)+1;if(this.appendChildren(R,_),A==="svg")this._svgDepth--;if(Y.length>0){if(this._pendingClassArgs.length===1)if(z)this._createLines.push(`${R}.setAttribute('class', '${Y.join(" ")}');`);else this._createLines.push(`${R}.className = '${Y.join(" ")}';`);else{let Q=this._pendingClassArgs.join(", ");if(z)this._pushEffect(`${R}.setAttribute('class', __clsx(${Q}));`);else this._pushEffect(`${R}.className = __clsx(${Q});`)}this._pendingClassArgs=J,this._pendingClassEl=M}return this._emitAutoWire(R,K),R},F.generateDynamicTag=function(A,Y,_){let w=this.newElementVar();if(Z1.has(A)||this._svgDepth>0)this._createLines.push(`${w} = document.createElementNS('http://www.w3.org/2000/svg', '${A}');`);else this._createLines.push(`${w} = document.createElement('${A}');`);let R=this._claimAutoWire(w),z=Y.map((M)=>this.generateInComponent(M,"value")),K=this._pendingClassArgs,J=this._pendingClassEl;if(this._pendingClassArgs=z,this._pendingClassEl=w,A==="svg")this._svgDepth=(this._svgDepth||0)+1;if(this.appendChildren(w,_),A==="svg")this._svgDepth--;if(this._pendingClassArgs.length>0){let M=this._pendingClassArgs.join(", ");if(Z1.has(A)||this._svgDepth>0)this._pushEffect(`${w}.setAttribute('class', __clsx(${M}));`);else this._pushEffect(`${w}.className = __clsx(${M});`)}return this._pendingClassArgs=K,this._pendingClassEl=J,this._emitAutoWire(w,R),w},F.generateAttributes=function(A,Y){let _=v3(Y.slice(1));for(let w=1;w<Y.length;w++){let[R,z]=Y[w];if(this.is(R,".")&&R[1]==="this"){let K=R[2];if(this._autoWireExplicit&&this._autoWireEl===A)this._autoWireExplicit.add(K);if(typeof z==="string"&&this.componentMembers?.has(z))this._createLines.push(`${A}.addEventListener('${K}', (e) => __batch(() => ${this._self}.${z}(e)));`);else{let J=this.generateInComponent(z,"value");this._createLines.push(`${A}.addEventListener('${K}', (e) => __batch(() => (${J})(e)));`)}continue}if(typeof R==="string"){if(R.startsWith('"')&&R.endsWith('"'))R=R.slice(1,-1);if(R==="class"||R==="className"){let J=this.generateInComponent(z,"value");if(this._pendingClassArgs&&this._pendingClassEl===A)this._pendingClassArgs.push(J);else if(this.hasReactiveDeps(z))if(this._svgDepth>0)this._pushEffect(`${A}.setAttribute('class', __clsx(${J}));`);else this._pushEffect(`${A}.className = __clsx(${J});`);else if(this._svgDepth>0)this._createLines.push(`${A}.setAttribute('class', ${J});`);else this._createLines.push(`${A}.className = ${J};`);continue}if(R==="__transition__"){let J=String(z).replace(/^["']|["']$/g,"");this._createLines.push(`this._t = "${J}";`);continue}if(R==="ref"){let J=String(z).replace(/^["']|["']$/g,"");this._createLines.push(`${this._self}.${J} = ${A};`);continue}if(R.startsWith("__bind_")&&R.endsWith("__")){let J=R.slice(7,-2),M=this.generateInComponent(z,"value"),Q,Z;if(J==="checked")Q="change",Z="e.target.checked";else Q="input",Z=_==="number"||_==="range"?"e.target.valueAsNumber":"e.target.value";this._pushEffect(`${A}.${J} = ${M};`);let X=`${M} = ${Z}`,D=!this.isSimpleAssignable(z)&&this.findRootReactiveMember(z);if(D)X+=`; ${this._self}.${D}.touch?.()`;this._createLines.push(`${A}.addEventListener('${Q}', (e) => { ${X}; });`);continue}let K=this.generateInComponent(z,"value");if((R==="value"||R==="checked")&&this.hasReactiveDeps(z)){this._pushEffect(`${A}.${R} = ${K};`);let J=!this.isSimpleAssignable(z)&&this.findRootReactiveMember(z);if(this.isSimpleAssignable(z)||J){let M=R==="checked"?"change":"input",Z=`${K} = ${R==="checked"?"e.target.checked":_==="number"||_==="range"?"e.target.valueAsNumber":"e.target.value"}`;if(J)Z+=`; ${this._self}.${J}.touch?.()`;this._createLines.push(`${A}.addEventListener('${M}', (e) => { ${Z}; });`)}continue}if(R==="innerHTML"||R==="textContent"||R==="innerText")if(this.hasReactiveDeps(z))this._pushEffect(`${A}.${R} = ${K};`);else this._createLines.push(`${A}.${R} = ${K};`);else if(g3.has(R))if(this.hasReactiveDeps(z))this._pushEffect(`${A}.toggleAttribute('${R}', !!${K});`);else this._createLines.push(`if (${K}) ${A}.setAttribute('${R}', '');`);else if(this.hasReactiveDeps(z))if(Array.isArray(z)&&z[0]==="presence")this._pushEffect(`{ const __v = ${K}; __v == null ? ${A}.removeAttribute('${R}') : ${A}.setAttribute('${R}', __v); }`);else this._pushEffect(`${A}.setAttribute('${R}', ${K});`);else this._createLines.push(`${A}.setAttribute('${R}', ${K});`)}}},F.generateTemplateBlock=function(A){if(!Array.isArray(A)||A[0]!=="block")return this.generateNode(A);let Y=A.slice(1);if(Y.length===0){let R=this.newElementVar("empty");return this._createLines.push(`${R} = document.createComment('');`),R}if(Y.length===1)return this.generateNode(Y[0]);let _=this.newElementVar("frag");this._createLines.push(`${_} = document.createDocumentFragment();`);let w=[];for(let R of Y){let z=this.generateNode(R);this._createLines.push(`${_}.appendChild(${z});`),w.push(z)}return this._fragChildren.set(_,w),_},F.generateConditional=function(A){this._pendingAutoWire=!1;let[,Y,_,w]=A,R=this.newElementVar("anchor");this._createLines.push(`${R} = document.createComment('if');`);let z=this.generateInComponent(Y,"value"),K=this._loopVarStack.map((O)=>`${O.itemVar}, ${O.indexVar}`).join(", "),J=K?`, ${K}`:"",M=this.newBlockVar();this.generateConditionBranch(M,_);let Q=null;if(w)Q=this.newBlockVar(),this.generateConditionBranch(Q,w);let Z=[];Z.push(`// Conditional: ${M}${Q?" / "+Q:""}`),Z.push("{"),Z.push(` const anchor = ${R};`),Z.push(" let currentBlock = null;"),Z.push(" let showing = null;");let X=this._factoryMode?"disposers.push(__effect(() => {":"__effect(() => {",D=this._factoryMode?"}));":"});";if(Z.push(` ${X}`),Z.push(` const show = !!(${z});`),Z.push(` const want = show ? 'then' : ${w?"'else'":"null"};`),Z.push(" if (want === showing) return;"),Z.push(""),Z.push(" if (currentBlock) {"),Z.push(" const leaving = currentBlock;"),Z.push(" if (leaving._t) { __transition(leaving._first, leaving._t, 'leave', () => leaving.d(true)); }"),Z.push(" else { leaving.d(true); }"),Z.push(" currentBlock = null;"),Z.push(" }"),Z.push(" showing = want;"),Z.push(""),Z.push(" if (want === 'then') {"),Z.push(` currentBlock = ${M}(${this._self}${J});`),Z.push(" currentBlock.c();"),Z.push(" if (anchor.parentNode) currentBlock.m(anchor.parentNode, anchor.nextSibling);"),Z.push(` currentBlock.p(${this._self}${J});`),Z.push(" if (currentBlock._t) __transition(currentBlock._first, currentBlock._t, 'enter');"),Z.push(" }"),w)Z.push(" if (want === 'else') {"),Z.push(` currentBlock = ${Q}(${this._self}${J});`),Z.push(" currentBlock.c();"),Z.push(" if (anchor.parentNode) currentBlock.m(anchor.parentNode, anchor.nextSibling);"),Z.push(` currentBlock.p(${this._self}${J});`),Z.push(" if (currentBlock._t) __transition(currentBlock._first, currentBlock._t, 'enter');"),Z.push(" }");return Z.push(` ${D}`),Z.push("}"),this._setupLines.push(Z.join(`
|
|
22
|
+
`)),R},F.generateConditionBranch=function(A,Y){let _=[this._createLines,this._setupLines,this._factoryMode,this._factoryVars];this._createLines=[],this._setupLines=[],this._factoryMode=!0,this._factoryVars=new Set;let w=this.generateTemplateBlock(Y),R=this._createLines,z=this._setupLines,K=this._factoryVars;[this._createLines,this._setupLines,this._factoryMode,this._factoryVars]=_;let J=this._loopVarStack.map((Q)=>`${Q.itemVar}, ${Q.indexVar}`).join(", "),M=J?`, ${J}`:"";this.emitBlockFactory(A,`ctx${M}`,w,R,z,K)},F.emitBlockFactory=function(A,Y,_,w,R,z,K){let J=[];if(J.push(`function ${A}(${Y}) {`),z.size>0)J.push(` let ${[...z].join(", ")};`);let M=R.length>0;if(M)J.push(" let disposers = [];");if(J.push(" return {"),K)J.push(" _s: true,");let Q=this._fragChildren.get(_),Z=Q?Q[0]:_;J.push(" c() {");for(let X of w)J.push(` ${X}`);if(J.push(` this._first = ${Z};`),J.push(" },"),J.push(" m(target, anchor) {"),Q)for(let X of Q)J.push(` if (target) target.insertBefore(${X}, anchor);`);else J.push(` if (target) target.insertBefore(${_}, anchor);`);if(J.push(" },"),J.push(` p(${Y}) {`),M){J.push(" disposers.forEach(d => d());"),J.push(" disposers = [];");for(let X of R)J.push(` ${X}`)}if(J.push(" },"),J.push(" d(detaching) {"),M)J.push(" disposers.forEach(d => d());");if(Q)for(let X of Q)J.push(` if (detaching && ${X}) ${X}.remove();`);else J.push(` if (detaching && ${_}) ${_}.remove();`);J.push(" }"),J.push(" };"),J.push("}"),this._blockFactories.push(J.join(`
|
|
23
|
+
`))},F.generateTemplateLoop=function(A){this._pendingAutoWire=!1;let[Y,_,w,R,z,K]=A,J=this.newBlockVar(),M=this.newElementVar("anchor");this._createLines.push(`${M} = document.createComment('for');`);let Q=Array.isArray(_)?_:[_],Z=Q[0],X=Q[1]||"i",D=this.generateInComponent(w,"value"),O=Z;if(this.is(K,"block")&&K.length>1){let x=K[1];if(Array.isArray(x))for(let c of x){if(this.is(c,"object"))for(let m=1;m<c.length;m++){let[U1,r]=c[m];if(U1==="key"){O=this.generate(r,"value");break}}if(O!==Z)break}}let q=[this._createLines,this._setupLines,this._factoryMode,this._factoryVars];this._createLines=[],this._setupLines=[],this._factoryMode=!0,this._factoryVars=new Set;let G=this._loopVarStack.map((x)=>`${x.itemVar}, ${x.indexVar}`).join(", "),P=G?`, ${G}`:"";this._loopVarStack.push({itemVar:Z,indexVar:X});let H=this.generateTemplateBlock(K);this._loopVarStack.pop();let I=this._createLines,E=this._setupLines,B=this._factoryVars;[this._createLines,this._setupLines,this._factoryMode,this._factoryVars]=q;let T=E.length===0,h=`ctx, ${Z}, ${X}${P}`;this.emitBlockFactory(J,h,H,I,E,B,T);let S=O!==Z?`(${Z}, ${X}) => ${O}`:"null",L=G?`, ${G}`:"",V=[];V.push(`// Loop: ${J}`),V.push("{"),V.push(" const __s = { blocks: [], keys: [] };");let y=this._factoryMode?"disposers.push(__effect(() => {":"__effect(() => {",g=this._factoryMode?"}));":"});";return V.push(` ${y}`),V.push(` __reconcile(${M}, __s, ${D}, ${this._self}, ${J}, ${S}${L});`),V.push(` ${g}`),V.push("}"),this._setupLines.push(V.join(`
|
|
24
|
+
`)),M},F.generateChildComponent=function(A,Y){this._pendingAutoWire=!1;let _=this.newElementVar("inst"),w=this.newElementVar("el"),{propsCode:R,reactiveProps:z,eventBindings:K,childrenSetupLines:J}=this.buildComponentProps(Y),M=this._self;this._createLines.push(`${_} = new ${A}(${R});`),this._createLines.push(`${w} = ${_}._root = ${_}._create();`),this._createLines.push(`(${M}._children || (${M}._children = [])).push(${_});`);for(let{event:Q,value:Z}of K){let X=this.generateInComponent(Z,"value");this._createLines.push(`${w}.addEventListener('${Q}', (e) => __batch(() => (${X})(e)));`)}this._setupLines.push(`try { if (${_}._setup) ${_}._setup(); if (${_}.mounted) ${_}.mounted(); } catch (__e) { __handleComponentError(__e, ${_}); }`);for(let{key:Q,valueCode:Z}of z)this._pushEffect(`if (${_}.${Q}) ${_}.${Q}.value = ${Z};`);for(let Q of J)this._setupLines.push(Q);return w},F.buildComponentProps=function(A){let Y=[],_=[],w=[],R=null,z=[],K=(Q,Z)=>{if(Q.startsWith("@")){w.push({event:Q.slice(1).split(".")[0],value:Z});return}if(this.reactiveMembers&&(typeof Z==="string"&&this.reactiveMembers.has(Z)||Array.isArray(Z)&&Z[0]==="."&&Z[1]==="this"&&typeof Z[2]==="string"&&this.reactiveMembers.has(Z[2]))){let D=typeof Z==="string"?Z:Z[2];Y.push(`${Q}: ${this._self}.${D}`)}else{let D=this.generateInComponent(Z,"value");if(Y.push(`${Q}: ${D}`),this.hasReactiveDeps(Z))_.push({key:Q,valueCode:D})}},J=(Q)=>{for(let Z=1;Z<Q.length;Z++){let[X,D]=Q[Z];if(typeof X==="string")K(X,D);else if(Array.isArray(X)&&X[0]==="."&&X[1]==="this"&&typeof X[2]==="string")w.push({event:X[2],value:D})}};for(let Q of A)if(this.is(Q,"object"))J(Q);else if(Array.isArray(Q)&&(Q[0]==="->"||Q[0]==="=>")){let Z=Q[2];if(Z){if(this.is(Z,"block")){let X=[];for(let D of Z.slice(1))if(this.is(D,"object"))J(D);else X.push(D);Z=X.length>0?["block",...X]:null}if(Z){let X=this._createLines,D=this._setupLines;this._createLines=[],this._setupLines=[],R=this.generateTemplateBlock(Z);let O=this._createLines,q=this._setupLines;this._createLines=X,this._setupLines=D;for(let G of O)this._createLines.push(G);z.push(...q),Y.push(`children: ${R}`)}}}return{propsCode:Y.length>0?`{ ${Y.join(", ")} }`:"{}",reactiveProps:_,eventBindings:w,childrenSetupLines:z}},F.hasReactiveDeps=function(A){if(typeof A==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(A));if(!Array.isArray(A))return!1;if(A[0]==="."&&A[1]==="this"&&typeof A[2]==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(A[2]));if(A[0]==="."&&this._rootsAtThis(A[1]))return!0;for(let Y of A)if(this.hasReactiveDeps(Y))return!0;return!1},F.isSimpleAssignable=function(A){if(typeof A==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(A));if(Array.isArray(A)&&A[0]==="."&&A[1]==="this"&&typeof A[2]==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(A[2]));return!1},F.findRootReactiveMember=function(A){if(typeof A==="string")return this.reactiveMembers?.has(A)?A:null;if(!Array.isArray(A))return null;if(A[0]==="."&&A[1]==="this"&&typeof A[2]==="string")return this.reactiveMembers?.has(A[2])?A[2]:null;if(A[0]==="."||A[0]==="[]")return this.findRootReactiveMember(A[1]);return null},F._rootsAtThis=function(A){if(typeof A==="string")return A==="this";if(!Array.isArray(A)||A[0]!==".")return!1;return this._rootsAtThis(A[1])},F.getComponentRuntime=function(){return`
|
|
25
25
|
// ============================================================================
|
|
26
26
|
// Rip Component Runtime
|
|
27
27
|
// ============================================================================
|
|
@@ -292,187 +292,187 @@ if (typeof globalThis !== 'undefined') {
|
|
|
292
292
|
globalThis.__ripComponent = { __pushComponent, __popComponent, setContext, getContext, hasContext, __clsx, __lis, __reconcile, __transition, __handleComponentError, __Component };
|
|
293
293
|
}
|
|
294
294
|
|
|
295
|
-
`}}function
|
|
296
|
-
`)>=0){let
|
|
297
|
-
`).map((Y)=>Y.replace(/#.*$/,"").trim()).join("")}/${
|
|
298
|
-
`)}let
|
|
299
|
-
`))return" ".repeat(U)+
|
|
295
|
+
`}}function A1($){let U="",W=$<0?-$<<1|1:$<<1;do{let F=W&31;if(W>>>=5,W>0)F|=32;U+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[F]}while(W>0);return U}class l1{constructor($,U,W=null){this.file=$,this.source=U,this.sourceContent=W,this.names=[],this.nameIndex=new Map,this.lines=[],this.mappings=[],this.prevGenCol=0,this.prevOrigLine=0,this.prevOrigCol=0,this.prevNameIdx=0,this.currentLine=-1}ensureLine($){while(this.lines.length<=$)this.lines.push([])}addName($){if(this.nameIndex.has($))return this.nameIndex.get($);let U=this.names.length;return this.names.push($),this.nameIndex.set($,U),U}addMapping($,U,W,F,u){if(this.ensureLine($),this.currentLine!==$)this.prevGenCol=0,this.currentLine=$;if(W==null){this.lines[$].push(A1(U-this.prevGenCol)),this.prevGenCol=U;return}this.mappings.push({genLine:$,genCol:U,origLine:W,origCol:F});let f=A1(U-this.prevGenCol);if(this.prevGenCol=U,f+=A1(0),f+=A1(W-this.prevOrigLine),this.prevOrigLine=W,f+=A1(F-this.prevOrigCol),this.prevOrigCol=F,u!=null){let A=this.addName(u);f+=A1(A-this.prevNameIdx),this.prevNameIdx=A}this.lines[$].push(f)}toReverseMap(){let $=new Map;for(let U of this.mappings)if(!$.has(U.origLine))$.set(U.origLine,{genLine:U.genLine,genCol:U.genCol});return $}toJSON(){let $=this.lines.map((W)=>W.join(",")).join(";"),U={version:3,file:this.file,sources:[this.source],names:this.names,mappings:$};if(this.sourceContent!=null)U.sourcesContent=[this.sourceContent];return JSON.stringify(U)}}var C=($,U)=>$ instanceof String?$[U]:void 0,j=($)=>$ instanceof String?$.valueOf():$,l3=new Set(["+","-","*","/","%","//","%%","**","==","!=","<",">","<=",">=","===","!==","&&","||","??","!?","not","&","|","^","<<",">>",">>>","=",".","?.","[]","!","typeof","void","delete","new","...","rest","expansion","optindex","optcall"]);function P1($){if(!Array.isArray($)||$.length===0)return!1;let U=$[0]?.valueOf?.()??$[0];if(l3.has(U))return!0;return $.length<=4&&!$.some(Array.isArray)}function w1($){if(Array.isArray($))return"(???)";if(typeof $==="number")return String($);if($===null)return"null";if($==="")return'""';let U=String($);if(U[0]==="/"&&U.indexOf(`
|
|
296
|
+
`)>=0){let W=U.match(/\/([gimsuvy]*)$/),F=W?W[1]:"",u=U.slice(1);return u=F?u.slice(0,-F.length-1):u.slice(0,-1),`"/${u.split(`
|
|
297
|
+
`).map((Y)=>Y.replace(/#.*$/,"").trim()).join("")}/${F}"`}return U}function p($,U=0,W=!1){if(!Array.isArray($))return w1($);if(W&&$[0]==="program"){let w=$[1],z=[Array.isArray(w)?"(program":"(program "+w1(w)],K=Array.isArray(w)?1:2;for(let J=K;J<$.length;J++){let M=p($[J],2,!1);z.push(M[0]==="("?" "+M:M)}return z.push(")"),z.join(`
|
|
298
|
+
`)}let F=$[0];if(P1($)&&$.slice(1).every((w)=>!Array.isArray(w)||P1(w))){let R=`(${$.map((z)=>Array.isArray(z)?p(z,0,!1):w1(z)).join(" ")})`;if(!R.includes(`
|
|
299
|
+
`))return" ".repeat(U)+R}let f=" ".repeat(U),A;if(Array.isArray(F)){if(A=p(F,0,!1),A.includes(`
|
|
300
300
|
`))A=A.split(`
|
|
301
|
-
`).map((
|
|
302
|
-
`)}else A=
|
|
303
|
-
`)){Y[Y.length-1]+=" "+
|
|
304
|
-
`)}class
|
|
305
|
-
`).length}}collectProgramVariables($){if(!Array.isArray($))return;let[U,...
|
|
306
|
-
`))return`\`${A.replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}\``;let Y=A.includes("'")&&!A.includes('"')?'"':"'",_=A.replace(new RegExp(Y,"g"),`\\${Y}`);return`${Y}${_}${Y}`}if(this.reactiveVars?.has($)&&!this.suppressReactiveUnwrap)return`${$}.value`;return $}if(typeof $==="number")return String($);if($===null||$===void 0)return"null";if(!Array.isArray($))throw Error(`Invalid s-expression: ${JSON.stringify($)}`);let[F
|
|
307
|
-
`),z=!1;if(
|
|
308
|
-
`),z=!0;if(this.programVars.size>0){let
|
|
309
|
-
`;
|
|
310
|
-
`,z=!0}let
|
|
311
|
-
`;
|
|
312
|
-
`,z=!0;if(this.helpers.has("modulo"))
|
|
313
|
-
`,z=!0;if(this.helpers.has("toMatchable"))
|
|
314
|
-
`,
|
|
315
|
-
`,
|
|
316
|
-
`,
|
|
317
|
-
`,
|
|
318
|
-
`,
|
|
319
|
-
`,
|
|
320
|
-
`,
|
|
321
|
-
`,
|
|
322
|
-
`,
|
|
323
|
-
`,
|
|
324
|
-
`,
|
|
325
|
-
`,
|
|
326
|
-
`,
|
|
327
|
-
`,z=!0}let
|
|
328
|
-
`+A.map((
|
|
329
|
-
`);if(this.usesReactivity&&!
|
|
330
|
-
`;else if(typeof globalThis<"u"&&globalThis.__rip)
|
|
331
|
-
`;else
|
|
332
|
-
`;else if(typeof globalThis<"u"&&globalThis.__ripComponent)
|
|
333
|
-
`;else
|
|
301
|
+
`).map((R,z)=>z===0?R:" ".repeat(U+2)+R).join(`
|
|
302
|
+
`)}else A=w1(F);let Y=[`${f}(${A}`],_=F==="block";for(let w=1;w<$.length;w++){let R=$[w];if(!Array.isArray(R))Y[Y.length-1]+=" "+w1(R);else{let z=P1(R)&&R.every((K)=>!Array.isArray(K)||P1(K));if(!_&&z){let K=p(R,0,!1);if(!K.includes(`
|
|
303
|
+
`)){Y[Y.length-1]+=" "+K;continue}}Y.push(p(R,U+2,!1))}}return Y[Y.length-1]+=")",Y.join(`
|
|
304
|
+
`)}class v{static ASSIGNMENT_OPS=new Set(["=","+=","-=","*=","/=","?=","&=","|=","^=","%=","**=","??=","&&=","||=","<<=",">>=",">>>="]);static NUMBER_LITERAL_RE=/^-?\d+(\.\d+)?([eE][+-]?\d+)?$/;static NUMBER_START_RE=/^-?\d/;static GENERATORS={program:"generateProgram","&&":"generateLogicalAnd","||":"generateLogicalOr","+":"generateBinaryOp","-":"generateBinaryOp","*":"generateBinaryOp","/":"generateBinaryOp","%":"generateBinaryOp","**":"generateBinaryOp","==":"generateBinaryOp","===":"generateBinaryOp","!=":"generateBinaryOp","!==":"generateBinaryOp","<":"generateBinaryOp",">":"generateBinaryOp","<=":"generateBinaryOp",">=":"generateBinaryOp","??":"generateBinaryOp","!?":"generateBinaryOp","&":"generateBinaryOp","|":"generateBinaryOp","^":"generateBinaryOp","<<":"generateBinaryOp",">>":"generateBinaryOp",">>>":"generateBinaryOp","%%":"generateModulo","%%=":"generateModuloAssign","//":"generateFloorDiv","//=":"generateFloorDivAssign","..":"generateRange","=":"generateAssignment","+=":"generateAssignment","-=":"generateAssignment","*=":"generateAssignment","/=":"generateAssignment","%=":"generateAssignment","**=":"generateAssignment","&&=":"generateAssignment","||=":"generateAssignment","??=":"generateAssignment","?=":"generateAssignment","&=":"generateAssignment","|=":"generateAssignment","^=":"generateAssignment","<<=":"generateAssignment",">>=":"generateAssignment",">>>=":"generateAssignment","...":"generateRange","!":"generateNot","~":"generateBitwiseNot","++":"generateIncDec","--":"generateIncDec","=~":"generateRegexMatch",instanceof:"generateInstanceof",in:"generateIn",of:"generateOf",typeof:"generateTypeof",delete:"generateDelete",new:"generateNew",array:"generateArray",object:"generateObject",block:"generateBlock",".":"generatePropertyAccess","?.":"generateOptionalProperty","[]":"generateIndexAccess",optindex:"generateOptIndex",optcall:"generateOptCall","regex-index":"generateRegexIndex",def:"generateDef","->":"generateThinArrow","=>":"generateFatArrow",return:"generateReturn",state:"generateState",computed:"generateComputed",readonly:"generateReadonly",effect:"generateEffect",break:"generateBreak",continue:"generateContinue","?":"generateExistential",defined:"generateDefined",presence:"generatePresence","?:":"generateTernary","|>":"generatePipe",loop:"generateLoop","loop-n":"generateLoopN",await:"generateAwait",yield:"generateYield","yield-from":"generateYieldFrom",if:"generateIf","for-in":"generateForIn","for-of":"generateForOf","for-as":"generateForAs",while:"generateWhile",try:"generateTry",throw:"generateThrow",control:"generateControl",switch:"generateSwitch",when:"generateWhen",comprehension:"generateComprehension","object-comprehension":"generateObjectComprehension",class:"generateClass",super:"generateSuper",component:"generateComponent",render:"generateRender",offer:"generateOffer",accept:"generateAccept",enum:"generateEnum",import:"generateImport",export:"generateExport","export-default":"generateExportDefault","export-all":"generateExportAll","export-from":"generateExportFrom","do-iife":"generateDoIIFE",regex:"generateRegex","tagged-template":"generateTaggedTemplate",str:"generateString"};constructor($={}){if(this.options=$,this.indentLevel=0,this.indentString=" ",this.comprehensionDepth=0,this.dataSection=$.dataSection,this.sourceMap=$.sourceMap||null,$.reactiveVars)this.reactiveVars=new Set($.reactiveVars)}compile($){this.programVars=new Set,this.functionVars=new Map,this.helpers=new Set,this.scopeStack=[],this.collectProgramVariables($);let U=this.generate($);if(this.sourceMap)this.buildMappings();return U}buildMappings(){if(!this._stmtEntries)return;let $=this._preambleLines;for(let U of this._stmtEntries){if(U.loc)this.sourceMap.addMapping($,0,U.loc.r,U.loc.c);$+=U.code.split(`
|
|
305
|
+
`).length}}collectProgramVariables($){if(!Array.isArray($))return;let[U,...W]=$;if(U=j(U),Array.isArray(U)){$.forEach((F)=>this.collectProgramVariables(F));return}if(U==="export"||U==="export-default"||U==="export-all"||U==="export-from")return;if(U==="state"||U==="computed"){let[F]=W,u=j(F)??F;if(!this.reactiveVars)this.reactiveVars=new Set;this.reactiveVars.add(u);return}if(U==="readonly")return;if(U==="component")return;if(v.ASSIGNMENT_OPS.has(U)){let[F,u]=W;if(typeof F==="string"||F instanceof String){let f=j(F);if(!this.reactiveVars?.has(f))this.programVars.add(f)}else if(this.is(F,"array"))this.collectVarsFromArray(F,this.programVars);else if(this.is(F,"object"))this.collectVarsFromObject(F,this.programVars);this.collectProgramVariables(u);return}if(U==="def"||U==="->"||U==="=>"||U==="effect")return;if(U==="if"){let[F,u,f]=W;if(this.collectProgramVariables(F),this.collectProgramVariables(u),f)this.collectProgramVariables(f);return}if(U==="try"){if(this.collectProgramVariables(W[0]),W.length>=2&&Array.isArray(W[1])&&W[1].length===2&&W[1][0]!=="block"){let[F,u]=W[1];if(F&&this.is(F,"object"))F.slice(1).forEach((f)=>{if(Array.isArray(f)&&f.length===2&&typeof f[1]==="string")this.programVars.add(f[1])});else if(F&&this.is(F,"array"))F.slice(1).forEach((f)=>{if(typeof f==="string")this.programVars.add(f)});this.collectProgramVariables(u)}if(W.length===3)this.collectProgramVariables(W[2]);else if(W.length===2&&(!Array.isArray(W[1])||W[1][0]==="block"))this.collectProgramVariables(W[1]);return}W.forEach((F)=>this.collectProgramVariables(F))}collectFunctionVariables($){let U=new Set,W=(F)=>{if(!Array.isArray(F))return;let[u,...f]=F;if(u=j(u),Array.isArray(u)){F.forEach((A)=>W(A));return}if(v.ASSIGNMENT_OPS.has(u)){let[A,Y]=f;if(typeof A==="string")U.add(A);else if(this.is(A,"array"))this.collectVarsFromArray(A,U);else if(this.is(A,"object"))this.collectVarsFromObject(A,U);W(Y);return}if(u==="def"||u==="->"||u==="=>"||u==="effect")return;if(u==="try"){if(W(f[0]),f.length>=2&&Array.isArray(f[1])&&f[1].length===2&&f[1][0]!=="block"){let[A,Y]=f[1];if(A&&this.is(A,"object"))A.slice(1).forEach((_)=>{if(Array.isArray(_)&&_.length===2&&typeof _[1]==="string")U.add(_[1])});else if(A&&this.is(A,"array"))A.slice(1).forEach((_)=>{if(typeof _==="string")U.add(_)});W(Y)}if(f.length===3)W(f[2]);else if(f.length===2&&(!Array.isArray(f[1])||f[1][0]==="block"))W(f[1]);return}f.forEach((A)=>W(A))};return W($),U}generate($,U="statement"){if($ instanceof String){if(C($,"await")===!0)return`await ${j($)}()`;if(C($,"predicate"))return`(${j($)} != null)`;if(C($,"delimiter")==="///"&&C($,"heregex")){let Y=j($),_=Y.match(/^\/(.*)\/([gimsuvy]*)$/s);if(_){let[,w,R]=_;return`/${this.processHeregex(w)}/${R}`}return Y}let A=C($,"quote");if(A){let Y=j($);if(A==='"""'||A==="'''"){let w=this.extractStringContent($);return w=w.replace(/`/g,"\\`").replace(/\${/g,"\\${"),`\`${w}\``}if(Y[0]===A)return Y;let _=Y.slice(1,-1);return`${A}${_}${A}`}$=j($)}if(typeof $==="string"){if($.startsWith('"')||$.startsWith("'")||$.startsWith("`")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive:",$);let A=$.slice(1,-1);if(A.includes(`
|
|
306
|
+
`))return`\`${A.replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}\``;let Y=A.includes("'")&&!A.includes('"')?'"':"'",_=A.replace(new RegExp(Y,"g"),`\\${Y}`);return`${Y}${_}${Y}`}if(this.reactiveVars?.has($)&&!this.suppressReactiveUnwrap)return`${$}.value`;return $}if(typeof $==="number")return String($);if($===null||$===void 0)return"null";if(!Array.isArray($))throw Error(`Invalid s-expression: ${JSON.stringify($)}`);let[W,...F]=$,u=C(W,"await");W=j(W);let f=v.GENERATORS[W];if(f)return this[f](W,F,U,$);if(typeof W==="string"&&!W.startsWith('"')&&!W.startsWith("'")){if(v.NUMBER_START_RE.test(W))return W;if(W==="super"&&this.currentMethodName&&this.currentMethodName!=="constructor"){let R=F.map((z)=>this.unwrap(this.generate(z,"value"))).join(", ");return`super.${this.currentMethodName}(${R})`}if(U==="statement"&&F.length===1){let R=this.findPostfixConditional(F[0]);if(R){let z=this.rebuildWithoutConditional(R),K=this.generate(W,"value"),J=this.generate(R.condition,"value"),M=this.generate(z,"value"),Q=`${K}(${M})`;return`if (${J}) ${Q}`}}let A=u===!0,Y=this.generate(W,"value"),_=F.map((R)=>this.unwrap(this.generate(R,"value"))).join(", "),w=`${Y}(${_})`;return A?`await ${w}`:w}if(Array.isArray(W)&&typeof W[0]==="string"){if(["=","+=","-=","*=","/=","%=","**=","&&=","||=","??=","if","return","throw"].includes(W[0]))return`(${$.map((_)=>this.generate(_,"value")).join(", ")})`}if(Array.isArray(W)){if(W[0]==="."&&(W[2]==="new"||j(W[2])==="new")){let R=W[1],z=this.generate(R,"value"),K=F.map((M)=>this.unwrap(this.generate(M,"value"))).join(", ");return`new ${Array.isArray(R)?`(${z})`:z}(${K})`}if(U==="statement"&&F.length===1){let R=this.findPostfixConditional(F[0]);if(R){let z=this.rebuildWithoutConditional(R),K=this.generate(W,"value"),J=this.generate(R.condition,"value"),M=this.generate(z,"value"),Q=`${K}(${M})`;return`if (${J}) ${Q}`}}let A=!1,Y;if(W[0]==="."&&C(W[2],"await")===!0){A=!0;let[R,z]=W.slice(1),K=this.generate(R,"value");Y=`${v.NUMBER_LITERAL_RE.test(K)||(this.is(R,"object")||this.is(R,"await")||this.is(R,"yield"))?`(${K})`:K}.${j(z)}`}else Y=this.generate(W,"value");let _=F.map((R)=>this.unwrap(this.generate(R,"value"))).join(", "),w=`${Y}(${_})`;return A?`await ${w}`:w}throw Error(`Unknown s-expression type: ${W}`)}generateProgram($,U,W,F){let u="",f=[],A=[],Y=[];for(let Q of U){if(!Array.isArray(Q)){Y.push(Q);continue}let Z=Q[0];if(Z==="import")f.push(Q);else if(Z==="export"||Z==="export-default"||Z==="export-all"||Z==="export-from")A.push(Q);else Y.push(Q)}let _=["def","class","if","for-in","for-of","for-as","while","loop","switch","try"],w=Y.map((Q,Z)=>{let X=Y.length===1&&f.length===0&&A.length===0,D=this.is(Q,"object"),O=D&&Q.length===2&&Array.isArray(Q[1])&&Array.isArray(Q[1][1])&&Q[1][1][0]==="comprehension",q=this.is(Q,"comprehension")||this.is(Q,"object-comprehension")||this.is(Q,"do-iife"),G=this.programVars.size===0,P=X&&D&&G&&!q&&!O,I=Z===Y.length-1&&q,E;if(P)E=`(${this.generate(Q,"value")})`;else if(I)E=this.generate(Q,"value");else E=this.generate(Q,"statement");if(E&&!E.endsWith(";")){let T=Array.isArray(Q)?Q[0]:null;if(!_.includes(T)||!E.endsWith("}"))E+=";"}let B=Array.isArray(Q)?Q.loc:null;return{code:E,loc:B}}),R=w.map((Q)=>Q.code).join(`
|
|
307
|
+
`),z=!1;if(f.length>0)u+=f.map((Q)=>this.addSemicolon(Q,this.generate(Q,"statement"))).join(`
|
|
308
|
+
`),z=!0;if(this.programVars.size>0){let Q=Array.from(this.programVars).sort().join(", ");if(z)u+=`
|
|
309
|
+
`;u+=`let ${Q};
|
|
310
|
+
`,z=!0}let K=this.options.skipPreamble,J=this.options.skipRuntimes;if(!K){if(z)u+=`
|
|
311
|
+
`;u+=Q1(),z=!0;let Q=J?"var":"const";if(this.helpers.has("slice"))u+=`${Q} slice = [].slice;
|
|
312
|
+
`,z=!0;if(this.helpers.has("modulo"))u+=`${Q} modulo = (n, d) => { n = +n; d = +d; return (n % d + d) % d; };
|
|
313
|
+
`,z=!0;if(this.helpers.has("toMatchable"))u+=`${Q} toMatchable = (v, allowNewlines) => {
|
|
314
|
+
`,u+=` if (typeof v === "string") return !allowNewlines && /[\\n\\r]/.test(v) ? null : v;
|
|
315
|
+
`,u+=` if (v == null) return "";
|
|
316
|
+
`,u+=` if (typeof v === "number" || typeof v === "bigint" || typeof v === "boolean") return String(v);
|
|
317
|
+
`,u+=` if (typeof v === "symbol") return v.description || "";
|
|
318
|
+
`,u+=` if (v instanceof Uint8Array || v instanceof ArrayBuffer) {
|
|
319
|
+
`,u+=` return new TextDecoder().decode(v instanceof Uint8Array ? v : new Uint8Array(v));
|
|
320
|
+
`,u+=` }
|
|
321
|
+
`,u+=` if (Array.isArray(v)) return v.join(",");
|
|
322
|
+
`,u+=` if (typeof v.toString === "function" && v.toString !== Object.prototype.toString) {
|
|
323
|
+
`,u+=` try { return v.toString(); } catch { return ""; }
|
|
324
|
+
`,u+=` }
|
|
325
|
+
`,u+=` return "";
|
|
326
|
+
`,u+=`};
|
|
327
|
+
`,z=!0}let M="";if(A.length>0)M=`
|
|
328
|
+
`+A.map((Q)=>this.addSemicolon(Q,this.generate(Q,"statement"))).join(`
|
|
329
|
+
`);if(this.usesReactivity&&!K){if(J)u+=`var { __state, __computed, __effect, __batch, __readonly, __setErrorHandler, __handleError, __catchErrors } = globalThis.__rip;
|
|
330
|
+
`;else if(typeof globalThis<"u"&&globalThis.__rip)u+=`const { __state, __computed, __effect, __batch, __readonly, __setErrorHandler, __handleError, __catchErrors } = globalThis.__rip;
|
|
331
|
+
`;else u+=this.getReactiveRuntime();z=!0}if(this.usesTemplates&&!K){if(J)u+=`var { __pushComponent, __popComponent, setContext, getContext, hasContext, __clsx, __lis, __reconcile, __transition, __handleComponentError, __Component } = globalThis.__ripComponent;
|
|
332
|
+
`;else if(typeof globalThis<"u"&&globalThis.__ripComponent)u+=`const { __pushComponent, __popComponent, setContext, getContext, hasContext, __clsx, __lis, __reconcile, __transition, __handleComponentError, __Component } = globalThis.__ripComponent;
|
|
333
|
+
`;else u+=this.getComponentRuntime();z=!0}if(this.dataSection!==null&&this.dataSection!==void 0&&!K)u+=`var DATA;
|
|
334
334
|
_setDataSection();
|
|
335
|
-
`,z=!0;if(z&&
|
|
336
|
-
`;if(this._stmtEntries=
|
|
337
|
-
`).length-1,
|
|
335
|
+
`,z=!0;if(z&&u.length>0)u+=`
|
|
336
|
+
`;if(this._stmtEntries=w,this._preambleLines=u.length===0?0:u.split(`
|
|
337
|
+
`).length-1,u+=R,u+=M,this.dataSection!==null&&this.dataSection!==void 0)u+=`
|
|
338
338
|
|
|
339
339
|
function _setDataSection() {
|
|
340
340
|
DATA = ${JSON.stringify(this.dataSection)};
|
|
341
|
-
}`;return f}generateBinaryOp($,U,F,W){if(($==="+"||$==="-")&&U.length===1)return`(${$}${this.generate(U[0],"value")})`;let[f,u]=U;if($==="*"){let Y=f?.valueOf?.()??f;if(typeof Y==="string"&&/^["']/.test(Y))return`${this.generate(f,"value")}.repeat(${this.generate(u,"value")})`}let A=new Set(["<",">","<=",">="]);if(A.has($)&&Array.isArray(f)){let Y=f[0]?.valueOf?.()??f[0];if(A.has(Y)){let _=this.generate(f[1],"value"),Z=this.generate(f[2],"value"),w=this.generate(u,"value");return`((${_} ${Y} ${Z}) && (${Z} ${$} ${w}))`}}if($==="!?"){let Y=this.generate(f,"value"),_=this.generate(u,"value");return`(${Y} !== undefined ? ${Y} : ${_})`}if($==="==")$="===";if($==="!=")$="!==";return`(${this.generate(f,"value")} ${$} ${this.generate(u,"value")})`}generateModulo($,U){let[F,W]=U;return this.helpers.add("modulo"),`modulo(${this.generate(F,"value")}, ${this.generate(W,"value")})`}generateModuloAssign($,U){let[F,W]=U;this.helpers.add("modulo");let f=this.generate(F,"value"),u=this.generate(W,"value");return`${f} = modulo(${f}, ${u})`}generateFloorDiv($,U){let[F,W]=U;return`Math.floor(${this.generate(F,"value")} / ${this.generate(W,"value")})`}generateFloorDivAssign($,U){let[F,W]=U,f=this.generate(F,"value"),u=this.generate(W,"value");return`${f} = Math.floor(${f} / ${u})`}generateAssignment($,U,F,W){let[f,u]=U,A=$==="?="?"??=":$,Y=this.is(u,"->")||this.is(u,"=>")||this.is(u,"def");if(f instanceof String&&V(f,"await")!==void 0&&!Y){let R=V(f,"await")===!0?"!":"&";throw Error(`Cannot use ${R} sigil in variable declaration '${j(f)}'.`)}if(f instanceof String&&V(f,"await")===!0&&Y)this.nextFunctionIsVoid=!0;let _=this.is(f,"array",0),Z=this.is(f,"object",0);if(_||Z){let R=this.generate(u,"value");return Z&&F==="statement"?`(${R})`:R}if(Array.isArray(u)&&A==="="&&u[0]==="control"){let[,R,J,Q]=u,q=j(R),O=Q[0]==="return",M=this.generate(f,"value"),G=this.generate(J,"value"),I=Q.length>1?Q[1]:null,H=O?I?`return ${this.generate(I,"value")}`:"return":I?`throw ${this.generate(I,"value")}`:"throw new Error()";if(F==="value"){if(q==="??")return`(() => { const __v = ${G}; if (__v == null) ${H}; return (${M} = __v); })()`;if(q==="||")return`(() => { const __v = ${G}; if (!__v) ${H}; return (${M} = __v); })()`;return`(() => { const __v = ${G}; if (__v) ${H}; return (${M} = __v); })()`}if(q==="??")return`if ((${M} = ${G}) == null) ${H}`;if(q==="||")return`if (!(${M} = ${G})) ${H}`;return`if ((${M} = ${G})) ${H}`}if(this.is(f,"array")){let R=f.slice(1).findIndex((J)=>this.is(J,"...")||J==="...");if(R!==-1&&R<f.length-2){let J=f.slice(1),Q=J.slice(R+1),q=Q.length;if(q>0){let O=this.generate(u,"value"),G=J.slice(0,R).map((B)=>B===","?"":typeof B==="string"?B:this.generate(B,"value")).join(", "),I=Q.map((B)=>B===","?"":typeof B==="string"?B:this.generate(B,"value")).join(", ");this.helpers.add("slice"),J.forEach((B)=>{if(B===","||B==="...")return;if(typeof B==="string")this.programVars.add(B);else if(this.is(B,"...")&&typeof B[1]==="string")this.programVars.add(B[1])});let H=J[R],P=this.is(H,"...")?H[1]:null,E=[];if(G)E.push(`[${G}] = ${O}`);if(P)E.push(`[...${P}] = ${O}.slice(${R}, -${q})`);return E.push(`[${I}] = slice.call(${O}, -${q})`),E.join(", ")}}}if(F==="statement"&&$==="="&&Array.isArray(u)&&(u[0]==="||"||u[0]==="&&")&&u.length===3){let[R,J,Q]=u;if(this.is(Q,"if")&&Q.length===3){let[,q,O]=Q,M=Array.isArray(O)&&O.length===1?O[0]:O,G=[R,J,M],I=this.generate(f,"value"),H=this.generate(q,"value"),P=this.generate(G,"value");return`if (${H}) ${I} = ${P}`}}if(F==="statement"&&$==="="&&Array.isArray(u)&&u.length===3){let[R,J,Q]=u,q=Array.isArray(Q)&&Q.length===1&&(!Array.isArray(Q[0])||Q[0][0]!=="block");if(R==="if"&&q){let O=Array.isArray(Q)&&Q.length===1?Q[0]:Q,M=this.generate(f,"value"),G=this.unwrapLogical(this.generate(J,"value")),I=this.generate(O,"value");return`if (${G}) ${M} = ${I}`}}let w;if(f instanceof String&&V(f,"await")!==void 0)w=j(f);else if(typeof f==="string"&&this.reactiveVars?.has(f))w=`${f}.value`;else w=this.generate(f,"value");let z=this.generate(u,"value");if(!this.is(u,"object"))z=this.unwrap(z);let K=F==="value",D=F==="statement"&&this.is(f,"object");if(K||D)return`(${w} ${A} ${z})`;return`${w} ${A} ${z}`}generatePropertyAccess($,U,F,W){let[f,u]=U;if(this._atParamMap&&f==="this"){let Z=this._atParamMap.get(j(u));if(Z)return Z}let A=this.generate(f,"value"),_=g.NUMBER_LITERAL_RE.test(A)||A.startsWith("await ")||(this.is(f,"object")||this.is(f,"yield"))?`(${A})`:A;if(V(u,"await")===!0)return`await ${_}.${j(u)}()`;if(V(u,"predicate"))return`(${_}.${j(u)} != null)`;return`${_}.${j(u)}`}generateOptionalProperty($,U){let[F,W]=U;return`${this.generate(F,"value")}?.${W}`}generateRegexIndex($,U){let[F,W,f]=U;this.helpers.add("toMatchable"),this.programVars.add("_");let u=this.generate(F,"value"),A=this.generate(W,"value"),Y=f!==null?this.generate(f,"value"):"0",_=A.includes("/m")?", true":"";return`(_ = toMatchable(${u}${_}).match(${A})) && _[${Y}]`}generateIndexAccess($,U){let[F,W]=U;if(this.is(W,"..")||this.is(W,"...")){let f=W[0]==="..",u=this.generate(F,"value"),[A,Y]=W.slice(1),_=(X)=>{if(X===null)return null;let K=j(X)??X;if(typeof K==="number")return K;if(typeof K==="string"&&/^\d+$/.test(K))return+K;if(Array.isArray(X)&&X[0]==="-"&&X.length===2){let D=j(X[1])??X[1];if(typeof D==="number")return-D;if(typeof D==="string"&&/^\d+$/.test(D))return-D}return null},Z=(X,K,D)=>{let R=_(D);if(R!==null&&R!==-1)return`${u}.slice(${X}, ${R+1})`;return`${u}.slice(${X}, +${K} + 1 || 9e9)`};if(A===null&&Y===null)return`${u}.slice()`;if(A===null){if(f&&this.is(Y,"-",1)&&(j(Y[1])??Y[1])==1)return`${u}.slice(0)`;let X=this.generate(Y,"value");return f?Z("0",X,Y):`${u}.slice(0, ${X})`}if(Y===null)return`${u}.slice(${this.generate(A,"value")})`;let w=this.generate(A,"value");if(f&&this.is(Y,"-",1)&&(j(Y[1])??Y[1])==1)return`${u}.slice(${w})`;let z=this.generate(Y,"value");return f?Z(w,z,Y):`${u}.slice(${w}, ${z})`}if(this.is(W,"-",1)){let f=j(W[1])??W[1];if(typeof f==="number"||typeof f==="string"&&/^\d+$/.test(f))return`${this.generate(F,"value")}.at(-${f})`}return`${this.generate(F,"value")}[${this.unwrap(this.generate(W,"value"))}]`}generateOptIndex($,U){let[F,W]=U;if(this.is(W,"-",1)){let f=j(W[1])??W[1];if(typeof f==="number"||typeof f==="string"&&/^\d+$/.test(f))return`${this.generate(F,"value")}?.at(-${f})`}return`${this.generate(F,"value")}?.[${this.generate(W,"value")}]`}generateOptCall($,U){let[F,...W]=U;return`${this.generate(F,"value")}?.(${W.map((f)=>this.generate(f,"value")).join(", ")})`}generateDef($,U,F,W){let[f,u,A]=U,Y=V(f,"await")===!0,_=j(f),Z=this.generateParamList(u),w=this.generateFunctionBody(A,u,Y),z=this.containsAwait(A),X=this.containsYield(A);return`${z?"async ":""}function${X?"*":""} ${_}(${Z}) ${w}`}generateThinArrow($,U,F,W){let[f,u]=U;if((!f||Array.isArray(f)&&f.length===0)&&this.containsIt(u))f=["it"];let A=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let Y=this.generateParamList(f),_=this.generateFunctionBody(u,f,A),Z=this.containsAwait(u),w=this.containsYield(u),z=`${Z?"async ":""}function${w?"*":""}(${Y}) ${_}`;return F==="value"?`(${z})`:z}generateFatArrow($,U,F,W){let[f,u]=U;if((!f||Array.isArray(f)&&f.length===0)&&this.containsIt(u))f=["it"];let A=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let Y=this.generateParamList(f),Z=f.length===1&&typeof f[0]==="string"&&!Y.includes("=")&&!Y.includes("...")&&!Y.includes("[")&&!Y.includes("{")?Y:`(${Y})`,z=this.containsAwait(u)?"async ":"";if(!A){if(this.is(u,"block")&&u.length===2){let K=u[1];if(!Array.isArray(K)||K[0]!=="return"){let D=this.generate(K,"value");if(D[0]==="{")D=`(${D})`;return`${z}${Z} => ${D}`}}if(!Array.isArray(u)||u[0]!=="block"){let K=this.generate(u,"value");if(K[0]==="{")K=`(${K})`;return`${z}${Z} => ${K}`}}let X=this.generateFunctionBody(u,f,A);return`${z}${Z} => ${X}`}generateReturn($,U,F,W){if(U.length===0)return"return";let[f]=U;if(this.sideEffectOnly)return"return";if(this.is(f,"if")){let[,u,A,...Y]=f;if(Y.length===0){let _=Array.isArray(A)&&A.length===1?A[0]:A;return`if (${this.generate(u,"value")}) return ${this.generate(_,"value")}`}}if(this.is(f,"new")&&Array.isArray(f[1])&&f[1][0]==="if"){let[,u,A]=f[1],Y=Array.isArray(A)&&A.length===1?A[0]:A;return`if (${this.generate(u,"value")}) return ${this.generate(["new",Y],"value")}`}return`return ${this.generate(f,"value")}`}generateState($,U){let[F,W]=U;this.usesReactivity=!0;let f=j(F)??F;if(!this.reactiveVars)this.reactiveVars=new Set;return this.reactiveVars.add(f),`const ${f} = __state(${this.generate(W,"value")})`}generateComputed($,U){let[F,W]=U;if(this.usesReactivity=!0,!this.reactiveVars)this.reactiveVars=new Set;let f=j(F)??F;if(this.reactiveVars.add(f),this.is(W,"block")&&W.length>2)return`const ${f} = __computed(() => ${this.generateFunctionBody(W)})`;return`const ${f} = __computed(() => ${this.generate(W,"value")})`}generateReadonly($,U){let[F,W]=U;return`const ${j(F)??F} = ${this.generate(W,"value")}`}generateEffect($,U){let[F,W]=U;this.usesReactivity=!0;let f;if(this.is(W,"block"))f=this.generateFunctionBody(W);else if(this.is(W,"->")||this.is(W,"=>")){let A=this.generate(W,"value");if(F)return`const ${j(F)??this.generate(F,"value")} = __effect(${A})`;return`__effect(${A})`}else f=`{ ${this.generate(W,"value")}; }`;let u=`__effect(() => ${f})`;if(F)return`const ${j(F)??this.generate(F,"value")} = ${u}`;return u}generateBreak(){return"break"}generateContinue(){return"continue"}generateExistential($,U){return`(${this.generate(U[0],"value")} != null)`}generateDefined($,U){return`(${this.generate(U[0],"value")} !== undefined)`}generatePresence($,U){return`(${this.generate(U[0],"value")} ? true : undefined)`}generateTernary($,U,F){let[W,f,u]=U;if((f?.[0]?.valueOf?.()??f?.[0])==="="&&Array.isArray(f)){let Y=this.generate(f[1],"value"),_=this.generate(f[2],"value"),Z=this.generate(u,"value");return`${Y} = (${this.unwrap(this.generate(W,"value"))} ? ${_} : ${Z})`}return`(${this.unwrap(this.generate(W,"value"))} ? ${this.generate(f,"value")} : ${this.generate(u,"value")})`}generatePipe($,U){let[F,W]=U,f=this.generate(F,"value");if(Array.isArray(W)&&W.length>1){let u=W[0];if(Array.isArray(u)||typeof u==="string"&&/^[a-zA-Z_$]/.test(u)){let Y=this.generate(u,"value"),_=W.slice(1).map((Z)=>this.generate(Z,"value"));return`${Y}(${f}, ${_.join(", ")})`}}return`${this.generate(W,"value")}(${f})`}generateLoop($,U){return`while (true) ${this.generateLoopBody(U[0])}`}generateLoopN($,U){let[F,W]=U;return`for (let it = 0; it < ${this.generate(F,"value")}; it++) ${this.generateLoopBody(W)}`}generateAwait($,U){return`await ${this.generate(U[0],"value")}`}generateYield($,U){return U.length===0?"yield":`yield ${this.generate(U[0],"value")}`}generateYieldFrom($,U){return`yield* ${this.generate(U[0],"value")}`}generateIf($,U,F,W){let[f,u,...A]=U;return F==="value"?this.generateIfAsExpression(f,u,A):this.generateIfAsStatement(f,u,A)}generateForIn($,U,F,W){let[f,u,A,Y,_]=U;if(F==="value"&&this.comprehensionDepth===0){let J=["for-in",f,u,A];return this.generate(["comprehension",_,[J],Y?[Y]:[]],F)}let Z=Array.isArray(f)?f:[f],w=Z.length===0,[z,X]=w?["_i",null]:Z,K=this.is(z,"array")||this.is(z,"object")?this.generateDestructuringPattern(z):z;if(A&&A!==null){let J=this.generate(u,"value"),Q=X||"_i",q=this.generate(A,"value"),O=this.is(A,"-",1),M=O&&(A[1]==="1"||A[1]===1||j(A[1])==="1"),G=!O&&(A==="1"||A===1||j(A)==="1"),I;if(M)I=`for (let ${Q} = ${J}.length - 1; ${Q} >= 0; ${Q}--) `;else if(G)I=`for (let ${Q} = 0; ${Q} < ${J}.length; ${Q}++) `;else if(O)I=`for (let ${Q} = ${J}.length - 1; ${Q} >= 0; ${Q} += ${q}) `;else I=`for (let ${Q} = 0; ${Q} < ${J}.length; ${Q} += ${q}) `;if(this.is(_,"block")){let H=_.slice(1);this.indentLevel++;let P=[];if(!w)P.push(`const ${K} = ${J}[${Q}];`);if(Y)P.push(`if (${this.generate(Y,"value")}) {`),this.indentLevel++,P.push(...this.formatStatements(H)),this.indentLevel--,P.push(this.indent()+"}");else P.push(...H.map((E)=>this.addSemicolon(E,this.generate(E,"statement"))));return this.indentLevel--,I+`{
|
|
342
|
-
${
|
|
341
|
+
}`;return u}generateBinaryOp($,U,W,F){if(($==="+"||$==="-")&&U.length===1)return`(${$}${this.generate(U[0],"value")})`;let[u,f]=U;if($==="*"){let Y=u?.valueOf?.()??u;if(typeof Y==="string"&&/^["']/.test(Y))return`${this.generate(u,"value")}.repeat(${this.generate(f,"value")})`}let A=new Set(["<",">","<=",">="]);if(A.has($)&&Array.isArray(u)){let Y=u[0]?.valueOf?.()??u[0];if(A.has(Y)){let _=this.generate(u[1],"value"),w=this.generate(u[2],"value"),R=this.generate(f,"value");return`((${_} ${Y} ${w}) && (${w} ${$} ${R}))`}}if($==="!?"){let Y=this.generate(u,"value"),_=this.generate(f,"value");return`(${Y} !== undefined ? ${Y} : ${_})`}if($==="==")$="===";if($==="!=")$="!==";return`(${this.generate(u,"value")} ${$} ${this.generate(f,"value")})`}generateModulo($,U){let[W,F]=U;return this.helpers.add("modulo"),`modulo(${this.generate(W,"value")}, ${this.generate(F,"value")})`}generateModuloAssign($,U){let[W,F]=U;this.helpers.add("modulo");let u=this.generate(W,"value"),f=this.generate(F,"value");return`${u} = modulo(${u}, ${f})`}generateFloorDiv($,U){let[W,F]=U;return`Math.floor(${this.generate(W,"value")} / ${this.generate(F,"value")})`}generateFloorDivAssign($,U){let[W,F]=U,u=this.generate(W,"value"),f=this.generate(F,"value");return`${u} = Math.floor(${u} / ${f})`}generateAssignment($,U,W,F){let[u,f]=U,A=$==="?="?"??=":$,Y=this.is(f,"->")||this.is(f,"=>")||this.is(f,"def");if(u instanceof String&&C(u,"await")!==void 0&&!Y){let Q=C(u,"await")===!0?"!":"&";throw Error(`Cannot use ${Q} sigil in variable declaration '${j(u)}'.`)}if(u instanceof String&&C(u,"await")===!0&&Y)this.nextFunctionIsVoid=!0;let _=this.is(u,"array",0),w=this.is(u,"object",0);if(_||w){let Q=this.generate(f,"value");return w&&W==="statement"?`(${Q})`:Q}if(Array.isArray(f)&&A==="="&&f[0]==="control"){let[,Q,Z,X]=f,D=j(Q),O=X[0]==="return",q=this.generate(u,"value"),G=this.generate(Z,"value"),P=X.length>1?X[1]:null,H=O?P?`return ${this.generate(P,"value")}`:"return":P?`throw ${this.generate(P,"value")}`:"throw new Error()";if(W==="value"){if(D==="??")return`(() => { const __v = ${G}; if (__v == null) ${H}; return (${q} = __v); })()`;if(D==="||")return`(() => { const __v = ${G}; if (!__v) ${H}; return (${q} = __v); })()`;return`(() => { const __v = ${G}; if (__v) ${H}; return (${q} = __v); })()`}if(D==="??")return`if ((${q} = ${G}) == null) ${H}`;if(D==="||")return`if (!(${q} = ${G})) ${H}`;return`if ((${q} = ${G})) ${H}`}if(this.is(u,"array")){let Q=u.slice(1).findIndex((Z)=>this.is(Z,"...")||Z==="...");if(Q!==-1&&Q<u.length-2){let Z=u.slice(1),X=Z.slice(Q+1),D=X.length;if(D>0){let O=this.generate(f,"value"),G=Z.slice(0,Q).map((B)=>B===","?"":typeof B==="string"?B:this.generate(B,"value")).join(", "),P=X.map((B)=>B===","?"":typeof B==="string"?B:this.generate(B,"value")).join(", ");this.helpers.add("slice"),Z.forEach((B)=>{if(B===","||B==="...")return;if(typeof B==="string")this.programVars.add(B);else if(this.is(B,"...")&&typeof B[1]==="string")this.programVars.add(B[1])});let H=Z[Q],I=this.is(H,"...")?H[1]:null,E=[];if(G)E.push(`[${G}] = ${O}`);if(I)E.push(`[...${I}] = ${O}.slice(${Q}, -${D})`);return E.push(`[${P}] = slice.call(${O}, -${D})`),E.join(", ")}}}if(W==="statement"&&$==="="&&Array.isArray(f)&&(f[0]==="||"||f[0]==="&&")&&f.length===3){let[Q,Z,X]=f;if(this.is(X,"if")&&X.length===3){let[,D,O]=X,q=Array.isArray(O)&&O.length===1?O[0]:O,G=[Q,Z,q],P=this.generate(u,"value"),H=this.generate(D,"value"),I=this.generate(G,"value");return`if (${H}) ${P} = ${I}`}}if(W==="statement"&&$==="="&&Array.isArray(f)&&f.length===3){let[Q,Z,X]=f,D=Array.isArray(X)&&X.length===1&&(!Array.isArray(X[0])||X[0][0]!=="block");if(Q==="if"&&D){let O=Array.isArray(X)&&X.length===1?X[0]:X,q=this.generate(u,"value"),G=this.unwrapLogical(this.generate(Z,"value")),P=this.generate(O,"value");return`if (${G}) ${q} = ${P}`}}let R;if(u instanceof String&&C(u,"await")!==void 0)R=j(u);else if(typeof u==="string"&&this.reactiveVars?.has(u))R=`${u}.value`;else R=this.generate(u,"value");let z=this.generate(f,"value");if(!this.is(f,"object"))z=this.unwrap(z);let J=W==="value",M=W==="statement"&&this.is(u,"object");if(J||M)return`(${R} ${A} ${z})`;return`${R} ${A} ${z}`}generatePropertyAccess($,U,W,F){let[u,f]=U;if(this._atParamMap&&u==="this"){let w=this._atParamMap.get(j(f));if(w)return w}let A=this.generate(u,"value"),_=v.NUMBER_LITERAL_RE.test(A)||A.startsWith("await ")||(this.is(u,"object")||this.is(u,"yield"))?`(${A})`:A;if(C(f,"await")===!0)return`await ${_}.${j(f)}()`;if(C(f,"predicate"))return`(${_}.${j(f)} != null)`;return`${_}.${j(f)}`}generateOptionalProperty($,U){let[W,F]=U;return`${this.generate(W,"value")}?.${F}`}generateRegexIndex($,U){let[W,F,u]=U;this.helpers.add("toMatchable"),this.programVars.add("_");let f=this.generate(W,"value"),A=this.generate(F,"value"),Y=u!==null?this.generate(u,"value"):"0",_=A.includes("/m")?", true":"";return`(_ = toMatchable(${f}${_}).match(${A})) && _[${Y}]`}generateIndexAccess($,U){let[W,F]=U;if(this.is(F,"..")||this.is(F,"...")){let u=F[0]==="..",f=this.generate(W,"value"),[A,Y]=F.slice(1),_=(K)=>{if(K===null)return null;let J=j(K)??K;if(typeof J==="number")return J;if(typeof J==="string"&&/^\d+$/.test(J))return+J;if(Array.isArray(K)&&K[0]==="-"&&K.length===2){let M=j(K[1])??K[1];if(typeof M==="number")return-M;if(typeof M==="string"&&/^\d+$/.test(M))return-M}return null},w=(K,J,M)=>{let Q=_(M);if(Q!==null&&Q!==-1)return`${f}.slice(${K}, ${Q+1})`;return`${f}.slice(${K}, +${J} + 1 || 9e9)`};if(A===null&&Y===null)return`${f}.slice()`;if(A===null){if(u&&this.is(Y,"-",1)&&(j(Y[1])??Y[1])==1)return`${f}.slice(0)`;let K=this.generate(Y,"value");return u?w("0",K,Y):`${f}.slice(0, ${K})`}if(Y===null)return`${f}.slice(${this.generate(A,"value")})`;let R=this.generate(A,"value");if(u&&this.is(Y,"-",1)&&(j(Y[1])??Y[1])==1)return`${f}.slice(${R})`;let z=this.generate(Y,"value");return u?w(R,z,Y):`${f}.slice(${R}, ${z})`}if(this.is(F,"-",1)){let u=j(F[1])??F[1];if(typeof u==="number"||typeof u==="string"&&/^\d+$/.test(u))return`${this.generate(W,"value")}.at(-${u})`}return`${this.generate(W,"value")}[${this.unwrap(this.generate(F,"value"))}]`}generateOptIndex($,U){let[W,F]=U;if(this.is(F,"-",1)){let u=j(F[1])??F[1];if(typeof u==="number"||typeof u==="string"&&/^\d+$/.test(u))return`${this.generate(W,"value")}?.at(-${u})`}return`${this.generate(W,"value")}?.[${this.generate(F,"value")}]`}generateOptCall($,U){let[W,...F]=U;return`${this.generate(W,"value")}?.(${F.map((u)=>this.generate(u,"value")).join(", ")})`}generateDef($,U,W,F){let[u,f,A]=U,Y=C(u,"await")===!0,_=j(u),w=this.generateParamList(f),R=this.generateFunctionBody(A,f,Y),z=this.containsAwait(A),K=this.containsYield(A);return`${z?"async ":""}function${K?"*":""} ${_}(${w}) ${R}`}generateThinArrow($,U,W,F){let[u,f]=U;if((!u||Array.isArray(u)&&u.length===0)&&this.containsIt(f))u=["it"];let A=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let Y=this.generateParamList(u),_=this.generateFunctionBody(f,u,A),w=this.containsAwait(f),R=this.containsYield(f),z=`${w?"async ":""}function${R?"*":""}(${Y}) ${_}`;return W==="value"?`(${z})`:z}generateFatArrow($,U,W,F){let[u,f]=U;if((!u||Array.isArray(u)&&u.length===0)&&this.containsIt(f))u=["it"];let A=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let Y=this.generateParamList(u),w=u.length===1&&typeof u[0]==="string"&&!Y.includes("=")&&!Y.includes("...")&&!Y.includes("[")&&!Y.includes("{")?Y:`(${Y})`,z=this.containsAwait(f)?"async ":"";if(!A){if(this.is(f,"block")&&f.length===2){let J=f[1];if(!Array.isArray(J)||J[0]!=="return"){let M=this.generate(J,"value");if(M[0]==="{")M=`(${M})`;return`${z}${w} => ${M}`}}if(!Array.isArray(f)||f[0]!=="block"){let J=this.generate(f,"value");if(J[0]==="{")J=`(${J})`;return`${z}${w} => ${J}`}}let K=this.generateFunctionBody(f,u,A);return`${z}${w} => ${K}`}generateReturn($,U,W,F){if(U.length===0)return"return";let[u]=U;if(this.sideEffectOnly)return"return";if(this.is(u,"if")){let[,f,A,...Y]=u;if(Y.length===0){let _=Array.isArray(A)&&A.length===1?A[0]:A;return`if (${this.generate(f,"value")}) return ${this.generate(_,"value")}`}}if(this.is(u,"new")&&Array.isArray(u[1])&&u[1][0]==="if"){let[,f,A]=u[1],Y=Array.isArray(A)&&A.length===1?A[0]:A;return`if (${this.generate(f,"value")}) return ${this.generate(["new",Y],"value")}`}return`return ${this.generate(u,"value")}`}generateState($,U){let[W,F]=U;this.usesReactivity=!0;let u=j(W)??W;if(!this.reactiveVars)this.reactiveVars=new Set;return this.reactiveVars.add(u),`const ${u} = __state(${this.generate(F,"value")})`}generateComputed($,U){let[W,F]=U;if(this.usesReactivity=!0,!this.reactiveVars)this.reactiveVars=new Set;let u=j(W)??W;if(this.reactiveVars.add(u),this.is(F,"block")&&F.length>2)return`const ${u} = __computed(() => ${this.generateFunctionBody(F)})`;return`const ${u} = __computed(() => ${this.generate(F,"value")})`}generateReadonly($,U){let[W,F]=U;return`const ${j(W)??W} = ${this.generate(F,"value")}`}generateEffect($,U){let[W,F]=U;this.usesReactivity=!0;let u;if(this.is(F,"block"))u=this.generateFunctionBody(F);else if(this.is(F,"->")||this.is(F,"=>")){let A=this.generate(F,"value");if(W)return`const ${j(W)??this.generate(W,"value")} = __effect(${A})`;return`__effect(${A})`}else u=`{ ${this.generate(F,"value")}; }`;let f=`__effect(() => ${u})`;if(W)return`const ${j(W)??this.generate(W,"value")} = ${f}`;return f}generateBreak(){return"break"}generateContinue(){return"continue"}generateExistential($,U){return`(${this.generate(U[0],"value")} != null)`}generateDefined($,U){return`(${this.generate(U[0],"value")} !== undefined)`}generatePresence($,U){return`(${this.generate(U[0],"value")} ? true : undefined)`}generateTernary($,U,W){let[F,u,f]=U;if((u?.[0]?.valueOf?.()??u?.[0])==="="&&Array.isArray(u)){let Y=this.generate(u[1],"value"),_=this.generate(u[2],"value"),w=this.generate(f,"value");return`${Y} = (${this.unwrap(this.generate(F,"value"))} ? ${_} : ${w})`}return`(${this.unwrap(this.generate(F,"value"))} ? ${this.generate(u,"value")} : ${this.generate(f,"value")})`}generatePipe($,U){let[W,F]=U,u=this.generate(W,"value");if(Array.isArray(F)&&F.length>1){let f=F[0];if(Array.isArray(f)||typeof f==="string"&&/^[a-zA-Z_$]/.test(f)){let Y=this.generate(f,"value"),_=F.slice(1).map((w)=>this.generate(w,"value"));return`${Y}(${u}, ${_.join(", ")})`}}return`${this.generate(F,"value")}(${u})`}generateLoop($,U){return`while (true) ${this.generateLoopBody(U[0])}`}generateLoopN($,U){let[W,F]=U;return`for (let it = 0; it < ${this.generate(W,"value")}; it++) ${this.generateLoopBody(F)}`}generateAwait($,U){return`await ${this.generate(U[0],"value")}`}generateYield($,U){return U.length===0?"yield":`yield ${this.generate(U[0],"value")}`}generateYieldFrom($,U){return`yield* ${this.generate(U[0],"value")}`}generateIf($,U,W,F){let[u,f,...A]=U;return W==="value"?this.generateIfAsExpression(u,f,A):this.generateIfAsStatement(u,f,A)}generateForIn($,U,W,F){let[u,f,A,Y,_]=U;if(W==="value"&&this.comprehensionDepth===0){let Z=["for-in",u,f,A];return this.generate(["comprehension",_,[Z],Y?[Y]:[]],W)}let w=Array.isArray(u)?u:[u],R=w.length===0,[z,K]=R?["_i",null]:w,J=this.is(z,"array")||this.is(z,"object")?this.generateDestructuringPattern(z):z;if(A&&A!==null){let Z=this.generate(f,"value"),X=K||"_i",D=this.generate(A,"value"),O=this.is(A,"-",1),q=O&&(A[1]==="1"||A[1]===1||j(A[1])==="1"),G=!O&&(A==="1"||A===1||j(A)==="1"),P;if(q)P=`for (let ${X} = ${Z}.length - 1; ${X} >= 0; ${X}--) `;else if(G)P=`for (let ${X} = 0; ${X} < ${Z}.length; ${X}++) `;else if(O)P=`for (let ${X} = ${Z}.length - 1; ${X} >= 0; ${X} += ${D}) `;else P=`for (let ${X} = 0; ${X} < ${Z}.length; ${X} += ${D}) `;if(this.is(_,"block")){let H=_.slice(1);this.indentLevel++;let I=[];if(!R)I.push(`const ${J} = ${Z}[${X}];`);if(Y)I.push(`if (${this.generate(Y,"value")}) {`),this.indentLevel++,I.push(...this.formatStatements(H)),this.indentLevel--,I.push(this.indent()+"}");else I.push(...H.map((E)=>this.addSemicolon(E,this.generate(E,"statement"))));return this.indentLevel--,P+`{
|
|
342
|
+
${I.map((E)=>this.indent()+E).join(`
|
|
343
343
|
`)}
|
|
344
|
-
${this.indent()}}`}if(
|
|
345
|
-
`,this.indentLevel++,
|
|
346
|
-
`,Y)
|
|
347
|
-
`,this.indentLevel++,
|
|
344
|
+
${this.indent()}}`}if(R)return Y?P+`{ if (${this.generate(Y,"value")}) ${this.generate(_,"statement")}; }`:P+`{ ${this.generate(_,"statement")}; }`;return Y?P+`{ const ${J} = ${Z}[${X}]; if (${this.generate(Y,"value")}) ${this.generate(_,"statement")}; }`:P+`{ const ${J} = ${Z}[${X}]; ${this.generate(_,"statement")}; }`}if(K){let Z=this.generate(f,"value"),X=`for (let ${K} = 0; ${K} < ${Z}.length; ${K}++) `;if(this.is(_,"block")){if(X+=`{
|
|
345
|
+
`,this.indentLevel++,X+=this.indent()+`const ${J} = ${Z}[${K}];
|
|
346
|
+
`,Y)X+=this.indent()+`if (${this.unwrap(this.generate(Y,"value"))}) {
|
|
347
|
+
`,this.indentLevel++,X+=this.formatStatements(_.slice(1)).join(`
|
|
348
348
|
`)+`
|
|
349
|
-
`,this.indentLevel--,
|
|
350
|
-
`;else
|
|
349
|
+
`,this.indentLevel--,X+=this.indent()+`}
|
|
350
|
+
`;else X+=this.formatStatements(_.slice(1)).join(`
|
|
351
351
|
`)+`
|
|
352
|
-
`;this.indentLevel--,
|
|
353
|
-
${
|
|
352
|
+
`;this.indentLevel--,X+=this.indent()+"}"}else X+=Y?`{ const ${J} = ${Z}[${K}]; if (${this.unwrap(this.generate(Y,"value"))}) ${this.generate(_,"statement")}; }`:`{ const ${J} = ${Z}[${K}]; ${this.generate(_,"statement")}; }`;return X}let M=Array.isArray(f)&&f[0];if(M instanceof String)M=j(M);if(M===".."||M==="..."){let Z=M==="...",[X,D]=f.slice(1),O=(q)=>typeof q==="number"||typeof q==="string"&&!q.includes("(")||q instanceof String&&!j(q).includes("(")||this.is(q,".");if(O(X)&&O(D)){let q=this.generate(X,"value"),G=this.generate(D,"value"),P=Z?"<":"<=",H=A?`${J} += ${this.generate(A,"value")}`:`${J}++`,I=`for (let ${J} = ${q}; ${J} ${P} ${G}; ${H}) `;return I+=Y?this.generateLoopBodyWithGuard(_,Y):this.generateLoopBody(_),I}}let Q=`for (const ${J} of ${this.generate(f,"value")}) `;return Q+=Y?this.generateLoopBodyWithGuard(_,Y):this.generateLoopBody(_),Q}generateForOf($,U,W,F){let[u,f,A,Y,_]=U;if(W==="value"&&this.comprehensionDepth===0){let J=["for-of",u,f,A];return this.generate(["comprehension",_,[J],Y?[Y]:[]],W)}let[w,R]=Array.isArray(u)?u:[u],z=this.generate(f,"value"),K=`for (const ${w} in ${z}) `;if(A&&!R&&!Y){if(this.is(_,"block")){this.indentLevel++;let J=[`if (!Object.hasOwn(${z}, ${w})) continue;`,..._.slice(1).map((M)=>this.addSemicolon(M,this.generate(M,"statement")))];return this.indentLevel--,K+`{
|
|
353
|
+
${J.map((M)=>this.indent()+M).join(`
|
|
354
354
|
`)}
|
|
355
|
-
${this.indent()}}`}return
|
|
356
|
-
${
|
|
355
|
+
${this.indent()}}`}return K+`{ if (!Object.hasOwn(${z}, ${w})) continue; ${this.generate(_,"statement")}; }`}if(R){if(this.is(_,"block")){let M=_.slice(1);this.indentLevel++;let Q=[];if(A)Q.push(`if (!Object.hasOwn(${z}, ${w})) continue;`);if(Q.push(`const ${R} = ${z}[${w}];`),Y)Q.push(`if (${this.generate(Y,"value")}) {`),this.indentLevel++,Q.push(...M.map((Z)=>this.addSemicolon(Z,this.generate(Z,"statement")))),this.indentLevel--,Q.push(this.indent()+"}");else Q.push(...M.map((Z)=>this.addSemicolon(Z,this.generate(Z,"statement"))));return this.indentLevel--,K+`{
|
|
356
|
+
${Q.map((Z)=>this.indent()+Z).join(`
|
|
357
357
|
`)}
|
|
358
|
-
${this.indent()}}`}let
|
|
359
|
-
${
|
|
358
|
+
${this.indent()}}`}let J="";if(A)J+=`if (!Object.hasOwn(${z}, ${w})) continue; `;if(J+=`const ${R} = ${z}[${w}]; `,Y)J+=`if (${this.generate(Y,"value")}) `;return J+=`${this.generate(_,"statement")};`,K+`{ ${J} }`}return K+=Y?this.generateLoopBodyWithGuard(_,Y):this.generateLoopBody(_),K}generateForAs($,U,W,F){let u=Array.isArray(U[0])?U[0]:[U[0]],[f]=u,A=U[1],Y=U[2],_=U[3],w=U[4],R=!1,z=[];if(this.is(f,"array")){let Z=f.slice(1),X=Z.findIndex((D)=>this.is(D,"...")||D==="...");if(X!==-1&&X<Z.length-1){R=!0;let D=Z.slice(X+1),O=D.length,q=Z.slice(0,X),G=Z[X],P=this.is(G,"...")?G[1]:"_rest",H=q.map((B)=>B===","?"":typeof B==="string"?B:this.generate(B,"value")).join(", "),I=H?`${H}, ...${P}`:`...${P}`,E=D.map((B)=>B===","?"":typeof B==="string"?B:this.generate(B,"value")).join(", ");z.push(`[${I}] = _item`),z.push(`[${E}] = ${P}.splice(-${O})`),this.helpers.add("slice"),Z.forEach((B)=>{if(B===","||B==="...")return;if(typeof B==="string")this.programVars.add(B);else if(this.is(B,"...")&&typeof B[1]==="string")this.programVars.add(B[1])})}}let K=this.generate(A,"value"),J=Y?"await ":"",M;if(R)M="_item";else if(this.is(f,"array")||this.is(f,"object"))M=this.generateDestructuringPattern(f);else M=f;let Q=`for ${J}(const ${M} of ${K}) `;if(R&&z.length>0){let Z=this.unwrapBlock(w),X=this.withIndent(()=>[...z.map((D)=>this.indent()+D+";"),...this.formatStatements(Z)]);Q+=`{
|
|
359
|
+
${X.join(`
|
|
360
360
|
`)}
|
|
361
|
-
${this.indent()}}`}else
|
|
361
|
+
${this.indent()}}`}else Q+=_?this.generateLoopBodyWithGuard(w,_):this.generateLoopBody(w);return Q}generateWhile($,U){let W=U[0],F=U.length===3?U[1]:null,u=U[U.length-1];return`while (${this.unwrap(this.generate(W,"value"))}) `+(F?this.generateLoopBodyWithGuard(u,F):this.generateLoopBody(u))}generateRange($,U){if($==="..."){if(U.length===1)return`...${this.generate(U[0],"value")}`;let[A,Y]=U,_=this.generate(A,"value"),w=this.generate(Y,"value");return`((s, e) => Array.from({length: Math.max(0, Math.abs(e - s))}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${_}, ${w})`}let[W,F]=U,u=this.generate(W,"value"),f=this.generate(F,"value");return`((s, e) => Array.from({length: Math.abs(e - s) + 1}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${u}, ${f})`}generateNot($,U){let[W]=U;if(typeof W==="string"||W instanceof String)return`!${this.generate(W,"value")}`;if(Array.isArray(W)){if([".","?.","[]","optindex","optcall"].includes(W[0]))return`!${this.generate(W,"value")}`}let F=this.generate(W,"value");return F.startsWith("(")?`!${F}`:`(!${F})`}generateBitwiseNot($,U){return`(~${this.generate(U[0],"value")})`}generateIncDec($,U){let[W,F]=U,u=this.generate(W,"value");return F?`(${u}${$})`:`(${$}${u})`}generateTypeof($,U){return`typeof ${this.generate(U[0],"value")}`}generateDelete($,U){return`(delete ${this.generate(U[0],"value")})`}generateInstanceof($,U,W,F){let[u,f]=U,A=C(F[0],"invert"),Y=`(${this.generate(u,"value")} instanceof ${this.generate(f,"value")})`;return A?`(!${Y})`:Y}generateIn($,U,W,F){let[u,f]=U,A=this.generate(u,"value"),Y=C(F[0],"invert");if(this.is(f,"object")){let R=`(${A} in ${this.generate(f,"value")})`;return Y?`(!${R})`:R}let _=this.generate(f,"value"),w=`(Array.isArray(${_}) || typeof ${_} === 'string' ? ${_}.includes(${A}) : (${A} in ${_}))`;return Y?`(!${w})`:w}generateOf($,U,W,F){let[u,f]=U,A=this.generate(u,"value"),Y=this.generate(f,"value"),_=C(F[0],"invert"),w=`(${A} in ${Y})`;return _?`(!${w})`:w}generateRegexMatch($,U){let[W,F]=U;this.helpers.add("toMatchable"),this.programVars.add("_");let u=this.generate(F,"value"),f=u.includes("/m")?", true":"";return`(_ = toMatchable(${this.generate(W,"value")}${f}).match(${u}))`}generateNew($,U){let[W]=U;if(this.is(W,".")||this.is(W,"?.")){let[F,u,f]=W;if(Array.isArray(u)&&!u[0].startsWith)return`(${this.generate(["new",u],"value")}).${f}`;return`new ${this.generate(u,"value")}.${f}`}if(Array.isArray(W)){let[F,...u]=W;return`new ${this.generate(F,"value")}(${u.map((f)=>this.unwrap(this.generate(f,"value"))).join(", ")})`}return`new ${this.generate(W,"value")}()`}generateLogicalAnd($,U,W,F){let u=this.flattenBinaryChain(F).slice(1);if(u.length===0)return"true";if(u.length===1)return this.generate(u[0],"value");return`(${u.map((f)=>this.generate(f,"value")).join(" && ")})`}generateLogicalOr($,U,W,F){let u=this.flattenBinaryChain(F).slice(1);if(u.length===0)return"true";if(u.length===1)return this.generate(u[0],"value");return`(${u.map((f)=>this.generate(f,"value")).join(" || ")})`}generateArray($,U){let W=U.length>0&&U[U.length-1]===",",F=U.map((u)=>{if(u===",")return"";if(u==="...")return"";if(this.is(u,"..."))return`...${this.generate(u[1],"value")}`;return this.generate(u,"value")}).join(", ");return W?`[${F},]`:`[${F}]`}generateObject($,U,W){if(U.length===1&&Array.isArray(U[0])&&Array.isArray(U[0][1])&&U[0][1][0]==="comprehension"){let[u,f]=U[0],[,A,Y,_]=f;return this.generate(["object-comprehension",u,A,Y,_],W)}return`{${U.map((u)=>{if(this.is(u,"..."))return`...${this.generate(u[1],"value")}`;let[f,A,Y]=u,_;if(this.is(f,"dynamicKey"))_=`[${this.generate(f[1],"value")}]`;else if(this.is(f,"str"))_=`[${this.generate(f,"value")}]`;else this.suppressReactiveUnwrap=!0,_=this.generate(f,"value"),this.suppressReactiveUnwrap=!1;let w=this.generate(A,"value");if(Y==="=")return`${_} = ${w}`;if(Y===":")return`${_}: ${w}`;if(_===w&&!Array.isArray(f))return _;return`${_}: ${w}`}).join(", ")}}`}generateBlock($,U,W){if(W==="statement")return`{
|
|
362
362
|
${this.withIndent(()=>this.formatStatements(U)).join(`
|
|
363
363
|
`)}
|
|
364
|
-
${this.indent()}}`;if(U.length===0)return"undefined";if(U.length===1)return this.generate(U[0],
|
|
365
|
-
${this.withIndent(()=>
|
|
364
|
+
${this.indent()}}`;if(U.length===0)return"undefined";if(U.length===1)return this.generate(U[0],W);let F=U[U.length-1];if(Array.isArray(F)&&["break","continue","return","throw"].includes(F[0])){let f=U.map((A)=>this.addSemicolon(A,this.generate(A,"statement")));return`{
|
|
365
|
+
${this.withIndent(()=>f.map((A)=>this.indent()+A).join(`
|
|
366
366
|
`))}
|
|
367
|
-
${this.indent()}}`}return`(${U.map((
|
|
367
|
+
${this.indent()}}`}return`(${U.map((f)=>this.generate(f,"value")).join(", ")})`}generateTry($,U,W){let F=W==="value",u="try ",f=U[0];if(u+=F&&this.is(f,"block")?this.generateBlockWithReturns(f):this.generate(f,"statement"),U.length>=2&&Array.isArray(U[1])&&U[1].length===2&&U[1][0]!=="block"){let[A,Y]=U[1];if(u+=" catch",A&&(this.is(A,"object")||this.is(A,"array"))){u+=" (error)";let _=`(${this.generate(A,"value")} = error)`;Y=this.is(Y,"block")?["block",_,...Y.slice(1)]:["block",_,Y]}else if(A)u+=` (${A})`;u+=" "+(F&&this.is(Y,"block")?this.generateBlockWithReturns(Y):this.generate(Y,"statement"))}else if(U.length===2)u+=" finally "+this.generate(U[1],"statement");if(U.length===3)u+=" finally "+this.generate(U[2],"statement");if(U.length===1)u+=" catch {}";if(F)return`(${this.containsAwait(U[0])||U[1]&&this.containsAwait(U[1])?"async ":""}() => { ${u} })()`;return u}generateThrow($,U,W){let[F]=U;if(Array.isArray(F)){let f=F,A=null;if(F[0]==="new"&&Array.isArray(F[1])&&F[1][0]==="if")A="new",f=F[1];else if(F[0]==="if")f=F;if(f[0]==="if"){let[,Y,_]=f,w=Array.isArray(_)&&_.length===1?_[0]:_;F=A==="new"?["new",w]:w;let R=this.generate(Y,"value"),z=`throw ${this.generate(F,"value")}`;return`if (${R}) {
|
|
368
368
|
${this.indent()} ${z};
|
|
369
|
-
${this.indent()}}`}}let
|
|
370
|
-
`;this.indentLevel++;for(let Y of
|
|
371
|
-
`}this.indentLevel++,A+=this.generateSwitchCaseBody(
|
|
372
|
-
`,this.indentLevel++,A+=this.generateSwitchCaseBody(
|
|
369
|
+
${this.indent()}}`}}let u=`throw ${this.generate(F,"value")}`;return W==="value"?`(() => { ${u}; })()`:u}generateControl($,U,W){let[F,u,f]=U,A=j(F),Y=f[0]==="return",_=this.generate(u,"value"),w=f.length>1?f[1]:null,R=Y?w?`return ${this.generate(w,"value")}`:"return":w?`throw ${this.generate(w,"value")}`:"throw new Error()",z=this.wrapForCondition(_);if(W==="value"){if(A==="??")return`(() => { const __v = ${_}; if (__v == null) ${R}; return __v; })()`;if(A==="||")return`(() => { const __v = ${_}; if (!__v) ${R}; return __v; })()`;return`(() => { const __v = ${_}; if (__v) ${R}; return __v; })()`}if(A==="??")return`if (${z} == null) ${R}`;if(A==="||")return`if (!${z}) ${R}`;return`if (${z}) ${R}`}generateSwitch($,U,W){let[F,u,f]=U;if(F===null)return this.generateSwitchAsIfChain(u,f,W);let A=`switch (${this.generate(F,"value")}) {
|
|
370
|
+
`;this.indentLevel++;for(let Y of u){let[,_,w]=Y;for(let R of _){let z=j(R)??R,K;if(Array.isArray(z))K=this.generate(z,"value");else if(typeof z==="string"&&(z.startsWith('"')||z.startsWith("'")))K=`'${z.slice(1,-1)}'`;else K=this.generate(z,"value");A+=this.indent()+`case ${K}:
|
|
371
|
+
`}this.indentLevel++,A+=this.generateSwitchCaseBody(w,W),this.indentLevel--}if(f)A+=this.indent()+`default:
|
|
372
|
+
`,this.indentLevel++,A+=this.generateSwitchCaseBody(f,W),this.indentLevel--;if(this.indentLevel--,A+=this.indent()+"}",W==="value")return`(${u.some((_)=>this.containsAwait(_[2]))||f&&this.containsAwait(f)?"async ":""}() => { ${A} })()`;return A}generateWhen(){throw Error("when clause should be handled by switch")}_forInHeader($,U,W){let F=Array.isArray($)?$:[$],u=F.length===0,[f,A]=u?["_i",null]:F,Y=this.is(f,"array")||this.is(f,"object")?this.generateDestructuringPattern(f):f;if(W&&W!==null){let _=Array.isArray(U)&&U[0];if(_ instanceof String)_=j(_);if(_===".."||_==="..."){let D=_==="...",[O,q]=U.slice(1),G=this.generate(O,"value"),P=this.generate(q,"value"),H=this.generate(W,"value");return{header:`for (let ${Y} = ${G}; ${Y} ${D?"<":"<="} ${P}; ${Y} += ${H})`,setup:null}}let R=this.generate(U,"value"),z=A||"_i",K=this.generate(W,"value"),J=this.is(W,"-",1),M=J&&(W[1]==="1"||W[1]===1||j(W[1])==="1"),Q=!J&&(W==="1"||W===1||j(W)==="1"),Z=M?`${z}--`:Q?`${z}++`:`${z} += ${K}`;return{header:J?`for (let ${z} = ${R}.length - 1; ${z} >= 0; ${Z})`:`for (let ${z} = 0; ${z} < ${R}.length; ${Z})`,setup:u?null:`const ${Y} = ${R}[${z}];`}}if(A){let _=this.generate(U,"value");return{header:`for (let ${A} = 0; ${A} < ${_}.length; ${A}++)`,setup:`const ${Y} = ${_}[${A}];`}}return{header:`for (const ${Y} of ${this.generate(U,"value")})`,setup:null}}_forOfHeader($,U,W){let F=Array.isArray($)?$:[$],[u,f]=F,A=this.is(u,"array")||this.is(u,"object")?this.generateDestructuringPattern(u):u,Y=this.generate(U,"value");return{header:`for (const ${A} in ${Y})`,own:W,vv:f,oc:Y,kvp:A}}_forAsHeader($,U,W){let F=Array.isArray($)?$:[$],[u]=F,f=this.is(u,"array")||this.is(u,"object")?this.generateDestructuringPattern(u):u;return{header:`for ${W?"await ":""}(const ${f} of ${this.generate(U,"value")})`}}generateComprehension($,U,W){let[F,u,f]=U;if(W==="statement")return this.generateComprehensionAsLoop(F,u,f);if(this.comprehensionTarget)return this.generateComprehensionWithTarget(F,u,f,this.comprehensionTarget);let Y=`(${this.containsAwait(F)?"async ":""}() => {
|
|
373
373
|
`;this.indentLevel++,this.comprehensionDepth++,Y+=this.indent()+`const result = [];
|
|
374
|
-
`;for(let
|
|
375
|
-
`,this.indentLevel++,
|
|
376
|
-
`}else if(z==="for-of"){let{header:
|
|
377
|
-
`,this.indentLevel++,
|
|
378
|
-
`;if(
|
|
379
|
-
`}else if(z==="for-as"){let{header:
|
|
380
|
-
`,this.indentLevel++}}for(let
|
|
381
|
-
`,this.indentLevel++;let _=(
|
|
382
|
-
`;else if(Array.isArray(z)&&
|
|
374
|
+
`;for(let R of u){let[z,K,J,M]=R;if(z==="for-in"){let{header:Q,setup:Z}=this._forInHeader(K,J,M);if(Y+=this.indent()+Q+` {
|
|
375
|
+
`,this.indentLevel++,Z)Y+=this.indent()+Z+`
|
|
376
|
+
`}else if(z==="for-of"){let{header:Q,own:Z,vv:X,oc:D,kvp:O}=this._forOfHeader(K,J,M);if(Y+=this.indent()+Q+` {
|
|
377
|
+
`,this.indentLevel++,Z)Y+=this.indent()+`if (!Object.hasOwn(${D}, ${O})) continue;
|
|
378
|
+
`;if(X)Y+=this.indent()+`const ${X} = ${D}[${O}];
|
|
379
|
+
`}else if(z==="for-as"){let{header:Q}=this._forAsHeader(K,J,R[3]);Y+=this.indent()+Q+` {
|
|
380
|
+
`,this.indentLevel++}}for(let R of f)Y+=this.indent()+`if (${this.generate(R,"value")}) {
|
|
381
|
+
`,this.indentLevel++;let _=(R)=>{if(typeof R==="string"&&(R==="break"||R==="continue"))return!0;if(!Array.isArray(R))return!1;if(["break","continue","return","throw"].includes(R[0]))return!0;if(R[0]==="if")return R.slice(1).some(_);return R.some(_)},w=["for-in","for-of","for-as","while","loop"];if(this.is(F,"block"))for(let R=0;R<F.length-1;R++){let z=F[R+1];if(R!==F.length-2||_(z))Y+=this.indent()+this.generate(z,"statement")+`;
|
|
382
|
+
`;else if(Array.isArray(z)&&w.includes(z[0]))Y+=this.indent()+this.generate(z,"statement")+`;
|
|
383
383
|
`;else Y+=this.indent()+`result.push(${this.generate(z,"value")});
|
|
384
|
-
`}else if(_(
|
|
385
|
-
`;else if(Array.isArray(
|
|
386
|
-
`;else Y+=this.indent()+`result.push(${this.generate(
|
|
387
|
-
`;for(let
|
|
388
|
-
`;for(let
|
|
384
|
+
`}else if(_(F))Y+=this.indent()+this.generate(F,"statement")+`;
|
|
385
|
+
`;else if(Array.isArray(F)&&w.includes(F[0]))Y+=this.indent()+this.generate(F,"statement")+`;
|
|
386
|
+
`;else Y+=this.indent()+`result.push(${this.generate(F,"value")});
|
|
387
|
+
`;for(let R=0;R<f.length;R++)this.indentLevel--,Y+=this.indent()+`}
|
|
388
|
+
`;for(let R=0;R<u.length;R++)this.indentLevel--,Y+=this.indent()+`}
|
|
389
389
|
`;return Y+=this.indent()+`return result;
|
|
390
|
-
`,this.indentLevel--,this.comprehensionDepth--,Y+=this.indent()+"})()",Y}generateObjectComprehension($,U,
|
|
390
|
+
`,this.indentLevel--,this.comprehensionDepth--,Y+=this.indent()+"})()",Y}generateObjectComprehension($,U,W){let[F,u,f,A]=U,Y=`(() => {
|
|
391
391
|
`;this.indentLevel++,Y+=this.indent()+`const result = {};
|
|
392
|
-
`;for(let _ of
|
|
393
|
-
`,this.indentLevel++,
|
|
394
|
-
`;if(
|
|
392
|
+
`;for(let _ of f){let[w,R,z,K]=_;if(w==="for-of"){let[J,M]=R,Q=this.generate(z,"value");if(Y+=this.indent()+`for (const ${J} in ${Q}) {
|
|
393
|
+
`,this.indentLevel++,K)Y+=this.indent()+`if (!Object.hasOwn(${Q}, ${J})) continue;
|
|
394
|
+
`;if(M)Y+=this.indent()+`const ${M} = ${Q}[${J}];
|
|
395
395
|
`}}for(let _ of A)Y+=this.indent()+`if (${this.generate(_,"value")}) {
|
|
396
|
-
`,this.indentLevel++;Y+=this.indent()+`result[${this.generate(
|
|
396
|
+
`,this.indentLevel++;Y+=this.indent()+`result[${this.generate(F,"value")}] = ${this.generate(u,"value")};
|
|
397
397
|
`;for(let _=0;_<A.length;_++)this.indentLevel--,Y+=this.indent()+`}
|
|
398
|
-
`;for(let _=0;_<
|
|
398
|
+
`;for(let _=0;_<f.length;_++)this.indentLevel--,Y+=this.indent()+`}
|
|
399
399
|
`;return Y+=this.indent()+`return result;
|
|
400
|
-
`,this.indentLevel--,Y+=this.indent()+"})()",Y}generateClass($,U,
|
|
401
|
-
`,
|
|
402
|
-
`}else if(
|
|
403
|
-
`;else A+=this.indent()+`${
|
|
404
|
-
`}this.indentLevel--}else if(
|
|
405
|
-
`}else if(
|
|
406
|
-
`;else A+=this.indent()+`${
|
|
407
|
-
`}for(let
|
|
408
|
-
`}else A+=this.indent()+this.generate(
|
|
409
|
-
`;this.indentLevel--}else{this.indentLevel++;for(let
|
|
410
|
-
`;else A+=this.indent()+this.generate(
|
|
411
|
-
`;this.indentLevel--}}}return A+=this.indent()+"}",A}generateSuper($,U){if(U.length===0){if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}()`;return"super"}let
|
|
412
|
-
export default ${
|
|
413
|
-
`;if(z.size>0)
|
|
414
|
-
`;let
|
|
415
|
-
`;return}if(!
|
|
416
|
-
`;return}}}let
|
|
417
|
-
`;else
|
|
418
|
-
`})};if(
|
|
419
|
-
`;else
|
|
420
|
-
`;for(let
|
|
421
|
-
`;
|
|
422
|
-
`;
|
|
423
|
-
`}return this.indentLevel--,
|
|
424
|
-
${this.withIndent(()=>U.map((
|
|
400
|
+
`,this.indentLevel--,Y+=this.indent()+"})()",Y}generateClass($,U,W){let[F,u,...f]=U,A=F?`class ${F}`:"class";if(u)A+=` extends ${this.generate(u,"value")}`;if(A+=` {
|
|
401
|
+
`,f.length>0&&Array.isArray(f[0])){let Y=f[0];if(Y[0]==="block"){let _=Y.slice(1),w=_.length>0&&Array.isArray(_[0])&&_[0][0]==="object";if(w&&_.length===1){let R=_[0].slice(1);this.indentLevel++;let z=[];for(let[K,J]of R){let M=this.is(K,".")&&K[1]==="this",Q=this.is(K,"computed"),Z=this.extractMemberName(K);if(this.is(J,"=>")&&!M&&!Q&&Z!=="constructor")z.push(Z)}for(let[K,J]of R){let M=this.is(K,".")&&K[1]==="this",Q=this.is(K,"computed"),Z=this.extractMemberName(K);if(this.is(J,"->")||this.is(J,"=>")){let[,X,D]=J,O=this.containsAwait(D),q=this.containsYield(D),G=X,P=[];if(Z==="constructor"){let E=!!u,B=E?new Map:null;G=X.map((T)=>{if(this.is(T,".")&&T[1]==="this"){let h=T[2],N=E?`_${h}`:h;if(P.push(`this.${h} = ${N}`),E)B.set(h,N);return N}if(this.is(T,"default")&&this.is(T[1],".")&&T[1][1]==="this"){let h=T[1][2],N=E?`_${h}`:h;if(P.push(`this.${h} = ${N}`),E)B.set(h,N);return["default",N,T[2]]}return T});for(let T of z)P.unshift(`this.${T} = this.${T}.bind(this)`);if(B?.size>0)this._atParamMap=B}let H=this.generateParamList(G),I=(M?"static ":"")+(O?"async ":"")+(q?"*":"");if(A+=this.indent()+`${I}${Z}(${H}) `,!Q)this.currentMethodName=Z;A+=this.generateMethodBody(D,P,Z==="constructor",G),this._atParamMap=null,this.currentMethodName=null,A+=`
|
|
402
|
+
`}else if(M)A+=this.indent()+`static ${Z} = ${this.generate(J,"value")};
|
|
403
|
+
`;else A+=this.indent()+`${Z} = ${this.generate(J,"value")};
|
|
404
|
+
`}this.indentLevel--}else if(w){let R=_[0].slice(1),z=_.slice(1);this.indentLevel++;for(let[K,J]of R){let M=this.is(K,".")&&K[1]==="this",Q=this.extractMemberName(K);if(this.is(J,"->")||this.is(J,"=>")){let[,Z,X]=J,D=this.generateParamList(Z),O=(M?"static ":"")+(this.containsAwait(X)?"async ":"")+(this.containsYield(X)?"*":"");A+=this.indent()+`${O}${Q}(${D}) `,this.currentMethodName=Q,A+=this.generateMethodBody(X,[],Q==="constructor",Z),this.currentMethodName=null,A+=`
|
|
405
|
+
`}else if(M)A+=this.indent()+`static ${Q} = ${this.generate(J,"value")};
|
|
406
|
+
`;else A+=this.indent()+`${Q} = ${this.generate(J,"value")};
|
|
407
|
+
`}for(let K of z)if(this.is(K,"class")){let[,J,M,...Q]=K;if(this.is(J,".")&&J[1]==="this")A+=this.indent()+`static ${J[2]} = ${this.generate(["class",null,M,...Q],"value")};
|
|
408
|
+
`}else A+=this.indent()+this.generate(K,"statement")+`;
|
|
409
|
+
`;this.indentLevel--}else{this.indentLevel++;for(let R of _)if(this.is(R,"=")&&Array.isArray(R[1])&&R[1][0]==="."&&R[1][1]==="this")A+=this.indent()+`static ${R[1][2]} = ${this.generate(R[2],"value")};
|
|
410
|
+
`;else A+=this.indent()+this.generate(R,"statement")+`;
|
|
411
|
+
`;this.indentLevel--}}}return A+=this.indent()+"}",A}generateSuper($,U){if(U.length===0){if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}()`;return"super"}let W=U.map((F)=>this.unwrap(this.generate(F,"value"))).join(", ");if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}(${W})`;return`super(${W})`}generateImport($,U,W,F){if(U.length===1){let Y=`import(${this.generate(U[0],"value")})`;if(C(F[0],"await")===!0)return`(await ${Y})`;return Y}let[u,f]=U,A=this.addJsExtensionAndAssertions(f);if(typeof u==="string")return`import ${u} from ${A}`;if(Array.isArray(u)){if(u[0]==="*"&&u.length===2)return`import * as ${u[1]} from ${A}`;if(typeof u[0]==="string"&&Array.isArray(u[1])){let _=u[0],w=u[1];if(w[0]==="*"&&w.length===2)return`import ${_}, * as ${w[1]} from ${A}`;let R=(Array.isArray(w)?w:[w]).map((z)=>Array.isArray(z)&&z.length===2?`${z[0]} as ${z[1]}`:z).join(", ");return`import ${_}, { ${R} } from ${A}`}return`import { ${u.map((_)=>Array.isArray(_)&&_.length===2?`${_[0]} as ${_[1]}`:_).join(", ")} } from ${A}`}return`import ${this.generate(u,"value")} from ${A}`}generateExport($,U){let[W]=U;if(this.options.skipExports){if(Array.isArray(W)&&W.every((F)=>typeof F==="string"))return"";if(this.is(W,"="))return`const ${W[1]} = ${this.generate(W[2],"value")}`;return this.generate(W,"statement")}if(Array.isArray(W)&&W.every((F)=>typeof F==="string"))return`export { ${W.join(", ")} }`;if(this.is(W,"="))return`export const ${W[1]} = ${this.generate(W[2],"value")}`;return`export ${this.generate(W,"statement")}`}generateExportDefault($,U){let[W]=U;if(this.options.skipExports){if(this.is(W,"="))return`const ${W[1]} = ${this.generate(W[2],"value")}`;return this.generate(W,"statement")}if(this.is(W,"="))return`const ${W[1]} = ${this.generate(W[2],"value")};
|
|
412
|
+
export default ${W[1]}`;return`export default ${this.generate(W,"statement")}`}generateExportAll($,U){if(this.options.skipExports)return"";return`export * from ${this.addJsExtensionAndAssertions(U[0])}`}generateExportFrom($,U){if(this.options.skipExports)return"";let[W,F]=U,u=this.addJsExtensionAndAssertions(F);if(Array.isArray(W))return`export { ${W.map((A)=>Array.isArray(A)&&A.length===2?`${A[0]} as ${A[1]}`:A).join(", ")} } from ${u}`;return`export ${W} from ${u}`}generateDoIIFE($,U){return`(${this.generate(U[0],"statement")})()`}generateRegex($,U){return U.length===0?$:this.generate(U[0],"value")}generateTaggedTemplate($,U){let[W,F]=U,u=this.generate(W,"value"),f=this.generate(F,"value");if(f.startsWith("`"))return`${u}${f}`;if(f.startsWith('"')||f.startsWith("'"))return`${u}\`${f.slice(1,-1)}\``;return`${u}\`${f}\``}generateString($,U){let W="`";for(let F of U)if(F instanceof String)W+=this.extractStringContent(F);else if(typeof F==="string")if(F.startsWith('"')||F.startsWith("'")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive in str:",F);W+=F.slice(1,-1)}else W+=F;else if(Array.isArray(F))if(F.length===1&&typeof F[0]==="string"&&!Array.isArray(F[0])){let u=F[0];W+=/^[\d"']/.test(u)?"${"+this.generate(u,"value")+"}":"${"+u+"}"}else{let u=F.length===1&&Array.isArray(F[0])?F[0]:F;W+="${"+this.generate(u,"value")+"}"}return W+"`"}findPostfixConditional($){if(!Array.isArray($))return null;let U=$[0];if(U==="if"&&$.length===3)return{type:U,condition:$[1],value:$[2]};if(U==="+"||U==="-"||U==="*"||U==="/")for(let W=1;W<$.length;W++){let F=this.findPostfixConditional($[W]);if(F)return F.parentOp=U,F.operandIndex=W,F.otherOperands=$.slice(1).filter((u,f)=>f!==W-1),F}return null}rebuildWithoutConditional($){let U=Array.isArray($.value)&&$.value.length===1?$.value[0]:$.value;if($.parentOp)return[$.parentOp,...$.otherOperands,U];return U}generateDestructuringPattern($){return this.formatParam($)}generateParamList($){let U=$.findIndex((F)=>this.is(F,"expansion"));if(U!==-1){let F=$.slice(0,U),u=$.slice(U+1),f=F.map((A)=>this.formatParam(A)).join(", ");return this.expansionAfterParams=u,f?`${f}, ..._rest`:"..._rest"}let W=$.findIndex((F)=>this.is(F,"rest"));if(W!==-1&&W<$.length-1){let F=$.slice(0,W),u=$[W],f=$.slice(W+1),A=F.map((Y)=>this.formatParam(Y));return this.restMiddleParam={restName:u[1],afterParams:f,beforeCount:F.length},A.length>0?`${A.join(", ")}, ...${u[1]}`:`...${u[1]}`}return this.expansionAfterParams=null,this.restMiddleParam=null,$.map((F)=>this.formatParam(F)).join(", ")}formatParam($){if(typeof $==="string")return $;if($ instanceof String)return $.valueOf();if(this.is($,"rest"))return`...${$[1]}`;if(this.is($,"default"))return`${$[1]} = ${this.generate($[2],"value")}`;if(this.is($,".")&&$[1]==="this")return $[2];if(this.is($,"array"))return`[${$.slice(1).map((W)=>{if(W===",")return"";if(W==="...")return"";if(this.is(W,"..."))return`...${W[1]}`;if(this.is(W,"=")&&typeof W[1]==="string")return`${W[1]} = ${this.generate(W[2],"value")}`;if(typeof W==="string")return W;return this.formatParam(W)}).join(", ")}]`;if(this.is($,"object"))return`{${$.slice(1).map((W)=>{if(this.is(W,"..."))return`...${W[1]}`;if(this.is(W,"default"))return`${W[1]} = ${this.generate(W[2],"value")}`;let[F,u]=W;if(F===u)return F;return`${F}: ${u}`}).join(", ")}}`;return JSON.stringify($)}generateBodyWithReturns($,U=[],W={}){let{sideEffectOnly:F=!1,autoAssignments:u=[],isConstructor:f=!1,hasExpansionParams:A=!1}=W,Y=this.sideEffectOnly;this.sideEffectOnly=F;let _=new Set,w=(Q)=>{if(typeof Q==="string")_.add(Q);else if(Array.isArray(Q)){if(Q[0]==="rest"||Q[0]==="..."){if(typeof Q[1]==="string")_.add(Q[1])}else if(Q[0]==="default"){if(typeof Q[1]==="string")_.add(Q[1])}else if(Q[0]==="array"||Q[0]==="object")this.collectVarsFromArray(Q,_)}};if(Array.isArray(U))U.forEach(w);let R=this.collectFunctionVariables($),z=new Set([...R].filter((Q)=>!this.programVars.has(Q)&&!this.reactiveVars?.has(Q)&&!_.has(Q)&&!this.scopeStack.some((Z)=>Z.has(Q)))),K=["return","throw","break","continue"],J=["for-in","for-of","for-as","while","loop"];if(this.scopeStack.push(new Set([...z,..._])),this.is($,"block")){let Q=this.unwrapBlock($);if(A&&this.expansionAfterParams?.length>0)Q=[...this.expansionAfterParams.map((q,G)=>{return`const ${typeof q==="string"?q:JSON.stringify(q)} = _rest[_rest.length - ${this.expansionAfterParams.length-G}]`}),...Q],this.expansionAfterParams=null;if(this.restMiddleParam){let{restName:O,afterParams:q}=this.restMiddleParam,G=q.length,P=[];if(q.forEach((H,I)=>{let E=typeof H==="string"?H:this.is(H,"default")?H[1]:JSON.stringify(H);P.push(`const ${E} = ${O}[${O}.length - ${G-I}]`)}),G>0)P.push(`${O} = ${O}.slice(0, -${G})`);Q=[...P,...Q],this.restMiddleParam=null}this.indentLevel++;let Z=`{
|
|
413
|
+
`;if(z.size>0)Z+=this.indent()+`let ${Array.from(z).sort().join(", ")};
|
|
414
|
+
`;let X=u.length>0&&Q.length>0&&Array.isArray(Q[0])&&Q[0][0]==="super",D=(O)=>{O.forEach((q,G)=>{let P=G===O.length-1,H=Array.isArray(q)?q[0]:null;if(!P&&H==="comprehension"){let[,T,h,N]=q;Z+=this.indent()+this.generateComprehensionAsLoop(T,h,N)+`
|
|
415
|
+
`;return}if(!f&&!F&&P&&H==="if"){let[T,h,...N]=q.slice(1),S=(L)=>this.is(L,"block")&&L.length>2;if(S(h)||N.some(S)){Z+=this.generateIfElseWithEarlyReturns(q);return}}if(!f&&!F&&P&&H==="="){let[T,h]=q.slice(1);if(typeof T==="string"&&Array.isArray(h)){let N=h[0];if(N==="comprehension"||N==="for-in"){this.comprehensionTarget=T,Z+=this.generate(h,"value"),this.comprehensionTarget=null,Z+=this.indent()+`return ${T};
|
|
416
|
+
`;return}}}let I=!f&&!F&&P&&!K.includes(H)&&!J.includes(H)&&!this.hasExplicitControlFlow(q),E=I?"value":"statement",B=this.generate(q,E);if(I)Z+=this.indent()+"return "+B+`;
|
|
417
|
+
`;else Z+=this.indent()+this.addSemicolon(q,B)+`
|
|
418
|
+
`})};if(X){if(Q.length===1&&!f)Z+=this.indent()+"return "+this.generate(Q[0],"value")+`;
|
|
419
|
+
`;else Z+=this.indent()+this.generate(Q[0],"statement")+`;
|
|
420
|
+
`;for(let q of u)Z+=this.indent()+q+`;
|
|
421
|
+
`;D(Q.slice(1))}else{for(let O of u)Z+=this.indent()+O+`;
|
|
422
|
+
`;D(Q)}if(F&&Q.length>0){let O=Array.isArray(Q[Q.length-1])?Q[Q.length-1][0]:null;if(!K.includes(O))Z+=this.indent()+`return;
|
|
423
|
+
`}return this.indentLevel--,Z+=this.indent()+"}",this.scopeStack.pop(),this.sideEffectOnly=Y,Z}this.sideEffectOnly=Y;let M;if(f&&u.length>0){let Q=Array.isArray($)&&$[0]==="super",Z=this.generate($,"statement"),X=u.map((D)=>`${D};`).join(" ");M=Q?`{ ${Z}; ${X} }`:`{ ${X} ${Z}; }`}else if(f||this.hasExplicitControlFlow($))M=`{ ${this.generate($,"statement")}; }`;else if(Array.isArray($)&&(K.includes($[0])||J.includes($[0])))M=`{ ${this.generate($,"statement")}; }`;else if(F)M=`{ ${this.generate($,"statement")}; return; }`;else M=`{ return ${this.generate($,"value")}; }`;return this.scopeStack.pop(),M}generateFunctionBody($,U=[],W=!1){return this.generateBodyWithReturns($,U,{sideEffectOnly:W,hasExpansionParams:this.expansionAfterParams?.length>0})}generateMethodBody($,U=[],W=!1,F=[]){return this.generateBodyWithReturns($,F,{autoAssignments:U,isConstructor:W})}generateBlockWithReturns($){if(!Array.isArray($)||$[0]!=="block")return this.generate($,"statement");let U=this.unwrapBlock($);return`{
|
|
424
|
+
${this.withIndent(()=>U.map((F,u)=>{let f=u===U.length-1,A=Array.isArray(F)?F[0]:null,Y=f&&!["return","throw","break","continue"].includes(A),_=this.generate(F,Y?"value":"statement");return Y?this.indent()+"return "+_+";":this.indent()+_+";"})).join(`
|
|
425
425
|
`)}
|
|
426
426
|
${this.indent()}}`}generateLoopBody($){if(!Array.isArray($))return`{ ${this.generate($,"statement")}; }`;if($[0]==="block"||Array.isArray($[0])){let U=$[0]==="block"?$.slice(1):$;return`{
|
|
427
|
-
${this.withIndent(()=>U.map((
|
|
427
|
+
${this.withIndent(()=>U.map((F)=>{if(this.is(F,"comprehension")){let[,u,f,A]=F;return this.indent()+this.generateComprehensionAsLoop(u,f,A)}return this.indent()+this.addSemicolon(F,this.generate(F,"statement"))})).join(`
|
|
428
428
|
`)}
|
|
429
|
-
${this.indent()}}`}return`{ ${this.generate($,"statement")}; }`}generateLoopBodyWithGuard($,U){let
|
|
430
|
-
`,A=this.withIndent(()=>{this.indentLevel++;let _=this.formatStatements(
|
|
431
|
-
${
|
|
429
|
+
${this.indent()}}`}return`{ ${this.generate($,"statement")}; }`}generateLoopBodyWithGuard($,U){let W=this.unwrap(this.generate(U,"value"));if(!Array.isArray($))return`{ if (${W}) ${this.generate($,"statement")}; }`;if($[0]==="block"||Array.isArray($[0])){let F=$[0]==="block"?$.slice(1):$,u=this.withIndent(()=>this.indent()),f=`if (${W}) {
|
|
430
|
+
`,A=this.withIndent(()=>{this.indentLevel++;let _=this.formatStatements(F);return this.indentLevel--,_}),Y=this.withIndent(()=>this.indent()+"}");return`{
|
|
431
|
+
${u}${f}${A.join(`
|
|
432
432
|
`)}
|
|
433
433
|
${Y}
|
|
434
|
-
${this.indent()}}`}return`{ if (${this.generate(U,"value")}) ${this.generate($,"statement")}; }`}generateComprehensionWithTarget($,U,F
|
|
435
|
-
`;let
|
|
436
|
-
`,this.indentLevel++,z)
|
|
437
|
-
`;if(
|
|
438
|
-
`,this.indentLevel++;if(
|
|
439
|
-
`,
|
|
440
|
-
`;return this.indentLevel--,
|
|
441
|
-
`,
|
|
442
|
-
`}generateComprehensionAsLoop($,U,
|
|
443
|
-
`,this.indentLevel++,
|
|
444
|
-
`,this.indentLevel--,
|
|
445
|
-
`;else W+=this.indent()+this.generate($,"statement")+`;
|
|
446
|
-
`};if(U.length===1){let[A,Y,_,Z]=U[0];if(A==="for-in"){let{header:w,setup:z}=this._forInHeader(Y,_,Z);if(W+=w+` {
|
|
447
|
-
`,this.indentLevel++,z)W+=this.indent()+z+`
|
|
448
|
-
`;return u(),this.indentLevel--,W+=this.indent()+"}",W}if(A==="for-as"){let{header:w}=this._forAsHeader(Y,_,Z);return W+=w+` {
|
|
449
|
-
`,this.indentLevel++,u(),this.indentLevel--,W+=this.indent()+"}",W}if(A==="for-of"){let{header:w,own:z,vv:X,oc:K,kvp:D}=this._forOfHeader(Y,_,Z);if(W+=w+` {
|
|
450
|
-
`,this.indentLevel++,z)W+=this.indent()+`if (!Object.hasOwn(${K}, ${D})) continue;
|
|
451
|
-
`;if(X)W+=this.indent()+`const ${X} = ${K}[${D}];
|
|
452
|
-
`;return u(),this.indentLevel--,W+=this.indent()+"}",W}}return this.generate(["comprehension",$,U,F],"value")}generateIfElseWithEarlyReturns($){let[U,F,W,...f]=$,u="",A=this.generate(F,"value");u+=this.indent()+`if (${A}) {
|
|
453
|
-
`,u+=this.withIndent(()=>this.generateBranchWithReturn(W)),u+=this.indent()+"}";for(let Y of f)if(u+=" else ",this.is(Y,"if")){let[,_,Z,...w]=Y;u+=`if (${this.generate(_,"value")}) {
|
|
454
|
-
`,u+=this.withIndent(()=>this.generateBranchWithReturn(Z)),u+=this.indent()+"}";for(let z of w)u+=` else {
|
|
455
|
-
`,u+=this.withIndent(()=>this.generateBranchWithReturn(z)),u+=this.indent()+"}"}else u+=`{
|
|
456
|
-
`,u+=this.withIndent(()=>this.generateBranchWithReturn(Y)),u+=this.indent()+"}";return u}generateBranchWithReturn($){let U=this.unwrapBlock($),F="";for(let W=0;W<U.length;W++){let f=W===U.length-1,u=U[W],A=Array.isArray(u)?u[0]:null;if(f&&!(A==="return"||A==="throw"||A==="break"||A==="continue"))F+=this.indent()+`return ${this.generate(u,"value")};
|
|
457
|
-
`;else F+=this.indent()+this.generate(u,"statement")+`;
|
|
458
|
-
`}return F}generateIfAsExpression($,U,F){if(this.is(U,"block")&&U.length>2||this.hasStatementInBranch(U)||F.some((Y)=>this.is(Y,"block")&&Y.length>2||this.hasStatementInBranch(Y)||this.hasNestedMultiStatement(Y))){let Y=this.containsAwait($)||this.containsAwait(U)||F.some((Z)=>this.containsAwait(Z)),_=`${Y?"await ":""}(${Y?"async ":""}() => { `;_+=`if (${this.generate($,"value")}) `,_+=this.generateBlockWithReturns(U);for(let Z of F)if(_+=" else ",this.is(Z,"if")){let[w,z,X,...K]=Z;_+=`if (${this.generate(z,"value")}) `,_+=this.generateBlockWithReturns(X);for(let D of K)if(_+=" else ",this.is(D,"if")){let[R,J,Q,...q]=D;_+=`if (${this.generate(J,"value")}) `,_+=this.generateBlockWithReturns(Q),F.push(...q)}else _+=this.generateBlockWithReturns(D)}else _+=this.generateBlockWithReturns(Z);return _+" })()"}let f=this.extractExpression(this.unwrapIfBranch(U)),u=this.buildTernaryChain(F),A=this.generate($,"value");if(this.is($,"yield")||this.is($,"await"))A=`(${A})`;return`(${A} ? ${f} : ${u})`}generateIfAsStatement($,U,F){let W=`if (${this.unwrap(this.generate($,"value"))}) `;W+=this.generate(this.unwrapIfBranch(U),"statement");for(let f of F)W+=" else "+this.generate(this.unwrapIfBranch(f),"statement");return W}generateSwitchCaseBody($,U){let F="";if(this.hasExplicitControlFlow($))for(let f of this.unwrapBlock($))F+=this.indent()+this.generate(f,"statement")+`;
|
|
459
|
-
`;else if(U==="value")if(this.is($,"block")&&$.length>2){let f=$.slice(1);for(let u=0;u<f.length;u++)if(u===f.length-1)F+=this.indent()+`return ${this.generate(f[u],"value")};
|
|
460
|
-
`;else F+=this.indent()+this.generate(f[u],"statement")+`;
|
|
461
|
-
`}else F+=this.indent()+`return ${this.extractExpression($)};
|
|
462
|
-
`;else{if(this.is($,"block")&&$.length>1)for(let f of $.slice(1))F+=this.indent()+this.generate(f,"statement")+`;
|
|
434
|
+
${this.indent()}}`}return`{ if (${this.generate(U,"value")}) ${this.generate($,"statement")}; }`}generateComprehensionWithTarget($,U,W,F){let u="";u+=this.indent()+`${F} = [];
|
|
435
|
+
`;let f=this.is($,"block")&&$.length===2?$[1]:$;if(U.length===1){let[A,Y,_,w]=U[0];if(A==="for-in"){let{header:R,setup:z}=this._forInHeader(Y,_,w);if(u+=this.indent()+R+` {
|
|
436
|
+
`,this.indentLevel++,z)u+=this.indent()+z+`
|
|
437
|
+
`;if(W&&W.length>0)u+=this.indent()+`if (${W.map((K)=>this.generate(K,"value")).join(" && ")}) {
|
|
438
|
+
`,this.indentLevel++;if(u+=this.indent()+`${F}.push(${this.unwrap(this.generate(f,"value"))});
|
|
439
|
+
`,W&&W.length>0)this.indentLevel--,u+=this.indent()+`}
|
|
440
|
+
`;return this.indentLevel--,u+=this.indent()+`}
|
|
441
|
+
`,u}}return this.indent()+`${F} = (() => { /* complex comprehension */ })();
|
|
442
|
+
`}generateComprehensionAsLoop($,U,W){let F="",u=W?.length?W.map((A)=>this.generate(A,"value")).join(" && "):null,f=()=>{if(u)F+=this.indent()+`if (${u}) {
|
|
443
|
+
`,this.indentLevel++,F+=this.indent()+this.generate($,"statement")+`;
|
|
444
|
+
`,this.indentLevel--,F+=this.indent()+`}
|
|
463
445
|
`;else F+=this.indent()+this.generate($,"statement")+`;
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
`;
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
446
|
+
`};if(U.length===1){let[A,Y,_,w]=U[0];if(A==="for-in"){let{header:R,setup:z}=this._forInHeader(Y,_,w);if(F+=R+` {
|
|
447
|
+
`,this.indentLevel++,z)F+=this.indent()+z+`
|
|
448
|
+
`;return f(),this.indentLevel--,F+=this.indent()+"}",F}if(A==="for-as"){let{header:R}=this._forAsHeader(Y,_,w);return F+=R+` {
|
|
449
|
+
`,this.indentLevel++,f(),this.indentLevel--,F+=this.indent()+"}",F}if(A==="for-of"){let{header:R,own:z,vv:K,oc:J,kvp:M}=this._forOfHeader(Y,_,w);if(F+=R+` {
|
|
450
|
+
`,this.indentLevel++,z)F+=this.indent()+`if (!Object.hasOwn(${J}, ${M})) continue;
|
|
451
|
+
`;if(K)F+=this.indent()+`const ${K} = ${J}[${M}];
|
|
452
|
+
`;return f(),this.indentLevel--,F+=this.indent()+"}",F}}return this.generate(["comprehension",$,U,W],"value")}generateIfElseWithEarlyReturns($){let[U,W,F,...u]=$,f="",A=this.generate(W,"value");f+=this.indent()+`if (${A}) {
|
|
453
|
+
`,f+=this.withIndent(()=>this.generateBranchWithReturn(F)),f+=this.indent()+"}";for(let Y of u)if(f+=" else ",this.is(Y,"if")){let[,_,w,...R]=Y;f+=`if (${this.generate(_,"value")}) {
|
|
454
|
+
`,f+=this.withIndent(()=>this.generateBranchWithReturn(w)),f+=this.indent()+"}";for(let z of R)f+=` else {
|
|
455
|
+
`,f+=this.withIndent(()=>this.generateBranchWithReturn(z)),f+=this.indent()+"}"}else f+=`{
|
|
456
|
+
`,f+=this.withIndent(()=>this.generateBranchWithReturn(Y)),f+=this.indent()+"}";return f}generateBranchWithReturn($){let U=this.unwrapBlock($),W="";for(let F=0;F<U.length;F++){let u=F===U.length-1,f=U[F],A=Array.isArray(f)?f[0]:null;if(u&&!(A==="return"||A==="throw"||A==="break"||A==="continue"))W+=this.indent()+`return ${this.generate(f,"value")};
|
|
457
|
+
`;else W+=this.indent()+this.generate(f,"statement")+`;
|
|
458
|
+
`}return W}generateIfAsExpression($,U,W){if(this.is(U,"block")&&U.length>2||this.hasStatementInBranch(U)||W.some((Y)=>this.is(Y,"block")&&Y.length>2||this.hasStatementInBranch(Y)||this.hasNestedMultiStatement(Y))){let Y=this.containsAwait($)||this.containsAwait(U)||W.some((w)=>this.containsAwait(w)),_=`${Y?"await ":""}(${Y?"async ":""}() => { `;_+=`if (${this.generate($,"value")}) `,_+=this.generateBlockWithReturns(U);for(let w of W)if(_+=" else ",this.is(w,"if")){let[R,z,K,...J]=w;_+=`if (${this.generate(z,"value")}) `,_+=this.generateBlockWithReturns(K);for(let M of J)if(_+=" else ",this.is(M,"if")){let[Q,Z,X,...D]=M;_+=`if (${this.generate(Z,"value")}) `,_+=this.generateBlockWithReturns(X),W.push(...D)}else _+=this.generateBlockWithReturns(M)}else _+=this.generateBlockWithReturns(w);return _+" })()"}let u=this.extractExpression(this.unwrapIfBranch(U)),f=this.buildTernaryChain(W),A=this.generate($,"value");if(this.is($,"yield")||this.is($,"await"))A=`(${A})`;return`(${A} ? ${u} : ${f})`}generateIfAsStatement($,U,W){let F=`if (${this.unwrap(this.generate($,"value"))}) `;F+=this.generate(this.unwrapIfBranch(U),"statement");for(let u of W)F+=" else "+this.generate(this.unwrapIfBranch(u),"statement");return F}generateSwitchCaseBody($,U){let W="";if(this.hasExplicitControlFlow($))for(let u of this.unwrapBlock($))W+=this.indent()+this.generate(u,"statement")+`;
|
|
459
|
+
`;else if(U==="value")if(this.is($,"block")&&$.length>2){let u=$.slice(1);for(let f=0;f<u.length;f++)if(f===u.length-1)W+=this.indent()+`return ${this.generate(u[f],"value")};
|
|
460
|
+
`;else W+=this.indent()+this.generate(u[f],"statement")+`;
|
|
461
|
+
`}else W+=this.indent()+`return ${this.extractExpression($)};
|
|
462
|
+
`;else{if(this.is($,"block")&&$.length>1)for(let u of $.slice(1))W+=this.indent()+this.generate(u,"statement")+`;
|
|
463
|
+
`;else W+=this.indent()+this.generate($,"statement")+`;
|
|
464
|
+
`;W+=this.indent()+`break;
|
|
465
|
+
`}return W}generateSwitchAsIfChain($,U,W){let F="";for(let u=0;u<$.length;u++){let[,f,A]=$[u],Y=Array.isArray(f)?f[0]:f;if(F+=(u===0?"":" else ")+`if (${this.generate(Y,"value")}) {
|
|
466
|
+
`,this.indentLevel++,W==="value")F+=this.indent()+`return ${this.extractExpression(A)};
|
|
467
|
+
`;else for(let _ of this.unwrapBlock(A))F+=this.indent()+this.generate(_,"statement")+`;
|
|
468
|
+
`;this.indentLevel--,F+=this.indent()+"}"}if(U){if(F+=` else {
|
|
469
|
+
`,this.indentLevel++,W==="value")F+=this.indent()+`return ${this.extractExpression(U)};
|
|
470
|
+
`;else for(let u of this.unwrapBlock(U))F+=this.indent()+this.generate(u,"statement")+`;
|
|
471
|
+
`;this.indentLevel--,F+=this.indent()+"}"}return W==="value"?`(() => { ${F} })()`:F}extractExpression($){let U=this.unwrapBlock($);return U.length>0?this.generate(U[U.length-1],"value"):"undefined"}unwrapBlock($){if(!Array.isArray($))return[$];if($[0]==="block")return $.slice(1);if(Array.isArray($[0])){if(typeof $[0][0]==="string")return[$];return $}return[$]}indent(){return this.indentString.repeat(this.indentLevel)}needsSemicolon($,U){if(!U||U.endsWith(";"))return!1;if(!U.endsWith("}"))return!0;let W=Array.isArray($)?$[0]:null;return!["def","class","if","for-in","for-of","for-as","while","loop","switch","try"].includes(W)}addSemicolon($,U){return U+(this.needsSemicolon($,U)?";":"")}formatStatements($,U="statement"){return $.map((W)=>this.indent()+this.addSemicolon(W,this.generate(W,U)))}wrapForCondition($){if(/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test($))return $;if($.startsWith("(")&&$.endsWith(")"))return $;return`(${$})`}hasExplicitControlFlow($){if(!Array.isArray($))return!1;let U=$[0];if(U==="return"||U==="throw"||U==="break"||U==="continue")return!0;if(U==="block")return $.slice(1).some((W)=>Array.isArray(W)&&["return","throw","break","continue"].includes(W[0]));if(U==="switch"){let[,,W]=$;return W?.some((F)=>{return this.unwrapBlock(F[2]).some((f)=>Array.isArray(f)&&["return","throw","break","continue"].includes(f[0]))})}if(U==="if"){let[,,W,F]=$;return this.branchHasControlFlow(W)&&F&&this.branchHasControlFlow(F)}return!1}branchHasControlFlow($){if(!Array.isArray($))return!1;let U=this.unwrapBlock($);if(U.length===0)return!1;let W=U[U.length-1];return Array.isArray(W)&&["return","throw","break","continue"].includes(W[0])}withIndent($){this.indentLevel++;let U=$();return this.indentLevel--,U}is($,U,W){if(!Array.isArray($))return null;if((j($[0])??$[0])!==U)return null;let F=$.slice(1);if(W!=null&&F.length!==W)return null;return F}unwrap($){if(typeof $!=="string")return $;while($.startsWith("(")&&$.endsWith(")")){let U=0,W=0,F=!0,u=!1;for(let f=0;f<$.length;f++){if($[f]==="(")U++;if($[f]===")")U--;if($[f]==="["||$[f]==="{")W++;if($[f]==="]"||$[f]==="}")W--;if($[f]===","&&U===1&&W===0)u=!0;if(U===0&&f<$.length-1){F=!1;break}}if(u)F=!1;if(F)$=$.slice(1,-1);else break}return $}unwrapLogical($){if(typeof $!=="string")return $;while($.startsWith("(")&&$.endsWith(")")){let U=0,W=1/0;for(let F=1;F<$.length-1;F++){if($[F]==="(")U++;if($[F]===")")U--;W=Math.min(W,U)}if(W>=0)$=$.slice(1,-1);else break}return $}unwrapIfBranch($){if(Array.isArray($)&&$.length===1&&(!Array.isArray($[0])||$[0][0]!=="block"))return $[0];return $}flattenBinaryChain($){if(!Array.isArray($)||$.length<3)return $;let[U,...W]=$;if(U!=="&&"&&U!=="||")return $;let F=[],u=(f)=>{if(Array.isArray(f)&&f[0]===U)for(let A=1;A<f.length;A++)u(f[A]);else F.push(f)};for(let f of W)u(f);return[U,...F]}hasStatementInBranch($){if(!Array.isArray($))return!1;let U=$[0];if(U==="return"||U==="throw"||U==="break"||U==="continue")return!0;if(U==="block")return $.slice(1).some((W)=>this.hasStatementInBranch(W));return!1}hasNestedMultiStatement($){if(!Array.isArray($))return!1;if($[0]==="if"){let[U,W,F,...u]=$;return this.is(F,"block")&&F.length>2||u.some((f)=>this.hasNestedMultiStatement(f))}return!1}buildTernaryChain($){if($.length===0)return"undefined";if($.length===1)return this.extractExpression(this.unwrapIfBranch($[0]));let U=$[0];if(this.is(U,"if")){let[W,F,u,...f]=U,A=this.extractExpression(this.unwrapIfBranch(u)),Y=this.buildTernaryChain([...f,...$.slice(1)]);return`(${this.generate(F,"value")} ? ${A} : ${Y})`}return this.extractExpression(this.unwrapIfBranch(U))}collectVarsFromArray($,U){$.slice(1).forEach((W)=>{if(W===","||W==="...")return;if(typeof W==="string"){U.add(W);return}if(Array.isArray(W)){if(W[0]==="..."&&typeof W[1]==="string")U.add(W[1]);else if(W[0]==="array")this.collectVarsFromArray(W,U);else if(W[0]==="object")this.collectVarsFromObject(W,U)}})}collectVarsFromObject($,U){$.slice(1).forEach((W)=>{if(!Array.isArray(W))return;if(W[0]==="..."&&typeof W[1]==="string"){U.add(W[1]);return}if(W.length>=2){let[F,u,f]=W;if(f==="="){if(typeof F==="string")U.add(F)}else if(typeof u==="string")U.add(u);else if(Array.isArray(u)){if(u[0]==="array")this.collectVarsFromArray(u,U);else if(u[0]==="object")this.collectVarsFromObject(u,U)}}})}extractStringContent($){let U=j($).slice(1,-1),W=C($,"indent");if(W)U=U.replace(new RegExp(`\\n${W}`,"g"),`
|
|
472
|
+
`);if(C($,"initialChunk")&&U.startsWith(`
|
|
473
|
+
`))U=U.slice(1);if(C($,"finalChunk")&&U.endsWith(`
|
|
474
|
+
`))U=U.slice(0,-1);return U}processHeregex($){let U="",W=!1,F=0,u=()=>{let f=0,A=F-1;while(A>=0&&$[A]==="\\")f++,A--;return f%2===1};while(F<$.length){let f=$[F];if(f==="["&&!u()){W=!0,U+=f,F++;continue}if(f==="]"&&W&&!u()){W=!1,U+=f,F++;continue}if(W){U+=f,F++;continue}if(/\s/.test(f)){F++;continue}if(f==="#"){if(u()){U+=f,F++;continue}let A=F-1;while(A>=0&&$[A]==="\\")A--;if(A<F-1){U+=f,F++;continue}while(F<$.length&&$[F]!==`
|
|
475
|
+
`)F++;continue}U+=f,F++}return U}addJsExtensionAndAssertions($){if($ instanceof String)$=j($);if(typeof $!=="string")return $;let W=$.startsWith('"')||$.startsWith("'")?$.slice(1,-1):$,F=W.startsWith("./")||W.startsWith("../"),u=W,f="";if(F){let A=W.lastIndexOf("/"),Y=A>=0?W.substring(A+1):W;if(Y.includes(".")){if(Y.endsWith(".json"))f=" with { type: 'json' }"}else u=W+".js"}return`'${u}'`+f}containsIt($){if(!$)return!1;if($==="it"||$ instanceof String&&j($)==="it")return!0;if(typeof $!=="object")return!1;if(this.is($,"def")||this.is($,"->")||this.is($,"=>"))return!1;if(Array.isArray($))return $.some((U)=>this.containsIt(U));return!1}containsAwait($){if(!$)return!1;if($ instanceof String&&C($,"await")===!0)return!0;if(typeof $!=="object")return!1;if(this.is($,"await"))return!0;if(this.is($,"for-as")&&$[3]===!0)return!0;if(this.is($,"def")||this.is($,"->")||this.is($,"=>")||this.is($,"class"))return!1;if(Array.isArray($))return $.some((U)=>this.containsAwait(U));return!1}containsYield($){if(!$)return!1;if(typeof $!=="object")return!1;if(this.is($,"yield")||this.is($,"yield-from"))return!0;if(this.is($,"def")||this.is($,"->")||this.is($,"=>")||this.is($,"class"))return!1;if(Array.isArray($))return $.some((U)=>this.containsYield(U));return!1}extractMemberName($){if(this.is($,".")&&$[1]==="this")return $[2];if(this.is($,"computed"))return`[${this.generate($[1],"value")}]`;return $}getReactiveRuntime(){return`// ============================================================================
|
|
476
476
|
// Rip Reactive Runtime
|
|
477
477
|
// A minimal, fine-grained reactivity system
|
|
478
478
|
//
|
|
@@ -701,13 +701,13 @@ if (typeof globalThis !== 'undefined') {
|
|
|
701
701
|
}
|
|
702
702
|
|
|
703
703
|
// === End Reactive Runtime ===
|
|
704
|
-
`}}class
|
|
705
|
-
`),
|
|
704
|
+
`}}class J1{constructor($={}){this.options={showTokens:!1,showSExpr:!1,...$}}compile($,U){if(U)this.options={...this.options,...U};let W=null,F=$.split(`
|
|
705
|
+
`),u=F.findIndex((Q)=>Q==="__DATA__");if(u!==-1){let Q=F.slice(u+1);W=Q.length>0?Q.join(`
|
|
706
706
|
`)+`
|
|
707
|
-
`:"",$=
|
|
708
|
-
`)}let A=new
|
|
709
|
-
//# sourceMappingURL=data:application/json;base64,${
|
|
710
|
-
//# sourceMappingURL=${this.options.filename}.js.map`;if(_)Y=y1(_,
|
|
707
|
+
`:"",$=F.slice(0,u).join(`
|
|
708
|
+
`)}let A=new a().tokenize($);if(this.options.showTokens)A.forEach((Q)=>console.log(`${Q[0].padEnd(12)} ${JSON.stringify(Q[1])}`)),console.log();let Y=null,_=null;if(this.options.types==="emit"||this.options.types==="check"||this.options.types===!0)_=[...A];A=A.filter((Q)=>Q[0]!=="TYPE_DECL");while(A.length>0&&A[0][0]==="TERMINATOR")A.shift();if(A.every((Q)=>Q[0]==="TERMINATOR")){if(_)Y=y1(_,["program"]);return{tokens:A,sexpr:["program"],code:"",dts:Y,data:W,reactiveVars:{}}}u1.lexer={tokens:A,pos:0,setInput:function(){},lex:function(){if(this.pos>=this.tokens.length)return 1;let Q=this.tokens[this.pos++],Z=Q[1];if(Q.data)Z=new String(Z),Object.assign(Z,Q.data);return this.text=Z,this.loc=Q.loc,Q[0]}};let w;try{w=u1.parse($)}catch(Q){if(/\?\s*\([^)]*\?[^)]*:[^)]*\)\s*:/.test($)||/\?\s+\w+\s+\?\s+/.test($))throw Error("Nested ternary operators are not supported. Use if/else statements instead.");throw Q}if(this.options.showSExpr)console.log(p(w,0,!0)),console.log();let R=null;if(this.options.sourceMap){let Q=(this.options.filename||"output")+".js",Z=this.options.filename||"input.rip";R=new l1(Q,Z,$)}let z=new v({dataSection:W,skipPreamble:this.options.skipPreamble,skipRuntimes:this.options.skipRuntimes,skipExports:this.options.skipExports,reactiveVars:this.options.reactiveVars,sourceMap:R}),K=z.compile(w),J=R?R.toJSON():null,M=R?R.toReverseMap():null;if(J&&this.options.sourceMap==="inline"){let Q=typeof Buffer<"u"?Buffer.from(J).toString("base64"):btoa(J);K+=`
|
|
709
|
+
//# sourceMappingURL=data:application/json;base64,${Q}`}else if(J&&this.options.filename)K+=`
|
|
710
|
+
//# sourceMappingURL=${this.options.filename}.js.map`;if(_)Y=y1(_,w);return{tokens:A,sexpr:w,code:K,dts:Y,map:J,reverseMap:M,data:W,reactiveVars:z.reactiveVars}}compileToJS($){return this.compile($).code}compileToSExpr($){return this.compile($).sexpr}}K2(v,a);v.prototype.generateEnum=$2;function I1($,U={}){return new J1(U).compile($)}function s($,U={}){return new J1(U).compileToJS($)}function Q1(){return`globalThis.abort ??= (msg) => { if (msg) console.error(msg); process.exit(1); };
|
|
711
711
|
globalThis.assert ??= (v, msg) => { if (!v) throw new Error(msg || "Assertion failed"); };
|
|
712
712
|
globalThis.exit ??= (code) => process.exit(code || 0);
|
|
713
713
|
globalThis.kind ??= (v) => v != null ? (v.constructor?.name || Object.prototype.toString.call(v).slice(8, -1)).toLowerCase() : String(v);
|
|
@@ -720,12 +720,12 @@ globalThis.sleep ??= (ms) => new Promise(r => setTimeout(r, ms));
|
|
|
720
720
|
globalThis.todo ??= (msg) => { throw new Error(msg || "Not implemented"); };
|
|
721
721
|
globalThis.warn ??= console.warn;
|
|
722
722
|
globalThis.zip ??= (...a) => a[0].map((_, i) => a.map(b => b[i]));
|
|
723
|
-
`}function
|
|
723
|
+
`}function X1(){return new v({}).getReactiveRuntime()}function z1(){return new v({}).getComponentRuntime()}var D2="3.13.55",M2="2026-02-27@09:25:16GMT";if(typeof globalThis<"u"){if(!globalThis.__rip)Function(X1())();if(!globalThis.__ripComponent)Function(z1())()}var x3=($)=>{let U=$.match(/^[ \t]*(?=\S)/gm),W=Math.min(...(U||[]).map((F)=>F.length));return $.replace(RegExp(`^[ ]{${W}}`,"gm"),"").trim()};async function H2(){let $=[],U=document.querySelector('script[src$="rip.min.js"], script[src$="rip.js"]'),W=U?.getAttribute("data-src");if(W){for(let u of W.trim().split(/\s+/))if(u)$.push({url:u})}for(let u of document.querySelectorAll('script[type="text/rip"]'))if(u.src)$.push({url:u.src});else{let f=x3(u.textContent);if(f)$.push({code:f})}if($.length>0){await Promise.all($.map(async(A)=>{if(!A.url)return;try{let Y=await fetch(A.url);if(!Y.ok){console.error(`Rip: failed to fetch ${A.url} (${Y.status})`);return}A.code=await Y.text()}catch(Y){console.error(`Rip: failed to fetch ${A.url}:`,Y.message)}}));let u={skipRuntimes:!0,skipExports:!0},f=[];for(let A of $){if(!A.code)continue;try{f.push(s(A.code,u))}catch(Y){console.error("Rip compile error:",Y.message)}}if(f.length>0){let A=f.join(`
|
|
724
724
|
`),Y=U?.getAttribute("data-mount");if(Y){let _=U.getAttribute("data-target")||"body";A+=`
|
|
725
725
|
${Y}.mount(${JSON.stringify(_)});`}try{await(0,eval)(`(async()=>{
|
|
726
726
|
${A}
|
|
727
|
-
})()`)}catch(_){console.error("Rip runtime error:",_)}}}let
|
|
728
|
-
`,
|
|
729
|
-
${U}`).replace(/^let\s+[^;]+;\s*\n\s*/m,"");
|
|
730
|
-
`,z=
|
|
731
|
-
`:"",u=new Blob([w+z],{type:"application/javascript"}),J=URL.createObjectURL(u),X=await import(J),f){Z=k1(X);for(let Q in Z){let q=Z[Q];f.classes[Q]=q}}if(F&&W)F.setCompiled(W,X);return X};E2=function($){let U,F,W;return W=1000,F=30000,U=function(){let f;return f=new EventSource($),f.addEventListener("connected",function(){return W=1000,console.log("[Rip] Hot reload connected")}),f.addEventListener("reload",function(){return console.log("[Rip] Reloading..."),location.reload()}),f.addEventListener("css",function(){for(let u of document.querySelectorAll('link[rel="stylesheet"]'))$=new URL(u.href),$.searchParams.set("_t",Date.now()),u.href=$.toString()}),f.onerror=function(){return f.close(),setTimeout(U,W),W=Math.min(W*2,F)}},U()};var c2=function($={}){return d1($)},g2=function($){return $?.[A1]?$[A1]:$},k3=function($){return $?.[N1]===!0},m3=function($,U={}){let F,W,f,u,A;if(F=y(U.initial||null),f=y(!1),W=y(null),u=async function(){let Y;return f.value=!0,W.value=null,(async()=>{try{return Y=await $(),F.value=Y}catch(_){return W.value=_}finally{f.value=!1}})()},A={data:void 0,loading:void 0,error:void 0,refetch:u},Object.defineProperty(A,"data",{get:function(){return F.value}}),Object.defineProperty(A,"loading",{get:function(){return f.value}}),Object.defineProperty(A,"error",{get:function(){return W.value}}),!U.lazy)u();return A},v2=function($,U){let F,W;return F=D1(U),W=y(!!F()),u1(function(){let f;if(F())return f=setTimeout(function(){return W.value=!0},$),function(){return clearTimeout(f)};else return W.value=!1}),typeof U!=="function"?K1(W,U):W},i3=function($,U){let F,W;return F=D1(U),W=y(F()),u1(function(){let f,u;return u=F(),f=setTimeout(function(){return W.value=u},$),function(){return clearTimeout(f)}}),typeof U!=="function"?K1(W,U):W},n3=function($,U){let F,W,f;return F=D1(U),f=y(F()),W=0,u1(function(){let u,A,Y,_;if(_=F(),u=Date.now(),A=$-(u-W),A<=0)return f.value=_,W=u;else return Y=setTimeout(function(){return f.value=F(),W=Date.now()},A),function(){return clearTimeout(Y)}}),typeof U!=="function"?K1(f,U):f},p3=function($,U){let F,W;return F=D1(U),W=y(!!F()),u1(function(){let f;if(F())return W.value=!0;else return f=setTimeout(function(){return W.value=!1},$),function(){return clearTimeout(f)}}),typeof U!=="function"?K1(W,U):W},l2=function(){let $,U,F,W;return U=new Map,W=[],$=new Map,F=function(f,u){for(let A of W)A(f,u)},{read:function(f){return U.get(f)},write:function(f,u){let A;return A=!U.has(f),U.set(f,u),$.delete(f),F(A?"create":"change",f)},del:function(f){return U.delete(f),$.delete(f),F("delete",f)},exists:function(f){return U.has(f)},size:function(){return U.size},list:function(f=""){let u,A,Y;Y=[],u=f?f+"/":"";for(let[_]of U)if(_.startsWith(u)){if(A=_.slice(u.length),A.includes("/"))continue;Y.push(_)}return Y},listAll:function(f=""){let u,A;A=[],u=f?f+"/":"";for(let[Y]of U)if(Y.startsWith(u))A.push(Y);return A},load:function(f){for(let u in f){let A=f[u];U.set(u,A)}},watch:function(f){return W.push(f),function(){return W.splice(W.indexOf(f),1)}},getCompiled:function(f){return $.get(f)},setCompiled:function(f,u){return $.set(f,u)}}},x2=function($,U={}){let F,W,f,u,A,Y,_,Z,w,z,X,K,D,R,J,Q,q,O,M,G,I;if(q=U.root||"components",w=U.base||"",z=U.hash||!1,D=U.onError||null,M=function(H){return w&&H.startsWith(w)?H.slice(w.length)||"/":H},Z=function(H){return w?w+H:H},J=function(){let H;if(z){if(H=location.hash.slice(1),!H)return"/";return H[0]==="/"?H:"/"+H}else return location.pathname+location.search+location.hash},I=function(H){return z?H==="/"?location.pathname:"#"+H.slice(1):Z(H)},A=y(M(z?J():location.pathname)),u=y({}),_=y(null),W=y([]),Y=y({}),F=y(""),f=v2(100,y(!1)),G=E1($,q),X=new Set,$.watch(function(H,P){if(!P.startsWith(q+"/"))return;return G=E1($,q)}),Q=function(H){let P,E,B,S,N;if(S=H.split("?")[0].split("#")[0],E=M(S),E=E[0]==="/"?E:"/"+E,B=H.split("?")[1]?.split("#")[0]||"",P=H.includes("#")?H.split("#")[1]:"",N=h2(E,G.routes),N){G2(function(){return A.value=E,u.value=N.params,_.value=N.route,W.value=L2(N.route.file,q,G.layouts),Y.value=Object.fromEntries(new URLSearchParams(B)),F.value=P});for(let L of X)L(O.current);return!0}if(D)D({status:404,path:E});return!1},R=function(){return Q(J())},typeof window<"u")window.addEventListener("popstate",R);if(K=function(H){let P,E,B;if(H.button!==0||H.metaKey||H.ctrlKey||H.shiftKey||H.altKey)return;E=H.target;while(E&&E.tagName!=="A")E=E.parentElement;if(!E?.href)return;if(B=new URL(E.href,location.origin),B.origin!==location.origin)return;if(E.target==="_blank"||E.hasAttribute("data-external"))return;return H.preventDefault(),P=z&&B.hash?B.hash.slice(1)||"/":B.pathname+B.search+B.hash,O.push(P)},typeof document<"u")document.addEventListener("click",K);return O={push:function(H){return Q(H)?history.pushState(null,"",I(A.read())):void 0},replace:function(H){return Q(H)?history.replaceState(null,"",I(A.read())):void 0},back:function(){return history.back()},forward:function(){return history.forward()},current:void 0,path:void 0,params:void 0,route:void 0,layouts:void 0,query:void 0,hash:void 0,navigating:void 0,onNavigate:function(H){return X.add(H),function(){return X.delete(H)}},rebuild:function(){return G=E1($,q)},routes:void 0,init:function(){return Q(J()),O},destroy:function(){if(typeof window<"u")window.removeEventListener("popstate",R);if(typeof document<"u")document.removeEventListener("click",K);return X.clear()}},Object.defineProperty(O,"current",{get:function(){return{path:A.value,params:u.value,route:_.value,layouts:W.value,query:Y.value,hash:F.value}}}),Object.defineProperty(O,"path",{get:function(){return A.value}}),Object.defineProperty(O,"params",{get:function(){return u.value}}),Object.defineProperty(O,"route",{get:function(){return _.value}}),Object.defineProperty(O,"layouts",{get:function(){return W.value}}),Object.defineProperty(O,"query",{get:function(){return Y.value}}),Object.defineProperty(O,"hash",{get:function(){return F.value}}),Object.defineProperty(O,"navigating",{get:function(){return f.value},set:function(H){return f.value=H}}),Object.defineProperty(O,"routes",{get:function(){return G.routes}}),O},k2=function($={}){let U,F,W,f,u,A,Y,_,Z,w,z,X,K,D,R,J,Q,q,O,M,G,I;if({router:M,app:U,components:u,resolver:O,compile:W,target:G,onError:Q}=$,A=typeof G==="string"?document.querySelector(G):G||document.getElementById("app"),!A)A=document.createElement("div"),A.id="app",document.body.appendChild(A);return A.style.opacity="0",Y=null,w=null,Z=null,_=[],K=[],R=A,X=0,z=null,f=new Map,D=$.cacheSize||10,F=function(){let H,P;if(Y&&w){if(Y.beforeUnmount)Y.beforeUnmount();if(f.set(w,Y),f.size>D){if(P=f.keys().next().value,H=f.get(P),H.unmounted)H.unmounted();f.delete(P)}return Y=null,w=null}},I=function(){F();for(let H=K.length-1;H>=0;H--){let P=K[H];if(P.beforeUnmount)P.beforeUnmount();if(P.unmounted)P.unmounted();P._target?.remove()}return K=[],R=A},u.watch(function(H,P){let E;if(f.has(P)){if(E=f.get(P),E.unmounted)E.unmounted();return f.delete(P)}}),J=async function(H){let P,E,B,S,N,L,T,h,C,l,b,k,c,M1,f1,$1,H1,L1,v,o1,S1,U1;if({route:v,params:$1,layouts:h,query:L1}=H,!v)return;if(v.file===w&&JSON.stringify($1)===JSON.stringify(Z))return;return Z=$1,S=++X,M.navigating=!0,(async()=>{try{if(S1=u.read(v.file),!S1){if(Q)Q({status:404,message:`File not found: ${v.file}`});M.navigating=!1;return}if(k=await B1(S1,W,u,v.file,O),S!==X){M.navigating=!1;return}if(P=m1(k),!P){if(Q)Q({status:500,message:`No component found in ${v.file}`});M.navigating=!1;return}if(b=!P2(h,_),M1=Y?._target,b)I();else F();if(c=b?A:R,b&&h.length>0){A.innerHTML="",c=A;for(let m of h){if(l=u.read(m),!l)continue;if(C=await B1(l,W,u,m,O),S!==X){M.navigating=!1;return}if(E=m1(C),!E)continue;if(L=new E({app:U,params:$1,router:M}),L.beforeMount)L.beforeMount();U1=document.createElement("div"),U1.setAttribute("data-layout",m),c.appendChild(U1),L.mount(U1),K.push(L),o1=U1.querySelector("slot")||U1,c=o1}_=[...h],R=c}else if(b)A.innerHTML="",_=[],R=A;if(B=f.get(v.file),B)f.delete(v.file),c.appendChild(B._target),Y=B,w=v.file;else{if(f1=document.createElement("div"),f1.setAttribute("data-component",v.file),c.appendChild(f1),T=new P({app:U,params:$1,query:L1,router:M}),T.beforeMount)T.beforeMount();if(T.mount(f1),Y=T,w=v.file,T.load)await T.load($1,L1)}return M1?.remove(),M.navigating=!1,A.style.opacity==="0"?document.fonts.ready.then(function(){return requestAnimationFrame(function(){return A.style.transition="opacity 150ms ease-in",A.style.opacity="1"})}):void 0}catch(m){if(M.navigating=!1,A.style.opacity="1",console.error(`Renderer: error mounting ${v.file}:`,m),Q)Q({status:500,message:m.message,error:m});N=!1;for(let h1=K.length-1;h1>=0;h1--){let a1=K[h1];if(a1.onError)try{a1.onError(m),N=!0;break}catch(m2){console.error("Renderer: error boundary failed:",m2)}}return(()=>{if(!N)return H1=document.createElement("pre"),H1.style.cssText="color:red;padding:1em",H1.textContent=m.stack||m.message,A.innerHTML="",A.appendChild(H1)})()}})()},q={start:function(){return z=u1(function(){let H;return H=M.current,H.route?J(H):void 0}),M.init(),q},stop:function(){if(I(),z)z(),z=null;return A.innerHTML=""},remount:function(){let H;return H=M.current,H.route?J(H):void 0},cache:f},q},d3=async function($="",U={}){let F,W,f,u,A,Y,_,Z,w,z,X,K,D,R,J,Q,q,O,M,G,I,H;if(globalThis.__ripLaunched=!0,typeof $==="object")U=$,$="";if($=$.replace(/\/+$/,""),H=U.target||"#app",w=U.compile||null,J=U.persist||!1,D=U.hash||!1,!w)w=globalThis?.compileToJS||null;if(typeof document<"u"&&!document.querySelector(H))z=document.createElement("div"),z.id=H.replace(/^#/,""),document.body.prepend(z);if(U.bundle)Y=U.bundle;else if(U.bundleUrl){if(R={},K=`__rip_etag_${U.bundleUrl}`,_=sessionStorage.getItem(K),_)R["If-None-Match"]=_;if(q=await fetch(U.bundleUrl,{headers:R}),q.status===304)Y=JSON.parse(sessionStorage.getItem(`${K}_data`));else if(q.ok){if(Y=await q.json(),X=q.headers.get("etag"),X)sessionStorage.setItem(K,X),sessionStorage.setItem(`${K}_data`,JSON.stringify(Y))}else throw Error(`launch: ${U.bundleUrl} (${q.status})`)}else throw Error("launch: no bundle or bundleUrl provided");if(u=c2({components:{},routes:{},data:{}}),Y.data)u.data=Y.data;if(Y.routes)u.routes=Y.routes;if(J&&typeof sessionStorage<"u"){f=`__rip_${$}`,W=J==="local"?localStorage:sessionStorage;try{if(G=W.getItem(f),G){I=JSON.parse(G);for(let P in I){let E=I[P];u.data[P]=E}}}catch{}F=function(){return(()=>{try{return W.setItem(f,JSON.stringify(g2(u.data)))}catch{return null}})()},u1(function(){let P;return n1.value,P=setTimeout(F,2000),function(){return clearTimeout(P)}}),window.addEventListener("beforeunload",F)}if(A=l2(),Y.components)A.load(Y.components);if(Z=`__rip_${$.replace(/\//g,"_")||"app"}`,O={map:I2(A),classes:{},key:Z},typeof globalThis<"u")globalThis[Z]=O.classes;if(u.data.title&&typeof document<"u")document.title=u.data.title;if(M=x2(A,{root:"components",base:$,hash:D,onError:function(P){return console.error(`[Rip] Error ${P.status}: ${P.message||P.path}`)}}),Q=k2({router:M,app:u,components:A,resolver:O,compile:w,target:H,onError:function(P){return console.error(`[Rip] ${P.message}`,P.error)}}),Q.start(),Y.data?.watch)E2(`${$}/watch`);if(typeof window<"u")window.app=u,window.__RIP__={app:u,components:A,router:M,renderer:Q,cache:Q.cache,version:"0.3.0"};return{app:u,components:A,router:M,renderer:Q}};e.modules["app.rip"]=T1;for(let[$,U]of Object.entries(T1))if(typeof U==="function")globalThis[$]=U;})();
|
|
727
|
+
})()`)}catch(_){console.error("Rip runtime error:",_)}}}let F=document.querySelector("script[data-launch]");if(F&&!globalThis.__ripLaunched){let u=f1.modules?.["app.rip"];if(u?.launch){let f=F.getAttribute("data-launch")||"",A=F.getAttribute("data-hash"),Y=F.getAttribute("data-persist"),_={hash:A!=="false"};if(f)_.bundleUrl=f;if(Y!=null)_.persist=Y==="local"?"local":!0;await u.launch("",_)}}}async function f1($){for(let[A,Y]of Object.entries(f1.modules))if($.includes(A))return Y;let U=await fetch($).then((A)=>{if(!A.ok)throw Error(`importRip: ${$} (${A.status})`);return A.text()}),W=s(U),F=`// ${$}
|
|
728
|
+
`,u=new Blob([F+W],{type:"application/javascript"});return await import(URL.createObjectURL(u))}f1.modules={};function q2($){try{let U=$.replace(/^/gm," "),F=s(`do ->
|
|
729
|
+
${U}`).replace(/^let\s+[^;]+;\s*\n\s*/m,"");F=F.replace(/^const\s+(\w+)\s*=/gm,"globalThis.$1 =");let u=(0,eval)(F);if(u&&typeof u.then==="function")return u.then((f)=>{if(f!==void 0)globalThis._=f;return f});if(u!==void 0)globalThis._=u;return u}catch(U){console.error("Rip compilation error:",U.message);return}}if(typeof globalThis<"u")globalThis.rip=q2,globalThis.importRip=f1,globalThis.compileToJS=s,globalThis.__ripExports={compile:I1,compileToJS:s,formatSExpr:p,getStdlibCode:Q1,VERSION:D2,BUILD_DATE:M2,getReactiveRuntime:X1,getComponentRuntime:z1};if(typeof document<"u")globalThis.__ripScriptsReady=new Promise(($)=>{let U=()=>H2().then($);if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",()=>queueMicrotask(U));else queueMicrotask(U)});var T1={};t1(T1,{throttle:()=>n3,stash:()=>c2,setContext:()=>V2,raw:()=>g2,launch:()=>d3,isStash:()=>k3,hold:()=>p3,hasContext:()=>S2,getContext:()=>T2,delay:()=>v2,debounce:()=>i3,createRouter:()=>x2,createResource:()=>m3,createRenderer:()=>k2,createComponents:()=>l2});var O2,i1,Y1,t,N1,G2,$1,b,x1,D1,M1,n1,P2,I2,E1,B1,E2,B2,N2,k1,m1,T2,L2,p1,S2,K1,d1,h2,j2,V2,C2,y2,r1,b2;globalThis.abort??=($)=>{if($)console.error($);process.exit(1)};globalThis.assert??=($,U)=>{if(!$)throw Error(U||"Assertion failed")};globalThis.exit??=($)=>process.exit($||0);globalThis.kind??=($)=>$!=null?($.constructor?.name||Object.prototype.toString.call($).slice(8,-1)).toLowerCase():String($);globalThis.noop??=()=>{};globalThis.p??=console.log;globalThis.pp??=($)=>{return console.log(JSON.stringify($,null,2)),$};globalThis.raise??=($,U)=>{throw U!==void 0?new $(U):Error($)};globalThis.rand??=($,U)=>U!==void 0?($>U&&([$,U]=[U,$]),Math.floor(Math.random()*(U-$+1)+$)):$?Math.floor(Math.random()*$):Math.random();globalThis.sleep??=($)=>new Promise((U)=>setTimeout(U,$));globalThis.todo??=($)=>{throw Error($||"Not implemented")};globalThis.warn??=console.warn;globalThis.zip??=(...$)=>$[0].map((U,W)=>$.map((F)=>F[W]));({__state:b,__effect:$1,__batch:G2}=globalThis.__rip);({setContext:V2,getContext:T2,hasContext:S2}=globalThis.__ripComponent||{});N1=Symbol("stash");t=Symbol("signals");Y1=Symbol("raw");i1=new WeakMap;x1=0;n1=b(0);p1=function($,U){let W;if(!$[t])Object.defineProperty($,t,{value:new Map,enumerable:!1});if(W=$[t].get(U),!W)W=b($[U]),$[t].set(U,W);return W};K1=function($){return p1($,Symbol.for("keys"))};b2=function($){let U;if(!($!=null&&typeof $==="object"))return $;if($[N1])return $;if($ instanceof Date||$ instanceof RegExp||$ instanceof Map||$ instanceof Set||$ instanceof Promise)return $;if(U=i1.get($),U)return U;return d1($)};d1=function($){let U,W;return W=null,U={get:function(F,u){let f,A;if(u===N1)return!0;if(u===Y1)return F;if(typeof u==="symbol")return Reflect.get(F,u);if(u==="length"&&Array.isArray(F))return K1(F).value,F.length;if(u==="get")return function(Y){return C2(W,Y)};if(u==="set")return function(Y,_){return y2(W,Y,_)};if(f=p1(F,u),A=f.value,A!=null&&typeof A==="object")return b2(A);return A},set:function(F,u,f){let A,Y;if(A=F[u],Y=f?.[Y1]?f[Y1]:f,Y===A)return!0;if(F[u]=Y,F[t]?.has(u))F[t].get(u).value=Y;if(A===void 0&&Y!==void 0)K1(F).value=++x1;return n1.value++,!0},deleteProperty:function(F,u){let f;if(delete F[u],f=F[t]?.get(u),f)f.value=void 0;return K1(F).value=++x1,!0},ownKeys:function(F){return K1(F).value,Reflect.ownKeys(F)}},W=new Proxy($,U),i1.set($,W),W};O2=/([./][^./\[\s]+|\[[-+]?\d+\]|\[(?:"[^"]+"|'[^']+')\])/;r1=function($){let U,W,F,u,f;F=("."+$).split(O2),F.shift(),f=[],W=0;while(W<F.length){if(u=F[W],U=u[0],U==="."||U==="/")f.push(u.slice(1));else if(U==="[")if(u[1]==='"'||u[1]==="'")f.push(u.slice(2,-2));else f.push(+u.slice(1,-1));W+=2}return f};C2=function($,U){let W,F;F=r1(U),W=$;for(let u of F){if(W==null)return;W=W[u]}return W};y2=function($,U,W){let F,u;u=r1(U),F=$;for(let f=0;f<u.length;f++){let A=u[f];if(f===u.length-1)F[A]=W;else{if(F[A]==null)F[A]={};F=F[A]}}return W};M1=function($){return typeof $==="function"?$:function(){return $.value}};D1=function($,U){let W;return W={read:function(){return $.read()}},Object.defineProperty(W,"value",{get:function(){return $.value},set:function(F){return U.value=F}}),W};N2=function($){let U;if(U=$.replace(/\.rip$/,""),U=U.replace(/\[\.\.\.(\w+)\]/g,"*$1"),U=U.replace(/\[(\w+)\]/g,":$1"),U==="index")return"/";return U=U.replace(/\/index$/,""),"/"+U};j2=function($){let U,W;return U=[],W=$.replace(/\*(\w+)/g,function(F,u){return U.push(u),"(.+)"}).replace(/:(\w+)/g,function(F,u){return U.push(u),"([^/]+)"}),{regex:new RegExp("^"+W+"$"),names:U}};h2=function($,U){let W,F;for(let u of U)if(W=$.match(u.regex.regex),W){F={};for(let f=0;f<u.regex.names.length;f++){let A=u.regex.names[f];F[A]=decodeURIComponent(W[f+1])}return{route:u,params:F}}return null};E1=function($,U="components"){let W,F,u,f,A,Y,_,w,R;_=[],u=new Map,W=$.listAll(U);for(let z of W){if(Y=z.slice(U.length+1),!Y.endsWith(".rip"))continue;if(f=Y.split("/").pop(),f==="_layout.rip"){F=Y==="_layout.rip"?"":Y.slice(0,-12),u.set(F,z);continue}if(f.startsWith("_"))continue;if(w=Y.split("/"),w.length>1&&w.some(function(K,J){return J<w.length-1&&K.startsWith("_")}))continue;R=N2(Y),A=j2(R),_.push({pattern:R,regex:A,file:z,rel:Y})}return _.sort(function(z,K){let J,M,Q,Z;if(M=(z.pattern.match(/:/g)||[]).length,Z=(K.pattern.match(/:/g)||[]).length,J=z.pattern.includes("*")?1:0,Q=K.pattern.includes("*")?1:0,J!==Q)return J-Q;if(M!==Z)return M-Z;return z.pattern.localeCompare(K.pattern)}),{routes:_,layouts:u}};L2=function($,U,W){let F,u,f,A;if(F=[],f=$.slice(U.length+1),A=f.split("/"),u="",W.has(""))F.push(W.get(""));for(let Y=0;Y<A.length;Y++){let _=A[Y];if(Y===A.length-1)break;if(u=u?u+"/"+_:_,W.has(u))F.push(W.get(u))}return F};P2=function($,U){if($.length!==U.length)return!1;for(let W=0;W<$.length;W++)if($[W]!==U[W])return!1;return!0};m1=function($){for(let U in $){let W=$[U];if(typeof W==="function"&&(W.prototype?.mount||W.prototype?._create))return W}return typeof $.default==="function"?$.default:void 0};k1=function($){let U;U={};for(let W in $){let F=$[W];if(typeof F==="function"&&(F.prototype?.mount||F.prototype?._create))U[W]=F}return U};B2=function($){let U;return U=$.split("/").pop().replace(/\.rip$/,""),U.replace(/(^|[-_])([a-z])/g,function(W,F,u){return u.toUpperCase()})};I2=function($,U="components"){let W,F,u;F={};for(let f of $.listAll(U)){if(!f.endsWith(".rip"))continue;if(W=f.split("/").pop(),W.startsWith("_"))continue;if(u=B2(f),F[u])console.warn(`[Rip] Component name collision: ${u} (${F[u]} vs ${f})`);F[u]=f}return F};B1=async function($,U,W=null,F=null,u=null){let f,A,Y,_,w,R,z,K,J,M,Q,Z;if(W&&F){if(A=W.getCompiled(F),A)return A}if(z=U($),u){M={};for(let X in u.map){let D=u.map[X];if(D!==F&&z.includes(`new ${X}(`)){if(!u.classes[X]){if(_=W.read(D),_){Y=await B1(_,U,W,D,u),w=k1(Y);for(let O in w){let q=w[O];u.classes[O]=q}}}if(u.classes[X])M[X]=!0}}if(J=Object.keys(M),J.length>0)Q=`const {${J.join(", ")}} = globalThis['${u.key}'];
|
|
730
|
+
`,z=Q+z}if(R=F?`// ${F}
|
|
731
|
+
`:"",f=new Blob([R+z],{type:"application/javascript"}),Z=URL.createObjectURL(f),K=await import(Z),u){w=k1(K);for(let X in w){let D=w[X];u.classes[X]=D}}if(W&&F)W.setCompiled(F,K);return K};E2=function($){let U,W,F;return F=1000,W=30000,U=function(){let u;return u=new EventSource($),u.addEventListener("connected",function(){return F=1000,console.log("[Rip] Hot reload connected")}),u.addEventListener("reload",function(){return console.log("[Rip] Reloading..."),location.reload()}),u.addEventListener("css",function(){for(let f of document.querySelectorAll('link[rel="stylesheet"]'))$=new URL(f.href),$.searchParams.set("_t",Date.now()),f.href=$.toString()}),u.onerror=function(){return u.close(),setTimeout(U,F),F=Math.min(F*2,W)}},U()};var c2=function($={}){return d1($)},g2=function($){return $?.[Y1]?$[Y1]:$},k3=function($){return $?.[N1]===!0},m3=function($,U={}){let W,F,u,f,A;if(W=b(U.initial||null),u=b(!1),F=b(null),f=async function(){let Y;return u.value=!0,F.value=null,(async()=>{try{return Y=await $(),W.value=Y}catch(_){return F.value=_}finally{u.value=!1}})()},A={data:void 0,loading:void 0,error:void 0,refetch:f},Object.defineProperty(A,"data",{get:function(){return W.value}}),Object.defineProperty(A,"loading",{get:function(){return u.value}}),Object.defineProperty(A,"error",{get:function(){return F.value}}),!U.lazy)f();return A},v2=function($,U){let W,F;return W=M1(U),F=b(!!W()),$1(function(){let u;if(W())return u=setTimeout(function(){return F.value=!0},$),function(){return clearTimeout(u)};else return F.value=!1}),typeof U!=="function"?D1(F,U):F},i3=function($,U){let W,F;return W=M1(U),F=b(W()),$1(function(){let u,f;return f=W(),u=setTimeout(function(){return F.value=f},$),function(){return clearTimeout(u)}}),typeof U!=="function"?D1(F,U):F},n3=function($,U){let W,F,u;return W=M1(U),u=b(W()),F=0,$1(function(){let f,A,Y,_;if(_=W(),f=Date.now(),A=$-(f-F),A<=0)return u.value=_,F=f;else return Y=setTimeout(function(){return u.value=W(),F=Date.now()},A),function(){return clearTimeout(Y)}}),typeof U!=="function"?D1(u,U):u},p3=function($,U){let W,F;return W=M1(U),F=b(!!W()),$1(function(){let u;if(W())return F.value=!0;else return u=setTimeout(function(){return F.value=!1},$),function(){return clearTimeout(u)}}),typeof U!=="function"?D1(F,U):F},l2=function(){let $,U,W,F;return U=new Map,F=[],$=new Map,W=function(u,f){for(let A of F)A(u,f)},{read:function(u){return U.get(u)},write:function(u,f){let A;return A=!U.has(u),U.set(u,f),$.delete(u),W(A?"create":"change",u)},del:function(u){return U.delete(u),$.delete(u),W("delete",u)},exists:function(u){return U.has(u)},size:function(){return U.size},list:function(u=""){let f,A,Y;Y=[],f=u?u+"/":"";for(let[_]of U)if(_.startsWith(f)){if(A=_.slice(f.length),A.includes("/"))continue;Y.push(_)}return Y},listAll:function(u=""){let f,A;A=[],f=u?u+"/":"";for(let[Y]of U)if(Y.startsWith(f))A.push(Y);return A},load:function(u){for(let f in u){let A=u[f];U.set(f,A)}},watch:function(u){return F.push(u),function(){return F.splice(F.indexOf(u),1)}},getCompiled:function(u){return $.get(u)},setCompiled:function(u,f){return $.set(u,f)}}},x2=function($,U={}){let W,F,u,f,A,Y,_,w,R,z,K,J,M,Q,Z,X,D,O,q,G,P;if(D=U.root||"components",R=U.base||"",z=U.hash||!1,M=U.onError||null,q=function(H){return R&&H.startsWith(R)?H.slice(R.length)||"/":H},w=function(H){return R?R+H:H},Z=function(){let H;if(z){if(H=location.hash.slice(1),!H)return"/";return H[0]==="/"?H:"/"+H}else return location.pathname+location.search+location.hash},P=function(H){return z?H==="/"?location.pathname:"#"+H.slice(1):w(H)},A=b(q(z?Z():location.pathname)),f=b({}),_=b(null),F=b([]),Y=b({}),W=b(""),u=v2(100,b(!1)),G=E1($,D),K=new Set,$.watch(function(H,I){if(!I.startsWith(D+"/"))return;return G=E1($,D)}),X=function(H){let I,E,B,T,h;if(T=H.split("?")[0].split("#")[0],E=q(T),E=E[0]==="/"?E:"/"+E,B=H.split("?")[1]?.split("#")[0]||"",I=H.includes("#")?H.split("#")[1]:"",h=h2(E,G.routes),h){G2(function(){return A.value=E,f.value=h.params,_.value=h.route,F.value=L2(h.route.file,D,G.layouts),Y.value=Object.fromEntries(new URLSearchParams(B)),W.value=I});for(let N of K)N(O.current);return!0}if(M)M({status:404,path:E});return!1},Q=function(){return X(Z())},typeof window<"u")window.addEventListener("popstate",Q);if(J=function(H){let I,E,B;if(H.button!==0||H.metaKey||H.ctrlKey||H.shiftKey||H.altKey)return;E=H.target;while(E&&E.tagName!=="A")E=E.parentElement;if(!E?.href)return;if(B=new URL(E.href,location.origin),B.origin!==location.origin)return;if(E.target==="_blank"||E.hasAttribute("data-external"))return;return H.preventDefault(),I=z&&B.hash?B.hash.slice(1)||"/":B.pathname+B.search+B.hash,O.push(I)},typeof document<"u")document.addEventListener("click",J);return O={push:function(H){return X(H)?history.pushState(null,"",P(A.read())):void 0},replace:function(H){return X(H)?history.replaceState(null,"",P(A.read())):void 0},back:function(){return history.back()},forward:function(){return history.forward()},current:void 0,path:void 0,params:void 0,route:void 0,layouts:void 0,query:void 0,hash:void 0,navigating:void 0,onNavigate:function(H){return K.add(H),function(){return K.delete(H)}},rebuild:function(){return G=E1($,D)},routes:void 0,init:function(){return X(Z()),O},destroy:function(){if(typeof window<"u")window.removeEventListener("popstate",Q);if(typeof document<"u")document.removeEventListener("click",J);return K.clear()}},Object.defineProperty(O,"current",{get:function(){return{path:A.value,params:f.value,route:_.value,layouts:F.value,query:Y.value,hash:W.value}}}),Object.defineProperty(O,"path",{get:function(){return A.value}}),Object.defineProperty(O,"params",{get:function(){return f.value}}),Object.defineProperty(O,"route",{get:function(){return _.value}}),Object.defineProperty(O,"layouts",{get:function(){return F.value}}),Object.defineProperty(O,"query",{get:function(){return Y.value}}),Object.defineProperty(O,"hash",{get:function(){return W.value}}),Object.defineProperty(O,"navigating",{get:function(){return u.value},set:function(H){return u.value=H}}),Object.defineProperty(O,"routes",{get:function(){return G.routes}}),O},k2=function($={}){let U,W,F,u,f,A,Y,_,w,R,z,K,J,M,Q,Z,X,D,O,q,G,P;if({router:q,app:U,components:f,resolver:O,compile:F,target:G,onError:X}=$,A=typeof G==="string"?document.querySelector(G):G||document.getElementById("app"),!A)A=document.createElement("div"),A.id="app",document.body.appendChild(A);return A.style.opacity="0",Y=null,R=null,w=null,_=[],J=[],Q=A,K=0,z=null,u=new Map,M=$.cacheSize||10,W=function(){let H,I;if(Y&&R){if(Y.beforeUnmount)Y.beforeUnmount();if(u.set(R,Y),u.size>M){if(I=u.keys().next().value,H=u.get(I),H.unmounted)H.unmounted();u.delete(I)}return Y=null,R=null}},P=function(){W();for(let H=J.length-1;H>=0;H--){let I=J[H];if(I.beforeUnmount)I.beforeUnmount();if(I.unmounted)I.unmounted();I._target?.remove()}return J=[],Q=A},f.watch(function(H,I){let E;if(u.has(I)){if(E=u.get(I),E.unmounted)E.unmounted();return u.delete(I)}}),Z=async function(H){let I,E,B,T,h,N,S,L,V,y,g,x,c,m,U1,r,H1,L1,l,o1,S1,F1;if({route:l,params:r,layouts:L,query:L1}=H,!l)return;if(l.file===R&&JSON.stringify(r)===JSON.stringify(w))return;return w=r,T=++K,q.navigating=!0,(async()=>{try{if(S1=f.read(l.file),!S1){if(X)X({status:404,message:`File not found: ${l.file}`});q.navigating=!1;return}if(x=await B1(S1,F,f,l.file,O),T!==K){q.navigating=!1;return}if(I=m1(x),!I){if(X)X({status:500,message:`No component found in ${l.file}`});q.navigating=!1;return}if(g=!P2(L,_),m=Y?._target,g)P();else W();if(c=g?A:Q,g&&L.length>0){A.innerHTML="",c=A;for(let i of L){if(y=f.read(i),!y)continue;if(V=await B1(y,F,f,i,O),T!==K){q.navigating=!1;return}if(E=m1(V),!E)continue;if(N=new E({app:U,params:r,router:q}),N.beforeMount)N.beforeMount();F1=document.createElement("div"),F1.setAttribute("data-layout",i),c.appendChild(F1),N.mount(F1),J.push(N),o1=F1.querySelector("slot")||F1,c=o1}_=[...L],Q=c}else if(g)A.innerHTML="",_=[],Q=A;if(B=u.get(l.file),B)u.delete(l.file),c.appendChild(B._target),Y=B,R=l.file;else{if(U1=document.createElement("div"),U1.setAttribute("data-component",l.file),c.appendChild(U1),S=new I({app:U,params:r,query:L1,router:q}),S.beforeMount)S.beforeMount();if(S.mount(U1),Y=S,R=l.file,S.load)await S.load(r,L1)}return m?.remove(),q.navigating=!1,A.style.opacity==="0"?document.fonts.ready.then(function(){return requestAnimationFrame(function(){return A.style.transition="opacity 150ms ease-in",A.style.opacity="1"})}):void 0}catch(i){if(q.navigating=!1,A.style.opacity="1",console.error(`Renderer: error mounting ${l.file}:`,i),X)X({status:500,message:i.message,error:i});h=!1;for(let h1=J.length-1;h1>=0;h1--){let a1=J[h1];if(a1.onError)try{a1.onError(i),h=!0;break}catch(m2){console.error("Renderer: error boundary failed:",m2)}}return(()=>{if(!h)return H1=document.createElement("pre"),H1.style.cssText="color:red;padding:1em",H1.textContent=i.stack||i.message,A.innerHTML="",A.appendChild(H1)})()}})()},D={start:function(){return z=$1(function(){let H;return H=q.current,H.route?Z(H):void 0}),q.init(),D},stop:function(){if(P(),z)z(),z=null;return A.innerHTML=""},remount:function(){let H;return H=q.current,H.route?Z(H):void 0},cache:u},D},d3=async function($="",U={}){let W,F,u,f,A,Y,_,w,R,z,K,J,M,Q,Z,X,D,O,q,G,P,H;if(globalThis.__ripLaunched=!0,typeof $==="object")U=$,$="";if($=$.replace(/\/+$/,""),H=U.target||"#app",R=U.compile||null,Z=U.persist||!1,M=U.hash||!1,!R)R=globalThis?.compileToJS||null;if(typeof document<"u"&&!document.querySelector(H))z=document.createElement("div"),z.id=H.replace(/^#/,""),document.body.prepend(z);if(U.bundle)Y=U.bundle;else if(U.bundleUrl){if(Q={},J=`__rip_etag_${U.bundleUrl}`,_=sessionStorage.getItem(J),_)Q["If-None-Match"]=_;if(D=await fetch(U.bundleUrl,{headers:Q}),D.status===304)Y=JSON.parse(sessionStorage.getItem(`${J}_data`));else if(D.ok){if(Y=await D.json(),K=D.headers.get("etag"),K)sessionStorage.setItem(J,K),sessionStorage.setItem(`${J}_data`,JSON.stringify(Y))}else throw Error(`launch: ${U.bundleUrl} (${D.status})`)}else throw Error("launch: no bundle or bundleUrl provided");if(f=c2({components:{},routes:{},data:{}}),Y.data)f.data=Y.data;if(Y.routes)f.routes=Y.routes;if(Z&&typeof sessionStorage<"u"){u=`__rip_${$}`,F=Z==="local"?localStorage:sessionStorage;try{if(G=F.getItem(u),G){P=JSON.parse(G);for(let I in P){let E=P[I];f.data[I]=E}}}catch{}W=function(){return(()=>{try{return F.setItem(u,JSON.stringify(g2(f.data)))}catch{return null}})()},$1(function(){let I;return n1.value,I=setTimeout(W,2000),function(){return clearTimeout(I)}}),window.addEventListener("beforeunload",W)}if(A=l2(),Y.components)A.load(Y.components);if(w=`__rip_${$.replace(/\//g,"_")||"app"}`,O={map:I2(A),classes:{},key:w},typeof globalThis<"u")globalThis[w]=O.classes;if(f.data.title&&typeof document<"u")document.title=f.data.title;if(q=x2(A,{root:"components",base:$,hash:M,onError:function(I){return console.error(`[Rip] Error ${I.status}: ${I.message||I.path}`)}}),X=k2({router:q,app:f,components:A,resolver:O,compile:R,target:H,onError:function(I){return console.error(`[Rip] ${I.message}`,I.error)}}),X.start(),Y.data?.watch)E2(`${$}/watch`);if(typeof window<"u")window.app=f,window.__RIP__={app:f,components:A,router:q,renderer:X,cache:X.cache,version:"0.3.0"};return{app:f,components:A,router:q,renderer:X}};f1.modules["app.rip"]=T1;for(let[$,U]of Object.entries(T1))if(typeof U==="function")globalThis[$]=U;})();
|