rip-lang 3.3.1 → 3.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/bin/rip +29 -2
- package/docs/dist/rip.browser.js +163 -12
- package/docs/dist/rip.browser.min.js +123 -120
- package/docs/dist/rip.browser.min.js.br +0 -0
- package/docs/index.html +2 -1
- package/package.json +3 -3
- package/src/compiler.js +74 -3
- package/src/grammar/solar.rip +4 -9
- package/src/parser.js +6 -7
- package/src/sourcemap.js +121 -0
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
var
|
|
1
|
+
var N1=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"]),S1=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"]),m=new Set([...N1,...S1]);function F1(Y){let F=Y.prototype;F.rewriteTypes=function(){let U=this.tokens,W=(A,$,Q)=>{let D=[A,$];if(D.pre=0,D.data=null,D.loc=Q?.loc??{r:0,c:0,n:0},D.spaced=!1,D.newLine=!1,D.generated=!0,Q)D.origin=Q;return D};this.scanTokens((A,$,Q)=>{let D=A[0];if(D==="IDENTIFIER"){let Z=Q[$+1];if(Z&&Z[0]==="COMPARE"&&Z[1]==="<"&&!Z.spaced){let X=Q[$-1]?.[0]==="DEF",J=f1(Q,$+1);if(J){let K=!X&&Q[$+1+J.length]?.[0]==="TYPE_ALIAS";if(X||K){if(!A.data)A.data={};if(A.data.typeParams=J.map((z)=>z[1]).join(""),Q.splice($+1,J.length),X&&Q[$+1]?.[0]==="("){Q[$+1][0]="CALL_START";let z=1,R=$+2;while(R<Q.length&&z>0){if(Q[R][0]==="("||Q[R][0]==="CALL_START")z++;if(Q[R][0]===")"||Q[R][0]==="CALL_END")z--;if(z===0)Q[R][0]="CALL_END";R++}}}}}}if(D==="TYPE_ANNOTATION"){let Z=Q[$-1];if(!Z)return 1;let X=U1(Q,$+1),J=i(X),K=Z,z="type";if(Z[0]==="CALL_END"||Z[0]===")"){let M=1,G=$-2;while(G>=0&&M>0){let O=Q[G][0];if(O==="CALL_END"||O===")")M++;if(O==="CALL_START"||O==="(")M--;G--}if(G>=0)K=Q[G];z="returnType"}else if(Z[0]==="PARAM_END"){let M=$+1+X.length,G=Q[M];if(G&&(G[0]==="->"||G[0]==="=>"))K=G;z="returnType"}else if(Z[0]==="IDENTIFIER"&&$>=2&&Q[$-2]?.[0]==="DEF")z="returnType";if(!K.data)K.data={};K.data[z]=J;let R=1+X.length;return Q.splice($,R),0}if(D==="TYPE_ALIAS"){let Z=Q[$-1];if(!Z)return 1;let X=Z[1],J=$>=2&&Q[$-2]?.[0]==="EXPORT",K=J?$-2:$-1,z=Q[$+1],R=(G)=>{let O=W("TYPE_DECL",X,Z);if(O.data={name:X,typeText:G,exported:J},Z.data?.typeParams)O.data.typeParams=Z.data.typeParams;return O};if(z&&z[0]==="IDENTIFIER"&&z[1]==="type"&&Q[$+2]?.[0]==="INDENT"){let G=e(Q,$+2);return Q.splice(K,G-K+1,R(W1(Q,$+2))),0}if(z&&(z[0]==="TERMINATOR"||z[0]==="INDENT")){let G=j1(Q,$+1);if(G)return Q.splice(K,G.endIdx-K+1,R(G.typeText)),0}let M=U1(Q,$+1);return Q.splice(K,$+1+M.length-K,R(i(M))),0}if(D==="INTERFACE"){let Z=$>=1&&Q[$-1]?.[0]==="EXPORT",X=$+1,J=Q[X];if(!J)return 1;let K=J[1],z=null,R=X+1;if(Q[R]?.[0]==="EXTENDS")z=Q[R+1]?.[1],R=R+2;if(Q[R]?.[0]==="INDENT"){let M=W1(Q,R),G=e(Q,R),O=W("TYPE_DECL",K,J);O.data={name:K,kind:"interface",extends:z,typeText:M,exported:Z};let H=Z?$-1:$,I=G-H+1;return Q.splice(H,I,O),0}return 1}return 1})}}function U1(Y,F){let U=[],W=0;while(F<Y.length){let A=Y[F],$=A[0],Q=$==="("||$==="["||$==="CALL_START"||$==="PARAM_START"||$==="INDEX_START"||$==="COMPARE"&&A[1]==="<",D=$===")"||$==="]"||$==="CALL_END"||$==="PARAM_END"||$==="INDEX_END"||$==="COMPARE"&&A[1]===">";if($==="SHIFT"&&A[1]===">>"&&W>=2){W-=2,U.push(A),F++;continue}if(Q){W++,U.push(A),F++;continue}if(D){if(W>0){W--,U.push(A),F++;continue}break}if(W===0){if($==="="||$==="REACTIVE_ASSIGN"||$==="COMPUTED_ASSIGN"||$==="READONLY_ASSIGN"||$==="REACT_ASSIGN"||$==="TERMINATOR"||$==="INDENT"||$==="OUTDENT"||$==="->"||$===",")break}U.push(A),F++}return U}function i(Y){if(Y.length===0)return"";let F=Y.map((U)=>U[1]).join(" ").replace(/\s+/g," ").trim();return F=F.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,", "),F}function f1(Y,F){if(F>=Y.length)return null;let U=Y[F];if(U[0]!=="COMPARE"||U[1]!=="<")return null;let W=[U],A=1,$=F+1;while($<Y.length&&A>0){let Q=Y[$];if(W.push(Q),Q[0]==="COMPARE"&&Q[1]==="<")A++;else if(Q[0]==="COMPARE"&&Q[1]===">")A--;$++}return A===0?W:null}function W1(Y,F){let U=[],W=F+1,A=1;while(W<Y.length&&A>0){let $=Y[W];if($[0]==="INDENT"){A++,W++;continue}if($[0]==="OUTDENT"){if(A--,A===0)break;W++;continue}if($[0]==="TERMINATOR"){W++;continue}if(A===1&&($[0]==="PROPERTY"||$[0]==="IDENTIFIER")){let Q=$[1],D=!1,Z=!1;if(W++,Q==="readonly"&&(Y[W]?.[0]==="PROPERTY"||Y[W]?.[0]==="IDENTIFIER")){if(Z=!0,Q=Y[W][1],Y[W].data?.predicate)D=!0;W++}if($.data?.predicate)D=!0;if(Y[W]?.[1]==="?"&&!Y[W]?.spaced)D=!0,W++;if(Y[W]?.[1]===":")W++;let X=[];while(W<Y.length){let R=Y[W];if(R[0]==="TERMINATOR"||R[0]==="OUTDENT"||R[0]==="INDENT")break;X.push(R),W++}let J=i(X),K=Z?"readonly ":"",z=D?"?":"";U.push(`${K}${Q}${z}: ${J}`)}else W++}return"{ "+U.join("; ")+" }"}function e(Y,F){let U=0;for(let W=F;W<Y.length;W++){if(Y[W][0]==="INDENT")U++;if(Y[W][0]==="OUTDENT"){if(U--,U===0)return W}}return Y.length-1}function j1(Y,F){let U=F;if(Y[U]?.[0]==="TERMINATOR")U++;if(Y[U]?.[0]!=="INDENT")return null;let W=U;U++;while(U<Y.length&&Y[U][0]==="TERMINATOR")U++;if(!Y[U]||Y[U][1]!=="|")return null;let A=[],$=1;U=W+1;while(U<Y.length&&$>0){let D=Y[U];if(D[0]==="INDENT"){$++,U++;continue}if(D[0]==="OUTDENT"){if($--,$===0)break;U++;continue}if(D[0]==="TERMINATOR"){U++;continue}if(D[1]==="|"&&$===1){U++;let Z=[];while(U<Y.length){let X=Y[U];if(X[0]==="TERMINATOR"||X[0]==="OUTDENT"||X[1]==="|"&&$===1)break;Z.push(X),U++}if(Z.length>0)A.push(i(Z));continue}U++}if(A.length===0)return null;let Q=e(Y,W);return{typeText:A.join(" | "),endIdx:Q}}function Q1(Y){let F=[],U=0,W=" ",A=()=>W.repeat(U),$=!1,Q=(D,Z,X)=>{if(Z.startsWith("{ ")&&Z.endsWith(" }")){let J=Z.slice(2,-2).split("; ").filter((K)=>K.trim());if(J.length>0){F.push(`${A()}${D}{`),U++;for(let K of J)F.push(`${A()}${K};`);U--,F.push(`${A()}}${X}`);return}}F.push(`${A()}${D}${Z}${X}`)};for(let D=0;D<Y.length;D++){let Z=Y[D],X=Z[0],J=!1;if(X==="EXPORT"){if(J=!0,D++,D>=Y.length)break;Z=Y[D],X=Z[0]}if(X==="TYPE_DECL"){let K=Z.data;if(!K)continue;let z=J||K.exported?"export ":"",R=K.typeParams||"";if(K.kind==="interface"){let M=K.extends?` extends ${K.extends}`:"";Q(`${z}interface ${K.name}${R}${M} `,K.typeText||"{}","")}else{let M=p(K.typeText||"");Q(`${z}type ${K.name}${R} = `,M,";")}continue}if(X==="ENUM"){let K=J?"export ":"",z=Y[D+1];if(!z)continue;let R=z[1],M=D+2;if(Y[M]?.[0]==="INDENT"){F.push(`${A()}${K}enum ${R} {`),U++,M++;let G=[];while(M<Y.length&&Y[M][0]!=="OUTDENT"){if(Y[M][0]==="TERMINATOR"){M++;continue}if(Y[M][0]==="IDENTIFIER"){let O=Y[M][1];if(M++,Y[M]?.[1]==="="){M++;let H=Y[M]?.[1];G.push(`${O} = ${H}`),M++}else G.push(O)}else M++}for(let O=0;O<G.length;O++){let H=O<G.length-1?",":"";F.push(`${A()}${G[O]}${H}`)}U--,F.push(`${A()}}`)}continue}if(X==="CLASS"){let K=J?"export ":"",z=Y[D+1];if(!z)continue;let R=z[1],M="",G=D+2;if(Y[G]?.[0]==="EXTENDS")M=` extends ${Y[G+1]?.[1]||""}`,G+=2;if(Y[G]?.[0]==="INDENT"){let O=!1,H=G+1;while(H<Y.length&&Y[H][0]!=="OUTDENT"){if(Y[H].data?.type||Y[H].data?.returnType){O=!0;break}H++}if(O)F.push(`${A()}${K}declare class ${R}${M} {`),$=!0,U++}continue}if(X==="DEF"){let K=Y[D+1];if(!K)continue;let z=K[1],R=K.data?.returnType,M=K.data?.typeParams||"",G=D+2,O=[];if(Y[G]?.[0]==="CALL_START"){G++;while(G<Y.length&&Y[G][0]!=="CALL_END"){if(Y[G][0]==="IDENTIFIER"){let H=Y[G][1],I=Y[G].data?.type;if(I)O.push(`${H}: ${p(I)}`);else O.push(H)}G++}}if(R||O.some((H)=>H.includes(":"))){let H=J?"export ":"",I=$?"":J?"":"declare ",P=R?`: ${p(R)}`:"",E=O.join(", ");F.push(`${A()}${H}${I}function ${z}${M}(${E})${P};`)}continue}if(X==="INDENT")continue;if(X==="OUTDENT"){if($)U--,F.push(`${A()}}`),$=!1;continue}if(X==="IDENTIFIER"&&Z.data?.type){let K=Z[1],z=p(Z.data.type),R=Y[D+1];if(R){let M=J?"export ":"",G=J?"":"declare ";if(R[0]==="READONLY_ASSIGN")F.push(`${A()}${M}${G}const ${K}: ${z};`);else if(R[0]==="REACTIVE_ASSIGN")F.push(`${A()}${M}${G}const ${K}: Signal<${z}>;`);else if(R[0]==="COMPUTED_ASSIGN")F.push(`${A()}${M}${G}const ${K}: Computed<${z}>;`);else if(R[0]==="=")if($)F.push(`${A()}${K}: ${z};`);else F.push(`${A()}${M}let ${K}: ${z};`);else if($)F.push(`${A()}${K}: ${z};`)}else if($)F.push(`${A()}${K}: ${z};`)}}if(F.length===0)return null;return F.join(`
|
|
2
2
|
`)+`
|
|
3
|
-
`}function
|
|
4
|
-
`),Y=Y.replace(
|
|
3
|
+
`}function p(Y){if(!Y)return Y;return Y=Y.replace(/::/g,":"),Y=Y.replace(/(\w+(?:<[^>]+>)?)\?\?/g,"$1 | null | undefined"),Y=Y.replace(/(\w+(?:<[^>]+>)?)\?(?![.:])/g,"$1 | undefined"),Y=Y.replace(/(\w+(?:<[^>]+>)?)\!/g,"NonNullable<$1>"),Y}function Z1(Y,F,U){let[W,A]=F,$=W?.valueOf?.()??W,Q=[];if(Array.isArray(A)){let X=A[0]==="block"?A.slice(1):[A];for(let J of X)if(Array.isArray(J)){if(J[0]?.valueOf?.()==="="){let K=J[1]?.valueOf?.()??J[1],z=J[2]?.valueOf?.()??J[2];Q.push([K,z])}}}if(Q.length===0)return`const ${$} = {}`;let D=Q.map(([X,J])=>`${X}: ${J}`).join(", "),Z=Q.map(([X,J])=>`${J}: "${X}"`).join(", ");return`const ${$} = {${D}, ${Z}}`}var D1=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"]),J1=new Set(["undefined","Infinity","NaN","then","unless","until","loop","of","by","when","def","component","render","enum","interface"]),A1={and:"&&",or:"||",is:"==",isnt:"!=",not:"!",yes:"true",no:"false",on:"true",off:"false"},X1=new Set(Object.keys(A1)),L1=new Set(["case","function","var","void","with","const","let","native","implements","package","private","protected","public","static"]),u1=new Set(["break","continue","debugger"]),V1=new Set(["NEW","TYPEOF","DELETE"]),C1=new Set(["IN","OF","INSTANCEOF"]),a=new Set(["IDENTIFIER","PROPERTY",")","]","@","THIS","SUPER","DYNAMIC_IMPORT","?."]),P1=new Set([...a,"NUMBER","INFINITY","NAN","STRING","STRING_END","REGEX","REGEX_END","BOOL","NULL","UNDEFINED","}"]),d=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","@","->","=>","[","(","{","--","++"]),h1=new Set(["+","-"]),y1=new Set(["POST_IF","POST_UNLESS","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR","||","&&"]),b1=new Set(["STRING","STRING_END","REGEX","REGEX_END","NUMBER","BOOL","NULL","UNDEFINED","INFINITY","NAN","]","}"]),b=new Set(["(","[","{","INDENT","CALL_START","PARAM_START","INDEX_START","STRING_START","INTERPOLATION_START","REGEX_START"]),h=new Set([")","]","}","OUTDENT","CALL_END","PARAM_END","INDEX_END","STRING_END","INTERPOLATION_END","REGEX_END"]),v1={"(":")",")":"(","[":"]","]":"[","{":"}","}":"{",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"},K1=new Set(["CATCH","THEN","ELSE","FINALLY",...h]),$1=new Set(["IDENTIFIER","PROPERTY","SUPER",")","CALL_END","]","INDEX_END","@","THIS"]),g1=new Set(["IF","TRY","FINALLY","CATCH","CLASS","SWITCH","COMPONENT"]),R1=new Set(["ELSE","->","=>","TRY","FINALLY","THEN"]),k1=new Set(["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"]),n=new Set(["INDENT","OUTDENT","TERMINATOR"]),z1=new Set([".","?."]),M1=new Set(["\\",".","?.","UNARY","DO","DO_IIFE","MATH","UNARY_MATH","+","-","**","SHIFT","RELATION","COMPARE","&","^","|","&&","||","SPACE?","EXTENDS"]),x1=new Set([...P1,"++","--"]),G1=new Set(["-=","+=","/=","*=","%=","||=","&&=","?=","??=","<<=",">>=",">>>=","&=","^=","|=","**=","//=","%%="]),c1=new Set(["*","/","%","//","%%"]),l1=new Set(["==","!=","===","!==","<",">","<=",">=","=~"]),m1=new Set(["<<",">>",">>>"]),p1=new Set(["!","~"]),i1=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+(?:!|[?](?![.?[(]))?)([^\n\S]*:(?![=:]))?/,d1=/^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,n1=/^(?:<=>|::=|::|[-=]>|~>|~=|:=|=!|===|!==|!\?|\?\?|=~|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?\.?|\.{2,3})/,a1=/^[^\n\S]+/,s1=/^(?:\n[^\n\S]*)+/,o1=/^(\s*)###([^#][\s\S]*?)(?:###([^\n\S]*)|###$)|^((?:\s*#(?!##[^#]).*)+)/,r1=/^[-=]>/,t1=/^(?:~[=>]|=!)/,e1=/^(?:'''|"""|'|")/,$2=/^(?:[^\\']|\\[\s\S])*/,A2=/^(?:[^\\"#$]|\\[\s\S]|\#(?!\{)|\$(?!\{))*/,Y2=/^(?:[^\\']|\\[\s\S]|'(?!''))*/,U2=/^(?:[^\\"#$]|\\[\s\S]|"(?!"")|\#(?!\{)|\$(?!\{))*/,H1=/\n+([^\n\S]*)(?=\S)/g,W2=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/,O1=/^\w*/,F2=/^(?!.*(.).*\1)[gimsuy]*$/,Q2=/^(?:[^\\\/#\s]|\\[\s\S]|\/(?!\/\/)|\#(?!\{)|\s+(?:#(?!\{).*)?)*/,Z2=/^`(?!``)((?:[^`\\]|\\[\s\S])*)`/,D2=/^```((?:[^`\\]|\\[\s\S]|`(?!``))*)```/,J2=/\s+$/,q1=/^\s*(?:,|\??\.(?![.\d]))/,X2=65279;function _1(Y,F,{pre:U=0,row:W=0,col:A=0,len:$=0,data:Q=null}={}){let D=[Y,F];return D.pre=U,D.data=Q,D.loc={r:W,c:A,n:$},D.spaced=U>0,D.newLine=!1,D}function u(Y,F,U){let W=_1(Y,F);if(W.generated=!0,U)W.origin=U;return W}function C(Y,{row:F=0,col:U=0,len:W=1}={}){let A=SyntaxError(Y);throw A.location={first_line:F,first_column:U,last_column:U+W-1},A}function K2(Y){if(Y==null)return NaN;switch(Y.charAt(1)){case"b":return parseInt(Y.slice(2).replace(/_/g,""),2);case"o":return parseInt(Y.slice(2).replace(/_/g,""),8);case"x":return parseInt(Y.slice(2).replace(/_/g,""),16);default:return parseFloat(Y.replace(/_/g,""))}}class v{tokenize(Y,F={}){this.code=Y,this.tokens=[],this.ends=[],this.chunk="",this.pos=0,this.row=F.row||0,this.col=F.col||0,this.indent=0,this.indents=[],this.seenFor=!1,this.seenImport=!1,this.seenExport=!1,this.importSpecifierList=!1,this.exportSpecifierList=!1,this.inRenderBlock=!1,this.renderIndent=0,Y=this.clean(Y),this.code=Y;while(this.pos<Y.length){this.chunk=Y.slice(this.pos);let U=this.identifierToken()||this.commentToken()||this.whitespaceToken()||this.lineToken()||this.stringToken()||this.numberToken()||this.regexToken()||this.jsToken()||this.literalToken();if(U===0)C(`unexpected character: ${this.chunk.charAt(0)}`,{row:this.row,col:this.col});if(this.advance(U),F.untilBalanced&&this.ends.length===0)return{tokens:this.tokens,index:this.pos}}if(this.closeIndentation(),this.ends.length>0){let U=this.ends[this.ends.length-1];C(`missing ${U.tag}`,{row:this.row,col:this.col})}if(F.rewrite===!1)return this.tokens;return this.rewrite(this.tokens)}clean(Y){if(Y.charCodeAt(0)===X2)Y=Y.slice(1);if(Y=Y.replace(/\r\n?/g,`
|
|
4
|
+
`),Y=Y.replace(J2,""),/^[^\n\S]/.test(Y))Y=`
|
|
5
5
|
`+Y;return Y}advance(Y){let F=this.code.slice(this.pos,this.pos+Y);for(let U=0;U<F.length;U++)if(F[U]===`
|
|
6
|
-
`)this.row++,this.col=0;else this.col++;this.pos+=Y}emit(Y,F,{len:U,data:W,pre:A}={}){let $=_1(Y,F,{pre:A??0,row:this.row,col:this.col,len:U??(typeof F==="string"?F.length:0),data:W});return this.tokens.push($),$}prev(){return this.tokens[this.tokens.length-1]}prevTag(){let Y=this.prev();return Y?Y[0]:void 0}prevVal(){let Y=this.prev();return Y?Y[1]:void 0}identifierToken(){if(
|
|
7
|
-
`)return 0;let F=this.prev();if(F)if(Y)F.spaced=!0,F.pre=Y[0].length;else F.newLine=!0;return Y?Y[0].length:0}lineToken(){let Y=
|
|
8
|
-
`);if(this.isUnfinished()){if(U<this.indent&&/^\s*,/.test(this.chunk)&&!
|
|
9
|
-
`,{len:0})}isUnfinished(){if(this.inRenderBlock&&
|
|
10
|
-
`)A--;A++;let $=this.chunk.slice(A,W),Q=/^\s*$/.test($)?$.length:null,D="";for(let J of U)if(J[0]==="NEOSTRING")D+=J[1];let Z=null,X;
|
|
11
|
-
`)}if(A===0&&F?.length===3)D=D.replace(/^\n/,"");if(A===Y.length-1&&F?.length===3)D=D.replace(/\n[^\S\n]*$/,"");this.emit("STRING",`"${D}"`,{len:Q.length,data:{quote:F}})}}if(Y.length>1)this.emit("STRING_END",")",{len:F?.length||0});return W}numberToken(){let Y=p1.exec(this.chunk);if(!Y)return 0;let F=Y[0],U=F.length,W={row:this.row,col:this.col};if(/^0[BOX]/.test(F))y(`radix prefix in '${F}' must be lowercase`,{...W,col:W.col+1});if(/^0\d*[89]/.test(F))y(`decimal literal '${F}' must not be prefixed with '0'`,{...W,len:U});if(/^0\d+/.test(F))y(`octal literal '${F}' must be prefixed with '0o'`,{...W,len:U});let A=D2(F),$=A===1/0?"INFINITY":"NUMBER",Q={parsedValue:A};if($==="INFINITY")Q.original=F;return this.emit($,F,{len:U,data:Q}),U}regexToken(){let Y=this.matchWithInterpolations(W2,"///");if(Y){let{tokens:X,index:J}=Y,[M]=q1.exec(this.chunk.slice(J)),K=J+M.length;if(X.length===1||!X.some((R)=>R[0]==="TOKENS")){let R=X[0]?.[1]||"";this.emit("REGEX",`/${R}/${M}`,{len:K,data:{delimiter:"///",heregex:{flags:M}}})}else{if(this.emit("REGEX_START","(",{len:0}),this.emit("IDENTIFIER","RegExp",{len:0}),this.emit("CALL_START","(",{len:0}),this.mergeInterpolationTokens(X,{quote:"///",endOffset:K-M.length}),M)this.emit(",",",",{len:0}),this.emit("STRING",`"${M}"`,{len:M.length});this.emit(")",")",{len:0}),this.emit("REGEX_END",")",{len:0})}return K}let F=Y2.exec(this.chunk);if(!F)return 0;let[U,W,A]=F,$=this.prev();if($){if($.spaced&&d.has($[0])&&(!A||/^\/=?\s/.test(U)))return 0;if(g1.has($[0])&&!($.spaced&&d.has($[0])))return 0}if(!A)y("missing / (unclosed regex)",{row:this.row,col:this.col});let Q=U.length,[D]=q1.exec(this.chunk.slice(Q)),Z=Q+D.length;if(!U2.test(D))y(`invalid regular expression flags ${D}`,{row:this.row,col:this.col+Q,len:D.length});return this.emit("REGEX",`/${W}/${D}`,{len:Z,data:{delimiter:"/"}}),Z}jsToken(){if(this.chunk[0]!=="`")return 0;let Y=Q2.exec(this.chunk)||F2.exec(this.chunk);if(!Y)return 0;let F=Y[1],U=Y[0].length;return this.emit("JS",F,{len:U,data:{here:Y[0].startsWith("```")}}),U}literalToken(){let Y=i1.exec(this.chunk),F=Y?Y[0]:this.chunk.charAt(0),U=F,W=this.prev();if(s1.test(F))this.tagParameters();if(W&&(F==="="||R1.has(F))){if(F==="="&&(W[1]==="||"||W[1]==="&&"||W[1]==="??")&&!W.spaced)return W[0]="COMPOUND_ASSIGN",W[1]+="=",F.length}if(F==="("&&W?.[0]==="IMPORT")W[0]="DYNAMIC_IMPORT";if(F==="{"&&this.seenImport)this.importSpecifierList=!0;if(F==="}"&&this.importSpecifierList)this.importSpecifierList=!1;if(F==="{"&&W?.[0]==="EXPORT")this.exportSpecifierList=!0;if(F==="}"&&this.exportSpecifierList)this.exportSpecifierList=!1;if(F===";")this.seenFor=this.seenImport=this.seenExport=!1,U="TERMINATOR";else if(F==="::=")U="TYPE_ALIAS";else if(F==="::")U="TYPE_ANNOTATION";else if(F==="~=")U="COMPUTED_ASSIGN";else if(F===":=")U="REACTIVE_ASSIGN";else if(F==="<=>")U="BIND";else if(F==="~>")U="REACT_ASSIGN";else if(F==="=!")U="READONLY_ASSIGN";else if(F==="*"&&W?.[0]==="EXPORT")U="EXPORT_ALL";else if(x1.has(F))U="MATH";else if(k1.has(F))U="COMPARE";else if(R1.has(F))U="COMPOUND_ASSIGN";else if(l1.has(F))U="UNARY_MATH";else if(c1.has(F))U="SHIFT";else if(F==="?"&&W?.spaced)U="SPACE?";else if(F==="?"&&(this.chunk[1]==="["||this.chunk[1]==="("))U="?.";else if(W){if(F==="("&&!W.spaced&&d.has(W[0])){if(W[0]==="?.")W[0]="ES6_OPTIONAL_CALL";U="CALL_START"}if(F==="["&&!W.spaced&&H1.has(W[0])){if(U="INDEX_START",W[0]==="?.")W[0]="ES6_OPTIONAL_INDEX"}}if(F==="("||F==="{"||F==="[")this.ends.push({tag:y1[F],origin:[U,F]});else if(F===")"||F==="}"||F==="]")this.pair(F);return this.emit(U,F,{len:F.length}),F.length}tagParameters(){if(this.prevTag()!==")")return this.tagDoIife();let Y=this.tokens.length-1,F=[];this.tokens[Y][0]="PARAM_END";while(Y-- >0){let U=this.tokens[Y];if(U[0]===")")F.push(U);else if(U[0]==="("||U[0]==="CALL_START")if(F.length)F.pop();else if(U[0]==="(")return U[0]="PARAM_START",this.tagDoIife(Y-1);else{this.tokens[this.tokens.length-1][0]="CALL_END";return}}}tagDoIife(Y){let F=this.tokens[Y??this.tokens.length-1];if(F?.[0]==="DO")F[0]="DO_IIFE"}rewrite(Y){return this.tokens=Y,this.removeLeadingNewlines(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.rewriteRender(),this.rewriteTypes(),this.tagPostfixConditionals(),this.addImplicitBracesAndParens(),this.addImplicitCallCommas(),this.tokens}removeLeadingNewlines(){let Y=0;while(this.tokens[Y]?.[0]==="TERMINATOR")Y++;if(Y>0)this.tokens.splice(0,Y)}closeOpenCalls(){this.scanTokens((Y,F)=>{if(Y[0]==="CALL_START")this.detectEnd(F+1,(U)=>U[0]===")"||U[0]==="CALL_END",(U)=>U[0]="CALL_END");return 1})}closeOpenIndexes(){this.scanTokens((Y,F)=>{if(Y[0]==="INDEX_START")this.detectEnd(F+1,(U)=>U[0]==="]"||U[0]==="INDEX_END",(U,W)=>{if(this.tokens[W+1]?.[0]===":")Y[0]="[",U[0]="]";else U[0]="INDEX_END"});return 1})}normalizeLines(){let Y=null,F=null,U=null,W=($,Q)=>{return $[1]!==";"&&v1.has($[0])&&!($[0]==="TERMINATOR"&&D1.has(this.tokens[Q+1]?.[0]))&&!($[0]==="ELSE"&&Y!=="THEN")||$[0]==="INDENT"&&!$.generated&&(Y==="->"||Y==="=>")||$[0]===","&&(Y==="->"||Y==="=>")&&!this.commaInImplicitCall(Q)||M1.has($[0])&&(this.tokens[Q-1]?.newLine||this.tokens[Q-1]?.[0]==="OUTDENT")},A=($,Q)=>{let D=this.tokens[Q-1]?.[0]===","?Q-1:Q;this.tokens.splice(D,0,U)};this.scanTokens(($,Q,D)=>{let[Z]=$;if(Z==="TERMINATOR"){if(this.tokens[Q+1]?.[0]==="ELSE"&&this.tokens[Q-1]?.[0]!=="OUTDENT")return D.splice(Q,1,...this.makeIndentation()),1;if(D1.has(this.tokens[Q+1]?.[0]))return D.splice(Q,1),0}if(Z==="CATCH")for(let X=1;X<=2;X++){let J=this.tokens[Q+X]?.[0];if(J==="OUTDENT"||J==="TERMINATOR"||J==="FINALLY")return D.splice(Q+X,0,...this.makeIndentation()),2+X}if((Z==="->"||Z==="=>")&&(this.tokens[Q+1]?.[0]===","||this.tokens[Q+1]?.[0]==="]"))return[F,U]=this.makeIndentation(),D.splice(Q+1,0,F,U),1;if(X1.has(Z)&&this.tokens[Q+1]?.[0]!=="INDENT"&&!(Z==="ELSE"&&this.tokens[Q+1]?.[0]==="IF")){if(Y=Z,[F,U]=this.makeIndentation(),Z==="THEN")F.fromThen=!0;if(D.splice(Q+1,0,F),this.detectEnd(Q+2,W,A),Z==="THEN")D.splice(Q,1);return 1}return 1})}rewriteRender(){let Y=!1,F=0,U=0,W=[],A=(Z)=>{let X=Z.split("#")[0];return l.has(X)},$=(Z)=>{if(!Z||typeof Z!=="string")return!1;return/^[A-Z]/.test(Z)},Q=(Z)=>{return A(Z)||$(Z)},D=(Z,X)=>{let J=X;while(J>0){let M=Z[J-1][0];if(M==="INDENT"||M==="OUTDENT"||M==="TERMINATOR"||M==="RENDER"||M==="CALL_END"||M===")")break;J--}return Z[J]&&Z[J][0]==="IDENTIFIER"&&A(Z[J][1])};this.scanTokens(function(Z,X,J){let M=Z[0],K=X<J.length-1?J[X+1]:null;if(M==="RENDER")return Y=!0,F=U+1,1;if(M==="INDENT")return U++,1;if(M==="OUTDENT"){U--;let R=0;while(W.length>0&&W[W.length-1]>U){let z=V("CALL_END",")",Z);J.splice(X+1+R,0,z),W.pop(),R++}if(Y&&U<F)Y=!1;return 1+R}if(!Y)return 1;if(M==="IDENTIFIER"&&!Z.spaced){let R=[Z[1]],z=X+1;while(z+1<J.length){let q=J[z],G=J[z+1];if(q[0]==="-"&&!q.spaced&&(G[0]==="IDENTIFIER"||G[0]==="PROPERTY")){if(R.push(G[1]),z+=2,G[0]==="PROPERTY")break}else break}if(R.length>1&&z>X+1&&J[z-1][0]==="PROPERTY")return Z[0]="STRING",Z[1]=`"${R.join("-")}"`,J.splice(X+1,z-X-1),1}if(M==="."){let R=X>0?J[X-1]:null,z=R?R[0]:null;if(z==="INDENT"||z==="TERMINATOR"){if(K&&K[0]==="PROPERTY"){let q=V("IDENTIFIER","div",Z);return J.splice(X,0,q),2}}}if(M==="IDENTIFIER"||M==="PROPERTY"){let R=J[X+1],z=J[X+2];if(R&&R[0]==="#"&&z&&z[0]==="PROPERTY"){if(Z[1]=Z[1]+"#"+z[1],z.spaced)Z.spaced=!0;return J.splice(X+1,2),1}}if(M==="BIND"){let R=X>0?J[X-1]:null,z=J[X+1];if(R&&(R[0]==="IDENTIFIER"||R[0]==="PROPERTY")&&z&&z[0]==="IDENTIFIER")return R[1]=`__bind_${R[1]}__`,Z[0]=":",Z[1]=":",1}if(M==="@"){let R=X+1;if(R<J.length&&J[R][0]==="PROPERTY"){R++;while(R+1<J.length&&J[R][0]==="."&&J[R+1][0]==="PROPERTY")R+=2;if(R>X+2&&R<J.length&&J[R][0]===":"){let z=V("[","[",Z);J.splice(X,0,z);let q=V("]","]",J[R+1]);return J.splice(R+1,0,q),2}}}if(M==="."&&K&&K[0]==="("){let R=X>0?J[X-1]:null,z=R?R[0]:null,q=z==="INDENT"||z==="TERMINATOR",G=V("PROPERTY","__cx__",Z);K[0]="CALL_START";let H=1;for(let I=X+2;I<J.length&&H>0;I++)if(J[I][0]==="("||J[I][0]==="CALL_START")H++;else if(J[I][0]===")"){if(H--,H===0)J[I][0]="CALL_END"}else if(J[I][0]==="CALL_END")H--;if(q){let I=V("IDENTIFIER","div",Z);return J.splice(X,0,I),J.splice(X+2,0,G),3}else return J.splice(X+1,0,G),2}if(K&&K[0]==="INDENT"){if(M==="->"||M==="=>"||M==="CALL_START"||M==="(")return 1;let R=!1;if(M==="IDENTIFIER"&&Q(Z[1]))R=!0;else if(M==="PROPERTY"||M==="STRING"||M==="CALL_END"||M===")")R=D(J,X);else if(M==="IDENTIFIER"&&X>1&&J[X-1][0]==="..."){if(D(J,X)){let z=V(",",",",Z),q=V("->","->",Z);return q.newLine=!0,J.splice(X+1,0,z,q),3}}if(R){let z=V("CALL_START","(",Z),q=V("->","->",Z);return q.newLine=!0,J.splice(X+1,0,z,q),W.push(U+1),3}}return 1})}tagPostfixConditionals(){let Y=null,F=(W,A)=>{return W[0]==="TERMINATOR"||W[0]==="INDENT"&&!X1.has(this.tokens[A-1]?.[0])},U=(W)=>{if(W[0]!=="INDENT"||W.generated&&!W.fromThen)Y[0]="POST_"+Y[0]};this.scanTokens((W,A)=>{if(W[0]!=="IF"&&W[0]!=="UNLESS")return 1;return Y=W,this.detectEnd(A+1,F,U),1})}addImplicitBracesAndParens(){let Y=[],F=!1;this.scanTokens((U,W,A)=>{let[$]=U,Q=A[W-1]||[],D=A[W+1]||[],[Z]=Q,[X]=D,J=W,M=(_)=>W-J+_,K=()=>Y[Y.length-1],R=(_)=>_?.[2]?.ours,z=()=>R(K())&&K()?.[0]==="(",q=()=>R(K())&&K()?.[0]==="{",G=(_)=>{Y.push(["(",_,{ours:!0}]),A.splice(_,0,V("CALL_START","("))},H=()=>{Y.pop(),A.splice(W,0,V("CALL_END",")")),W+=1},I=(_,T={})=>{Y.push(["{",_,{sameLine:!0,startsLine:T.startsLine??!0,ours:!0}]);let B=V("{","{");if(!B.data)B.data={};B.data.generated=!0,A.splice(_,0,B)},O=(_)=>{_=_??W,Y.pop(),A.splice(_,0,V("}","}")),W+=1};if((z()||q())&&b1.has($))return Y.push(["CONTROL",W,{ours:!0}]),M(1);if($==="INDENT"&&R(K())){if(Z!=="=>"&&Z!=="->"&&Z!=="["&&Z!=="("&&Z!==","&&Z!=="{"&&Z!=="ELSE"&&Z!=="=")while(z()||q()&&Z!==":")if(z())H();else O();if(K()?.[2]?.ours&&K()[0]==="CONTROL")Y.pop();return Y.push([$,W]),M(1)}if(g.has($))return Y.push([$,W]),M(1);if(b.has($)){while(R(K()))if(z())H();else if(q())O();else Y.pop();Y.pop()}if(e.has($)&&U.spaced&&(i.has(X)||X==="..."&&i.has(A[W+2]?.[0])||V1.has(X)&&!D.spaced&&!D.newLine)&&!(($==="]"||$==="}")&&(X==="->"||X==="=>")))return G(W+1),M(2);if(e.has($)&&this.tokens[W+1]?.[0]==="INDENT"&&this.looksObjectish(W+2)&&!this.findTagsBackwards(W,["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"]))return G(W+1),Y.push(["INDENT",W+2]),M(3);if($==="SPACE?")F=!0;if($===":"){if(F)return F=!1,M(1);let _=b.has(this.tokens[W-1]?.[0])?Y[Y.length-1]?.[1]??W-1:W-1;if(this.tokens[W-2]?.[0]==="@")_=W-2;let T=_<=0||n.has(this.tokens[_-1]?.[0])||this.tokens[_-1]?.newLine;if(K()){let[B,N]=K(),L=Y[Y.length-2];if((B==="{"||B==="INDENT"&&L?.[0]==="{"&&!R(L))&&(T||this.tokens[_-1]?.[0]===","||this.tokens[_-1]?.[0]==="{"||this.tokens[_]?.[0]==="{"))return M(1)}return I(_,{startsLine:!!T}),M(2)}if(n.has($))for(let _=Y.length-1;_>=0;_--){if(!R(Y[_]))break;if(Y[_][0]==="{")Y[_][2].sameLine=!1}let E=Z==="OUTDENT"||Q.newLine,w=$==="||"||$==="&&",P=!1;if(w){let _=W+1,T=A[_]?.[0];if(T==="("||T==="["||T==="{"){for(let B=1;++_<A.length&&B>0;)if(T=A[_][0],T==="("||T==="["||T==="{")B++;else if(T===")"||T==="]"||T==="}")B--}else if(T&&T!=="TERMINATOR"&&T!=="OUTDENT"&&T!==",")_++;P=A[_]?.[0]===","}if(C1.has($)&&!P||M1.has($)&&E)while(R(K())){let[_,,{sameLine:T,startsLine:B}]=K();if(z()&&Z!==",")H();else if(q()&&!w&&T&&$!=="TERMINATOR"&&Z!==":")O();else if(q()&&$==="TERMINATOR"&&Z!==","&&!(B&&this.looksObjectish(W+1)))O();else if(K()?.[2]?.ours&&K()[0]==="CONTROL"&&A[K()[1]]?.[0]==="CLASS"&&$==="TERMINATOR")Y.pop();else break}if($===","&&!this.looksObjectish(W+1)&&q()&&(X!=="TERMINATOR"||!this.looksObjectish(W+2))){let _=X==="OUTDENT"?1:0;while(q())O(W+_)}return M(1)})}addImplicitCallCommas(){let Y=0,F=0,U=this.tokens;while(F<U.length){let W=U[F][0],A=F>0?U[F-1][0]:null;if(W==="CALL_START"||W==="(")Y++;if(W==="CALL_END"||W===")")Y--;if(Y>0&&(W==="->"||W==="=>")&&h1.has(A))U.splice(F,0,V(",",",")),F++;F++}}scanTokens(Y){let F=0;while(F<this.tokens.length)F+=Y.call(this,this.tokens[F],F,this.tokens)}detectEnd(Y,F,U,W={}){let A=0;while(Y<this.tokens.length){let $=this.tokens[Y];if(A===0&&F.call(this,$,Y))return U.call(this,$,Y);if(g.has($[0]))A++;if(b.has($[0]))A--;if(A<0){if(W.returnOnNegativeLevel)return;return U.call(this,$,Y)}Y++}}commaInImplicitCall(Y){let F=0;for(let U=Y-1;U>=0;U--){let W=this.tokens[U][0];if(b.has(W)){F++;continue}if(g.has(W)){if(W==="INDENT")return!1;if(F--,F<0)return!1;continue}if(F>0)continue;if(e.has(W)&&this.tokens[U].spaced){let A=this.tokens[U+1]?.[0];return i.has(A)||A==="..."&&i.has(this.tokens[U+2]?.[0])}}return!1}looksObjectish(Y){if(!this.tokens[Y])return!1;if(this.tokens[Y]?.[0]==="@"&&this.tokens[Y+2]?.[0]===":")return!0;if(this.tokens[Y+1]?.[0]===":")return!0;if(g.has(this.tokens[Y]?.[0])){let F=null;if(this.detectEnd(Y+1,(U)=>b.has(U[0]),(U,W)=>F=W),F&&this.tokens[F+1]?.[0]===":")return!0}return!1}findTagsBackwards(Y,F){let U=new Set(F),W=[];while(Y>=0){let A=this.tokens[Y]?.[0];if(!W.length&&U.has(A))return!0;if(b.has(A))W.push(A);if(g.has(A)&&W.length)W.pop();if(!W.length&&(g.has(A)&&!this.tokens[Y]?.generated||n.has(A)))break;Y--}return!1}makeIndentation(Y){let F=V("INDENT",2),U=V("OUTDENT",2);if(Y)F.generated=U.generated=!0,F.origin=U.origin=Y;else F.explicit=U.explicit=!0;return[F,U]}}U1(x);var X2={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,RELATION:208,"SPACE?":209,COMPOUND_ASSIGN:210},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:"RELATION",209:"SPACE?",210:"COMPOUND_ASSIGN"},parseTable:(()=>{let Y=[107,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,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,30,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,-6,-6,-6,-6,-6,-6,126,-6,-6,-6,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,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,127,128,129,96,97,52,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,10,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-13,-13,131,105,106,-13,-13,-13,-13,134,135,136,-13,137,-13,-13,-13,-13,-13,-13,-13,132,-13,138,-13,-13,133,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,130,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,44,1,5,59,1,1,5,10,1,1,1,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,139,140,141,-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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,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,55,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,10,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,142,143,144,145,146,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,18,6,49,1,10,1,5,7,1,1,7,14,2,1,15,1,3,4,1,-173,151,104,-173,-173,-173,153,154,152,99,156,155,150,147,-173,-173,148,149,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,158,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,159,102,103,53,52,72,73,93,99,59,83,87,84,85,66,157,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,160,161,162,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,163,164,162,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,165,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,171,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,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,173,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,174,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,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,176,177,178,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,175,72,73,93,99,83,87,84,85,166,167,90,91,86,88,89,82,170,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,176,177,178,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,179,72,73,93,99,83,87,84,85,166,167,90,91,86,88,89,82,170,58,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,10,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,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,180,181,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,182,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,184,183,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,185,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,42,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,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,186,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,2,66,56,159,187,2,66,56,159,188,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,14,39,16,1,23,1,1,7,4,5,5,2,25,37,2,192,151,104,153,154,152,99,189,190,83,155,194,191,193,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,195,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,196,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,88,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,10,1,10,1,3,1,1,2,3,20,2,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-302,-302,176,177,178,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-302,159,-302,102,103,-302,199,72,73,93,-302,99,-302,-302,-302,-302,-302,83,-302,87,-302,84,85,-302,-302,197,166,-302,167,90,91,86,88,89,82,-302,-302,-302,-302,-302,-302,-302,-302,-302,198,170,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,1,66,200,2,66,56,159,201,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,202,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,203,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,137,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,2,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,-224,-224,204,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,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,205,-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,166,-224,167,90,91,86,88,89,82,-224,69,64,65,206,54,94,55,95,-224,-224,56,60,57,-224,-224,58,98,-224,-224,-224,49,-224,61,67,62,63,70,71,168,169,170,46,47,48,50,51,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,2,55,1,207,104,2,55,1,208,104,6,15,19,89,2,1,1,210,209,42,43,90,91,136,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,2,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,-221,-221,211,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,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,212,-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,166,-221,167,90,91,86,88,89,82,-221,69,64,65,54,94,55,95,-221,-221,56,60,57,-221,-221,58,98,-221,-221,-221,49,-221,61,67,62,63,70,71,168,169,170,46,47,48,50,51,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,9,54,1,1,3,1,28,89,1,5,213,217,104,105,106,216,214,215,218,13,27,1,4,1,22,1,32,30,51,2,1,10,4,220,221,222,223,224,104,219,66,61,67,62,225,226,55,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,10,1,10,1,3,1,1,2,25,1,1,3,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,55,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,10,1,10,1,3,1,1,2,25,1,1,3,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,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,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,10,1,10,1,3,1,1,2,25,1,1,3,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,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,227,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,228,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,229,238,162,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,236,53,52,72,73,93,99,59,83,230,87,240,84,85,231,232,234,237,233,66,42,43,90,91,239,86,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,242,243,241,138,2,108,11,244,138,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,52,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,10,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-206,-206,245,246,-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,247,1,82,248,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,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,3,7,7,10,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,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,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,3,7,7,10,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,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-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,249,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,250,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,251,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,252,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,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,254,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,159,102,103,53,52,72,73,93,99,59,83,87,84,85,66,253,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,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,260,100,101,262,104,263,246,105,106,-109,-109,-109,264,255,-109,256,261,265,257,258,259,266,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,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,176,177,178,34,35,36,267,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,268,72,73,93,99,83,87,84,85,166,167,90,91,86,88,89,82,170,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,4,6,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,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,53,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,10,1,10,1,3,1,1,2,25,1,1,3,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,6,54,5,1,1,2,1,272,105,106,269,270,271,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,273,-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,274,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,275,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,276,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,277,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,278,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,279,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,283,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,284,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,286,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,287,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,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,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,292,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,293,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,295,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,296,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,14,39,16,1,23,1,1,7,4,5,5,2,25,37,2,300,151,104,153,154,152,99,297,298,83,155,194,299,193,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,51,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,10,1,10,1,3,1,1,2,25,1,1,3,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,51,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,10,1,10,1,3,1,1,2,25,1,1,3,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,2,108,11,303,138,2,57,1,304,246,2,57,1,305,246,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,306,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,311,77,78,79,80,81,100,101,92,104,105,106,307,102,103,309,53,52,72,73,93,308,99,59,83,87,313,84,85,310,312,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,1,84,314,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,319,238,162,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,318,102,103,53,52,72,73,93,99,59,83,87,240,84,85,317,66,315,42,43,90,91,239,316,86,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,320,246,2,57,1,321,246,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,322,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,323,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,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,325,324,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,326,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,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,328,327,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,329,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,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,331,330,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,332,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,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,334,333,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,335,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,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,337,336,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,338,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,9,6,60,1,5,22,1,8,18,3,-217,-217,-217,340,341,-217,-217,-217,339,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,342,-178,-178,15,6,49,1,10,1,5,7,1,1,7,14,2,17,3,5,-181,151,104,-181,-181,-181,153,154,152,99,156,155,-181,-181,343,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,245,246,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,319,238,162,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,236,53,52,72,73,93,99,59,83,230,87,240,84,85,231,232,234,237,233,66,42,43,90,91,239,86,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,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,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,345,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,344,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,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,124,125,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,118,-364,120,-364,-364,9,1,5,59,1,1,5,31,18,17,-361,-361,-361,-361,-361,-361,-361,-361,-361,5,148,1,9,1,1,127,128,129,96,97,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,124,125,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,118,-365,120,-365,-365,9,1,5,59,1,1,5,31,18,17,-362,-362,-362,-362,-362,-362,-362,-362,-362,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,124,125,-366,-366,-366,-366,-366,-366,-366,-366,-366,111,-366,-366,-366,-366,-366,-366,118,-366,120,-366,-366,18,6,49,1,10,1,5,7,1,1,7,14,2,1,15,1,3,4,1,-173,151,104,-173,-173,-173,153,154,152,99,156,155,150,346,-173,-173,148,149,2,66,56,159,157,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,160,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,163,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,5,15,108,2,1,1,210,166,167,90,91,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,124,125,-367,-367,-367,-367,-367,-367,-367,-367,-367,111,-367,-367,-367,-367,-367,-367,118,-367,120,-367,-367,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,124,125,-368,-368,-368,-368,-368,-368,-368,-368,-368,111,-368,-368,-368,-368,-368,-368,118,-368,120,-368,-368,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,118,-370,120,-370,-370,2,80,8,347,99,55,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,10,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-372,-372,-86,-86,-372,-372,-372,-372,-86,-86,-86,-86,-86,-86,-86,-86,-372,-86,-372,-372,-372,-372,-372,-372,-372,-372,-86,-372,-372,-86,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-86,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,10,54,5,1,22,1,1,3,21,11,12,131,105,106,134,135,136,137,132,138,133,3,82,1,1,139,140,141,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,55,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,10,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-373,-373,-86,-86,-373,-373,-373,-373,-86,-86,-86,-86,-86,-86,-86,-86,-373,-86,-373,-373,-373,-373,-373,-373,-373,-373,-86,-373,-373,-86,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-86,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,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,350,348,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,349,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-83,-83,-83,-83,-83,-83,-83,-83,126,-83,-83,-83,-83,-83,-83,-83,-83,-83,123,124,125,96,97,-83,-83,-83,-83,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,351,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,352,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,3,66,56,22,159,353,354,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,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,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,355,356,357,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,4,93,70,2,2,359,358,360,361,11,55,1,23,1,1,7,4,10,2,25,39,151,104,153,154,152,99,362,156,155,194,193,11,55,1,23,1,1,7,4,10,2,25,39,151,104,153,154,152,99,363,156,155,194,193,3,66,56,42,159,364,365,5,72,21,70,2,2,366,-300,-300,-300,-300,6,72,1,20,70,2,2,-298,367,-298,-298,-298,-298,22,66,25,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,368,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,3,155,1,1,369,370,371,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,372,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,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,1,2,7,7,10,1,10,1,3,1,1,2,3,22,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-306,-306,-86,-86,-306,159,-306,-306,-86,-86,-86,-86,-86,-86,-86,-86,-306,-86,-306,-306,-306,-306,-306,-306,-306,-306,-86,-306,373,-306,-86,-306,-306,-306,-306,-306,-306,-306,-306,-306,374,-306,-306,-86,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,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,377,378,379,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,375,376,63,70,71,44,45,68,46,47,48,50,51,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-222,-222,-222,-222,-222,-222,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,2,80,8,380,99,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-225,-225,-225,-225,-225,-225,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,2,80,8,381,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,382,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,3,66,53,3,159,383,384,2,66,56,159,385,9,1,5,59,1,1,5,31,18,17,-363,-363,-363,-363,-363,-363,-363,-363,-363,50,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,10,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-219,-219,-219,-219,-219,-219,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,2,80,8,386,99,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,2,72,70,388,387,1,142,389,7,55,1,10,29,84,1,2,394,104,393,390,391,392,395,2,72,70,-335,-335,1,181,396,7,55,1,10,29,87,3,2,401,104,400,397,402,398,399,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,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,1,73,403,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,404,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,405,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,1,142,406,2,6,132,107,407,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,408,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,30,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,-199,-199,-199,-199,126,-199,313,409,312,-199,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,55,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,10,1,10,1,3,1,1,2,25,1,1,3,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,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,319,238,162,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,236,53,52,72,73,93,99,59,83,410,87,240,84,85,412,411,66,42,43,90,91,239,86,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,414,415,-217,-217,413,-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,416,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-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,319,238,162,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,236,53,52,72,73,93,99,59,83,87,240,84,85,418,417,234,237,233,66,42,43,90,91,239,86,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,419,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,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,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,51,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,10,1,10,1,3,1,1,2,25,1,1,3,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,2,57,1,420,246,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,421,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,422,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,51,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,10,1,10,1,3,1,1,2,25,1,1,3,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,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,3,7,7,10,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,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,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,3,7,7,10,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,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-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,423,246,2,57,1,424,246,23,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,159,126,425,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,23,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,159,126,426,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-254,-254,-254,-254,-254,-254,-254,-254,126,-254,-254,427,-254,-254,-254,-254,-254,-254,-254,124,125,96,97,-254,-254,-254,-254,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-256,-256,-256,-256,-256,-256,-256,-256,126,-256,-256,428,-256,-256,-256,-256,-256,-256,-256,124,125,96,97,-256,-256,-256,-256,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-263,-263,-263,-263,-263,-263,-263,-263,126,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,124,125,96,97,-263,-263,-263,-263,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,6,6,60,1,5,18,5,-114,-114,-114,-114,429,-114,8,6,60,1,5,22,1,8,18,-217,-217,-217,431,430,-217,-217,-217,7,6,60,1,5,1,17,5,-123,-123,-123,-123,432,-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,433,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,3,57,1,44,245,246,434,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,438,440,439,262,104,263,246,437,264,99,435,87,436,441,442,86,82,51,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,10,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,-39,-39,443,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,55,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,10,1,10,1,3,1,1,2,25,1,1,3,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,6,54,5,1,2,1,1,272,105,106,444,445,271,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,446,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,448,447,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,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-376,-376,-376,-376,-376,-376,-376,-376,110,111,-376,-376,-376,-376,-376,-376,118,-376,120,-376,-376,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-377,-377,-377,-377,-377,-377,-377,-377,110,111,-377,-377,-377,-377,-377,-377,118,-377,120,-377,-377,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,124,125,-378,-378,-378,-378,-378,-378,-378,-378,-378,111,-378,-378,-378,-378,-378,-378,118,-378,120,-378,-378,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,124,125,-379,-379,-379,-379,-379,-379,-379,-379,-379,111,-379,-379,-379,-379,-379,-379,118,-379,120,-379,-379,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-380,-380,-380,-380,-380,-380,109,108,110,111,-380,-380,-380,-380,-380,-380,118,-380,120,-380,-380,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-381,-381,-381,-381,-381,-381,109,108,110,111,112,-381,-381,-381,-381,-381,118,-381,120,121,-381,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-382,-382,-382,-382,-382,-382,109,108,110,111,112,113,-382,-382,-382,-382,118,-382,120,121,-382,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-383,-383,-383,-383,-383,-383,109,108,110,111,112,113,114,-383,-383,-383,118,-383,120,121,-383,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-384,-384,-384,-384,-384,-384,109,108,110,111,112,113,114,115,-384,-384,118,-384,120,121,-384,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-392,-392,-392,-392,-392,-392,109,108,110,111,112,113,114,115,116,-392,118,119,120,121,-392,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-393,-393,-393,-393,-393,-393,-393,-393,126,-393,-393,-393,-393,-393,-393,-393,-393,-393,123,124,125,96,97,-393,-393,-393,-393,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-391,-391,-391,-391,-391,-391,109,108,110,111,112,113,114,115,116,-391,118,-391,120,121,-391,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-394,-394,-394,-394,-394,-394,-394,-394,126,-394,-394,-394,-394,-394,-394,-394,-394,-394,123,124,125,96,97,-394,-394,-394,-394,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-395,-395,-395,-395,-395,-395,109,108,110,111,112,-395,-395,-395,-395,-395,118,-395,120,-395,-395,22,90,1,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,449,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-236,-236,-236,-236,-236,-236,-236,-236,126,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,124,125,96,97,-236,-236,-236,-236,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-238,-238,-238,-238,-238,-238,-238,-238,126,-238,-238,-238,-238,-238,-238,-238,-238,-238,123,124,125,96,97,-238,-238,-238,-238,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,4,93,70,2,2,451,450,452,453,11,55,1,23,1,1,7,4,10,2,25,39,151,104,153,154,152,99,454,156,155,194,193,11,55,1,23,1,1,7,4,10,2,25,39,151,104,153,154,152,99,455,156,155,194,193,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,456,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-235,-235,-235,-235,-235,-235,-235,-235,126,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,124,125,96,97,-235,-235,-235,-235,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-237,-237,-237,-237,-237,-237,-237,-237,126,-237,-237,-237,-237,-237,-237,-237,-237,-237,123,124,125,96,97,-237,-237,-237,-237,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,51,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,10,1,10,1,3,1,1,2,25,1,1,3,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,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,3,7,7,10,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,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,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,3,7,7,10,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,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,25,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,457,126,313,458,312,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,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,459,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,460,99,59,83,87,313,84,85,310,312,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,1,85,461,1,85,462,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,463,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,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,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,50,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,10,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,-46,-46,-46,-46,-46,464,-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,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,465,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,466,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,51,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,10,1,10,1,3,1,1,2,25,1,1,3,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,8,6,60,1,5,22,1,8,18,-217,-217,-217,468,467,-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,319,238,162,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,318,102,103,53,52,72,73,93,99,59,83,87,240,84,85,317,66,42,43,90,91,239,469,86,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,27,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,-199,-199,-199,-199,126,-199,-199,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,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,3,7,7,10,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,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,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,3,7,7,10,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,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,22,85,6,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,470,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,471,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-68,-68,-68,-68,-68,-68,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,472,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,473,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-71,-71,-71,-71,-71,-71,-71,-71,126,-71,-71,-71,-71,-71,-71,-71,-71,-71,123,124,125,96,97,-71,-71,-71,-71,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,474,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,475,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-74,-74,-74,-74,-74,-74,-74,-74,126,-74,-74,-74,-74,-74,-74,-74,-74,-74,123,124,125,96,97,-74,-74,-74,-74,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,476,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,477,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-77,-77,-77,-77,-77,-77,-77,-77,126,-77,-77,-77,-77,-77,-77,-77,-77,-77,123,124,125,96,97,-77,-77,-77,-77,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,478,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,479,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-80,-80,-80,-80,-80,-80,-80,-80,126,-80,-80,-80,-80,-80,-80,-80,-80,-80,123,124,125,96,97,-80,-80,-80,-80,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,3,125,1,1,482,90,91,17,6,49,1,10,1,12,1,1,7,7,7,1,1,1,16,7,1,-218,151,104,-218,-218,153,154,152,99,-218,156,-218,155,150,-218,483,149,2,6,60,484,485,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,6,6,60,1,5,49,3,-180,-180,-180,-180,-180,-180,54,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,-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,487,9,6,60,1,5,22,1,8,18,3,-217,-217,-217,340,341,-217,-217,-217,488,1,67,489,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-397,-397,-397,-397,-397,-397,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,491,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-84,-84,-84,-84,-84,-84,-84,-84,126,-84,-84,-84,-84,-84,-84,-84,-84,-84,123,124,125,96,97,-84,-84,-84,-84,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,22,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,492,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,493,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,3,7,1,3,1,1,2,25,1,4,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,494,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,2,66,56,159,495,6,55,1,10,14,8,34,496,104,159,497,99,498,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,501,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,1,93,503,1,165,504,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,505,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,10,55,1,23,1,1,7,14,2,25,39,151,104,153,154,152,99,156,155,194,506,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,507,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,3,155,1,1,508,370,371,4,67,78,11,1,509,510,511,371,3,67,78,12,-250,-250,-250,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,513,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,512,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,1,2,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-304,-304,-304,159,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,514,-304,-304,-304,124,125,-304,-304,-304,-304,-304,-304,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,515,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,2,6,61,517,516,2,6,61,-312,-312,23,6,61,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-315,-315,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,2,6,61,-316,-316,7,6,61,81,1,9,1,1,-317,-317,127,128,129,96,97,1,67,518,1,67,519,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-227,-227,-227,-227,-227,-227,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,18,6,49,1,10,1,5,7,1,1,7,14,2,1,15,1,3,4,1,-173,151,104,-173,-173,-173,153,154,152,99,156,155,150,520,-173,-173,148,149,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,1,67,521,3,54,5,1,522,105,106,3,88,90,5,524,523,218,3,54,5,1,525,105,106,1,142,526,8,6,60,1,5,22,1,8,18,-217,-217,-217,528,527,-217,-217,-217,5,6,60,1,5,23,-326,-326,-326,-326,-326,6,55,1,10,113,1,2,394,104,393,529,392,395,6,6,60,1,5,23,86,-331,-331,-331,-331,-331,530,6,6,60,1,5,23,86,-333,-333,-333,-333,-333,531,2,55,1,532,104,14,1,5,59,1,1,5,31,18,17,4,6,1,10,1,-337,-337,-337,-337,-337,-337,-337,-337,-337,533,-337,-337,-337,-337,8,6,60,1,5,22,1,8,18,-217,-217,-217,535,534,-217,-217,-217,5,6,60,1,5,23,-351,-351,-351,-351,-351,6,55,1,10,116,3,2,401,104,400,402,536,399,6,6,60,1,5,23,86,-356,-356,-356,-356,-356,537,6,6,60,1,5,23,86,-359,-359,-359,-359,-359,538,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,540,539,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,541,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,30,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,-346,-346,-346,-346,-346,-346,126,-346,-346,-346,-346,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,2,80,8,542,99,3,54,5,1,543,105,106,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,2,6,61,107,544,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,545,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,55,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,10,1,10,1,3,1,1,2,25,1,1,3,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,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,416,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-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,547,546,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,319,238,162,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,236,53,52,72,73,93,99,59,-218,83,-218,87,240,84,85,549,548,237,233,66,-218,42,43,90,91,239,86,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,550,-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,414,415,-217,-217,551,-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,319,238,162,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,236,53,52,72,73,93,99,59,83,87,240,84,85,412,411,66,42,43,90,91,239,86,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,27,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,-186,-186,-186,-186,126,-186,-186,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,22,85,6,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,552,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,553,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,42,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,-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,42,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,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,554,-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,555,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,556,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,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,557,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,558,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,3,6,60,29,560,561,559,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,260,100,101,262,104,263,246,105,106,-218,-218,264,563,-218,562,265,257,258,-218,259,266,-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,564,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,565,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,22,91,12,45,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,126,566,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,567,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,10,6,60,1,5,10,1,1,11,13,11,-127,-127,-127,-127,-129,-129,-129,-127,568,138,10,6,60,1,5,10,1,1,11,13,11,-128,-128,-128,-128,570,571,572,-128,569,138,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,242,243,573,138,2,108,11,574,138,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,53,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,10,1,10,1,3,1,1,2,25,1,1,3,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,4,59,1,2,2,-59,-59,-59,-59,2,6,59,107,575,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,576,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,577,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,578,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,579,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,580,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,581,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,1,93,582,1,165,583,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,584,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,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,3,7,7,10,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,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-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,585,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,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,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,25,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,586,126,313,458,312,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,1,67,587,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,3,7,7,10,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,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,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,3,7,7,10,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,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,23,67,18,6,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-163,-163,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,588,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,22,85,6,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,589,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,3,6,60,55,592,593,591,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,319,238,162,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,240,84,85,594,66,-218,42,43,90,91,239,86,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,468,595,-217,-217,-217,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,3,7,7,10,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,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,22,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,596,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-69,-69,-69,-69,-69,-69,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,22,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,597,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-72,-72,-72,-72,-72,-72,-72,-72,126,-72,-72,-72,-72,-72,-72,-72,-72,-72,123,124,125,96,97,-72,-72,-72,-72,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,22,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,598,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-75,-75,-75,-75,-75,-75,-75,-75,126,-75,-75,-75,-75,-75,-75,-75,-75,-75,123,124,125,96,97,-75,-75,-75,-75,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,22,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,599,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-78,-78,-78,-78,-78,-78,-78,-78,126,-78,-78,-78,-78,-78,-78,-78,-78,-78,123,124,125,96,97,-78,-78,-78,-78,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,22,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,600,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-81,-81,-81,-81,-81,-81,-81,-81,126,-81,-81,-81,-81,-81,-81,-81,-81,-81,123,124,125,96,97,-81,-81,-81,-81,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,22,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,601,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,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,603,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,159,102,103,53,52,72,73,93,99,59,83,87,84,85,66,602,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,151,104,153,154,152,99,156,155,150,604,149,18,6,49,1,10,1,5,7,1,1,7,14,2,1,15,1,3,4,1,-173,151,104,-173,-173,-173,153,154,152,99,156,155,150,605,-173,-173,148,149,27,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,-179,-179,-179,-179,126,-179,-179,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,54,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,-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,606,90,91,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,22,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,607,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,124,125,-399,-399,-399,-399,-399,-399,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,23,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,159,126,608,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,2,66,56,159,609,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,2,66,56,159,610,2,66,56,159,611,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,3,7,1,3,1,1,2,25,1,4,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,25,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,159,126,613,612,123,124,125,96,97,614,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,24,66,25,5,26,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,159,126,616,615,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,24,66,25,5,26,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,159,126,618,617,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,24,66,25,5,26,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,159,126,620,619,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,621,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,622,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,23,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,159,126,623,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,4,93,70,2,2,-301,-301,-301,-301,26,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,-299,126,-299,123,124,125,96,97,-299,-299,-299,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,4,67,78,11,1,624,625,511,371,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,2,66,56,159,626,3,67,78,12,-251,-251,-251,3,66,6,50,159,628,627,23,66,6,19,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-203,-203,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,1,2,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-308,-308,-308,159,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,629,-308,-308,-308,124,125,-308,-308,-308,-308,-308,-308,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,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,-314,377,378,379,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,-314,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,630,63,70,71,44,45,68,46,47,48,50,51,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,8,6,60,1,5,22,1,8,18,-217,-217,-217,340,341,-217,-217,631,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,1,142,632,6,55,1,10,113,1,2,394,104,393,633,392,395,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,3,54,5,1,634,105,106,3,6,60,29,636,637,635,10,6,49,1,10,1,28,8,18,59,2,-218,394,104,-218,-218,-218,-218,-218,638,395,8,6,60,1,5,22,1,8,18,-217,-217,-217,528,639,-217,-217,-217,2,55,1,640,104,2,55,1,641,104,1,142,-336,3,54,5,1,642,105,106,3,6,60,29,644,645,643,10,6,49,1,10,1,28,8,18,61,5,-218,401,104,-218,-218,-218,-218,-218,402,646,8,6,60,1,5,22,1,8,18,-217,-217,-217,535,647,-217,-217,-217,3,55,1,126,648,104,649,2,55,1,650,104,30,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,-343,-343,-343,-343,-343,-343,126,-343,-343,-343,-343,124,125,-343,-343,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,651,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,652,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,1,67,653,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,1,138,654,22,91,12,45,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,126,655,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,55,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,10,1,10,1,3,1,1,2,25,1,1,3,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,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,319,238,162,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,236,53,52,72,73,93,99,59,83,87,240,84,85,418,656,234,237,233,66,42,43,90,91,239,86,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,319,238,162,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,236,53,52,72,73,93,99,59,83,-153,87,240,84,85,412,411,66,42,43,90,91,239,86,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,319,238,162,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,236,53,52,72,73,93,99,59,83,87,240,84,85,418,657,237,233,66,42,43,90,91,239,86,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,547,658,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,22,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,659,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,2,66,56,159,660,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,124,125,-255,-255,-255,-255,-255,-255,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,124,125,-257,-257,-257,-257,-257,-257,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,26,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,-116,-116,-116,-116,661,-116,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,55,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,10,1,10,1,3,1,1,2,25,1,1,3,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,17,45,8,1,1,1,1,1,1,1,21,8,10,1,1,1,2,1,260,100,101,262,104,263,246,105,106,264,563,663,265,257,258,259,266,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,260,100,101,262,104,263,246,105,106,-109,-109,-109,264,563,-109,664,261,265,257,258,259,266,5,6,60,1,5,23,-111,-111,-111,-111,-111,6,6,60,1,5,18,5,-114,-114,-114,-114,665,-114,26,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,-118,-118,-118,-118,126,-118,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,666,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,6,6,60,1,5,18,5,-124,-124,-124,-124,-124,-124,22,91,12,45,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,126,667,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,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,668,246,2,57,1,669,246,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,670,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,671,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,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,672,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-396,-396,-396,-396,-396,-396,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,673,-281,-281,-281,-281,-281,-281,-281,124,125,-281,-281,-281,674,-281,-281,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,675,-286,-286,-286,-286,-286,-286,-286,124,125,-286,-286,-286,-286,-286,-286,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,676,-290,-290,-290,-290,-290,-290,-290,124,125,-290,-290,-290,-290,-290,-290,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,677,-294,-294,-294,-294,-294,-294,-294,124,125,-294,-294,-294,-294,-294,-294,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,678,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,679,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-297,-297,-297,-297,-297,-297,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,23,67,18,6,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-161,-161,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,1,85,680,1,85,681,22,85,6,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-66,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,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,3,7,7,10,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,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,22,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,682,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,51,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,10,1,10,1,3,1,1,2,25,1,1,3,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,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,319,238,162,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,240,84,85,683,66,42,43,90,91,239,86,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,319,238,162,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,318,102,103,53,52,72,73,93,99,59,83,87,240,84,85,317,66,42,43,90,91,239,684,86,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,592,593,685,1,85,686,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,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,340,687,-217,-217,-217,2,66,56,159,602,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,42,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,-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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,3,7,1,3,1,1,2,25,1,4,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,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,3,7,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,688,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,689,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,692,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,24,66,25,5,26,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,159,126,694,693,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,24,66,25,5,26,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,159,126,696,695,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,2,66,56,159,697,1,67,698,4,6,61,78,12,699,-252,-252,-252,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,2,6,61,-313,-313,2,66,56,159,701,3,54,5,1,702,105,106,8,6,60,1,5,22,1,8,18,-217,-217,-217,528,703,-217,-217,-217,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,704,4,55,1,124,2,394,104,705,395,6,55,1,10,113,1,2,394,104,393,706,392,395,5,6,60,1,5,23,-327,-327,-327,-327,-327,3,6,60,1,636,637,707,5,6,60,1,5,23,-332,-332,-332,-332,-332,5,6,60,1,5,23,-334,-334,-334,-334,-334,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,14,1,5,59,1,1,5,31,18,17,4,6,1,10,1,-338,-338,-338,-338,-338,-338,-338,-338,-338,708,-338,-338,-338,-338,4,55,1,126,5,401,104,402,709,6,55,1,10,116,3,2,401,104,400,402,710,399,5,6,60,1,5,23,-352,-352,-352,-352,-352,3,6,60,1,644,645,711,5,6,60,1,5,23,-357,-357,-357,-357,-357,5,6,60,1,5,23,-358,-358,-358,-358,-358,5,6,60,1,5,23,-360,-360,-360,-360,-360,30,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,-344,-344,-344,-344,-344,-344,126,-344,-344,-344,-344,124,125,-344,-344,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,22,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,712,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,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,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,9,6,60,1,5,22,1,8,9,9,-217,-217,-217,414,415,-217,-217,713,-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,714,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,14,39,16,1,23,1,1,7,4,5,5,2,25,37,2,300,151,104,153,154,152,99,715,716,83,155,194,299,193,22,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,717,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,5,6,60,1,5,23,-112,-112,-112,-112,-112,8,6,60,1,5,22,1,8,18,-217,-217,-217,431,718,-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,719,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,558,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,22,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,720,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,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,22,85,6,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,721,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,722,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,1,65,723,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,724,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,725,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,726,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,727,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,728,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,729,-288,-288,-288,-288,-288,-288,-288,124,125,-288,-288,-288,-288,-288,-288,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,730,-292,-292,-292,-292,-292,-292,-292,124,125,-292,-292,-292,-292,-292,-292,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,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,3,7,7,10,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,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,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,3,7,7,10,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,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-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,731,5,6,60,1,5,49,-196,-196,-196,-196,-196,8,6,60,1,5,22,1,8,18,-217,-217,-217,468,732,-217,-217,-217,5,6,60,1,5,49,-197,-197,-197,-197,-197,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,3,7,7,10,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,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-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,484,485,733,24,66,25,31,26,1,9,1,1,4,28,1,4,1,1,1,1,1,1,1,1,1,1,1,1,159,126,734,123,124,125,96,97,735,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,24,66,25,5,26,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,159,126,737,736,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,23,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,159,126,738,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,23,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,159,126,739,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,23,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,159,126,740,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,742,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,1,67,743,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,3,67,78,12,-253,-253,-253,23,66,6,19,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-204,-204,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,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,3,6,60,29,636,637,744,3,54,5,1,745,105,106,5,6,60,1,5,23,-328,-328,-328,-328,-328,8,6,60,1,5,22,1,8,18,-217,-217,-217,528,746,-217,-217,-217,5,6,60,1,5,23,-329,-329,-329,-329,-329,3,54,5,1,747,105,106,5,6,60,1,5,23,-353,-353,-353,-353,-353,8,6,60,1,5,22,1,8,18,-217,-217,-217,535,748,-217,-217,-217,5,6,60,1,5,23,-354,-354,-354,-354,-354,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,2,66,1,547,749,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,4,93,70,2,2,750,450,452,453,11,55,1,23,1,1,7,4,10,2,25,39,151,104,153,154,152,99,751,156,155,194,193,5,6,60,1,5,23,-117,-117,-117,-117,-117,3,6,60,1,560,561,752,26,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,-116,-116,-116,-116,126,-116,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,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,22,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,753,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,4,59,1,2,2,-61,-61,-61,-61,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-282,-282,-282,754,-282,-282,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,755,-283,-283,-283,-283,-283,-283,-283,124,125,-283,-283,-283,-283,-283,-283,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-287,-287,-287,-287,-287,-287,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-291,-291,-291,-291,-291,-291,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-295,-295,-295,-295,-295,-295,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,756,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,757,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,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,3,7,7,10,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,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-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,592,593,758,6,6,60,1,5,49,3,-177,-177,-177,-177,-177,-177,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,759,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,760,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,23,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,159,126,761,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,23,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,159,126,762,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,1,142,763,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,6,60,1,636,637,764,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,3,6,60,1,644,645,765,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,766,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,1,93,767,5,6,60,1,5,23,-113,-113,-113,-113,-113,1,85,768,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-289,-289,-289,-289,-289,-289,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-293,-293,-293,-293,-293,-293,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,5,6,60,1,5,49,-198,-198,-198,-198,-198,23,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,159,126,771,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,23,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,159,126,772,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,3,54,5,1,773,105,106,5,6,60,1,5,23,-330,-330,-330,-330,-330,5,6,60,1,5,23,-355,-355,-355,-355,-355,43,1,5,59,1,1,5,13,5,1,2,1,1,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-286,-286,-286,-286,-286,776,-286,-286,-286,-286,774,-286,775,-286,-286,-286,-286,-286,-286,-286,124,125,-286,-286,-286,-286,-286,-286,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,777,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,9,6,60,1,5,10,1,1,11,24,-141,-141,-141,-141,-141,-141,-141,-141,-141,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-284,-284,-284,-284,-284,-284,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,124,125,-285,-285,-285,-285,-285,-285,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,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,1,95,778,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,6,6,60,1,28,8,18,-218,-218,-218,-218,-218,-218,43,1,5,59,1,1,5,13,5,1,2,1,1,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,776,-288,-288,-288,-288,780,-288,781,-288,-288,-288,-288,-288,-288,-288,124,125,-288,-288,-288,-288,-288,-288,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,55,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,10,1,10,1,3,1,1,2,25,1,1,3,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,43,1,5,59,1,1,5,13,5,1,2,1,1,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-287,-287,-287,-287,-287,776,-287,-287,-287,-287,782,-287,-287,-287,-287,-287,-287,-287,-287,-287,124,125,-287,-287,-287,-287,-287,-287,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,1,95,783,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,784,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,1,95,785,55,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,10,1,10,1,3,1,1,2,25,1,1,3,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,43,1,5,59,1,1,5,13,5,1,2,1,1,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,776,-289,-289,-289,-289,786,-289,-289,-289,-289,-289,-289,-289,-289,-289,124,125,-289,-289,-289,-289,-289,-289,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,55,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,10,1,10,1,3,1,1,2,25,1,1,3,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,1,95,787,55,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,10,1,10,1,3,1,1,2,25,1,1,3,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],F=[],U=0,W,A,$,Q;while(U<Y.length){W=Y[U++],A={},$=0,Q=[];while(W--)$+=Y[U++],Q.push($);for($ of Q)A[$]=Y[U++];F.push(A)}return F})(),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,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,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,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,5,16,3,16,5,16,4,41,2],ruleActions:(Y,F,U,W)=>{let A=F,$=F.length-1;switch(Y){case 1:return["program"];case 2:return["program",...A[$]];case 3:case 58:case 110:case 150:case 154:case 174:case 194:case 203:case 250:case 300:case 312:case 326:case 351:return[A[$]];case 4:case 111:case 175:case 195:case 204:case 313:case 327:case 352:return[...A[$-2],A[$]];case 5:case 60:case 157:case 314:return A[$-1];case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 63:case 64:case 86:case 87:case 88:case 89:case 90:case 115:case 120:case 121:case 122:case 123:case 126:case 129:case 130:case 131:case 132:case 133:case 145:case 171:case 172:case 178:case 182:case 183:case 184:case 185:case 199:case 200:case 201:case 217:case 218:case 232:case 234:case 261:case 298:case 315:case 316:case 317:case 331:case 333:case 335:case 356:case 359:return A[$];case 47:return"undefined";case 48:return"null";case 57:return["str",...A[$-1]];case 59:case 151:case 155:case 251:return[...A[$-1],A[$]];case 61:case 193:case 197:case 329:case 354:return A[$-2];case 62:return"";case 65:return["regex",A[$-1]];case 66:return["regex-index",A[$-2],A[$]];case 67:return["regex-index",A[$],null];case 68:return["=",A[$-2],A[$]];case 69:return["=",A[$-3],A[$]];case 70:return["=",A[$-4],A[$-1]];case 71:return["state",A[$-2],A[$]];case 72:return["state",A[$-3],A[$]];case 73:return["state",A[$-4],A[$-1]];case 74:return["computed",A[$-2],A[$]];case 75:return["computed",A[$-3],A[$]];case 76:return["computed",A[$-4],A[$-1]];case 77:return["readonly",A[$-2],A[$]];case 78:return["readonly",A[$-3],A[$]];case 79:return["readonly",A[$-4],A[$-1]];case 80:return["effect",A[$-2],A[$]];case 81:return["effect",A[$-3],A[$]];case 82:return["effect",A[$-4],A[$-1]];case 83:case 84:return["effect",null,A[$]];case 85:return["effect",null,A[$-1]];case 91:case 100:case 138:return[".",A[$-2],A[$]];case 92:case 101:case 139:return["?.",A[$-2],A[$]];case 93:case 95:case 102:case 140:return["[]",A[$-3],A[$-1]];case 94:case 96:case 103:case 141:return["[]",A[$-5],A[$-2]];case 97:return[A[$-1][0],A[$-3],...A[$-1].slice(1)];case 98:return["optindex",A[$-4],A[$-1]];case 99:return["optindex",A[$-6],A[$-2]];case 104:return["object-comprehension",A[$-8],A[$-6],[["for-of",A[$-4],A[$-2],!1]],[]];case 105:return["object-comprehension",A[$-10],A[$-8],[["for-of",A[$-6],A[$-4],!1]],[A[$-2]]];case 106:return["object-comprehension",A[$-9],A[$-7],[["for-of",A[$-4],A[$-2],!0]],[]];case 107:return["object-comprehension",A[$-11],A[$-9],[["for-of",A[$-6],A[$-4],!0]],[A[$-2]]];case 108:return["object",...A[$-2]];case 109:case 152:case 173:case 192:return[];case 112:case 176:case 196:case 328:case 353:return[...A[$-3],A[$]];case 113:case 177:case 198:case 330:case 355:return[...A[$-5],...A[$-2]];case 114:return[A[$],A[$],null];case 116:return[A[$-2],A[$],":"];case 117:return[A[$-4],A[$-1],":"];case 118:return[A[$-2],A[$],"="];case 119:return[A[$-4],A[$-1],"="];case 124:return["dynamicKey",A[$-1]];case 125:return["[]","this",A[$-1]];case 127:case 128:case 186:return["...",A[$]];case 134:case 190:return["super",...A[$]];case 135:case 136:case 137:case 188:case 191:return[A[$-1],...A[$]];case 142:return["array"];case 143:return["array",...A[$-1]];case 144:return["array",...A[$-2],...A[$-1]];case 146:return[...A[$-2],...A[$]];case 147:return[...A[$-3],...A[$]];case 148:return[...A[$-2],...A[$-1]];case 149:return[...A[$-5],...A[$-4],...A[$-2],...A[$-1]];case 153:return[...A[$]];case 156:return null;case 158:return"..";case 159:case 202:return"...";case 160:return[A[$-2],A[$-3],A[$-1]];case 161:case 378:case 380:case 381:case 395:case 397:return[A[$-1],A[$-2],A[$]];case 162:return[A[$],A[$-1],null];case 163:return[A[$-1],null,A[$]];case 164:return[A[$],null,null];case 165:return["def",A[$-4],A[$-2],A[$]];case 166:return["def",A[$-1],[],A[$]];case 167:case 169:return[A[$-1],A[$-3],A[$]];case 168:case 170:return[A[$-1],[],A[$]];case 179:case 299:return["default",A[$-2],A[$]];case 180:return["rest",A[$]];case 181:return["expansion"];case 187:return["tagged-template",A[$-1],A[$]];case 189:return["optcall",A[$-2],...A[$]];case 205:case 206:return"this";case 207:return[".","this",A[$]];case 208:return[".","super",A[$]];case 209:return["[]","super",A[$-1]];case 210:return["[]","super",A[$-2]];case 211:return[".","new",A[$]];case 212:return[".","import",A[$]];case 213:return["block"];case 214:return["block",...A[$-1]];case 215:return A[$-1].length===1?A[$-1][0]:["block",...A[$-1]];case 216:return A[$-2].length===1?A[$-2][0]:["block",...A[$-2]];case 219:return["return",A[$]];case 220:return["return",A[$-1]];case 221:return["return"];case 222:return["throw",A[$]];case 223:return["throw",A[$-1]];case 224:return["yield"];case 225:return["yield",A[$]];case 226:return["yield",A[$-1]];case 227:return["yield-from",A[$]];case 228:return["if",A[$-1],A[$]];case 229:return A[$-4].length===3?["if",A[$-4][1],A[$-4][2],["if",A[$-1],A[$]]]:[...A[$-4],["if",A[$-1],A[$]]];case 230:return["unless",A[$-1],A[$]];case 231:return["if",["!",A[$-3]],A[$-2],A[$]];case 233:return A[$-2].length===3?["if",A[$-2][1],A[$-2][2],A[$]]:[...A[$-2],A[$]];case 235:case 236:return["if",A[$],[A[$-2]]];case 237:case 238:return["unless",A[$],[A[$-2]]];case 239:return["try",A[$]];case 240:return["try",A[$-1],A[$]];case 241:return["try",A[$-2],A[$]];case 242:return["try",A[$-3],A[$-2],A[$]];case 243:case 244:case 361:case 364:case 366:return[A[$-1],A[$]];case 245:return[null,A[$]];case 246:return["switch",A[$-3],A[$-1],null];case 247:return["switch",A[$-5],A[$-3],A[$-1]];case 248:return["switch",null,A[$-1],null];case 249:return["switch",null,A[$-3],A[$-1]];case 252:return["when",A[$-1],A[$]];case 253:return["when",A[$-2],A[$-1]];case 254:return["while",A[$]];case 255:return["while",A[$-2],A[$]];case 256:return["until",A[$]];case 257:return["until",A[$-2],A[$]];case 258:return A[$-1].length===2?[A[$-1][0],A[$-1][1],A[$]]:[A[$-1][0],A[$-1][1],A[$-1][2],A[$]];case 259:case 260:return A[$].length===2?[A[$][0],A[$][1],[A[$-1]]]:[A[$][0],A[$][1],A[$][2],[A[$-1]]];case 262:return["loop",A[$]];case 263:return["loop",[A[$]]];case 264:return["for-in",A[$-3],A[$-1],null,null,A[$]];case 265:return["for-in",A[$-5],A[$-3],null,A[$-1],A[$]];case 266:return["for-in",A[$-5],A[$-3],A[$-1],null,A[$]];case 267:return["for-in",A[$-7],A[$-5],A[$-1],A[$-3],A[$]];case 268:return["for-in",A[$-7],A[$-5],A[$-3],A[$-1],A[$]];case 269:return["for-of",A[$-3],A[$-1],!1,null,A[$]];case 270:return["for-of",A[$-5],A[$-3],!1,A[$-1],A[$]];case 271:return["for-of",A[$-3],A[$-1],!0,null,A[$]];case 272:return["for-of",A[$-5],A[$-3],!0,A[$-1],A[$]];case 273:return["for-as",A[$-3],A[$-1],!1,null,A[$]];case 274:return["for-as",A[$-5],A[$-3],!1,A[$-1],A[$]];case 275:case 277:return["for-as",A[$-3],A[$-1],!0,null,A[$]];case 276:case 278:return["for-as",A[$-5],A[$-3],!0,A[$-1],A[$]];case 279:return["for-in",[],A[$-1],null,null,A[$]];case 280:return["for-in",[],A[$-3],A[$-1],null,A[$]];case 281:return["comprehension",A[$-4],[["for-in",A[$-2],A[$],null]],[]];case 282:return["comprehension",A[$-6],[["for-in",A[$-4],A[$-2],null]],[A[$]]];case 283:return["comprehension",A[$-6],[["for-in",A[$-4],A[$-2],A[$]]],[]];case 284:return["comprehension",A[$-8],[["for-in",A[$-6],A[$-4],A[$]]],[A[$-2]]];case 285:return["comprehension",A[$-8],[["for-in",A[$-6],A[$-4],A[$-2]]],[A[$]]];case 286:return["comprehension",A[$-4],[["for-of",A[$-2],A[$],!1]],[]];case 287:return["comprehension",A[$-6],[["for-of",A[$-4],A[$-2],!1]],[A[$]]];case 288:return["comprehension",A[$-5],[["for-of",A[$-2],A[$],!0]],[]];case 289:return["comprehension",A[$-7],[["for-of",A[$-4],A[$-2],!0]],[A[$]]];case 290:return["comprehension",A[$-4],[["for-as",A[$-2],A[$],!1,null]],[]];case 291:return["comprehension",A[$-6],[["for-as",A[$-4],A[$-2],!1,null]],[A[$]]];case 292:return["comprehension",A[$-5],[["for-as",A[$-2],A[$],!0,null]],[]];case 293:return["comprehension",A[$-7],[["for-as",A[$-4],A[$-2],!0,null]],[A[$]]];case 294:return["comprehension",A[$-4],[["for-as",A[$-2],A[$],!0,null]],[]];case 295:return["comprehension",A[$-6],[["for-as",A[$-4],A[$-2],!0,null]],[A[$]]];case 296:return["comprehension",A[$-2],[["for-in",[],A[$],null]],[]];case 297:return["comprehension",A[$-4],[["for-in",[],A[$-2],A[$]]],[]];case 301:case 332:case 334:case 357:case 358:case 360:return[A[$-2],A[$]];case 302:return["class",null,null];case 303:return["class",null,null,A[$]];case 304:return["class",null,A[$]];case 305:return["class",null,A[$-1],A[$]];case 306:return["class",A[$],null];case 307:return["class",A[$-1],null,A[$]];case 308:return["class",A[$-2],A[$]];case 309:return["class",A[$-3],A[$-1],A[$]];case 310:return["enum",A[$-1],A[$]];case 311:return["component",null,["block",...A[$-1]]];case 318:return["render",A[$]];case 319:case 322:return["import","{}",A[$]];case 320:case 321:return["import",A[$-2],A[$]];case 323:return["import",A[$-4],A[$]];case 324:return["import",[A[$-4],A[$-2]],A[$]];case 325:return["import",[A[$-7],A[$-4]],A[$]];case 336:return["*",A[$]];case 337:return["export","{}"];case 338:return["export",A[$-2]];case 339:case 340:case 341:case 342:return["export",A[$]];case 343:return["export",["=",A[$-2],A[$]]];case 344:return["export",["=",A[$-3],A[$]]];case 345:return["export",["=",A[$-4],A[$-1]]];case 346:return["export-default",A[$]];case 347:return["export-default",A[$-1]];case 348:return["export-all",A[$]];case 349:return["export-from","{}",A[$]];case 350:return["export-from",A[$-4],A[$]];case 362:case 363:case 365:case 400:return["do-iife",A[$]];case 367:return["-",A[$]];case 368:return["+",A[$]];case 369:return["?",A[$-1]];case 370:return["await",A[$]];case 371:return["await",A[$-1]];case 372:return["--",A[$],!1];case 373:return["++",A[$],!1];case 374:return["--",A[$-1],!0];case 375:return["++",A[$-1],!0];case 376:return["+",A[$-2],A[$]];case 377:return["-",A[$-2],A[$]];case 379:return["**",A[$-2],A[$]];case 382:return["&",A[$-2],A[$]];case 383:return["^",A[$-2],A[$]];case 384:return["|",A[$-2],A[$]];case 385:case 386:case 387:case 388:case 389:case 390:return["control",A[$-1],A[$-2],A[$]];case 391:return["&&",A[$-2],A[$]];case 392:return["||",A[$-2],A[$]];case 393:return["??",A[$-2],A[$]];case 394:return["!?",A[$-2],A[$]];case 396:return["?:",A[$-4],A[$-2],A[$]];case 398:return[A[$-3],A[$-4],A[$-1]];case 399:return[A[$-2],A[$-3],A[$]]}},parseError(Y,F){let U,W,A,$,Q,D,Z;if(F.recoverable)return this.trace(Y);else throw A=(F.line||0)+1,U=F.loc?.first_column||0,Z=F.token?` (token: ${F.token})`:"",D=F.text?` near '${F.text}'`:"",$=`line ${A}, column ${U}`,Q=`Parse error at ${$}${Z}${D}: ${Y}`,W=Error(Q),W.hash=F,W},parse(Y){let F,U,W,A,$,Q,D,Z,X,J,M,K,R,z,q,G,H,I,O,E,w,P,_,T,B,N,L,f;[P,f,M]=[[0],[null],[]],[z,L,B,T,I]=[this.parseTable,"",0,0,0],[U,F]=[2,1],Z=Object.create(this.lexer),E={ctx:{}};for(let j in this.ctx)if(Object.hasOwn(this.ctx,j)){let h=this.ctx[j];E.ctx[j]=h}if(Z.setInput(Y,E.ctx),[E.ctx.lexer,E.ctx.parser]=[Z,this],Z.loc==null)Z.loc={};N=Z.loc,M.push(N),H=Z.options?.ranges,this.parseError=typeof E.ctx.parseError==="function"?E.ctx.parseError:Object.getPrototypeOf(this).parseError,D=()=>{let j;if(j=Z.lex()||F,typeof j!=="number")j=this.symbolIds[j]||j;return j},_=q=w=W=G=R=Q=K=$=null,O={};while(!0){if(w=P[P.length-1],_==null)_=D();if(W=z[w]?.[_],W==null){if(A="",!I)$=(()=>{let j=[];for(let h in z[w]){if(!Object.hasOwn(z[w],h))continue;if(this.tokenNames[h]&&h>U)j.push(`'${this.tokenNames[h]}'`)}return j})();throw A=(()=>{if(Z.showPosition)return`Parse error on line ${B+1}:
|
|
6
|
+
`)this.row++,this.col=0;else this.col++;this.pos+=Y}emit(Y,F,{len:U,data:W,pre:A}={}){let $=_1(Y,F,{pre:A??0,row:this.row,col:this.col,len:U??(typeof F==="string"?F.length:0),data:W});return this.tokens.push($),$}prev(){return this.tokens[this.tokens.length-1]}prevTag(){let Y=this.prev();return Y?Y[0]:void 0}prevVal(){let Y=this.prev();return Y?Y[1]:void 0}identifierToken(){if(t1.test(this.chunk))return 0;let Y=i1.exec(this.chunk);if(!Y)return 0;let[F,U,W]=Y,A=U.length,$={},Q;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 J=this.prevTag();if(J==="DEFAULT"||J==="IMPORT_ALL"||J==="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;if(U==="do"&&/^(\s*super)(?!\(\))/.test(this.chunk.slice(3))){let J=/^(\s*super)(?!\(\))/.exec(this.chunk.slice(3));return this.emit("SUPER","super"),this.emit("CALL_START","("),this.emit("CALL_END",")"),J[1].length+3}let D=this.prev();if(W&&D&&D[0]==="SPACE?")W=null;if(W||D&&(D[0]==="."||D[0]==="?."||!D.spaced&&D[0]==="@")){if(Q="PROPERTY",this.inRenderBlock&&D&&D[0]==="."&&!W){let J=this.chunk.slice(A);while(J[0]==="-"&&/^-[a-zA-Z]/.test(J)){let K=/^-([a-zA-Z][\w]*)/.exec(J);if(!K)break;U+="-"+K[1],A+=1+K[1].length,J=this.chunk.slice(A)}}}else Q="IDENTIFIER";let Z=U.endsWith("!")||U.endsWith("?")?U.slice(0,-1):U;if(Q==="IDENTIFIER"&&!U.endsWith("!")&&!U.endsWith("?")&&(D1.has(U)||J1.has(U)||X1.has(U))&&!(this.exportSpecifierList&&X1.has(U))){if(A1[U]!==void 0)$.original=U,U=A1[U];Q=this.classifyKeyword(U,Q,$)}if(Q==="IDENTIFIER"&&L1.has(Z))C(`reserved word '${Z}'`,{row:this.row,col:this.col,len:A});if(Q==="PROPERTY"&&D){if(D[0]==="."&&this.tokens.length>1){let J=this.tokens[this.tokens.length-2];if(J[0]==="UNARY"&&J[1]==="new")J[0]="NEW_TARGET";if(J[0]==="IMPORT"&&J[1]==="import")this.seenImport=!1,J[0]="IMPORT_META"}}if(U.length>1&&U.endsWith("!"))$.await=!0,U=U.slice(0,-1);if(U.length>1&&U.endsWith("?"))$.predicate=!0,U=U.slice(0,-1);let X=this.emit(Q,U,{len:A,data:Object.keys($).length?$:null});if(Q==="RENDER")this.inRenderBlock=!0,this.renderIndent=this.indent;if(W)return this.emit(":",":",{len:1}),A+W.length;return A}classifyKeyword(Y,F,U){switch(Y){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"true":case"false":return"BOOL";case"&&":case"||":return Y}if(u1.has(Y))return"STATEMENT";let W=Y.toUpperCase();if(W==="WHEN"&&n.has(this.prevTag()))return"LEADING_WHEN";if(W==="FOR")return this.seenFor={endsLength:this.ends.length},"FOR";if(W==="UNLESS")return"UNLESS";if(W==="IMPORT")return this.seenImport=!0,"IMPORT";if(W==="EXPORT")return this.seenExport=!0,"EXPORT";if(V1.has(W))return"UNARY";if(C1.has(W)){if(W!=="INSTANCEOF"&&this.seenFor)return this.seenFor=!1,"FOR"+W;if(this.prevVal()==="!"){let A=this.tokens.pop();U.invert=A.data?.original||A[1]}return"RELATION"}if(D1.has(Y)||J1.has(Y))return W;return F}commentToken(){let Y=o1.exec(this.chunk);if(!Y)return 0;return Y[0].length}whitespaceToken(){let Y=a1.exec(this.chunk);if(!Y&&this.chunk[0]!==`
|
|
7
|
+
`)return 0;let F=this.prev();if(F)if(Y)F.spaced=!0,F.pre=Y[0].length;else F.newLine=!0;return Y?Y[0].length:0}lineToken(){let Y=s1.exec(this.chunk);if(!Y)return 0;let F=Y[0],U=F.length-1-F.lastIndexOf(`
|
|
8
|
+
`);if(this.isUnfinished()){if(U<this.indent&&/^\s*,/.test(this.chunk)&&!M1.has(this.prevTag())){if(this.outdentTo(U,F.length),this.prevTag()==="TERMINATOR")this.tokens.pop();return F.length}return F.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(U===this.indent)return this.emitNewline(),F.length;if(U>this.indent){if(!this.tokens.length)return this.indent=U,F.length;let W=U-this.indent;return this.emit("INDENT",W,{len:U}),this.indents.push(W),this.ends.push({tag:"OUTDENT"}),this.indent=U,F.length}return this.outdentTo(U,F.length),F.length}outdentTo(Y,F=0){if(this.inRenderBlock&&Y<=this.renderIndent)this.inRenderBlock=!1;let U=this.indent-Y;while(U>0){let W=this.indents[this.indents.length-1];if(!W)U=0;else this.indents.pop(),this.pair("OUTDENT"),this.emit("OUTDENT",U,{len:F}),U-=W}this.emitNewline(),this.indent=Y}closeIndentation(){this.outdentTo(0)}emitNewline(){if(this.prevTag()!=="TERMINATOR")this.emit("TERMINATOR",`
|
|
9
|
+
`,{len:0})}isUnfinished(){if(this.inRenderBlock&&q1.test(this.chunk)&&/^\s*\./.test(this.chunk))return!1;return q1.test(this.chunk)||M1.has(this.prevTag())}pair(Y){let F=this.ends[this.ends.length-1];if(!F||Y!==F.tag){if(F?.tag==="OUTDENT"){let U=this.indents[this.indents.length-1];if(U)this.outdentTo(this.indent-U);return this.pair(Y)}C(`unmatched ${Y}`,{row:this.row,col:this.col})}return this.ends.pop()}stringToken(){let Y=e1.exec(this.chunk);if(!Y)return 0;let F=Y[0],U=this.prev();if(U&&this.prevVal()==="from"&&(this.seenImport||this.seenExport))U[0]="FROM";let W;switch(F){case"'":W=$2;break;case'"':W=A2;break;case"'''":W=Y2;break;case'"""':W=U2;break}let{tokens:A,index:$}=this.matchWithInterpolations(W,F),Q=F.length===3,D=null;if(Q)D=this.processHeredocIndent($,F,A);return this.mergeInterpolationTokens(A,{quote:F,indent:D,endOffset:$}),$}processHeredocIndent(Y,F,U){let W=Y-F.length,A=W-1;while(A>=0&&this.chunk[A]!==`
|
|
10
|
+
`)A--;A++;let $=this.chunk.slice(A,W),Q=/^\s*$/.test($)?$.length:null,D="";for(let J of U)if(J[0]==="NEOSTRING")D+=J[1];let Z=null,X;H1.lastIndex=0;while(X=H1.exec(D))if(Z===null||X[1].length>0&&X[1].length<Z.length)Z=X[1];if(Q===null)return Z;if(Z===null)return" ".repeat(Q);if(Q<=Z.length)return" ".repeat(Q);return Z}matchWithInterpolations(Y,F,U,W){if(!U)U=F;if(!W)W=/^[#$]\{/;let A=[],$=F.length;if(this.chunk.slice(0,$)!==F)return null;let Q=this.chunk.slice($);while(!0){let[D]=Y.exec(Q);A.push(["NEOSTRING",D,{offset:$}]),Q=Q.slice(D.length),$+=D.length;let Z=W.exec(Q);if(!Z)break;let J=Z[0].length-1,K=Q.slice(J),z=new v().tokenize(K,{row:this.row,col:this.col+$+J,untilBalanced:!0,rewrite:!1}),R=z.index+J;if(Q[R-1]==="}"){let G=z.tokens[0],O=z.tokens[z.tokens.length-1];G[0]="INTERPOLATION_START",G[1]="(",O[0]="INTERPOLATION_END",O[1]=")"}if(z.tokens[1]?.[0]==="TERMINATOR")z.tokens.splice(1,1);let M=z.tokens.length;if(M>2&&z.tokens[M-3]?.[0]==="INDENT"&&z.tokens[M-2]?.[0]==="OUTDENT")z.tokens.splice(M-3,2);A.push(["TOKENS",z.tokens]),Q=Q.slice(R),$+=R}if(Q.slice(0,U.length)!==U)C(`missing ${U}`,{row:this.row,col:this.col});return{tokens:A,index:$+U.length}}mergeInterpolationTokens(Y,{quote:F,indent:U,endOffset:W}){if(Y.length>1)this.emit("STRING_START","(",{len:F?.length||0,data:{quote:F}});for(let A=0;A<Y.length;A++){let[$,Q]=Y[A];if($==="TOKENS")for(let D of Q)this.tokens.push(D);else if($==="NEOSTRING"){let D=Q;if(U){let Z=new RegExp("\\n"+U,"g");D=D.replace(Z,`
|
|
11
|
+
`)}if(A===0&&F?.length===3)D=D.replace(/^\n/,"");if(A===Y.length-1&&F?.length===3)D=D.replace(/\n[^\S\n]*$/,"");this.emit("STRING",`"${D}"`,{len:Q.length,data:{quote:F}})}}if(Y.length>1)this.emit("STRING_END",")",{len:F?.length||0});return W}numberToken(){let Y=d1.exec(this.chunk);if(!Y)return 0;let F=Y[0],U=F.length,W={row:this.row,col:this.col};if(/^0[BOX]/.test(F))C(`radix prefix in '${F}' must be lowercase`,{...W,col:W.col+1});if(/^0\d*[89]/.test(F))C(`decimal literal '${F}' must not be prefixed with '0'`,{...W,len:U});if(/^0\d+/.test(F))C(`octal literal '${F}' must be prefixed with '0o'`,{...W,len:U});let A=K2(F),$=A===1/0?"INFINITY":"NUMBER",Q={parsedValue:A};if($==="INFINITY")Q.original=F;return this.emit($,F,{len:U,data:Q}),U}regexToken(){let Y=this.matchWithInterpolations(Q2,"///");if(Y){let{tokens:X,index:J}=Y,[K]=O1.exec(this.chunk.slice(J)),z=J+K.length;if(X.length===1||!X.some((R)=>R[0]==="TOKENS")){let R=X[0]?.[1]||"";this.emit("REGEX",`/${R}/${K}`,{len:z,data:{delimiter:"///",heregex:{flags:K}}})}else{if(this.emit("REGEX_START","(",{len:0}),this.emit("IDENTIFIER","RegExp",{len:0}),this.emit("CALL_START","(",{len:0}),this.mergeInterpolationTokens(X,{quote:"///",endOffset:z-K.length}),K)this.emit(",",",",{len:0}),this.emit("STRING",`"${K}"`,{len:K.length});this.emit(")",")",{len:0}),this.emit("REGEX_END",")",{len:0})}return z}let F=W2.exec(this.chunk);if(!F)return 0;let[U,W,A]=F,$=this.prev();if($){if($.spaced&&a.has($[0])&&(!A||/^\/=?\s/.test(U)))return 0;if(x1.has($[0])&&!($.spaced&&a.has($[0])))return 0}if(!A)C("missing / (unclosed regex)",{row:this.row,col:this.col});let Q=U.length,[D]=O1.exec(this.chunk.slice(Q)),Z=Q+D.length;if(!F2.test(D))C(`invalid regular expression flags ${D}`,{row:this.row,col:this.col+Q,len:D.length});return this.emit("REGEX",`/${W}/${D}`,{len:Z,data:{delimiter:"/"}}),Z}jsToken(){if(this.chunk[0]!=="`")return 0;let Y=D2.exec(this.chunk)||Z2.exec(this.chunk);if(!Y)return 0;let F=Y[1],U=Y[0].length;return this.emit("JS",F,{len:U,data:{here:Y[0].startsWith("```")}}),U}literalToken(){let Y=n1.exec(this.chunk),F=Y?Y[0]:this.chunk.charAt(0),U=F,W=this.prev();if(r1.test(F))this.tagParameters();if(W&&(F==="="||G1.has(F))){if(F==="="&&(W[1]==="||"||W[1]==="&&"||W[1]==="??")&&!W.spaced)return W[0]="COMPOUND_ASSIGN",W[1]+="=",F.length}if(F==="("&&W?.[0]==="IMPORT")W[0]="DYNAMIC_IMPORT";if(F==="{"&&this.seenImport)this.importSpecifierList=!0;if(F==="}"&&this.importSpecifierList)this.importSpecifierList=!1;if(F==="{"&&W?.[0]==="EXPORT")this.exportSpecifierList=!0;if(F==="}"&&this.exportSpecifierList)this.exportSpecifierList=!1;if(F===";")this.seenFor=this.seenImport=this.seenExport=!1,U="TERMINATOR";else if(F==="::=")U="TYPE_ALIAS";else if(F==="::")U="TYPE_ANNOTATION";else if(F==="~=")U="COMPUTED_ASSIGN";else if(F===":=")U="REACTIVE_ASSIGN";else if(F==="<=>")U="BIND";else if(F==="~>")U="REACT_ASSIGN";else if(F==="=!")U="READONLY_ASSIGN";else if(F==="*"&&W?.[0]==="EXPORT")U="EXPORT_ALL";else if(c1.has(F))U="MATH";else if(l1.has(F))U="COMPARE";else if(G1.has(F))U="COMPOUND_ASSIGN";else if(p1.has(F))U="UNARY_MATH";else if(m1.has(F))U="SHIFT";else if(F==="?"&&W?.spaced)U="SPACE?";else if(F==="?"&&(this.chunk[1]==="["||this.chunk[1]==="("))U="?.";else if(W){if(F==="("&&!W.spaced&&a.has(W[0])){if(W[0]==="?.")W[0]="ES6_OPTIONAL_CALL";U="CALL_START"}if(F==="["&&!W.spaced&&P1.has(W[0])){if(U="INDEX_START",W[0]==="?.")W[0]="ES6_OPTIONAL_INDEX"}}if(F==="("||F==="{"||F==="[")this.ends.push({tag:v1[F],origin:[U,F]});else if(F===")"||F==="}"||F==="]")this.pair(F);return this.emit(U,F,{len:F.length}),F.length}tagParameters(){if(this.prevTag()!==")")return this.tagDoIife();let Y=this.tokens.length-1,F=[];this.tokens[Y][0]="PARAM_END";while(Y-- >0){let U=this.tokens[Y];if(U[0]===")")F.push(U);else if(U[0]==="("||U[0]==="CALL_START")if(F.length)F.pop();else if(U[0]==="(")return U[0]="PARAM_START",this.tagDoIife(Y-1);else{this.tokens[this.tokens.length-1][0]="CALL_END";return}}}tagDoIife(Y){let F=this.tokens[Y??this.tokens.length-1];if(F?.[0]==="DO")F[0]="DO_IIFE"}rewrite(Y){return this.tokens=Y,this.removeLeadingNewlines(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.rewriteRender(),this.rewriteTypes(),this.tagPostfixConditionals(),this.addImplicitBracesAndParens(),this.addImplicitCallCommas(),this.tokens}removeLeadingNewlines(){let Y=0;while(this.tokens[Y]?.[0]==="TERMINATOR")Y++;if(Y>0)this.tokens.splice(0,Y)}closeOpenCalls(){this.scanTokens((Y,F)=>{if(Y[0]==="CALL_START")this.detectEnd(F+1,(U)=>U[0]===")"||U[0]==="CALL_END",(U)=>U[0]="CALL_END");return 1})}closeOpenIndexes(){this.scanTokens((Y,F)=>{if(Y[0]==="INDEX_START")this.detectEnd(F+1,(U)=>U[0]==="]"||U[0]==="INDEX_END",(U,W)=>{if(this.tokens[W+1]?.[0]===":")Y[0]="[",U[0]="]";else U[0]="INDEX_END"});return 1})}normalizeLines(){let Y=null,F=null,U=null,W=($,Q)=>{return $[1]!==";"&&k1.has($[0])&&!($[0]==="TERMINATOR"&&K1.has(this.tokens[Q+1]?.[0]))&&!($[0]==="ELSE"&&Y!=="THEN")||$[0]==="INDENT"&&!$.generated&&(Y==="->"||Y==="=>")||$[0]===","&&(Y==="->"||Y==="=>")&&!this.commaInImplicitCall(Q)||z1.has($[0])&&(this.tokens[Q-1]?.newLine||this.tokens[Q-1]?.[0]==="OUTDENT")},A=($,Q)=>{let D=this.tokens[Q-1]?.[0]===","?Q-1:Q;this.tokens.splice(D,0,U)};this.scanTokens(($,Q,D)=>{let[Z]=$;if(Z==="TERMINATOR"){if(this.tokens[Q+1]?.[0]==="ELSE"&&this.tokens[Q-1]?.[0]!=="OUTDENT")return D.splice(Q,1,...this.makeIndentation()),1;if(K1.has(this.tokens[Q+1]?.[0]))return D.splice(Q,1),0}if(Z==="CATCH")for(let X=1;X<=2;X++){let J=this.tokens[Q+X]?.[0];if(J==="OUTDENT"||J==="TERMINATOR"||J==="FINALLY")return D.splice(Q+X,0,...this.makeIndentation()),2+X}if((Z==="->"||Z==="=>")&&(this.tokens[Q+1]?.[0]===","||this.tokens[Q+1]?.[0]==="]"))return[F,U]=this.makeIndentation(),D.splice(Q+1,0,F,U),1;if(R1.has(Z)&&this.tokens[Q+1]?.[0]!=="INDENT"&&!(Z==="ELSE"&&this.tokens[Q+1]?.[0]==="IF")){if(Y=Z,[F,U]=this.makeIndentation(),Z==="THEN")F.fromThen=!0;if(D.splice(Q+1,0,F),this.detectEnd(Q+2,W,A),Z==="THEN")D.splice(Q,1);return 1}return 1})}rewriteRender(){let Y=!1,F=0,U=0,W=[],A=(Z)=>{let X=Z.split("#")[0];return m.has(X)},$=(Z)=>{if(!Z||typeof Z!=="string")return!1;return/^[A-Z]/.test(Z)},Q=(Z)=>{return A(Z)||$(Z)},D=(Z,X)=>{let J=X;while(J>0){let K=Z[J-1][0];if(K==="INDENT"||K==="OUTDENT"||K==="TERMINATOR"||K==="RENDER"||K==="CALL_END"||K===")")break;J--}return Z[J]&&Z[J][0]==="IDENTIFIER"&&A(Z[J][1])};this.scanTokens(function(Z,X,J){let K=Z[0],z=X<J.length-1?J[X+1]:null;if(K==="RENDER")return Y=!0,F=U+1,1;if(K==="INDENT")return U++,1;if(K==="OUTDENT"){U--;let R=0;while(W.length>0&&W[W.length-1]>U){let M=u("CALL_END",")",Z);J.splice(X+1+R,0,M),W.pop(),R++}if(Y&&U<F)Y=!1;return 1+R}if(!Y)return 1;if(K==="IDENTIFIER"&&!Z.spaced){let R=[Z[1]],M=X+1;while(M+1<J.length){let G=J[M],O=J[M+1];if(G[0]==="-"&&!G.spaced&&(O[0]==="IDENTIFIER"||O[0]==="PROPERTY")){if(R.push(O[1]),M+=2,O[0]==="PROPERTY")break}else break}if(R.length>1&&M>X+1&&J[M-1][0]==="PROPERTY")return Z[0]="STRING",Z[1]=`"${R.join("-")}"`,J.splice(X+1,M-X-1),1}if(K==="."){let R=X>0?J[X-1]:null,M=R?R[0]:null;if(M==="INDENT"||M==="TERMINATOR"){if(z&&z[0]==="PROPERTY"){let G=u("IDENTIFIER","div",Z);return J.splice(X,0,G),2}}}if(K==="IDENTIFIER"||K==="PROPERTY"){let R=J[X+1],M=J[X+2];if(R&&R[0]==="#"&&M&&M[0]==="PROPERTY"){if(Z[1]=Z[1]+"#"+M[1],M.spaced)Z.spaced=!0;return J.splice(X+1,2),1}}if(K==="BIND"){let R=X>0?J[X-1]:null,M=J[X+1];if(R&&(R[0]==="IDENTIFIER"||R[0]==="PROPERTY")&&M&&M[0]==="IDENTIFIER")return R[1]=`__bind_${R[1]}__`,Z[0]=":",Z[1]=":",1}if(K==="@"){let R=X+1;if(R<J.length&&J[R][0]==="PROPERTY"){R++;while(R+1<J.length&&J[R][0]==="."&&J[R+1][0]==="PROPERTY")R+=2;if(R>X+2&&R<J.length&&J[R][0]===":"){let M=u("[","[",Z);J.splice(X,0,M);let G=u("]","]",J[R+1]);return J.splice(R+1,0,G),2}}}if(K==="."&&z&&z[0]==="("){let R=X>0?J[X-1]:null,M=R?R[0]:null,G=M==="INDENT"||M==="TERMINATOR",O=u("PROPERTY","__cx__",Z);z[0]="CALL_START";let H=1;for(let I=X+2;I<J.length&&H>0;I++)if(J[I][0]==="("||J[I][0]==="CALL_START")H++;else if(J[I][0]===")"){if(H--,H===0)J[I][0]="CALL_END"}else if(J[I][0]==="CALL_END")H--;if(G){let I=u("IDENTIFIER","div",Z);return J.splice(X,0,I),J.splice(X+2,0,O),3}else return J.splice(X+1,0,O),2}if(z&&z[0]==="INDENT"){if(K==="->"||K==="=>"||K==="CALL_START"||K==="(")return 1;let R=!1;if(K==="IDENTIFIER"&&Q(Z[1]))R=!0;else if(K==="PROPERTY"||K==="STRING"||K==="CALL_END"||K===")")R=D(J,X);else if(K==="IDENTIFIER"&&X>1&&J[X-1][0]==="..."){if(D(J,X)){let M=u(",",",",Z),G=u("->","->",Z);return G.newLine=!0,J.splice(X+1,0,M,G),3}}if(R){let M=u("CALL_START","(",Z),G=u("->","->",Z);return G.newLine=!0,J.splice(X+1,0,M,G),W.push(U+1),3}}return 1})}tagPostfixConditionals(){let Y=null,F=(W,A)=>{return W[0]==="TERMINATOR"||W[0]==="INDENT"&&!R1.has(this.tokens[A-1]?.[0])},U=(W)=>{if(W[0]!=="INDENT"||W.generated&&!W.fromThen)Y[0]="POST_"+Y[0]};this.scanTokens((W,A)=>{if(W[0]!=="IF"&&W[0]!=="UNLESS")return 1;return Y=W,this.detectEnd(A+1,F,U),1})}addImplicitBracesAndParens(){let Y=[],F=!1;this.scanTokens((U,W,A)=>{let[$]=U,Q=A[W-1]||[],D=A[W+1]||[],[Z]=Q,[X]=D,J=W,K=(q)=>W-J+q,z=()=>Y[Y.length-1],R=(q)=>q?.[2]?.ours,M=()=>R(z())&&z()?.[0]==="(",G=()=>R(z())&&z()?.[0]==="{",O=(q)=>{Y.push(["(",q,{ours:!0}]),A.splice(q,0,u("CALL_START","("))},H=()=>{Y.pop(),A.splice(W,0,u("CALL_END",")")),W+=1},I=(q,T={})=>{Y.push(["{",q,{sameLine:!0,startsLine:T.startsLine??!0,ours:!0}]);let B=u("{","{");if(!B.data)B.data={};B.data.generated=!0,A.splice(q,0,B)},P=(q)=>{q=q??W,Y.pop(),A.splice(q,0,u("}","}")),W+=1};if((M()||G())&&g1.has($))return Y.push(["CONTROL",W,{ours:!0}]),K(1);if($==="INDENT"&&R(z())){if(Z!=="=>"&&Z!=="->"&&Z!=="["&&Z!=="("&&Z!==","&&Z!=="{"&&Z!=="ELSE"&&Z!=="=")while(M()||G()&&Z!==":")if(M())H();else P();if(z()?.[2]?.ours&&z()[0]==="CONTROL")Y.pop();return Y.push([$,W]),K(1)}if(b.has($))return Y.push([$,W]),K(1);if(h.has($)){while(R(z()))if(M())H();else if(G())P();else Y.pop();Y.pop()}if($1.has($)&&U.spaced&&(d.has(X)||X==="..."&&d.has(A[W+2]?.[0])||h1.has(X)&&!D.spaced&&!D.newLine)&&!(($==="]"||$==="}")&&(X==="->"||X==="=>")))return O(W+1),K(2);if($1.has($)&&this.tokens[W+1]?.[0]==="INDENT"&&this.looksObjectish(W+2)&&!this.findTagsBackwards(W,["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"]))return O(W+1),Y.push(["INDENT",W+2]),K(3);if($==="SPACE?")F=!0;if($===":"){if(F)return F=!1,K(1);let q=h.has(this.tokens[W-1]?.[0])?Y[Y.length-1]?.[1]??W-1:W-1;if(this.tokens[W-2]?.[0]==="@")q=W-2;let T=q<=0||n.has(this.tokens[q-1]?.[0])||this.tokens[q-1]?.newLine;if(z()){let[B,N]=z(),S=Y[Y.length-2];if((B==="{"||B==="INDENT"&&S?.[0]==="{"&&!R(S))&&(T||this.tokens[q-1]?.[0]===","||this.tokens[q-1]?.[0]==="{"||this.tokens[q]?.[0]==="{"))return K(1)}return I(q,{startsLine:!!T}),K(2)}if(n.has($))for(let q=Y.length-1;q>=0;q--){if(!R(Y[q]))break;if(Y[q][0]==="{")Y[q][2].sameLine=!1}let E=Z==="OUTDENT"||Q.newLine,w=$==="||"||$==="&&",_=!1;if(w){let q=W+1,T=A[q]?.[0];if(T==="("||T==="["||T==="{"){for(let B=1;++q<A.length&&B>0;)if(T=A[q][0],T==="("||T==="["||T==="{")B++;else if(T===")"||T==="]"||T==="}")B--}else if(T&&T!=="TERMINATOR"&&T!=="OUTDENT"&&T!==",")q++;_=A[q]?.[0]===","}if(y1.has($)&&!_||z1.has($)&&E)while(R(z())){let[q,,{sameLine:T,startsLine:B}]=z();if(M()&&Z!==",")H();else if(G()&&!w&&T&&$!=="TERMINATOR"&&Z!==":")P();else if(G()&&$==="TERMINATOR"&&Z!==","&&!(B&&this.looksObjectish(W+1)))P();else if(z()?.[2]?.ours&&z()[0]==="CONTROL"&&A[z()[1]]?.[0]==="CLASS"&&$==="TERMINATOR")Y.pop();else break}if($===","&&!this.looksObjectish(W+1)&&G()&&(X!=="TERMINATOR"||!this.looksObjectish(W+2))){let q=X==="OUTDENT"?1:0;while(G())P(W+q)}return K(1)})}addImplicitCallCommas(){let Y=0,F=0,U=this.tokens;while(F<U.length){let W=U[F][0],A=F>0?U[F-1][0]:null;if(W==="CALL_START"||W==="(")Y++;if(W==="CALL_END"||W===")")Y--;if(Y>0&&(W==="->"||W==="=>")&&b1.has(A))U.splice(F,0,u(",",",")),F++;F++}}scanTokens(Y){let F=0;while(F<this.tokens.length)F+=Y.call(this,this.tokens[F],F,this.tokens)}detectEnd(Y,F,U,W={}){let A=0;while(Y<this.tokens.length){let $=this.tokens[Y];if(A===0&&F.call(this,$,Y))return U.call(this,$,Y);if(b.has($[0]))A++;if(h.has($[0]))A--;if(A<0){if(W.returnOnNegativeLevel)return;return U.call(this,$,Y)}Y++}}commaInImplicitCall(Y){let F=0;for(let U=Y-1;U>=0;U--){let W=this.tokens[U][0];if(h.has(W)){F++;continue}if(b.has(W)){if(W==="INDENT")return!1;if(F--,F<0)return!1;continue}if(F>0)continue;if($1.has(W)&&this.tokens[U].spaced){let A=this.tokens[U+1]?.[0];return d.has(A)||A==="..."&&d.has(this.tokens[U+2]?.[0])}}return!1}looksObjectish(Y){if(!this.tokens[Y])return!1;if(this.tokens[Y]?.[0]==="@"&&this.tokens[Y+2]?.[0]===":")return!0;if(this.tokens[Y+1]?.[0]===":")return!0;if(b.has(this.tokens[Y]?.[0])){let F=null;if(this.detectEnd(Y+1,(U)=>h.has(U[0]),(U,W)=>F=W),F&&this.tokens[F+1]?.[0]===":")return!0}return!1}findTagsBackwards(Y,F){let U=new Set(F),W=[];while(Y>=0){let A=this.tokens[Y]?.[0];if(!W.length&&U.has(A))return!0;if(h.has(A))W.push(A);if(b.has(A)&&W.length)W.pop();if(!W.length&&(b.has(A)&&!this.tokens[Y]?.generated||n.has(A)))break;Y--}return!1}makeIndentation(Y){let F=u("INDENT",2),U=u("OUTDENT",2);if(Y)F.generated=U.generated=!0,F.origin=U.origin=Y;else F.explicit=U.explicit=!0;return[F,U]}}F1(v);var R2={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,RELATION:208,"SPACE?":209,COMPOUND_ASSIGN:210},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:"RELATION",209:"SPACE?",210:"COMPOUND_ASSIGN"},parseTable:(()=>{let Y=[107,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,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,30,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,-6,-6,-6,-6,-6,-6,126,-6,-6,-6,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,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,127,128,129,96,97,52,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,10,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-13,-13,131,105,106,-13,-13,-13,-13,134,135,136,-13,137,-13,-13,-13,-13,-13,-13,-13,132,-13,138,-13,-13,133,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,130,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,44,1,5,59,1,1,5,10,1,1,1,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,139,140,141,-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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,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,55,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,10,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,142,143,144,145,146,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,18,6,49,1,10,1,5,7,1,1,7,14,2,1,15,1,3,4,1,-173,151,104,-173,-173,-173,153,154,152,99,156,155,150,147,-173,-173,148,149,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,158,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,159,102,103,53,52,72,73,93,99,59,83,87,84,85,66,157,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,160,161,162,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,163,164,162,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,165,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,171,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,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,173,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,174,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,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,176,177,178,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,175,72,73,93,99,83,87,84,85,166,167,90,91,86,88,89,82,170,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,176,177,178,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,179,72,73,93,99,83,87,84,85,166,167,90,91,86,88,89,82,170,58,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,10,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,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,180,181,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,182,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,184,183,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,185,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,42,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,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,186,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,2,66,56,159,187,2,66,56,159,188,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,14,39,16,1,23,1,1,7,4,5,5,2,25,37,2,192,151,104,153,154,152,99,189,190,83,155,194,191,193,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,195,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,196,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,88,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,10,1,10,1,3,1,1,2,3,20,2,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-302,-302,176,177,178,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-302,159,-302,102,103,-302,199,72,73,93,-302,99,-302,-302,-302,-302,-302,83,-302,87,-302,84,85,-302,-302,197,166,-302,167,90,91,86,88,89,82,-302,-302,-302,-302,-302,-302,-302,-302,-302,198,170,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,1,66,200,2,66,56,159,201,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,202,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,203,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,137,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,2,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,-224,-224,204,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,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,205,-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,166,-224,167,90,91,86,88,89,82,-224,69,64,65,206,54,94,55,95,-224,-224,56,60,57,-224,-224,58,98,-224,-224,-224,49,-224,61,67,62,63,70,71,168,169,170,46,47,48,50,51,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,2,55,1,207,104,2,55,1,208,104,6,15,19,89,2,1,1,210,209,42,43,90,91,136,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,2,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,-221,-221,211,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,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,212,-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,166,-221,167,90,91,86,88,89,82,-221,69,64,65,54,94,55,95,-221,-221,56,60,57,-221,-221,58,98,-221,-221,-221,49,-221,61,67,62,63,70,71,168,169,170,46,47,48,50,51,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,9,54,1,1,3,1,28,89,1,5,213,217,104,105,106,216,214,215,218,13,27,1,4,1,22,1,32,30,51,2,1,10,4,220,221,222,223,224,104,219,66,61,67,62,225,226,55,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,10,1,10,1,3,1,1,2,25,1,1,3,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,55,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,10,1,10,1,3,1,1,2,25,1,1,3,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,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,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,10,1,10,1,3,1,1,2,25,1,1,3,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,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,227,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,228,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,229,238,162,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,236,53,52,72,73,93,99,59,83,230,87,240,84,85,231,232,234,237,233,66,42,43,90,91,239,86,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,242,243,241,138,2,108,11,244,138,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,52,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,10,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-206,-206,245,246,-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,247,1,82,248,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,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,3,7,7,10,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,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,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,3,7,7,10,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,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-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,249,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,250,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,251,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,252,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,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,254,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,159,102,103,53,52,72,73,93,99,59,83,87,84,85,66,253,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,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,260,100,101,262,104,263,246,105,106,-109,-109,-109,264,255,-109,256,261,265,257,258,259,266,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,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,176,177,178,34,35,36,267,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,268,72,73,93,99,83,87,84,85,166,167,90,91,86,88,89,82,170,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,4,6,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,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,53,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,10,1,10,1,3,1,1,2,25,1,1,3,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,6,54,5,1,1,2,1,272,105,106,269,270,271,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,273,-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,274,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,275,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,276,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,277,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,278,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,279,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,283,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,284,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,286,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,287,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,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,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,292,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,293,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,295,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,296,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,14,39,16,1,23,1,1,7,4,5,5,2,25,37,2,300,151,104,153,154,152,99,297,298,83,155,194,299,193,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,51,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,10,1,10,1,3,1,1,2,25,1,1,3,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,51,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,10,1,10,1,3,1,1,2,25,1,1,3,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,2,108,11,303,138,2,57,1,304,246,2,57,1,305,246,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,306,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,311,77,78,79,80,81,100,101,92,104,105,106,307,102,103,309,53,52,72,73,93,308,99,59,83,87,313,84,85,310,312,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,1,84,314,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,319,238,162,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,318,102,103,53,52,72,73,93,99,59,83,87,240,84,85,317,66,315,42,43,90,91,239,316,86,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,320,246,2,57,1,321,246,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,322,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,323,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,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,325,324,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,326,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,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,328,327,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,329,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,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,331,330,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,332,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,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,334,333,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,335,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,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,337,336,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,338,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,9,6,60,1,5,22,1,8,18,3,-217,-217,-217,340,341,-217,-217,-217,339,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,342,-178,-178,15,6,49,1,10,1,5,7,1,1,7,14,2,17,3,5,-181,151,104,-181,-181,-181,153,154,152,99,156,155,-181,-181,343,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,245,246,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,319,238,162,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,236,53,52,72,73,93,99,59,83,230,87,240,84,85,231,232,234,237,233,66,42,43,90,91,239,86,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,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,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,345,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,344,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,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,124,125,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,118,-364,120,-364,-364,9,1,5,59,1,1,5,31,18,17,-361,-361,-361,-361,-361,-361,-361,-361,-361,5,148,1,9,1,1,127,128,129,96,97,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,124,125,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,118,-365,120,-365,-365,9,1,5,59,1,1,5,31,18,17,-362,-362,-362,-362,-362,-362,-362,-362,-362,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,124,125,-366,-366,-366,-366,-366,-366,-366,-366,-366,111,-366,-366,-366,-366,-366,-366,118,-366,120,-366,-366,18,6,49,1,10,1,5,7,1,1,7,14,2,1,15,1,3,4,1,-173,151,104,-173,-173,-173,153,154,152,99,156,155,150,346,-173,-173,148,149,2,66,56,159,157,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,160,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,163,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,5,15,108,2,1,1,210,166,167,90,91,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,124,125,-367,-367,-367,-367,-367,-367,-367,-367,-367,111,-367,-367,-367,-367,-367,-367,118,-367,120,-367,-367,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,124,125,-368,-368,-368,-368,-368,-368,-368,-368,-368,111,-368,-368,-368,-368,-368,-368,118,-368,120,-368,-368,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,118,-370,120,-370,-370,2,80,8,347,99,55,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,10,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-372,-372,-86,-86,-372,-372,-372,-372,-86,-86,-86,-86,-86,-86,-86,-86,-372,-86,-372,-372,-372,-372,-372,-372,-372,-372,-86,-372,-372,-86,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-86,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,10,54,5,1,22,1,1,3,21,11,12,131,105,106,134,135,136,137,132,138,133,3,82,1,1,139,140,141,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,55,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,10,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-373,-373,-86,-86,-373,-373,-373,-373,-86,-86,-86,-86,-86,-86,-86,-86,-373,-86,-373,-373,-373,-373,-373,-373,-373,-373,-86,-373,-373,-86,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-86,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,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,350,348,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,349,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-83,-83,-83,-83,-83,-83,-83,-83,126,-83,-83,-83,-83,-83,-83,-83,-83,-83,123,124,125,96,97,-83,-83,-83,-83,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,351,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,352,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,3,66,56,22,159,353,354,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,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,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,355,356,357,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,4,93,70,2,2,359,358,360,361,11,55,1,23,1,1,7,4,10,2,25,39,151,104,153,154,152,99,362,156,155,194,193,11,55,1,23,1,1,7,4,10,2,25,39,151,104,153,154,152,99,363,156,155,194,193,3,66,56,42,159,364,365,5,72,21,70,2,2,366,-300,-300,-300,-300,6,72,1,20,70,2,2,-298,367,-298,-298,-298,-298,22,66,25,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,368,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,3,155,1,1,369,370,371,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,372,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,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,1,2,7,7,10,1,10,1,3,1,1,2,3,22,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-306,-306,-86,-86,-306,159,-306,-306,-86,-86,-86,-86,-86,-86,-86,-86,-306,-86,-306,-306,-306,-306,-306,-306,-306,-306,-86,-306,373,-306,-86,-306,-306,-306,-306,-306,-306,-306,-306,-306,374,-306,-306,-86,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,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,377,378,379,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,375,376,63,70,71,44,45,68,46,47,48,50,51,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-222,-222,-222,-222,-222,-222,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,2,80,8,380,99,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-225,-225,-225,-225,-225,-225,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,2,80,8,381,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,382,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,3,66,53,3,159,383,384,2,66,56,159,385,9,1,5,59,1,1,5,31,18,17,-363,-363,-363,-363,-363,-363,-363,-363,-363,50,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,10,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-219,-219,-219,-219,-219,-219,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,2,80,8,386,99,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,2,72,70,388,387,1,142,389,7,55,1,10,29,84,1,2,394,104,393,390,391,392,395,2,72,70,-335,-335,1,181,396,7,55,1,10,29,87,3,2,401,104,400,397,402,398,399,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,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,1,73,403,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,404,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,405,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,1,142,406,2,6,132,107,407,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,408,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,30,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,-199,-199,-199,-199,126,-199,313,409,312,-199,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,55,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,10,1,10,1,3,1,1,2,25,1,1,3,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,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,319,238,162,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,236,53,52,72,73,93,99,59,83,410,87,240,84,85,412,411,66,42,43,90,91,239,86,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,414,415,-217,-217,413,-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,416,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-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,319,238,162,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,236,53,52,72,73,93,99,59,83,87,240,84,85,418,417,234,237,233,66,42,43,90,91,239,86,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,419,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,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,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,51,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,10,1,10,1,3,1,1,2,25,1,1,3,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,2,57,1,420,246,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,421,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,422,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,51,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,10,1,10,1,3,1,1,2,25,1,1,3,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,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,3,7,7,10,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,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,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,3,7,7,10,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,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-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,423,246,2,57,1,424,246,23,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,159,126,425,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,23,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,159,126,426,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-254,-254,-254,-254,-254,-254,-254,-254,126,-254,-254,427,-254,-254,-254,-254,-254,-254,-254,124,125,96,97,-254,-254,-254,-254,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-256,-256,-256,-256,-256,-256,-256,-256,126,-256,-256,428,-256,-256,-256,-256,-256,-256,-256,124,125,96,97,-256,-256,-256,-256,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-263,-263,-263,-263,-263,-263,-263,-263,126,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,124,125,96,97,-263,-263,-263,-263,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,6,6,60,1,5,18,5,-114,-114,-114,-114,429,-114,8,6,60,1,5,22,1,8,18,-217,-217,-217,431,430,-217,-217,-217,7,6,60,1,5,1,17,5,-123,-123,-123,-123,432,-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,433,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,3,57,1,44,245,246,434,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,438,440,439,262,104,263,246,437,264,99,435,87,436,441,442,86,82,51,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,10,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,-39,-39,443,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,55,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,10,1,10,1,3,1,1,2,25,1,1,3,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,6,54,5,1,2,1,1,272,105,106,444,445,271,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,446,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,448,447,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,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-376,-376,-376,-376,-376,-376,-376,-376,110,111,-376,-376,-376,-376,-376,-376,118,-376,120,-376,-376,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-377,-377,-377,-377,-377,-377,-377,-377,110,111,-377,-377,-377,-377,-377,-377,118,-377,120,-377,-377,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,124,125,-378,-378,-378,-378,-378,-378,-378,-378,-378,111,-378,-378,-378,-378,-378,-378,118,-378,120,-378,-378,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,124,125,-379,-379,-379,-379,-379,-379,-379,-379,-379,111,-379,-379,-379,-379,-379,-379,118,-379,120,-379,-379,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-380,-380,-380,-380,-380,-380,109,108,110,111,-380,-380,-380,-380,-380,-380,118,-380,120,-380,-380,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-381,-381,-381,-381,-381,-381,109,108,110,111,112,-381,-381,-381,-381,-381,118,-381,120,121,-381,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-382,-382,-382,-382,-382,-382,109,108,110,111,112,113,-382,-382,-382,-382,118,-382,120,121,-382,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-383,-383,-383,-383,-383,-383,109,108,110,111,112,113,114,-383,-383,-383,118,-383,120,121,-383,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-384,-384,-384,-384,-384,-384,109,108,110,111,112,113,114,115,-384,-384,118,-384,120,121,-384,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-392,-392,-392,-392,-392,-392,109,108,110,111,112,113,114,115,116,-392,118,119,120,121,-392,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-393,-393,-393,-393,-393,-393,-393,-393,126,-393,-393,-393,-393,-393,-393,-393,-393,-393,123,124,125,96,97,-393,-393,-393,-393,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-391,-391,-391,-391,-391,-391,109,108,110,111,112,113,114,115,116,-391,118,-391,120,121,-391,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-394,-394,-394,-394,-394,-394,-394,-394,126,-394,-394,-394,-394,-394,-394,-394,-394,-394,123,124,125,96,97,-394,-394,-394,-394,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-395,-395,-395,-395,-395,-395,109,108,110,111,112,-395,-395,-395,-395,-395,118,-395,120,-395,-395,22,90,1,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,449,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-236,-236,-236,-236,-236,-236,-236,-236,126,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,124,125,96,97,-236,-236,-236,-236,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-238,-238,-238,-238,-238,-238,-238,-238,126,-238,-238,-238,-238,-238,-238,-238,-238,-238,123,124,125,96,97,-238,-238,-238,-238,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,4,93,70,2,2,451,450,452,453,11,55,1,23,1,1,7,4,10,2,25,39,151,104,153,154,152,99,454,156,155,194,193,11,55,1,23,1,1,7,4,10,2,25,39,151,104,153,154,152,99,455,156,155,194,193,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,456,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-235,-235,-235,-235,-235,-235,-235,-235,126,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,124,125,96,97,-235,-235,-235,-235,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-237,-237,-237,-237,-237,-237,-237,-237,126,-237,-237,-237,-237,-237,-237,-237,-237,-237,123,124,125,96,97,-237,-237,-237,-237,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,51,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,10,1,10,1,3,1,1,2,25,1,1,3,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,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,3,7,7,10,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,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,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,3,7,7,10,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,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,25,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,457,126,313,458,312,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,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,459,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,460,99,59,83,87,313,84,85,310,312,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,1,85,461,1,85,462,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,463,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,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,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,50,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,10,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,-46,-46,-46,-46,-46,464,-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,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,465,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,466,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,51,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,10,1,10,1,3,1,1,2,25,1,1,3,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,8,6,60,1,5,22,1,8,18,-217,-217,-217,468,467,-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,319,238,162,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,318,102,103,53,52,72,73,93,99,59,83,87,240,84,85,317,66,42,43,90,91,239,469,86,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,27,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,-199,-199,-199,-199,126,-199,-199,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,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,3,7,7,10,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,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,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,3,7,7,10,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,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,22,85,6,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,470,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,471,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-68,-68,-68,-68,-68,-68,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,472,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,473,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-71,-71,-71,-71,-71,-71,-71,-71,126,-71,-71,-71,-71,-71,-71,-71,-71,-71,123,124,125,96,97,-71,-71,-71,-71,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,474,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,475,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-74,-74,-74,-74,-74,-74,-74,-74,126,-74,-74,-74,-74,-74,-74,-74,-74,-74,123,124,125,96,97,-74,-74,-74,-74,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,476,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,477,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-77,-77,-77,-77,-77,-77,-77,-77,126,-77,-77,-77,-77,-77,-77,-77,-77,-77,123,124,125,96,97,-77,-77,-77,-77,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,478,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,479,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-80,-80,-80,-80,-80,-80,-80,-80,126,-80,-80,-80,-80,-80,-80,-80,-80,-80,123,124,125,96,97,-80,-80,-80,-80,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,3,125,1,1,482,90,91,17,6,49,1,10,1,12,1,1,7,7,7,1,1,1,16,7,1,-218,151,104,-218,-218,153,154,152,99,-218,156,-218,155,150,-218,483,149,2,6,60,484,485,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,6,6,60,1,5,49,3,-180,-180,-180,-180,-180,-180,54,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,-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,487,9,6,60,1,5,22,1,8,18,3,-217,-217,-217,340,341,-217,-217,-217,488,1,67,489,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-397,-397,-397,-397,-397,-397,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,491,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-84,-84,-84,-84,-84,-84,-84,-84,126,-84,-84,-84,-84,-84,-84,-84,-84,-84,123,124,125,96,97,-84,-84,-84,-84,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,22,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,492,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,493,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,3,7,1,3,1,1,2,25,1,4,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,494,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,2,66,56,159,495,6,55,1,10,14,8,34,496,104,159,497,99,498,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,501,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,1,93,503,1,165,504,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,505,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,10,55,1,23,1,1,7,14,2,25,39,151,104,153,154,152,99,156,155,194,506,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,507,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,3,155,1,1,508,370,371,4,67,78,11,1,509,510,511,371,3,67,78,12,-250,-250,-250,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,513,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,512,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,1,2,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-304,-304,-304,159,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,514,-304,-304,-304,124,125,-304,-304,-304,-304,-304,-304,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,515,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,2,6,61,517,516,2,6,61,-312,-312,23,6,61,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-315,-315,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,2,6,61,-316,-316,7,6,61,81,1,9,1,1,-317,-317,127,128,129,96,97,1,67,518,1,67,519,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-227,-227,-227,-227,-227,-227,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,18,6,49,1,10,1,5,7,1,1,7,14,2,1,15,1,3,4,1,-173,151,104,-173,-173,-173,153,154,152,99,156,155,150,520,-173,-173,148,149,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,1,67,521,3,54,5,1,522,105,106,3,88,90,5,524,523,218,3,54,5,1,525,105,106,1,142,526,8,6,60,1,5,22,1,8,18,-217,-217,-217,528,527,-217,-217,-217,5,6,60,1,5,23,-326,-326,-326,-326,-326,6,55,1,10,113,1,2,394,104,393,529,392,395,6,6,60,1,5,23,86,-331,-331,-331,-331,-331,530,6,6,60,1,5,23,86,-333,-333,-333,-333,-333,531,2,55,1,532,104,14,1,5,59,1,1,5,31,18,17,4,6,1,10,1,-337,-337,-337,-337,-337,-337,-337,-337,-337,533,-337,-337,-337,-337,8,6,60,1,5,22,1,8,18,-217,-217,-217,535,534,-217,-217,-217,5,6,60,1,5,23,-351,-351,-351,-351,-351,6,55,1,10,116,3,2,401,104,400,402,536,399,6,6,60,1,5,23,86,-356,-356,-356,-356,-356,537,6,6,60,1,5,23,86,-359,-359,-359,-359,-359,538,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,540,539,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,541,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,30,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,-346,-346,-346,-346,-346,-346,126,-346,-346,-346,-346,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,2,80,8,542,99,3,54,5,1,543,105,106,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,2,6,61,107,544,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,545,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,55,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,10,1,10,1,3,1,1,2,25,1,1,3,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,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,416,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-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,547,546,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,319,238,162,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,236,53,52,72,73,93,99,59,-218,83,-218,87,240,84,85,549,548,237,233,66,-218,42,43,90,91,239,86,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,550,-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,414,415,-217,-217,551,-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,319,238,162,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,236,53,52,72,73,93,99,59,83,87,240,84,85,412,411,66,42,43,90,91,239,86,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,27,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,-186,-186,-186,-186,126,-186,-186,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,22,85,6,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,552,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,553,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,42,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,-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,42,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,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,554,-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,555,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,556,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,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,557,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,558,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,3,6,60,29,560,561,559,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,260,100,101,262,104,263,246,105,106,-218,-218,264,563,-218,562,265,257,258,-218,259,266,-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,564,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,565,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,22,91,12,45,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,126,566,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,567,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,10,6,60,1,5,10,1,1,11,13,11,-127,-127,-127,-127,-129,-129,-129,-127,568,138,10,6,60,1,5,10,1,1,11,13,11,-128,-128,-128,-128,570,571,572,-128,569,138,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,242,243,573,138,2,108,11,574,138,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,53,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,10,1,10,1,3,1,1,2,25,1,1,3,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,4,59,1,2,2,-59,-59,-59,-59,2,6,59,107,575,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,576,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,577,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,578,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,579,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,580,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,581,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,1,93,582,1,165,583,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,584,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,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,3,7,7,10,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,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-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,585,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,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,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,25,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,586,126,313,458,312,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,1,67,587,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,3,7,7,10,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,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,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,3,7,7,10,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,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,23,67,18,6,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-163,-163,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,588,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,22,85,6,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,589,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,3,6,60,55,592,593,591,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,319,238,162,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,240,84,85,594,66,-218,42,43,90,91,239,86,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,468,595,-217,-217,-217,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,3,7,7,10,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,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,22,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,596,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-69,-69,-69,-69,-69,-69,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,22,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,597,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-72,-72,-72,-72,-72,-72,-72,-72,126,-72,-72,-72,-72,-72,-72,-72,-72,-72,123,124,125,96,97,-72,-72,-72,-72,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,22,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,598,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-75,-75,-75,-75,-75,-75,-75,-75,126,-75,-75,-75,-75,-75,-75,-75,-75,-75,123,124,125,96,97,-75,-75,-75,-75,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,22,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,599,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-78,-78,-78,-78,-78,-78,-78,-78,126,-78,-78,-78,-78,-78,-78,-78,-78,-78,123,124,125,96,97,-78,-78,-78,-78,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,22,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,600,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-81,-81,-81,-81,-81,-81,-81,-81,126,-81,-81,-81,-81,-81,-81,-81,-81,-81,123,124,125,96,97,-81,-81,-81,-81,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,22,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,601,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,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,603,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,159,102,103,53,52,72,73,93,99,59,83,87,84,85,66,602,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,151,104,153,154,152,99,156,155,150,604,149,18,6,49,1,10,1,5,7,1,1,7,14,2,1,15,1,3,4,1,-173,151,104,-173,-173,-173,153,154,152,99,156,155,150,605,-173,-173,148,149,27,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,-179,-179,-179,-179,126,-179,-179,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,54,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,-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,606,90,91,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,22,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,607,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,124,125,-399,-399,-399,-399,-399,-399,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,23,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,159,126,608,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,2,66,56,159,609,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,2,66,56,159,610,2,66,56,159,611,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,3,7,1,3,1,1,2,25,1,4,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,25,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,159,126,613,612,123,124,125,96,97,614,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,24,66,25,5,26,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,159,126,616,615,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,24,66,25,5,26,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,159,126,618,617,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,24,66,25,5,26,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,159,126,620,619,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,621,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,622,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,23,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,159,126,623,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,4,93,70,2,2,-301,-301,-301,-301,26,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,-299,126,-299,123,124,125,96,97,-299,-299,-299,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,4,67,78,11,1,624,625,511,371,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,2,66,56,159,626,3,67,78,12,-251,-251,-251,3,66,6,50,159,628,627,23,66,6,19,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-203,-203,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,1,2,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-308,-308,-308,159,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,629,-308,-308,-308,124,125,-308,-308,-308,-308,-308,-308,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,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,-314,377,378,379,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,-314,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,630,63,70,71,44,45,68,46,47,48,50,51,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,8,6,60,1,5,22,1,8,18,-217,-217,-217,340,341,-217,-217,631,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,1,142,632,6,55,1,10,113,1,2,394,104,393,633,392,395,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,3,54,5,1,634,105,106,3,6,60,29,636,637,635,10,6,49,1,10,1,28,8,18,59,2,-218,394,104,-218,-218,-218,-218,-218,638,395,8,6,60,1,5,22,1,8,18,-217,-217,-217,528,639,-217,-217,-217,2,55,1,640,104,2,55,1,641,104,1,142,-336,3,54,5,1,642,105,106,3,6,60,29,644,645,643,10,6,49,1,10,1,28,8,18,61,5,-218,401,104,-218,-218,-218,-218,-218,402,646,8,6,60,1,5,22,1,8,18,-217,-217,-217,535,647,-217,-217,-217,3,55,1,126,648,104,649,2,55,1,650,104,30,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,-343,-343,-343,-343,-343,-343,126,-343,-343,-343,-343,124,125,-343,-343,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,651,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,652,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,1,67,653,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,1,138,654,22,91,12,45,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,126,655,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,55,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,10,1,10,1,3,1,1,2,25,1,1,3,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,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,319,238,162,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,236,53,52,72,73,93,99,59,83,87,240,84,85,418,656,234,237,233,66,42,43,90,91,239,86,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,319,238,162,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,236,53,52,72,73,93,99,59,83,-153,87,240,84,85,412,411,66,42,43,90,91,239,86,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,319,238,162,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,236,53,52,72,73,93,99,59,83,87,240,84,85,418,657,237,233,66,42,43,90,91,239,86,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,547,658,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,22,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,659,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,2,66,56,159,660,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,124,125,-255,-255,-255,-255,-255,-255,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,124,125,-257,-257,-257,-257,-257,-257,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,26,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,-116,-116,-116,-116,661,-116,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,55,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,10,1,10,1,3,1,1,2,25,1,1,3,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,17,45,8,1,1,1,1,1,1,1,21,8,10,1,1,1,2,1,260,100,101,262,104,263,246,105,106,264,563,663,265,257,258,259,266,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,260,100,101,262,104,263,246,105,106,-109,-109,-109,264,563,-109,664,261,265,257,258,259,266,5,6,60,1,5,23,-111,-111,-111,-111,-111,6,6,60,1,5,18,5,-114,-114,-114,-114,665,-114,26,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,-118,-118,-118,-118,126,-118,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,666,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,6,6,60,1,5,18,5,-124,-124,-124,-124,-124,-124,22,91,12,45,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,126,667,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,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,668,246,2,57,1,669,246,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,670,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,671,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,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,672,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-396,-396,-396,-396,-396,-396,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,673,-281,-281,-281,-281,-281,-281,-281,124,125,-281,-281,-281,674,-281,-281,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,675,-286,-286,-286,-286,-286,-286,-286,124,125,-286,-286,-286,-286,-286,-286,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,676,-290,-290,-290,-290,-290,-290,-290,124,125,-290,-290,-290,-290,-290,-290,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,677,-294,-294,-294,-294,-294,-294,-294,124,125,-294,-294,-294,-294,-294,-294,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,678,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,679,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-297,-297,-297,-297,-297,-297,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,23,67,18,6,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-161,-161,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,1,85,680,1,85,681,22,85,6,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-66,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,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,3,7,7,10,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,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,22,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,682,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,51,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,10,1,10,1,3,1,1,2,25,1,1,3,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,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,319,238,162,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,240,84,85,683,66,42,43,90,91,239,86,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,319,238,162,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,318,102,103,53,52,72,73,93,99,59,83,87,240,84,85,317,66,42,43,90,91,239,684,86,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,592,593,685,1,85,686,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,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,340,687,-217,-217,-217,2,66,56,159,602,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,42,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,-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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,3,7,1,3,1,1,2,25,1,4,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,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,3,7,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,688,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,689,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,692,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,24,66,25,5,26,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,159,126,694,693,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,24,66,25,5,26,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,159,126,696,695,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,2,66,56,159,697,1,67,698,4,6,61,78,12,699,-252,-252,-252,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,2,6,61,-313,-313,2,66,56,159,701,3,54,5,1,702,105,106,8,6,60,1,5,22,1,8,18,-217,-217,-217,528,703,-217,-217,-217,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,704,4,55,1,124,2,394,104,705,395,6,55,1,10,113,1,2,394,104,393,706,392,395,5,6,60,1,5,23,-327,-327,-327,-327,-327,3,6,60,1,636,637,707,5,6,60,1,5,23,-332,-332,-332,-332,-332,5,6,60,1,5,23,-334,-334,-334,-334,-334,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,14,1,5,59,1,1,5,31,18,17,4,6,1,10,1,-338,-338,-338,-338,-338,-338,-338,-338,-338,708,-338,-338,-338,-338,4,55,1,126,5,401,104,402,709,6,55,1,10,116,3,2,401,104,400,402,710,399,5,6,60,1,5,23,-352,-352,-352,-352,-352,3,6,60,1,644,645,711,5,6,60,1,5,23,-357,-357,-357,-357,-357,5,6,60,1,5,23,-358,-358,-358,-358,-358,5,6,60,1,5,23,-360,-360,-360,-360,-360,30,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,-344,-344,-344,-344,-344,-344,126,-344,-344,-344,-344,124,125,-344,-344,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,22,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,712,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,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,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,9,6,60,1,5,22,1,8,9,9,-217,-217,-217,414,415,-217,-217,713,-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,714,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,14,39,16,1,23,1,1,7,4,5,5,2,25,37,2,300,151,104,153,154,152,99,715,716,83,155,194,299,193,22,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,717,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,5,6,60,1,5,23,-112,-112,-112,-112,-112,8,6,60,1,5,22,1,8,18,-217,-217,-217,431,718,-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,719,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,558,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,22,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,720,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,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,22,85,6,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,721,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,722,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,1,65,723,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,724,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,725,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,726,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,727,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,728,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,729,-288,-288,-288,-288,-288,-288,-288,124,125,-288,-288,-288,-288,-288,-288,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,730,-292,-292,-292,-292,-292,-292,-292,124,125,-292,-292,-292,-292,-292,-292,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,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,3,7,7,10,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,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,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,3,7,7,10,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,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-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,731,5,6,60,1,5,49,-196,-196,-196,-196,-196,8,6,60,1,5,22,1,8,18,-217,-217,-217,468,732,-217,-217,-217,5,6,60,1,5,49,-197,-197,-197,-197,-197,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,3,7,7,10,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,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-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,484,485,733,24,66,25,31,26,1,9,1,1,4,28,1,4,1,1,1,1,1,1,1,1,1,1,1,1,159,126,734,123,124,125,96,97,735,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,24,66,25,5,26,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,159,126,737,736,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,23,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,159,126,738,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,23,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,159,126,739,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,23,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,159,126,740,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,742,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,1,67,743,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,3,67,78,12,-253,-253,-253,23,66,6,19,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-204,-204,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,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,3,6,60,29,636,637,744,3,54,5,1,745,105,106,5,6,60,1,5,23,-328,-328,-328,-328,-328,8,6,60,1,5,22,1,8,18,-217,-217,-217,528,746,-217,-217,-217,5,6,60,1,5,23,-329,-329,-329,-329,-329,3,54,5,1,747,105,106,5,6,60,1,5,23,-353,-353,-353,-353,-353,8,6,60,1,5,22,1,8,18,-217,-217,-217,535,748,-217,-217,-217,5,6,60,1,5,23,-354,-354,-354,-354,-354,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,2,66,1,547,749,50,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,10,1,10,1,3,1,1,2,25,1,1,3,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,4,93,70,2,2,750,450,452,453,11,55,1,23,1,1,7,4,10,2,25,39,151,104,153,154,152,99,751,156,155,194,193,5,6,60,1,5,23,-117,-117,-117,-117,-117,3,6,60,1,560,561,752,26,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,-116,-116,-116,-116,126,-116,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,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,22,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,753,126,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,4,59,1,2,2,-61,-61,-61,-61,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-282,-282,-282,754,-282,-282,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,755,-283,-283,-283,-283,-283,-283,-283,124,125,-283,-283,-283,-283,-283,-283,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-287,-287,-287,-287,-287,-287,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-291,-291,-291,-291,-291,-291,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-295,-295,-295,-295,-295,-295,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,756,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,757,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,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,3,7,7,10,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,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-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,592,593,758,6,6,60,1,5,49,3,-177,-177,-177,-177,-177,-177,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,759,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,760,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,23,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,159,126,761,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,23,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,159,126,762,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,1,142,763,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,6,60,1,636,637,764,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,3,6,60,1,644,645,765,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,766,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,1,93,767,5,6,60,1,5,23,-113,-113,-113,-113,-113,1,85,768,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-289,-289,-289,-289,-289,-289,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-293,-293,-293,-293,-293,-293,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,5,6,60,1,5,49,-198,-198,-198,-198,-198,23,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,159,126,771,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,23,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,159,126,772,123,124,125,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,3,54,5,1,773,105,106,5,6,60,1,5,23,-330,-330,-330,-330,-330,5,6,60,1,5,23,-355,-355,-355,-355,-355,43,1,5,59,1,1,5,13,5,1,2,1,1,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-286,-286,-286,-286,-286,776,-286,-286,-286,-286,774,-286,775,-286,-286,-286,-286,-286,-286,-286,124,125,-286,-286,-286,-286,-286,-286,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,777,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,9,6,60,1,5,10,1,1,11,24,-141,-141,-141,-141,-141,-141,-141,-141,-141,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,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,124,125,-284,-284,-284,-284,-284,-284,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,42,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,124,125,-285,-285,-285,-285,-285,-285,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,41,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,25,1,4,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,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,1,95,778,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,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,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,6,6,60,1,28,8,18,-218,-218,-218,-218,-218,-218,43,1,5,59,1,1,5,13,5,1,2,1,1,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,776,-288,-288,-288,-288,780,-288,781,-288,-288,-288,-288,-288,-288,-288,124,125,-288,-288,-288,-288,-288,-288,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,55,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,10,1,10,1,3,1,1,2,25,1,1,3,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,43,1,5,59,1,1,5,13,5,1,2,1,1,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-287,-287,-287,-287,-287,776,-287,-287,-287,-287,782,-287,-287,-287,-287,-287,-287,-287,-287,-287,124,125,-287,-287,-287,-287,-287,-287,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,1,95,783,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,784,162,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,166,167,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,168,169,170,46,47,48,50,51,1,95,785,55,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,10,1,10,1,3,1,1,2,25,1,1,3,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,43,1,5,59,1,1,5,13,5,1,2,1,1,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,776,-289,-289,-289,-289,786,-289,-289,-289,-289,-289,-289,-289,-289,-289,124,125,-289,-289,-289,-289,-289,-289,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,55,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,10,1,10,1,3,1,1,2,25,1,1,3,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,1,95,787,55,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,10,1,10,1,3,1,1,2,25,1,1,3,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],F=[],U=0,W,A,$,Q;while(U<Y.length){W=Y[U++],A={},$=0,Q=[];while(W--)$+=Y[U++],Q.push($);for($ of Q)A[$]=Y[U++];F.push(A)}return F})(),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,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,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,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,5,16,3,16,5,16,4,41,2],ruleActions:(Y,F,U,W)=>{let A=F,$=F.length-1;switch(Y){case 1:return["program"];case 2:return["program",...A[$]];case 3:case 58:case 110:case 150:case 154:case 174:case 194:case 203:case 250:case 300:case 312:case 326:case 351:return[A[$]];case 4:case 111:case 175:case 195:case 204:case 313:case 327:case 352:return[...A[$-2],A[$]];case 5:case 60:case 157:case 314:return A[$-1];case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 63:case 64:case 86:case 87:case 88:case 89:case 90:case 115:case 120:case 121:case 122:case 123:case 126:case 129:case 130:case 131:case 132:case 133:case 145:case 171:case 172:case 178:case 182:case 183:case 184:case 185:case 199:case 200:case 201:case 217:case 218:case 232:case 234:case 261:case 298:case 315:case 316:case 317:case 331:case 333:case 335:case 356:case 359:return A[$];case 47:return"undefined";case 48:return"null";case 57:return["str",...A[$-1]];case 59:case 151:case 155:case 251:return[...A[$-1],A[$]];case 61:case 193:case 197:case 329:case 354:return A[$-2];case 62:return"";case 65:return["regex",A[$-1]];case 66:return["regex-index",A[$-2],A[$]];case 67:return["regex-index",A[$],null];case 68:return["=",A[$-2],A[$]];case 69:return["=",A[$-3],A[$]];case 70:return["=",A[$-4],A[$-1]];case 71:return["state",A[$-2],A[$]];case 72:return["state",A[$-3],A[$]];case 73:return["state",A[$-4],A[$-1]];case 74:return["computed",A[$-2],A[$]];case 75:return["computed",A[$-3],A[$]];case 76:return["computed",A[$-4],A[$-1]];case 77:return["readonly",A[$-2],A[$]];case 78:return["readonly",A[$-3],A[$]];case 79:return["readonly",A[$-4],A[$-1]];case 80:return["effect",A[$-2],A[$]];case 81:return["effect",A[$-3],A[$]];case 82:return["effect",A[$-4],A[$-1]];case 83:case 84:return["effect",null,A[$]];case 85:return["effect",null,A[$-1]];case 91:case 100:case 138:return[".",A[$-2],A[$]];case 92:case 101:case 139:return["?.",A[$-2],A[$]];case 93:case 95:case 102:case 140:return["[]",A[$-3],A[$-1]];case 94:case 96:case 103:case 141:return["[]",A[$-5],A[$-2]];case 97:return[A[$-1][0],A[$-3],...A[$-1].slice(1)];case 98:return["optindex",A[$-4],A[$-1]];case 99:return["optindex",A[$-6],A[$-2]];case 104:return["object-comprehension",A[$-8],A[$-6],[["for-of",A[$-4],A[$-2],!1]],[]];case 105:return["object-comprehension",A[$-10],A[$-8],[["for-of",A[$-6],A[$-4],!1]],[A[$-2]]];case 106:return["object-comprehension",A[$-9],A[$-7],[["for-of",A[$-4],A[$-2],!0]],[]];case 107:return["object-comprehension",A[$-11],A[$-9],[["for-of",A[$-6],A[$-4],!0]],[A[$-2]]];case 108:return["object",...A[$-2]];case 109:case 152:case 173:case 192:return[];case 112:case 176:case 196:case 328:case 353:return[...A[$-3],A[$]];case 113:case 177:case 198:case 330:case 355:return[...A[$-5],...A[$-2]];case 114:return[A[$],A[$],null];case 116:return[A[$-2],A[$],":"];case 117:return[A[$-4],A[$-1],":"];case 118:return[A[$-2],A[$],"="];case 119:return[A[$-4],A[$-1],"="];case 124:return["dynamicKey",A[$-1]];case 125:return["[]","this",A[$-1]];case 127:case 128:case 186:return["...",A[$]];case 134:case 190:return["super",...A[$]];case 135:case 136:case 137:case 188:case 191:return[A[$-1],...A[$]];case 142:return["array"];case 143:return["array",...A[$-1]];case 144:return["array",...A[$-2],...A[$-1]];case 146:return[...A[$-2],...A[$]];case 147:return[...A[$-3],...A[$]];case 148:return[...A[$-2],...A[$-1]];case 149:return[...A[$-5],...A[$-4],...A[$-2],...A[$-1]];case 153:return[...A[$]];case 156:return null;case 158:return"..";case 159:case 202:return"...";case 160:return[A[$-2],A[$-3],A[$-1]];case 161:case 378:case 380:case 381:case 395:case 397:return[A[$-1],A[$-2],A[$]];case 162:return[A[$],A[$-1],null];case 163:return[A[$-1],null,A[$]];case 164:return[A[$],null,null];case 165:return["def",A[$-4],A[$-2],A[$]];case 166:return["def",A[$-1],[],A[$]];case 167:case 169:return[A[$-1],A[$-3],A[$]];case 168:case 170:return[A[$-1],[],A[$]];case 179:case 299:return["default",A[$-2],A[$]];case 180:return["rest",A[$]];case 181:return["expansion"];case 187:return["tagged-template",A[$-1],A[$]];case 189:return["optcall",A[$-2],...A[$]];case 205:case 206:return"this";case 207:return[".","this",A[$]];case 208:return[".","super",A[$]];case 209:return["[]","super",A[$-1]];case 210:return["[]","super",A[$-2]];case 211:return[".","new",A[$]];case 212:return[".","import",A[$]];case 213:return["block"];case 214:return["block",...A[$-1]];case 215:return A[$-1].length===1?A[$-1][0]:["block",...A[$-1]];case 216:return A[$-2].length===1?A[$-2][0]:["block",...A[$-2]];case 219:return["return",A[$]];case 220:return["return",A[$-1]];case 221:return["return"];case 222:return["throw",A[$]];case 223:return["throw",A[$-1]];case 224:return["yield"];case 225:return["yield",A[$]];case 226:return["yield",A[$-1]];case 227:return["yield-from",A[$]];case 228:return["if",A[$-1],A[$]];case 229:return A[$-4].length===3?["if",A[$-4][1],A[$-4][2],["if",A[$-1],A[$]]]:[...A[$-4],["if",A[$-1],A[$]]];case 230:return["unless",A[$-1],A[$]];case 231:return["if",["!",A[$-3]],A[$-2],A[$]];case 233:return A[$-2].length===3?["if",A[$-2][1],A[$-2][2],A[$]]:[...A[$-2],A[$]];case 235:case 236:return["if",A[$],[A[$-2]]];case 237:case 238:return["unless",A[$],[A[$-2]]];case 239:return["try",A[$]];case 240:return["try",A[$-1],A[$]];case 241:return["try",A[$-2],A[$]];case 242:return["try",A[$-3],A[$-2],A[$]];case 243:case 244:case 361:case 364:case 366:return[A[$-1],A[$]];case 245:return[null,A[$]];case 246:return["switch",A[$-3],A[$-1],null];case 247:return["switch",A[$-5],A[$-3],A[$-1]];case 248:return["switch",null,A[$-1],null];case 249:return["switch",null,A[$-3],A[$-1]];case 252:return["when",A[$-1],A[$]];case 253:return["when",A[$-2],A[$-1]];case 254:return["while",A[$]];case 255:return["while",A[$-2],A[$]];case 256:return["until",A[$]];case 257:return["until",A[$-2],A[$]];case 258:return A[$-1].length===2?[A[$-1][0],A[$-1][1],A[$]]:[A[$-1][0],A[$-1][1],A[$-1][2],A[$]];case 259:case 260:return A[$].length===2?[A[$][0],A[$][1],[A[$-1]]]:[A[$][0],A[$][1],A[$][2],[A[$-1]]];case 262:return["loop",A[$]];case 263:return["loop",[A[$]]];case 264:return["for-in",A[$-3],A[$-1],null,null,A[$]];case 265:return["for-in",A[$-5],A[$-3],null,A[$-1],A[$]];case 266:return["for-in",A[$-5],A[$-3],A[$-1],null,A[$]];case 267:return["for-in",A[$-7],A[$-5],A[$-1],A[$-3],A[$]];case 268:return["for-in",A[$-7],A[$-5],A[$-3],A[$-1],A[$]];case 269:return["for-of",A[$-3],A[$-1],!1,null,A[$]];case 270:return["for-of",A[$-5],A[$-3],!1,A[$-1],A[$]];case 271:return["for-of",A[$-3],A[$-1],!0,null,A[$]];case 272:return["for-of",A[$-5],A[$-3],!0,A[$-1],A[$]];case 273:return["for-as",A[$-3],A[$-1],!1,null,A[$]];case 274:return["for-as",A[$-5],A[$-3],!1,A[$-1],A[$]];case 275:case 277:return["for-as",A[$-3],A[$-1],!0,null,A[$]];case 276:case 278:return["for-as",A[$-5],A[$-3],!0,A[$-1],A[$]];case 279:return["for-in",[],A[$-1],null,null,A[$]];case 280:return["for-in",[],A[$-3],A[$-1],null,A[$]];case 281:return["comprehension",A[$-4],[["for-in",A[$-2],A[$],null]],[]];case 282:return["comprehension",A[$-6],[["for-in",A[$-4],A[$-2],null]],[A[$]]];case 283:return["comprehension",A[$-6],[["for-in",A[$-4],A[$-2],A[$]]],[]];case 284:return["comprehension",A[$-8],[["for-in",A[$-6],A[$-4],A[$]]],[A[$-2]]];case 285:return["comprehension",A[$-8],[["for-in",A[$-6],A[$-4],A[$-2]]],[A[$]]];case 286:return["comprehension",A[$-4],[["for-of",A[$-2],A[$],!1]],[]];case 287:return["comprehension",A[$-6],[["for-of",A[$-4],A[$-2],!1]],[A[$]]];case 288:return["comprehension",A[$-5],[["for-of",A[$-2],A[$],!0]],[]];case 289:return["comprehension",A[$-7],[["for-of",A[$-4],A[$-2],!0]],[A[$]]];case 290:return["comprehension",A[$-4],[["for-as",A[$-2],A[$],!1,null]],[]];case 291:return["comprehension",A[$-6],[["for-as",A[$-4],A[$-2],!1,null]],[A[$]]];case 292:return["comprehension",A[$-5],[["for-as",A[$-2],A[$],!0,null]],[]];case 293:return["comprehension",A[$-7],[["for-as",A[$-4],A[$-2],!0,null]],[A[$]]];case 294:return["comprehension",A[$-4],[["for-as",A[$-2],A[$],!0,null]],[]];case 295:return["comprehension",A[$-6],[["for-as",A[$-4],A[$-2],!0,null]],[A[$]]];case 296:return["comprehension",A[$-2],[["for-in",[],A[$],null]],[]];case 297:return["comprehension",A[$-4],[["for-in",[],A[$-2],A[$]]],[]];case 301:case 332:case 334:case 357:case 358:case 360:return[A[$-2],A[$]];case 302:return["class",null,null];case 303:return["class",null,null,A[$]];case 304:return["class",null,A[$]];case 305:return["class",null,A[$-1],A[$]];case 306:return["class",A[$],null];case 307:return["class",A[$-1],null,A[$]];case 308:return["class",A[$-2],A[$]];case 309:return["class",A[$-3],A[$-1],A[$]];case 310:return["enum",A[$-1],A[$]];case 311:return["component",null,["block",...A[$-1]]];case 318:return["render",A[$]];case 319:case 322:return["import","{}",A[$]];case 320:case 321:return["import",A[$-2],A[$]];case 323:return["import",A[$-4],A[$]];case 324:return["import",[A[$-4],A[$-2]],A[$]];case 325:return["import",[A[$-7],A[$-4]],A[$]];case 336:return["*",A[$]];case 337:return["export","{}"];case 338:return["export",A[$-2]];case 339:case 340:case 341:case 342:return["export",A[$]];case 343:return["export",["=",A[$-2],A[$]]];case 344:return["export",["=",A[$-3],A[$]]];case 345:return["export",["=",A[$-4],A[$-1]]];case 346:return["export-default",A[$]];case 347:return["export-default",A[$-1]];case 348:return["export-all",A[$]];case 349:return["export-from","{}",A[$]];case 350:return["export-from",A[$-4],A[$]];case 362:case 363:case 365:case 400:return["do-iife",A[$]];case 367:return["-",A[$]];case 368:return["+",A[$]];case 369:return["?",A[$-1]];case 370:return["await",A[$]];case 371:return["await",A[$-1]];case 372:return["--",A[$],!1];case 373:return["++",A[$],!1];case 374:return["--",A[$-1],!0];case 375:return["++",A[$-1],!0];case 376:return["+",A[$-2],A[$]];case 377:return["-",A[$-2],A[$]];case 379:return["**",A[$-2],A[$]];case 382:return["&",A[$-2],A[$]];case 383:return["^",A[$-2],A[$]];case 384:return["|",A[$-2],A[$]];case 385:case 386:case 387:case 388:case 389:case 390:return["control",A[$-1],A[$-2],A[$]];case 391:return["&&",A[$-2],A[$]];case 392:return["||",A[$-2],A[$]];case 393:return["??",A[$-2],A[$]];case 394:return["!?",A[$-2],A[$]];case 396:return["?:",A[$-4],A[$-2],A[$]];case 398:return[A[$-3],A[$-4],A[$-1]];case 399:return[A[$-2],A[$-3],A[$]]}},parseError(Y,F){let U,W,A,$,Q,D,Z;if(F.recoverable)return this.trace(Y);else throw A=(F.line||0)+1,U=F.loc?.c||0,Z=F.token?` (token: ${F.token})`:"",D=F.text?` near '${F.text}'`:"",$=`line ${A}, column ${U}`,Q=`Parse error at ${$}${Z}${D}: ${Y}`,W=Error(Q),W.hash=F,W},parse(Y){let F,U,W,A,$,Q,D,Z,X,J,K,z,R,M,G,O,H,I,P,E,w,_,q,T,B,N;[E,N,J]=[[0],[null],[]],[R,B,q,_,O]=[this.parseTable,"",0,0,0],[U,F]=[2,1],Z=Object.create(this.lexer),I={ctx:{}};for(let S in this.ctx)if(Object.hasOwn(this.ctx,S)){let L=this.ctx[S];I.ctx[S]=L}if(Z.setInput(Y,I.ctx),[I.ctx.lexer,I.ctx.parser]=[Z,this],Z.loc==null)Z.loc={};T=Z.loc,J.push(T),this.parseError=typeof I.ctx.parseError==="function"?I.ctx.parseError:Object.getPrototypeOf(this).parseError,D=()=>{let S;if(S=Z.lex()||F,typeof S!=="number")S=this.symbolIds[S]||S;return S},w=M=P=W=G=z=Q=K=$=null,H={};while(!0){if(P=E[E.length-1],w==null)w=D();if(W=R[P]?.[w],W==null){if(A="",!O)$=(()=>{let S=[];for(let L in R[P]){if(!Object.hasOwn(R[P],L))continue;if(this.tokenNames[L]&&L>U)S.push(`'${this.tokenNames[L]}'`)}return S})();throw A=(()=>{if(Z.showPosition)return`Parse error on line ${q+1}:
|
|
12
12
|
${Z.showPosition()}
|
|
13
|
-
Expecting ${$.join(", ")}, got '${this.tokenNames[
|
|
13
|
+
Expecting ${$.join(", ")}, got '${this.tokenNames[w]||w}'`;else return`Parse error on line ${q+1}: Unexpected ${w===F?"end of input":`'${this.tokenNames[w]||w}'`}`,this.parseError(A,{text:Z.match,token:this.tokenNames[w]||w,line:Z.line,loc:T,expected:$})})(),Error(A)}if(W>0)if(E.push(w,W),N.push(Z.text),J.push(Z.loc),w=null,!M){if([_,B,q,T]=[Z.len,Z.text,Z.line,Z.loc],O>0)O--}else[w,M]=[M,null];else if(W<0){if(Q=this.ruleTable[-W*2+1],H.$=N[N.length-Q],X=J[J.length-(Q||1)],H._$={r:X.r,c:X.c},G=this.ruleActions.call(H,-W,N,J,I.ctx),G!=null)H.$=G;if(Array.isArray(H.$))H.$.loc=H._$;if(Q)E.length-=Q*2,N.length-=Q,J.length-=Q;E.push(this.ruleTable[-W*2]),N.push(H.$),J.push(H._$),K=R[E[E.length-2]][E[E.length-1]],E.push(K)}else if(W===0)return N[N.length-1]}},trace(){},ctx:{}},z2=(Y={})=>{let F=Object.create(R2);return Object.defineProperty(F,"ctx",{value:{...Y},enumerable:!1,writable:!0,configurable:!0}),F},g=z2();var N2=g.parse.bind(g);var w1="__bind_",I1="__",B1=new Set(["mounted","unmounted","updated"]);function M2(Y){for(let F of Y){if(!Array.isArray(F))continue;let U=F[0]instanceof String?F[0].valueOf():F[0],W=F[1]instanceof String?F[1].valueOf():F[1];if(U==="type"&&typeof W==="string")return W.replace(/^["']|["']$/g,"")}return null}function s(Y){if(typeof Y==="string")return Y;if(Array.isArray(Y)&&Y[0]==="."&&Y[1]==="this"&&typeof Y[2]==="string")return Y[2];return null}function E1(Y){let F=Y.prototype;F.isHtmlTag=function(U){let W=U.split("#")[0];return m.has(W.toLowerCase())},F.isComponent=function(U){if(!U||typeof U!=="string")return!1;return/^[A-Z]/.test(U)},F.collectTemplateClasses=function(U){let W=[],A=U;while(Array.isArray(A)&&A[0]==="."){let Q=A[2];if(typeof Q==="string"||Q instanceof String)W.unshift(Q.valueOf());A=A[1]}return{tag:typeof A==="string"?A:A instanceof String?A.valueOf():"div",classes:W}},F.transformComponentMembers=function(U){if(!Array.isArray(U)){if(typeof U==="string"&&this.reactiveMembers&&this.reactiveMembers.has(U))return[".",[".","this",U],"value"];return U}if(U[0]==="."&&U[1]==="this"&&typeof U[2]==="string"){let W=U[2];if(this.reactiveMembers&&this.reactiveMembers.has(W))return[".",U,"value"];return U}if(U[0]==="->")return["=>",...U.slice(1).map((W)=>this.transformComponentMembers(W))];return U.map((W)=>this.transformComponentMembers(W))},F.generateComponent=function(U,W,A,$){let[,Q]=W;this.usesTemplates=!0,this.usesReactivity=!0;let D=Array.isArray(Q)&&Q[0]==="block"?Q.slice(1):[],Z=[],X=[],J=[],K=[],z=[],R=[],M=null,G=new Set,O=new Set;for(let w of D){if(!Array.isArray(w))continue;let[_]=w;if(_==="state"){let q=s(w[1]);if(q)Z.push({name:q,value:w[2]}),G.add(q),O.add(q)}else if(_==="computed"){let q=s(w[1]);if(q)X.push({name:q,expr:w[2]}),G.add(q),O.add(q)}else if(_==="readonly"){let q=s(w[1]);if(q)J.push({name:q,value:w[2]}),G.add(q)}else if(_==="="){let q=s(w[1]);if(q)if(B1.has(q))z.push({name:q,value:w[2]});else{let T=w[2];if(Array.isArray(T)&&(T[0]==="->"||T[0]==="=>"))K.push({name:q,func:T}),G.add(q);else Z.push({name:q,value:T}),G.add(q),O.add(q)}}else if(_==="effect")R.push(w);else if(_==="render")M=w;else if(_==="object")for(let q=1;q<w.length;q++){let T=w[q];if(!Array.isArray(T))continue;let[B,N]=T;if(typeof B==="string"&&B1.has(B))z.push({name:B,value:N});else if(typeof B==="string")K.push({name:B,func:N}),G.add(B)}}let H=this.componentMembers,I=this.reactiveMembers;this.componentMembers=G,this.reactiveMembers=O;let P=[],E="";P.push("class {"),P.push(" constructor(props = {}) {"),P.push(" const __prevComponent = __pushComponent(this);"),P.push("");for(let{name:w,value:_}of J){let q=this.generateInComponent(_,"value");P.push(` this.${w} = props.${w} ?? ${q};`)}for(let{name:w,value:_}of Z){let q=this.generateInComponent(_,"value");P.push(` this.${w} = isSignal(props.${w}) ? props.${w} : __state(props.${w} ?? ${q});`)}for(let{name:w,expr:_}of X){let q=this.generateInComponent(_,"value");P.push(` this.${w} = __computed(() => ${q});`)}for(let w of R){let _=w[1],q=this.generateInComponent(_,"value");P.push(` __effect(${q});`)}P.push(""),P.push(" __popComponent(__prevComponent);"),P.push(" }");for(let{name:w,func:_}of K)if(Array.isArray(_)&&(_[0]==="->"||_[0]==="=>")){let[,q,T]=_,B=Array.isArray(q)?q.map((S)=>this.formatParam(S)).join(", "):"",N=this.generateInComponent(T,"value");P.push(` ${w}(${B}) { return ${N}; }`)}for(let{name:w,value:_}of z)if(Array.isArray(_)&&(_[0]==="->"||_[0]==="=>")){let[,,q]=_,T=this.generateInComponent(q,"value");P.push(` ${w}() { return ${T}; }`)}if(M){let w=M[1],_=this.buildRender(w);if(_.blockFactories.length>0)E=_.blockFactories.join(`
|
|
14
14
|
|
|
15
15
|
`)+`
|
|
16
16
|
|
|
17
|
-
`;
|
|
18
|
-
${E}return ${
|
|
17
|
+
`;P.push(" _create() {");for(let q of _.createLines)P.push(` ${q}`);if(P.push(` return ${_.rootVar};`),P.push(" }"),_.setupLines.length>0){P.push(" _setup() {");for(let q of _.setupLines)P.push(` ${q}`);P.push(" }")}}if(P.push(" mount(target) {"),P.push(' if (typeof target === "string") target = document.querySelector(target);'),P.push(" this._target = target;"),P.push(" this._root = this._create();"),P.push(" target.appendChild(this._root);"),P.push(" if (this._setup) this._setup();"),P.push(" if (this.mounted) this.mounted();"),P.push(" return this;"),P.push(" }"),P.push(" unmount() {"),P.push(" if (this.unmounted) this.unmounted();"),P.push(" if (this._root && this._root.parentNode) {"),P.push(" this._root.parentNode.removeChild(this._root);"),P.push(" }"),P.push(" }"),P.push("}"),this.componentMembers=H,this.reactiveMembers=I,E)return`(() => {
|
|
18
|
+
${E}return ${P.join(`
|
|
19
19
|
`)};
|
|
20
|
-
})()`;return
|
|
21
|
-
`)},F.generateInComponent=function(U,W){if(typeof U==="string"&&this.reactiveMembers&&this.reactiveMembers.has(U))return`this.${U}.value`;if(Array.isArray(U)&&this.reactiveMembers){let A=this.transformComponentMembers(U);return this.generate(A,W)}return this.generate(U,W)},F.generateRender=function(U,W,A,$){throw Error("render blocks can only be used inside a component")},F.buildRender=function(U){this._emitElementCount=0,this._emitTextCount=0,this._emitBlockCount=0,this._emitCreateLines=[],this._emitSetupLines=[],this._emitBlockFactories=[];let W=Array.isArray(U)&&U[0]==="block"?U.slice(1):[U],A;if(W.length===0)A="null";else if(W.length===1)A=this.emitNode(W[0]);else{A=this.newElementVar("frag"),this._emitCreateLines.push(`${A} = document.createDocumentFragment();`);for(let $ of W){let Q=this.emitNode($);this._emitCreateLines.push(`${A}.appendChild(${Q});`)}}return{createLines:this._emitCreateLines,setupLines:this._emitSetupLines,blockFactories:this._emitBlockFactories,rootVar:A}},F.newBlockVar=function(){return`create_block_${this._emitBlockCount++}`},F.newElementVar=function(U="el"){return`this._${U}${this._emitElementCount++}`},F.newTextVar=function(){return`this._t${this._emitTextCount++}`},F.emitNode=function(U){if(typeof U==="string"||U instanceof String){let Z=U.valueOf();if(Z.startsWith('"')||Z.startsWith("'")||Z.startsWith("`")){let J=this.newTextVar();return this._emitCreateLines.push(`${J} = document.createTextNode(${Z});`),J}if(this.reactiveMembers&&this.reactiveMembers.has(Z)){let J=this.newTextVar();return this._emitCreateLines.push(`${J} = document.createTextNode('');`),this._emitSetupLines.push(`__effect(() => { ${J}.data = this.${Z}.value; });`),J}let X=this.newElementVar();return this._emitCreateLines.push(`${X} = document.createElement('${Z}');`),X}if(!Array.isArray(U)){let Z=this.newElementVar("c");return this._emitCreateLines.push(`${Z} = document.createComment('unknown');`),Z}let[W,...A]=U,$=typeof W==="string"?W:W instanceof String?W.valueOf():null;if($&&this.isComponent($))return this.emitChildComponent($,A);if($&&this.isHtmlTag($))return this.emitTag($,[],A);if($==="."){let[,Z,X]=U;if(Z==="this"&&typeof X==="string"){if(this.reactiveMembers&&this.reactiveMembers.has(X)){let z=this.newTextVar();return this._emitCreateLines.push(`${z} = document.createTextNode('');`),this._emitSetupLines.push(`__effect(() => { ${z}.data = this.${X}.value; });`),z}if(this.componentMembers&&this.componentMembers.has(X)){let z=this.newElementVar("slot");return this._emitCreateLines.push(`${z} = this.${X} instanceof Node ? this.${X} : (this.${X} != null ? document.createTextNode(String(this.${X})) : document.createComment(''));`),z}}let{tag:J,classes:M}=this.collectTemplateClasses(U);if(J&&this.isHtmlTag(J))return this.emitTag(J,M,[]);let K=this.newTextVar(),R=this.generateInComponent(U,"value");return this._emitCreateLines.push(`${K} = document.createTextNode(String(${R}));`),K}if(Array.isArray(W)){if(Array.isArray(W[0])&&W[0][0]==="."&&(W[0][2]==="__cx__"||W[0][2]instanceof String&&W[0][2].valueOf()==="__cx__")){let J=typeof W[0][1]==="string"?W[0][1]:W[0][1].valueOf(),M=W.slice(1);return this.emitDynamicTag(J,M,A)}let{tag:Z,classes:X}=this.collectTemplateClasses(W);if(Z&&this.isHtmlTag(Z)){if(X.length===1&&X[0]==="__cx__")return this.emitDynamicTag(Z,A,[]);return this.emitTag(Z,X,A)}}if($==="->"||$==="=>")return this.emitBlock(A[1]);if($==="if")return this.emitConditional(U);if($==="for"||$==="for-in"||$==="for-of"||$==="for-as")return this.emitLoop(U);let Q=this.newTextVar(),D=this.generateInComponent(U,"value");if(this.hasReactiveDeps(U))this._emitCreateLines.push(`${Q} = document.createTextNode('');`),this._emitSetupLines.push(`__effect(() => { ${Q}.data = ${D}; });`);else this._emitCreateLines.push(`${Q} = document.createTextNode(String(${D}));`);return Q},F.emitTag=function(U,W,A){let $=this.newElementVar();if(this._emitCreateLines.push(`${$} = document.createElement('${U}');`),W.length>0)this._emitCreateLines.push(`${$}.className = '${W.join(" ")}';`);for(let Q of A)if(Array.isArray(Q)&&(Q[0]==="->"||Q[0]==="=>")){let D=Q[2];if(Array.isArray(D)&&D[0]==="block")for(let Z of D.slice(1)){let X=this.emitNode(Z);this._emitCreateLines.push(`${$}.appendChild(${X});`)}else if(D){let Z=this.emitNode(D);this._emitCreateLines.push(`${$}.appendChild(${Z});`)}}else if(Array.isArray(Q)&&Q[0]==="object")this.emitAttributes($,Q);else if(typeof Q==="string"){let D=this.newTextVar();if(Q.startsWith('"')||Q.startsWith("'")||Q.startsWith("`"))this._emitCreateLines.push(`${D} = document.createTextNode(${Q});`);else if(this.reactiveMembers&&this.reactiveMembers.has(Q))this._emitCreateLines.push(`${D} = document.createTextNode('');`),this._emitSetupLines.push(`__effect(() => { ${D}.data = this.${Q}.value; });`);else if(this.componentMembers&&this.componentMembers.has(Q))this._emitCreateLines.push(`${D} = document.createTextNode(String(this.${Q}));`);else this._emitCreateLines.push(`${D} = document.createTextNode(String(${Q}));`);this._emitCreateLines.push(`${$}.appendChild(${D});`)}else if(Q instanceof String){let D=Q.valueOf(),Z=this.newTextVar();if(D.startsWith('"')||D.startsWith("'")||D.startsWith("`"))this._emitCreateLines.push(`${Z} = document.createTextNode(${D});`);else if(this.reactiveMembers&&this.reactiveMembers.has(D))this._emitCreateLines.push(`${Z} = document.createTextNode('');`),this._emitSetupLines.push(`__effect(() => { ${Z}.data = this.${D}.value; });`);else this._emitCreateLines.push(`${Z} = document.createTextNode(String(${D}));`);this._emitCreateLines.push(`${$}.appendChild(${Z});`)}else if(Q){let D=this.emitNode(Q);this._emitCreateLines.push(`${$}.appendChild(${D});`)}return $},F.emitDynamicTag=function(U,W,A){let $=this.newElementVar();if(this._emitCreateLines.push(`${$} = document.createElement('${U}');`),W.length>0){let Q=W.map((Z)=>this.generateInComponent(Z,"value")).join(", ");if(W.some((Z)=>this.hasReactiveDeps(Z)))this._emitSetupLines.push(`__effect(() => { ${$}.className = __cx__(${Q}); });`);else this._emitCreateLines.push(`${$}.className = __cx__(${Q});`)}for(let Q of A){let D=Array.isArray(Q)?Q[0]instanceof String?Q[0].valueOf():Q[0]:null;if(D==="->"||D==="=>"){let Z=Q[2];if((Array.isArray(Z)?Z[0]instanceof String?Z[0].valueOf():Z[0]:null)==="block")for(let J of Z.slice(1)){let M=this.emitNode(J);this._emitCreateLines.push(`${$}.appendChild(${M});`)}else if(Z){let J=this.emitNode(Z);this._emitCreateLines.push(`${$}.appendChild(${J});`)}}else if(Array.isArray(Q)&&Q[0]==="object")this.emitAttributes($,Q);else if(typeof Q==="string"||Q instanceof String){let Z=this.newTextVar(),X=Q.valueOf();if(X.startsWith('"')||X.startsWith("'")||X.startsWith("`"))this._emitCreateLines.push(`${Z} = document.createTextNode(${X});`);else if(this.reactiveMembers&&this.reactiveMembers.has(X))this._emitCreateLines.push(`${Z} = document.createTextNode('');`),this._emitSetupLines.push(`__effect(() => { ${Z}.data = this.${X}.value; });`);else this._emitCreateLines.push(`${Z} = document.createTextNode(${this.generateInComponent(Q,"value")});`);this._emitCreateLines.push(`${$}.appendChild(${Z});`)}else{let Z=this.emitNode(Q);this._emitCreateLines.push(`${$}.appendChild(${Z});`)}}return $},F.emitAttributes=function(U,W){let A=K2(W.slice(1));for(let $=1;$<W.length;$++){let[Q,D]=W[$];if(Array.isArray(Q)&&Q[0]==="."&&Q[1]==="this"){let Z=Q[2],X=this.generateInComponent(D,"value");this._emitCreateLines.push(`${U}.addEventListener('${Z}', (e) => (${X})(e));`);continue}if(typeof Q==="string"){if(Q.startsWith('"')&&Q.endsWith('"'))Q=Q.slice(1,-1);if(Q.startsWith(O1)&&Q.endsWith(P1)){let X=Q.slice(O1.length,-P1.length),J=this.generateInComponent(D,"value"),M,K;if(X==="checked")M="change",K="e.target.checked";else M="input",K=A==="number"||A==="range"?"e.target.valueAsNumber":"e.target.value";this._emitSetupLines.push(`__effect(() => { ${U}.${X} = ${J}; });`),this._emitCreateLines.push(`${U}.addEventListener('${M}', (e) => ${J} = ${K});`);continue}let Z=this.generateInComponent(D,"value");if((Q==="value"||Q==="checked")&&this.hasReactiveDeps(D)){this._emitSetupLines.push(`__effect(() => { ${U}.${Q} = ${Z}; });`);let X=Q==="checked"?"change":"input",J=Q==="checked"?"e.target.checked":A==="number"||A==="range"?"e.target.valueAsNumber":"e.target.value";this._emitCreateLines.push(`${U}.addEventListener('${X}', (e) => { ${Z} = ${J}; });`);continue}if(this.hasReactiveDeps(D))this._emitSetupLines.push(`__effect(() => { ${U}.setAttribute('${Q}', ${Z}); });`);else this._emitCreateLines.push(`${U}.setAttribute('${Q}', ${Z});`)}}},F.emitBlock=function(U){if(!Array.isArray(U)||U[0]!=="block")return this.emitNode(U);let W=U.slice(1);if(W.length===0){let $=this.newElementVar("empty");return this._emitCreateLines.push(`${$} = document.createComment('');`),$}if(W.length===1)return this.emitNode(W[0]);let A=this.newElementVar("frag");this._emitCreateLines.push(`${A} = document.createDocumentFragment();`);for(let $ of W){let Q=this.emitNode($);this._emitCreateLines.push(`${A}.appendChild(${Q});`)}return A},F.emitConditional=function(U){let[,W,A,$]=U,Q=this.newElementVar("anchor");this._emitCreateLines.push(`${Q} = document.createComment('if');`);let D=this.generateInComponent(W,"value"),Z=this.newBlockVar();this.emitConditionBranch(Z,A);let X=null;if($)X=this.newBlockVar(),this.emitConditionBranch(X,$);let J=[];if(J.push(`// Conditional: ${Z}${X?" / "+X:""}`),J.push("{"),J.push(` const anchor = ${Q};`),J.push(" let currentBlock = null;"),J.push(" let showing = null;"),J.push(" __effect(() => {"),J.push(` const show = !!(${D});`),J.push(` const want = show ? 'then' : ${$?"'else'":"null"};`),J.push(" if (want === showing) return;"),J.push(""),J.push(" if (currentBlock) {"),J.push(" currentBlock.d(true);"),J.push(" currentBlock = null;"),J.push(" }"),J.push(" showing = want;"),J.push(""),J.push(" if (want === 'then') {"),J.push(` currentBlock = ${Z}(this);`),J.push(" currentBlock.c();"),J.push(" currentBlock.m(anchor.parentNode, anchor.nextSibling);"),J.push(" currentBlock.p(this);"),J.push(" }"),$)J.push(" if (want === 'else') {"),J.push(` currentBlock = ${X}(this);`),J.push(" currentBlock.c();"),J.push(" currentBlock.m(anchor.parentNode, anchor.nextSibling);"),J.push(" currentBlock.p(this);"),J.push(" }");return J.push(" });"),J.push("}"),this._emitSetupLines.push(J.join(`
|
|
22
|
-
`)),Q},F.emitConditionBranch=function(U,W){let A=this._emitCreateLines,$=this._emitSetupLines;this._emitCreateLines=[],this._emitSetupLines=[];let Q=this.emitBlock(W),D=this._emitCreateLines,Z=this._emitSetupLines;this._emitCreateLines=A,this._emitSetupLines=$;let X=(R)=>{let
|
|
23
|
-
`))},F.emitLoop=function(U){let[W,A,$,Q,D,Z]=U,X=this.newBlockVar(),J=this.newElementVar("anchor");this._emitCreateLines.push(`${J} = document.createComment('for');`);let
|
|
24
|
-
`));let B=[];return B.push(`// Loop: ${X}`),B.push("{"),B.push(` const anchor = ${J};`),B.push(" const map = new Map();"),B.push(" __effect(() => {"),B.push(` const items = ${
|
|
25
|
-
`)),J},F.emitChildComponent=function(U,W){let A=this.newElementVar("inst"),$=this.newElementVar("el"),{propsCode:Q,childrenSetupLines:D}=this.buildComponentProps(W);this._emitCreateLines.push(`${A} = new ${U}(${Q});`),this._emitCreateLines.push(`${$} = ${A}._create();`),this._emitSetupLines.push(`if (${A}._setup) ${A}._setup();`);for(let Z of D)this._emitSetupLines.push(Z);return $},F.buildComponentProps=function(U){let W=[],A=null,$=[];for(let D of U)if(Array.isArray(D)&&D[0]==="object")for(let Z=1;Z<D.length;Z++){let[X,J]=D[Z];if(typeof X==="string"){let
|
|
20
|
+
})()`;return P.join(`
|
|
21
|
+
`)},F.generateInComponent=function(U,W){if(typeof U==="string"&&this.reactiveMembers&&this.reactiveMembers.has(U))return`this.${U}.value`;if(Array.isArray(U)&&this.reactiveMembers){let A=this.transformComponentMembers(U);return this.generate(A,W)}return this.generate(U,W)},F.generateRender=function(U,W,A,$){throw Error("render blocks can only be used inside a component")},F.buildRender=function(U){this._emitElementCount=0,this._emitTextCount=0,this._emitBlockCount=0,this._emitCreateLines=[],this._emitSetupLines=[],this._emitBlockFactories=[];let W=Array.isArray(U)&&U[0]==="block"?U.slice(1):[U],A;if(W.length===0)A="null";else if(W.length===1)A=this.emitNode(W[0]);else{A=this.newElementVar("frag"),this._emitCreateLines.push(`${A} = document.createDocumentFragment();`);for(let $ of W){let Q=this.emitNode($);this._emitCreateLines.push(`${A}.appendChild(${Q});`)}}return{createLines:this._emitCreateLines,setupLines:this._emitSetupLines,blockFactories:this._emitBlockFactories,rootVar:A}},F.newBlockVar=function(){return`create_block_${this._emitBlockCount++}`},F.newElementVar=function(U="el"){return`this._${U}${this._emitElementCount++}`},F.newTextVar=function(){return`this._t${this._emitTextCount++}`},F.emitNode=function(U){if(typeof U==="string"||U instanceof String){let Z=U.valueOf();if(Z.startsWith('"')||Z.startsWith("'")||Z.startsWith("`")){let J=this.newTextVar();return this._emitCreateLines.push(`${J} = document.createTextNode(${Z});`),J}if(this.reactiveMembers&&this.reactiveMembers.has(Z)){let J=this.newTextVar();return this._emitCreateLines.push(`${J} = document.createTextNode('');`),this._emitSetupLines.push(`__effect(() => { ${J}.data = this.${Z}.value; });`),J}let X=this.newElementVar();return this._emitCreateLines.push(`${X} = document.createElement('${Z}');`),X}if(!Array.isArray(U)){let Z=this.newElementVar("c");return this._emitCreateLines.push(`${Z} = document.createComment('unknown');`),Z}let[W,...A]=U,$=typeof W==="string"?W:W instanceof String?W.valueOf():null;if($&&this.isComponent($))return this.emitChildComponent($,A);if($&&this.isHtmlTag($))return this.emitTag($,[],A);if($==="."){let[,Z,X]=U;if(Z==="this"&&typeof X==="string"){if(this.reactiveMembers&&this.reactiveMembers.has(X)){let M=this.newTextVar();return this._emitCreateLines.push(`${M} = document.createTextNode('');`),this._emitSetupLines.push(`__effect(() => { ${M}.data = this.${X}.value; });`),M}if(this.componentMembers&&this.componentMembers.has(X)){let M=this.newElementVar("slot");return this._emitCreateLines.push(`${M} = this.${X} instanceof Node ? this.${X} : (this.${X} != null ? document.createTextNode(String(this.${X})) : document.createComment(''));`),M}}let{tag:J,classes:K}=this.collectTemplateClasses(U);if(J&&this.isHtmlTag(J))return this.emitTag(J,K,[]);let z=this.newTextVar(),R=this.generateInComponent(U,"value");return this._emitCreateLines.push(`${z} = document.createTextNode(String(${R}));`),z}if(Array.isArray(W)){if(Array.isArray(W[0])&&W[0][0]==="."&&(W[0][2]==="__cx__"||W[0][2]instanceof String&&W[0][2].valueOf()==="__cx__")){let J=typeof W[0][1]==="string"?W[0][1]:W[0][1].valueOf(),K=W.slice(1);return this.emitDynamicTag(J,K,A)}let{tag:Z,classes:X}=this.collectTemplateClasses(W);if(Z&&this.isHtmlTag(Z)){if(X.length===1&&X[0]==="__cx__")return this.emitDynamicTag(Z,A,[]);return this.emitTag(Z,X,A)}}if($==="->"||$==="=>")return this.emitBlock(A[1]);if($==="if")return this.emitConditional(U);if($==="for"||$==="for-in"||$==="for-of"||$==="for-as")return this.emitLoop(U);let Q=this.newTextVar(),D=this.generateInComponent(U,"value");if(this.hasReactiveDeps(U))this._emitCreateLines.push(`${Q} = document.createTextNode('');`),this._emitSetupLines.push(`__effect(() => { ${Q}.data = ${D}; });`);else this._emitCreateLines.push(`${Q} = document.createTextNode(String(${D}));`);return Q},F.emitTag=function(U,W,A){let $=this.newElementVar();if(this._emitCreateLines.push(`${$} = document.createElement('${U}');`),W.length>0)this._emitCreateLines.push(`${$}.className = '${W.join(" ")}';`);for(let Q of A)if(Array.isArray(Q)&&(Q[0]==="->"||Q[0]==="=>")){let D=Q[2];if(Array.isArray(D)&&D[0]==="block")for(let Z of D.slice(1)){let X=this.emitNode(Z);this._emitCreateLines.push(`${$}.appendChild(${X});`)}else if(D){let Z=this.emitNode(D);this._emitCreateLines.push(`${$}.appendChild(${Z});`)}}else if(Array.isArray(Q)&&Q[0]==="object")this.emitAttributes($,Q);else if(typeof Q==="string"){let D=this.newTextVar();if(Q.startsWith('"')||Q.startsWith("'")||Q.startsWith("`"))this._emitCreateLines.push(`${D} = document.createTextNode(${Q});`);else if(this.reactiveMembers&&this.reactiveMembers.has(Q))this._emitCreateLines.push(`${D} = document.createTextNode('');`),this._emitSetupLines.push(`__effect(() => { ${D}.data = this.${Q}.value; });`);else if(this.componentMembers&&this.componentMembers.has(Q))this._emitCreateLines.push(`${D} = document.createTextNode(String(this.${Q}));`);else this._emitCreateLines.push(`${D} = document.createTextNode(String(${Q}));`);this._emitCreateLines.push(`${$}.appendChild(${D});`)}else if(Q instanceof String){let D=Q.valueOf(),Z=this.newTextVar();if(D.startsWith('"')||D.startsWith("'")||D.startsWith("`"))this._emitCreateLines.push(`${Z} = document.createTextNode(${D});`);else if(this.reactiveMembers&&this.reactiveMembers.has(D))this._emitCreateLines.push(`${Z} = document.createTextNode('');`),this._emitSetupLines.push(`__effect(() => { ${Z}.data = this.${D}.value; });`);else this._emitCreateLines.push(`${Z} = document.createTextNode(String(${D}));`);this._emitCreateLines.push(`${$}.appendChild(${Z});`)}else if(Q){let D=this.emitNode(Q);this._emitCreateLines.push(`${$}.appendChild(${D});`)}return $},F.emitDynamicTag=function(U,W,A){let $=this.newElementVar();if(this._emitCreateLines.push(`${$} = document.createElement('${U}');`),W.length>0){let Q=W.map((Z)=>this.generateInComponent(Z,"value")).join(", ");if(W.some((Z)=>this.hasReactiveDeps(Z)))this._emitSetupLines.push(`__effect(() => { ${$}.className = __cx__(${Q}); });`);else this._emitCreateLines.push(`${$}.className = __cx__(${Q});`)}for(let Q of A){let D=Array.isArray(Q)?Q[0]instanceof String?Q[0].valueOf():Q[0]:null;if(D==="->"||D==="=>"){let Z=Q[2];if((Array.isArray(Z)?Z[0]instanceof String?Z[0].valueOf():Z[0]:null)==="block")for(let J of Z.slice(1)){let K=this.emitNode(J);this._emitCreateLines.push(`${$}.appendChild(${K});`)}else if(Z){let J=this.emitNode(Z);this._emitCreateLines.push(`${$}.appendChild(${J});`)}}else if(Array.isArray(Q)&&Q[0]==="object")this.emitAttributes($,Q);else if(typeof Q==="string"||Q instanceof String){let Z=this.newTextVar(),X=Q.valueOf();if(X.startsWith('"')||X.startsWith("'")||X.startsWith("`"))this._emitCreateLines.push(`${Z} = document.createTextNode(${X});`);else if(this.reactiveMembers&&this.reactiveMembers.has(X))this._emitCreateLines.push(`${Z} = document.createTextNode('');`),this._emitSetupLines.push(`__effect(() => { ${Z}.data = this.${X}.value; });`);else this._emitCreateLines.push(`${Z} = document.createTextNode(${this.generateInComponent(Q,"value")});`);this._emitCreateLines.push(`${$}.appendChild(${Z});`)}else{let Z=this.emitNode(Q);this._emitCreateLines.push(`${$}.appendChild(${Z});`)}}return $},F.emitAttributes=function(U,W){let A=M2(W.slice(1));for(let $=1;$<W.length;$++){let[Q,D]=W[$];if(Array.isArray(Q)&&Q[0]==="."&&Q[1]==="this"){let Z=Q[2],X=this.generateInComponent(D,"value");this._emitCreateLines.push(`${U}.addEventListener('${Z}', (e) => (${X})(e));`);continue}if(typeof Q==="string"){if(Q.startsWith('"')&&Q.endsWith('"'))Q=Q.slice(1,-1);if(Q.startsWith(w1)&&Q.endsWith(I1)){let X=Q.slice(w1.length,-I1.length),J=this.generateInComponent(D,"value"),K,z;if(X==="checked")K="change",z="e.target.checked";else K="input",z=A==="number"||A==="range"?"e.target.valueAsNumber":"e.target.value";this._emitSetupLines.push(`__effect(() => { ${U}.${X} = ${J}; });`),this._emitCreateLines.push(`${U}.addEventListener('${K}', (e) => ${J} = ${z});`);continue}let Z=this.generateInComponent(D,"value");if((Q==="value"||Q==="checked")&&this.hasReactiveDeps(D)){this._emitSetupLines.push(`__effect(() => { ${U}.${Q} = ${Z}; });`);let X=Q==="checked"?"change":"input",J=Q==="checked"?"e.target.checked":A==="number"||A==="range"?"e.target.valueAsNumber":"e.target.value";this._emitCreateLines.push(`${U}.addEventListener('${X}', (e) => { ${Z} = ${J}; });`);continue}if(this.hasReactiveDeps(D))this._emitSetupLines.push(`__effect(() => { ${U}.setAttribute('${Q}', ${Z}); });`);else this._emitCreateLines.push(`${U}.setAttribute('${Q}', ${Z});`)}}},F.emitBlock=function(U){if(!Array.isArray(U)||U[0]!=="block")return this.emitNode(U);let W=U.slice(1);if(W.length===0){let $=this.newElementVar("empty");return this._emitCreateLines.push(`${$} = document.createComment('');`),$}if(W.length===1)return this.emitNode(W[0]);let A=this.newElementVar("frag");this._emitCreateLines.push(`${A} = document.createDocumentFragment();`);for(let $ of W){let Q=this.emitNode($);this._emitCreateLines.push(`${A}.appendChild(${Q});`)}return A},F.emitConditional=function(U){let[,W,A,$]=U,Q=this.newElementVar("anchor");this._emitCreateLines.push(`${Q} = document.createComment('if');`);let D=this.generateInComponent(W,"value"),Z=this.newBlockVar();this.emitConditionBranch(Z,A);let X=null;if($)X=this.newBlockVar(),this.emitConditionBranch(X,$);let J=[];if(J.push(`// Conditional: ${Z}${X?" / "+X:""}`),J.push("{"),J.push(` const anchor = ${Q};`),J.push(" let currentBlock = null;"),J.push(" let showing = null;"),J.push(" __effect(() => {"),J.push(` const show = !!(${D});`),J.push(` const want = show ? 'then' : ${$?"'else'":"null"};`),J.push(" if (want === showing) return;"),J.push(""),J.push(" if (currentBlock) {"),J.push(" currentBlock.d(true);"),J.push(" currentBlock = null;"),J.push(" }"),J.push(" showing = want;"),J.push(""),J.push(" if (want === 'then') {"),J.push(` currentBlock = ${Z}(this);`),J.push(" currentBlock.c();"),J.push(" currentBlock.m(anchor.parentNode, anchor.nextSibling);"),J.push(" currentBlock.p(this);"),J.push(" }"),$)J.push(" if (want === 'else') {"),J.push(` currentBlock = ${X}(this);`),J.push(" currentBlock.c();"),J.push(" currentBlock.m(anchor.parentNode, anchor.nextSibling);"),J.push(" currentBlock.p(this);"),J.push(" }");return J.push(" });"),J.push("}"),this._emitSetupLines.push(J.join(`
|
|
22
|
+
`)),Q},F.emitConditionBranch=function(U,W){let A=this._emitCreateLines,$=this._emitSetupLines;this._emitCreateLines=[],this._emitSetupLines=[];let Q=this.emitBlock(W),D=this._emitCreateLines,Z=this._emitSetupLines;this._emitCreateLines=A,this._emitSetupLines=$;let X=(R)=>{let M=R.replace(/this\.(_el\d+|_t\d+|_anchor\d+|_frag\d+|_slot\d+|_c\d+|_inst\d+|_empty\d+)/g,"$1");return M=M.replace(/\bthis\./g,"ctx."),M},J=[];J.push(`function ${U}(ctx) {`);let K=new Set;for(let R of D){let M=R.match(/^this\.(_(?:el|t|anchor|frag|slot|c|inst|empty)\d+)\s*=/);if(M)K.add(M[1])}if(K.size>0)J.push(` let ${[...K].join(", ")};`);let z=Z.length>0;if(z)J.push(" let disposers = [];");J.push(" return {"),J.push(" c() {");for(let R of D)J.push(` ${X(R)}`);if(J.push(" },"),J.push(" m(target, anchor) {"),J.push(` target.insertBefore(${X(Q)}, anchor);`),J.push(" },"),J.push(" p(ctx) {"),z){J.push(" disposers.forEach(d => d());"),J.push(" disposers = [];");for(let R of Z){let G=X(R).replace(/__effect\(\(\) => \{/g,"disposers.push(__effect(() => {").replace(/\}\);$/g,"}));");J.push(` ${G}`)}}if(J.push(" },"),J.push(" d(detaching) {"),z)J.push(" disposers.forEach(d => d());");J.push(` if (detaching) ${X(Q)}.remove();`),J.push(" }"),J.push(" };"),J.push("}"),this._emitBlockFactories.push(J.join(`
|
|
23
|
+
`))},F.emitLoop=function(U){let[W,A,$,Q,D,Z]=U,X=this.newBlockVar(),J=this.newElementVar("anchor");this._emitCreateLines.push(`${J} = document.createComment('for');`);let K=Array.isArray(A)?A:[A],z=K[0],R=K[1]||"i",M=this.generateInComponent($,"value"),G=z;if(Array.isArray(Z)&&Z[0]==="block"&&Z.length>1){let N=Z[1];if(Array.isArray(N))for(let S of N){if(Array.isArray(S)&&S[0]==="object")for(let L=1;L<S.length;L++){let[l,x]=S[L];if(l==="key"){G=this.generate(x,"value");break}}if(G!==z)break}}let O=this._emitCreateLines,H=this._emitSetupLines;this._emitCreateLines=[],this._emitSetupLines=[];let I=this.emitBlock(Z),P=this._emitCreateLines,E=this._emitSetupLines;this._emitCreateLines=O,this._emitSetupLines=H;let w=(N)=>{let S=N.replace(/this\.(_el\d+|_t\d+|_anchor\d+|_frag\d+|_slot\d+|_c\d+|_inst\d+|_empty\d+)/g,"$1");return S=S.replace(/\bthis\./g,"ctx."),S},_=[];_.push(`function ${X}(ctx, ${z}, ${R}) {`);let q=new Set;for(let N of P){let S=N.match(/^this\.(_(?:el|t|anchor|frag|slot|c|inst|empty)\d+)\s*=/);if(S)q.add(S[1])}if(q.size>0)_.push(` let ${[...q].join(", ")};`);let T=E.length>0;if(T)_.push(" let disposers = [];");_.push(" return {"),_.push(" c() {");for(let N of P)_.push(` ${w(N)}`);if(_.push(" },"),_.push(" m(target, anchor) {"),_.push(` target.insertBefore(${w(I)}, anchor);`),_.push(" },"),_.push(` p(ctx, ${z}, ${R}) {`),T){_.push(" disposers.forEach(d => d());"),_.push(" disposers = [];");for(let N of E){let L=w(N).replace(/__effect\(\(\) => \{/g,"disposers.push(__effect(() => {").replace(/\}\);$/g,"}));");_.push(` ${L}`)}}if(_.push(" },"),_.push(" d(detaching) {"),T)_.push(" disposers.forEach(d => d());");_.push(` if (detaching) ${w(I)}.remove();`),_.push(" }"),_.push(" };"),_.push("}"),this._emitBlockFactories.push(_.join(`
|
|
24
|
+
`));let B=[];return B.push(`// Loop: ${X}`),B.push("{"),B.push(` const anchor = ${J};`),B.push(" const map = new Map();"),B.push(" __effect(() => {"),B.push(` const items = ${M};`),B.push(" const parent = anchor.parentNode;"),B.push(" const newMap = new Map();"),B.push(""),B.push(` for (let ${R} = 0; ${R} < items.length; ${R}++) {`),B.push(` const ${z} = items[${R}];`),B.push(` const key = ${G};`),B.push(" let block = map.get(key);"),B.push(" if (block) {"),B.push(` block.p(this, ${z}, ${R});`),B.push(" } else {"),B.push(` block = ${X}(this, ${z}, ${R});`),B.push(" block.c();"),B.push(" block.m(parent, anchor);"),B.push(` block.p(this, ${z}, ${R});`),B.push(" }"),B.push(" newMap.set(key, block);"),B.push(" }"),B.push(""),B.push(" for (const [key, block] of map) {"),B.push(" if (!newMap.has(key)) block.d(true);"),B.push(" }"),B.push(""),B.push(" map.clear();"),B.push(" for (const [k, v] of newMap) map.set(k, v);"),B.push(" });"),B.push("}"),this._emitSetupLines.push(B.join(`
|
|
25
|
+
`)),J},F.emitChildComponent=function(U,W){let A=this.newElementVar("inst"),$=this.newElementVar("el"),{propsCode:Q,childrenSetupLines:D}=this.buildComponentProps(W);this._emitCreateLines.push(`${A} = new ${U}(${Q});`),this._emitCreateLines.push(`${$} = ${A}._create();`),this._emitSetupLines.push(`if (${A}._setup) ${A}._setup();`);for(let Z of D)this._emitSetupLines.push(Z);return $},F.buildComponentProps=function(U){let W=[],A=null,$=[];for(let D of U)if(Array.isArray(D)&&D[0]==="object")for(let Z=1;Z<D.length;Z++){let[X,J]=D[Z];if(typeof X==="string"){let K=this.generateInComponent(J,"value");W.push(`${X}: ${K}`)}}else if(Array.isArray(D)&&(D[0]==="->"||D[0]==="=>")){let Z=D[2];if(Z){let X=this._emitCreateLines,J=this._emitSetupLines;this._emitCreateLines=[],this._emitSetupLines=[],A=this.emitBlock(Z);let K=this._emitCreateLines,z=this._emitSetupLines;this._emitCreateLines=X,this._emitSetupLines=J;for(let R of K)this._emitCreateLines.push(R);$.push(...z),W.push(`children: ${A}`)}}return{propsCode:W.length>0?`{ ${W.join(", ")} }`:"{}",childrenSetupLines:$}},F.hasReactiveDeps=function(U){if(!this.reactiveMembers||this.reactiveMembers.size===0)return!1;if(typeof U==="string")return this.reactiveMembers.has(U);if(!Array.isArray(U))return!1;if(U[0]==="."&&U[1]==="this"&&typeof U[2]==="string")return this.reactiveMembers.has(U[2]);for(let W of U)if(this.hasReactiveDeps(W))return!0;return!1},F.getComponentRuntime=function(){return`
|
|
26
26
|
// ============================================================================
|
|
27
27
|
// Rip Component Runtime
|
|
28
28
|
// ============================================================================
|
|
@@ -77,20 +77,21 @@ if (typeof globalThis !== 'undefined') {
|
|
|
77
77
|
globalThis.__ripComponent = { isSignal, __pushComponent, __popComponent, setContext, getContext, hasContext, __cx__ };
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
-
`}}var
|
|
80
|
+
`}}function k(Y){let F="",U=Y<0?-Y<<1|1:Y<<1;do{let W=U&31;if(U>>>=5,U>0)W|=32;F+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[W]}while(U>0);return F}class Y1{constructor(Y,F,U=null){this.file=Y,this.source=F,this.sourceContent=U,this.names=[],this.nameIndex=new Map,this.lines=[],this.mappings=[],this.prevGenCol=0,this.prevOrigLine=0,this.prevOrigCol=0,this.prevNameIdx=0,this.currentLine=-1}ensureLine(Y){while(this.lines.length<=Y)this.lines.push([])}addName(Y){if(this.nameIndex.has(Y))return this.nameIndex.get(Y);let F=this.names.length;return this.names.push(Y),this.nameIndex.set(Y,F),F}addMapping(Y,F,U,W,A){if(this.ensureLine(Y),this.currentLine!==Y)this.prevGenCol=0,this.currentLine=Y;if(U==null){this.lines[Y].push(k(F-this.prevGenCol)),this.prevGenCol=F;return}this.mappings.push({genLine:Y,genCol:F,origLine:U,origCol:W});let $=k(F-this.prevGenCol);if(this.prevGenCol=F,$+=k(0),$+=k(U-this.prevOrigLine),this.prevOrigLine=U,$+=k(W-this.prevOrigCol),this.prevOrigCol=W,A!=null){let Q=this.addName(A);$+=k(Q-this.prevNameIdx),this.prevNameIdx=Q}this.lines[Y].push($)}toReverseMap(){let Y=new Map;for(let F of this.mappings)if(!Y.has(F.origLine))Y.set(F.origLine,{genLine:F.genLine,genCol:F.genCol});return Y}toJSON(){let Y=this.lines.map((U)=>U.join(",")).join(";"),F={version:3,file:this.file,sources:[this.source],names:this.names,mappings:Y};if(this.sourceContent!=null)F.sourcesContent=[this.sourceContent];return JSON.stringify(F)}}var j=(Y,F)=>Y instanceof String?Y[F]:void 0,f=(Y)=>Y instanceof String?Y.valueOf():Y,G2=new Set(["+","-","*","/","%","//","%%","**","==","!=","<",">","<=",">=","===","!==","&&","||","??","!?","not","&","|","^","<<",">>",">>>","=",".","?.","[]","!","typeof","void","delete","new","...","rest","expansion","optindex","optcall"]);function o(Y){if(!Array.isArray(Y)||Y.length===0)return!1;let F=Y[0]?.valueOf?.()??Y[0];if(G2.has(F))return!0;return Y.length<=4&&!Y.some(Array.isArray)}function c(Y){if(Array.isArray(Y))return"(???)";if(typeof Y==="number")return String(Y);if(Y===null)return"null";if(Y==="")return'""';let F=String(Y);if(F[0]==="/"&&F.indexOf(`
|
|
81
81
|
`)>=0){let U=F.match(/\/([gimsuvy]*)$/),W=U?U[1]:"",A=F.slice(1);return A=W?A.slice(0,-W.length-1):A.slice(0,-1),`"/${A.split(`
|
|
82
|
-
`).map((D)=>D.replace(/#.*$/,"").trim()).join("")}/${W}"`}return F}function
|
|
83
|
-
`)}let W=Y[0];if(
|
|
84
|
-
`))return" ".repeat(F)+J}let $=" ".repeat(F),Q;if(Array.isArray(W)){if(Q=
|
|
82
|
+
`).map((D)=>D.replace(/#.*$/,"").trim()).join("")}/${W}"`}return F}function y(Y,F=0,U=!1){if(!Array.isArray(Y))return c(Y);if(U&&Y[0]==="program"){let X=Y[1],K=[Array.isArray(X)?"(program":"(program "+c(X)],z=Array.isArray(X)?1:2;for(let R=z;R<Y.length;R++){let M=y(Y[R],2,!1);K.push(M[0]==="("?" "+M:M)}return K.push(")"),K.join(`
|
|
83
|
+
`)}let W=Y[0];if(o(Y)&&Y.slice(1).every((X)=>!Array.isArray(X)||o(X))){let J=`(${Y.map((K)=>Array.isArray(K)?y(K,0,!1):c(K)).join(" ")})`;if(!J.includes(`
|
|
84
|
+
`))return" ".repeat(F)+J}let $=" ".repeat(F),Q;if(Array.isArray(W)){if(Q=y(W,0,!1),Q.includes(`
|
|
85
85
|
`))Q=Q.split(`
|
|
86
|
-
`).map((J,
|
|
87
|
-
`)}else Q=c(W);let D=[`${$}(${Q}`],Z=W==="block";for(let X=1;X<Y.length;X++){let J=Y[X];if(!Array.isArray(J))D[D.length-1]+=" "+c(J);else{let
|
|
88
|
-
`)){D[D.length-1]+=" "+
|
|
89
|
-
`)}class
|
|
90
|
-
`)
|
|
91
|
-
`),J
|
|
92
|
-
`),J=!
|
|
93
|
-
|
|
86
|
+
`).map((J,K)=>K===0?J:" ".repeat(F+2)+J).join(`
|
|
87
|
+
`)}else Q=c(W);let D=[`${$}(${Q}`],Z=W==="block";for(let X=1;X<Y.length;X++){let J=Y[X];if(!Array.isArray(J))D[D.length-1]+=" "+c(J);else{let K=o(J)&&J.every((z)=>!Array.isArray(z)||o(z));if(!Z&&K){let z=y(J,0,!1);if(!z.includes(`
|
|
88
|
+
`)){D[D.length-1]+=" "+z;continue}}D.push(y(J,F+2,!1))}}return D[D.length-1]+=")",D.join(`
|
|
89
|
+
`)}class V{static ASSIGNMENT_OPS=new Set(["=","+=","-=","*=","/=","?=","&=","|=","^=","%=","**=","??=","&&=","||=","<<=",">>=",">>>="]);static NUMBER_LITERAL_RE=/^-?\d+(\.\d+)?([eE][+-]?\d+)?$/;static NUMBER_START_RE=/^-?\d/;static GENERATORS={program:"generateProgram","&&":"generateLogicalAnd","||":"generateLogicalOr","+":"generateBinaryOp","-":"generateBinaryOp","*":"generateBinaryOp","/":"generateBinaryOp","%":"generateBinaryOp","**":"generateBinaryOp","==":"generateBinaryOp","===":"generateBinaryOp","!=":"generateBinaryOp","!==":"generateBinaryOp","<":"generateBinaryOp",">":"generateBinaryOp","<=":"generateBinaryOp",">=":"generateBinaryOp","??":"generateBinaryOp","!?":"generateBinaryOp","&":"generateBinaryOp","|":"generateBinaryOp","^":"generateBinaryOp","<<":"generateBinaryOp",">>":"generateBinaryOp",">>>":"generateBinaryOp","%%":"generateModulo","//":"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","break-if":"generateBreakIf",continue:"generateContinue","continue-if":"generateContinueIf","?":"generateExistential","?:":"generateTernary",loop:"generateLoop",await:"generateAwait",yield:"generateYield","yield-from":"generateYieldFrom",if:"generateIf",unless:"generateIf","for-in":"generateForIn","for-of":"generateForOf","for-as":"generateForAs",while:"generateWhile",until:"generateUntil",try:"generateTry",throw:"generateThrow",control:"generateControl",switch:"generateSwitch",when:"generateWhen",comprehension:"generateComprehension","object-comprehension":"generateObjectComprehension",class:"generateClass",super:"generateSuper",component:"generateComponent",render:"generateRender",enum:"generateEnum",import:"generateImport",export:"generateExport","export-default":"generateExportDefault","export-all":"generateExportAll","export-from":"generateExportFrom","do-iife":"generateDoIIFE",regex:"generateRegex","tagged-template":"generateTaggedTemplate",str:"generateString"};constructor(Y={}){if(this.options=Y,this.indentLevel=0,this.indentString=" ",this.comprehensionDepth=0,this.dataSection=Y.dataSection,this.sourceMap=Y.sourceMap||null,Y.reactiveVars)this.reactiveVars=new Set(Y.reactiveVars)}compile(Y){this.programVars=new Set,this.functionVars=new Map,this.helpers=new Set,this.collectProgramVariables(Y);let F=this.generate(Y);if(this.sourceMap)this.buildMappings(F,Y);return F}buildMappings(Y,F){if(!F||F[0]!=="program")return;let U=[],W=(Q)=>{if(!Array.isArray(Q))return;let D=Q[0];if(D==="program"||D==="block")for(let Z=1;Z<Q.length;Z++){let X=Q[Z];if(Array.isArray(X)&&X.loc)U.push(X.loc);W(X)}else for(let Z=1;Z<Q.length;Z++)W(Q[Z])};W(F);let A=Y.split(`
|
|
90
|
+
`),$=0;for(let Q=0;Q<A.length;Q++){let D=A[Q],Z=D.trim();if(!Z||Z==="}"||Z==="});")continue;if(Z.startsWith("let ")||Z.startsWith("var "))continue;if(Z.startsWith("const slice")||Z.startsWith("const modulo")||Z.startsWith("const toSearchable"))continue;if(Z.startsWith("const {")&&Z.includes("__"))continue;if(Z.startsWith("} else"))continue;if(Z.startsWith("//# source"))continue;if($<U.length){let X=D.length-Z.length;this.sourceMap.addMapping(Q,X,U[$].r,U[$].c),$++}}}collectProgramVariables(Y){if(!Array.isArray(Y))return;let[F,...U]=Y;if(F=f(F),Array.isArray(F)){Y.forEach((W)=>this.collectProgramVariables(W));return}if(F==="export"||F==="export-default"||F==="export-all"||F==="export-from")return;if(F==="state"||F==="computed"){let[W]=U,A=f(W)??W;if(!this.reactiveVars)this.reactiveVars=new Set;this.reactiveVars.add(A);return}if(F==="readonly")return;if(V.ASSIGNMENT_OPS.has(F)){let[W,A]=U;if(typeof W==="string"||W instanceof String){let $=f(W);if(!this.reactiveVars?.has($))this.programVars.add($)}else if(Array.isArray(W)&&W[0]==="array")this.collectVarsFromArray(W,this.programVars);else if(Array.isArray(W)&&W[0]==="object")this.collectVarsFromObject(W,this.programVars);this.collectProgramVariables(A);return}if(F==="def"||F==="->"||F==="=>")return;if(F==="if"){let[W,A,$]=U;if(this.collectProgramVariables(W),this.collectProgramVariables(A),$)this.collectProgramVariables($);return}if(F==="unless"){let[W,A]=U;this.collectProgramVariables(W),this.collectProgramVariables(A);return}if(F==="try"){if(this.collectProgramVariables(U[0]),U.length>=2&&Array.isArray(U[1])&&U[1].length===2&&U[1][0]!=="block"){let[W,A]=U[1];if(W&&Array.isArray(W)&&W[0]==="object")W.slice(1).forEach(($)=>{if(Array.isArray($)&&$.length===2&&typeof $[1]==="string")this.programVars.add($[1])});else if(W&&Array.isArray(W)&&W[0]==="array")W.slice(1).forEach(($)=>{if(typeof $==="string")this.programVars.add($)});this.collectProgramVariables(A)}if(U.length===3)this.collectProgramVariables(U[2]);else if(U.length===2&&(!Array.isArray(U[1])||U[1][0]==="block"))this.collectProgramVariables(U[1]);return}U.forEach((W)=>this.collectProgramVariables(W))}collectFunctionVariables(Y){let F=new Set,U=(W)=>{if(!Array.isArray(W))return;let[A,...$]=W;if(A=f(A),Array.isArray(A)){W.forEach((Q)=>U(Q));return}if(V.ASSIGNMENT_OPS.has(A)){let[Q,D]=$;if(typeof Q==="string")F.add(Q);else if(Array.isArray(Q)&&Q[0]==="array")this.collectVarsFromArray(Q,F);else if(Array.isArray(Q)&&Q[0]==="object")this.collectVarsFromObject(Q,F);U(D);return}if(A==="def"||A==="->"||A==="=>")return;if(A==="try"){if(U($[0]),$.length>=2&&Array.isArray($[1])&&$[1].length===2&&$[1][0]!=="block"){let[Q,D]=$[1];if(Q&&Array.isArray(Q)&&Q[0]==="object")Q.slice(1).forEach((Z)=>{if(Array.isArray(Z)&&Z.length===2&&typeof Z[1]==="string")F.add(Z[1])});else if(Q&&Array.isArray(Q)&&Q[0]==="array")Q.slice(1).forEach((Z)=>{if(typeof Z==="string")F.add(Z)});U(D)}if($.length===3)U($[2]);else if($.length===2&&(!Array.isArray($[1])||$[1][0]==="block"))U($[1]);return}$.forEach((Q)=>U(Q))};return U(Y),F}generate(Y,F="statement"){if(Y instanceof String){if(j(Y,"await")===!0)return`await ${f(Y)}()`;if(j(Y,"predicate"))return`(${f(Y)} != null)`;if(j(Y,"delimiter")==="///"&&j(Y,"heregex")){let D=f(Y),Z=D.match(/^\/(.*)\/([gimsuvy]*)$/s);if(Z){let[,X,J]=Z;return`/${this.processHeregex(X)}/${J}`}return D}let Q=j(Y,"quote");if(Q){let D=f(Y);if(Q==='"""'||Q==="'''"){let X=this.extractStringContent(Y);return X=X.replace(/`/g,"\\`").replace(/\${/g,"\\${"),`\`${X}\``}if(D[0]===Q)return D;let Z=D.slice(1,-1);return`${Q}${Z}${Q}`}Y=f(Y)}if(typeof Y==="string"){if(Y.startsWith('"')||Y.startsWith("'")||Y.startsWith("`")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive:",Y);let Q=Y.slice(1,-1);if(Q.includes(`
|
|
91
|
+
`))return`\`${Q.replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}\``;let D=Q.includes("'")&&!Q.includes('"')?'"':"'",Z=Q.replace(new RegExp(D,"g"),`\\${D}`);return`${D}${Z}${D}`}if(this.reactiveVars?.has(Y)&&!this.suppressReactiveUnwrap)return`${Y}.value`;return Y}if(typeof Y==="number")return String(Y);if(Y===null||Y===void 0)return"null";if(!Array.isArray(Y))throw Error(`Invalid s-expression: ${JSON.stringify(Y)}`);let[U,...W]=Y,A=j(U,"await");U=f(U);let $=V.GENERATORS[U];if($)return this[$](U,W,F,Y);if(typeof U==="string"&&!U.startsWith('"')&&!U.startsWith("'")){if(V.NUMBER_START_RE.test(U))return U;if(U==="super"&&this.currentMethodName&&this.currentMethodName!=="constructor"){let J=W.map((K)=>this.unwrap(this.generate(K,"value"))).join(", ");return`super.${this.currentMethodName}(${J})`}if(F==="statement"&&W.length===1){let J=this.findPostfixConditional(W[0]);if(J){let K=this.rebuildWithoutConditional(J),z=this.generate(U,"value"),R=this.generate(J.condition,"value"),M=this.generate(K,"value"),G=`${z}(${M})`;return J.type==="unless"?`if (!${R}) ${G}`:`if (${R}) ${G}`}}let Q=A===!0,D=this.generate(U,"value"),Z=W.map((J)=>this.unwrap(this.generate(J,"value"))).join(", "),X=`${D}(${Z})`;return Q?`await ${X}`:X}if(Array.isArray(U)&&typeof U[0]==="string"){if(["=","+=","-=","*=","/=","%=","**=","&&=","||=","??=","if","unless","return","throw"].includes(U[0]))return`(${Y.map((Z)=>this.generate(Z,"value")).join(", ")})`}if(Array.isArray(U)){if(U[0]==="."&&(U[2]==="new"||f(U[2])==="new")){let J=U[1],K=this.generate(J,"value"),z=W.map((M)=>this.unwrap(this.generate(M,"value"))).join(", ");return`new ${Array.isArray(J)?`(${K})`:K}(${z})`}if(F==="statement"&&W.length===1){let J=this.findPostfixConditional(W[0]);if(J){let K=this.rebuildWithoutConditional(J),z=this.generate(U,"value"),R=this.generate(J.condition,"value"),M=this.generate(K,"value"),G=`${z}(${M})`;return J.type==="unless"?`if (!${R}) ${G}`:`if (${R}) ${G}`}}let Q=!1,D;if(U[0]==="."&&j(U[2],"await")===!0){Q=!0;let[J,K]=U.slice(1),z=this.generate(J,"value");D=`${V.NUMBER_LITERAL_RE.test(z)||Array.isArray(J)&&(J[0]==="object"||J[0]==="await"||J[0]==="yield")?`(${z})`:z}.${f(K)}`}else D=this.generate(U,"value");let Z=W.map((J)=>this.unwrap(this.generate(J,"value"))).join(", "),X=`${D}(${Z})`;return Q?`await ${X}`:X}throw Error(`Unknown s-expression type: ${U}`)}generateProgram(Y,F,U,W){let A="",$=[],Q=[],D=[];for(let z of F){if(!Array.isArray(z)){D.push(z);continue}let R=z[0];if(R==="import")$.push(z);else if(R==="export"||R==="export-default"||R==="export-all"||R==="export-from")Q.push(z);else D.push(z)}let Z=["def","class","if","unless","for-in","for-of","for-as","while","until","loop","switch","try"],X=D.map((z,R)=>{let M=D.length===1&&$.length===0&&Q.length===0,G=Array.isArray(z)&&z[0]==="object",O=G&&z.length===2&&Array.isArray(z[1])&&Array.isArray(z[1][1])&&z[1][1][0]==="comprehension",H=Array.isArray(z)&&(z[0]==="comprehension"||z[0]==="object-comprehension"||z[0]==="do-iife"),I=this.programVars.size===0,P=M&&G&&I&&!H&&!O,w=R===D.length-1&&H,_;if(P)_=`(${this.generate(z,"value")})`;else if(w)_=this.generate(z,"value");else _=this.generate(z,"statement");if(_&&!_.endsWith(";")){let q=Array.isArray(z)?z[0]:null;if(!Z.includes(q)||!_.endsWith("}"))return _+";"}return _}).join(`
|
|
92
|
+
`),J=!1;if($.length>0)A+=$.map((z)=>this.addSemicolon(z,this.generate(z,"statement"))).join(`
|
|
93
|
+
`),J=!0;if(this.programVars.size>0){let z=Array.from(this.programVars).sort().join(", ");if(J)A+=`
|
|
94
|
+
`;A+=`let ${z};
|
|
94
95
|
`,J=!0}if(this.helpers.has("slice"))A+=`const slice = [].slice;
|
|
95
96
|
`,J=!0;if(this.helpers.has("modulo"))A+=`const modulo = (n, d) => { n = +n; d = +d; return (n % d + d) % d; };
|
|
96
97
|
`,J=!0;if(this.helpers.has("toSearchable"))A+=`const toSearchable = (v, allowNewlines) => {
|
|
@@ -107,70 +108,70 @@ if (typeof globalThis !== 'undefined') {
|
|
|
107
108
|
`,A+=` }
|
|
108
109
|
`,A+=` return "";
|
|
109
110
|
`,A+=`};
|
|
110
|
-
`,J=!0;let
|
|
111
|
-
`+Q.map((
|
|
111
|
+
`,J=!0;let K="";if(Q.length>0)K=`
|
|
112
|
+
`+Q.map((z)=>this.addSemicolon(z,this.generate(z,"statement"))).join(`
|
|
112
113
|
`);if(this.usesReactivity&&!this.options.skipReactiveRuntime){if(typeof globalThis<"u"&&globalThis.__rip)A+=`const { __state, __computed, __effect, __batch, __readonly, __setErrorHandler, __handleError, __catchErrors } = globalThis.__rip;
|
|
113
114
|
`;else A+=this.getReactiveRuntime();J=!0}if(this.usesTemplates&&!this.options.skipComponentRuntime){if(typeof globalThis<"u"&&globalThis.__ripComponent)A+=`const { isSignal, __pushComponent, __popComponent, setContext, getContext, hasContext, __cx__ } = globalThis.__ripComponent;
|
|
114
115
|
`;else A+=this.getComponentRuntime();J=!0}if(this.dataSection!==null&&this.dataSection!==void 0)A+=`var DATA;
|
|
115
116
|
_setDataSection();
|
|
116
117
|
`,J=!0;if(J&&A.length>0)A+=`
|
|
117
|
-
`;if(A+=X,A+=
|
|
118
|
+
`;if(A+=X,A+=K,this.dataSection!==null&&this.dataSection!==void 0)A+=`
|
|
118
119
|
|
|
119
120
|
function _setDataSection() {
|
|
120
121
|
DATA = ${JSON.stringify(this.dataSection)};
|
|
121
|
-
}`;return A}generateBinaryOp(Y,F,U,W){if((Y==="+"||Y==="-")&&F.length===1)return`(${Y}${this.generate(F[0],"value")})`;let[A,$]=F;if(Y==="!?"){let Q=this.generate(A,"value"),D=this.generate($,"value");return`(${Q} !== undefined ? ${Q} : ${D})`}if(Y==="==")Y="===";if(Y==="!=")Y="!==";return`(${this.generate(A,"value")} ${Y} ${this.generate($,"value")})`}generateModulo(Y,F){let[U,W]=F;return this.helpers.add("modulo"),`modulo(${this.generate(U,"value")}, ${this.generate(W,"value")})`}generateFloorDiv(Y,F){let[U,W]=F;return`Math.floor(${this.generate(U,"value")} / ${this.generate(W,"value")})`}generateFloorDivAssign(Y,F){let[U,W]=F,A=this.generate(U,"value"),$=this.generate(W,"value");return`${A} = Math.floor(${A} / ${$})`}generateAssignment(Y,F,U,W){let[A,$]=F,Q=Y==="?="?"??=":Y,D=Array.isArray($)&&($[0]==="->"||$[0]==="=>"||$[0]==="def");if(A instanceof String&&
|
|
122
|
+
}`;return A}generateBinaryOp(Y,F,U,W){if((Y==="+"||Y==="-")&&F.length===1)return`(${Y}${this.generate(F[0],"value")})`;let[A,$]=F;if(Y==="!?"){let Q=this.generate(A,"value"),D=this.generate($,"value");return`(${Q} !== undefined ? ${Q} : ${D})`}if(Y==="==")Y="===";if(Y==="!=")Y="!==";return`(${this.generate(A,"value")} ${Y} ${this.generate($,"value")})`}generateModulo(Y,F){let[U,W]=F;return this.helpers.add("modulo"),`modulo(${this.generate(U,"value")}, ${this.generate(W,"value")})`}generateFloorDiv(Y,F){let[U,W]=F;return`Math.floor(${this.generate(U,"value")} / ${this.generate(W,"value")})`}generateFloorDivAssign(Y,F){let[U,W]=F,A=this.generate(U,"value"),$=this.generate(W,"value");return`${A} = Math.floor(${A} / ${$})`}generateAssignment(Y,F,U,W){let[A,$]=F,Q=Y==="?="?"??=":Y,D=Array.isArray($)&&($[0]==="->"||$[0]==="=>"||$[0]==="def");if(A instanceof String&&j(A,"await")!==void 0&&!D){let G=j(A,"await")===!0?"!":"&";throw Error(`Cannot use ${G} sigil in variable declaration '${f(A)}'.`)}if(A instanceof String&&j(A,"await")===!0&&D)this.nextFunctionIsVoid=!0;let Z=Array.isArray(A)&&A[0]==="array"&&A.length===1,X=Array.isArray(A)&&A[0]==="object"&&A.length===1;if(Z||X){let G=this.generate($,"value");return X&&U==="statement"?`(${G})`:G}if(Array.isArray($)&&Q==="="&&$[0]==="control"){let[,G,O,H]=$,I=f(G),P=H[0]==="return",E=this.generate(A,"value");if(typeof A==="string")this.programVars.add(A);let w=this.generate(O,"value"),_=H.length>1?H[1]:null,q=P?_?`return ${this.generate(_,"value")}`:"return":_?`throw ${this.generate(_,"value")}`:"throw new Error()";if(U==="value"){if(I==="??")return`(() => { const __v = ${w}; if (__v == null) ${q}; return (${E} = __v); })()`;if(I==="||")return`(() => { const __v = ${w}; if (!__v) ${q}; return (${E} = __v); })()`;return`(() => { const __v = ${w}; if (__v) ${q}; return (${E} = __v); })()`}if(I==="??")return`if ((${E} = ${w}) == null) ${q}`;if(I==="||")return`if (!(${E} = ${w})) ${q}`;return`if ((${E} = ${w})) ${q}`}if(Array.isArray(A)&&A[0]==="array"){let G=A.slice(1).findIndex((O)=>Array.isArray(O)&&O[0]==="..."||O==="...");if(G!==-1&&G<A.length-2){let O=A.slice(1),H=O.slice(G+1),I=H.length;if(I>0){let P=this.generate($,"value"),w=O.slice(0,G).map((N)=>N===","?"":typeof N==="string"?N:this.generate(N,"value")).join(", "),_=H.map((N)=>N===","?"":typeof N==="string"?N:this.generate(N,"value")).join(", ");this.helpers.add("slice"),O.forEach((N)=>{if(N===","||N==="...")return;if(typeof N==="string")this.programVars.add(N);else if(Array.isArray(N)&&N[0]==="..."&&typeof N[1]==="string")this.programVars.add(N[1])});let q=O[G],T=Array.isArray(q)&&q[0]==="..."?q[1]:null,B=[];if(w)B.push(`[${w}] = ${P}`);if(T)B.push(`[...${T}] = ${P}.slice(${G}, -${I})`);return B.push(`[${_}] = slice.call(${P}, -${I})`),B.join(", ")}}}if(U==="statement"&&Y==="="&&Array.isArray($)&&($[0]==="||"||$[0]==="&&")&&$.length===3){let[G,O,H]=$;if(Array.isArray(H)&&(H[0]==="unless"||H[0]==="if")&&H.length===3){let[I,P,E]=H,w=Array.isArray(E)&&E.length===1?E[0]:E,_=[G,O,w],q=this.generate(A,"value"),T=this.generate(P,"value"),B=this.generate(_,"value");return I==="unless"?`if (!${T}) ${q} = ${B}`:`if (${T}) ${q} = ${B}`}}if(U==="statement"&&Y==="="&&Array.isArray($)&&$.length===3){let[G,O,H]=$,I=Array.isArray(H)&&H.length===1&&(!Array.isArray(H[0])||H[0][0]!=="block");if((G==="unless"||G==="if")&&I){let P=Array.isArray(H)&&H.length===1?H[0]:H,E=this.generate(A,"value"),w=this.unwrapLogical(this.generate(O,"value")),_=this.generate(P,"value");if(G==="unless"){if(w.includes(" ")||/[<>=&|]/.test(w))w=`(${w})`;return`if (!${w}) ${E} = ${_}`}return`if (${w}) ${E} = ${_}`}}let J;if(A instanceof String&&j(A,"await")!==void 0)J=f(A);else if(typeof A==="string"&&this.reactiveVars?.has(A))J=`${A}.value`;else this.suppressReactiveUnwrap=!0,J=this.generate(A,"value"),this.suppressReactiveUnwrap=!1;let K=this.generate($,"value");if(!(Array.isArray($)&&$[0]==="object"))K=this.unwrap(K);let R=U==="value",M=U==="statement"&&Array.isArray(A)&&A[0]==="object";if(R||M)return`(${J} ${Q} ${K})`;return`${J} ${Q} ${K}`}generatePropertyAccess(Y,F,U,W){let[A,$]=F;this.suppressReactiveUnwrap=!0;let Q=this.generate(A,"value");this.suppressReactiveUnwrap=!1;let Z=V.NUMBER_LITERAL_RE.test(Q)||Array.isArray(A)&&(A[0]==="object"||A[0]==="await"||A[0]==="yield")?`(${Q})`:Q;if(j($,"await")===!0)return`await ${Z}.${f($)}()`;if(j($,"predicate"))return`(${Z}.${f($)} != null)`;return`${Z}.${f($)}`}generateOptionalProperty(Y,F){let[U,W]=F;return`${this.generate(U,"value")}?.${W}`}generateRegexIndex(Y,F){let[U,W,A]=F;this.helpers.add("toSearchable"),this.programVars.add("_");let $=this.generate(U,"value"),Q=this.generate(W,"value"),D=A!==null?this.generate(A,"value"):"0",Z=Q.includes("/m")?", true":"";return`(_ = toSearchable(${$}${Z}).match(${Q})) && _[${D}]`}generateIndexAccess(Y,F){let[U,W]=F;if(Array.isArray(W)&&(W[0]===".."||W[0]==="...")){let A=W[0]==="..",$=this.generate(U,"value"),[Q,D]=W.slice(1);if(Q===null&&D===null)return`${$}.slice()`;if(Q===null){if(A&&this.isNegativeOneLiteral(D))return`${$}.slice(0)`;let J=this.generate(D,"value");return A?`${$}.slice(0, +${J} + 1 || 9e9)`:`${$}.slice(0, ${J})`}if(D===null)return`${$}.slice(${this.generate(Q,"value")})`;let Z=this.generate(Q,"value");if(A&&this.isNegativeOneLiteral(D))return`${$}.slice(${Z})`;let X=this.generate(D,"value");return A?`${$}.slice(${Z}, +${X} + 1 || 9e9)`:`${$}.slice(${Z}, ${X})`}return`${this.generate(U,"value")}[${this.unwrap(this.generate(W,"value"))}]`}generateOptIndex(Y,F){let[U,W]=F;return`${this.generate(U,"value")}?.[${this.generate(W,"value")}]`}generateOptCall(Y,F){let[U,...W]=F;return`${this.generate(U,"value")}?.(${W.map((A)=>this.generate(A,"value")).join(", ")})`}generateDef(Y,F,U,W){let[A,$,Q]=F,D=j(A,"await")===!0,Z=f(A),X=this.generateParamList($),J=this.generateFunctionBody(Q,$,D),K=this.containsAwait(Q),z=this.containsYield(Q);return`${K?"async ":""}function${z?"*":""} ${Z}(${X}) ${J}`}generateThinArrow(Y,F,U,W){let[A,$]=F,Q=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let D=this.generateParamList(A),Z=this.generateFunctionBody($,A,Q),X=this.containsAwait($),J=this.containsYield($),K=`${X?"async ":""}function${J?"*":""}(${D}) ${Z}`;return U==="value"?`(${K})`:K}generateFatArrow(Y,F,U,W){let[A,$]=F,Q=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let D=this.generateParamList(A),X=A.length===1&&typeof A[0]==="string"&&!D.includes("=")&&!D.includes("...")&&!D.includes("[")&&!D.includes("{")?D:`(${D})`,K=this.containsAwait($)?"async ":"";if(!Q){if(Array.isArray($)&&$[0]==="block"&&$.length===2){let R=$[1];if(!Array.isArray(R)||R[0]!=="return")return`${K}${X} => ${this.generate(R,"value")}`}if(!Array.isArray($)||$[0]!=="block")return`${K}${X} => ${this.generate($,"value")}`}let z=this.generateFunctionBody($,A,Q);return`${K}${X} => ${z}`}generateReturn(Y,F,U,W){if(F.length===0)return"return";let[A]=F;if(this.sideEffectOnly)return"return";if(Array.isArray(A)&&A[0]==="unless"){let[,$,Q]=A,D=Array.isArray(Q)&&Q.length===1?Q[0]:Q;return`if (!${this.generate($,"value")}) return ${this.generate(D,"value")}`}if(Array.isArray(A)&&A[0]==="if"){let[,$,Q,...D]=A;if(D.length===0){let Z=Array.isArray(Q)&&Q.length===1?Q[0]:Q;return`if (${this.generate($,"value")}) return ${this.generate(Z,"value")}`}}if(Array.isArray(A)&&A[0]==="new"&&Array.isArray(A[1])&&A[1][0]==="unless"){let[,$]=A,[,Q,D]=$,Z=Array.isArray(D)&&D.length===1?D[0]:D;return`if (!${this.generate(Q,"value")}) return ${this.generate(["new",Z],"value")}`}return`return ${this.generate(A,"value")}`}generateState(Y,F){let[U,W]=F;this.usesReactivity=!0;let A=f(U)??U;if(!this.reactiveVars)this.reactiveVars=new Set;return this.reactiveVars.add(A),`const ${A} = __state(${this.generate(W,"value")})`}generateComputed(Y,F){let[U,W]=F;if(this.usesReactivity=!0,!this.reactiveVars)this.reactiveVars=new Set;let A=f(U)??U;return this.reactiveVars.add(A),`const ${A} = __computed(() => ${this.generate(W,"value")})`}generateReadonly(Y,F){let[U,W]=F;return`const ${f(U)??U} = ${this.generate(W,"value")}`}generateEffect(Y,F){let[U,W]=F;this.usesReactivity=!0;let A;if(Array.isArray(W)&&W[0]==="block")A=`{
|
|
122
123
|
${this.withIndent(()=>this.formatStatements(W.slice(1))).join(`
|
|
123
124
|
`)}
|
|
124
|
-
${this.indent()}}`;else if(Array.isArray(W)&&(W[0]==="->"||W[0]==="=>")){let Q=this.generate(W,"value");if(U)return`const ${
|
|
125
|
+
${this.indent()}}`;else if(Array.isArray(W)&&(W[0]==="->"||W[0]==="=>")){let Q=this.generate(W,"value");if(U)return`const ${f(U)??this.generate(U,"value")} = __effect(${Q})`;return`__effect(${Q})`}else A=`{ ${this.generate(W,"value")}; }`;let $=`__effect(() => ${A})`;if(U)return`const ${f(U)??this.generate(U,"value")} = ${$}`;return $}generateBreak(){return"break"}generateBreakIf(Y,F){return`if (${this.generate(F[0],"value")}) break`}generateContinue(){return"continue"}generateContinueIf(Y,F){return`if (${this.generate(F[0],"value")}) continue`}generateExistential(Y,F){return`(${this.generate(F[0],"value")} != null)`}generateTernary(Y,F){let[U,W,A]=F;return`(${this.unwrap(this.generate(U,"value"))} ? ${this.generate(W,"value")} : ${this.generate(A,"value")})`}generateLoop(Y,F){return`while (true) ${this.generateLoopBody(F[0])}`}generateAwait(Y,F){return`await ${this.generate(F[0],"value")}`}generateYield(Y,F){return F.length===0?"yield":`yield ${this.generate(F[0],"value")}`}generateYieldFrom(Y,F){return`yield* ${this.generate(F[0],"value")}`}generateIf(Y,F,U,W){if(Y==="unless"){let[D,Z]=F;if(Array.isArray(Z)&&Z.length===1&&(!Array.isArray(Z[0])||Z[0][0]!=="block"))Z=Z[0];if(U==="value")return`(!${this.generate(D,"value")} ? ${this.extractExpression(Z)} : undefined)`;let X=this.unwrap(this.generate(D,"value"));if(/[ <>=&|]/.test(X))X=`(${X})`;return`if (!${X}) `+this.generate(Z,"statement")}let[A,$,...Q]=F;return U==="value"?this.generateIfAsExpression(A,$,Q):this.generateIfAsStatement(A,$,Q)}generateForIn(Y,F,U,W){let[A,$,Q,D,Z]=F;if(U==="value"&&this.comprehensionDepth===0){let O=["for-in",A,$,Q];return this.generate(["comprehension",Z,[O],D?[D]:[]],U)}let X=Array.isArray(A)?A:[A],J=X.length===0,[K,z]=J?["_i",null]:X,R=Array.isArray(K)&&(K[0]==="array"||K[0]==="object")?this.generateDestructuringPattern(K):K;if(Q&&Q!==null){let O=this.generate($,"value"),H=z||"_i",I=this.generate(Q,"value"),P=this.isNegativeStep(Q),E=P&&(Q[1]==="1"||Q[1]===1||f(Q[1])==="1"),w=!P&&(Q==="1"||Q===1||f(Q)==="1"),_;if(E)_=`for (let ${H} = ${O}.length - 1; ${H} >= 0; ${H}--) `;else if(w)_=`for (let ${H} = 0; ${H} < ${O}.length; ${H}++) `;else if(P)_=`for (let ${H} = ${O}.length - 1; ${H} >= 0; ${H} += ${I}) `;else _=`for (let ${H} = 0; ${H} < ${O}.length; ${H} += ${I}) `;if(Array.isArray(Z)&&Z[0]==="block"){let q=Z.slice(1);this.indentLevel++;let T=[];if(!J)T.push(`const ${R} = ${O}[${H}];`);if(D)T.push(`if (${this.generate(D,"value")}) {`),this.indentLevel++,T.push(...this.formatStatements(q)),this.indentLevel--,T.push(this.indent()+"}");else T.push(...q.map((B)=>this.addSemicolon(B,this.generate(B,"statement"))));return this.indentLevel--,_+`{
|
|
125
126
|
${T.map((B)=>this.indent()+B).join(`
|
|
126
127
|
`)}
|
|
127
|
-
${this.indent()}}`}if(J)return D?
|
|
128
|
-
`,this.indentLevel++,H+=this.indent()+`const ${R} = ${
|
|
128
|
+
${this.indent()}}`}if(J)return D?_+`{ if (${this.generate(D,"value")}) ${this.generate(Z,"statement")}; }`:_+`{ ${this.generate(Z,"statement")}; }`;return D?_+`{ const ${R} = ${O}[${H}]; if (${this.generate(D,"value")}) ${this.generate(Z,"statement")}; }`:_+`{ const ${R} = ${O}[${H}]; ${this.generate(Z,"statement")}; }`}if(z){let O=this.generate($,"value"),H=`for (let ${z} = 0; ${z} < ${O}.length; ${z}++) `;if(Array.isArray(Z)&&Z[0]==="block"){if(H+=`{
|
|
129
|
+
`,this.indentLevel++,H+=this.indent()+`const ${R} = ${O}[${z}];
|
|
129
130
|
`,D)H+=this.indent()+`if (${this.unwrap(this.generate(D,"value"))}) {
|
|
130
131
|
`,this.indentLevel++,H+=this.formatStatements(Z.slice(1)).join(`
|
|
131
132
|
`)+`
|
|
132
133
|
`,this.indentLevel--,H+=this.indent()+`}
|
|
133
134
|
`;else H+=this.formatStatements(Z.slice(1)).join(`
|
|
134
135
|
`)+`
|
|
135
|
-
`;this.indentLevel--,H+=this.indent()+"}"}else H+=D?`{ const ${R} = ${
|
|
136
|
-
${R.map((
|
|
136
|
+
`;this.indentLevel--,H+=this.indent()+"}"}else H+=D?`{ const ${R} = ${O}[${z}]; if (${this.unwrap(this.generate(D,"value"))}) ${this.generate(Z,"statement")}; }`:`{ const ${R} = ${O}[${z}]; ${this.generate(Z,"statement")}; }`;return H}let M=Array.isArray($)&&$[0];if(M instanceof String)M=f(M);if(M===".."||M==="..."){let O=M==="...",[H,I]=$.slice(1),P=(E)=>typeof E==="number"||typeof E==="string"&&!E.includes("(")||E instanceof String&&!f(E).includes("(")||Array.isArray(E)&&E[0]===".";if(P(H)&&P(I)){let E=this.generate(H,"value"),w=this.generate(I,"value"),_=O?"<":"<=",q=Q?`${R} += ${this.generate(Q,"value")}`:`${R}++`,T=`for (let ${R} = ${E}; ${R} ${_} ${w}; ${q}) `;return T+=D?this.generateLoopBodyWithGuard(Z,D):this.generateLoopBody(Z),T}}let G=`for (const ${R} of ${this.generate($,"value")}) `;return G+=D?this.generateLoopBodyWithGuard(Z,D):this.generateLoopBody(Z),G}generateForOf(Y,F,U,W){let[A,$,Q,D,Z]=F,[X,J]=Array.isArray(A)?A:[A],K=this.generate($,"value"),z=`for (const ${X} in ${K}) `;if(Q&&!J&&!D){if(Array.isArray(Z)&&Z[0]==="block"){this.indentLevel++;let R=[`if (!Object.hasOwn(${K}, ${X})) continue;`,...Z.slice(1).map((M)=>this.addSemicolon(M,this.generate(M,"statement")))];return this.indentLevel--,z+`{
|
|
137
|
+
${R.map((M)=>this.indent()+M).join(`
|
|
137
138
|
`)}
|
|
138
|
-
${this.indent()}}`}return
|
|
139
|
-
${
|
|
139
|
+
${this.indent()}}`}return z+`{ if (!Object.hasOwn(${K}, ${X})) continue; ${this.generate(Z,"statement")}; }`}if(J){if(Array.isArray(Z)&&Z[0]==="block"){let M=Z.slice(1);this.indentLevel++;let G=[];if(Q)G.push(`if (!Object.hasOwn(${K}, ${X})) continue;`);if(G.push(`const ${J} = ${K}[${X}];`),D)G.push(`if (${this.generate(D,"value")}) {`),this.indentLevel++,G.push(...M.map((O)=>this.addSemicolon(O,this.generate(O,"statement")))),this.indentLevel--,G.push(this.indent()+"}");else G.push(...M.map((O)=>this.addSemicolon(O,this.generate(O,"statement"))));return this.indentLevel--,z+`{
|
|
140
|
+
${G.map((O)=>this.indent()+O).join(`
|
|
140
141
|
`)}
|
|
141
|
-
${this.indent()}}`}let R="";if(Q)R+=`if (!Object.hasOwn(${
|
|
142
|
+
${this.indent()}}`}let R="";if(Q)R+=`if (!Object.hasOwn(${K}, ${X})) continue; `;if(R+=`const ${J} = ${K}[${X}]; `,D)R+=`if (${this.generate(D,"value")}) `;return R+=`${this.generate(Z,"statement")};`,z+`{ ${R} }`}return z+=D?this.generateLoopBodyWithGuard(Z,D):this.generateLoopBody(Z),z}generateForAs(Y,F,U,W){let A=Array.isArray(F[0])?F[0]:[F[0]],[$]=A,Q=F[1],D=F[2],Z=F[3],X=F[4],J=!1,K=[];if(Array.isArray($)&&$[0]==="array"){let O=$.slice(1),H=O.findIndex((I)=>Array.isArray(I)&&I[0]==="..."||I==="...");if(H!==-1&&H<O.length-1){J=!0;let I=O.slice(H+1),P=I.length,E=O.slice(0,H),w=O[H],_=Array.isArray(w)&&w[0]==="..."?w[1]:"_rest",q=E.map((N)=>N===","?"":typeof N==="string"?N:this.generate(N,"value")).join(", "),T=q?`${q}, ...${_}`:`...${_}`,B=I.map((N)=>N===","?"":typeof N==="string"?N:this.generate(N,"value")).join(", ");K.push(`[${T}] = _item`),K.push(`[${B}] = ${_}.splice(-${P})`),this.helpers.add("slice"),O.forEach((N)=>{if(N===","||N==="...")return;if(typeof N==="string")this.programVars.add(N);else if(Array.isArray(N)&&N[0]==="..."&&typeof N[1]==="string")this.programVars.add(N[1])})}}let z=this.generate(Q,"value"),R=D?"await ":"",M;if(J)M="_item";else if(Array.isArray($)&&($[0]==="array"||$[0]==="object"))M=this.generateDestructuringPattern($);else M=$;let G=`for ${R}(const ${M} of ${z}) `;if(J&&K.length>0){let O=this.unwrapBlock(X),H=this.withIndent(()=>[...K.map((I)=>this.indent()+I+";"),...this.formatStatements(O)]);G+=`{
|
|
142
143
|
${H.join(`
|
|
143
144
|
`)}
|
|
144
|
-
${this.indent()}}`}else
|
|
145
|
+
${this.indent()}}`}else G+=Z?this.generateLoopBodyWithGuard(X,Z):this.generateLoopBody(X);return G}generateWhile(Y,F){let U=F[0],W=F.length===3?F[1]:null,A=F[F.length-1];return`while (${this.unwrap(this.generate(U,"value"))}) `+(W?this.generateLoopBodyWithGuard(A,W):this.generateLoopBody(A))}generateUntil(Y,F){let[U,W]=F;return`while (!(${this.unwrap(this.generate(U,"value"))})) `+this.generateLoopBody(W)}generateRange(Y,F){if(Y==="..."){if(F.length===1)return`...${this.generate(F[0],"value")}`;let[Q,D]=F,Z=this.generate(Q,"value"),X=this.generate(D,"value");return`((s, e) => Array.from({length: Math.max(0, Math.abs(e - s))}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${Z}, ${X})`}let[U,W]=F,A=this.generate(U,"value"),$=this.generate(W,"value");return`((s, e) => Array.from({length: Math.abs(e - s) + 1}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${A}, ${$})`}generateNot(Y,F){let[U]=F;if(typeof U==="string"||U instanceof String)return`!${this.generate(U,"value")}`;if(Array.isArray(U)){if([".","?.","[]","optindex","optcall"].includes(U[0]))return`!${this.generate(U,"value")}`}let W=this.generate(U,"value");return W.startsWith("(")?`!${W}`:`(!${W})`}generateBitwiseNot(Y,F){return`(~${this.generate(F[0],"value")})`}generateIncDec(Y,F){let[U,W]=F,A=this.generate(U,"value");return W?`(${A}${Y})`:`(${Y}${A})`}generateTypeof(Y,F){return`typeof ${this.generate(F[0],"value")}`}generateDelete(Y,F){return`(delete ${this.generate(F[0],"value")})`}generateInstanceof(Y,F,U,W){let[A,$]=F,Q=j(W[0],"invert"),D=`(${this.generate(A,"value")} instanceof ${this.generate($,"value")})`;return Q?`(!${D})`:D}generateIn(Y,F,U,W){let[A,$]=F,Q=this.generate(A,"value"),D=j(W[0],"invert");if(Array.isArray($)&&$[0]==="object"){let J=`(${Q} in ${this.generate($,"value")})`;return D?`(!${J})`:J}let Z=this.generate($,"value"),X=`(Array.isArray(${Z}) || typeof ${Z} === 'string' ? ${Z}.includes(${Q}) : (${Q} in ${Z}))`;return D?`(!${X})`:X}generateOf(Y,F,U,W){let[A,$]=F,Q=this.generate(A,"value"),D=this.generate($,"value"),Z=j(W[0],"invert"),X=`(${Q} in ${D})`;return Z?`(!${X})`:X}generateRegexMatch(Y,F){let[U,W]=F;this.helpers.add("toSearchable"),this.programVars.add("_");let A=this.generate(W,"value"),$=A.includes("/m")?", true":"";return`(_ = toSearchable(${this.generate(U,"value")}${$}).match(${A}))`}generateNew(Y,F){let[U]=F;if(Array.isArray(U)&&(U[0]==="."||U[0]==="?.")){let[W,A,$]=U;if(Array.isArray(A)&&!A[0].startsWith)return`(${this.generate(["new",A],"value")}).${$}`;return`new ${this.generate(A,"value")}.${$}`}if(Array.isArray(U)){let[W,...A]=U;return`new ${this.generate(W,"value")}(${A.map(($)=>this.unwrap(this.generate($,"value"))).join(", ")})`}return`new ${this.generate(U,"value")}()`}generateLogicalAnd(Y,F,U,W){let A=this.flattenBinaryChain(W).slice(1);if(A.length===0)return"true";if(A.length===1)return this.generate(A[0],"value");return`(${A.map(($)=>this.generate($,"value")).join(" && ")})`}generateLogicalOr(Y,F,U,W){let A=this.flattenBinaryChain(W).slice(1);if(A.length===0)return"true";if(A.length===1)return this.generate(A[0],"value");return`(${A.map(($)=>this.generate($,"value")).join(" || ")})`}generateArray(Y,F){let U=F.length>0&&F[F.length-1]===",",W=F.map((A)=>{if(A===",")return"";if(A==="...")return"";if(Array.isArray(A)&&A[0]==="...")return`...${this.generate(A[1],"value")}`;return this.generate(A,"value")}).join(", ");return U?`[${W},]`:`[${W}]`}generateObject(Y,F,U){if(F.length===1&&Array.isArray(F[0])&&Array.isArray(F[0][1])&&F[0][1][0]==="comprehension"){let[A,$]=F[0],[,Q,D,Z]=$;return this.generate(["object-comprehension",A,Q,D,Z],U)}return`{${F.map((A)=>{if(Array.isArray(A)&&A[0]==="...")return`...${this.generate(A[1],"value")}`;let[$,Q,D]=A,Z;if(Array.isArray($)&&$[0]==="dynamicKey")Z=`[${this.generate($[1],"value")}]`;else if(Array.isArray($)&&$[0]==="str")Z=`[${this.generate($,"value")}]`;else Z=this.generate($,"value");let X=this.generate(Q,"value");if(D==="=")return`${Z} = ${X}`;if(D===":")return`${Z}: ${X}`;if(Z===X&&!Array.isArray($))return Z;return`${Z}: ${X}`}).join(", ")}}`}generateBlock(Y,F,U){if(U==="statement")return`{
|
|
145
146
|
${this.withIndent(()=>this.formatStatements(F)).join(`
|
|
146
147
|
`)}
|
|
147
148
|
${this.indent()}}`;if(F.length===0)return"undefined";if(F.length===1)return this.generate(F[0],U);let W=F[F.length-1];if(Array.isArray(W)&&["break","continue","return","throw"].includes(W[0])){let $=F.map((Q)=>this.addSemicolon(Q,this.generate(Q,"statement")));return`{
|
|
148
149
|
${this.withIndent(()=>$.map((Q)=>this.indent()+Q).join(`
|
|
149
150
|
`))}
|
|
150
|
-
${this.indent()}}`}return`(${F.map(($)=>this.generate($,"value")).join(", ")})`}generateTry(Y,F,U){let W=U==="value",A="try ",$=F[0];if(A+=W&&Array.isArray($)&&$[0]==="block"?this.generateBlockWithReturns($):this.generate($,"statement"),F.length>=2&&Array.isArray(F[1])&&F[1].length===2&&F[1][0]!=="block"){let[Q,D]=F[1];if(A+=" catch",Q&&Array.isArray(Q)&&(Q[0]==="object"||Q[0]==="array")){A+=" (error)";let Z=`(${this.generate(Q,"value")} = error)`;D=Array.isArray(D)&&D[0]==="block"?["block",Z,...D.slice(1)]:["block",Z,D]}else if(Q)A+=` (${Q})`;A+=" "+(W&&Array.isArray(D)&&D[0]==="block"?this.generateBlockWithReturns(D):this.generate(D,"statement"))}else if(F.length===2)A+=" finally "+this.generate(F[1],"statement");if(F.length===3)A+=" finally "+this.generate(F[2],"statement");if(W)return`(${this.containsAwait(F[0])||F[1]&&this.containsAwait(F[1])?"async ":""}() => { ${A} })()`;return A}generateThrow(Y,F,U){let[W]=F;if(Array.isArray(W)){let $=W,Q=null;if(W[0]==="new"&&Array.isArray(W[1])&&(W[1][0]==="if"||W[1][0]==="unless"))Q="new",$=W[1];else if(W[0]==="if"||W[0]==="unless")$=W;if($[0]==="if"||$[0]==="unless"){let[D,Z,X]=$,J=Array.isArray(X)&&X.length===1?X[0]:X;W=Q==="new"?["new",J]:J;let
|
|
151
|
-
${this.indent()} ${
|
|
152
|
-
${this.indent()}}`:`if (${
|
|
153
|
-
${this.indent()} ${
|
|
154
|
-
${this.indent()}}`}}let A=`throw ${this.generate(W,"value")}`;return U==="value"?`(() => { ${A}; })()`:A}generateControl(Y,F,U){let[W,A,$]=F,Q=
|
|
155
|
-
`;this.indentLevel++;for(let D of A){let[,Z,X]=D;for(let J of Z){let
|
|
151
|
+
${this.indent()}}`}return`(${F.map(($)=>this.generate($,"value")).join(", ")})`}generateTry(Y,F,U){let W=U==="value",A="try ",$=F[0];if(A+=W&&Array.isArray($)&&$[0]==="block"?this.generateBlockWithReturns($):this.generate($,"statement"),F.length>=2&&Array.isArray(F[1])&&F[1].length===2&&F[1][0]!=="block"){let[Q,D]=F[1];if(A+=" catch",Q&&Array.isArray(Q)&&(Q[0]==="object"||Q[0]==="array")){A+=" (error)";let Z=`(${this.generate(Q,"value")} = error)`;D=Array.isArray(D)&&D[0]==="block"?["block",Z,...D.slice(1)]:["block",Z,D]}else if(Q)A+=` (${Q})`;A+=" "+(W&&Array.isArray(D)&&D[0]==="block"?this.generateBlockWithReturns(D):this.generate(D,"statement"))}else if(F.length===2)A+=" finally "+this.generate(F[1],"statement");if(F.length===3)A+=" finally "+this.generate(F[2],"statement");if(W)return`(${this.containsAwait(F[0])||F[1]&&this.containsAwait(F[1])?"async ":""}() => { ${A} })()`;return A}generateThrow(Y,F,U){let[W]=F;if(Array.isArray(W)){let $=W,Q=null;if(W[0]==="new"&&Array.isArray(W[1])&&(W[1][0]==="if"||W[1][0]==="unless"))Q="new",$=W[1];else if(W[0]==="if"||W[0]==="unless")$=W;if($[0]==="if"||$[0]==="unless"){let[D,Z,X]=$,J=Array.isArray(X)&&X.length===1?X[0]:X;W=Q==="new"?["new",J]:J;let K=this.generate(Z,"value"),z=`throw ${this.generate(W,"value")}`;return D==="unless"?`if (!(${K})) {
|
|
152
|
+
${this.indent()} ${z};
|
|
153
|
+
${this.indent()}}`:`if (${K}) {
|
|
154
|
+
${this.indent()} ${z};
|
|
155
|
+
${this.indent()}}`}}let A=`throw ${this.generate(W,"value")}`;return U==="value"?`(() => { ${A}; })()`:A}generateControl(Y,F,U){let[W,A,$]=F,Q=f(W),D=$[0]==="return",Z=this.generate(A,"value"),X=$.length>1?$[1]:null,J=D?X?`return ${this.generate(X,"value")}`:"return":X?`throw ${this.generate(X,"value")}`:"throw new Error()",K=this.wrapForCondition(Z);if(U==="value"){if(Q==="??")return`(() => { const __v = ${Z}; if (__v == null) ${J}; return __v; })()`;if(Q==="||")return`(() => { const __v = ${Z}; if (!__v) ${J}; return __v; })()`;return`(() => { const __v = ${Z}; if (__v) ${J}; return __v; })()`}if(Q==="??")return`if (${K} == null) ${J}`;if(Q==="||")return`if (!${K}) ${J}`;return`if (${K}) ${J}`}generateSwitch(Y,F,U){let[W,A,$]=F;if(W===null)return this.generateSwitchAsIfChain(A,$,U);let Q=`switch (${this.generate(W,"value")}) {
|
|
156
|
+
`;this.indentLevel++;for(let D of A){let[,Z,X]=D;for(let J of Z){let K=f(J)??J,z;if(Array.isArray(K))z=this.generate(K,"value");else if(typeof K==="string"&&(K.startsWith('"')||K.startsWith("'")))z=`'${K.slice(1,-1)}'`;else z=this.generate(K,"value");Q+=this.indent()+`case ${z}:
|
|
156
157
|
`}this.indentLevel++,Q+=this.generateSwitchCaseBody(X,U),this.indentLevel--}if($)Q+=this.indent()+`default:
|
|
157
158
|
`,this.indentLevel++,Q+=this.generateSwitchCaseBody($,U),this.indentLevel--;if(this.indentLevel--,Q+=this.indent()+"}",U==="value")return`(${A.some((Z)=>this.containsAwait(Z[2]))||$&&this.containsAwait($)?"async ":""}() => { ${Q} })()`;return Q}generateWhen(){throw Error("when clause should be handled by switch")}generateComprehension(Y,F,U){let[W,A,$]=F;if(U==="statement")return this.generateComprehensionAsLoop(W,A,$);if(this.comprehensionTarget)return this.generateComprehensionWithTarget(W,A,$,this.comprehensionTarget);let D=`(${this.containsAwait(W)?"async ":""}() => {
|
|
158
159
|
`;this.indentLevel++,this.comprehensionDepth++,D+=this.indent()+`const result = [];
|
|
159
|
-
`;for(let J of A){let[
|
|
160
|
-
`,this.indentLevel++}else{let
|
|
161
|
-
`:this.indent()+`for (let ${T} = 0; ${T} < ${
|
|
162
|
-
`,this.indentLevel++,!H)D+=this.indent()+`const ${E} = ${
|
|
163
|
-
`}}else if(
|
|
164
|
-
`,this.indentLevel++,D+=this.indent()+`const ${E} = ${w}[${
|
|
160
|
+
`;for(let J of A){let[K,z,R,M]=J;if(K==="for-in"){let G=M,O=Array.isArray(z)?z:[z],H=O.length===0,[I,P]=H?["_i",null]:O,E=Array.isArray(I)&&(I[0]==="array"||I[0]==="object")?this.generateDestructuringPattern(I):I;if(G&&G!==null){let w=Array.isArray(R)&&R[0];if(w instanceof String)w=f(w);if(w===".."||w==="..."){let q=w==="...",[T,B]=R.slice(1),N=this.generate(T,"value"),S=this.generate(B,"value"),L=this.generate(G,"value");D+=this.indent()+`for (let ${E} = ${N}; ${E} ${q?"<":"<="} ${S}; ${E} += ${L}) {
|
|
161
|
+
`,this.indentLevel++}else{let q=this.generate(R,"value"),T=P||"_i",B=this.generate(G,"value"),N=this.isNegativeStep(G);if(D+=N?this.indent()+`for (let ${T} = ${q}.length - 1; ${T} >= 0; ${T} += ${B}) {
|
|
162
|
+
`:this.indent()+`for (let ${T} = 0; ${T} < ${q}.length; ${T} += ${B}) {
|
|
163
|
+
`,this.indentLevel++,!H)D+=this.indent()+`const ${E} = ${q}[${T}];
|
|
164
|
+
`}}else if(P){let w=this.generate(R,"value");D+=this.indent()+`for (let ${P} = 0; ${P} < ${w}.length; ${P}++) {
|
|
165
|
+
`,this.indentLevel++,D+=this.indent()+`const ${E} = ${w}[${P}];
|
|
165
166
|
`}else D+=this.indent()+`for (const ${E} of ${this.generate(R,"value")}) {
|
|
166
|
-
`,this.indentLevel++}else if(
|
|
167
|
-
`,this.indentLevel++,
|
|
168
|
-
`;if(I)D+=this.indent()+`const ${I} = ${E}[${
|
|
169
|
-
`}else if(
|
|
167
|
+
`,this.indentLevel++}else if(K==="for-of"){let G=M,O=Array.isArray(z)?z:[z],[H,I]=O,P=Array.isArray(H)&&(H[0]==="array"||H[0]==="object")?this.generateDestructuringPattern(H):H,E=this.generate(R,"value");if(D+=this.indent()+`for (const ${P} in ${E}) {
|
|
168
|
+
`,this.indentLevel++,G)D+=this.indent()+`if (!Object.hasOwn(${E}, ${P})) continue;
|
|
169
|
+
`;if(I)D+=this.indent()+`const ${I} = ${E}[${P}];
|
|
170
|
+
`}else if(K==="for-as"){let G=J[3],O=Array.isArray(z)?z:[z],[H]=O,I=Array.isArray(H)&&(H[0]==="array"||H[0]==="object")?this.generateDestructuringPattern(H):H;D+=this.indent()+`for ${G?"await ":""}(const ${I} of ${this.generate(R,"value")}) {
|
|
170
171
|
`,this.indentLevel++}}for(let J of $)D+=this.indent()+`if (${this.generate(J,"value")}) {
|
|
171
|
-
`,this.indentLevel++;let Z=(J)=>{if(typeof J==="string"&&(J==="break"||J==="continue"))return!0;if(!Array.isArray(J))return!1;if(["break","continue","break-if","continue-if","return","throw"].includes(J[0]))return!0;if(J[0]==="if"||J[0]==="unless")return J.slice(1).some(Z);return J.some(Z)},X=["for-in","for-of","for-as","while","until","loop"];if(Array.isArray(W)&&W[0]==="block")for(let J=0;J<W.length-1;J++){let
|
|
172
|
-
`;else if(Array.isArray(
|
|
173
|
-
`;else D+=this.indent()+`result.push(${this.generate(
|
|
172
|
+
`,this.indentLevel++;let Z=(J)=>{if(typeof J==="string"&&(J==="break"||J==="continue"))return!0;if(!Array.isArray(J))return!1;if(["break","continue","break-if","continue-if","return","throw"].includes(J[0]))return!0;if(J[0]==="if"||J[0]==="unless")return J.slice(1).some(Z);return J.some(Z)},X=["for-in","for-of","for-as","while","until","loop"];if(Array.isArray(W)&&W[0]==="block")for(let J=0;J<W.length-1;J++){let K=W[J+1];if(J!==W.length-2||Z(K))D+=this.indent()+this.generate(K,"statement")+`;
|
|
173
|
+
`;else if(Array.isArray(K)&&X.includes(K[0]))D+=this.indent()+this.generate(K,"statement")+`;
|
|
174
|
+
`;else D+=this.indent()+`result.push(${this.generate(K,"value")});
|
|
174
175
|
`}else if(Z(W))D+=this.indent()+this.generate(W,"statement")+`;
|
|
175
176
|
`;else if(Array.isArray(W)&&X.includes(W[0]))D+=this.indent()+this.generate(W,"statement")+`;
|
|
176
177
|
`;else D+=this.indent()+`result.push(${this.generate(W,"value")});
|
|
@@ -179,38 +180,38 @@ ${this.indent()}}`}}let A=`throw ${this.generate(W,"value")}`;return U==="value"
|
|
|
179
180
|
`;return D+=this.indent()+`return result;
|
|
180
181
|
`,this.indentLevel--,this.comprehensionDepth--,D+=this.indent()+"})()",D}generateObjectComprehension(Y,F,U){let[W,A,$,Q]=F,D=`(() => {
|
|
181
182
|
`;this.indentLevel++,D+=this.indent()+`const result = {};
|
|
182
|
-
`;for(let Z of $){let[X,J,
|
|
183
|
-
`,this.indentLevel++,
|
|
184
|
-
`;if(
|
|
183
|
+
`;for(let Z of $){let[X,J,K,z]=Z;if(X==="for-of"){let[R,M]=J,G=this.generate(K,"value");if(D+=this.indent()+`for (const ${R} in ${G}) {
|
|
184
|
+
`,this.indentLevel++,z)D+=this.indent()+`if (!Object.hasOwn(${G}, ${R})) continue;
|
|
185
|
+
`;if(M)D+=this.indent()+`const ${M} = ${G}[${R}];
|
|
185
186
|
`}}for(let Z of Q)D+=this.indent()+`if (${this.generate(Z,"value")}) {
|
|
186
187
|
`,this.indentLevel++;D+=this.indent()+`result[${this.generate(W,"value")}] = ${this.generate(A,"value")};
|
|
187
188
|
`;for(let Z=0;Z<Q.length;Z++)this.indentLevel--,D+=this.indent()+`}
|
|
188
189
|
`;for(let Z=0;Z<$.length;Z++)this.indentLevel--,D+=this.indent()+`}
|
|
189
190
|
`;return D+=this.indent()+`return result;
|
|
190
191
|
`,this.indentLevel--,D+=this.indent()+"})()",D}generateClass(Y,F,U){let[W,A,...$]=F,Q=W?`class ${W}`:"class";if(A)Q+=` extends ${this.generate(A,"value")}`;if(Q+=` {
|
|
191
|
-
`,$.length>0&&Array.isArray($[0])){let D=$[0];if(D[0]==="block"){let Z=D.slice(1),X=Z.length>0&&Array.isArray(Z[0])&&Z[0][0]==="object";if(X&&Z.length===1){let J=Z[0].slice(1);this.indentLevel++;let
|
|
192
|
-
`}else if(
|
|
192
|
+
`,$.length>0&&Array.isArray($[0])){let D=$[0];if(D[0]==="block"){let Z=D.slice(1),X=Z.length>0&&Array.isArray(Z[0])&&Z[0][0]==="object";if(X&&Z.length===1){let J=Z[0].slice(1);this.indentLevel++;let K=[];for(let[z,R]of J){let M=this.isStaticMember(z),G=this.isComputedMember(z),O=this.extractMemberName(z);if(this.isBoundMethod(R)&&!M&&!G&&O!=="constructor")K.push(O)}for(let[z,R]of J){let M=this.isStaticMember(z),G=this.isComputedMember(z),O=this.extractMemberName(z);if(Array.isArray(R)&&(R[0]==="->"||R[0]==="=>")){let[,H,I]=R,P=this.containsAwait(I),E=this.containsYield(I),w=H,_=[];if(O==="constructor"){w=H.map((B)=>{if(Array.isArray(B)&&B[0]==="."&&B[1]==="this")return _.push(`this.${B[2]} = ${B[2]}`),B[2];return B});for(let B of K)_.unshift(`this.${B} = this.${B}.bind(this)`)}let q=this.generateParamList(w),T=(M?"static ":"")+(P?"async ":"")+(E?"*":"");if(Q+=this.indent()+`${T}${O}(${q}) `,!G)this.currentMethodName=O;Q+=this.generateMethodBody(I,_,O==="constructor",w),this.currentMethodName=null,Q+=`
|
|
193
|
+
`}else if(M)Q+=this.indent()+`static ${O} = ${this.generate(R,"value")};
|
|
194
|
+
`;else Q+=this.indent()+`${O} = ${this.generate(R,"value")};
|
|
195
|
+
`}this.indentLevel--}else if(X){let J=Z[0].slice(1),K=Z.slice(1);this.indentLevel++;for(let[z,R]of J){let M=this.isStaticMember(z),G=this.extractMemberName(z);if(Array.isArray(R)&&(R[0]==="->"||R[0]==="=>")){let[,O,H]=R,I=this.generateParamList(O),P=(M?"static ":"")+(this.containsAwait(H)?"async ":"")+(this.containsYield(H)?"*":"");Q+=this.indent()+`${P}${G}(${I}) `,this.currentMethodName=G,Q+=this.generateMethodBody(H,[],G==="constructor",O),this.currentMethodName=null,Q+=`
|
|
196
|
+
`}else if(M)Q+=this.indent()+`static ${G} = ${this.generate(R,"value")};
|
|
193
197
|
`;else Q+=this.indent()+`${G} = ${this.generate(R,"value")};
|
|
194
|
-
`}
|
|
195
|
-
`}else
|
|
196
|
-
`;else Q+=this.indent()+`${q} = ${this.generate(R,"value")};
|
|
197
|
-
`}for(let K of M)if(Array.isArray(K)&&K[0]==="class"){let[,R,z,...q]=K;if(Array.isArray(R)&&R[0]==="."&&R[1]==="this")Q+=this.indent()+`static ${R[2]} = ${this.generate(["class",null,z,...q],"value")};
|
|
198
|
-
`}else Q+=this.indent()+this.generate(K,"statement")+`;
|
|
198
|
+
`}for(let z of K)if(Array.isArray(z)&&z[0]==="class"){let[,R,M,...G]=z;if(Array.isArray(R)&&R[0]==="."&&R[1]==="this")Q+=this.indent()+`static ${R[2]} = ${this.generate(["class",null,M,...G],"value")};
|
|
199
|
+
`}else Q+=this.indent()+this.generate(z,"statement")+`;
|
|
199
200
|
`;this.indentLevel--}else{this.indentLevel++;for(let J of Z)if(Array.isArray(J)&&J[0]==="="&&Array.isArray(J[1])&&J[1][0]==="."&&J[1][1]==="this")Q+=this.indent()+`static ${J[1][2]} = ${this.generate(J[2],"value")};
|
|
200
201
|
`;else Q+=this.indent()+this.generate(J,"statement")+`;
|
|
201
|
-
`;this.indentLevel--}}}return Q+=this.indent()+"}",Q}generateSuper(Y,F){if(F.length===0){if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}()`;return"super"}let U=F.map((W)=>this.unwrap(this.generate(W,"value"))).join(", ");if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}(${U})`;return`super(${U})`}generateImport(Y,F,U,W){if(F.length===1){let D=`import(${this.generate(F[0],"value")})`;if(
|
|
202
|
-
export default ${U[1]}`;return`export default ${this.generate(U,"statement")}`}generateExportAll(Y,F){return`export * from ${this.addJsExtensionAndAssertions(F[0])}`}generateExportFrom(Y,F){let[U,W]=F,A=this.addJsExtensionAndAssertions(W);if(Array.isArray(U))return`export { ${U.map((Q)=>Array.isArray(Q)&&Q.length===2?`${Q[0]} as ${Q[1]}`:Q).join(", ")} } from ${A}`;return`export ${U} from ${A}`}generateDoIIFE(Y,F){return`(${this.generate(F[0],"statement")})()`}generateRegex(Y,F){return F.length===0?Y:this.generate(F[0],"value")}generateTaggedTemplate(Y,F){let[U,W]=F,A=this.generate(U,"value"),$=this.generate(W,"value");if($.startsWith("`"))return`${A}${$}`;if($.startsWith('"')||$.startsWith("'"))return`${A}\`${$.slice(1,-1)}\``;return`${A}\`${$}\``}generateString(Y,F){let U="`";for(let W of F)if(W instanceof String)U+=this.extractStringContent(W);else if(typeof W==="string")if(W.startsWith('"')||W.startsWith("'")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive in str:",W);U+=W.slice(1,-1)}else U+=W;else if(Array.isArray(W))if(W.length===1&&typeof W[0]==="string"&&!Array.isArray(W[0])){let A=W[0];U+=/^[\d"']/.test(A)?"${"+this.generate(A,"value")+"}":"${"+A+"}"}else{let A=W.length===1&&Array.isArray(W[0])?W[0]:W;U+="${"+this.generate(A,"value")+"}"}return U+"`"}findPostfixConditional(Y){if(!Array.isArray(Y))return null;let F=Y[0];if((F==="unless"||F==="if")&&Y.length===3)return{type:F,condition:Y[1],value:Y[2]};if(F==="+"||F==="-"||F==="*"||F==="/")for(let U=1;U<Y.length;U++){let W=this.findPostfixConditional(Y[U]);if(W)return W.parentOp=F,W.operandIndex=U,W.otherOperands=Y.slice(1).filter((A,$)=>$!==U-1),W}return null}rebuildWithoutConditional(Y){let F=Array.isArray(Y.value)&&Y.value.length===1?Y.value[0]:Y.value;if(Y.parentOp)return[Y.parentOp,...Y.otherOperands,F];return F}generateDestructuringPattern(Y){return this.formatParam(Y)}generateParamList(Y){let F=Y.findIndex((W)=>Array.isArray(W)&&W[0]==="expansion");if(F!==-1){let W=Y.slice(0,F),A=Y.slice(F+1),$=W.map((Q)=>this.formatParam(Q)).join(", ");return this.expansionAfterParams=A,$?`${$}, ..._rest`:"..._rest"}let U=Y.findIndex((W)=>Array.isArray(W)&&W[0]==="rest");if(U!==-1&&U<Y.length-1){let W=Y.slice(0,U),A=Y[U],$=Y.slice(U+1),Q=W.map((D)=>this.formatParam(D));return this.restMiddleParam={restName:A[1],afterParams:$,beforeCount:W.length},Q.length>0?`${Q.join(", ")}, ...${A[1]}`:`...${A[1]}`}return this.expansionAfterParams=null,this.restMiddleParam=null,Y.map((W)=>this.formatParam(W)).join(", ")}formatParam(Y){if(typeof Y==="string")return Y;if(Y instanceof String)return Y.valueOf();if(Array.isArray(Y)&&Y[0]==="rest")return`...${Y[1]}`;if(Array.isArray(Y)&&Y[0]==="default")return`${Y[1]} = ${this.generate(Y[2],"value")}`;if(Array.isArray(Y)&&Y[0]==="."&&Y[1]==="this")return Y[2];if(Array.isArray(Y)&&Y[0]==="array")return`[${Y.slice(1).map((U)=>{if(U===",")return"";if(U==="...")return"";if(Array.isArray(U)&&U[0]==="...")return`...${U[1]}`;if(Array.isArray(U)&&U[0]==="="&&typeof U[1]==="string")return`${U[1]} = ${this.generate(U[2],"value")}`;if(typeof U==="string")return U;return this.formatParam(U)}).join(", ")}]`;if(Array.isArray(Y)&&Y[0]==="object")return`{${Y.slice(1).map((U)=>{if(Array.isArray(U)&&U[0]==="...")return`...${U[1]}`;if(Array.isArray(U)&&U[0]==="default")return`${U[1]} = ${this.generate(U[2],"value")}`;let[W,A]=U;if(W===A)return W;return`${W}: ${A}`}).join(", ")}}`;return JSON.stringify(Y)}generateBodyWithReturns(Y,F=[],U={}){let{sideEffectOnly:W=!1,autoAssignments:A=[],isConstructor:$=!1,hasExpansionParams:Q=!1}=U,D=this.sideEffectOnly;this.sideEffectOnly=W;let Z=new Set,X=(
|
|
203
|
-
`;if(
|
|
204
|
-
`;let
|
|
205
|
-
`;return}if(!$&&!W&&w&&(
|
|
206
|
-
`;return}}}let
|
|
207
|
-
`;else
|
|
208
|
-
`})};if(
|
|
209
|
-
`;else
|
|
210
|
-
`;for(let
|
|
211
|
-
`;H(
|
|
212
|
-
`;H(
|
|
213
|
-
`}return this.indentLevel--,
|
|
202
|
+
`;this.indentLevel--}}}return Q+=this.indent()+"}",Q}generateSuper(Y,F){if(F.length===0){if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}()`;return"super"}let U=F.map((W)=>this.unwrap(this.generate(W,"value"))).join(", ");if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}(${U})`;return`super(${U})`}generateImport(Y,F,U,W){if(F.length===1){let D=`import(${this.generate(F[0],"value")})`;if(j(W[0],"await")===!0)return`(await ${D})`;return D}let[A,$]=F,Q=this.addJsExtensionAndAssertions($);if(typeof A==="string")return`import ${A} from ${Q}`;if(Array.isArray(A)){if(A[0]==="*"&&A.length===2)return`import * as ${A[1]} from ${Q}`;if(typeof A[0]==="string"&&Array.isArray(A[1])){let Z=A[0],X=A[1];if(X[0]==="*"&&X.length===2)return`import ${Z}, * as ${X[1]} from ${Q}`;let J=(Array.isArray(X)?X:[X]).map((K)=>Array.isArray(K)&&K.length===2?`${K[0]} as ${K[1]}`:K).join(", ");return`import ${Z}, { ${J} } from ${Q}`}return`import { ${A.map((Z)=>Array.isArray(Z)&&Z.length===2?`${Z[0]} as ${Z[1]}`:Z).join(", ")} } from ${Q}`}return`import ${this.generate(A,"value")} from ${Q}`}generateExport(Y,F){let[U]=F;if(Array.isArray(U)&&U.every((W)=>typeof W==="string"))return`export { ${U.join(", ")} }`;if(Array.isArray(U)&&U[0]==="=")return`export const ${U[1]} = ${this.generate(U[2],"value")}`;return`export ${this.generate(U,"statement")}`}generateExportDefault(Y,F){let[U]=F;if(Array.isArray(U)&&U[0]==="=")return`const ${U[1]} = ${this.generate(U[2],"value")};
|
|
203
|
+
export default ${U[1]}`;return`export default ${this.generate(U,"statement")}`}generateExportAll(Y,F){return`export * from ${this.addJsExtensionAndAssertions(F[0])}`}generateExportFrom(Y,F){let[U,W]=F,A=this.addJsExtensionAndAssertions(W);if(Array.isArray(U))return`export { ${U.map((Q)=>Array.isArray(Q)&&Q.length===2?`${Q[0]} as ${Q[1]}`:Q).join(", ")} } from ${A}`;return`export ${U} from ${A}`}generateDoIIFE(Y,F){return`(${this.generate(F[0],"statement")})()`}generateRegex(Y,F){return F.length===0?Y:this.generate(F[0],"value")}generateTaggedTemplate(Y,F){let[U,W]=F,A=this.generate(U,"value"),$=this.generate(W,"value");if($.startsWith("`"))return`${A}${$}`;if($.startsWith('"')||$.startsWith("'"))return`${A}\`${$.slice(1,-1)}\``;return`${A}\`${$}\``}generateString(Y,F){let U="`";for(let W of F)if(W instanceof String)U+=this.extractStringContent(W);else if(typeof W==="string")if(W.startsWith('"')||W.startsWith("'")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive in str:",W);U+=W.slice(1,-1)}else U+=W;else if(Array.isArray(W))if(W.length===1&&typeof W[0]==="string"&&!Array.isArray(W[0])){let A=W[0];U+=/^[\d"']/.test(A)?"${"+this.generate(A,"value")+"}":"${"+A+"}"}else{let A=W.length===1&&Array.isArray(W[0])?W[0]:W;U+="${"+this.generate(A,"value")+"}"}return U+"`"}findPostfixConditional(Y){if(!Array.isArray(Y))return null;let F=Y[0];if((F==="unless"||F==="if")&&Y.length===3)return{type:F,condition:Y[1],value:Y[2]};if(F==="+"||F==="-"||F==="*"||F==="/")for(let U=1;U<Y.length;U++){let W=this.findPostfixConditional(Y[U]);if(W)return W.parentOp=F,W.operandIndex=U,W.otherOperands=Y.slice(1).filter((A,$)=>$!==U-1),W}return null}rebuildWithoutConditional(Y){let F=Array.isArray(Y.value)&&Y.value.length===1?Y.value[0]:Y.value;if(Y.parentOp)return[Y.parentOp,...Y.otherOperands,F];return F}generateDestructuringPattern(Y){return this.formatParam(Y)}generateParamList(Y){let F=Y.findIndex((W)=>Array.isArray(W)&&W[0]==="expansion");if(F!==-1){let W=Y.slice(0,F),A=Y.slice(F+1),$=W.map((Q)=>this.formatParam(Q)).join(", ");return this.expansionAfterParams=A,$?`${$}, ..._rest`:"..._rest"}let U=Y.findIndex((W)=>Array.isArray(W)&&W[0]==="rest");if(U!==-1&&U<Y.length-1){let W=Y.slice(0,U),A=Y[U],$=Y.slice(U+1),Q=W.map((D)=>this.formatParam(D));return this.restMiddleParam={restName:A[1],afterParams:$,beforeCount:W.length},Q.length>0?`${Q.join(", ")}, ...${A[1]}`:`...${A[1]}`}return this.expansionAfterParams=null,this.restMiddleParam=null,Y.map((W)=>this.formatParam(W)).join(", ")}formatParam(Y){if(typeof Y==="string")return Y;if(Y instanceof String)return Y.valueOf();if(Array.isArray(Y)&&Y[0]==="rest")return`...${Y[1]}`;if(Array.isArray(Y)&&Y[0]==="default")return`${Y[1]} = ${this.generate(Y[2],"value")}`;if(Array.isArray(Y)&&Y[0]==="."&&Y[1]==="this")return Y[2];if(Array.isArray(Y)&&Y[0]==="array")return`[${Y.slice(1).map((U)=>{if(U===",")return"";if(U==="...")return"";if(Array.isArray(U)&&U[0]==="...")return`...${U[1]}`;if(Array.isArray(U)&&U[0]==="="&&typeof U[1]==="string")return`${U[1]} = ${this.generate(U[2],"value")}`;if(typeof U==="string")return U;return this.formatParam(U)}).join(", ")}]`;if(Array.isArray(Y)&&Y[0]==="object")return`{${Y.slice(1).map((U)=>{if(Array.isArray(U)&&U[0]==="...")return`...${U[1]}`;if(Array.isArray(U)&&U[0]==="default")return`${U[1]} = ${this.generate(U[2],"value")}`;let[W,A]=U;if(W===A)return W;return`${W}: ${A}`}).join(", ")}}`;return JSON.stringify(Y)}generateBodyWithReturns(Y,F=[],U={}){let{sideEffectOnly:W=!1,autoAssignments:A=[],isConstructor:$=!1,hasExpansionParams:Q=!1}=U,D=this.sideEffectOnly;this.sideEffectOnly=W;let Z=new Set,X=(M)=>{if(typeof M==="string")Z.add(M);else if(Array.isArray(M)){if(M[0]==="rest"||M[0]==="..."){if(typeof M[1]==="string")Z.add(M[1])}else if(M[0]==="default"){if(typeof M[1]==="string")Z.add(M[1])}else if(M[0]==="array"||M[0]==="object")this.collectVarsFromArray(M,Z)}};if(Array.isArray(F))F.forEach(X);let J=this.collectFunctionVariables(Y),K=new Set([...J].filter((M)=>!this.programVars.has(M)&&!this.reactiveVars?.has(M)&&!Z.has(M))),z=["return","throw","break","continue"],R=["for-in","for-of","for-as","while","until","loop"];if(Array.isArray(Y)&&Y[0]==="block"){let M=this.unwrapBlock(Y);if(Q&&this.expansionAfterParams?.length>0)M=[...this.expansionAfterParams.map((P,E)=>{return`const ${typeof P==="string"?P:JSON.stringify(P)} = _rest[_rest.length - ${this.expansionAfterParams.length-E}]`}),...M],this.expansionAfterParams=null;if(this.restMiddleParam){let{restName:I,afterParams:P}=this.restMiddleParam,E=P.length,w=[];if(P.forEach((_,q)=>{let T=typeof _==="string"?_:Array.isArray(_)&&_[0]==="default"?_[1]:JSON.stringify(_);w.push(`const ${T} = ${I}[${I}.length - ${E-q}]`)}),E>0)w.push(`${I} = ${I}.slice(0, -${E})`);M=[...w,...M],this.restMiddleParam=null}this.indentLevel++;let G=`{
|
|
204
|
+
`;if(K.size>0)G+=this.indent()+`let ${Array.from(K).sort().join(", ")};
|
|
205
|
+
`;let O=A.length>0&&M.length>0&&Array.isArray(M[0])&&M[0][0]==="super",H=(I)=>{I.forEach((P,E)=>{let w=E===I.length-1,_=Array.isArray(P)?P[0]:null;if(!w&&_==="comprehension"){let[,N,S,L]=P;G+=this.indent()+this.generateComprehensionAsLoop(N,S,L)+`
|
|
206
|
+
`;return}if(!$&&!W&&w&&(_==="if"||_==="unless")){let[N,S,...L]=P.slice(1),l=(x)=>Array.isArray(x)&&x[0]==="block"&&x.length>2;if(l(S)||L.some(l)){G+=this.generateIfElseWithEarlyReturns(P);return}}if(!$&&!W&&w&&_==="="){let[N,S]=P.slice(1);if(typeof N==="string"&&Array.isArray(S)){let L=S[0];if(L==="comprehension"||L==="for-in"){this.comprehensionTarget=N,G+=this.generate(S,"value"),this.comprehensionTarget=null,G+=this.indent()+`return ${N};
|
|
207
|
+
`;return}}}let q=!$&&!W&&w&&!z.includes(_)&&!R.includes(_)&&!this.hasExplicitControlFlow(P),T=q?"value":"statement",B=this.generate(P,T);if(q)G+=this.indent()+"return "+B+`;
|
|
208
|
+
`;else G+=this.indent()+this.addSemicolon(P,B)+`
|
|
209
|
+
`})};if(O){if(M.length===1&&!$)G+=this.indent()+"return "+this.generate(M[0],"value")+`;
|
|
210
|
+
`;else G+=this.indent()+this.generate(M[0],"statement")+`;
|
|
211
|
+
`;for(let P of A)G+=this.indent()+P+`;
|
|
212
|
+
`;H(M.slice(1))}else{for(let I of A)G+=this.indent()+I+`;
|
|
213
|
+
`;H(M)}if(W&&M.length>0){let I=Array.isArray(M[M.length-1])?M[M.length-1][0]:null;if(!z.includes(I))G+=this.indent()+`return;
|
|
214
|
+
`}return this.indentLevel--,G+=this.indent()+"}",this.sideEffectOnly=D,G}if(this.sideEffectOnly=D,$||this.hasExplicitControlFlow(Y))return`{ ${this.generate(Y,"statement")}; }`;if(Array.isArray(Y)&&(z.includes(Y[0])||R.includes(Y[0])))return`{ ${this.generate(Y,"statement")}; }`;if(W)return`{ ${this.generate(Y,"statement")}; return; }`;return`{ return ${this.generate(Y,"value")}; }`}generateFunctionBody(Y,F=[],U=!1){return this.generateBodyWithReturns(Y,F,{sideEffectOnly:U,hasExpansionParams:this.expansionAfterParams?.length>0})}generateMethodBody(Y,F=[],U=!1,W=[]){return this.generateBodyWithReturns(Y,W,{autoAssignments:F,isConstructor:U})}generateBlockWithReturns(Y){if(!Array.isArray(Y)||Y[0]!=="block")return this.generate(Y,"statement");let F=this.unwrapBlock(Y);return`{
|
|
214
215
|
${this.withIndent(()=>F.map((W,A)=>{let $=A===F.length-1,Q=Array.isArray(W)?W[0]:null,D=$&&!["return","throw","break","continue"].includes(Q),Z=this.generate(W,D?"value":"statement");return D?this.indent()+"return "+Z+";":this.indent()+Z+";"})).join(`
|
|
215
216
|
`)}
|
|
216
217
|
${this.indent()}}`}generateLoopBody(Y){if(!Array.isArray(Y))return`{ ${this.generate(Y,"statement")}; }`;if(Y[0]==="block"||Array.isArray(Y[0])){let F=Y[0]==="block"?Y.slice(1):Y;return`{
|
|
@@ -222,61 +223,61 @@ ${A}${$}${Q.join(`
|
|
|
222
223
|
`)}
|
|
223
224
|
${D}
|
|
224
225
|
${this.indent()}}`}return`{ if (${this.generate(F,"value")}) ${this.generate(Y,"statement")}; }`}generateComprehensionWithTarget(Y,F,U,W){let A="";A+=this.indent()+`${W} = [];
|
|
225
|
-
`;let $=Array.isArray(Y)&&Y[0]==="block"&&Y.length===2?Y[1]:Y;if(F.length===1){let[Q,D,Z,X]=F[0];if(Q==="for-in"){let J=X,
|
|
226
|
-
`}else{let I=this.generate(Z,"value"),
|
|
227
|
-
`:this.indent()+`for (let ${
|
|
228
|
-
`,this.indentLevel++,!
|
|
229
|
-
`}}else A+=this.indent()+`for (const ${
|
|
230
|
-
`;if(this.indentLevel++,U&&U.length>0)A+=this.indent()+`if (${U.map((
|
|
226
|
+
`;let $=Array.isArray(Y)&&Y[0]==="block"&&Y.length===2?Y[1]:Y;if(F.length===1){let[Q,D,Z,X]=F[0];if(Q==="for-in"){let J=X,K=Array.isArray(D)?D:[D],z=K.length===0,[R,M]=z?["_i",null]:K,G=Array.isArray(R)&&(R[0]==="array"||R[0]==="object")?this.generateDestructuringPattern(R):R;if(J&&J!==null){let O=Array.isArray(Z)&&Z[0];if(O instanceof String)O=f(O);if(O===".."||O==="..."){let I=O==="...",[P,E]=Z.slice(1);A+=this.indent()+`for (let ${G} = ${this.generate(P,"value")}; ${G} ${I?"<":"<="} ${this.generate(E,"value")}; ${G} += ${this.generate(J,"value")}) {
|
|
227
|
+
`}else{let I=this.generate(Z,"value"),P=M||"_i",E=this.generate(J,"value"),w=this.isNegativeStep(J);if(A+=w?this.indent()+`for (let ${P} = ${I}.length - 1; ${P} >= 0; ${P} += ${E}) {
|
|
228
|
+
`:this.indent()+`for (let ${P} = 0; ${P} < ${I}.length; ${P} += ${E}) {
|
|
229
|
+
`,this.indentLevel++,!z)A+=this.indent()+`const ${G} = ${I}[${P}];
|
|
230
|
+
`}}else A+=this.indent()+`for (const ${G} of ${this.generate(Z,"value")}) {
|
|
231
|
+
`;if(this.indentLevel++,U&&U.length>0)A+=this.indent()+`if (${U.map((O)=>this.generate(O,"value")).join(" && ")}) {
|
|
231
232
|
`,this.indentLevel++;if(A+=this.indent()+`${W}.push(${this.unwrap(this.generate($,"value"))});
|
|
232
233
|
`,U&&U.length>0)this.indentLevel--,A+=this.indent()+`}
|
|
233
234
|
`;return this.indentLevel--,A+=this.indent()+`}
|
|
234
235
|
`,A}}return this.indent()+`${W} = (() => { /* complex comprehension */ })();
|
|
235
|
-
`}generateComprehensionAsLoop(Y,F,U){let W="";if(F.length===1){let[A,$,Q,D]=F[0];if(A==="for-in"){let Z=D,X=Array.isArray($)?$:[$],J=X.length===0,[
|
|
236
|
-
`,this.indentLevel++,!J)W+=this.indent()+`const ${R} = ${
|
|
237
|
-
`}if(U?.length){if(!
|
|
238
|
-
`,this.indentLevel++,W+=this.indent()+`if (${U.map((
|
|
236
|
+
`}generateComprehensionAsLoop(Y,F,U){let W="";if(F.length===1){let[A,$,Q,D]=F[0];if(A==="for-in"){let Z=D,X=Array.isArray($)?$:[$],J=X.length===0,[K,z]=J?["_i",null]:X,R=Array.isArray(K)&&(K[0]==="array"||K[0]==="object")?this.generateDestructuringPattern(K):K;if(Z&&Z!==null){let M=Array.isArray(Q)&&Q[0];if(M instanceof String)M=f(M);let G=M===".."||M==="...";if(G){let O=M==="...",[H,I]=Q.slice(1);W+=`for (let ${R} = ${this.generate(H,"value")}; ${R} ${O?"<":"<="} ${this.generate(I,"value")}; ${R} += ${this.generate(Z,"value")}) `}else{let O=this.generate(Q,"value"),H=z||"_i",I=this.generate(Z,"value"),P=this.isNegativeStep(Z),E=P&&(Z[1]==="1"||Z[1]===1||f(Z[1])==="1"),w=!P&&(Z==="1"||Z===1||f(Z)==="1");if(E)W+=`for (let ${H} = ${O}.length - 1; ${H} >= 0; ${H}--) `;else if(w)W+=`for (let ${H} = 0; ${H} < ${O}.length; ${H}++) `;else if(P)W+=`for (let ${H} = ${O}.length - 1; ${H} >= 0; ${H} += ${I}) `;else W+=`for (let ${H} = 0; ${H} < ${O}.length; ${H} += ${I}) `;if(W+=`{
|
|
237
|
+
`,this.indentLevel++,!J)W+=this.indent()+`const ${R} = ${O}[${H}];
|
|
238
|
+
`}if(U?.length){if(!G)W+=this.indent();W+=`{
|
|
239
|
+
`,this.indentLevel++,W+=this.indent()+`if (${U.map((O)=>this.generate(O,"value")).join(" && ")}) {
|
|
239
240
|
`,this.indentLevel++,W+=this.indent()+this.generate(Y,"statement")+`;
|
|
240
241
|
`,this.indentLevel--,W+=this.indent()+`}
|
|
241
|
-
`,this.indentLevel--,W+=this.indent()+"}"}else{if(!
|
|
242
|
+
`,this.indentLevel--,W+=this.indent()+"}"}else{if(!G)W+=this.indent();W+=`{
|
|
242
243
|
`,this.indentLevel++,W+=this.indent()+this.generate(Y,"statement")+`;
|
|
243
|
-
`,this.indentLevel--,W+=this.indent()+"}"}if(!
|
|
244
|
-
`+this.indent()+"}";return W}if(
|
|
245
|
-
`,this.indentLevel++,W+=this.indent()+`const ${R} = ${
|
|
244
|
+
`,this.indentLevel--,W+=this.indent()+"}"}if(!G)this.indentLevel--,W+=`
|
|
245
|
+
`+this.indent()+"}";return W}if(z){let M=this.generate(Q,"value");W+=`for (let ${z} = 0; ${z} < ${M}.length; ${z}++) `,W+=`{
|
|
246
|
+
`,this.indentLevel++,W+=this.indent()+`const ${R} = ${M}[${z}];
|
|
246
247
|
`}else{if(W+=`for (const ${R} of ${this.generate(Q,"value")}) `,U?.length)W+=`{
|
|
247
|
-
`,this.indentLevel++,W+=this.indent()+`if (${U.map((
|
|
248
|
+
`,this.indentLevel++,W+=this.indent()+`if (${U.map((M)=>this.generate(M,"value")).join(" && ")}) {
|
|
248
249
|
`,this.indentLevel++,W+=this.indent()+this.generate(Y,"statement")+`;
|
|
249
250
|
`,this.indentLevel--,W+=this.indent()+`}
|
|
250
251
|
`,this.indentLevel--,W+=this.indent()+"}";else W+=`{
|
|
251
252
|
`,this.indentLevel++,W+=this.indent()+this.generate(Y,"statement")+`;
|
|
252
|
-
`,this.indentLevel--,W+=this.indent()+"}";return W}if(U?.length)W+=this.indent()+`if (${U.map((
|
|
253
|
+
`,this.indentLevel--,W+=this.indent()+"}";return W}if(U?.length)W+=this.indent()+`if (${U.map((M)=>this.generate(M,"value")).join(" && ")}) {
|
|
253
254
|
`,this.indentLevel++,W+=this.indent()+this.generate(Y,"statement")+`;
|
|
254
255
|
`,this.indentLevel--,W+=this.indent()+`}
|
|
255
256
|
`;else W+=this.indent()+this.generate(Y,"statement")+`;
|
|
256
257
|
`;return this.indentLevel--,W+=this.indent()+"}",W}if(A==="for-as"){let Z=Array.isArray($)?$:[$],[X]=Z,J=Array.isArray(X)&&(X[0]==="array"||X[0]==="object")?this.generateDestructuringPattern(X):X;if(W+=`for (const ${J} of ${this.generate(Q,"value")}) `,U?.length)W+=`{
|
|
257
|
-
`,this.indentLevel++,W+=this.indent()+`if (${U.map((
|
|
258
|
+
`,this.indentLevel++,W+=this.indent()+`if (${U.map((K)=>this.generate(K,"value")).join(" && ")}) {
|
|
258
259
|
`,this.indentLevel++,W+=this.indent()+this.generate(Y,"statement")+`;
|
|
259
260
|
`,this.indentLevel--,W+=this.indent()+`}
|
|
260
261
|
`,this.indentLevel--,W+=this.indent()+"}";else W+=`{
|
|
261
262
|
`,this.indentLevel++,W+=this.indent()+this.generate(Y,"statement")+`;
|
|
262
|
-
`,this.indentLevel--,W+=this.indent()+"}";return W}if(A==="for-of"){let Z=Array.isArray($)?$:[$],[X,J]=Z,
|
|
263
|
-
`,this.indentLevel++,
|
|
263
|
+
`,this.indentLevel--,W+=this.indent()+"}";return W}if(A==="for-of"){let Z=Array.isArray($)?$:[$],[X,J]=Z,K=D,z=this.generate(Q,"value");if(W+=`for (const ${X} in ${z}) {
|
|
264
|
+
`,this.indentLevel++,K&&!J&&!U?.length)W+=this.indent()+`if (!Object.hasOwn(${z}, ${X})) continue;
|
|
264
265
|
`,W+=this.indent()+this.generate(Y,"statement")+`;
|
|
265
|
-
`;else if(
|
|
266
|
-
`,this.indentLevel++,W+=this.indent()+`const ${J} = ${
|
|
266
|
+
`;else if(K&&J&&U?.length)W+=this.indent()+`if (Object.hasOwn(${z}, ${X})) {
|
|
267
|
+
`,this.indentLevel++,W+=this.indent()+`const ${J} = ${z}[${X}];
|
|
267
268
|
`,W+=this.indent()+`if (${U.map((R)=>this.generate(R,"value")).join(" && ")}) {
|
|
268
269
|
`,this.indentLevel++,W+=this.indent()+this.generate(Y,"statement")+`;
|
|
269
270
|
`,this.indentLevel--,W+=this.indent()+`}
|
|
270
271
|
`,this.indentLevel--,W+=this.indent()+`}
|
|
271
|
-
`;else if(
|
|
272
|
-
`,this.indentLevel++,W+=this.indent()+`const ${J} = ${
|
|
272
|
+
`;else if(K&&J)W+=this.indent()+`if (Object.hasOwn(${z}, ${X})) {
|
|
273
|
+
`,this.indentLevel++,W+=this.indent()+`const ${J} = ${z}[${X}];
|
|
273
274
|
`,W+=this.indent()+this.generate(Y,"statement")+`;
|
|
274
275
|
`,this.indentLevel--,W+=this.indent()+`}
|
|
275
|
-
`;else if(J&&U?.length)W+=this.indent()+`const ${J} = ${
|
|
276
|
+
`;else if(J&&U?.length)W+=this.indent()+`const ${J} = ${z}[${X}];
|
|
276
277
|
`,W+=this.indent()+`if (${U.map((R)=>this.generate(R,"value")).join(" && ")}) {
|
|
277
278
|
`,this.indentLevel++,W+=this.indent()+this.generate(Y,"statement")+`;
|
|
278
279
|
`,this.indentLevel--,W+=this.indent()+`}
|
|
279
|
-
`;else if(J)W+=this.indent()+`const ${J} = ${
|
|
280
|
+
`;else if(J)W+=this.indent()+`const ${J} = ${z}[${X}];
|
|
280
281
|
`,W+=this.indent()+this.generate(Y,"statement")+`;
|
|
281
282
|
`;else if(U?.length)W+=this.indent()+`if (${U.map((R)=>this.generate(R,"value")).join(" && ")}) {
|
|
282
283
|
`,this.indentLevel++,W+=this.indent()+this.generate(Y,"statement")+`;
|
|
@@ -284,11 +285,11 @@ ${this.indent()}}`}return`{ if (${this.generate(F,"value")}) ${this.generate(Y,"
|
|
|
284
285
|
`;else W+=this.indent()+this.generate(Y,"statement")+`;
|
|
285
286
|
`;return this.indentLevel--,W+=this.indent()+"}",W}}return this.generate(["comprehension",Y,F,U],"value")}generateIfElseWithEarlyReturns(Y){let[F,U,W,...A]=Y,$="",Q=F==="unless"?`!${this.generate(U,"value")}`:this.generate(U,"value");$+=this.indent()+`if (${Q}) {
|
|
286
287
|
`,$+=this.withIndent(()=>this.generateBranchWithReturn(W)),$+=this.indent()+"}";for(let D of A)if($+=" else ",Array.isArray(D)&&D[0]==="if"){let[,Z,X,...J]=D;$+=`if (${this.generate(Z,"value")}) {
|
|
287
|
-
`,$+=this.withIndent(()=>this.generateBranchWithReturn(X)),$+=this.indent()+"}";for(let
|
|
288
|
-
`,$+=this.withIndent(()=>this.generateBranchWithReturn(
|
|
288
|
+
`,$+=this.withIndent(()=>this.generateBranchWithReturn(X)),$+=this.indent()+"}";for(let K of J)$+=` else {
|
|
289
|
+
`,$+=this.withIndent(()=>this.generateBranchWithReturn(K)),$+=this.indent()+"}"}else $+=`{
|
|
289
290
|
`,$+=this.withIndent(()=>this.generateBranchWithReturn(D)),$+=this.indent()+"}";return $}generateBranchWithReturn(Y){let F=this.unwrapBlock(Y),U="";for(let W=0;W<F.length;W++){let A=W===F.length-1,$=F[W],Q=Array.isArray($)?$[0]:null;if(A&&!(Q==="return"||Q==="throw"||Q==="break"||Q==="continue"))U+=this.indent()+`return ${this.generate($,"value")};
|
|
290
291
|
`;else U+=this.indent()+this.generate($,"statement")+`;
|
|
291
|
-
`}return U}generateIfAsExpression(Y,F,U){if(this.isMultiStatementBlock(F)||this.hasStatementInBranch(F)||U.some((D)=>this.isMultiStatementBlock(D)||this.hasStatementInBranch(D)||this.hasNestedMultiStatement(D))){let D=this.containsAwait(Y)||this.containsAwait(F)||U.some((X)=>this.containsAwait(X)),Z=`${D?"await ":""}(${D?"async ":""}() => { `;Z+=`if (${this.generate(Y,"value")}) `,Z+=this.generateBlockWithReturns(F);for(let X of U)if(Z+=" else ",Array.isArray(X)&&X[0]==="if"){let[J,
|
|
292
|
+
`}return U}generateIfAsExpression(Y,F,U){if(this.isMultiStatementBlock(F)||this.hasStatementInBranch(F)||U.some((D)=>this.isMultiStatementBlock(D)||this.hasStatementInBranch(D)||this.hasNestedMultiStatement(D))){let D=this.containsAwait(Y)||this.containsAwait(F)||U.some((X)=>this.containsAwait(X)),Z=`${D?"await ":""}(${D?"async ":""}() => { `;Z+=`if (${this.generate(Y,"value")}) `,Z+=this.generateBlockWithReturns(F);for(let X of U)if(Z+=" else ",Array.isArray(X)&&X[0]==="if"){let[J,K,z,...R]=X;Z+=`if (${this.generate(K,"value")}) `,Z+=this.generateBlockWithReturns(z);for(let M of R)if(Z+=" else ",Array.isArray(M)&&M[0]==="if"){let[G,O,H,...I]=M;Z+=`if (${this.generate(O,"value")}) `,Z+=this.generateBlockWithReturns(H),U.push(...I)}else Z+=this.generateBlockWithReturns(M)}else Z+=this.generateBlockWithReturns(X);return Z+" })()"}let A=this.extractExpression(this.unwrapIfBranch(F)),$=this.buildTernaryChain(U),Q=this.generate(Y,"value");if(Array.isArray(Y)&&(Y[0]==="yield"||Y[0]==="await"))Q=`(${Q})`;return`(${Q} ? ${A} : ${$})`}generateIfAsStatement(Y,F,U){let W=`if (${this.unwrap(this.generate(Y,"value"))}) `;W+=this.generate(this.unwrapIfBranch(F),"statement");for(let A of U)W+=" else "+this.generate(this.unwrapIfBranch(A),"statement");return W}generateSwitchCaseBody(Y,F){let U="";if(this.hasExplicitControlFlow(Y))for(let A of this.unwrapBlock(Y))U+=this.indent()+this.generate(A,"statement")+`;
|
|
292
293
|
`;else if(F==="value")if(Array.isArray(Y)&&Y[0]==="block"&&Y.length>2){let A=Y.slice(1);for(let $=0;$<A.length;$++)if($===A.length-1)U+=this.indent()+`return ${this.generate(A[$],"value")};
|
|
293
294
|
`;else U+=this.indent()+this.generate(A[$],"statement")+`;
|
|
294
295
|
`}else U+=this.indent()+`return ${this.extractExpression(Y)};
|
|
@@ -301,11 +302,11 @@ ${this.indent()}}`}return`{ if (${this.generate(F,"value")}) ${this.generate(Y,"
|
|
|
301
302
|
`;this.indentLevel--,W+=this.indent()+"}"}if(F){if(W+=` else {
|
|
302
303
|
`,this.indentLevel++,U==="value")W+=this.indent()+`return ${this.extractExpression(F)};
|
|
303
304
|
`;else for(let A of this.unwrapBlock(F))W+=this.indent()+this.generate(A,"statement")+`;
|
|
304
|
-
`;this.indentLevel--,W+=this.indent()+"}"}return U==="value"?`(() => { ${W} })()`:W}extractExpression(Y){let F=this.unwrapBlock(Y);return F.length>0?this.generate(F[F.length-1],"value"):"undefined"}unwrapBlock(Y){if(!Array.isArray(Y))return[Y];if(Y[0]==="block")return Y.slice(1);if(Array.isArray(Y[0]))return Y;return[Y]}indent(){return this.indentString.repeat(this.indentLevel)}needsSemicolon(Y,F){if(!F||F.endsWith(";"))return!1;if(!F.endsWith("}"))return!0;let U=Array.isArray(Y)?Y[0]:null;return!["def","class","if","unless","for-in","for-of","for-as","while","until","loop","switch","try"].includes(U)}addSemicolon(Y,F){return F+(this.needsSemicolon(Y,F)?";":"")}formatStatements(Y,F="statement"){return Y.map((U)=>this.indent()+this.addSemicolon(U,this.generate(U,F)))}wrapForCondition(Y){if(/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(Y))return Y;if(Y.startsWith("(")&&Y.endsWith(")"))return Y;return`(${Y})`}hasExplicitControlFlow(Y){if(!Array.isArray(Y))return!1;let F=Y[0];if(F==="return"||F==="throw"||F==="break"||F==="continue")return!0;if(F==="block")return Y.slice(1).some((U)=>Array.isArray(U)&&["return","throw","break","continue"].includes(U[0]));if(F==="switch"){let[,,U]=Y;return U?.some((W)=>{return this.unwrapBlock(W[2]).some(($)=>Array.isArray($)&&["return","throw","break","continue"].includes($[0]))})}if(F==="if"||F==="unless"){let[,,U,W]=Y;return this.branchHasControlFlow(U)&&W&&this.branchHasControlFlow(W)}return!1}branchHasControlFlow(Y){if(!Array.isArray(Y))return!1;let F=this.unwrapBlock(Y);if(F.length===0)return!1;let U=F[F.length-1];return Array.isArray(U)&&["return","throw","break","continue"].includes(U[0])}withIndent(Y){this.indentLevel++;let F=Y();return this.indentLevel--,F}isNegativeStep(Y){if(!Array.isArray(Y)||Y.length!==2)return!1;return(
|
|
305
|
-
`);if(
|
|
306
|
-
`))F=F.slice(1);if(
|
|
305
|
+
`;this.indentLevel--,W+=this.indent()+"}"}return U==="value"?`(() => { ${W} })()`:W}extractExpression(Y){let F=this.unwrapBlock(Y);return F.length>0?this.generate(F[F.length-1],"value"):"undefined"}unwrapBlock(Y){if(!Array.isArray(Y))return[Y];if(Y[0]==="block")return Y.slice(1);if(Array.isArray(Y[0]))return Y;return[Y]}indent(){return this.indentString.repeat(this.indentLevel)}needsSemicolon(Y,F){if(!F||F.endsWith(";"))return!1;if(!F.endsWith("}"))return!0;let U=Array.isArray(Y)?Y[0]:null;return!["def","class","if","unless","for-in","for-of","for-as","while","until","loop","switch","try"].includes(U)}addSemicolon(Y,F){return F+(this.needsSemicolon(Y,F)?";":"")}formatStatements(Y,F="statement"){return Y.map((U)=>this.indent()+this.addSemicolon(U,this.generate(U,F)))}wrapForCondition(Y){if(/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(Y))return Y;if(Y.startsWith("(")&&Y.endsWith(")"))return Y;return`(${Y})`}hasExplicitControlFlow(Y){if(!Array.isArray(Y))return!1;let F=Y[0];if(F==="return"||F==="throw"||F==="break"||F==="continue")return!0;if(F==="block")return Y.slice(1).some((U)=>Array.isArray(U)&&["return","throw","break","continue"].includes(U[0]));if(F==="switch"){let[,,U]=Y;return U?.some((W)=>{return this.unwrapBlock(W[2]).some(($)=>Array.isArray($)&&["return","throw","break","continue"].includes($[0]))})}if(F==="if"||F==="unless"){let[,,U,W]=Y;return this.branchHasControlFlow(U)&&W&&this.branchHasControlFlow(W)}return!1}branchHasControlFlow(Y){if(!Array.isArray(Y))return!1;let F=this.unwrapBlock(Y);if(F.length===0)return!1;let U=F[F.length-1];return Array.isArray(U)&&["return","throw","break","continue"].includes(U[0])}withIndent(Y){this.indentLevel++;let F=Y();return this.indentLevel--,F}isNegativeStep(Y){if(!Array.isArray(Y)||Y.length!==2)return!1;return(f(Y[0])??Y[0])==="-"}isNegativeOneLiteral(Y){return Array.isArray(Y)&&Y[0]==="-"&&Y.length===2&&(Y[1]==="1"||Y[1]===1||f(Y[1])==="1")}unwrap(Y){if(typeof Y!=="string")return Y;while(Y.startsWith("(")&&Y.endsWith(")")){let F=0,U=0,W=!0,A=!1;for(let $=0;$<Y.length;$++){if(Y[$]==="(")F++;if(Y[$]===")")F--;if(Y[$]==="["||Y[$]==="{")U++;if(Y[$]==="]"||Y[$]==="}")U--;if(Y[$]===","&&F===1&&U===0)A=!0;if(F===0&&$<Y.length-1){W=!1;break}}if(A)W=!1;if(W)Y=Y.slice(1,-1);else break}return Y}unwrapLogical(Y){if(typeof Y!=="string")return Y;while(Y.startsWith("(")&&Y.endsWith(")")){let F=0,U=1/0;for(let W=1;W<Y.length-1;W++){if(Y[W]==="(")F++;if(Y[W]===")")F--;U=Math.min(U,F)}if(U>=0)Y=Y.slice(1,-1);else break}return Y}unwrapIfBranch(Y){if(Array.isArray(Y)&&Y.length===1&&(!Array.isArray(Y[0])||Y[0][0]!=="block"))return Y[0];return Y}flattenBinaryChain(Y){if(!Array.isArray(Y)||Y.length<3)return Y;let[F,...U]=Y;if(F!=="&&"&&F!=="||")return Y;let W=[],A=($)=>{if(Array.isArray($)&&$[0]===F)for(let Q=1;Q<$.length;Q++)A($[Q]);else W.push($)};for(let $ of U)A($);return[F,...W]}hasStatementInBranch(Y){if(!Array.isArray(Y))return!1;let F=Y[0];if(F==="return"||F==="throw"||F==="break"||F==="continue")return!0;if(F==="block")return Y.slice(1).some((U)=>this.hasStatementInBranch(U));return!1}isMultiStatementBlock(Y){return Array.isArray(Y)&&Y[0]==="block"&&Y.length>2}hasNestedMultiStatement(Y){if(!Array.isArray(Y))return!1;if(Y[0]==="if"){let[F,U,W,...A]=Y;return this.isMultiStatementBlock(W)||A.some(($)=>this.hasNestedMultiStatement($))}return!1}buildTernaryChain(Y){if(Y.length===0)return"undefined";if(Y.length===1)return this.extractExpression(this.unwrapIfBranch(Y[0]));let F=Y[0];if(Array.isArray(F)&&F[0]==="if"){let[U,W,A,...$]=F,Q=this.extractExpression(this.unwrapIfBranch(A)),D=this.buildTernaryChain([...$,...Y.slice(1)]);return`(${this.generate(W,"value")} ? ${Q} : ${D})`}return this.extractExpression(this.unwrapIfBranch(F))}collectVarsFromArray(Y,F){Y.slice(1).forEach((U)=>{if(U===","||U==="...")return;if(typeof U==="string"){F.add(U);return}if(Array.isArray(U)){if(U[0]==="..."&&typeof U[1]==="string")F.add(U[1]);else if(U[0]==="array")this.collectVarsFromArray(U,F);else if(U[0]==="object")this.collectVarsFromObject(U,F)}})}collectVarsFromObject(Y,F){Y.slice(1).forEach((U)=>{if(!Array.isArray(U))return;if(U[0]==="..."&&typeof U[1]==="string"){F.add(U[1]);return}if(U.length>=2){let[W,A,$]=U;if($==="="){if(typeof W==="string")F.add(W)}else if(typeof A==="string")F.add(A);else if(Array.isArray(A)){if(A[0]==="array")this.collectVarsFromArray(A,F);else if(A[0]==="object")this.collectVarsFromObject(A,F)}}})}extractStringContent(Y){let F=f(Y).slice(1,-1),U=j(Y,"indent");if(U)F=F.replace(new RegExp(`\\n${U}`,"g"),`
|
|
306
|
+
`);if(j(Y,"initialChunk")&&F.startsWith(`
|
|
307
|
+
`))F=F.slice(1);if(j(Y,"finalChunk")&&F.endsWith(`
|
|
307
308
|
`))F=F.slice(0,-1);return F}processHeregex(Y){let F="",U=!1,W=0,A=()=>{let $=0,Q=W-1;while(Q>=0&&Y[Q]==="\\")$++,Q--;return $%2===1};while(W<Y.length){let $=Y[W];if($==="["&&!A()){U=!0,F+=$,W++;continue}if($==="]"&&U&&!A()){U=!1,F+=$,W++;continue}if(U){F+=$,W++;continue}if(/\s/.test($)){W++;continue}if($==="#"){if(A()){F+=$,W++;continue}let Q=W-1;while(Q>=0&&Y[Q]==="\\")Q--;if(Q<W-1){F+=$,W++;continue}while(W<Y.length&&Y[W]!==`
|
|
308
|
-
`)W++;continue}F+=$,W++}return F}addJsExtensionAndAssertions(Y){if(Y instanceof String)Y=
|
|
309
|
+
`)W++;continue}F+=$,W++}return F}addJsExtensionAndAssertions(Y){if(Y instanceof String)Y=f(Y);if(typeof Y!=="string")return Y;let U=Y.startsWith('"')||Y.startsWith("'")?Y.slice(1,-1):Y,W=U.startsWith("./")||U.startsWith("../"),A=U,$="";if(W){let Q=U.lastIndexOf("/"),D=Q>=0?U.substring(Q+1):U;if(D.includes(".")){if(D.endsWith(".json"))$=" with { type: 'json' }"}else A=U+".js"}return`'${A}'`+$}containsAwait(Y){if(!Y)return!1;if(Y instanceof String&&j(Y,"await")===!0)return!0;if(typeof Y!=="object")return!1;if(Array.isArray(Y)&&Y[0]==="await")return!0;if(Array.isArray(Y)&&Y[0]==="for-as"&&Y[3]===!0)return!0;if(Array.isArray(Y)&&(Y[0]==="def"||Y[0]==="->"||Y[0]==="=>"||Y[0]==="class"))return!1;if(Array.isArray(Y))return Y.some((F)=>this.containsAwait(F));return!1}containsYield(Y){if(!Y)return!1;if(typeof Y!=="object")return!1;if(Array.isArray(Y)&&(Y[0]==="yield"||Y[0]==="yield-from"))return!0;if(Array.isArray(Y)&&(Y[0]==="def"||Y[0]==="->"||Y[0]==="=>"||Y[0]==="class"))return!1;if(Array.isArray(Y))return Y.some((F)=>this.containsYield(F));return!1}isStaticMember(Y){return Array.isArray(Y)&&Y[0]==="."&&Y[1]==="this"}isComputedMember(Y){return Array.isArray(Y)&&Y[0]==="computed"}extractMemberName(Y){if(this.isStaticMember(Y))return Y[2];if(this.isComputedMember(Y))return`[${this.generate(Y[1],"value")}]`;return Y}isBoundMethod(Y){return Array.isArray(Y)&&Y[0]==="=>"}getReactiveRuntime(){return`// ============================================================================
|
|
309
310
|
// Rip Reactive Runtime
|
|
310
311
|
// A minimal, fine-grained reactivity system
|
|
311
312
|
//
|
|
@@ -518,8 +519,10 @@ if (typeof globalThis !== 'undefined') {
|
|
|
518
519
|
}
|
|
519
520
|
|
|
520
521
|
// === End Reactive Runtime ===
|
|
521
|
-
`}}class
|
|
522
|
-
`),W=U.findIndex((
|
|
522
|
+
`}}class r{constructor(Y={}){this.options={showTokens:!1,showSExpr:!1,...Y}}compile(Y){let F=null,U=Y.split(`
|
|
523
|
+
`),W=U.findIndex((R)=>R==="__DATA__");if(W!==-1){let R=U.slice(W+1);F=R.length>0?R.join(`
|
|
523
524
|
`)+`
|
|
524
525
|
`:"",Y=U.slice(0,W).join(`
|
|
525
|
-
`)}let $=new
|
|
526
|
+
`)}let $=new v().tokenize(Y);if(this.options.showTokens)$.forEach((R)=>console.log(`${R[0].padEnd(12)} ${JSON.stringify(R[1])}`)),console.log();let Q=null;if(this.options.types==="emit"||this.options.types==="check"||this.options.types===!0)Q=Q1($);$=$.filter((R)=>R[0]!=="TYPE_DECL");while($.length>0&&$[0][0]==="TERMINATOR")$.shift();if($.every((R)=>R[0]==="TERMINATOR"))return{tokens:$,sexpr:["program"],code:"",dts:Q,data:F,reactiveVars:{}};g.lexer={tokens:$,pos:0,setInput:function(){},lex:function(){if(this.pos>=this.tokens.length)return 1;let R=this.tokens[this.pos++],M=R[1];if(R.data)M=new String(M),Object.assign(M,R.data);return this.text=M,this.loc=R.loc,R[0]}};let D;try{D=g.parse(Y)}catch(R){if(/\?\s*\([^)]*\?[^)]*:[^)]*\)\s*:/.test(Y)||/\?\s+\w+\s+\?\s+/.test(Y))throw Error("Nested ternary operators are not supported. Use if/else statements instead.");throw R}if(this.options.showSExpr)console.log(y(D,0,!0)),console.log();let Z=null;if(this.options.sourceMap){let R=(this.options.filename||"output")+".js",M=this.options.filename||"input.rip";Z=new Y1(R,M,Y)}let X=new V({dataSection:F,skipReactiveRuntime:this.options.skipReactiveRuntime,skipComponentRuntime:this.options.skipComponentRuntime,reactiveVars:this.options.reactiveVars,sourceMap:Z}),J=X.compile(D),K=Z?Z.toJSON():null,z=Z?Z.toReverseMap():null;if(K&&this.options.sourceMap==="inline")J+=`
|
|
527
|
+
//# sourceMappingURL=data:application/json;base64,${btoa(K)}`;else if(K&&this.options.filename)J+=`
|
|
528
|
+
//# sourceMappingURL=${this.options.filename}.js.map`;return{tokens:$,sexpr:D,code:J,dts:Q,map:K,reverseMap:z,data:F,reactiveVars:X.reactiveVars}}compileToJS(Y){return this.compile(Y).code}compileToSExpr(Y){return this.compile(Y).sexpr}}E1(V);V.prototype.generateEnum=Z1;function H2(Y,F={}){return new r(F).compile(Y)}function t(Y,F={}){return new r(F).compileToJS(Y)}function O2(){return new V({}).getReactiveRuntime()}function q2(){return new V({}).getComponentRuntime()}var v2="3.4.1",g2="2026-02-09@07:06:57GMT",P2=(Y)=>{let F=Y.match(/^[ \t]*(?=\S)/gm),U=Math.min(...(F||[]).map((W)=>W.length));return Y.replace(RegExp(`^[ ]{${U}}`,"gm"),"").trim()};async function T1(){let Y=document.querySelectorAll('script[type="text/rip"]');for(let F of Y){if(F.hasAttribute("data-rip-processed"))continue;try{let U=P2(F.textContent),W=t(U);(0,eval)(W),F.setAttribute("data-rip-processed","true")}catch(U){console.error("Error compiling Rip script:",U),console.error("Script content:",F.textContent)}}}if(typeof document<"u")if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",T1);else T1();function _2(Y){try{let U=t(Y).replace(/^let\s+[^;]+;\s*\n\s*/m,"");U=U.replace(/^const\s+/gm,"var ");let W=(0,eval)(U);if(W!==void 0)globalThis._=W;return W}catch(F){console.error("Rip compilation error:",F.message);return}}if(typeof globalThis<"u")globalThis.rip=_2;export{_2 as rip,T1 as processRipScripts,g as parser,O2 as getReactiveRuntime,q2 as getComponentRuntime,y as formatSExpr,t as compileToJS,H2 as compile,v2 as VERSION,v as Lexer,r as Compiler,V as CodeGenerator,g2 as BUILD_DATE};
|