rip-lang 3.8.9 → 3.9.0
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/CHANGELOG.md +31 -0
- package/README.md +5 -5
- package/docs/dist/rip-ui.min.js +171 -171
- package/docs/dist/rip-ui.min.js.br +0 -0
- package/docs/dist/rip.browser.min.js +168 -168
- package/docs/dist/rip.browser.min.js.br +0 -0
- package/package.json +3 -3
- package/src/compiler.js +1 -2
- package/src/components.js +355 -7
- package/src/lexer.js +2 -275
- package/docs/dist/rip.browser.js +0 -8025
- package/docs/dist/ui.js +0 -962
- package/docs/dist/ui.min.js +0 -2
- package/docs/dist/ui.min.js.br +0 -0
- package/docs/dist/ui.rip +0 -957
- package/docs/dist/ui.rip.br +0 -0
- package/src/parser-rd.js +0 -3242
package/docs/dist/rip-ui.min.js
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
var y2=Object.defineProperty;var b2=($,U)=>{for(var A in U)y2($,A,{get:U[A],enumerable:!0,configurable:!0,set:(W)=>U[A]=()=>W})};var c2=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"]),v2=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"]),Z1=new Set([...c2,...v2]);function d1($){let U=$.prototype;U.rewriteTypes=function(){let A=this.tokens,W=(u,f,Y)=>{let R=[u,f];if(R.pre=0,R.data=null,R.loc=Y?.loc??{r:0,c:0,n:0},R.spaced=!1,R.newLine=!1,R.generated=!0,Y)R.origin=Y;return R};this.scanTokens((u,f,Y)=>{let R=u[0];if(R==="IDENTIFIER"){let F=Y[f+1];if(F&&F[0]==="COMPARE"&&F[1]==="<"&&!F.spaced){let _=Y[f-1]?.[0]==="DEF",Z=g2(Y,f+1);if(Z){let Q=!_&&Y[f+1+Z.length]?.[0]==="TYPE_ALIAS";if(_||Q){if(!u.data)u.data={};if(u.data.typeParams=u1(Z),Y.splice(f+1,Z.length),_&&Y[f+1]?.[0]==="("){Y[f+1][0]="CALL_START";let K=1,J=f+2;while(J<Y.length&&K>0){if(Y[J][0]==="("||Y[J][0]==="CALL_START")K++;if(Y[J][0]===")"||Y[J][0]==="CALL_END")K--;if(K===0)Y[J][0]="CALL_END";J++}}}}}}if(R==="TYPE_ANNOTATION"){let F=Y[f-1];if(!F)return 1;let _=i1(Y,f+1),Z=u1(_),Q=F,K="type";if(F[0]==="CALL_END"||F[0]===")"){let M=1,X=f-2;while(X>=0&&M>0){let z=Y[X][0];if(z==="CALL_END"||z===")")M++;if(z==="CALL_START"||z==="(")M--;X--}if(X>=0)Q=Y[X];K="returnType"}else if(F[0]==="PARAM_END"){let M=f+1+_.length,X=Y[M];if(X&&(X[0]==="->"||X[0]==="=>"))Q=X;K="returnType"}else if(F[0]==="IDENTIFIER"&&f>=2&&Y[f-2]?.[0]==="DEF")K="returnType";if(!Q.data)Q.data={};Q.data[K]=Z;let J=1+_.length;return Y.splice(f,J),0}if(R==="TYPE_ALIAS"){let F=Y[f-1];if(!F)return 1;let _=F[1],Z=f>=2&&Y[f-2]?.[0]==="EXPORT",Q=Z?f-2:f-1,K=Y[f+1],J=(X)=>{let z=W("TYPE_DECL",_,F);if(z.data={name:_,typeText:X,exported:Z},F.data?.typeParams)z.data.typeParams=F.data.typeParams;return z};if(K&&K[0]==="IDENTIFIER"&&K[1]==="type"&&Y[f+2]?.[0]==="INDENT"){let X=E1(Y,f+2);return Y.splice(Q,X-Q+1,J(p1(Y,f+2))),0}if(K&&(K[0]==="TERMINATOR"||K[0]==="INDENT")){let X=l2(Y,f+1);if(X)return Y.splice(Q,X.endIdx-Q+1,J(X.typeText)),0}let M=i1(Y,f+1);return Y.splice(Q,f+1+M.length-Q,J(u1(M))),0}if(R==="INTERFACE"){let F=f>=1&&Y[f-1]?.[0]==="EXPORT",_=f+1,Z=Y[_];if(!Z)return 1;let Q=Z[1],K=null,J=_+1;if(Y[J]?.[0]==="EXTENDS")K=Y[J+1]?.[1],J=J+2;if(Y[J]?.[0]==="INDENT"){let M=p1(Y,J),X=E1(Y,J),z=W("TYPE_DECL",Q,Z);z.data={name:Q,kind:"interface",extends:K,typeText:M,exported:F};let w=F?f-1:f,G=X-w+1;return Y.splice(w,G,z),0}return 1}return 1})}}function i1($,U){let A=[],W=0;while(U<$.length){let u=$[U],f=u[0],Y=f==="("||f==="["||f==="CALL_START"||f==="PARAM_START"||f==="INDEX_START"||f==="COMPARE"&&u[1]==="<",R=f===")"||f==="]"||f==="CALL_END"||f==="PARAM_END"||f==="INDEX_END"||f==="COMPARE"&&u[1]===">";if(f==="SHIFT"&&u[1]===">>"&&W>=2){W-=2,A.push(u),U++;continue}if(Y){W++,A.push(u),U++;continue}if(R){if(W>0){W--,A.push(u),U++;continue}break}if(W===0){if(f==="="||f==="REACTIVE_ASSIGN"||f==="COMPUTED_ASSIGN"||f==="READONLY_ASSIGN"||f==="REACT_ASSIGN"||f==="TERMINATOR"||f==="INDENT"||f==="OUTDENT"||f==="->"||f===",")break}A.push(u),U++}return A}function u1($){if($.length===0)return"";if($[0]?.[0]==="=>")$.unshift(["","()"]);let U=$.map((A)=>A[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 g2($,U){if(U>=$.length)return null;let A=$[U];if(A[0]!=="COMPARE"||A[1]!=="<")return null;let W=[A],u=1,f=U+1;while(f<$.length&&u>0){let Y=$[f];if(W.push(Y),Y[0]==="COMPARE"&&Y[1]==="<")u++;else if(Y[0]==="COMPARE"&&Y[1]===">")u--;f++}return u===0?W:null}function p1($,U){let A=[],W=U+1,u=1;while(W<$.length&&u>0){let f=$[W];if(f[0]==="INDENT"){u++,W++;continue}if(f[0]==="OUTDENT"){if(u--,u===0)break;W++;continue}if(f[0]==="TERMINATOR"){W++;continue}if(u===1&&(f[0]==="PROPERTY"||f[0]==="IDENTIFIER")){let Y=f[1],R=!1,F=!1;if(W++,Y==="readonly"&&($[W]?.[0]==="PROPERTY"||$[W]?.[0]==="IDENTIFIER")){if(F=!0,Y=$[W][1],$[W].data?.predicate)R=!0;W++}if(f.data?.predicate)R=!0;if($[W]?.[1]==="?"&&!$[W]?.spaced)R=!0,W++;if($[W]?.[1]===":"||$[W]?.[0]==="TYPE_ANNOTATION")W++;let _=[],Z=0;while(W<$.length){let M=$[W];if(M[0]==="INDENT"){Z++,W++;continue}if(M[0]==="OUTDENT"){if(Z>0){Z--,W++;continue}break}if(M[0]==="TERMINATOR"&&Z===0)break;_.push(M),W++}let Q=u1(_),K=F?"readonly ":"",J=R?"?":"";A.push(`${K}${Y}${J}: ${Q}`)}else W++}return"{ "+A.join("; ")+" }"}function E1($,U){let A=0;for(let W=U;W<$.length;W++){if($[W][0]==="INDENT")A++;if($[W][0]==="OUTDENT"){if(A--,A===0)return W}}return $.length-1}function l2($,U){let A=U;if($[A]?.[0]==="TERMINATOR")A++;if($[A]?.[0]!=="INDENT")return null;let W=A;A++;while(A<$.length&&$[A][0]==="TERMINATOR")A++;if(!$[A]||$[A][1]!=="|")return null;let u=[],f=1;A=W+1;while(A<$.length&&f>0){let R=$[A];if(R[0]==="INDENT"){f++,A++;continue}if(R[0]==="OUTDENT"){if(f--,f===0)break;A++;continue}if(R[0]==="TERMINATOR"){A++;continue}if(R[1]==="|"&&f===1){A++;let F=[];while(A<$.length){let _=$[A];if(_[0]==="TERMINATOR"||_[0]==="OUTDENT"||_[1]==="|"&&f===1)break;F.push(_),A++}if(F.length>0)u.push(u1(F));continue}A++}if(u.length===0)return null;let Y=E1($,W);return{typeText:u.join(" | "),endIdx:Y}}function B1($,U=null){let A=[],W=0,u=" ",f=()=>u.repeat(W),Y=!1,R=!1,F=!1,_=(J,M,X)=>{if(M.startsWith("{ ")&&M.endsWith(" }")){let z=M.slice(2,-2).split("; ").filter((w)=>w.trim());if(z.length>0){A.push(`${f()}${J}{`),W++;for(let w of z)A.push(`${f()}${w};`);W--,A.push(`${f()}}${X}`);return}}A.push(`${f()}${J}${M}${X}`)},Z=(J,M)=>{let X=[],z=M,w=J[z]?.[0];if(w!=="CALL_START"&&w!=="PARAM_START")return{params:X,endIdx:z};let G=w==="CALL_START"?"CALL_END":"PARAM_END";z++;let H=0;while(z<J.length&&!(J[z][0]===G&&H===0)){let q=J[z];if(q[1]===","&&H===0){z++;continue}if(q[0]==="{"||q[0]==="["||q[0]==="CALL_START"||q[0]==="PARAM_START"||q[0]==="INDEX_START")H++;if(q[0]==="}"||q[0]==="]"||q[0]==="CALL_END"||q[0]==="PARAM_END"||q[0]==="INDEX_END"){H--,z++;continue}if(q[0]==="@"){if(z++,J[z]?.[0]==="PROPERTY"||J[z]?.[0]==="IDENTIFIER"){let O=J[z][1],P=J[z].data?.type;X.push(P?`${O}: ${b(P)}`:O),z++}continue}if(q[0]==="SPREAD"||q[1]==="..."){if(z++,J[z]?.[0]==="IDENTIFIER"){let O=J[z][1],P=J[z].data?.type;X.push(P?`...${O}: ${b(P)}`:`...${O}: any[]`),z++}continue}if(q[0]==="{"){let O="{";z++;let P=1;while(z<J.length&&P>0){if(J[z][0]==="{")P++;if(J[z][0]==="}")P--;if(P>0)O+=J[z][1]+(J[z+1]?.[0]==="}"?"":", ");z++}O+="}";let D=J[z-1]?.data?.type;X.push(D?`${O}: ${b(D)}`:O);continue}if(q[0]==="IDENTIFIER"){let O=q[1],P=q.data?.type,D=!1;if(J[z+1]?.[0]==="=")D=!0;if(P)X.push(`${O}${D?"?":""}: ${b(P)}`);else X.push(O);if(z++,D){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:X,endIdx:z}};for(let J=0;J<$.length;J++){let M=$[J],X=M[0],z=!1;if(X==="EXPORT"){if(z=!0,J++,J>=$.length)break;if(M=$[J],X=M[0],X==="DEFAULT"){if(J++,J>=$.length)break;if(M=$[J],X=M[0],X==="IDENTIFIER")A.push(`${f()}export default ${M[1]};`);continue}}if(X==="IMPORT"){let w=[],G=J+1;while(G<$.length&&$[G][0]!=="TERMINATOR")w.push($[G]),G++;let H="import "+w.map((q)=>q[1]).join(" ");H=H.replace(/\s+/g," ").replace(/\s*,\s*/g,", ").replace(/\{\s*/g,"{ ").replace(/\s*\}/g," }").trim(),A.push(`${f()}${H};`),J=G;continue}if(X==="TYPE_DECL"){let w=M.data;if(!w)continue;let G=z||w.exported?"export ":"",H=w.typeParams||"";if(w.kind==="interface"){let q=w.extends?` extends ${w.extends}`:"";_(`${G}interface ${w.name}${H}${q} `,w.typeText||"{}","")}else{let q=b(w.typeText||"");_(`${G}type ${w.name}${H} = `,q,";")}continue}if(X==="ENUM"){let w=z?"export ":"",G=$[J+1];if(!G)continue;let H=G[1],q=J+2;if($[q]?.[0]==="INDENT"){A.push(`${f()}${w}enum ${H} {`),W++,q++;let O=[];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 D=$[q]?.[1];O.push(`${P} = ${D}`),q++}else O.push(P)}else q++}for(let P=0;P<O.length;P++){let D=P<O.length-1?",":"";A.push(`${f()}${O[P]}${D}`)}W--,A.push(`${f()}}`)}continue}if(X==="CLASS"){let w=z?"export ":"",G=$[J+1];if(!G)continue;let H=G[1],q="",O=J+2;if($[O]?.[0]==="EXTENDS")q=` extends ${$[O+1]?.[1]||""}`,O+=2;if($[O]?.[0]==="INDENT"){let P=!1,D=O+1;while(D<$.length&&$[D][0]!=="OUTDENT"){if($[D].data?.type||$[D].data?.returnType){P=!0;break}D++}if(P)A.push(`${f()}${w}declare class ${H}${q} {`),Y=!0,W++}continue}if(X==="DEF"){let w=$[J+1];if(!w)continue;let G=w[1],H=w.data?.returnType,q=w.data?.typeParams||"",{params:O,endIdx:P}=Z($,J+2);if(H||O.some((D)=>D.includes(":"))){let D=z?"export ":"",I=Y?"":z?"":"declare ",E=H?`: ${b(H)}`:"",B=O.join(", ");if(Y)A.push(`${f()}${G}${q}(${B})${E};`);else A.push(`${f()}${D}${I}function ${G}${q}(${B})${E};`)}continue}if(X==="{"&&Y){let w=J+1,G=1;while(w<$.length&&G>0){let H=$[w];if(H[0]==="{"){G++,w++;continue}if(H[0]==="}"){G--,w++;continue}if(H[0]==="TERMINATOR"){w++;continue}if(H[0]==="PROPERTY"&&G===1){let q=H[1],O=H.data?.returnType;if(w++,$[w]?.[1]===":")w++;let P=[];if($[w]?.[0]==="PARAM_START"){let D=Z($,w);P=D.params,w=D.endIdx+1}if($[w]?.[0]==="->"||$[w]?.[0]==="=>")w++;if($[w]?.[0]==="INDENT"){let D=1;w++;while(w<$.length&&D>0){if($[w][0]==="INDENT")D++;if($[w][0]==="OUTDENT")D--;w++}}if(O||P.some((D)=>D.includes(":"))){let D=O?`: ${b(O)}`:"",I=P.join(", ");A.push(`${f()}${q}(${I})${D};`)}continue}w++}J=w-1;continue}if(X==="INDENT")continue;if(X==="OUTDENT"){if(Y)W--,A.push(`${f()}}`),Y=!1;continue}if(X==="IDENTIFIER"&&!Y&&$[J+1]?.[0]==="="&&($[J+2]?.[0]==="PARAM_START"||$[J+2]?.[0]==="(")){let w=M[1],G=J+2,{params:H}=Z($,G),q=G,O=0;while(q<$.length){if($[q][0]==="PARAM_START"||$[q][0]==="(")O++;if($[q][0]==="PARAM_END"||$[q][0]===")")O--;if(O===0&&($[q][0]==="->"||$[q][0]==="=>"))break;q++}let P=$[q]?.data?.returnType;if(P||H.some((D)=>D.includes(":"))){let D=z?"export ":"",I=z?"":"declare ",E=P?`: ${b(P)}`:"",B=H.join(", ");A.push(`${f()}${D}${I}function ${w}(${B})${E};`);continue}}if(X==="IDENTIFIER"&&M.data?.type){let w=M[1],G=b(M.data.type),H=$[J+1];if(H){let q=z?"export ":"",O=z?"":"declare ";if(H[0]==="READONLY_ASSIGN")A.push(`${f()}${q}${O}const ${w}: ${G};`);else if(H[0]==="REACTIVE_ASSIGN")R=!0,A.push(`${f()}${q}${O}const ${w}: Signal<${G}>;`);else if(H[0]==="COMPUTED_ASSIGN")F=!0,A.push(`${f()}${q}${O}const ${w}: Computed<${G}>;`);else if(H[0]==="REACT_ASSIGN")A.push(`${f()}${q}${O}const ${w}: () => void;`);else if(H[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 D=$[P];if(D&&(D[0]==="->"||D[0]==="=>")&&D.data?.returnType){let I=b(D.data.returnType),{params:E}=Z($,J+2),B=E.join(", ");A.push(`${f()}${q}${O}function ${w}(${B}): ${I};`)}else if(Y)A.push(`${f()}${w}: ${G};`);else A.push(`${f()}${q}let ${w}: ${G};`)}else if(Y)A.push(`${f()}${w}: ${G};`)}else if(Y)A.push(`${f()}${w}: ${G};`)}}let Q=new Set;if(U){if(I1(U,A,f,W,Q),Q.size>0)for(let J=A.length-1;J>=0;J--){let M=A[J].match(/(?:declare |export )*(?:const|let) (\w+)/);if(M&&Q.has(M[1]))A.splice(J,1)}}if(A.length===0)return null;let K=[];if(R)K.push("interface Signal<T> { value: T; read(): T; lock(): Signal<T>; free(): Signal<T>; kill(): T; }");if(F)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(A).join(`
|
|
1
|
+
var y2=Object.defineProperty;var b2=($,U)=>{for(var W in U)y2($,W,{get:U[W],enumerable:!0,configurable:!0,set:(A)=>U[W]=()=>A})};function d1($){let U=$.prototype;U.rewriteTypes=function(){let W=this.tokens,A=(u,f,Y)=>{let F=[u,f];if(F.pre=0,F.data=null,F.loc=Y?.loc??{r:0,c:0,n:0},F.spaced=!1,F.newLine=!1,F.generated=!0,Y)F.origin=Y;return F};this.scanTokens((u,f,Y)=>{let F=u[0];if(F==="IDENTIFIER"){let R=Y[f+1];if(R&&R[0]==="COMPARE"&&R[1]==="<"&&!R.spaced){let J=Y[f-1]?.[0]==="DEF",_=c2(Y,f+1);if(_){let Q=!J&&Y[f+1+_.length]?.[0]==="TYPE_ALIAS";if(J||Q){if(!u.data)u.data={};if(u.data.typeParams=u1(_),Y.splice(f+1,_.length),J&&Y[f+1]?.[0]==="("){Y[f+1][0]="CALL_START";let M=1,Z=f+2;while(Z<Y.length&&M>0){if(Y[Z][0]==="("||Y[Z][0]==="CALL_START")M++;if(Y[Z][0]===")"||Y[Z][0]==="CALL_END")M--;if(M===0)Y[Z][0]="CALL_END";Z++}}}}}}if(F==="TYPE_ANNOTATION"){let R=Y[f-1];if(!R)return 1;let J=n1(Y,f+1),_=u1(J),Q=R,M="type";if(R[0]==="CALL_END"||R[0]===")"){let K=1,X=f-2;while(X>=0&&K>0){let w=Y[X][0];if(w==="CALL_END"||w===")")K++;if(w==="CALL_START"||w==="(")K--;X--}if(X>=0)Q=Y[X];M="returnType"}else if(R[0]==="PARAM_END"){let K=f+1+J.length,X=Y[K];if(X&&(X[0]==="->"||X[0]==="=>"))Q=X;M="returnType"}else if(R[0]==="IDENTIFIER"&&f>=2&&Y[f-2]?.[0]==="DEF")M="returnType";if(!Q.data)Q.data={};Q.data[M]=_;let Z=1+J.length;return Y.splice(f,Z),0}if(F==="TYPE_ALIAS"){let R=Y[f-1];if(!R)return 1;let J=R[1],_=f>=2&&Y[f-2]?.[0]==="EXPORT",Q=_?f-2:f-1,M=Y[f+1],Z=(X)=>{let w=A("TYPE_DECL",J,R);if(w.data={name:J,typeText:X,exported:_},R.data?.typeParams)w.data.typeParams=R.data.typeParams;return w};if(M&&M[0]==="IDENTIFIER"&&M[1]==="type"&&Y[f+2]?.[0]==="INDENT"){let X=G1(Y,f+2);return Y.splice(Q,X-Q+1,Z(p1(Y,f+2))),0}if(M&&(M[0]==="TERMINATOR"||M[0]==="INDENT")){let X=v2(Y,f+1);if(X)return Y.splice(Q,X.endIdx-Q+1,Z(X.typeText)),0}let K=n1(Y,f+1);return Y.splice(Q,f+1+K.length-Q,Z(u1(K))),0}if(F==="INTERFACE"){let R=f>=1&&Y[f-1]?.[0]==="EXPORT",J=f+1,_=Y[J];if(!_)return 1;let Q=_[1],M=null,Z=J+1;if(Y[Z]?.[0]==="EXTENDS")M=Y[Z+1]?.[1],Z=Z+2;if(Y[Z]?.[0]==="INDENT"){let K=p1(Y,Z),X=G1(Y,Z),w=A("TYPE_DECL",Q,_);w.data={name:Q,kind:"interface",extends:M,typeText:K,exported:R};let D=R?f-1:f,O=X-D+1;return Y.splice(D,O,w),0}return 1}return 1})}}function n1($,U){let W=[],A=0;while(U<$.length){let u=$[U],f=u[0],Y=f==="("||f==="["||f==="CALL_START"||f==="PARAM_START"||f==="INDEX_START"||f==="COMPARE"&&u[1]==="<",F=f===")"||f==="]"||f==="CALL_END"||f==="PARAM_END"||f==="INDEX_END"||f==="COMPARE"&&u[1]===">";if(f==="SHIFT"&&u[1]===">>"&&A>=2){A-=2,W.push(u),U++;continue}if(Y){A++,W.push(u),U++;continue}if(F){if(A>0){A--,W.push(u),U++;continue}break}if(A===0){if(f==="="||f==="REACTIVE_ASSIGN"||f==="COMPUTED_ASSIGN"||f==="READONLY_ASSIGN"||f==="REACT_ASSIGN"||f==="TERMINATOR"||f==="INDENT"||f==="OUTDENT"||f==="->"||f===",")break}W.push(u),U++}return W}function u1($){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 c2($,U){if(U>=$.length)return null;let W=$[U];if(W[0]!=="COMPARE"||W[1]!=="<")return null;let A=[W],u=1,f=U+1;while(f<$.length&&u>0){let Y=$[f];if(A.push(Y),Y[0]==="COMPARE"&&Y[1]==="<")u++;else if(Y[0]==="COMPARE"&&Y[1]===">")u--;f++}return u===0?A:null}function p1($,U){let W=[],A=U+1,u=1;while(A<$.length&&u>0){let f=$[A];if(f[0]==="INDENT"){u++,A++;continue}if(f[0]==="OUTDENT"){if(u--,u===0)break;A++;continue}if(f[0]==="TERMINATOR"){A++;continue}if(u===1&&(f[0]==="PROPERTY"||f[0]==="IDENTIFIER")){let Y=f[1],F=!1,R=!1;if(A++,Y==="readonly"&&($[A]?.[0]==="PROPERTY"||$[A]?.[0]==="IDENTIFIER")){if(R=!0,Y=$[A][1],$[A].data?.predicate)F=!0;A++}if(f.data?.predicate)F=!0;if($[A]?.[1]==="?"&&!$[A]?.spaced)F=!0,A++;if($[A]?.[1]===":"||$[A]?.[0]==="TYPE_ANNOTATION")A++;let J=[],_=0;while(A<$.length){let K=$[A];if(K[0]==="INDENT"){_++,A++;continue}if(K[0]==="OUTDENT"){if(_>0){_--,A++;continue}break}if(K[0]==="TERMINATOR"&&_===0)break;J.push(K),A++}let Q=u1(J),M=R?"readonly ":"",Z=F?"?":"";W.push(`${M}${Y}${Z}: ${Q}`)}else A++}return"{ "+W.join("; ")+" }"}function G1($,U){let W=0;for(let A=U;A<$.length;A++){if($[A][0]==="INDENT")W++;if($[A][0]==="OUTDENT"){if(W--,W===0)return A}}return $.length-1}function v2($,U){let W=U;if($[W]?.[0]==="TERMINATOR")W++;if($[W]?.[0]!=="INDENT")return null;let A=W;W++;while(W<$.length&&$[W][0]==="TERMINATOR")W++;if(!$[W]||$[W][1]!=="|")return null;let u=[],f=1;W=A+1;while(W<$.length&&f>0){let F=$[W];if(F[0]==="INDENT"){f++,W++;continue}if(F[0]==="OUTDENT"){if(f--,f===0)break;W++;continue}if(F[0]==="TERMINATOR"){W++;continue}if(F[1]==="|"&&f===1){W++;let R=[];while(W<$.length){let J=$[W];if(J[0]==="TERMINATOR"||J[0]==="OUTDENT"||J[1]==="|"&&f===1)break;R.push(J),W++}if(R.length>0)u.push(u1(R));continue}W++}if(u.length===0)return null;let Y=G1($,A);return{typeText:u.join(" | "),endIdx:Y}}function I1($,U=null){let W=[],A=0,u=" ",f=()=>u.repeat(A),Y=!1,F=!1,R=!1,J=(Z,K,X)=>{if(K.startsWith("{ ")&&K.endsWith(" }")){let w=K.slice(2,-2).split("; ").filter((D)=>D.trim());if(w.length>0){W.push(`${f()}${Z}{`),A++;for(let D of w)W.push(`${f()}${D};`);A--,W.push(`${f()}}${X}`);return}}W.push(`${f()}${Z}${K}${X}`)},_=(Z,K)=>{let X=[],w=K,D=Z[w]?.[0];if(D!=="CALL_START"&&D!=="PARAM_START")return{params:X,endIdx:w};let O=D==="CALL_START"?"CALL_END":"PARAM_END";w++;let q=0;while(w<Z.length&&!(Z[w][0]===O&&q===0)){let P=Z[w];if(P[1]===","&&q===0){w++;continue}if(P[0]==="{"||P[0]==="["||P[0]==="CALL_START"||P[0]==="PARAM_START"||P[0]==="INDEX_START")q++;if(P[0]==="}"||P[0]==="]"||P[0]==="CALL_END"||P[0]==="PARAM_END"||P[0]==="INDEX_END"){q--,w++;continue}if(P[0]==="@"){if(w++,Z[w]?.[0]==="PROPERTY"||Z[w]?.[0]==="IDENTIFIER"){let G=Z[w][1],H=Z[w].data?.type;X.push(H?`${G}: ${b(H)}`:G),w++}continue}if(P[0]==="SPREAD"||P[1]==="..."){if(w++,Z[w]?.[0]==="IDENTIFIER"){let G=Z[w][1],H=Z[w].data?.type;X.push(H?`...${G}: ${b(H)}`:`...${G}: any[]`),w++}continue}if(P[0]==="{"){let G="{";w++;let H=1;while(w<Z.length&&H>0){if(Z[w][0]==="{")H++;if(Z[w][0]==="}")H--;if(H>0)G+=Z[w][1]+(Z[w+1]?.[0]==="}"?"":", ");w++}G+="}";let z=Z[w-1]?.data?.type;X.push(z?`${G}: ${b(z)}`:G);continue}if(P[0]==="IDENTIFIER"){let G=P[1],H=P.data?.type,z=!1;if(Z[w+1]?.[0]==="=")z=!0;if(H)X.push(`${G}${z?"?":""}: ${b(H)}`);else X.push(G);if(w++,z){w++;let E=0;while(w<Z.length){let B=Z[w];if(B[0]==="("||B[0]==="["||B[0]==="{")E++;if(B[0]===")"||B[0]==="]"||B[0]==="}")E--;if(E===0&&(B[1]===","||B[0]==="CALL_END"))break;w++}}continue}w++}return{params:X,endIdx:w}};for(let Z=0;Z<$.length;Z++){let K=$[Z],X=K[0],w=!1;if(X==="EXPORT"){if(w=!0,Z++,Z>=$.length)break;if(K=$[Z],X=K[0],X==="DEFAULT"){if(Z++,Z>=$.length)break;if(K=$[Z],X=K[0],X==="IDENTIFIER")W.push(`${f()}export default ${K[1]};`);continue}}if(X==="IMPORT"){let D=[],O=Z+1;while(O<$.length&&$[O][0]!=="TERMINATOR")D.push($[O]),O++;let q="import "+D.map((P)=>P[1]).join(" ");q=q.replace(/\s+/g," ").replace(/\s*,\s*/g,", ").replace(/\{\s*/g,"{ ").replace(/\s*\}/g," }").trim(),W.push(`${f()}${q};`),Z=O;continue}if(X==="TYPE_DECL"){let D=K.data;if(!D)continue;let O=w||D.exported?"export ":"",q=D.typeParams||"";if(D.kind==="interface"){let P=D.extends?` extends ${D.extends}`:"";J(`${O}interface ${D.name}${q}${P} `,D.typeText||"{}","")}else{let P=b(D.typeText||"");J(`${O}type ${D.name}${q} = `,P,";")}continue}if(X==="ENUM"){let D=w?"export ":"",O=$[Z+1];if(!O)continue;let q=O[1],P=Z+2;if($[P]?.[0]==="INDENT"){W.push(`${f()}${D}enum ${q} {`),A++,P++;let G=[];while(P<$.length&&$[P][0]!=="OUTDENT"){if($[P][0]==="TERMINATOR"){P++;continue}if($[P][0]==="IDENTIFIER"){let H=$[P][1];if(P++,$[P]?.[1]==="="){P++;let z=$[P]?.[1];G.push(`${H} = ${z}`),P++}else G.push(H)}else P++}for(let H=0;H<G.length;H++){let z=H<G.length-1?",":"";W.push(`${f()}${G[H]}${z}`)}A--,W.push(`${f()}}`)}continue}if(X==="CLASS"){let D=w?"export ":"",O=$[Z+1];if(!O)continue;let q=O[1],P="",G=Z+2;if($[G]?.[0]==="EXTENDS")P=` extends ${$[G+1]?.[1]||""}`,G+=2;if($[G]?.[0]==="INDENT"){let H=!1,z=G+1;while(z<$.length&&$[z][0]!=="OUTDENT"){if($[z].data?.type||$[z].data?.returnType){H=!0;break}z++}if(H)W.push(`${f()}${D}declare class ${q}${P} {`),Y=!0,A++}continue}if(X==="DEF"){let D=$[Z+1];if(!D)continue;let O=D[1],q=D.data?.returnType,P=D.data?.typeParams||"",{params:G,endIdx:H}=_($,Z+2);if(q||G.some((z)=>z.includes(":"))){let z=w?"export ":"",E=Y?"":w?"":"declare ",B=q?`: ${b(q)}`:"",I=G.join(", ");if(Y)W.push(`${f()}${O}${P}(${I})${B};`);else W.push(`${f()}${z}${E}function ${O}${P}(${I})${B};`)}continue}if(X==="{"&&Y){let D=Z+1,O=1;while(D<$.length&&O>0){let q=$[D];if(q[0]==="{"){O++,D++;continue}if(q[0]==="}"){O--,D++;continue}if(q[0]==="TERMINATOR"){D++;continue}if(q[0]==="PROPERTY"&&O===1){let P=q[1],G=q.data?.returnType;if(D++,$[D]?.[1]===":")D++;let H=[];if($[D]?.[0]==="PARAM_START"){let z=_($,D);H=z.params,D=z.endIdx+1}if($[D]?.[0]==="->"||$[D]?.[0]==="=>")D++;if($[D]?.[0]==="INDENT"){let z=1;D++;while(D<$.length&&z>0){if($[D][0]==="INDENT")z++;if($[D][0]==="OUTDENT")z--;D++}}if(G||H.some((z)=>z.includes(":"))){let z=G?`: ${b(G)}`:"",E=H.join(", ");W.push(`${f()}${P}(${E})${z};`)}continue}D++}Z=D-1;continue}if(X==="INDENT")continue;if(X==="OUTDENT"){if(Y)A--,W.push(`${f()}}`),Y=!1;continue}if(X==="IDENTIFIER"&&!Y&&$[Z+1]?.[0]==="="&&($[Z+2]?.[0]==="PARAM_START"||$[Z+2]?.[0]==="(")){let D=K[1],O=Z+2,{params:q}=_($,O),P=O,G=0;while(P<$.length){if($[P][0]==="PARAM_START"||$[P][0]==="(")G++;if($[P][0]==="PARAM_END"||$[P][0]===")")G--;if(G===0&&($[P][0]==="->"||$[P][0]==="=>"))break;P++}let H=$[P]?.data?.returnType;if(H||q.some((z)=>z.includes(":"))){let z=w?"export ":"",E=w?"":"declare ",B=H?`: ${b(H)}`:"",I=q.join(", ");W.push(`${f()}${z}${E}function ${D}(${I})${B};`);continue}}if(X==="IDENTIFIER"&&K.data?.type){let D=K[1],O=b(K.data.type),q=$[Z+1];if(q){let P=w?"export ":"",G=w?"":"declare ";if(q[0]==="READONLY_ASSIGN")W.push(`${f()}${P}${G}const ${D}: ${O};`);else if(q[0]==="REACTIVE_ASSIGN")F=!0,W.push(`${f()}${P}${G}const ${D}: Signal<${O}>;`);else if(q[0]==="COMPUTED_ASSIGN")R=!0,W.push(`${f()}${P}${G}const ${D}: Computed<${O}>;`);else if(q[0]==="REACT_ASSIGN")W.push(`${f()}${P}${G}const ${D}: () => void;`);else if(q[0]==="="){let H=Z+2;if($[H]?.[0]==="PARAM_START"){let E=1,B=H+1;while(B<$.length&&E>0){if($[B][0]==="PARAM_START")E++;if($[B][0]==="PARAM_END")E--;B++}H=B}let z=$[H];if(z&&(z[0]==="->"||z[0]==="=>")&&z.data?.returnType){let E=b(z.data.returnType),{params:B}=_($,Z+2),I=B.join(", ");W.push(`${f()}${P}${G}function ${D}(${I}): ${E};`)}else if(Y)W.push(`${f()}${D}: ${O};`);else W.push(`${f()}${P}let ${D}: ${O};`)}else if(Y)W.push(`${f()}${D}: ${O};`)}else if(Y)W.push(`${f()}${D}: ${O};`)}}let Q=new Set;if(U){if(E1(U,W,f,A,Q),Q.size>0)for(let Z=W.length-1;Z>=0;Z--){let K=W[Z].match(/(?:declare |export )*(?:const|let) (\w+)/);if(K&&Q.has(K[1]))W.splice(Z,1)}}if(W.length===0)return null;let M=[];if(F)M.push("interface Signal<T> { value: T; read(): T; lock(): Signal<T>; free(): Signal<T>; kill(): T; }");if(R)M.push("interface Computed<T> { readonly value: T; read(): T; lock(): Computed<T>; free(): Computed<T>; kill(): T; }");if(M.length>0)M.push("");return M.concat(W).join(`
|
|
2
2
|
`)+`
|
|
3
|
-
`}function b($){if(!$)return $;return $=$.replace(/::/g,":"),$=$.replace(/(\w+(?:<[^>]+>)?)\?\?/g,"$1 | null | undefined"),$=$.replace(/(\w+(?:<[^>]+>)?)\?(?![.:])/g,"$1 | undefined"),$=$.replace(/(\w+(?:<[^>]+>)?)\!/g,"NonNullable<$1>"),$}function
|
|
4
|
-
`),$=$.replace(
|
|
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 $=
|
|
8
|
-
`);if(this.isUnfinished()){if(
|
|
9
|
-
`,{len:0})}isUnfinished(){if(this.inRenderBlock&&W2.test(this.chunk)&&/^\s*\./.test(this.chunk))return!1;return W2.test(this.chunk)||f2.has(this.prevTag())}pair($){let U=this.ends[this.ends.length-1];if(!U||$!==U.tag){if(U?.tag==="OUTDENT"){let
|
|
10
|
-
`)u--;u++;let f=this.chunk.slice(u,
|
|
11
|
-
`)}if(f===0&&U?.length===3)F=F.replace(/^\n/,"");if(f===$.length-1&&U?.length===3)F=F.replace(/\n[^\S\n]*$/,"");if(u)F=F.replace(/\\([nrtbfv0\\'"`xu])/g,"\\\\$1");this.emit("STRING",`"${F}"`,{len:R.length,data:{quote:U}})}}if($.length>1)this.emit("STRING_END",")",{len:U?.length||0});return W}numberToken(){let $=A3.exec(this.chunk);if(!$)return 0;let U=$[0],A=U.length,W={row:this.row,col:this.col};if(/^0[BOX]/.test(U))g(`radix prefix in '${U}' must be lowercase`,{...W,col:W.col+1});if(/^0\d*[89]/.test(U))g(`decimal literal '${U}' must not be prefixed with '0'`,{...W,len:A});if(/^0\d+/.test(U))g(`octal literal '${U}' must be prefixed with '0o'`,{...W,len:A});let u=q3(U),f=u===1/0?"INFINITY":"NUMBER",Y={parsedValue:u};if(f==="INFINITY")Y.original=U;return this.emit(f,U,{len:A,data:Y}),A}regexToken(){let $=this.matchWithInterpolations(z3,"///");if($){let{tokens:_,index:Z}=$,[Q]=U2.exec(this.chunk.slice(Z)),K=Z+Q.length;if(_.length===1||!_.some((J)=>J[0]==="TOKENS")){let J=(_[0]?.[1]||"").replace(/(?<!\\)\//g,"\\/");this.emit("REGEX",`/${J}/${Q}`,{len:K,data:{delimiter:"///",heregex:{flags:Q}}})}else{if(this.emit("REGEX_START","(",{len:0}),this.emit("IDENTIFIER","RegExp",{len:0}),this.emit("CALL_START","(",{len:0}),this.mergeInterpolationTokens(_,{quote:"///",endOffset:K-Q.length}),Q)this.emit(",",",",{len:0}),this.emit("STRING",`"${Q}"`,{len:Q.length});this.emit(")",")",{len:0}),this.emit("REGEX_END",")",{len:0})}return K}let U=X3.exec(this.chunk);if(!U)return 0;let[A,W,u]=U,f=this.prev();if(f){if(f.spaced&&J1.has(f[0])&&(!u||/^\/=?\s/.test(A)))return 0;if(s2.has(f[0])&&!(f.spaced&&J1.has(f[0])))return 0}if(!u)g("missing / (unclosed regex)",{row:this.row,col:this.col});let Y=A.length,[R]=U2.exec(this.chunk.slice(Y)),F=Y+R.length;if(!D3.test(R))g(`invalid regular expression flags ${R}`,{row:this.row,col:this.col+Y,len:R.length});return this.emit("REGEX",`/${W}/${R}`,{len:F,data:{delimiter:"/"}}),F}jsToken(){if(this.chunk[0]!=="`")return 0;let $=P3.exec(this.chunk)||w3.exec(this.chunk);if(!$)return 0;let U=$[1],A=$[0].length;return this.emit("JS",U,{len:A,data:{here:$[0].startsWith("```")}}),A}literalToken(){let $=U3.exec(this.chunk),U=$?$[0]:this.chunk.charAt(0),A=U,W=this.prev();if(R3.test(U))this.tagParameters();if(U==="="&&W&&W[1]==="."&&!W.spaced){let u=this.tokens,f=u.length-2;while(f>=1&&u[f][0]==="PROPERTY"&&u[f-1]?.[1]===".")f-=2;if(f>=0&&(u[f][0]==="IDENTIFIER"||u[f][0]===")"||u[f][0]==="]")){let Y=u.slice(f,u.length-1);W[0]="=",W[1]="=";for(let R of Y)this.tokens.push(Q1(R[0],R[1],{pre:0,row:R[2],col:R[3],len:R[4]}));return this.tokens.push(Q1(".",".",{pre:0,row:this.row,col:this.col,len:1})),U.length}}if(W&&(U==="="||$2.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,A="TERMINATOR";else if(U==="|>")A="PIPE";else if(U==="::=")A="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==="::")A="TYPE_ANNOTATION";else if(U==="~=")A="COMPUTED_ASSIGN";else if(U===":=")A="REACTIVE_ASSIGN";else if(U==="<=>")A="BIND";else if(U==="~>")A="REACT_ASSIGN";else if(U==="=!")A="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 u=this.chunk.slice(1),f=/^@(\s*)=(?!=)/.exec(u);if(f){let R=f[1];this.emit("IDENTIFIER","Object"),this.emit(".",".");let F=this.emit("PROPERTY","assign");return F.spaced=!0,this.emit("@","@"),this.emit(",",","),2+R.length+1}let Y=/^((?:(?!\s)[$\w\x7f-\uffff])+(?:\.[a-zA-Z_$][\w]*)*)(\s*)=(?!=)/.exec(u);if(Y){let R=Y[1],F=Y[2],_=R.split("."),Z=()=>{this.emit("IDENTIFIER",_[0]);for(let K=1;K<_.length;K++)this.emit(".","."),this.emit("PROPERTY",_[K])};Z(),this.emit("=","="),this.emit("IDENTIFIER","Object"),this.emit(".","."),this.emit("PROPERTY","assign"),this.emit("CALL_START","("),Z(),this.emit("COMPOUND_ASSIGN","??="),this.emit("{","{"),this.emit("}","}"),this.emit(",",",");let Q=this.prev();return Q.mergeClose=!0,1+R.length+F.length+1}}else if(U==="*"&&W?.[0]==="EXPORT")A="EXPORT_ALL";else if(t2.has(U))A="MATH";else if(e2.has(U))A="COMPARE";else if($2.has(U))A="COMPOUND_ASSIGN";else if(f3.has(U))A="UNARY_MATH";else if(u3.has(U))A="SHIFT";else if(U==="?"&&W?.spaced)A="SPACE?";else if(U==="?"&&(this.chunk[1]==="["||this.chunk[1]==="("))A="?.";else if(W){if(U==="("&&!W.spaced&&J1.has(W[0])){if(W[0]==="?.")W[0]="ES6_OPTIONAL_CALL";A="CALL_START"}if(U==="["&&!W.spaced&&Y2.has(W[0])){if(A="INDEX_START",W[0]==="?.")W[0]="ES6_OPTIONAL_INDEX"}}if(U==="("||U==="{"||U==="[")this.ends.push({tag:r2[U],origin:[A,U]});else if(U===")"||U==="}"||U==="]")this.pair(U);return this.emit(A,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 A=this.tokens[$];if(A[0]===")")U.push(A);else if(A[0]==="("||A[0]==="CALL_START")if(U.length)U.pop();else if(A[0]==="(")return A[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,(A)=>A[0]===")"||A[0]==="CALL_END",(A)=>A[0]="CALL_END");return 1})}closeOpenIndexes(){this.scanTokens(($,U)=>{if($[0]==="INDEX_START")this.detectEnd(U+1,(A)=>A[0]==="]"||A[0]==="INDEX_END",(A,W)=>{if(this.tokens[W+1]?.[0]===":")$[0]="[",A[0]="]";else A[0]="INDEX_END"});return 1})}normalizeLines(){let $=null,U=null,A=null,W=(f,Y)=>{return f[1]!==";"&&o2.has(f[0])&&!(f[0]==="TERMINATOR"&&t1.has(this.tokens[Y+1]?.[0]))&&!(f[0]==="ELSE"&&$!=="THEN")||f[0]==="INDENT"&&!f.generated&&($==="->"||$==="=>")||f[0]===","&&($==="->"||$==="=>")&&!this.commaInImplicitCall(Y)&&!this.commaInImplicitObject(Y)||u2.has(f[0])&&(this.tokens[Y-1]?.newLine||this.tokens[Y-1]?.[0]==="OUTDENT")},u=(f,Y)=>{let R=this.tokens[Y-1]?.[0]===","?Y-1:Y;this.tokens.splice(R,0,A)};this.scanTokens((f,Y,R)=>{let[F]=f;if(F==="TERMINATOR"){if(this.tokens[Y+1]?.[0]==="ELSE"&&this.tokens[Y-1]?.[0]!=="OUTDENT")return R.splice(Y,1,...this.makeIndentation()),1;if(t1.has(this.tokens[Y+1]?.[0]))return R.splice(Y,1),0}if(F==="CATCH")for(let _=1;_<=2;_++){let Z=this.tokens[Y+_]?.[0];if(Z==="OUTDENT"||Z==="TERMINATOR"||Z==="FINALLY")return R.splice(Y+_,0,...this.makeIndentation()),2+_}if((F==="->"||F==="=>")&&(this.tokens[Y+1]?.[0]===","||this.tokens[Y+1]?.[0]==="]"))return[U,A]=this.makeIndentation(),R.splice(Y+1,0,U,A),1;if(e1.has(F)&&this.tokens[Y+1]?.[0]!=="INDENT"&&!(F==="ELSE"&&this.tokens[Y+1]?.[0]==="IF")){if($=F,[U,A]=this.makeIndentation(),F==="THEN")U.fromThen=!0;if(R.splice(Y+1,0,U),this.detectEnd(Y+2,W,u),F==="THEN")R.splice(Y,1);return 1}return 1})}rewriteRender(){let $=!1,U=0,A=0,W=[],u=(F)=>{let _=F.split("#")[0];return Z1.has(_)},f=(F)=>{if(!F||typeof F!=="string")return!1;return/^[A-Z]/.test(F)},Y=(F)=>{return u(F)||f(F)},R=(F,_)=>{let Z=_;while(Z>0){let Q=F[Z-1][0];if(Q==="INDENT"||Q==="OUTDENT"||Q==="TERMINATOR"||Q==="RENDER"||Q==="CALL_END"||Q===")")break;Z--}return F[Z]&&F[Z][0]==="IDENTIFIER"&&Y(F[Z][1])};this.scanTokens(function(F,_,Z){let Q=F[0],K=_<Z.length-1?Z[_+1]:null;if(Q==="RENDER")return $=!0,U=A+1,1;if(Q==="INDENT")return A++,1;if(Q==="OUTDENT"){A--;let J=0;while(W.length>0&&W[W.length-1]>A){let M=V("CALL_END",")",F);Z.splice(_+1+J,0,M),W.pop(),J++}if($&&A<U)$=!1;return 1+J}if(!$)return 1;if(Q==="IDENTIFIER"&&!F.spaced){let J=[F[1]],M=_+1;while(M+1<Z.length){let X=Z[M],z=Z[M+1];if(X[0]==="-"&&!X.spaced&&(z[0]==="IDENTIFIER"||z[0]==="PROPERTY")){if(J.push(z[1]),M+=2,z[0]==="PROPERTY")break}else break}if(J.length>1&&M>_+1&&Z[M-1][0]==="PROPERTY")return F[0]="STRING",F[1]=`"${J.join("-")}"`,Z.splice(_+1,M-_-1),1}if(Q==="."){let J=_>0?Z[_-1]:null,M=J?J[0]:null;if(M==="INDENT"||M==="TERMINATOR"){if(K&&K[0]==="PROPERTY"){let X=V("IDENTIFIER","div",F);return Z.splice(_,0,X),2}}}if(Q==="IDENTIFIER"||Q==="PROPERTY"){let J=Z[_+1],M=Z[_+2];if(J&&J[0]==="#"&&M&&(M[0]==="PROPERTY"||M[0]==="IDENTIFIER")){if(F[1]=F[1]+"#"+M[1],M.spaced)F.spaced=!0;return Z.splice(_+1,2),1}}if(Q==="BIND"){let J=_>0?Z[_-1]:null,M=Z[_+1];if(J&&(J[0]==="IDENTIFIER"||J[0]==="PROPERTY")&&M&&M[0]==="IDENTIFIER")return J[1]=`__bind_${J[1]}__`,F[0]=":",F[1]=":",1}if(Q==="@"){let J=_+1;if(J<Z.length&&Z[J][0]==="PROPERTY"){J++;while(J+1<Z.length&&Z[J][0]==="."&&Z[J+1][0]==="PROPERTY")J+=2;if(J>_+2&&J<Z.length&&Z[J][0]===":"){let M=V("[","[",F);Z.splice(_,0,M);let X=V("]","]",Z[J+1]);return Z.splice(J+1,0,X),2}}}if(Q==="."&&K&&K[0]==="("){let J=_>0?Z[_-1]:null,M=J?J[0]:null,X=M==="INDENT"||M==="TERMINATOR",z=V("PROPERTY","__clsx",F);K[0]="CALL_START";let w=1;for(let G=_+2;G<Z.length&&w>0;G++)if(Z[G][0]==="("||Z[G][0]==="CALL_START")w++;else if(Z[G][0]===")"){if(w--,w===0)Z[G][0]="CALL_END"}else if(Z[G][0]==="CALL_END")w--;if(X){let G=V("IDENTIFIER","div",F);return Z.splice(_,0,G),Z.splice(_+2,0,z),3}else return Z.splice(_+1,0,z),2}if(K&&K[0]==="INDENT"){if(Q==="->"||Q==="=>"||Q==="CALL_START"||Q==="(")return 1;let J=!1,M=_>0?Z[_-1][0]:null,X=M==="IF"||M==="UNLESS"||M==="WHILE"||M==="UNTIL"||M==="WHEN";if(Q==="IDENTIFIER"&&Y(F[1])&&!X)J=!0;else if(Q==="PROPERTY"||Q==="STRING"||Q==="CALL_END"||Q===")")J=R(Z,_);else if(Q==="IDENTIFIER"&&_>1&&Z[_-1][0]==="..."){if(R(Z,_)){let z=V(",",",",F),w=V("->","->",F);return w.newLine=!0,Z.splice(_+1,0,z,w),3}}if(J){let z=Q==="PROPERTY"&&_>0&&(Z[_-1][0]==="."||Z[_-1][0]==="#");if(Q==="IDENTIFIER"&&Y(F[1])||z){let w=V("CALL_START","(",F),G=V("->","->",F);return G.newLine=!0,Z.splice(_+1,0,w,G),W.push(A+1),3}else{let w=V(",",",",F),G=V("->","->",F);return G.newLine=!0,Z.splice(_+1,0,w,G),3}}}if(Q==="IDENTIFIER"&&f(F[1])&&K&&(K[0]==="OUTDENT"||K[0]==="TERMINATOR"))return Z.splice(_+1,0,V("CALL_START","(",F),V("CALL_END",")",F)),3;return 1})}tagPostfixConditionals(){let $=null,U=(W,u)=>{return W[0]==="TERMINATOR"||W[0]==="INDENT"&&!e1.has(this.tokens[u-1]?.[0])},A=(W)=>{if(W[0]!=="INDENT"||W.generated&&!W.fromThen)$[0]="POST_"+$[0]};this.scanTokens((W,u)=>{if(W[0]!=="IF"&&W[0]!=="UNLESS")return 1;return $=W,this.detectEnd(u+1,U,A),1})}addImplicitBracesAndParens(){let $=[],U=!1;this.scanTokens((A,W,u)=>{let[f]=A,Y=u[W-1]||[],R=u[W+1]||[],[F]=Y,[_]=R,Z=W,Q=(D)=>W-Z+D,K=()=>$[$.length-1],J=(D)=>D?.[2]?.ours,M=()=>J(K())&&K()?.[0]==="(",X=()=>J(K())&&K()?.[0]==="{",z=(D)=>{$.push(["(",D,{ours:!0}]),u.splice(D,0,V("CALL_START","("))},w=()=>{$.pop(),u.splice(W,0,V("CALL_END",")")),W+=1},G=(D,I={})=>{$.push(["{",D,{sameLine:!0,startsLine:I.startsLine??!0,ours:!0}]);let E=V("{","{");if(!E.data)E.data={};E.data.generated=!0,u.splice(D,0,E)},H=(D)=>{D=D??W,$.pop(),u.splice(D,0,V("}","}")),W+=1};if((M()||X())&&a2.has(f))return $.push(["CONTROL",W,{ours:!0}]),Q(1);if(f==="INDENT"&&J(K())){if(F!=="=>"&&F!=="->"&&F!=="["&&F!=="("&&F!==","&&F!=="{"&&F!=="ELSE"&&F!=="=")while(M()||X()&&F!==":")if(M())w();else H();if(K()?.[2]?.ours&&K()[0]==="CONTROL")$.pop();return $.push([f,W]),Q(1)}if(n.has(f))return $.push([f,W]),Q(1);if(x.has(f)){while(J(K()))if(M())w();else if(X())H();else $.pop();$.pop()}if(N1.has(f)&&A.spaced&&(_1.has(_)||_==="..."&&_1.has(u[W+2]?.[0])||i2.has(_)&&!R.spaced&&!R.newLine)&&!((f==="]"||f==="}")&&(_==="->"||_==="=>")))return z(W+1),Q(2);if(N1.has(f)&&this.tokens[W+1]?.[0]==="INDENT"&&this.looksObjectish(W+2)&&!this.findTagsBackwards(W,["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"]))return z(W+1),$.push(["INDENT",W+2]),Q(3);if(f==="SPACE?")U=!0;if(f===":"){if(U)return U=!1,Q(1);let D=x.has(this.tokens[W-1]?.[0])?$[$.length-1]?.[1]??W-1:W-1;if(this.tokens[W-2]?.[0]==="@")D=W-2;let I=D<=0||f1.has(this.tokens[D-1]?.[0])||this.tokens[D-1]?.newLine;if(K()){let[E,B]=K(),N=$[$.length-2];if((E==="{"||E==="INDENT"&&N?.[0]==="{"&&!J(N))&&(I||this.tokens[D-1]?.[0]===","||this.tokens[D-1]?.[0]==="{"||this.tokens[D]?.[0]==="{"))return Q(1)}return G(D,{startsLine:!!I}),Q(2)}if(f1.has(f))for(let D=$.length-1;D>=0;D--){if(!J($[D]))break;if($[D][0]==="{")$[D][2].sameLine=!1}let q=F==="OUTDENT"||Y.newLine,O=f==="||"||f==="&&",P=!1;if(O){let D=W+1,I=u[D]?.[0];if(I==="("||I==="["||I==="{"){for(let E=1;++D<u.length&&E>0;)if(I=u[D][0],I==="("||I==="["||I==="{")E++;else if(I===")"||I==="]"||I==="}")E--}else if(I&&I!=="TERMINATOR"&&I!=="OUTDENT"&&I!==",")D++;P=u[D]?.[0]===","}if(p2.has(f)&&!P||u2.has(f)&&q)while(J(K())){let[D,,{sameLine:I,startsLine:E}]=K();if(M()&&F!==",")w();else if(X()&&!O&&I&&f!=="TERMINATOR"&&F!==":")H();else if(X()&&f==="TERMINATOR"&&F!==","&&!(E&&this.looksObjectish(W+1)))H();else if(K()?.[2]?.ours&&K()[0]==="CONTROL"&&u[K()[1]]?.[0]==="CLASS"&&f==="TERMINATOR")$.pop();else break}if(f===","&&!this.looksObjectish(W+1)&&X()&&(_!=="TERMINATOR"||!this.looksObjectish(W+2))){let D=_==="OUTDENT"?1:0;while(X())H(W+D)}return Q(1)})}addImplicitCallCommas(){let $=0,U=0,A=this.tokens;while(U<A.length){let W=A[U][0],u=U>0?A[U-1][0]:null;if(W==="CALL_START"||W==="(")$++;if(W==="CALL_END"||W===")")$--;if($>0&&(W==="->"||W==="=>")&&d2.has(u))A.splice(U,0,V(",",",")),U++;U++}}scanTokens($){let U=0;while(U<this.tokens.length)U+=$.call(this,this.tokens[U],U,this.tokens)}detectEnd($,U,A,W={}){let u=0;while($<this.tokens.length){let f=this.tokens[$];if(u===0&&U.call(this,f,$))return A.call(this,f,$);if(n.has(f[0]))u++;if(x.has(f[0]))u--;if(u<0){if(W.returnOnNegativeLevel)return;return A.call(this,f,$)}$++}}closeMergeAssignments(){let $=this.tokens;for(let U=0;U<$.length;U++){if(!$[U].mergeClose)continue;let A=0;for(let W=U+1;W<$.length;W++){let u=$[W][0];if(u==="("||u==="["||u==="{"||u==="CALL_START"||u==="INDEX_START"||u==="INDENT")A++;if(u===")"||u==="]"||u==="}"||u==="CALL_END"||u==="INDEX_END"||u==="OUTDENT")A--;if(A<0||A===0&&u==="TERMINATOR"){$.splice(W,0,V("CALL_END",")",$[W-1]));break}if(W===$.length-1){$.splice(W+1,0,V("CALL_END",")",$[W]));break}}}}commaInImplicitCall($){let U=0;for(let A=$-1;A>=0;A--){let W=this.tokens[A][0];if(x.has(W)){U++;continue}if(n.has(W)){if(W==="INDENT")return!1;if(U--,U<0)return!1;continue}if(U>0)continue;if(N1.has(W)&&this.tokens[A].spaced){let u=this.tokens[A+1]?.[0];return _1.has(u)||u==="..."&&_1.has(this.tokens[A+2]?.[0])}}return!1}commaInImplicitObject($){let U=0;for(let A=$-1;A>=0;A--){let W=this.tokens[A][0];if(x.has(W)){U++;continue}if(n.has(W)){if(U--,U<0)return!1;continue}if(U>0)continue;if(W===":"&&A>0&&this.tokens[A-1][0]==="PROPERTY")return this.looksObjectish($+1);if(f1.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(n.has(this.tokens[$]?.[0])){let U=null;if(this.detectEnd($+1,(A)=>x.has(A[0]),(A,W)=>U=W),U&&this.tokens[U+1]?.[0]===":")return!0}return!1}findTagsBackwards($,U){let A=new Set(U),W=[];while($>=0){let u=this.tokens[$]?.[0];if(!W.length&&A.has(u))return!0;if(x.has(u))W.push(u);if(n.has(u)&&W.length)W.pop();if(!W.length&&(n.has(u)&&!this.tokens[$]?.generated||f1.has(u)))break;$--}return!1}makeIndentation($){let U=V("INDENT",2),A=V("OUTDENT",2);if($)U.generated=A.generated=!0,U.origin=A.origin=$;else U.explicit=A.explicit=!0;return[U,A]}}d1(r);var G3={symbolIds:{$accept:0,$end:1,error:2,Root:3,Body:4,Line:5,TERMINATOR:6,Expression:7,ExpressionLine:8,Statement:9,Return:10,STATEMENT:11,Import:12,Export:13,Value:14,Code:15,Operation:16,Assign:17,ReactiveAssign:18,ComputedAssign:19,ReadonlyAssign:20,ReactAssign:21,If:22,Try:23,While:24,For:25,Switch:26,Class:27,Component:28,Render:29,Throw:30,Yield:31,Def:32,Enum:33,CodeLine:34,OperationLine:35,Assignable:36,Literal:37,Parenthetical:38,Range:39,Invocation:40,DoIife:41,This:42,Super:43,MetaProperty:44,AlphaNumeric:45,JS:46,Regex:47,UNDEFINED:48,NULL:49,BOOL:50,INFINITY:51,NAN:52,NUMBER:53,String:54,Identifier:55,IDENTIFIER:56,Property:57,PROPERTY:58,STRING:59,STRING_START:60,Interpolations:61,STRING_END:62,InterpolationChunk:63,INTERPOLATION_START:64,INTERPOLATION_END:65,INDENT:66,OUTDENT:67,REGEX:68,REGEX_START:69,REGEX_END:70,RegexWithIndex:71,",":72,"=":73,REACTIVE_ASSIGN:74,COMPUTED_ASSIGN:75,READONLY_ASSIGN:76,REACT_ASSIGN:77,SimpleAssignable:78,Array:79,Object:80,ThisProperty:81,".":82,"?.":83,INDEX_START:84,INDEX_END:85,Slice:86,ES6_OPTIONAL_INDEX:87,"{":88,ObjAssignable:89,":":90,FOR:91,ForVariables:92,FOROF:93,OptComma:94,"}":95,WHEN:96,OWN:97,AssignList:98,AssignObj:99,ObjRestValue:100,SimpleObjAssignable:101,"[":102,"]":103,"@":104,"...":105,ObjSpreadExpr:106,SUPER:107,Arguments:108,DYNAMIC_IMPORT:109,Elisions:110,ArgElisionList:111,OptElisions:112,ArgElision:113,Arg:114,Elision:115,RangeDots:116,"..":117,DEF:118,CALL_START:119,ParamList:120,CALL_END:121,Block:122,PARAM_START:123,PARAM_END:124,FuncGlyph:125,"->":126,"=>":127,Param:128,ParamVar:129,Splat:130,ES6_OPTIONAL_CALL:131,ArgList:132,SimpleArgs:133,THIS:134,NEW_TARGET:135,IMPORT_META:136,"(":137,")":138,RETURN:139,THROW:140,YIELD:141,FROM:142,IfBlock:143,IF:144,ELSE:145,UnlessBlock:146,UNLESS:147,POST_IF:148,POST_UNLESS:149,TRY:150,Catch:151,FINALLY:152,CATCH:153,SWITCH:154,Whens:155,When:156,LEADING_WHEN:157,WhileSource:158,WHILE:159,UNTIL:160,Loop:161,LOOP:162,FORIN:163,BY:164,FORAS:165,AWAIT:166,FORASAWAIT:167,ForValue:168,CLASS:169,EXTENDS:170,ENUM:171,COMPONENT:172,ComponentBody:173,ComponentLine:174,RENDER:175,IMPORT:176,ImportDefaultSpecifier:177,ImportNamespaceSpecifier:178,ImportSpecifierList:179,ImportSpecifier:180,AS:181,DEFAULT:182,IMPORT_ALL:183,EXPORT:184,ExportSpecifierList:185,EXPORT_ALL:186,ExportSpecifier:187,UNARY:188,DO:189,DO_IIFE:190,UNARY_MATH:191,"-":192,"+":193,"?":194,"--":195,"++":196,MATH:197,"**":198,SHIFT:199,COMPARE:200,"&":201,"^":202,"|":203,"||":204,"??":205,"&&":206,"!?":207,PIPE:208,RELATION:209,"SPACE?":210,COMPOUND_ASSIGN:211},tokenNames:{2:"error",6:"TERMINATOR",11:"STATEMENT",46:"JS",48:"UNDEFINED",49:"NULL",50:"BOOL",51:"INFINITY",52:"NAN",53:"NUMBER",56:"IDENTIFIER",58:"PROPERTY",59:"STRING",60:"STRING_START",62:"STRING_END",64:"INTERPOLATION_START",65:"INTERPOLATION_END",66:"INDENT",67:"OUTDENT",68:"REGEX",69:"REGEX_START",70:"REGEX_END",72:",",73:"=",74:"REACTIVE_ASSIGN",75:"COMPUTED_ASSIGN",76:"READONLY_ASSIGN",77:"REACT_ASSIGN",82:".",83:"?.",84:"INDEX_START",85:"INDEX_END",87:"ES6_OPTIONAL_INDEX",88:"{",90:":",91:"FOR",93:"FOROF",95:"}",96:"WHEN",97:"OWN",102:"[",103:"]",104:"@",105:"...",107:"SUPER",109:"DYNAMIC_IMPORT",117:"..",118:"DEF",119:"CALL_START",121:"CALL_END",123:"PARAM_START",124:"PARAM_END",126:"->",127:"=>",131:"ES6_OPTIONAL_CALL",134:"THIS",135:"NEW_TARGET",136:"IMPORT_META",137:"(",138:")",139:"RETURN",140:"THROW",141:"YIELD",142:"FROM",144:"IF",145:"ELSE",147:"UNLESS",148:"POST_IF",149:"POST_UNLESS",150:"TRY",152:"FINALLY",153:"CATCH",154:"SWITCH",157:"LEADING_WHEN",159:"WHILE",160:"UNTIL",162:"LOOP",163:"FORIN",164:"BY",165:"FORAS",166:"AWAIT",167:"FORASAWAIT",169:"CLASS",170:"EXTENDS",171:"ENUM",172:"COMPONENT",175:"RENDER",176:"IMPORT",181:"AS",182:"DEFAULT",183:"IMPORT_ALL",184:"EXPORT",186:"EXPORT_ALL",188:"UNARY",189:"DO",190:"DO_IIFE",191:"UNARY_MATH",192:"-",193:"+",194:"?",195:"--",196:"++",197:"MATH",198:"**",199:"SHIFT",200:"COMPARE",201:"&",202:"^",203:"|",204:"||",205:"??",206:"&&",207:"!?",208:"PIPE",209:"RELATION",210:"SPACE?",211:"COMPOUND_ASSIGN"},parseTable:(()=>{let $=[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,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,-1,1,2,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,1,1,0,2,1,5,-2,107,5,1,5,59,2,71,-3,-3,-3,-3,-3,31,1,5,59,1,1,5,19,12,18,17,10,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-6,-6,-6,-6,-6,-6,127,-6,-6,-6,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,9,1,5,59,1,1,5,31,18,17,-7,-7,-7,-7,-7,-7,-7,-7,-7,14,1,5,59,1,1,5,31,18,17,10,1,9,1,1,-8,-8,-8,-8,-8,-8,-8,-8,-8,128,129,130,96,97,54,1,5,48,5,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,3,9,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-13,-13,132,105,106,-13,-13,-13,-13,135,136,137,-13,138,-13,-13,-13,-13,-13,-13,-13,133,-13,139,-13,-13,134,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,131,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,46,1,5,59,1,1,5,10,1,1,1,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,140,141,142,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,9,1,5,59,1,1,5,31,18,17,-33,-33,-33,-33,-33,-33,-33,-33,-33,9,1,5,59,1,1,5,31,18,17,-34,-34,-34,-34,-34,-34,-34,-34,-34,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,143,144,145,146,147,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,18,6,49,1,10,1,5,7,1,1,7,14,2,1,15,1,3,4,1,-173,152,104,-173,-173,-173,154,155,153,99,157,156,151,148,-173,-173,149,150,106,5,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,4,1,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,159,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,160,102,103,53,52,72,73,93,99,59,83,87,84,85,66,158,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,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,161,162,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,103,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,164,165,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,166,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,172,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,173,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,174,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,175,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,45,14,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,7,14,2,3,2,14,2,1,1,7,1,1,1,53,177,178,179,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,176,72,73,93,99,83,87,84,85,167,168,90,91,86,88,89,82,171,45,14,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,7,14,2,3,2,14,2,1,1,7,1,1,1,53,177,178,179,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,180,72,73,93,99,83,87,84,85,167,168,90,91,86,88,89,82,171,60,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,181,182,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,183,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,185,184,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,186,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,187,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,2,66,56,160,188,2,66,56,160,189,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,14,39,16,1,23,1,1,7,4,5,5,2,25,37,2,193,152,104,154,155,153,99,190,191,83,156,195,192,194,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,196,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,197,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,90,1,5,8,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,6,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,4,1,1,1,1,1,1,7,1,1,1,1,7,3,1,10,1,3,1,1,2,3,20,2,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-304,-304,177,178,179,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-304,160,-304,102,103,-304,200,72,73,93,-304,99,-304,-304,-304,-304,-304,83,-304,87,-304,84,85,-304,-304,198,167,-304,168,90,91,86,88,89,82,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,199,171,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,1,66,201,2,66,56,160,202,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,203,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,204,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,139,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,5,1,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,1,3,2,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,2,2,1,3,1,8,4,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-224,-224,205,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-224,206,-224,102,103,-224,53,52,72,73,93,-224,99,-224,-224,-224,-224,-224,83,-224,87,-224,84,85,-224,66,-224,167,-224,168,90,91,86,88,89,82,-224,69,64,65,207,54,94,-224,55,95,-224,-224,56,60,57,-224,-224,58,98,-224,-224,-224,49,-224,61,67,62,63,70,71,169,170,171,46,47,48,50,51,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,2,55,1,208,104,2,55,1,209,104,6,15,19,89,2,1,1,211,210,42,43,90,91,138,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,5,1,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,1,3,2,1,1,1,1,7,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,2,2,1,3,1,8,4,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-221,-221,212,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-221,213,-221,102,103,-221,53,52,72,73,93,-221,99,-221,-221,-221,-221,-221,83,-221,87,-221,84,85,-221,66,-221,167,-221,168,90,91,86,88,89,82,-221,69,64,65,54,94,-221,55,95,-221,-221,56,60,57,-221,-221,58,98,-221,-221,-221,49,-221,61,67,62,63,70,71,169,170,171,46,47,48,50,51,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,9,54,1,1,3,1,28,89,1,5,214,218,104,105,106,217,215,216,219,60,14,1,3,1,1,1,6,1,4,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,14,2,3,2,9,5,2,1,1,7,1,1,1,32,2,1,10,4,4,177,178,226,227,228,229,221,222,223,224,232,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,225,104,105,106,102,103,53,233,72,73,93,220,83,87,84,85,66,167,168,90,91,86,88,89,82,61,67,62,230,231,171,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,106,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,234,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,235,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,113,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,5,1,1,1,1,7,3,11,1,1,1,2,2,1,1,2,1,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,236,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,242,102,103,243,53,52,72,73,93,99,59,83,237,87,247,84,85,238,239,241,244,240,66,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,4,82,2,24,11,249,250,248,139,2,108,11,251,139,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,54,1,5,51,1,1,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-206,-206,252,253,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,1,82,254,1,82,255,54,11,35,2,1,1,1,1,1,3,3,1,6,2,1,8,11,3,11,2,3,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,54,11,35,2,1,1,1,1,1,3,3,1,6,2,1,8,11,3,11,2,3,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,256,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,257,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,258,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,259,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,4,1,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,261,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,160,102,103,53,52,72,73,93,99,59,83,87,84,85,66,260,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,23,6,39,8,1,1,1,1,1,1,1,6,1,5,9,8,6,3,1,1,1,1,2,1,-109,267,100,101,269,104,270,253,105,106,-109,-109,-109,271,262,-109,263,268,272,264,265,266,273,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,45,14,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,7,14,2,3,2,14,2,1,1,7,1,1,1,53,177,178,179,34,35,36,274,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,233,72,73,93,99,83,87,84,85,167,168,90,91,86,88,89,82,171,63,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,4,3,3,1,10,1,3,1,1,2,3,11,11,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,55,1,5,53,1,2,2,1,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,6,54,5,1,1,2,1,278,105,106,275,276,277,109,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,2,1,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,1,1,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,-5,279,-5,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-5,-5,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,-5,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,280,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,281,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,282,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,283,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,284,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,285,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,286,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,287,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,288,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,291,163,289,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,290,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,294,163,292,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,293,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,297,163,295,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,296,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,298,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,299,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,300,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,301,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,302,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,303,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,14,39,16,1,23,1,1,7,4,5,5,2,25,37,2,307,152,104,154,155,153,99,304,305,83,156,195,306,194,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,308,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,309,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,53,1,5,53,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,53,1,5,53,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,2,108,11,310,139,2,57,1,311,253,2,57,1,312,253,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,2,6,1,1,1,1,5,2,3,11,2,1,2,2,7,1,1,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,313,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,318,77,78,79,80,81,100,101,92,104,105,106,314,102,103,316,53,52,72,73,93,315,99,59,83,87,320,84,85,317,319,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,84,321,109,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,1,2,2,5,4,3,2,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,325,102,103,53,52,72,73,93,99,59,83,87,247,84,85,324,66,322,42,43,90,91,246,323,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,2,57,1,327,253,2,57,1,328,253,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,329,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,330,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,332,331,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,333,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,335,334,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,336,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,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,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,338,337,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,339,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,341,340,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,342,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,344,343,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,345,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,9,6,60,1,5,22,1,8,18,3,-217,-217,-217,347,348,-217,-217,-217,346,6,6,60,1,5,49,3,-174,-174,-174,-174,-174,-174,7,6,60,1,5,1,48,3,-178,-178,-178,-178,349,-178,-178,15,6,49,1,10,1,5,7,1,1,7,14,2,17,3,5,-181,152,104,-181,-181,-181,154,155,153,99,157,156,-181,-181,350,11,6,60,1,5,1,20,28,3,39,2,2,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,11,6,60,1,5,1,20,28,3,39,2,2,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,11,6,60,1,5,1,20,28,3,39,2,2,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,11,6,60,1,5,1,20,28,3,39,2,2,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,2,57,1,252,253,113,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,5,1,1,1,1,7,3,11,1,1,1,2,2,1,1,2,1,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,242,102,103,243,53,52,72,73,93,99,59,83,237,87,247,84,85,238,239,241,244,240,66,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,9,1,5,59,1,1,5,31,18,17,-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,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,352,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,351,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,125,126,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,118,-370,120,-370,-370,-370,9,1,5,59,1,1,5,31,18,17,-367,-367,-367,-367,-367,-367,-367,-367,-367,5,148,1,9,1,1,128,129,130,96,97,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,125,126,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,118,-371,120,-371,-371,-371,9,1,5,59,1,1,5,31,18,17,-368,-368,-368,-368,-368,-368,-368,-368,-368,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,125,126,-372,-372,-372,-372,-372,-372,-372,-372,-372,111,-372,-372,-372,-372,-372,-372,118,-372,120,-372,-372,-372,18,6,49,1,10,1,5,7,1,1,7,14,2,1,15,1,3,4,1,-173,152,104,-173,-173,-173,154,155,153,99,157,156,151,353,-173,-173,149,150,2,66,56,160,158,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,161,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,164,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,5,15,108,2,1,1,211,167,168,90,91,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,125,126,-373,-373,-373,-373,-373,-373,-373,-373,-373,111,-373,-373,-373,-373,-373,-373,118,-373,120,-373,-373,-373,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,125,126,-374,-374,-374,-374,-374,-374,-374,-374,-374,111,-374,-374,-374,-374,-374,-374,118,-374,120,-374,-374,-374,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,125,126,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,118,-376,120,-376,-376,-376,2,80,8,354,99,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-378,-378,-86,-86,-378,-378,-378,-378,-86,-86,-86,-86,-86,-86,-86,-86,-378,-86,-378,-378,-378,-378,-378,-378,-378,-378,-86,-378,-378,-86,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-86,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,10,54,5,1,22,1,1,3,21,11,12,132,105,106,135,136,137,138,133,139,134,3,82,1,1,140,141,142,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-379,-379,-86,-86,-379,-379,-379,-379,-86,-86,-86,-86,-86,-86,-86,-86,-379,-86,-379,-379,-379,-379,-379,-379,-379,-379,-86,-379,-379,-86,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-86,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,357,355,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,356,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-83,-83,-83,-83,-83,-83,-83,-83,127,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,124,125,126,96,97,-83,-83,-83,-83,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,358,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,359,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,66,56,22,160,360,361,46,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,2,1,1,6,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,362,363,364,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,4,93,70,2,2,366,365,367,368,11,55,1,23,1,1,7,4,10,2,25,39,152,104,154,155,153,99,369,157,156,195,194,11,55,1,23,1,1,7,4,10,2,25,39,152,104,154,155,153,99,370,157,156,195,194,3,66,56,42,160,371,372,5,72,21,70,2,2,373,-302,-302,-302,-302,6,72,1,20,70,2,2,-300,374,-300,-300,-300,-300,23,66,25,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,375,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,3,155,1,1,376,377,378,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,379,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,59,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,1,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-308,-308,-86,-86,-308,160,-308,-308,-86,-86,-86,-86,-86,-86,-86,-86,-308,-86,-308,-308,-308,-308,-308,-308,-308,-308,-86,-308,380,-308,-86,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,381,-308,-308,-86,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,105,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,1,1,1,1,8,4,1,1,1,1,1,2,1,384,385,386,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,382,383,63,70,71,44,45,68,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,125,126,-222,-222,-222,-222,-222,-222,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,80,8,387,99,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,125,126,-225,-225,-225,-225,-225,-225,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,80,8,388,99,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,389,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,66,53,3,160,390,391,2,66,56,160,392,9,1,5,59,1,1,5,31,18,17,-369,-369,-369,-369,-369,-369,-369,-369,-369,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,125,126,-219,-219,-219,-219,-219,-219,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,80,8,393,99,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,2,72,70,395,394,1,142,396,7,55,1,10,29,84,1,2,401,104,400,397,398,399,402,2,72,70,-337,-337,1,181,403,26,6,39,8,1,1,1,1,1,1,1,6,1,5,9,8,6,3,1,1,1,1,2,1,77,3,2,-109,267,100,101,408,104,270,253,105,106,407,-109,-109,271,262,404,263,268,272,264,265,266,273,409,405,406,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-89,-89,-89,-89,-89,-89,-89,-89,410,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,411,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,412,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,142,413,56,1,5,53,1,5,1,1,5,2,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,144,145,146,147,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,2,6,132,107,414,105,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,415,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,31,6,60,1,5,19,12,2,11,1,4,27,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-199,-199,-199,-199,127,-199,320,416,319,-199,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,109,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,5,1,1,1,1,7,3,11,1,1,1,2,2,5,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,243,53,52,72,73,93,99,59,83,417,87,247,84,85,419,418,66,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,9,6,60,1,5,22,1,8,9,9,-217,-217,-217,421,422,-217,-217,420,-217,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,5,11,3,11,1,1,1,2,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,423,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,5,6,60,1,5,31,-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,5,1,1,1,1,7,3,11,2,1,2,2,1,1,2,1,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,242,102,103,243,53,52,72,73,93,99,59,83,87,247,84,85,425,424,241,244,240,66,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,5,11,3,11,1,1,1,2,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,5,6,60,1,5,31,-150,-150,-150,-150,-150,6,6,60,1,5,31,18,-200,-200,-200,-200,-200,-200,6,6,60,1,5,31,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,5,1,1,1,1,7,3,11,1,1,3,2,9,3,2,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,-202,426,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-202,-202,102,103,-202,53,52,72,73,93,99,59,83,-202,87,84,85,66,-202,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,53,1,5,53,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,2,57,1,427,253,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,428,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,429,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,53,1,5,53,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,2,57,1,430,253,2,57,1,431,253,24,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,432,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,433,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,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-255,-255,-255,-255,-255,-255,-255,-255,127,-255,-255,434,-255,-255,-255,-255,-255,-255,-255,-255,125,126,96,97,-255,-255,-255,-255,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-257,-257,-257,-257,-257,-257,-257,-257,127,-257,-257,435,-257,-257,-257,-257,-257,-257,-257,-257,125,126,96,97,-257,-257,-257,-257,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,45,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,1,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-264,-264,-264,160,-264,-264,-264,-264,127,-264,-264,-264,-264,-264,-264,-264,436,-264,-264,-264,-264,125,126,96,97,-264,-264,-264,-264,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,6,6,60,1,5,18,5,-114,-114,-114,-114,437,-114,8,6,60,1,5,22,1,8,18,-217,-217,-217,439,438,-217,-217,-217,7,6,60,1,5,1,17,5,-123,-123,-123,-123,440,-123,-123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,441,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,57,1,44,252,253,442,6,6,60,1,5,18,5,-126,-126,-126,-126,-126,-126,5,6,60,1,5,23,-110,-110,-110,-110,-110,11,6,60,1,5,1,9,1,1,6,5,24,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,11,6,60,1,5,1,9,1,1,6,5,24,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,11,6,60,1,5,1,9,1,1,6,5,24,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,5,6,60,1,5,23,-115,-115,-115,-115,-115,17,38,4,1,12,1,1,1,22,1,7,13,3,2,1,2,25,3,446,448,447,269,104,270,253,445,271,99,443,87,444,449,450,86,82,53,1,5,53,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,-39,-39,451,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,6,54,5,1,2,1,1,278,105,106,452,453,277,4,59,1,2,2,-58,-58,-58,-58,107,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,454,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,456,455,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,4,59,1,2,2,-63,-63,-63,-63,5,1,5,59,2,71,-4,-4,-4,-4,-4,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,125,126,-382,-382,-382,-382,-382,-382,-382,-382,110,111,-382,-382,-382,-382,-382,-382,118,-382,120,-382,-382,-382,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,125,126,-383,-383,-383,-383,-383,-383,-383,-383,110,111,-383,-383,-383,-383,-383,-383,118,-383,120,-383,-383,-383,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,125,126,-384,-384,-384,-384,-384,-384,-384,-384,-384,111,-384,-384,-384,-384,-384,-384,118,-384,120,-384,-384,-384,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,125,126,-385,-385,-385,-385,-385,-385,-385,-385,-385,111,-385,-385,-385,-385,-385,-385,118,-385,120,-385,-385,-385,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,125,126,-386,-386,-386,-386,-386,-386,109,108,110,111,-386,-386,-386,-386,-386,-386,118,-386,120,-386,-386,-386,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,125,126,-387,-387,-387,-387,-387,-387,109,108,110,111,112,-387,-387,-387,-387,-387,118,-387,120,-387,122,-387,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,125,126,-388,-388,-388,-388,-388,-388,109,108,110,111,112,113,-388,-388,-388,-388,118,-388,120,-388,122,-388,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,125,126,-389,-389,-389,-389,-389,-389,109,108,110,111,112,113,114,-389,-389,-389,118,-389,120,-389,122,-389,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,125,126,-390,-390,-390,-390,-390,-390,109,108,110,111,112,113,114,115,-390,-390,118,-390,120,-390,122,-390,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,125,126,-398,-398,-398,-398,-398,-398,109,108,110,111,112,113,114,115,116,-398,118,119,120,-398,122,-398,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-399,-399,-399,-399,-399,-399,-399,-399,127,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,124,125,126,96,97,-399,-399,-399,-399,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,125,126,-397,-397,-397,-397,-397,-397,109,108,110,111,112,113,114,115,116,-397,118,-397,120,-397,122,-397,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-400,-400,-400,-400,-400,-400,-400,-400,127,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,124,125,126,96,97,-400,-400,-400,-400,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,125,126,-401,-401,-401,-401,-401,-401,109,108,110,111,112,113,114,115,116,117,118,119,120,-401,122,-401,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,125,126,-402,-402,-402,-402,-402,-402,109,108,110,111,112,-402,-402,-402,-402,-402,118,-402,120,-402,-402,-402,23,90,1,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,457,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-236,-236,-236,-236,-236,-236,-236,-236,127,-236,-236,-236,-236,-236,-236,-236,-236,-236,458,-236,125,126,96,97,-236,-236,-236,-236,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-239,-239,-239,-239,-239,-239,-239,-239,127,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,124,125,126,96,97,-239,-239,-239,-239,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,93,70,2,2,460,459,461,462,11,55,1,23,1,1,7,4,10,2,25,39,152,104,154,155,153,99,463,157,156,195,194,11,55,1,23,1,1,7,4,10,2,25,39,152,104,154,155,153,99,464,157,156,195,194,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,465,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-235,-235,-235,-235,-235,-235,-235,-235,127,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,125,126,96,97,-235,-235,-235,-235,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-238,-238,-238,-238,-238,-238,-238,-238,127,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,124,125,126,96,97,-238,-238,-238,-238,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,53,1,5,53,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,26,85,6,14,11,1,31,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,466,127,320,467,319,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,104,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,5,2,3,11,2,1,2,2,7,1,1,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,468,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,469,99,59,83,87,320,84,85,317,319,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,85,470,1,85,471,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,8,1,1,1,1,4,3,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,472,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-164,102,103,53,52,72,73,93,-164,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,-46,-46,-46,-46,-46,473,-46,-46,-46,-67,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,55,11,35,2,1,1,1,1,1,3,3,1,7,1,1,8,8,3,3,11,2,3,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,55,11,35,2,1,1,1,1,1,3,3,1,7,1,1,8,8,3,3,11,2,3,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,474,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,475,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,53,1,5,53,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,8,6,60,1,5,22,1,8,18,-217,-217,-217,477,476,-217,-217,-217,5,6,60,1,5,49,-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,8,1,1,1,1,7,3,11,2,1,2,2,5,4,5,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,325,102,103,53,52,72,73,93,99,59,83,87,247,84,85,324,66,42,43,90,91,246,478,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,28,6,60,1,5,19,12,18,27,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-199,-199,-199,-199,127,-199,-199,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,23,85,6,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,479,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,480,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,125,126,-68,-68,-68,-68,-68,-68,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,481,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,482,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-71,-71,-71,-71,-71,-71,-71,-71,127,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,124,125,126,96,97,-71,-71,-71,-71,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,483,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,484,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-74,-74,-74,-74,-74,-74,-74,-74,127,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,124,125,126,96,97,-74,-74,-74,-74,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,485,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,486,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-77,-77,-77,-77,-77,-77,-77,-77,127,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,124,125,126,96,97,-77,-77,-77,-77,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,487,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,488,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-80,-80,-80,-80,-80,-80,-80,-80,127,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,124,125,126,96,97,-80,-80,-80,-80,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,489,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,490,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,125,1,1,491,90,91,17,6,49,1,10,1,12,1,1,7,7,7,1,1,1,16,7,1,-218,152,104,-218,-218,154,155,153,99,-218,157,-218,156,151,-218,492,150,2,6,60,493,494,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,495,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,6,6,60,1,5,49,3,-180,-180,-180,-180,-180,-180,55,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,3,1,4,2,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,2,6,61,107,496,9,6,60,1,5,22,1,8,18,3,-217,-217,-217,347,348,-217,-217,-217,497,1,67,498,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,125,126,-404,-404,-404,-404,-404,-404,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,499,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,500,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-84,-84,-84,-84,-84,-84,-84,-84,127,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,124,125,126,96,97,-84,-84,-84,-84,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,501,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,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,502,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,3,7,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,503,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,2,66,56,160,504,6,55,1,10,14,8,34,505,104,160,506,99,507,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,508,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,509,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,510,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,511,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,93,512,1,165,513,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,514,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,10,55,1,23,1,1,7,14,2,25,39,152,104,154,155,153,99,157,156,195,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,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,516,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,155,1,1,517,377,378,4,67,78,11,1,518,519,520,378,3,67,78,12,-251,-251,-251,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,6,1,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,522,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,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,169,170,171,46,47,48,50,51,45,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,1,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-306,-306,-306,160,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,523,-306,-306,-306,-306,125,126,-306,-306,-306,-306,-306,-306,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,524,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,2,6,61,526,525,2,6,61,-314,-314,24,6,61,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-317,-317,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,6,61,-318,-318,7,6,61,81,1,9,1,1,-319,-319,128,129,130,96,97,1,67,527,1,67,528,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,125,126,-227,-227,-227,-227,-227,-227,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,18,6,49,1,10,1,5,7,1,1,7,14,2,1,15,1,3,4,1,-173,152,104,-173,-173,-173,154,155,153,99,157,156,151,529,-173,-173,149,150,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,1,67,530,3,54,5,1,531,105,106,3,88,90,5,533,532,219,3,54,5,1,534,105,106,1,142,535,8,6,60,1,5,22,1,8,18,-217,-217,-217,537,536,-217,-217,-217,5,6,60,1,5,23,-328,-328,-328,-328,-328,6,55,1,10,113,1,2,401,104,400,538,399,402,6,6,60,1,5,23,86,-333,-333,-333,-333,-333,539,6,6,60,1,5,23,86,-335,-335,-335,-335,-335,540,2,55,1,541,104,14,1,5,59,1,1,5,31,18,17,4,6,1,10,1,-339,-339,-339,-339,-339,-339,-339,-339,-339,542,-339,-339,-339,-339,8,6,60,1,5,22,1,8,18,-217,-217,-217,544,543,-217,-217,-217,5,6,60,1,5,23,-357,-357,-357,-357,-357,6,55,1,10,116,3,2,546,104,407,409,545,406,12,6,60,1,5,1,9,1,1,6,5,24,62,-362,-362,-362,-362,-120,-120,-120,-120,-120,-362,-120,547,6,6,60,1,5,23,86,-365,-365,-365,-365,-365,548,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,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,550,549,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,551,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,31,1,5,59,1,1,5,19,12,18,17,10,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-352,-352,-352,-352,-352,-352,127,-352,-352,-352,-352,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,80,8,552,99,3,54,5,1,553,105,106,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,2,6,61,107,554,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,555,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,5,11,3,11,1,1,1,2,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,423,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,5,6,60,1,5,31,-151,-151,-151,-151,-151,2,66,37,557,556,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,5,1,1,1,1,7,3,4,7,1,1,1,2,2,1,3,1,1,3,3,2,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,-218,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-218,-218,102,103,243,53,52,72,73,93,99,59,-218,83,-218,87,247,84,85,559,558,244,240,66,-218,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,4,6,60,1,36,560,-152,-152,-152,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,5,11,3,11,1,1,1,2,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,9,6,60,1,5,22,1,8,9,9,-217,-217,-217,421,422,-217,-217,561,-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,5,1,1,1,1,7,3,11,2,1,2,2,5,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,243,53,52,72,73,93,99,59,83,87,247,84,85,419,418,66,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,28,6,60,1,5,19,12,18,27,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-186,-186,-186,-186,127,-186,-186,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,23,85,6,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,562,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,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,563,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,564,-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,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,565,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,566,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,567,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,568,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,6,60,29,570,571,569,23,6,39,8,1,1,1,1,1,1,1,6,1,14,8,6,4,1,1,1,1,1,1,16,-218,267,100,101,269,104,270,253,105,106,-218,-218,271,573,-218,572,272,264,265,-218,266,273,-218,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,574,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,575,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,23,91,12,45,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,127,576,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,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,577,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,10,6,60,1,5,10,1,1,11,13,11,-127,-127,-127,-127,-129,-129,-129,-127,578,139,10,6,60,1,5,10,1,1,11,13,11,-128,-128,-128,-128,580,581,582,-128,579,139,9,6,60,1,5,10,1,1,11,24,-130,-130,-130,-130,-130,-130,-130,-130,-130,9,6,60,1,5,10,1,1,11,24,-131,-131,-131,-131,-131,-131,-131,-131,-131,9,6,60,1,5,10,1,1,11,24,-132,-132,-132,-132,-132,-132,-132,-132,-132,9,6,60,1,5,10,1,1,11,24,-133,-133,-133,-133,-133,-133,-133,-133,-133,4,82,2,24,11,249,250,583,139,2,108,11,584,139,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,55,1,5,53,1,2,2,1,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,4,59,1,2,2,-59,-59,-59,-59,2,6,59,107,585,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,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,586,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,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,587,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,66,588,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,589,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,590,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,591,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,592,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,93,593,1,165,594,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,595,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,8,1,1,1,1,4,3,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,596,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-162,102,103,53,52,72,73,93,-162,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,26,67,24,14,11,1,31,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,597,127,320,467,319,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,1,67,598,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,24,67,18,6,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-163,-163,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,599,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,23,85,6,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,600,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,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,601,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,6,60,55,603,604,602,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,8,1,1,1,1,7,3,4,7,1,1,1,2,2,5,4,3,2,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,-218,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-218,-218,102,103,53,52,72,73,93,99,59,-218,83,-218,87,247,84,85,605,66,-218,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,8,6,60,1,5,22,1,8,18,-217,-217,-217,477,606,-217,-217,-217,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,607,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,125,126,-69,-69,-69,-69,-69,-69,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,608,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-72,-72,-72,-72,-72,-72,-72,-72,127,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,124,125,126,96,97,-72,-72,-72,-72,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,609,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-75,-75,-75,-75,-75,-75,-75,-75,127,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,124,125,126,96,97,-75,-75,-75,-75,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,610,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-78,-78,-78,-78,-78,-78,-78,-78,127,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,124,125,126,96,97,-78,-78,-78,-78,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,24,57,1,9,1,1,32,1,4,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,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-81,-81,-81,-81,-81,-81,-81,-81,127,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,124,125,126,96,97,-81,-81,-81,-81,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,24,57,1,9,1,1,32,1,4,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,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,8,1,1,1,1,7,3,11,2,3,2,9,4,1,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,614,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,160,102,103,53,52,72,73,93,99,59,83,87,84,85,66,613,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,49,3,-175,-175,-175,-175,-175,-175,11,55,1,23,1,1,7,14,2,1,23,1,152,104,154,155,153,99,157,156,151,615,150,18,6,49,1,10,1,5,7,1,1,7,14,2,1,15,1,3,4,1,-173,152,104,-173,-173,-173,154,155,153,99,157,156,151,616,-173,-173,149,150,28,6,60,1,5,19,30,3,24,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-179,-179,-179,-179,127,-179,-179,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,55,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,3,1,4,2,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,3,125,1,1,617,90,91,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,618,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,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,125,126,-406,-406,-406,-406,-406,-406,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,24,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,619,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,66,56,160,620,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,2,66,56,160,621,2,66,56,160,622,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,3,7,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,26,66,25,5,26,26,1,9,1,1,4,28,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,624,623,124,125,126,96,97,625,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,25,5,26,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,627,626,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,25,5,26,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,629,628,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,25,5,26,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,631,630,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,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,632,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,633,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,24,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,634,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,93,70,2,2,-303,-303,-303,-303,27,72,19,2,55,1,9,1,1,3,2,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-301,127,-301,124,125,126,96,97,-301,-301,-301,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,67,78,11,1,635,636,520,378,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,2,66,56,160,637,3,67,78,12,-252,-252,-252,3,66,6,50,160,639,638,24,66,6,19,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-203,-203,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,45,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,1,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-310,-310,-310,160,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,640,-310,-310,-310,-310,125,126,-310,-310,-310,-310,-310,-310,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,106,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,1,1,8,4,1,1,1,1,1,2,1,-316,384,385,386,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-316,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,641,63,70,71,44,45,68,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,8,6,60,1,5,22,1,8,18,-217,-217,-217,347,348,-217,-217,642,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,1,142,643,6,55,1,10,113,1,2,401,104,400,644,399,402,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,3,54,5,1,645,105,106,3,6,60,29,647,648,646,10,6,49,1,10,1,28,8,18,59,2,-218,401,104,-218,-218,-218,-218,-218,649,402,8,6,60,1,5,22,1,8,18,-217,-217,-217,537,650,-217,-217,-217,2,55,1,651,104,2,55,1,652,104,1,142,-338,3,54,5,1,653,105,106,3,6,60,29,655,656,654,10,6,49,1,10,1,28,8,18,61,5,-218,546,104,-218,-218,-218,-218,-218,409,657,8,6,60,1,5,22,1,8,18,-217,-217,-217,544,658,-217,-217,-217,6,6,60,1,5,23,86,-362,-362,-362,-362,-362,547,3,55,1,126,659,104,660,2,55,1,661,104,31,1,5,59,1,1,5,19,12,18,17,10,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-345,-345,-345,-345,-345,-345,127,-345,-345,-345,-345,125,126,-345,-345,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,662,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,663,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,67,664,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,1,138,665,23,91,12,45,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,127,666,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,112,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,5,1,1,1,1,7,3,11,2,1,2,2,1,1,2,1,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,242,102,103,243,53,52,72,73,93,99,59,83,87,247,84,85,425,667,241,244,240,66,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,5,6,60,1,5,31,-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,5,1,1,1,1,7,3,11,1,1,1,2,2,5,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-153,-153,102,103,243,53,52,72,73,93,99,59,83,-153,87,247,84,85,419,418,66,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,110,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,5,1,1,1,1,7,3,11,2,1,2,2,1,3,1,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,243,53,52,72,73,93,99,59,83,87,247,84,85,425,668,244,240,66,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,2,66,1,557,669,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,670,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,66,56,160,671,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,125,126,-256,-256,-256,-256,-256,-256,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,125,126,-258,-258,-258,-258,-258,-258,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,27,6,60,1,5,19,4,53,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-116,-116,-116,-116,672,-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,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,673,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,17,45,8,1,1,1,1,1,1,1,21,8,10,1,1,1,2,1,267,100,101,269,104,270,253,105,106,271,573,674,272,264,265,266,273,23,6,39,8,1,1,1,1,1,1,1,6,1,5,9,8,6,3,1,1,1,1,2,1,-109,267,100,101,269,104,270,253,105,106,-109,-109,-109,271,573,-109,675,268,272,264,265,266,273,5,6,60,1,5,23,-111,-111,-111,-111,-111,6,6,60,1,5,18,5,-114,-114,-114,-114,676,-114,27,6,60,1,5,19,4,53,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-118,-118,-118,-118,127,-118,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,677,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,6,6,60,1,5,18,5,-124,-124,-124,-124,-124,-124,23,91,12,45,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,127,678,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,10,1,1,11,24,-136,-136,-136,-136,-136,-136,-136,-136,-136,9,6,60,1,5,10,1,1,11,24,-137,-137,-137,-137,-137,-137,-137,-137,-137,2,57,1,679,253,2,57,1,680,253,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,681,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,682,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,9,6,60,1,5,10,1,1,11,24,-134,-134,-134,-134,-134,-134,-134,-134,-134,9,6,60,1,5,10,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,683,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,125,126,-403,-403,-403,-403,-403,-403,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,684,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,685,-283,-283,-283,-283,-283,-283,-283,-283,125,126,-283,-283,-283,686,-283,-283,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,687,-288,-288,-288,-288,-288,-288,-288,-288,125,126,-288,-288,-288,-288,-288,-288,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,688,-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,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,689,-296,-296,-296,-296,-296,-296,-296,-296,125,126,-296,-296,-296,-296,-296,-296,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,690,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,691,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,125,126,-299,-299,-299,-299,-299,-299,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,67,18,6,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-161,-161,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,1,85,692,1,85,693,23,85,6,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-66,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,694,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,53,1,5,53,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,106,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,1,2,2,5,4,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,247,84,85,695,66,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,108,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,1,2,2,5,4,5,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,325,102,103,53,52,72,73,93,99,59,83,87,247,84,85,324,66,42,43,90,91,246,696,86,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,49,-195,-195,-195,-195,-195,3,6,60,1,603,604,697,1,85,698,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,9,1,5,59,1,1,5,31,18,17,-169,-169,-169,-169,-169,-169,-169,-169,-169,6,6,60,1,5,49,3,-176,-176,-176,-176,-176,-176,8,6,60,1,5,22,1,8,18,-217,-217,-217,347,699,-217,-217,-217,2,66,56,160,613,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,3,7,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,3,7,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,700,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,701,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,702,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,703,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,704,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,25,66,25,5,26,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,706,705,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,25,5,26,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,708,707,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,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,2,66,56,160,709,1,67,710,4,6,61,78,12,711,-253,-253,-253,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,712,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,2,6,61,-315,-315,2,66,56,160,713,3,54,5,1,714,105,106,8,6,60,1,5,22,1,8,18,-217,-217,-217,537,715,-217,-217,-217,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,1,142,716,4,55,1,124,2,401,104,717,402,6,55,1,10,113,1,2,401,104,400,718,399,402,5,6,60,1,5,23,-329,-329,-329,-329,-329,3,6,60,1,647,648,719,5,6,60,1,5,23,-334,-334,-334,-334,-334,5,6,60,1,5,23,-336,-336,-336,-336,-336,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,14,1,5,59,1,1,5,31,18,17,4,6,1,10,1,-340,-340,-340,-340,-340,-340,-340,-340,-340,720,-340,-340,-340,-340,4,55,1,126,5,546,104,409,721,6,55,1,10,116,3,2,546,104,407,409,722,406,5,6,60,1,5,23,-358,-358,-358,-358,-358,3,6,60,1,655,656,723,5,6,60,1,5,23,-363,-363,-363,-363,-363,5,6,60,1,5,23,-364,-364,-364,-364,-364,5,6,60,1,5,23,-366,-366,-366,-366,-366,31,1,5,59,1,1,5,19,12,18,17,10,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-346,-346,-346,-346,-346,-346,127,-346,-346,-346,-346,125,126,-346,-346,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,724,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,31,18,17,10,1,10,1,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,9,6,60,1,5,22,1,8,9,9,-217,-217,-217,421,422,-217,-217,725,-217,5,6,60,1,5,31,-147,-147,-147,-147,-147,5,6,60,1,5,31,-148,-148,-148,-148,-148,1,85,726,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,14,39,16,1,23,1,1,7,4,5,5,2,25,37,2,307,152,104,154,155,153,99,727,728,83,156,195,306,194,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,729,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,60,1,5,23,-112,-112,-112,-112,-112,8,6,60,1,5,22,1,8,18,-217,-217,-217,439,730,-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,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,731,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,568,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,732,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,18,5,-125,-125,-125,-125,-125,-125,9,6,60,1,5,10,1,1,11,24,-138,-138,-138,-138,-138,-138,-138,-138,-138,9,6,60,1,5,10,1,1,11,24,-139,-139,-139,-139,-139,-139,-139,-139,-139,23,85,6,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,733,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,734,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,65,735,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,736,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,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,737,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,738,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,739,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,740,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,741,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,742,-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,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,743,-294,-294,-294,-294,-294,-294,-294,-294,125,126,-294,-294,-294,-294,-294,-294,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,1,85,744,5,6,60,1,5,49,-196,-196,-196,-196,-196,8,6,60,1,5,22,1,8,18,-217,-217,-217,477,745,-217,-217,-217,5,6,60,1,5,49,-197,-197,-197,-197,-197,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,3,6,60,1,493,494,746,25,66,25,31,26,1,9,1,1,4,28,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,747,124,125,126,96,97,748,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,25,5,26,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,750,749,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,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,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,752,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,753,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,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,754,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,755,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,67,756,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,3,67,78,12,-254,-254,-254,24,66,6,19,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-204,-204,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,3,6,60,29,647,648,757,3,54,5,1,758,105,106,5,6,60,1,5,23,-330,-330,-330,-330,-330,8,6,60,1,5,22,1,8,18,-217,-217,-217,537,759,-217,-217,-217,5,6,60,1,5,23,-331,-331,-331,-331,-331,3,54,5,1,760,105,106,5,6,60,1,5,23,-359,-359,-359,-359,-359,8,6,60,1,5,22,1,8,18,-217,-217,-217,544,761,-217,-217,-217,5,6,60,1,5,23,-360,-360,-360,-360,-360,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,2,66,1,557,762,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,4,93,70,2,2,763,459,461,462,11,55,1,23,1,1,7,4,10,2,25,39,152,104,154,155,153,99,764,157,156,195,194,5,6,60,1,5,23,-117,-117,-117,-117,-117,3,6,60,1,570,571,765,27,6,60,1,5,19,4,53,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-116,-116,-116,-116,127,-116,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,60,1,5,23,-119,-119,-119,-119,-119,9,6,60,1,5,10,1,1,11,24,-140,-140,-140,-140,-140,-140,-140,-140,-140,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,766,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,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,125,126,-284,-284,-284,767,-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,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,768,-285,-285,-285,-285,-285,-285,-285,-285,125,126,-285,-285,-285,-285,-285,-285,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,125,126,-289,-289,-289,-289,-289,-289,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,125,126,-293,-293,-293,-293,-293,-293,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,125,126,-297,-297,-297,-297,-297,-297,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,769,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,770,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,3,6,60,1,603,604,771,6,6,60,1,5,49,3,-177,-177,-177,-177,-177,-177,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,772,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,773,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,24,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,774,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,775,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,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,1,142,776,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,3,6,60,1,647,648,777,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,3,6,60,1,655,656,778,5,6,60,1,5,31,-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,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,779,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,93,780,5,6,60,1,5,23,-113,-113,-113,-113,-113,1,85,781,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,782,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,783,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,125,126,-291,-291,-291,-291,-291,-291,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,125,126,-295,-295,-295,-295,-295,-295,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,60,1,5,49,-198,-198,-198,-198,-198,24,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,784,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,785,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,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,3,54,5,1,786,105,106,5,6,60,1,5,23,-332,-332,-332,-332,-332,5,6,60,1,5,23,-361,-361,-361,-361,-361,45,1,5,59,1,1,5,13,5,1,2,1,1,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,789,-288,-288,-288,-288,787,-288,788,-288,-288,-288,-288,-288,-288,-288,-288,125,126,-288,-288,-288,-288,-288,-288,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,790,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,9,6,60,1,5,10,1,1,11,24,-141,-141,-141,-141,-141,-141,-141,-141,-141,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,125,126,-286,-286,-286,-286,-286,-286,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,125,126,-287,-287,-287,-287,-287,-287,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,1,95,791,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,792,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,6,6,60,1,28,8,18,-218,-218,-218,-218,-218,-218,45,1,5,59,1,1,5,13,5,1,2,1,1,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,789,-290,-290,-290,-290,793,-290,794,-290,-290,-290,-290,-290,-290,-290,-290,125,126,-290,-290,-290,-290,-290,-290,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,45,1,5,59,1,1,5,13,5,1,2,1,1,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,789,-289,-289,-289,-289,795,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,125,126,-289,-289,-289,-289,-289,-289,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,1,95,796,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,797,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,95,798,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,45,1,5,59,1,1,5,13,5,1,2,1,1,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,789,-291,-291,-291,-291,799,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,125,126,-291,-291,-291,-291,-291,-291,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,1,95,800,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107],U=[],A=0,W,u,f,Y;while(A<$.length){W=$[A++],u={},f=0,Y=[];while(W--)f+=$[A++],Y.push(f);for(f of Y)u[f]=$[A++];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,5,20,3,20,4,20,5,21,3,21,4,21,5,21,2,21,3,21,4,36,1,36,1,36,1,78,1,78,1,78,3,78,3,78,4,78,6,78,4,78,6,78,4,78,5,78,7,78,3,78,3,78,4,78,6,80,10,80,12,80,11,80,13,80,4,98,0,98,1,98,3,98,4,98,6,99,1,99,1,99,3,99,5,99,3,99,5,101,1,101,1,101,1,89,1,89,3,89,4,89,1,100,2,100,2,106,1,106,1,106,1,106,1,106,1,106,2,106,2,106,2,106,2,106,3,106,3,106,4,106,6,79,2,79,3,79,4,111,1,111,3,111,4,111,4,111,6,113,1,113,2,112,1,112,2,110,1,110,2,115,1,115,2,116,1,116,1,39,5,86,3,86,2,86,2,86,1,32,6,32,3,15,5,15,2,34,5,34,2,125,1,125,1,120,0,120,1,120,3,120,4,120,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,108,2,108,4,132,1,132,3,132,4,132,4,132,6,114,1,114,1,114,1,114,1,133,1,133,3,42,1,42,1,81,2,43,3,43,4,43,6,44,3,44,3,122,2,122,3,38,3,38,5,94,0,94,1,10,2,10,4,10,1,30,2,30,4,31,1,31,2,31,4,31,3,143,3,143,5,146,3,146,5,22,1,22,3,22,1,22,3,22,3,22,7,22,3,22,3,23,2,23,3,23,4,23,5,151,3,151,3,151,2,26,5,26,7,26,4,26,6,155,1,155,2,156,3,156,4,158,2,158,4,158,2,158,4,24,2,24,2,24,2,24,1,161,2,161,2,161,3,25,5,25,7,25,7,25,9,25,9,25,5,25,7,25,6,25,8,25,5,25,7,25,6,25,8,25,5,25,7,25,3,25,5,25,5,25,7,25,7,25,9,25,9,25,5,25,7,25,6,25,8,25,5,25,7,25,6,25,8,25,5,25,7,25,3,25,5,168,1,168,3,92,1,92,3,27,1,27,2,27,3,27,4,27,2,27,3,27,4,27,5,33,3,28,4,173,1,173,3,173,2,174,1,174,1,174,1,29,2,12,2,12,4,12,4,12,5,12,7,12,6,12,9,179,1,179,3,179,4,179,4,179,6,180,1,180,3,180,1,180,3,177,1,178,3,13,3,13,5,13,2,13,2,13,2,13,2,13,4,13,5,13,6,13,2,13,2,13,2,13,2,13,3,13,5,13,4,13,5,13,7,185,1,185,3,185,4,185,4,185,6,187,1,187,3,187,3,187,1,187,3,35,2,35,2,35,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,4,16,2,16,2,16,2,16,2,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,5,16,3,16,5,16,4,41,2],ruleActions:($,U,A,W)=>{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 251:case 302:case 314:case 328:case 357:return[u[f]];case 4:case 111:case 175:case 195:case 204:case 315:case 329:case 358:return[...u[f-2],u[f]];case 5:case 60:case 157:case 316: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 262:case 300:case 317:case 318:case 319:case 333:case 335:case 337:case 362:case 365: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 252:return[...u[f-1],u[f]];case 61:case 193:case 197:case 331:case 360: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:return["computed",u[f-2],u[f]];case 75:return["computed",u[f-3],u[f]];case 76:return["computed",u[f-4],u[f-1]];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:return["effect",u[f-2],u[f]];case 81:return["effect",u[f-3],u[f]];case 82:return["effect",u[f-4],u[f-1]];case 83:case 84:return["effect",null,u[f]];case 85:return["effect",null,u[f-1]];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 330:case 359:return[...u[f-3],u[f]];case 113:case 177:case 198:case 332:case 361: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 384:case 386:case 387:case 402:case 404: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 301: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:case 239:return["if",["!",u[f]],[u[f-2]]];case 240:return["try",u[f]];case 241:return["try",u[f-1],u[f]];case 242:return["try",u[f-2],u[f]];case 243:return["try",u[f-3],u[f-2],u[f]];case 244:case 245:case 367:case 370:case 372:return[u[f-1],u[f]];case 246:return[null,u[f]];case 247:return["switch",u[f-3],u[f-1],null];case 248:return["switch",u[f-5],u[f-3],u[f-1]];case 249:return["switch",null,u[f-1],null];case 250:return["switch",null,u[f-3],u[f-1]];case 253:return["when",u[f-1],u[f]];case 254:return["when",u[f-2],u[f-1]];case 255:return["while",u[f]];case 256:return["while",u[f-2],u[f]];case 257:return["while",["!",u[f]]];case 258:return["while",["!",u[f-2]],u[f]];case 259: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 260:case 261: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 263:return["loop",u[f]];case 264:return["loop",[u[f]]];case 265:return["loop-n",u[f-1],u[f]];case 266:return["for-in",u[f-3],u[f-1],null,null,u[f]];case 267:return["for-in",u[f-5],u[f-3],null,u[f-1],u[f]];case 268:return["for-in",u[f-5],u[f-3],u[f-1],null,u[f]];case 269:return["for-in",u[f-7],u[f-5],u[f-1],u[f-3],u[f]];case 270:return["for-in",u[f-7],u[f-5],u[f-3],u[f-1],u[f]];case 271:return["for-of",u[f-3],u[f-1],!1,null,u[f]];case 272:return["for-of",u[f-5],u[f-3],!1,u[f-1],u[f]];case 273:return["for-of",u[f-3],u[f-1],!0,null,u[f]];case 274:return["for-of",u[f-5],u[f-3],!0,u[f-1],u[f]];case 275:return["for-as",u[f-3],u[f-1],!1,null,u[f]];case 276:return["for-as",u[f-5],u[f-3],!1,u[f-1],u[f]];case 277:case 279:return["for-as",u[f-3],u[f-1],!0,null,u[f]];case 278:case 280:return["for-as",u[f-5],u[f-3],!0,u[f-1],u[f]];case 281:return["for-in",[],u[f-1],null,null,u[f]];case 282:return["for-in",[],u[f-3],u[f-1],null,u[f]];case 283:return["comprehension",u[f-4],[["for-in",u[f-2],u[f],null]],[]];case 284:return["comprehension",u[f-6],[["for-in",u[f-4],u[f-2],null]],[u[f]]];case 285:return["comprehension",u[f-6],[["for-in",u[f-4],u[f-2],u[f]]],[]];case 286:return["comprehension",u[f-8],[["for-in",u[f-6],u[f-4],u[f]]],[u[f-2]]];case 287:return["comprehension",u[f-8],[["for-in",u[f-6],u[f-4],u[f-2]]],[u[f]]];case 288:return["comprehension",u[f-4],[["for-of",u[f-2],u[f],!1]],[]];case 289:return["comprehension",u[f-6],[["for-of",u[f-4],u[f-2],!1]],[u[f]]];case 290:return["comprehension",u[f-5],[["for-of",u[f-2],u[f],!0]],[]];case 291:return["comprehension",u[f-7],[["for-of",u[f-4],u[f-2],!0]],[u[f]]];case 292:return["comprehension",u[f-4],[["for-as",u[f-2],u[f],!1,null]],[]];case 293:return["comprehension",u[f-6],[["for-as",u[f-4],u[f-2],!1,null]],[u[f]]];case 294:return["comprehension",u[f-5],[["for-as",u[f-2],u[f],!0,null]],[]];case 295:return["comprehension",u[f-7],[["for-as",u[f-4],u[f-2],!0,null]],[u[f]]];case 296:return["comprehension",u[f-4],[["for-as",u[f-2],u[f],!0,null]],[]];case 297:return["comprehension",u[f-6],[["for-as",u[f-4],u[f-2],!0,null]],[u[f]]];case 298:return["comprehension",u[f-2],[["for-in",[],u[f],null]],[]];case 299:return["comprehension",u[f-4],[["for-in",[],u[f-2],u[f]]],[]];case 303:case 334:case 336:case 363:case 364:case 366:return[u[f-2],u[f]];case 304:return["class",null,null];case 305:return["class",null,null,u[f]];case 306:return["class",null,u[f]];case 307:return["class",null,u[f-1],u[f]];case 308:return["class",u[f],null];case 309:return["class",u[f-1],null,u[f]];case 310:return["class",u[f-2],u[f]];case 311:return["class",u[f-3],u[f-1],u[f]];case 312:return["enum",u[f-1],u[f]];case 313:return["component",null,["block",...u[f-1]]];case 320:return["render",u[f]];case 321:case 324:return["import","{}",u[f]];case 322:case 323:return["import",u[f-2],u[f]];case 325:return["import",u[f-4],u[f]];case 326:return["import",[u[f-4],u[f-2]],u[f]];case 327:return["import",[u[f-7],u[f-4]],u[f]];case 338:return["*",u[f]];case 339:return["export","{}"];case 340:return["export",u[f-2]];case 341:case 342:case 343:case 344:case 348:case 349:case 350:case 351:return["export",u[f]];case 345:return["export",["=",u[f-2],u[f]]];case 346:return["export",["=",u[f-3],u[f]]];case 347:return["export",["=",u[f-4],u[f-1]]];case 352:return["export-default",u[f]];case 353:return["export-default",u[f-1]];case 354:return["export-all",u[f]];case 355:return["export-from","{}",u[f]];case 356:return["export-from",u[f-4],u[f]];case 368:case 369:case 371:case 407:return["do-iife",u[f]];case 373:return["-",u[f]];case 374:return["+",u[f]];case 375:return["?",u[f-1]];case 376:return["await",u[f]];case 377:return["await",u[f-1]];case 378:return["--",u[f],!1];case 379:return["++",u[f],!1];case 380:return["--",u[f-1],!0];case 381:return["++",u[f-1],!0];case 382:return["+",u[f-2],u[f]];case 383:return["-",u[f-2],u[f]];case 385:return["**",u[f-2],u[f]];case 388:return["&",u[f-2],u[f]];case 389:return["^",u[f-2],u[f]];case 390:return["|",u[f-2],u[f]];case 391:case 392:case 393:case 394:case 395:case 396:return["control",u[f-1],u[f-2],u[f]];case 397:return["&&",u[f-2],u[f]];case 398:return["||",u[f-2],u[f]];case 399:return["??",u[f-2],u[f]];case 400:return["!?",u[f-2],u[f]];case 401:return["|>",u[f-2],u[f]];case 403:return["?:",u[f-4],u[f-2],u[f]];case 405:return[u[f-3],u[f-4],u[f-1]];case 406:return[u[f-2],u[f-3],u[f]]}},parseError($,U){let A,W,u,f,Y,R,F;if(U.recoverable)return this.trace($);else throw u=(U.line||0)+1,A=U.loc?.c||0,F=U.token?` (token: ${U.token})`:"",R=U.text?` near '${U.text}'`:"",f=`line ${u}, column ${A}`,Y=`Parse error at ${f}${F}${R}: ${$}`,W=Error(Y),W.hash=U,W},parse($){let U,A,W,u,f,Y,R,F,_,Z,Q,K,J,M,X,z,w,G,H,q,O,P,D,I,E,B;[q,B,Z]=[[0],[null],[]],[J,E,D,P,z]=[this.parseTable,"",0,0,0],[A,U]=[2,1],F=Object.create(this.lexer),G={ctx:{}};for(let N in this.ctx){if(!Object.hasOwn(this.ctx,N))continue;let T=this.ctx[N];G.ctx[N]=T}if(F.setInput($,G.ctx),[G.ctx.lexer,G.ctx.parser]=[F,this],F.loc==null)F.loc={};I=F.loc,Z.push(I),this.parseError=typeof G.ctx.parseError==="function"?G.ctx.parseError:Object.getPrototypeOf(this).parseError,R=()=>{let N;if(N=F.lex()||U,typeof N!=="number")N=this.symbolIds[N]||N;return N},O=M=H=W=X=K=Y=Q=f=null,w={};while(!0){if(H=q[q.length-1],O==null)O=R();if(W=J[H]?.[O],W==null){if(u="",!z)f=(()=>{let N=[];for(let T in J[H]){if(!Object.hasOwn(J[H],T))continue;if(this.tokenNames[T]&&T>A)N.push(`'${this.tokenNames[T]}'`)}return N})();throw u=(()=>{if(F.showPosition)return`Parse error on line ${D+1}:
|
|
12
|
-
${
|
|
13
|
-
Expecting ${f.join(", ")}, got '${this.tokenNames[O]||O}'`;else return`Parse error on line ${D+1}: Unexpected ${O===U?"end of input":`'${this.tokenNames[O]||O}'`}`,this.parseError(u,{text:F.match,token:this.tokenNames[O]||O,line:F.line,loc:I,expected:f})})(),Error(u)}if(W>0)if(q.push(O,W),B.push(F.text),Z.push(F.loc),O=null,!M){if([P,E,D,I]=[F.len,F.text,F.line,F.loc],z>0)z--}else[O,M]=[M,null];else if(W<0){if(Y=this.ruleTable[-W*2+1],w.$=B[B.length-Y],_=Z[Z.length-(Y||1)],w._$={r:_.r,c:_.c},X=this.ruleActions.call(w,-W,B,Z,G.ctx),X!=null)w.$=X;if(Array.isArray(w.$))w.$.loc=w._$;if(Y)q.length-=Y*2,B.length-=Y,Z.length-=Y;q.push(this.ruleTable[-W*2]),B.push(w.$),Z.push(w._$),Q=J[q[q.length-2]][q[q.length-1]],q.push(Q)}else if(W===0)return B[B.length-1]}},trace(){},ctx:{}},E3=($={})=>{let U=Object.create(G3);return Object.defineProperty(U,"ctx",{value:{...$},enumerable:!1,writable:!0,configurable:!0}),U},a=E3();var i3=a.parse.bind(a);var F2="__bind_",R2="__",Z2=new Set(["beforeMount","mounted","updated","beforeUnmount","unmounted"]);function I3($){for(let U of $){if(!Array.isArray(U))continue;let A=U[0]instanceof String?U[0].valueOf():U[0],W=U[1]instanceof String?U[1].valueOf():U[1];if(A==="type"&&typeof W==="string")return W.replace(/^["']|["']$/g,"")}return null}function K1($){if(typeof $==="string")return $;if(Array.isArray($)&&$[0]==="."&&$[1]==="this"&&typeof $[2]==="string")return $[2];return null}function _2($){let U=$.prototype;U.localizeVar=function(A){let W=A.replace(/this\.(_el\d+|_t\d+|_anchor\d+|_frag\d+|_slot\d+|_c\d+|_inst\d+|_empty\d+)/g,"$1");return W=W.replace(/\bthis\./g,"ctx."),W},U.isHtmlTag=function(A){let W=A.split("#")[0];return Z1.has(W.toLowerCase())},U.isComponent=function(A){if(!A||typeof A!=="string")return!1;return/^[A-Z]/.test(A)},U.collectTemplateClasses=function(A){let W=[],u=A;while(this.is(u,".")){let F=u[2];if(typeof F==="string"||F instanceof String)W.unshift(F.valueOf());u=u[1]}let f=typeof u==="string"?u:u instanceof String?u.valueOf():"div",[Y,R]=f.split("#");if(!Y)Y="div";return{tag:Y,classes:W,id:R}},U.transformComponentMembers=function(A){if(!Array.isArray(A)){if(typeof A==="string"&&this.reactiveMembers&&this.reactiveMembers.has(A))return[".",[".","this",A],"value"];if(typeof A==="string"&&this.componentMembers&&this.componentMembers.has(A))return[".","this",A];return A}if(A[0]==="."&&A[1]==="this"&&typeof A[2]==="string"){let W=A[2];if(this.reactiveMembers&&this.reactiveMembers.has(W))return[".",A,"value"];return A}if(A[0]===".")return[".",this.transformComponentMembers(A[1]),A[2]];if(A[0]==="->")return["=>",...A.slice(1).map((W)=>this.transformComponentMembers(W))];return A.map((W)=>this.transformComponentMembers(W))},U.generateComponent=function(A,W,u,f){let[,Y]=W;this.usesTemplates=!0,this.usesReactivity=!0;let R=this.is(Y,"block")?Y.slice(1):[],F=[],_=[],Z=[],Q=[],K=[],J=[],M=null,X=new Set,z=new Set;for(let O of R){if(!Array.isArray(O))continue;let[P]=O;if(P==="state"){let D=K1(O[1]);if(D)F.push({name:D,value:O[2]}),X.add(D),z.add(D)}else if(P==="computed"){let D=K1(O[1]);if(D)_.push({name:D,expr:O[2]}),X.add(D),z.add(D)}else if(P==="readonly"){let D=K1(O[1]);if(D)Z.push({name:D,value:O[2]}),X.add(D)}else if(P==="="){let D=K1(O[1]);if(D)if(Z2.has(D))K.push({name:D,value:O[2]});else{let I=O[2];if(Array.isArray(I)&&(I[0]==="->"||I[0]==="=>"))Q.push({name:D,func:I}),X.add(D);else F.push({name:D,value:I}),X.add(D),z.add(D)}}else if(P==="effect")J.push(O);else if(P==="render")M=O;else if(P==="object")for(let D=1;D<O.length;D++){let I=O[D];if(!Array.isArray(I))continue;let[E,B]=I;if(typeof E==="string"&&Z2.has(E))K.push({name:E,value:B});else if(typeof E==="string")Q.push({name:E,func:B}),X.add(E)}}let w=this.componentMembers,G=this.reactiveMembers;this.componentMembers=X,this.reactiveMembers=z;let H=[],q="";H.push("class extends __Component {"),H.push(" _init(props) {");for(let{name:O,value:P}of Z){let D=this.generateInComponent(P,"value");H.push(` this.${O} = props.${O} ?? ${D};`)}for(let{name:O,value:P}of F){let D=this.generateInComponent(P,"value");H.push(` this.${O} = __state(props.${O} ?? ${D});`)}for(let{name:O,expr:P}of _){let D=this.generateInComponent(P,"value");H.push(` this.${O} = __computed(() => ${D});`)}for(let O of J){let P=O[2],D=this.generateInComponent(P,"value");H.push(` __effect(() => { ${D}; });`)}H.push(" }");for(let{name:O,func:P}of Q)if(Array.isArray(P)&&(P[0]==="->"||P[0]==="=>")){let[,D,I]=P,E=Array.isArray(D)?D.map((L)=>this.formatParam(L)).join(", "):"",B=this.reactiveMembers?this.transformComponentMembers(I):I,N=this.containsAwait(I),T=this.generateFunctionBody(B,D||[]);H.push(` ${N?"async ":""}${O}(${E}) ${T}`)}for(let{name:O,value:P}of K)if(Array.isArray(P)&&(P[0]==="->"||P[0]==="=>")){let[,,D]=P,I=this.reactiveMembers?this.transformComponentMembers(D):D,E=this.containsAwait(D),B=this.generateFunctionBody(I,[]);H.push(` ${E?"async ":""}${O}() ${B}`)}if(M){let O=M[1],P=this.buildRender(O);if(P.blockFactories.length>0)q=P.blockFactories.join(`
|
|
3
|
+
`}function b($){if(!$)return $;return $=$.replace(/::/g,":"),$=$.replace(/(\w+(?:<[^>]+>)?)\?\?/g,"$1 | null | undefined"),$=$.replace(/(\w+(?:<[^>]+>)?)\?(?![.:])/g,"$1 | undefined"),$=$.replace(/(\w+(?:<[^>]+>)?)\!/g,"NonNullable<$1>"),$}function E1($,U,W,A,u){if(!Array.isArray($))return;let f=$[0]?.valueOf?.()??$[0],Y=!1,F=null,R=null;if(f==="export"&&Array.isArray($[1])){Y=!0;let J=$[1];if((J[0]?.valueOf?.()??J[0])==="="&&Array.isArray(J[2])&&(J[2][0]?.valueOf?.()??J[2][0])==="component")F=J[1]?.valueOf?.()??J[1],R=J[2]}else if(f==="="&&Array.isArray($[2])&&($[2][0]?.valueOf?.()??$[2][0])==="component")F=$[1]?.valueOf?.()??$[1],R=$[2];if(F&&R){let J=Y?"export ":"",_=R[2],Q=Array.isArray(_)&&(_[0]?.valueOf?.()??_[0])==="block"?_.slice(1):_?[_]:[],M=[],Z=[];for(let K of Q){if(!Array.isArray(K))continue;let X=K[0]?.valueOf?.()??K[0];if(X==="state"){let w=K[1]?.valueOf?.()??K[1],D=K[1]?.type;M.push(` ${w}: ${D?b(D):"any"};`),u.add(w)}else if(X==="computed"){let w=K[1]?.valueOf?.()??K[1],D=K[1]?.type;M.push(` readonly ${w}: ${D?b(D):"any"};`),u.add(w)}else if(X==="object")for(let w=1;w<K.length;w++){let D=K[w];if(!Array.isArray(D))continue;let O=D[0]?.valueOf?.()??D[0];if(O==="render")continue;let q=D[1];if(Array.isArray(q)){let P=q[0]?.valueOf?.()??q[0];if(P==="->"||P==="=>")Z.push(` ${O}(): void;`)}}else if(X==="render")continue}U.push(`${J}declare class ${F} {`),U.push(" constructor(props?: Record<string, any>);");for(let K of M)U.push(K);for(let K of Z)U.push(K);U.push(` mount(target: Element | string): ${F};`),U.push(" unmount(): void;"),U.push("}")}if(f==="program"||f==="block"){for(let J=1;J<$.length;J++)if(Array.isArray($[J]))E1($[J],U,W,A,u)}if(f==="export"&&Array.isArray($[1])&&!R)E1($[1],U,W,A,u)}function r1($,U,W){let[A,u]=U,f=A?.valueOf?.()??A,Y=[];if(Array.isArray(u)){let J=u[0]==="block"?u.slice(1):[u];for(let _ of J)if(Array.isArray(_)){if(_[0]?.valueOf?.()==="="){let Q=_[1]?.valueOf?.()??_[1],M=_[2]?.valueOf?.()??_[2];Y.push([Q,M])}}}if(Y.length===0)return`const ${f} = {}`;let F=Y.map(([J,_])=>`${J}: ${_}`).join(", "),R=Y.map(([J,_])=>`${_}: "${J}"`).join(", ");return`const ${f} = {${F}, ${R}}`}var a1=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"]),o1=new Set(["undefined","Infinity","NaN","then","unless","until","loop","of","by","when","def","component","render","enum","interface"]),N1={and:"&&",or:"||",is:"==",isnt:"!=",not:"!",yes:"true",no:"false",on:"true",off:"false"},s1=new Set(Object.keys(N1)),g2=new Set(["case","function","var","void","with","const","let","native","implements","package","private","protected","public","static"]),l2=new Set(["break","continue","debugger"]),x2=new Set(["NEW","TYPEOF","DELETE"]),k2=new Set(["IN","OF","INSTANCEOF"]),Z1=new Set(["IDENTIFIER","PROPERTY",")","]","@","THIS","SUPER","DYNAMIC_IMPORT","?."]),Y2=new Set([...Z1,"NUMBER","INFINITY","NAN","STRING","STRING_END","REGEX","REGEX_END","BOOL","NULL","UNDEFINED","}"]),_1=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","@","->","=>","[","(","{","--","++"]),m2=new Set(["+","-"]),i2=new Set(["POST_IF","POST_UNLESS","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR","||","&&","PIPE"]),n2=new Set(["STRING","STRING_END","REGEX","REGEX_END","NUMBER","BOOL","NULL","UNDEFINED","INFINITY","NAN","]","}"]),n=new Set(["(","[","{","INDENT","CALL_START","PARAM_START","INDEX_START","STRING_START","INTERPOLATION_START","REGEX_START"]),x=new Set([")","]","}","OUTDENT","CALL_END","PARAM_END","INDEX_END","STRING_END","INTERPOLATION_END","REGEX_END"]),p2={"(":")",")":"(","[":"]","]":"[","{":"}","}":"{",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"},t1=new Set(["CATCH","THEN","ELSE","FINALLY",...x]),B1=new Set(["IDENTIFIER","PROPERTY","SUPER",")","CALL_END","]","INDEX_END","@","THIS"]),d2=new Set(["IF","TRY","FINALLY","CATCH","CLASS","SWITCH","COMPONENT"]),e1=new Set(["ELSE","->","=>","TRY","FINALLY","THEN"]),r2=new Set(["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"]),f1=new Set(["INDENT","OUTDENT","TERMINATOR"]),u2=new Set([".","?."]),f2=new Set(["\\",".","?.","UNARY","DO","DO_IIFE","MATH","UNARY_MATH","+","-","**","SHIFT","RELATION","COMPARE","&","^","|","&&","||","SPACE?","EXTENDS"]),a2=new Set([...Y2,"++","--"]),$2=new Set(["-=","+=","/=","*=","%=","||=","&&=","?=","??=","<<=",">>=",">>>=","&=","^=","|=","**=","//=","%%="]),o2=new Set(["*","/","%","//","%%"]),s2=new Set(["==","!=","===","!==","<",">","<=",">=","=~"]),t2=new Set(["<<",">>",">>>"]),e2=new Set(["!","~"]),u3=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+(?:!|[?](?![.?[(]))?)([^\n\S]*:(?![=:]))?/,f3=/^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,$3=/^(?:<=>|::=|::|[-=]>|~>|~=|:=|=!|===|!==|!\?|\?\?|=~|\|>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?\.?|\.{2,3})/,A3=/^[^\n\S]+/,U3=/^(?:\n[^\n\S]*)+/,W3=/^(\s*)###([^#][\s\S]*?)(?:###([^\n\S]*)|###$)|^((?:\s*#(?!##[^#]).*)+)/,Y3=/^[-=]>/,F3=/^(?:~[=>]|=!)/,R3=/^(?:'''\\|"""\\|'''|"""|'|")/,_3=/^(?:[^\\']|\\[\s\S])*/,Z3=/^(?:[^\\"#$]|\\[\s\S]|\#(?!\{)|\$(?!\{))*/,J3=/^(?:[^\\']|\\[\s\S]|'(?!''))*/,Q3=/^(?:[^\\"#$]|\\[\s\S]|"(?!"")|\#(?!\{)|\$(?!\{))*/,A2=/\n+([^\n\S]*)(?=\S)/g,K3=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/,U2=/^\w*/,M3=/^(?!.*(.).*\1)[gimsuy]*$/,X3=/^(?:[^\\\/#\s]|\\[\s\S]|\/(?!\/\/)|\#(?!\{)|\s+(?:#(?!\{).*)?)*/,D3=/^`(?!``)((?:[^`\\]|\\[\s\S])*)`/,z3=/^```((?:[^`\\]|\\[\s\S]|`(?!``))*)```/,w3=/\s+$/,W2=/^\s*(?:,|\??\.(?![.\d]))/,P3=65279;function J1($,U,{pre:W=0,row:A=0,col:u=0,len:f=0,data:Y=null}={}){let F=[$,U];return F.pre=W,F.data=Y,F.loc={r:A,c:u,n:f},F.spaced=W>0,F.newLine=!1,F}function g($,U,W){let A=J1($,U);if(A.generated=!0,W)A.origin=W;return A}function v($,{row:U=0,col:W=0,len:A=1}={}){let u=SyntaxError($);throw u.location={first_line:U,first_column:W,last_column:W+A-1},u}function H3($){if($==null)return NaN;switch($.charAt(1)){case"b":return parseInt($.slice(2).replace(/_/g,""),2);case"o":return parseInt($.slice(2).replace(/_/g,""),8);case"x":return parseInt($.slice(2).replace(/_/g,""),16);default:return parseFloat($.replace(/_/g,""))}}class p{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)v(`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];v(`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)===P3)$=$.slice(1);if($=$.replace(/\r\n?/g,`
|
|
4
|
+
`),$=$.replace(w3,""),/^[^\n\S]/.test($))$=`
|
|
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:A,pre:u}={}){let f=J1($,U,{pre:u??0,row:this.row,col:this.col,len:W??(typeof U==="string"?U.length:0),data:A});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(F3.test(this.chunk))return 0;let $=u3.exec(this.chunk);if(!$)return 0;let[,U,W]=$,A=U.length,u={},f;if(U==="own"&&this.prevTag()==="FOR")return this.emit("OWN",U,{len:A}),A;if(U==="from"&&this.prevTag()==="YIELD")return this.emit("FROM",U,{len:A}),A;if(U==="as"&&!this.seenFor&&(this.seenImport||this.seenExport)){if(this.seenImport){if(this.prevVal()==="*")this.prev()[0]="IMPORT_ALL"}let _=this.prevTag();if(_==="DEFAULT"||_==="IMPORT_ALL"||_==="IDENTIFIER")return this.emit("AS",U,{len:A}),A}if((U==="as"||U==="as!")&&this.seenFor)return this.seenFor=!1,this.emit(U==="as!"?"FORASAWAIT":"FORAS","as",{len:A}),A;if(U==="default"&&this.seenExport&&(this.prevTag()==="EXPORT"||this.prevTag()==="AS"))return this.emit("DEFAULT",U,{len:A}),A;let Y;if(U==="do"&&(Y=/^(\s*super)(?!\(\))/.exec(this.chunk.slice(3))))return this.emit("SUPER","super"),this.emit("CALL_START","("),this.emit("CALL_END",")"),Y[1].length+3;let F=this.prev();if(W&&F&&F[0]==="SPACE?")W=null;if(W||F&&(F[0]==="."||F[0]==="?."||!F.spaced&&F[0]==="@")){if(f="PROPERTY",this.inRenderBlock&&F&&F[0]==="."&&!W){let _=this.chunk.slice(A);while(_[0]==="-"&&/^-[a-zA-Z]/.test(_)){let Q=/^-([a-zA-Z][\w]*)/.exec(_);if(!Q)break;U+="-"+Q[1],A+=1+Q[1].length,_=this.chunk.slice(A)}}}else f="IDENTIFIER";let R=U.endsWith("!")||U.endsWith("?")?U.slice(0,-1):U;if(f==="IDENTIFIER"&&!U.endsWith("!")&&!U.endsWith("?")&&(a1.has(U)||o1.has(U)||s1.has(U))&&!(this.exportSpecifierList&&s1.has(U))){if(N1[U]!==void 0)u.original=U,U=N1[U];f=this.classifyKeyword(U,f,u)}if(f==="IDENTIFIER"&&g2.has(R))v(`reserved word '${R}'`,{row:this.row,col:this.col,len:A});if(f==="PROPERTY"&&F){if(F[0]==="."&&this.tokens.length>1){let _=this.tokens[this.tokens.length-2];if(_[0]==="UNARY"&&_[1]==="new")_[0]="NEW_TARGET";if(_[0]==="IMPORT"&&_[1]==="import")this.seenImport=!1,_[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 J=this.emit(f,U,{len:A,data:Object.keys(u).length?u:null});if(f==="RENDER")this.inRenderBlock=!0,this.renderIndent=this.indent;if(W)return this.emit(":",":",{len:1}),A+W.length;return A}classifyKeyword($,U,W){switch($){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"true":case"false":return"BOOL";case"&&":case"||":return $}if(l2.has($))return"STATEMENT";let A=$.toUpperCase();if(A==="WHEN"&&f1.has(this.prevTag()))return"LEADING_WHEN";if(A==="FOR")return this.seenFor={endsLength:this.ends.length},"FOR";if(A==="UNLESS")return"UNLESS";if(A==="IMPORT")return this.seenImport=!0,"IMPORT";if(A==="EXPORT")return this.seenExport=!0,"EXPORT";if(x2.has(A))return"UNARY";if(k2.has(A)){if(A!=="INSTANCEOF"&&this.seenFor)return this.seenFor=!1,"FOR"+A;if(this.prevVal()==="!"){let u=this.tokens.pop();W.invert=u.data?.original||u[1]}return"RELATION"}if(a1.has($)||o1.has($))return A;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","div#"+W[1]),W[0].length}if(/^\s+#[a-zA-Z_]/.test(this.chunk))return 0}let $=W3.exec(this.chunk);if(!$)return 0;return $[0].length}whitespaceToken(){let $=A3.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 $=U3.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)&&!f2.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 A=W-this.indent;return this.emit("INDENT",A,{len:W}),this.indents.push(A),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 A=this.indents[this.indents.length-1];if(!A)W=0;else this.indents.pop(),this.pair("OUTDENT"),this.emit("OUTDENT",W,{len:U}),W-=A}this.emitNewline(),this.indent=$}closeIndentation(){this.outdentTo(0)}emitNewline(){if(this.prevTag()!=="TERMINATOR")this.emit("TERMINATOR",`
|
|
9
|
+
`,{len:0})}isUnfinished(){if(this.inRenderBlock&&W2.test(this.chunk)&&/^\s*\./.test(this.chunk))return!1;return W2.test(this.chunk)||f2.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($)}v(`unmatched ${$}`,{row:this.row,col:this.col})}return this.ends.pop()}stringToken(){let $=R3.exec(this.chunk);if(!$)return 0;let U=$[0],W=U.length>1&&U.endsWith("\\"),A=W?U.slice(0,-1):U,u=this.prev();if(u&&this.prevVal()==="from"&&(this.seenImport||this.seenExport))u[0]="FROM";let f;switch(A){case"'":f=_3;break;case'"':f=Z3;break;case"'''":f=J3;break;case'"""':f=Q3;break}let{tokens:Y,index:F}=this.matchWithInterpolations(f,U,A),R=A.length===3,J=null;if(R)J=this.processHeredocIndent(F,A,Y);return this.mergeInterpolationTokens(Y,{quote:A,indent:J,endOffset:F,raw:W}),F}processHeredocIndent($,U,W){let A=$-U.length,u=A-1;while(u>=0&&this.chunk[u]!==`
|
|
10
|
+
`)u--;u++;let f=this.chunk.slice(u,A),Y=/^\s*$/.test(f)?f.length:null,F="";for(let _ of W)if(_[0]==="NEOSTRING")F+=_[1];let R=null,J;A2.lastIndex=0;while(J=A2.exec(F))if(R===null||J[1].length>0&&J[1].length<R.length)R=J[1];if(Y===null)return R;if(R===null)return" ".repeat(Y);if(Y<=R.length)return" ".repeat(Y);return R}matchWithInterpolations($,U,W,A){if(!W)W=U;if(!A)A=/^[#$]\{/;let u=[],f=U.length;if(this.chunk.slice(0,f)!==U)return null;let Y=this.chunk.slice(f);while(!0){let[F]=$.exec(Y);u.push(["NEOSTRING",F,{offset:f}]),Y=Y.slice(F.length),f+=F.length;let R=A.exec(Y);if(!R)break;let _=R[0].length-1,Q=Y.slice(_),M=new p().tokenize(Q,{row:this.row,col:this.col+f+_,untilBalanced:!0,rewrite:!1}),Z=M.index+_;if(Y[Z-1]==="}"){let X=M.tokens[0],w=M.tokens[M.tokens.length-1];X[0]="INTERPOLATION_START",X[1]="(",w[0]="INTERPOLATION_END",w[1]=")"}if(M.tokens[1]?.[0]==="TERMINATOR")M.tokens.splice(1,1);let K=M.tokens.length;if(K>2&&M.tokens[K-3]?.[0]==="INDENT"&&M.tokens[K-2]?.[0]==="OUTDENT")M.tokens.splice(K-3,2);u.push(["TOKENS",M.tokens]),Y=Y.slice(Z),f+=Z}if(Y.slice(0,W.length)!==W)v(`missing ${W}`,{row:this.row,col:this.col});return{tokens:u,index:f+W.length}}mergeInterpolationTokens($,{quote:U,indent:W,endOffset:A,raw:u}){if($.length>1)this.emit("STRING_START","(",{len:U?.length||0,data:{quote:U}});for(let f=0;f<$.length;f++){let[Y,F]=$[f];if(Y==="TOKENS")for(let R of F)this.tokens.push(R);else if(Y==="NEOSTRING"){let R=F;if(W){let J=new RegExp("\\n"+W,"g");R=R.replace(J,`
|
|
11
|
+
`)}if(f===0&&U?.length===3)R=R.replace(/^\n/,"");if(f===$.length-1&&U?.length===3)R=R.replace(/\n[^\S\n]*$/,"");if(u)R=R.replace(/\\([nrtbfv0\\'"`xu])/g,"\\\\$1");this.emit("STRING",`"${R}"`,{len:F.length,data:{quote:U}})}}if($.length>1)this.emit("STRING_END",")",{len:U?.length||0});return A}numberToken(){let $=f3.exec(this.chunk);if(!$)return 0;let U=$[0],W=U.length,A={row:this.row,col:this.col};if(/^0[BOX]/.test(U))v(`radix prefix in '${U}' must be lowercase`,{...A,col:A.col+1});if(/^0\d*[89]/.test(U))v(`decimal literal '${U}' must not be prefixed with '0'`,{...A,len:W});if(/^0\d+/.test(U))v(`octal literal '${U}' must be prefixed with '0o'`,{...A,len:W});let u=H3(U),f=u===1/0?"INFINITY":"NUMBER",Y={parsedValue:u};if(f==="INFINITY")Y.original=U;return this.emit(f,U,{len:W,data:Y}),W}regexToken(){let $=this.matchWithInterpolations(X3,"///");if($){let{tokens:J,index:_}=$,[Q]=U2.exec(this.chunk.slice(_)),M=_+Q.length;if(J.length===1||!J.some((Z)=>Z[0]==="TOKENS")){let Z=(J[0]?.[1]||"").replace(/(?<!\\)\//g,"\\/");this.emit("REGEX",`/${Z}/${Q}`,{len:M,data:{delimiter:"///",heregex:{flags:Q}}})}else{if(this.emit("REGEX_START","(",{len:0}),this.emit("IDENTIFIER","RegExp",{len:0}),this.emit("CALL_START","(",{len:0}),this.mergeInterpolationTokens(J,{quote:"///",endOffset:M-Q.length}),Q)this.emit(",",",",{len:0}),this.emit("STRING",`"${Q}"`,{len:Q.length});this.emit(")",")",{len:0}),this.emit("REGEX_END",")",{len:0})}return M}let U=K3.exec(this.chunk);if(!U)return 0;let[W,A,u]=U,f=this.prev();if(f){if(f.spaced&&Z1.has(f[0])&&(!u||/^\/=?\s/.test(W)))return 0;if(a2.has(f[0])&&!(f.spaced&&Z1.has(f[0])))return 0}if(!u)v("missing / (unclosed regex)",{row:this.row,col:this.col});let Y=W.length,[F]=U2.exec(this.chunk.slice(Y)),R=Y+F.length;if(!M3.test(F))v(`invalid regular expression flags ${F}`,{row:this.row,col:this.col+Y,len:F.length});return this.emit("REGEX",`/${A}/${F}`,{len:R,data:{delimiter:"/"}}),R}jsToken(){if(this.chunk[0]!=="`")return 0;let $=z3.exec(this.chunk)||D3.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 $=$3.exec(this.chunk),U=$?$[0]:this.chunk.charAt(0),W=U,A=this.prev();if(Y3.test(U))this.tagParameters();if(U==="="&&A&&A[1]==="."&&!A.spaced){let u=this.tokens,f=u.length-2;while(f>=1&&u[f][0]==="PROPERTY"&&u[f-1]?.[1]===".")f-=2;if(f>=0&&(u[f][0]==="IDENTIFIER"||u[f][0]===")"||u[f][0]==="]")){let Y=u.slice(f,u.length-1);A[0]="=",A[1]="=";for(let F of Y)this.tokens.push(J1(F[0],F[1],{pre:0,row:F[2],col:F[3],len:F[4]}));return this.tokens.push(J1(".",".",{pre:0,row:this.row,col:this.col,len:1})),U.length}}if(A&&(U==="="||$2.has(U))){if(U==="="&&(A[1]==="||"||A[1]==="&&"||A[1]==="??")&&!A.spaced)return A[0]="COMPOUND_ASSIGN",A[1]+="=",U.length}if(U==="("&&A?.[0]==="IMPORT")A[0]="DYNAMIC_IMPORT";if(U==="{"&&this.seenImport)this.importSpecifierList=!0;if(U==="}"&&this.importSpecifierList)this.importSpecifierList=!1;if(U==="{"&&A?.[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="REACT_ASSIGN";else if(U==="=!")W="READONLY_ASSIGN";else if(U==="*"&&(!A||A[0]==="TERMINATOR"||A[0]==="INDENT"||A[0]==="OUTDENT")&&(/^[a-zA-Z_$]/.test(this.chunk[1]||"")||this.chunk[1]==="@")){let u=this.chunk.slice(1),f=/^@(\s*)=(?!=)/.exec(u);if(f){let F=f[1];this.emit("IDENTIFIER","Object"),this.emit(".",".");let R=this.emit("PROPERTY","assign");return R.spaced=!0,this.emit("@","@"),this.emit(",",","),2+F.length+1}let Y=/^((?:(?!\s)[$\w\x7f-\uffff])+(?:\.[a-zA-Z_$][\w]*)*)(\s*)=(?!=)/.exec(u);if(Y){let F=Y[1],R=Y[2],J=F.split("."),_=()=>{this.emit("IDENTIFIER",J[0]);for(let M=1;M<J.length;M++)this.emit(".","."),this.emit("PROPERTY",J[M])};_(),this.emit("=","="),this.emit("IDENTIFIER","Object"),this.emit(".","."),this.emit("PROPERTY","assign"),this.emit("CALL_START","("),_(),this.emit("COMPOUND_ASSIGN","??="),this.emit("{","{"),this.emit("}","}"),this.emit(",",",");let Q=this.prev();return Q.mergeClose=!0,1+F.length+R.length+1}}else if(U==="*"&&A?.[0]==="EXPORT")W="EXPORT_ALL";else if(o2.has(U))W="MATH";else if(s2.has(U))W="COMPARE";else if($2.has(U))W="COMPOUND_ASSIGN";else if(e2.has(U))W="UNARY_MATH";else if(t2.has(U))W="SHIFT";else if(U==="?"&&A?.spaced)W="SPACE?";else if(U==="?"&&(this.chunk[1]==="["||this.chunk[1]==="("))W="?.";else if(A){if(U==="("&&!A.spaced&&Z1.has(A[0])){if(A[0]==="?.")A[0]="ES6_OPTIONAL_CALL";W="CALL_START"}if(U==="["&&!A.spaced&&Y2.has(A[0])){if(W="INDEX_START",A[0]==="?.")A[0]="ES6_OPTIONAL_INDEX"}}if(U==="("||U==="{"||U==="[")this.ends.push({tag:p2[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,A)=>{if(this.tokens[A+1]?.[0]===":")$[0]="[",W[0]="]";else W[0]="INDEX_END"});return 1})}normalizeLines(){let $=null,U=null,W=null,A=(f,Y)=>{return f[1]!==";"&&r2.has(f[0])&&!(f[0]==="TERMINATOR"&&t1.has(this.tokens[Y+1]?.[0]))&&!(f[0]==="ELSE"&&$!=="THEN")||f[0]==="INDENT"&&!f.generated&&($==="->"||$==="=>")||f[0]===","&&($==="->"||$==="=>")&&!this.commaInImplicitCall(Y)&&!this.commaInImplicitObject(Y)||u2.has(f[0])&&(this.tokens[Y-1]?.newLine||this.tokens[Y-1]?.[0]==="OUTDENT")},u=(f,Y)=>{let F=this.tokens[Y-1]?.[0]===","?Y-1:Y;this.tokens.splice(F,0,W)};this.scanTokens((f,Y,F)=>{let[R]=f;if(R==="TERMINATOR"){if(this.tokens[Y+1]?.[0]==="ELSE"&&this.tokens[Y-1]?.[0]!=="OUTDENT")return F.splice(Y,1,...this.makeIndentation()),1;if(t1.has(this.tokens[Y+1]?.[0]))return F.splice(Y,1),0}if(R==="CATCH")for(let J=1;J<=2;J++){let _=this.tokens[Y+J]?.[0];if(_==="OUTDENT"||_==="TERMINATOR"||_==="FINALLY")return F.splice(Y+J,0,...this.makeIndentation()),2+J}if((R==="->"||R==="=>")&&(this.tokens[Y+1]?.[0]===","||this.tokens[Y+1]?.[0]==="]"))return[U,W]=this.makeIndentation(),F.splice(Y+1,0,U,W),1;if(e1.has(R)&&this.tokens[Y+1]?.[0]!=="INDENT"&&!(R==="ELSE"&&this.tokens[Y+1]?.[0]==="IF")){if($=R,[U,W]=this.makeIndentation(),R==="THEN")U.fromThen=!0;if(F.splice(Y+1,0,U),this.detectEnd(Y+2,A,u),R==="THEN")F.splice(Y,1);return 1}return 1})}tagPostfixConditionals(){let $=null,U=(A,u)=>{return A[0]==="TERMINATOR"||A[0]==="INDENT"&&!e1.has(this.tokens[u-1]?.[0])},W=(A)=>{if(A[0]!=="INDENT"||A.generated&&!A.fromThen)$[0]="POST_"+$[0]};this.scanTokens((A,u)=>{if(A[0]!=="IF"&&A[0]!=="UNLESS")return 1;return $=A,this.detectEnd(u+1,U,W),1})}addImplicitBracesAndParens(){let $=[],U=!1;this.scanTokens((W,A,u)=>{let[f]=W,Y=u[A-1]||[],F=u[A+1]||[],[R]=Y,[J]=F,_=A,Q=(z)=>A-_+z,M=()=>$[$.length-1],Z=(z)=>z?.[2]?.ours,K=()=>Z(M())&&M()?.[0]==="(",X=()=>Z(M())&&M()?.[0]==="{",w=(z)=>{$.push(["(",z,{ours:!0}]),u.splice(z,0,g("CALL_START","("))},D=()=>{$.pop(),u.splice(A,0,g("CALL_END",")")),A+=1},O=(z,E={})=>{$.push(["{",z,{sameLine:!0,startsLine:E.startsLine??!0,ours:!0}]);let B=g("{","{");if(!B.data)B.data={};B.data.generated=!0,u.splice(z,0,B)},q=(z)=>{z=z??A,$.pop(),u.splice(z,0,g("}","}")),A+=1};if((K()||X())&&d2.has(f))return $.push(["CONTROL",A,{ours:!0}]),Q(1);if(f==="INDENT"&&Z(M())){if(R!=="=>"&&R!=="->"&&R!=="["&&R!=="("&&R!==","&&R!=="{"&&R!=="ELSE"&&R!=="=")while(K()||X()&&R!==":")if(K())D();else q();if(M()?.[2]?.ours&&M()[0]==="CONTROL")$.pop();return $.push([f,A]),Q(1)}if(n.has(f))return $.push([f,A]),Q(1);if(x.has(f)){while(Z(M()))if(K())D();else if(X())q();else $.pop();$.pop()}if(B1.has(f)&&W.spaced&&(_1.has(J)||J==="..."&&_1.has(u[A+2]?.[0])||m2.has(J)&&!F.spaced&&!F.newLine)&&!((f==="]"||f==="}")&&(J==="->"||J==="=>")))return w(A+1),Q(2);if(B1.has(f)&&this.tokens[A+1]?.[0]==="INDENT"&&this.looksObjectish(A+2)&&!this.findTagsBackwards(A,["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"]))return w(A+1),$.push(["INDENT",A+2]),Q(3);if(f==="SPACE?")U=!0;if(f===":"){if(U)return U=!1,Q(1);let z=x.has(this.tokens[A-1]?.[0])?$[$.length-1]?.[1]??A-1:A-1;if(this.tokens[A-2]?.[0]==="@")z=A-2;let E=z<=0||f1.has(this.tokens[z-1]?.[0])||this.tokens[z-1]?.newLine;if(M()){let[B,I]=M(),N=$[$.length-2];if((B==="{"||B==="INDENT"&&N?.[0]==="{"&&!Z(N))&&(E||this.tokens[z-1]?.[0]===","||this.tokens[z-1]?.[0]==="{"||this.tokens[z]?.[0]==="{"))return Q(1)}return O(z,{startsLine:!!E}),Q(2)}if(f1.has(f))for(let z=$.length-1;z>=0;z--){if(!Z($[z]))break;if($[z][0]==="{")$[z][2].sameLine=!1}let P=R==="OUTDENT"||Y.newLine,G=f==="||"||f==="&&",H=!1;if(G){let z=A+1,E=u[z]?.[0];if(E==="("||E==="["||E==="{"){for(let B=1;++z<u.length&&B>0;)if(E=u[z][0],E==="("||E==="["||E==="{")B++;else if(E===")"||E==="]"||E==="}")B--}else if(E&&E!=="TERMINATOR"&&E!=="OUTDENT"&&E!==",")z++;H=u[z]?.[0]===","}if(i2.has(f)&&!H||u2.has(f)&&P)while(Z(M())){let[z,,{sameLine:E,startsLine:B}]=M();if(K()&&R!==",")D();else if(X()&&!G&&E&&f!=="TERMINATOR"&&R!==":")q();else if(X()&&f==="TERMINATOR"&&R!==","&&!(B&&this.looksObjectish(A+1)))q();else if(M()?.[2]?.ours&&M()[0]==="CONTROL"&&u[M()[1]]?.[0]==="CLASS"&&f==="TERMINATOR")$.pop();else break}if(f===","&&!this.looksObjectish(A+1)&&X()&&(J!=="TERMINATOR"||!this.looksObjectish(A+2))){let z=J==="OUTDENT"?1:0;while(X())q(A+z)}return Q(1)})}addImplicitCallCommas(){let $=0,U=0,W=this.tokens;while(U<W.length){let A=W[U][0],u=U>0?W[U-1][0]:null;if(A==="CALL_START"||A==="(")$++;if(A==="CALL_END"||A===")")$--;if($>0&&(A==="->"||A==="=>")&&n2.has(u))W.splice(U,0,g(",",",")),U++;U++}}scanTokens($){let U=0;while(U<this.tokens.length)U+=$.call(this,this.tokens[U],U,this.tokens)}detectEnd($,U,W,A={}){let u=0;while($<this.tokens.length){let f=this.tokens[$];if(u===0&&U.call(this,f,$))return W.call(this,f,$);if(n.has(f[0]))u++;if(x.has(f[0]))u--;if(u<0){if(A.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 A=U+1;A<$.length;A++){let u=$[A][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(A,0,g("CALL_END",")",$[A-1]));break}if(A===$.length-1){$.splice(A+1,0,g("CALL_END",")",$[A]));break}}}}commaInImplicitCall($){let U=0;for(let W=$-1;W>=0;W--){let A=this.tokens[W][0];if(x.has(A)){U++;continue}if(n.has(A)){if(A==="INDENT")return!1;if(U--,U<0)return!1;continue}if(U>0)continue;if(B1.has(A)&&this.tokens[W].spaced){let u=this.tokens[W+1]?.[0];return _1.has(u)||u==="..."&&_1.has(this.tokens[W+2]?.[0])}}return!1}commaInImplicitObject($){let U=0;for(let W=$-1;W>=0;W--){let A=this.tokens[W][0];if(x.has(A)){U++;continue}if(n.has(A)){if(U--,U<0)return!1;continue}if(U>0)continue;if(A===":"&&W>0&&this.tokens[W-1][0]==="PROPERTY")return this.looksObjectish($+1);if(f1.has(A))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(n.has(this.tokens[$]?.[0])){let U=null;if(this.detectEnd($+1,(W)=>x.has(W[0]),(W,A)=>U=A),U&&this.tokens[U+1]?.[0]===":")return!0}return!1}findTagsBackwards($,U){let W=new Set(U),A=[];while($>=0){let u=this.tokens[$]?.[0];if(!A.length&&W.has(u))return!0;if(x.has(u))A.push(u);if(n.has(u)&&A.length)A.pop();if(!A.length&&(n.has(u)&&!this.tokens[$]?.generated||f1.has(u)))break;$--}return!1}makeIndentation($){let U=g("INDENT",2),W=g("OUTDENT",2);if($)U.generated=W.generated=!0,U.origin=W.origin=$;else U.explicit=W.explicit=!0;return[U,W]}}d1(p);var O3={symbolIds:{$accept:0,$end:1,error:2,Root:3,Body:4,Line:5,TERMINATOR:6,Expression:7,ExpressionLine:8,Statement:9,Return:10,STATEMENT:11,Import:12,Export:13,Value:14,Code:15,Operation:16,Assign:17,ReactiveAssign:18,ComputedAssign:19,ReadonlyAssign:20,ReactAssign:21,If:22,Try:23,While:24,For:25,Switch:26,Class:27,Component:28,Render:29,Throw:30,Yield:31,Def:32,Enum:33,CodeLine:34,OperationLine:35,Assignable:36,Literal:37,Parenthetical:38,Range:39,Invocation:40,DoIife:41,This:42,Super:43,MetaProperty:44,AlphaNumeric:45,JS:46,Regex:47,UNDEFINED:48,NULL:49,BOOL:50,INFINITY:51,NAN:52,NUMBER:53,String:54,Identifier:55,IDENTIFIER:56,Property:57,PROPERTY:58,STRING:59,STRING_START:60,Interpolations:61,STRING_END:62,InterpolationChunk:63,INTERPOLATION_START:64,INTERPOLATION_END:65,INDENT:66,OUTDENT:67,REGEX:68,REGEX_START:69,REGEX_END:70,RegexWithIndex:71,",":72,"=":73,REACTIVE_ASSIGN:74,COMPUTED_ASSIGN:75,READONLY_ASSIGN:76,REACT_ASSIGN:77,SimpleAssignable:78,Array:79,Object:80,ThisProperty:81,".":82,"?.":83,INDEX_START:84,INDEX_END:85,Slice:86,ES6_OPTIONAL_INDEX:87,"{":88,ObjAssignable:89,":":90,FOR:91,ForVariables:92,FOROF:93,OptComma:94,"}":95,WHEN:96,OWN:97,AssignList:98,AssignObj:99,ObjRestValue:100,SimpleObjAssignable:101,"[":102,"]":103,"@":104,"...":105,ObjSpreadExpr:106,SUPER:107,Arguments:108,DYNAMIC_IMPORT:109,Elisions:110,ArgElisionList:111,OptElisions:112,ArgElision:113,Arg:114,Elision:115,RangeDots:116,"..":117,DEF:118,CALL_START:119,ParamList:120,CALL_END:121,Block:122,PARAM_START:123,PARAM_END:124,FuncGlyph:125,"->":126,"=>":127,Param:128,ParamVar:129,Splat:130,ES6_OPTIONAL_CALL:131,ArgList:132,SimpleArgs:133,THIS:134,NEW_TARGET:135,IMPORT_META:136,"(":137,")":138,RETURN:139,THROW:140,YIELD:141,FROM:142,IfBlock:143,IF:144,ELSE:145,UnlessBlock:146,UNLESS:147,POST_IF:148,POST_UNLESS:149,TRY:150,Catch:151,FINALLY:152,CATCH:153,SWITCH:154,Whens:155,When:156,LEADING_WHEN:157,WhileSource:158,WHILE:159,UNTIL:160,Loop:161,LOOP:162,FORIN:163,BY:164,FORAS:165,AWAIT:166,FORASAWAIT:167,ForValue:168,CLASS:169,EXTENDS:170,ENUM:171,COMPONENT:172,ComponentBody:173,ComponentLine:174,RENDER:175,IMPORT:176,ImportDefaultSpecifier:177,ImportNamespaceSpecifier:178,ImportSpecifierList:179,ImportSpecifier:180,AS:181,DEFAULT:182,IMPORT_ALL:183,EXPORT:184,ExportSpecifierList:185,EXPORT_ALL:186,ExportSpecifier:187,UNARY:188,DO:189,DO_IIFE:190,UNARY_MATH:191,"-":192,"+":193,"?":194,"--":195,"++":196,MATH:197,"**":198,SHIFT:199,COMPARE:200,"&":201,"^":202,"|":203,"||":204,"??":205,"&&":206,"!?":207,PIPE:208,RELATION:209,"SPACE?":210,COMPOUND_ASSIGN:211},tokenNames:{2:"error",6:"TERMINATOR",11:"STATEMENT",46:"JS",48:"UNDEFINED",49:"NULL",50:"BOOL",51:"INFINITY",52:"NAN",53:"NUMBER",56:"IDENTIFIER",58:"PROPERTY",59:"STRING",60:"STRING_START",62:"STRING_END",64:"INTERPOLATION_START",65:"INTERPOLATION_END",66:"INDENT",67:"OUTDENT",68:"REGEX",69:"REGEX_START",70:"REGEX_END",72:",",73:"=",74:"REACTIVE_ASSIGN",75:"COMPUTED_ASSIGN",76:"READONLY_ASSIGN",77:"REACT_ASSIGN",82:".",83:"?.",84:"INDEX_START",85:"INDEX_END",87:"ES6_OPTIONAL_INDEX",88:"{",90:":",91:"FOR",93:"FOROF",95:"}",96:"WHEN",97:"OWN",102:"[",103:"]",104:"@",105:"...",107:"SUPER",109:"DYNAMIC_IMPORT",117:"..",118:"DEF",119:"CALL_START",121:"CALL_END",123:"PARAM_START",124:"PARAM_END",126:"->",127:"=>",131:"ES6_OPTIONAL_CALL",134:"THIS",135:"NEW_TARGET",136:"IMPORT_META",137:"(",138:")",139:"RETURN",140:"THROW",141:"YIELD",142:"FROM",144:"IF",145:"ELSE",147:"UNLESS",148:"POST_IF",149:"POST_UNLESS",150:"TRY",152:"FINALLY",153:"CATCH",154:"SWITCH",157:"LEADING_WHEN",159:"WHILE",160:"UNTIL",162:"LOOP",163:"FORIN",164:"BY",165:"FORAS",166:"AWAIT",167:"FORASAWAIT",169:"CLASS",170:"EXTENDS",171:"ENUM",172:"COMPONENT",175:"RENDER",176:"IMPORT",181:"AS",182:"DEFAULT",183:"IMPORT_ALL",184:"EXPORT",186:"EXPORT_ALL",188:"UNARY",189:"DO",190:"DO_IIFE",191:"UNARY_MATH",192:"-",193:"+",194:"?",195:"--",196:"++",197:"MATH",198:"**",199:"SHIFT",200:"COMPARE",201:"&",202:"^",203:"|",204:"||",205:"??",206:"&&",207:"!?",208:"PIPE",209:"RELATION",210:"SPACE?",211:"COMPOUND_ASSIGN"},parseTable:(()=>{let $=[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,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,-1,1,2,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,1,1,0,2,1,5,-2,107,5,1,5,59,2,71,-3,-3,-3,-3,-3,31,1,5,59,1,1,5,19,12,18,17,10,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-6,-6,-6,-6,-6,-6,127,-6,-6,-6,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,9,1,5,59,1,1,5,31,18,17,-7,-7,-7,-7,-7,-7,-7,-7,-7,14,1,5,59,1,1,5,31,18,17,10,1,9,1,1,-8,-8,-8,-8,-8,-8,-8,-8,-8,128,129,130,96,97,54,1,5,48,5,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,3,9,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-13,-13,132,105,106,-13,-13,-13,-13,135,136,137,-13,138,-13,-13,-13,-13,-13,-13,-13,133,-13,139,-13,-13,134,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,131,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,46,1,5,59,1,1,5,10,1,1,1,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,140,141,142,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,9,1,5,59,1,1,5,31,18,17,-33,-33,-33,-33,-33,-33,-33,-33,-33,9,1,5,59,1,1,5,31,18,17,-34,-34,-34,-34,-34,-34,-34,-34,-34,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,143,144,145,146,147,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,18,6,49,1,10,1,5,7,1,1,7,14,2,1,15,1,3,4,1,-173,152,104,-173,-173,-173,154,155,153,99,157,156,151,148,-173,-173,149,150,106,5,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,4,1,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,159,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,160,102,103,53,52,72,73,93,99,59,83,87,84,85,66,158,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,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,161,162,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,103,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,164,165,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,166,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,172,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,173,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,174,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,175,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,45,14,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,7,14,2,3,2,14,2,1,1,7,1,1,1,53,177,178,179,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,176,72,73,93,99,83,87,84,85,167,168,90,91,86,88,89,82,171,45,14,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,7,14,2,3,2,14,2,1,1,7,1,1,1,53,177,178,179,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,180,72,73,93,99,83,87,84,85,167,168,90,91,86,88,89,82,171,60,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,181,182,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,183,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,185,184,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,186,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,187,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,2,66,56,160,188,2,66,56,160,189,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,14,39,16,1,23,1,1,7,4,5,5,2,25,37,2,193,152,104,154,155,153,99,190,191,83,156,195,192,194,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,196,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,197,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,90,1,5,8,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,6,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,4,1,1,1,1,1,1,7,1,1,1,1,7,3,1,10,1,3,1,1,2,3,20,2,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-304,-304,177,178,179,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-304,160,-304,102,103,-304,200,72,73,93,-304,99,-304,-304,-304,-304,-304,83,-304,87,-304,84,85,-304,-304,198,167,-304,168,90,91,86,88,89,82,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,199,171,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,1,66,201,2,66,56,160,202,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,203,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,204,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,139,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,5,1,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,1,3,2,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,2,2,1,3,1,8,4,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-224,-224,205,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-224,206,-224,102,103,-224,53,52,72,73,93,-224,99,-224,-224,-224,-224,-224,83,-224,87,-224,84,85,-224,66,-224,167,-224,168,90,91,86,88,89,82,-224,69,64,65,207,54,94,-224,55,95,-224,-224,56,60,57,-224,-224,58,98,-224,-224,-224,49,-224,61,67,62,63,70,71,169,170,171,46,47,48,50,51,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,2,55,1,208,104,2,55,1,209,104,6,15,19,89,2,1,1,211,210,42,43,90,91,138,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,5,1,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,1,3,2,1,1,1,1,7,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,2,2,1,3,1,8,4,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-221,-221,212,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-221,213,-221,102,103,-221,53,52,72,73,93,-221,99,-221,-221,-221,-221,-221,83,-221,87,-221,84,85,-221,66,-221,167,-221,168,90,91,86,88,89,82,-221,69,64,65,54,94,-221,55,95,-221,-221,56,60,57,-221,-221,58,98,-221,-221,-221,49,-221,61,67,62,63,70,71,169,170,171,46,47,48,50,51,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,9,54,1,1,3,1,28,89,1,5,214,218,104,105,106,217,215,216,219,60,14,1,3,1,1,1,6,1,4,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,14,2,3,2,9,5,2,1,1,7,1,1,1,32,2,1,10,4,4,177,178,226,227,228,229,221,222,223,224,232,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,225,104,105,106,102,103,53,233,72,73,93,220,83,87,84,85,66,167,168,90,91,86,88,89,82,61,67,62,230,231,171,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,106,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,234,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,235,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,113,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,5,1,1,1,1,7,3,11,1,1,1,2,2,1,1,2,1,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,236,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,242,102,103,243,53,52,72,73,93,99,59,83,237,87,247,84,85,238,239,241,244,240,66,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,4,82,2,24,11,249,250,248,139,2,108,11,251,139,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,54,1,5,51,1,1,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-206,-206,252,253,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,1,82,254,1,82,255,54,11,35,2,1,1,1,1,1,3,3,1,6,2,1,8,11,3,11,2,3,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,54,11,35,2,1,1,1,1,1,3,3,1,6,2,1,8,11,3,11,2,3,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,256,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,257,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,258,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,259,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,4,1,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,261,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,160,102,103,53,52,72,73,93,99,59,83,87,84,85,66,260,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,23,6,39,8,1,1,1,1,1,1,1,6,1,5,9,8,6,3,1,1,1,1,2,1,-109,267,100,101,269,104,270,253,105,106,-109,-109,-109,271,262,-109,263,268,272,264,265,266,273,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,45,14,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,7,14,2,3,2,14,2,1,1,7,1,1,1,53,177,178,179,34,35,36,274,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,233,72,73,93,99,83,87,84,85,167,168,90,91,86,88,89,82,171,63,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,4,3,3,1,10,1,3,1,1,2,3,11,11,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,55,1,5,53,1,2,2,1,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,6,54,5,1,1,2,1,278,105,106,275,276,277,109,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,2,1,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,1,1,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,-5,279,-5,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-5,-5,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,-5,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,280,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,281,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,282,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,283,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,284,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,285,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,286,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,287,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,288,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,291,163,289,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,290,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,294,163,292,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,293,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,297,163,295,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,296,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,298,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,299,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,300,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,301,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,302,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,303,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,14,39,16,1,23,1,1,7,4,5,5,2,25,37,2,307,152,104,154,155,153,99,304,305,83,156,195,306,194,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,308,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,309,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,53,1,5,53,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,53,1,5,53,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,2,108,11,310,139,2,57,1,311,253,2,57,1,312,253,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,2,6,1,1,1,1,5,2,3,11,2,1,2,2,7,1,1,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,313,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,318,77,78,79,80,81,100,101,92,104,105,106,314,102,103,316,53,52,72,73,93,315,99,59,83,87,320,84,85,317,319,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,84,321,109,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,1,2,2,5,4,3,2,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,325,102,103,53,52,72,73,93,99,59,83,87,247,84,85,324,66,322,42,43,90,91,246,323,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,2,57,1,327,253,2,57,1,328,253,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,329,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,330,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,332,331,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,333,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,335,334,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,336,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,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,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,338,337,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,339,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,341,340,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,342,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,344,343,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,345,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,9,6,60,1,5,22,1,8,18,3,-217,-217,-217,347,348,-217,-217,-217,346,6,6,60,1,5,49,3,-174,-174,-174,-174,-174,-174,7,6,60,1,5,1,48,3,-178,-178,-178,-178,349,-178,-178,15,6,49,1,10,1,5,7,1,1,7,14,2,17,3,5,-181,152,104,-181,-181,-181,154,155,153,99,157,156,-181,-181,350,11,6,60,1,5,1,20,28,3,39,2,2,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,11,6,60,1,5,1,20,28,3,39,2,2,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,11,6,60,1,5,1,20,28,3,39,2,2,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,11,6,60,1,5,1,20,28,3,39,2,2,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,2,57,1,252,253,113,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,5,1,1,1,1,7,3,11,1,1,1,2,2,1,1,2,1,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,242,102,103,243,53,52,72,73,93,99,59,83,237,87,247,84,85,238,239,241,244,240,66,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,9,1,5,59,1,1,5,31,18,17,-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,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,352,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,351,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,125,126,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,118,-370,120,-370,-370,-370,9,1,5,59,1,1,5,31,18,17,-367,-367,-367,-367,-367,-367,-367,-367,-367,5,148,1,9,1,1,128,129,130,96,97,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,125,126,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,118,-371,120,-371,-371,-371,9,1,5,59,1,1,5,31,18,17,-368,-368,-368,-368,-368,-368,-368,-368,-368,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,125,126,-372,-372,-372,-372,-372,-372,-372,-372,-372,111,-372,-372,-372,-372,-372,-372,118,-372,120,-372,-372,-372,18,6,49,1,10,1,5,7,1,1,7,14,2,1,15,1,3,4,1,-173,152,104,-173,-173,-173,154,155,153,99,157,156,151,353,-173,-173,149,150,2,66,56,160,158,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,161,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,164,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,5,15,108,2,1,1,211,167,168,90,91,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,125,126,-373,-373,-373,-373,-373,-373,-373,-373,-373,111,-373,-373,-373,-373,-373,-373,118,-373,120,-373,-373,-373,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,125,126,-374,-374,-374,-374,-374,-374,-374,-374,-374,111,-374,-374,-374,-374,-374,-374,118,-374,120,-374,-374,-374,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,125,126,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,118,-376,120,-376,-376,-376,2,80,8,354,99,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-378,-378,-86,-86,-378,-378,-378,-378,-86,-86,-86,-86,-86,-86,-86,-86,-378,-86,-378,-378,-378,-378,-378,-378,-378,-378,-86,-378,-378,-86,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-86,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,10,54,5,1,22,1,1,3,21,11,12,132,105,106,135,136,137,138,133,139,134,3,82,1,1,140,141,142,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-379,-379,-86,-86,-379,-379,-379,-379,-86,-86,-86,-86,-86,-86,-86,-86,-379,-86,-379,-379,-379,-379,-379,-379,-379,-379,-86,-379,-379,-86,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-86,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,357,355,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,356,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-83,-83,-83,-83,-83,-83,-83,-83,127,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,124,125,126,96,97,-83,-83,-83,-83,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,358,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,359,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,66,56,22,160,360,361,46,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,2,1,1,6,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,362,363,364,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,4,93,70,2,2,366,365,367,368,11,55,1,23,1,1,7,4,10,2,25,39,152,104,154,155,153,99,369,157,156,195,194,11,55,1,23,1,1,7,4,10,2,25,39,152,104,154,155,153,99,370,157,156,195,194,3,66,56,42,160,371,372,5,72,21,70,2,2,373,-302,-302,-302,-302,6,72,1,20,70,2,2,-300,374,-300,-300,-300,-300,23,66,25,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,375,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,3,155,1,1,376,377,378,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,379,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,59,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,1,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-308,-308,-86,-86,-308,160,-308,-308,-86,-86,-86,-86,-86,-86,-86,-86,-308,-86,-308,-308,-308,-308,-308,-308,-308,-308,-86,-308,380,-308,-86,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,381,-308,-308,-86,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,105,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,1,1,1,1,8,4,1,1,1,1,1,2,1,384,385,386,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,382,383,63,70,71,44,45,68,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,125,126,-222,-222,-222,-222,-222,-222,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,80,8,387,99,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,125,126,-225,-225,-225,-225,-225,-225,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,80,8,388,99,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,389,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,66,53,3,160,390,391,2,66,56,160,392,9,1,5,59,1,1,5,31,18,17,-369,-369,-369,-369,-369,-369,-369,-369,-369,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,125,126,-219,-219,-219,-219,-219,-219,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,80,8,393,99,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,2,72,70,395,394,1,142,396,7,55,1,10,29,84,1,2,401,104,400,397,398,399,402,2,72,70,-337,-337,1,181,403,26,6,39,8,1,1,1,1,1,1,1,6,1,5,9,8,6,3,1,1,1,1,2,1,77,3,2,-109,267,100,101,408,104,270,253,105,106,407,-109,-109,271,262,404,263,268,272,264,265,266,273,409,405,406,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-89,-89,-89,-89,-89,-89,-89,-89,410,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,411,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,412,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,142,413,56,1,5,53,1,5,1,1,5,2,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,144,145,146,147,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,2,6,132,107,414,105,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,415,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,31,6,60,1,5,19,12,2,11,1,4,27,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-199,-199,-199,-199,127,-199,320,416,319,-199,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,109,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,5,1,1,1,1,7,3,11,1,1,1,2,2,5,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,243,53,52,72,73,93,99,59,83,417,87,247,84,85,419,418,66,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,9,6,60,1,5,22,1,8,9,9,-217,-217,-217,421,422,-217,-217,420,-217,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,5,11,3,11,1,1,1,2,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,423,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,5,6,60,1,5,31,-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,5,1,1,1,1,7,3,11,2,1,2,2,1,1,2,1,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,242,102,103,243,53,52,72,73,93,99,59,83,87,247,84,85,425,424,241,244,240,66,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,5,11,3,11,1,1,1,2,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,5,6,60,1,5,31,-150,-150,-150,-150,-150,6,6,60,1,5,31,18,-200,-200,-200,-200,-200,-200,6,6,60,1,5,31,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,5,1,1,1,1,7,3,11,1,1,3,2,9,3,2,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,-202,426,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-202,-202,102,103,-202,53,52,72,73,93,99,59,83,-202,87,84,85,66,-202,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,53,1,5,53,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,2,57,1,427,253,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,428,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,429,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,53,1,5,53,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,2,57,1,430,253,2,57,1,431,253,24,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,432,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,433,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,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-255,-255,-255,-255,-255,-255,-255,-255,127,-255,-255,434,-255,-255,-255,-255,-255,-255,-255,-255,125,126,96,97,-255,-255,-255,-255,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-257,-257,-257,-257,-257,-257,-257,-257,127,-257,-257,435,-257,-257,-257,-257,-257,-257,-257,-257,125,126,96,97,-257,-257,-257,-257,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,45,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,1,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-264,-264,-264,160,-264,-264,-264,-264,127,-264,-264,-264,-264,-264,-264,-264,436,-264,-264,-264,-264,125,126,96,97,-264,-264,-264,-264,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,6,6,60,1,5,18,5,-114,-114,-114,-114,437,-114,8,6,60,1,5,22,1,8,18,-217,-217,-217,439,438,-217,-217,-217,7,6,60,1,5,1,17,5,-123,-123,-123,-123,440,-123,-123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,441,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,57,1,44,252,253,442,6,6,60,1,5,18,5,-126,-126,-126,-126,-126,-126,5,6,60,1,5,23,-110,-110,-110,-110,-110,11,6,60,1,5,1,9,1,1,6,5,24,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,11,6,60,1,5,1,9,1,1,6,5,24,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,11,6,60,1,5,1,9,1,1,6,5,24,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,5,6,60,1,5,23,-115,-115,-115,-115,-115,17,38,4,1,12,1,1,1,22,1,7,13,3,2,1,2,25,3,446,448,447,269,104,270,253,445,271,99,443,87,444,449,450,86,82,53,1,5,53,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,-39,-39,451,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,6,54,5,1,2,1,1,278,105,106,452,453,277,4,59,1,2,2,-58,-58,-58,-58,107,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,454,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,456,455,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,4,59,1,2,2,-63,-63,-63,-63,5,1,5,59,2,71,-4,-4,-4,-4,-4,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,125,126,-382,-382,-382,-382,-382,-382,-382,-382,110,111,-382,-382,-382,-382,-382,-382,118,-382,120,-382,-382,-382,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,125,126,-383,-383,-383,-383,-383,-383,-383,-383,110,111,-383,-383,-383,-383,-383,-383,118,-383,120,-383,-383,-383,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,125,126,-384,-384,-384,-384,-384,-384,-384,-384,-384,111,-384,-384,-384,-384,-384,-384,118,-384,120,-384,-384,-384,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,125,126,-385,-385,-385,-385,-385,-385,-385,-385,-385,111,-385,-385,-385,-385,-385,-385,118,-385,120,-385,-385,-385,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,125,126,-386,-386,-386,-386,-386,-386,109,108,110,111,-386,-386,-386,-386,-386,-386,118,-386,120,-386,-386,-386,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,125,126,-387,-387,-387,-387,-387,-387,109,108,110,111,112,-387,-387,-387,-387,-387,118,-387,120,-387,122,-387,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,125,126,-388,-388,-388,-388,-388,-388,109,108,110,111,112,113,-388,-388,-388,-388,118,-388,120,-388,122,-388,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,125,126,-389,-389,-389,-389,-389,-389,109,108,110,111,112,113,114,-389,-389,-389,118,-389,120,-389,122,-389,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,125,126,-390,-390,-390,-390,-390,-390,109,108,110,111,112,113,114,115,-390,-390,118,-390,120,-390,122,-390,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,125,126,-398,-398,-398,-398,-398,-398,109,108,110,111,112,113,114,115,116,-398,118,119,120,-398,122,-398,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-399,-399,-399,-399,-399,-399,-399,-399,127,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,124,125,126,96,97,-399,-399,-399,-399,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,125,126,-397,-397,-397,-397,-397,-397,109,108,110,111,112,113,114,115,116,-397,118,-397,120,-397,122,-397,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-400,-400,-400,-400,-400,-400,-400,-400,127,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,124,125,126,96,97,-400,-400,-400,-400,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,125,126,-401,-401,-401,-401,-401,-401,109,108,110,111,112,113,114,115,116,117,118,119,120,-401,122,-401,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,125,126,-402,-402,-402,-402,-402,-402,109,108,110,111,112,-402,-402,-402,-402,-402,118,-402,120,-402,-402,-402,23,90,1,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,457,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-236,-236,-236,-236,-236,-236,-236,-236,127,-236,-236,-236,-236,-236,-236,-236,-236,-236,458,-236,125,126,96,97,-236,-236,-236,-236,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-239,-239,-239,-239,-239,-239,-239,-239,127,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,124,125,126,96,97,-239,-239,-239,-239,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,93,70,2,2,460,459,461,462,11,55,1,23,1,1,7,4,10,2,25,39,152,104,154,155,153,99,463,157,156,195,194,11,55,1,23,1,1,7,4,10,2,25,39,152,104,154,155,153,99,464,157,156,195,194,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,465,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-235,-235,-235,-235,-235,-235,-235,-235,127,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,125,126,96,97,-235,-235,-235,-235,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-238,-238,-238,-238,-238,-238,-238,-238,127,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,124,125,126,96,97,-238,-238,-238,-238,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,53,1,5,53,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,26,85,6,14,11,1,31,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,466,127,320,467,319,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,104,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,5,2,3,11,2,1,2,2,7,1,1,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,468,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,469,99,59,83,87,320,84,85,317,319,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,85,470,1,85,471,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,8,1,1,1,1,4,3,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,472,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-164,102,103,53,52,72,73,93,-164,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,-46,-46,-46,-46,-46,473,-46,-46,-46,-67,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,55,11,35,2,1,1,1,1,1,3,3,1,7,1,1,8,8,3,3,11,2,3,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,55,11,35,2,1,1,1,1,1,3,3,1,7,1,1,8,8,3,3,11,2,3,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,474,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,475,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,53,1,5,53,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,8,6,60,1,5,22,1,8,18,-217,-217,-217,477,476,-217,-217,-217,5,6,60,1,5,49,-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,8,1,1,1,1,7,3,11,2,1,2,2,5,4,5,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,325,102,103,53,52,72,73,93,99,59,83,87,247,84,85,324,66,42,43,90,91,246,478,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,28,6,60,1,5,19,12,18,27,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-199,-199,-199,-199,127,-199,-199,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,23,85,6,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,479,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,480,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,125,126,-68,-68,-68,-68,-68,-68,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,481,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,482,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-71,-71,-71,-71,-71,-71,-71,-71,127,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,124,125,126,96,97,-71,-71,-71,-71,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,483,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,484,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-74,-74,-74,-74,-74,-74,-74,-74,127,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,124,125,126,96,97,-74,-74,-74,-74,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,485,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,486,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-77,-77,-77,-77,-77,-77,-77,-77,127,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,124,125,126,96,97,-77,-77,-77,-77,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,487,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,488,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-80,-80,-80,-80,-80,-80,-80,-80,127,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,124,125,126,96,97,-80,-80,-80,-80,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,489,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,490,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,125,1,1,491,90,91,17,6,49,1,10,1,12,1,1,7,7,7,1,1,1,16,7,1,-218,152,104,-218,-218,154,155,153,99,-218,157,-218,156,151,-218,492,150,2,6,60,493,494,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,495,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,6,6,60,1,5,49,3,-180,-180,-180,-180,-180,-180,55,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,3,1,4,2,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,2,6,61,107,496,9,6,60,1,5,22,1,8,18,3,-217,-217,-217,347,348,-217,-217,-217,497,1,67,498,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,125,126,-404,-404,-404,-404,-404,-404,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,499,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,500,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-84,-84,-84,-84,-84,-84,-84,-84,127,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,124,125,126,96,97,-84,-84,-84,-84,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,501,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,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,502,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,3,7,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,503,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,2,66,56,160,504,6,55,1,10,14,8,34,505,104,160,506,99,507,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,508,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,509,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,510,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,511,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,93,512,1,165,513,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,514,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,10,55,1,23,1,1,7,14,2,25,39,152,104,154,155,153,99,157,156,195,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,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,516,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,155,1,1,517,377,378,4,67,78,11,1,518,519,520,378,3,67,78,12,-251,-251,-251,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,6,1,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,522,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,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,169,170,171,46,47,48,50,51,45,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,1,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-306,-306,-306,160,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,523,-306,-306,-306,-306,125,126,-306,-306,-306,-306,-306,-306,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,524,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,2,6,61,526,525,2,6,61,-314,-314,24,6,61,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-317,-317,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,6,61,-318,-318,7,6,61,81,1,9,1,1,-319,-319,128,129,130,96,97,1,67,527,1,67,528,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,125,126,-227,-227,-227,-227,-227,-227,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,18,6,49,1,10,1,5,7,1,1,7,14,2,1,15,1,3,4,1,-173,152,104,-173,-173,-173,154,155,153,99,157,156,151,529,-173,-173,149,150,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,1,67,530,3,54,5,1,531,105,106,3,88,90,5,533,532,219,3,54,5,1,534,105,106,1,142,535,8,6,60,1,5,22,1,8,18,-217,-217,-217,537,536,-217,-217,-217,5,6,60,1,5,23,-328,-328,-328,-328,-328,6,55,1,10,113,1,2,401,104,400,538,399,402,6,6,60,1,5,23,86,-333,-333,-333,-333,-333,539,6,6,60,1,5,23,86,-335,-335,-335,-335,-335,540,2,55,1,541,104,14,1,5,59,1,1,5,31,18,17,4,6,1,10,1,-339,-339,-339,-339,-339,-339,-339,-339,-339,542,-339,-339,-339,-339,8,6,60,1,5,22,1,8,18,-217,-217,-217,544,543,-217,-217,-217,5,6,60,1,5,23,-357,-357,-357,-357,-357,6,55,1,10,116,3,2,546,104,407,409,545,406,12,6,60,1,5,1,9,1,1,6,5,24,62,-362,-362,-362,-362,-120,-120,-120,-120,-120,-362,-120,547,6,6,60,1,5,23,86,-365,-365,-365,-365,-365,548,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,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,550,549,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,551,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,31,1,5,59,1,1,5,19,12,18,17,10,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-352,-352,-352,-352,-352,-352,127,-352,-352,-352,-352,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,80,8,552,99,3,54,5,1,553,105,106,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,2,6,61,107,554,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,555,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,5,11,3,11,1,1,1,2,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,423,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,5,6,60,1,5,31,-151,-151,-151,-151,-151,2,66,37,557,556,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,5,1,1,1,1,7,3,4,7,1,1,1,2,2,1,3,1,1,3,3,2,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,-218,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-218,-218,102,103,243,53,52,72,73,93,99,59,-218,83,-218,87,247,84,85,559,558,244,240,66,-218,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,4,6,60,1,36,560,-152,-152,-152,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,5,11,3,11,1,1,1,2,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,9,6,60,1,5,22,1,8,9,9,-217,-217,-217,421,422,-217,-217,561,-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,5,1,1,1,1,7,3,11,2,1,2,2,5,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,243,53,52,72,73,93,99,59,83,87,247,84,85,419,418,66,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,28,6,60,1,5,19,12,18,27,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-186,-186,-186,-186,127,-186,-186,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,23,85,6,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,562,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,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,563,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,564,-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,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,565,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,566,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,567,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,568,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,6,60,29,570,571,569,23,6,39,8,1,1,1,1,1,1,1,6,1,14,8,6,4,1,1,1,1,1,1,16,-218,267,100,101,269,104,270,253,105,106,-218,-218,271,573,-218,572,272,264,265,-218,266,273,-218,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,574,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,575,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,23,91,12,45,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,127,576,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,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,577,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,10,6,60,1,5,10,1,1,11,13,11,-127,-127,-127,-127,-129,-129,-129,-127,578,139,10,6,60,1,5,10,1,1,11,13,11,-128,-128,-128,-128,580,581,582,-128,579,139,9,6,60,1,5,10,1,1,11,24,-130,-130,-130,-130,-130,-130,-130,-130,-130,9,6,60,1,5,10,1,1,11,24,-131,-131,-131,-131,-131,-131,-131,-131,-131,9,6,60,1,5,10,1,1,11,24,-132,-132,-132,-132,-132,-132,-132,-132,-132,9,6,60,1,5,10,1,1,11,24,-133,-133,-133,-133,-133,-133,-133,-133,-133,4,82,2,24,11,249,250,583,139,2,108,11,584,139,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,55,1,5,53,1,2,2,1,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,4,59,1,2,2,-59,-59,-59,-59,2,6,59,107,585,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,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,586,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,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,587,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,66,588,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,589,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,590,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,591,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,592,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,93,593,1,165,594,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,595,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,8,1,1,1,1,4,3,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,596,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-162,102,103,53,52,72,73,93,-162,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,26,67,24,14,11,1,31,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,597,127,320,467,319,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,1,67,598,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,24,67,18,6,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-163,-163,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,599,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,23,85,6,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,600,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,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,601,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,6,60,55,603,604,602,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,8,1,1,1,1,7,3,4,7,1,1,1,2,2,5,4,3,2,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,-218,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-218,-218,102,103,53,52,72,73,93,99,59,-218,83,-218,87,247,84,85,605,66,-218,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,8,6,60,1,5,22,1,8,18,-217,-217,-217,477,606,-217,-217,-217,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,607,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,125,126,-69,-69,-69,-69,-69,-69,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,608,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-72,-72,-72,-72,-72,-72,-72,-72,127,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,124,125,126,96,97,-72,-72,-72,-72,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,609,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-75,-75,-75,-75,-75,-75,-75,-75,127,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,124,125,126,96,97,-75,-75,-75,-75,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,610,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-78,-78,-78,-78,-78,-78,-78,-78,127,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,124,125,126,96,97,-78,-78,-78,-78,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,24,57,1,9,1,1,32,1,4,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,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-81,-81,-81,-81,-81,-81,-81,-81,127,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,124,125,126,96,97,-81,-81,-81,-81,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,24,57,1,9,1,1,32,1,4,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,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,8,1,1,1,1,7,3,11,2,3,2,9,4,1,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,614,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,160,102,103,53,52,72,73,93,99,59,83,87,84,85,66,613,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,49,3,-175,-175,-175,-175,-175,-175,11,55,1,23,1,1,7,14,2,1,23,1,152,104,154,155,153,99,157,156,151,615,150,18,6,49,1,10,1,5,7,1,1,7,14,2,1,15,1,3,4,1,-173,152,104,-173,-173,-173,154,155,153,99,157,156,151,616,-173,-173,149,150,28,6,60,1,5,19,30,3,24,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-179,-179,-179,-179,127,-179,-179,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,55,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,3,1,4,2,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,3,125,1,1,617,90,91,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,618,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,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,125,126,-406,-406,-406,-406,-406,-406,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,24,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,619,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,66,56,160,620,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,2,66,56,160,621,2,66,56,160,622,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,3,7,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,26,66,25,5,26,26,1,9,1,1,4,28,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,624,623,124,125,126,96,97,625,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,25,5,26,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,627,626,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,25,5,26,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,629,628,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,25,5,26,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,631,630,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,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,632,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,633,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,24,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,634,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,93,70,2,2,-303,-303,-303,-303,27,72,19,2,55,1,9,1,1,3,2,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-301,127,-301,124,125,126,96,97,-301,-301,-301,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,67,78,11,1,635,636,520,378,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,2,66,56,160,637,3,67,78,12,-252,-252,-252,3,66,6,50,160,639,638,24,66,6,19,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-203,-203,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,45,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,1,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-310,-310,-310,160,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,640,-310,-310,-310,-310,125,126,-310,-310,-310,-310,-310,-310,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,106,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,1,1,8,4,1,1,1,1,1,2,1,-316,384,385,386,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-316,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,641,63,70,71,44,45,68,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,8,6,60,1,5,22,1,8,18,-217,-217,-217,347,348,-217,-217,642,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,1,142,643,6,55,1,10,113,1,2,401,104,400,644,399,402,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,3,54,5,1,645,105,106,3,6,60,29,647,648,646,10,6,49,1,10,1,28,8,18,59,2,-218,401,104,-218,-218,-218,-218,-218,649,402,8,6,60,1,5,22,1,8,18,-217,-217,-217,537,650,-217,-217,-217,2,55,1,651,104,2,55,1,652,104,1,142,-338,3,54,5,1,653,105,106,3,6,60,29,655,656,654,10,6,49,1,10,1,28,8,18,61,5,-218,546,104,-218,-218,-218,-218,-218,409,657,8,6,60,1,5,22,1,8,18,-217,-217,-217,544,658,-217,-217,-217,6,6,60,1,5,23,86,-362,-362,-362,-362,-362,547,3,55,1,126,659,104,660,2,55,1,661,104,31,1,5,59,1,1,5,19,12,18,17,10,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-345,-345,-345,-345,-345,-345,127,-345,-345,-345,-345,125,126,-345,-345,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,662,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,663,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,67,664,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,1,138,665,23,91,12,45,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,127,666,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,112,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,5,1,1,1,1,7,3,11,2,1,2,2,1,1,2,1,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,242,102,103,243,53,52,72,73,93,99,59,83,87,247,84,85,425,667,241,244,240,66,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,5,6,60,1,5,31,-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,5,1,1,1,1,7,3,11,1,1,1,2,2,5,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-153,-153,102,103,243,53,52,72,73,93,99,59,83,-153,87,247,84,85,419,418,66,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,110,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,5,1,1,1,1,7,3,11,2,1,2,2,1,3,1,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,243,53,52,72,73,93,99,59,83,87,247,84,85,425,668,244,240,66,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,2,66,1,557,669,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,670,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,66,56,160,671,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,125,126,-256,-256,-256,-256,-256,-256,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,125,126,-258,-258,-258,-258,-258,-258,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,27,6,60,1,5,19,4,53,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-116,-116,-116,-116,672,-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,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,673,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,17,45,8,1,1,1,1,1,1,1,21,8,10,1,1,1,2,1,267,100,101,269,104,270,253,105,106,271,573,674,272,264,265,266,273,23,6,39,8,1,1,1,1,1,1,1,6,1,5,9,8,6,3,1,1,1,1,2,1,-109,267,100,101,269,104,270,253,105,106,-109,-109,-109,271,573,-109,675,268,272,264,265,266,273,5,6,60,1,5,23,-111,-111,-111,-111,-111,6,6,60,1,5,18,5,-114,-114,-114,-114,676,-114,27,6,60,1,5,19,4,53,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-118,-118,-118,-118,127,-118,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,677,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,6,6,60,1,5,18,5,-124,-124,-124,-124,-124,-124,23,91,12,45,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,127,678,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,10,1,1,11,24,-136,-136,-136,-136,-136,-136,-136,-136,-136,9,6,60,1,5,10,1,1,11,24,-137,-137,-137,-137,-137,-137,-137,-137,-137,2,57,1,679,253,2,57,1,680,253,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,681,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,682,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,9,6,60,1,5,10,1,1,11,24,-134,-134,-134,-134,-134,-134,-134,-134,-134,9,6,60,1,5,10,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,683,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,125,126,-403,-403,-403,-403,-403,-403,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,684,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,685,-283,-283,-283,-283,-283,-283,-283,-283,125,126,-283,-283,-283,686,-283,-283,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,687,-288,-288,-288,-288,-288,-288,-288,-288,125,126,-288,-288,-288,-288,-288,-288,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,688,-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,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,689,-296,-296,-296,-296,-296,-296,-296,-296,125,126,-296,-296,-296,-296,-296,-296,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,690,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,691,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,125,126,-299,-299,-299,-299,-299,-299,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,67,18,6,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-161,-161,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,1,85,692,1,85,693,23,85,6,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-66,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,694,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,53,1,5,53,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,106,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,1,2,2,5,4,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,247,84,85,695,66,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,108,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,1,2,2,5,4,5,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,325,102,103,53,52,72,73,93,99,59,83,87,247,84,85,324,66,42,43,90,91,246,696,86,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,49,-195,-195,-195,-195,-195,3,6,60,1,603,604,697,1,85,698,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,9,1,5,59,1,1,5,31,18,17,-169,-169,-169,-169,-169,-169,-169,-169,-169,6,6,60,1,5,49,3,-176,-176,-176,-176,-176,-176,8,6,60,1,5,22,1,8,18,-217,-217,-217,347,699,-217,-217,-217,2,66,56,160,613,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,3,7,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,3,7,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,700,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,701,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,702,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,703,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,704,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,25,66,25,5,26,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,706,705,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,25,5,26,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,708,707,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,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,2,66,56,160,709,1,67,710,4,6,61,78,12,711,-253,-253,-253,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,712,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,2,6,61,-315,-315,2,66,56,160,713,3,54,5,1,714,105,106,8,6,60,1,5,22,1,8,18,-217,-217,-217,537,715,-217,-217,-217,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,1,142,716,4,55,1,124,2,401,104,717,402,6,55,1,10,113,1,2,401,104,400,718,399,402,5,6,60,1,5,23,-329,-329,-329,-329,-329,3,6,60,1,647,648,719,5,6,60,1,5,23,-334,-334,-334,-334,-334,5,6,60,1,5,23,-336,-336,-336,-336,-336,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,14,1,5,59,1,1,5,31,18,17,4,6,1,10,1,-340,-340,-340,-340,-340,-340,-340,-340,-340,720,-340,-340,-340,-340,4,55,1,126,5,546,104,409,721,6,55,1,10,116,3,2,546,104,407,409,722,406,5,6,60,1,5,23,-358,-358,-358,-358,-358,3,6,60,1,655,656,723,5,6,60,1,5,23,-363,-363,-363,-363,-363,5,6,60,1,5,23,-364,-364,-364,-364,-364,5,6,60,1,5,23,-366,-366,-366,-366,-366,31,1,5,59,1,1,5,19,12,18,17,10,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-346,-346,-346,-346,-346,-346,127,-346,-346,-346,-346,125,126,-346,-346,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,724,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,31,18,17,10,1,10,1,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,9,6,60,1,5,22,1,8,9,9,-217,-217,-217,421,422,-217,-217,725,-217,5,6,60,1,5,31,-147,-147,-147,-147,-147,5,6,60,1,5,31,-148,-148,-148,-148,-148,1,85,726,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,14,39,16,1,23,1,1,7,4,5,5,2,25,37,2,307,152,104,154,155,153,99,727,728,83,156,195,306,194,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,729,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,60,1,5,23,-112,-112,-112,-112,-112,8,6,60,1,5,22,1,8,18,-217,-217,-217,439,730,-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,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,731,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,568,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,732,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,18,5,-125,-125,-125,-125,-125,-125,9,6,60,1,5,10,1,1,11,24,-138,-138,-138,-138,-138,-138,-138,-138,-138,9,6,60,1,5,10,1,1,11,24,-139,-139,-139,-139,-139,-139,-139,-139,-139,23,85,6,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,733,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,734,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,65,735,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,736,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,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,737,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,738,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,739,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,740,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,741,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,742,-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,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,743,-294,-294,-294,-294,-294,-294,-294,-294,125,126,-294,-294,-294,-294,-294,-294,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,1,85,744,5,6,60,1,5,49,-196,-196,-196,-196,-196,8,6,60,1,5,22,1,8,18,-217,-217,-217,477,745,-217,-217,-217,5,6,60,1,5,49,-197,-197,-197,-197,-197,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,3,6,60,1,493,494,746,25,66,25,31,26,1,9,1,1,4,28,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,747,124,125,126,96,97,748,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,25,5,26,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,750,749,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,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,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,752,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,753,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,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,754,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,755,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,67,756,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,3,67,78,12,-254,-254,-254,24,66,6,19,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-204,-204,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,3,6,60,29,647,648,757,3,54,5,1,758,105,106,5,6,60,1,5,23,-330,-330,-330,-330,-330,8,6,60,1,5,22,1,8,18,-217,-217,-217,537,759,-217,-217,-217,5,6,60,1,5,23,-331,-331,-331,-331,-331,3,54,5,1,760,105,106,5,6,60,1,5,23,-359,-359,-359,-359,-359,8,6,60,1,5,22,1,8,18,-217,-217,-217,544,761,-217,-217,-217,5,6,60,1,5,23,-360,-360,-360,-360,-360,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,2,66,1,557,762,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,4,93,70,2,2,763,459,461,462,11,55,1,23,1,1,7,4,10,2,25,39,152,104,154,155,153,99,764,157,156,195,194,5,6,60,1,5,23,-117,-117,-117,-117,-117,3,6,60,1,570,571,765,27,6,60,1,5,19,4,53,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-116,-116,-116,-116,127,-116,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,60,1,5,23,-119,-119,-119,-119,-119,9,6,60,1,5,10,1,1,11,24,-140,-140,-140,-140,-140,-140,-140,-140,-140,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,766,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,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,125,126,-284,-284,-284,767,-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,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,768,-285,-285,-285,-285,-285,-285,-285,-285,125,126,-285,-285,-285,-285,-285,-285,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,125,126,-289,-289,-289,-289,-289,-289,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,125,126,-293,-293,-293,-293,-293,-293,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,125,126,-297,-297,-297,-297,-297,-297,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,769,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,770,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,3,6,60,1,603,604,771,6,6,60,1,5,49,3,-177,-177,-177,-177,-177,-177,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,772,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,773,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,24,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,774,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,775,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,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,1,142,776,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,3,6,60,1,647,648,777,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,3,6,60,1,655,656,778,5,6,60,1,5,31,-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,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,779,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,93,780,5,6,60,1,5,23,-113,-113,-113,-113,-113,1,85,781,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,782,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,783,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,125,126,-291,-291,-291,-291,-291,-291,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,125,126,-295,-295,-295,-295,-295,-295,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,60,1,5,49,-198,-198,-198,-198,-198,24,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,784,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,785,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,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,3,54,5,1,786,105,106,5,6,60,1,5,23,-332,-332,-332,-332,-332,5,6,60,1,5,23,-361,-361,-361,-361,-361,45,1,5,59,1,1,5,13,5,1,2,1,1,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,789,-288,-288,-288,-288,787,-288,788,-288,-288,-288,-288,-288,-288,-288,-288,125,126,-288,-288,-288,-288,-288,-288,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,790,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,9,6,60,1,5,10,1,1,11,24,-141,-141,-141,-141,-141,-141,-141,-141,-141,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,125,126,-286,-286,-286,-286,-286,-286,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,125,126,-287,-287,-287,-287,-287,-287,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,1,95,791,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,792,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,6,6,60,1,28,8,18,-218,-218,-218,-218,-218,-218,45,1,5,59,1,1,5,13,5,1,2,1,1,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,789,-290,-290,-290,-290,793,-290,794,-290,-290,-290,-290,-290,-290,-290,-290,125,126,-290,-290,-290,-290,-290,-290,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,45,1,5,59,1,1,5,13,5,1,2,1,1,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,789,-289,-289,-289,-289,795,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,125,126,-289,-289,-289,-289,-289,-289,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,1,95,796,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,797,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,95,798,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,45,1,5,59,1,1,5,13,5,1,2,1,1,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,789,-291,-291,-291,-291,799,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,125,126,-291,-291,-291,-291,-291,-291,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,1,95,800,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107],U=[],W=0,A,u,f,Y;while(W<$.length){A=$[W++],u={},f=0,Y=[];while(A--)f+=$[W++],Y.push(f);for(f of Y)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,5,20,3,20,4,20,5,21,3,21,4,21,5,21,2,21,3,21,4,36,1,36,1,36,1,78,1,78,1,78,3,78,3,78,4,78,6,78,4,78,6,78,4,78,5,78,7,78,3,78,3,78,4,78,6,80,10,80,12,80,11,80,13,80,4,98,0,98,1,98,3,98,4,98,6,99,1,99,1,99,3,99,5,99,3,99,5,101,1,101,1,101,1,89,1,89,3,89,4,89,1,100,2,100,2,106,1,106,1,106,1,106,1,106,1,106,2,106,2,106,2,106,2,106,3,106,3,106,4,106,6,79,2,79,3,79,4,111,1,111,3,111,4,111,4,111,6,113,1,113,2,112,1,112,2,110,1,110,2,115,1,115,2,116,1,116,1,39,5,86,3,86,2,86,2,86,1,32,6,32,3,15,5,15,2,34,5,34,2,125,1,125,1,120,0,120,1,120,3,120,4,120,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,108,2,108,4,132,1,132,3,132,4,132,4,132,6,114,1,114,1,114,1,114,1,133,1,133,3,42,1,42,1,81,2,43,3,43,4,43,6,44,3,44,3,122,2,122,3,38,3,38,5,94,0,94,1,10,2,10,4,10,1,30,2,30,4,31,1,31,2,31,4,31,3,143,3,143,5,146,3,146,5,22,1,22,3,22,1,22,3,22,3,22,7,22,3,22,3,23,2,23,3,23,4,23,5,151,3,151,3,151,2,26,5,26,7,26,4,26,6,155,1,155,2,156,3,156,4,158,2,158,4,158,2,158,4,24,2,24,2,24,2,24,1,161,2,161,2,161,3,25,5,25,7,25,7,25,9,25,9,25,5,25,7,25,6,25,8,25,5,25,7,25,6,25,8,25,5,25,7,25,3,25,5,25,5,25,7,25,7,25,9,25,9,25,5,25,7,25,6,25,8,25,5,25,7,25,6,25,8,25,5,25,7,25,3,25,5,168,1,168,3,92,1,92,3,27,1,27,2,27,3,27,4,27,2,27,3,27,4,27,5,33,3,28,4,173,1,173,3,173,2,174,1,174,1,174,1,29,2,12,2,12,4,12,4,12,5,12,7,12,6,12,9,179,1,179,3,179,4,179,4,179,6,180,1,180,3,180,1,180,3,177,1,178,3,13,3,13,5,13,2,13,2,13,2,13,2,13,4,13,5,13,6,13,2,13,2,13,2,13,2,13,3,13,5,13,4,13,5,13,7,185,1,185,3,185,4,185,4,185,6,187,1,187,3,187,3,187,1,187,3,35,2,35,2,35,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,4,16,2,16,2,16,2,16,2,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,5,16,3,16,5,16,4,41,2],ruleActions:($,U,W,A)=>{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 251:case 302:case 314:case 328:case 357:return[u[f]];case 4:case 111:case 175:case 195:case 204:case 315:case 329:case 358:return[...u[f-2],u[f]];case 5:case 60:case 157:case 316: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 262:case 300:case 317:case 318:case 319:case 333:case 335:case 337:case 362:case 365: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 252:return[...u[f-1],u[f]];case 61:case 193:case 197:case 331:case 360: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:return["computed",u[f-2],u[f]];case 75:return["computed",u[f-3],u[f]];case 76:return["computed",u[f-4],u[f-1]];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:return["effect",u[f-2],u[f]];case 81:return["effect",u[f-3],u[f]];case 82:return["effect",u[f-4],u[f-1]];case 83:case 84:return["effect",null,u[f]];case 85:return["effect",null,u[f-1]];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 330:case 359:return[...u[f-3],u[f]];case 113:case 177:case 198:case 332:case 361: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 384:case 386:case 387:case 402:case 404: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 301: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:case 239:return["if",["!",u[f]],[u[f-2]]];case 240:return["try",u[f]];case 241:return["try",u[f-1],u[f]];case 242:return["try",u[f-2],u[f]];case 243:return["try",u[f-3],u[f-2],u[f]];case 244:case 245:case 367:case 370:case 372:return[u[f-1],u[f]];case 246:return[null,u[f]];case 247:return["switch",u[f-3],u[f-1],null];case 248:return["switch",u[f-5],u[f-3],u[f-1]];case 249:return["switch",null,u[f-1],null];case 250:return["switch",null,u[f-3],u[f-1]];case 253:return["when",u[f-1],u[f]];case 254:return["when",u[f-2],u[f-1]];case 255:return["while",u[f]];case 256:return["while",u[f-2],u[f]];case 257:return["while",["!",u[f]]];case 258:return["while",["!",u[f-2]],u[f]];case 259: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 260:case 261: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 263:return["loop",u[f]];case 264:return["loop",[u[f]]];case 265:return["loop-n",u[f-1],u[f]];case 266:return["for-in",u[f-3],u[f-1],null,null,u[f]];case 267:return["for-in",u[f-5],u[f-3],null,u[f-1],u[f]];case 268:return["for-in",u[f-5],u[f-3],u[f-1],null,u[f]];case 269:return["for-in",u[f-7],u[f-5],u[f-1],u[f-3],u[f]];case 270:return["for-in",u[f-7],u[f-5],u[f-3],u[f-1],u[f]];case 271:return["for-of",u[f-3],u[f-1],!1,null,u[f]];case 272:return["for-of",u[f-5],u[f-3],!1,u[f-1],u[f]];case 273:return["for-of",u[f-3],u[f-1],!0,null,u[f]];case 274:return["for-of",u[f-5],u[f-3],!0,u[f-1],u[f]];case 275:return["for-as",u[f-3],u[f-1],!1,null,u[f]];case 276:return["for-as",u[f-5],u[f-3],!1,u[f-1],u[f]];case 277:case 279:return["for-as",u[f-3],u[f-1],!0,null,u[f]];case 278:case 280:return["for-as",u[f-5],u[f-3],!0,u[f-1],u[f]];case 281:return["for-in",[],u[f-1],null,null,u[f]];case 282:return["for-in",[],u[f-3],u[f-1],null,u[f]];case 283:return["comprehension",u[f-4],[["for-in",u[f-2],u[f],null]],[]];case 284:return["comprehension",u[f-6],[["for-in",u[f-4],u[f-2],null]],[u[f]]];case 285:return["comprehension",u[f-6],[["for-in",u[f-4],u[f-2],u[f]]],[]];case 286:return["comprehension",u[f-8],[["for-in",u[f-6],u[f-4],u[f]]],[u[f-2]]];case 287:return["comprehension",u[f-8],[["for-in",u[f-6],u[f-4],u[f-2]]],[u[f]]];case 288:return["comprehension",u[f-4],[["for-of",u[f-2],u[f],!1]],[]];case 289:return["comprehension",u[f-6],[["for-of",u[f-4],u[f-2],!1]],[u[f]]];case 290:return["comprehension",u[f-5],[["for-of",u[f-2],u[f],!0]],[]];case 291:return["comprehension",u[f-7],[["for-of",u[f-4],u[f-2],!0]],[u[f]]];case 292:return["comprehension",u[f-4],[["for-as",u[f-2],u[f],!1,null]],[]];case 293:return["comprehension",u[f-6],[["for-as",u[f-4],u[f-2],!1,null]],[u[f]]];case 294:return["comprehension",u[f-5],[["for-as",u[f-2],u[f],!0,null]],[]];case 295:return["comprehension",u[f-7],[["for-as",u[f-4],u[f-2],!0,null]],[u[f]]];case 296:return["comprehension",u[f-4],[["for-as",u[f-2],u[f],!0,null]],[]];case 297:return["comprehension",u[f-6],[["for-as",u[f-4],u[f-2],!0,null]],[u[f]]];case 298:return["comprehension",u[f-2],[["for-in",[],u[f],null]],[]];case 299:return["comprehension",u[f-4],[["for-in",[],u[f-2],u[f]]],[]];case 303:case 334:case 336:case 363:case 364:case 366:return[u[f-2],u[f]];case 304:return["class",null,null];case 305:return["class",null,null,u[f]];case 306:return["class",null,u[f]];case 307:return["class",null,u[f-1],u[f]];case 308:return["class",u[f],null];case 309:return["class",u[f-1],null,u[f]];case 310:return["class",u[f-2],u[f]];case 311:return["class",u[f-3],u[f-1],u[f]];case 312:return["enum",u[f-1],u[f]];case 313:return["component",null,["block",...u[f-1]]];case 320:return["render",u[f]];case 321:case 324:return["import","{}",u[f]];case 322:case 323:return["import",u[f-2],u[f]];case 325:return["import",u[f-4],u[f]];case 326:return["import",[u[f-4],u[f-2]],u[f]];case 327:return["import",[u[f-7],u[f-4]],u[f]];case 338:return["*",u[f]];case 339:return["export","{}"];case 340:return["export",u[f-2]];case 341:case 342:case 343:case 344:case 348:case 349:case 350:case 351:return["export",u[f]];case 345:return["export",["=",u[f-2],u[f]]];case 346:return["export",["=",u[f-3],u[f]]];case 347:return["export",["=",u[f-4],u[f-1]]];case 352:return["export-default",u[f]];case 353:return["export-default",u[f-1]];case 354:return["export-all",u[f]];case 355:return["export-from","{}",u[f]];case 356:return["export-from",u[f-4],u[f]];case 368:case 369:case 371:case 407:return["do-iife",u[f]];case 373:return["-",u[f]];case 374:return["+",u[f]];case 375:return["?",u[f-1]];case 376:return["await",u[f]];case 377:return["await",u[f-1]];case 378:return["--",u[f],!1];case 379:return["++",u[f],!1];case 380:return["--",u[f-1],!0];case 381:return["++",u[f-1],!0];case 382:return["+",u[f-2],u[f]];case 383:return["-",u[f-2],u[f]];case 385:return["**",u[f-2],u[f]];case 388:return["&",u[f-2],u[f]];case 389:return["^",u[f-2],u[f]];case 390:return["|",u[f-2],u[f]];case 391:case 392:case 393:case 394:case 395:case 396:return["control",u[f-1],u[f-2],u[f]];case 397:return["&&",u[f-2],u[f]];case 398:return["||",u[f-2],u[f]];case 399:return["??",u[f-2],u[f]];case 400:return["!?",u[f-2],u[f]];case 401:return["|>",u[f-2],u[f]];case 403:return["?:",u[f-4],u[f-2],u[f]];case 405:return[u[f-3],u[f-4],u[f-1]];case 406:return[u[f-2],u[f-3],u[f]]}},parseError($,U){let W,A,u,f,Y,F,R;if(U.recoverable)return this.trace($);else throw u=(U.line||0)+1,W=U.loc?.c||0,R=U.token?` (token: ${U.token})`:"",F=U.text?` near '${U.text}'`:"",f=`line ${u}, column ${W}`,Y=`Parse error at ${f}${R}${F}: ${$}`,A=Error(Y),A.hash=U,A},parse($){let U,W,A,u,f,Y,F,R,J,_,Q,M,Z,K,X,w,D,O,q,P,G,H,z,E,B,I;[P,I,_]=[[0],[null],[]],[Z,B,z,H,w]=[this.parseTable,"",0,0,0],[W,U]=[2,1],R=Object.create(this.lexer),O={ctx:{}};for(let N in this.ctx){if(!Object.hasOwn(this.ctx,N))continue;let T=this.ctx[N];O.ctx[N]=T}if(R.setInput($,O.ctx),[O.ctx.lexer,O.ctx.parser]=[R,this],R.loc==null)R.loc={};E=R.loc,_.push(E),this.parseError=typeof O.ctx.parseError==="function"?O.ctx.parseError:Object.getPrototypeOf(this).parseError,F=()=>{let N;if(N=R.lex()||U,typeof N!=="number")N=this.symbolIds[N]||N;return N},G=K=q=A=X=M=Y=Q=f=null,D={};while(!0){if(q=P[P.length-1],G==null)G=F();if(A=Z[q]?.[G],A==null){if(u="",!w)f=(()=>{let N=[];for(let T in Z[q]){if(!Object.hasOwn(Z[q],T))continue;if(this.tokenNames[T]&&T>W)N.push(`'${this.tokenNames[T]}'`)}return N})();throw u=(()=>{if(R.showPosition)return`Parse error on line ${z+1}:
|
|
12
|
+
${R.showPosition()}
|
|
13
|
+
Expecting ${f.join(", ")}, got '${this.tokenNames[G]||G}'`;else return`Parse error on line ${z+1}: Unexpected ${G===U?"end of input":`'${this.tokenNames[G]||G}'`}`,this.parseError(u,{text:R.match,token:this.tokenNames[G]||G,line:R.line,loc:E,expected:f})})(),Error(u)}if(A>0)if(P.push(G,A),I.push(R.text),_.push(R.loc),G=null,!K){if([H,B,z,E]=[R.len,R.text,R.line,R.loc],w>0)w--}else[G,K]=[K,null];else if(A<0){if(Y=this.ruleTable[-A*2+1],D.$=I[I.length-Y],J=_[_.length-(Y||1)],D._$={r:J.r,c:J.c},X=this.ruleActions.call(D,-A,I,_,O.ctx),X!=null)D.$=X;if(Array.isArray(D.$))D.$.loc=D._$;if(Y)P.length-=Y*2,I.length-=Y,_.length-=Y;P.push(this.ruleTable[-A*2]),I.push(D.$),_.push(D._$),Q=Z[P[P.length-2]][P[P.length-1]],P.push(Q)}else if(A===0)return I[I.length-1]}},trace(){},ctx:{}},q3=($={})=>{let U=Object.create(O3);return Object.defineProperty(U,"ctx",{value:{...$},enumerable:!1,writable:!0,configurable:!0}),U},o=q3();var m3=o.parse.bind(o);var G3=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"]),E3=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"]),T1=new Set([...G3,...E3]);var F2="__bind_",R2="__",_2=new Set(["beforeMount","mounted","updated","beforeUnmount","unmounted"]);function I3($){for(let U of $){if(!Array.isArray(U))continue;let W=U[0]instanceof String?U[0].valueOf():U[0],A=U[1]instanceof String?U[1].valueOf():U[1];if(W==="type"&&typeof A==="string")return A.replace(/^["']|["']$/g,"")}return null}function Q1($){if(typeof $==="string")return $;if(Array.isArray($)&&$[0]==="."&&$[1]==="this"&&typeof $[2]==="string")return $[2];return null}function Z2($,U){U.prototype.rewriteRender=function(){let A=(M,Z,K)=>{let X=[M,Z];if(X.pre=0,X.data=null,X.loc=K?.loc??{r:0,c:0,n:0},X.spaced=!1,X.newLine=!1,X.generated=!0,K)X.origin=K;return X},u=!1,f=0,Y=0,F=[],R=(M)=>{let Z=M.split("#")[0];return T1.has(Z)},J=(M)=>{if(!M||typeof M!=="string")return!1;return/^[A-Z]/.test(M)},_=(M)=>{return R(M)||J(M)},Q=(M,Z)=>{let K=Z;while(K>0){let X=M[K-1][0];if(X==="TERMINATOR"||X==="RENDER")break;if(X==="INDENT"||X==="OUTDENT"){let w=M[K][0];if(w==="CALL_END"||w===")"){let D=w==="CALL_END"?"CALL_START":"(",O=1,q=K-1;while(q>=0&&O>0){let P=M[q][0];if(P===w)O++;else if(P===D)O--;if(O>0)q--}K=q;continue}break}if(X==="CALL_END"||X===")"){let w=X==="CALL_END"?"CALL_START":"(",D=1,O=K-2;while(O>=0&&D>0){let q=M[O][0];if(q==="CALL_END"||q===")")D++;else if(q==="CALL_START"||q==="(")D--;if(D>0)O--}K=O;continue}K--}return M[K]&&M[K][0]==="IDENTIFIER"&&_(M[K][1])};this.scanTokens(function(M,Z,K){let X=M[0],w=Z<K.length-1?K[Z+1]:null;if(X==="RENDER")return u=!0,f=Y+1,1;if(X==="INDENT")return Y++,1;if(X==="OUTDENT"){Y--;let D=0;while(F.length>0&&F[F.length-1]>Y){let O=A("CALL_END",")",M);K.splice(Z+1+D,0,O),F.pop(),D++}if(u&&Y<f)u=!1;return 1+D}if(!u)return 1;if(X==="IDENTIFIER"&&!M.spaced){let D=[M[1]],O=Z+1;while(O+1<K.length){let q=K[O],P=K[O+1];if(q[0]==="-"&&!q.spaced&&(P[0]==="IDENTIFIER"||P[0]==="PROPERTY")){if(D.push(P[1]),O+=2,P[0]==="PROPERTY")break}else break}if(D.length>1&&O>Z+1&&K[O-1][0]==="PROPERTY")return M[0]="STRING",M[1]=`"${D.join("-")}"`,K.splice(Z+1,O-Z-1),1}if(X==="."){let D=Z>0?K[Z-1]:null,O=D?D[0]:null;if(O==="INDENT"||O==="TERMINATOR"){if(w&&w[0]==="PROPERTY"){let q=A("IDENTIFIER","div",M);return K.splice(Z,0,q),2}}}if(X==="IDENTIFIER"||X==="PROPERTY"){let D=K[Z+1],O=K[Z+2];if(D&&D[0]==="#"&&O&&(O[0]==="PROPERTY"||O[0]==="IDENTIFIER")){if(M[1]=M[1]+"#"+O[1],O.spaced)M.spaced=!0;return K.splice(Z+1,2),1}}if(X==="BIND"){let D=Z>0?K[Z-1]:null,O=K[Z+1];if(D&&(D[0]==="IDENTIFIER"||D[0]==="PROPERTY")&&O&&O[0]==="IDENTIFIER")return D[1]=`__bind_${D[1]}__`,M[0]=":",M[1]=":",1}if(X==="@"){let D=Z+1;if(D<K.length&&K[D][0]==="PROPERTY"){D++;while(D+1<K.length&&K[D][0]==="."&&K[D+1][0]==="PROPERTY")D+=2;if(D>Z+2&&D<K.length&&K[D][0]===":"){let O=A("[","[",M);K.splice(Z,0,O);let q=A("]","]",K[D+1]);return K.splice(D+1,0,q),2}}}if(X==="."&&w&&w[0]==="("){let D=Z>0?K[Z-1]:null,O=D?D[0]:null,q=O==="INDENT"||O==="TERMINATOR",P=A("PROPERTY","__clsx",M);w[0]="CALL_START";let G=1;for(let H=Z+2;H<K.length&&G>0;H++)if(K[H][0]==="("||K[H][0]==="CALL_START")G++;else if(K[H][0]===")"){if(G--,G===0)K[H][0]="CALL_END"}else if(K[H][0]==="CALL_END")G--;if(q){let H=A("IDENTIFIER","div",M);return K.splice(Z,0,H),K.splice(Z+2,0,P),3}else return K.splice(Z+1,0,P),2}if(w&&w[0]==="INDENT"){if(X==="->"||X==="=>"||X==="CALL_START"||X==="(")return 1;let D=!1,O=Z>0?K[Z-1][0]:null,q=O==="IF"||O==="UNLESS"||O==="WHILE"||O==="UNTIL"||O==="WHEN",P=!1;if(X==="CALL_END"){let G=1;for(let H=Z-1;H>=0&&G>0;H--)if(K[H][0]==="CALL_END")G++;else if(K[H][0]==="CALL_START"){if(G--,G===0&&H>0&&K[H-1][0]==="PROPERTY"&&K[H-1][1]==="__clsx")P=!0}}if(P)D=!0;else if(X==="IDENTIFIER"&&_(M[1])&&!q)D=!0;else if(X==="PROPERTY"||X==="STRING"||X==="CALL_END"||X===")")D=Q(K,Z);else if(X==="IDENTIFIER"&&Z>1&&K[Z-1][0]==="..."){if(Q(K,Z)){let G=A(",",",",M),H=A("->","->",M);return H.newLine=!0,K.splice(Z+1,0,G,H),3}}if(D){let G=X==="PROPERTY"&&Z>0&&(K[Z-1][0]==="."||K[Z-1][0]==="#");if(P){let H=A("CALL_START","(",M),z=A("->","->",M);return z.newLine=!0,K.splice(Z+1,0,H,z),F.push(Y+1),3}else if(X==="IDENTIFIER"&&_(M[1])||G){let H=A("CALL_START","(",M),z=A("->","->",M);return z.newLine=!0,K.splice(Z+1,0,H,z),F.push(Y+1),3}else{let H=A(",",",",M),z=A("->","->",M);return z.newLine=!0,K.splice(Z+1,0,H,z),3}}}if(X==="IDENTIFIER"&&J(M[1])&&w&&(w[0]==="OUTDENT"||w[0]==="TERMINATOR"))return K.splice(Z+1,0,A("CALL_START","(",M),A("CALL_END",")",M)),3;return 1})};let W=$.prototype;W.localizeVar=function(A){let u=A.replace(/this\.(_el\d+|_t\d+|_anchor\d+|_frag\d+|_slot\d+|_c\d+|_inst\d+|_empty\d+)/g,"$1");return u=u.replace(/\bthis\b/g,"ctx"),u},W.isHtmlTag=function(A){let u=A.split("#")[0];return T1.has(u.toLowerCase())},W.isComponent=function(A){if(!A||typeof A!=="string")return!1;return/^[A-Z]/.test(A)},W.collectTemplateClasses=function(A){let u=[],f=A;while(this.is(f,".")){let J=f[2];if(typeof J==="string"||J instanceof String)u.unshift(J.valueOf());f=f[1]}let Y=typeof f==="string"?f:f instanceof String?f.valueOf():"div",[F,R]=Y.split("#");if(!F)F="div";return{tag:F,classes:u,id:R}},W.transformComponentMembers=function(A){if(!Array.isArray(A)){if(typeof A==="string"&&this.reactiveMembers&&this.reactiveMembers.has(A))return[".",[".","this",A],"value"];if(typeof A==="string"&&this.componentMembers&&this.componentMembers.has(A))return[".","this",A];return A}if(A[0]==="."&&A[1]==="this"&&typeof A[2]==="string"){let u=A[2];if(this.reactiveMembers&&this.reactiveMembers.has(u))return[".",A,"value"];return A}if(A[0]===".")return[".",this.transformComponentMembers(A[1]),A[2]];if(A[0]==="->")return["=>",...A.slice(1).map((u)=>this.transformComponentMembers(u))];return A.map((u)=>this.transformComponentMembers(u))},W.generateComponent=function(A,u,f,Y){let[,F]=u;this.usesTemplates=!0,this.usesReactivity=!0;let R=this.is(F,"block")?F.slice(1):[],J=[],_=[],Q=[],M=[],Z=[],K=[],X=null,w=new Set,D=new Set;for(let H of R){if(!Array.isArray(H))continue;let[z]=H;if(z==="state"){let E=Q1(H[1]);if(E)J.push({name:E,value:H[2]}),w.add(E),D.add(E)}else if(z==="computed"){let E=Q1(H[1]);if(E)_.push({name:E,expr:H[2]}),w.add(E),D.add(E)}else if(z==="readonly"){let E=Q1(H[1]);if(E)Q.push({name:E,value:H[2]}),w.add(E)}else if(z==="="){let E=Q1(H[1]);if(E)if(_2.has(E))Z.push({name:E,value:H[2]});else{let B=H[2];if(Array.isArray(B)&&(B[0]==="->"||B[0]==="=>"))M.push({name:E,func:B}),w.add(E);else J.push({name:E,value:B}),w.add(E),D.add(E)}}else if(z==="effect")K.push(H);else if(z==="render")X=H;else if(z==="object")for(let E=1;E<H.length;E++){let B=H[E];if(!Array.isArray(B))continue;let[I,N]=B;if(typeof I==="string"&&_2.has(I))Z.push({name:I,value:N});else if(typeof I==="string")M.push({name:I,func:N}),w.add(I)}}let O=this.componentMembers,q=this.reactiveMembers;this.componentMembers=w,this.reactiveMembers=D;let P=[],G="";P.push("class extends __Component {"),P.push(" _init(props) {");for(let{name:H,value:z}of Q){let E=this.generateInComponent(z,"value");P.push(` this.${H} = props.${H} ?? ${E};`)}for(let{name:H,value:z}of J){let E=this.generateInComponent(z,"value");P.push(` this.${H} = __state(props.${H} ?? ${E});`)}for(let{name:H,expr:z}of _){let E=this.generateInComponent(z,"value");P.push(` this.${H} = __computed(() => ${E});`)}for(let H of K){let z=H[2],E=this.generateInComponent(z,"value");P.push(` __effect(() => { ${E}; });`)}P.push(" }");for(let{name:H,func:z}of M)if(Array.isArray(z)&&(z[0]==="->"||z[0]==="=>")){let[,E,B]=z,I=Array.isArray(E)?E.map((y)=>this.formatParam(y)).join(", "):"",N=this.reactiveMembers?this.transformComponentMembers(B):B,T=this.containsAwait(B),L=this.generateFunctionBody(N,E||[]);P.push(` ${T?"async ":""}${H}(${I}) ${L}`)}for(let{name:H,value:z}of Z)if(Array.isArray(z)&&(z[0]==="->"||z[0]==="=>")){let[,,E]=z,B=this.reactiveMembers?this.transformComponentMembers(E):E,I=this.containsAwait(E),N=this.generateFunctionBody(B,[]);P.push(` ${I?"async ":""}${H}() ${N}`)}if(X){let H=X[1],z=this.buildRender(H);if(z.blockFactories.length>0)G=z.blockFactories.join(`
|
|
14
14
|
|
|
15
15
|
`)+`
|
|
16
16
|
|
|
17
|
-
`;
|
|
18
|
-
${
|
|
17
|
+
`;P.push(" _create() {");for(let E of z.createLines)P.push(` ${E}`);if(P.push(` return ${z.rootVar};`),P.push(" }"),z.setupLines.length>0){P.push(" _setup() {");for(let E of z.setupLines)P.push(` ${E}`);P.push(" }")}}if(P.push("}"),this.componentMembers=O,this.reactiveMembers=q,G)return`(() => {
|
|
18
|
+
${G}return ${P.join(`
|
|
19
19
|
`)};
|
|
20
|
-
})()`;return
|
|
21
|
-
`)},
|
|
22
|
-
`)),
|
|
23
|
-
`))},
|
|
24
|
-
`));let
|
|
25
|
-
`)),
|
|
20
|
+
})()`;return P.join(`
|
|
21
|
+
`)},W.generateInComponent=function(A,u){if(typeof A==="string"&&this.reactiveMembers&&this.reactiveMembers.has(A))return`this.${A}.value`;if(typeof A==="string"&&this.componentMembers&&this.componentMembers.has(A))return`this.${A}`;if(Array.isArray(A)&&this.reactiveMembers){let f=this.transformComponentMembers(A);return this.generate(f,u)}return this.generate(A,u)},W.generateRender=function(A,u,f,Y){throw Error("render blocks can only be used inside a component")},W.buildRender=function(A){this._elementCount=0,this._textCount=0,this._blockCount=0,this._createLines=[],this._setupLines=[],this._blockFactories=[];let u=this.is(A,"block")?A.slice(1):[A],f;if(u.length===0)f="null";else if(u.length===1)f=this.generateNode(u[0]);else{f=this.newElementVar("frag"),this._createLines.push(`${f} = document.createDocumentFragment();`);for(let Y of u){let F=this.generateNode(Y);this._createLines.push(`${f}.appendChild(${F});`)}}return{createLines:this._createLines,setupLines:this._setupLines,blockFactories:this._blockFactories,rootVar:f}},W.newBlockVar=function(){return`create_block_${this._blockCount++}`},W.newElementVar=function(A="el"){return`this._${A}${this._elementCount++}`},W.newTextVar=function(){return`this._t${this._textCount++}`},W.generateNode=function(A){if(typeof A==="string"||A instanceof String){let J=A.valueOf();if(J.startsWith('"')||J.startsWith("'")||J.startsWith("`")){let Z=this.newTextVar();return this._createLines.push(`${Z} = document.createTextNode(${J});`),Z}if(this.reactiveMembers&&this.reactiveMembers.has(J)){let Z=this.newTextVar();return this._createLines.push(`${Z} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${Z}.data = this.${J}.value; });`),Z}let[_,Q]=J.split("#"),M=this.newElementVar();if(this._createLines.push(`${M} = document.createElement('${_||"div"}');`),Q)this._createLines.push(`${M}.id = '${Q}';`);return M}if(!Array.isArray(A)){let J=this.newElementVar("c");return this._createLines.push(`${J} = document.createComment('unknown');`),J}let[u,...f]=A,Y=typeof u==="string"?u:u instanceof String?u.valueOf():null;if(Y&&this.isComponent(Y))return this.generateChildComponent(Y,f);if(Y&&this.isHtmlTag(Y)){let[J,_]=Y.split("#");return this.generateTag(J||"div",[],f,_)}if(Y==="."){let[,J,_]=A;if(J==="this"&&typeof _==="string"){if(this.reactiveMembers&&this.reactiveMembers.has(_)){let D=this.newTextVar();return this._createLines.push(`${D} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${D}.data = this.${_}.value; });`),D}let w=this.newElementVar("slot");return this._createLines.push(`${w} = this.${_} instanceof Node ? this.${_} : (this.${_} != null ? document.createTextNode(String(this.${_})) : document.createComment(''));`),w}let{tag:Q,classes:M,id:Z}=this.collectTemplateClasses(A);if(Q&&this.isHtmlTag(Q))return this.generateTag(Q,M,[],Z);let K=this.newTextVar(),X=this.generateInComponent(A,"value");return this._createLines.push(`${K} = document.createTextNode(String(${X}));`),K}if(Array.isArray(u)){if(Array.isArray(u[0])&&u[0][0]==="."&&(u[0][2]==="__clsx"||u[0][2]instanceof String&&u[0][2].valueOf()==="__clsx")){let M=typeof u[0][1]==="string"?u[0][1]:u[0][1].valueOf(),Z=u.slice(1);return this.generateDynamicTag(M,Z,f)}let{tag:J,classes:_,id:Q}=this.collectTemplateClasses(u);if(J&&this.isHtmlTag(J)){if(_.length===1&&_[0]==="__clsx")return this.generateDynamicTag(J,f,[]);return this.generateTag(J,_,f,Q)}}if(Y==="->"||Y==="=>")return this.generateTemplateBlock(f[1]);if(Y==="if")return this.generateConditional(A);if(Y==="for"||Y==="for-in"||Y==="for-of"||Y==="for-as")return this.generateTemplateLoop(A);let F=this.newTextVar(),R=this.generateInComponent(A,"value");if(this.hasReactiveDeps(A))this._createLines.push(`${F} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${F}.data = ${R}; });`);else this._createLines.push(`${F} = document.createTextNode(String(${R}));`);return F},W.appendChildren=function(A,u){for(let f of u)if(this.is(f,"->")||this.is(f,"=>")){let Y=f[2];if(this.is(Y,"block"))for(let F of Y.slice(1)){let R=this.generateNode(F);this._createLines.push(`${A}.appendChild(${R});`)}else if(Y){let F=this.generateNode(Y);this._createLines.push(`${A}.appendChild(${F});`)}}else if(this.is(f,"object"))this.generateAttributes(A,f);else if(typeof f==="string"||f instanceof String){let Y=this.newTextVar(),F=f.valueOf();if(F.startsWith('"')||F.startsWith("'")||F.startsWith("`"))this._createLines.push(`${Y} = document.createTextNode(${F});`);else if(this.reactiveMembers&&this.reactiveMembers.has(F))this._createLines.push(`${Y} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${Y}.data = this.${F}.value; });`);else if(this.componentMembers&&this.componentMembers.has(F))this._createLines.push(`${Y} = document.createTextNode(String(this.${F}));`);else this._createLines.push(`${Y} = document.createTextNode(${this.generateInComponent(f,"value")});`);this._createLines.push(`${A}.appendChild(${Y});`)}else if(f){let Y=this.generateNode(f);this._createLines.push(`${A}.appendChild(${Y});`)}},W.generateTag=function(A,u,f,Y){let F=this.newElementVar();if(this._createLines.push(`${F} = document.createElement('${A}');`),Y)this._createLines.push(`${F}.id = '${Y}';`);if(u.length>0)this._createLines.push(`${F}.className = '${u.join(" ")}';`);return this.appendChildren(F,f),F},W.generateDynamicTag=function(A,u,f){let Y=this.newElementVar();if(this._createLines.push(`${Y} = document.createElement('${A}');`),u.length>0){let F=u.map((R)=>this.generateInComponent(R,"value")).join(", ");this._setupLines.push(`__effect(() => { ${Y}.className = __clsx(${F}); });`)}return this.appendChildren(Y,f),Y},W.generateAttributes=function(A,u){let f=I3(u.slice(1));for(let Y=1;Y<u.length;Y++){let[F,R]=u[Y];if(this.is(F,".")&&F[1]==="this"){let J=F[2];if(typeof R==="string"&&this.componentMembers?.has(R))this._createLines.push(`${A}.addEventListener('${J}', (e) => this.${R}(e));`);else{let _=this.generateInComponent(R,"value");this._createLines.push(`${A}.addEventListener('${J}', (e) => (${_})(e));`)}continue}if(typeof F==="string"){if(F.startsWith('"')&&F.endsWith('"'))F=F.slice(1,-1);if(F==="ref"){let _=String(R).replace(/^["']|["']$/g,"");this._createLines.push(`this.${_} = ${A};`);continue}if(F.startsWith(F2)&&F.endsWith(R2)){let _=F.slice(F2.length,-R2.length),Q=this.generateInComponent(R,"value"),M,Z;if(_==="checked")M="change",Z="e.target.checked";else M="input",Z=f==="number"||f==="range"?"e.target.valueAsNumber":"e.target.value";this._setupLines.push(`__effect(() => { ${A}.${_} = ${Q}; });`),this._createLines.push(`${A}.addEventListener('${M}', (e) => ${Q} = ${Z});`);continue}let J=this.generateInComponent(R,"value");if((F==="value"||F==="checked")&&this.hasReactiveDeps(R)){this._setupLines.push(`__effect(() => { ${A}.${F} = ${J}; });`);let _=F==="checked"?"change":"input",Q=F==="checked"?"e.target.checked":f==="number"||f==="range"?"e.target.valueAsNumber":"e.target.value";this._createLines.push(`${A}.addEventListener('${_}', (e) => { ${J} = ${Q}; });`);continue}if(this.hasReactiveDeps(R))this._setupLines.push(`__effect(() => { ${A}.setAttribute('${F}', ${J}); });`);else this._createLines.push(`${A}.setAttribute('${F}', ${J});`)}}},W.generateTemplateBlock=function(A){if(!Array.isArray(A)||A[0]!=="block")return this.generateNode(A);let u=A.slice(1);if(u.length===0){let Y=this.newElementVar("empty");return this._createLines.push(`${Y} = document.createComment('');`),Y}if(u.length===1)return this.generateNode(u[0]);let f=this.newElementVar("frag");this._createLines.push(`${f} = document.createDocumentFragment();`);for(let Y of u){let F=this.generateNode(Y);this._createLines.push(`${f}.appendChild(${F});`)}return f},W.generateConditional=function(A){let[,u,f,Y]=A,F=this.newElementVar("anchor");this._createLines.push(`${F} = document.createComment('if');`);let R=this.generateInComponent(u,"value"),J=this.newBlockVar();this.generateConditionBranch(J,f);let _=null;if(Y)_=this.newBlockVar(),this.generateConditionBranch(_,Y);let Q=[];if(Q.push(`// Conditional: ${J}${_?" / "+_:""}`),Q.push("{"),Q.push(` const anchor = ${F};`),Q.push(" let currentBlock = null;"),Q.push(" let showing = null;"),Q.push(" __effect(() => {"),Q.push(` const show = !!(${R});`),Q.push(` const want = show ? 'then' : ${Y?"'else'":"null"};`),Q.push(" if (want === showing) return;"),Q.push(""),Q.push(" if (currentBlock) {"),Q.push(" currentBlock.d(true);"),Q.push(" currentBlock = null;"),Q.push(" }"),Q.push(" showing = want;"),Q.push(""),Q.push(" if (want === 'then') {"),Q.push(` currentBlock = ${J}(this);`),Q.push(" currentBlock.c();"),Q.push(" currentBlock.m(anchor.parentNode, anchor.nextSibling);"),Q.push(" currentBlock.p(this);"),Q.push(" }"),Y)Q.push(" if (want === 'else') {"),Q.push(` currentBlock = ${_}(this);`),Q.push(" currentBlock.c();"),Q.push(" currentBlock.m(anchor.parentNode, anchor.nextSibling);"),Q.push(" currentBlock.p(this);"),Q.push(" }");return Q.push(" });"),Q.push("}"),this._setupLines.push(Q.join(`
|
|
22
|
+
`)),F},W.generateConditionBranch=function(A,u){let f=this._createLines,Y=this._setupLines;this._createLines=[],this._setupLines=[];let F=this.generateTemplateBlock(u),R=this._createLines,J=this._setupLines;this._createLines=f,this._setupLines=Y;let _=(K)=>this.localizeVar(K),Q=[];Q.push(`function ${A}(ctx) {`);let M=new Set;for(let K of R){let X=K.match(/^this\.(_(?:el|t|anchor|frag|slot|c|inst|empty)\d+)\s*=/);if(X)M.add(X[1])}if(M.size>0)Q.push(` let ${[...M].join(", ")};`);let Z=J.length>0;if(Z)Q.push(" let disposers = [];");Q.push(" return {"),Q.push(" c() {");for(let K of R)Q.push(` ${_(K)}`);if(Q.push(" },"),Q.push(" m(target, anchor) {"),Q.push(` target.insertBefore(${_(F)}, anchor);`),Q.push(" },"),Q.push(" p(ctx) {"),Z){Q.push(" disposers.forEach(d => d());"),Q.push(" disposers = [];");for(let K of J){let w=_(K).replace(/__effect\(\(\) => \{/g,"disposers.push(__effect(() => {").replace(/\}\);$/gm,"}));");Q.push(` ${w}`)}}if(Q.push(" },"),Q.push(" d(detaching) {"),Z)Q.push(" disposers.forEach(d => d());");Q.push(` if (detaching) ${_(F)}.remove();`),Q.push(" }"),Q.push(" };"),Q.push("}"),this._blockFactories.push(Q.join(`
|
|
23
|
+
`))},W.generateTemplateLoop=function(A){let[u,f,Y,F,R,J]=A,_=this.newBlockVar(),Q=this.newElementVar("anchor");this._createLines.push(`${Q} = document.createComment('for');`);let M=Array.isArray(f)?f:[f],Z=M[0],K=M[1]||"i",X=this.generateInComponent(Y,"value"),w=Z;if(this.is(J,"block")&&J.length>1){let N=J[1];if(Array.isArray(N))for(let T of N){if(this.is(T,"object"))for(let L=1;L<T.length;L++){let[y,m]=T[L];if(y==="key"){w=this.generate(m,"value");break}}if(w!==Z)break}}let D=this._createLines,O=this._setupLines;this._createLines=[],this._setupLines=[];let q=this.generateTemplateBlock(J),P=this._createLines,G=this._setupLines;this._createLines=D,this._setupLines=O;let H=(N)=>this.localizeVar(N),z=[];z.push(`function ${_}(ctx, ${Z}, ${K}) {`);let E=new Set;for(let N of P){let T=N.match(/^this\.(_(?:el|t|anchor|frag|slot|c|inst|empty)\d+)\s*=/);if(T)E.add(T[1])}if(E.size>0)z.push(` let ${[...E].join(", ")};`);let B=G.length>0;if(B)z.push(" let disposers = [];");z.push(" return {"),z.push(" c() {");for(let N of P)z.push(` ${H(N)}`);if(z.push(" },"),z.push(" m(target, anchor) {"),z.push(` target.insertBefore(${H(q)}, anchor);`),z.push(" },"),z.push(` p(ctx, ${Z}, ${K}) {`),B){z.push(" disposers.forEach(d => d());"),z.push(" disposers = [];");for(let N of G){let L=H(N).replace(/__effect\(\(\) => \{/g,"disposers.push(__effect(() => {").replace(/\}\);$/gm,"}));");z.push(` ${L}`)}}if(z.push(" },"),z.push(" d(detaching) {"),B)z.push(" disposers.forEach(d => d());");z.push(` if (detaching) ${H(q)}.remove();`),z.push(" }"),z.push(" };"),z.push("}"),this._blockFactories.push(z.join(`
|
|
24
|
+
`));let I=[];return I.push(`// Loop: ${_}`),I.push("{"),I.push(` const anchor = ${Q};`),I.push(" const map = new Map();"),I.push(" __effect(() => {"),I.push(` const items = ${X};`),I.push(" const parent = anchor.parentNode;"),I.push(" const newMap = new Map();"),I.push(""),I.push(` for (let ${K} = 0; ${K} < items.length; ${K}++) {`),I.push(` const ${Z} = items[${K}];`),I.push(` const key = ${w};`),I.push(" let block = map.get(key);"),I.push(" if (block) {"),I.push(` block.p(this, ${Z}, ${K});`),I.push(" } else {"),I.push(` block = ${_}(this, ${Z}, ${K});`),I.push(" block.c();"),I.push(" block.m(parent, anchor);"),I.push(` block.p(this, ${Z}, ${K});`),I.push(" }"),I.push(" newMap.set(key, block);"),I.push(" }"),I.push(""),I.push(" for (const [key, block] of map) {"),I.push(" if (!newMap.has(key)) block.d(true);"),I.push(" }"),I.push(""),I.push(" map.clear();"),I.push(" for (const [k, v] of newMap) map.set(k, v);"),I.push(" });"),I.push("}"),this._setupLines.push(I.join(`
|
|
25
|
+
`)),Q},W.generateChildComponent=function(A,u){let f=this.newElementVar("inst"),Y=this.newElementVar("el"),{propsCode:F,childrenSetupLines:R}=this.buildComponentProps(u);this._createLines.push(`${f} = new ${A}(${F});`),this._createLines.push(`${Y} = ${f}._create();`),this._createLines.push(`(this._children || (this._children = [])).push(${f});`),this._setupLines.push(`if (${f}._setup) ${f}._setup();`);for(let J of R)this._setupLines.push(J);return Y},W.buildComponentProps=function(A){let u=[],f=null,Y=[];for(let R of A)if(this.is(R,"object"))for(let J=1;J<R.length;J++){let[_,Q]=R[J];if(typeof _==="string"){let M=this.reactiveMembers;this.reactiveMembers=new Set;let Z=this.generateInComponent(Q,"value");this.reactiveMembers=M,u.push(`${_}: ${Z}`)}}else if(Array.isArray(R)&&(R[0]==="->"||R[0]==="=>")){let J=R[2];if(J){let _=this._createLines,Q=this._setupLines;this._createLines=[],this._setupLines=[],f=this.generateTemplateBlock(J);let M=this._createLines,Z=this._setupLines;this._createLines=_,this._setupLines=Q;for(let K of M)this._createLines.push(K);Y.push(...Z),u.push(`children: ${f}`)}}return{propsCode:u.length>0?`{ ${u.join(", ")} }`:"{}",childrenSetupLines:Y}},W.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 u of A)if(this.hasReactiveDeps(u))return!0;return!1},W._rootsAtThis=function(A){if(typeof A==="string")return A==="this";if(!Array.isArray(A)||A[0]!==".")return!1;return this._rootsAtThis(A[1])},W.getComponentRuntime=function(){return`
|
|
26
26
|
// ============================================================================
|
|
27
27
|
// Rip Component Runtime
|
|
28
28
|
// ============================================================================
|
|
@@ -103,24 +103,24 @@ if (typeof globalThis !== 'undefined') {
|
|
|
103
103
|
globalThis.__ripComponent = { __pushComponent, __popComponent, setContext, getContext, hasContext, __clsx, __Component };
|
|
104
104
|
}
|
|
105
105
|
|
|
106
|
-
`}}function
|
|
107
|
-
`)>=0){let
|
|
108
|
-
`).map((
|
|
109
|
-
`)}let
|
|
110
|
-
`))return" ".repeat(U)+
|
|
106
|
+
`}}function s($){let U="",W=$<0?-$<<1|1:$<<1;do{let A=W&31;if(W>>>=5,W>0)A|=32;U+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[A]}while(W>0);return U}class S1{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,A,u){if(this.ensureLine($),this.currentLine!==$)this.prevGenCol=0,this.currentLine=$;if(W==null){this.lines[$].push(s(U-this.prevGenCol)),this.prevGenCol=U;return}this.mappings.push({genLine:$,genCol:U,origLine:W,origCol:A});let f=s(U-this.prevGenCol);if(this.prevGenCol=U,f+=s(0),f+=s(W-this.prevOrigLine),this.prevOrigLine=W,f+=s(A-this.prevOrigCol),this.prevOrigCol=A,u!=null){let Y=this.addName(u);f+=s(Y-this.prevNameIdx),this.prevNameIdx=Y}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 V=($,U)=>$ instanceof String?$[U]:void 0,S=($)=>$ instanceof String?$.valueOf():$,B3=new Set(["+","-","*","/","%","//","%%","**","==","!=","<",">","<=",">=","===","!==","&&","||","??","!?","not","&","|","^","<<",">>",">>>","=",".","?.","[]","!","typeof","void","delete","new","...","rest","expansion","optindex","optcall"]);function K1($){if(!Array.isArray($)||$.length===0)return!1;let U=$[0]?.valueOf?.()??$[0];if(B3.has(U))return!0;return $.length<=4&&!$.some(Array.isArray)}function $1($){if(Array.isArray($))return"(???)";if(typeof $==="number")return String($);if($===null)return"null";if($==="")return'""';let U=String($);if(U[0]==="/"&&U.indexOf(`
|
|
107
|
+
`)>=0){let W=U.match(/\/([gimsuvy]*)$/),A=W?W[1]:"",u=U.slice(1);return u=A?u.slice(0,-A.length-1):u.slice(0,-1),`"/${u.split(`
|
|
108
|
+
`).map((F)=>F.replace(/#.*$/,"").trim()).join("")}/${A}"`}return U}function l($,U=0,W=!1){if(!Array.isArray($))return $1($);if(W&&$[0]==="program"){let J=$[1],Q=[Array.isArray(J)?"(program":"(program "+$1(J)],M=Array.isArray(J)?1:2;for(let Z=M;Z<$.length;Z++){let K=l($[Z],2,!1);Q.push(K[0]==="("?" "+K:K)}return Q.push(")"),Q.join(`
|
|
109
|
+
`)}let A=$[0];if(K1($)&&$.slice(1).every((J)=>!Array.isArray(J)||K1(J))){let _=`(${$.map((Q)=>Array.isArray(Q)?l(Q,0,!1):$1(Q)).join(" ")})`;if(!_.includes(`
|
|
110
|
+
`))return" ".repeat(U)+_}let f=" ".repeat(U),Y;if(Array.isArray(A)){if(Y=l(A,0,!1),Y.includes(`
|
|
111
111
|
`))Y=Y.split(`
|
|
112
|
-
`).map((
|
|
113
|
-
`)}else Y=$1(
|
|
114
|
-
`)){
|
|
115
|
-
`)}class
|
|
116
|
-
`),f=0;for(let Y=0;Y<u.length;Y++){let
|
|
117
|
-
`))return`\`${Y.replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}\``;let
|
|
118
|
-
`),
|
|
119
|
-
`),
|
|
120
|
-
`;u+=`let ${
|
|
121
|
-
`,
|
|
122
|
-
`,
|
|
123
|
-
`,
|
|
112
|
+
`).map((_,Q)=>Q===0?_:" ".repeat(U+2)+_).join(`
|
|
113
|
+
`)}else Y=$1(A);let F=[`${f}(${Y}`],R=A==="block";for(let J=1;J<$.length;J++){let _=$[J];if(!Array.isArray(_))F[F.length-1]+=" "+$1(_);else{let Q=K1(_)&&_.every((M)=>!Array.isArray(M)||K1(M));if(!R&&Q){let M=l(_,0,!1);if(!M.includes(`
|
|
114
|
+
`)){F[F.length-1]+=" "+M;continue}}F.push(l(_,U+2,!1))}}return F[F.length-1]+=")",F.join(`
|
|
115
|
+
`)}class C{static ASSIGNMENT_OPS=new Set(["=","+=","-=","*=","/=","?=","&=","|=","^=","%=","**=","??=","&&=","||=","<<=",">>=",">>>="]);static NUMBER_LITERAL_RE=/^-?\d+(\.\d+)?([eE][+-]?\d+)?$/;static NUMBER_START_RE=/^-?\d/;static GENERATORS={program:"generateProgram","&&":"generateLogicalAnd","||":"generateLogicalOr","+":"generateBinaryOp","-":"generateBinaryOp","*":"generateBinaryOp","/":"generateBinaryOp","%":"generateBinaryOp","**":"generateBinaryOp","==":"generateBinaryOp","===":"generateBinaryOp","!=":"generateBinaryOp","!==":"generateBinaryOp","<":"generateBinaryOp",">":"generateBinaryOp","<=":"generateBinaryOp",">=":"generateBinaryOp","??":"generateBinaryOp","!?":"generateBinaryOp","&":"generateBinaryOp","|":"generateBinaryOp","^":"generateBinaryOp","<<":"generateBinaryOp",">>":"generateBinaryOp",">>>":"generateBinaryOp","%%":"generateModulo","%%=":"generateModuloAssign","//":"generateFloorDiv","//=":"generateFloorDivAssign","..":"generateRange","=":"generateAssignment","+=":"generateAssignment","-=":"generateAssignment","*=":"generateAssignment","/=":"generateAssignment","%=":"generateAssignment","**=":"generateAssignment","&&=":"generateAssignment","||=":"generateAssignment","??=":"generateAssignment","?=":"generateAssignment","&=":"generateAssignment","|=":"generateAssignment","^=":"generateAssignment","<<=":"generateAssignment",">>=":"generateAssignment",">>>=":"generateAssignment","...":"generateRange","!":"generateNot","~":"generateBitwiseNot","++":"generateIncDec","--":"generateIncDec","=~":"generateRegexMatch",instanceof:"generateInstanceof",in:"generateIn",of:"generateOf",typeof:"generateTypeof",delete:"generateDelete",new:"generateNew",array:"generateArray",object:"generateObject",block:"generateBlock",".":"generatePropertyAccess","?.":"generateOptionalProperty","[]":"generateIndexAccess",optindex:"generateOptIndex",optcall:"generateOptCall","regex-index":"generateRegexIndex",def:"generateDef","->":"generateThinArrow","=>":"generateFatArrow",return:"generateReturn",state:"generateState",computed:"generateComputed",readonly:"generateReadonly",effect:"generateEffect",break:"generateBreak",continue:"generateContinue","?":"generateExistential","?:":"generateTernary","|>":"generatePipe",loop:"generateLoop","loop-n":"generateLoopN",await:"generateAwait",yield:"generateYield","yield-from":"generateYieldFrom",if:"generateIf","for-in":"generateForIn","for-of":"generateForOf","for-as":"generateForAs",while:"generateWhile",try:"generateTry",throw:"generateThrow",control:"generateControl",switch:"generateSwitch",when:"generateWhen",comprehension:"generateComprehension","object-comprehension":"generateObjectComprehension",class:"generateClass",super:"generateSuper",component:"generateComponent",render:"generateRender",enum:"generateEnum",import:"generateImport",export:"generateExport","export-default":"generateExportDefault","export-all":"generateExportAll","export-from":"generateExportFrom","do-iife":"generateDoIIFE",regex:"generateRegex","tagged-template":"generateTaggedTemplate",str:"generateString"};constructor($={}){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(U,$);return U}buildMappings($,U){if(!U||U[0]!=="program")return;let W=[],A=(Y)=>{if(!Array.isArray(Y))return;let F=Y[0];if(F==="program"||F==="block")for(let R=1;R<Y.length;R++){let J=Y[R];if(Array.isArray(J)&&J.loc)W.push(J.loc);A(J)}else for(let R=1;R<Y.length;R++)A(Y[R])};A(U);let u=$.split(`
|
|
116
|
+
`),f=0;for(let Y=0;Y<u.length;Y++){let F=u[Y],R=F.trim();if(!R||R==="}"||R==="});")continue;if(R.startsWith("let ")||R.startsWith("var "))continue;if(R.startsWith("const slice")||R.startsWith("const modulo")||R.startsWith("const toMatchable"))continue;if(R.startsWith("const {")&&R.includes("__"))continue;if(R.startsWith("} else"))continue;if(R.startsWith("//# source"))continue;if(f<W.length){let J=F.length-R.length;this.sourceMap.addMapping(Y,J,W[f].r,W[f].c),f++}}}collectProgramVariables($){if(!Array.isArray($))return;let[U,...W]=$;if(U=S(U),Array.isArray(U)){$.forEach((A)=>this.collectProgramVariables(A));return}if(U==="export"||U==="export-default"||U==="export-all"||U==="export-from")return;if(U==="state"||U==="computed"){let[A]=W,u=S(A)??A;if(!this.reactiveVars)this.reactiveVars=new Set;this.reactiveVars.add(u);return}if(U==="readonly")return;if(U==="component")return;if(C.ASSIGNMENT_OPS.has(U)){let[A,u]=W;if(typeof A==="string"||A instanceof String){let f=S(A);if(!this.reactiveVars?.has(f))this.programVars.add(f)}else if(this.is(A,"array"))this.collectVarsFromArray(A,this.programVars);else if(this.is(A,"object"))this.collectVarsFromObject(A,this.programVars);this.collectProgramVariables(u);return}if(U==="def"||U==="->"||U==="=>")return;if(U==="if"){let[A,u,f]=W;if(this.collectProgramVariables(A),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[A,u]=W[1];if(A&&this.is(A,"object"))A.slice(1).forEach((f)=>{if(Array.isArray(f)&&f.length===2&&typeof f[1]==="string")this.programVars.add(f[1])});else if(A&&this.is(A,"array"))A.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((A)=>this.collectProgramVariables(A))}collectFunctionVariables($){let U=new Set,W=(A)=>{if(!Array.isArray(A))return;let[u,...f]=A;if(u=S(u),Array.isArray(u)){A.forEach((Y)=>W(Y));return}if(C.ASSIGNMENT_OPS.has(u)){let[Y,F]=f;if(typeof Y==="string")U.add(Y);else if(this.is(Y,"array"))this.collectVarsFromArray(Y,U);else if(this.is(Y,"object"))this.collectVarsFromObject(Y,U);W(F);return}if(u==="def"||u==="->"||u==="=>")return;if(u==="try"){if(W(f[0]),f.length>=2&&Array.isArray(f[1])&&f[1].length===2&&f[1][0]!=="block"){let[Y,F]=f[1];if(Y&&this.is(Y,"object"))Y.slice(1).forEach((R)=>{if(Array.isArray(R)&&R.length===2&&typeof R[1]==="string")U.add(R[1])});else if(Y&&this.is(Y,"array"))Y.slice(1).forEach((R)=>{if(typeof R==="string")U.add(R)});W(F)}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((Y)=>W(Y))};return W($),U}generate($,U="statement"){if($ instanceof String){if(V($,"await")===!0)return`await ${S($)}()`;if(V($,"predicate"))return`(${S($)} != null)`;if(V($,"delimiter")==="///"&&V($,"heregex")){let F=S($),R=F.match(/^\/(.*)\/([gimsuvy]*)$/s);if(R){let[,J,_]=R;return`/${this.processHeregex(J)}/${_}`}return F}let Y=V($,"quote");if(Y){let F=S($);if(Y==='"""'||Y==="'''"){let J=this.extractStringContent($);return J=J.replace(/`/g,"\\`").replace(/\${/g,"\\${"),`\`${J}\``}if(F[0]===Y)return F;let R=F.slice(1,-1);return`${Y}${R}${Y}`}$=S($)}if(typeof $==="string"){if($.startsWith('"')||$.startsWith("'")||$.startsWith("`")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive:",$);let Y=$.slice(1,-1);if(Y.includes(`
|
|
117
|
+
`))return`\`${Y.replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}\``;let F=Y.includes("'")&&!Y.includes('"')?'"':"'",R=Y.replace(new RegExp(F,"g"),`\\${F}`);return`${F}${R}${F}`}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,...A]=$,u=V(W,"await");W=S(W);let f=C.GENERATORS[W];if(f)return this[f](W,A,U,$);if(typeof W==="string"&&!W.startsWith('"')&&!W.startsWith("'")){if(C.NUMBER_START_RE.test(W))return W;if(W==="super"&&this.currentMethodName&&this.currentMethodName!=="constructor"){let _=A.map((Q)=>this.unwrap(this.generate(Q,"value"))).join(", ");return`super.${this.currentMethodName}(${_})`}if(U==="statement"&&A.length===1){let _=this.findPostfixConditional(A[0]);if(_){let Q=this.rebuildWithoutConditional(_),M=this.generate(W,"value"),Z=this.generate(_.condition,"value"),K=this.generate(Q,"value"),X=`${M}(${K})`;return`if (${Z}) ${X}`}}let Y=u===!0,F=this.generate(W,"value"),R=A.map((_)=>this.unwrap(this.generate(_,"value"))).join(", "),J=`${F}(${R})`;return Y?`await ${J}`:J}if(Array.isArray(W)&&typeof W[0]==="string"){if(["=","+=","-=","*=","/=","%=","**=","&&=","||=","??=","if","return","throw"].includes(W[0]))return`(${$.map((R)=>this.generate(R,"value")).join(", ")})`}if(Array.isArray(W)){if(W[0]==="."&&(W[2]==="new"||S(W[2])==="new")){let _=W[1],Q=this.generate(_,"value"),M=A.map((K)=>this.unwrap(this.generate(K,"value"))).join(", ");return`new ${Array.isArray(_)?`(${Q})`:Q}(${M})`}if(U==="statement"&&A.length===1){let _=this.findPostfixConditional(A[0]);if(_){let Q=this.rebuildWithoutConditional(_),M=this.generate(W,"value"),Z=this.generate(_.condition,"value"),K=this.generate(Q,"value"),X=`${M}(${K})`;return`if (${Z}) ${X}`}}let Y=!1,F;if(W[0]==="."&&V(W[2],"await")===!0){Y=!0;let[_,Q]=W.slice(1),M=this.generate(_,"value");F=`${C.NUMBER_LITERAL_RE.test(M)||(this.is(_,"object")||this.is(_,"await")||this.is(_,"yield"))?`(${M})`:M}.${S(Q)}`}else F=this.generate(W,"value");let R=A.map((_)=>this.unwrap(this.generate(_,"value"))).join(", "),J=`${F}(${R})`;return Y?`await ${J}`:J}throw Error(`Unknown s-expression type: ${W}`)}generateProgram($,U,W,A){let u="",f=[],Y=[],F=[];for(let Z of U){if(!Array.isArray(Z)){F.push(Z);continue}let K=Z[0];if(K==="import")f.push(Z);else if(K==="export"||K==="export-default"||K==="export-all"||K==="export-from")Y.push(Z);else F.push(Z)}let R=["def","class","if","for-in","for-of","for-as","while","loop","switch","try"],J=F.map((Z,K)=>{let X=F.length===1&&f.length===0&&Y.length===0,w=this.is(Z,"object"),D=w&&Z.length===2&&Array.isArray(Z[1])&&Array.isArray(Z[1][1])&&Z[1][1][0]==="comprehension",O=this.is(Z,"comprehension")||this.is(Z,"object-comprehension")||this.is(Z,"do-iife"),q=this.programVars.size===0,P=X&&w&&q&&!O&&!D,H=K===F.length-1&&O,z;if(P)z=`(${this.generate(Z,"value")})`;else if(H)z=this.generate(Z,"value");else z=this.generate(Z,"statement");if(z&&!z.endsWith(";")){let E=Array.isArray(Z)?Z[0]:null;if(!R.includes(E)||!z.endsWith("}"))return z+";"}return z}).join(`
|
|
118
|
+
`),_=!1;if(f.length>0)u+=f.map((Z)=>this.addSemicolon(Z,this.generate(Z,"statement"))).join(`
|
|
119
|
+
`),_=!0;if(this.programVars.size>0){let Z=Array.from(this.programVars).sort().join(", ");if(_)u+=`
|
|
120
|
+
`;u+=`let ${Z};
|
|
121
|
+
`,_=!0}let Q=this.options.skipPreamble;if(!Q){if(this.helpers.has("slice"))u+=`const slice = [].slice;
|
|
122
|
+
`,_=!0;if(this.helpers.has("modulo"))u+=`const modulo = (n, d) => { n = +n; d = +d; return (n % d + d) % d; };
|
|
123
|
+
`,_=!0;if(this.helpers.has("toMatchable"))u+=`const toMatchable = (v, allowNewlines) => {
|
|
124
124
|
`,u+=` if (typeof v === "string") return !allowNewlines && /[\\n\\r]/.test(v) ? null : v;
|
|
125
125
|
`,u+=` if (v == null) return "";
|
|
126
126
|
`,u+=` if (typeof v === "number" || typeof v === "bigint" || typeof v === "boolean") return String(v);
|
|
@@ -134,155 +134,155 @@ if (typeof globalThis !== 'undefined') {
|
|
|
134
134
|
`,u+=` }
|
|
135
135
|
`,u+=` return "";
|
|
136
136
|
`,u+=`};
|
|
137
|
-
`,
|
|
138
|
-
`+Y.map((
|
|
137
|
+
`,_=!0}let M="";if(Y.length>0)M=`
|
|
138
|
+
`+Y.map((Z)=>this.addSemicolon(Z,this.generate(Z,"statement"))).join(`
|
|
139
139
|
`);if(this.usesReactivity&&!Q){if(typeof globalThis<"u"&&globalThis.__rip)u+=`const { __state, __computed, __effect, __batch, __readonly, __setErrorHandler, __handleError, __catchErrors } = globalThis.__rip;
|
|
140
|
-
`;else u+=this.getReactiveRuntime();
|
|
141
|
-
`;else u+=this.getComponentRuntime();
|
|
140
|
+
`;else u+=this.getReactiveRuntime();_=!0}if(this.usesTemplates&&!Q){if(typeof globalThis<"u"&&globalThis.__ripComponent)u+=`const { __pushComponent, __popComponent, setContext, getContext, hasContext, __clsx, __Component } = globalThis.__ripComponent;
|
|
141
|
+
`;else u+=this.getComponentRuntime();_=!0}if(this.dataSection!==null&&this.dataSection!==void 0&&!Q)u+=`var DATA;
|
|
142
142
|
_setDataSection();
|
|
143
|
-
`,
|
|
144
|
-
`;if(u+=
|
|
143
|
+
`,_=!0;if(_&&u.length>0)u+=`
|
|
144
|
+
`;if(u+=J,u+=M,this.dataSection!==null&&this.dataSection!==void 0)u+=`
|
|
145
145
|
|
|
146
146
|
function _setDataSection() {
|
|
147
147
|
DATA = ${JSON.stringify(this.dataSection)};
|
|
148
|
-
}`;return u}generateBinaryOp($,U,A
|
|
149
|
-
${this.withIndent(()=>this.formatStatements(
|
|
148
|
+
}`;return u}generateBinaryOp($,U,W,A){if(($==="+"||$==="-")&&U.length===1)return`(${$}${this.generate(U[0],"value")})`;let[u,f]=U;if($==="*"){let F=u?.valueOf?.()??u;if(typeof F==="string"&&/^["']/.test(F))return`${this.generate(u,"value")}.repeat(${this.generate(f,"value")})`}let Y=new Set(["<",">","<=",">="]);if(Y.has($)&&Array.isArray(u)){let F=u[0]?.valueOf?.()??u[0];if(Y.has(F)){let R=this.generate(u[1],"value"),J=this.generate(u[2],"value"),_=this.generate(f,"value");return`((${R} ${F} ${J}) && (${J} ${$} ${_}))`}}if($==="!?"){let F=this.generate(u,"value"),R=this.generate(f,"value");return`(${F} !== undefined ? ${F} : ${R})`}if($==="==")$="===";if($==="!=")$="!==";return`(${this.generate(u,"value")} ${$} ${this.generate(f,"value")})`}generateModulo($,U){let[W,A]=U;return this.helpers.add("modulo"),`modulo(${this.generate(W,"value")}, ${this.generate(A,"value")})`}generateModuloAssign($,U){let[W,A]=U;this.helpers.add("modulo");let u=this.generate(W,"value"),f=this.generate(A,"value");return`${u} = modulo(${u}, ${f})`}generateFloorDiv($,U){let[W,A]=U;return`Math.floor(${this.generate(W,"value")} / ${this.generate(A,"value")})`}generateFloorDivAssign($,U){let[W,A]=U,u=this.generate(W,"value"),f=this.generate(A,"value");return`${u} = Math.floor(${u} / ${f})`}generateAssignment($,U,W,A){let[u,f]=U,Y=$==="?="?"??=":$,F=this.is(f,"->")||this.is(f,"=>")||this.is(f,"def");if(u instanceof String&&V(u,"await")!==void 0&&!F){let X=V(u,"await")===!0?"!":"&";throw Error(`Cannot use ${X} sigil in variable declaration '${S(u)}'.`)}if(u instanceof String&&V(u,"await")===!0&&F)this.nextFunctionIsVoid=!0;let R=this.is(u,"array",0),J=this.is(u,"object",0);if(R||J){let X=this.generate(f,"value");return J&&W==="statement"?`(${X})`:X}if(Array.isArray(f)&&Y==="="&&f[0]==="control"){let[,X,w,D]=f,O=S(X),q=D[0]==="return",P=this.generate(u,"value"),G=this.generate(w,"value"),H=D.length>1?D[1]:null,z=q?H?`return ${this.generate(H,"value")}`:"return":H?`throw ${this.generate(H,"value")}`:"throw new Error()";if(W==="value"){if(O==="??")return`(() => { const __v = ${G}; if (__v == null) ${z}; return (${P} = __v); })()`;if(O==="||")return`(() => { const __v = ${G}; if (!__v) ${z}; return (${P} = __v); })()`;return`(() => { const __v = ${G}; if (__v) ${z}; return (${P} = __v); })()`}if(O==="??")return`if ((${P} = ${G}) == null) ${z}`;if(O==="||")return`if (!(${P} = ${G})) ${z}`;return`if ((${P} = ${G})) ${z}`}if(this.is(u,"array")){let X=u.slice(1).findIndex((w)=>this.is(w,"...")||w==="...");if(X!==-1&&X<u.length-2){let w=u.slice(1),D=w.slice(X+1),O=D.length;if(O>0){let q=this.generate(f,"value"),G=w.slice(0,X).map((I)=>I===","?"":typeof I==="string"?I:this.generate(I,"value")).join(", "),H=D.map((I)=>I===","?"":typeof I==="string"?I:this.generate(I,"value")).join(", ");this.helpers.add("slice"),w.forEach((I)=>{if(I===","||I==="...")return;if(typeof I==="string")this.programVars.add(I);else if(this.is(I,"...")&&typeof I[1]==="string")this.programVars.add(I[1])});let z=w[X],E=this.is(z,"...")?z[1]:null,B=[];if(G)B.push(`[${G}] = ${q}`);if(E)B.push(`[...${E}] = ${q}.slice(${X}, -${O})`);return B.push(`[${H}] = slice.call(${q}, -${O})`),B.join(", ")}}}if(W==="statement"&&$==="="&&Array.isArray(f)&&(f[0]==="||"||f[0]==="&&")&&f.length===3){let[X,w,D]=f;if(this.is(D,"if")&&D.length===3){let[,O,q]=D,P=Array.isArray(q)&&q.length===1?q[0]:q,G=[X,w,P],H=this.generate(u,"value"),z=this.generate(O,"value"),E=this.generate(G,"value");return`if (${z}) ${H} = ${E}`}}if(W==="statement"&&$==="="&&Array.isArray(f)&&f.length===3){let[X,w,D]=f,O=Array.isArray(D)&&D.length===1&&(!Array.isArray(D[0])||D[0][0]!=="block");if(X==="if"&&O){let q=Array.isArray(D)&&D.length===1?D[0]:D,P=this.generate(u,"value"),G=this.unwrapLogical(this.generate(w,"value")),H=this.generate(q,"value");return`if (${G}) ${P} = ${H}`}}let _;if(u instanceof String&&V(u,"await")!==void 0)_=S(u);else if(typeof u==="string"&&this.reactiveVars?.has(u))_=`${u}.value`;else this.suppressReactiveUnwrap=!0,_=this.generate(u,"value"),this.suppressReactiveUnwrap=!1;let Q=this.generate(f,"value");if(!this.is(f,"object"))Q=this.unwrap(Q);let Z=W==="value",K=W==="statement"&&this.is(u,"object");if(Z||K)return`(${_} ${Y} ${Q})`;return`${_} ${Y} ${Q}`}generatePropertyAccess($,U,W,A){let[u,f]=U;if(this._atParamMap&&u==="this"){let J=this._atParamMap.get(S(f));if(J)return J}this.suppressReactiveUnwrap=!0;let Y=this.generate(u,"value");this.suppressReactiveUnwrap=!1;let R=C.NUMBER_LITERAL_RE.test(Y)||Y.startsWith("await ")||(this.is(u,"object")||this.is(u,"yield"))?`(${Y})`:Y;if(V(f,"await")===!0)return`await ${R}.${S(f)}()`;if(V(f,"predicate"))return`(${R}.${S(f)} != null)`;return`${R}.${S(f)}`}generateOptionalProperty($,U){let[W,A]=U;return`${this.generate(W,"value")}?.${A}`}generateRegexIndex($,U){let[W,A,u]=U;this.helpers.add("toMatchable"),this.programVars.add("_");let f=this.generate(W,"value"),Y=this.generate(A,"value"),F=u!==null?this.generate(u,"value"):"0",R=Y.includes("/m")?", true":"";return`(_ = toMatchable(${f}${R}).match(${Y})) && _[${F}]`}generateIndexAccess($,U){let[W,A]=U;if(this.is(A,"..")||this.is(A,"...")){let u=A[0]==="..",f=this.generate(W,"value"),[Y,F]=A.slice(1);if(Y===null&&F===null)return`${f}.slice()`;if(Y===null){if(u&&this.is(F,"-",1)&&(S(F[1])??F[1])==1)return`${f}.slice(0)`;let _=this.generate(F,"value");return u?`${f}.slice(0, +${_} + 1 || 9e9)`:`${f}.slice(0, ${_})`}if(F===null)return`${f}.slice(${this.generate(Y,"value")})`;let R=this.generate(Y,"value");if(u&&this.is(F,"-",1)&&(S(F[1])??F[1])==1)return`${f}.slice(${R})`;let J=this.generate(F,"value");return u?`${f}.slice(${R}, +${J} + 1 || 9e9)`:`${f}.slice(${R}, ${J})`}if(this.is(A,"-",1)){let u=S(A[1])??A[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(A,"value"))}]`}generateOptIndex($,U){let[W,A]=U;if(this.is(A,"-",1)){let u=S(A[1])??A[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(A,"value")}]`}generateOptCall($,U){let[W,...A]=U;return`${this.generate(W,"value")}?.(${A.map((u)=>this.generate(u,"value")).join(", ")})`}generateDef($,U,W,A){let[u,f,Y]=U,F=V(u,"await")===!0,R=S(u),J=this.generateParamList(f),_=this.generateFunctionBody(Y,f,F),Q=this.containsAwait(Y),M=this.containsYield(Y);return`${Q?"async ":""}function${M?"*":""} ${R}(${J}) ${_}`}generateThinArrow($,U,W,A){let[u,f]=U;if((!u||Array.isArray(u)&&u.length===0)&&this.containsIt(f))u=["it"];let Y=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let F=this.generateParamList(u),R=this.generateFunctionBody(f,u,Y),J=this.containsAwait(f),_=this.containsYield(f),Q=`${J?"async ":""}function${_?"*":""}(${F}) ${R}`;return W==="value"?`(${Q})`:Q}generateFatArrow($,U,W,A){let[u,f]=U;if((!u||Array.isArray(u)&&u.length===0)&&this.containsIt(f))u=["it"];let Y=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let F=this.generateParamList(u),J=u.length===1&&typeof u[0]==="string"&&!F.includes("=")&&!F.includes("...")&&!F.includes("[")&&!F.includes("{")?F:`(${F})`,Q=this.containsAwait(f)?"async ":"";if(!Y){if(this.is(f,"block")&&f.length===2){let Z=f[1];if(!Array.isArray(Z)||Z[0]!=="return")return`${Q}${J} => ${this.generate(Z,"value")}`}if(!Array.isArray(f)||f[0]!=="block")return`${Q}${J} => ${this.generate(f,"value")}`}let M=this.generateFunctionBody(f,u,Y);return`${Q}${J} => ${M}`}generateReturn($,U,W,A){if(U.length===0)return"return";let[u]=U;if(this.sideEffectOnly)return"return";if(this.is(u,"if")){let[,f,Y,...F]=u;if(F.length===0){let R=Array.isArray(Y)&&Y.length===1?Y[0]:Y;return`if (${this.generate(f,"value")}) return ${this.generate(R,"value")}`}}if(this.is(u,"new")&&Array.isArray(u[1])&&u[1][0]==="if"){let[,f,Y]=u[1],F=Array.isArray(Y)&&Y.length===1?Y[0]:Y;return`if (${this.generate(f,"value")}) return ${this.generate(["new",F],"value")}`}return`return ${this.generate(u,"value")}`}generateState($,U){let[W,A]=U;this.usesReactivity=!0;let u=S(W)??W;if(!this.reactiveVars)this.reactiveVars=new Set;return this.reactiveVars.add(u),`const ${u} = __state(${this.generate(A,"value")})`}generateComputed($,U){let[W,A]=U;if(this.usesReactivity=!0,!this.reactiveVars)this.reactiveVars=new Set;let u=S(W)??W;return this.reactiveVars.add(u),`const ${u} = __computed(() => ${this.generate(A,"value")})`}generateReadonly($,U){let[W,A]=U;return`const ${S(W)??W} = ${this.generate(A,"value")}`}generateEffect($,U){let[W,A]=U;this.usesReactivity=!0;let u;if(this.is(A,"block"))u=`{
|
|
149
|
+
${this.withIndent(()=>this.formatStatements(A.slice(1))).join(`
|
|
150
150
|
`)}
|
|
151
|
-
${this.indent()}}`;else if(this.is(
|
|
152
|
-
${
|
|
151
|
+
${this.indent()}}`;else if(this.is(A,"->")||this.is(A,"=>")){let Y=this.generate(A,"value");if(W)return`const ${S(W)??this.generate(W,"value")} = __effect(${Y})`;return`__effect(${Y})`}else u=`{ ${this.generate(A,"value")}; }`;let f=`__effect(() => ${u})`;if(W)return`const ${S(W)??this.generate(W,"value")} = ${f}`;return f}generateBreak(){return"break"}generateContinue(){return"continue"}generateExistential($,U){return`(${this.generate(U[0],"value")} != null)`}generateTernary($,U,W){let[A,u,f]=U;if((u?.[0]?.valueOf?.()??u?.[0])==="="&&Array.isArray(u)){let F=this.generate(u[1],"value"),R=this.generate(u[2],"value"),J=this.generate(f,"value");return`${F} = (${this.unwrap(this.generate(A,"value"))} ? ${R} : ${J})`}return`(${this.unwrap(this.generate(A,"value"))} ? ${this.generate(u,"value")} : ${this.generate(f,"value")})`}generatePipe($,U){let[W,A]=U,u=this.generate(W,"value");if(Array.isArray(A)&&A.length>1){let f=A[0];if(Array.isArray(f)||typeof f==="string"&&/^[a-zA-Z_$]/.test(f)){let F=this.generate(f,"value"),R=A.slice(1).map((J)=>this.generate(J,"value"));return`${F}(${u}, ${R.join(", ")})`}}return`${this.generate(A,"value")}(${u})`}generateLoop($,U){return`while (true) ${this.generateLoopBody(U[0])}`}generateLoopN($,U){let[W,A]=U;return`for (let it = 0; it < ${this.generate(W,"value")}; it++) ${this.generateLoopBody(A)}`}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,A){let[u,f,...Y]=U;return W==="value"?this.generateIfAsExpression(u,f,Y):this.generateIfAsStatement(u,f,Y)}generateForIn($,U,W,A){let[u,f,Y,F,R]=U;if(W==="value"&&this.comprehensionDepth===0){let w=["for-in",u,f,Y];return this.generate(["comprehension",R,[w],F?[F]:[]],W)}let J=Array.isArray(u)?u:[u],_=J.length===0,[Q,M]=_?["_i",null]:J,Z=this.is(Q,"array")||this.is(Q,"object")?this.generateDestructuringPattern(Q):Q;if(Y&&Y!==null){let w=this.generate(f,"value"),D=M||"_i",O=this.generate(Y,"value"),q=this.is(Y,"-",1),P=q&&(Y[1]==="1"||Y[1]===1||S(Y[1])==="1"),G=!q&&(Y==="1"||Y===1||S(Y)==="1"),H;if(P)H=`for (let ${D} = ${w}.length - 1; ${D} >= 0; ${D}--) `;else if(G)H=`for (let ${D} = 0; ${D} < ${w}.length; ${D}++) `;else if(q)H=`for (let ${D} = ${w}.length - 1; ${D} >= 0; ${D} += ${O}) `;else H=`for (let ${D} = 0; ${D} < ${w}.length; ${D} += ${O}) `;if(this.is(R,"block")){let z=R.slice(1);this.indentLevel++;let E=[];if(!_)E.push(`const ${Z} = ${w}[${D}];`);if(F)E.push(`if (${this.generate(F,"value")}) {`),this.indentLevel++,E.push(...this.formatStatements(z)),this.indentLevel--,E.push(this.indent()+"}");else E.push(...z.map((B)=>this.addSemicolon(B,this.generate(B,"statement"))));return this.indentLevel--,H+`{
|
|
152
|
+
${E.map((B)=>this.indent()+B).join(`
|
|
153
153
|
`)}
|
|
154
|
-
${this.indent()}}`}if(
|
|
155
|
-
`,this.indentLevel++,
|
|
156
|
-
`,
|
|
157
|
-
`,this.indentLevel++,
|
|
154
|
+
${this.indent()}}`}if(_)return F?H+`{ if (${this.generate(F,"value")}) ${this.generate(R,"statement")}; }`:H+`{ ${this.generate(R,"statement")}; }`;return F?H+`{ const ${Z} = ${w}[${D}]; if (${this.generate(F,"value")}) ${this.generate(R,"statement")}; }`:H+`{ const ${Z} = ${w}[${D}]; ${this.generate(R,"statement")}; }`}if(M){let w=this.generate(f,"value"),D=`for (let ${M} = 0; ${M} < ${w}.length; ${M}++) `;if(this.is(R,"block")){if(D+=`{
|
|
155
|
+
`,this.indentLevel++,D+=this.indent()+`const ${Z} = ${w}[${M}];
|
|
156
|
+
`,F)D+=this.indent()+`if (${this.unwrap(this.generate(F,"value"))}) {
|
|
157
|
+
`,this.indentLevel++,D+=this.formatStatements(R.slice(1)).join(`
|
|
158
158
|
`)+`
|
|
159
|
-
`,this.indentLevel--,
|
|
160
|
-
`;else
|
|
159
|
+
`,this.indentLevel--,D+=this.indent()+`}
|
|
160
|
+
`;else D+=this.formatStatements(R.slice(1)).join(`
|
|
161
161
|
`)+`
|
|
162
|
-
`;this.indentLevel--,
|
|
163
|
-
${
|
|
162
|
+
`;this.indentLevel--,D+=this.indent()+"}"}else D+=F?`{ const ${Z} = ${w}[${M}]; if (${this.unwrap(this.generate(F,"value"))}) ${this.generate(R,"statement")}; }`:`{ const ${Z} = ${w}[${M}]; ${this.generate(R,"statement")}; }`;return D}let K=Array.isArray(f)&&f[0];if(K instanceof String)K=S(K);if(K===".."||K==="..."){let w=K==="...",[D,O]=f.slice(1),q=(P)=>typeof P==="number"||typeof P==="string"&&!P.includes("(")||P instanceof String&&!S(P).includes("(")||this.is(P,".");if(q(D)&&q(O)){let P=this.generate(D,"value"),G=this.generate(O,"value"),H=w?"<":"<=",z=Y?`${Z} += ${this.generate(Y,"value")}`:`${Z}++`,E=`for (let ${Z} = ${P}; ${Z} ${H} ${G}; ${z}) `;return E+=F?this.generateLoopBodyWithGuard(R,F):this.generateLoopBody(R),E}}let X=`for (const ${Z} of ${this.generate(f,"value")}) `;return X+=F?this.generateLoopBodyWithGuard(R,F):this.generateLoopBody(R),X}generateForOf($,U,W,A){let[u,f,Y,F,R]=U,[J,_]=Array.isArray(u)?u:[u],Q=this.generate(f,"value"),M=`for (const ${J} in ${Q}) `;if(Y&&!_&&!F){if(this.is(R,"block")){this.indentLevel++;let Z=[`if (!Object.hasOwn(${Q}, ${J})) continue;`,...R.slice(1).map((K)=>this.addSemicolon(K,this.generate(K,"statement")))];return this.indentLevel--,M+`{
|
|
163
|
+
${Z.map((K)=>this.indent()+K).join(`
|
|
164
164
|
`)}
|
|
165
|
-
${this.indent()}}`}return
|
|
166
|
-
${X.map((
|
|
165
|
+
${this.indent()}}`}return M+`{ if (!Object.hasOwn(${Q}, ${J})) continue; ${this.generate(R,"statement")}; }`}if(_){if(this.is(R,"block")){let K=R.slice(1);this.indentLevel++;let X=[];if(Y)X.push(`if (!Object.hasOwn(${Q}, ${J})) continue;`);if(X.push(`const ${_} = ${Q}[${J}];`),F)X.push(`if (${this.generate(F,"value")}) {`),this.indentLevel++,X.push(...K.map((w)=>this.addSemicolon(w,this.generate(w,"statement")))),this.indentLevel--,X.push(this.indent()+"}");else X.push(...K.map((w)=>this.addSemicolon(w,this.generate(w,"statement"))));return this.indentLevel--,M+`{
|
|
166
|
+
${X.map((w)=>this.indent()+w).join(`
|
|
167
167
|
`)}
|
|
168
|
-
${this.indent()}}`}let
|
|
169
|
-
${
|
|
168
|
+
${this.indent()}}`}let Z="";if(Y)Z+=`if (!Object.hasOwn(${Q}, ${J})) continue; `;if(Z+=`const ${_} = ${Q}[${J}]; `,F)Z+=`if (${this.generate(F,"value")}) `;return Z+=`${this.generate(R,"statement")};`,M+`{ ${Z} }`}return M+=F?this.generateLoopBodyWithGuard(R,F):this.generateLoopBody(R),M}generateForAs($,U,W,A){let u=Array.isArray(U[0])?U[0]:[U[0]],[f]=u,Y=U[1],F=U[2],R=U[3],J=U[4],_=!1,Q=[];if(this.is(f,"array")){let w=f.slice(1),D=w.findIndex((O)=>this.is(O,"...")||O==="...");if(D!==-1&&D<w.length-1){_=!0;let O=w.slice(D+1),q=O.length,P=w.slice(0,D),G=w[D],H=this.is(G,"...")?G[1]:"_rest",z=P.map((I)=>I===","?"":typeof I==="string"?I:this.generate(I,"value")).join(", "),E=z?`${z}, ...${H}`:`...${H}`,B=O.map((I)=>I===","?"":typeof I==="string"?I:this.generate(I,"value")).join(", ");Q.push(`[${E}] = _item`),Q.push(`[${B}] = ${H}.splice(-${q})`),this.helpers.add("slice"),w.forEach((I)=>{if(I===","||I==="...")return;if(typeof I==="string")this.programVars.add(I);else if(this.is(I,"...")&&typeof I[1]==="string")this.programVars.add(I[1])})}}let M=this.generate(Y,"value"),Z=F?"await ":"",K;if(_)K="_item";else if(this.is(f,"array")||this.is(f,"object"))K=this.generateDestructuringPattern(f);else K=f;let X=`for ${Z}(const ${K} of ${M}) `;if(_&&Q.length>0){let w=this.unwrapBlock(J),D=this.withIndent(()=>[...Q.map((O)=>this.indent()+O+";"),...this.formatStatements(w)]);X+=`{
|
|
169
|
+
${D.join(`
|
|
170
170
|
`)}
|
|
171
|
-
${this.indent()}}`}else X+=
|
|
171
|
+
${this.indent()}}`}else X+=R?this.generateLoopBodyWithGuard(J,R):this.generateLoopBody(J);return X}generateWhile($,U){let W=U[0],A=U.length===3?U[1]:null,u=U[U.length-1];return`while (${this.unwrap(this.generate(W,"value"))}) `+(A?this.generateLoopBodyWithGuard(u,A):this.generateLoopBody(u))}generateRange($,U){if($==="..."){if(U.length===1)return`...${this.generate(U[0],"value")}`;let[Y,F]=U,R=this.generate(Y,"value"),J=this.generate(F,"value");return`((s, e) => Array.from({length: Math.max(0, Math.abs(e - s))}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${R}, ${J})`}let[W,A]=U,u=this.generate(W,"value"),f=this.generate(A,"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 A=this.generate(W,"value");return A.startsWith("(")?`!${A}`:`(!${A})`}generateBitwiseNot($,U){return`(~${this.generate(U[0],"value")})`}generateIncDec($,U){let[W,A]=U,u=this.generate(W,"value");return A?`(${u}${$})`:`(${$}${u})`}generateTypeof($,U){return`typeof ${this.generate(U[0],"value")}`}generateDelete($,U){return`(delete ${this.generate(U[0],"value")})`}generateInstanceof($,U,W,A){let[u,f]=U,Y=V(A[0],"invert"),F=`(${this.generate(u,"value")} instanceof ${this.generate(f,"value")})`;return Y?`(!${F})`:F}generateIn($,U,W,A){let[u,f]=U,Y=this.generate(u,"value"),F=V(A[0],"invert");if(this.is(f,"object")){let _=`(${Y} in ${this.generate(f,"value")})`;return F?`(!${_})`:_}let R=this.generate(f,"value"),J=`(Array.isArray(${R}) || typeof ${R} === 'string' ? ${R}.includes(${Y}) : (${Y} in ${R}))`;return F?`(!${J})`:J}generateOf($,U,W,A){let[u,f]=U,Y=this.generate(u,"value"),F=this.generate(f,"value"),R=V(A[0],"invert"),J=`(${Y} in ${F})`;return R?`(!${J})`:J}generateRegexMatch($,U){let[W,A]=U;this.helpers.add("toMatchable"),this.programVars.add("_");let u=this.generate(A,"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[A,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[A,...u]=W;return`new ${this.generate(A,"value")}(${u.map((f)=>this.unwrap(this.generate(f,"value"))).join(", ")})`}return`new ${this.generate(W,"value")}()`}generateLogicalAnd($,U,W,A){let u=this.flattenBinaryChain(A).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,A){let u=this.flattenBinaryChain(A).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]===",",A=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?`[${A},]`:`[${A}]`}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],[,Y,F,R]=f;return this.generate(["object-comprehension",u,Y,F,R],W)}return`{${U.map((u)=>{if(this.is(u,"..."))return`...${this.generate(u[1],"value")}`;let[f,Y,F]=u,R;if(this.is(f,"dynamicKey"))R=`[${this.generate(f[1],"value")}]`;else if(this.is(f,"str"))R=`[${this.generate(f,"value")}]`;else this.suppressReactiveUnwrap=!0,R=this.generate(f,"value"),this.suppressReactiveUnwrap=!1;let J=this.generate(Y,"value");if(F==="=")return`${R} = ${J}`;if(F===":")return`${R}: ${J}`;if(R===J&&!Array.isArray(f))return R;return`${R}: ${J}`}).join(", ")}}`}generateBlock($,U,W){if(W==="statement")return`{
|
|
172
172
|
${this.withIndent(()=>this.formatStatements(U)).join(`
|
|
173
173
|
`)}
|
|
174
|
-
${this.indent()}}`;if(U.length===0)return"undefined";if(U.length===1)return this.generate(U[0],
|
|
174
|
+
${this.indent()}}`;if(U.length===0)return"undefined";if(U.length===1)return this.generate(U[0],W);let A=U[U.length-1];if(Array.isArray(A)&&["break","continue","return","throw"].includes(A[0])){let f=U.map((Y)=>this.addSemicolon(Y,this.generate(Y,"statement")));return`{
|
|
175
175
|
${this.withIndent(()=>f.map((Y)=>this.indent()+Y).join(`
|
|
176
176
|
`))}
|
|
177
|
-
${this.indent()}}`}return`(${U.map((f)=>this.generate(f,"value")).join(", ")})`}generateTry($,U,
|
|
177
|
+
${this.indent()}}`}return`(${U.map((f)=>this.generate(f,"value")).join(", ")})`}generateTry($,U,W){let A=W==="value",u="try ",f=U[0];if(u+=A&&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[Y,F]=U[1];if(u+=" catch",Y&&(this.is(Y,"object")||this.is(Y,"array"))){u+=" (error)";let R=`(${this.generate(Y,"value")} = error)`;F=this.is(F,"block")?["block",R,...F.slice(1)]:["block",R,F]}else if(Y)u+=` (${Y})`;u+=" "+(A&&this.is(F,"block")?this.generateBlockWithReturns(F):this.generate(F,"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(A)return`(${this.containsAwait(U[0])||U[1]&&this.containsAwait(U[1])?"async ":""}() => { ${u} })()`;return u}generateThrow($,U,W){let[A]=U;if(Array.isArray(A)){let f=A,Y=null;if(A[0]==="new"&&Array.isArray(A[1])&&A[1][0]==="if")Y="new",f=A[1];else if(A[0]==="if")f=A;if(f[0]==="if"){let[,F,R]=f,J=Array.isArray(R)&&R.length===1?R[0]:R;A=Y==="new"?["new",J]:J;let _=this.generate(F,"value"),Q=`throw ${this.generate(A,"value")}`;return`if (${_}) {
|
|
178
178
|
${this.indent()} ${Q};
|
|
179
|
-
${this.indent()}}`}}let u=`throw ${this.generate(
|
|
180
|
-
`;this.indentLevel++;for(let
|
|
181
|
-
`}this.indentLevel++,Y+=this.generateSwitchCaseBody(
|
|
182
|
-
`,this.indentLevel++,Y+=this.generateSwitchCaseBody(f,
|
|
183
|
-
`;this.indentLevel++,this.comprehensionDepth++,
|
|
184
|
-
`;for(let
|
|
185
|
-
`,this.indentLevel++,
|
|
186
|
-
`}else if(Q==="for-of"){let{header:X,own:
|
|
187
|
-
`,this.indentLevel++,
|
|
188
|
-
`;if(
|
|
189
|
-
`}else if(Q==="for-as"){let{header:X}=this._forAsHeader(
|
|
190
|
-
`,this.indentLevel++}}for(let
|
|
191
|
-
`,this.indentLevel++;let
|
|
192
|
-
`;else if(Array.isArray(Q)&&
|
|
193
|
-
`;else
|
|
194
|
-
`}else if(
|
|
195
|
-
`;else if(Array.isArray(
|
|
196
|
-
`;else
|
|
197
|
-
`;for(let
|
|
198
|
-
`;for(let
|
|
199
|
-
`;return
|
|
200
|
-
`,this.indentLevel--,this.comprehensionDepth--,
|
|
201
|
-
`;this.indentLevel++,
|
|
202
|
-
`;for(let
|
|
203
|
-
`,this.indentLevel++,
|
|
204
|
-
`;if(
|
|
205
|
-
`}}for(let
|
|
206
|
-
`,this.indentLevel++;
|
|
207
|
-
`;for(let
|
|
208
|
-
`;for(let
|
|
209
|
-
`;return
|
|
210
|
-
`,this.indentLevel--,
|
|
211
|
-
`,f.length>0&&Array.isArray(f[0])){let
|
|
212
|
-
`}else if(
|
|
213
|
-
`;else Y+=this.indent()+`${
|
|
214
|
-
`}this.indentLevel--}else if(
|
|
215
|
-
`}else if(
|
|
216
|
-
`;else Y+=this.indent()+`${X} = ${this.generate(
|
|
217
|
-
`}for(let
|
|
218
|
-
`}else Y+=this.indent()+this.generate(
|
|
219
|
-
`;this.indentLevel--}else{this.indentLevel++;for(let
|
|
220
|
-
`;else Y+=this.indent()+this.generate(
|
|
221
|
-
`;this.indentLevel--}}}return Y+=this.indent()+"}",Y}generateSuper($,U){if(U.length===0){if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}()`;return"super"}let
|
|
222
|
-
export default ${
|
|
223
|
-
`;if(Q.size>0)
|
|
224
|
-
`;let
|
|
225
|
-
`;return}if(!f&&!
|
|
226
|
-
`;return}}}let
|
|
227
|
-
`;else
|
|
228
|
-
`})};if(
|
|
229
|
-
`;else
|
|
230
|
-
`;for(let
|
|
231
|
-
`;
|
|
232
|
-
`;
|
|
233
|
-
`}return this.indentLevel--,
|
|
234
|
-
${this.withIndent(()=>U.map((
|
|
179
|
+
${this.indent()}}`}}let u=`throw ${this.generate(A,"value")}`;return W==="value"?`(() => { ${u}; })()`:u}generateControl($,U,W){let[A,u,f]=U,Y=S(A),F=f[0]==="return",R=this.generate(u,"value"),J=f.length>1?f[1]:null,_=F?J?`return ${this.generate(J,"value")}`:"return":J?`throw ${this.generate(J,"value")}`:"throw new Error()",Q=this.wrapForCondition(R);if(W==="value"){if(Y==="??")return`(() => { const __v = ${R}; if (__v == null) ${_}; return __v; })()`;if(Y==="||")return`(() => { const __v = ${R}; if (!__v) ${_}; return __v; })()`;return`(() => { const __v = ${R}; if (__v) ${_}; return __v; })()`}if(Y==="??")return`if (${Q} == null) ${_}`;if(Y==="||")return`if (!${Q}) ${_}`;return`if (${Q}) ${_}`}generateSwitch($,U,W){let[A,u,f]=U;if(A===null)return this.generateSwitchAsIfChain(u,f,W);let Y=`switch (${this.generate(A,"value")}) {
|
|
180
|
+
`;this.indentLevel++;for(let F of u){let[,R,J]=F;for(let _ of R){let Q=S(_)??_,M;if(Array.isArray(Q))M=this.generate(Q,"value");else if(typeof Q==="string"&&(Q.startsWith('"')||Q.startsWith("'")))M=`'${Q.slice(1,-1)}'`;else M=this.generate(Q,"value");Y+=this.indent()+`case ${M}:
|
|
181
|
+
`}this.indentLevel++,Y+=this.generateSwitchCaseBody(J,W),this.indentLevel--}if(f)Y+=this.indent()+`default:
|
|
182
|
+
`,this.indentLevel++,Y+=this.generateSwitchCaseBody(f,W),this.indentLevel--;if(this.indentLevel--,Y+=this.indent()+"}",W==="value")return`(${u.some((R)=>this.containsAwait(R[2]))||f&&this.containsAwait(f)?"async ":""}() => { ${Y} })()`;return Y}generateWhen(){throw Error("when clause should be handled by switch")}_forInHeader($,U,W){let A=Array.isArray($)?$:[$],u=A.length===0,[f,Y]=u?["_i",null]:A,F=this.is(f,"array")||this.is(f,"object")?this.generateDestructuringPattern(f):f;if(W&&W!==null){let R=Array.isArray(U)&&U[0];if(R instanceof String)R=S(R);if(R===".."||R==="..."){let O=R==="...",[q,P]=U.slice(1),G=this.generate(q,"value"),H=this.generate(P,"value"),z=this.generate(W,"value");return{header:`for (let ${F} = ${G}; ${F} ${O?"<":"<="} ${H}; ${F} += ${z})`,setup:null}}let _=this.generate(U,"value"),Q=Y||"_i",M=this.generate(W,"value"),Z=this.is(W,"-",1),K=Z&&(W[1]==="1"||W[1]===1||S(W[1])==="1"),X=!Z&&(W==="1"||W===1||S(W)==="1"),w=K?`${Q}--`:X?`${Q}++`:`${Q} += ${M}`;return{header:Z?`for (let ${Q} = ${_}.length - 1; ${Q} >= 0; ${w})`:`for (let ${Q} = 0; ${Q} < ${_}.length; ${w})`,setup:u?null:`const ${F} = ${_}[${Q}];`}}if(Y){let R=this.generate(U,"value");return{header:`for (let ${Y} = 0; ${Y} < ${R}.length; ${Y}++)`,setup:`const ${F} = ${R}[${Y}];`}}return{header:`for (const ${F} of ${this.generate(U,"value")})`,setup:null}}_forOfHeader($,U,W){let A=Array.isArray($)?$:[$],[u,f]=A,Y=this.is(u,"array")||this.is(u,"object")?this.generateDestructuringPattern(u):u,F=this.generate(U,"value");return{header:`for (const ${Y} in ${F})`,own:W,vv:f,oc:F,kvp:Y}}_forAsHeader($,U,W){let A=Array.isArray($)?$:[$],[u]=A,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[A,u,f]=U;if(W==="statement")return this.generateComprehensionAsLoop(A,u,f);if(this.comprehensionTarget)return this.generateComprehensionWithTarget(A,u,f,this.comprehensionTarget);let F=`(${this.containsAwait(A)?"async ":""}() => {
|
|
183
|
+
`;this.indentLevel++,this.comprehensionDepth++,F+=this.indent()+`const result = [];
|
|
184
|
+
`;for(let _ of u){let[Q,M,Z,K]=_;if(Q==="for-in"){let{header:X,setup:w}=this._forInHeader(M,Z,K);if(F+=this.indent()+X+` {
|
|
185
|
+
`,this.indentLevel++,w)F+=this.indent()+w+`
|
|
186
|
+
`}else if(Q==="for-of"){let{header:X,own:w,vv:D,oc:O,kvp:q}=this._forOfHeader(M,Z,K);if(F+=this.indent()+X+` {
|
|
187
|
+
`,this.indentLevel++,w)F+=this.indent()+`if (!Object.hasOwn(${O}, ${q})) continue;
|
|
188
|
+
`;if(D)F+=this.indent()+`const ${D} = ${O}[${q}];
|
|
189
|
+
`}else if(Q==="for-as"){let{header:X}=this._forAsHeader(M,Z,_[3]);F+=this.indent()+X+` {
|
|
190
|
+
`,this.indentLevel++}}for(let _ of f)F+=this.indent()+`if (${this.generate(_,"value")}) {
|
|
191
|
+
`,this.indentLevel++;let R=(_)=>{if(typeof _==="string"&&(_==="break"||_==="continue"))return!0;if(!Array.isArray(_))return!1;if(["break","continue","return","throw"].includes(_[0]))return!0;if(_[0]==="if")return _.slice(1).some(R);return _.some(R)},J=["for-in","for-of","for-as","while","loop"];if(this.is(A,"block"))for(let _=0;_<A.length-1;_++){let Q=A[_+1];if(_!==A.length-2||R(Q))F+=this.indent()+this.generate(Q,"statement")+`;
|
|
192
|
+
`;else if(Array.isArray(Q)&&J.includes(Q[0]))F+=this.indent()+this.generate(Q,"statement")+`;
|
|
193
|
+
`;else F+=this.indent()+`result.push(${this.generate(Q,"value")});
|
|
194
|
+
`}else if(R(A))F+=this.indent()+this.generate(A,"statement")+`;
|
|
195
|
+
`;else if(Array.isArray(A)&&J.includes(A[0]))F+=this.indent()+this.generate(A,"statement")+`;
|
|
196
|
+
`;else F+=this.indent()+`result.push(${this.generate(A,"value")});
|
|
197
|
+
`;for(let _=0;_<f.length;_++)this.indentLevel--,F+=this.indent()+`}
|
|
198
|
+
`;for(let _=0;_<u.length;_++)this.indentLevel--,F+=this.indent()+`}
|
|
199
|
+
`;return F+=this.indent()+`return result;
|
|
200
|
+
`,this.indentLevel--,this.comprehensionDepth--,F+=this.indent()+"})()",F}generateObjectComprehension($,U,W){let[A,u,f,Y]=U,F=`(() => {
|
|
201
|
+
`;this.indentLevel++,F+=this.indent()+`const result = {};
|
|
202
|
+
`;for(let R of f){let[J,_,Q,M]=R;if(J==="for-of"){let[Z,K]=_,X=this.generate(Q,"value");if(F+=this.indent()+`for (const ${Z} in ${X}) {
|
|
203
|
+
`,this.indentLevel++,M)F+=this.indent()+`if (!Object.hasOwn(${X}, ${Z})) continue;
|
|
204
|
+
`;if(K)F+=this.indent()+`const ${K} = ${X}[${Z}];
|
|
205
|
+
`}}for(let R of Y)F+=this.indent()+`if (${this.generate(R,"value")}) {
|
|
206
|
+
`,this.indentLevel++;F+=this.indent()+`result[${this.generate(A,"value")}] = ${this.generate(u,"value")};
|
|
207
|
+
`;for(let R=0;R<Y.length;R++)this.indentLevel--,F+=this.indent()+`}
|
|
208
|
+
`;for(let R=0;R<f.length;R++)this.indentLevel--,F+=this.indent()+`}
|
|
209
|
+
`;return F+=this.indent()+`return result;
|
|
210
|
+
`,this.indentLevel--,F+=this.indent()+"})()",F}generateClass($,U,W){let[A,u,...f]=U,Y=A?`class ${A}`:"class";if(u)Y+=` extends ${this.generate(u,"value")}`;if(Y+=` {
|
|
211
|
+
`,f.length>0&&Array.isArray(f[0])){let F=f[0];if(F[0]==="block"){let R=F.slice(1),J=R.length>0&&Array.isArray(R[0])&&R[0][0]==="object";if(J&&R.length===1){let _=R[0].slice(1);this.indentLevel++;let Q=[];for(let[M,Z]of _){let K=this.is(M,".")&&M[1]==="this",X=this.is(M,"computed"),w=this.extractMemberName(M);if(this.is(Z,"=>")&&!K&&!X&&w!=="constructor")Q.push(w)}for(let[M,Z]of _){let K=this.is(M,".")&&M[1]==="this",X=this.is(M,"computed"),w=this.extractMemberName(M);if(this.is(Z,"->")||this.is(Z,"=>")){let[,D,O]=Z,q=this.containsAwait(O),P=this.containsYield(O),G=D,H=[];if(w==="constructor"){let B=!!u,I=B?new Map:null;G=D.map((N)=>{if(this.is(N,".")&&N[1]==="this"){let T=N[2],L=B?`_${T}`:T;if(H.push(`this.${T} = ${L}`),B)I.set(T,L);return L}if(this.is(N,"default")&&this.is(N[1],".")&&N[1][1]==="this"){let T=N[1][2],L=B?`_${T}`:T;if(H.push(`this.${T} = ${L}`),B)I.set(T,L);return["default",L,N[2]]}return N});for(let N of Q)H.unshift(`this.${N} = this.${N}.bind(this)`);if(I?.size>0)this._atParamMap=I}let z=this.generateParamList(G),E=(K?"static ":"")+(q?"async ":"")+(P?"*":"");if(Y+=this.indent()+`${E}${w}(${z}) `,!X)this.currentMethodName=w;Y+=this.generateMethodBody(O,H,w==="constructor",G),this._atParamMap=null,this.currentMethodName=null,Y+=`
|
|
212
|
+
`}else if(K)Y+=this.indent()+`static ${w} = ${this.generate(Z,"value")};
|
|
213
|
+
`;else Y+=this.indent()+`${w} = ${this.generate(Z,"value")};
|
|
214
|
+
`}this.indentLevel--}else if(J){let _=R[0].slice(1),Q=R.slice(1);this.indentLevel++;for(let[M,Z]of _){let K=this.is(M,".")&&M[1]==="this",X=this.extractMemberName(M);if(this.is(Z,"->")||this.is(Z,"=>")){let[,w,D]=Z,O=this.generateParamList(w),q=(K?"static ":"")+(this.containsAwait(D)?"async ":"")+(this.containsYield(D)?"*":"");Y+=this.indent()+`${q}${X}(${O}) `,this.currentMethodName=X,Y+=this.generateMethodBody(D,[],X==="constructor",w),this.currentMethodName=null,Y+=`
|
|
215
|
+
`}else if(K)Y+=this.indent()+`static ${X} = ${this.generate(Z,"value")};
|
|
216
|
+
`;else Y+=this.indent()+`${X} = ${this.generate(Z,"value")};
|
|
217
|
+
`}for(let M of Q)if(this.is(M,"class")){let[,Z,K,...X]=M;if(this.is(Z,".")&&Z[1]==="this")Y+=this.indent()+`static ${Z[2]} = ${this.generate(["class",null,K,...X],"value")};
|
|
218
|
+
`}else Y+=this.indent()+this.generate(M,"statement")+`;
|
|
219
|
+
`;this.indentLevel--}else{this.indentLevel++;for(let _ of R)if(this.is(_,"=")&&Array.isArray(_[1])&&_[1][0]==="."&&_[1][1]==="this")Y+=this.indent()+`static ${_[1][2]} = ${this.generate(_[2],"value")};
|
|
220
|
+
`;else Y+=this.indent()+this.generate(_,"statement")+`;
|
|
221
|
+
`;this.indentLevel--}}}return Y+=this.indent()+"}",Y}generateSuper($,U){if(U.length===0){if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}()`;return"super"}let W=U.map((A)=>this.unwrap(this.generate(A,"value"))).join(", ");if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}(${W})`;return`super(${W})`}generateImport($,U,W,A){if(U.length===1){let F=`import(${this.generate(U[0],"value")})`;if(V(A[0],"await")===!0)return`(await ${F})`;return F}let[u,f]=U,Y=this.addJsExtensionAndAssertions(f);if(typeof u==="string")return`import ${u} from ${Y}`;if(Array.isArray(u)){if(u[0]==="*"&&u.length===2)return`import * as ${u[1]} from ${Y}`;if(typeof u[0]==="string"&&Array.isArray(u[1])){let R=u[0],J=u[1];if(J[0]==="*"&&J.length===2)return`import ${R}, * as ${J[1]} from ${Y}`;let _=(Array.isArray(J)?J:[J]).map((Q)=>Array.isArray(Q)&&Q.length===2?`${Q[0]} as ${Q[1]}`:Q).join(", ");return`import ${R}, { ${_} } from ${Y}`}return`import { ${u.map((R)=>Array.isArray(R)&&R.length===2?`${R[0]} as ${R[1]}`:R).join(", ")} } from ${Y}`}return`import ${this.generate(u,"value")} from ${Y}`}generateExport($,U){let[W]=U;if(Array.isArray(W)&&W.every((A)=>typeof A==="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.is(W,"="))return`const ${W[1]} = ${this.generate(W[2],"value")};
|
|
222
|
+
export default ${W[1]}`;return`export default ${this.generate(W,"statement")}`}generateExportAll($,U){return`export * from ${this.addJsExtensionAndAssertions(U[0])}`}generateExportFrom($,U){let[W,A]=U,u=this.addJsExtensionAndAssertions(A);if(Array.isArray(W))return`export { ${W.map((Y)=>Array.isArray(Y)&&Y.length===2?`${Y[0]} as ${Y[1]}`:Y).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,A]=U,u=this.generate(W,"value"),f=this.generate(A,"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 A of U)if(A instanceof String)W+=this.extractStringContent(A);else if(typeof A==="string")if(A.startsWith('"')||A.startsWith("'")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive in str:",A);W+=A.slice(1,-1)}else W+=A;else if(Array.isArray(A))if(A.length===1&&typeof A[0]==="string"&&!Array.isArray(A[0])){let u=A[0];W+=/^[\d"']/.test(u)?"${"+this.generate(u,"value")+"}":"${"+u+"}"}else{let u=A.length===1&&Array.isArray(A[0])?A[0]:A;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 A=this.findPostfixConditional($[W]);if(A)return A.parentOp=U,A.operandIndex=W,A.otherOperands=$.slice(1).filter((u,f)=>f!==W-1),A}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((A)=>this.is(A,"expansion"));if(U!==-1){let A=$.slice(0,U),u=$.slice(U+1),f=A.map((Y)=>this.formatParam(Y)).join(", ");return this.expansionAfterParams=u,f?`${f}, ..._rest`:"..._rest"}let W=$.findIndex((A)=>this.is(A,"rest"));if(W!==-1&&W<$.length-1){let A=$.slice(0,W),u=$[W],f=$.slice(W+1),Y=A.map((F)=>this.formatParam(F));return this.restMiddleParam={restName:u[1],afterParams:f,beforeCount:A.length},Y.length>0?`${Y.join(", ")}, ...${u[1]}`:`...${u[1]}`}return this.expansionAfterParams=null,this.restMiddleParam=null,$.map((A)=>this.formatParam(A)).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[A,u]=W;if(A===u)return A;return`${A}: ${u}`}).join(", ")}}`;return JSON.stringify($)}generateBodyWithReturns($,U=[],W={}){let{sideEffectOnly:A=!1,autoAssignments:u=[],isConstructor:f=!1,hasExpansionParams:Y=!1}=W,F=this.sideEffectOnly;this.sideEffectOnly=A;let R=new Set,J=(X)=>{if(typeof X==="string")R.add(X);else if(Array.isArray(X)){if(X[0]==="rest"||X[0]==="..."){if(typeof X[1]==="string")R.add(X[1])}else if(X[0]==="default"){if(typeof X[1]==="string")R.add(X[1])}else if(X[0]==="array"||X[0]==="object")this.collectVarsFromArray(X,R)}};if(Array.isArray(U))U.forEach(J);let _=this.collectFunctionVariables($),Q=new Set([..._].filter((X)=>!this.programVars.has(X)&&!this.reactiveVars?.has(X)&&!R.has(X)&&!this.scopeStack.some((w)=>w.has(X)))),M=["return","throw","break","continue"],Z=["for-in","for-of","for-as","while","loop"];if(this.scopeStack.push(new Set([...Q,...R])),this.is($,"block")){let X=this.unwrapBlock($);if(Y&&this.expansionAfterParams?.length>0)X=[...this.expansionAfterParams.map((P,G)=>{return`const ${typeof P==="string"?P:JSON.stringify(P)} = _rest[_rest.length - ${this.expansionAfterParams.length-G}]`}),...X],this.expansionAfterParams=null;if(this.restMiddleParam){let{restName:q,afterParams:P}=this.restMiddleParam,G=P.length,H=[];if(P.forEach((z,E)=>{let B=typeof z==="string"?z:this.is(z,"default")?z[1]:JSON.stringify(z);H.push(`const ${B} = ${q}[${q}.length - ${G-E}]`)}),G>0)H.push(`${q} = ${q}.slice(0, -${G})`);X=[...H,...X],this.restMiddleParam=null}this.indentLevel++;let w=`{
|
|
223
|
+
`;if(Q.size>0)w+=this.indent()+`let ${Array.from(Q).sort().join(", ")};
|
|
224
|
+
`;let D=u.length>0&&X.length>0&&Array.isArray(X[0])&&X[0][0]==="super",O=(q)=>{q.forEach((P,G)=>{let H=G===q.length-1,z=Array.isArray(P)?P[0]:null;if(!H&&z==="comprehension"){let[,N,T,L]=P;w+=this.indent()+this.generateComprehensionAsLoop(N,T,L)+`
|
|
225
|
+
`;return}if(!f&&!A&&H&&z==="if"){let[N,T,...L]=P.slice(1),y=(m)=>this.is(m,"block")&&m.length>2;if(y(T)||L.some(y)){w+=this.generateIfElseWithEarlyReturns(P);return}}if(!f&&!A&&H&&z==="="){let[N,T]=P.slice(1);if(typeof N==="string"&&Array.isArray(T)){let L=T[0];if(L==="comprehension"||L==="for-in"){this.comprehensionTarget=N,w+=this.generate(T,"value"),this.comprehensionTarget=null,w+=this.indent()+`return ${N};
|
|
226
|
+
`;return}}}let E=!f&&!A&&H&&!M.includes(z)&&!Z.includes(z)&&!this.hasExplicitControlFlow(P),B=E?"value":"statement",I=this.generate(P,B);if(E)w+=this.indent()+"return "+I+`;
|
|
227
|
+
`;else w+=this.indent()+this.addSemicolon(P,I)+`
|
|
228
|
+
`})};if(D){if(X.length===1&&!f)w+=this.indent()+"return "+this.generate(X[0],"value")+`;
|
|
229
|
+
`;else w+=this.indent()+this.generate(X[0],"statement")+`;
|
|
230
|
+
`;for(let P of u)w+=this.indent()+P+`;
|
|
231
|
+
`;O(X.slice(1))}else{for(let q of u)w+=this.indent()+q+`;
|
|
232
|
+
`;O(X)}if(A&&X.length>0){let q=Array.isArray(X[X.length-1])?X[X.length-1][0]:null;if(!M.includes(q))w+=this.indent()+`return;
|
|
233
|
+
`}return this.indentLevel--,w+=this.indent()+"}",this.scopeStack.pop(),this.sideEffectOnly=F,w}this.sideEffectOnly=F;let K;if(f&&u.length>0){let X=Array.isArray($)&&$[0]==="super",w=this.generate($,"statement"),D=u.map((O)=>`${O};`).join(" ");K=X?`{ ${w}; ${D} }`:`{ ${D} ${w}; }`}else if(f||this.hasExplicitControlFlow($))K=`{ ${this.generate($,"statement")}; }`;else if(Array.isArray($)&&(M.includes($[0])||Z.includes($[0])))K=`{ ${this.generate($,"statement")}; }`;else if(A)K=`{ ${this.generate($,"statement")}; return; }`;else K=`{ return ${this.generate($,"value")}; }`;return this.scopeStack.pop(),K}generateFunctionBody($,U=[],W=!1){return this.generateBodyWithReturns($,U,{sideEffectOnly:W,hasExpansionParams:this.expansionAfterParams?.length>0})}generateMethodBody($,U=[],W=!1,A=[]){return this.generateBodyWithReturns($,A,{autoAssignments:U,isConstructor:W})}generateBlockWithReturns($){if(!Array.isArray($)||$[0]!=="block")return this.generate($,"statement");let U=this.unwrapBlock($);return`{
|
|
234
|
+
${this.withIndent(()=>U.map((A,u)=>{let f=u===U.length-1,Y=Array.isArray(A)?A[0]:null,F=f&&!["return","throw","break","continue"].includes(Y),R=this.generate(A,F?"value":"statement");return F?this.indent()+"return "+R+";":this.indent()+R+";"})).join(`
|
|
235
235
|
`)}
|
|
236
236
|
${this.indent()}}`}generateLoopBody($){if(!Array.isArray($))return`{ ${this.generate($,"statement")}; }`;if($[0]==="block"||Array.isArray($[0])){let U=$[0]==="block"?$.slice(1):$;return`{
|
|
237
|
-
${this.withIndent(()=>U.map((
|
|
237
|
+
${this.withIndent(()=>U.map((A)=>{if(this.is(A,"comprehension")){let[,u,f,Y]=A;return this.indent()+this.generateComprehensionAsLoop(u,f,Y)}return this.indent()+this.addSemicolon(A,this.generate(A,"statement"))})).join(`
|
|
238
238
|
`)}
|
|
239
|
-
${this.indent()}}`}return`{ ${this.generate($,"statement")}; }`}generateLoopBodyWithGuard($,U){let
|
|
240
|
-
`,Y=this.withIndent(()=>{this.indentLevel++;let
|
|
239
|
+
${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 A=$[0]==="block"?$.slice(1):$,u=this.withIndent(()=>this.indent()),f=`if (${W}) {
|
|
240
|
+
`,Y=this.withIndent(()=>{this.indentLevel++;let R=this.formatStatements(A);return this.indentLevel--,R}),F=this.withIndent(()=>this.indent()+"}");return`{
|
|
241
241
|
${u}${f}${Y.join(`
|
|
242
242
|
`)}
|
|
243
|
-
${
|
|
244
|
-
${this.indent()}}`}return`{ if (${this.generate(U,"value")}) ${this.generate($,"statement")}; }`}generateComprehensionWithTarget($,U,A
|
|
245
|
-
`;let f=this.is($,"block")&&$.length===2?$[1]:$;if(U.length===1){let[Y,R,
|
|
243
|
+
${F}
|
|
244
|
+
${this.indent()}}`}return`{ if (${this.generate(U,"value")}) ${this.generate($,"statement")}; }`}generateComprehensionWithTarget($,U,W,A){let u="";u+=this.indent()+`${A} = [];
|
|
245
|
+
`;let f=this.is($,"block")&&$.length===2?$[1]:$;if(U.length===1){let[Y,F,R,J]=U[0];if(Y==="for-in"){let{header:_,setup:Q}=this._forInHeader(F,R,J);if(u+=this.indent()+_+` {
|
|
246
246
|
`,this.indentLevel++,Q)u+=this.indent()+Q+`
|
|
247
|
-
`;if(
|
|
248
|
-
`,this.indentLevel++;if(u+=this.indent()+`${
|
|
249
|
-
`,
|
|
247
|
+
`;if(W&&W.length>0)u+=this.indent()+`if (${W.map((M)=>this.generate(M,"value")).join(" && ")}) {
|
|
248
|
+
`,this.indentLevel++;if(u+=this.indent()+`${A}.push(${this.unwrap(this.generate(f,"value"))});
|
|
249
|
+
`,W&&W.length>0)this.indentLevel--,u+=this.indent()+`}
|
|
250
250
|
`;return this.indentLevel--,u+=this.indent()+`}
|
|
251
|
-
`,u}}return this.indent()+`${
|
|
252
|
-
`}generateComprehensionAsLoop($,U,
|
|
253
|
-
`,this.indentLevel++,
|
|
254
|
-
`,this.indentLevel--,
|
|
255
|
-
`;else W+=this.indent()+this.generate($,"statement")+`;
|
|
256
|
-
`};if(U.length===1){let[Y,R,F,_]=U[0];if(Y==="for-in"){let{header:Z,setup:Q}=this._forInHeader(R,F,_);if(W+=Z+` {
|
|
257
|
-
`,this.indentLevel++,Q)W+=this.indent()+Q+`
|
|
258
|
-
`;return f(),this.indentLevel--,W+=this.indent()+"}",W}if(Y==="for-as"){let{header:Z}=this._forAsHeader(R,F,_);return W+=Z+` {
|
|
259
|
-
`,this.indentLevel++,f(),this.indentLevel--,W+=this.indent()+"}",W}if(Y==="for-of"){let{header:Z,own:Q,vv:K,oc:J,kvp:M}=this._forOfHeader(R,F,_);if(W+=Z+` {
|
|
260
|
-
`,this.indentLevel++,Q)W+=this.indent()+`if (!Object.hasOwn(${J}, ${M})) continue;
|
|
261
|
-
`;if(K)W+=this.indent()+`const ${K} = ${J}[${M}];
|
|
262
|
-
`;return f(),this.indentLevel--,W+=this.indent()+"}",W}}return this.generate(["comprehension",$,U,A],"value")}generateIfElseWithEarlyReturns($){let[U,A,W,...u]=$,f="",Y=this.generate(A,"value");f+=this.indent()+`if (${Y}) {
|
|
263
|
-
`,f+=this.withIndent(()=>this.generateBranchWithReturn(W)),f+=this.indent()+"}";for(let R of u)if(f+=" else ",this.is(R,"if")){let[,F,_,...Z]=R;f+=`if (${this.generate(F,"value")}) {
|
|
264
|
-
`,f+=this.withIndent(()=>this.generateBranchWithReturn(_)),f+=this.indent()+"}";for(let Q of Z)f+=` else {
|
|
265
|
-
`,f+=this.withIndent(()=>this.generateBranchWithReturn(Q)),f+=this.indent()+"}"}else f+=`{
|
|
266
|
-
`,f+=this.withIndent(()=>this.generateBranchWithReturn(R)),f+=this.indent()+"}";return f}generateBranchWithReturn($){let U=this.unwrapBlock($),A="";for(let W=0;W<U.length;W++){let u=W===U.length-1,f=U[W],Y=Array.isArray(f)?f[0]:null;if(u&&!(Y==="return"||Y==="throw"||Y==="break"||Y==="continue"))A+=this.indent()+`return ${this.generate(f,"value")};
|
|
267
|
-
`;else A+=this.indent()+this.generate(f,"statement")+`;
|
|
268
|
-
`}return A}generateIfAsExpression($,U,A){if(this.is(U,"block")&&U.length>2||this.hasStatementInBranch(U)||A.some((R)=>this.is(R,"block")&&R.length>2||this.hasStatementInBranch(R)||this.hasNestedMultiStatement(R))){let R=this.containsAwait($)||this.containsAwait(U)||A.some((_)=>this.containsAwait(_)),F=`${R?"await ":""}(${R?"async ":""}() => { `;F+=`if (${this.generate($,"value")}) `,F+=this.generateBlockWithReturns(U);for(let _ of A)if(F+=" else ",this.is(_,"if")){let[Z,Q,K,...J]=_;F+=`if (${this.generate(Q,"value")}) `,F+=this.generateBlockWithReturns(K);for(let M of J)if(F+=" else ",this.is(M,"if")){let[X,z,w,...G]=M;F+=`if (${this.generate(z,"value")}) `,F+=this.generateBlockWithReturns(w),A.push(...G)}else F+=this.generateBlockWithReturns(M)}else F+=this.generateBlockWithReturns(_);return F+" })()"}let u=this.extractExpression(this.unwrapIfBranch(U)),f=this.buildTernaryChain(A),Y=this.generate($,"value");if(this.is($,"yield")||this.is($,"await"))Y=`(${Y})`;return`(${Y} ? ${u} : ${f})`}generateIfAsStatement($,U,A){let W=`if (${this.unwrap(this.generate($,"value"))}) `;W+=this.generate(this.unwrapIfBranch(U),"statement");for(let u of A)W+=" else "+this.generate(this.unwrapIfBranch(u),"statement");return W}generateSwitchCaseBody($,U){let A="";if(this.hasExplicitControlFlow($))for(let u of this.unwrapBlock($))A+=this.indent()+this.generate(u,"statement")+`;
|
|
269
|
-
`;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)A+=this.indent()+`return ${this.generate(u[f],"value")};
|
|
270
|
-
`;else A+=this.indent()+this.generate(u[f],"statement")+`;
|
|
271
|
-
`}else A+=this.indent()+`return ${this.extractExpression($)};
|
|
272
|
-
`;else{if(this.is($,"block")&&$.length>1)for(let u of $.slice(1))A+=this.indent()+this.generate(u,"statement")+`;
|
|
251
|
+
`,u}}return this.indent()+`${A} = (() => { /* complex comprehension */ })();
|
|
252
|
+
`}generateComprehensionAsLoop($,U,W){let A="",u=W?.length?W.map((Y)=>this.generate(Y,"value")).join(" && "):null,f=()=>{if(u)A+=this.indent()+`if (${u}) {
|
|
253
|
+
`,this.indentLevel++,A+=this.indent()+this.generate($,"statement")+`;
|
|
254
|
+
`,this.indentLevel--,A+=this.indent()+`}
|
|
273
255
|
`;else A+=this.indent()+this.generate($,"statement")+`;
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
`;
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
256
|
+
`};if(U.length===1){let[Y,F,R,J]=U[0];if(Y==="for-in"){let{header:_,setup:Q}=this._forInHeader(F,R,J);if(A+=_+` {
|
|
257
|
+
`,this.indentLevel++,Q)A+=this.indent()+Q+`
|
|
258
|
+
`;return f(),this.indentLevel--,A+=this.indent()+"}",A}if(Y==="for-as"){let{header:_}=this._forAsHeader(F,R,J);return A+=_+` {
|
|
259
|
+
`,this.indentLevel++,f(),this.indentLevel--,A+=this.indent()+"}",A}if(Y==="for-of"){let{header:_,own:Q,vv:M,oc:Z,kvp:K}=this._forOfHeader(F,R,J);if(A+=_+` {
|
|
260
|
+
`,this.indentLevel++,Q)A+=this.indent()+`if (!Object.hasOwn(${Z}, ${K})) continue;
|
|
261
|
+
`;if(M)A+=this.indent()+`const ${M} = ${Z}[${K}];
|
|
262
|
+
`;return f(),this.indentLevel--,A+=this.indent()+"}",A}}return this.generate(["comprehension",$,U,W],"value")}generateIfElseWithEarlyReturns($){let[U,W,A,...u]=$,f="",Y=this.generate(W,"value");f+=this.indent()+`if (${Y}) {
|
|
263
|
+
`,f+=this.withIndent(()=>this.generateBranchWithReturn(A)),f+=this.indent()+"}";for(let F of u)if(f+=" else ",this.is(F,"if")){let[,R,J,..._]=F;f+=`if (${this.generate(R,"value")}) {
|
|
264
|
+
`,f+=this.withIndent(()=>this.generateBranchWithReturn(J)),f+=this.indent()+"}";for(let Q of _)f+=` else {
|
|
265
|
+
`,f+=this.withIndent(()=>this.generateBranchWithReturn(Q)),f+=this.indent()+"}"}else f+=`{
|
|
266
|
+
`,f+=this.withIndent(()=>this.generateBranchWithReturn(F)),f+=this.indent()+"}";return f}generateBranchWithReturn($){let U=this.unwrapBlock($),W="";for(let A=0;A<U.length;A++){let u=A===U.length-1,f=U[A],Y=Array.isArray(f)?f[0]:null;if(u&&!(Y==="return"||Y==="throw"||Y==="break"||Y==="continue"))W+=this.indent()+`return ${this.generate(f,"value")};
|
|
267
|
+
`;else W+=this.indent()+this.generate(f,"statement")+`;
|
|
268
|
+
`}return W}generateIfAsExpression($,U,W){if(this.is(U,"block")&&U.length>2||this.hasStatementInBranch(U)||W.some((F)=>this.is(F,"block")&&F.length>2||this.hasStatementInBranch(F)||this.hasNestedMultiStatement(F))){let F=this.containsAwait($)||this.containsAwait(U)||W.some((J)=>this.containsAwait(J)),R=`${F?"await ":""}(${F?"async ":""}() => { `;R+=`if (${this.generate($,"value")}) `,R+=this.generateBlockWithReturns(U);for(let J of W)if(R+=" else ",this.is(J,"if")){let[_,Q,M,...Z]=J;R+=`if (${this.generate(Q,"value")}) `,R+=this.generateBlockWithReturns(M);for(let K of Z)if(R+=" else ",this.is(K,"if")){let[X,w,D,...O]=K;R+=`if (${this.generate(w,"value")}) `,R+=this.generateBlockWithReturns(D),W.push(...O)}else R+=this.generateBlockWithReturns(K)}else R+=this.generateBlockWithReturns(J);return R+" })()"}let u=this.extractExpression(this.unwrapIfBranch(U)),f=this.buildTernaryChain(W),Y=this.generate($,"value");if(this.is($,"yield")||this.is($,"await"))Y=`(${Y})`;return`(${Y} ? ${u} : ${f})`}generateIfAsStatement($,U,W){let A=`if (${this.unwrap(this.generate($,"value"))}) `;A+=this.generate(this.unwrapIfBranch(U),"statement");for(let u of W)A+=" else "+this.generate(this.unwrapIfBranch(u),"statement");return A}generateSwitchCaseBody($,U){let W="";if(this.hasExplicitControlFlow($))for(let u of this.unwrapBlock($))W+=this.indent()+this.generate(u,"statement")+`;
|
|
269
|
+
`;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")};
|
|
270
|
+
`;else W+=this.indent()+this.generate(u[f],"statement")+`;
|
|
271
|
+
`}else W+=this.indent()+`return ${this.extractExpression($)};
|
|
272
|
+
`;else{if(this.is($,"block")&&$.length>1)for(let u of $.slice(1))W+=this.indent()+this.generate(u,"statement")+`;
|
|
273
|
+
`;else W+=this.indent()+this.generate($,"statement")+`;
|
|
274
|
+
`;W+=this.indent()+`break;
|
|
275
|
+
`}return W}generateSwitchAsIfChain($,U,W){let A="";for(let u=0;u<$.length;u++){let[,f,Y]=$[u],F=Array.isArray(f)?f[0]:f;if(A+=(u===0?"":" else ")+`if (${this.generate(F,"value")}) {
|
|
276
|
+
`,this.indentLevel++,W==="value")A+=this.indent()+`return ${this.extractExpression(Y)};
|
|
277
|
+
`;else for(let R of this.unwrapBlock(Y))A+=this.indent()+this.generate(R,"statement")+`;
|
|
278
|
+
`;this.indentLevel--,A+=this.indent()+"}"}if(U){if(A+=` else {
|
|
279
|
+
`,this.indentLevel++,W==="value")A+=this.indent()+`return ${this.extractExpression(U)};
|
|
280
|
+
`;else for(let u of this.unwrapBlock(U))A+=this.indent()+this.generate(u,"statement")+`;
|
|
281
|
+
`;this.indentLevel--,A+=this.indent()+"}"}return W==="value"?`(() => { ${A} })()`:A}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]))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((A)=>{return this.unwrapBlock(A[2]).some((f)=>Array.isArray(f)&&["return","throw","break","continue"].includes(f[0]))})}if(U==="if"){let[,,W,A]=$;return this.branchHasControlFlow(W)&&A&&this.branchHasControlFlow(A)}return!1}branchHasControlFlow($){if(!Array.isArray($))return!1;let U=this.unwrapBlock($);if(U.length===0)return!1;let W=U[U.length-1];return Array.isArray(W)&&["return","throw","break","continue"].includes(W[0])}withIndent($){this.indentLevel++;let U=$();return this.indentLevel--,U}is($,U,W){if(!Array.isArray($))return null;if((S($[0])??$[0])!==U)return null;let A=$.slice(1);if(W!=null&&A.length!==W)return null;return A}unwrap($){if(typeof $!=="string")return $;while($.startsWith("(")&&$.endsWith(")")){let U=0,W=0,A=!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){A=!1;break}}if(u)A=!1;if(A)$=$.slice(1,-1);else break}return $}unwrapLogical($){if(typeof $!=="string")return $;while($.startsWith("(")&&$.endsWith(")")){let U=0,W=1/0;for(let A=1;A<$.length-1;A++){if($[A]==="(")U++;if($[A]===")")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 A=[],u=(f)=>{if(Array.isArray(f)&&f[0]===U)for(let Y=1;Y<f.length;Y++)u(f[Y]);else A.push(f)};for(let f of W)u(f);return[U,...A]}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,A,...u]=$;return this.is(A,"block")&&A.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,A,u,...f]=U,Y=this.extractExpression(this.unwrapIfBranch(u)),F=this.buildTernaryChain([...f,...$.slice(1)]);return`(${this.generate(A,"value")} ? ${Y} : ${F})`}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[A,u,f]=W;if(f==="="){if(typeof A==="string")U.add(A)}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=S($).slice(1,-1),W=V($,"indent");if(W)U=U.replace(new RegExp(`\\n${W}`,"g"),`
|
|
282
|
+
`);if(V($,"initialChunk")&&U.startsWith(`
|
|
283
|
+
`))U=U.slice(1);if(V($,"finalChunk")&&U.endsWith(`
|
|
284
|
+
`))U=U.slice(0,-1);return U}processHeregex($){let U="",W=!1,A=0,u=()=>{let f=0,Y=A-1;while(Y>=0&&$[Y]==="\\")f++,Y--;return f%2===1};while(A<$.length){let f=$[A];if(f==="["&&!u()){W=!0,U+=f,A++;continue}if(f==="]"&&W&&!u()){W=!1,U+=f,A++;continue}if(W){U+=f,A++;continue}if(/\s/.test(f)){A++;continue}if(f==="#"){if(u()){U+=f,A++;continue}let Y=A-1;while(Y>=0&&$[Y]==="\\")Y--;if(Y<A-1){U+=f,A++;continue}while(A<$.length&&$[A]!==`
|
|
285
|
+
`)A++;continue}U+=f,A++}return U}addJsExtensionAndAssertions($){if($ instanceof String)$=S($);if(typeof $!=="string")return $;let W=$.startsWith('"')||$.startsWith("'")?$.slice(1,-1):$,A=W.startsWith("./")||W.startsWith("../"),u=W,f="";if(A){let Y=W.lastIndexOf("/"),F=Y>=0?W.substring(Y+1):W;if(F.includes(".")){if(F.endsWith(".json"))f=" with { type: 'json' }"}else u=W+".js"}return`'${u}'`+f}containsIt($){if(!$)return!1;if($==="it"||$ instanceof String&&S($)==="it")return!0;if(typeof $!=="object")return!1;if(this.is($,"def")||this.is($,"->")||this.is($,"=>"))return!1;if(Array.isArray($))return $.some((U)=>this.containsIt(U));return!1}containsAwait($){if(!$)return!1;if($ instanceof String&&V($,"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`// ============================================================================
|
|
286
286
|
// Rip Reactive Runtime
|
|
287
287
|
// A minimal, fine-grained reactivity system
|
|
288
288
|
//
|
|
@@ -501,14 +501,14 @@ if (typeof globalThis !== 'undefined') {
|
|
|
501
501
|
}
|
|
502
502
|
|
|
503
503
|
// === End Reactive Runtime ===
|
|
504
|
-
`}}class
|
|
505
|
-
`),W
|
|
504
|
+
`}}class M1{constructor($={}){this.options={showTokens:!1,showSExpr:!1,...$}}compile($){let U=null,W=$.split(`
|
|
505
|
+
`),A=W.findIndex((K)=>K==="__DATA__");if(A!==-1){let K=W.slice(A+1);U=K.length>0?K.join(`
|
|
506
506
|
`)+`
|
|
507
|
-
`:"",$=
|
|
508
|
-
`)}let f=new
|
|
509
|
-
//# sourceMappingURL=data:application/json;base64,${
|
|
510
|
-
//# sourceMappingURL=${this.options.filename}.js.map`;if(
|
|
511
|
-
${
|
|
512
|
-
})()`),U.setAttribute("data-rip-processed","true")}catch(
|
|
513
|
-
${U}`).replace(/^let\s+[^;]+;\s*\n\s*/m,"");
|
|
514
|
-
`,Z=M+Z}f=new Blob([Z],{type:"application/javascript"}),X=URL.createObjectURL(f);try{Q=await import(X)}finally{URL.revokeObjectURL(X)}if(u){_=h1(Q);for(let z in _){let w=_[z];u.classes[z]=w}}if(A&&W)A.setCompiled(W,Q);return Q};D2=function($,U,A,W,u=""){let f,Y,R;return R=1000,Y=30000,f=function(){let F;return F=new EventSource(W),F.addEventListener("connected",function(){return R=1000,console.log("[Rip] Hot reload connected")}),F.addEventListener("changed",async function(_){let Z,Q,K,J,M;({paths:K}=JSON.parse(_.data));for(let X of K)$.del(X);if(U.rebuild(),Z=U.current,M=K.filter(function(X){return X===Z.route?.file||Z.layouts?.includes(X)}),M.length>0){J=await Promise.allSettled(M.map(async function(X){let z,w;return w=await fetch(u+"/"+X),z=await w.text(),$.write(X,z)})),Q=J.filter(function(X){return X.status==="rejected"});for(let X of Q)console.error("[Rip] Hot reload fetch error:",X.reason);return A.remount()}}),F.onerror=function(){return F.close(),console.log(`[Rip] Hot reload reconnecting in ${R/1000}s...`),setTimeout(f,R),R=Math.min(R*2,Y)}},f()};var T2=function($={}){return v1($)},S2=function($){return $?.[s]?$[s]:$},j3=function($){return $?.[P1]===!0},h3=function($,U={}){let A,W,u,f,Y;if(A=h(U.initial||null),u=h(!1),W=h(null),f=async function(){let R;return u.value=!0,W.value=null,(async()=>{try{return R=await $(),A.value=R}catch(F){return W.value=F}finally{u.value=!1}})()},Y={data:void 0,loading:void 0,error:void 0,refetch:f},Object.defineProperty(Y,"data",{get:function(){return A.value}}),Object.defineProperty(Y,"loading",{get:function(){return u.value}}),Object.defineProperty(Y,"error",{get:function(){return W.value}}),!U.lazy)f();return Y},L2=function($,U){let A,W;return A=W1(U),W=h(!!A()),p(function(){let u;if(A())return u=setTimeout(function(){return W.value=!0},$),function(){return clearTimeout(u)};else return W.value=!1}),typeof U!=="function"?U1(W,U):W},C3=function($,U){let A,W;return A=W1(U),W=h(A()),p(function(){let u,f;return f=A(),u=setTimeout(function(){return W.value=f},$),function(){return clearTimeout(u)}}),typeof U!=="function"?U1(W,U):W},y3=function($,U){let A,W,u;return A=W1(U),u=h(A()),W=0,p(function(){let f,Y,R,F;if(F=A(),f=Date.now(),Y=$-(f-W),Y<=0)return u.value=F,W=f;else return R=setTimeout(function(){return u.value=A(),W=Date.now()},Y),function(){return clearTimeout(R)}}),typeof U!=="function"?U1(u,U):u},b3=function($,U){let A,W;return A=W1(U),W=h(!!A()),p(function(){let u;if(A())return W.value=!0;else return u=setTimeout(function(){return W.value=!1},$),function(){return clearTimeout(u)}}),typeof U!=="function"?U1(W,U):W},V2=function(){let $,U,A,W;return U=new Map,W=[],$=new Map,A=function(u,f){for(let Y of W)Y(u,f)},{read:function(u){return U.get(u)},write:function(u,f){let Y;return Y=!U.has(u),U.set(u,f),$.delete(u),A(Y?"create":"change",u)},del:function(u){return U.delete(u),$.delete(u),A("delete",u)},exists:function(u){return U.has(u)},size:function(){return U.size},list:function(u=""){let f,Y,R;R=[],f=u?u+"/":"";for(let[F]of U)if(F.startsWith(f)){if(Y=F.slice(f.length),Y.includes("/"))continue;R.push(F)}return R},listAll:function(u=""){let f,Y;Y=[],f=u?u+"/":"";for(let[R]of U)if(R.startsWith(f))Y.push(R);return Y},load:function(u){for(let f in u){let Y=u[f];U.set(f,Y)}},watch:function(u){return W.push(u),function(){return W.splice(W.indexOf(u),1)}},getCompiled:function(u){return $.get(u)},setCompiled:function(u,f){return $.set(u,f)}}},j2=function($,U={}){let A,W,u,f,Y,R,F,_,Z,Q,K,J,M,X,z,w,G,H,q,O,P;if(G=U.root||"components",Z=U.base||"",Q=U.hash||!1,M=U.onError||null,q=function(D){return Z&&D.startsWith(Z)?D.slice(Z.length)||"/":D},_=function(D){return Z?Z+D:D},z=function(){let D;if(Q){if(D=location.hash.slice(1),!D)return"/";return D[0]==="/"?D:"/"+D}else return location.pathname+location.search+location.hash},P=function(D){return Q?D==="/"?location.pathname:"#"+D.slice(1):_(D)},Y=h(q(Q?z():location.pathname)),f=h({}),F=h(null),W=h([]),R=h({}),A=h(""),u=L2(100,h(!1)),O=z1($,G),K=new Set,$.watch(function(D,I){if(!I.startsWith(G+"/"))return;return O=z1($,G)}),w=function(D){let I,E,B,N,T;if(N=D.split("?")[0].split("#")[0],E=q(N),E=E[0]==="/"?E:"/"+E,B=D.split("?")[1]?.split("#")[0]||"",I=D.includes("#")?D.split("#")[1]:"",T=q2(E,O.routes),T){K2(function(){return Y.value=E,f.value=T.params,F.value=T.route,W.value=H2(T.route.file,G,O.layouts),R.value=Object.fromEntries(new URLSearchParams(B)),A.value=I});for(let L of K)L(H.current);return!0}if(M)M({status:404,path:E});return!1},X=function(){return w(z())},typeof window<"u")window.addEventListener("popstate",X);if(J=function(D){let I,E,B;if(D.button!==0||D.metaKey||D.ctrlKey||D.shiftKey||D.altKey)return;E=D.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 D.preventDefault(),I=Q&&B.hash?B.hash.slice(1)||"/":B.pathname+B.search+B.hash,H.push(I)},typeof document<"u")document.addEventListener("click",J);return H={push:function(D){return w(D)?history.pushState(null,"",P(Y.read())):void 0},replace:function(D){return w(D)?history.replaceState(null,"",P(Y.read())):void 0},back:function(){return history.back()},forward:function(){return history.forward()},current:void 0,path:void 0,params:void 0,route:void 0,layouts:void 0,query:void 0,hash:void 0,navigating:void 0,onNavigate:function(D){return K.add(D),function(){return K.delete(D)}},rebuild:function(){return O=z1($,G)},routes:void 0,init:function(){return w(z()),H},destroy:function(){if(typeof window<"u")window.removeEventListener("popstate",X);if(typeof document<"u")document.removeEventListener("click",J);return K.clear()}},Object.defineProperty(H,"current",{get:function(){return{path:Y.value,params:f.value,route:F.value,layouts:W.value,query:R.value,hash:A.value}}}),Object.defineProperty(H,"path",{get:function(){return Y.value}}),Object.defineProperty(H,"params",{get:function(){return f.value}}),Object.defineProperty(H,"route",{get:function(){return F.value}}),Object.defineProperty(H,"layouts",{get:function(){return W.value}}),Object.defineProperty(H,"query",{get:function(){return R.value}}),Object.defineProperty(H,"hash",{get:function(){return A.value}}),Object.defineProperty(H,"navigating",{get:function(){return u.value},set:function(D){return u.value=D}}),Object.defineProperty(H,"routes",{get:function(){return O.routes}}),H},h2=function($={}){let U,A,W,u,f,Y,R,F,_,Z,Q,K,J,M,X,z,w,G,H,q,O;if({router:H,app:U,components:f,resolver:G,compile:W,target:q,onError:z}=$,Y=typeof q==="string"?document.querySelector(q):q||document.getElementById("app"),!Y)Y=document.createElement("div"),Y.id="app",document.body.appendChild(Y);return Y.style.opacity="0",R=null,_=null,F=[],K=[],M=Y,Q=0,Z=null,u=new Map,J=$.cacheSize||10,A=function(){let P,D;if(R&&_){if(R.beforeUnmount)R.beforeUnmount();if(u.set(_,R),u.size>J){if(D=u.keys().next().value,P=u.get(D),P.unmounted)P.unmounted();u.delete(D)}return R=null,_=null}},O=function(){A();for(let P=K.length-1;P>=0;P--){let D=K[P];if(D.beforeUnmount)D.beforeUnmount();if(D.unmounted)D.unmounted();D._root?.remove()}return K=[],M=Y},f.watch(function(P,D){let I;if(u.has(D)){if(I=u.get(D),I.unmounted)I.unmounted();return u.delete(D)}}),X=async function(P){let D,I,E,B,N,T,L,c,t,H1,e,x1,m,k1,Y1,F1,R1,O1,C,m1,q1,d;if({route:C,params:F1,layouts:c,query:O1}=P,!C)return;if(C.file===_)return;return B=++Q,H.navigating=!0,(async()=>{try{if(q1=f.read(C.file),!q1){if(z)z({status:404,message:`File not found: ${C.file}`});H.navigating=!1;return}if(x1=await w1(q1,W,f,C.file,G),B!==Q){H.navigating=!1;return}if(D=C1(x1),!D){if(z)z({status:500,message:`No component found in ${C.file}`});H.navigating=!1;return}if(e=!M2(c,F),k1=R?._root,e)O();else A();if(m=e?Y:M,e&&c.length>0){Y.innerHTML="",m=Y;for(let v of c){if(H1=f.read(v),!H1)continue;if(t=await w1(H1,W,f,v,G),B!==Q){H.navigating=!1;return}if(I=C1(t),!I)continue;if(T=new I({app:U,params:F1,router:H}),T.beforeMount)T.beforeMount();d=document.createElement("div"),d.setAttribute("data-layout",v),m.appendChild(d),T.mount(d),K.push(T),m1=d.querySelector("#content")||d,m=m1}F=[...c],M=m}else if(e)Y.innerHTML="",F=[],M=Y;if(E=u.get(C.file),E)u.delete(C.file),m.appendChild(E._root),R=E,_=C.file;else{if(Y1=document.createElement("div"),Y1.setAttribute("data-component",C.file),m.appendChild(Y1),L=new D({app:U,params:F1,query:O1,router:H}),L.beforeMount)L.beforeMount();if(L.mount(Y1),R=L,_=C.file,L.load)await L.load(F1,O1)}return k1?.remove(),H.navigating=!1,Y.style.opacity==="0"?document.fonts.ready.then(function(){return requestAnimationFrame(function(){return Y.style.transition="opacity 150ms ease-in",Y.style.opacity="1"})}):void 0}catch(v){if(H.navigating=!1,Y.style.opacity="1",console.error(`Renderer: error mounting ${C.file}:`,v),z)z({status:500,message:v.message,error:v});N=!1;for(let G1=K.length-1;G1>=0;G1--){let n1=K[G1];if(n1.onError)try{n1.onError(v),N=!0;break}catch(C2){console.error("Renderer: error boundary failed:",C2)}}return(()=>{if(!N)return R1=document.createElement("pre"),R1.style.cssText="color:red;padding:1em",R1.textContent=v.stack||v.message,Y.innerHTML="",Y.appendChild(R1)})()}})()},w={start:function(){return Z=p(function(){let P;return P=H.current,P.route?X(P):void 0}),H.init(),w},stop:function(){if(O(),Z)Z(),Z=null;return Y.innerHTML=""},remount:function(){let P;return P=H.current,P.route?X(P):void 0},cache:u},w},c3=async function($="",U={}){let A,W,u,f,Y,R,F,_,Z,Q,K,J,M,X,z,w,G,H,q;if($=$.replace(/\/+$/,""),q=U.target||"#app",Z=U.compile||null,J=U.persist||!1,K=U.hash||!1,!Z)Z=globalThis?.compileToJS||null;if(typeof document<"u"&&!document.querySelector(q))Q=document.createElement("div"),Q.id=q.replace(/^#/,""),document.body.prepend(Q);if(U.bundle)R=U.bundle;else{if(F=`${$}/bundle`,X=await fetch(F),!X.ok)throw Error(`launch: ${F} (${X.status})`);R=await X.json()}if(f=T2({components:{},routes:{},data:{}}),R.data)f.data=R.data;if(R.routes)f.routes=R.routes;if(J&&typeof sessionStorage<"u"){u=`__rip_${$}`,W=J==="local"?localStorage:sessionStorage;try{if(G=W.getItem(u),G){H=JSON.parse(G);for(let O in H){let P=H[O];f.data[O]=P}}}catch{}A=function(){return(()=>{try{return W.setItem(u,JSON.stringify(S2(f.data)))}catch{return null}})()},p(function(){let O;return b1.value,O=setTimeout(A,2000),function(){return clearTimeout(O)}}),window.addEventListener("beforeunload",A)}if(Y=V2(),R.components)Y.load(R.components);if(_=`__rip_${$.replace(/\//g,"_")||"app"}`,z={map:X2(Y),classes:{},key:_},typeof globalThis<"u")globalThis[_]=z.classes;if(f.data.title&&typeof document<"u")document.title=f.data.title;if(w=j2(Y,{root:"components",base:$,hash:K,onError:function(O){return console.error(`[Rip] Error ${O.status}: ${O.message||O.path}`)}}),M=h2({router:w,app:f,components:Y,resolver:z,compile:Z,target:q,onError:function(O){return console.error(`[Rip] ${O.message}`,O.error)}}),M.start(),R.data?.watch)D2(Y,w,M,`${$}/watch`,$);if(typeof window<"u")window.app=f,window.__RIP__={app:f,components:Y,router:w,renderer:M,cache:M.cache,version:"0.3.0"};return{app:f,components:Y,router:w,renderer:M}};var v3=globalThis.importRip;globalThis.importRip=async function($){if($.includes("ui.rip"))return l1;return v3($)};export{V3 as rip,J2 as processRipScripts,a as parser,L3 as importRip,D1 as getReactiveRuntime,V1 as getComponentRuntime,l as formatSExpr,i as compileToJS,L1 as compile,N3 as VERSION,r as Lexer,X1 as Compiler,y as CodeGenerator,T3 as BUILD_DATE};
|
|
507
|
+
`:"",$=W.slice(0,A).join(`
|
|
508
|
+
`)}let f=new p().tokenize($);if(this.options.showTokens)f.forEach((K)=>console.log(`${K[0].padEnd(12)} ${JSON.stringify(K[1])}`)),console.log();let Y=null,F=null;if(this.options.types==="emit"||this.options.types==="check"||this.options.types===!0)F=[...f];f=f.filter((K)=>K[0]!=="TYPE_DECL");while(f.length>0&&f[0][0]==="TERMINATOR")f.shift();if(f.every((K)=>K[0]==="TERMINATOR")){if(F)Y=I1(F,["program"]);return{tokens:f,sexpr:["program"],code:"",dts:Y,data:U,reactiveVars:{}}}o.lexer={tokens:f,pos:0,setInput:function(){},lex:function(){if(this.pos>=this.tokens.length)return 1;let K=this.tokens[this.pos++],X=K[1];if(K.data)X=new String(X),Object.assign(X,K.data);return this.text=X,this.loc=K.loc,K[0]}};let R;try{R=o.parse($)}catch(K){if(/\?\s*\([^)]*\?[^)]*:[^)]*\)\s*:/.test($)||/\?\s+\w+\s+\?\s+/.test($))throw Error("Nested ternary operators are not supported. Use if/else statements instead.");throw K}if(this.options.showSExpr)console.log(l(R,0,!0)),console.log();let J=null;if(this.options.sourceMap){let K=(this.options.filename||"output")+".js",X=this.options.filename||"input.rip";J=new S1(K,X,$)}let _=new C({dataSection:U,skipPreamble:this.options.skipPreamble,reactiveVars:this.options.reactiveVars,sourceMap:J}),Q=_.compile(R),M=J?J.toJSON():null,Z=J?J.toReverseMap():null;if(M&&this.options.sourceMap==="inline"){let K=typeof Buffer<"u"?Buffer.from(M).toString("base64"):btoa(M);Q+=`
|
|
509
|
+
//# sourceMappingURL=data:application/json;base64,${K}`}else if(M&&this.options.filename)Q+=`
|
|
510
|
+
//# sourceMappingURL=${this.options.filename}.js.map`;if(F)Y=I1(F,R);return{tokens:f,sexpr:R,code:Q,dts:Y,map:M,reverseMap:Z,data:U,reactiveVars:_.reactiveVars}}compileToJS($){return this.compile($).code}compileToSExpr($){return this.compile($).sexpr}}Z2(C,p);C.prototype.generateEnum=r1;function L1($,U={}){return new M1(U).compile($)}function d($,U={}){return new M1(U).compileToJS($)}function X1(){return new C({}).getReactiveRuntime()}function V1(){return new C({}).getComponentRuntime()}var N3="3.9.0",T3="2026-02-17@21:13:27GMT";if(typeof globalThis<"u"&&!globalThis.__rip)Function(X1())();var S3=($)=>{let U=$.match(/^[ \t]*(?=\S)/gm),W=Math.min(...(U||[]).map((A)=>A.length));return $.replace(RegExp(`^[ ]{${W}}`,"gm"),"").trim()};async function J2(){let $=document.querySelectorAll('script[type="text/rip"]');for(let U of $){if(U.hasAttribute("data-rip-processed"))continue;try{let W;if(U.src){let u=await fetch(U.src);if(!u.ok){console.error(`Rip: failed to fetch ${U.src} (${u.status})`);continue}W=await u.text()}else W=S3(U.textContent);let A;try{A=d(W)}catch(u){console.error("Rip compile error:",u.message),console.error("Source:",W);continue}await(0,eval)(`(async()=>{
|
|
511
|
+
${A}
|
|
512
|
+
})()`),U.setAttribute("data-rip-processed","true")}catch(W){console.error("Rip runtime error:",W)}}}async function L3($){let U=await fetch($).then((f)=>{if(!f.ok)throw Error(`importRip: ${$} (${f.status})`);return f.text()}),W=d(U),A=new Blob([W],{type:"application/javascript"}),u=URL.createObjectURL(A);try{return await import(u)}finally{URL.revokeObjectURL(u)}}function V3($){try{let U=$.replace(/^/gm," "),A=d(`do ->
|
|
513
|
+
${U}`).replace(/^let\s+[^;]+;\s*\n\s*/m,"");A=A.replace(/^const\s+(\w+)\s*=/gm,"globalThis.$1 =");let u=(0,eval)(A);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=V3,globalThis.importRip=L3,globalThis.compileToJS=d,globalThis.__ripExports={compile:L1,compileToJS:d,formatSExpr:l,VERSION:N3,BUILD_DATE:T3,getReactiveRuntime:X1,getComponentRuntime:V1};if(typeof document<"u")if(document.readyState==="loading")globalThis.__ripScriptsReady=new Promise(($)=>{document.addEventListener("DOMContentLoaded",()=>J2().then($))});else globalThis.__ripScriptsReady=J2();var l1={};b2(l1,{throttle:()=>y3,stash:()=>T2,setContext:()=>E2,raw:()=>S2,launch:()=>c3,isStash:()=>h3,hold:()=>b3,hasContext:()=>O2,getContext:()=>P2,delay:()=>L2,debounce:()=>C3,createRouter:()=>h2,createResource:()=>j3,createRenderer:()=>j2,createComponents:()=>V2});var Q2,y1,t,k,w1,K2,r,h,h1,U1,W1,b1,M2,X2,D1,z1,D2,z2,w2,j1,C1,P2,H2,c1,O2,A1,v1,q2,G2,E2,I2,B2,g1,N2;({__state:h,__effect:r,__batch:K2}=globalThis.__rip);({setContext:E2,getContext:P2,hasContext:O2}=globalThis.__ripComponent||{});w1=Symbol("stash");k=Symbol("signals");t=Symbol("raw");y1=new WeakMap;h1=0;b1=h(0);c1=function($,U){let W;if(!$[k])Object.defineProperty($,k,{value:new Map,enumerable:!1});if(W=$[k].get(U),!W)W=h($[U]),$[k].set(U,W);return W};A1=function($){return c1($,Symbol.for("keys"))};N2=function($){let U;if(!($!=null&&typeof $==="object"))return $;if($[w1])return $;if($ instanceof Date||$ instanceof RegExp||$ instanceof Map||$ instanceof Set||$ instanceof Promise)return $;if(U=y1.get($),U)return U;return v1($)};v1=function($){let U,W;return W=null,U={get:function(A,u){let f,Y;if(u===w1)return!0;if(u===t)return A;if(typeof u==="symbol")return Reflect.get(A,u);if(u==="length"&&Array.isArray(A))return A1(A).value,A.length;if(u==="get")return function(F){return I2(W,F)};if(u==="set")return function(F,R){return B2(W,F,R)};if(f=c1(A,u),Y=f.value,Y!=null&&typeof Y==="object")return N2(Y);return Y},set:function(A,u,f){let Y,F;if(Y=A[u],F=f?.[t]?f[t]:f,F===Y)return!0;if(A[u]=F,A[k]?.has(u))A[k].get(u).value=F;if(Y===void 0&&F!==void 0)A1(A).value=++h1;return b1.value++,!0},deleteProperty:function(A,u){let f;if(delete A[u],f=A[k]?.get(u),f)f.value=void 0;return A1(A).value=++h1,!0},ownKeys:function(A){return A1(A).value,Reflect.ownKeys(A)}},W=new Proxy($,U),y1.set($,W),W};Q2=/([./][^./\[\s]+|\[[-+]?\d+\]|\[(?:"[^"]+"|'[^']+')\])/;g1=function($){let U,W,A,u,f;A=("."+$).split(Q2),A.shift(),f=[],W=0;while(W<A.length){if(u=A[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};I2=function($,U){let W,A;A=g1(U),W=$;for(let u of A){if(W==null)return;W=W[u]}return W};B2=function($,U,W){let A,u;u=g1(U),A=$;for(let f=0;f<u.length;f++){let Y=u[f];if(f===u.length-1)A[Y]=W;else{if(A[Y]==null)A[Y]={};A=A[Y]}}return W};W1=function($){return typeof $==="function"?$:function(){return $.value}};U1=function($,U){let W;return W={read:function(){return $.read()}},Object.defineProperty(W,"value",{get:function(){return $.value},set:function(A){return U.value=A}}),W};w2=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};G2=function($){let U,W;return U=[],W=$.replace(/\*(\w+)/g,function(A,u){return U.push(u),"(.+)"}).replace(/:(\w+)/g,function(A,u){return U.push(u),"([^/]+)"}),{regex:new RegExp("^"+W+"$"),names:U}};q2=function($,U){let W,A;for(let u of U)if(W=$.match(u.regex.regex),W){A={};for(let f=0;f<u.regex.names.length;f++){let Y=u.regex.names[f];A[Y]=decodeURIComponent(W[f+1])}return{route:u,params:A}}return null};D1=function($,U="components"){let W,A,u,f,Y,F,R,J;R=[],u=new Map,W=$.listAll(U);for(let _ of W){if(F=_.slice(U.length+1),!F.endsWith(".rip"))continue;if(f=F.split("/").pop(),f==="_layout.rip"){A=F==="_layout.rip"?"":F.slice(0,-12),u.set(A,_);continue}if(f.startsWith("_"))continue;J=w2(F),Y=G2(J),R.push({pattern:J,regex:Y,file:_,rel:F})}return R.sort(function(_,Q){let M,Z,K,X;if(Z=(_.pattern.match(/:/g)||[]).length,X=(Q.pattern.match(/:/g)||[]).length,M=_.pattern.includes("*")?1:0,K=Q.pattern.includes("*")?1:0,M!==K)return M-K;if(Z!==X)return Z-X;return _.pattern.localeCompare(Q.pattern)}),{routes:R,layouts:u}};H2=function($,U,W){let A,u,f,Y;if(A=[],f=$.slice(U.length+1),Y=f.split("/"),u="",W.has(""))A.push(W.get(""));for(let F=0;F<Y.length;F++){let R=Y[F];if(F===Y.length-1)break;if(u=u?u+"/"+R:R,W.has(u))A.push(W.get(u))}return A};M2=function($,U){if($.length!==U.length)return!1;for(let W=0;W<$.length;W++)if($[W]!==U[W])return!1;return!0};C1=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};j1=function($){let U;U={};for(let W in $){let A=$[W];if(typeof A==="function"&&(A.prototype?.mount||A.prototype?._create))U[W]=A}return U};z2=function($){let U;return U=$.split("/").pop().replace(/\.rip$/,""),U.replace(/(^|[-_])([a-z])/g,function(W,A,u){return u.toUpperCase()})};X2=function($,U="components"){let W,A,u;A={};for(let f of $.listAll(U)){if(!f.endsWith(".rip"))continue;if(W=f.split("/").pop(),W.startsWith("_"))continue;if(u=z2(f),A[u])console.warn(`[Rip] Component name collision: ${u} (${A[u]} vs ${f})`);A[u]=f}return A};z1=async function($,U,W=null,A=null,u=null){let f,Y,F,R,J,_,Q,M,Z,K,X;if(W&&A){if(Y=W.getCompiled(A),Y)return Y}if(_=U($),u){Z={};for(let w in u.map){let D=u.map[w];if(D!==A&&_.includes(`new ${w}(`)){if(!u.classes[w]){if(R=W.read(D),R){F=await z1(R,U,W,D,u),J=j1(F);for(let O in J){let q=J[O];u.classes[O]=q}}}if(u.classes[w])Z[w]=!0}}if(M=Object.keys(Z),M.length>0)K=`const {${M.join(", ")}} = globalThis['${u.key}'];
|
|
514
|
+
`,_=K+_}f=new Blob([_],{type:"application/javascript"}),X=URL.createObjectURL(f);try{Q=await import(X)}finally{URL.revokeObjectURL(X)}if(u){J=j1(Q);for(let w in J){let D=J[w];u.classes[w]=D}}if(W&&A)W.setCompiled(A,Q);return Q};D2=function($,U,W,A,u=""){let f,Y,F;return F=1000,Y=30000,f=function(){let R;return R=new EventSource(A),R.addEventListener("connected",function(){return F=1000,console.log("[Rip] Hot reload connected")}),R.addEventListener("changed",async function(J){let _,Q,M,Z,K;({paths:M}=JSON.parse(J.data));for(let X of M)$.del(X);if(U.rebuild(),_=U.current,K=M.filter(function(X){return X===_.route?.file||_.layouts?.includes(X)}),K.length>0){Z=await Promise.allSettled(K.map(async function(X){let w,D;return D=await fetch(u+"/"+X),w=await D.text(),$.write(X,w)})),Q=Z.filter(function(X){return X.status==="rejected"});for(let X of Q)console.error("[Rip] Hot reload fetch error:",X.reason);return W.remount()}}),R.onerror=function(){return R.close(),console.log(`[Rip] Hot reload reconnecting in ${F/1000}s...`),setTimeout(f,F),F=Math.min(F*2,Y)}},f()};var T2=function($={}){return v1($)},S2=function($){return $?.[t]?$[t]:$},h3=function($){return $?.[w1]===!0},j3=function($,U={}){let W,A,u,f,Y;if(W=h(U.initial||null),u=h(!1),A=h(null),f=async function(){let F;return u.value=!0,A.value=null,(async()=>{try{return F=await $(),W.value=F}catch(R){return A.value=R}finally{u.value=!1}})()},Y={data:void 0,loading:void 0,error:void 0,refetch:f},Object.defineProperty(Y,"data",{get:function(){return W.value}}),Object.defineProperty(Y,"loading",{get:function(){return u.value}}),Object.defineProperty(Y,"error",{get:function(){return A.value}}),!U.lazy)f();return Y},L2=function($,U){let W,A;return W=W1(U),A=h(!!W()),r(function(){let u;if(W())return u=setTimeout(function(){return A.value=!0},$),function(){return clearTimeout(u)};else return A.value=!1}),typeof U!=="function"?U1(A,U):A},C3=function($,U){let W,A;return W=W1(U),A=h(W()),r(function(){let u,f;return f=W(),u=setTimeout(function(){return A.value=f},$),function(){return clearTimeout(u)}}),typeof U!=="function"?U1(A,U):A},y3=function($,U){let W,A,u;return W=W1(U),u=h(W()),A=0,r(function(){let f,Y,F,R;if(R=W(),f=Date.now(),Y=$-(f-A),Y<=0)return u.value=R,A=f;else return F=setTimeout(function(){return u.value=W(),A=Date.now()},Y),function(){return clearTimeout(F)}}),typeof U!=="function"?U1(u,U):u},b3=function($,U){let W,A;return W=W1(U),A=h(!!W()),r(function(){let u;if(W())return A.value=!0;else return u=setTimeout(function(){return A.value=!1},$),function(){return clearTimeout(u)}}),typeof U!=="function"?U1(A,U):A},V2=function(){let $,U,W,A;return U=new Map,A=[],$=new Map,W=function(u,f){for(let Y of A)Y(u,f)},{read:function(u){return U.get(u)},write:function(u,f){let Y;return Y=!U.has(u),U.set(u,f),$.delete(u),W(Y?"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,Y,F;F=[],f=u?u+"/":"";for(let[R]of U)if(R.startsWith(f)){if(Y=R.slice(f.length),Y.includes("/"))continue;F.push(R)}return F},listAll:function(u=""){let f,Y;Y=[],f=u?u+"/":"";for(let[F]of U)if(F.startsWith(f))Y.push(F);return Y},load:function(u){for(let f in u){let Y=u[f];U.set(f,Y)}},watch:function(u){return A.push(u),function(){return A.splice(A.indexOf(u),1)}},getCompiled:function(u){return $.get(u)},setCompiled:function(u,f){return $.set(u,f)}}},h2=function($,U={}){let W,A,u,f,Y,F,R,J,_,Q,M,Z,K,X,w,D,O,q,P,G,H;if(O=U.root||"components",_=U.base||"",Q=U.hash||!1,K=U.onError||null,P=function(z){return _&&z.startsWith(_)?z.slice(_.length)||"/":z},J=function(z){return _?_+z:z},w=function(){let z;if(Q){if(z=location.hash.slice(1),!z)return"/";return z[0]==="/"?z:"/"+z}else return location.pathname+location.search+location.hash},H=function(z){return Q?z==="/"?location.pathname:"#"+z.slice(1):J(z)},Y=h(P(Q?w():location.pathname)),f=h({}),R=h(null),A=h([]),F=h({}),W=h(""),u=L2(100,h(!1)),G=D1($,O),M=new Set,$.watch(function(z,E){if(!E.startsWith(O+"/"))return;return G=D1($,O)}),D=function(z){let E,B,I,N,T;if(N=z.split("?")[0].split("#")[0],B=P(N),B=B[0]==="/"?B:"/"+B,I=z.split("?")[1]?.split("#")[0]||"",E=z.includes("#")?z.split("#")[1]:"",T=q2(B,G.routes),T){K2(function(){return Y.value=B,f.value=T.params,R.value=T.route,A.value=H2(T.route.file,O,G.layouts),F.value=Object.fromEntries(new URLSearchParams(I)),W.value=E});for(let L of M)L(q.current);return!0}if(K)K({status:404,path:B});return!1},X=function(){return D(w())},typeof window<"u")window.addEventListener("popstate",X);if(Z=function(z){let E,B,I;if(z.button!==0||z.metaKey||z.ctrlKey||z.shiftKey||z.altKey)return;B=z.target;while(B&&B.tagName!=="A")B=B.parentElement;if(!B?.href)return;if(I=new URL(B.href,location.origin),I.origin!==location.origin)return;if(B.target==="_blank"||B.hasAttribute("data-external"))return;return z.preventDefault(),E=Q&&I.hash?I.hash.slice(1)||"/":I.pathname+I.search+I.hash,q.push(E)},typeof document<"u")document.addEventListener("click",Z);return q={push:function(z){return D(z)?history.pushState(null,"",H(Y.read())):void 0},replace:function(z){return D(z)?history.replaceState(null,"",H(Y.read())):void 0},back:function(){return history.back()},forward:function(){return history.forward()},current:void 0,path:void 0,params:void 0,route:void 0,layouts:void 0,query:void 0,hash:void 0,navigating:void 0,onNavigate:function(z){return M.add(z),function(){return M.delete(z)}},rebuild:function(){return G=D1($,O)},routes:void 0,init:function(){return D(w()),q},destroy:function(){if(typeof window<"u")window.removeEventListener("popstate",X);if(typeof document<"u")document.removeEventListener("click",Z);return M.clear()}},Object.defineProperty(q,"current",{get:function(){return{path:Y.value,params:f.value,route:R.value,layouts:A.value,query:F.value,hash:W.value}}}),Object.defineProperty(q,"path",{get:function(){return Y.value}}),Object.defineProperty(q,"params",{get:function(){return f.value}}),Object.defineProperty(q,"route",{get:function(){return R.value}}),Object.defineProperty(q,"layouts",{get:function(){return A.value}}),Object.defineProperty(q,"query",{get:function(){return F.value}}),Object.defineProperty(q,"hash",{get:function(){return W.value}}),Object.defineProperty(q,"navigating",{get:function(){return u.value},set:function(z){return u.value=z}}),Object.defineProperty(q,"routes",{get:function(){return G.routes}}),q},j2=function($={}){let U,W,A,u,f,Y,F,R,J,_,Q,M,Z,K,X,w,D,O,q,P,G;if({router:q,app:U,components:f,resolver:O,compile:A,target:P,onError:w}=$,Y=typeof P==="string"?document.querySelector(P):P||document.getElementById("app"),!Y)Y=document.createElement("div"),Y.id="app",document.body.appendChild(Y);return Y.style.opacity="0",F=null,J=null,R=[],M=[],K=Y,Q=0,_=null,u=new Map,Z=$.cacheSize||10,W=function(){let H,z;if(F&&J){if(F.beforeUnmount)F.beforeUnmount();if(u.set(J,F),u.size>Z){if(z=u.keys().next().value,H=u.get(z),H.unmounted)H.unmounted();u.delete(z)}return F=null,J=null}},G=function(){W();for(let H=M.length-1;H>=0;H--){let z=M[H];if(z.beforeUnmount)z.beforeUnmount();if(z.unmounted)z.unmounted();z._root?.remove()}return M=[],K=Y},f.watch(function(H,z){let E;if(u.has(z)){if(E=u.get(z),E.unmounted)E.unmounted();return u.delete(z)}}),X=async function(H){let z,E,B,I,N,T,L,y,m,P1,e,x1,i,k1,Y1,F1,R1,H1,j,m1,O1,a;if({route:j,params:F1,layouts:y,query:H1}=H,!j)return;if(j.file===J)return;return I=++Q,q.navigating=!0,(async()=>{try{if(O1=f.read(j.file),!O1){if(w)w({status:404,message:`File not found: ${j.file}`});q.navigating=!1;return}if(x1=await z1(O1,A,f,j.file,O),I!==Q){q.navigating=!1;return}if(z=C1(x1),!z){if(w)w({status:500,message:`No component found in ${j.file}`});q.navigating=!1;return}if(e=!M2(y,R),k1=F?._root,e)G();else W();if(i=e?Y:K,e&&y.length>0){Y.innerHTML="",i=Y;for(let c of y){if(P1=f.read(c),!P1)continue;if(m=await z1(P1,A,f,c,O),I!==Q){q.navigating=!1;return}if(E=C1(m),!E)continue;if(T=new E({app:U,params:F1,router:q}),T.beforeMount)T.beforeMount();a=document.createElement("div"),a.setAttribute("data-layout",c),i.appendChild(a),T.mount(a),M.push(T),m1=a.querySelector("#content")||a,i=m1}R=[...y],K=i}else if(e)Y.innerHTML="",R=[],K=Y;if(B=u.get(j.file),B)u.delete(j.file),i.appendChild(B._root),F=B,J=j.file;else{if(Y1=document.createElement("div"),Y1.setAttribute("data-component",j.file),i.appendChild(Y1),L=new z({app:U,params:F1,query:H1,router:q}),L.beforeMount)L.beforeMount();if(L.mount(Y1),F=L,J=j.file,L.load)await L.load(F1,H1)}return k1?.remove(),q.navigating=!1,Y.style.opacity==="0"?document.fonts.ready.then(function(){return requestAnimationFrame(function(){return Y.style.transition="opacity 150ms ease-in",Y.style.opacity="1"})}):void 0}catch(c){if(q.navigating=!1,Y.style.opacity="1",console.error(`Renderer: error mounting ${j.file}:`,c),w)w({status:500,message:c.message,error:c});N=!1;for(let q1=M.length-1;q1>=0;q1--){let i1=M[q1];if(i1.onError)try{i1.onError(c),N=!0;break}catch(C2){console.error("Renderer: error boundary failed:",C2)}}return(()=>{if(!N)return R1=document.createElement("pre"),R1.style.cssText="color:red;padding:1em",R1.textContent=c.stack||c.message,Y.innerHTML="",Y.appendChild(R1)})()}})()},D={start:function(){return _=r(function(){let H;return H=q.current,H.route?X(H):void 0}),q.init(),D},stop:function(){if(G(),_)_(),_=null;return Y.innerHTML=""},remount:function(){let H;return H=q.current,H.route?X(H):void 0},cache:u},D},c3=async function($="",U={}){let W,A,u,f,Y,F,R,J,_,Q,M,Z,K,X,w,D,O,q,P;if($=$.replace(/\/+$/,""),P=U.target||"#app",_=U.compile||null,Z=U.persist||!1,M=U.hash||!1,!_)_=globalThis?.compileToJS||null;if(typeof document<"u"&&!document.querySelector(P))Q=document.createElement("div"),Q.id=P.replace(/^#/,""),document.body.prepend(Q);if(U.bundle)F=U.bundle;else{if(R=`${$}/bundle`,X=await fetch(R),!X.ok)throw Error(`launch: ${R} (${X.status})`);F=await X.json()}if(f=T2({components:{},routes:{},data:{}}),F.data)f.data=F.data;if(F.routes)f.routes=F.routes;if(Z&&typeof sessionStorage<"u"){u=`__rip_${$}`,A=Z==="local"?localStorage:sessionStorage;try{if(O=A.getItem(u),O){q=JSON.parse(O);for(let G in q){let H=q[G];f.data[G]=H}}}catch{}W=function(){return(()=>{try{return A.setItem(u,JSON.stringify(S2(f.data)))}catch{return null}})()},r(function(){let G;return b1.value,G=setTimeout(W,2000),function(){return clearTimeout(G)}}),window.addEventListener("beforeunload",W)}if(Y=V2(),F.components)Y.load(F.components);if(J=`__rip_${$.replace(/\//g,"_")||"app"}`,w={map:X2(Y),classes:{},key:J},typeof globalThis<"u")globalThis[J]=w.classes;if(f.data.title&&typeof document<"u")document.title=f.data.title;if(D=h2(Y,{root:"components",base:$,hash:M,onError:function(G){return console.error(`[Rip] Error ${G.status}: ${G.message||G.path}`)}}),K=j2({router:D,app:f,components:Y,resolver:w,compile:_,target:P,onError:function(G){return console.error(`[Rip] ${G.message}`,G.error)}}),K.start(),F.data?.watch)D2(Y,D,K,`${$}/watch`,$);if(typeof window<"u")window.app=f,window.__RIP__={app:f,components:Y,router:D,renderer:K,cache:K.cache,version:"0.3.0"};return{app:f,components:Y,router:D,renderer:K}};var v3=globalThis.importRip;globalThis.importRip=async function($){if($.includes("ui.rip"))return l1;return v3($)};export{V3 as rip,J2 as processRipScripts,o as parser,L3 as importRip,X1 as getReactiveRuntime,V1 as getComponentRuntime,l as formatSExpr,d as compileToJS,L1 as compile,N3 as VERSION,p as Lexer,M1 as Compiler,C as CodeGenerator,T3 as BUILD_DATE};
|