rip-lang 3.13.119 → 3.13.121
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 +11 -2
- package/docs/RIP-LANG.md +4 -0
- package/docs/dist/rip.js +257 -27
- package/docs/dist/rip.min.js +183 -183
- package/docs/dist/rip.min.js.br +0 -0
- package/docs/ui/accordion.rip +103 -0
- package/docs/ui/alert-dialog.rip +53 -0
- package/docs/ui/autocomplete.rip +115 -0
- package/docs/ui/avatar.rip +37 -0
- package/docs/ui/badge.rip +15 -0
- package/docs/ui/breadcrumb.rip +47 -0
- package/docs/ui/button-group.rip +26 -0
- package/docs/ui/button.rip +23 -0
- package/docs/ui/card.rip +25 -0
- package/docs/ui/carousel.rip +110 -0
- package/docs/ui/checkbox-group.rip +61 -0
- package/docs/ui/checkbox.rip +33 -0
- package/docs/ui/collapsible.rip +50 -0
- package/docs/ui/combobox.rip +130 -0
- package/docs/ui/context-menu.rip +88 -0
- package/docs/ui/date-picker.rip +206 -0
- package/docs/ui/dialog.rip +60 -0
- package/docs/ui/drawer.rip +58 -0
- package/docs/ui/editable-value.rip +82 -0
- package/docs/ui/field.rip +53 -0
- package/docs/ui/fieldset.rip +22 -0
- package/docs/ui/form.rip +39 -0
- package/docs/ui/grid.rip +901 -0
- package/docs/ui/hljs-rip.js +209 -0
- package/docs/ui/index.css +1797 -0
- package/docs/ui/index.html +2385 -0
- package/docs/ui/input-group.rip +28 -0
- package/docs/ui/input.rip +36 -0
- package/docs/ui/label.rip +16 -0
- package/docs/ui/menu.rip +134 -0
- package/docs/ui/menubar.rip +151 -0
- package/docs/ui/meter.rip +36 -0
- package/docs/ui/multi-select.rip +203 -0
- package/docs/ui/native-select.rip +33 -0
- package/docs/ui/nav-menu.rip +126 -0
- package/docs/ui/number-field.rip +162 -0
- package/docs/ui/otp-field.rip +89 -0
- package/docs/ui/pagination.rip +123 -0
- package/docs/ui/popover.rip +93 -0
- package/docs/ui/preview-card.rip +75 -0
- package/docs/ui/progress.rip +25 -0
- package/docs/ui/radio-group.rip +57 -0
- package/docs/ui/resizable.rip +123 -0
- package/docs/ui/scroll-area.rip +145 -0
- package/docs/ui/select.rip +151 -0
- package/docs/ui/separator.rip +17 -0
- package/docs/ui/skeleton.rip +22 -0
- package/docs/ui/slider.rip +165 -0
- package/docs/ui/spinner.rip +17 -0
- package/docs/ui/table.rip +27 -0
- package/docs/ui/tabs.rip +113 -0
- package/docs/ui/textarea.rip +48 -0
- package/docs/ui/toast.rip +87 -0
- package/docs/ui/toggle-group.rip +71 -0
- package/docs/ui/toggle.rip +24 -0
- package/docs/ui/toolbar.rip +38 -0
- package/docs/ui/tooltip.rip +85 -0
- package/package.json +1 -1
- package/src/compiler.js +24 -12
- package/src/components.js +43 -6
- package/src/grammar/grammar.rip +2 -2
- package/src/lexer.js +26 -0
- package/src/parser.js +2 -2
- package/src/sourcemap-utils.js +91 -0
- package/src/typecheck.js +33 -8
- package/src/ui.rip +118 -2
package/docs/dist/rip.min.js
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
(()=>{var{defineProperty:k1,getOwnPropertyNames:
|
|
2
|
-
`):[];for(let K=0;K<f.length;K++){let
|
|
1
|
+
(()=>{var{defineProperty:k1,getOwnPropertyNames:Q3,getOwnPropertyDescriptor:K3}=Object,J3=Object.prototype.hasOwnProperty;function D3(f){return this[f]}var H3=(f)=>{var w=(Y2??=new WeakMap).get(f),U;if(w)return w;if(w=k1({},"__esModule",{value:!0}),f&&typeof f==="object"||typeof f==="function"){for(var _ of Q3(f))if(!J3.call(w,_))k1(w,_,{get:D3.bind(f,_),enumerable:!(U=K3(f,_))||U.enumerable})}return Y2.set(f,w),w},Y2;var M3=(f)=>f;function G3(f,w){this[f]=M3.bind(null,w)}var A2=(f,w)=>{for(var U in w)k1(f,U,{get:w[U],enumerable:!0,configurable:!0,set:G3.bind(w,U)})};var G7={};A2(G7,{rip:()=>V2,processRipScripts:()=>h2,parser:()=>X1,importRip:()=>K1,getStdlibCode:()=>I1,getReactiveRuntime:()=>B1,getComponentRuntime:()=>N1,formatSExpr:()=>F1,compileToJS:()=>Y1,compile:()=>y1,VERSION:()=>L2,Lexer:()=>R1,Compiler:()=>P1,CodeGenerator:()=>$1,BUILD_DATE:()=>T2});function X2(f){let w=f.prototype;w.rewriteTypes=function(){let U=this.tokens,_=(u,$,F)=>{let W=[u,$];if(W.pre=0,W.data=null,W.loc=F?.loc??{r:0,c:0,n:0},W.spaced=!1,W.newLine=!1,W.generated=!0,F)W.origin=F;return W};this.scanTokens((u,$,F)=>{let W=u[0];if(W==="IDENTIFIER"){let Y=F[$+1];if(Y&&Y[0]==="COMPARE"&&Y[1]==="<"&&!Y.spaced){let R=F[$-1]?.[0]==="DEF",A=Z2(F,$+1);if(A&&R){if(!u.data)u.data={};if(u.data.typeParams=D1(A),F.splice($+1,A.length),F[$+1]?.[0]==="("){F[$+1][0]="CALL_START";let Z=1,z=$+2;while(z<F.length&&Z>0){if(F[z][0]==="("||F[z][0]==="CALL_START")Z++;if(F[z][0]===")"||F[z][0]==="CALL_END")Z--;if(Z===0)F[z][0]="CALL_END";z++}}}}}if(W==="TYPE_ANNOTATION"){let Y=F[$-1];if(!Y)return 1;let R=R2(F,$+1),A=D1(R),Z=Y,z="type";if(Y[0]==="CALL_END"||Y[0]===")"){let H=1,J=$-2;while(J>=0&&H>0){let G=F[J][0];if(G==="CALL_END"||G===")")H++;if(G==="CALL_START"||G==="(")H--;J--}if(J>=0)Z=F[J];z="returnType"}else if(Y[0]==="PARAM_END"){let H=$+1+R.length,J=F[H];if(J&&(J[0]==="->"||J[0]==="=>"))Z=J;z="returnType"}else if(Y[0]==="IDENTIFIER"&&$>=2&&F[$-2]?.[0]==="DEF")z="returnType";if(!Z.data)Z.data={};Z.data[z]=A;let X=1+R.length;return F.splice($,X),0}if(W==="IDENTIFIER"&&u[1]==="type"){let Y=F[$-1]?.[0];if(!(!Y||Y==="TERMINATOR"||Y==="INDENT"||Y==="EXPORT"))return 1;let A=$+1,Z=F[A];if(!Z||Z[0]!=="IDENTIFIER")return 1;let z=Z[1],X=Y==="EXPORT",H=X?$-1:$,J=A+1;if(F[J]?.[0]==="COMPARE"&&F[J]?.[1]==="<"&&!F[J].spaced){let K=Z2(F,J);if(K){if(!Z.data)Z.data={};Z.data.typeParams=D1(K),F.splice(J,K.length)}}if(F[J]?.[0]!=="=")return 1;let G=(K)=>{let I=_("TYPE_DECL",z,Z);if(I.data={name:z,typeText:K,exported:X},Z.data?.typeParams)I.data.typeParams=Z.data.typeParams;return I},Q=J+1,q=F[Q];if(q&&(q[0]==="TERMINATOR"||q[0]==="INDENT")){let K=O3(F,Q);if(K)return F.splice(H,K.endIdx-H+1,G(K.typeText)),0}if(q&&q[0]==="INDENT"){let K=m1(F,Q);return F.splice(H,K-H+1,G(z2(F,Q))),0}let O=R2(F,Q);return F.splice(H,Q+O.length-H,G(D1(O))),0}if(W==="INTERFACE"){let Y=$>=1&&F[$-1]?.[0]==="EXPORT",R=$+1,A=F[R];if(!A)return 1;let Z=A[1],z=null,X=R+1;if(F[X]?.[0]==="EXTENDS")z=F[X+1]?.[1],X=X+2;if(F[X]?.[0]==="INDENT"){let H=z2(F,X),J=m1(F,X),G=_("TYPE_DECL",Z,A);G.data={name:Z,kind:"interface",extends:z,typeText:H,exported:Y};let Q=Y?$-1:$,q=J-Q+1;return F.splice(Q,q,G),0}return 1}return 1})}}function R2(f,w){let U=[],_=0;while(w<f.length){let u=f[w],$=u[0],F=$==="("||$==="["||$==="{"||$==="CALL_START"||$==="PARAM_START"||$==="INDEX_START"||$==="COMPARE"&&u[1]==="<",W=$===")"||$==="]"||$==="}"||$==="CALL_END"||$==="PARAM_END"||$==="INDEX_END"||$==="COMPARE"&&u[1]===">";if($==="SHIFT"&&u[1]===">>"&&_>=2){_-=2,U.push(u),w++;continue}if(F){_++,U.push(u),w++;continue}if(W){if(_>0){_--,U.push(u),w++;continue}break}if(_===0){if($==="="||$==="REACTIVE_ASSIGN"||$==="COMPUTED_ASSIGN"||$==="READONLY_ASSIGN"||$==="EFFECT"||$==="TERMINATOR"||$==="INDENT"||$==="OUTDENT"||$==="->"||$===",")break}U.push(u),w++}return U}function D1(f){if(f.length===0)return"";if(f[0]?.[0]==="=>")f.unshift(["","()"]);let w=f.map((U)=>U[1]).join(" ").replace(/\s+/g," ").trim();return w=w.replace(/\s*<\s*/g,"<").replace(/\s*>\s*/g,">").replace(/\s*\[\s*/g,"[").replace(/\s*\]\s*/g,"]").replace(/\s*\(\s*/g,"(").replace(/\s*\)\s*/g,")").replace(/\s*,\s*/g,", ").replace(/\s*=>\s*/g," => ").replace(/ :: /g,": ").replace(/:: /g,": "),w}function Z2(f,w){if(w>=f.length)return null;let U=f[w];if(U[0]!=="COMPARE"||U[1]!=="<")return null;let _=[U],u=1,$=w+1;while($<f.length&&u>0){let F=f[$];if(_.push(F),F[0]==="COMPARE"&&F[1]==="<")u++;else if(F[0]==="COMPARE"&&F[1]===">")u--;$++}return u===0?_:null}function z2(f,w){let U=[],_=w+1,u=1;while(_<f.length&&u>0){let $=f[_];if($[0]==="INDENT"){u++,_++;continue}if($[0]==="OUTDENT"){if(u--,u===0)break;_++;continue}if($[0]==="TERMINATOR"){_++;continue}let F=$[0]==="PROPERTY"||$[0]==="IDENTIFIER"||u===1&&/^[a-zA-Z_$]/.test($[1])&&f[_+1]?.[0]==="TYPE_ANNOTATION";if(u===1&&F){let W=$[1],Y=!1,R=!1;if(_++,W==="readonly"&&f[_]&&(f[_][0]==="PROPERTY"||f[_][0]==="IDENTIFIER"||/^[a-zA-Z_$]/.test(f[_][1])&&f[_+1]?.[0]==="TYPE_ANNOTATION")){if(R=!0,W=f[_][1],f[_].data?.predicate)Y=!0;_++}if($.data?.predicate)Y=!0;if(f[_]?.[1]==="?"&&!f[_]?.spaced)Y=!0,_++;if(f[_]?.[1]===":"||f[_]?.[0]==="TYPE_ANNOTATION")_++;let A=[],Z=0;while(_<f.length){let J=f[_];if(J[0]==="INDENT"){Z++,_++;continue}if(J[0]==="OUTDENT"){if(Z>0){Z--,_++;continue}break}if(J[0]==="TERMINATOR"&&Z===0)break;A.push(J),_++}let z=D1(A),X=R?"readonly ":"",H=Y?"?":"";U.push(`${X}${W}${H}: ${z}`)}else _++}return"{ "+U.join("; ")+" }"}function m1(f,w){let U=0;for(let _=w;_<f.length;_++){if(f[_][0]==="INDENT")U++;if(f[_][0]==="OUTDENT"){if(U--,U===0)return _}}return f.length-1}function O3(f,w){let U=w;if(f[U]?.[0]==="TERMINATOR")U++;if(f[U]?.[0]!=="INDENT")return null;let _=U;U++;while(U<f.length&&f[U][0]==="TERMINATOR")U++;if(!f[U]||f[U][1]!=="|")return null;let u=[],$=1;U=_+1;while(U<f.length&&$>0){let W=f[U];if(W[0]==="INDENT"){$++,U++;continue}if(W[0]==="OUTDENT"){if($--,$===0)break;U++;continue}if(W[0]==="TERMINATOR"){U++;continue}if(W[1]==="|"&&$===1){U++;let Y=[];while(U<f.length){let R=f[U];if(R[0]==="TERMINATOR"||R[0]==="OUTDENT"||R[1]==="|"&&$===1)break;Y.push(R),U++}if(Y.length>0)u.push(D1(Y));continue}U++}if(u.length===0)return null;let F=m1(f,_);return{typeText:u.join(" | "),endIdx:F}}function n1(f,w=null,U=""){let _=[],u=0,$=" ",F=()=>$.repeat(u),W=!1,Y=new Set,R=!1,A=!1,Z=!1,z=typeof U==="string"?U.split(`
|
|
2
|
+
`):[];for(let K=0;K<f.length;K++){let I=f[K][0];if(I==="REACTIVE_ASSIGN")R=!0;else if(I==="COMPUTED_ASSIGN")A=!0}let X=(K,I,E)=>{if(I.startsWith("{ ")&&I.endsWith(" }")){let D=0,M=-1;for(let P=0;P<I.length;P++)if(I[P]==="{")D++;else if(I[P]==="}"){if(D--,D===0){M=P;break}}if(M===I.length-1){let P=I.slice(2,-2).split("; ").filter((S)=>S.trim());if(P.length>0){_.push(`${F()}${K}{`),u++;for(let S of P)_.push(`${F()}${S};`);u--,_.push(`${F()}}${E}`);return}}}_.push(`${F()}${K}${I}${E}`)},H=(K,I)=>{I++;let E=0;while(I<K.length){let D=K[I];if(D[0]==="("||D[0]==="["||D[0]==="{")E++;if(D[0]===")"||D[0]==="]"||D[0]==="}"){if(E===0)break;E--}if(E===0&&D[1]===",")break;I++}return I},J=(K,I)=>{let E=[],D=!1,M=I+1,P=1;while(M<K.length&&P>0){if(K[M][0]==="{")P++;if(K[M][0]==="}")P--;if(P<=0){M++;break}if(K[M][0]==="..."||K[M][0]==="SPREAD"){if(M++,K[M]?.[0]==="IDENTIFIER")E.push({kind:"rest",propName:K[M][1]}),M++;continue}if(K[M][0]==="PROPERTY"&&K[M+1]?.[0]===":"){let B=K[M][1];if(M+=2,K[M]?.[0]==="{"){let h=J(K,M);if(h.hasAnyType)D=!0;E.push({kind:"nested-obj",propName:B,inner:h}),M=h.endJ;continue}if(K[M]?.[0]==="["){let h=G(K,M);if(h.hasAnyType)D=!0;E.push({kind:"nested-arr",propName:B,inner:h}),M=h.endJ;continue}if(K[M]?.[0]==="IDENTIFIER"){let h=K[M][1],C=K[M].data?.type;if(C)D=!0;let L=K[M+1]?.[0]==="=";if(E.push({kind:"rename",propName:B,localName:h,type:C?u1(C):null,hasDefault:L}),M++,L)M=H(K,M)}continue}if(K[M][0]==="IDENTIFIER"){let B=K[M][1],h=K[M].data?.type;if(h)D=!0;let C=K[M+1]?.[0]==="=";if(E.push({kind:"simple",propName:B,type:h?u1(h):null,hasDefault:C}),M++,C)M=H(K,M);continue}M++}let S=[],N=[];for(let B of E)if(B.kind==="rest")S.push(`...${B.propName}`),N.push("[key: string]: unknown");else if(B.kind==="nested-obj"||B.kind==="nested-arr")S.push(`${B.propName}: ${B.inner.patternStr}`),N.push(`${B.propName}: ${B.inner.typeStr}`);else if(B.kind==="rename")S.push(`${B.propName}: ${B.localName}`),N.push(`${B.propName}${B.hasDefault?"?":""}: ${B.type||"any"}`);else S.push(B.propName),N.push(`${B.propName}${B.hasDefault?"?":""}: ${B.type||"any"}`);return{patternStr:`{${S.join(", ")}}`,typeStr:`{${N.join(", ")}}`,endJ:M,hasAnyType:D}},G=(K,I)=>{let E=[],D=[],M=!1,P=I+1,S=1;while(P<K.length&&S>0){if(K[P][0]==="[")S++;if(K[P][0]==="]")S--;if(S>0&&K[P][0]==="IDENTIFIER"){let N=K[P][1],B=K[P].data?.type;if(E.push(N),D.push(B?u1(B):null),B)M=!0}P++}return{patternStr:`[${E.join(", ")}]`,typeStr:`[${D.map((N)=>N||"any").join(", ")}]`,endJ:P,hasAnyType:M}},Q=(K,I)=>{let E=[],D=[],M=I,P=K[M]?.[0];if(P!=="CALL_START"&&P!=="PARAM_START")return{params:E,fields:D,endIdx:M};let S=P==="CALL_START"?"CALL_END":"PARAM_END";M++;let N=0;while(M<K.length&&!(K[M][0]===S&&N===0)){let B=K[M];if(B[1]===","&&N===0){M++;continue}if(B[0]==="{"||B[0]==="["||B[0]==="CALL_START"||B[0]==="PARAM_START"||B[0]==="INDEX_START")N++;if(B[0]==="}"||B[0]==="]"||B[0]==="CALL_END"||B[0]==="PARAM_END"||B[0]==="INDEX_END"){N--,M++;continue}if(B[0]==="@"){if(M++,K[M]?.[0]==="PROPERTY"||K[M]?.[0]==="IDENTIFIER"){let h=K[M][1],C=K[M].data?.type;if(E.push(C?`${h}: ${u1(C)}`:h),C)D.push({name:h,type:u1(C)});M++}continue}if(B[0]==="SPREAD"||B[1]==="..."){if(M++,K[M]?.[0]==="IDENTIFIER"){let h=K[M][1],C=K[M].data?.type;E.push(C?`...${h}: ${u1(C)}`:`...${h}: any[]`),M++}continue}if(B[0]==="{"){N--;let h=J(K,M);if(M=h.endJ,h.hasAnyType)E.push(`${h.patternStr}: ${h.typeStr}`);else E.push(h.patternStr);continue}if(B[0]==="["){N--;let h=G(K,M);if(M=h.endJ,h.hasAnyType)E.push(`${h.patternStr}: ${h.typeStr}`);else E.push(h.patternStr);continue}if(B[0]==="IDENTIFIER"){let h=B[1],C=B.data?.type,L=!1;if(K[M+1]?.[0]==="=")L=!0;let a=L||B.data?.predicate;if(C)E.push(`${h}${a?"?":""}: ${u1(C)}`);else E.push(h);if(M++,L){M++;let T=0;while(M<K.length){let V=K[M];if(V[0]==="("||V[0]==="["||V[0]==="{")T++;if(V[0]===")"||V[0]==="]"||V[0]==="}")T--;if(T===0&&(V[1]===","||V[0]==="CALL_END"))break;M++}}continue}M++}return{params:E,fields:D,endIdx:M}};for(let K=0;K<f.length;K++){let I=f[K],E=I[0],D=!1;if(E==="EXPORT"){if(D=!0,K++,K>=f.length)break;if(I=f[K],E=I[0],E==="DEFAULT"){if(K++,K>=f.length)break;if(I=f[K],E=I[0],E==="IDENTIFIER")_.push(`${F()}export default ${I[1]};`);continue}}if(E==="IMPORT"){let M=[],P=K+1;while(P<f.length&&f[P][0]!=="TERMINATOR")M.push(f[P]),P++;let S="import "+M.map((N)=>N[1]).join(" ");S=S.replace(/\s+/g," ").replace(/\s*,\s*/g,", ").replace(/\{\s*/g,"{ ").replace(/\s*\}/g," }").trim(),_.push(`${F()}${S};`),K=P;continue}if(E==="TYPE_DECL"){let M=I.data;if(!M)continue;let P=D||M.exported?"export ":"",S=M.typeParams||"";if(M.kind==="interface"){let N=M.extends?` extends ${M.extends}`:"";X(`${P}interface ${M.name}${S}${N} `,M.typeText||"{}","")}else{let N=u1(M.typeText||"");X(`${P}type ${M.name}${S} = `,N,";")}continue}if(E==="ENUM"){let M=D?"export ":"",P=f[K+1];if(!P)continue;let S=P[1],N=K+2;if(f[N]?.[0]==="INDENT"){_.push(`${F()}${M}enum ${S} {`),u++,N++;let B=[];while(N<f.length&&f[N][0]!=="OUTDENT"){if(f[N][0]==="TERMINATOR"){N++;continue}if(f[N][0]==="IDENTIFIER"){let h=f[N][1];if(N++,f[N]?.[1]==="="){N++;let C=f[N]?.[1];B.push(`${h} = ${C}`),N++}else B.push(h)}else N++}for(let h=0;h<B.length;h++){let C=h<B.length-1?",":"";_.push(`${F()}${B[h]}${C}`)}u--,_.push(`${F()}}`)}continue}if(E==="CLASS"){let M=D?"export ":"",P=f[K+1];if(!P)continue;let S=P[1],N="",B=K+2;if(f[B]?.[0]==="EXTENDS")N=` extends ${f[B+1]?.[1]||""}`,B+=2;if(f[B]?.[0]==="INDENT"){let h=!1,C=B+1;while(C<f.length&&f[C][0]!=="OUTDENT"){if(f[C].data?.type||f[C].data?.returnType){h=!0;break}C++}if(h)_.push(`${F()}${M}declare class ${S}${N} {`),W=!0,Y.clear(),u++}continue}if(E==="DEF"){let M=f[K+1];if(!M)continue;let P=M[1],S=M.data?.returnType;if(!S&&M.data?.await===!0)S="void";let N=M.data?.typeParams||"",{params:B,endIdx:h}=Q(f,K+2);if(S||B.some((C)=>C.includes(":"))){let C=D?"export ":"",L=W?"":D?"":"declare ",a=S?`: ${u1(S)}`:"",T=B.join(", ");if(W)_.push(`${F()}${P}${N}(${T})${a};`);else _.push(`${F()}${C}${L}function ${P}${N}(${T})${a};`)}K=h;continue}if(E==="{"&&W){let M=K+1,P=1;while(M<f.length&&P>0){let S=f[M];if(S[0]==="{"){P++,M++;continue}if(S[0]==="}"){P--,M++;continue}if(S[0]==="TERMINATOR"){M++;continue}if(S[0]==="PROPERTY"&&P===1){let N=S[1],B=S.data?.returnType;if(M++,f[M]?.[1]===":")M++;let h=[],C=[];if(f[M]?.[0]==="PARAM_START"){let L=Q(f,M);h=L.params,C=L.fields,M=L.endIdx+1}if(f[M]?.[0]==="->"||f[M]?.[0]==="=>")M++;if(f[M]?.[0]==="INDENT"){let L=1;M++;while(M<f.length&&L>0){if(f[M][0]==="INDENT")L++;if(f[M][0]==="OUTDENT")L--;M++}}if(B||h.some((L)=>L.includes(":"))){let L=B?`: ${u1(B)}`:"",a=h.join(", ");if(N==="constructor"&&C.length){for(let T of C)if(!Y.has(T.name))_.push(`${F()}${T.name}: ${T.type};`),Y.add(T.name)}_.push(`${F()}${N}(${a})${L};`)}continue}M++}K=M-1;continue}if(E==="INDENT")continue;if(E==="OUTDENT"){if(W)u--,_.push(`${F()}}`),W=!1;continue}if(E==="IDENTIFIER"&&!W&&f[K+1]?.[0]==="="&&(f[K+2]?.[0]==="PARAM_START"||f[K+2]?.[0]==="(")){let M=I[1],P=K+2,{params:S}=Q(f,P),N=P,B=0;while(N<f.length){if(f[N][0]==="PARAM_START"||f[N][0]==="(")B++;if(f[N][0]==="PARAM_END"||f[N][0]===")")B--;if(B===0&&(f[N][0]==="->"||f[N][0]==="=>"))break;N++}let h=f[N]?.data?.returnType;if(h||S.some((C)=>C.includes(":"))){let C=D?"export ":"",L=D?"":"declare ",a=h?`: ${u1(h)}`:"",T=S.join(", ");_.push(`${F()}${C}${L}function ${M}(${T})${a};`);continue}}if(E==="IDENTIFIER"&&I.data?.type){let M=I[1],P=u1(I.data.type),S=f[K+1];if(S){let N=D?"export ":"",B=D?"":"declare ";if(S[0]==="READONLY_ASSIGN")_.push(`${F()}${N}${B}const ${M}: ${P};`);else if(S[0]==="REACTIVE_ASSIGN")R=!0,_.push(`${F()}${N}${B}const ${M}: Signal<${P}>;`);else if(S[0]==="COMPUTED_ASSIGN")A=!0,_.push(`${F()}${N}${B}const ${M}: Computed<${P}>;`);else if(S[0]==="EFFECT")_.push(`${F()}${N}${B}const ${M}: () => void;`);else if(S[0]==="="){let h=K+2;if(f[h]?.[0]==="PARAM_START"){let L=1,a=h+1;while(a<f.length&&L>0){if(f[a][0]==="PARAM_START")L++;if(f[a][0]==="PARAM_END")L--;a++}h=a}let C=f[h];if(C&&(C[0]==="->"||C[0]==="=>")&&C.data?.returnType){let L=u1(C.data.returnType),{params:a}=Q(f,K+2),T=a.join(", ");_.push(`${F()}${N}${B}function ${M}(${T}): ${L};`)}else if(W)_.push(`${F()}${M}: ${P};`),Y.add(M);else _.push(`${F()}${N}let ${M}: ${P};`)}else if(W)_.push(`${F()}${M}: ${P};`),Y.add(M)}else if(W)_.push(`${F()}${M}: ${P};`)}}let q=new Set;if(w){if(Z=i1(w,_,F,u,q,z)||Z,q.size>0)for(let K=_.length-1;K>=0;K--){let I=_[K].match(/(?:declare |export )*(?:const|let) (\w+)/);if(I&&q.has(I[1]))_.splice(K,1)}}if(_.length===0)return null;let O=[];if(Z)O.push("type __RipElementMap = HTMLElementTagNameMap & Omit<SVGElementTagNameMap, keyof HTMLElementTagNameMap>;"),O.push("type __RipTag = keyof __RipElementMap;"),O.push("type __RipAttrKeys<T> = { [K in keyof T]-?: K extends 'style' ? never : T[K] extends (...args: any[]) => any ? never : K }[keyof T] & string;"),O.push("type __RipEvents = { [K in keyof HTMLElementEventMap as `@${K}`]?: ((event: HTMLElementEventMap[K]) => void) | null };"),O.push("type __RipProps<K extends __RipTag> = { [P in __RipAttrKeys<__RipElementMap[K]>]?: __RipElementMap[K][P] } & __RipEvents & { class?: string; style?: string; [k: `data-${string}`]: any; [k: `aria-${string}`]: any };");if(R)O.push("interface Signal<T> { value: T; read(): T; lock(): Signal<T>; free(): Signal<T>; kill(): T; }"),O.push("declare function __state<T>(value: T | Signal<T>): Signal<T>;");if(A)O.push("interface Computed<T> { readonly value: T; read(): T; lock(): Computed<T>; free(): Computed<T>; kill(): T; }"),O.push("declare function __computed<T>(fn: () => T): Computed<T>;");if(R||A)O.push("declare function __effect(fn: () => void | (() => void)): () => void;");if(O.length>0)O.push("");return O.concat(_).join(`
|
|
3
3
|
`)+`
|
|
4
|
-
`}function u1(f){if(!f)return f;return f=f.replace(/::/g,":"),f=f.replace(/(\w+(?:<[^>]+>)?)\?\?/g,"$1 | null | undefined"),f=f.replace(/(\w+(?:<[^>]+>)?)\?(?![.:])/g,"$1 | undefined"),f=f.replace(/(\w+(?:<[^>]+>)?)\!/g,"NonNullable<$1>"),f}function i1(f,
|
|
5
|
-
`),f=f.replace(
|
|
6
|
-
`+f;return f}advance(f){let
|
|
7
|
-
`)this.row++,this.col=0;else this.col++;this.pos+=f}emit(f,
|
|
8
|
-
`)return 0;let
|
|
9
|
-
`);if(this.isUnfinished()){if(
|
|
10
|
-
`,{len:0})}isUnfinished(){if(this.inRenderBlock&&
|
|
11
|
-
`)u--;u++;let $=this.chunk.slice(u,
|
|
12
|
-
`)}if($===0&&_?.length===3)Y=Y.replace(/^\n/,"");if($===f.length-1&&_?.length===3)Y=Y.replace(/\n[^\S\n]*$/,"");if(u)Y=Y.replace(/\\([nrtbfv0\\'"`xu])/g,"\\\\$1");this.emit("STRING",`"${Y}"`,{len:w.length,data:{quote:_}})}}if(f.length>1)this.emit("STRING_END",")",{len:_?.length||0});return U}numberToken(){let f=c3.exec(this.chunk);if(!f)return 0;let _=f[0],F=_.length,U={row:this.row,col:this.col};if(/^0[BOX]/.test(_))F1(`radix prefix in '${_}' must be lowercase`,{...U,col:U.col+1});if(/^0\d*[89]/.test(_))F1(`decimal literal '${_}' must not be prefixed with '0'`,{...U,len:F});if(/^0\d+/.test(_))F1(`octal literal '${_}' must be prefixed with '0o'`,{...U,len:F});let u=f7(_),$=u===1/0?"INFINITY":"NUMBER",W={parsedValue:u};if($==="INFINITY")W.original=_;return this.emit($,_,{len:F,data:W}),F}regexToken(){let f=this.matchWithInterpolations(a3,"///");if(f){let{tokens:Z,index:A}=f,[R]=E2.exec(this.chunk.slice(A)),z=A+R.length;if(Z.length===1||!Z.some((Q)=>Q[0]==="TOKENS")){let Q=(Z[0]?.[1]||"").replace(/(?<!\\)\//g,"\\/");this.emit("REGEX",`/${Q}/${R}`,{len:z,data:{delimiter:"///",heregex:{flags:R}}})}else{if(this.emit("REGEX_START","(",{len:0}),this.emit("IDENTIFIER","RegExp",{len:0}),this.emit("CALL_START","(",{len:0}),this.mergeInterpolationTokens(Z,{quote:"///",endOffset:z-R.length}),R)this.emit(",",",",{len:0}),this.emit("STRING",`"${R}"`,{len:R.length});this.emit(")",")",{len:0}),this.emit("REGEX_END",")",{len:0})}return z}let _=r3.exec(this.chunk);if(!_)return 0;let[F,U,u]=_,$=this.prev();if($){if($.spaced&&h1.has($[0])&&(!u||/^\/=?\s/.test(F)))return 0;if(T3.has($[0])&&!($.spaced&&h1.has($[0])))return 0}if(!u)F1("missing / (unclosed regex)",{row:this.row,col:this.col});let W=F.length,[w]=E2.exec(this.chunk.slice(W)),Y=W+w.length;if(!o3.test(w))F1(`invalid regular expression flags ${w}`,{row:this.row,col:this.col+W,len:w.length});return this.emit("REGEX",`/${U}/${w}`,{len:Y,data:{delimiter:"/"}}),Y}jsToken(){if(this.chunk[0]!=="`")return 0;let f=t3.exec(this.chunk)||s3.exec(this.chunk);if(!f)return 0;let _=f[1],F=f[0].length;return this.emit("JS",_,{len:F,data:{here:f[0].startsWith("```")}}),F}wordLiteral(){if(this.chunk[0]!=="%"||this.chunk[1]!=="w")return 0;let f=this.chunk[2];if(!f||/\s/.test(f))return 0;let F={"[":"]","(":")","{":"}","<":">"}[f]||f,U=F!==f,u=1,$=3;while($<this.chunk.length&&u>0){let Z=this.chunk[$];if(Z==="\\"){$+=2;continue}if(U&&Z===f)u++;if(Z===F)u--;if(u>0)$++}if(u!==0)return 0;let W=this.chunk.slice(3,$),w=$+1,Y=[];if(W.trim()){let Z=W.trim().split(/(?<!\\)\s+/);for(let A of Z)Y.push(A.replace(/\\ /g," "))}this.emit("[","[",{len:w});for(let Z=0;Z<Y.length;Z++){if(Z>0)this.emit(",",",");this.emit("STRING",`"${Y[Z]}"`)}return this.emit("]","]"),w}literalToken(){let f=this.wordLiteral();if(f)return f;let _=b3.exec(this.chunk),F=_?_[0]:this.chunk.charAt(0),U=F,u=this.prev();if(l3.test(F))this.tagParameters();if(F==="="&&u&&u[1]==="."&&!u.spaced){let $=this.tokens,W=$.length-2;while(W>=1&&$[W][0]==="PROPERTY"&&$[W-1]?.[1]===".")W-=2;if(W>=0&&($[W][0]==="IDENTIFIER"||$[W][0]===")"||$[W][0]==="]")){let w=$.slice(W,$.length-1);u[0]="=",u[1]="=";for(let Y of w)this.tokens.push(C1(Y[0],Y[1],{pre:0,row:Y[2],col:Y[3],len:Y[4]}));return this.tokens.push(C1(".",".",{pre:0,row:this.row,col:this.col,len:1})),F.length}}if(u&&(F==="="||q2.has(F))){if(F==="="&&(u[1]==="||"||u[1]==="&&"||u[1]==="??")&&!u.spaced)return u[0]="COMPOUND_ASSIGN",u[1]+="=",F.length}if(F==="("&&u?.[0]==="IMPORT")u[0]="DYNAMIC_IMPORT";if(F==="{"&&this.seenImport)this.importSpecifierList=!0;if(F==="}"&&this.importSpecifierList)this.importSpecifierList=!1;if(F==="{"&&u?.[0]==="EXPORT")this.exportSpecifierList=!0;if(F==="}"&&this.exportSpecifierList)this.exportSpecifierList=!1;if(F===";")this.seenFor=this.seenImport=this.seenExport=!1,this.inTypeAnnotation=!1,U="TERMINATOR";else if(F==="|>")U="PIPE";else if(F==="::"&&/^[a-zA-Z_$]/.test(this.chunk[2]||""))return this.emit(".","."),this.emit("PROPERTY","prototype"),this.emit(".","."),2;else if(F==="::")U="TYPE_ANNOTATION",this.inTypeAnnotation=!0;else if(F==="~=")U="COMPUTED_ASSIGN";else if(F===":=")U="REACTIVE_ASSIGN";else if(F===":>")U="RIGHTWARD_ASSIGN";else if(F==="<=>")U="BIND";else if(F==="~>")U="EFFECT",this.inTypeAnnotation=!1;else if(F==="=!")U="READONLY_ASSIGN",this.inTypeAnnotation=!1;else if(F==="*>"&&(!u||u[0]==="TERMINATOR"||u[0]==="INDENT"||u[0]==="OUTDENT")&&(/^[a-zA-Z_$]/.test(this.chunk[2]||"")||this.chunk[2]==="@")){let $=this.chunk.slice(2),W=/^@(\s*)=(?!=)/.exec($);if(W){let Y=W[1];this.emit("IDENTIFIER","Object"),this.emit(".",".");let Z=this.emit("PROPERTY","assign");return Z.spaced=!0,this.emit("@","@"),this.emit(",",","),3+Y.length+1}let w=/^(@?(?:(?!\s)[$\w\x7f-\uffff])+(?:\.[a-zA-Z_$][\w]*)*)(\s*)=(?!=)/.exec($);if(w){let Y=w[1],Z=w[2],A=Y[0]==="@",R=A?Y.slice(1):Y,z=R?R.split("."):[],Q=()=>{if(A){if(this.emit("@","@"),z.length>0)this.emit("PROPERTY",z[0])}else this.emit("IDENTIFIER",z[0]);for(let J=1;J<z.length;J++)this.emit(".","."),this.emit("PROPERTY",z[J])};Q(),this.emit("=","="),this.emit("IDENTIFIER","Object"),this.emit(".","."),this.emit("PROPERTY","assign"),this.emit("CALL_START","("),Q(),this.emit("COMPOUND_ASSIGN","??="),this.emit("{","{"),this.emit("}","}"),this.emit(",",",");let D=this.prev();return D.mergeClose=!0,2+Y.length+Z.length+1}}else if(F==="*"&&u?.[0]==="EXPORT")U="EXPORT_ALL";else if(V3.has(F))U="MATH";else if(h3.has(F))U="COMPARE";else if(q2.has(F))U="COMPOUND_ASSIGN";else if(j3.has(F))U="UNARY_MATH";else if(C3.has(F))U="SHIFT";else if(F==="?"&&u?.spaced)U="TERNARY";else if(F==="!?"&&u&&!u.spaced)U="DEFINED";else if(F==="?!"&&u&&!u.spaced)U="PRESENCE";else if(F==="?"&&(this.chunk[1]==="["||this.chunk[1]==="("))U="?.";else if(u){if(F==="("&&!u.spaced&&h1.has(u[0])){if(u[0]==="?.")u[0]="ES6_OPTIONAL_CALL";U="CALL_START"}if(F==="["&&!u.spaced&&I2.has(u[0])){if(U="INDEX_START",u[0]==="?.")u[0]="ES6_OPTIONAL_INDEX"}}if(this.inTypeAnnotation&&(F==="="||U==="COMPOUND_ASSIGN"))this.inTypeAnnotation=!1;if(F==="("||F==="{"||F==="[")this.ends.push({tag:B3[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 f=this.tokens.length-1,_=[];this.tokens[f][0]="PARAM_END";while(f-- >0){let F=this.tokens[f];if(F[0]===")")_.push(F);else if(F[0]==="("||F[0]==="CALL_START")if(_.length)_.pop();else if(F[0]==="(")return F[0]="PARAM_START",this.tagDoIife(f-1);else{this.tokens[this.tokens.length-1][0]="CALL_END";return}}}tagDoIife(f){let _=this.tokens[f??this.tokens.length-1];if(_?.[0]==="DO")_[0]="DO_IIFE"}rewrite(f){return this.tokens=f,this.removeLeadingNewlines(),this.closeMergeAssignments(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.rewriteRender?.(),this.rewriteTypes(),this.tagPostfixConditionals(),this.rewriteTaggedTemplates(),this.addImplicitBracesAndParens(),this.addImplicitCallCommas(),this.tokens}removeLeadingNewlines(){let f=0;while(this.tokens[f]?.[0]==="TERMINATOR")f++;if(f>0)this.tokens.splice(0,f)}closeOpenCalls(){this.scanTokens((f,_)=>{if(f[0]==="CALL_START")this.detectEnd(_+1,(F)=>F[0]===")"||F[0]==="CALL_END",(F)=>F[0]="CALL_END");return 1})}closeOpenIndexes(){this.scanTokens((f,_)=>{if(f[0]==="INDEX_START")this.detectEnd(_+1,(F)=>F[0]==="]"||F[0]==="INDEX_END",(F,U)=>{if(this.tokens[U+1]?.[0]===":")f[0]="[",F[0]="]";else F[0]="INDEX_END"});return 1})}normalizeLines(){let f=null,_=null,F=null,U=($,W)=>{return $[1]!==";"&&L3.has($[0])&&!($[0]==="TERMINATOR"&&D2.has(this.tokens[W+1]?.[0]))&&!($[0]==="ELSE"&&f!=="THEN")||$[0]==="INDENT"&&!$.generated&&(f==="->"||f==="=>")||$[0]===","&&(f==="->"||f==="=>")&&!this.commaInImplicitCall(W)&&!this.commaInImplicitObject(W)||M2.has($[0])&&(this.tokens[W-1]?.newLine||this.tokens[W-1]?.[0]==="OUTDENT")},u=($,W)=>{let w=this.tokens[W-1]?.[0]===","?W-1:W;this.tokens.splice(w,0,F)};this.scanTokens(($,W,w)=>{let[Y]=$;if(Y==="TERMINATOR"){if(this.tokens[W+1]?.[0]==="ELSE"&&this.tokens[W-1]?.[0]!=="OUTDENT")return w.splice(W,1,...this.makeIndentation()),1;if(D2.has(this.tokens[W+1]?.[0]))return w.splice(W,1),0}if(Y==="CATCH")for(let Z=1;Z<=2;Z++){let A=this.tokens[W+Z]?.[0];if(A==="OUTDENT"||A==="TERMINATOR"||A==="FINALLY")return w.splice(W+Z,0,...this.makeIndentation()),2+Z}if((Y==="->"||Y==="=>")&&(this.tokens[W+1]?.[0]===","||this.tokens[W+1]?.[0]==="]"))return[_,F]=this.makeIndentation(),w.splice(W+1,0,_,F),1;if(H2.has(Y)&&this.tokens[W+1]?.[0]!=="INDENT"&&!(Y==="ELSE"&&this.tokens[W+1]?.[0]==="IF")&&!(Y==="ELSE"&&this.tokens[W-1]?.[0]!=="OUTDENT")){if(f=Y,[_,F]=this.makeIndentation(),Y==="THEN")_.fromThen=!0;if(w.splice(W+1,0,_),this.detectEnd(W+2,U,u),Y==="THEN")w.splice(W,1);return 1}return 1})}tagPostfixConditionals(){let f=null,_=(U,u)=>{return U[0]==="TERMINATOR"||U[0]==="INDENT"&&!H2.has(this.tokens[u-1]?.[0])},F=(U)=>{if(U[0]!=="INDENT"||U.generated&&!U.fromThen)f[0]="POST_"+f[0]};this.scanTokens((U,u)=>{if(U[0]!=="IF"&&U[0]!=="UNLESS")return 1;if(this.tokens[u-1]?.[0]==="INTERPOLATION_START")return 1;return f=U,this.detectEnd(u+1,_,F),1})}rewriteTaggedTemplates(){let f=this.tokens;for(let _=f.length-2;_>=0;_--)if(f[_][0]==="IDENTIFIER"&&f[_][1]==="$"&&(f[_+1]?.[0]==="STRING"||f[_+1]?.[0]==="STRING_START")){let F=f[_-1];if(F&&N3.has(F[0])){if(f.splice(_,1),F.spaced=!1,f[_].spaced=!1,f[_].pre=0,f[_].newLine)f[_].newLine=!1}}}addImplicitBracesAndParens(){let f=[],_=!1;this.scanTokens((F,U,u)=>{let[$]=F,W=u[U-1]||[],w=u[U+1]||[],[Y]=W,[Z]=w,A=U,R=(H)=>U-A+H,z=()=>f[f.length-1],Q=(H)=>H?.[2]?.ours,D=()=>Q(z())&&z()?.[0]==="(",J=()=>Q(z())&&z()?.[0]==="{",q=(H)=>{f.push(["(",H,{ours:!0}]),u.splice(H,0,W1("CALL_START","("))},X=()=>{f.pop(),u.splice(U,0,W1("CALL_END",")")),U+=1},G=(H,M={})=>{f.push(["{",H,{sameLine:!0,startsLine:M.startsLine??!0,ours:!0}]);let I=W1("{","{");if(!I.data)I.data={};I.data.generated=!0,u.splice(H,0,I)},O=(H)=>{H=H??U,f.pop(),u.splice(H,0,W1("}","}")),U+=1};if((D()||J())&&S3.has($))return f.push(["CONTROL",U,{ours:!0}]),R(1);if($==="INDENT"&&Q(z())){if(Y!=="=>"&&Y!=="->"&&Y!=="["&&Y!=="("&&Y!==","&&Y!=="{"&&Y!=="ELSE"&&Y!=="=")while(D()||J()&&Y!==":")if(D())X();else O();if(z()?.[2]?.ours&&z()[0]==="CONTROL")f.pop();return f.push([$,U]),R(1)}if(z1.has($))return f.push([$,U]),R(1);if(R1.has($)){while(Q(z()))if(D())X();else if(J())O();else f.pop();f.pop()}if(d1.has($)&&F.spaced&&(V1.has(Z)||Z==="..."&&V1.has(u[U+2]?.[0])||E3.has(Z)&&!w.spaced&&!w.newLine)&&!(($==="]"||$==="}")&&(Z==="->"||Z==="=>")))return q(U+1),R(2);if(d1.has($)&&this.tokens[U+1]?.[0]==="INDENT"&&this.looksObjectish(U+2)&&!this.findTagsBackwards(U,["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"]))return q(U+1),f.push(["INDENT",U+2]),R(3);if($==="TERNARY")_=!0;if($===":"){if(_)return _=!1,R(1);let H=R1.has(this.tokens[U-1]?.[0])?f[f.length-1]?.[1]??U-1:U-1;if(this.tokens[U-2]?.[0]==="@")H=U-2;let M=H<=0||q1.has(this.tokens[H-1]?.[0])||this.tokens[H-1]?.newLine;if(z()){let[I,S]=z(),N=f[f.length-2];if((I==="{"||I==="INDENT"&&N?.[0]==="{"&&!Q(N))&&(M||this.tokens[H-1]?.[0]===","||this.tokens[H-1]?.[0]==="{"||this.tokens[H]?.[0]==="{"))return R(1)}return G(H,{startsLine:!!M}),R(2)}if(q1.has($))for(let H=f.length-1;H>=0;H--){if(!Q(f[H]))break;if(f[H][0]==="{")f[H][2].sameLine=!1}let K=Y==="OUTDENT"||W.newLine,P=$==="||"||$==="&&",E=!1;if(P){let H=U+1,M=u[H]?.[0];if(M==="("||M==="["||M==="{"){for(let I=1;++H<u.length&&I>0;)if(M=u[H][0],M==="("||M==="["||M==="{")I++;else if(M===")"||M==="]"||M==="}")I--}else if(M&&M!=="TERMINATOR"&&M!=="OUTDENT"&&M!==",")H++;E=u[H]?.[0]===","}if(P3.has($)&&!E||M2.has($)&&K)while(Q(z())){let[H,,{sameLine:M,startsLine:I}]=z();if(D()&&Y!==",")X();else if(J()&&!P&&M&&$!=="TERMINATOR"&&Y!==":")O();else if(J()&&$==="TERMINATOR"&&Y!==","&&!(I&&this.looksObjectish(U+1)))O();else if(z()?.[2]?.ours&&z()[0]==="CONTROL"&&u[z()[1]]?.[0]==="CLASS"&&$==="TERMINATOR")f.pop();else break}if($===","&&!this.looksObjectish(U+1)&&J()&&(Z!=="TERMINATOR"||!this.looksObjectish(U+2))){let H=Z==="OUTDENT"?1:0;while(J())O(U+H)}return R(1)})}addImplicitCallCommas(){let f=0,_=0,F=this.tokens;while(_<F.length){let U=F[_][0],u=_>0?F[_-1][0]:null;if(U==="CALL_START"||U==="(")f++;if(U==="CALL_END"||U===")")f--;if(f>0&&(U==="->"||U==="=>")&&I3.has(u))F.splice(_,0,W1(",",",")),_++;_++}}scanTokens(f){let _=0;while(_<this.tokens.length)_+=f.call(this,this.tokens[_],_,this.tokens)}detectEnd(f,_,F,U={}){let u=0;while(f<this.tokens.length){let $=this.tokens[f];if(u===0&&_.call(this,$,f))return F.call(this,$,f);if(z1.has($[0]))u++;if(R1.has($[0]))u--;if(u<0){if(U.returnOnNegativeLevel)return;return F.call(this,$,f)}f++}}closeMergeAssignments(){let f=this.tokens;for(let _=0;_<f.length;_++){if(!f[_].mergeClose)continue;let F=0;for(let U=_+1;U<f.length;U++){let u=f[U][0];if(u==="("||u==="["||u==="{"||u==="CALL_START"||u==="INDEX_START"||u==="INDENT")F++;if(u===")"||u==="]"||u==="}"||u==="CALL_END"||u==="INDEX_END"||u==="OUTDENT")F--;if(F<0||F===0&&u==="TERMINATOR"){f.splice(U,0,W1("CALL_END",")",f[U-1]));break}if(U===f.length-1){f.splice(U+1,0,W1("CALL_END",")",f[U]));break}}}}commaInImplicitCall(f){let _=0;for(let F=f-1;F>=0;F--){let U=this.tokens[F][0];if(R1.has(U)){_++;continue}if(z1.has(U)){if(U==="INDENT")return!1;if(_--,_<0)return!1;continue}if(_>0)continue;if(d1.has(U)&&this.tokens[F].spaced){let u=this.tokens[F+1]?.[0];return V1.has(u)||u==="..."&&V1.has(this.tokens[F+2]?.[0])}}return!1}commaInImplicitObject(f){let _=0;for(let F=f-1;F>=0;F--){let U=this.tokens[F][0];if(R1.has(U)){_++;continue}if(z1.has(U)){if(_--,_<0)return!1;continue}if(_>0)continue;if(U===":"&&F>0&&this.tokens[F-1][0]==="PROPERTY")return this.looksObjectish(f+1);if(q1.has(U))return!1}return!1}looksObjectish(f){if(!this.tokens[f])return!1;if(this.tokens[f]?.[0]==="@"&&this.tokens[f+2]?.[0]===":")return!0;if(this.tokens[f+1]?.[0]===":")return!0;if(z1.has(this.tokens[f]?.[0])){let _=null;if(this.detectEnd(f+1,(F)=>R1.has(F[0]),(F,U)=>_=U),_&&this.tokens[_+1]?.[0]===":")return!0}return!1}findTagsBackwards(f,_){let F=new Set(_),U=[];while(f>=0){let u=this.tokens[f]?.[0];if(!U.length&&F.has(u))return!0;if(R1.has(u))U.push(u);if(z1.has(u)&&U.length)U.pop();if(!U.length&&(z1.has(u)&&!this.tokens[f]?.generated||q1.has(u)))break;f--}return!1}makeIndentation(f){let _=W1("INDENT",2),F=W1("OUTDENT",2);if(f)_.generated=F.generated=!0,_.origin=F.origin=f;else _.explicit=F.explicit=!0;return[_,F]}}z2(A1);var $7={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,RightwardAssign:18,ReactiveAssign:19,ComputedAssign:20,ReadonlyAssign:21,Effect:22,If:23,Try:24,While:25,For:26,Switch:27,Class:28,Component:29,Render:30,Throw:31,Yield:32,Def:33,Enum:34,CodeLine:35,OperationLine:36,Assignable:37,Literal:38,Parenthetical:39,Range:40,Invocation:41,DoIife:42,This:43,Super:44,MetaProperty:45,AlphaNumeric:46,JS:47,Regex:48,UNDEFINED:49,NULL:50,BOOL:51,INFINITY:52,NAN:53,NUMBER:54,String:55,Identifier:56,IDENTIFIER:57,Property:58,PROPERTY:59,STRING:60,STRING_START:61,Interpolations:62,STRING_END:63,InterpolationChunk:64,INTERPOLATION_START:65,INTERPOLATION_END:66,INDENT:67,OUTDENT:68,REGEX:69,REGEX_START:70,REGEX_END:71,RegexWithIndex:72,",":73,"=":74,RIGHTWARD_ASSIGN:75,REACTIVE_ASSIGN:76,COMPUTED_ASSIGN:77,Block:78,READONLY_ASSIGN:79,EFFECT:80,SimpleAssignable:81,Array:82,Object:83,ThisProperty:84,".":85,"?.":86,INDEX_START:87,INDEX_END:88,Slice:89,ES6_OPTIONAL_INDEX:90,"{":91,ObjAssignable:92,":":93,FOR:94,ForVariables:95,FOROF:96,OptComma:97,"}":98,WHEN:99,OWN:100,AssignList:101,AssignObj:102,ObjRestValue:103,SimpleObjAssignable:104,"[":105,"]":106,"@":107,"...":108,ObjSpreadExpr:109,SUPER:110,Arguments:111,DYNAMIC_IMPORT:112,Elisions:113,ArgElisionList:114,OptElisions:115,ArgElision:116,Arg:117,Elision:118,RangeDots:119,"..":120,DEF:121,CALL_START:122,ParamList:123,CALL_END:124,PARAM_START:125,PARAM_END:126,FuncGlyph:127,"->":128,"=>":129,Param:130,ParamVar:131,Splat:132,ES6_OPTIONAL_CALL:133,ArgList:134,SimpleArgs:135,THIS:136,NEW_TARGET:137,IMPORT_META:138,"(":139,")":140,RETURN:141,THROW:142,YIELD:143,FROM:144,IfBlock:145,IF:146,ELSE:147,UnlessBlock:148,UNLESS:149,POST_IF:150,POST_UNLESS:151,TRY:152,Catch:153,FINALLY:154,CATCH:155,SWITCH:156,Whens:157,When:158,LEADING_WHEN:159,WhileSource:160,WHILE:161,UNTIL:162,Loop:163,LOOP:164,FORIN:165,BY:166,FORAS:167,AWAIT:168,FORASAWAIT:169,ForValue:170,CLASS:171,EXTENDS:172,ENUM:173,COMPONENT:174,ComponentBody:175,ComponentLine:176,OFFER:177,ACCEPT:178,RENDER:179,IMPORT:180,ImportDefaultSpecifier:181,ImportNamespaceSpecifier:182,ImportSpecifierList:183,ImportSpecifier:184,AS:185,DEFAULT:186,IMPORT_ALL:187,EXPORT:188,ExportSpecifierList:189,EXPORT_ALL:190,ExportSpecifier:191,UNARY:192,DO:193,DO_IIFE:194,UNARY_MATH:195,"-":196,"+":197,"?":198,DEFINED:199,PRESENCE:200,"--":201,"++":202,MATH:203,"**":204,SHIFT:205,COMPARE:206,"&":207,"^":208,"|":209,"||":210,"??":211,"&&":212,"!?":213,PIPE:214,RELATION:215,TERNARY:216,COMPOUND_ASSIGN:217},tokenNames:{2:"error",6:"TERMINATOR",11:"STATEMENT",47:"JS",49:"UNDEFINED",50:"NULL",51:"BOOL",52:"INFINITY",53:"NAN",54:"NUMBER",57:"IDENTIFIER",59:"PROPERTY",60:"STRING",61:"STRING_START",63:"STRING_END",65:"INTERPOLATION_START",66:"INTERPOLATION_END",67:"INDENT",68:"OUTDENT",69:"REGEX",70:"REGEX_START",71:"REGEX_END",73:",",74:"=",75:"RIGHTWARD_ASSIGN",76:"REACTIVE_ASSIGN",77:"COMPUTED_ASSIGN",79:"READONLY_ASSIGN",80:"EFFECT",85:".",86:"?.",87:"INDEX_START",88:"INDEX_END",90:"ES6_OPTIONAL_INDEX",91:"{",93:":",94:"FOR",96:"FOROF",98:"}",99:"WHEN",100:"OWN",105:"[",106:"]",107:"@",108:"...",110:"SUPER",112:"DYNAMIC_IMPORT",120:"..",121:"DEF",122:"CALL_START",124:"CALL_END",125:"PARAM_START",126:"PARAM_END",128:"->",129:"=>",133:"ES6_OPTIONAL_CALL",136:"THIS",137:"NEW_TARGET",138:"IMPORT_META",139:"(",140:")",141:"RETURN",142:"THROW",143:"YIELD",144:"FROM",146:"IF",147:"ELSE",149:"UNLESS",150:"POST_IF",151:"POST_UNLESS",152:"TRY",154:"FINALLY",155:"CATCH",156:"SWITCH",159:"LEADING_WHEN",161:"WHILE",162:"UNTIL",164:"LOOP",165:"FORIN",166:"BY",167:"FORAS",168:"AWAIT",169:"FORASAWAIT",171:"CLASS",172:"EXTENDS",173:"ENUM",174:"COMPONENT",177:"OFFER",178:"ACCEPT",179:"RENDER",180:"IMPORT",185:"AS",186:"DEFAULT",187:"IMPORT_ALL",188:"EXPORT",190:"EXPORT_ALL",192:"UNARY",193:"DO",194:"DO_IIFE",195:"UNARY_MATH",196:"-",197:"+",198:"?",199:"DEFINED",200:"PRESENCE",201:"--",202:"++",203:"MATH",204:"**",205:"SHIFT",206:"COMPARE",207:"&",208:"^",209:"|",210:"||",211:"??",212:"&&",213:"!?",214:"PIPE",215:"RELATION",216:"TERNARY",217:"COMPOUND_ASSIGN"},parseTable:(()=>{let f=[108,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,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,-1,1,2,3,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,1,1,0,2,1,5,-2,108,5,1,5,60,2,72,-3,-3,-3,-3,-3,32,1,5,60,1,1,5,2,19,12,18,16,10,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-6,-6,-6,-6,-6,-6,125,129,-6,-6,-6,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,9,1,5,60,1,1,5,33,18,16,-7,-7,-7,-7,-7,-7,-7,-7,-7,14,1,5,60,1,1,5,33,18,16,10,1,9,1,1,-8,-8,-8,-8,-8,-8,-8,-8,-8,130,131,132,97,98,57,1,5,49,5,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,3,9,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-13,-13,136,106,107,-13,-13,-13,-13,-13,139,140,141,-13,142,-13,-13,-13,-13,-13,-13,-13,137,-13,143,-13,-13,138,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,133,134,135,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,47,1,5,60,1,1,5,2,10,1,1,1,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,-14,144,145,146,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,9,1,5,60,1,1,5,33,18,16,-34,-34,-34,-34,-34,-34,-34,-34,-34,9,1,5,60,1,1,5,33,18,16,-35,-35,-35,-35,-35,-35,-35,-35,-35,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,60,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-36,-36,-36,-36,-36,-36,-36,-36,147,-36,148,149,150,151,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,18,6,50,1,10,1,5,9,1,1,7,14,2,1,15,1,2,4,1,-175,156,105,-175,-175,-175,158,159,157,100,161,160,155,152,-175,-175,153,154,107,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,1,3,1,6,2,1,8,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,163,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,164,103,104,162,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,104,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,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,165,166,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,104,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,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,168,169,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,170,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,176,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,177,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,178,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,179,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,14,1,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,11,1,1,1,7,14,2,3,2,13,2,1,1,7,1,1,1,55,181,182,183,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,180,73,74,94,100,84,88,85,86,171,172,91,92,87,89,90,83,175,45,14,1,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,11,1,1,1,7,14,2,3,2,13,2,1,1,7,1,1,1,55,181,182,183,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,184,73,74,94,100,84,88,85,86,171,172,91,92,87,89,90,83,175,63,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,185,186,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,187,104,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,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,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,189,188,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,164,103,104,190,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,191,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,2,67,11,164,192,2,67,11,164,193,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,14,40,16,1,25,1,1,7,4,5,5,2,24,37,2,197,156,105,158,159,157,100,194,195,84,160,199,196,198,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,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,200,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,201,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,91,1,5,8,1,22,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,2,3,3,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,4,1,1,1,1,1,7,1,1,1,1,7,3,1,10,1,3,1,1,2,3,22,2,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-307,-307,181,182,183,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,-307,164,-307,103,104,-307,-307,202,204,73,74,94,-307,100,-307,-307,-307,-307,-307,84,-307,88,-307,85,86,-307,-307,171,-307,172,91,92,87,89,90,83,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,203,175,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,2,67,105,205,206,2,67,11,164,207,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,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,208,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,209,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,141,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,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,2,5,1,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,1,3,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,2,2,1,5,1,8,4,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-226,-226,210,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,-226,211,-226,103,104,-226,-226,54,53,73,74,94,-226,100,-226,-226,-226,-226,-226,84,-226,88,-226,85,86,-226,67,-226,171,-226,172,91,92,87,89,90,83,-226,70,65,66,212,55,95,-226,56,96,-226,-226,57,61,58,-226,-226,59,99,-226,-226,-226,50,-226,62,68,63,64,71,72,173,174,175,47,48,49,51,52,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,2,56,1,213,105,2,56,1,214,105,6,15,20,90,2,1,1,216,215,43,44,91,92,140,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,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,2,5,1,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,1,3,1,1,1,1,1,7,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,2,2,1,5,1,8,4,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-223,-223,217,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,-223,218,-223,103,104,-223,-223,54,53,73,74,94,-223,100,-223,-223,-223,-223,-223,84,-223,88,-223,85,86,-223,67,-223,171,-223,172,91,92,87,89,90,83,-223,70,65,66,55,95,-223,56,96,-223,-223,57,61,58,-223,-223,59,99,-223,-223,-223,50,-223,62,68,63,64,71,72,173,174,175,47,48,49,51,52,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,9,55,1,1,3,1,30,90,1,5,219,223,105,106,107,222,220,221,224,60,14,1,4,1,1,1,6,1,4,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,14,2,3,2,9,4,2,1,1,7,1,1,1,32,2,1,12,4,4,181,182,231,232,233,234,226,227,228,229,237,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,230,105,106,107,103,104,54,238,73,74,94,225,84,88,85,86,67,171,172,91,92,87,89,90,83,62,68,63,235,236,175,60,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,60,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,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,1,3,1,6,2,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,239,3,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,240,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,114,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,1,3,1,6,2,1,3,7,1,1,1,1,7,3,11,1,1,1,2,2,1,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,241,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,247,103,104,248,54,53,73,74,94,100,60,84,242,88,252,85,86,243,244,246,249,245,67,43,44,91,92,251,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,4,85,2,24,11,254,255,253,143,2,111,11,256,143,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,57,1,5,52,1,1,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-208,-208,257,258,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,1,85,259,1,85,260,54,11,36,2,1,1,1,1,1,3,3,1,6,2,1,10,11,3,11,2,3,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,54,11,36,2,1,1,1,1,1,3,3,1,6,2,1,10,11,3,11,2,3,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,64,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,64,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,261,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,262,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,263,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,264,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,103,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,266,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,164,103,104,265,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,23,6,40,8,1,1,1,1,1,1,1,6,1,5,11,8,6,3,1,1,1,1,2,1,-111,272,101,102,274,105,275,258,106,107,-111,-111,-111,276,267,-111,268,273,277,269,270,271,278,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,45,14,1,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,11,1,1,1,7,14,2,3,2,13,2,1,1,7,1,1,1,55,181,182,183,35,36,37,279,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,238,73,74,94,100,84,88,85,86,171,172,91,92,87,89,90,83,175,66,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,4,3,3,1,10,1,3,1,1,2,3,13,11,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,58,1,5,54,1,2,2,1,1,1,3,2,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,6,55,5,1,1,2,1,283,106,107,280,281,282,110,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,1,3,1,5,2,1,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,1,1,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,-5,284,-5,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,-5,-5,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,-5,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,285,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,286,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,287,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,288,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,289,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,290,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,291,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,292,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,293,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,296,167,294,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,295,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,299,167,297,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,298,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,302,167,300,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,301,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,303,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,304,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,305,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,306,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,14,1,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,11,1,1,1,7,14,2,3,2,13,2,1,1,7,1,1,1,55,181,182,307,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,238,73,74,94,100,84,88,85,86,171,172,91,92,87,89,90,83,175,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,308,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,309,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,14,40,16,1,25,1,1,7,4,5,5,2,24,37,2,313,156,105,158,159,157,100,310,311,84,160,199,312,198,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,314,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,315,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,56,1,5,54,1,5,1,1,3,2,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,56,1,5,54,1,5,1,1,3,2,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,2,111,11,316,143,2,58,1,317,258,2,58,1,318,258,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,8,1,1,1,1,5,2,3,11,2,1,2,2,7,1,1,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,319,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,324,78,79,80,81,82,101,102,93,105,106,107,320,103,104,322,54,53,73,74,94,321,100,60,84,88,326,85,86,323,325,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,1,87,327,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,1,3,1,6,2,1,10,1,1,1,1,7,3,11,2,1,2,2,5,4,3,1,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,331,103,104,54,53,73,74,94,100,60,84,88,252,85,86,330,67,328,43,44,91,92,251,329,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,2,58,1,333,258,2,58,1,334,258,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,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,335,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,336,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,103,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,338,337,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,339,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,103,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,341,340,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,342,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,104,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,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,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,344,343,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,164,103,104,345,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,103,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,347,346,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,348,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,104,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,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,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,350,349,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,164,103,104,351,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,9,6,61,1,5,24,1,8,18,2,-219,-219,-219,353,354,-219,-219,-219,352,6,6,61,1,5,51,2,-176,-176,-176,-176,-176,-176,7,6,61,1,5,1,50,2,-180,-180,-180,-180,355,-180,-180,15,6,50,1,10,1,5,9,1,1,7,14,2,17,2,5,-183,156,105,-183,-183,-183,158,159,157,100,161,160,-183,-183,356,11,6,61,1,5,1,22,28,2,39,2,2,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,11,6,61,1,5,1,22,28,2,39,2,2,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,11,6,61,1,5,1,22,28,2,39,2,2,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,11,6,61,1,5,1,22,28,2,39,2,2,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,2,58,1,257,258,114,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,1,3,1,6,2,1,3,7,1,1,1,1,7,3,11,1,1,1,2,2,1,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,247,103,104,248,54,53,73,74,94,100,60,84,242,88,252,85,86,243,244,246,249,245,67,43,44,91,92,251,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,9,1,5,60,1,1,5,33,18,16,-172,-172,-172,-172,-172,-172,-172,-172,-172,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,1,3,1,7,1,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,358,3,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,357,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,127,128,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,119,-376,121,-376,-376,-376,9,1,5,60,1,1,5,33,18,16,-373,-373,-373,-373,-373,-373,-373,-373,-373,5,150,1,9,1,1,130,131,132,97,98,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,127,128,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,119,-377,121,-377,-377,-377,9,1,5,60,1,1,5,33,18,16,-374,-374,-374,-374,-374,-374,-374,-374,-374,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,127,128,-378,-378,-378,-378,-378,-378,-378,-378,-378,112,-378,-378,-378,-378,-378,-378,119,-378,121,-378,-378,-378,18,6,50,1,10,1,5,9,1,1,7,14,2,1,15,1,2,4,1,-175,156,105,-175,-175,-175,158,159,157,100,161,160,155,359,-175,-175,153,154,2,67,11,164,162,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,165,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,168,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,5,15,110,2,1,1,216,171,172,91,92,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,127,128,-379,-379,-379,-379,-379,-379,-379,-379,-379,112,-379,-379,-379,-379,-379,-379,119,-379,121,-379,-379,-379,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,127,128,-380,-380,-380,-380,-380,-380,-380,-380,-380,112,-380,-380,-380,-380,-380,-380,119,-380,121,-380,-380,-380,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,127,128,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,119,-384,121,-384,-384,-384,2,83,8,360,100,60,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-386,-386,-88,-88,-386,-386,-386,-386,-88,-386,-88,-88,-88,-88,-88,-88,-88,-386,-88,-386,-386,-386,-386,-386,-386,-386,-386,-88,-386,-386,-88,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-88,-88,-88,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,10,55,5,1,24,1,1,3,21,11,11,136,106,107,139,140,141,142,137,143,138,3,85,1,1,144,145,146,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,60,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-387,-387,-88,-88,-387,-387,-387,-387,-88,-387,-88,-88,-88,-88,-88,-88,-88,-387,-88,-387,-387,-387,-387,-387,-387,-387,-387,-88,-387,-387,-88,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-88,-88,-88,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-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,-388,-388,-388,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-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,-389,-389,-389,103,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,363,361,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,362,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-85,-85,-85,-85,-85,-85,125,-85,-85,129,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,126,127,128,97,98,-85,-85,-85,-85,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,364,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,3,67,11,68,164,365,366,47,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,2,1,1,6,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,367,368,369,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,4,96,69,2,2,371,370,372,373,11,56,1,25,1,1,7,4,10,2,24,39,156,105,158,159,157,100,374,161,160,199,198,11,56,1,25,1,1,7,4,10,2,24,39,156,105,158,159,157,100,375,161,160,199,198,3,67,11,88,164,376,377,5,73,23,69,2,2,378,-305,-305,-305,-305,6,73,1,22,69,2,2,-303,379,-303,-303,-303,-303,24,67,8,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,380,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,3,157,1,1,381,382,383,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,384,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,62,1,5,54,1,5,1,1,5,1,1,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-311,-311,-88,-88,-311,164,-311,-311,-88,-311,-88,-88,385,-88,-88,-88,-88,-88,-311,-88,-311,-311,-311,-311,-311,-311,-311,-311,-88,-311,-311,-88,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,386,-311,-311,-88,-88,-88,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,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,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,1,1,1,1,1,1,8,4,1,1,1,1,1,4,1,389,390,391,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,387,388,392,393,64,71,72,45,46,69,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,394,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-224,-224,-224,-224,-224,-224,125,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,127,128,-224,-224,-224,-224,-224,-224,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,2,83,8,395,100,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,127,128,-227,-227,-227,-227,-227,-227,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,2,83,8,396,100,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,397,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,3,67,11,44,164,399,398,2,67,11,164,400,9,1,5,60,1,1,5,33,18,16,-375,-375,-375,-375,-375,-375,-375,-375,-375,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-221,-221,-221,-221,-221,-221,125,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,127,128,-221,-221,-221,-221,-221,-221,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,2,83,8,401,100,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,2,73,71,403,402,1,144,404,7,56,1,10,31,85,1,2,409,105,408,405,406,407,410,2,73,71,-343,-343,1,185,411,26,6,40,8,1,1,1,1,1,1,1,6,1,5,11,8,6,3,1,1,1,1,2,1,78,3,2,-111,272,101,102,416,105,275,258,106,107,415,-111,-111,276,267,412,268,273,277,269,270,271,278,417,413,414,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,64,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-91,-91,-91,-91,-91,-91,-91,-91,418,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,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,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,419,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,420,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,1,144,421,59,1,5,54,1,5,1,1,5,2,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-36,-36,-36,-36,-36,-36,-36,-36,-36,148,149,150,151,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,60,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,2,6,134,108,422,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,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,423,3,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,32,6,61,1,5,2,19,12,2,11,1,4,26,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-201,-201,-201,-201,125,129,-201,326,424,325,-201,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,60,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,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,1,3,1,8,1,3,7,1,1,1,1,7,3,11,1,1,1,2,2,5,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,248,54,53,73,74,94,100,60,84,425,88,252,85,86,427,426,67,43,44,91,92,251,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,9,6,61,1,5,24,1,8,9,9,-219,-219,-219,429,430,-219,-219,428,-219,59,6,5,36,2,1,1,1,1,1,3,3,1,6,1,1,1,3,7,11,3,11,1,1,1,2,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,431,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-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,61,1,5,33,-147,-147,-147,-147,-147,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,1,3,1,6,2,1,3,7,1,1,1,1,7,3,11,2,1,2,2,1,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,247,103,104,248,54,53,73,74,94,100,60,84,88,252,85,86,433,432,246,249,245,67,43,44,91,92,251,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,59,6,5,36,2,1,1,1,1,1,3,3,1,6,1,1,1,3,7,11,3,11,1,1,1,2,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,5,6,61,1,5,33,-152,-152,-152,-152,-152,6,6,61,1,5,33,18,-202,-202,-202,-202,-202,-202,6,6,61,1,5,33,18,-203,-203,-203,-203,-203,-203,107,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,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,7,1,1,1,1,7,3,11,1,1,3,2,9,3,1,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,-204,434,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,-204,-204,103,104,-204,54,53,73,74,94,100,60,84,-204,88,85,86,67,-204,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,56,1,5,54,1,5,1,1,3,2,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,2,58,1,435,258,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,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,436,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,437,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,56,1,5,54,1,5,1,1,3,2,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,64,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,64,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,2,58,1,438,258,2,58,1,439,258,25,67,8,3,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,440,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,25,67,8,3,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,441,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-258,-258,-258,-258,-258,-258,125,-258,-258,129,-258,-258,442,-258,-258,-258,-258,-258,-258,-258,-258,127,128,97,98,-258,-258,-258,-258,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-260,-260,-260,-260,-260,-260,125,-260,-260,129,-260,-260,443,-260,-260,-260,-260,-260,-260,-260,-260,127,128,97,98,-260,-260,-260,-260,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,46,1,5,60,1,1,5,2,3,10,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-267,-267,-267,164,-267,-267,125,444,-267,-267,129,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,127,128,97,98,-267,-267,-267,-267,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,6,6,61,1,5,20,5,-116,-116,-116,-116,445,-116,8,6,61,1,5,24,1,8,18,-219,-219,-219,447,446,-219,-219,-219,7,6,61,1,5,1,19,5,-125,-125,-125,-125,448,-125,-125,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,449,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,3,58,1,46,257,258,450,6,6,61,1,5,20,5,-128,-128,-128,-128,-128,-128,5,6,61,1,5,25,-112,-112,-112,-112,-112,11,6,61,1,5,1,11,1,1,6,5,24,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,11,6,61,1,5,1,11,1,1,6,5,24,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,11,6,61,1,5,1,11,1,1,6,5,24,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,5,6,61,1,5,25,-117,-117,-117,-117,-117,17,39,4,1,12,1,1,1,24,1,7,13,3,2,1,2,24,3,454,456,455,274,105,275,258,453,276,100,451,88,452,457,458,87,83,56,1,5,54,1,5,1,1,3,2,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-40,-40,-40,-40,-40,-40,-40,459,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,6,55,5,1,2,1,1,283,106,107,460,461,282,4,60,1,2,2,-59,-59,-59,-59,108,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,1,3,1,5,1,2,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,462,3,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,464,463,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,4,60,1,2,2,-64,-64,-64,-64,5,1,5,60,2,72,-4,-4,-4,-4,-4,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,127,128,-390,-390,-390,-390,-390,-390,-390,-390,111,112,-390,-390,-390,-390,-390,-390,119,-390,121,-390,-390,-390,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,127,128,-391,-391,-391,-391,-391,-391,-391,-391,111,112,-391,-391,-391,-391,-391,-391,119,-391,121,-391,-391,-391,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,127,128,-392,-392,-392,-392,-392,-392,-392,-392,-392,112,-392,-392,-392,-392,-392,-392,119,-392,121,-392,-392,-392,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,127,128,-393,-393,-393,-393,-393,-393,-393,-393,-393,112,-393,-393,-393,-393,-393,-393,119,-393,121,-393,-393,-393,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,127,128,-394,-394,-394,-394,-394,-394,110,109,111,112,-394,-394,-394,-394,-394,-394,119,-394,121,-394,-394,-394,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,127,128,-395,-395,-395,-395,-395,-395,110,109,111,112,113,-395,-395,-395,-395,-395,119,-395,121,-395,123,-395,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,127,128,-396,-396,-396,-396,-396,-396,110,109,111,112,113,114,-396,-396,-396,-396,119,-396,121,-396,123,-396,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,127,128,-397,-397,-397,-397,-397,-397,110,109,111,112,113,114,115,-397,-397,-397,119,-397,121,-397,123,-397,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,127,128,-398,-398,-398,-398,-398,-398,110,109,111,112,113,114,115,116,-398,-398,119,-398,121,-398,123,-398,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,127,128,-406,-406,-406,-406,-406,-406,110,109,111,112,113,114,115,116,117,-406,119,120,121,-406,123,-406,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-407,-407,-407,-407,-407,-407,125,-407,-407,129,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,126,127,128,97,98,-407,-407,-407,-407,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,127,128,-405,-405,-405,-405,-405,-405,110,109,111,112,113,114,115,116,117,-405,119,-405,121,-405,123,-405,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-408,-408,-408,-408,-408,-408,125,-408,-408,129,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,126,127,128,97,98,-408,-408,-408,-408,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,127,128,-409,-409,-409,-409,-409,-409,110,109,111,112,113,114,115,116,117,118,119,120,121,-409,123,-409,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,127,128,-410,-410,-410,-410,-410,-410,110,109,111,112,113,-410,-410,-410,-410,-410,119,-410,121,-410,-410,-410,24,75,18,1,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,125,465,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-72,-72,-36,-36,-72,-72,-72,-72,-72,-36,-36,-36,-72,-36,-72,-72,-72,-72,-72,-72,-72,-72,-36,-72,-72,-36,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-36,-36,-36,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-238,-238,-238,-238,-238,-238,125,-238,-238,129,-238,-238,-238,-238,-238,-238,-238,-238,-238,466,-238,127,128,97,98,-238,-238,-238,-238,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-242,-242,-242,-242,-242,-242,125,-242,-242,129,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,126,127,128,97,98,-242,-242,-242,-242,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,4,96,69,2,2,468,467,469,470,11,56,1,25,1,1,7,4,10,2,24,39,156,105,158,159,157,100,471,161,160,199,198,11,56,1,25,1,1,7,4,10,2,24,39,156,105,158,159,157,100,472,161,160,199,198,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,473,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-237,-237,-237,-237,-237,-237,125,-237,-237,129,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,127,128,97,98,-237,-237,-237,-237,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-241,-241,-241,-241,-241,-241,125,-241,-241,129,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,126,127,128,97,98,-241,-241,-241,-241,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,56,1,5,54,1,5,1,1,3,2,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,64,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,64,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,27,75,13,6,14,11,1,30,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,125,474,129,326,475,325,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,5,2,3,11,2,1,2,2,7,1,1,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,476,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,477,100,60,84,88,326,85,86,323,325,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,1,88,478,1,88,479,103,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,10,1,1,1,1,4,3,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,480,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,-166,103,104,54,53,73,74,94,-166,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-47,-47,-47,-47,-47,-47,-47,481,-47,-47,-47,-47,-68,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,55,11,36,2,1,1,1,1,1,3,3,1,7,1,1,10,8,3,3,11,2,3,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,55,11,36,2,1,1,1,1,1,3,3,1,7,1,1,10,8,3,3,11,2,3,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,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,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,482,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,483,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,56,1,5,54,1,5,1,1,3,2,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,8,6,61,1,5,24,1,8,18,-219,-219,-219,485,484,-219,-219,-219,5,6,61,1,5,51,-196,-196,-196,-196,-196,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,1,3,1,6,2,1,10,1,1,1,1,7,3,11,2,1,2,2,5,4,4,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,331,103,104,54,53,73,74,94,100,60,84,88,252,85,86,330,67,43,44,91,92,251,486,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,29,6,61,1,5,2,19,12,18,26,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-201,-201,-201,-201,125,129,-201,-201,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,64,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,64,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,24,75,13,6,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,125,487,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,488,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-69,-69,-69,-69,-69,-69,125,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,127,128,-69,-69,-69,-69,-69,-69,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,489,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,490,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-73,-73,-73,-73,-73,-73,125,-73,-73,129,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,126,127,128,97,98,-73,-73,-73,-73,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,491,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,492,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-76,-76,-76,-76,-76,-76,125,-76,-76,129,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,126,127,128,97,98,-76,-76,-76,-76,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,493,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-79,-79,-79,-79,-79,-79,125,-79,-79,129,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,126,127,128,97,98,-79,-79,-79,-79,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,494,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,495,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-82,-82,-82,-82,-82,-82,125,-82,-82,129,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,126,127,128,97,98,-82,-82,-82,-82,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,496,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,3,127,1,1,497,91,92,17,6,50,1,10,1,14,1,1,7,7,7,1,1,1,16,6,1,-220,156,105,-220,-220,158,159,157,100,-220,161,-220,160,155,-220,498,154,2,6,61,499,500,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,501,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,6,6,61,1,5,51,2,-182,-182,-182,-182,-182,-182,58,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,3,1,4,2,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-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,62,108,502,9,6,61,1,5,24,1,8,18,2,-219,-219,-219,353,354,-219,-219,-219,503,1,68,504,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-412,-412,-412,-412,-412,-412,125,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,127,128,-412,-412,-412,-412,-412,-412,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,505,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,506,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,-86,-86,125,-86,-86,129,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,126,127,128,97,98,-86,-86,-86,-86,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,507,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,508,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,2,67,11,164,509,6,56,1,10,11,5,8,510,105,164,512,511,100,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,513,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,514,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,515,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,516,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,1,96,517,1,167,518,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,519,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,10,56,1,25,1,1,7,14,2,24,39,156,105,158,159,157,100,161,160,199,520,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,521,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,3,157,1,1,522,382,383,4,68,79,11,1,523,524,525,383,3,68,79,12,-254,-254,-254,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,6,1,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,527,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,526,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,46,1,5,60,1,1,5,2,3,10,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-309,-309,-309,164,-309,-309,125,528,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,127,128,-309,-309,-309,-309,-309,-309,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,529,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,2,6,62,531,530,2,6,62,-318,-318,25,6,62,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-321,-321,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,2,6,62,-322,-322,7,6,62,82,1,9,1,1,-323,-323,130,131,132,97,98,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,532,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,1,57,533,24,67,8,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,534,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,1,68,535,1,68,536,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,127,128,-229,-229,-229,-229,-229,-229,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,18,6,50,1,10,1,5,9,1,1,7,14,2,1,15,1,2,4,1,-175,156,105,-175,-175,-175,158,159,157,100,161,160,155,537,-175,-175,153,154,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,1,68,538,3,55,5,1,539,106,107,3,91,91,5,541,540,224,3,55,5,1,542,106,107,1,144,543,8,6,61,1,5,24,1,8,18,-219,-219,-219,545,544,-219,-219,-219,5,6,61,1,5,25,-334,-334,-334,-334,-334,6,56,1,10,116,1,2,409,105,408,546,407,410,6,6,61,1,5,25,87,-339,-339,-339,-339,-339,547,6,6,61,1,5,25,87,-341,-341,-341,-341,-341,548,2,56,1,549,105,14,1,5,60,1,1,5,33,18,16,4,6,1,10,1,-345,-345,-345,-345,-345,-345,-345,-345,-345,550,-345,-345,-345,-345,8,6,61,1,5,24,1,8,18,-219,-219,-219,552,551,-219,-219,-219,5,6,61,1,5,25,-363,-363,-363,-363,-363,6,56,1,10,119,3,2,554,105,415,417,553,414,12,6,61,1,5,1,11,1,1,6,5,24,63,-368,-368,-368,-368,-122,-122,-122,-122,-122,-368,-122,555,6,6,61,1,5,25,87,-371,-371,-371,-371,-371,556,103,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,558,557,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,559,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,32,1,5,60,1,1,5,2,19,12,18,16,10,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-358,-358,-358,-358,-358,-358,125,129,-358,-358,-358,-358,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,2,83,8,560,100,3,55,5,1,561,106,107,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,2,6,62,108,562,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,563,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,60,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,59,6,5,36,2,1,1,1,1,1,3,3,1,6,1,1,1,3,7,11,3,11,1,1,1,2,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,431,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,5,6,61,1,5,33,-153,-153,-153,-153,-153,2,67,39,565,564,117,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,1,3,1,6,1,1,1,3,7,1,1,1,1,7,3,4,7,1,1,1,2,2,1,3,1,1,3,3,1,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,-220,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,-220,-220,103,104,248,54,53,73,74,94,100,60,-220,84,-220,88,252,85,86,567,566,249,245,67,-220,43,44,91,92,251,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,4,6,61,1,38,568,-154,-154,-154,59,6,5,36,2,1,1,1,1,1,3,3,1,6,1,1,1,3,7,11,3,11,1,1,1,2,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,9,6,61,1,5,24,1,8,9,9,-219,-219,-219,429,430,-219,-219,569,-219,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,1,3,1,8,1,3,7,1,1,1,1,7,3,11,2,1,2,2,5,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,248,54,53,73,74,94,100,60,84,88,252,85,86,427,426,67,43,44,91,92,251,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,29,6,61,1,5,2,19,12,18,26,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-188,-188,-188,-188,125,129,-188,-188,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,24,75,13,6,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,125,570,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,571,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,572,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,573,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,574,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,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,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,575,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,576,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,3,6,61,31,578,579,577,23,6,40,8,1,1,1,1,1,1,1,6,1,16,8,6,4,1,1,1,1,1,1,16,-220,272,101,102,274,105,275,258,106,107,-220,-220,276,581,-220,580,277,269,270,-220,271,278,-220,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,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,582,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,583,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,24,75,19,12,44,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,125,129,584,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,585,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,10,6,61,1,5,12,1,1,11,13,11,-129,-129,-129,-129,-131,-131,-131,-129,586,143,10,6,61,1,5,12,1,1,11,13,11,-130,-130,-130,-130,588,589,590,-130,587,143,9,6,61,1,5,12,1,1,11,24,-132,-132,-132,-132,-132,-132,-132,-132,-132,9,6,61,1,5,12,1,1,11,24,-133,-133,-133,-133,-133,-133,-133,-133,-133,9,6,61,1,5,12,1,1,11,24,-134,-134,-134,-134,-134,-134,-134,-134,-134,9,6,61,1,5,12,1,1,11,24,-135,-135,-135,-135,-135,-135,-135,-135,-135,4,85,2,24,11,254,255,591,143,2,111,11,592,143,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,58,1,5,54,1,2,2,1,1,1,3,2,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,4,60,1,2,2,-60,-60,-60,-60,2,6,60,108,593,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,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,594,3,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,4,60,1,2,2,-63,-63,-63,-63,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,595,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,597,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,596,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,598,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,599,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,600,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,601,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,1,96,602,1,167,603,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,604,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,64,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,103,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,10,1,1,1,1,4,3,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,605,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,-164,103,104,54,53,73,74,94,-164,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,27,68,7,19,14,11,1,30,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,606,125,129,326,475,325,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,1,68,607,64,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,64,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,25,68,7,13,6,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-165,125,-165,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,608,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,24,75,13,6,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,125,609,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,610,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,3,6,61,57,612,613,611,113,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,1,3,1,6,1,1,1,10,1,1,1,1,7,3,4,7,1,1,1,2,2,5,4,3,1,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,-220,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,-220,-220,103,104,54,53,73,74,94,100,60,-220,84,-220,88,252,85,86,614,67,-220,43,44,91,92,251,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,8,6,61,1,5,24,1,8,18,-219,-219,-219,485,615,-219,-219,-219,64,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,616,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-70,-70,-70,-70,-70,-70,125,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,127,128,-70,-70,-70,-70,-70,-70,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,617,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-74,-74,-74,-74,-74,-74,125,-74,-74,129,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,126,127,128,97,98,-74,-74,-74,-74,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,618,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-77,-77,-77,-77,-77,-77,125,-77,-77,129,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,126,127,128,97,98,-77,-77,-77,-77,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-80,-80,-80,-80,-80,-80,125,-80,-80,129,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,126,127,128,97,98,-80,-80,-80,-80,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,619,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-83,-83,-83,-83,-83,-83,125,-83,-83,129,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,126,127,128,97,98,-83,-83,-83,-83,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,107,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,1,3,1,6,2,1,8,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,621,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,164,103,104,620,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,6,6,61,1,5,51,2,-177,-177,-177,-177,-177,-177,11,56,1,25,1,1,7,14,2,1,22,1,156,105,158,159,157,100,161,160,155,622,154,18,6,50,1,10,1,5,9,1,1,7,14,2,1,15,1,2,4,1,-175,156,105,-175,-175,-175,158,159,157,100,161,160,155,623,-175,-175,153,154,29,6,61,1,5,2,19,30,2,24,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-181,-181,-181,-181,125,129,-181,-181,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,58,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,3,1,4,2,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,3,127,1,1,624,91,92,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,625,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-414,-414,-414,-414,-414,-414,125,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,127,128,-414,-414,-414,-414,-414,-414,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,25,67,8,3,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,626,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,2,67,11,164,627,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,2,67,11,164,628,2,67,11,164,629,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,27,67,8,3,16,5,51,1,9,1,1,4,30,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,630,129,631,126,127,128,97,98,632,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,26,67,8,3,16,5,51,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,633,129,634,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,26,67,8,3,16,5,51,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,635,129,636,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,26,67,8,3,16,5,51,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,637,129,638,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,639,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,640,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,25,67,8,3,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,641,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,4,96,69,2,2,-306,-306,-306,-306,28,73,2,19,2,54,1,9,1,1,3,2,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-304,125,129,-304,126,127,128,97,98,-304,-304,-304,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,4,68,79,11,1,642,643,525,383,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,2,67,11,164,644,3,68,79,12,-255,-255,-255,3,67,6,5,164,646,645,25,67,6,2,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-205,-205,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,46,1,5,60,1,1,5,2,3,10,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-313,-313,-313,164,-313,-313,125,647,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,127,128,-313,-313,-313,-313,-313,-313,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,109,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,1,3,1,7,1,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,1,1,1,1,8,4,1,1,1,1,1,4,1,-320,389,390,391,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,-320,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,648,392,393,64,71,72,45,46,69,47,48,49,51,52,25,6,62,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-324,-324,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,2,6,62,-325,-325,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,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,1,1,1,1,1,1,8,4,1,1,1,1,1,4,1,389,390,391,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,649,388,392,393,64,71,72,45,46,69,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,8,6,61,1,5,24,1,8,18,-219,-219,-219,353,354,-219,-219,650,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,1,144,651,6,56,1,10,116,1,2,409,105,408,652,407,410,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,3,55,5,1,653,106,107,3,6,61,31,655,656,654,10,6,50,1,10,1,30,8,18,60,2,-220,409,105,-220,-220,-220,-220,-220,657,410,8,6,61,1,5,24,1,8,18,-219,-219,-219,545,658,-219,-219,-219,2,56,1,659,105,2,56,1,660,105,1,144,-344,3,55,5,1,661,106,107,3,6,61,31,663,664,662,10,6,50,1,10,1,30,8,18,62,5,-220,554,105,-220,-220,-220,-220,-220,417,665,8,6,61,1,5,24,1,8,18,-219,-219,-219,552,666,-219,-219,-219,6,6,61,1,5,25,87,-368,-368,-368,-368,-368,555,3,56,1,129,667,105,668,2,56,1,669,105,32,1,5,60,1,1,5,2,19,12,18,16,10,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-351,-351,-351,-351,-351,-351,125,129,-351,-351,-351,-351,127,128,-351,-351,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,670,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,671,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,1,68,672,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,1,140,673,24,75,19,12,44,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,125,129,674,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,60,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,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,1,3,1,6,2,1,3,7,1,1,1,1,7,3,11,2,1,2,2,1,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,247,103,104,248,54,53,73,74,94,100,60,84,88,252,85,86,433,675,246,249,245,67,43,44,91,92,251,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,5,6,61,1,5,33,-148,-148,-148,-148,-148,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,1,3,1,6,1,1,1,3,7,1,1,1,1,7,3,11,1,1,1,2,2,5,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,-155,-155,103,104,248,54,53,73,74,94,100,60,84,-155,88,252,85,86,427,426,67,43,44,91,92,251,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,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,1,3,1,8,1,3,7,1,1,1,1,7,3,11,2,1,2,2,1,3,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,248,54,53,73,74,94,100,60,84,88,252,85,86,433,676,249,245,67,43,44,91,92,251,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,2,67,1,565,677,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,678,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,2,67,11,164,679,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-259,-259,-259,-259,-259,-259,125,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,127,128,-259,-259,-259,-259,-259,-259,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-261,-261,-261,-261,-261,-261,125,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,127,128,-261,-261,-261,-261,-261,-261,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,28,6,61,1,5,2,19,4,52,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-118,-118,-118,-118,125,680,-118,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,681,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,60,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,17,46,8,1,1,1,1,1,1,1,23,8,10,1,1,1,2,1,272,101,102,274,105,275,258,106,107,276,581,682,277,269,270,271,278,23,6,40,8,1,1,1,1,1,1,1,6,1,5,11,8,6,3,1,1,1,1,2,1,-111,272,101,102,274,105,275,258,106,107,-111,-111,-111,276,581,-111,683,273,277,269,270,271,278,5,6,61,1,5,25,-113,-113,-113,-113,-113,6,6,61,1,5,20,5,-116,-116,-116,-116,684,-116,28,6,61,1,5,2,19,4,52,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-120,-120,-120,-120,125,129,-120,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,685,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,6,6,61,1,5,20,5,-126,-126,-126,-126,-126,-126,24,75,19,12,44,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,125,129,686,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,9,6,61,1,5,12,1,1,11,24,-138,-138,-138,-138,-138,-138,-138,-138,-138,9,6,61,1,5,12,1,1,11,24,-139,-139,-139,-139,-139,-139,-139,-139,-139,2,58,1,687,258,2,58,1,688,258,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,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,689,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,690,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,9,6,61,1,5,12,1,1,11,24,-136,-136,-136,-136,-136,-136,-136,-136,-136,9,6,61,1,5,12,1,1,11,24,-137,-137,-137,-137,-137,-137,-137,-137,-137,4,60,1,2,2,-61,-61,-61,-61,2,6,62,108,691,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-411,-411,-411,-411,-411,-411,125,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,127,128,-411,-411,-411,-411,-411,-411,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,692,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-240,-240,-240,-240,-240,-240,125,-240,-240,129,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,127,128,97,98,-240,-240,-240,-240,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-286,-286,-286,-286,-286,-286,125,-286,-286,-286,-286,-286,693,-286,-286,-286,-286,-286,-286,-286,-286,127,128,-286,-286,-286,694,-286,-286,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,-291,125,-291,-291,-291,-291,-291,695,-291,-291,-291,-291,-291,-291,-291,-291,127,128,-291,-291,-291,-291,-291,-291,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-295,-295,-295,-295,-295,-295,125,-295,-295,-295,-295,-295,696,-295,-295,-295,-295,-295,-295,-295,-295,127,128,-295,-295,-295,-295,-295,-295,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-299,-299,-299,-299,-299,-299,125,-299,-299,-299,-299,-299,697,-299,-299,-299,-299,-299,-299,-299,-299,127,128,-299,-299,-299,-299,-299,-299,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,698,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,699,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-302,-302,-302,-302,-302,-302,125,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,127,128,-302,-302,-302,-302,-302,-302,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,25,68,7,13,6,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-163,125,-163,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,1,88,700,1,88,701,24,75,13,6,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,125,-67,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,64,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,702,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,56,1,5,54,1,5,1,1,3,2,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,107,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,1,2,2,5,4,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,252,85,86,703,67,43,44,91,92,251,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,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,1,3,1,6,2,1,10,1,1,1,1,7,3,11,2,1,2,2,5,4,4,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,331,103,104,54,53,73,74,94,100,60,84,88,252,85,86,330,67,43,44,91,92,251,704,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,5,6,61,1,5,51,-197,-197,-197,-197,-197,3,6,61,1,612,613,705,1,88,706,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,9,1,5,60,1,1,5,33,18,16,-171,-171,-171,-171,-171,-171,-171,-171,-171,6,6,61,1,5,51,2,-178,-178,-178,-178,-178,-178,8,6,61,1,5,24,1,8,18,-219,-219,-219,353,707,-219,-219,-219,2,67,11,164,620,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,708,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,709,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,710,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,711,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,712,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,26,67,8,3,16,5,51,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,713,129,714,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,26,67,8,3,16,5,51,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,715,129,716,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,2,67,11,164,717,1,68,718,4,6,62,79,12,719,-256,-256,-256,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,720,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,2,6,62,-319,-319,2,6,62,531,721,2,67,11,164,722,3,55,5,1,723,106,107,8,6,61,1,5,24,1,8,18,-219,-219,-219,545,724,-219,-219,-219,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,1,144,725,4,56,1,127,2,409,105,726,410,6,56,1,10,116,1,2,409,105,408,727,407,410,5,6,61,1,5,25,-335,-335,-335,-335,-335,3,6,61,1,655,656,728,5,6,61,1,5,25,-340,-340,-340,-340,-340,5,6,61,1,5,25,-342,-342,-342,-342,-342,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,14,1,5,60,1,1,5,33,18,16,4,6,1,10,1,-346,-346,-346,-346,-346,-346,-346,-346,-346,729,-346,-346,-346,-346,4,56,1,129,5,554,105,417,730,6,56,1,10,119,3,2,554,105,415,417,731,414,5,6,61,1,5,25,-364,-364,-364,-364,-364,3,6,61,1,663,664,732,5,6,61,1,5,25,-369,-369,-369,-369,-369,5,6,61,1,5,25,-370,-370,-370,-370,-370,5,6,61,1,5,25,-372,-372,-372,-372,-372,32,1,5,60,1,1,5,2,19,12,18,16,10,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-352,-352,-352,-352,-352,-352,125,129,-352,-352,-352,-352,127,128,-352,-352,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,733,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,9,6,61,1,5,24,1,8,9,9,-219,-219,-219,429,430,-219,-219,734,-219,5,6,61,1,5,33,-149,-149,-149,-149,-149,5,6,61,1,5,33,-150,-150,-150,-150,-150,1,88,735,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,14,40,16,1,25,1,1,7,4,5,5,2,24,37,2,313,156,105,158,159,157,100,736,737,84,160,199,312,198,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,738,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,5,6,61,1,5,25,-114,-114,-114,-114,-114,8,6,61,1,5,24,1,8,18,-219,-219,-219,447,739,-219,-219,-219,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,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,740,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,576,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,741,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,6,6,61,1,5,20,5,-127,-127,-127,-127,-127,-127,9,6,61,1,5,12,1,1,11,24,-140,-140,-140,-140,-140,-140,-140,-140,-140,9,6,61,1,5,12,1,1,11,24,-141,-141,-141,-141,-141,-141,-141,-141,-141,24,75,13,6,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,125,742,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,743,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,1,66,744,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,745,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,746,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,747,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,748,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,749,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,750,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-293,-293,-293,-293,-293,-293,125,-293,-293,-293,-293,-293,751,-293,-293,-293,-293,-293,-293,-293,-293,127,128,-293,-293,-293,-293,-293,-293,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-297,-297,-297,-297,-297,-297,125,-297,-297,-297,-297,-297,752,-297,-297,-297,-297,-297,-297,-297,-297,127,128,-297,-297,-297,-297,-297,-297,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,64,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,64,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,1,88,753,5,6,61,1,5,51,-198,-198,-198,-198,-198,8,6,61,1,5,24,1,8,18,-219,-219,-219,485,754,-219,-219,-219,5,6,61,1,5,51,-199,-199,-199,-199,-199,64,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,3,6,61,1,499,500,755,26,67,8,3,16,56,1,9,1,1,4,30,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,756,129,126,127,128,97,98,757,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,26,67,8,3,16,5,51,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,758,129,759,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,25,67,8,3,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,760,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,25,67,8,3,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,761,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,25,67,8,3,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,762,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,763,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,764,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,1,68,765,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,3,68,79,12,-257,-257,-257,25,67,6,2,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-206,-206,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,3,6,61,31,655,656,766,3,55,5,1,767,106,107,5,6,61,1,5,25,-336,-336,-336,-336,-336,8,6,61,1,5,24,1,8,18,-219,-219,-219,545,768,-219,-219,-219,5,6,61,1,5,25,-337,-337,-337,-337,-337,3,55,5,1,769,106,107,5,6,61,1,5,25,-365,-365,-365,-365,-365,8,6,61,1,5,24,1,8,18,-219,-219,-219,552,770,-219,-219,-219,5,6,61,1,5,25,-366,-366,-366,-366,-366,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,2,67,1,565,771,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,4,96,69,2,2,772,467,469,470,11,56,1,25,1,1,7,4,10,2,24,39,156,105,158,159,157,100,773,161,160,199,198,5,6,61,1,5,25,-119,-119,-119,-119,-119,3,6,61,1,578,579,774,28,6,61,1,5,2,19,4,52,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-118,-118,-118,-118,125,129,-118,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,5,6,61,1,5,25,-121,-121,-121,-121,-121,9,6,61,1,5,12,1,1,11,24,-142,-142,-142,-142,-142,-142,-142,-142,-142,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,775,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,4,60,1,2,2,-62,-62,-62,-62,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-287,-287,-287,-287,-287,-287,125,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,127,128,-287,-287,-287,776,-287,-287,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,-288,125,-288,-288,-288,-288,-288,777,-288,-288,-288,-288,-288,-288,-288,-288,127,128,-288,-288,-288,-288,-288,-288,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-292,-292,-292,-292,-292,-292,125,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,127,128,-292,-292,-292,-292,-292,-292,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-296,-296,-296,-296,-296,-296,125,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,127,128,-296,-296,-296,-296,-296,-296,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-300,-300,-300,-300,-300,-300,125,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,127,128,-300,-300,-300,-300,-300,-300,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,778,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,779,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,64,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,3,6,61,1,612,613,780,6,6,61,1,5,51,2,-179,-179,-179,-179,-179,-179,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,781,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,782,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,25,67,8,3,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,783,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,25,67,8,3,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,784,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,1,144,785,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,3,6,61,1,655,656,786,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,3,6,61,1,663,664,787,5,6,61,1,5,33,-151,-151,-151,-151,-151,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,788,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,1,96,789,5,6,61,1,5,25,-115,-115,-115,-115,-115,1,88,790,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,791,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,792,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-294,-294,-294,-294,-294,-294,125,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,127,128,-294,-294,-294,-294,-294,-294,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-298,-298,-298,-298,-298,-298,125,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,127,128,-298,-298,-298,-298,-298,-298,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,5,6,61,1,5,51,-200,-200,-200,-200,-200,25,67,8,3,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,793,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,25,67,8,3,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,794,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,3,55,5,1,795,106,107,5,6,61,1,5,25,-338,-338,-338,-338,-338,5,6,61,1,5,25,-367,-367,-367,-367,-367,46,1,5,60,1,1,5,2,13,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,798,125,-291,-291,-291,-291,796,-291,797,-291,-291,-291,-291,-291,-291,-291,-291,127,128,-291,-291,-291,-291,-291,-291,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,799,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,9,6,61,1,5,12,1,1,11,24,-143,-143,-143,-143,-143,-143,-143,-143,-143,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,-289,125,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,127,128,-289,-289,-289,-289,-289,-289,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,-290,125,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,127,128,-290,-290,-290,-290,-290,-290,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,1,98,800,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,801,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,6,6,61,1,30,8,18,-220,-220,-220,-220,-220,-220,46,1,5,60,1,1,5,2,13,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-293,-293,-293,-293,-293,798,125,-293,-293,-293,-293,802,-293,803,-293,-293,-293,-293,-293,-293,-293,-293,127,128,-293,-293,-293,-293,-293,-293,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,60,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,46,1,5,60,1,1,5,2,13,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-292,-292,-292,-292,-292,798,125,-292,-292,-292,-292,804,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,127,128,-292,-292,-292,-292,-292,-292,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,1,98,805,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,806,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,1,98,807,60,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,46,1,5,60,1,1,5,2,13,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-294,-294,-294,-294,-294,798,125,-294,-294,-294,-294,808,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,127,128,-294,-294,-294,-294,-294,-294,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,60,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,1,98,809,60,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109],_=[],F=0,U,u,$,W;while(F<f.length){U=f[F++],u={},$=0,W=[];while(U--)$+=f[F++],W.push($);for($ of W)u[$]=f[F++];_.push(u)}return _})(),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,7,1,8,1,8,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,46,1,46,1,56,1,58,1,55,1,55,3,62,1,62,2,64,3,64,5,64,2,64,1,48,1,48,3,72,3,72,1,17,3,17,4,17,5,18,3,19,3,19,4,19,5,20,3,20,4,20,3,21,3,21,4,21,5,22,3,22,4,22,3,22,2,22,3,22,2,37,1,37,1,37,1,81,1,81,1,81,3,81,3,81,4,81,6,81,4,81,6,81,4,81,5,81,7,81,3,81,3,81,4,81,6,83,10,83,12,83,11,83,13,83,4,101,0,101,1,101,3,101,4,101,6,102,1,102,1,102,3,102,5,102,3,102,5,104,1,104,1,104,1,92,1,92,3,92,4,92,1,103,2,103,2,109,1,109,1,109,1,109,1,109,1,109,2,109,2,109,2,109,2,109,3,109,3,109,4,109,6,82,2,82,3,82,4,114,1,114,3,114,4,114,4,114,6,116,1,116,2,115,1,115,2,113,1,113,2,118,1,118,2,119,1,119,1,40,5,89,3,89,2,89,2,89,1,33,6,33,3,15,5,15,2,35,5,35,2,127,1,127,1,123,0,123,1,123,3,123,4,123,6,130,1,130,3,130,2,130,1,131,1,131,1,131,1,131,1,132,2,41,2,41,2,41,3,41,2,41,2,111,2,111,4,134,1,134,3,134,4,134,4,134,6,117,1,117,1,117,1,117,1,135,1,135,3,43,1,43,1,84,2,44,3,44,4,44,6,45,3,45,3,78,2,78,3,39,3,39,5,97,0,97,1,10,2,10,4,10,1,31,2,31,4,32,1,32,2,32,4,32,3,145,3,145,5,148,3,148,5,23,1,23,3,23,1,23,3,23,3,23,7,23,5,23,3,23,3,24,2,24,3,24,4,24,5,153,3,153,3,153,2,27,5,27,7,27,4,27,6,157,1,157,2,158,3,158,4,160,2,160,4,160,2,160,4,25,2,25,2,25,2,25,1,163,2,163,2,163,3,26,5,26,7,26,7,26,9,26,9,26,5,26,7,26,6,26,8,26,5,26,7,26,6,26,8,26,5,26,7,26,3,26,5,26,5,26,7,26,7,26,9,26,9,26,5,26,7,26,6,26,8,26,5,26,7,26,6,26,8,26,5,26,7,26,3,26,5,170,1,170,3,95,1,95,3,28,1,28,2,28,3,28,4,28,2,28,3,28,4,28,5,34,3,29,4,29,6,175,1,175,3,175,2,176,1,176,1,176,1,176,2,176,2,30,2,12,2,12,4,12,4,12,5,12,7,12,6,12,9,183,1,183,3,183,4,183,4,183,6,184,1,184,3,184,1,184,3,181,1,182,3,13,3,13,5,13,2,13,2,13,2,13,2,13,4,13,5,13,6,13,2,13,2,13,2,13,2,13,3,13,5,13,4,13,5,13,7,189,1,189,3,189,4,189,4,189,6,191,1,191,3,191,3,191,1,191,3,36,2,36,2,36,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,4,16,2,16,2,16,2,16,2,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,5,16,3,16,5,16,4,42,2],ruleActions:(f,_,F,U)=>{let u=_,$=_.length-1;switch(f){case 1:return["program"];case 2:return["program",...u[$]];case 3:case 59:case 112:case 152:case 156:case 176:case 196:case 205:case 254:case 305:case 318:case 334:case 363:return[u[$]];case 4:case 113:case 177:case 197:case 206:case 319:case 335:case 364:return[...u[$-2],u[$]];case 5:case 61:case 159:case 320:return u[$-1];case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 64:case 65:case 88:case 89:case 90:case 91:case 92:case 117:case 122:case 123:case 124:case 125:case 128:case 131:case 132:case 133:case 134:case 135:case 147:case 173:case 174:case 180:case 184:case 185:case 186:case 187:case 201:case 202:case 203:case 219:case 220:case 234:case 236:case 265:case 303:case 321:case 322:case 323:case 339:case 341:case 343:case 368:case 371:return u[$];case 48:return"undefined";case 49:return"null";case 58:return["str",...u[$-1]];case 60:case 153:case 157:case 255:return[...u[$-1],u[$]];case 62:case 195:case 199:case 337:case 366:return u[$-2];case 63:return"";case 66:return["regex",u[$-1]];case 67:return["regex-index",u[$-2],u[$]];case 68:return["regex-index",u[$],null];case 69:return["=",u[$-2],u[$]];case 70:return["=",u[$-3],u[$]];case 71:return["=",u[$-4],u[$-1]];case 72:return["=",u[$],u[$-2]];case 73:return["state",u[$-2],u[$]];case 74:return["state",u[$-3],u[$]];case 75:return["state",u[$-4],u[$-1]];case 76:case 78:return["computed",u[$-2],u[$]];case 77:return["computed",u[$-3],u[$]];case 79:return["readonly",u[$-2],u[$]];case 80:return["readonly",u[$-3],u[$]];case 81:return["readonly",u[$-4],u[$-1]];case 82:case 84:return["effect",u[$-2],u[$]];case 83:return["effect",u[$-3],u[$]];case 85:case 86:case 87:return["effect",null,u[$]];case 93:case 102:case 140:return[".",u[$-2],u[$]];case 94:case 103:case 141:return["?.",u[$-2],u[$]];case 95:case 97:case 104:case 142:return["[]",u[$-3],u[$-1]];case 96:case 98:case 105:case 143:return["[]",u[$-5],u[$-2]];case 99:return[u[$-1][0],u[$-3],...u[$-1].slice(1)];case 100:return["optindex",u[$-4],u[$-1]];case 101:return["optindex",u[$-6],u[$-2]];case 106:return["object-comprehension",u[$-8],u[$-6],[["for-of",u[$-4],u[$-2],!1]],[]];case 107:return["object-comprehension",u[$-10],u[$-8],[["for-of",u[$-6],u[$-4],!1]],[u[$-2]]];case 108:return["object-comprehension",u[$-9],u[$-7],[["for-of",u[$-4],u[$-2],!0]],[]];case 109:return["object-comprehension",u[$-11],u[$-9],[["for-of",u[$-6],u[$-4],!0]],[u[$-2]]];case 110:return["object",...u[$-2]];case 111:case 154:case 175:case 194:return[];case 114:case 178:case 198:case 336:case 365:return[...u[$-3],u[$]];case 115:case 179:case 200:case 338:case 367:return[...u[$-5],...u[$-2]];case 116:return[u[$],u[$],null];case 118:return[u[$-2],u[$],":"];case 119:return[u[$-4],u[$-1],":"];case 120:return[u[$-2],u[$],"="];case 121:return[u[$-4],u[$-1],"="];case 126:return["dynamicKey",u[$-1]];case 127:return["[]","this",u[$-1]];case 129:case 130:case 188:return["...",u[$]];case 136:case 192:return["super",...u[$]];case 137:case 138:case 139:case 190:case 193:return[u[$-1],...u[$]];case 144:return["array"];case 145:return["array",...u[$-1]];case 146:return["array",...u[$-2],...u[$-1]];case 148:return[...u[$-2],...u[$]];case 149:return[...u[$-3],...u[$]];case 150:return[...u[$-2],...u[$-1]];case 151:return[...u[$-5],...u[$-4],...u[$-2],...u[$-1]];case 155:return[...u[$]];case 158:return null;case 160:return"..";case 161:case 204:return"...";case 162:return[u[$-2],u[$-3],u[$-1]];case 163:case 392:case 394:case 395:case 410:case 412:return[u[$-1],u[$-2],u[$]];case 164:return[u[$],u[$-1],null];case 165:return[u[$-1],null,u[$]];case 166:return[u[$],null,null];case 167:return["def",u[$-4],u[$-2],u[$]];case 168:return["def",u[$-1],[],u[$]];case 169:case 171:return[u[$-1],u[$-3],u[$]];case 170:case 172:return[u[$-1],[],u[$]];case 181:case 304:return["default",u[$-2],u[$]];case 182:return["rest",u[$]];case 183:return["expansion"];case 189:return["tagged-template",u[$-1],u[$]];case 191:return["optcall",u[$-2],...u[$]];case 207:case 208:return"this";case 209:return[".","this",u[$]];case 210:return[".","super",u[$]];case 211:return["[]","super",u[$-1]];case 212:return["[]","super",u[$-2]];case 213:return[".","new",u[$]];case 214:return[".","import",u[$]];case 215:return["block"];case 216:return["block",...u[$-1]];case 217:return u[$-1].length===1?u[$-1][0]:["block",...u[$-1]];case 218:return u[$-2].length===1?u[$-2][0]:["block",...u[$-2]];case 221:return["return",u[$]];case 222:return["return",u[$-1]];case 223:return["return"];case 224:return["throw",u[$]];case 225:return["throw",u[$-1]];case 226:return["yield"];case 227:return["yield",u[$]];case 228:return["yield",u[$-1]];case 229:return["yield-from",u[$]];case 230:return["if",u[$-1],u[$]];case 231:return u[$-4].length===3?["if",u[$-4][1],u[$-4][2],["if",u[$-1],u[$]]]:[...u[$-4],["if",u[$-1],u[$]]];case 232:return["if",["!",u[$-1]],u[$]];case 233:return["if",["!",u[$-3]],u[$-2],u[$]];case 235:return u[$-2].length===3?["if",u[$-2][1],u[$-2][2],u[$]]:[...u[$-2],u[$]];case 237:case 238:return["if",u[$],[u[$-2]]];case 239:return["?:",u[$-4],u[$-6],u[$-1]];case 240:return["?:",u[$-2],u[$-4],u[$]];case 241:case 242:return["if",["!",u[$]],[u[$-2]]];case 243:return["try",u[$]];case 244:return["try",u[$-1],u[$]];case 245:return["try",u[$-2],u[$]];case 246:return["try",u[$-3],u[$-2],u[$]];case 247:case 248:case 373:case 376:case 378:return[u[$-1],u[$]];case 249:return[null,u[$]];case 250:return["switch",u[$-3],u[$-1],null];case 251:return["switch",u[$-5],u[$-3],u[$-1]];case 252:return["switch",null,u[$-1],null];case 253:return["switch",null,u[$-3],u[$-1]];case 256:return["when",u[$-1],u[$]];case 257:return["when",u[$-2],u[$-1]];case 258:return["while",u[$]];case 259:return["while",u[$-2],u[$]];case 260:return["while",["!",u[$]]];case 261:return["while",["!",u[$-2]],u[$]];case 262:return u[$-1].length===2?[u[$-1][0],u[$-1][1],u[$]]:[u[$-1][0],u[$-1][1],u[$-1][2],u[$]];case 263:case 264:return u[$].length===2?[u[$][0],u[$][1],[u[$-1]]]:[u[$][0],u[$][1],u[$][2],[u[$-1]]];case 266:return["loop",u[$]];case 267:return["loop",[u[$]]];case 268:return["loop-n",u[$-1],u[$]];case 269:return["for-in",u[$-3],u[$-1],null,null,u[$]];case 270:return["for-in",u[$-5],u[$-3],null,u[$-1],u[$]];case 271:return["for-in",u[$-5],u[$-3],u[$-1],null,u[$]];case 272:return["for-in",u[$-7],u[$-5],u[$-1],u[$-3],u[$]];case 273:return["for-in",u[$-7],u[$-5],u[$-3],u[$-1],u[$]];case 274:return["for-of",u[$-3],u[$-1],!1,null,u[$]];case 275:return["for-of",u[$-5],u[$-3],!1,u[$-1],u[$]];case 276:return["for-of",u[$-3],u[$-1],!0,null,u[$]];case 277:return["for-of",u[$-5],u[$-3],!0,u[$-1],u[$]];case 278:return["for-as",u[$-3],u[$-1],!1,null,u[$]];case 279:return["for-as",u[$-5],u[$-3],!1,u[$-1],u[$]];case 280:case 282:return["for-as",u[$-3],u[$-1],!0,null,u[$]];case 281:case 283:return["for-as",u[$-5],u[$-3],!0,u[$-1],u[$]];case 284:return["for-in",[],u[$-1],null,null,u[$]];case 285:return["for-in",[],u[$-3],u[$-1],null,u[$]];case 286:return["comprehension",u[$-4],[["for-in",u[$-2],u[$],null]],[]];case 287:return["comprehension",u[$-6],[["for-in",u[$-4],u[$-2],null]],[u[$]]];case 288:return["comprehension",u[$-6],[["for-in",u[$-4],u[$-2],u[$]]],[]];case 289:return["comprehension",u[$-8],[["for-in",u[$-6],u[$-4],u[$]]],[u[$-2]]];case 290:return["comprehension",u[$-8],[["for-in",u[$-6],u[$-4],u[$-2]]],[u[$]]];case 291:return["comprehension",u[$-4],[["for-of",u[$-2],u[$],!1]],[]];case 292:return["comprehension",u[$-6],[["for-of",u[$-4],u[$-2],!1]],[u[$]]];case 293:return["comprehension",u[$-5],[["for-of",u[$-2],u[$],!0]],[]];case 294:return["comprehension",u[$-7],[["for-of",u[$-4],u[$-2],!0]],[u[$]]];case 295:return["comprehension",u[$-4],[["for-as",u[$-2],u[$],!1,null]],[]];case 296:return["comprehension",u[$-6],[["for-as",u[$-4],u[$-2],!1,null]],[u[$]]];case 297:return["comprehension",u[$-5],[["for-as",u[$-2],u[$],!0,null]],[]];case 298:return["comprehension",u[$-7],[["for-as",u[$-4],u[$-2],!0,null]],[u[$]]];case 299:return["comprehension",u[$-4],[["for-as",u[$-2],u[$],!0,null]],[]];case 300:return["comprehension",u[$-6],[["for-as",u[$-4],u[$-2],!0,null]],[u[$]]];case 301:return["comprehension",u[$-2],[["for-in",[],u[$],null]],[]];case 302:return["comprehension",u[$-4],[["for-in",[],u[$-2],u[$]]],[]];case 306:case 340:case 342:case 369:case 370:case 372:return[u[$-2],u[$]];case 307:return["class",null,null];case 308:return["class",null,null,u[$]];case 309:return["class",null,u[$]];case 310:return["class",null,u[$-1],u[$]];case 311:return["class",u[$],null];case 312:return["class",u[$-1],null,u[$]];case 313:return["class",u[$-2],u[$]];case 314:return["class",u[$-3],u[$-1],u[$]];case 315:return["enum",u[$-1],u[$]];case 316:return["component",null,["block",...u[$-1]]];case 317:return["component",u[$-3],["block",...u[$-1]]];case 324:return["offer",u[$]];case 325:return["accept",u[$]];case 326:return["render",u[$]];case 327:case 330:return["import","{}",u[$]];case 328:case 329:return["import",u[$-2],u[$]];case 331:return["import",u[$-4],u[$]];case 332:return["import",[u[$-4],u[$-2]],u[$]];case 333:return["import",[u[$-7],u[$-4]],u[$]];case 344:return["*",u[$]];case 345:return["export","{}"];case 346:return["export",u[$-2]];case 347:case 348:case 349:case 350:case 354:case 355:case 356:case 357:return["export",u[$]];case 351:return["export",["=",u[$-2],u[$]]];case 352:return["export",["=",u[$-3],u[$]]];case 353:return["export",["=",u[$-4],u[$-1]]];case 358:return["export-default",u[$]];case 359:return["export-default",u[$-1]];case 360:return["export-all",u[$]];case 361:return["export-from","{}",u[$]];case 362:return["export-from",u[$-4],u[$]];case 374:case 375:case 377:case 415:return["do-iife",u[$]];case 379:return["-",u[$]];case 380:return["+",u[$]];case 381:return["?",u[$-1]];case 382:return["defined",u[$-1]];case 383:return["presence",u[$-1]];case 384:return["await",u[$]];case 385:return["await",u[$-1]];case 386:return["--",u[$],!1];case 387:return["++",u[$],!1];case 388:return["--",u[$-1],!0];case 389:return["++",u[$-1],!0];case 390:return["+",u[$-2],u[$]];case 391:return["-",u[$-2],u[$]];case 393:return["**",u[$-2],u[$]];case 396:return["&",u[$-2],u[$]];case 397:return["^",u[$-2],u[$]];case 398:return["|",u[$-2],u[$]];case 399:case 400:case 401:case 402:case 403:case 404:return["control",u[$-1],u[$-2],u[$]];case 405:return["&&",u[$-2],u[$]];case 406:return["||",u[$-2],u[$]];case 407:return["??",u[$-2],u[$]];case 408:return["!?",u[$-2],u[$]];case 409:return["|>",u[$-2],u[$]];case 411:return["?:",u[$-4],u[$-2],u[$]];case 413:return[u[$-3],u[$-4],u[$-1]];case 414:return[u[$-2],u[$-3],u[$]]}},parseError(f,_){let F,U,u,$,W,w,Y;if(_.recoverable)return this.trace(f);else throw u=(_.line||0)+1,F=_.loc?.c||0,Y=_.token?` (token: ${_.token})`:"",w=_.text?` near '${_.text}'`:"",$=`line ${u}, column ${F}`,W=`Parse error at ${$}${Y}${w}: ${f}`,U=Error(W),U.hash=_,U},parse(f){let _,F,U,u,$,W,w,Y,Z,A,R,z,Q,D,J,q,X,G,O,K,P,E,H,M,I,S;[K,S,A]=[[0],[null],[]],[Q,I,H,E,q]=[this.parseTable,"",0,0,0],[F,_]=[2,1],Y=Object.create(this.lexer),G={ctx:{}};for(let N in this.ctx){if(!Object.hasOwn(this.ctx,N))continue;let B=this.ctx[N];G.ctx[N]=B}if(Y.setInput(f,G.ctx),[G.ctx.lexer,G.ctx.parser]=[Y,this],Y.loc==null)Y.loc={};M=Y.loc,A.push(M),this.parseError=typeof G.ctx.parseError==="function"?G.ctx.parseError:Object.getPrototypeOf(this).parseError,w=()=>{let N;if(N=Y.lex()||_,typeof N!=="number")N=this.symbolIds[N]||N;return N},P=D=O=U=J=z=W=R=$=null,X={};while(!0){if(O=K[K.length-1],P==null)P=w();if(U=Q[O]?.[P],U==null){if(u="",!q)$=(()=>{let N=[];for(let B in Q[O]){if(!Object.hasOwn(Q[O],B))continue;if(this.tokenNames[B]&&B>F)N.push(`'${this.tokenNames[B]}'`)}return N})();throw u=(()=>{if(Y.showPosition)return`Parse error on line ${H+1}:
|
|
4
|
+
`}function u1(f){if(!f)return f;return f=f.replace(/::/g,":"),f=f.replace(/(\w+(?:<[^>]+>)?)\?\?/g,"$1 | null | undefined"),f=f.replace(/(\w+(?:<[^>]+>)?)\?(?![.:])/g,"$1 | undefined"),f=f.replace(/(\w+(?:<[^>]+>)?)\!/g,"NonNullable<$1>"),f}function i1(f,w,U,_,u,$){if(!Array.isArray(f))return!1;let F=f[0]?.valueOf?.()??f[0],W=!1,Y=!1,R=null,A=null;if(F==="export"&&Array.isArray(f[1])){Y=!0;let Z=f[1];if((Z[0]?.valueOf?.()??Z[0])==="="&&Array.isArray(Z[2])&&(Z[2][0]?.valueOf?.()??Z[2][0])==="component")R=Z[1]?.valueOf?.()??Z[1],A=Z[2]}else if(F==="="&&Array.isArray(f[2])&&(f[2][0]?.valueOf?.()??f[2][0])==="component")R=f[1]?.valueOf?.()??f[1],A=f[2];if(R&&A){let Z=Y?"export ":"",z=A[1]?.valueOf?.()??null,X=z?`__RipProps<'${z}'>`:null;if(X)W=!0;let H=A[2],J=Array.isArray(H)&&(H[0]?.valueOf?.()??H[0])==="block"?H.slice(1):H?[H]:[],G=[],Q=[],q=!1,O=(K)=>{let I=K?.valueOf?.()??K;if(typeof I!=="string")return null;if(I==="true"||I==="false")return"boolean";if(/^-?\d+(\.\d+)?$/.test(I))return"number";if(I.startsWith('"')||I.startsWith("'"))return"string";return null};for(let K of J){if(!Array.isArray(K))continue;let I=K[0]?.valueOf?.()??K[0],E,D,M,P,S;if(I==="state"||I==="readonly"||I==="computed"){if(E=K[1],M=Array.isArray(E)&&(E[0]?.valueOf?.()??E[0])==="."&&(E[1]?.valueOf?.()??E[1])==="this",D=M?E[2]?.valueOf?.()??E[2]:E?.valueOf?.()??E,P=M?E[2]?.type:E?.type,S=!0,!M){u.add(D);let h=I==="computed"?"Computed":"Signal",C=P?u1(P):O(K[2])||"any";Q.push(` ${D}: ${h}<${C}>;`);continue}}else if(I==="."){if(M=(K[1]?.valueOf?.()??K[1])==="this",D=M?K[2]?.valueOf?.()??K[2]:null,P=M?K[2]?.type:null,S=!1,!M&&D)u.add(D)}else if(I==="object"){for(let h=1;h<K.length;h++){let C=K[h];if(!Array.isArray(C)||C.length<2)continue;let L=C[0]?.valueOf?.()??C[0],a=C[1];if(!Array.isArray(a))continue;let T=a[0]?.valueOf?.()??a[0];if(T!=="->"&&T!=="=>")continue;let V=a[1];if(!Array.isArray(V))continue;if(!V.some((i)=>i?.type))continue;let g=[];for(let i of V){let c=i?.valueOf?.()??i,y=i?.type?u1(i.type):"any";g.push(`${c}: ${y}`)}Q.push(` ${L}(${g.join(", ")}): void;`)}continue}else continue;if(!M||!D)continue;let N=P?u1(P):"any",B=S?"?":"";if(!S)q=!0;if(G.push(` ${D}${B}: ${N};`),I==="state")G.push(` __bind_${D}__?: Signal<${N}>;`)}if(w.push(`${Z}declare class ${R} {`),G.length>0||X){let K=q?"":"?";if(G.length>0){w.push(` constructor(props${K}: {`);for(let I of G)w.push(I);w.push(X?` } & ${X});`:" });")}else w.push(` constructor(props${K}: ${X});`)}for(let K of Q)w.push(K);w.push("}")}if(F==="program"||F==="block"){for(let Z=1;Z<f.length;Z++)if(Array.isArray(f[Z]))W=i1(f[Z],w,U,_,u,$)||W}if(F==="export"&&Array.isArray(f[1])&&!A)W=i1(f[1],w,U,_,u,$)||W;return W}function Q2(f,w,U){let[_,u]=w,$=_?.valueOf?.()??_,F=[];if(Array.isArray(u)){let R=u[0]==="block"?u.slice(1):[u];for(let A of R)if(Array.isArray(A)){if(A[0]?.valueOf?.()==="="){let Z=A[1]?.valueOf?.()??A[1],z=A[2]?.valueOf?.()??A[2];F.push([Z,z])}}}if(F.length===0)return`const ${$} = {}`;let W=F.map(([R,A])=>`${R}: ${A}`).join(", "),Y=F.map(([R,A])=>`${A}: "${R}"`).join(", ");return`const ${$} = {${W}, ${Y}}`}var K2=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"]),J2=new Set(["undefined","Infinity","NaN","then","unless","until","loop","of","by","when","def","component","render","enum","interface"]),p1={and:"&&",or:"||",is:"==",isnt:"!=",not:"!",yes:"true",no:"false",on:"true",off:"false"},D2=new Set(Object.keys(p1)),q3=new Set(["case","function","var","void","with","const","let","native","implements","package","private","protected","public","static"]),E3=new Set(["break","continue","debugger"]),P3=new Set(["NEW","TYPEOF","DELETE"]),I3=new Set(["IN","OF","INSTANCEOF"]),V1=new Set(["IDENTIFIER","PROPERTY",")","]","@","THIS","SUPER","DYNAMIC_IMPORT","?."]),B2=new Set([...V1,"NUMBER","INFINITY","NAN","STRING","STRING_END","REGEX","REGEX_END","BOOL","NULL","UNDEFINED","}"]),h1=new Set(["IDENTIFIER","PROPERTY","NUMBER","INFINITY","NAN","STRING","STRING_START","REGEX","REGEX_START","JS","NEW","PARAM_START","CLASS","IF","TRY","SWITCH","THIS","DYNAMIC_IMPORT","IMPORT_META","NEW_TARGET","UNDEFINED","NULL","BOOL","UNARY","DO","DO_IIFE","YIELD","AWAIT","UNARY_MATH","SUPER","THROW","@","->","=>","[","(","{","--","++"]),B3=new Set(["+","-"]),N3=new Set(["POST_IF","POST_UNLESS","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR","||","&&","PIPE"]),S3=new Set(["STRING","STRING_END","REGEX","REGEX_END","NUMBER","BOOL","NULL","UNDEFINED","INFINITY","NAN","]","}"]),z1=new Set(["(","[","{","INDENT","CALL_START","PARAM_START","INDEX_START","STRING_START","INTERPOLATION_START","REGEX_START"]),A1=new Set([")","]","}","OUTDENT","CALL_END","PARAM_END","INDEX_END","STRING_END","INTERPOLATION_END","REGEX_END"]),L3={"(":")",")":"(","[":"]","]":"[","{":"}","}":"{",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"},H2=new Set(["CATCH","THEN","ELSE","FINALLY",...A1]),d1=new Set(["IDENTIFIER","PROPERTY","SUPER",")","CALL_END","]","INDEX_END","@","THIS"]),T3=new Set(["IDENTIFIER","PROPERTY",")","CALL_END","]","INDEX_END"]),h3=new Set(["IF","TRY","FINALLY","CATCH","CLASS","SWITCH","COMPONENT"]),M2=new Set(["ELSE","->","=>","TRY","FINALLY","THEN"]),V3=new Set(["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"]),O1=new Set(["INDENT","OUTDENT","TERMINATOR"]),G2=new Set([".","?."]),O2=new Set(["\\",".","?.","UNARY","DO","DO_IIFE","MATH","UNARY_MATH","+","-","**","SHIFT","RELATION","COMPARE","&","^","|","&&","||","TERNARY","EXTENDS"]),C3=new Set([...B2,"++","--"]),q2=new Set(["-=","+=","/=","*=","%=","||=","&&=","?=","??=","<<=",">>=",">>>=","&=","^=","|=","**=","//=","%%="]),j3=new Set(["*","/","%","//","%%"]),c3=new Set(["==","!=","===","!==","<",">","<=",">=","=~"]),y3=new Set(["<<",">>",">>>"]),b3=new Set(["!","~"]),v3=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+(?:!(?!\?)|[?](?![.?![(]))?)([^\n\S]*:(?![=:>]))?/,g3=/^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,x3=/^(?:<=>|::|\*>|[-=]>|~>|~=|:>|:=|=!|===|!==|!\?|\?\!|\?\?|=~|\|>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?\.?|\.{2,3})/,l3=/^[^\n\S]+/,k3=/^(?:\n[^\n\S]*)+/,m3=/^(\s*)###([^#][\s\S]*?)(?:###([^\n\S]*)|###$)|^((?:\s*#(?!##[^#]).*)+)/,i3=/^[-=]>/,n3=/^(?:~[=>]|=!)/,d3=/^(?:'''\\|"""\\|'''|"""|'|")/,p3=/^(?:[^\\']|\\[\s\S])*/,r3=/^(?:[^\\"#$]|\\[\s\S]|\#(?!\{)|\$(?!\{))*/,o3=/^(?:[^\\']|\\[\s\S]|'(?!''))*/,a3=/^(?:[^\\"#$]|\\[\s\S]|"(?!"")|\#(?!\{)|\$(?!\{))*/,E2=/\n+([^\n\S]*)(?=\S)/g,s3=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/,P2=/^\w*/,t3=/^(?!.*(.).*\1)[gimsuy]*$/,e3=/^(?:[^\\\/#\s]|\\[\s\S]|\/(?!\/\/)|\#(?!\{)|\s+(?:#(?!\{).*)?)*/,u7=/^`(?!``)((?:[^`\\]|\\[\s\S])*)`/,f7=/^```((?:[^`\\]|\\[\s\S]|`(?!``))*)```/,$7=/\s+$/,I2=/^\s*(?:,|\??\.(?![.\d]))/,w7=65279;function C1(f,w,{pre:U=0,row:_=0,col:u=0,len:$=0,data:F=null}={}){let W=[f,w];return W.pre=U,W.data=F,W.loc={r:_,c:u,n:$},W.spaced=U>0,W.newLine=!1,W}function U1(f,w,U){let _=C1(f,w);if(_.generated=!0,U)_.origin=U;return _}function W1(f,{row:w=0,col:U=0,len:_=1}={}){let u=SyntaxError(f);throw u.location={first_line:w,first_column:U,last_column:U+_-1},u}function _7(f){if(f==null)return NaN;switch(f.charAt(1)){case"b":return parseInt(f.slice(2).replace(/_/g,""),2);case"o":return parseInt(f.slice(2).replace(/_/g,""),8);case"x":return parseInt(f.slice(2).replace(/_/g,""),16);default:return parseFloat(f.replace(/_/g,""))}}class R1{tokenize(f,w={}){this.code=f,this.tokens=[],this.ends=[],this.chunk="",this.pos=0,this.row=w.row||0,this.col=w.col||0,this.indent=0,this.indents=[],this.seenFor=!1,this.seenImport=!1,this.seenExport=!1,this.importSpecifierList=!1,this.exportSpecifierList=!1,this.inRenderBlock=!1,this.renderIndent=0,this.inTypeAnnotation=!1,f=this.clean(f),this.code=f;while(this.pos<f.length){this.chunk=f.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)W1(`unexpected character: ${this.chunk.charAt(0)}`,{row:this.row,col:this.col});if(this.advance(U),w.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];W1(`missing ${U.tag}`,{row:this.row,col:this.col})}if(w.rewrite===!1)return this.tokens;return this.rewrite(this.tokens)}clean(f){if(f.charCodeAt(0)===w7)f=f.slice(1);if(f=f.replace(/\r\n?/g,`
|
|
5
|
+
`),f=f.replace($7,""),/^[^\n\S]/.test(f))f=`
|
|
6
|
+
`+f;return f}advance(f){let w=this.code.slice(this.pos,this.pos+f);for(let U=0;U<w.length;U++)if(w[U]===`
|
|
7
|
+
`)this.row++,this.col=0;else this.col++;this.pos+=f}emit(f,w,{len:U,data:_,pre:u}={}){let $=C1(f,w,{pre:u??0,row:this.row,col:this.col,len:U??(typeof w==="string"?w.length:0),data:_});return this.tokens.push($),$}prev(){return this.tokens[this.tokens.length-1]}prevTag(){let f=this.prev();return f?f[0]:void 0}prevVal(){let f=this.prev();return f?f[1]:void 0}identifierToken(){if(n3.test(this.chunk))return 0;let f=v3.exec(this.chunk);if(!f)return 0;let[,w,U]=f,_=w.length,u={},$;if(w==="own"&&this.prevTag()==="FOR")return this.emit("OWN",w,{len:_}),_;if(w==="from"&&this.prevTag()==="YIELD")return this.emit("FROM",w,{len:_}),_;if(w==="as"&&!this.seenFor&&(this.seenImport||this.seenExport)){if(this.seenImport){if(this.prevVal()==="*")this.prev()[0]="IMPORT_ALL"}let A=this.prevTag();if(A==="DEFAULT"||A==="IMPORT_ALL"||A==="IDENTIFIER")return this.emit("AS",w,{len:_}),_}if((w==="as"||w==="as!")&&this.seenFor)return this.seenFor=!1,this.emit(w==="as!"?"FORASAWAIT":"FORAS","as",{len:_}),_;if(w==="default"&&this.seenExport&&(this.prevTag()==="EXPORT"||this.prevTag()==="AS"))return this.emit("DEFAULT",w,{len:_}),_;let F;if(w==="do"&&(F=/^(\s*super)(?!\(\))/.exec(this.chunk.slice(3))))return this.emit("SUPER","super"),this.emit("CALL_START","("),this.emit("CALL_END",")"),F[1].length+3;let W=this.prev();if(U&&W&&W[0]==="TERNARY")U=null;if(U||W&&(W[0]==="."||W[0]==="?."||!W.spaced&&W[0]==="@")){if($="PROPERTY",this.inRenderBlock&&W&&W[0]==="."&&!U){let A=this.chunk.slice(_);while(A[0]==="-"&&/^-[a-zA-Z]/.test(A)){let Z=/^-([a-zA-Z][\w]*)/.exec(A);if(!Z)break;w+="-"+Z[1],_+=1+Z[1].length,A=this.chunk.slice(_)}}}else $="IDENTIFIER";let Y=w.endsWith("!")||w.endsWith("?")?w.slice(0,-1):w;if($==="IDENTIFIER"&&!w.endsWith("!")&&!w.endsWith("?")&&(K2.has(w)||J2.has(w)||D2.has(w))&&!(this.exportSpecifierList&&D2.has(w))){if(p1[w]!==void 0)u.original=w,w=p1[w];$=this.classifyKeyword(w,$,u)}if($==="IDENTIFIER"&&q3.has(Y)&&!(Y==="void"&&this.inTypeAnnotation))W1(`reserved word '${Y}'`,{row:this.row,col:this.col,len:_});if($==="PROPERTY"&&W){if(W[0]==="."&&this.tokens.length>1){let A=this.tokens[this.tokens.length-2];if(A[0]==="UNARY"&&A[1]==="new")A[0]="NEW_TARGET";if(A[0]==="IMPORT"&&A[1]==="import")this.seenImport=!1,A[0]="IMPORT_META"}}if(w.length>1&&w.endsWith("!"))u.await=!0,w=w.slice(0,-1);if(w.length>1&&w.endsWith("?"))u.predicate=!0,w=w.slice(0,-1);let R=this.emit($,w,{len:_,data:Object.keys(u).length?u:null});if($==="RENDER")this.inRenderBlock=!0,this.renderIndent=this.indent;if(U)return this.emit(":",":",{len:1}),_+U.length;return _}classifyKeyword(f,w,U){switch(f){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"true":case"false":return"BOOL";case"&&":case"||":return f}if(E3.has(f))return"STATEMENT";let _=f.toUpperCase();if(_==="WHEN"&&O1.has(this.prevTag()))return"LEADING_WHEN";if(_==="FOR")return this.seenFor={endsLength:this.ends.length},"FOR";if(_==="UNLESS")return"UNLESS";if(_==="IMPORT")return this.seenImport=!0,"IMPORT";if(_==="EXPORT")return this.seenExport=!0,"EXPORT";if(P3.has(_))return"UNARY";if(I3.has(_)){if(_!=="INSTANCEOF"&&this.seenFor)return this.seenFor=!1,"FOR"+_;if(this.prevVal()==="!"){let u=this.tokens.pop();U.invert=u.data?.original||u[1]}return"RELATION"}if(K2.has(f)||J2.has(f))return _;return w}commentToken(){if(this.inRenderBlock){if(/^#[a-zA-Z_]/.test(this.chunk)){let w=this.prev();if(w&&(w[0]==="IDENTIFIER"||w[0]==="PROPERTY"))return 0;let U=/^#([a-zA-Z_][\w-]*)/.exec(this.chunk);if(U)return this.emit("IDENTIFIER","div#"+U[1]),U[0].length}if(/^\s+#[a-zA-Z_]/.test(this.chunk))return 0}let f=m3.exec(this.chunk);if(!f)return 0;return f[0].length}whitespaceToken(){let f=l3.exec(this.chunk);if(!f&&this.chunk[0]!==`
|
|
8
|
+
`)return 0;let w=this.prev();if(w)if(f)w.spaced=!0,w.pre=f[0].length;else w.newLine=!0;return f?f[0].length:0}lineToken(){let f=k3.exec(this.chunk);if(!f)return 0;let w=f[0],U=w.length-1-w.lastIndexOf(`
|
|
9
|
+
`);if(this.isUnfinished()){if(U<this.indent&&/^\s*,/.test(this.chunk)&&!O2.has(this.prevTag())){if(this.outdentTo(U,w.length),this.prevTag()==="TERMINATOR")this.tokens.pop();return w.length}return w.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(this.inTypeAnnotation=!1,U===this.indent)return this.emitNewline(),w.length;if(U>this.indent){if(!this.tokens.length)return this.indent=U,w.length;let _=U-this.indent;return this.emit("INDENT",_,{len:U}),this.indents.push(_),this.ends.push({tag:"OUTDENT"}),this.indent=U,w.length}return this.outdentTo(U,w.length),w.length}outdentTo(f,w=0){if(this.inRenderBlock&&f<=this.renderIndent)this.inRenderBlock=!1;let U=this.indent-f;while(U>0){let _=this.indents[this.indents.length-1];if(!_)U=0;else this.indents.pop(),this.pair("OUTDENT"),this.emit("OUTDENT",U,{len:w}),U-=_}this.emitNewline(),this.indent=f}closeIndentation(){this.outdentTo(0)}emitNewline(){if(this.prevTag()!=="TERMINATOR")this.emit("TERMINATOR",`
|
|
10
|
+
`,{len:0})}isUnfinished(){if(this.inRenderBlock&&I2.test(this.chunk)&&/^\s*\./.test(this.chunk))return!1;if(this.inRenderBlock&&this.prevTag()==="."){let w=this.tokens.length;if(w>=2){let U=this.tokens[w-2][0];if(U==="INDENT"||U==="TERMINATOR"||U==="OUTDENT")return!1}}let f=this.tokens[this.tokens.length-1];if(f?.[0]==="COMPARE"&&f[1]===">"){let w=0;for(let U=this.tokens.length-1;U>=0;U--){let _=this.tokens[U];if(_[0]==="COMPARE"&&_[1]===">")w++;else if(_[0]==="COMPARE"&&_[1]==="<")w--;if(w===0&&_[0]==="TYPE_ANNOTATION")return!1;if(_[0]==="TERMINATOR"||_[0]==="INDENT"||_[0]==="OUTDENT")break}}return I2.test(this.chunk)||O2.has(this.prevTag())}pair(f){let w=this.ends[this.ends.length-1];if(!w||f!==w.tag){if(w?.tag==="OUTDENT"){let U=this.indents[this.indents.length-1];if(U)this.outdentTo(this.indent-U);return this.pair(f)}W1(`unmatched ${f}`,{row:this.row,col:this.col})}return this.ends.pop()}stringToken(){let f=d3.exec(this.chunk);if(!f)return 0;let w=f[0],U=w.length>1&&w.endsWith("\\"),_=U?w.slice(0,-1):w,u=this.prev();if(u&&this.prevVal()==="from"&&(this.seenImport||this.seenExport))u[0]="FROM";let $;switch(_){case"'":$=p3;break;case'"':$=r3;break;case"'''":$=o3;break;case'"""':$=a3;break}let{tokens:F,index:W}=this.matchWithInterpolations($,w,_),Y=_.length===3,R=null;if(Y)R=this.processHeredocIndent(W,_,F);return this.mergeInterpolationTokens(F,{quote:_,indent:R,endOffset:W,raw:U}),W}processHeredocIndent(f,w,U){let _=f-w.length,u=_-1;while(u>=0&&this.chunk[u]!==`
|
|
11
|
+
`)u--;u++;let $=this.chunk.slice(u,_),F=/^\s*$/.test($)?$.length:null,W="";for(let A of U)if(A[0]==="NEOSTRING")W+=A[1];let Y=null,R;E2.lastIndex=0;while(R=E2.exec(W))if(Y===null||R[1].length>0&&R[1].length<Y.length)Y=R[1];if(F===null)return Y;if(Y===null)return" ".repeat(F);if(F<=Y.length)return" ".repeat(F);return Y}matchWithInterpolations(f,w,U,_){if(!U)U=w;if(!_)_=/^[#$]\{/;let u=[],$=w.length;if(this.chunk.slice(0,$)!==w)return null;let F=this.chunk.slice($);while(!0){let[W]=f.exec(F);u.push(["NEOSTRING",W,{offset:$}]),F=F.slice(W.length),$+=W.length;let Y=_.exec(F);if(!Y)break;let A=Y[0].length-1,Z=F.slice(A),z=new R1().tokenize(Z,{row:this.row,col:this.col+$+A,untilBalanced:!0,rewrite:!1}),X=z.index+A;if(F[X-1]==="}"){let J=z.tokens[0],G=z.tokens[z.tokens.length-1];J[0]="INTERPOLATION_START",J[1]="(",G[0]="INTERPOLATION_END",G[1]=")"}if(z.tokens[1]?.[0]==="TERMINATOR")z.tokens.splice(1,1);let H=z.tokens.length;if(H>2&&z.tokens[H-3]?.[0]==="INDENT"&&z.tokens[H-2]?.[0]==="OUTDENT")z.tokens.splice(H-3,2);u.push(["TOKENS",z.tokens]),F=F.slice(X),$+=X}if(F.slice(0,U.length)!==U)W1(`missing ${U}`,{row:this.row,col:this.col});return{tokens:u,index:$+U.length}}mergeInterpolationTokens(f,{quote:w,indent:U,endOffset:_,raw:u}){if(f.length>1)this.emit("STRING_START","(",{len:w?.length||0,data:{quote:w}});for(let $=0;$<f.length;$++){let[F,W]=f[$];if(F==="TOKENS")for(let Y of W)this.tokens.push(Y);else if(F==="NEOSTRING"){let Y=W;if(U){let R=new RegExp("\\n"+U,"g");Y=Y.replace(R,`
|
|
12
|
+
`)}if($===0&&w?.length===3)Y=Y.replace(/^\n/,"");if($===f.length-1&&w?.length===3)Y=Y.replace(/\n[^\S\n]*$/,"");if(u)Y=Y.replace(/\\([nrtbfv0\\'"`xu])/g,"\\\\$1");this.emit("STRING",`"${Y}"`,{len:W.length,data:{quote:w}})}}if(f.length>1)this.emit("STRING_END",")",{len:w?.length||0});return _}numberToken(){let f=g3.exec(this.chunk);if(!f)return 0;let w=f[0],U=w.length,_={row:this.row,col:this.col};if(/^0[BOX]/.test(w))W1(`radix prefix in '${w}' must be lowercase`,{..._,col:_.col+1});if(/^0\d*[89]/.test(w))W1(`decimal literal '${w}' must not be prefixed with '0'`,{..._,len:U});if(/^0\d+/.test(w))W1(`octal literal '${w}' must be prefixed with '0o'`,{..._,len:U});let u=_7(w),$=u===1/0?"INFINITY":"NUMBER",F={parsedValue:u};if($==="INFINITY")F.original=w;return this.emit($,w,{len:U,data:F}),U}regexToken(){let f=this.matchWithInterpolations(e3,"///");if(f){let{tokens:R,index:A}=f,[Z]=P2.exec(this.chunk.slice(A)),z=A+Z.length;if(R.length===1||!R.some((X)=>X[0]==="TOKENS")){let X=(R[0]?.[1]||"").replace(/(?<!\\)\//g,"\\/");this.emit("REGEX",`/${X}/${Z}`,{len:z,data:{delimiter:"///",heregex:{flags:Z}}})}else{if(this.emit("REGEX_START","(",{len:0}),this.emit("IDENTIFIER","RegExp",{len:0}),this.emit("CALL_START","(",{len:0}),this.mergeInterpolationTokens(R,{quote:"///",endOffset:z-Z.length}),Z)this.emit(",",",",{len:0}),this.emit("STRING",`"${Z}"`,{len:Z.length});this.emit(")",")",{len:0}),this.emit("REGEX_END",")",{len:0})}return z}let w=s3.exec(this.chunk);if(!w)return 0;let[U,_,u]=w,$=this.prev();if($){if($.spaced&&V1.has($[0])&&(!u||/^\/=?\s/.test(U)))return 0;if(C3.has($[0])&&!($.spaced&&V1.has($[0])))return 0}if(!u)W1("missing / (unclosed regex)",{row:this.row,col:this.col});let F=U.length,[W]=P2.exec(this.chunk.slice(F)),Y=F+W.length;if(!t3.test(W))W1(`invalid regular expression flags ${W}`,{row:this.row,col:this.col+F,len:W.length});return this.emit("REGEX",`/${_}/${W}`,{len:Y,data:{delimiter:"/"}}),Y}jsToken(){if(this.chunk[0]!=="`")return 0;let f=f7.exec(this.chunk)||u7.exec(this.chunk);if(!f)return 0;let w=f[1],U=f[0].length;return this.emit("JS",w,{len:U,data:{here:f[0].startsWith("```")}}),U}wordLiteral(){if(this.chunk[0]!=="%"||this.chunk[1]!=="w")return 0;let f=this.chunk[2];if(!f||/\s/.test(f))return 0;let U={"[":"]","(":")","{":"}","<":">"}[f]||f,_=U!==f,u=1,$=3;while($<this.chunk.length&&u>0){let R=this.chunk[$];if(R==="\\"){$+=2;continue}if(_&&R===f)u++;if(R===U)u--;if(u>0)$++}if(u!==0)return 0;let F=this.chunk.slice(3,$),W=$+1,Y=[];if(F.trim()){let R=F.trim().split(/(?<!\\)\s+/);for(let A of R)Y.push(A.replace(/\\ /g," "))}this.emit("[","[",{len:W});for(let R=0;R<Y.length;R++){if(R>0)this.emit(",",",");this.emit("STRING",`"${Y[R]}"`)}return this.emit("]","]"),W}literalToken(){let f=this.wordLiteral();if(f)return f;let w=x3.exec(this.chunk),U=w?w[0]:this.chunk.charAt(0),_=U,u=this.prev();if(i3.test(U))this.tagParameters();if(U==="="&&u&&u[1]==="."&&!u.spaced){let $=this.tokens,F=$.length-2;while(F>=1&&$[F][0]==="PROPERTY"&&$[F-1]?.[1]===".")F-=2;if(F>=0&&($[F][0]==="IDENTIFIER"||$[F][0]===")"||$[F][0]==="]")){let W=$.slice(F,$.length-1);u[0]="=",u[1]="=";for(let Y of W)this.tokens.push(C1(Y[0],Y[1],{pre:0,row:Y[2],col:Y[3],len:Y[4]}));return this.tokens.push(C1(".",".",{pre:0,row:this.row,col:this.col,len:1})),U.length}}if(u&&(U==="="||q2.has(U))){if(U==="="&&(u[1]==="||"||u[1]==="&&"||u[1]==="??")&&!u.spaced)return u[0]="COMPOUND_ASSIGN",u[1]+="=",U.length}if(U==="("&&u?.[0]==="IMPORT")u[0]="DYNAMIC_IMPORT";if(U==="{"&&this.seenImport)this.importSpecifierList=!0;if(U==="}"&&this.importSpecifierList)this.importSpecifierList=!1;if(U==="{"&&u?.[0]==="EXPORT")this.exportSpecifierList=!0;if(U==="}"&&this.exportSpecifierList)this.exportSpecifierList=!1;if(U===";")this.seenFor=this.seenImport=this.seenExport=!1,this.inTypeAnnotation=!1,_="TERMINATOR";else if(U==="|>")_="PIPE";else if(U==="::"&&/^[a-zA-Z_$]/.test(this.chunk[2]||""))return this.emit(".","."),this.emit("PROPERTY","prototype"),this.emit(".","."),2;else if(U==="::")_="TYPE_ANNOTATION",this.inTypeAnnotation=!0;else if(U==="~=")_="COMPUTED_ASSIGN";else if(U===":=")_="REACTIVE_ASSIGN";else if(U===":>")_="RIGHTWARD_ASSIGN";else if(U==="<=>")_="BIND";else if(U==="~>")_="EFFECT",this.inTypeAnnotation=!1;else if(U==="=!")_="READONLY_ASSIGN",this.inTypeAnnotation=!1;else if(U==="*>"&&(!u||u[0]==="TERMINATOR"||u[0]==="INDENT"||u[0]==="OUTDENT")&&(/^[a-zA-Z_$]/.test(this.chunk[2]||"")||this.chunk[2]==="@")){let $=this.chunk.slice(2),F=/^@(\s*)=(?!=)/.exec($);if(F){let Y=F[1];this.emit("IDENTIFIER","Object"),this.emit(".",".");let R=this.emit("PROPERTY","assign");return R.spaced=!0,this.emit("@","@"),this.emit(",",","),3+Y.length+1}let W=/^(@?(?:(?!\s)[$\w\x7f-\uffff])+(?:\.[a-zA-Z_$][\w]*)*)(\s*)=(?!=)/.exec($);if(W){let Y=W[1],R=W[2],A=Y[0]==="@",Z=A?Y.slice(1):Y,z=Z?Z.split("."):[],X=()=>{if(A){if(this.emit("@","@"),z.length>0)this.emit("PROPERTY",z[0])}else this.emit("IDENTIFIER",z[0]);for(let J=1;J<z.length;J++)this.emit(".","."),this.emit("PROPERTY",z[J])};X(),this.emit("=","="),this.emit("IDENTIFIER","Object"),this.emit(".","."),this.emit("PROPERTY","assign"),this.emit("CALL_START","("),X(),this.emit("COMPOUND_ASSIGN","??="),this.emit("{","{"),this.emit("}","}"),this.emit(",",",");let H=this.prev();return H.mergeClose=!0,2+Y.length+R.length+1}}else if(U==="*"&&u?.[0]==="EXPORT")_="EXPORT_ALL";else if(j3.has(U))_="MATH";else if(c3.has(U))_="COMPARE";else if(q2.has(U))_="COMPOUND_ASSIGN";else if(b3.has(U))_="UNARY_MATH";else if(y3.has(U))_="SHIFT";else if(U==="?"&&u?.spaced)_="TERNARY";else if(U==="!?"&&u&&!u.spaced)_="DEFINED";else if(U==="?!"&&u&&!u.spaced)_="PRESENCE";else if(U==="?"&&(this.chunk[1]==="["||this.chunk[1]==="("))_="?.";else if(u){if(U==="("&&!u.spaced&&V1.has(u[0])){if(u[0]==="?.")u[0]="ES6_OPTIONAL_CALL";_="CALL_START"}if(U==="["&&!u.spaced&&B2.has(u[0])){if(_="INDEX_START",u[0]==="?.")u[0]="ES6_OPTIONAL_INDEX"}}if(this.inTypeAnnotation&&(U==="="||_==="COMPOUND_ASSIGN"))this.inTypeAnnotation=!1;if(U==="("||U==="{"||U==="[")this.ends.push({tag:L3[U],origin:[_,U]});else if(U===")"||U==="}"||U==="]")this.pair(U);return this.emit(_,U,{len:U.length}),U.length}tagParameters(){if(this.prevTag()!==")")return this.tagDoIife();let f=this.tokens.length-1,w=[];this.tokens[f][0]="PARAM_END";while(f-- >0){let U=this.tokens[f];if(U[0]===")")w.push(U);else if(U[0]==="("||U[0]==="CALL_START")if(w.length)w.pop();else if(U[0]==="(")return U[0]="PARAM_START",this.tagDoIife(f-1);else{this.tokens[this.tokens.length-1][0]="CALL_END";return}}}tagDoIife(f){let w=this.tokens[f??this.tokens.length-1];if(w?.[0]==="DO")w[0]="DO_IIFE"}rewrite(f){return this.tokens=f,this.removeLeadingNewlines(),this.closeMergeAssignments(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.rewriteRender?.(),this.rewriteTypes(),this.tagPostfixConditionals(),this.rewriteTaggedTemplates(),this.addImplicitBracesAndParens(),this.addImplicitCallCommas(),this.tokens}removeLeadingNewlines(){let f=0;while(this.tokens[f]?.[0]==="TERMINATOR")f++;if(f>0)this.tokens.splice(0,f)}closeOpenCalls(){this.scanTokens((f,w)=>{if(f[0]==="CALL_START")this.detectEnd(w+1,(U)=>U[0]===")"||U[0]==="CALL_END",(U)=>U[0]="CALL_END");return 1})}closeOpenIndexes(){this.scanTokens((f,w)=>{if(f[0]==="INDEX_START")this.detectEnd(w+1,(U)=>U[0]==="]"||U[0]==="INDEX_END",(U,_)=>{if(this.tokens[_+1]?.[0]===":")f[0]="[",U[0]="]";else U[0]="INDEX_END"});return 1})}normalizeLines(){let f=null,w=null,U=null,_=($,F)=>{return $[1]!==";"&&V3.has($[0])&&!($[0]==="TERMINATOR"&&H2.has(this.tokens[F+1]?.[0]))&&!($[0]==="ELSE"&&f!=="THEN")||$[0]==="INDENT"&&!$.generated&&(f==="->"||f==="=>")||$[0]===","&&(f==="->"||f==="=>")&&!this.commaInImplicitCall(F)&&!this.commaInImplicitObject(F)||G2.has($[0])&&(this.tokens[F-1]?.newLine||this.tokens[F-1]?.[0]==="OUTDENT")},u=($,F)=>{let W=this.tokens[F-1]?.[0]===","?F-1:F;this.tokens.splice(W,0,U)};this.scanTokens(($,F,W)=>{let[Y]=$;if(Y==="TERMINATOR"){if(this.tokens[F+1]?.[0]==="ELSE"&&this.tokens[F-1]?.[0]!=="OUTDENT")return W.splice(F,1,...this.makeIndentation()),1;if(H2.has(this.tokens[F+1]?.[0]))return W.splice(F,1),0}if(Y==="CATCH")for(let R=1;R<=2;R++){let A=this.tokens[F+R]?.[0];if(A==="OUTDENT"||A==="TERMINATOR"||A==="FINALLY")return W.splice(F+R,0,...this.makeIndentation()),2+R}if((Y==="->"||Y==="=>")&&(this.tokens[F+1]?.[0]===","||this.tokens[F+1]?.[0]==="]"))return[w,U]=this.makeIndentation(),W.splice(F+1,0,w,U),1;if(M2.has(Y)&&this.tokens[F+1]?.[0]!=="INDENT"&&!(Y==="ELSE"&&this.tokens[F+1]?.[0]==="IF")&&!(Y==="ELSE"&&this.tokens[F-1]?.[0]!=="OUTDENT")){if(f=Y,[w,U]=this.makeIndentation(),Y==="THEN")w.fromThen=!0;if(W.splice(F+1,0,w),this.detectEnd(F+2,_,u),Y==="THEN")W.splice(F,1);return 1}return 1})}tagPostfixConditionals(){let f=null,w=(_,u)=>{return _[0]==="TERMINATOR"||_[0]==="INDENT"&&!M2.has(this.tokens[u-1]?.[0])},U=(_)=>{if(_[0]!=="INDENT"||_.generated&&!_.fromThen)f[0]="POST_"+f[0]};this.scanTokens((_,u)=>{if(_[0]!=="IF"&&_[0]!=="UNLESS")return 1;if(this.tokens[u-1]?.[0]==="INTERPOLATION_START")return 1;return f=_,this.detectEnd(u+1,w,U),1})}rewriteTaggedTemplates(){let f=this.tokens;for(let w=f.length-2;w>=0;w--)if(f[w][0]==="IDENTIFIER"&&f[w][1]==="$"&&(f[w+1]?.[0]==="STRING"||f[w+1]?.[0]==="STRING_START")){let U=f[w-1];if(U&&T3.has(U[0])){if(f.splice(w,1),U.spaced=!1,f[w].spaced=!1,f[w].pre=0,f[w].newLine)f[w].newLine=!1}}}addImplicitBracesAndParens(){let f=[],w=!1;this.scanTokens((U,_,u)=>{let[$]=U,F=u[_-1]||[],W=u[_+1]||[],[Y]=F,[R]=W,A=_,Z=(D)=>_-A+D,z=()=>f[f.length-1],X=(D)=>D?.[2]?.ours,H=()=>X(z())&&z()?.[0]==="(",J=()=>X(z())&&z()?.[0]==="{",G=(D)=>{f.push(["(",D,{ours:!0}]),u.splice(D,0,U1("CALL_START","("))},Q=()=>{f.pop(),u.splice(_,0,U1("CALL_END",")")),_+=1},q=(D,M={})=>{f.push(["{",D,{sameLine:!0,startsLine:M.startsLine??!0,ours:!0}]);let P=U1("{","{");if(!P.data)P.data={};P.data.generated=!0,u.splice(D,0,P)},O=(D)=>{D=D??_,f.pop(),u.splice(D,0,U1("}","}")),_+=1};if((H()||J())&&h3.has($))return f.push(["CONTROL",_,{ours:!0}]),Z(1);if($==="INDENT"&&X(z())){if(Y!=="=>"&&Y!=="->"&&Y!=="["&&Y!=="("&&Y!==","&&Y!=="{"&&Y!=="ELSE"&&Y!=="=")while(H()||J()&&Y!==":")if(H())Q();else O();if(z()?.[2]?.ours&&z()[0]==="CONTROL")f.pop();return f.push([$,_]),Z(1)}if(z1.has($))return f.push([$,_]),Z(1);if(A1.has($)){while(X(z()))if(H())Q();else if(J())O();else f.pop();f.pop()}if(d1.has($)&&U.spaced&&(h1.has(R)||R==="..."&&h1.has(u[_+2]?.[0])||B3.has(R)&&!W.spaced&&!W.newLine)&&!(($==="]"||$==="}")&&(R==="->"||R==="=>")))return G(_+1),Z(2);if(d1.has($)&&this.tokens[_+1]?.[0]==="INDENT"&&this.looksObjectish(_+2)&&!this.findTagsBackwards(_,["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"]))return G(_+1),f.push(["INDENT",_+2]),Z(3);if($==="TERNARY")w=!0;if($===":"){if(w)return w=!1,Z(1);if(u[_-1]?.[0]==="PROPERTY"&&u[_-2]?.[0]==="."){let P=_-2;while(P>=2&&u[P]?.[0]==="."&&(u[P-1]?.[0]==="PROPERTY"||u[P-1]?.[0]==="IDENTIFIER"))P-=2;if(P+=1,u[P]?.[0]==="IDENTIFIER"||u[P]?.[0]==="PROPERTY"){let S=[];for(let B=P;B<_;B+=2)S.push(u[B][1]);let N=U1("STRING",`"${S.join(".")}"`,u[P]);N.pre=u[P].pre,N.spaced=u[P].spaced,N.newLine=u[P].newLine,N.loc=u[P].loc,u.splice(P,_-P,N),_=P+1}}let D=A1.has(this.tokens[_-1]?.[0])?f[f.length-1]?.[1]??_-1:_-1;if(this.tokens[_-2]?.[0]==="@")D=_-2;let M=D<=0||O1.has(this.tokens[D-1]?.[0])||this.tokens[D-1]?.newLine;if(z()){let[P,S]=z(),N=f[f.length-2];if((P==="{"||P==="INDENT"&&N?.[0]==="{"&&!X(N))&&(M||this.tokens[D-1]?.[0]===","||this.tokens[D-1]?.[0]==="{"||this.tokens[D]?.[0]==="{"))return Z(1)}return q(D,{startsLine:!!M}),Z(2)}if(O1.has($))for(let D=f.length-1;D>=0;D--){if(!X(f[D]))break;if(f[D][0]==="{")f[D][2].sameLine=!1}let K=Y==="OUTDENT"||F.newLine,I=$==="||"||$==="&&",E=!1;if(I){let D=_+1,M=u[D]?.[0];if(M==="("||M==="["||M==="{"){for(let P=1;++D<u.length&&P>0;)if(M=u[D][0],M==="("||M==="["||M==="{")P++;else if(M===")"||M==="]"||M==="}")P--}else if(M&&M!=="TERMINATOR"&&M!=="OUTDENT"&&M!==",")D++;E=u[D]?.[0]===","}if(N3.has($)&&!E||G2.has($)&&K)while(X(z())){let[D,,{sameLine:M,startsLine:P}]=z();if(H()&&Y!==",")Q();else if(J()&&!I&&M&&$!=="TERMINATOR"&&Y!==":")O();else if(J()&&$==="TERMINATOR"&&Y!==","&&!(P&&this.looksObjectish(_+1)))O();else if(z()?.[2]?.ours&&z()[0]==="CONTROL"&&u[z()[1]]?.[0]==="CLASS"&&$==="TERMINATOR")f.pop();else break}if($===","&&!this.looksObjectish(_+1)&&J()&&(R!=="TERMINATOR"||!this.looksObjectish(_+2))){let D=R==="OUTDENT"?1:0;while(J())O(_+D)}return Z(1)})}addImplicitCallCommas(){let f=0,w=0,U=this.tokens;while(w<U.length){let _=U[w][0],u=w>0?U[w-1][0]:null;if(_==="CALL_START"||_==="(")f++;if(_==="CALL_END"||_===")")f--;if(f>0&&(_==="->"||_==="=>")&&S3.has(u))U.splice(w,0,U1(",",",")),w++;w++}}scanTokens(f){let w=0;while(w<this.tokens.length)w+=f.call(this,this.tokens[w],w,this.tokens)}detectEnd(f,w,U,_={}){let u=0;while(f<this.tokens.length){let $=this.tokens[f];if(u===0&&w.call(this,$,f))return U.call(this,$,f);if(z1.has($[0]))u++;if(A1.has($[0]))u--;if(u<0){if(_.returnOnNegativeLevel)return;return U.call(this,$,f)}f++}}closeMergeAssignments(){let f=this.tokens;for(let w=0;w<f.length;w++){if(!f[w].mergeClose)continue;let U=0;for(let _=w+1;_<f.length;_++){let u=f[_][0];if(u==="("||u==="["||u==="{"||u==="CALL_START"||u==="INDEX_START"||u==="INDENT")U++;if(u===")"||u==="]"||u==="}"||u==="CALL_END"||u==="INDEX_END"||u==="OUTDENT")U--;if(U<0||U===0&&u==="TERMINATOR"){f.splice(_,0,U1("CALL_END",")",f[_-1]));break}if(_===f.length-1){f.splice(_+1,0,U1("CALL_END",")",f[_]));break}}}}commaInImplicitCall(f){let w=0;for(let U=f-1;U>=0;U--){let _=this.tokens[U][0];if(A1.has(_)){w++;continue}if(z1.has(_)){if(_==="INDENT")return!1;if(w--,w<0)return!1;continue}if(w>0)continue;if(d1.has(_)&&this.tokens[U].spaced){let u=this.tokens[U+1]?.[0];return h1.has(u)||u==="..."&&h1.has(this.tokens[U+2]?.[0])}}return!1}commaInImplicitObject(f){let w=0;for(let U=f-1;U>=0;U--){let _=this.tokens[U][0];if(A1.has(_)){w++;continue}if(z1.has(_)){if(w--,w<0)return!1;continue}if(w>0)continue;if(_===":"&&U>0&&this.tokens[U-1][0]==="PROPERTY")return this.looksObjectish(f+1);if(O1.has(_))return!1}return!1}looksObjectish(f){if(!this.tokens[f])return!1;if(this.tokens[f]?.[0]==="@"&&this.tokens[f+2]?.[0]===":")return!0;if(this.tokens[f+1]?.[0]===":")return!0;if((this.tokens[f]?.[0]==="IDENTIFIER"||this.tokens[f]?.[0]==="PROPERTY")&&this.tokens[f+1]?.[0]==="."){let w=f+2;while(this.tokens[w]?.[0]==="PROPERTY"&&this.tokens[w+1]?.[0]===".")w+=2;if(this.tokens[w]?.[0]==="PROPERTY"&&this.tokens[w+1]?.[0]===":")return!0}if(z1.has(this.tokens[f]?.[0])){let w=null;if(this.detectEnd(f+1,(U)=>A1.has(U[0]),(U,_)=>w=_),w&&this.tokens[w+1]?.[0]===":")return!0}return!1}findTagsBackwards(f,w){let U=new Set(w),_=[];while(f>=0){let u=this.tokens[f]?.[0];if(!_.length&&U.has(u))return!0;if(A1.has(u))_.push(u);if(z1.has(u)&&_.length)_.pop();if(!_.length&&(z1.has(u)&&!this.tokens[f]?.generated||O1.has(u)))break;f--}return!1}makeIndentation(f){let w=U1("INDENT",2),U=U1("OUTDENT",2);if(f)w.generated=U.generated=!0,w.origin=U.origin=f;else w.explicit=U.explicit=!0;return[w,U]}}X2(R1);var U7={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,RightwardAssign:18,ReactiveAssign:19,ComputedAssign:20,ReadonlyAssign:21,Effect:22,If:23,Try:24,While:25,For:26,Switch:27,Class:28,Component:29,Render:30,Throw:31,Yield:32,Def:33,Enum:34,CodeLine:35,OperationLine:36,Assignable:37,Literal:38,Parenthetical:39,Range:40,Invocation:41,DoIife:42,This:43,Super:44,MetaProperty:45,AlphaNumeric:46,JS:47,Regex:48,UNDEFINED:49,NULL:50,BOOL:51,INFINITY:52,NAN:53,NUMBER:54,String:55,Identifier:56,IDENTIFIER:57,Property:58,PROPERTY:59,STRING:60,STRING_START:61,Interpolations:62,STRING_END:63,InterpolationChunk:64,INTERPOLATION_START:65,INTERPOLATION_END:66,INDENT:67,OUTDENT:68,REGEX:69,REGEX_START:70,REGEX_END:71,RegexWithIndex:72,",":73,"=":74,RIGHTWARD_ASSIGN:75,REACTIVE_ASSIGN:76,COMPUTED_ASSIGN:77,Block:78,READONLY_ASSIGN:79,EFFECT:80,SimpleAssignable:81,Array:82,Object:83,ThisProperty:84,".":85,"?.":86,INDEX_START:87,INDEX_END:88,Slice:89,ES6_OPTIONAL_INDEX:90,"{":91,ObjAssignable:92,":":93,FOR:94,ForVariables:95,FOROF:96,OptComma:97,"}":98,WHEN:99,OWN:100,AssignList:101,AssignObj:102,ObjRestValue:103,SimpleObjAssignable:104,"[":105,"]":106,"@":107,"...":108,ObjSpreadExpr:109,SUPER:110,Arguments:111,DYNAMIC_IMPORT:112,Elisions:113,ArgElisionList:114,OptElisions:115,ArgElision:116,Arg:117,Elision:118,RangeDots:119,"..":120,DEF:121,CALL_START:122,ParamList:123,CALL_END:124,PARAM_START:125,PARAM_END:126,FuncGlyph:127,"->":128,"=>":129,Param:130,ParamVar:131,Splat:132,ES6_OPTIONAL_CALL:133,ArgList:134,SimpleArgs:135,THIS:136,NEW_TARGET:137,IMPORT_META:138,"(":139,")":140,RETURN:141,THROW:142,YIELD:143,FROM:144,IfBlock:145,IF:146,ELSE:147,UnlessBlock:148,UNLESS:149,POST_IF:150,POST_UNLESS:151,TRY:152,Catch:153,FINALLY:154,CATCH:155,SWITCH:156,Whens:157,When:158,LEADING_WHEN:159,WhileSource:160,WHILE:161,UNTIL:162,Loop:163,LOOP:164,FORIN:165,BY:166,FORAS:167,AWAIT:168,FORASAWAIT:169,ForValue:170,CLASS:171,EXTENDS:172,ENUM:173,COMPONENT:174,ComponentBody:175,ComponentLine:176,OFFER:177,ACCEPT:178,RENDER:179,IMPORT:180,ImportDefaultSpecifier:181,ImportNamespaceSpecifier:182,ImportSpecifierList:183,ImportSpecifier:184,AS:185,DEFAULT:186,IMPORT_ALL:187,EXPORT:188,ExportSpecifierList:189,EXPORT_ALL:190,ExportSpecifier:191,UNARY:192,DO:193,DO_IIFE:194,UNARY_MATH:195,"-":196,"+":197,"?":198,DEFINED:199,PRESENCE:200,"--":201,"++":202,MATH:203,"**":204,SHIFT:205,COMPARE:206,"&":207,"^":208,"|":209,"||":210,"??":211,"&&":212,"!?":213,PIPE:214,RELATION:215,TERNARY:216,COMPOUND_ASSIGN:217},tokenNames:{2:"error",6:"TERMINATOR",11:"STATEMENT",47:"JS",49:"UNDEFINED",50:"NULL",51:"BOOL",52:"INFINITY",53:"NAN",54:"NUMBER",57:"IDENTIFIER",59:"PROPERTY",60:"STRING",61:"STRING_START",63:"STRING_END",65:"INTERPOLATION_START",66:"INTERPOLATION_END",67:"INDENT",68:"OUTDENT",69:"REGEX",70:"REGEX_START",71:"REGEX_END",73:",",74:"=",75:"RIGHTWARD_ASSIGN",76:"REACTIVE_ASSIGN",77:"COMPUTED_ASSIGN",79:"READONLY_ASSIGN",80:"EFFECT",85:".",86:"?.",87:"INDEX_START",88:"INDEX_END",90:"ES6_OPTIONAL_INDEX",91:"{",93:":",94:"FOR",96:"FOROF",98:"}",99:"WHEN",100:"OWN",105:"[",106:"]",107:"@",108:"...",110:"SUPER",112:"DYNAMIC_IMPORT",120:"..",121:"DEF",122:"CALL_START",124:"CALL_END",125:"PARAM_START",126:"PARAM_END",128:"->",129:"=>",133:"ES6_OPTIONAL_CALL",136:"THIS",137:"NEW_TARGET",138:"IMPORT_META",139:"(",140:")",141:"RETURN",142:"THROW",143:"YIELD",144:"FROM",146:"IF",147:"ELSE",149:"UNLESS",150:"POST_IF",151:"POST_UNLESS",152:"TRY",154:"FINALLY",155:"CATCH",156:"SWITCH",159:"LEADING_WHEN",161:"WHILE",162:"UNTIL",164:"LOOP",165:"FORIN",166:"BY",167:"FORAS",168:"AWAIT",169:"FORASAWAIT",171:"CLASS",172:"EXTENDS",173:"ENUM",174:"COMPONENT",177:"OFFER",178:"ACCEPT",179:"RENDER",180:"IMPORT",185:"AS",186:"DEFAULT",187:"IMPORT_ALL",188:"EXPORT",190:"EXPORT_ALL",192:"UNARY",193:"DO",194:"DO_IIFE",195:"UNARY_MATH",196:"-",197:"+",198:"?",199:"DEFINED",200:"PRESENCE",201:"--",202:"++",203:"MATH",204:"**",205:"SHIFT",206:"COMPARE",207:"&",208:"^",209:"|",210:"||",211:"??",212:"&&",213:"!?",214:"PIPE",215:"RELATION",216:"TERNARY",217:"COMPOUND_ASSIGN"},parseTable:(()=>{let f=[108,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,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,-1,1,2,3,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,1,1,0,2,1,5,-2,108,5,1,5,60,2,72,-3,-3,-3,-3,-3,32,1,5,60,1,1,5,2,19,12,18,16,10,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-6,-6,-6,-6,-6,-6,125,129,-6,-6,-6,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,9,1,5,60,1,1,5,33,18,16,-7,-7,-7,-7,-7,-7,-7,-7,-7,14,1,5,60,1,1,5,33,18,16,10,1,9,1,1,-8,-8,-8,-8,-8,-8,-8,-8,-8,130,131,132,97,98,57,1,5,49,5,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,3,9,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-13,-13,136,106,107,-13,-13,-13,-13,-13,139,140,141,-13,142,-13,-13,-13,-13,-13,-13,-13,137,-13,143,-13,-13,138,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,133,134,135,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,47,1,5,60,1,1,5,2,10,1,1,1,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,-14,144,145,146,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,9,1,5,60,1,1,5,33,18,16,-34,-34,-34,-34,-34,-34,-34,-34,-34,9,1,5,60,1,1,5,33,18,16,-35,-35,-35,-35,-35,-35,-35,-35,-35,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,60,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-36,-36,-36,-36,-36,-36,-36,-36,147,-36,148,149,150,151,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,18,6,50,1,10,1,5,9,1,1,7,14,2,1,15,1,2,4,1,-175,156,105,-175,-175,-175,158,159,157,100,161,160,155,152,-175,-175,153,154,107,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,1,3,1,6,2,1,8,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,163,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,164,103,104,162,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,104,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,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,165,166,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,104,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,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,168,169,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,170,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,176,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,177,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,178,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,179,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,14,1,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,11,1,1,1,7,14,2,3,2,13,2,1,1,7,1,1,1,55,181,182,183,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,180,73,74,94,100,84,88,85,86,171,172,91,92,87,89,90,83,175,45,14,1,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,11,1,1,1,7,14,2,3,2,13,2,1,1,7,1,1,1,55,181,182,183,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,184,73,74,94,100,84,88,85,86,171,172,91,92,87,89,90,83,175,63,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,185,186,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,187,104,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,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,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,189,188,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,164,103,104,190,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,191,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,2,67,11,164,192,2,67,11,164,193,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,14,40,16,1,25,1,1,7,4,5,5,2,24,37,2,197,156,105,158,159,157,100,194,195,84,160,199,196,198,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,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,200,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,201,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,91,1,5,8,1,22,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,2,3,3,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,4,1,1,1,1,1,7,1,1,1,1,7,3,1,10,1,3,1,1,2,3,22,2,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-307,-307,181,182,183,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,-307,164,-307,103,104,-307,-307,202,204,73,74,94,-307,100,-307,-307,-307,-307,-307,84,-307,88,-307,85,86,-307,-307,171,-307,172,91,92,87,89,90,83,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,203,175,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,2,67,105,205,206,2,67,11,164,207,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,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,208,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,209,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,141,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,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,2,5,1,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,1,3,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,2,2,1,5,1,8,4,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-226,-226,210,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,-226,211,-226,103,104,-226,-226,54,53,73,74,94,-226,100,-226,-226,-226,-226,-226,84,-226,88,-226,85,86,-226,67,-226,171,-226,172,91,92,87,89,90,83,-226,70,65,66,212,55,95,-226,56,96,-226,-226,57,61,58,-226,-226,59,99,-226,-226,-226,50,-226,62,68,63,64,71,72,173,174,175,47,48,49,51,52,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,2,56,1,213,105,2,56,1,214,105,6,15,20,90,2,1,1,216,215,43,44,91,92,140,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,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,2,5,1,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,1,3,1,1,1,1,1,7,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,2,2,1,5,1,8,4,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-223,-223,217,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,-223,218,-223,103,104,-223,-223,54,53,73,74,94,-223,100,-223,-223,-223,-223,-223,84,-223,88,-223,85,86,-223,67,-223,171,-223,172,91,92,87,89,90,83,-223,70,65,66,55,95,-223,56,96,-223,-223,57,61,58,-223,-223,59,99,-223,-223,-223,50,-223,62,68,63,64,71,72,173,174,175,47,48,49,51,52,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,9,55,1,1,3,1,30,90,1,5,219,223,105,106,107,222,220,221,224,60,14,1,4,1,1,1,6,1,4,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,14,2,3,2,9,4,2,1,1,7,1,1,1,32,2,1,12,4,4,181,182,231,232,233,234,226,227,228,229,237,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,230,105,106,107,103,104,54,238,73,74,94,225,84,88,85,86,67,171,172,91,92,87,89,90,83,62,68,63,235,236,175,60,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,60,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,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,1,3,1,6,2,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,239,3,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,240,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,114,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,1,3,1,6,2,1,3,7,1,1,1,1,7,3,11,1,1,1,2,2,1,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,241,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,247,103,104,248,54,53,73,74,94,100,60,84,242,88,252,85,86,243,244,246,249,245,67,43,44,91,92,251,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,4,85,2,24,11,254,255,253,143,2,111,11,256,143,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,57,1,5,52,1,1,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-208,-208,257,258,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,1,85,259,1,85,260,54,11,36,2,1,1,1,1,1,3,3,1,6,2,1,10,11,3,11,2,3,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,54,11,36,2,1,1,1,1,1,3,3,1,6,2,1,10,11,3,11,2,3,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,64,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,64,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,261,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,262,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,263,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,264,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,103,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,266,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,164,103,104,265,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,23,6,40,8,1,1,1,1,1,1,1,6,1,5,11,8,6,3,1,1,1,1,2,1,-111,272,101,102,274,105,275,258,106,107,-111,-111,-111,276,267,-111,268,273,277,269,270,271,278,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,45,14,1,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,11,1,1,1,7,14,2,3,2,13,2,1,1,7,1,1,1,55,181,182,183,35,36,37,279,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,238,73,74,94,100,84,88,85,86,171,172,91,92,87,89,90,83,175,66,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,4,3,3,1,10,1,3,1,1,2,3,13,11,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,58,1,5,54,1,2,2,1,1,1,3,2,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,6,55,5,1,1,2,1,283,106,107,280,281,282,110,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,1,3,1,5,2,1,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,1,1,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,-5,284,-5,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,-5,-5,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,-5,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,285,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,286,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,287,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,288,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,289,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,290,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,291,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,292,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,293,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,296,167,294,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,295,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,299,167,297,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,298,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,302,167,300,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,301,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,303,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,304,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,305,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,306,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,14,1,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,11,1,1,1,7,14,2,3,2,13,2,1,1,7,1,1,1,55,181,182,307,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,238,73,74,94,100,84,88,85,86,171,172,91,92,87,89,90,83,175,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,308,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,309,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,14,40,16,1,25,1,1,7,4,5,5,2,24,37,2,313,156,105,158,159,157,100,310,311,84,160,199,312,198,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,314,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,315,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,56,1,5,54,1,5,1,1,3,2,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,56,1,5,54,1,5,1,1,3,2,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,2,111,11,316,143,2,58,1,317,258,2,58,1,318,258,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,8,1,1,1,1,5,2,3,11,2,1,2,2,7,1,1,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,319,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,324,78,79,80,81,82,101,102,93,105,106,107,320,103,104,322,54,53,73,74,94,321,100,60,84,88,326,85,86,323,325,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,1,87,327,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,1,3,1,6,2,1,10,1,1,1,1,7,3,11,2,1,2,2,5,4,3,1,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,331,103,104,54,53,73,74,94,100,60,84,88,252,85,86,330,67,328,43,44,91,92,251,329,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,2,58,1,333,258,2,58,1,334,258,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,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,335,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,336,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,103,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,338,337,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,339,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,103,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,341,340,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,342,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,104,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,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,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,344,343,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,164,103,104,345,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,103,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,347,346,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,348,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,104,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,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,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,350,349,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,164,103,104,351,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,9,6,61,1,5,24,1,8,18,2,-219,-219,-219,353,354,-219,-219,-219,352,6,6,61,1,5,51,2,-176,-176,-176,-176,-176,-176,7,6,61,1,5,1,50,2,-180,-180,-180,-180,355,-180,-180,15,6,50,1,10,1,5,9,1,1,7,14,2,17,2,5,-183,156,105,-183,-183,-183,158,159,157,100,161,160,-183,-183,356,11,6,61,1,5,1,22,28,2,39,2,2,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,11,6,61,1,5,1,22,28,2,39,2,2,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,11,6,61,1,5,1,22,28,2,39,2,2,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,11,6,61,1,5,1,22,28,2,39,2,2,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,2,58,1,257,258,114,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,1,3,1,6,2,1,3,7,1,1,1,1,7,3,11,1,1,1,2,2,1,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,247,103,104,248,54,53,73,74,94,100,60,84,242,88,252,85,86,243,244,246,249,245,67,43,44,91,92,251,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,9,1,5,60,1,1,5,33,18,16,-172,-172,-172,-172,-172,-172,-172,-172,-172,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,1,3,1,7,1,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,358,3,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,357,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,127,128,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,119,-376,121,-376,-376,-376,9,1,5,60,1,1,5,33,18,16,-373,-373,-373,-373,-373,-373,-373,-373,-373,5,150,1,9,1,1,130,131,132,97,98,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,127,128,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,119,-377,121,-377,-377,-377,9,1,5,60,1,1,5,33,18,16,-374,-374,-374,-374,-374,-374,-374,-374,-374,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,127,128,-378,-378,-378,-378,-378,-378,-378,-378,-378,112,-378,-378,-378,-378,-378,-378,119,-378,121,-378,-378,-378,18,6,50,1,10,1,5,9,1,1,7,14,2,1,15,1,2,4,1,-175,156,105,-175,-175,-175,158,159,157,100,161,160,155,359,-175,-175,153,154,2,67,11,164,162,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,165,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,168,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,5,15,110,2,1,1,216,171,172,91,92,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,127,128,-379,-379,-379,-379,-379,-379,-379,-379,-379,112,-379,-379,-379,-379,-379,-379,119,-379,121,-379,-379,-379,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,127,128,-380,-380,-380,-380,-380,-380,-380,-380,-380,112,-380,-380,-380,-380,-380,-380,119,-380,121,-380,-380,-380,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,127,128,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,119,-384,121,-384,-384,-384,2,83,8,360,100,60,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-386,-386,-88,-88,-386,-386,-386,-386,-88,-386,-88,-88,-88,-88,-88,-88,-88,-386,-88,-386,-386,-386,-386,-386,-386,-386,-386,-88,-386,-386,-88,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-88,-88,-88,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,10,55,5,1,24,1,1,3,21,11,11,136,106,107,139,140,141,142,137,143,138,3,85,1,1,144,145,146,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,60,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-387,-387,-88,-88,-387,-387,-387,-387,-88,-387,-88,-88,-88,-88,-88,-88,-88,-387,-88,-387,-387,-387,-387,-387,-387,-387,-387,-88,-387,-387,-88,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-88,-88,-88,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-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,-388,-388,-388,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-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,-389,-389,-389,103,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,363,361,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,362,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-85,-85,-85,-85,-85,-85,125,-85,-85,129,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,126,127,128,97,98,-85,-85,-85,-85,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,364,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,3,67,11,68,164,365,366,47,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,2,1,1,6,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,367,368,369,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,4,96,69,2,2,371,370,372,373,11,56,1,25,1,1,7,4,10,2,24,39,156,105,158,159,157,100,374,161,160,199,198,11,56,1,25,1,1,7,4,10,2,24,39,156,105,158,159,157,100,375,161,160,199,198,3,67,11,88,164,376,377,5,73,23,69,2,2,378,-305,-305,-305,-305,6,73,1,22,69,2,2,-303,379,-303,-303,-303,-303,24,67,8,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,380,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,3,157,1,1,381,382,383,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,384,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,62,1,5,54,1,5,1,1,5,1,1,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-311,-311,-88,-88,-311,164,-311,-311,-88,-311,-88,-88,385,-88,-88,-88,-88,-88,-311,-88,-311,-311,-311,-311,-311,-311,-311,-311,-88,-311,-311,-88,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,386,-311,-311,-88,-88,-88,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,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,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,1,1,1,1,1,1,8,4,1,1,1,1,1,4,1,389,390,391,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,387,388,392,393,64,71,72,45,46,69,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,394,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-224,-224,-224,-224,-224,-224,125,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,127,128,-224,-224,-224,-224,-224,-224,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,2,83,8,395,100,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,127,128,-227,-227,-227,-227,-227,-227,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,2,83,8,396,100,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,397,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,3,67,11,44,164,399,398,2,67,11,164,400,9,1,5,60,1,1,5,33,18,16,-375,-375,-375,-375,-375,-375,-375,-375,-375,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-221,-221,-221,-221,-221,-221,125,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,127,128,-221,-221,-221,-221,-221,-221,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,2,83,8,401,100,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,2,73,71,403,402,1,144,404,7,56,1,10,31,85,1,2,409,105,408,405,406,407,410,2,73,71,-343,-343,1,185,411,26,6,40,8,1,1,1,1,1,1,1,6,1,5,11,8,6,3,1,1,1,1,2,1,78,3,2,-111,272,101,102,416,105,275,258,106,107,415,-111,-111,276,267,412,268,273,277,269,270,271,278,417,413,414,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,64,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-91,-91,-91,-91,-91,-91,-91,-91,418,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,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,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,419,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,420,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,1,144,421,59,1,5,54,1,5,1,1,5,2,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-36,-36,-36,-36,-36,-36,-36,-36,-36,148,149,150,151,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,60,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,2,6,134,108,422,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,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,423,3,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,32,6,61,1,5,2,19,12,2,11,1,4,26,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-201,-201,-201,-201,125,129,-201,326,424,325,-201,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,60,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,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,1,3,1,8,1,3,7,1,1,1,1,7,3,11,1,1,1,2,2,5,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,248,54,53,73,74,94,100,60,84,425,88,252,85,86,427,426,67,43,44,91,92,251,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,9,6,61,1,5,24,1,8,9,9,-219,-219,-219,429,430,-219,-219,428,-219,59,6,5,36,2,1,1,1,1,1,3,3,1,6,1,1,1,3,7,11,3,11,1,1,1,2,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,431,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-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,61,1,5,33,-147,-147,-147,-147,-147,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,1,3,1,6,2,1,3,7,1,1,1,1,7,3,11,2,1,2,2,1,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,247,103,104,248,54,53,73,74,94,100,60,84,88,252,85,86,433,432,246,249,245,67,43,44,91,92,251,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,59,6,5,36,2,1,1,1,1,1,3,3,1,6,1,1,1,3,7,11,3,11,1,1,1,2,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,5,6,61,1,5,33,-152,-152,-152,-152,-152,6,6,61,1,5,33,18,-202,-202,-202,-202,-202,-202,6,6,61,1,5,33,18,-203,-203,-203,-203,-203,-203,107,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,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,7,1,1,1,1,7,3,11,1,1,3,2,9,3,1,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,-204,434,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,-204,-204,103,104,-204,54,53,73,74,94,100,60,84,-204,88,85,86,67,-204,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,56,1,5,54,1,5,1,1,3,2,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,2,58,1,435,258,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,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,436,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,437,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,56,1,5,54,1,5,1,1,3,2,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,64,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,64,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,2,58,1,438,258,2,58,1,439,258,25,67,8,3,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,440,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,25,67,8,3,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,441,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-258,-258,-258,-258,-258,-258,125,-258,-258,129,-258,-258,442,-258,-258,-258,-258,-258,-258,-258,-258,127,128,97,98,-258,-258,-258,-258,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-260,-260,-260,-260,-260,-260,125,-260,-260,129,-260,-260,443,-260,-260,-260,-260,-260,-260,-260,-260,127,128,97,98,-260,-260,-260,-260,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,46,1,5,60,1,1,5,2,3,10,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-267,-267,-267,164,-267,-267,125,444,-267,-267,129,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,127,128,97,98,-267,-267,-267,-267,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,6,6,61,1,5,20,5,-116,-116,-116,-116,445,-116,8,6,61,1,5,24,1,8,18,-219,-219,-219,447,446,-219,-219,-219,7,6,61,1,5,1,19,5,-125,-125,-125,-125,448,-125,-125,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,449,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,3,58,1,46,257,258,450,6,6,61,1,5,20,5,-128,-128,-128,-128,-128,-128,5,6,61,1,5,25,-112,-112,-112,-112,-112,11,6,61,1,5,1,11,1,1,6,5,24,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,11,6,61,1,5,1,11,1,1,6,5,24,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,11,6,61,1,5,1,11,1,1,6,5,24,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,5,6,61,1,5,25,-117,-117,-117,-117,-117,17,39,4,1,12,1,1,1,24,1,7,13,3,2,1,2,24,3,454,456,455,274,105,275,258,453,276,100,451,88,452,457,458,87,83,56,1,5,54,1,5,1,1,3,2,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-40,-40,-40,-40,-40,-40,-40,459,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,6,55,5,1,2,1,1,283,106,107,460,461,282,4,60,1,2,2,-59,-59,-59,-59,108,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,1,3,1,5,1,2,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,462,3,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,464,463,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,4,60,1,2,2,-64,-64,-64,-64,5,1,5,60,2,72,-4,-4,-4,-4,-4,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,127,128,-390,-390,-390,-390,-390,-390,-390,-390,111,112,-390,-390,-390,-390,-390,-390,119,-390,121,-390,-390,-390,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,127,128,-391,-391,-391,-391,-391,-391,-391,-391,111,112,-391,-391,-391,-391,-391,-391,119,-391,121,-391,-391,-391,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,127,128,-392,-392,-392,-392,-392,-392,-392,-392,-392,112,-392,-392,-392,-392,-392,-392,119,-392,121,-392,-392,-392,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,127,128,-393,-393,-393,-393,-393,-393,-393,-393,-393,112,-393,-393,-393,-393,-393,-393,119,-393,121,-393,-393,-393,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,127,128,-394,-394,-394,-394,-394,-394,110,109,111,112,-394,-394,-394,-394,-394,-394,119,-394,121,-394,-394,-394,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,127,128,-395,-395,-395,-395,-395,-395,110,109,111,112,113,-395,-395,-395,-395,-395,119,-395,121,-395,123,-395,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,127,128,-396,-396,-396,-396,-396,-396,110,109,111,112,113,114,-396,-396,-396,-396,119,-396,121,-396,123,-396,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,127,128,-397,-397,-397,-397,-397,-397,110,109,111,112,113,114,115,-397,-397,-397,119,-397,121,-397,123,-397,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,127,128,-398,-398,-398,-398,-398,-398,110,109,111,112,113,114,115,116,-398,-398,119,-398,121,-398,123,-398,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,127,128,-406,-406,-406,-406,-406,-406,110,109,111,112,113,114,115,116,117,-406,119,120,121,-406,123,-406,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-407,-407,-407,-407,-407,-407,125,-407,-407,129,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,126,127,128,97,98,-407,-407,-407,-407,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,127,128,-405,-405,-405,-405,-405,-405,110,109,111,112,113,114,115,116,117,-405,119,-405,121,-405,123,-405,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-408,-408,-408,-408,-408,-408,125,-408,-408,129,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,126,127,128,97,98,-408,-408,-408,-408,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,127,128,-409,-409,-409,-409,-409,-409,110,109,111,112,113,114,115,116,117,118,119,120,121,-409,123,-409,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,127,128,-410,-410,-410,-410,-410,-410,110,109,111,112,113,-410,-410,-410,-410,-410,119,-410,121,-410,-410,-410,24,75,18,1,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,125,465,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-72,-72,-36,-36,-72,-72,-72,-72,-72,-36,-36,-36,-72,-36,-72,-72,-72,-72,-72,-72,-72,-72,-36,-72,-72,-36,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-36,-36,-36,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-238,-238,-238,-238,-238,-238,125,-238,-238,129,-238,-238,-238,-238,-238,-238,-238,-238,-238,466,-238,127,128,97,98,-238,-238,-238,-238,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-242,-242,-242,-242,-242,-242,125,-242,-242,129,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,126,127,128,97,98,-242,-242,-242,-242,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,4,96,69,2,2,468,467,469,470,11,56,1,25,1,1,7,4,10,2,24,39,156,105,158,159,157,100,471,161,160,199,198,11,56,1,25,1,1,7,4,10,2,24,39,156,105,158,159,157,100,472,161,160,199,198,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,473,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-237,-237,-237,-237,-237,-237,125,-237,-237,129,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,127,128,97,98,-237,-237,-237,-237,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-241,-241,-241,-241,-241,-241,125,-241,-241,129,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,126,127,128,97,98,-241,-241,-241,-241,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,56,1,5,54,1,5,1,1,3,2,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,64,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,64,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,27,75,13,6,14,11,1,30,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,125,474,129,326,475,325,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,5,2,3,11,2,1,2,2,7,1,1,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,476,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,477,100,60,84,88,326,85,86,323,325,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,1,88,478,1,88,479,103,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,10,1,1,1,1,4,3,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,480,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,-166,103,104,54,53,73,74,94,-166,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-47,-47,-47,-47,-47,-47,-47,481,-47,-47,-47,-47,-68,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,55,11,36,2,1,1,1,1,1,3,3,1,7,1,1,10,8,3,3,11,2,3,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,55,11,36,2,1,1,1,1,1,3,3,1,7,1,1,10,8,3,3,11,2,3,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,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,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,482,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,483,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,56,1,5,54,1,5,1,1,3,2,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,8,6,61,1,5,24,1,8,18,-219,-219,-219,485,484,-219,-219,-219,5,6,61,1,5,51,-196,-196,-196,-196,-196,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,1,3,1,6,2,1,10,1,1,1,1,7,3,11,2,1,2,2,5,4,4,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,331,103,104,54,53,73,74,94,100,60,84,88,252,85,86,330,67,43,44,91,92,251,486,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,29,6,61,1,5,2,19,12,18,26,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-201,-201,-201,-201,125,129,-201,-201,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,64,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,64,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,24,75,13,6,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,125,487,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,488,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-69,-69,-69,-69,-69,-69,125,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,127,128,-69,-69,-69,-69,-69,-69,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,489,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,490,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-73,-73,-73,-73,-73,-73,125,-73,-73,129,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,126,127,128,97,98,-73,-73,-73,-73,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,491,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,492,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-76,-76,-76,-76,-76,-76,125,-76,-76,129,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,126,127,128,97,98,-76,-76,-76,-76,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,493,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-79,-79,-79,-79,-79,-79,125,-79,-79,129,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,126,127,128,97,98,-79,-79,-79,-79,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,494,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,495,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-82,-82,-82,-82,-82,-82,125,-82,-82,129,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,126,127,128,97,98,-82,-82,-82,-82,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,496,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,3,127,1,1,497,91,92,17,6,50,1,10,1,14,1,1,7,7,7,1,1,1,16,6,1,-220,156,105,-220,-220,158,159,157,100,-220,161,-220,160,155,-220,498,154,2,6,61,499,500,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,501,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,6,6,61,1,5,51,2,-182,-182,-182,-182,-182,-182,58,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,3,1,4,2,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-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,62,108,502,9,6,61,1,5,24,1,8,18,2,-219,-219,-219,353,354,-219,-219,-219,503,1,68,504,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-412,-412,-412,-412,-412,-412,125,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,127,128,-412,-412,-412,-412,-412,-412,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,505,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,506,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,-86,-86,125,-86,-86,129,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,126,127,128,97,98,-86,-86,-86,-86,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,507,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,508,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,2,67,11,164,509,6,56,1,10,11,5,8,510,105,164,512,511,100,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,513,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,514,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,515,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,516,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,1,96,517,1,167,518,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,519,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,10,56,1,25,1,1,7,14,2,24,39,156,105,158,159,157,100,161,160,199,520,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,521,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,3,157,1,1,522,382,383,4,68,79,11,1,523,524,525,383,3,68,79,12,-254,-254,-254,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,6,1,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,527,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,526,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,46,1,5,60,1,1,5,2,3,10,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-309,-309,-309,164,-309,-309,125,528,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,127,128,-309,-309,-309,-309,-309,-309,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,529,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,2,6,62,531,530,2,6,62,-318,-318,25,6,62,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-321,-321,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,2,6,62,-322,-322,7,6,62,82,1,9,1,1,-323,-323,130,131,132,97,98,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,532,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,1,57,533,24,67,8,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,534,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,1,68,535,1,68,536,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,127,128,-229,-229,-229,-229,-229,-229,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,18,6,50,1,10,1,5,9,1,1,7,14,2,1,15,1,2,4,1,-175,156,105,-175,-175,-175,158,159,157,100,161,160,155,537,-175,-175,153,154,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,1,68,538,3,55,5,1,539,106,107,3,91,91,5,541,540,224,3,55,5,1,542,106,107,1,144,543,8,6,61,1,5,24,1,8,18,-219,-219,-219,545,544,-219,-219,-219,5,6,61,1,5,25,-334,-334,-334,-334,-334,6,56,1,10,116,1,2,409,105,408,546,407,410,6,6,61,1,5,25,87,-339,-339,-339,-339,-339,547,6,6,61,1,5,25,87,-341,-341,-341,-341,-341,548,2,56,1,549,105,14,1,5,60,1,1,5,33,18,16,4,6,1,10,1,-345,-345,-345,-345,-345,-345,-345,-345,-345,550,-345,-345,-345,-345,8,6,61,1,5,24,1,8,18,-219,-219,-219,552,551,-219,-219,-219,5,6,61,1,5,25,-363,-363,-363,-363,-363,6,56,1,10,119,3,2,554,105,415,417,553,414,12,6,61,1,5,1,11,1,1,6,5,24,63,-368,-368,-368,-368,-122,-122,-122,-122,-122,-368,-122,555,6,6,61,1,5,25,87,-371,-371,-371,-371,-371,556,103,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,558,557,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,559,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,32,1,5,60,1,1,5,2,19,12,18,16,10,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-358,-358,-358,-358,-358,-358,125,129,-358,-358,-358,-358,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,2,83,8,560,100,3,55,5,1,561,106,107,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,2,6,62,108,562,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,563,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,60,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,59,6,5,36,2,1,1,1,1,1,3,3,1,6,1,1,1,3,7,11,3,11,1,1,1,2,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,431,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,5,6,61,1,5,33,-153,-153,-153,-153,-153,2,67,39,565,564,117,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,1,3,1,6,1,1,1,3,7,1,1,1,1,7,3,4,7,1,1,1,2,2,1,3,1,1,3,3,1,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,-220,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,-220,-220,103,104,248,54,53,73,74,94,100,60,-220,84,-220,88,252,85,86,567,566,249,245,67,-220,43,44,91,92,251,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,4,6,61,1,38,568,-154,-154,-154,59,6,5,36,2,1,1,1,1,1,3,3,1,6,1,1,1,3,7,11,3,11,1,1,1,2,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,9,6,61,1,5,24,1,8,9,9,-219,-219,-219,429,430,-219,-219,569,-219,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,1,3,1,8,1,3,7,1,1,1,1,7,3,11,2,1,2,2,5,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,248,54,53,73,74,94,100,60,84,88,252,85,86,427,426,67,43,44,91,92,251,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,29,6,61,1,5,2,19,12,18,26,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-188,-188,-188,-188,125,129,-188,-188,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,24,75,13,6,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,125,570,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,571,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,572,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,573,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,574,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,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,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,575,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,576,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,3,6,61,31,578,579,577,23,6,40,8,1,1,1,1,1,1,1,6,1,16,8,6,4,1,1,1,1,1,1,16,-220,272,101,102,274,105,275,258,106,107,-220,-220,276,581,-220,580,277,269,270,-220,271,278,-220,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,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,582,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,583,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,24,75,19,12,44,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,125,129,584,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,585,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,10,6,61,1,5,12,1,1,11,13,11,-129,-129,-129,-129,-131,-131,-131,-129,586,143,10,6,61,1,5,12,1,1,11,13,11,-130,-130,-130,-130,588,589,590,-130,587,143,9,6,61,1,5,12,1,1,11,24,-132,-132,-132,-132,-132,-132,-132,-132,-132,9,6,61,1,5,12,1,1,11,24,-133,-133,-133,-133,-133,-133,-133,-133,-133,9,6,61,1,5,12,1,1,11,24,-134,-134,-134,-134,-134,-134,-134,-134,-134,9,6,61,1,5,12,1,1,11,24,-135,-135,-135,-135,-135,-135,-135,-135,-135,4,85,2,24,11,254,255,591,143,2,111,11,592,143,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,58,1,5,54,1,2,2,1,1,1,3,2,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,4,60,1,2,2,-60,-60,-60,-60,2,6,60,108,593,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,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,594,3,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,4,60,1,2,2,-63,-63,-63,-63,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,595,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,597,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,596,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,598,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,599,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,600,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,601,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,1,96,602,1,167,603,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,604,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,64,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,103,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,10,1,1,1,1,4,3,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,605,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,-164,103,104,54,53,73,74,94,-164,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,27,68,7,19,14,11,1,30,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,606,125,129,326,475,325,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,1,68,607,64,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,64,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,25,68,7,13,6,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-165,125,-165,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,608,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,24,75,13,6,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,125,609,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,610,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,3,6,61,57,612,613,611,113,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,1,3,1,6,1,1,1,10,1,1,1,1,7,3,4,7,1,1,1,2,2,5,4,3,1,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,-220,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,-220,-220,103,104,54,53,73,74,94,100,60,-220,84,-220,88,252,85,86,614,67,-220,43,44,91,92,251,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,8,6,61,1,5,24,1,8,18,-219,-219,-219,485,615,-219,-219,-219,64,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,616,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-70,-70,-70,-70,-70,-70,125,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,127,128,-70,-70,-70,-70,-70,-70,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,617,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-74,-74,-74,-74,-74,-74,125,-74,-74,129,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,126,127,128,97,98,-74,-74,-74,-74,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,618,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-77,-77,-77,-77,-77,-77,125,-77,-77,129,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,126,127,128,97,98,-77,-77,-77,-77,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-80,-80,-80,-80,-80,-80,125,-80,-80,129,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,126,127,128,97,98,-80,-80,-80,-80,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,619,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-83,-83,-83,-83,-83,-83,125,-83,-83,129,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,126,127,128,97,98,-83,-83,-83,-83,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,107,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,1,3,1,6,2,1,8,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,621,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,164,103,104,620,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,6,6,61,1,5,51,2,-177,-177,-177,-177,-177,-177,11,56,1,25,1,1,7,14,2,1,22,1,156,105,158,159,157,100,161,160,155,622,154,18,6,50,1,10,1,5,9,1,1,7,14,2,1,15,1,2,4,1,-175,156,105,-175,-175,-175,158,159,157,100,161,160,155,623,-175,-175,153,154,29,6,61,1,5,2,19,30,2,24,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-181,-181,-181,-181,125,129,-181,-181,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,58,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,3,1,4,2,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,3,127,1,1,624,91,92,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,625,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-414,-414,-414,-414,-414,-414,125,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,127,128,-414,-414,-414,-414,-414,-414,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,25,67,8,3,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,626,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,2,67,11,164,627,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,2,67,11,164,628,2,67,11,164,629,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,27,67,8,3,16,5,51,1,9,1,1,4,30,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,630,129,631,126,127,128,97,98,632,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,26,67,8,3,16,5,51,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,633,129,634,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,26,67,8,3,16,5,51,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,635,129,636,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,26,67,8,3,16,5,51,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,637,129,638,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,639,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,640,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,25,67,8,3,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,641,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,4,96,69,2,2,-306,-306,-306,-306,28,73,2,19,2,54,1,9,1,1,3,2,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-304,125,129,-304,126,127,128,97,98,-304,-304,-304,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,4,68,79,11,1,642,643,525,383,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,2,67,11,164,644,3,68,79,12,-255,-255,-255,3,67,6,5,164,646,645,25,67,6,2,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-205,-205,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,46,1,5,60,1,1,5,2,3,10,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-313,-313,-313,164,-313,-313,125,647,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,127,128,-313,-313,-313,-313,-313,-313,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,109,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,1,3,1,7,1,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,1,1,1,1,8,4,1,1,1,1,1,4,1,-320,389,390,391,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,-320,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,648,392,393,64,71,72,45,46,69,47,48,49,51,52,25,6,62,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-324,-324,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,2,6,62,-325,-325,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,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,1,1,1,1,1,1,8,4,1,1,1,1,1,4,1,389,390,391,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,43,44,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,649,388,392,393,64,71,72,45,46,69,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,8,6,61,1,5,24,1,8,18,-219,-219,-219,353,354,-219,-219,650,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,1,144,651,6,56,1,10,116,1,2,409,105,408,652,407,410,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,3,55,5,1,653,106,107,3,6,61,31,655,656,654,10,6,50,1,10,1,30,8,18,60,2,-220,409,105,-220,-220,-220,-220,-220,657,410,8,6,61,1,5,24,1,8,18,-219,-219,-219,545,658,-219,-219,-219,2,56,1,659,105,2,56,1,660,105,1,144,-344,3,55,5,1,661,106,107,3,6,61,31,663,664,662,10,6,50,1,10,1,30,8,18,62,5,-220,554,105,-220,-220,-220,-220,-220,417,665,8,6,61,1,5,24,1,8,18,-219,-219,-219,552,666,-219,-219,-219,6,6,61,1,5,25,87,-368,-368,-368,-368,-368,555,3,56,1,129,667,105,668,2,56,1,669,105,32,1,5,60,1,1,5,2,19,12,18,16,10,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-351,-351,-351,-351,-351,-351,125,129,-351,-351,-351,-351,127,128,-351,-351,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,670,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,671,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,1,68,672,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,1,140,673,24,75,19,12,44,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,125,129,674,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,60,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,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,1,3,1,6,2,1,3,7,1,1,1,1,7,3,11,2,1,2,2,1,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,247,103,104,248,54,53,73,74,94,100,60,84,88,252,85,86,433,675,246,249,245,67,43,44,91,92,251,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,5,6,61,1,5,33,-148,-148,-148,-148,-148,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,1,3,1,6,1,1,1,3,7,1,1,1,1,7,3,11,1,1,1,2,2,5,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,-155,-155,103,104,248,54,53,73,74,94,100,60,84,-155,88,252,85,86,427,426,67,43,44,91,92,251,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,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,1,3,1,8,1,3,7,1,1,1,1,7,3,11,2,1,2,2,1,3,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,248,54,53,73,74,94,100,60,84,88,252,85,86,433,676,249,245,67,43,44,91,92,251,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,2,67,1,565,677,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,678,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,2,67,11,164,679,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-259,-259,-259,-259,-259,-259,125,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,127,128,-259,-259,-259,-259,-259,-259,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-261,-261,-261,-261,-261,-261,125,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,127,128,-261,-261,-261,-261,-261,-261,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,28,6,61,1,5,2,19,4,52,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-118,-118,-118,-118,125,680,-118,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,681,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,60,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,17,46,8,1,1,1,1,1,1,1,23,8,10,1,1,1,2,1,272,101,102,274,105,275,258,106,107,276,581,682,277,269,270,271,278,23,6,40,8,1,1,1,1,1,1,1,6,1,5,11,8,6,3,1,1,1,1,2,1,-111,272,101,102,274,105,275,258,106,107,-111,-111,-111,276,581,-111,683,273,277,269,270,271,278,5,6,61,1,5,25,-113,-113,-113,-113,-113,6,6,61,1,5,20,5,-116,-116,-116,-116,684,-116,28,6,61,1,5,2,19,4,52,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-120,-120,-120,-120,125,129,-120,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,685,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,6,6,61,1,5,20,5,-126,-126,-126,-126,-126,-126,24,75,19,12,44,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,125,129,686,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,9,6,61,1,5,12,1,1,11,24,-138,-138,-138,-138,-138,-138,-138,-138,-138,9,6,61,1,5,12,1,1,11,24,-139,-139,-139,-139,-139,-139,-139,-139,-139,2,58,1,687,258,2,58,1,688,258,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,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,689,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,690,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,9,6,61,1,5,12,1,1,11,24,-136,-136,-136,-136,-136,-136,-136,-136,-136,9,6,61,1,5,12,1,1,11,24,-137,-137,-137,-137,-137,-137,-137,-137,-137,4,60,1,2,2,-61,-61,-61,-61,2,6,62,108,691,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-411,-411,-411,-411,-411,-411,125,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,127,128,-411,-411,-411,-411,-411,-411,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,692,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-240,-240,-240,-240,-240,-240,125,-240,-240,129,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,127,128,97,98,-240,-240,-240,-240,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-286,-286,-286,-286,-286,-286,125,-286,-286,-286,-286,-286,693,-286,-286,-286,-286,-286,-286,-286,-286,127,128,-286,-286,-286,694,-286,-286,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,-291,125,-291,-291,-291,-291,-291,695,-291,-291,-291,-291,-291,-291,-291,-291,127,128,-291,-291,-291,-291,-291,-291,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-295,-295,-295,-295,-295,-295,125,-295,-295,-295,-295,-295,696,-295,-295,-295,-295,-295,-295,-295,-295,127,128,-295,-295,-295,-295,-295,-295,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-299,-299,-299,-299,-299,-299,125,-299,-299,-299,-299,-299,697,-299,-299,-299,-299,-299,-299,-299,-299,127,128,-299,-299,-299,-299,-299,-299,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,698,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,699,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-302,-302,-302,-302,-302,-302,125,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,127,128,-302,-302,-302,-302,-302,-302,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,25,68,7,13,6,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-163,125,-163,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,1,88,700,1,88,701,24,75,13,6,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,125,-67,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,64,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,702,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,56,1,5,54,1,5,1,1,3,2,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,107,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,1,2,2,5,4,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,252,85,86,703,67,43,44,91,92,251,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,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,1,3,1,6,2,1,10,1,1,1,1,7,3,11,2,1,2,2,5,4,4,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,332,250,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,331,103,104,54,53,73,74,94,100,60,84,88,252,85,86,330,67,43,44,91,92,251,704,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,5,6,61,1,5,51,-197,-197,-197,-197,-197,3,6,61,1,612,613,705,1,88,706,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,9,1,5,60,1,1,5,33,18,16,-171,-171,-171,-171,-171,-171,-171,-171,-171,6,6,61,1,5,51,2,-178,-178,-178,-178,-178,-178,8,6,61,1,5,24,1,8,18,-219,-219,-219,353,707,-219,-219,-219,2,67,11,164,620,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,708,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,709,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,710,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,711,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,712,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,26,67,8,3,16,5,51,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,713,129,714,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,26,67,8,3,16,5,51,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,715,129,716,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,2,67,11,164,717,1,68,718,4,6,62,79,12,719,-256,-256,-256,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,720,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,2,6,62,-319,-319,2,6,62,531,721,2,67,11,164,722,3,55,5,1,723,106,107,8,6,61,1,5,24,1,8,18,-219,-219,-219,545,724,-219,-219,-219,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,1,144,725,4,56,1,127,2,409,105,726,410,6,56,1,10,116,1,2,409,105,408,727,407,410,5,6,61,1,5,25,-335,-335,-335,-335,-335,3,6,61,1,655,656,728,5,6,61,1,5,25,-340,-340,-340,-340,-340,5,6,61,1,5,25,-342,-342,-342,-342,-342,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,14,1,5,60,1,1,5,33,18,16,4,6,1,10,1,-346,-346,-346,-346,-346,-346,-346,-346,-346,729,-346,-346,-346,-346,4,56,1,129,5,554,105,417,730,6,56,1,10,119,3,2,554,105,415,417,731,414,5,6,61,1,5,25,-364,-364,-364,-364,-364,3,6,61,1,663,664,732,5,6,61,1,5,25,-369,-369,-369,-369,-369,5,6,61,1,5,25,-370,-370,-370,-370,-370,5,6,61,1,5,25,-372,-372,-372,-372,-372,32,1,5,60,1,1,5,2,19,12,18,16,10,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-352,-352,-352,-352,-352,-352,125,129,-352,-352,-352,-352,127,128,-352,-352,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,733,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,9,6,61,1,5,24,1,8,9,9,-219,-219,-219,429,430,-219,-219,734,-219,5,6,61,1,5,33,-149,-149,-149,-149,-149,5,6,61,1,5,33,-150,-150,-150,-150,-150,1,88,735,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,14,40,16,1,25,1,1,7,4,5,5,2,24,37,2,313,156,105,158,159,157,100,736,737,84,160,199,312,198,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,738,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,5,6,61,1,5,25,-114,-114,-114,-114,-114,8,6,61,1,5,24,1,8,18,-219,-219,-219,447,739,-219,-219,-219,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,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,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,740,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,576,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,741,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,6,6,61,1,5,20,5,-127,-127,-127,-127,-127,-127,9,6,61,1,5,12,1,1,11,24,-140,-140,-140,-140,-140,-140,-140,-140,-140,9,6,61,1,5,12,1,1,11,24,-141,-141,-141,-141,-141,-141,-141,-141,-141,24,75,13,6,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,125,742,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,743,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,1,66,744,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,745,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,746,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,747,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,748,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,749,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,750,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-293,-293,-293,-293,-293,-293,125,-293,-293,-293,-293,-293,751,-293,-293,-293,-293,-293,-293,-293,-293,127,128,-293,-293,-293,-293,-293,-293,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-297,-297,-297,-297,-297,-297,125,-297,-297,-297,-297,-297,752,-297,-297,-297,-297,-297,-297,-297,-297,127,128,-297,-297,-297,-297,-297,-297,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,64,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,64,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,1,88,753,5,6,61,1,5,51,-198,-198,-198,-198,-198,8,6,61,1,5,24,1,8,18,-219,-219,-219,485,754,-219,-219,-219,5,6,61,1,5,51,-199,-199,-199,-199,-199,64,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,3,6,61,1,499,500,755,26,67,8,3,16,56,1,9,1,1,4,30,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,756,129,126,127,128,97,98,757,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,26,67,8,3,16,5,51,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,758,129,759,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,25,67,8,3,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,760,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,25,67,8,3,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,761,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,25,67,8,3,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,762,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,763,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,764,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,1,68,765,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,3,68,79,12,-257,-257,-257,25,67,6,2,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-206,-206,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,3,6,61,31,655,656,766,3,55,5,1,767,106,107,5,6,61,1,5,25,-336,-336,-336,-336,-336,8,6,61,1,5,24,1,8,18,-219,-219,-219,545,768,-219,-219,-219,5,6,61,1,5,25,-337,-337,-337,-337,-337,3,55,5,1,769,106,107,5,6,61,1,5,25,-365,-365,-365,-365,-365,8,6,61,1,5,24,1,8,18,-219,-219,-219,552,770,-219,-219,-219,5,6,61,1,5,25,-366,-366,-366,-366,-366,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,2,67,1,565,771,55,1,5,54,1,5,1,1,5,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,4,96,69,2,2,772,467,469,470,11,56,1,25,1,1,7,4,10,2,24,39,156,105,158,159,157,100,773,161,160,199,198,5,6,61,1,5,25,-119,-119,-119,-119,-119,3,6,61,1,578,579,774,28,6,61,1,5,2,19,4,52,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-118,-118,-118,-118,125,129,-118,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,5,6,61,1,5,25,-121,-121,-121,-121,-121,9,6,61,1,5,12,1,1,11,24,-142,-142,-142,-142,-142,-142,-142,-142,-142,24,68,7,19,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,775,125,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,4,60,1,2,2,-62,-62,-62,-62,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-287,-287,-287,-287,-287,-287,125,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,127,128,-287,-287,-287,776,-287,-287,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,-288,125,-288,-288,-288,-288,-288,777,-288,-288,-288,-288,-288,-288,-288,-288,127,128,-288,-288,-288,-288,-288,-288,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-292,-292,-292,-292,-292,-292,125,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,127,128,-292,-292,-292,-292,-292,-292,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-296,-296,-296,-296,-296,-296,125,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,127,128,-296,-296,-296,-296,-296,-296,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-300,-300,-300,-300,-300,-300,125,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,127,128,-300,-300,-300,-300,-300,-300,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,778,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,779,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,64,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,3,6,61,1,612,613,780,6,6,61,1,5,51,2,-179,-179,-179,-179,-179,-179,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,781,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,782,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,25,67,8,3,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,783,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,25,67,8,3,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,784,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,1,144,785,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,3,6,61,1,655,656,786,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,3,6,61,1,663,664,787,5,6,61,1,5,33,-151,-151,-151,-151,-151,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,788,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,1,96,789,5,6,61,1,5,25,-115,-115,-115,-115,-115,1,88,790,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,791,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,792,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-294,-294,-294,-294,-294,-294,125,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,127,128,-294,-294,-294,-294,-294,-294,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-298,-298,-298,-298,-298,-298,125,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,127,128,-298,-298,-298,-298,-298,-298,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,5,6,61,1,5,51,-200,-200,-200,-200,-200,25,67,8,3,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,793,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,25,67,8,3,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,164,125,794,129,126,127,128,97,98,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,3,55,5,1,795,106,107,5,6,61,1,5,25,-338,-338,-338,-338,-338,5,6,61,1,5,25,-367,-367,-367,-367,-367,46,1,5,60,1,1,5,2,13,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,798,125,-291,-291,-291,-291,796,-291,797,-291,-291,-291,-291,-291,-291,-291,-291,127,128,-291,-291,-291,-291,-291,-291,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,799,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,9,6,61,1,5,12,1,1,11,24,-143,-143,-143,-143,-143,-143,-143,-143,-143,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,-289,125,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,127,128,-289,-289,-289,-289,-289,-289,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,45,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,-290,125,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,127,128,-290,-290,-290,-290,-290,-290,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,44,1,5,60,1,1,5,2,13,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,13,1,5,60,1,1,5,33,18,16,10,1,10,1,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,1,98,800,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,801,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,6,6,61,1,30,8,18,-220,-220,-220,-220,-220,-220,46,1,5,60,1,1,5,2,13,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-293,-293,-293,-293,-293,798,125,-293,-293,-293,-293,802,-293,803,-293,-293,-293,-293,-293,-293,-293,-293,127,128,-293,-293,-293,-293,-293,-293,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,60,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,46,1,5,60,1,1,5,2,13,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-292,-292,-292,-292,-292,798,125,-292,-292,-292,-292,804,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,127,128,-292,-292,-292,-292,-292,-292,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,1,98,805,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,4,1,806,167,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,101,102,93,105,106,107,103,104,54,53,73,74,94,100,60,84,88,85,86,67,171,172,91,92,87,89,90,83,70,65,66,55,95,56,96,57,61,58,97,98,59,99,50,62,68,63,64,71,72,173,174,175,47,48,49,51,52,1,98,807,60,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,46,1,5,60,1,1,5,2,13,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-294,-294,-294,-294,-294,798,125,-294,-294,-294,-294,808,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,127,128,-294,-294,-294,-294,-294,-294,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,60,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,1,98,809,60,1,5,54,1,5,1,1,5,1,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109],w=[],U=0,_,u,$,F;while(U<f.length){_=f[U++],u={},$=0,F=[];while(_--)$+=f[U++],F.push($);for($ of F)u[$]=f[U++];w.push(u)}return w})(),ruleTable:[0,0,3,0,3,1,4,1,4,3,4,2,5,1,5,1,5,1,9,1,9,1,9,1,9,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,8,1,8,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,46,1,46,1,56,1,58,1,55,1,55,3,62,1,62,2,64,3,64,5,64,2,64,1,48,1,48,3,72,3,72,1,17,3,17,4,17,5,18,3,19,3,19,4,19,5,20,3,20,4,20,3,21,3,21,4,21,5,22,3,22,4,22,3,22,2,22,3,22,2,37,1,37,1,37,1,81,1,81,1,81,3,81,3,81,4,81,6,81,4,81,6,81,4,81,5,81,7,81,3,81,3,81,4,81,6,83,10,83,12,83,11,83,13,83,4,101,0,101,1,101,3,101,4,101,6,102,1,102,1,102,3,102,5,102,3,102,5,104,1,104,1,104,1,92,1,92,3,92,4,92,1,103,2,103,2,109,1,109,1,109,1,109,1,109,1,109,2,109,2,109,2,109,2,109,3,109,3,109,4,109,6,82,2,82,3,82,4,114,1,114,3,114,4,114,4,114,6,116,1,116,2,115,1,115,2,113,1,113,2,118,1,118,2,119,1,119,1,40,5,89,3,89,2,89,2,89,1,33,6,33,3,15,5,15,2,35,5,35,2,127,1,127,1,123,0,123,1,123,3,123,4,123,6,130,1,130,3,130,2,130,1,131,1,131,1,131,1,131,1,132,2,41,2,41,2,41,3,41,2,41,2,111,2,111,4,134,1,134,3,134,4,134,4,134,6,117,1,117,1,117,1,117,1,135,1,135,3,43,1,43,1,84,2,44,3,44,4,44,6,45,3,45,3,78,2,78,3,39,3,39,5,97,0,97,1,10,2,10,4,10,1,31,2,31,4,32,1,32,2,32,4,32,3,145,3,145,5,148,3,148,5,23,1,23,3,23,1,23,3,23,3,23,7,23,5,23,3,23,3,24,2,24,3,24,4,24,5,153,3,153,3,153,2,27,5,27,7,27,4,27,6,157,1,157,2,158,3,158,4,160,2,160,4,160,2,160,4,25,2,25,2,25,2,25,1,163,2,163,2,163,3,26,5,26,7,26,7,26,9,26,9,26,5,26,7,26,6,26,8,26,5,26,7,26,6,26,8,26,5,26,7,26,3,26,5,26,5,26,7,26,7,26,9,26,9,26,5,26,7,26,6,26,8,26,5,26,7,26,6,26,8,26,5,26,7,26,3,26,5,170,1,170,3,95,1,95,3,28,1,28,2,28,3,28,4,28,2,28,3,28,4,28,5,34,3,29,4,29,6,175,1,175,3,175,2,176,1,176,1,176,1,176,2,176,2,30,2,12,2,12,4,12,4,12,5,12,7,12,6,12,9,183,1,183,3,183,4,183,4,183,6,184,1,184,3,184,1,184,3,181,1,182,3,13,3,13,5,13,2,13,2,13,2,13,2,13,4,13,5,13,6,13,2,13,2,13,2,13,2,13,3,13,5,13,4,13,5,13,7,189,1,189,3,189,4,189,4,189,6,191,1,191,3,191,3,191,1,191,3,36,2,36,2,36,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,4,16,2,16,2,16,2,16,2,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,5,16,3,16,5,16,4,42,2],ruleActions:(f,w,U,_)=>{let u=w,$=w.length-1;switch(f){case 1:return["program"];case 2:return["program",...u[$]];case 3:case 59:case 112:case 152:case 156:case 176:case 196:case 205:case 254:case 305:case 318:case 334:case 363:return[u[$]];case 4:case 113:case 177:case 197:case 206:case 319:case 335:case 364:return[...u[$-2],u[$]];case 5:case 61:case 159:case 320:return u[$-1];case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 64:case 65:case 88:case 89:case 90:case 91:case 92:case 117:case 122:case 123:case 124:case 125:case 128:case 131:case 132:case 133:case 134:case 135:case 147:case 173:case 174:case 180:case 184:case 185:case 186:case 187:case 201:case 202:case 203:case 219:case 220:case 234:case 236:case 265:case 303:case 321:case 322:case 323:case 339:case 341:case 343:case 368:case 371:return u[$];case 48:return"undefined";case 49:return"null";case 58:return["str",...u[$-1]];case 60:case 153:case 157:case 255:return[...u[$-1],u[$]];case 62:case 195:case 199:case 337:case 366:return u[$-2];case 63:return"";case 66:return["regex",u[$-1]];case 67:return["regex-index",u[$-2],u[$]];case 68:return["regex-index",u[$],null];case 69:return["=",u[$-2],u[$]];case 70:return["=",u[$-3],u[$]];case 71:return["=",u[$-4],u[$-1]];case 72:return["=",u[$],u[$-2]];case 73:return["state",u[$-2],u[$]];case 74:return["state",u[$-3],u[$]];case 75:return["state",u[$-4],u[$-1]];case 76:case 78:return["computed",u[$-2],u[$]];case 77:return["computed",u[$-3],u[$]];case 79:return["readonly",u[$-2],u[$]];case 80:return["readonly",u[$-3],u[$]];case 81:return["readonly",u[$-4],u[$-1]];case 82:case 84:return["effect",u[$-2],u[$]];case 83:return["effect",u[$-3],u[$]];case 85:case 86:case 87:return["effect",null,u[$]];case 93:case 102:case 140:return[".",u[$-2],u[$]];case 94:case 103:case 141:return["?.",u[$-2],u[$]];case 95:case 97:case 104:case 142:return["[]",u[$-3],u[$-1]];case 96:case 98:case 105:case 143:return["[]",u[$-5],u[$-2]];case 99:return[u[$-1][0],u[$-3],...u[$-1].slice(1)];case 100:return["optindex",u[$-4],u[$-1]];case 101:return["optindex",u[$-6],u[$-2]];case 106:return["object-comprehension",u[$-8],u[$-6],[["for-of",u[$-4],u[$-2],!1]],[]];case 107:return["object-comprehension",u[$-10],u[$-8],[["for-of",u[$-6],u[$-4],!1]],[u[$-2]]];case 108:return["object-comprehension",u[$-9],u[$-7],[["for-of",u[$-4],u[$-2],!0]],[]];case 109:return["object-comprehension",u[$-11],u[$-9],[["for-of",u[$-6],u[$-4],!0]],[u[$-2]]];case 110:return["object",...u[$-2]];case 111:case 154:case 175:case 194:return[];case 114:case 178:case 198:case 336:case 365:return[...u[$-3],u[$]];case 115:case 179:case 200:case 338:case 367:return[...u[$-5],...u[$-2]];case 116:return[u[$],u[$],null];case 118:return[u[$-2],u[$],":"];case 119:return[u[$-4],u[$-1],":"];case 120:return[u[$-2],u[$],"="];case 121:return[u[$-4],u[$-1],"="];case 126:return["dynamicKey",u[$-1]];case 127:return["[]","this",u[$-1]];case 129:case 130:case 188:return["...",u[$]];case 136:case 192:return["super",...u[$]];case 137:case 138:case 139:case 190:case 193:return[u[$-1],...u[$]];case 144:return["array"];case 145:return["array",...u[$-1]];case 146:return["array",...u[$-2],...u[$-1]];case 148:return[...u[$-2],...u[$]];case 149:return[...u[$-3],...u[$]];case 150:return[...u[$-2],...u[$-1]];case 151:return[...u[$-5],...u[$-4],...u[$-2],...u[$-1]];case 155:return[...u[$]];case 158:return null;case 160:return"..";case 161:case 204:return"...";case 162:return[u[$-2],u[$-3],u[$-1]];case 163:case 392:case 394:case 395:case 410:case 412:return[u[$-1],u[$-2],u[$]];case 164:return[u[$],u[$-1],null];case 165:return[u[$-1],null,u[$]];case 166:return[u[$],null,null];case 167:return["def",u[$-4],u[$-2],u[$]];case 168:return["def",u[$-1],[],u[$]];case 169:case 171:return[u[$-1],u[$-3],u[$]];case 170:case 172:return[u[$-1],[],u[$]];case 181:case 304:return["default",u[$-2],u[$]];case 182:return["rest",u[$]];case 183:return["expansion"];case 189:return["tagged-template",u[$-1],u[$]];case 191:return["optcall",u[$-2],...u[$]];case 207:case 208:return"this";case 209:return[".","this",u[$]];case 210:return[".","super",u[$]];case 211:return["[]","super",u[$-1]];case 212:return["[]","super",u[$-2]];case 213:return[".","new",u[$]];case 214:return[".","import",u[$]];case 215:return["block"];case 216:return["block",...u[$-1]];case 217:return u[$-1].length===1?u[$-1][0]:["block",...u[$-1]];case 218:return u[$-2].length===1?u[$-2][0]:["block",...u[$-2]];case 221:return["return",u[$]];case 222:return["return",u[$-1]];case 223:return["return"];case 224:return["throw",u[$]];case 225:return["throw",u[$-1]];case 226:return["yield"];case 227:return["yield",u[$]];case 228:return["yield",u[$-1]];case 229:return["yield-from",u[$]];case 230:return["if",u[$-1],u[$]];case 231:return u[$-4].length===3?["if",u[$-4][1],u[$-4][2],["if",u[$-1],u[$]]]:[...u[$-4],["if",u[$-1],u[$]]];case 232:return["if",["!",u[$-1]],u[$]];case 233:return["if",["!",u[$-3]],u[$-2],u[$]];case 235:return u[$-2].length===3?["if",u[$-2][1],u[$-2][2],u[$]]:[...u[$-2],u[$]];case 237:case 238:return["if",u[$],[u[$-2]]];case 239:return["?:",u[$-4],u[$-6],u[$-1]];case 240:return["?:",u[$-2],u[$-4],u[$]];case 241:case 242:return["if",["!",u[$]],[u[$-2]]];case 243:return["try",u[$]];case 244:return["try",u[$-1],u[$]];case 245:return["try",u[$-2],u[$]];case 246:return["try",u[$-3],u[$-2],u[$]];case 247:case 248:case 373:case 376:case 378:return[u[$-1],u[$]];case 249:return[null,u[$]];case 250:return["switch",u[$-3],u[$-1],null];case 251:return["switch",u[$-5],u[$-3],u[$-1]];case 252:return["switch",null,u[$-1],null];case 253:return["switch",null,u[$-3],u[$-1]];case 256:return["when",u[$-1],u[$]];case 257:return["when",u[$-2],u[$-1]];case 258:return["while",u[$]];case 259:return["while",u[$-2],u[$]];case 260:return["while",["!",u[$]]];case 261:return["while",["!",u[$-2]],u[$]];case 262:return u[$-1].length===2?[u[$-1][0],u[$-1][1],u[$]]:[u[$-1][0],u[$-1][1],u[$-1][2],u[$]];case 263:case 264:return u[$].length===2?[u[$][0],u[$][1],[u[$-1]]]:[u[$][0],u[$][1],u[$][2],[u[$-1]]];case 266:return["loop",u[$]];case 267:return["loop",[u[$]]];case 268:return["loop-n",u[$-1],u[$]];case 269:return["for-in",u[$-3],u[$-1],null,null,u[$]];case 270:return["for-in",u[$-5],u[$-3],null,u[$-1],u[$]];case 271:return["for-in",u[$-5],u[$-3],u[$-1],null,u[$]];case 272:return["for-in",u[$-7],u[$-5],u[$-1],u[$-3],u[$]];case 273:return["for-in",u[$-7],u[$-5],u[$-3],u[$-1],u[$]];case 274:return["for-of",u[$-3],u[$-1],!1,null,u[$]];case 275:return["for-of",u[$-5],u[$-3],!1,u[$-1],u[$]];case 276:return["for-of",u[$-3],u[$-1],!0,null,u[$]];case 277:return["for-of",u[$-5],u[$-3],!0,u[$-1],u[$]];case 278:return["for-as",u[$-3],u[$-1],!1,null,u[$]];case 279:return["for-as",u[$-5],u[$-3],!1,u[$-1],u[$]];case 280:case 282:return["for-as",u[$-3],u[$-1],!0,null,u[$]];case 281:case 283:return["for-as",u[$-5],u[$-3],!0,u[$-1],u[$]];case 284:return["for-in",[],u[$-1],null,null,u[$]];case 285:return["for-in",[],u[$-3],u[$-1],null,u[$]];case 286:return["comprehension",u[$-4],[["for-in",u[$-2],u[$],null]],[]];case 287:return["comprehension",u[$-6],[["for-in",u[$-4],u[$-2],null]],[u[$]]];case 288:return["comprehension",u[$-6],[["for-in",u[$-4],u[$-2],u[$]]],[]];case 289:return["comprehension",u[$-8],[["for-in",u[$-6],u[$-4],u[$]]],[u[$-2]]];case 290:return["comprehension",u[$-8],[["for-in",u[$-6],u[$-4],u[$-2]]],[u[$]]];case 291:return["comprehension",u[$-4],[["for-of",u[$-2],u[$],!1]],[]];case 292:return["comprehension",u[$-6],[["for-of",u[$-4],u[$-2],!1]],[u[$]]];case 293:return["comprehension",u[$-5],[["for-of",u[$-2],u[$],!0]],[]];case 294:return["comprehension",u[$-7],[["for-of",u[$-4],u[$-2],!0]],[u[$]]];case 295:return["comprehension",u[$-4],[["for-as",u[$-2],u[$],!1,null]],[]];case 296:return["comprehension",u[$-6],[["for-as",u[$-4],u[$-2],!1,null]],[u[$]]];case 297:return["comprehension",u[$-5],[["for-as",u[$-2],u[$],!0,null]],[]];case 298:return["comprehension",u[$-7],[["for-as",u[$-4],u[$-2],!0,null]],[u[$]]];case 299:return["comprehension",u[$-4],[["for-as",u[$-2],u[$],!0,null]],[]];case 300:return["comprehension",u[$-6],[["for-as",u[$-4],u[$-2],!0,null]],[u[$]]];case 301:return["comprehension",u[$-2],[["for-in",[],u[$],null]],[]];case 302:return["comprehension",u[$-4],[["for-in",[],u[$-2],u[$]]],[]];case 306:case 340:case 342:case 369:case 370:case 372:return[u[$-2],u[$]];case 307:return["class",null,null];case 308:return["class",null,null,u[$]];case 309:return["class",null,u[$]];case 310:return["class",null,u[$-1],u[$]];case 311:return["class",u[$],null];case 312:return["class",u[$-1],null,u[$]];case 313:return["class",u[$-2],u[$]];case 314:return["class",u[$-3],u[$-1],u[$]];case 315:return["enum",u[$-1],u[$]];case 316:return["component",null,["block",...u[$-1]]];case 317:return["component",u[$-3],["block",...u[$-1]]];case 324:return["offer",u[$]];case 325:return["accept",u[$]];case 326:return["render",u[$]];case 327:case 330:return["import","{}",u[$]];case 328:case 329:return["import",u[$-2],u[$]];case 331:return["import",u[$-4],u[$]];case 332:return["import",u[$-4],u[$-2],u[$]];case 333:return["import",u[$-7],u[$-4],u[$]];case 344:return["*",u[$]];case 345:return["export","{}"];case 346:return["export",u[$-2]];case 347:case 348:case 349:case 350:case 354:case 355:case 356:case 357:return["export",u[$]];case 351:return["export",["=",u[$-2],u[$]]];case 352:return["export",["=",u[$-3],u[$]]];case 353:return["export",["=",u[$-4],u[$-1]]];case 358:return["export-default",u[$]];case 359:return["export-default",u[$-1]];case 360:return["export-all",u[$]];case 361:return["export-from","{}",u[$]];case 362:return["export-from",u[$-4],u[$]];case 374:case 375:case 377:case 415:return["do-iife",u[$]];case 379:return["-",u[$]];case 380:return["+",u[$]];case 381:return["?",u[$-1]];case 382:return["defined",u[$-1]];case 383:return["presence",u[$-1]];case 384:return["await",u[$]];case 385:return["await",u[$-1]];case 386:return["--",u[$],!1];case 387:return["++",u[$],!1];case 388:return["--",u[$-1],!0];case 389:return["++",u[$-1],!0];case 390:return["+",u[$-2],u[$]];case 391:return["-",u[$-2],u[$]];case 393:return["**",u[$-2],u[$]];case 396:return["&",u[$-2],u[$]];case 397:return["^",u[$-2],u[$]];case 398:return["|",u[$-2],u[$]];case 399:case 400:case 401:case 402:case 403:case 404:return["control",u[$-1],u[$-2],u[$]];case 405:return["&&",u[$-2],u[$]];case 406:return["||",u[$-2],u[$]];case 407:return["??",u[$-2],u[$]];case 408:return["!?",u[$-2],u[$]];case 409:return["|>",u[$-2],u[$]];case 411:return["?:",u[$-4],u[$-2],u[$]];case 413:return[u[$-3],u[$-4],u[$-1]];case 414:return[u[$-2],u[$-3],u[$]]}},parseError(f,w){let U,_,u,$,F,W,Y;if(w.recoverable)return this.trace(f);else throw u=(w.line||0)+1,U=w.loc?.c||0,Y=w.token?` (token: ${w.token})`:"",W=w.text?` near '${w.text}'`:"",$=`line ${u}, column ${U}`,F=`Parse error at ${$}${Y}${W}: ${f}`,_=Error(F),_.hash=w,_},parse(f){let w,U,_,u,$,F,W,Y,R,A,Z,z,X,H,J,G,Q,q,O,K,I,E,D,M,P,S;[K,S,A]=[[0],[null],[]],[X,P,D,E,G]=[this.parseTable,"",0,0,0],[U,w]=[2,1],Y=Object.create(this.lexer),q={ctx:{}};for(let N in this.ctx){if(!Object.hasOwn(this.ctx,N))continue;let B=this.ctx[N];q.ctx[N]=B}if(Y.setInput(f,q.ctx),[q.ctx.lexer,q.ctx.parser]=[Y,this],Y.loc==null)Y.loc={};M=Y.loc,A.push(M),this.parseError=typeof q.ctx.parseError==="function"?q.ctx.parseError:Object.getPrototypeOf(this).parseError,W=()=>{let N;if(N=Y.lex()||w,typeof N!=="number")N=this.symbolIds[N]||N;return N},I=H=O=_=J=z=F=Z=$=null,Q={};while(!0){if(O=K[K.length-1],I==null)I=W();if(_=X[O]?.[I],_==null){if(u="",!G)$=(()=>{let N=[];for(let B in X[O]){if(!Object.hasOwn(X[O],B))continue;if(this.tokenNames[B]&&B>U)N.push(`'${this.tokenNames[B]}'`)}return N})();throw u=(()=>{if(Y.showPosition)return`Parse error on line ${D+1}:
|
|
13
13
|
${Y.showPosition()}
|
|
14
|
-
Expecting ${$.join(", ")}, got '${this.tokenNames[P]||P}'`;else return`Parse error on line ${H+1}: Unexpected ${P===_?"end of input":`'${this.tokenNames[P]||P}'`}`,this.parseError(u,{text:Y.match,token:this.tokenNames[P]||P,line:Y.line,loc:M,expected:$})})(),Error(u)}if(U>0)if(K.push(P,U),S.push(Y.text),A.push(Y.loc),P=null,!D){if([E,I,H,M]=[Y.len,Y.text,Y.line,Y.loc],q>0)q--}else[P,D]=[D,null];else if(U<0){if(W=this.ruleTable[-U*2+1],X.$=S[S.length-W],Z=A[A.length-(W||1)],X._$={r:Z.r,c:Z.c},J=this.ruleActions.call(X,-U,S,A,G.ctx),J!=null)X.$=J;if(Array.isArray(X.$))X.$.loc=X._$;if(W)K.length-=W*2,S.length-=W,A.length-=W;K.push(this.ruleTable[-U*2]),S.push(X.$),A.push(X._$),R=Q[K[K.length-2]][K[K.length-1]],K.push(R)}else if(U===0)return S[S.length-1]}},trace(){},ctx:{}},_7=(f={})=>{let _=Object.create($7);return Object.defineProperty(_,"ctx",{value:{...f},enumerable:!1,writable:!0,configurable:!0}),_},Q1=_7();var G7=Q1.parse.bind(Q1);var U7=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"]),G1=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"]),j1=new Set([...U7,...G1]);var r1=new Set(["beforeMount","mounted","updated","beforeUnmount","unmounted","onError"]),F7=new Set(["disabled","hidden","readonly","required","checked","selected","autofocus","autoplay","controls","loop","muted","multiple","novalidate","open","reversed","defer","async","formnovalidate","allowfullscreen","inert"]);function w7(f){for(let _ of f){if(!Array.isArray(_))continue;let F=_[0]instanceof String?_[0].valueOf():_[0],U=_[1]instanceof String?_[1].valueOf():_[1];if(F==="type"&&typeof U==="string")return U.replace(/^["']|["']$/g,"")}return null}function X1(f){if(typeof f==="string"||f instanceof String)return f.valueOf();if(Array.isArray(f)&&f[0]==="."&&f[1]==="this"&&(typeof f[2]==="string"||f[2]instanceof String))return f[2].valueOf();return null}function o1(f){return Array.isArray(f)&&f[0]==="."&&f[1]==="this"}function B2(f){if(f instanceof String&&f.type)return f.type;if(Array.isArray(f)&&f[2]instanceof String&&f[2].type)return f[2].type;return null}function N2(f,_){let F=(w,Y)=>w instanceof String?w[Y]:void 0,U=_.prototype.classifyKeyword;_.prototype.classifyKeyword=function(w,Y,Z){if(w==="offer"||w==="accept"){let A=0;for(let R=this.tokens.length-1;R>=0;R--){let z=this.tokens[R][0];if(z==="OUTDENT")A++;else if(z==="INDENT")A--;if(A<0&&this.tokens[R-1]?.[0]==="COMPONENT")return w.toUpperCase()}return Y}return U.call(this,w,Y,Z)},_.prototype.rewriteRender=function(){let w=(X,G,O)=>{let K=[X,G];if(K.pre=0,K.data=null,K.loc=O?.loc??{r:0,c:0,n:0},K.spaced=!1,K.newLine=!1,K.generated=!0,O)K.origin=O;return K},Y=!1,Z=0,A=0,R=[],z=(X)=>{let G=X.split("#")[0];return j1.has(G)},Q=(X)=>{if(!X||typeof X!=="string")return!1;return/^[A-Z]/.test(X)},D=(X)=>{return z(X)||Q(X)},J=(X,G,O,K)=>{let P=1,E=G;while(E>=0&&P>0){let H=X[E][0];if(H===O)P++;else if(H===K)P--;if(P>0)E--}return E},q=(X,G)=>{let O=G;while(O>0){let K=X[O-1][0];if(K==="TERMINATOR"||K==="RENDER")break;if(K==="INDENT"||K==="OUTDENT"){let P=X[O][0];if(P==="CALL_END"||P===")"){O=J(X,O-1,P,P==="CALL_END"?"CALL_START":"(");continue}break}if(K==="CALL_END"||K===")"){O=J(X,O-2,K,K==="CALL_END"?"CALL_START":"(");continue}if(K==="INTERPOLATION_END"){O=J(X,O-2,"INTERPOLATION_END","INTERPOLATION_START");continue}if(K==="STRING_END"){O=J(X,O-2,"STRING_END","STRING_START");continue}O--}return X[O]&&X[O][0]==="IDENTIFIER"&&D(X[O][1])};this.scanTokens(function(X,G,O){let K=X[0],P=G<O.length-1?O[G+1]:null;if(K==="RENDER")return Y=!0,Z=A+1,1;if(K==="INDENT")return A++,1;if(K==="OUTDENT"){A--;let E=0;while(R.length>0&&R[R.length-1]>A){let H=w("CALL_END",")",X);O.splice(G+1+E,0,H),R.pop(),E++}if(Y&&A<Z)Y=!1;return 1+E}if(!Y)return 1;if(K==="="&&G>0){let E=O[G-1][0];if(E==="TERMINATOR"||E==="INDENT"||E==="RENDER"){if(O.splice(G,1),O[G]&&O[G][0]==="IDENTIFIER"){let H=O[G][1];if(typeof H==="string")H=new String(H),O[G][1]=H;H.text=!0}return 0}}if(K==="UNARY_MATH"&&X[1]==="~"&&P&&P[0]==="IDENTIFIER"){X[0]="PROPERTY",X[1]="__transition__";let E=w(":",":",X),H=w("STRING",`"${P[1]}"`,P);return O.splice(G+1,1,E,H),1}if(K==="PROPERTY"&&X[1][0]==="$"&&X[1].length>1)return X[0]="STRING",X[1]=`"data-${X[1].slice(1)}"`,1;if(K==="IDENTIFIER"&&!X.spaced){let E=[X[1]],H=G+1;while(H+1<O.length){let M=O[H],I=O[H+1];if(M[0]==="-"&&!M.spaced&&(I[0]==="IDENTIFIER"||I[0]==="PROPERTY")){if(E.push(I[1]),H+=2,I[0]==="PROPERTY")break}else break}if(E.length>1&&H>G+1&&O[H-1][0]==="PROPERTY"){let M=E.join("-");if(M[0]==="$")M="data-"+M.slice(1);return X[0]="STRING",X[1]=`"${M}"`,O.splice(G+1,H-G-1),1}}if(K==="."){let E=G>0?O[G-1]:null,H=E?E[0]:null;if(H==="INDENT"||H==="TERMINATOR"){if(P&&P[0]==="PROPERTY"){let M=G+2<O.length?O[G+2]:null;if(!M||M[0]!==":"){let I=w("IDENTIFIER","div",X);return O.splice(G,0,I),2}}if(!P||P[0]!=="(")return X[0]="IDENTIFIER",X[1]="div",0}}if(K==="IDENTIFIER"||K==="PROPERTY"){let E=O[G+1],H=O[G+2];if(E&&E[0]==="#"&&H&&(H[0]==="PROPERTY"||H[0]==="IDENTIFIER")){if(X[1]=X[1]+"#"+H[1],H.spaced)X.spaced=!0;return O.splice(G+1,2),0}}if(K==="BIND"){let E=G>0?O[G-1]:null,H=O[G+1];if(E&&(E[0]==="IDENTIFIER"||E[0]==="PROPERTY")&&H&&H[0]==="IDENTIFIER")return E[1]=`__bind_${E[1]}__`,X[0]=":",X[1]=":",1}if(K==="@"){let E=G+1;if(E<O.length&&O[E][0]==="PROPERTY"){E++;while(E+1<O.length&&O[E][0]==="."&&O[E+1][0]==="PROPERTY")E+=2;if(E>G+2&&E<O.length&&O[E][0]===":"){let H=w("[","[",X);O.splice(G,0,H);let M=w("]","]",O[E+1]);return O.splice(E+1,0,M),2}}}if(K==="."&&P&&P[0]==="("){let E=G>0?O[G-1]:null,H=E?E[0]:null,M=H==="INDENT"||H==="TERMINATOR",I=w("PROPERTY","__clsx",X);P[0]="CALL_START";let S=1;for(let N=G+2;N<O.length&&S>0;N++)if(O[N][0]==="("||O[N][0]==="CALL_START")S++;else if(O[N][0]===")"){if(S--,S===0)O[N][0]="CALL_END"}else if(O[N][0]==="CALL_END")S--;if(M){let N=w("IDENTIFIER","div",X);return O.splice(G,0,N),O.splice(G+2,0,I),3}else if(H===":")return O[G]=w("IDENTIFIER","__clsx",X),1;else return O.splice(G+1,0,I),2}if(P&&P[0]==="INDENT"){if(P.fromThen)return 1;if(K==="->"||K==="=>"||K==="CALL_START"||K==="(")return 1;let E=!1,H=G>0?O[G-1][0]:null,M=H==="IF"||H==="UNLESS"||H==="WHILE"||H==="UNTIL"||H==="WHEN",I=!1;if(K==="CALL_END"){let S=1;for(let N=G-1;N>=0&&S>0;N--)if(O[N][0]==="CALL_END")S++;else if(O[N][0]==="CALL_START"){if(S--,S===0&&N>0&&O[N-1][0]==="PROPERTY"&&O[N-1][1]==="__clsx")I=!0}}if(I)E=!0;else if(K==="IDENTIFIER"&&D(X[1])&&!M)E=!0;else if(K==="IDENTIFIER"&&!M)E=q(O,G);else if(K==="PROPERTY"||K==="STRING"||K==="STRING_END"||K==="NUMBER"||K==="BOOL"||K==="CALL_END"||K===")"||K==="PRESENCE")E=q(O,G);if(E){let S=!1;if(K==="PROPERTY"&&G>0&&O[G-1][0]==="."){let B=G;while(B>=2&&O[B-1][0]==="."&&O[B-2][0]==="PROPERTY")B-=2;if(B>=2&&O[B-1][0]==="."&&O[B-2][0]==="IDENTIFIER"&&D(O[B-2][1])){let V=B>=3?O[B-3][0]:null;if(!V||V==="INDENT"||V==="OUTDENT"||V==="TERMINATOR"||V==="RENDER")S=!0}}if(I||K==="IDENTIFIER"&&D(X[1])||S){let B=w("CALL_START","(",X),V=w("->","->",X);return V.newLine=!0,O.splice(G+1,0,B,V),R.push(A+1),3}else{let B=w(",",",",X),V=w("->","->",X);return V.newLine=!0,O.splice(G+1,0,B,V),3}}}if(K==="IDENTIFIER"&&Q(X[1])&&P&&(P[0]==="OUTDENT"||P[0]==="TERMINATOR"))return O.splice(G+1,0,w("CALL_START","(",X),w("CALL_END",")",X)),3;return 1})};let u=f.prototype;u.isHtmlTag=function(w){let Y=w.split("#")[0];return j1.has(Y.toLowerCase())},u.isComponent=function(w){if(!w||typeof w!=="string")return!1;return/^[A-Z]/.test(w)},u.collectTemplateClasses=function(w){let Y=[],Z=w;while(this.is(Z,".")){let Q=Z[2];if(typeof Q==="string"||Q instanceof String)Y.unshift(Q.valueOf());Z=Z[1]}let A=typeof Z==="string"?Z:Z instanceof String?Z.valueOf():null;if(A===null)return{tag:null,classes:Y,id:void 0,base:Z};let[R,z]=A.split("#");if(!R)R="div";return{tag:R,classes:Y,id:z,base:Z}};let $=(w)=>typeof w==="string"?w:w instanceof String?w.valueOf():null,W=(w,Y)=>{if(!(w instanceof String))return Y;let Z=new String(Y);if(w.predicate)Z.predicate=!0;if(w.await)Z.await=!0;return Z.predicate||Z.await?Z:Y};u.transformComponentMembers=function(w){let Y=this._self;if(!Array.isArray(w)){let Z=$(w);if(Z&&this.reactiveMembers&&this.reactiveMembers.has(Z))return[".",[".",Y,Z],W(w,"value")];if(Z&&this.componentMembers&&this.componentMembers.has(Z))return[".",Y,W(w,Z)];return w}if(w[0]==="."&&w[1]==="this"&&$(w[2])!=null){let Z=w[2],A=$(Z);if(this.reactiveMembers&&this.reactiveMembers.has(A))return[".",[".",Y,A],W(Z,"value")];return this._factoryMode?[".",Y,Z]:w}if(w[0]==="."||w[0]==="?.")return[w[0],this.transformComponentMembers(w[1]),w[2]];if(w[0]==="->")return["=>",...w.slice(1).map((Z)=>this.transformComponentMembers(Z))];if(w[0]==="object")return["object",...w.slice(1).map((Z)=>{if(Array.isArray(Z)&&Z.length>=2){let A=Z[0],R=Array.isArray(A)?this.transformComponentMembers(A):A,z=this.transformComponentMembers(Z[1]);return[R,z,Z[2]]}return this.transformComponentMembers(Z)})];return w.map((Z)=>this.transformComponentMembers(Z))},u.generateComponent=function(w,Y,Z,A){let[,R]=Y,z=this.is(R,"block")?R.slice(1):[],Q=[],D=[],J=[],q=[],X=[],G=[],O=[],K=[],P=null,E=new Set,H=new Set;for(let T of z){if(!Array.isArray(T))continue;let[h]=T;if(h==="offer"){if(T=T[1],!Array.isArray(T))continue;h=T[0];let C=X1(T[1]);if(C)O.push(C)}if(h==="accept"){let C=typeof T[1]==="string"?T[1]:X1(T[1]);if(C)K.push(C),E.add(C),H.add(C)}else if(h==="."&&T[1]==="this"&&X1(T)){let C=typeof T[2]==="string"||T[2]instanceof String?T[2].valueOf():null;if(C)Q.push({name:C,value:void 0,isPublic:!0,type:T[2]?.type||null,required:!0}),E.add(C),H.add(C)}else if(h==="state"){let C=X1(T[1]);if(C)Q.push({name:C,value:T[2],isPublic:o1(T[1]),type:B2(T[1])}),E.add(C),H.add(C)}else if(h==="computed"){let C=X1(T[1]);if(C)D.push({name:C,expr:T[2]}),E.add(C),H.add(C)}else if(h==="readonly"){let C=X1(T[1]);if(C)J.push({name:C,value:T[2],isPublic:o1(T[1]),type:B2(T[1])}),E.add(C)}else if(h==="="){let C=X1(T[1]);if(C)if(r1.has(C))X.push({name:C,value:T[2]});else{let g=T[2];if(Array.isArray(g)&&(g[0]==="->"||g[0]==="=>"))q.push({name:C,func:g}),E.add(C);else Q.push({name:C,value:g,isPublic:o1(T[1])}),E.add(C),H.add(C)}}else if(h==="effect")G.push(T);else if(h==="render")P=T;else if(h==="object")for(let C=1;C<T.length;C++){let g=T[C];if(!Array.isArray(g))continue;let[i,j]=g;if(typeof i==="string"&&r1.has(i))X.push({name:i,value:j});else if(typeof i==="string")q.push({name:i,func:j}),E.add(i)}}let M=new Map;for(let{name:T}of q)if(/^on[A-Z]/.test(T)&&!r1.has(T))M.set(T[2].toLowerCase()+T.slice(3),T);let I=Y[0]?.valueOf?.()??null,S=new Set;for(let{name:T,isPublic:h}of Q)if(h)S.add(T);for(let{name:T,isPublic:h}of J)if(h)S.add(T);let N=this.componentMembers,B=this.reactiveMembers,V=this._autoEventHandlers,y=this._inheritsTag;if(this.componentMembers=E,this.reactiveMembers=H,this._autoEventHandlers=M.size>0?M:null,this._inheritsTag=I||null,this.options.stubComponents){let T=(j)=>j?j.replace(/::/g,":").replace(/(\w+(?:<[^>]+>)?)\?\?/g,"$1 | null | undefined").replace(/(\w+(?:<[^>]+>)?)\?(?![.:])/g,"$1 | undefined").replace(/(\w+(?:<[^>]+>)?)\!/g,"NonNullable<$1>"):null,h=[];h.push("class {");let C=[];for(let{name:j,type:c,isPublic:v,required:x}of Q){if(!v)continue;let n=T(c),d=x?"":"?";C.push(`${j}${d}: ${n||"any"}`),C.push(`__bind_${j}__?: Signal<${n||"any"}>`)}for(let{name:j,type:c,isPublic:v}of J){if(!v)continue;let x=T(c);C.push(`${j}?: ${x||"any"}`)}{let c=C.length>0&&Q.some((x)=>x.isPublic&&x.required)?"":"?",v=C.length>0?`{${C.join("; ")}}`:"{}";if(I)v+=` & __RipProps<'${I}'>`;h.push(` constructor(props${c}: ${v}) {}`)}let g=(j)=>{let c=j?.valueOf?.()??j;if(typeof c!=="string")return null;if(c==="true"||c==="false")return"boolean";if(/^-?\d+(\.\d+)?$/.test(c))return"number";if(c.startsWith('"')||c.startsWith("'"))return"string";return null};for(let{name:j,type:c,value:v}of Q){let x=T(c)||g(v);h.push(x?` declare ${j}: Signal<${x}>;`:` declare ${j}: Signal<any>;`)}for(let{name:j,type:c,value:v}of J){let x=T(c)||g(v);h.push(x?` declare ${j}: ${x};`:` declare ${j}: any;`)}for(let{name:j,expr:c}of D)if(this.is(c,"block")){let v=this.transformComponentMembers(c),x=this.generateFunctionBody(v);h.push(` ${j} = __computed(() => ${x});`)}else{let v=this.generateInComponent(c,"value");h.push(` ${j} = __computed(() => ${v});`)}h.push(" _init(props) {");for(let{name:j,value:c,isPublic:v}of J){let x=this.generateInComponent(c,"value");h.push(v?` this.${j} = props.${j} ?? ${x};`:` this.${j} = ${x};`)}for(let{name:j,value:c,isPublic:v,required:x,type:n}of Q)if(v&&x)h.push(` this.${j} = __state(props.__bind_${j}__ ?? props.${j});`);else if(v){let d=this.generateInComponent(c,"value");h.push(` this.${j} = __state(props.__bind_${j}__ ?? props.${j} ?? ${d});`)}else{let d=this.generateInComponent(c,"value");h.push(` this.${j} = __state(${d});`)}for(let j of G){let c=j[2],v=this.containsAwait(c)?"async ":"";if(this.is(c,"block")){let x=this.transformComponentMembers(c),n=this.generateFunctionBody(x,[],!0);h.push(` __effect(${v}() => ${n});`)}else{let x=this.generateInComponent(c,"value");h.push(` __effect(${v}() => { ${x}; });`)}}h.push(" }");let i=new Map;if(P){let j=(c)=>{if(!Array.isArray(c))return;let v=c[0]?.valueOf?.()??c[0];if(typeof v==="string"&&v!=="object"&&v!=="switch"&&j1.has(v.split(/[.#]/)[0]))for(let x=1;x<c.length;x++){let n=c[x],d=this.is(n,"object")?n:null;if(!d&&Array.isArray(n)&&(n[0]==="->"||n[0]==="=>")&&this.is(n[2],"block")){for(let p=1;p<n[2].length;p++)if(this.is(n[2][p],"object")){d=n[2][p];break}}if(!d)continue;for(let p=1;p<d.length;p++){let b=d[p];if(!Array.isArray(b)||b.length<2)continue;let[l,m]=b;if(Array.isArray(l)&&l[0]==="."&&l[1]==="this"&&Array.isArray(m)&&m[0]==="."&&m[1]==="this"){let s=typeof l[2]==="string"?l[2]:l[2]?.valueOf?.(),r=typeof m[2]==="string"?m[2]:m[2]?.valueOf?.();if(s&&r&&!i.has(r))i.set(r,s)}}}for(let x=1;x<c.length;x++)j(c[x])};j(P)}for(let{name:j,func:c}of q)if(Array.isArray(c)&&(c[0]==="->"||c[0]==="=>")){let[,v,x]=c,n=Array.isArray(v)?v.map((m)=>this.formatParam(m)).join(", "):"",d=i.get(j);if(d&&Array.isArray(v)&&v.length>0){let m=v[0];if(!(m?.type||m instanceof String&&m.type)&&typeof(m?.valueOf?.()??m)==="string"){let r=m?.valueOf?.()??m;n=n.replace(r,`${r}: HTMLElementEventMap['${d}']`)}}let p=this.reactiveMembers?this.transformComponentMembers(x):x,b=this.containsAwait(x),l=this.generateFunctionBody(p,v||[]);h.push(` ${b?"async ":""}${j}(${n}) ${l}`)}for(let{name:j,value:c}of X)if(Array.isArray(c)&&(c[0]==="->"||c[0]==="=>")){let[,v,x]=c,n=Array.isArray(v)?v.map((l)=>this.formatParam(l)).join(", "):"",d=this.reactiveMembers?this.transformComponentMembers(x):x,p=this.containsAwait(x),b=this.generateFunctionBody(d,v||[]);h.push(` ${p?"async ":""}${j}(${n}) ${b}`)}if(P){let j=[],c=0,v=(d)=>{let p=[];for(let b of d){let l=null;if(this.is(b,"object"))l=b;else if(Array.isArray(b)&&(b[0]==="->"||b[0]==="=>")&&this.is(b[2],"block")){for(let m=1;m<b[2].length;m++)if(this.is(b[2][m],"object")){l=b[2][m];break}}if(l)for(let m=1;m<l.length;m++){let s=l[m],[r,o]=s;if(typeof r==="string"&&!r.startsWith("@")){let U1=s.loc?.r??l.loc?.r;if(r.startsWith("__bind_")&&r.endsWith("__")){let _1=typeof o==="string"&&this.reactiveMembers?.has(o)?`this.${o}`:this.generateInComponent(o,"value");p.push({code:`${r}: ${_1}`,srcLine:U1})}else{let _1=this.generateInComponent(o,"value");p.push({code:`${r}: ${_1}`,srcLine:U1})}}}}return p},x=(d)=>{let p=[];for(let b of d){let l=null;if(this.is(b,"object"))l=b;else if(Array.isArray(b)&&(b[0]==="->"||b[0]==="=>")&&this.is(b[2],"block")){for(let m=1;m<b[2].length;m++)if(this.is(b[2][m],"object")){l=b[2][m];break}}if(l)for(let m=1;m<l.length;m++){let s=l[m];if(!Array.isArray(s)||s.length<2)continue;let[r,o]=s,U1=s.loc?.r??l.loc?.r;if(Array.isArray(r)&&r[0]==="."&&r[1]==="this"){let _1=typeof r[2]==="string"?r[2]:r[2]?.valueOf?.();if(!_1)continue;let l1="@"+_1.split(".")[0],A3=this.generateInComponent(o,"value");p.push({code:`'${l1}': ${A3}`,srcLine:U1})}else if(typeof r==="string"){if(r==="key")continue;if(r.startsWith("__bind_")&&r.endsWith("__")){let _1=r.slice(7,-2),l1=this.generateInComponent(o,"value");p.push({code:`${_1}: ${l1}`,srcLine:U1})}else{let _1=this.generateInComponent(o,"value");p.push({code:`${r}: ${_1}`,srcLine:U1})}}}}return p},n=(d)=>{if(!Array.isArray(d))return;let p=d[0]?.valueOf?.()??d[0];if(typeof p==="string"&&/^[A-Z]/.test(p)){let b=v(d.slice(1)),l=`_${c++}`,m=`ConstructorParameters<typeof ${p}>[0] & {}`;if(b.length===0){let s=d.loc?.r;j.push(` const ${l}: ${m} = {};`+(s!=null?` // @rip-src:${s}`:""))}else if(b.length===1){let s=d.loc?.r??b[0].srcLine;j.push(` const ${l}: ${m} = {${b[0].code}};`+(s!=null?` // @rip-src:${s}`:""))}else{let s=d.loc?.r;if(new Set(b.map((o)=>o.srcLine).filter((o)=>o!=null)).size<=1){let o=b[0].srcLine??s;j.push(` const ${l}: ${m} = {${b.map((U1)=>U1.code).join(", ")}};`+(o!=null?` // @rip-src:${o}`:""))}else{j.push(` const ${l}: ${m} = {`+(s!=null?` // @rip-src:${s}`:""));for(let o of b)j.push(` ${o.code},`+(o.srcLine!=null?` // @rip-src:${o.srcLine}`:""));j.push(" };")}}}else if(typeof p==="string"&&p!=="object"&&p!=="switch"&&j1.has(p.split(/[.#]/)[0])){let b=p.split(/[.#]/)[0],l=x(d.slice(1)),m=d.loc?.r,s=m!=null?` // @rip-src:${m}`:"";if(l.length===0)j.push(` __ripEl('${b}');${s}`);else if(l.length===1){let r=l[0].srcLine??m,o=r!=null?` // @rip-src:${r}`:"";j.push(` __ripEl('${b}', {${l[0].code}});${o}`)}else if(new Set(l.map((o)=>o.srcLine).filter((o)=>o!=null)).size<=1){let o=l[0].srcLine??m,U1=o!=null?` // @rip-src:${o}`:"";j.push(` __ripEl('${b}', {${l.map((_1)=>_1.code).join(", ")}});${U1}`)}else{j.push(` __ripEl('${b}', {${s}`);for(let o of l)j.push(` ${o.code},`+(o.srcLine!=null?` // @rip-src:${o.srcLine}`:""));j.push(" });")}}for(let b=1;b<d.length;b++)n(d[b])};if(n(P),j.length>0){h.push(" _render() {");for(let d of j)h.push(d);h.push(" }")}}return h.push("}"),this.componentMembers=N,this.reactiveMembers=B,this._autoEventHandlers=V,this._inheritsTag=y,h.join(`
|
|
15
|
-
`)}this.usesTemplates=!0,this.usesReactivity=!0;let L=[],a="";L.push("class extends __Component {"),L.push(" _init(props) {");for(let{name:T,value:
|
|
14
|
+
Expecting ${$.join(", ")}, got '${this.tokenNames[I]||I}'`;else return`Parse error on line ${D+1}: Unexpected ${I===w?"end of input":`'${this.tokenNames[I]||I}'`}`,this.parseError(u,{text:Y.match,token:this.tokenNames[I]||I,line:Y.line,loc:M,expected:$})})(),Error(u)}if(_>0)if(K.push(I,_),S.push(Y.text),A.push(Y.loc),I=null,!H){if([E,P,D,M]=[Y.len,Y.text,Y.line,Y.loc],G>0)G--}else[I,H]=[H,null];else if(_<0){if(F=this.ruleTable[-_*2+1],Q.$=S[S.length-F],R=A[A.length-(F||1)],Q._$={r:R.r,c:R.c},J=this.ruleActions.call(Q,-_,S,A,q.ctx),J!=null)Q.$=J;if(Array.isArray(Q.$))Q.$.loc=Q._$;if(F)K.length-=F*2,S.length-=F,A.length-=F;K.push(this.ruleTable[-_*2]),S.push(Q.$),A.push(Q._$),Z=X[K[K.length-2]][K[K.length-1]],K.push(Z)}else if(_===0)return S[S.length-1]}},trace(){},ctx:{}},W7=(f={})=>{let w=Object.create(U7);return Object.defineProperty(w,"ctx",{value:{...f},enumerable:!1,writable:!0,configurable:!0}),w},X1=W7();var I7=X1.parse.bind(X1);var F7=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"]),q1=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"]),j1=new Set([...F7,...q1]);var r1=new Set(["beforeMount","mounted","updated","beforeUnmount","unmounted","onError"]),Y7=new Set(["disabled","hidden","readonly","required","checked","selected","autofocus","autoplay","controls","loop","muted","multiple","novalidate","open","reversed","defer","async","formnovalidate","allowfullscreen","inert"]);function A7(f){for(let w of f){if(!Array.isArray(w))continue;let U=w[0]instanceof String?w[0].valueOf():w[0],_=w[1]instanceof String?w[1].valueOf():w[1];if(U==="type"&&typeof _==="string")return _.replace(/^["']|["']$/g,"")}return null}function Q1(f){if(typeof f==="string"||f instanceof String)return f.valueOf();if(Array.isArray(f)&&f[0]==="."&&f[1]==="this"&&(typeof f[2]==="string"||f[2]instanceof String))return f[2].valueOf();return null}function o1(f){return Array.isArray(f)&&f[0]==="."&&f[1]==="this"}function N2(f){if(f instanceof String&&f.type)return f.type;if(Array.isArray(f)&&f[2]instanceof String&&f[2].type)return f[2].type;return null}function S2(f,w){let U=(W,Y)=>W instanceof String?W[Y]:void 0,_=w.prototype.classifyKeyword;w.prototype.classifyKeyword=function(W,Y,R){if(W==="offer"||W==="accept"){let A=0;for(let Z=this.tokens.length-1;Z>=0;Z--){let z=this.tokens[Z][0];if(z==="OUTDENT")A++;else if(z==="INDENT")A--;if(A<0&&this.tokens[Z-1]?.[0]==="COMPONENT")return W.toUpperCase()}return Y}return _.call(this,W,Y,R)},w.prototype.rewriteRender=function(){let W=(Q,q,O)=>{let K=[Q,q];if(K.pre=0,K.data=null,K.loc=O?.loc??{r:0,c:0,n:0},K.spaced=!1,K.newLine=!1,K.generated=!0,O)K.origin=O;return K},Y=!1,R=0,A=0,Z=[],z=(Q)=>{let q=Q.split("#")[0];return j1.has(q)},X=(Q)=>{if(!Q||typeof Q!=="string")return!1;return/^[A-Z]/.test(Q)},H=(Q)=>{return z(Q)||X(Q)},J=(Q,q,O,K)=>{let I=1,E=q;while(E>=0&&I>0){let D=Q[E][0];if(D===O)I++;else if(D===K)I--;if(I>0)E--}return E},G=(Q,q)=>{let O=q;while(O>0){let K=Q[O-1][0];if(K==="TERMINATOR"||K==="RENDER")break;if(K==="INDENT"||K==="OUTDENT"){let I=Q[O][0];if(I==="CALL_END"||I===")"){O=J(Q,O-1,I,I==="CALL_END"?"CALL_START":"(");continue}break}if(K==="CALL_END"||K===")"){O=J(Q,O-2,K,K==="CALL_END"?"CALL_START":"(");continue}if(K==="INTERPOLATION_END"){O=J(Q,O-2,"INTERPOLATION_END","INTERPOLATION_START");continue}if(K==="STRING_END"){O=J(Q,O-2,"STRING_END","STRING_START");continue}O--}return Q[O]&&Q[O][0]==="IDENTIFIER"&&H(Q[O][1])};this.scanTokens(function(Q,q,O){let K=Q[0],I=q<O.length-1?O[q+1]:null;if(K==="RENDER")return Y=!0,R=A+1,1;if(K==="INDENT")return A++,1;if(K==="OUTDENT"){A--;let E=0;while(Z.length>0&&Z[Z.length-1]>A){let D=W("CALL_END",")",Q);O.splice(q+1+E,0,D),Z.pop(),E++}if(Y&&A<R)Y=!1;return 1+E}if(!Y)return 1;if(K==="="&&q>0){let E=O[q-1][0];if(E==="TERMINATOR"||E==="INDENT"||E==="RENDER"){if(O.splice(q,1),O[q]&&O[q][0]==="IDENTIFIER"){let D=O[q][1];if(typeof D==="string")D=new String(D),O[q][1]=D;D.text=!0}return 0}}if(K==="UNARY_MATH"&&Q[1]==="~"&&I&&I[0]==="IDENTIFIER"){Q[0]="PROPERTY",Q[1]="__transition__";let E=W(":",":",Q),D=W("STRING",`"${I[1]}"`,I);return O.splice(q+1,1,E,D),1}if(K==="PROPERTY"&&Q[1][0]==="$"&&Q[1].length>1)return Q[0]="STRING",Q[1]=`"data-${Q[1].slice(1)}"`,1;if(K==="IDENTIFIER"&&!Q.spaced){let E=[Q[1]],D=q+1;while(D+1<O.length){let M=O[D],P=O[D+1];if(M[0]==="-"&&!M.spaced&&(P[0]==="IDENTIFIER"||P[0]==="PROPERTY")){if(E.push(P[1]),D+=2,P[0]==="PROPERTY")break}else break}if(E.length>1&&D>q+1&&O[D-1][0]==="PROPERTY"){let M=E.join("-");if(M[0]==="$")M="data-"+M.slice(1);return Q[0]="STRING",Q[1]=`"${M}"`,O.splice(q+1,D-q-1),1}}if(K==="."){let E=q>0?O[q-1]:null,D=E?E[0]:null;if(D==="INDENT"||D==="TERMINATOR"){if(I&&I[0]==="PROPERTY"){let M=q+2<O.length?O[q+2]:null;if(!M||M[0]!==":"){let P=W("IDENTIFIER","div",Q);return O.splice(q,0,P),2}}if(!I||I[0]!=="(")return Q[0]="IDENTIFIER",Q[1]="div",0}}if(K==="IDENTIFIER"||K==="PROPERTY"){let E=O[q+1],D=O[q+2];if(E&&E[0]==="#"&&D&&(D[0]==="PROPERTY"||D[0]==="IDENTIFIER")){if(Q[1]=Q[1]+"#"+D[1],D.spaced)Q.spaced=!0;return O.splice(q+1,2),0}}if(K==="BIND"){let E=q>0?O[q-1]:null,D=O[q+1];if(E&&(E[0]==="IDENTIFIER"||E[0]==="PROPERTY")&&D&&D[0]==="IDENTIFIER")return E[1]=`__bind_${E[1]}__`,Q[0]=":",Q[1]=":",1}if(K==="@"){let E=q+1;if(E<O.length&&O[E][0]==="PROPERTY"){E++;while(E+1<O.length&&O[E][0]==="."&&O[E+1][0]==="PROPERTY")E+=2;if(E>q+2&&E<O.length&&O[E][0]===":"){let D=W("[","[",Q);O.splice(q,0,D);let M=W("]","]",O[E+1]);return O.splice(E+1,0,M),2}}}if(K==="."&&I&&I[0]==="("){let E=q>0?O[q-1]:null,D=E?E[0]:null,M=D==="INDENT"||D==="TERMINATOR",P=W("PROPERTY","__clsx",Q);I[0]="CALL_START";let S=1;for(let N=q+2;N<O.length&&S>0;N++)if(O[N][0]==="("||O[N][0]==="CALL_START")S++;else if(O[N][0]===")"){if(S--,S===0)O[N][0]="CALL_END"}else if(O[N][0]==="CALL_END")S--;if(M){let N=W("IDENTIFIER","div",Q);return O.splice(q,0,N),O.splice(q+2,0,P),3}else if(D===":")return O[q]=W("IDENTIFIER","__clsx",Q),1;else return O.splice(q+1,0,P),2}if(I&&I[0]==="INDENT"){if(I.fromThen)return 1;if(K==="->"||K==="=>"||K==="CALL_START"||K==="(")return 1;let E=!1,D=q>0?O[q-1][0]:null,M=D==="IF"||D==="UNLESS"||D==="WHILE"||D==="UNTIL"||D==="WHEN",P=!1;if(K==="CALL_END"){let N=1;for(let B=q-1;B>=0&&N>0;B--)if(O[B][0]==="CALL_END")N++;else if(O[B][0]==="CALL_START"){if(N--,N===0&&B>0&&O[B-1][0]==="PROPERTY"&&O[B-1][1]==="__clsx")P=!0}}let S=K==="IDENTIFIER"&&(D==="INDENT"||D==="TERMINATOR"||D==="RENDER");if(P)E=!0;else if(K==="IDENTIFIER"&&H(Q[1])&&!M)E=!0;else if(K==="IDENTIFIER"&&!M)E=S||G(O,q);else if(K==="PROPERTY"||K==="STRING"||K==="STRING_END"||K==="NUMBER"||K==="BOOL"||K==="CALL_END"||K===")"||K==="PRESENCE")E=G(O,q);if(E){let N=!1;if(K==="PROPERTY"&&q>0&&O[q-1][0]==="."){let h=q;while(h>=2&&O[h-1][0]==="."&&O[h-2][0]==="PROPERTY")h-=2;if(h>=2&&O[h-1][0]==="."&&O[h-2][0]==="IDENTIFIER"&&H(O[h-2][1])){let C=h>=3?O[h-3][0]:null;if(!C||C==="INDENT"||C==="OUTDENT"||C==="TERMINATOR"||C==="RENDER")N=!0}}if(P||K==="IDENTIFIER"&&(H(Q[1])||S)||N){let h=W("CALL_START","(",Q),C=W("->","->",Q);return C.newLine=!0,O.splice(q+1,0,h,C),Z.push(A+1),3}else{let h=W(",",",",Q),C=W("->","->",Q);return C.newLine=!0,O.splice(q+1,0,h,C),3}}}if(K==="IDENTIFIER"&&X(Q[1])&&I&&(I[0]==="OUTDENT"||I[0]==="TERMINATOR"))return O.splice(q+1,0,W("CALL_START","(",Q),W("CALL_END",")",Q)),3;return 1})};let u=f.prototype;u.isHtmlTag=function(W){let Y=W.split("#")[0];return j1.has(Y.toLowerCase())},u.isComponent=function(W){if(!W||typeof W!=="string")return!1;return/^[A-Z]/.test(W)},u.collectTemplateClasses=function(W){let Y=[],R=W;while(this.is(R,".")){let X=R[2];if(typeof X==="string"||X instanceof String)Y.unshift(X.valueOf());R=R[1]}let A=typeof R==="string"?R:R instanceof String?R.valueOf():null;if(A===null)return{tag:null,classes:Y,id:void 0,base:R};let[Z,z]=A.split("#");if(!Z)Z="div";return{tag:Z,classes:Y,id:z,base:R}};let $=(W)=>typeof W==="string"?W:W instanceof String?W.valueOf():null,F=(W,Y)=>{if(!(W instanceof String))return Y;let R=new String(Y);if(W.predicate)R.predicate=!0;if(W.await)R.await=!0;return R.predicate||R.await?R:Y};u.transformComponentMembers=function(W){let Y=this._self;if(!Array.isArray(W)){let R=$(W);if(R&&this.reactiveMembers&&this.reactiveMembers.has(R))return[".",[".",Y,R],F(W,"value")];if(R&&this.componentMembers&&this.componentMembers.has(R))return[".",Y,F(W,R)];return W}if(W[0]==="."&&W[1]==="this"&&$(W[2])!=null){let R=W[2],A=$(R);if(this.reactiveMembers&&this.reactiveMembers.has(A))return[".",[".",Y,A],F(R,"value")];return this._factoryMode?[".",Y,R]:W}if(W[0]==="."||W[0]==="?.")return[W[0],this.transformComponentMembers(W[1]),W[2]];if(W[0]==="->")return["=>",...W.slice(1).map((R)=>this.transformComponentMembers(R))];if(W[0]==="object")return["object",...W.slice(1).map((R)=>{if(Array.isArray(R)&&R.length>=2){let A=R[0],Z=Array.isArray(A)?this.transformComponentMembers(A):A,z=this.transformComponentMembers(R[1]);return[Z,z,R[2]]}return this.transformComponentMembers(R)})];return W.map((R)=>this.transformComponentMembers(R))},u.generateComponent=function(W,Y,R,A){let[,Z]=Y,z=this.is(Z,"block")?Z.slice(1):[],X=[],H=[],J=[],G=[],Q=[],q=[],O=[],K=[],I=null,E=new Set,D=new Set;for(let T of z){if(!Array.isArray(T))continue;let[V]=T;if(V==="offer"){if(T=T[1],!Array.isArray(T))continue;V=T[0];let j=Q1(T[1]);if(j)O.push(j)}if(V==="accept"){let j=typeof T[1]==="string"?T[1]:Q1(T[1]);if(j)K.push(j),E.add(j),D.add(j)}else if(V==="."&&T[1]==="this"&&Q1(T)){let j=typeof T[2]==="string"||T[2]instanceof String?T[2].valueOf():null;if(j)X.push({name:j,value:void 0,isPublic:!0,type:T[2]?.type||null,required:!0}),E.add(j),D.add(j)}else if(V==="state"){let j=Q1(T[1]);if(j)X.push({name:j,value:T[2],isPublic:o1(T[1]),type:N2(T[1])}),E.add(j),D.add(j)}else if(V==="computed"){let j=Q1(T[1]);if(j)H.push({name:j,expr:T[2]}),E.add(j),D.add(j)}else if(V==="readonly"){let j=Q1(T[1]);if(j)J.push({name:j,value:T[2],isPublic:o1(T[1]),type:N2(T[1])}),E.add(j)}else if(V==="="){let j=Q1(T[1]);if(j)if(r1.has(j))Q.push({name:j,value:T[2]});else{let g=T[2];if(Array.isArray(g)&&(g[0]==="->"||g[0]==="=>"))G.push({name:j,func:g}),E.add(j);else X.push({name:j,value:g,isPublic:o1(T[1])}),E.add(j),D.add(j)}}else if(V==="effect")q.push(T);else if(V==="render")I=T;else if(V==="object")for(let j=1;j<T.length;j++){let g=T[j];if(!Array.isArray(g))continue;let[i,c]=g;if(typeof i==="string"&&r1.has(i))Q.push({name:i,value:c});else if(typeof i==="string")G.push({name:i,func:c}),E.add(i)}}let M=new Map;for(let{name:T}of G)if(/^on[A-Z]/.test(T)&&!r1.has(T))M.set(T[2].toLowerCase()+T.slice(3),T);let P=Y[0]?.valueOf?.()??null,S=new Set;for(let{name:T,isPublic:V}of X)if(V)S.add(T);for(let{name:T,isPublic:V}of J)if(V)S.add(T);let N=this.componentMembers,B=this.reactiveMembers,h=this._autoEventHandlers,C=this._inheritsTag;if(this.componentMembers=E,this.reactiveMembers=D,this._autoEventHandlers=M.size>0?M:null,this._inheritsTag=P||null,this.options.stubComponents){let T=(c)=>c?c.replace(/::/g,":").replace(/(\w+(?:<[^>]+>)?)\?\?/g,"$1 | null | undefined").replace(/(\w+(?:<[^>]+>)?)\?(?![.:])/g,"$1 | undefined").replace(/(\w+(?:<[^>]+>)?)\!/g,"NonNullable<$1>"):null,V=[];V.push("class {"),V.push(" declare _root: Element | null;"),V.push(" emit(name: string, detail?: any): void {}");let j=[];for(let{name:c,type:y,isPublic:b,required:x}of X){if(!b)continue;let d=T(y),n=x?"":"?";j.push(`${c}${n}: ${d||"any"}`),j.push(`__bind_${c}__?: Signal<${d||"any"}>`)}for(let{name:c,type:y,isPublic:b}of J){if(!b)continue;let x=T(y);j.push(`${c}?: ${x||"any"}`)}{let y=j.length>0&&X.some((x)=>x.isPublic&&x.required)?"":"?",b=j.length>0?`{${j.join("; ")}}`:"{}";if(P)b+=` & __RipProps<'${P}'>`;V.push(` constructor(props${y}: ${b}) {}`)}let g=(c)=>{let y=c?.valueOf?.()??c;if(typeof y!=="string")return null;if(y==="true"||y==="false")return"boolean";if(/^-?\d+(\.\d+)?$/.test(y))return"number";if(y.startsWith('"')||y.startsWith("'"))return"string";return null};for(let{name:c,type:y,value:b}of X){let x=T(y)||g(b);V.push(x?` declare ${c}: Signal<${x}>;`:` declare ${c}: Signal<any>;`)}for(let{name:c,type:y,value:b}of J){let x=T(y)||g(b);V.push(x?` declare ${c}: ${x};`:` declare ${c}: any;`)}for(let{name:c,expr:y}of H)if(this.is(y,"block")){let b=this.transformComponentMembers(y),x=this.generateFunctionBody(b);V.push(` ${c} = __computed(() => ${x});`)}else{let b=this.generateInComponent(y,"value");V.push(` ${c} = __computed(() => ${b});`)}V.push(" _init(props) {");for(let{name:c,value:y,isPublic:b}of J){let x=this.generateInComponent(y,"value");V.push(b?` this.${c} = props.${c} ?? ${x};`:` this.${c} = ${x};`)}for(let{name:c,value:y,isPublic:b,required:x,type:d}of X)if(b&&x)V.push(` this.${c} = __state(props.__bind_${c}__ ?? props.${c});`);else if(b){let n=this.generateInComponent(y,"value");V.push(` this.${c} = __state(props.__bind_${c}__ ?? props.${c} ?? ${n});`)}else{let n=this.generateInComponent(y,"value");V.push(` this.${c} = __state(${n});`)}for(let c of q){let y=c[2],b=this.containsAwait(y)?"async ":"";if(this.is(y,"block")){let x=this.transformComponentMembers(y),d=this.generateFunctionBody(x,[],!0);V.push(` __effect(${b}() => ${d});`)}else{let x=this.generateInComponent(y,"value");V.push(` __effect(${b}() => { ${x}; });`)}}V.push(" }");let i=new Map;for(let[c,y]of M)i.set(y,c);if(I){let c=(y)=>{if(!Array.isArray(y))return;let b=y[0]?.valueOf?.()??y[0];if(typeof b==="string"&&b!=="object"&&b!=="switch"&&j1.has(b.split(/[.#]/)[0]))for(let x=1;x<y.length;x++){let d=y[x],n=this.is(d,"object")?d:null;if(!n&&Array.isArray(d)&&(d[0]==="->"||d[0]==="=>")&&this.is(d[2],"block")){for(let p=1;p<d[2].length;p++)if(this.is(d[2][p],"object")){n=d[2][p];break}}if(!n)continue;for(let p=1;p<n.length;p++){let v=n[p];if(!Array.isArray(v)||v.length<2)continue;let[l,m]=v;if(Array.isArray(l)&&l[0]==="."&&l[1]==="this"&&Array.isArray(m)&&m[0]==="."&&m[1]==="this"){let s=typeof l[2]==="string"?l[2]:l[2]?.valueOf?.(),r=typeof m[2]==="string"?m[2]:m[2]?.valueOf?.();if(s&&r&&!i.has(r))i.set(r,s)}}}for(let x=1;x<y.length;x++)c(y[x])};c(I)}for(let{name:c,func:y}of G)if(Array.isArray(y)&&(y[0]==="->"||y[0]==="=>")){let[,b,x]=y;if((!b||Array.isArray(b)&&b.length===0)&&this.containsIt(x))b=["it"];let d=Array.isArray(b)?b.map((m)=>this.formatParam(m)).join(", "):"",n=i.get(c);if(n&&Array.isArray(b)&&b.length>0){let m=b[0];if(!(m?.type||m instanceof String&&m.type)&&typeof(m?.valueOf?.()??m)==="string"){let r=m?.valueOf?.()??m;d=d.replace(r,`${r}: HTMLElementEventMap['${n}']`)}}let p=this.reactiveMembers?this.transformComponentMembers(x):x,v=this.containsAwait(x),l=this.generateFunctionBody(p,b||[]);V.push(` ${v?"async ":""}${c}(${d}) ${l}`)}for(let{name:c,value:y}of Q)if(Array.isArray(y)&&(y[0]==="->"||y[0]==="=>")){let[,b,x]=y,d=Array.isArray(b)?b.map((l)=>this.formatParam(l)).join(", "):"",n=this.reactiveMembers?this.transformComponentMembers(x):x,p=this.containsAwait(x),v=this.generateFunctionBody(n,b||[]);V.push(` ${p?"async ":""}${c}(${d}) ${v}`)}if(I){let c=[],y=0,b=(n)=>{let p=[];for(let v of n){let l=null;if(this.is(v,"object"))l=v;else if(Array.isArray(v)&&(v[0]==="->"||v[0]==="=>")&&this.is(v[2],"block")){for(let m=1;m<v[2].length;m++)if(this.is(v[2][m],"object")){l=v[2][m];break}}if(l)for(let m=1;m<l.length;m++){let s=l[m],[r,o]=s;if(typeof r==="string"&&!r.startsWith("@")){let _1=s.loc?.r??l.loc?.r;if(r.startsWith("__bind_")&&r.endsWith("__")){let w1=typeof o==="string"&&this.reactiveMembers?.has(o)?`this.${o}`:this.generateInComponent(o,"value");p.push({code:`${r}: ${w1}`,srcLine:_1})}else{let w1=this.generateInComponent(o,"value");p.push({code:`${r}: ${w1}`,srcLine:_1})}}}}return p},x=(n)=>{let p=[];for(let v of n){let l=null;if(this.is(v,"object"))l=v;else if(Array.isArray(v)&&(v[0]==="->"||v[0]==="=>")&&this.is(v[2],"block")){for(let m=1;m<v[2].length;m++)if(this.is(v[2][m],"object")){l=v[2][m];break}}if(l)for(let m=1;m<l.length;m++){let s=l[m];if(!Array.isArray(s)||s.length<2)continue;let[r,o]=s,_1=s.loc?.r??l.loc?.r;if(Array.isArray(r)&&r[0]==="."&&r[1]==="this"){let w1=typeof r[2]==="string"?r[2]:r[2]?.valueOf?.();if(!w1)continue;let l1="@"+w1.split(".")[0],X3=this.generateInComponent(o,"value");p.push({code:`'${l1}': ${X3}`,srcLine:_1})}else if(typeof r==="string"){if(r==="key")continue;if(r.startsWith("__bind_")&&r.endsWith("__")){let w1=r.slice(7,-2),l1=this.generateInComponent(o,"value");p.push({code:`${w1}: ${l1}`,srcLine:_1})}else{let w1=this.generateInComponent(o,"value");p.push({code:`${r}: ${w1}`,srcLine:_1})}}}}return p},d=(n)=>{if(!Array.isArray(n))return;let p=n[0]?.valueOf?.()??n[0];if(typeof p==="string"&&/^[A-Z]/.test(p)){let v=b(n.slice(1)),l=`_${y++}`,m=`ConstructorParameters<typeof ${p}>[0] & {}`;if(v.length===0){let s=n.loc?.r;c.push(` const ${l}: ${m} = {};`+(s!=null?` // @rip-src:${s}`:""))}else if(v.length===1){let s=n.loc?.r??v[0].srcLine;c.push(` const ${l}: ${m} = {${v[0].code}};`+(s!=null?` // @rip-src:${s}`:""))}else{let s=n.loc?.r;if(new Set(v.map((o)=>o.srcLine).filter((o)=>o!=null)).size<=1){let o=v[0].srcLine??s;c.push(` const ${l}: ${m} = {${v.map((_1)=>_1.code).join(", ")}};`+(o!=null?` // @rip-src:${o}`:""))}else{c.push(` const ${l}: ${m} = {`+(s!=null?` // @rip-src:${s}`:""));for(let o of v)c.push(` ${o.code},`+(o.srcLine!=null?` // @rip-src:${o.srcLine}`:""));c.push(" };")}}}else if(typeof p==="string"&&p!=="object"&&p!=="switch"&&(j1.has(p.split(/[.#]/)[0])||/^[a-z]/.test(p)&&n.length>1&&Array.isArray(n[1])&&(n[1][0]==="->"||n[1][0]==="=>"))){let v=p.split(/[.#]/)[0],l=x(n.slice(1)),m=n.loc?.r,s=m!=null?` // @rip-src:${m}`:"";if(l.length===0)c.push(` __ripEl('${v}');${s}`);else if(l.length===1){let r=l[0].srcLine??m,o=r!=null?` // @rip-src:${r}`:"";c.push(` __ripEl('${v}', {${l[0].code}});${o}`)}else if(new Set(l.map((o)=>o.srcLine).filter((o)=>o!=null)).size<=1){let o=l[0].srcLine??m,_1=o!=null?` // @rip-src:${o}`:"";c.push(` __ripEl('${v}', {${l.map((w1)=>w1.code).join(", ")}});${_1}`)}else{c.push(` __ripEl('${v}', {${s}`);for(let o of l)c.push(` ${o.code},`+(o.srcLine!=null?` // @rip-src:${o.srcLine}`:""));c.push(" });")}}for(let v=1;v<n.length;v++)d(n[v])};if(d(I),c.length>0){V.push(" _render() {");for(let n of c)V.push(n);V.push(" }")}}return V.push("}"),this.componentMembers=N,this.reactiveMembers=B,this._autoEventHandlers=h,this._inheritsTag=C,V.join(`
|
|
15
|
+
`)}this.usesTemplates=!0,this.usesReactivity=!0;let L=[],a="";L.push("class extends __Component {"),L.push(" _init(props) {");for(let{name:T,value:V,isPublic:j}of J){let g=this.generateInComponent(V,"value");L.push(j?` this.${T} = props.${T} ?? ${g};`:` this.${T} = ${g};`)}for(let T of K)L.push(` this.${T} = getContext('${T}');`);for(let{name:T,value:V,isPublic:j,required:g}of X)if(j&&g)L.push(` this.${T} = __state(props.__bind_${T}__ ?? props.${T});`);else if(j){let i=this.generateInComponent(V,"value");L.push(` this.${T} = __state(props.__bind_${T}__ ?? props.${T} ?? ${i});`)}else{let i=this.generateInComponent(V,"value");L.push(` this.${T} = __state(${i});`)}if(P){if(L.push(" this._rest = {};"),L.push(" for (const __k in props) {"),S.size>0){let T=[...S].map((V)=>`__k !== '${V}'`).join(" && ");L.push(` if (${T} && !__k.startsWith('__bind_')) this._rest[__k] = props[__k];`)}else L.push(" if (!__k.startsWith('__bind_')) this._rest[__k] = props[__k];");L.push(" }")}for(let{name:T,expr:V}of H)if(this.is(V,"block")){let j=this.transformComponentMembers(V),g=this.generateFunctionBody(j);L.push(` this.${T} = __computed(() => ${g});`)}else{let j=this.generateInComponent(V,"value");L.push(` this.${T} = __computed(() => ${j});`)}for(let T of O)L.push(` setContext('${T}', this.${T});`);for(let T of q){let V=T[2],j=this.containsAwait(V)?"async ":"";if(this.is(V,"block")){let g=this.transformComponentMembers(V),i=this.generateFunctionBody(g,[],!0);L.push(` __effect(${j}() => ${i});`)}else{let g=this.generateInComponent(V,"value");L.push(` __effect(${j}() => { ${g}; });`)}}if(L.push(" }"),P)L.push(" _setRestProp(key, value) {"),L.push(" if (key.startsWith('__bind_')) return;"),L.push(" this._rest || (this._rest = {});"),L.push(" if (value == null) delete this._rest[key];"),L.push(" else this._rest[key] = value;"),L.push(" this._applyInheritedProp(this._inheritedEl, key, value);"),L.push(" }"),L.push(" _applyRestToInheritedEl() {"),L.push(" if (!this._inheritedEl || !this._rest) return;"),L.push(" for (const key in this._rest) this._applyInheritedProp(this._inheritedEl, key, this._rest[key]);"),L.push(" }"),L.push(" _applyInheritedProp(el, key, value) {"),L.push(" if (!el || key === 'key' || key === 'ref' || key === 'children' || key.startsWith('__bind_')) return;"),L.push(" if (key[0] === '@') {"),L.push(" const event = key.slice(1).split('.')[0];"),L.push(" this._restHandlers || (this._restHandlers = {});"),L.push(" const prev = this._restHandlers[key];"),L.push(" if (prev) el.removeEventListener(event, prev);"),L.push(" if (typeof value === 'function') {"),L.push(" const next = (e) => __batch(() => value(e));"),L.push(" this._restHandlers[key] = next;"),L.push(" el.addEventListener(event, next);"),L.push(" } else {"),L.push(" delete this._restHandlers[key];"),L.push(" }"),L.push(" return;"),L.push(" }"),L.push(" if (key === 'class' || key === 'className') {"),L.push(" if (el instanceof SVGElement) el.setAttribute('class', __clsx(value));"),L.push(" else el.className = __clsx(value);"),L.push(" return;"),L.push(" }"),L.push(" if (key === 'style') {"),L.push(" if (value == null) { el.removeAttribute('style'); return; }"),L.push(" if (typeof value === 'string') { el.setAttribute('style', value); return; }"),L.push(" if (typeof value === 'object') { Object.assign(el.style, value); return; }"),L.push(" }"),L.push(" if (key === 'innerHTML' || key === 'textContent' || key === 'innerText') {"),L.push(" el[key] = value ?? '';"),L.push(" return;"),L.push(" }"),L.push(" if (key in el && !key.includes('-')) {"),L.push(" el[key] = value;"),L.push(" return;"),L.push(" }"),L.push(" if (value == null || value === false) {"),L.push(" el.removeAttribute(key);"),L.push(" return;"),L.push(" }"),L.push(" if (value === true) {"),L.push(" el.setAttribute(key, '');"),L.push(" return;"),L.push(" }"),L.push(" el.setAttribute(key, value);"),L.push(" }");for(let{name:T,func:V}of G)if(Array.isArray(V)&&(V[0]==="->"||V[0]==="=>")){let[,j,g]=V;if((!j||Array.isArray(j)&&j.length===0)&&this.containsIt(g))j=["it"];let i=Array.isArray(j)?j.map((x)=>this.formatParam(x)).join(", "):"",c=this.reactiveMembers?this.transformComponentMembers(g):g,y=this.containsAwait(g),b=this.generateFunctionBody(c,j||[]);L.push(` ${y?"async ":""}${T}(${i}) ${b}`)}for(let{name:T,value:V}of Q)if(Array.isArray(V)&&(V[0]==="->"||V[0]==="=>")){let[,j,g]=V,i=Array.isArray(j)?j.map((x)=>this.formatParam(x)).join(", "):"",c=this.reactiveMembers?this.transformComponentMembers(g):g,y=this.containsAwait(g),b=this.generateFunctionBody(c,j||[]);L.push(` ${y?"async ":""}${T}(${i}) ${b}`)}if(I){let T=I[1],V=this.buildRender(T);if(V.blockFactories.length>0)a=V.blockFactories.join(`
|
|
16
16
|
|
|
17
17
|
`)+`
|
|
18
18
|
|
|
19
|
-
`;L.push(" _create() {");for(let
|
|
19
|
+
`;L.push(" _create() {");for(let j of V.createLines)L.push(` ${j}`);if(L.push(` return ${V.rootVar};`),L.push(" }"),V.setupLines.length>0){L.push(" _setup() {");for(let j of V.setupLines)L.push(` ${j}`);L.push(" }")}}if(L.push("}"),this.componentMembers=N,this.reactiveMembers=B,this._autoEventHandlers=h,this._inheritsTag=C,a)return`(() => {
|
|
20
20
|
${a}return ${L.join(`
|
|
21
21
|
`)};
|
|
22
22
|
})()`;return L.join(`
|
|
23
|
-
`)},u.generateInComponent=function(w,Y){if(typeof w==="string"&&this.reactiveMembers&&this.reactiveMembers.has(w))return`${this._self}.${w}.value`;if(typeof w==="string"&&this.componentMembers&&this.componentMembers.has(w))return`${this._self}.${w}`;if(Array.isArray(w)&&this.reactiveMembers){let Z=this.transformComponentMembers(w);return this.generate(Z,Y)}return this.generate(w,Y)},u.generateRender=function(w,Y,Z,A){throw Error("render blocks can only be used inside a component")},u.generateOffer=function(w,Y,Z,A){throw Error("offer can only be used inside a component")},u.generateAccept=function(w,Y,Z,A){throw Error("accept can only be used inside a component")},u.buildRender=function(w){this._elementCount=0,this._textCount=0,this._blockCount=0,this._createLines=[],this._setupLines=[],this._blockFactories=[],this._loopVarStack=[],this._factoryMode=!1,this._factoryVars=null,this._fragChildren=new Map,this._pendingAutoWire=!1,this._autoWireEl=null,this._autoWireExplicit=null,this._inheritsTargetBound=!1;let Y=this.is(w,"block")?w.slice(1):[w],Z;if(Y.length===0)Z="null";else if(Y.length===1)this._pendingAutoWire=!!this._autoEventHandlers,Z=this.generateNode(Y[0]),this._pendingAutoWire=!1;else{Z=this.newElementVar("frag"),this._createLines.push(`${Z} = document.createDocumentFragment();`);let A=[];for(let R of Y){let z=this.generateNode(R);this._createLines.push(`${Z}.appendChild(${z});`),A.push(z)}this._fragChildren.set(Z,A)}return{createLines:this._createLines,setupLines:this._setupLines,blockFactories:this._blockFactories,rootVar:Z}},u.newBlockVar=function(){return`create_block_${this._blockCount++}`},u.newElementVar=function(w="el"){let Y=`_${w}${this._elementCount++}`;if(this._factoryVars)this._factoryVars.add(Y);return this._factoryMode?Y:`this.${Y}`},u.newTextVar=function(){let w=`_t${this._textCount++}`;if(this._factoryVars)this._factoryVars.add(w);return this._factoryMode?w:`this.${w}`},Object.defineProperty(u,"_self",{get(){return this._factoryMode?"ctx":"this"}}),u._pushEffect=function(w){if(this._factoryMode)this._setupLines.push(`disposers.push(__effect(() => { ${w} }));`);else this._setupLines.push(`__effect(() => { ${w} });`)},u.generateNode=function(w){if(typeof w==="string"||w instanceof String){let Q=w.valueOf();if(Q.startsWith('"')||Q.startsWith("'")||Q.startsWith("`")){let G=this.newTextVar();return this._createLines.push(`${G} = document.createTextNode(${Q});`),G}if(this.reactiveMembers&&this.reactiveMembers.has(Q)){let G=this.newTextVar();return this._createLines.push(`${G} = document.createTextNode('');`),this._pushEffect(`${G}.data = ${this._self}.${Q}.value;`),G}if(Q==="slot"&&this.componentMembers){let G=this._self,O=this.newElementVar("slot");return this._createLines.push(`${O} = ${G}.children instanceof Node ? ${G}.children : (${G}.children != null ? document.createTextNode(String(${G}.children)) : document.createComment(''));`),O}let[D,J]=Q.split("#"),q=this.newElementVar(),X=D||"div";if(G1.has(X)||this._svgDepth>0)this._createLines.push(`${q} = document.createElementNS('http://www.w3.org/2000/svg', '${X}');`);else this._createLines.push(`${q} = document.createElement('${X}');`);if(J)this._createLines.push(`${q}.id = '${J}';`);return this._bindInheritedTarget(X,q),q}if(!Array.isArray(w)){let Q=this.newElementVar("c");return this._createLines.push(`${Q} = document.createComment('unknown');`),Q}let[Y,...Z]=w,A=typeof Y==="string"?Y:Y instanceof String?Y.valueOf():null;if(A&&this.isComponent(A))return this.generateChildComponent(A,Z);if(A==="slot"&&this.componentMembers){let Q=this._self,D=this.newElementVar("slot");return this._createLines.push(`${D} = ${Q}.children instanceof Node ? ${Q}.children : (${Q}.children != null ? document.createTextNode(String(${Q}.children)) : document.createComment(''));`),D}if(A&&this.isHtmlTag(A)&&!F(Y,"text")){let[Q,D]=A.split("#");return this.generateTag(Q||"div",[],Z,D)}if(A==="."){let[,Q,D]=w;if(Q==="this"&&typeof D==="string"){let P=this._self;if(this.reactiveMembers&&this.reactiveMembers.has(D)){let H=this.newTextVar();return this._createLines.push(`${H} = document.createTextNode('');`),this._pushEffect(`${H}.data = ${P}.${D}.value;`),H}let E=this.newElementVar("slot");return this._createLines.push(`${E} = ${P}.${D} instanceof Node ? ${P}.${D} : (${P}.${D} != null ? document.createTextNode(String(${P}.${D})) : document.createComment(''));`),E}let{tag:J,classes:q,id:X,base:G}=this.collectTemplateClasses(w);if(!F(G,"text")&&J&&this.isHtmlTag(J))return this.generateTag(J,q,[],X);let O=this.newTextVar(),K=this.generateInComponent(w,"value");return this._createLines.push(`${O} = document.createTextNode(String(${K}));`),O}if(Array.isArray(Y)){if(Array.isArray(Y[0])&&Y[0][0]==="."&&(Y[0][2]==="__clsx"||Y[0][2]instanceof String&&Y[0][2].valueOf()==="__clsx")){let q=Y[0][1],X=Y.slice(1);if(Array.isArray(q)){let{tag:O,classes:K,id:P}=this.collectTemplateClasses(q);if(O){let E=K.map((H)=>`"${H}"`);return this.generateDynamicTag(O,X,Z,E,P)}}let G=typeof q==="string"?q:q.valueOf();return this.generateDynamicTag(G,X,Z)}let{tag:Q,classes:D,id:J}=this.collectTemplateClasses(Y);if(Q&&this.isHtmlTag(Q)){if(D.length>0&&D[D.length-1]==="__clsx"){let X=D.slice(0,-1).map((G)=>`"${G}"`);return this.generateDynamicTag(Q,Z,[],X,J)}return this.generateTag(Q,D,Z,J)}}if(A==="->"||A==="=>")return this.generateTemplateBlock(Z[1]);if(A==="if")return this.generateConditional(w);if(A==="for"||A==="for-in"||A==="for-of"||A==="for-as")return this.generateTemplateLoop(w);let R=this.newTextVar(),z=this.generateInComponent(w,"value");if(this.hasReactiveDeps(w))this._createLines.push(`${R} = document.createTextNode('');`),this._pushEffect(`${R}.data = ${z};`);else this._createLines.push(`${R} = document.createTextNode(String(${z}));`);return R},u.appendChildren=function(w,Y){for(let Z of Y)if(this.is(Z,"->")||this.is(Z,"=>")){let A=Z[2];if(this.is(A,"block"))for(let R of A.slice(1))if(this.is(R,"object"))this.generateAttributes(w,R);else{let z=this.generateNode(R);this._createLines.push(`${w}.appendChild(${z});`)}else if(A){let R=this.generateNode(A);this._createLines.push(`${w}.appendChild(${R});`)}}else if(this.is(Z,"object"))this.generateAttributes(w,Z);else if(typeof Z==="string"||Z instanceof String){let A=Z.valueOf(),R=A.split(/[#.]/)[0];if(this.isHtmlTag(R||"div")||this.isComponent(R)){let z=this.generateNode(Z);this._createLines.push(`${w}.appendChild(${z});`)}else{let z=this.newTextVar();if(A.startsWith('"')||A.startsWith("'")||A.startsWith("`"))this._createLines.push(`${z} = document.createTextNode(${A});`);else if(this.reactiveMembers&&this.reactiveMembers.has(A))this._createLines.push(`${z} = document.createTextNode('');`),this._pushEffect(`${z}.data = ${this._self}.${A}.value;`);else if(this.componentMembers&&this.componentMembers.has(A))this._createLines.push(`${z} = document.createTextNode(String(${this._self}.${A}));`);else this._createLines.push(`${z} = document.createTextNode(${this.generateInComponent(Z,"value")});`);this._createLines.push(`${w}.appendChild(${z});`)}}else if(Z){let A=this.generateNode(Z);this._createLines.push(`${w}.appendChild(${A});`)}},u._claimAutoWire=function(w){if(!this._pendingAutoWire||!this._autoEventHandlers?.size)return!1;return this._pendingAutoWire=!1,this._autoWireEl=w,this._autoWireExplicit=new Set,!0},u._emitAutoWire=function(w,Y){if(!Y)return;for(let[Z,A]of this._autoEventHandlers)if(!this._autoWireExplicit.has(Z))this._createLines.push(`${w}.addEventListener('${Z}', (e) => __batch(() => ${this._self}.${A}(e)));`);this._autoWireEl=null,this._autoWireExplicit=null},u._bindInheritedTarget=function(w,Y){if(!this._inheritsTag||this._factoryMode||this._inheritsTargetBound)return;if(w!==this._inheritsTag)return;this._inheritsTargetBound=!0,this._createLines.push(`this._inheritedEl = ${Y};`),this._createLines.push("this._applyRestToInheritedEl();")},u.generateTag=function(w,Y,Z,A){let R=this.newElementVar(),z=G1.has(w)||this._svgDepth>0;if(z)this._createLines.push(`${R} = document.createElementNS('http://www.w3.org/2000/svg', '${w}');`);else this._createLines.push(`${R} = document.createElement('${w}');`);if(A)this._createLines.push(`${R}.id = '${A}';`);if(this._bindInheritedTarget(w,R),this._componentName&&this._elementCount===1&&!this._factoryMode&&!this.options.skipDataPart)this._createLines.push(`${R}.setAttribute('data-part', '${this._componentName}');`);let Q=this._claimAutoWire(R),D=this._pendingClassArgs,J=this._pendingClassEl;if(Y.length>0)this._pendingClassArgs=[`'${Y.join(" ")}'`],this._pendingClassEl=R;if(w==="svg")this._svgDepth=(this._svgDepth||0)+1;if(this.appendChildren(R,Z),w==="svg")this._svgDepth--;if(Y.length>0){if(this._pendingClassArgs.length===1)if(z)this._createLines.push(`${R}.setAttribute('class', '${Y.join(" ")}');`);else this._createLines.push(`${R}.className = '${Y.join(" ")}';`);else{let q=this._pendingClassArgs.join(", ");if(z)this._pushEffect(`${R}.setAttribute('class', __clsx(${q}));`);else this._pushEffect(`${R}.className = __clsx(${q});`)}this._pendingClassArgs=D,this._pendingClassEl=J}return this._emitAutoWire(R,Q),R},u.generateDynamicTag=function(w,Y,Z,A,R){let z=this.newElementVar();if(G1.has(w)||this._svgDepth>0)this._createLines.push(`${z} = document.createElementNS('http://www.w3.org/2000/svg', '${w}');`);else this._createLines.push(`${z} = document.createElement('${w}');`);if(R)this._createLines.push(`${z}.id = '${R}';`);this._bindInheritedTarget(w,z);let Q=this._claimAutoWire(z),D=[...A||[],...Y.map((X)=>this.generateInComponent(X,"value"))],J=this._pendingClassArgs,q=this._pendingClassEl;if(this._pendingClassArgs=D,this._pendingClassEl=z,w==="svg")this._svgDepth=(this._svgDepth||0)+1;if(this.appendChildren(z,Z),w==="svg")this._svgDepth--;if(this._pendingClassArgs.length>0){let X=this._pendingClassArgs.join(", ");if(G1.has(w)||this._svgDepth>0)this._pushEffect(`${z}.setAttribute('class', __clsx(${X}));`);else this._pushEffect(`${z}.className = __clsx(${X});`)}return this._pendingClassArgs=J,this._pendingClassEl=q,this._emitAutoWire(z,Q),z},u.generateAttributes=function(w,Y){let Z=w7(Y.slice(1));for(let A=1;A<Y.length;A++){let[R,z]=Y[A];if(this.is(R,".")&&R[1]==="this"){let Q=R[2];if(this._autoWireExplicit&&this._autoWireEl===w)this._autoWireExplicit.add(Q);if(typeof z==="string"&&this.componentMembers?.has(z))this._createLines.push(`${w}.addEventListener('${Q}', (e) => __batch(() => ${this._self}.${z}(e)));`);else{let D=this.generateInComponent(z,"value");this._createLines.push(`${w}.addEventListener('${Q}', (e) => __batch(() => (${D})(e)));`)}continue}if(typeof R==="string"||R instanceof String){if(R.startsWith('"')&&R.endsWith('"'))R=R.slice(1,-1);if(R==="class"||R==="className"){let D=this.generateInComponent(z,"value");if(this._pendingClassArgs&&this._pendingClassEl===w)this._pendingClassArgs.push(D);else if(this.hasReactiveDeps(z))if(this._svgDepth>0)this._pushEffect(`${w}.setAttribute('class', __clsx(${D}));`);else this._pushEffect(`${w}.className = __clsx(${D});`);else if(this._svgDepth>0)this._createLines.push(`${w}.setAttribute('class', ${D});`);else this._createLines.push(`${w}.className = ${D};`);continue}if(R==="__transition__"){let D=String(z).replace(/^["']|["']$/g,"");this._createLines.push(`this._t = "${D}";`);continue}if(R==="ref"){let D=String(z).replace(/^["']|["']$/g,"");this._createLines.push(`${this._self}.${D} = ${w};`);continue}if(R.startsWith("__bind_")&&R.endsWith("__")){let D=R.slice(7,-2),J=this.generateInComponent(z,"value"),q,X;if(D==="checked")q="change",X="e.target.checked";else q="input",X=Z==="number"||Z==="range"?"e.target.valueAsNumber":"e.target.value";this._pushEffect(`${w}.${D} = ${J};`);let G=`${J} = ${X}`,O=!this.isSimpleAssignable(z)&&this.findRootReactiveMember(z);if(O)G+=`; ${this._self}.${O}.touch?.()`;this._createLines.push(`${w}.addEventListener('${q}', (e) => { ${G}; });`);continue}let Q=this.generateInComponent(z,"value");if((R==="value"||R==="checked")&&this.hasReactiveDeps(z)){this._pushEffect(`${w}.${R} = ${Q};`);continue}if(R==="innerHTML"||R==="textContent"||R==="innerText")if(this.hasReactiveDeps(z))this._pushEffect(`${w}.${R} = ${Q};`);else this._createLines.push(`${w}.${R} = ${Q};`);else if(F7.has(R))if(this.hasReactiveDeps(z))this._pushEffect(`${w}.toggleAttribute('${R}', !!${Q});`);else this._createLines.push(`if (${Q}) ${w}.setAttribute('${R}', '');`);else if(this.hasReactiveDeps(z))if(Array.isArray(z)&&z[0]==="presence")this._pushEffect(`{ const __v = ${Q}; __v == null ? ${w}.removeAttribute('${R}') : ${w}.setAttribute('${R}', __v); }`);else this._pushEffect(`${w}.setAttribute('${R}', ${Q});`);else if(Array.isArray(z)&&z[0]==="presence")this._createLines.push(`{ const __v = ${Q}; if (__v != null) ${w}.setAttribute('${R}', __v); }`);else this._createLines.push(`${w}.setAttribute('${R}', ${Q});`)}}},u.generateTemplateBlock=function(w){if(!Array.isArray(w)||w[0]!=="block")return this.generateNode(w);let Y=w.slice(1);if(Y.length===0){let R=this.newElementVar("empty");return this._createLines.push(`${R} = document.createComment('');`),R}if(Y.length===1)return this.generateNode(Y[0]);let Z=this.newElementVar("frag");this._createLines.push(`${Z} = document.createDocumentFragment();`);let A=[];for(let R of Y){let z=this.generateNode(R);this._createLines.push(`${Z}.appendChild(${z});`),A.push(z)}return this._fragChildren.set(Z,A),Z},u.generateConditional=function(w){this._pendingAutoWire=!1;let[,Y,Z,A]=w,R=this.newElementVar("anchor");this._createLines.push(`${R} = document.createComment('if');`);let z=this.generateInComponent(Y,"value"),Q=this._loopVarStack.map((K)=>`${K.itemVar}, ${K.indexVar}`).join(", "),D=Q?`, ${Q}`:"",J=this.newBlockVar();this.generateConditionBranch(J,Z);let q=null;if(A)q=this.newBlockVar(),this.generateConditionBranch(q,A);let X=[];X.push(`// Conditional: ${J}${q?" / "+q:""}`),X.push("{"),X.push(` const anchor = ${R};`),X.push(" let currentBlock = null;"),X.push(" let showing = null;");let G=this._factoryMode?"disposers.push(__effect(() => {":"__effect(() => {",O=this._factoryMode?"}));":"});";if(X.push(` ${G}`),X.push(` const show = !!(${z});`),X.push(` const want = show ? 'then' : ${A?"'else'":"null"};`),X.push(" if (want === showing) return;"),X.push(""),X.push(" if (currentBlock) {"),X.push(" const leaving = currentBlock;"),X.push(" if (leaving._t) { __transition(leaving._first, leaving._t, 'leave', () => leaving.d(true)); }"),X.push(" else { leaving.d(true); }"),X.push(" currentBlock = null;"),X.push(" }"),X.push(" showing = want;"),X.push(""),X.push(" if (want === 'then') {"),X.push(` currentBlock = ${J}(${this._self}${D});`),X.push(" currentBlock.c();"),X.push(" if (anchor.parentNode) currentBlock.m(anchor.parentNode, anchor.nextSibling);"),X.push(` currentBlock.p(${this._self}${D});`),X.push(" if (currentBlock._t) __transition(currentBlock._first, currentBlock._t, 'enter');"),X.push(" }"),A)X.push(" if (want === 'else') {"),X.push(` currentBlock = ${q}(${this._self}${D});`),X.push(" currentBlock.c();"),X.push(" if (anchor.parentNode) currentBlock.m(anchor.parentNode, anchor.nextSibling);"),X.push(` currentBlock.p(${this._self}${D});`),X.push(" if (currentBlock._t) __transition(currentBlock._first, currentBlock._t, 'enter');"),X.push(" }");return X.push(` ${O}`),X.push("}"),this._setupLines.push(X.join(`
|
|
24
|
-
`)),
|
|
25
|
-
`))},u.generateTemplateLoop=function(
|
|
26
|
-
`)),J},u.generateChildComponent=function(
|
|
23
|
+
`)},u.generateInComponent=function(W,Y){if(typeof W==="string"&&this.reactiveMembers&&this.reactiveMembers.has(W))return`${this._self}.${W}.value`;if(typeof W==="string"&&this.componentMembers&&this.componentMembers.has(W))return`${this._self}.${W}`;if(Array.isArray(W)&&this.reactiveMembers){let R=this.transformComponentMembers(W);return this.generate(R,Y)}return this.generate(W,Y)},u.generateRender=function(W,Y,R,A){throw Error("render blocks can only be used inside a component")},u.generateOffer=function(W,Y,R,A){throw Error("offer can only be used inside a component")},u.generateAccept=function(W,Y,R,A){throw Error("accept can only be used inside a component")},u.buildRender=function(W){this._elementCount=0,this._textCount=0,this._blockCount=0,this._createLines=[],this._setupLines=[],this._blockFactories=[],this._loopVarStack=[],this._factoryMode=!1,this._factoryVars=null,this._fragChildren=new Map,this._pendingAutoWire=!1,this._autoWireEl=null,this._autoWireExplicit=null,this._inheritsTargetBound=!1;let Y=this.is(W,"block")?W.slice(1):[W],R;if(Y.length===0)R="null";else if(Y.length===1)this._pendingAutoWire=!!this._autoEventHandlers,R=this.generateNode(Y[0]),this._pendingAutoWire=!1;else{R=this.newElementVar("frag"),this._createLines.push(`${R} = document.createDocumentFragment();`);let A=[];for(let Z of Y){let z=this.generateNode(Z);this._createLines.push(`${R}.appendChild(${z});`),A.push(z)}this._fragChildren.set(R,A)}return{createLines:this._createLines,setupLines:this._setupLines,blockFactories:this._blockFactories,rootVar:R}},u.newBlockVar=function(){return`create_block_${this._blockCount++}`},u.newElementVar=function(W="el"){let Y=`_${W}${this._elementCount++}`;if(this._factoryVars)this._factoryVars.add(Y);return this._factoryMode?Y:`this.${Y}`},u.newTextVar=function(){let W=`_t${this._textCount++}`;if(this._factoryVars)this._factoryVars.add(W);return this._factoryMode?W:`this.${W}`},Object.defineProperty(u,"_self",{get(){return this._factoryMode?"ctx":"this"}}),u._pushEffect=function(W){if(this._factoryMode)this._setupLines.push(`disposers.push(__effect(() => { ${W} }));`);else this._setupLines.push(`__effect(() => { ${W} });`)},u.generateNode=function(W){if(typeof W==="string"||W instanceof String){let X=W.valueOf();if(X.startsWith('"')||X.startsWith("'")||X.startsWith("`")){let q=this.newTextVar();return this._createLines.push(`${q} = document.createTextNode(${X});`),q}if(this.reactiveMembers&&this.reactiveMembers.has(X)){let q=this.newTextVar();return this._createLines.push(`${q} = document.createTextNode('');`),this._pushEffect(`${q}.data = ${this._self}.${X}.value;`),q}if(X==="slot"&&this.componentMembers){let q=this._self,O=this.newElementVar("slot");return this._createLines.push(`${O} = ${q}.children instanceof Node ? ${q}.children : (${q}.children != null ? document.createTextNode(String(${q}.children)) : document.createComment(''));`),O}let[H,J]=X.split("#"),G=this.newElementVar(),Q=H||"div";if(q1.has(Q)||this._svgDepth>0)this._createLines.push(`${G} = document.createElementNS('http://www.w3.org/2000/svg', '${Q}');`);else this._createLines.push(`${G} = document.createElement('${Q}');`);if(J)this._createLines.push(`${G}.id = '${J}';`);return this._bindInheritedTarget(Q,G),G}if(!Array.isArray(W)){let X=this.newElementVar("c");return this._createLines.push(`${X} = document.createComment('unknown');`),X}let[Y,...R]=W,A=typeof Y==="string"?Y:Y instanceof String?Y.valueOf():null;if(A&&this.isComponent(A))return this.generateChildComponent(A,R);if(A==="slot"&&this.componentMembers){let X=this._self,H=this.newElementVar("slot");return this._createLines.push(`${H} = ${X}.children instanceof Node ? ${X}.children : (${X}.children != null ? document.createTextNode(String(${X}.children)) : document.createComment(''));`),H}if(A==="switch"){let X=R[0],H=R[1]||[],G=R[2]||null;for(let q=H.length-1;q>=0;q--){let[,O,K]=H[q],I;if(X===null)I=O.length===1?O[0]:O.reduce((E,D)=>E?["||",E,D]:D,null);else I=O.length===1?["==",X,O[0]]:O.map((E)=>["==",X,E]).reduce((E,D)=>E?["||",E,D]:D,null);G=["if",I,K,G]}if(G){if(Array.isArray(G)&&G[0]==="if")return this.generateConditional(G);return this.generateTemplateBlock(G)}let Q=this.newElementVar("c");return this._createLines.push(`${Q} = document.createComment('switch');`),Q}if(A&&this.isHtmlTag(A)&&!U(Y,"text")){let[X,H]=A.split("#");return this.generateTag(X||"div",[],R,H)}if(A==="."){let[,X,H]=W;if(X==="this"&&typeof H==="string"){let I=this._self;if(this.reactiveMembers&&this.reactiveMembers.has(H)){let D=this.newTextVar();return this._createLines.push(`${D} = document.createTextNode('');`),this._pushEffect(`${D}.data = ${I}.${H}.value;`),D}let E=this.newElementVar("slot");return this._createLines.push(`${E} = ${I}.${H} instanceof Node ? ${I}.${H} : (${I}.${H} != null ? document.createTextNode(String(${I}.${H})) : document.createComment(''));`),E}let{tag:J,classes:G,id:Q,base:q}=this.collectTemplateClasses(W);if(!U(q,"text")&&J&&this.isHtmlTag(J))return this.generateTag(J,G,[],Q);let O=this.newTextVar(),K=this.generateInComponent(W,"value");return this._createLines.push(`${O} = document.createTextNode(String(${K}));`),O}if(Array.isArray(Y)){if(Array.isArray(Y[0])&&Y[0][0]==="."&&(Y[0][2]==="__clsx"||Y[0][2]instanceof String&&Y[0][2].valueOf()==="__clsx")){let G=Y[0][1],Q=Y.slice(1);if(Array.isArray(G)){let{tag:O,classes:K,id:I}=this.collectTemplateClasses(G);if(O){let E=K.map((D)=>`"${D}"`);return this.generateDynamicTag(O,Q,R,E,I)}}let q=typeof G==="string"?G:G.valueOf();return this.generateDynamicTag(q,Q,R)}let{tag:X,classes:H,id:J}=this.collectTemplateClasses(Y);if(X&&this.isHtmlTag(X)){if(H.length>0&&H[H.length-1]==="__clsx"){let Q=H.slice(0,-1).map((q)=>`"${q}"`);return this.generateDynamicTag(X,R,[],Q,J)}return this.generateTag(X,H,R,J)}}if(A==="->"||A==="=>")return this.generateTemplateBlock(R[1]);if(A==="if")return this.generateConditional(W);if(A==="for"||A==="for-in"||A==="for-of"||A==="for-as")return this.generateTemplateLoop(W);let Z=this.newTextVar(),z=this.generateInComponent(W,"value");if(this.hasReactiveDeps(W))this._createLines.push(`${Z} = document.createTextNode('');`),this._pushEffect(`${Z}.data = ${z};`);else this._createLines.push(`${Z} = document.createTextNode(String(${z}));`);return Z},u.appendChildren=function(W,Y){for(let R of Y)if(this.is(R,"->")||this.is(R,"=>")){let A=R[2];if(this.is(A,"block"))for(let Z of A.slice(1))if(this.is(Z,"object"))this.generateAttributes(W,Z);else{let z=this.generateNode(Z);this._createLines.push(`${W}.appendChild(${z});`)}else if(A){let Z=this.generateNode(A);this._createLines.push(`${W}.appendChild(${Z});`)}}else if(this.is(R,"object"))this.generateAttributes(W,R);else if(typeof R==="string"||R instanceof String){let A=R.valueOf(),Z=A.split(/[#.]/)[0];if(this.isHtmlTag(Z||"div")||this.isComponent(Z)){let z=this.generateNode(R);this._createLines.push(`${W}.appendChild(${z});`)}else{let z=this.newTextVar();if(A.startsWith('"')||A.startsWith("'")||A.startsWith("`"))this._createLines.push(`${z} = document.createTextNode(${A});`);else if(this.reactiveMembers&&this.reactiveMembers.has(A))this._createLines.push(`${z} = document.createTextNode('');`),this._pushEffect(`${z}.data = ${this._self}.${A}.value;`);else if(this.componentMembers&&this.componentMembers.has(A))this._createLines.push(`${z} = document.createTextNode(String(${this._self}.${A}));`);else this._createLines.push(`${z} = document.createTextNode(${this.generateInComponent(R,"value")});`);this._createLines.push(`${W}.appendChild(${z});`)}}else if(R){let A=this.generateNode(R);this._createLines.push(`${W}.appendChild(${A});`)}},u._claimAutoWire=function(W){if(!this._pendingAutoWire||!this._autoEventHandlers?.size)return!1;return this._pendingAutoWire=!1,this._autoWireEl=W,this._autoWireExplicit=new Set,!0},u._emitAutoWire=function(W,Y){if(!Y)return;for(let[R,A]of this._autoEventHandlers)if(!this._autoWireExplicit.has(R))this._createLines.push(`${W}.addEventListener('${R}', (e) => __batch(() => ${this._self}.${A}(e)));`);this._autoWireEl=null,this._autoWireExplicit=null},u._bindInheritedTarget=function(W,Y){if(!this._inheritsTag||this._factoryMode||this._inheritsTargetBound)return;if(W!==this._inheritsTag)return;this._inheritsTargetBound=!0,this._createLines.push(`this._inheritedEl = ${Y};`),this._createLines.push("this._applyRestToInheritedEl();")},u.generateTag=function(W,Y,R,A){let Z=this.newElementVar(),z=q1.has(W)||this._svgDepth>0;if(z)this._createLines.push(`${Z} = document.createElementNS('http://www.w3.org/2000/svg', '${W}');`);else this._createLines.push(`${Z} = document.createElement('${W}');`);if(A)this._createLines.push(`${Z}.id = '${A}';`);if(this._bindInheritedTarget(W,Z),this._componentName&&this._elementCount===1&&!this._factoryMode&&!this.options.skipDataPart)this._createLines.push(`${Z}.setAttribute('data-part', '${this._componentName}');`);let X=this._claimAutoWire(Z),H=this._pendingClassArgs,J=this._pendingClassEl;if(Y.length>0)this._pendingClassArgs=[`'${Y.join(" ")}'`],this._pendingClassEl=Z;if(W==="svg")this._svgDepth=(this._svgDepth||0)+1;if(this.appendChildren(Z,R),W==="svg")this._svgDepth--;if(Y.length>0){if(this._pendingClassArgs.length===1)if(z)this._createLines.push(`${Z}.setAttribute('class', '${Y.join(" ")}');`);else this._createLines.push(`${Z}.className = '${Y.join(" ")}';`);else{let G=this._pendingClassArgs.join(", ");if(z)this._pushEffect(`${Z}.setAttribute('class', __clsx(${G}));`);else this._pushEffect(`${Z}.className = __clsx(${G});`)}this._pendingClassArgs=H,this._pendingClassEl=J}return this._emitAutoWire(Z,X),Z},u.generateDynamicTag=function(W,Y,R,A,Z){let z=this.newElementVar();if(q1.has(W)||this._svgDepth>0)this._createLines.push(`${z} = document.createElementNS('http://www.w3.org/2000/svg', '${W}');`);else this._createLines.push(`${z} = document.createElement('${W}');`);if(Z)this._createLines.push(`${z}.id = '${Z}';`);this._bindInheritedTarget(W,z);let X=this._claimAutoWire(z),H=[...A||[],...Y.map((Q)=>this.generateInComponent(Q,"value"))],J=this._pendingClassArgs,G=this._pendingClassEl;if(this._pendingClassArgs=H,this._pendingClassEl=z,W==="svg")this._svgDepth=(this._svgDepth||0)+1;if(this.appendChildren(z,R),W==="svg")this._svgDepth--;if(this._pendingClassArgs.length>0){let Q=this._pendingClassArgs.join(", ");if(q1.has(W)||this._svgDepth>0)this._pushEffect(`${z}.setAttribute('class', __clsx(${Q}));`);else this._pushEffect(`${z}.className = __clsx(${Q});`)}return this._pendingClassArgs=J,this._pendingClassEl=G,this._emitAutoWire(z,X),z},u.generateAttributes=function(W,Y){let R=A7(Y.slice(1));for(let A=1;A<Y.length;A++){let[Z,z]=Y[A];if(this.is(Z,".")&&Z[1]==="this"){let X=Z[2];if(this._autoWireExplicit&&this._autoWireEl===W)this._autoWireExplicit.add(X);if(typeof z==="string"&&this.componentMembers?.has(z))this._createLines.push(`${W}.addEventListener('${X}', (e) => __batch(() => ${this._self}.${z}(e)));`);else{let H=this.generateInComponent(z,"value");this._createLines.push(`${W}.addEventListener('${X}', (e) => __batch(() => (${H})(e)));`)}continue}if(typeof Z==="string"||Z instanceof String){if(Z.startsWith('"')&&Z.endsWith('"'))Z=Z.slice(1,-1);if(Z==="class"||Z==="className"){let H=this.generateInComponent(z,"value");if(this._pendingClassArgs&&this._pendingClassEl===W)this._pendingClassArgs.push(H);else if(this.hasReactiveDeps(z))if(this._svgDepth>0)this._pushEffect(`${W}.setAttribute('class', __clsx(${H}));`);else this._pushEffect(`${W}.className = __clsx(${H});`);else if(this._svgDepth>0)this._createLines.push(`${W}.setAttribute('class', ${H});`);else this._createLines.push(`${W}.className = ${H};`);continue}if(Z==="__transition__"){let H=String(z).replace(/^["']|["']$/g,"");this._createLines.push(`this._t = "${H}";`);continue}if(Z==="ref"){let H=String(z).replace(/^["']|["']$/g,"");this._createLines.push(`${this._self}.${H} = ${W};`);continue}if(Z.startsWith("__bind_")&&Z.endsWith("__")){let H=Z.slice(7,-2),J=this.generateInComponent(z,"value"),G,Q;if(H==="checked")G="change",Q="e.target.checked";else G="input",Q=R==="number"||R==="range"?"e.target.valueAsNumber":"e.target.value";this._pushEffect(`${W}.${H} = ${J};`);let q=`${J} = ${Q}`,O=!this.isSimpleAssignable(z)&&this.findRootReactiveMember(z);if(O)q+=`; ${this._self}.${O}.touch?.()`;this._createLines.push(`${W}.addEventListener('${G}', (e) => { ${q}; });`);continue}let X=this.generateInComponent(z,"value");if((Z==="value"||Z==="checked")&&this.hasReactiveDeps(z)){this._pushEffect(`${W}.${Z} = ${X};`);continue}if(Z==="innerHTML"||Z==="textContent"||Z==="innerText")if(this.hasReactiveDeps(z))this._pushEffect(`${W}.${Z} = ${X};`);else this._createLines.push(`${W}.${Z} = ${X};`);else if(Y7.has(Z))if(this.hasReactiveDeps(z))this._pushEffect(`${W}.toggleAttribute('${Z}', !!${X});`);else this._createLines.push(`if (${X}) ${W}.setAttribute('${Z}', '');`);else if(this.hasReactiveDeps(z))if(Array.isArray(z)&&z[0]==="presence")this._pushEffect(`{ const __v = ${X}; __v == null ? ${W}.removeAttribute('${Z}') : ${W}.setAttribute('${Z}', __v); }`);else this._pushEffect(`${W}.setAttribute('${Z}', ${X});`);else if(Array.isArray(z)&&z[0]==="presence")this._createLines.push(`{ const __v = ${X}; if (__v != null) ${W}.setAttribute('${Z}', __v); }`);else this._createLines.push(`${W}.setAttribute('${Z}', ${X});`)}}},u.generateTemplateBlock=function(W){if(!Array.isArray(W)||W[0]!=="block")return this.generateNode(W);let Y=W.slice(1);if(Y.length===0){let Z=this.newElementVar("empty");return this._createLines.push(`${Z} = document.createComment('');`),Z}if(Y.length===1)return this.generateNode(Y[0]);let R=this.newElementVar("frag");this._createLines.push(`${R} = document.createDocumentFragment();`);let A=[];for(let Z of Y){let z=this.generateNode(Z);this._createLines.push(`${R}.appendChild(${z});`),A.push(z)}return this._fragChildren.set(R,A),R},u.generateConditional=function(W){this._pendingAutoWire=!1;let[,Y,R,A]=W,Z=this.newElementVar("anchor");this._createLines.push(`${Z} = document.createComment('if');`);let z=this.generateInComponent(Y,"value"),X=this._loopVarStack.map((K)=>`${K.itemVar}, ${K.indexVar}`).join(", "),H=X?`, ${X}`:"",J=this.newBlockVar();this.generateConditionBranch(J,R);let G=null;if(A)G=this.newBlockVar(),this.generateConditionBranch(G,A);let Q=[];Q.push(`// Conditional: ${J}${G?" / "+G:""}`),Q.push("{"),Q.push(` const anchor = ${Z};`),Q.push(" let currentBlock = null;"),Q.push(" let showing = null;");let q=this._factoryMode?"disposers.push(__effect(() => {":"__effect(() => {",O=this._factoryMode?"}));":"});";if(Q.push(` ${q}`),Q.push(` const show = !!(${z});`),Q.push(` const want = show ? 'then' : ${A?"'else'":"null"};`),Q.push(" if (want === showing) return;"),Q.push(""),Q.push(" if (currentBlock) {"),Q.push(" const leaving = currentBlock;"),Q.push(" if (leaving._t) { __transition(leaving._first, leaving._t, 'leave', () => leaving.d(true)); }"),Q.push(" else { leaving.d(true); }"),Q.push(" currentBlock = null;"),Q.push(" }"),Q.push(" showing = want;"),Q.push(""),Q.push(" if (want === 'then') {"),Q.push(` currentBlock = ${J}(${this._self}${H});`),Q.push(" currentBlock.c();"),Q.push(" if (anchor.parentNode) currentBlock.m(anchor.parentNode, anchor.nextSibling);"),Q.push(` currentBlock.p(${this._self}${H});`),Q.push(" if (currentBlock._t) __transition(currentBlock._first, currentBlock._t, 'enter');"),Q.push(" }"),A)Q.push(" if (want === 'else') {"),Q.push(` currentBlock = ${G}(${this._self}${H});`),Q.push(" currentBlock.c();"),Q.push(" if (anchor.parentNode) currentBlock.m(anchor.parentNode, anchor.nextSibling);"),Q.push(` currentBlock.p(${this._self}${H});`),Q.push(" if (currentBlock._t) __transition(currentBlock._first, currentBlock._t, 'enter');"),Q.push(" }");return Q.push(` ${O}`),Q.push("}"),this._setupLines.push(Q.join(`
|
|
24
|
+
`)),Z},u.generateConditionBranch=function(W,Y){let R=[this._createLines,this._setupLines,this._factoryMode,this._factoryVars];this._createLines=[],this._setupLines=[],this._factoryMode=!0,this._factoryVars=new Set;let A=this.generateTemplateBlock(Y),Z=this._createLines,z=this._setupLines,X=this._factoryVars;[this._createLines,this._setupLines,this._factoryMode,this._factoryVars]=R;let H=this._loopVarStack.map((G)=>`${G.itemVar}, ${G.indexVar}`).join(", "),J=H?`, ${H}`:"";this.emitBlockFactory(W,`ctx${J}`,A,Z,z,X)},u.emitBlockFactory=function(W,Y,R,A,Z,z,X){let H=[];if(H.push(`function ${W}(${Y}) {`),z.size>0)H.push(` let ${[...z].join(", ")};`);let J=Z.length>0;if(J)H.push(" let disposers = [];");if(H.push(" return {"),X)H.push(" _s: true,");let G=this._fragChildren.get(R),Q=G?G[0]:R;H.push(" c() {");for(let q of A)H.push(` ${q}`);if(H.push(` this._first = ${Q};`),H.push(" },"),H.push(" m(target, anchor) {"),G)for(let q of G)H.push(` if (target) target.insertBefore(${q}, anchor);`);else H.push(` if (target) target.insertBefore(${R}, anchor);`);if(H.push(" },"),H.push(` p(${Y}) {`),J){H.push(" disposers.forEach(d => d());"),H.push(" disposers = [];");for(let q of Z)H.push(` ${q}`)}if(H.push(" },"),H.push(" d(detaching) {"),J)H.push(" disposers.forEach(d => d());");if(G)for(let q of G)H.push(` if (detaching && ${q}) ${q}.remove();`);else H.push(` if (detaching && ${R}) ${R}.remove();`);H.push(" }"),H.push(" };"),H.push("}"),this._blockFactories.push(H.join(`
|
|
25
|
+
`))},u.generateTemplateLoop=function(W){this._pendingAutoWire=!1;let[Y,R,A,Z,z,X]=W,H=this.newBlockVar(),J=this.newElementVar("anchor");this._createLines.push(`${J} = document.createComment('for');`);let G=Array.isArray(R)?R:[R],Q=G[0],q=G[1]||null;if(!q){let g=new Set(this._loopVarStack.flatMap((i)=>[i.itemVar,i.indexVar]));g.add(Q);for(let i of["i","j","k","l","m","n"])if(!g.has(i)){q=i;break}q=q||`_i${this._loopVarStack.length}`}let O=this.generateInComponent(A,"value"),K=Q;if(this.is(X,"block")&&X.length>1){let g=X[1];if(Array.isArray(g))for(let i of g){if(this.is(i,"object"))for(let c=1;c<i.length;c++){let[y,b]=i[c];if(y==="key"){K=this.generate(b,"value");break}}if(K!==Q)break}}let I=[this._createLines,this._setupLines,this._factoryMode,this._factoryVars];this._createLines=[],this._setupLines=[],this._factoryMode=!0,this._factoryVars=new Set;let E=this._loopVarStack.map((g)=>`${g.itemVar}, ${g.indexVar}`).join(", "),D=E?`, ${E}`:"";this._loopVarStack.push({itemVar:Q,indexVar:q});let M=this.generateTemplateBlock(X);this._loopVarStack.pop();let P=this._createLines,S=this._setupLines,N=this._factoryVars;[this._createLines,this._setupLines,this._factoryMode,this._factoryVars]=I;let B=S.length===0,h=`ctx, ${Q}, ${q}${D}`;this.emitBlockFactory(H,h,M,P,S,N,B);let L=K!==Q?`(${Q}, ${q}) => ${K}`:"null",a=E?`, ${E}`:"",T=[];T.push(`// Loop: ${H}`),T.push("{"),T.push(" const __s = { blocks: [], keys: [] };");let V=this._factoryMode?"disposers.push(__effect(() => {":"__effect(() => {",j=this._factoryMode?"}));":"});";return T.push(` ${V}`),T.push(` __reconcile(${J}, __s, ${O}, ${this._self}, ${H}, ${L}${a});`),T.push(` ${j}`),T.push("}"),this._setupLines.push(T.join(`
|
|
26
|
+
`)),J},u.generateChildComponent=function(W,Y){this._pendingAutoWire=!1;let R=this.newElementVar("inst"),A=this.newElementVar("el"),{propsCode:Z,reactiveProps:z,eventBindings:X,childrenSetupLines:H}=this.buildComponentProps(Y),J=this._self;this._createLines.push(`{ const __prev = __pushComponent(${J}); try {`),this._createLines.push(`${R} = new ${W}(${Z});`),this._createLines.push(`${A} = ${R}._root = ${R}._create();`),this._createLines.push(`(${J}._children || (${J}._children = [])).push(${R});`),this._createLines.push("} finally { __popComponent(__prev); } }");for(let{event:G,value:Q}of X){let q=this.generateInComponent(Q,"value");this._createLines.push(`${A}.addEventListener('${G}', (e) => __batch(() => (${q})(e)));`)}this._setupLines.push(`try { if (${R}._setup) ${R}._setup(); if (${R}.mounted) ${R}.mounted(); } catch (__e) { __handleComponentError(__e, ${R}); }`);for(let{key:G,valueCode:Q}of z)this._pushEffect(`if (${R}.${G} && typeof ${R}.${G} === 'object' && 'value' in ${R}.${G}) ${R}.${G}.value = ${Q}; else if (${R}._setRestProp) ${R}._setRestProp('${G}', ${Q});`);for(let G of H)this._setupLines.push(G);return A},u.buildComponentProps=function(W){let Y=[],R=[],A=[],Z=null,z=[],X=(G,Q)=>{if(G.startsWith("@")){A.push({event:G.slice(1).split(".")[0],value:Q});return}if(this.reactiveMembers&&(typeof Q==="string"&&this.reactiveMembers.has(Q)||Array.isArray(Q)&&Q[0]==="."&&Q[1]==="this"&&typeof Q[2]==="string"&&this.reactiveMembers.has(Q[2]))){let O=typeof Q==="string"?Q:Q[2];Y.push(`${G}: ${this._self}.${O}`)}else{let O=this.generateInComponent(Q,"value");if(Y.push(`${G}: ${O}`),this.hasReactiveDeps(Q))R.push({key:G,valueCode:O})}},H=(G)=>{for(let Q=1;Q<G.length;Q++){let[q,O]=G[Q];if(typeof q==="string")X(q,O);else if(Array.isArray(q)&&q[0]==="."&&q[1]==="this"&&typeof q[2]==="string")A.push({event:q[2],value:O})}};for(let G of W)if(this.is(G,"object"))H(G);else if(Array.isArray(G)&&(G[0]==="->"||G[0]==="=>")){let Q=G[2];if(Q){if(this.is(Q,"block")){let q=[];for(let O of Q.slice(1))if(this.is(O,"object"))H(O);else q.push(O);Q=q.length>0?["block",...q]:null}if(Q){let q=this._createLines,O=this._setupLines;this._createLines=[],this._setupLines=[],Z=this.generateTemplateBlock(Q);let K=this._createLines,I=this._setupLines;this._createLines=q,this._setupLines=O;for(let E of K)this._createLines.push(E);z.push(...I),Y.push(`children: ${Z}`)}}}else if(G&&!Z){let Q=this.newTextVar(),q=this.generateInComponent(G,"value");if(this.hasReactiveDeps(G)){this._createLines.push(`${Q} = document.createTextNode('');`);let O=`${Q}.data = ${q};`,K=this._factoryMode?`disposers.push(__effect(() => { ${O} }));`:`__effect(() => { ${O} });`;z.push(K)}else this._createLines.push(`${Q} = document.createTextNode(${q});`);Z=Q,Y.push(`children: ${Z}`)}return{propsCode:Y.length>0?`{ ${Y.join(", ")} }`:"{}",reactiveProps:R,eventBindings:A,childrenSetupLines:z}},u.hasReactiveDeps=function(W){if(typeof W==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(W));if(!Array.isArray(W))return!1;if(W[0]==="."&&W[1]==="this"&&typeof W[2]==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(W[2]));if(W[0]==="."&&this._rootsAtThis(W[1]))return!0;if(Array.isArray(W[0])&&W[0][0]==="."&&W[0][1]==="this"){let Y=$(W[0][2]);if(Y&&this.componentMembers?.has(Y))return!0}for(let Y of W)if(this.hasReactiveDeps(Y))return!0;return!1},u.isSimpleAssignable=function(W){if(typeof W==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(W));if(Array.isArray(W)&&W[0]==="."&&W[1]==="this"&&typeof W[2]==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(W[2]));return!1},u.findRootReactiveMember=function(W){if(typeof W==="string")return this.reactiveMembers?.has(W)?W:null;if(!Array.isArray(W))return null;if(W[0]==="."&&W[1]==="this"&&typeof W[2]==="string")return this.reactiveMembers?.has(W[2])?W[2]:null;if(W[0]==="."||W[0]==="[]")return this.findRootReactiveMember(W[1]);return null},u._rootsAtThis=function(W){if(typeof W==="string")return W==="this";if(!Array.isArray(W)||W[0]!==".")return!1;return this._rootsAtThis(W[1])},u.getComponentRuntime=function(){return`
|
|
27
27
|
// ============================================================================
|
|
28
28
|
// Rip Component Runtime
|
|
29
29
|
// ============================================================================
|
|
@@ -304,26 +304,26 @@ if (typeof globalThis !== 'undefined') {
|
|
|
304
304
|
globalThis.__ripComponent = { __pushComponent, __popComponent, setContext, getContext, hasContext, __clsx, __lis, __reconcile, __transition, __handleComponentError, __Component };
|
|
305
305
|
}
|
|
306
306
|
|
|
307
|
-
`}}function H1(f){let
|
|
308
|
-
`)>=0){let
|
|
309
|
-
`).map((
|
|
310
|
-
`)}let
|
|
311
|
-
`))return" ".repeat(
|
|
312
|
-
`))
|
|
313
|
-
`).map((A,
|
|
314
|
-
`)}else
|
|
315
|
-
`)){
|
|
316
|
-
`)}class $1{static ASSIGNMENT_OPS=new Set(["=","+=","-=","*=","/=","?=","&=","|=","^=","%=","**=","??=","&&=","||=","<<=",">>=",">>>="]);static NUMBER_LITERAL_RE=/^-?\d+(\.\d+)?([eE][+-]?\d+)?$/;static NUMBER_START_RE=/^-?\d/;static GENERATORS={program:"generateProgram","&&":"generateLogicalAnd","||":"generateLogicalOr","+":"generateBinaryOp","-":"generateBinaryOp","*":"generateBinaryOp","/":"generateBinaryOp","%":"generateBinaryOp","**":"generateBinaryOp","==":"generateBinaryOp","===":"generateBinaryOp","!=":"generateBinaryOp","!==":"generateBinaryOp","<":"generateBinaryOp",">":"generateBinaryOp","<=":"generateBinaryOp",">=":"generateBinaryOp","??":"generateBinaryOp","!?":"generateBinaryOp","&":"generateBinaryOp","|":"generateBinaryOp","^":"generateBinaryOp","<<":"generateBinaryOp",">>":"generateBinaryOp",">>>":"generateBinaryOp","%%":"generateModulo","%%=":"generateModuloAssign","//":"generateFloorDiv","//=":"generateFloorDivAssign","..":"generateRange","=":"generateAssignment","+=":"generateAssignment","-=":"generateAssignment","*=":"generateAssignment","/=":"generateAssignment","%=":"generateAssignment","**=":"generateAssignment","&&=":"generateAssignment","||=":"generateAssignment","??=":"generateAssignment","?=":"generateAssignment","&=":"generateAssignment","|=":"generateAssignment","^=":"generateAssignment","<<=":"generateAssignment",">>=":"generateAssignment",">>>=":"generateAssignment","...":"generateRange","!":"generateNot","~":"generateBitwiseNot","++":"generateIncDec","--":"generateIncDec","=~":"generateRegexMatch",instanceof:"generateInstanceof",in:"generateIn",of:"generateOf",typeof:"generateTypeof",delete:"generateDelete",new:"generateNew",array:"generateArray",object:"generateObject",block:"generateBlock",".":"generatePropertyAccess","?.":"generateOptionalProperty","[]":"generateIndexAccess",optindex:"generateOptIndex",optcall:"generateOptCall","regex-index":"generateRegexIndex",def:"generateDef","->":"generateThinArrow","=>":"generateFatArrow",return:"generateReturn",state:"generateState",computed:"generateComputed",readonly:"generateReadonly",effect:"generateEffect",break:"generateBreak",continue:"generateContinue","?":"generateExistential",defined:"generateDefined",presence:"generatePresence","?:":"generateTernary","|>":"generatePipe",loop:"generateLoop","loop-n":"generateLoopN",await:"generateAwait",yield:"generateYield","yield-from":"generateYieldFrom",if:"generateIf","for-in":"generateForIn","for-of":"generateForOf","for-as":"generateForAs",while:"generateWhile",try:"generateTry",throw:"generateThrow",control:"generateControl",switch:"generateSwitch",when:"generateWhen",comprehension:"generateComprehension","object-comprehension":"generateObjectComprehension",class:"generateClass",super:"generateSuper",component:"generateComponent",render:"generateRender",offer:"generateOffer",accept:"generateAccept",enum:"generateEnum",import:"generateImport",export:"generateExport","export-default":"generateExportDefault","export-all":"generateExportAll","export-from":"generateExportFrom","do-iife":"generateDoIIFE",regex:"generateRegex","tagged-template":"generateTaggedTemplate",str:"generateString"};constructor(f={}){if(this.options=f,this.indentLevel=0,this.indentString=" ",this.comprehensionDepth=0,this.dataSection=f.dataSection,this.sourceMap=f.sourceMap||null,f.reactiveVars)this.reactiveVars=new Set(f.reactiveVars)}compile(f){this.programVars=new Set,this.functionVars=new Map,this.helpers=new Set,this.scopeStack=[],this.collectProgramVariables(f);let
|
|
317
|
-
`).length}}recordSubMappings(f,
|
|
318
|
-
`),
|
|
319
|
-
`))return`\`${
|
|
320
|
-
`),A=!1;if($.length>0)u+=$.map((
|
|
321
|
-
`),A=!0;if(this.programVars.size>0){let
|
|
322
|
-
`;u+=`let ${
|
|
323
|
-
`,A=!0}let
|
|
324
|
-
`;u+=I1(),A=!0;let
|
|
325
|
-
`,A=!0;if(this.helpers.has("modulo"))u+=`${
|
|
326
|
-
`,A=!0;if(this.helpers.has("toMatchable"))u+=`${
|
|
307
|
+
`}}function H1(f){let w="",U=f<0?-f<<1|1:f<<1;do{let _=U&31;if(U>>>=5,U>0)_|=32;w+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[_]}while(U>0);return w}class a1{constructor(f,w,U=null){this.file=f,this.source=w,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(f){while(this.lines.length<=f)this.lines.push([])}addName(f){if(this.nameIndex.has(f))return this.nameIndex.get(f);let w=this.names.length;return this.names.push(f),this.nameIndex.set(f,w),w}addMapping(f,w,U,_,u){if(this.ensureLine(f),this.currentLine!==f)this.prevGenCol=0,this.currentLine=f;if(U==null){this.lines[f].push(H1(w-this.prevGenCol)),this.prevGenCol=w;return}this.mappings.push({genLine:f,genCol:w,origLine:U,origCol:_});let $=H1(w-this.prevGenCol);if(this.prevGenCol=w,$+=H1(0),$+=H1(U-this.prevOrigLine),this.prevOrigLine=U,$+=H1(_-this.prevOrigCol),this.prevOrigCol=_,u!=null){let F=this.addName(u);$+=H1(F-this.prevNameIdx),this.prevNameIdx=F}this.lines[f].push($)}toReverseMap(){let f=new Map;for(let w of this.mappings){if(!f.has(w.origLine))f.set(w.origLine,[]);f.get(w.origLine).push({origCol:w.origCol,genLine:w.genLine,genCol:w.genCol})}return f}toJSON(){let f=this.lines.map((U)=>U.join(",")).join(";"),w={version:3,file:this.file,sources:[this.source],names:this.names,mappings:f};if(this.sourceContent!=null)w.sourcesContent=[this.sourceContent];return JSON.stringify(w)}}var t=(f,w)=>f instanceof String?f[w]:void 0,k=(f)=>f instanceof String?f.valueOf():f,R7=new Set(["+","-","*","/","%","//","%%","**","==","!=","<",">","<=",">=","===","!==","&&","||","??","!?","not","&","|","^","<<",">>",">>>","=",".","?.","[]","!","typeof","void","delete","new","...","rest","expansion","optindex","optcall"]),Z7=new Set(["def","class","if","unless","for-in","for-of","for-as","while","until","loop","switch","try","throw"]);function c1(f){if(!Array.isArray(f)||f.length===0)return!1;let w=f[0]?.valueOf?.()??f[0];if(R7.has(w))return!0;return f.length<=4&&!f.some(Array.isArray)}function E1(f){if(Array.isArray(f))return"(???)";if(typeof f==="number")return String(f);if(f===null)return"null";if(f==="")return'""';let w=String(f);if(w[0]==="/"&&w.indexOf(`
|
|
308
|
+
`)>=0){let U=w.match(/\/([gimsuvy]*)$/),_=U?U[1]:"",u=w.slice(1);return u=_?u.slice(0,-_.length-1):u.slice(0,-1),`"/${u.split(`
|
|
309
|
+
`).map((W)=>W.replace(/#.*$/,"").trim()).join("")}/${_}"`}return w}function F1(f,w=0,U=!1){if(!Array.isArray(f))return E1(f);if(U&&f[0]==="program"){let R=f[1],Z=[Array.isArray(R)?"(program":"(program "+E1(R)],z=Array.isArray(R)?1:2;for(let X=z;X<f.length;X++){let H=F1(f[X],2,!1);Z.push(H[0]==="("?" "+H:H)}return Z.push(")"),Z.join(`
|
|
310
|
+
`)}let _=f[0];if(c1(f)&&f.slice(1).every((R)=>!Array.isArray(R)||c1(R))){let A=`(${f.map((Z)=>Array.isArray(Z)?F1(Z,0,!1):E1(Z)).join(" ")})`;if(!A.includes(`
|
|
311
|
+
`))return" ".repeat(w)+A}let $=" ".repeat(w),F;if(Array.isArray(_)){if(F=F1(_,0,!1),F.includes(`
|
|
312
|
+
`))F=F.split(`
|
|
313
|
+
`).map((A,Z)=>Z===0?A:" ".repeat(w+2)+A).join(`
|
|
314
|
+
`)}else F=E1(_);let W=[`${$}(${F}`],Y=_==="block";for(let R=1;R<f.length;R++){let A=f[R];if(!Array.isArray(A))W[W.length-1]+=" "+E1(A);else{let Z=c1(A)&&A.every((z)=>!Array.isArray(z)||c1(z));if(!Y&&Z){let z=F1(A,0,!1);if(!z.includes(`
|
|
315
|
+
`)){W[W.length-1]+=" "+z;continue}}W.push(F1(A,w+2,!1))}}return W[W.length-1]+=")",W.join(`
|
|
316
|
+
`)}class $1{static ASSIGNMENT_OPS=new Set(["=","+=","-=","*=","/=","?=","&=","|=","^=","%=","**=","??=","&&=","||=","<<=",">>=",">>>="]);static NUMBER_LITERAL_RE=/^-?\d+(\.\d+)?([eE][+-]?\d+)?$/;static NUMBER_START_RE=/^-?\d/;static GENERATORS={program:"generateProgram","&&":"generateLogicalAnd","||":"generateLogicalOr","+":"generateBinaryOp","-":"generateBinaryOp","*":"generateBinaryOp","/":"generateBinaryOp","%":"generateBinaryOp","**":"generateBinaryOp","==":"generateBinaryOp","===":"generateBinaryOp","!=":"generateBinaryOp","!==":"generateBinaryOp","<":"generateBinaryOp",">":"generateBinaryOp","<=":"generateBinaryOp",">=":"generateBinaryOp","??":"generateBinaryOp","!?":"generateBinaryOp","&":"generateBinaryOp","|":"generateBinaryOp","^":"generateBinaryOp","<<":"generateBinaryOp",">>":"generateBinaryOp",">>>":"generateBinaryOp","%%":"generateModulo","%%=":"generateModuloAssign","//":"generateFloorDiv","//=":"generateFloorDivAssign","..":"generateRange","=":"generateAssignment","+=":"generateAssignment","-=":"generateAssignment","*=":"generateAssignment","/=":"generateAssignment","%=":"generateAssignment","**=":"generateAssignment","&&=":"generateAssignment","||=":"generateAssignment","??=":"generateAssignment","?=":"generateAssignment","&=":"generateAssignment","|=":"generateAssignment","^=":"generateAssignment","<<=":"generateAssignment",">>=":"generateAssignment",">>>=":"generateAssignment","...":"generateRange","!":"generateNot","~":"generateBitwiseNot","++":"generateIncDec","--":"generateIncDec","=~":"generateRegexMatch",instanceof:"generateInstanceof",in:"generateIn",of:"generateOf",typeof:"generateTypeof",delete:"generateDelete",new:"generateNew",array:"generateArray",object:"generateObject",block:"generateBlock",".":"generatePropertyAccess","?.":"generateOptionalProperty","[]":"generateIndexAccess",optindex:"generateOptIndex",optcall:"generateOptCall","regex-index":"generateRegexIndex",def:"generateDef","->":"generateThinArrow","=>":"generateFatArrow",return:"generateReturn",state:"generateState",computed:"generateComputed",readonly:"generateReadonly",effect:"generateEffect",break:"generateBreak",continue:"generateContinue","?":"generateExistential",defined:"generateDefined",presence:"generatePresence","?:":"generateTernary","|>":"generatePipe",loop:"generateLoop","loop-n":"generateLoopN",await:"generateAwait",yield:"generateYield","yield-from":"generateYieldFrom",if:"generateIf","for-in":"generateForIn","for-of":"generateForOf","for-as":"generateForAs",while:"generateWhile",try:"generateTry",throw:"generateThrow",control:"generateControl",switch:"generateSwitch",when:"generateWhen",comprehension:"generateComprehension","object-comprehension":"generateObjectComprehension",class:"generateClass",super:"generateSuper",component:"generateComponent",render:"generateRender",offer:"generateOffer",accept:"generateAccept",enum:"generateEnum",import:"generateImport",export:"generateExport","export-default":"generateExportDefault","export-all":"generateExportAll","export-from":"generateExportFrom","do-iife":"generateDoIIFE",regex:"generateRegex","tagged-template":"generateTaggedTemplate",str:"generateString"};constructor(f={}){if(this.options=f,this.indentLevel=0,this.indentString=" ",this.comprehensionDepth=0,this.dataSection=f.dataSection,this.sourceMap=f.sourceMap||null,f.reactiveVars)this.reactiveVars=new Set(f.reactiveVars)}compile(f){this.programVars=new Set,this.functionVars=new Map,this.helpers=new Set,this.scopeStack=[],this.collectProgramVariables(f);let w=this.generate(f);if(this.sourceMap)this.buildMappings();return w}buildMappings(){if(!this._stmtEntries)return;let f=this._preambleLines;for(let w of this._stmtEntries){if(w.loc)this.sourceMap.addMapping(f,0,w.loc.r,w.loc.c);if(w.sexpr&&w.loc)this.recordSubMappings(w.code,w.sexpr,f);f+=w.code.split(`
|
|
317
|
+
`).length}}recordSubMappings(f,w,U){let _=w.loc?w.loc.r:0,u=[];this.collectSubExprs(w,u);for(let{name:$,origLine:F,origCol:W}of u){let Y=$.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),R=new RegExp("\\b"+Y+"\\b","g"),A,Z=null,z=1/0,X=F-_;while((A=R.exec(f))!==null){let J=f.substring(0,A.index).split(`
|
|
318
|
+
`),G=U+J.length-1,Q=J[J.length-1].length,q=J.length-1,O=Math.abs(q-X)*1e4+Math.abs(Q-W);if(O<z)z=O,Z={genLine:G,genCol:Q}}if(Z)this.sourceMap.addMapping(Z.genLine,Z.genCol,F,W)}}collectSubExprs(f,w){if(!Array.isArray(f))return;let U=f[0];if(Array.isArray(U)||U!=null&&typeof U!=="string"&&!(U instanceof String)){for(let _=0;_<f.length;_++)if(Array.isArray(f[_]))this.collectSubExprs(f[_],w);return}if(f.loc){U=k(U);let _=null;if(U==="."){if(typeof f[2]==="string")_=f[2]}else if(typeof U==="string"&&/^[=+\-*/%<>!&|?~^]|^\.\.?$|^def$|^class$|^state$|^computed$|^readonly$|^for-/.test(U)){if(typeof f[1]==="string"&&/^[a-zA-Z_$]/.test(f[1]))_=f[1]}else if(typeof U==="string"&&/^[a-zA-Z_$]/.test(U))_=U;if(_)w.push({name:_,origLine:f.loc.r,origCol:f.loc.c})}for(let _=1;_<f.length;_++)if(Array.isArray(f[_]))this.collectSubExprs(f[_],w)}collectProgramVariables(f){if(!Array.isArray(f))return;let[w,...U]=f;if(w=k(w),Array.isArray(w)){f.forEach((_)=>this.collectProgramVariables(_));return}if(w==="export"||w==="export-default"||w==="export-all"||w==="export-from")return;if(w==="state"||w==="computed"){let[_]=U,u=k(_)??_;if(!this.reactiveVars)this.reactiveVars=new Set;this.reactiveVars.add(u);return}if(w==="readonly"){let[_]=U,u=k(_)??_;if(!this.readonlyVars)this.readonlyVars=new Set;this.readonlyVars.add(u);return}if(w==="component")return;if(w==="enum")return;if($1.ASSIGNMENT_OPS.has(w)){let[_,u]=U;if(typeof _==="string"||_ instanceof String){let $=k(_);if(!this.reactiveVars?.has($)&&!this.readonlyVars?.has($))this.programVars.add($)}else if(this.is(_,"array"))this.collectVarsFromArray(_,this.programVars);else if(this.is(_,"object"))this.collectVarsFromObject(_,this.programVars);this.collectProgramVariables(u);return}if(w==="def"||w==="->"||w==="=>"||w==="effect")return;if(w==="if"){let[_,u,$]=U;if(this.collectProgramVariables(_),this.collectProgramVariables(u),$)this.collectProgramVariables($);return}if(w==="try"){if(this.collectProgramVariables(U[0]),U.length>=2&&Array.isArray(U[1])&&U[1].length===2&&U[1][0]!=="block"){let[_,u]=U[1];if(_&&this.is(_,"object"))_.slice(1).forEach(($)=>{if(Array.isArray($)&&$.length===2&&typeof $[1]==="string")this.programVars.add($[1])});else if(_&&this.is(_,"array"))_.slice(1).forEach(($)=>{if(typeof $==="string")this.programVars.add($)});this.collectProgramVariables(u)}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((_)=>this.collectProgramVariables(_))}collectFunctionVariables(f){let w=new Set,U=(_)=>{if(!Array.isArray(_))return;let[u,...$]=_;if(u=k(u),Array.isArray(u)){_.forEach((F)=>U(F));return}if($1.ASSIGNMENT_OPS.has(u)){let[F,W]=$;if(typeof F==="string")w.add(F);else if(this.is(F,"array"))this.collectVarsFromArray(F,w);else if(this.is(F,"object"))this.collectVarsFromObject(F,w);U(W);return}if(u==="def"||u==="->"||u==="=>"||u==="effect")return;if(u==="try"){if(U($[0]),$.length>=2&&Array.isArray($[1])&&$[1].length===2&&$[1][0]!=="block"){let[F,W]=$[1];if(F&&this.is(F,"object"))F.slice(1).forEach((Y)=>{if(Array.isArray(Y)&&Y.length===2&&typeof Y[1]==="string")w.add(Y[1])});else if(F&&this.is(F,"array"))F.slice(1).forEach((Y)=>{if(typeof Y==="string")w.add(Y)});U(W)}if($.length===3)U($[2]);else if($.length===2&&(!Array.isArray($[1])||$[1][0]==="block"))U($[1]);return}$.forEach((F)=>U(F))};return U(f),w}generate(f,w="statement"){if(f instanceof String){if(t(f,"await")===!0)return`await ${k(f)}()`;if(t(f,"predicate"))return`(${k(f)} != null)`;if(t(f,"delimiter")==="///"&&t(f,"heregex")){let W=k(f),Y=W.match(/^\/(.*)\/([gimsuvy]*)$/s);if(Y){let[,R,A]=Y;return`/${this.processHeregex(R)}/${A}`}return W}let F=t(f,"quote");if(F){let W=k(f);if(F==='"""'||F==="'''"){let R=this.extractStringContent(f);return R=R.replace(/`/g,"\\`").replace(/\${/g,"\\${"),`\`${R}\``}if(W[0]===F)return W;let Y=W.slice(1,-1);return`${F}${Y}${F}`}f=k(f)}if(typeof f==="string"){if(f.startsWith('"')||f.startsWith("'")||f.startsWith("`")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive:",f);let F=f.slice(1,-1);if(F.includes(`
|
|
319
|
+
`))return`\`${F.replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}\``;let W=F.includes("'")&&!F.includes('"')?'"':"'",Y=F.replace(new RegExp(W,"g"),`\\${W}`);return`${W}${Y}${W}`}if(this.reactiveVars?.has(f)&&!this.suppressReactiveUnwrap)return`${f}.value`;return f}if(typeof f==="number")return String(f);if(f===null||f===void 0)return"null";if(!Array.isArray(f))throw Error(`Invalid s-expression: ${JSON.stringify(f)}`);let[U,..._]=f,u=t(U,"await");U=k(U);let $=$1.GENERATORS[U];if($)return this[$](U,_,w,f);if(typeof U==="string"&&!U.startsWith('"')&&!U.startsWith("'")){if($1.NUMBER_START_RE.test(U))return U;if(U==="super"&&this.currentMethodName&&this.currentMethodName!=="constructor"){let A=_.map((Z)=>this.unwrap(this.generate(Z,"value"))).join(", ");return`super.${this.currentMethodName}(${A})`}if(w==="statement"&&_.length===1){let A=this.findPostfixConditional(_[0]);if(A){let Z=this.rebuildWithoutConditional(A),z=this.generate(U,"value"),X=this.generate(A.condition,"value"),H=this.generate(Z,"value"),J=`${z}(${H})`;return`if (${X}) ${J}`}}let F=u===!0,W=this.generate(U,"value"),Y=_.map((A)=>this.unwrap(this.generate(A,"value"))).join(", "),R=`${W}(${Y})`;return F?`await ${R}`:R}if(Array.isArray(U)&&typeof U[0]==="string"){if(["=","+=","-=","*=","/=","%=","**=","&&=","||=","??=","if","return","throw"].includes(U[0]))return`(${f.map((Y)=>this.generate(Y,"value")).join(", ")})`}if(Array.isArray(U)){if(U[0]==="."&&(U[2]==="new"||k(U[2])==="new")){let A=U[1],Z=this.generate(A,"value"),z=_.map((H)=>this.unwrap(this.generate(H,"value"))).join(", ");return`new ${Array.isArray(A)?`(${Z})`:Z}(${z})`}if(w==="statement"&&_.length===1){let A=this.findPostfixConditional(_[0]);if(A){let Z=this.rebuildWithoutConditional(A),z=this.generate(U,"value"),X=this.generate(A.condition,"value"),H=this.generate(Z,"value"),J=`${z}(${H})`;return`if (${X}) ${J}`}}let F=!1,W;if(U[0]==="."&&t(U[2],"await")===!0){F=!0;let[A,Z]=U.slice(1),z=this.generate(A,"value");W=`${$1.NUMBER_LITERAL_RE.test(z)||(this.is(A,"object")||this.is(A,"await")||this.is(A,"yield"))?`(${z})`:z}.${k(Z)}`}else W=this.generate(U,"value");let Y=_.map((A)=>this.unwrap(this.generate(A,"value"))).join(", "),R=`${W}(${Y})`;return F?`await ${R}`:R}throw Error(`Unknown s-expression type: ${U}`)}generateProgram(f,w,U,_){let u="",$=[],F=[];for(let X of w){if(!Array.isArray(X)){F.push(X);continue}if(X[0]==="import")$.push(X);else F.push(X)}let W=["def","class","if","for-in","for-of","for-as","while","loop","switch","try"],Y=F.map((X,H)=>{let J=F.length===1&&$.length===0,G=this.is(X,"object"),Q=G&&X.length===2&&Array.isArray(X[1])&&Array.isArray(X[1][1])&&X[1][1][0]==="comprehension",q=this.is(X,"comprehension")||this.is(X,"object-comprehension")||this.is(X,"do-iife"),O=this.programVars.size===0,K=J&&G&&O&&!q&&!Q,E=H===F.length-1&&q,D;if(K)D=`(${this.generate(X,"value")})`;else if(E)D=this.generate(X,"value");else D=this.generate(X,"statement");if(D&&!D.endsWith(";")){let P=Array.isArray(X)?X[0]:null;if(!W.includes(P)||!D.endsWith("}"))D+=";"}let M=Array.isArray(X)?X.loc:null;return{code:D,loc:M,sexpr:Array.isArray(X)?X:null}}),R=Y.map((X)=>X.code).join(`
|
|
320
|
+
`),A=!1;if($.length>0)u+=$.map((X)=>this.addSemicolon(X,this.generate(X,"statement"))).join(`
|
|
321
|
+
`),A=!0;if(this.programVars.size>0){let X=Array.from(this.programVars).sort().join(", ");if(A)u+=`
|
|
322
|
+
`;u+=`let ${X};
|
|
323
|
+
`,A=!0}let Z=this.options.skipPreamble,z=this.options.skipRuntimes;if(!Z){if(A)u+=`
|
|
324
|
+
`;u+=I1(),A=!0;let X=z?"var":"const";if(this.helpers.has("slice"))u+=`${X} slice = [].slice;
|
|
325
|
+
`,A=!0;if(this.helpers.has("modulo"))u+=`${X} modulo = (n, d) => { n = +n; d = +d; return (n % d + d) % d; };
|
|
326
|
+
`,A=!0;if(this.helpers.has("toMatchable"))u+=`${X} toMatchable = (v, allowNewlines) => {
|
|
327
327
|
`,u+=` if (typeof v === "string") return !allowNewlines && /[\\n\\r]/.test(v) ? null : v;
|
|
328
328
|
`,u+=` if (v == null) return "";
|
|
329
329
|
`,u+=` if (typeof v === "number" || typeof v === "bigint" || typeof v === "boolean") return String(v);
|
|
@@ -337,153 +337,153 @@ if (typeof globalThis !== 'undefined') {
|
|
|
337
337
|
`,u+=` }
|
|
338
338
|
`,u+=` return "";
|
|
339
339
|
`,u+=`};
|
|
340
|
-
`,A=!0}if(this.usesReactivity&&!
|
|
340
|
+
`,A=!0}if(this.usesReactivity&&!Z){if(z)u+=`var { __state, __computed, __effect, __batch, __readonly, __setErrorHandler, __handleError, __catchErrors } = globalThis.__rip;
|
|
341
341
|
`;else if(typeof globalThis<"u"&&globalThis.__rip)u+=`const { __state, __computed, __effect, __batch, __readonly, __setErrorHandler, __handleError, __catchErrors } = globalThis.__rip;
|
|
342
|
-
`;else u+=this.getReactiveRuntime();A=!0}if(this.usesTemplates&&!
|
|
342
|
+
`;else u+=this.getReactiveRuntime();A=!0}if(this.usesTemplates&&!Z){if(z)u+=`var { __pushComponent, __popComponent, setContext, getContext, hasContext, __clsx, __lis, __reconcile, __transition, __handleComponentError, __Component } = globalThis.__ripComponent;
|
|
343
343
|
`;else if(typeof globalThis<"u"&&globalThis.__ripComponent)u+=`const { __pushComponent, __popComponent, setContext, getContext, hasContext, __clsx, __lis, __reconcile, __transition, __handleComponentError, __Component } = globalThis.__ripComponent;
|
|
344
|
-
`;else u+=this.getComponentRuntime();A=!0}if(this.dataSection!==null&&this.dataSection!==void 0&&!
|
|
344
|
+
`;else u+=this.getComponentRuntime();A=!0}if(this.dataSection!==null&&this.dataSection!==void 0&&!Z)u+=`var DATA;
|
|
345
345
|
_setDataSection();
|
|
346
346
|
`,A=!0;if(A&&u.length>0)u+=`
|
|
347
347
|
`;if(this._stmtEntries=Y,this._preambleLines=u.length===0?0:u.split(`
|
|
348
|
-
`).length-1,u+=
|
|
348
|
+
`).length-1,u+=R,this.dataSection!==null&&this.dataSection!==void 0)u+=`
|
|
349
349
|
|
|
350
350
|
function _setDataSection() {
|
|
351
351
|
DATA = ${JSON.stringify(this.dataSection)};
|
|
352
|
-
}`;return u}generateBinaryOp(f,_,F,U){if((f==="+"||f==="-")&&_.length===1)return`(${f}${this.generate(_[0],"value")})`;let[u,$]=_;if(f==="*"){let w=u?.valueOf?.()??u;if(typeof w==="string"&&/^["']/.test(w))return`${this.generate(u,"value")}.repeat(${this.generate($,"value")})`}let W=new Set(["<",">","<=",">="]);if(W.has(f)&&Array.isArray(u)){let w=u[0]?.valueOf?.()??u[0];if(W.has(w)){let Y=this.generate(u[1],"value"),Z=this.generate(u[2],"value"),A=this.generate($,"value");return`((${Y} ${w} ${Z}) && (${Z} ${f} ${A}))`}}if(f==="!?"){let w=this.generate(u,"value"),Y=this.generate($,"value");return`(${w} !== undefined ? ${w} : ${Y})`}if(f==="==")f="===";if(f==="!=")f="!==";return`(${this.generate(u,"value")} ${f} ${this.generate($,"value")})`}generateModulo(f,_){let[F,U]=_;return this.helpers.add("modulo"),`modulo(${this.generate(F,"value")}, ${this.generate(U,"value")})`}generateModuloAssign(f,_){let[F,U]=_;this.helpers.add("modulo");let u=this.generate(F,"value"),$=this.generate(U,"value");return`${u} = modulo(${u}, ${$})`}generateFloorDiv(f,_){let[F,U]=_;return`Math.floor(${this.generate(F,"value")} / ${this.generate(U,"value")})`}generateFloorDivAssign(f,_){let[F,U]=_,u=this.generate(F,"value"),$=this.generate(U,"value");return`${u} = Math.floor(${u} / ${$})`}generateAssignment(f,_,F,U){let[u,$]=_,W=f==="?="?"??=":f,w=this._findOptionalInTarget(u);if(w){let X=this.generate(w.guard,"value"),G=this.generate(w.rewritten,"value"),O=this.generate($,"value");if(F==="value")return`(${X} != null ? (${G} ${W} ${O}) : undefined)`;return`if (${X} != null) ${G} ${W} ${O}`}let Y=this.is($,"->")||this.is($,"=>")||this.is($,"def");if(u instanceof String&&t(u,"await")!==void 0&&!Y){let X=t(u,"await")===!0?"!":"&";throw Error(`Cannot use ${X} sigil in variable declaration '${k(u)}'.`)}if(u instanceof String&&t(u,"await")===!0&&Y)this.nextFunctionIsVoid=!0;let Z=this.is(u,"array",0),A=this.is(u,"object",0);if(Z||A){let X=this.generate($,"value");return A&&F==="statement"?`(${X})`:X}if(Array.isArray($)&&W==="="&&$[0]==="control"){let[,X,G,O]=$,K=k(X),P=O[0]==="return",E=this.generate(u,"value"),H=this.generate(G,"value"),M=O.length>1?O[1]:null,I=P?M?`return ${this.generate(M,"value")}`:"return":M?`throw ${this.generate(M,"value")}`:"throw new Error()";if(F==="value"){if(K==="??")return`(() => { const __v = ${H}; if (__v == null) ${I}; return (${E} = __v); })()`;if(K==="||")return`(() => { const __v = ${H}; if (!__v) ${I}; return (${E} = __v); })()`;return`(() => { const __v = ${H}; if (__v) ${I}; return (${E} = __v); })()`}if(K==="??")return`if ((${E} = ${H}) == null) ${I}`;if(K==="||")return`if (!(${E} = ${H})) ${I}`;return`if ((${E} = ${H})) ${I}`}if(this.is(u,"array")){let X=u.slice(1).findIndex((G)=>this.is(G,"...")||G==="...");if(X!==-1&&X<u.length-2){let G=u.slice(1),O=G.slice(X+1),K=O.length;if(K>0){let P=this.generate($,"value"),H=G.slice(0,X).map((B)=>B===","?"":typeof B==="string"?B:this.generate(B,"value")).join(", "),M=O.map((B)=>B===","?"":typeof B==="string"?B:this.generate(B,"value")).join(", ");this.helpers.add("slice"),G.forEach((B)=>{if(B===","||B==="...")return;if(typeof B==="string")this.programVars.add(B);else if(this.is(B,"...")&&typeof B[1]==="string")this.programVars.add(B[1])});let I=G[X],S=this.is(I,"...")?I[1]:null,N=[];if(H)N.push(`[${H}] = ${P}`);if(S)N.push(`[...${S}] = ${P}.slice(${X}, -${K})`);return N.push(`[${M}] = slice.call(${P}, -${K})`),N.join(", ")}}}if(F==="statement"&&f==="="&&Array.isArray($)&&($[0]==="||"||$[0]==="&&")&&$.length===3){let[X,G,O]=$;if(this.is(O,"if")&&O.length===3){let[,K,P]=O,E=Array.isArray(P)&&P.length===1?P[0]:P,H=[X,G,E],M=this.generate(u,"value"),I=this.generate(K,"value"),S=this.generate(H,"value");return`if (${I}) ${M} = ${S}`}}if(F==="statement"&&f==="="&&Array.isArray($)&&$.length===3){let[X,G,O]=$,K=Array.isArray(O)&&O.length===1&&(!Array.isArray(O[0])||O[0][0]!=="block");if(X==="if"&&K){let P=Array.isArray(O)&&O.length===1?O[0]:O,E=this.generate(u,"value"),H=this.unwrapLogical(this.generate(G,"value")),M=this.generate(P,"value");return`if (${H}) ${E} = ${M}`}}let R;if(u instanceof String&&t(u,"await")!==void 0)R=k(u);else if(typeof u==="string"&&this.reactiveVars?.has(u))R=`${u}.value`;else R=this.generate(u,"value");let z=this._componentName;if(this.is($,"component")&&(typeof u==="string"||u instanceof String))this._componentName=k(u);let Q=this.generate($,"value");if(this._componentName=z,!this.is($,"object"))Q=this.unwrap(Q);let J=F==="value",q=F==="statement"&&this.is(u,"object");if(J||q)return`(${R} ${W} ${Q})`;return`${R} ${W} ${Q}`}generatePropertyAccess(f,_,F,U){let[u,$]=_;if(this._atParamMap&&u==="this"){let Z=this._atParamMap.get(k($));if(Z)return Z}let W=this.generate(u,"value"),Y=$1.NUMBER_LITERAL_RE.test(W)||W.startsWith("await ")||(this.is(u,"object")||this.is(u,"yield"))?`(${W})`:W;if(t($,"await")===!0)return`await ${Y}.${k($)}()`;if(t($,"predicate"))return`(${Y}.${k($)} != null)`;return`${Y}.${k($)}`}generateOptionalProperty(f,_){let[F,U]=_;return`${this.generate(F,"value")}?.${U}`}generateRegexIndex(f,_){let[F,U,u]=_;this.helpers.add("toMatchable"),this.programVars.add("_");let $=this.generate(F,"value"),W=this.generate(U,"value"),w=u!==null?this.generate(u,"value"):"0",Y=W.includes("/m")?", true":"";return`(_ = toMatchable(${$}${Y}).match(${W})) && _[${w}]`}generateIndexAccess(f,_){let[F,U]=_;if(this.is(U,"..")||this.is(U,"...")){let u=U[0]==="..",$=this.generate(F,"value"),[W,w]=U.slice(1),Y=(z)=>{if(z===null)return null;let Q=k(z)??z;if(typeof Q==="number")return Q;if(typeof Q==="string"&&/^\d+$/.test(Q))return+Q;if(Array.isArray(z)&&z[0]==="-"&&z.length===2){let D=k(z[1])??z[1];if(typeof D==="number")return-D;if(typeof D==="string"&&/^\d+$/.test(D))return-D}return null},Z=(z,Q,D)=>{let J=Y(D);if(J!==null&&J!==-1)return`${$}.slice(${z}, ${J+1})`;return`${$}.slice(${z}, +${Q} + 1 || 9e9)`};if(W===null&&w===null)return`${$}.slice()`;if(W===null){if(u&&this.is(w,"-",1)&&(k(w[1])??w[1])==1)return`${$}.slice(0)`;let z=this.generate(w,"value");return u?Z("0",z,w):`${$}.slice(0, ${z})`}if(w===null)return`${$}.slice(${this.generate(W,"value")})`;let A=this.generate(W,"value");if(u&&this.is(w,"-",1)&&(k(w[1])??w[1])==1)return`${$}.slice(${A})`;let R=this.generate(w,"value");return u?Z(A,R,w):`${$}.slice(${A}, ${R})`}if(this.is(U,"-",1)){let u=k(U[1])??U[1];if(typeof u==="number"||typeof u==="string"&&/^\d+$/.test(u))return`${this.generate(F,"value")}.at(-${u})`}return`${this.generate(F,"value")}[${this.unwrap(this.generate(U,"value"))}]`}generateOptIndex(f,_){let[F,U]=_;if(this.is(U,"-",1)){let u=k(U[1])??U[1];if(typeof u==="number"||typeof u==="string"&&/^\d+$/.test(u))return`${this.generate(F,"value")}?.at(-${u})`}return`${this.generate(F,"value")}?.[${this.generate(U,"value")}]`}generateOptCall(f,_){let[F,...U]=_;return`${this.generate(F,"value")}?.(${U.map((u)=>this.generate(u,"value")).join(", ")})`}generateDef(f,_,F,U){let[u,$,W]=_,w=t(u,"await")===!0,Y=k(u),Z=this.generateParamList($),A=this.generateFunctionBody(W,$,w),R=this.containsAwait(W),z=this.containsYield(W);return`${R?"async ":""}function${z?"*":""} ${Y}(${Z}) ${A}`}generateThinArrow(f,_,F,U){let[u,$]=_;if((!u||Array.isArray(u)&&u.length===0)&&this.containsIt($))u=["it"];let W=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let w=this.generateParamList(u),Y=this.generateFunctionBody($,u,W),Z=this.containsAwait($),A=this.containsYield($),R=`${Z?"async ":""}function${A?"*":""}(${w}) ${Y}`;return F==="value"?`(${R})`:R}generateFatArrow(f,_,F,U){let[u,$]=_;if((!u||Array.isArray(u)&&u.length===0)&&this.containsIt($))u=["it"];let W=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let w=this.generateParamList(u),Z=u.length===1&&typeof u[0]==="string"&&!w.includes("=")&&!w.includes("...")&&!w.includes("[")&&!w.includes("{")?w:`(${w})`,R=this.containsAwait($)?"async ":"";if(!W){if(this.is($,"block")&&$.length===2){let Q=$[1],D=Array.isArray(Q)?Q[0]:null;if(D!=="return"&&!Y7.has(D)){let J=this.generate(Q,"value");if(J[0]==="{")J=`(${J})`;return`${R}${Z} => ${J}`}}if(!Array.isArray($)||$[0]!=="block"){let Q=this.generate($,"value");if(Q[0]==="{")Q=`(${Q})`;return`${R}${Z} => ${Q}`}}let z=this.generateFunctionBody($,u,W);return`${R}${Z} => ${z}`}generateReturn(f,_,F,U){if(_.length===0)return"return";let[u]=_;if(this.sideEffectOnly&&!(this.is(u,"->")||this.is(u,"=>")))throw Error("Cannot return a value from a void function (declared with !)");if(this.is(u,"if")){let[,$,W,...w]=u;if(w.length===0){let Y=Array.isArray(W)&&W.length===1?W[0]:W;return`if (${this.generate($,"value")}) return ${this.generate(Y,"value")}`}}if(this.is(u,"new")&&Array.isArray(u[1])&&u[1][0]==="if"){let[,$,W]=u[1],w=Array.isArray(W)&&W.length===1?W[0]:W;return`if (${this.generate($,"value")}) return ${this.generate(["new",w],"value")}`}return`return ${this.generate(u,"value")}`}generateState(f,_){let[F,U]=_;this.usesReactivity=!0;let u=k(F)??F;if(!this.reactiveVars)this.reactiveVars=new Set;return this.reactiveVars.add(u),`const ${u} = __state(${this.generate(U,"value")})`}generateComputed(f,_){let[F,U]=_;if(this.usesReactivity=!0,!this.reactiveVars)this.reactiveVars=new Set;let u=k(F)??F;if(this.reactiveVars.add(u),this.is(U,"block")&&U.length>2)return`const ${u} = __computed(() => ${this.generateFunctionBody(U)})`;return`const ${u} = __computed(() => ${this.generate(U,"value")})`}generateReadonly(f,_){let[F,U]=_;return`const ${k(F)??F} = ${this.generate(U,"value")}`}generateEffect(f,_){let[F,U]=_;this.usesReactivity=!0;let u;if(this.is(U,"block"))u=this.generateFunctionBody(U);else if(this.is(U,"->")||this.is(U,"=>")){let W=this.generate(U,"value");if(F)return`const ${k(F)??this.generate(F,"value")} = __effect(${W})`;return`__effect(${W})`}else u=`{ ${this.generate(U,"value")}; }`;let $=`__effect(() => ${u})`;if(F)return`const ${k(F)??this.generate(F,"value")} = ${$}`;return $}generateBreak(){return"break"}generateContinue(){return"continue"}generateExistential(f,_){return`(${this.generate(_[0],"value")} != null)`}generateDefined(f,_){return`(${this.generate(_[0],"value")} !== undefined)`}generatePresence(f,_){return`(${this.generate(_[0],"value")} ? true : undefined)`}generateTernary(f,_,F){let[U,u,$]=_;if((u?.[0]?.valueOf?.()??u?.[0])==="="&&Array.isArray(u)){let w=this.generate(u[1],"value"),Y=this.generate(u[2],"value"),Z=this.generate($,"value");return`${w} = (${this.unwrap(this.generate(U,"value"))} ? ${Y} : ${Z})`}return`(${this.unwrap(this.generate(U,"value"))} ? ${this.generate(u,"value")} : ${this.generate($,"value")})`}generatePipe(f,_){let[F,U]=_,u=this.generate(F,"value");if(Array.isArray(U)&&U.length>1){let $=U[0];if(Array.isArray($)||typeof $==="string"&&/^[a-zA-Z_$]/.test($)){let w=this.generate($,"value"),Y=U.slice(1).map((Z)=>this.generate(Z,"value"));return`${w}(${u}, ${Y.join(", ")})`}}return`${this.generate(U,"value")}(${u})`}generateLoop(f,_){return`while (true) ${this.generateLoopBody(_[0])}`}generateLoopN(f,_){let[F,U]=_;return`for (let it = 0; it < ${this.generate(F,"value")}; it++) ${this.generateLoopBody(U)}`}generateAwait(f,_){return`await ${this.generate(_[0],"value")}`}generateYield(f,_){return _.length===0?"yield":`yield ${this.generate(_[0],"value")}`}generateYieldFrom(f,_){return`yield* ${this.generate(_[0],"value")}`}generateIf(f,_,F,U){let[u,$,...W]=_;return F==="value"?this.generateIfAsExpression(u,$,W):this.generateIfAsStatement(u,$,W)}generateForIn(f,_,F,U){let[u,$,W,w,Y]=_;if(F==="value"&&this.comprehensionDepth===0){let q=["for-in",u,$,W];return this.generate(["comprehension",Y,[q],w?[w]:[]],F)}let Z=Array.isArray(u)?u:[u],A=Z.length===0,[R,z]=A?["_i",null]:Z,Q=this.is(R,"array")||this.is(R,"object")?this.generateDestructuringPattern(R):R;if(W&&W!==null){let q=this.generate($,"value"),X=z||"_i",G=this.generate(W,"value"),O=this.is(W,"-",1),K=O&&(W[1]==="1"||W[1]===1||k(W[1])==="1"),P=!O&&(W==="1"||W===1||k(W)==="1"),E;if(K)E=`for (let ${X} = ${q}.length - 1; ${X} >= 0; ${X}--) `;else if(P)E=`for (let ${X} = 0; ${X} < ${q}.length; ${X}++) `;else if(O)E=`for (let ${X} = ${q}.length - 1; ${X} >= 0; ${X} += ${G}) `;else E=`for (let ${X} = 0; ${X} < ${q}.length; ${X} += ${G}) `;if(this.is(Y,"block")){let H=Y.slice(1);this.indentLevel++;let M=[];if(!A)M.push(`const ${Q} = ${q}[${X}];`);if(w)M.push(`if (${this.generate(w,"value")}) {`),this.indentLevel++,M.push(...this.formatStatements(H)),this.indentLevel--,M.push(this.indent()+"}");else M.push(...H.map((I)=>this.addSemicolon(I,this.generate(I,"statement"))));return this.indentLevel--,E+`{
|
|
353
|
-
${M.map((
|
|
352
|
+
}`;return u}generateBinaryOp(f,w,U,_){if((f==="+"||f==="-")&&w.length===1)return`(${f}${this.generate(w[0],"value")})`;let[u,$]=w;if(f==="*"){let W=u?.valueOf?.()??u;if(typeof W==="string"&&/^["']/.test(W))return`${this.generate(u,"value")}.repeat(${this.generate($,"value")})`}let F=new Set(["<",">","<=",">="]);if(F.has(f)&&Array.isArray(u)){let W=u[0]?.valueOf?.()??u[0];if(F.has(W)){let Y=this.generate(u[1],"value"),R=this.generate(u[2],"value"),A=this.generate($,"value");return`((${Y} ${W} ${R}) && (${R} ${f} ${A}))`}}if(f==="!?"){let W=this.generate(u,"value"),Y=this.generate($,"value");return`(${W} !== undefined ? ${W} : ${Y})`}if(f==="==")f="===";if(f==="!=")f="!==";return`(${this.generate(u,"value")} ${f} ${this.generate($,"value")})`}generateModulo(f,w){let[U,_]=w;return this.helpers.add("modulo"),`modulo(${this.generate(U,"value")}, ${this.generate(_,"value")})`}generateModuloAssign(f,w){let[U,_]=w;this.helpers.add("modulo");let u=this.generate(U,"value"),$=this.generate(_,"value");return`${u} = modulo(${u}, ${$})`}generateFloorDiv(f,w){let[U,_]=w;return`Math.floor(${this.generate(U,"value")} / ${this.generate(_,"value")})`}generateFloorDivAssign(f,w){let[U,_]=w,u=this.generate(U,"value"),$=this.generate(_,"value");return`${u} = Math.floor(${u} / ${$})`}generateAssignment(f,w,U,_){let[u,$]=w,F=f==="?="?"??=":f,W=this._findOptionalInTarget(u);if(W){let Q=this.generate(W.guard,"value"),q=this.generate(W.rewritten,"value"),O=this.generate($,"value");if(U==="value")return`(${Q} != null ? (${q} ${F} ${O}) : undefined)`;return`if (${Q} != null) ${q} ${F} ${O}`}let Y=this.is($,"->")||this.is($,"=>")||this.is($,"def");if(u instanceof String&&t(u,"await")!==void 0&&!Y){let Q=t(u,"await")===!0?"!":"&";throw Error(`Cannot use ${Q} sigil in variable declaration '${k(u)}'.`)}if(u instanceof String&&t(u,"await")===!0&&Y)this.nextFunctionIsVoid=!0;let R=this.is(u,"array",0),A=this.is(u,"object",0);if(R||A){let Q=this.generate($,"value");return A&&U==="statement"?`(${Q})`:Q}if(Array.isArray($)&&F==="="&&$[0]==="control"){let[,Q,q,O]=$,K=k(Q),I=O[0]==="return",E=this.generate(u,"value"),D=this.generate(q,"value"),M=O.length>1?O[1]:null,P=I?M?`return ${this.generate(M,"value")}`:"return":M?`throw ${this.generate(M,"value")}`:"throw new Error()";if(U==="value"){if(K==="??")return`(() => { const __v = ${D}; if (__v == null) ${P}; return (${E} = __v); })()`;if(K==="||")return`(() => { const __v = ${D}; if (!__v) ${P}; return (${E} = __v); })()`;return`(() => { const __v = ${D}; if (__v) ${P}; return (${E} = __v); })()`}if(K==="??")return`if ((${E} = ${D}) == null) ${P}`;if(K==="||")return`if (!(${E} = ${D})) ${P}`;return`if ((${E} = ${D})) ${P}`}if(this.is(u,"array")){let Q=u.slice(1).findIndex((q)=>this.is(q,"...")||q==="...");if(Q!==-1&&Q<u.length-2){let q=u.slice(1),O=q.slice(Q+1),K=O.length;if(K>0){let I=this.generate($,"value"),D=q.slice(0,Q).map((B)=>B===","?"":typeof B==="string"?B:this.generate(B,"value")).join(", "),M=O.map((B)=>B===","?"":typeof B==="string"?B:this.generate(B,"value")).join(", ");this.helpers.add("slice"),q.forEach((B)=>{if(B===","||B==="...")return;if(typeof B==="string")this.programVars.add(B);else if(this.is(B,"...")&&typeof B[1]==="string")this.programVars.add(B[1])});let P=q[Q],S=this.is(P,"...")?P[1]:null,N=[];if(D)N.push(`[${D}] = ${I}`);if(S)N.push(`[...${S}] = ${I}.slice(${Q}, -${K})`);return N.push(`[${M}] = slice.call(${I}, -${K})`),N.join(", ")}}}if(U==="statement"&&f==="="&&Array.isArray($)&&($[0]==="||"||$[0]==="&&")&&$.length===3){let[Q,q,O]=$;if(this.is(O,"if")&&O.length===3){let[,K,I]=O,E=Array.isArray(I)&&I.length===1?I[0]:I,D=[Q,q,E],M=this.generate(u,"value"),P=this.generate(K,"value"),S=this.generate(D,"value");return`if (${P}) ${M} = ${S}`}}if(U==="statement"&&f==="="&&Array.isArray($)&&$.length===3){let[Q,q,O]=$,K=Array.isArray(O)&&O.length===1&&(!Array.isArray(O[0])||O[0][0]!=="block");if(Q==="if"&&K){let I=Array.isArray(O)&&O.length===1?O[0]:O,E=this.generate(u,"value"),D=this.unwrapLogical(this.generate(q,"value")),M=this.generate(I,"value");return`if (${D}) ${E} = ${M}`}}let Z;if(u instanceof String&&t(u,"await")!==void 0)Z=k(u);else if(typeof u==="string"&&this.reactiveVars?.has(u))Z=`${u}.value`;else Z=this.generate(u,"value");let z=this._componentName;if(this.is($,"component")&&(typeof u==="string"||u instanceof String))this._componentName=k(u);let X=this.generate($,"value");if(this._componentName=z,!this.is($,"object"))X=this.unwrap(X);let J=U==="value",G=U==="statement"&&this.is(u,"object");if(J||G)return`(${Z} ${F} ${X})`;return`${Z} ${F} ${X}`}generatePropertyAccess(f,w,U,_){let[u,$]=w;if(this._atParamMap&&u==="this"){let R=this._atParamMap.get(k($));if(R)return R}let F=this.generate(u,"value"),Y=$1.NUMBER_LITERAL_RE.test(F)||F.startsWith("await ")||(this.is(u,"object")||this.is(u,"yield"))?`(${F})`:F;if(t($,"await")===!0)return`await ${Y}.${k($)}()`;if(t($,"predicate"))return`(${Y}.${k($)} != null)`;return`${Y}.${k($)}`}generateOptionalProperty(f,w){let[U,_]=w;return`${this.generate(U,"value")}?.${_}`}generateRegexIndex(f,w){let[U,_,u]=w;this.helpers.add("toMatchable"),this.programVars.add("_");let $=this.generate(U,"value"),F=this.generate(_,"value"),W=u!==null?this.generate(u,"value"):"0",Y=F.includes("/m")?", true":"";return`(_ = toMatchable(${$}${Y}).match(${F})) && _[${W}]`}generateIndexAccess(f,w){let[U,_]=w;if(this.is(_,"..")||this.is(_,"...")){let u=_[0]==="..",$=this.generate(U,"value"),[F,W]=_.slice(1),Y=(z)=>{if(z===null)return null;let X=k(z)??z;if(typeof X==="number")return X;if(typeof X==="string"&&/^\d+$/.test(X))return+X;if(Array.isArray(z)&&z[0]==="-"&&z.length===2){let H=k(z[1])??z[1];if(typeof H==="number")return-H;if(typeof H==="string"&&/^\d+$/.test(H))return-H}return null},R=(z,X,H)=>{let J=Y(H);if(J!==null&&J!==-1)return`${$}.slice(${z}, ${J+1})`;return`${$}.slice(${z}, +${X} + 1 || 9e9)`};if(F===null&&W===null)return`${$}.slice()`;if(F===null){if(u&&this.is(W,"-",1)&&(k(W[1])??W[1])==1)return`${$}.slice(0)`;let z=this.generate(W,"value");return u?R("0",z,W):`${$}.slice(0, ${z})`}if(W===null)return`${$}.slice(${this.generate(F,"value")})`;let A=this.generate(F,"value");if(u&&this.is(W,"-",1)&&(k(W[1])??W[1])==1)return`${$}.slice(${A})`;let Z=this.generate(W,"value");return u?R(A,Z,W):`${$}.slice(${A}, ${Z})`}if(this.is(_,"-",1)){let u=k(_[1])??_[1];if(typeof u==="number"||typeof u==="string"&&/^\d+$/.test(u))return`${this.generate(U,"value")}.at(-${u})`}return`${this.generate(U,"value")}[${this.unwrap(this.generate(_,"value"))}]`}generateOptIndex(f,w){let[U,_]=w;if(this.is(_,"-",1)){let u=k(_[1])??_[1];if(typeof u==="number"||typeof u==="string"&&/^\d+$/.test(u))return`${this.generate(U,"value")}?.at(-${u})`}return`${this.generate(U,"value")}?.[${this.generate(_,"value")}]`}generateOptCall(f,w){let[U,..._]=w;return`${this.generate(U,"value")}?.(${_.map((u)=>this.generate(u,"value")).join(", ")})`}generateDef(f,w,U,_){let[u,$,F]=w,W=t(u,"await")===!0,Y=k(u),R=this.generateParamList($),A=this.generateFunctionBody(F,$,W),Z=this.containsAwait(F),z=this.containsYield(F);return`${Z?"async ":""}function${z?"*":""} ${Y}(${R}) ${A}`}generateThinArrow(f,w,U,_){let[u,$]=w;if((!u||Array.isArray(u)&&u.length===0)&&this.containsIt($))u=["it"];let F=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let W=this.generateParamList(u),Y=this.generateFunctionBody($,u,F),R=this.containsAwait($),A=this.containsYield($),Z=`${R?"async ":""}function${A?"*":""}(${W}) ${Y}`;return U==="value"?`(${Z})`:Z}generateFatArrow(f,w,U,_){let[u,$]=w;if((!u||Array.isArray(u)&&u.length===0)&&this.containsIt($))u=["it"];let F=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let W=this.generateParamList(u),R=u.length===1&&typeof u[0]==="string"&&!W.includes("=")&&!W.includes("...")&&!W.includes("[")&&!W.includes("{")?W:`(${W})`,Z=this.containsAwait($)?"async ":"";if(!F){if(this.is($,"block")&&$.length===2){let X=$[1],H=Array.isArray(X)?X[0]:null;if(H!=="return"&&!Z7.has(H)){let J=this.generate(X,"value");if(J[0]==="{")J=`(${J})`;return`${Z}${R} => ${J}`}}if(!Array.isArray($)||$[0]!=="block"){let X=this.generate($,"value");if(X[0]==="{")X=`(${X})`;return`${Z}${R} => ${X}`}}let z=this.generateFunctionBody($,u,F);return`${Z}${R} => ${z}`}generateReturn(f,w,U,_){if(w.length===0)return"return";let[u]=w;if(this.sideEffectOnly&&!(this.is(u,"->")||this.is(u,"=>")))throw Error("Cannot return a value from a void function (declared with !)");if(this.is(u,"if")){let[,$,F,...W]=u;if(W.length===0){let Y=Array.isArray(F)&&F.length===1?F[0]:F;return`if (${this.generate($,"value")}) return ${this.generate(Y,"value")}`}}if(this.is(u,"new")&&Array.isArray(u[1])&&u[1][0]==="if"){let[,$,F]=u[1],W=Array.isArray(F)&&F.length===1?F[0]:F;return`if (${this.generate($,"value")}) return ${this.generate(["new",W],"value")}`}return`return ${this.generate(u,"value")}`}generateState(f,w){let[U,_]=w;this.usesReactivity=!0;let u=k(U)??U;if(!this.reactiveVars)this.reactiveVars=new Set;return this.reactiveVars.add(u),`const ${u} = __state(${this.generate(_,"value")})`}generateComputed(f,w){let[U,_]=w;if(this.usesReactivity=!0,!this.reactiveVars)this.reactiveVars=new Set;let u=k(U)??U;if(this.reactiveVars.add(u),this.is(_,"block")&&_.length>2)return`const ${u} = __computed(() => ${this.generateFunctionBody(_)})`;return`const ${u} = __computed(() => ${this.generate(_,"value")})`}generateReadonly(f,w){let[U,_]=w;return`const ${k(U)??U} = ${this.generate(_,"value")}`}generateEffect(f,w){let[U,_]=w;this.usesReactivity=!0;let u;if(this.is(_,"block"))u=this.generateFunctionBody(_);else if(this.is(_,"->")||this.is(_,"=>")){let F=this.generate(_,"value");if(U)return`const ${k(U)??this.generate(U,"value")} = __effect(${F})`;return`__effect(${F})`}else u=`{ ${this.generate(_,"value")}; }`;let $=`__effect(() => ${u})`;if(U)return`const ${k(U)??this.generate(U,"value")} = ${$}`;return $}generateBreak(){return"break"}generateContinue(){return"continue"}generateExistential(f,w){return`(${this.generate(w[0],"value")} != null)`}generateDefined(f,w){return`(${this.generate(w[0],"value")} !== undefined)`}generatePresence(f,w){return`(${this.generate(w[0],"value")} ? true : undefined)`}generateTernary(f,w,U){let[_,u,$]=w;if((u?.[0]?.valueOf?.()??u?.[0])==="="&&Array.isArray(u)){let W=this.generate(u[1],"value"),Y=this.generate(u[2],"value"),R=this.generate($,"value");return`${W} = (${this.unwrap(this.generate(_,"value"))} ? ${Y} : ${R})`}return`(${this.unwrap(this.generate(_,"value"))} ? ${this.generate(u,"value")} : ${this.generate($,"value")})`}generatePipe(f,w){let[U,_]=w,u=this.generate(U,"value");if(Array.isArray(_)&&_.length>1){let $=_[0];if(Array.isArray($)||typeof $==="string"&&/^[a-zA-Z_$]/.test($)){let W=this.generate($,"value"),Y=_.slice(1).map((R)=>this.generate(R,"value"));return`${W}(${u}, ${Y.join(", ")})`}}return`${this.generate(_,"value")}(${u})`}generateLoop(f,w){return`while (true) ${this.generateLoopBody(w[0])}`}generateLoopN(f,w){let[U,_]=w;return`for (let it = 0; it < ${this.generate(U,"value")}; it++) ${this.generateLoopBody(_)}`}generateAwait(f,w){return`await ${this.generate(w[0],"value")}`}generateYield(f,w){return w.length===0?"yield":`yield ${this.generate(w[0],"value")}`}generateYieldFrom(f,w){return`yield* ${this.generate(w[0],"value")}`}generateIf(f,w,U,_){let[u,$,...F]=w;return U==="value"?this.generateIfAsExpression(u,$,F):this.generateIfAsStatement(u,$,F)}generateForIn(f,w,U,_){let[u,$,F,W,Y]=w;if(U==="value"&&this.comprehensionDepth===0){let G=["for-in",u,$,F];return this.generate(["comprehension",Y,[G],W?[W]:[]],U)}let R=Array.isArray(u)?u:[u],A=R.length===0,[Z,z]=A?["_i",null]:R,X=this.is(Z,"array")||this.is(Z,"object")?this.generateDestructuringPattern(Z):Z;if(F&&F!==null){let G=this.generate($,"value"),Q=z||"_i",q=this.generate(F,"value"),O=this.is(F,"-",1),K=O&&(F[1]==="1"||F[1]===1||k(F[1])==="1"),I=!O&&(F==="1"||F===1||k(F)==="1"),E;if(K)E=`for (let ${Q} = ${G}.length - 1; ${Q} >= 0; ${Q}--) `;else if(I)E=`for (let ${Q} = 0; ${Q} < ${G}.length; ${Q}++) `;else if(O)E=`for (let ${Q} = ${G}.length - 1; ${Q} >= 0; ${Q} += ${q}) `;else E=`for (let ${Q} = 0; ${Q} < ${G}.length; ${Q} += ${q}) `;if(this.is(Y,"block")){let D=Y.slice(1);this.indentLevel++;let M=[];if(!A)M.push(`const ${X} = ${G}[${Q}];`);if(W)M.push(`if (${this.generate(W,"value")}) {`),this.indentLevel++,M.push(...this.formatStatements(D)),this.indentLevel--,M.push(this.indent()+"}");else M.push(...D.map((P)=>this.addSemicolon(P,this.generate(P,"statement"))));return this.indentLevel--,E+`{
|
|
353
|
+
${M.map((P)=>this.indent()+P).join(`
|
|
354
354
|
`)}
|
|
355
|
-
${this.indent()}}`}if(A)return
|
|
356
|
-
`,this.indentLevel++,
|
|
357
|
-
`,
|
|
358
|
-
`,this.indentLevel++,
|
|
355
|
+
${this.indent()}}`}if(A)return W?E+`{ if (${this.generate(W,"value")}) ${this.generate(Y,"statement")}; }`:E+`{ ${this.generate(Y,"statement")}; }`;return W?E+`{ const ${X} = ${G}[${Q}]; if (${this.generate(W,"value")}) ${this.generate(Y,"statement")}; }`:E+`{ const ${X} = ${G}[${Q}]; ${this.generate(Y,"statement")}; }`}if(z){let G=this.generate($,"value"),Q=`for (let ${z} = 0; ${z} < ${G}.length; ${z}++) `;if(this.is(Y,"block")){if(Q+=`{
|
|
356
|
+
`,this.indentLevel++,Q+=this.indent()+`const ${X} = ${G}[${z}];
|
|
357
|
+
`,W)Q+=this.indent()+`if (${this.unwrap(this.generate(W,"value"))}) {
|
|
358
|
+
`,this.indentLevel++,Q+=this.formatStatements(Y.slice(1)).join(`
|
|
359
359
|
`)+`
|
|
360
|
-
`,this.indentLevel--,
|
|
361
|
-
`;else
|
|
360
|
+
`,this.indentLevel--,Q+=this.indent()+`}
|
|
361
|
+
`;else Q+=this.formatStatements(Y.slice(1)).join(`
|
|
362
362
|
`)+`
|
|
363
|
-
`;this.indentLevel--,
|
|
364
|
-
${
|
|
363
|
+
`;this.indentLevel--,Q+=this.indent()+"}"}else Q+=W?`{ const ${X} = ${G}[${z}]; if (${this.unwrap(this.generate(W,"value"))}) ${this.generate(Y,"statement")}; }`:`{ const ${X} = ${G}[${z}]; ${this.generate(Y,"statement")}; }`;return Q}let H=Array.isArray($)&&$[0];if(H instanceof String)H=k(H);if(H===".."||H==="..."){let G=H==="...",[Q,q]=$.slice(1),O=(K)=>typeof K==="number"||typeof K==="string"&&!K.includes("(")||K instanceof String&&!k(K).includes("(")||this.is(K,".");if(O(Q)&&O(q)){let K=this.generate(Q,"value"),I=this.generate(q,"value"),E=G?"<":"<=",D=F?`${X} += ${this.generate(F,"value")}`:`${X}++`,M=`for (let ${X} = ${K}; ${X} ${E} ${I}; ${D}) `;return M+=W?this.generateLoopBodyWithGuard(Y,W):this.generateLoopBody(Y),M}}let J=`for (const ${X} of ${this.generate($,"value")}) `;return J+=W?this.generateLoopBodyWithGuard(Y,W):this.generateLoopBody(Y),J}generateForOf(f,w,U,_){let[u,$,F,W,Y]=w;if(U==="value"&&this.comprehensionDepth===0){let X=["for-of",u,$,F];return this.generate(["comprehension",Y,[X],W?[W]:[]],U)}let[R,A]=Array.isArray(u)?u:[u],Z=this.generate($,"value"),z=`for (const ${R} in ${Z}) `;if(F&&!A&&!W){if(this.is(Y,"block")){this.indentLevel++;let X=[`if (!Object.hasOwn(${Z}, ${R})) continue;`,...Y.slice(1).map((H)=>this.addSemicolon(H,this.generate(H,"statement")))];return this.indentLevel--,z+`{
|
|
364
|
+
${X.map((H)=>this.indent()+H).join(`
|
|
365
365
|
`)}
|
|
366
|
-
${this.indent()}}`}return z+`{ if (!Object.hasOwn(${
|
|
367
|
-
${J.map((
|
|
366
|
+
${this.indent()}}`}return z+`{ if (!Object.hasOwn(${Z}, ${R})) continue; ${this.generate(Y,"statement")}; }`}if(A){if(this.is(Y,"block")){let H=Y.slice(1);this.indentLevel++;let J=[];if(F)J.push(`if (!Object.hasOwn(${Z}, ${R})) continue;`);if(J.push(`const ${A} = ${Z}[${R}];`),W)J.push(`if (${this.generate(W,"value")}) {`),this.indentLevel++,J.push(...H.map((G)=>this.addSemicolon(G,this.generate(G,"statement")))),this.indentLevel--,J.push(this.indent()+"}");else J.push(...H.map((G)=>this.addSemicolon(G,this.generate(G,"statement"))));return this.indentLevel--,z+`{
|
|
367
|
+
${J.map((G)=>this.indent()+G).join(`
|
|
368
368
|
`)}
|
|
369
|
-
${this.indent()}}`}let
|
|
370
|
-
${
|
|
369
|
+
${this.indent()}}`}let X="";if(F)X+=`if (!Object.hasOwn(${Z}, ${R})) continue; `;if(X+=`const ${A} = ${Z}[${R}]; `,W)X+=`if (${this.generate(W,"value")}) `;return X+=`${this.generate(Y,"statement")};`,z+`{ ${X} }`}return z+=W?this.generateLoopBodyWithGuard(Y,W):this.generateLoopBody(Y),z}generateForAs(f,w,U,_){let u=Array.isArray(w[0])?w[0]:[w[0]],[$]=u,F=w[1],W=w[2],Y=w[3],R=w[4],A=!1,Z=[];if(this.is($,"array")){let G=$.slice(1),Q=G.findIndex((q)=>this.is(q,"...")||q==="...");if(Q!==-1&&Q<G.length-1){A=!0;let q=G.slice(Q+1),O=q.length,K=G.slice(0,Q),I=G[Q],E=this.is(I,"...")?I[1]:"_rest",D=K.map((S)=>S===","?"":typeof S==="string"?S:this.generate(S,"value")).join(", "),M=D?`${D}, ...${E}`:`...${E}`,P=q.map((S)=>S===","?"":typeof S==="string"?S:this.generate(S,"value")).join(", ");Z.push(`[${M}] = _item`),Z.push(`[${P}] = ${E}.splice(-${O})`),this.helpers.add("slice"),G.forEach((S)=>{if(S===","||S==="...")return;if(typeof S==="string")this.programVars.add(S);else if(this.is(S,"...")&&typeof S[1]==="string")this.programVars.add(S[1])})}}let z=this.generate(F,"value"),X=W?"await ":"",H;if(A)H="_item";else if(this.is($,"array")||this.is($,"object"))H=this.generateDestructuringPattern($);else H=$;let J=`for ${X}(const ${H} of ${z}) `;if(A&&Z.length>0){let G=this.unwrapBlock(R),Q=this.withIndent(()=>[...Z.map((q)=>this.indent()+q+";"),...this.formatStatements(G)]);J+=`{
|
|
370
|
+
${Q.join(`
|
|
371
371
|
`)}
|
|
372
|
-
${this.indent()}}`}else J+=Y?this.generateLoopBodyWithGuard(
|
|
373
|
-
${this.withIndent(()=>this.formatStatements(
|
|
372
|
+
${this.indent()}}`}else J+=Y?this.generateLoopBodyWithGuard(R,Y):this.generateLoopBody(R);return J}generateWhile(f,w){let U=w[0],_=w.length===3?w[1]:null,u=w[w.length-1];return`while (${this.unwrap(this.generate(U,"value"))}) `+(_?this.generateLoopBodyWithGuard(u,_):this.generateLoopBody(u))}generateRange(f,w){if(f==="..."){if(w.length===1)return`...${this.generate(w[0],"value")}`;let[F,W]=w,Y=this.generate(F,"value"),R=this.generate(W,"value");return`((s, e) => Array.from({length: Math.max(0, Math.abs(e - s))}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${Y}, ${R})`}let[U,_]=w,u=this.generate(U,"value"),$=this.generate(_,"value");return`((s, e) => Array.from({length: Math.abs(e - s) + 1}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${u}, ${$})`}generateNot(f,w){let[U]=w;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 _=this.generate(U,"value");return _.startsWith("(")?`!${_}`:`(!${_})`}generateBitwiseNot(f,w){return`(~${this.generate(w[0],"value")})`}generateIncDec(f,w){let[U,_]=w,u=this.generate(U,"value");return _?`(${u}${f})`:`(${f}${u})`}generateTypeof(f,w){return`typeof ${this.generate(w[0],"value")}`}generateDelete(f,w){return`(delete ${this.generate(w[0],"value")})`}generateInstanceof(f,w,U,_){let[u,$]=w,F=t(_[0],"invert"),W=`(${this.generate(u,"value")} instanceof ${this.generate($,"value")})`;return F?`(!${W})`:W}generateIn(f,w,U,_){let[u,$]=w,F=this.generate(u,"value"),W=t(_[0],"invert");if(this.is($,"object")){let A=`(${F} in ${this.generate($,"value")})`;return W?`(!${A})`:A}let Y=this.generate($,"value"),R=`(Array.isArray(${Y}) || typeof ${Y} === 'string' ? ${Y}.includes(${F}) : (${F} in ${Y}))`;return W?`(!${R})`:R}generateOf(f,w,U,_){let[u,$]=w,F=this.generate(u,"value"),W=this.generate($,"value"),Y=t(_[0],"invert"),R=`(${F} in ${W})`;return Y?`(!${R})`:R}generateRegexMatch(f,w){let[U,_]=w;this.helpers.add("toMatchable"),this.programVars.add("_");let u=this.generate(_,"value"),$=u.includes("/m")?", true":"";return`(_ = toMatchable(${this.generate(U,"value")}${$}).match(${u}))`}generateNew(f,w){let[U]=w;if(this.is(U,".")||this.is(U,"?.")){let[_,u,$]=U;if(Array.isArray(u)&&!u[0].startsWith)return`(${this.generate(["new",u],"value")}).${$}`;return`new ${this.generate(u,"value")}.${$}`}if(Array.isArray(U)){let[_,...u]=U;return`new ${this.generate(_,"value")}(${u.map(($)=>this.unwrap(this.generate($,"value"))).join(", ")})`}return`new ${this.generate(U,"value")}()`}generateLogicalAnd(f,w,U,_){let u=this.flattenBinaryChain(_).slice(1);if(u.length===0)return"true";if(u.length===1)return this.generate(u[0],"value");return`(${u.map(($)=>this.generate($,"value")).join(" && ")})`}generateLogicalOr(f,w,U,_){let u=this.flattenBinaryChain(_).slice(1);if(u.length===0)return"true";if(u.length===1)return this.generate(u[0],"value");return`(${u.map(($)=>this.generate($,"value")).join(" || ")})`}generateArray(f,w){let U=w.length>0&&w[w.length-1]===",",_=w.map((u)=>{if(u===",")return"";if(u==="...")return"";if(this.is(u,"..."))return`...${this.generate(u[1],"value")}`;return this.generate(u,"value")}).join(", ");return U?`[${_},]`:`[${_}]`}generateObject(f,w,U){if(w.length===1&&Array.isArray(w[0])&&Array.isArray(w[0][1])&&w[0][1][0]==="comprehension"){let[u,$]=w[0],[,F,W,Y]=$;return this.generate(["object-comprehension",u,F,W,Y],U)}return`{${w.map((u)=>{if(this.is(u,"..."))return`...${this.generate(u[1],"value")}`;let[$,F,W]=u,Y;if(this.is($,"dynamicKey"))Y=`[${this.generate($[1],"value")}]`;else if(this.is($,"str"))Y=`[${this.generate($,"value")}]`;else this.suppressReactiveUnwrap=!0,Y=this.generate($,"value"),this.suppressReactiveUnwrap=!1;let R=this.generate(F,"value");if(W==="=")return`${Y} = ${R}`;if(W===":")return`${Y}: ${R}`;if(Y===R&&!Array.isArray($))return Y;return`${Y}: ${R}`}).join(", ")}}`}generateBlock(f,w,U){if(U==="statement")return`{
|
|
373
|
+
${this.withIndent(()=>this.formatStatements(w)).join(`
|
|
374
374
|
`)}
|
|
375
|
-
${this.indent()}}`;if(
|
|
376
|
-
${this.withIndent(()=>$.map((
|
|
375
|
+
${this.indent()}}`;if(w.length===0)return"undefined";if(w.length===1)return this.generate(w[0],U);let _=w[w.length-1];if(Array.isArray(_)&&["break","continue","return","throw"].includes(_[0])){let $=w.map((F)=>this.addSemicolon(F,this.generate(F,"statement")));return`{
|
|
376
|
+
${this.withIndent(()=>$.map((F)=>this.indent()+F).join(`
|
|
377
377
|
`))}
|
|
378
|
-
${this.indent()}}`}return`(${
|
|
379
|
-
${this.indent()} ${
|
|
380
|
-
${this.indent()}}`}}let u=`throw ${this.generate(
|
|
381
|
-
`;this.indentLevel++;for(let
|
|
382
|
-
`}this.indentLevel++,
|
|
383
|
-
`,this.indentLevel++,
|
|
384
|
-
`;this.indentLevel++,this.comprehensionDepth++,
|
|
385
|
-
`;for(let A of u){let[
|
|
386
|
-
`,this.indentLevel++,
|
|
387
|
-
`}else if(
|
|
388
|
-
`,this.indentLevel++,
|
|
389
|
-
`;if(
|
|
390
|
-
`}else if(
|
|
391
|
-
`,this.indentLevel++}}for(let A of $)
|
|
392
|
-
`,this.indentLevel++;let Y=(A)=>{if(typeof A==="string"&&(A==="break"||A==="continue"))return!0;if(!Array.isArray(A))return!1;if(["break","continue","return","throw"].includes(A[0]))return!0;if(A[0]==="if")return A.slice(1).some(Y);return A.some(Y)},
|
|
393
|
-
`;else if(Array.isArray(
|
|
394
|
-
`;else
|
|
395
|
-
`}else if(Y(
|
|
396
|
-
`;else if(Array.isArray(
|
|
397
|
-
`;else
|
|
398
|
-
`;for(let A=0;A<$.length;A++)this.indentLevel--,
|
|
399
|
-
`;for(let A=0;A<u.length;A++)this.indentLevel--,
|
|
400
|
-
`;return
|
|
401
|
-
`,this.indentLevel--,this.comprehensionDepth--,
|
|
402
|
-
`;this.indentLevel++,
|
|
403
|
-
`;for(let Y of $){let[
|
|
404
|
-
`,this.indentLevel++,z)
|
|
405
|
-
`;if(
|
|
406
|
-
`}}for(let Y of W
|
|
407
|
-
`,this.indentLevel++;
|
|
408
|
-
`;for(let Y=0;Y<
|
|
409
|
-
`;for(let Y=0;Y<$.length;Y++)this.indentLevel--,
|
|
410
|
-
`;return
|
|
411
|
-
`,this.indentLevel--,
|
|
412
|
-
`,$.length>0&&Array.isArray($[0])){let
|
|
413
|
-
`}else if(
|
|
414
|
-
`;else
|
|
415
|
-
`}this.indentLevel--}else if(
|
|
416
|
-
`}else if(
|
|
417
|
-
`;else
|
|
418
|
-
`}for(let z of
|
|
419
|
-
`}else
|
|
420
|
-
`;this.indentLevel--}else{this.indentLevel++;for(let A of Y)if(this.is(A,"=")&&Array.isArray(A[1])&&A[1][0]==="."&&A[1][1]==="this")
|
|
421
|
-
`;else
|
|
422
|
-
`;this.indentLevel--}}}return
|
|
423
|
-
export default ${
|
|
424
|
-
`;if(
|
|
425
|
-
`;let
|
|
426
|
-
`;return}if(!$&&!
|
|
427
|
-
`;return}}}let M=!$&&!
|
|
428
|
-
`;else
|
|
429
|
-
`})};if(
|
|
430
|
-
`;else
|
|
431
|
-
`;for(let K of u)
|
|
432
|
-
`;
|
|
433
|
-
`;
|
|
434
|
-
`}return this.indentLevel--,
|
|
435
|
-
${this.withIndent(()=>
|
|
378
|
+
${this.indent()}}`}return`(${w.map(($)=>this.generate($,"value")).join(", ")})`}generateTry(f,w,U){let _=U==="value",u="try ",$=w[0];if(u+=_&&this.is($,"block")?this.generateBlockWithReturns($):this.generate($,"statement"),w.length>=2&&Array.isArray(w[1])&&w[1].length===2&&w[1][0]!=="block"){let[F,W]=w[1];if(u+=" catch",F&&(this.is(F,"object")||this.is(F,"array"))){u+=" (error)";let Y=`(${this.generate(F,"value")} = error)`;W=this.is(W,"block")?["block",Y,...W.slice(1)]:["block",Y,W]}else if(F)u+=` (${F})`;u+=" "+(_&&this.is(W,"block")?this.generateBlockWithReturns(W):this.generate(W,"statement"))}else if(w.length===2)u+=" finally "+this.generate(w[1],"statement");if(w.length===3)u+=" finally "+this.generate(w[2],"statement");if(w.length===1)u+=" catch {}";if(_)return`(${this.containsAwait(w[0])||w[1]&&this.containsAwait(w[1])?"async ":""}() => { ${u} })()`;return u}generateThrow(f,w,U){let[_]=w;if(Array.isArray(_)){let $=_,F=null;if(_[0]==="new"&&Array.isArray(_[1])&&_[1][0]==="if")F="new",$=_[1];else if(_[0]==="if")$=_;if($[0]==="if"){let[,W,Y]=$,R=Array.isArray(Y)&&Y.length===1?Y[0]:Y;_=F==="new"?["new",R]:R;let A=this.generate(W,"value"),Z=`throw ${this.generate(_,"value")}`;return`if (${A}) {
|
|
379
|
+
${this.indent()} ${Z};
|
|
380
|
+
${this.indent()}}`}}let u=`throw ${this.generate(_,"value")}`;return U==="value"?`(() => { ${u}; })()`:u}generateControl(f,w,U){let[_,u,$]=w,F=k(_),W=$[0]==="return",Y=this.generate(u,"value"),R=$.length>1?$[1]:null,A=W?R?`return ${this.generate(R,"value")}`:"return":R?`throw ${this.generate(R,"value")}`:"throw new Error()",Z=this.wrapForCondition(Y);if(U==="value"){if(F==="??")return`(() => { const __v = ${Y}; if (__v == null) ${A}; return __v; })()`;if(F==="||")return`(() => { const __v = ${Y}; if (!__v) ${A}; return __v; })()`;return`(() => { const __v = ${Y}; if (__v) ${A}; return __v; })()`}if(F==="??")return`if (${Z} == null) ${A}`;if(F==="||")return`if (!${Z}) ${A}`;return`if (${Z}) ${A}`}generateSwitch(f,w,U){let[_,u,$]=w;if(_===null)return this.generateSwitchAsIfChain(u,$,U);let F=`switch (${this.generate(_,"value")}) {
|
|
381
|
+
`;this.indentLevel++;for(let W of u){let[,Y,R]=W;for(let A of Y){let Z=k(A)??A,z;if(Array.isArray(Z))z=this.generate(Z,"value");else if(typeof Z==="string"&&(Z.startsWith('"')||Z.startsWith("'")))z=`'${Z.slice(1,-1)}'`;else z=this.generate(Z,"value");F+=this.indent()+`case ${z}:
|
|
382
|
+
`}this.indentLevel++,F+=this.generateSwitchCaseBody(R,U),this.indentLevel--}if($)F+=this.indent()+`default:
|
|
383
|
+
`,this.indentLevel++,F+=this.generateSwitchCaseBody($,U),this.indentLevel--;if(this.indentLevel--,F+=this.indent()+"}",U==="value")return`(${u.some((Y)=>this.containsAwait(Y[2]))||$&&this.containsAwait($)?"async ":""}() => { ${F} })()`;return F}generateWhen(){throw Error("when clause should be handled by switch")}_forInHeader(f,w,U){let _=Array.isArray(f)?f:[f],u=_.length===0,[$,F]=u?["_i",null]:_,W=this.is($,"array")||this.is($,"object")?this.generateDestructuringPattern($):$;if(U&&U!==null){let Y=Array.isArray(w)&&w[0];if(Y instanceof String)Y=k(Y);if(Y===".."||Y==="..."){let q=Y==="...",[O,K]=w.slice(1),I=this.generate(O,"value"),E=this.generate(K,"value"),D=this.generate(U,"value");return{header:`for (let ${W} = ${I}; ${W} ${q?"<":"<="} ${E}; ${W} += ${D})`,setup:null}}let A=this.generate(w,"value"),Z=F||"_i",z=this.generate(U,"value"),X=this.is(U,"-",1),H=X&&(U[1]==="1"||U[1]===1||k(U[1])==="1"),J=!X&&(U==="1"||U===1||k(U)==="1"),G=H?`${Z}--`:J?`${Z}++`:`${Z} += ${z}`;return{header:X?`for (let ${Z} = ${A}.length - 1; ${Z} >= 0; ${G})`:`for (let ${Z} = 0; ${Z} < ${A}.length; ${G})`,setup:u?null:`const ${W} = ${A}[${Z}];`}}if(F){let Y=this.generate(w,"value");return{header:`for (let ${F} = 0; ${F} < ${Y}.length; ${F}++)`,setup:`const ${W} = ${Y}[${F}];`}}return{header:`for (const ${W} of ${this.generate(w,"value")})`,setup:null}}_forOfHeader(f,w,U){let _=Array.isArray(f)?f:[f],[u,$]=_,F=this.is(u,"array")||this.is(u,"object")?this.generateDestructuringPattern(u):u,W=this.generate(w,"value");return{header:`for (const ${F} in ${W})`,own:U,vv:$,oc:W,kvp:F}}_forAsHeader(f,w,U){let _=Array.isArray(f)?f:[f],[u]=_,$=this.is(u,"array")||this.is(u,"object")?this.generateDestructuringPattern(u):u;return{header:`for ${U?"await ":""}(const ${$} of ${this.generate(w,"value")})`}}generateComprehension(f,w,U){let[_,u,$]=w;if(U==="statement")return this.generateComprehensionAsLoop(_,u,$);if(this.comprehensionTarget)return this.generateComprehensionWithTarget(_,u,$,this.comprehensionTarget);let W=`(${this.containsAwait(_)?"async ":""}() => {
|
|
384
|
+
`;this.indentLevel++,this.comprehensionDepth++,W+=this.indent()+`const result = [];
|
|
385
|
+
`;for(let A of u){let[Z,z,X,H]=A;if(Z==="for-in"){let{header:J,setup:G}=this._forInHeader(z,X,H);if(W+=this.indent()+J+` {
|
|
386
|
+
`,this.indentLevel++,G)W+=this.indent()+G+`
|
|
387
|
+
`}else if(Z==="for-of"){let{header:J,own:G,vv:Q,oc:q,kvp:O}=this._forOfHeader(z,X,H);if(W+=this.indent()+J+` {
|
|
388
|
+
`,this.indentLevel++,G)W+=this.indent()+`if (!Object.hasOwn(${q}, ${O})) continue;
|
|
389
|
+
`;if(Q)W+=this.indent()+`const ${Q} = ${q}[${O}];
|
|
390
|
+
`}else if(Z==="for-as"){let{header:J}=this._forAsHeader(z,X,A[3]);W+=this.indent()+J+` {
|
|
391
|
+
`,this.indentLevel++}}for(let A of $)W+=this.indent()+`if (${this.generate(A,"value")}) {
|
|
392
|
+
`,this.indentLevel++;let Y=(A)=>{if(typeof A==="string"&&(A==="break"||A==="continue"))return!0;if(!Array.isArray(A))return!1;if(["break","continue","return","throw"].includes(A[0]))return!0;if(A[0]==="if")return A.slice(1).some(Y);return A.some(Y)},R=["for-in","for-of","for-as","while","loop"];if(this.is(_,"block"))for(let A=0;A<_.length-1;A++){let Z=_[A+1];if(A!==_.length-2||Y(Z))W+=this.indent()+this.generate(Z,"statement")+`;
|
|
393
|
+
`;else if(Array.isArray(Z)&&R.includes(Z[0]))W+=this.indent()+this.generate(Z,"statement")+`;
|
|
394
|
+
`;else W+=this.indent()+`result.push(${this.generate(Z,"value")});
|
|
395
|
+
`}else if(Y(_))W+=this.indent()+this.generate(_,"statement")+`;
|
|
396
|
+
`;else if(Array.isArray(_)&&R.includes(_[0]))W+=this.indent()+this.generate(_,"statement")+`;
|
|
397
|
+
`;else W+=this.indent()+`result.push(${this.generate(_,"value")});
|
|
398
|
+
`;for(let A=0;A<$.length;A++)this.indentLevel--,W+=this.indent()+`}
|
|
399
|
+
`;for(let A=0;A<u.length;A++)this.indentLevel--,W+=this.indent()+`}
|
|
400
|
+
`;return W+=this.indent()+`return result;
|
|
401
|
+
`,this.indentLevel--,this.comprehensionDepth--,W+=this.indent()+"})()",W}generateObjectComprehension(f,w,U){let[_,u,$,F]=w,W=`(() => {
|
|
402
|
+
`;this.indentLevel++,W+=this.indent()+`const result = {};
|
|
403
|
+
`;for(let Y of $){let[R,A,Z,z]=Y;if(R==="for-of"){let[X,H]=A,J=this.generate(Z,"value");if(W+=this.indent()+`for (const ${X} in ${J}) {
|
|
404
|
+
`,this.indentLevel++,z)W+=this.indent()+`if (!Object.hasOwn(${J}, ${X})) continue;
|
|
405
|
+
`;if(H)W+=this.indent()+`const ${H} = ${J}[${X}];
|
|
406
|
+
`}}for(let Y of F)W+=this.indent()+`if (${this.generate(Y,"value")}) {
|
|
407
|
+
`,this.indentLevel++;W+=this.indent()+`result[${this.generate(_,"value")}] = ${this.generate(u,"value")};
|
|
408
|
+
`;for(let Y=0;Y<F.length;Y++)this.indentLevel--,W+=this.indent()+`}
|
|
409
|
+
`;for(let Y=0;Y<$.length;Y++)this.indentLevel--,W+=this.indent()+`}
|
|
410
|
+
`;return W+=this.indent()+`return result;
|
|
411
|
+
`,this.indentLevel--,W+=this.indent()+"})()",W}generateClass(f,w,U){let[_,u,...$]=w,F=_?`class ${_}`:"class";if(u)F+=` extends ${this.generate(u,"value")}`;if(F+=` {
|
|
412
|
+
`,$.length>0&&Array.isArray($[0])){let W=$[0];if(W[0]==="block"){let Y=W.slice(1),R=Y.length>0&&Array.isArray(Y[0])&&Y[0][0]==="object";if(R&&Y.length===1){let A=Y[0].slice(1);this.indentLevel++;let Z=[];for(let[z,X]of A){let H=this.is(z,".")&&z[1]==="this",J=this.is(z,"computed"),G=this.extractMemberName(z);if(this.is(X,"=>")&&!H&&!J&&G!=="constructor")Z.push(G)}for(let[z,X]of A){let H=this.is(z,".")&&z[1]==="this",J=this.is(z,"computed"),G=this.extractMemberName(z);if(this.is(X,"->")||this.is(X,"=>")){let[,Q,q]=X,O=this.containsAwait(q),K=this.containsYield(q),I=Q,E=[];if(G==="constructor"){let P=!!u,S=P?new Map:null;I=Q.map((N)=>{if(this.is(N,".")&&N[1]==="this"){let B=N[2],h=P?`_${B}`:B;if(E.push(`this.${B} = ${h}`),P)S.set(B,h);return h}if(this.is(N,"default")&&this.is(N[1],".")&&N[1][1]==="this"){let B=N[1][2],h=P?`_${B}`:B;if(E.push(`this.${B} = ${h}`),P)S.set(B,h);return["default",h,N[2]]}return N});for(let N of Z)E.unshift(`this.${N} = this.${N}.bind(this)`);if(S?.size>0)this._atParamMap=S}let D=this.generateParamList(I),M=(H?"static ":"")+(O?"async ":"")+(K?"*":"");if(F+=this.indent()+`${M}${G}(${D}) `,!J)this.currentMethodName=G;F+=this.generateMethodBody(q,E,G==="constructor",I),this._atParamMap=null,this.currentMethodName=null,F+=`
|
|
413
|
+
`}else if(H)F+=this.indent()+`static ${G} = ${this.generate(X,"value")};
|
|
414
|
+
`;else F+=this.indent()+`${G} = ${this.generate(X,"value")};
|
|
415
|
+
`}this.indentLevel--}else if(R){let A=Y[0].slice(1),Z=Y.slice(1);this.indentLevel++;for(let[z,X]of A){let H=this.is(z,".")&&z[1]==="this",J=this.extractMemberName(z);if(this.is(X,"->")||this.is(X,"=>")){let[,G,Q]=X,q=this.generateParamList(G),O=(H?"static ":"")+(this.containsAwait(Q)?"async ":"")+(this.containsYield(Q)?"*":"");F+=this.indent()+`${O}${J}(${q}) `,this.currentMethodName=J,F+=this.generateMethodBody(Q,[],J==="constructor",G),this.currentMethodName=null,F+=`
|
|
416
|
+
`}else if(H)F+=this.indent()+`static ${J} = ${this.generate(X,"value")};
|
|
417
|
+
`;else F+=this.indent()+`${J} = ${this.generate(X,"value")};
|
|
418
|
+
`}for(let z of Z)if(this.is(z,"class")){let[,X,H,...J]=z;if(this.is(X,".")&&X[1]==="this")F+=this.indent()+`static ${X[2]} = ${this.generate(["class",null,H,...J],"value")};
|
|
419
|
+
`}else F+=this.indent()+this.generate(z,"statement")+`;
|
|
420
|
+
`;this.indentLevel--}else{this.indentLevel++;for(let A of Y)if(this.is(A,"=")&&Array.isArray(A[1])&&A[1][0]==="."&&A[1][1]==="this")F+=this.indent()+`static ${A[1][2]} = ${this.generate(A[2],"value")};
|
|
421
|
+
`;else F+=this.indent()+this.generate(A,"statement")+`;
|
|
422
|
+
`;this.indentLevel--}}}return F+=this.indent()+"}",F}generateSuper(f,w){if(w.length===0){if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}()`;return"super"}let U=w.map((_)=>this.unwrap(this.generate(_,"value"))).join(", ");if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}(${U})`;return`super(${U})`}generateImport(f,w,U,_){if(w.length===1){let W=`import(${this.generate(w[0],"value")})`;if(t(_[0],"await")===!0)return`(await ${W})`;return W}if(this.options.skipImports)return"";if(w.length===3){let[W,Y,R]=w,A=this.addJsExtensionAndAssertions(R);if(Y[0]==="*"&&Y.length===2)return`import ${W}, * as ${Y[1]} from ${A}`;let Z=Y.map((z)=>Array.isArray(z)&&z.length===2?`${z[0]} as ${z[1]}`:z).join(", ");return`import ${W}, { ${Z} } from ${A}`}let[u,$]=w,F=this.addJsExtensionAndAssertions($);if(typeof u==="string")return`import ${u} from ${F}`;if(Array.isArray(u)){if(u[0]==="*"&&u.length===2)return`import * as ${u[1]} from ${F}`;return`import { ${u.map((Y)=>Array.isArray(Y)&&Y.length===2?`${Y[0]} as ${Y[1]}`:Y).join(", ")} } from ${F}`}return`import ${this.generate(u,"value")} from ${F}`}generateExport(f,w){let[U]=w;if(this.options.skipExports){if(Array.isArray(U)&&U.every((_)=>typeof _==="string"))return"";if(this.is(U,"=")){let _=this._componentName;if(this.is(U[2],"component"))this._componentName=k(U[1]);let u=`const ${U[1]} = ${this.generate(U[2],"value")}`;return this._componentName=_,u}return this.generate(U,"statement")}if(Array.isArray(U)&&U.every((_)=>typeof _==="string"))return`export { ${U.join(", ")} }`;if(this.is(U,"=")){let _=this._componentName;if(this.is(U[2],"component"))this._componentName=k(U[1]);let u=`export const ${U[1]} = ${this.generate(U[2],"value")}`;return this._componentName=_,u}return`export ${this.generate(U,"statement")}`}generateExportDefault(f,w){let[U]=w;if(this.options.skipExports){if(this.is(U,"="))return`const ${U[1]} = ${this.generate(U[2],"value")}`;return this.generate(U,"statement")}if(this.is(U,"="))return`const ${U[1]} = ${this.generate(U[2],"value")};
|
|
423
|
+
export default ${U[1]}`;return`export default ${this.generate(U,"statement")}`}generateExportAll(f,w){if(this.options.skipExports)return"";return`export * from ${this.addJsExtensionAndAssertions(w[0])}`}generateExportFrom(f,w){if(this.options.skipExports)return"";let[U,_]=w,u=this.addJsExtensionAndAssertions(_);if(Array.isArray(U))return`export { ${U.map((F)=>Array.isArray(F)&&F.length===2?`${F[0]} as ${F[1]}`:F).join(", ")} } from ${u}`;return`export ${U} from ${u}`}generateDoIIFE(f,w){return`(${this.generate(w[0],"statement")})()`}generateRegex(f,w){return w.length===0?f:this.generate(w[0],"value")}generateTaggedTemplate(f,w){let[U,_]=w,u=this.generate(U,"value"),$=this.generate(_,"value");if($.startsWith("`"))return`${u}${$}`;if($.startsWith('"')||$.startsWith("'"))return`${u}\`${$.slice(1,-1)}\``;return`${u}\`${$}\``}generateString(f,w){let U="`";for(let _ of w)if(_ instanceof String)U+=this.extractStringContent(_);else if(typeof _==="string")if(_.startsWith('"')||_.startsWith("'")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive in str:",_);U+=_.slice(1,-1)}else U+=_;else if(Array.isArray(_))if(_.length===1&&typeof _[0]==="string"&&!Array.isArray(_[0])){let u=_[0];U+=/^[\d"']/.test(u)?"${"+this.generate(u,"value")+"}":"${"+u+"}"}else{let u=_.length===1&&Array.isArray(_[0])?_[0]:_;U+="${"+this.generate(u,"value")+"}"}return U+"`"}findPostfixConditional(f){if(!Array.isArray(f))return null;let w=f[0];if(w==="if"&&f.length===3)return{type:w,condition:f[1],value:f[2]};if(w==="+"||w==="-"||w==="*"||w==="/")for(let U=1;U<f.length;U++){let _=this.findPostfixConditional(f[U]);if(_)return _.parentOp=w,_.operandIndex=U,_.otherOperands=f.slice(1).filter((u,$)=>$!==U-1),_}return null}rebuildWithoutConditional(f){let w=Array.isArray(f.value)&&f.value.length===1?f.value[0]:f.value;if(f.parentOp)return[f.parentOp,...f.otherOperands,w];return w}generateDestructuringPattern(f){return this.formatParam(f)}generateParamList(f){let w=f.findIndex((_)=>this.is(_,"expansion"));if(w!==-1){let _=f.slice(0,w),u=f.slice(w+1),$=_.map((F)=>this.formatParam(F)).join(", ");return this.expansionAfterParams=u,$?`${$}, ..._rest`:"..._rest"}let U=f.findIndex((_)=>this.is(_,"rest"));if(U!==-1&&U<f.length-1){let _=f.slice(0,U),u=f[U],$=f.slice(U+1),F=_.map((W)=>this.formatParam(W));return this.restMiddleParam={restName:u[1],afterParams:$,beforeCount:_.length},F.length>0?`${F.join(", ")}, ...${u[1]}`:`...${u[1]}`}return this.expansionAfterParams=null,this.restMiddleParam=null,f.map((_)=>this.formatParam(_)).join(", ")}formatParam(f){if(typeof f==="string")return f;if(f instanceof String)return f.valueOf();if(this.is(f,"rest"))return`...${f[1]}`;if(this.is(f,"default"))return`${f[1]} = ${this.generate(f[2],"value")}`;if(this.is(f,".")&&f[1]==="this")return f[2];if(this.is(f,"array"))return`[${f.slice(1).map((U)=>{if(U===",")return"";if(U==="...")return"";if(this.is(U,"..."))return`...${U[1]}`;if(this.is(U,"=")&&typeof U[1]==="string")return`${U[1]} = ${this.generate(U[2],"value")}`;if(typeof U==="string")return U;return this.formatParam(U)}).join(", ")}]`;if(this.is(f,"object"))return`{${f.slice(1).map((U)=>{if(this.is(U,"..."))return`...${U[1]}`;if(this.is(U,"default"))return`${U[1]} = ${this.generate(U[2],"value")}`;let[_,u,$]=U;if($==="=")return`${_} = ${this.generate(u,"value")}`;if(_===u)return _;return`${_}: ${this.formatParam(u)}`}).join(", ")}}`;return JSON.stringify(f)}generateBodyWithReturns(f,w=[],U={}){let{sideEffectOnly:_=!1,autoAssignments:u=[],isConstructor:$=!1,hasExpansionParams:F=!1}=U,W=this.sideEffectOnly;this.sideEffectOnly=_;let Y=new Set,R=(J)=>{if(typeof J==="string")Y.add(J);else if(Array.isArray(J)){if(J[0]==="rest"||J[0]==="..."){if(typeof J[1]==="string")Y.add(J[1])}else if(J[0]==="default"){if(typeof J[1]==="string")Y.add(J[1])}else if(J[0]==="array"||J[0]==="object")this.collectVarsFromArray(J,Y)}};if(Array.isArray(w))w.forEach(R);let A=this.collectFunctionVariables(f),Z=new Set([...A].filter((J)=>!this.programVars.has(J)&&!this.reactiveVars?.has(J)&&!Y.has(J)&&!this.scopeStack.some((G)=>G.has(J)))),z=["return","throw","break","continue"],X=["for-in","for-of","for-as","while","loop"];if(this.scopeStack.push(new Set([...Z,...Y])),this.is(f,"block")){let J=this.unwrapBlock(f);if(F&&this.expansionAfterParams?.length>0)J=[...this.expansionAfterParams.map((K,I)=>{return`const ${typeof K==="string"?K:JSON.stringify(K)} = _rest[_rest.length - ${this.expansionAfterParams.length-I}]`}),...J],this.expansionAfterParams=null;if(this.restMiddleParam){let{restName:O,afterParams:K}=this.restMiddleParam,I=K.length,E=[];if(K.forEach((D,M)=>{let P=typeof D==="string"?D:this.is(D,"default")?D[1]:JSON.stringify(D);E.push(`const ${P} = ${O}[${O}.length - ${I-M}]`)}),I>0)E.push(`${O} = ${O}.slice(0, -${I})`);J=[...E,...J],this.restMiddleParam=null}this.indentLevel++;let G=`{
|
|
424
|
+
`;if(Z.size>0)G+=this.indent()+`let ${Array.from(Z).sort().join(", ")};
|
|
425
|
+
`;let Q=u.length>0&&J.length>0&&Array.isArray(J[0])&&J[0][0]==="super",q=(O)=>{O.forEach((K,I)=>{let E=I===O.length-1,D=Array.isArray(K)?K[0]:null;if(!E&&D==="comprehension"){let[,N,B,h]=K;G+=this.indent()+this.generateComprehensionAsLoop(N,B,h)+`
|
|
426
|
+
`;return}if(!$&&!_&&E&&D==="if"){let[N,B,...h]=K.slice(1),C=(L)=>this.is(L,"block")&&L.length>2;if(C(B)||h.some(C)){G+=this.generateIfElseWithEarlyReturns(K);return}}if(!$&&!_&&E&&D==="="){let[N,B]=K.slice(1);if(typeof N==="string"&&Array.isArray(B)){let h=B[0];if(h==="comprehension"||h==="for-in"){this.comprehensionTarget=N,G+=this.generate(B,"value"),this.comprehensionTarget=null,G+=this.indent()+`return ${N};
|
|
427
|
+
`;return}}}let M=!$&&!_&&E&&!z.includes(D)&&!X.includes(D)&&!this.hasExplicitControlFlow(K),P=M?"value":"statement",S=this.generate(K,P);if(M)G+=this.indent()+"return "+S+`;
|
|
428
|
+
`;else G+=this.indent()+this.addSemicolon(K,S)+`
|
|
429
|
+
`})};if(Q){if(J.length===1&&!$)G+=this.indent()+"return "+this.generate(J[0],"value")+`;
|
|
430
|
+
`;else G+=this.indent()+this.generate(J[0],"statement")+`;
|
|
431
|
+
`;for(let K of u)G+=this.indent()+K+`;
|
|
432
|
+
`;q(J.slice(1))}else{for(let O of u)G+=this.indent()+O+`;
|
|
433
|
+
`;q(J)}if(_&&J.length>0){let O=Array.isArray(J[J.length-1])?J[J.length-1][0]:null;if(!z.includes(O))G+=this.indent()+`return;
|
|
434
|
+
`}return this.indentLevel--,G+=this.indent()+"}",this.scopeStack.pop(),this.sideEffectOnly=W,G}this.sideEffectOnly=W;let H;if($&&u.length>0){let J=Array.isArray(f)&&f[0]==="super",G=this.generate(f,"statement"),Q=u.map((q)=>`${q};`).join(" ");H=J?`{ ${G}; ${Q} }`:`{ ${Q} ${G}; }`}else if($||this.hasExplicitControlFlow(f))H=`{ ${this.generate(f,"statement")}; }`;else if(Array.isArray(f)&&(z.includes(f[0])||X.includes(f[0])))H=`{ ${this.generate(f,"statement")}; }`;else if(_)H=`{ ${this.generate(f,"statement")}; return; }`;else H=`{ return ${this.generate(f,"value")}; }`;return this.scopeStack.pop(),H}generateFunctionBody(f,w=[],U=!1){return this.generateBodyWithReturns(f,w,{sideEffectOnly:U,hasExpansionParams:this.expansionAfterParams?.length>0})}generateMethodBody(f,w=[],U=!1,_=[]){return this.generateBodyWithReturns(f,_,{autoAssignments:w,isConstructor:U})}generateBlockWithReturns(f){if(!Array.isArray(f)||f[0]!=="block")return this.generate(f,"statement");let w=this.unwrapBlock(f);return`{
|
|
435
|
+
${this.withIndent(()=>w.map((_,u)=>{let $=u===w.length-1,F=Array.isArray(_)?_[0]:null,W=$&&!["return","throw","break","continue"].includes(F),Y=this.generate(_,W?"value":"statement");return W?this.indent()+"return "+Y+";":this.indent()+Y+";"})).join(`
|
|
436
436
|
`)}
|
|
437
|
-
${this.indent()}}`}generateLoopBody(f){if(!Array.isArray(f))return`{ ${this.generate(f,"statement")}; }`;if(f[0]==="block"||Array.isArray(f[0])){let
|
|
438
|
-
${this.withIndent(()=>
|
|
437
|
+
${this.indent()}}`}generateLoopBody(f){if(!Array.isArray(f))return`{ ${this.generate(f,"statement")}; }`;if(f[0]==="block"||Array.isArray(f[0])){let w=f[0]==="block"?f.slice(1):f;return`{
|
|
438
|
+
${this.withIndent(()=>w.map((_)=>{if(this.is(_,"comprehension")){let[,u,$,F]=_;return this.indent()+this.generateComprehensionAsLoop(u,$,F)}return this.indent()+this.addSemicolon(_,this.generate(_,"statement"))})).join(`
|
|
439
439
|
`)}
|
|
440
|
-
${this.indent()}}`}return`{ ${this.generate(f,"statement")}; }`}generateLoopBodyWithGuard(f,
|
|
441
|
-
`,
|
|
442
|
-
${u}${$}${
|
|
440
|
+
${this.indent()}}`}return`{ ${this.generate(f,"statement")}; }`}generateLoopBodyWithGuard(f,w){let U=this.unwrap(this.generate(w,"value"));if(!Array.isArray(f))return`{ if (${U}) ${this.generate(f,"statement")}; }`;if(f[0]==="block"||Array.isArray(f[0])){let _=f[0]==="block"?f.slice(1):f,u=this.withIndent(()=>this.indent()),$=`if (${U}) {
|
|
441
|
+
`,F=this.withIndent(()=>{this.indentLevel++;let Y=this.formatStatements(_);return this.indentLevel--,Y}),W=this.withIndent(()=>this.indent()+"}");return`{
|
|
442
|
+
${u}${$}${F.join(`
|
|
443
443
|
`)}
|
|
444
|
-
${
|
|
445
|
-
${this.indent()}}`}return`{ if (${this.generate(
|
|
446
|
-
`;let $=this.is(f,"block")&&f.length===2?f[1]:f;if(
|
|
447
|
-
`,this.indentLevel++,
|
|
448
|
-
`;if(
|
|
449
|
-
`,this.indentLevel++;if(u+=this.indent()+`${
|
|
450
|
-
`,
|
|
444
|
+
${W}
|
|
445
|
+
${this.indent()}}`}return`{ if (${this.generate(w,"value")}) ${this.generate(f,"statement")}; }`}generateComprehensionWithTarget(f,w,U,_){let u="";u+=this.indent()+`${_} = [];
|
|
446
|
+
`;let $=this.is(f,"block")&&f.length===2?f[1]:f;if(w.length===1){let[F,W,Y,R]=w[0];if(F==="for-in"){let{header:A,setup:Z}=this._forInHeader(W,Y,R);if(u+=this.indent()+A+` {
|
|
447
|
+
`,this.indentLevel++,Z)u+=this.indent()+Z+`
|
|
448
|
+
`;if(U&&U.length>0)u+=this.indent()+`if (${U.map((z)=>this.generate(z,"value")).join(" && ")}) {
|
|
449
|
+
`,this.indentLevel++;if(u+=this.indent()+`${_}.push(${this.unwrap(this.generate($,"value"))});
|
|
450
|
+
`,U&&U.length>0)this.indentLevel--,u+=this.indent()+`}
|
|
451
451
|
`;return this.indentLevel--,u+=this.indent()+`}
|
|
452
|
-
`,u}}return this.indent()+`${
|
|
453
|
-
`}generateComprehensionAsLoop(f,
|
|
454
|
-
`,this.indentLevel++,
|
|
455
|
-
`,this.indentLevel--,
|
|
452
|
+
`,u}}return this.indent()+`${_} = (() => { /* complex comprehension */ })();
|
|
453
|
+
`}generateComprehensionAsLoop(f,w,U){let _="",u=U?.length?U.map((F)=>this.generate(F,"value")).join(" && "):null,$=()=>{if(u)_+=this.indent()+`if (${u}) {
|
|
454
|
+
`,this.indentLevel++,_+=this.indent()+this.generate(f,"statement")+`;
|
|
455
|
+
`,this.indentLevel--,_+=this.indent()+`}
|
|
456
|
+
`;else _+=this.indent()+this.generate(f,"statement")+`;
|
|
457
|
+
`};if(w.length===1){let[F,W,Y,R]=w[0];if(F==="for-in"){let{header:A,setup:Z}=this._forInHeader(W,Y,R);if(_+=A+` {
|
|
458
|
+
`,this.indentLevel++,Z)_+=this.indent()+Z+`
|
|
459
|
+
`;return $(),this.indentLevel--,_+=this.indent()+"}",_}if(F==="for-as"){let{header:A}=this._forAsHeader(W,Y,R);return _+=A+` {
|
|
460
|
+
`,this.indentLevel++,$(),this.indentLevel--,_+=this.indent()+"}",_}if(F==="for-of"){let{header:A,own:Z,vv:z,oc:X,kvp:H}=this._forOfHeader(W,Y,R);if(_+=A+` {
|
|
461
|
+
`,this.indentLevel++,Z)_+=this.indent()+`if (!Object.hasOwn(${X}, ${H})) continue;
|
|
462
|
+
`;if(z)_+=this.indent()+`const ${z} = ${X}[${H}];
|
|
463
|
+
`;return $(),this.indentLevel--,_+=this.indent()+"}",_}}return this.generate(["comprehension",f,w,U],"value")}generateIfElseWithEarlyReturns(f){let[w,U,_,...u]=f,$="",F=this.generate(U,"value");$+=this.indent()+`if (${F}) {
|
|
464
|
+
`,$+=this.withIndent(()=>this.generateBranchWithReturn(_)),$+=this.indent()+"}";for(let W of u)if($+=" else ",this.is(W,"if")){let[,Y,R,...A]=W;$+=`if (${this.generate(Y,"value")}) {
|
|
465
|
+
`,$+=this.withIndent(()=>this.generateBranchWithReturn(R)),$+=this.indent()+"}";for(let Z of A)$+=` else {
|
|
466
|
+
`,$+=this.withIndent(()=>this.generateBranchWithReturn(Z)),$+=this.indent()+"}"}else $+=`{
|
|
467
|
+
`,$+=this.withIndent(()=>this.generateBranchWithReturn(W)),$+=this.indent()+"}";return $}generateBranchWithReturn(f){let w=this.unwrapBlock(f),U="";for(let _=0;_<w.length;_++){let u=_===w.length-1,$=w[_],F=Array.isArray($)?$[0]:null;if(u&&!(F==="return"||F==="throw"||F==="break"||F==="continue"))U+=this.indent()+`return ${this.generate($,"value")};
|
|
468
|
+
`;else U+=this.indent()+this.generate($,"statement")+`;
|
|
469
|
+
`}return U}generateIfAsExpression(f,w,U){if(this.is(w,"block")&&w.length>2||this.hasStatementInBranch(w)||U.some((W)=>this.is(W,"block")&&W.length>2||this.hasStatementInBranch(W)||this.hasNestedMultiStatement(W))){let W=this.containsAwait(f)||this.containsAwait(w)||U.some((R)=>this.containsAwait(R)),Y=`${W?"await ":""}(${W?"async ":""}() => { `;Y+=`if (${this.generate(f,"value")}) `,Y+=this.generateBlockWithReturns(w);for(let R of U)if(Y+=" else ",this.is(R,"if")){let[A,Z,z,...X]=R;Y+=`if (${this.generate(Z,"value")}) `,Y+=this.generateBlockWithReturns(z);for(let H of X)if(Y+=" else ",this.is(H,"if")){let[J,G,Q,...q]=H;Y+=`if (${this.generate(G,"value")}) `,Y+=this.generateBlockWithReturns(Q),U.push(...q)}else Y+=this.generateBlockWithReturns(H)}else Y+=this.generateBlockWithReturns(R);return Y+" })()"}let u=this.extractExpression(this.unwrapIfBranch(w)),$=this.buildTernaryChain(U),F=this.generate(f,"value");if(this.is(f,"yield")||this.is(f,"await"))F=`(${F})`;return`(${F} ? ${u} : ${$})`}generateIfAsStatement(f,w,U){let _=`if (${this.unwrap(this.generate(f,"value"))}) `;_+=this.generate(this.unwrapIfBranch(w),"statement");for(let u of U)_+=" else "+this.generate(this.unwrapIfBranch(u),"statement");return _}generateSwitchCaseBody(f,w){let U="";if(this.hasExplicitControlFlow(f))for(let u of this.unwrapBlock(f))U+=this.indent()+this.generate(u,"statement")+`;
|
|
470
|
+
`;else if(w==="value")if(this.is(f,"block")&&f.length>2){let u=f.slice(1);for(let $=0;$<u.length;$++)if($===u.length-1)U+=this.indent()+`return ${this.generate(u[$],"value")};
|
|
471
|
+
`;else U+=this.indent()+this.generate(u[$],"statement")+`;
|
|
472
|
+
`}else U+=this.indent()+`return ${this.extractExpression(f)};
|
|
473
|
+
`;else{if(this.is(f,"block")&&f.length>1)for(let u of f.slice(1))U+=this.indent()+this.generate(u,"statement")+`;
|
|
456
474
|
`;else U+=this.indent()+this.generate(f,"statement")+`;
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
`;
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
`}return F}generateIfAsExpression(f,_,F){if(this.is(_,"block")&&_.length>2||this.hasStatementInBranch(_)||F.some((w)=>this.is(w,"block")&&w.length>2||this.hasStatementInBranch(w)||this.hasNestedMultiStatement(w))){let w=this.containsAwait(f)||this.containsAwait(_)||F.some((Z)=>this.containsAwait(Z)),Y=`${w?"await ":""}(${w?"async ":""}() => { `;Y+=`if (${this.generate(f,"value")}) `,Y+=this.generateBlockWithReturns(_);for(let Z of F)if(Y+=" else ",this.is(Z,"if")){let[A,R,z,...Q]=Z;Y+=`if (${this.generate(R,"value")}) `,Y+=this.generateBlockWithReturns(z);for(let D of Q)if(Y+=" else ",this.is(D,"if")){let[J,q,X,...G]=D;Y+=`if (${this.generate(q,"value")}) `,Y+=this.generateBlockWithReturns(X),F.push(...G)}else Y+=this.generateBlockWithReturns(D)}else Y+=this.generateBlockWithReturns(Z);return Y+" })()"}let u=this.extractExpression(this.unwrapIfBranch(_)),$=this.buildTernaryChain(F),W=this.generate(f,"value");if(this.is(f,"yield")||this.is(f,"await"))W=`(${W})`;return`(${W} ? ${u} : ${$})`}generateIfAsStatement(f,_,F){let U=`if (${this.unwrap(this.generate(f,"value"))}) `;U+=this.generate(this.unwrapIfBranch(_),"statement");for(let u of F)U+=" else "+this.generate(this.unwrapIfBranch(u),"statement");return U}generateSwitchCaseBody(f,_){let F="";if(this.hasExplicitControlFlow(f))for(let u of this.unwrapBlock(f))F+=this.indent()+this.generate(u,"statement")+`;
|
|
470
|
-
`;else if(_==="value")if(this.is(f,"block")&&f.length>2){let u=f.slice(1);for(let $=0;$<u.length;$++)if($===u.length-1)F+=this.indent()+`return ${this.generate(u[$],"value")};
|
|
471
|
-
`;else F+=this.indent()+this.generate(u[$],"statement")+`;
|
|
472
|
-
`}else F+=this.indent()+`return ${this.extractExpression(f)};
|
|
473
|
-
`;else{if(this.is(f,"block")&&f.length>1)for(let u of f.slice(1))F+=this.indent()+this.generate(u,"statement")+`;
|
|
474
|
-
`;else F+=this.indent()+this.generate(f,"statement")+`;
|
|
475
|
-
`;F+=this.indent()+`break;
|
|
476
|
-
`}return F}generateSwitchAsIfChain(f,_,F){let U="";for(let u=0;u<f.length;u++){let[,$,W]=f[u],w=Array.isArray($)?$[0]:$;if(U+=(u===0?"":" else ")+`if (${this.generate(w,"value")}) {
|
|
477
|
-
`,this.indentLevel++,F==="value")U+=this.indent()+`return ${this.extractExpression(W)};
|
|
478
|
-
`;else for(let Y of this.unwrapBlock(W))U+=this.indent()+this.generate(Y,"statement")+`;
|
|
479
|
-
`;this.indentLevel--,U+=this.indent()+"}"}if(_){if(U+=` else {
|
|
480
|
-
`,this.indentLevel++,F==="value")U+=this.indent()+`return ${this.extractExpression(_)};
|
|
481
|
-
`;else for(let u of this.unwrapBlock(_))U+=this.indent()+this.generate(u,"statement")+`;
|
|
482
|
-
`;this.indentLevel--,U+=this.indent()+"}"}return F==="value"?`(() => { ${U} })()`:U}extractExpression(f){let _=this.unwrapBlock(f);return _.length>0?this.generate(_[_.length-1],"value"):"undefined"}unwrapBlock(f){if(!Array.isArray(f))return[f];if(f[0]==="block")return f.slice(1);if(Array.isArray(f[0])){if(typeof f[0][0]==="string")return[f];return f}return[f]}indent(){return this.indentString.repeat(this.indentLevel)}needsSemicolon(f,_){if(!_||_.endsWith(";"))return!1;if(!_.endsWith("}"))return!0;let F=Array.isArray(f)?f[0]:null;return!["def","class","if","for-in","for-of","for-as","while","loop","switch","try"].includes(F)}addSemicolon(f,_){return _+(this.needsSemicolon(f,_)?";":"")}formatStatements(f,_="statement"){return f.map((F)=>this.indent()+this.addSemicolon(F,this.generate(F,_)))}wrapForCondition(f){if(/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(f))return f;if(f.startsWith("(")&&f.endsWith(")"))return f;return`(${f})`}hasExplicitControlFlow(f){if(!Array.isArray(f))return!1;let _=f[0];if(_==="return"||_==="throw"||_==="break"||_==="continue")return!0;if(_==="block")return f.slice(1).some((F)=>Array.isArray(F)&&["return","throw","break","continue"].includes(F[0]));if(_==="switch"){let[,,F]=f;return F?.some((U)=>{return this.unwrapBlock(U[2]).some(($)=>Array.isArray($)&&["return","throw","break","continue"].includes($[0]))})}if(_==="if"){let[,,F,U]=f;return this.branchHasControlFlow(F)&&U&&this.branchHasControlFlow(U)}return!1}branchHasControlFlow(f){if(!Array.isArray(f))return!1;let _=this.unwrapBlock(f);if(_.length===0)return!1;let F=_[_.length-1];return Array.isArray(F)&&["return","throw","break","continue"].includes(F[0])}withIndent(f){this.indentLevel++;let _=f();return this.indentLevel--,_}is(f,_,F){if(!Array.isArray(f))return null;if((k(f[0])??f[0])!==_)return null;let U=f.slice(1);if(F!=null&&U.length!==F)return null;return U}unwrap(f){if(typeof f!=="string")return f;while(f.startsWith("(")&&f.endsWith(")")){let _=0,F=0,U=!0,u=!1;for(let $=0;$<f.length;$++){if(f[$]==="(")_++;if(f[$]===")")_--;if(f[$]==="["||f[$]==="{")F++;if(f[$]==="]"||f[$]==="}")F--;if(f[$]===","&&_===1&&F===0)u=!0;if(_===0&&$<f.length-1){U=!1;break}}if(u)U=!1;if(U)f=f.slice(1,-1);else break}return f}_findOptionalInTarget(f){if(!Array.isArray(f))return null;if(f[0]==="?.")return{guard:f[1],rewritten:[".",f[1],f[2]]};if(f[0]==="optindex")return{guard:f[1],rewritten:["[]",f[1],f[2]]};if(f[0]==="."||f[0]==="[]"){let _=this._findOptionalInTarget(f[1]);if(_)return{guard:_.guard,rewritten:[f[0],_.rewritten,f[2]]}}return null}unwrapLogical(f){if(typeof f!=="string")return f;while(f.startsWith("(")&&f.endsWith(")")){let _=0,F=1/0;for(let U=1;U<f.length-1;U++){if(f[U]==="(")_++;if(f[U]===")")_--;F=Math.min(F,_)}if(F>=0)f=f.slice(1,-1);else break}return f}unwrapIfBranch(f){if(Array.isArray(f)&&f.length===1&&(!Array.isArray(f[0])||f[0][0]!=="block"))return f[0];return f}flattenBinaryChain(f){if(!Array.isArray(f)||f.length<3)return f;let[_,...F]=f;if(_!=="&&"&&_!=="||")return f;let U=[],u=($)=>{if(Array.isArray($)&&$[0]===_)for(let W=1;W<$.length;W++)u($[W]);else U.push($)};for(let $ of F)u($);return[_,...U]}hasStatementInBranch(f){if(!Array.isArray(f))return!1;let _=f[0];if(_==="return"||_==="throw"||_==="break"||_==="continue")return!0;if(_==="block")return f.slice(1).some((F)=>this.hasStatementInBranch(F));return!1}hasNestedMultiStatement(f){if(!Array.isArray(f))return!1;if(f[0]==="if"){let[_,F,U,...u]=f;return this.is(U,"block")&&U.length>2||u.some(($)=>this.hasNestedMultiStatement($))}return!1}buildTernaryChain(f){if(f.length===0)return"undefined";if(f.length===1)return this.extractExpression(this.unwrapIfBranch(f[0]));let _=f[0];if(this.is(_,"if")){let[F,U,u,...$]=_,W=this.extractExpression(this.unwrapIfBranch(u)),w=this.buildTernaryChain([...$,...f.slice(1)]);return`(${this.generate(U,"value")} ? ${W} : ${w})`}return this.extractExpression(this.unwrapIfBranch(_))}collectVarsFromArray(f,_){f.slice(1).forEach((F)=>{if(F===","||F==="...")return;if(typeof F==="string"){_.add(F);return}if(Array.isArray(F)){if(F[0]==="..."&&typeof F[1]==="string")_.add(F[1]);else if(F[0]==="array")this.collectVarsFromArray(F,_);else if(F[0]==="object")this.collectVarsFromObject(F,_)}})}collectVarsFromObject(f,_){f.slice(1).forEach((F)=>{if(!Array.isArray(F))return;if(F[0]==="..."&&typeof F[1]==="string"){_.add(F[1]);return}if(F.length>=2){let[U,u,$]=F;if($==="="){if(typeof U==="string")_.add(U)}else if(typeof u==="string")_.add(u);else if(Array.isArray(u)){if(u[0]==="array")this.collectVarsFromArray(u,_);else if(u[0]==="object")this.collectVarsFromObject(u,_)}}})}extractStringContent(f){let _=k(f).slice(1,-1),F=t(f,"indent");if(F)_=_.replace(new RegExp(`\\n${F}`,"g"),`
|
|
483
|
-
`);if(t(f,"initialChunk")&&_.startsWith(`
|
|
484
|
-
`))_=_.slice(1);if(t(f,"finalChunk")&&_.endsWith(`
|
|
485
|
-
`))_=_.slice(0,-1);return _}processHeregex(f){let _="",F=!1,U=0,u=()=>{let $=0,W=U-1;while(W>=0&&f[W]==="\\")$++,W--;return $%2===1};while(U<f.length){let $=f[U];if($==="["&&!u()){F=!0,_+=$,U++;continue}if($==="]"&&F&&!u()){F=!1,_+=$,U++;continue}if(F){_+=$,U++;continue}if(/\s/.test($)){U++;continue}if($==="#"){if(u()){_+=$,U++;continue}let W=U-1;while(W>=0&&f[W]==="\\")W--;if(W<U-1){_+=$,U++;continue}while(U<f.length&&f[U]!==`
|
|
486
|
-
`)U++;continue}_+=$,U++}return _}addJsExtensionAndAssertions(f){if(f instanceof String)f=k(f);if(typeof f!=="string")return f;let F=f.startsWith('"')||f.startsWith("'")?f.slice(1,-1):f,U=F.startsWith("./")||F.startsWith("../"),u=F,$="";if(U){let W=F.lastIndexOf("/"),w=W>=0?F.substring(W+1):F;if(w.includes(".")){if(w.endsWith(".json"))$=" with { type: 'json' }"}else u=F+".js"}return`'${u}'`+$}containsIt(f){if(!f)return!1;if(f==="it"||f instanceof String&&k(f)==="it")return!0;if(typeof f!=="object")return!1;if(this.is(f,"def")||this.is(f,"->")||this.is(f,"=>"))return!1;if(Array.isArray(f))return f.some((_)=>this.containsIt(_));return!1}containsAwait(f){if(!f)return!1;if(f instanceof String&&t(f,"await")===!0)return!0;if(typeof f!=="object")return!1;if(this.is(f,"await"))return!0;if(this.is(f,"for-as")&&f[3]===!0)return!0;if(this.is(f,"def")||this.is(f,"->")||this.is(f,"=>")||this.is(f,"class"))return!1;if(Array.isArray(f))return f.some((_)=>this.containsAwait(_));return!1}containsYield(f){if(!f)return!1;if(typeof f!=="object")return!1;if(this.is(f,"yield")||this.is(f,"yield-from"))return!0;if(this.is(f,"def")||this.is(f,"->")||this.is(f,"=>")||this.is(f,"class"))return!1;if(Array.isArray(f))return f.some((_)=>this.containsYield(_));return!1}extractMemberName(f){if(this.is(f,".")&&f[1]==="this")return f[2];if(this.is(f,"computed"))return`[${this.generate(f[1],"value")}]`;return f}getReactiveRuntime(){return`// ============================================================================
|
|
475
|
+
`;U+=this.indent()+`break;
|
|
476
|
+
`}return U}generateSwitchAsIfChain(f,w,U){let _="";for(let u=0;u<f.length;u++){let[,$,F]=f[u],W=Array.isArray($)?$[0]:$;if(_+=(u===0?"":" else ")+`if (${this.generate(W,"value")}) {
|
|
477
|
+
`,this.indentLevel++,U==="value")_+=this.indent()+`return ${this.extractExpression(F)};
|
|
478
|
+
`;else for(let Y of this.unwrapBlock(F))_+=this.indent()+this.generate(Y,"statement")+`;
|
|
479
|
+
`;this.indentLevel--,_+=this.indent()+"}"}if(w){if(_+=` else {
|
|
480
|
+
`,this.indentLevel++,U==="value")_+=this.indent()+`return ${this.extractExpression(w)};
|
|
481
|
+
`;else for(let u of this.unwrapBlock(w))_+=this.indent()+this.generate(u,"statement")+`;
|
|
482
|
+
`;this.indentLevel--,_+=this.indent()+"}"}return U==="value"?`(() => { ${_} })()`:_}extractExpression(f){let w=this.unwrapBlock(f);return w.length>0?this.generate(w[w.length-1],"value"):"undefined"}unwrapBlock(f){if(!Array.isArray(f))return[f];if(f[0]==="block")return f.slice(1);if(Array.isArray(f[0])){if(typeof f[0][0]==="string")return[f];return f}return[f]}indent(){return this.indentString.repeat(this.indentLevel)}needsSemicolon(f,w){if(!w||w.endsWith(";"))return!1;if(!w.endsWith("}"))return!0;let U=Array.isArray(f)?f[0]:null;return!["def","class","if","for-in","for-of","for-as","while","loop","switch","try"].includes(U)}addSemicolon(f,w){return w+(this.needsSemicolon(f,w)?";":"")}formatStatements(f,w="statement"){return f.map((U)=>this.indent()+this.addSemicolon(U,this.generate(U,w)))}wrapForCondition(f){if(/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(f))return f;if(f.startsWith("(")&&f.endsWith(")"))return f;return`(${f})`}hasExplicitControlFlow(f){if(!Array.isArray(f))return!1;let w=f[0];if(w==="return"||w==="throw"||w==="break"||w==="continue")return!0;if(w==="block")return f.slice(1).some((U)=>Array.isArray(U)&&["return","throw","break","continue"].includes(U[0]));if(w==="switch"){let[,,U]=f;return U?.some((_)=>{return this.unwrapBlock(_[2]).some(($)=>Array.isArray($)&&["return","throw","break","continue"].includes($[0]))})}if(w==="if"){let[,,U,_]=f;return this.branchHasControlFlow(U)&&_&&this.branchHasControlFlow(_)}return!1}branchHasControlFlow(f){if(!Array.isArray(f))return!1;let w=this.unwrapBlock(f);if(w.length===0)return!1;let U=w[w.length-1];return Array.isArray(U)&&["return","throw","break","continue"].includes(U[0])}withIndent(f){this.indentLevel++;let w=f();return this.indentLevel--,w}is(f,w,U){if(!Array.isArray(f))return null;if((k(f[0])??f[0])!==w)return null;let _=f.slice(1);if(U!=null&&_.length!==U)return null;return _}unwrap(f){if(typeof f!=="string")return f;while(f.startsWith("(")&&f.endsWith(")")){let w=0,U=0,_=!0,u=!1;for(let $=0;$<f.length;$++){if(f[$]==="(")w++;if(f[$]===")")w--;if(f[$]==="["||f[$]==="{")U++;if(f[$]==="]"||f[$]==="}")U--;if(f[$]===","&&w===1&&U===0)u=!0;if(w===0&&$<f.length-1){_=!1;break}}if(u)_=!1;if(_)f=f.slice(1,-1);else break}return f}_findOptionalInTarget(f){if(!Array.isArray(f))return null;if(f[0]==="?.")return{guard:f[1],rewritten:[".",f[1],f[2]]};if(f[0]==="optindex")return{guard:f[1],rewritten:["[]",f[1],f[2]]};if(f[0]==="."||f[0]==="[]"){let w=this._findOptionalInTarget(f[1]);if(w)return{guard:w.guard,rewritten:[f[0],w.rewritten,f[2]]}}return null}unwrapLogical(f){if(typeof f!=="string")return f;while(f.startsWith("(")&&f.endsWith(")")){let w=0,U=1/0;for(let _=1;_<f.length-1;_++){if(f[_]==="(")w++;if(f[_]===")")w--;U=Math.min(U,w)}if(U>=0)f=f.slice(1,-1);else break}return f}unwrapIfBranch(f){if(Array.isArray(f)&&f.length===1&&(!Array.isArray(f[0])||f[0][0]!=="block"))return f[0];return f}flattenBinaryChain(f){if(!Array.isArray(f)||f.length<3)return f;let[w,...U]=f;if(w!=="&&"&&w!=="||")return f;let _=[],u=($)=>{if(Array.isArray($)&&$[0]===w)for(let F=1;F<$.length;F++)u($[F]);else _.push($)};for(let $ of U)u($);return[w,..._]}hasStatementInBranch(f){if(!Array.isArray(f))return!1;let w=f[0];if(w==="return"||w==="throw"||w==="break"||w==="continue")return!0;if(w==="block")return f.slice(1).some((U)=>this.hasStatementInBranch(U));return!1}hasNestedMultiStatement(f){if(!Array.isArray(f))return!1;if(f[0]==="if"){let[w,U,_,...u]=f;return this.is(_,"block")&&_.length>2||u.some(($)=>this.hasNestedMultiStatement($))}return!1}buildTernaryChain(f){if(f.length===0)return"undefined";if(f.length===1)return this.extractExpression(this.unwrapIfBranch(f[0]));let w=f[0];if(this.is(w,"if")){let[U,_,u,...$]=w,F=this.extractExpression(this.unwrapIfBranch(u)),W=this.buildTernaryChain([...$,...f.slice(1)]);return`(${this.generate(_,"value")} ? ${F} : ${W})`}return this.extractExpression(this.unwrapIfBranch(w))}collectVarsFromArray(f,w){f.slice(1).forEach((U)=>{if(U===","||U==="...")return;if(typeof U==="string"){w.add(U);return}if(Array.isArray(U)){if(U[0]==="..."&&typeof U[1]==="string")w.add(U[1]);else if(U[0]==="array")this.collectVarsFromArray(U,w);else if(U[0]==="object")this.collectVarsFromObject(U,w)}})}collectVarsFromObject(f,w){f.slice(1).forEach((U)=>{if(!Array.isArray(U))return;if(U[0]==="..."&&typeof U[1]==="string"){w.add(U[1]);return}if(U.length>=2){let[_,u,$]=U;if($==="="){if(typeof _==="string")w.add(_)}else if(typeof u==="string")w.add(u);else if(Array.isArray(u)){if(u[0]==="array")this.collectVarsFromArray(u,w);else if(u[0]==="object")this.collectVarsFromObject(u,w)}}})}extractStringContent(f){let w=k(f).slice(1,-1),U=t(f,"indent");if(U)w=w.replace(new RegExp(`\\n${U}`,"g"),`
|
|
483
|
+
`);if(t(f,"initialChunk")&&w.startsWith(`
|
|
484
|
+
`))w=w.slice(1);if(t(f,"finalChunk")&&w.endsWith(`
|
|
485
|
+
`))w=w.slice(0,-1);return w}processHeregex(f){let w="",U=!1,_=0,u=()=>{let $=0,F=_-1;while(F>=0&&f[F]==="\\")$++,F--;return $%2===1};while(_<f.length){let $=f[_];if($==="["&&!u()){U=!0,w+=$,_++;continue}if($==="]"&&U&&!u()){U=!1,w+=$,_++;continue}if(U){w+=$,_++;continue}if(/\s/.test($)){_++;continue}if($==="#"){if(u()){w+=$,_++;continue}let F=_-1;while(F>=0&&f[F]==="\\")F--;if(F<_-1){w+=$,_++;continue}while(_<f.length&&f[_]!==`
|
|
486
|
+
`)_++;continue}w+=$,_++}return w}addJsExtensionAndAssertions(f){if(f instanceof String)f=k(f);if(typeof f!=="string")return f;let U=f.startsWith('"')||f.startsWith("'")?f.slice(1,-1):f,_=U.startsWith("./")||U.startsWith("../"),u=U,$="";if(_){let F=U.lastIndexOf("/"),W=F>=0?U.substring(F+1):U;if(W.includes(".")){if(W.endsWith(".json"))$=" with { type: 'json' }"}else u=U+".js"}return`'${u}'`+$}containsIt(f){if(!f)return!1;if(f==="it"||f instanceof String&&k(f)==="it")return!0;if(typeof f!=="object")return!1;if(this.is(f,"def")||this.is(f,"->")||this.is(f,"=>"))return!1;if(Array.isArray(f))return f.some((w)=>this.containsIt(w));return!1}containsAwait(f){if(!f)return!1;if(f instanceof String&&t(f,"await")===!0)return!0;if(typeof f!=="object")return!1;if(this.is(f,"await"))return!0;if(this.is(f,"for-as")&&f[3]===!0)return!0;if(this.is(f,"def")||this.is(f,"->")||this.is(f,"=>")||this.is(f,"class"))return!1;if(Array.isArray(f))return f.some((w)=>this.containsAwait(w));return!1}containsYield(f){if(!f)return!1;if(typeof f!=="object")return!1;if(this.is(f,"yield")||this.is(f,"yield-from"))return!0;if(this.is(f,"def")||this.is(f,"->")||this.is(f,"=>")||this.is(f,"class"))return!1;if(Array.isArray(f))return f.some((w)=>this.containsYield(w));return!1}extractMemberName(f){if(this.is(f,".")&&f[1]==="this")return f[2];if(this.is(f,"computed"))return`[${this.generate(f[1],"value")}]`;return f}getReactiveRuntime(){return`// ============================================================================
|
|
487
487
|
// Rip Reactive Runtime
|
|
488
488
|
// A minimal, fine-grained reactivity system
|
|
489
489
|
//
|
|
@@ -712,13 +712,13 @@ if (typeof globalThis !== 'undefined') {
|
|
|
712
712
|
}
|
|
713
713
|
|
|
714
714
|
// === End Reactive Runtime ===
|
|
715
|
-
`}}class P1{constructor(f={}){this.options={showTokens:!1,showSExpr:!1,...f}}compile(f,
|
|
716
|
-
`),u=
|
|
715
|
+
`}}class P1{constructor(f={}){this.options={showTokens:!1,showSExpr:!1,...f}}compile(f,w){if(w)this.options={...this.options,...w};let U=null,_=f.split(`
|
|
716
|
+
`),u=_.findIndex((J)=>J==="__DATA__");if(u!==-1){let J=_.slice(u+1);U=J.length>0?J.join(`
|
|
717
717
|
`)+`
|
|
718
|
-
`:"",f=
|
|
719
|
-
`)}let
|
|
720
|
-
//# sourceMappingURL=data:application/json;base64,${J}`}else if(
|
|
721
|
-
//# sourceMappingURL=${this.options.filename}.js.map`;if(Y)
|
|
718
|
+
`:"",f=_.slice(0,u).join(`
|
|
719
|
+
`)}let F=new R1().tokenize(f);if(this.options.showTokens)F.forEach((J)=>console.log(`${J[0].padEnd(12)} ${JSON.stringify(J[1])}`)),console.log();let W=null,Y=null;if(this.options.types==="emit"||this.options.types==="check"||this.options.types===!0)Y=[...F];F=F.filter((J)=>J[0]!=="TYPE_DECL");while(F.length>0&&F[0][0]==="TERMINATOR")F.shift();if(F.every((J)=>J[0]==="TERMINATOR")){if(Y)W=n1(Y,["program"],f);return{tokens:F,sexpr:["program"],code:"",dts:W,data:U,reactiveVars:{}}}X1.lexer={tokens:F,pos:0,setInput:function(){},lex:function(){if(this.pos>=this.tokens.length)return 1;let J=this.tokens[this.pos++],G=J[1];if(J.data)G=new String(G),Object.assign(G,J.data);return this.text=G,this.loc=J.loc,J[0]}};let R;try{R=X1.parse(f)}catch(J){if(/\?\s*\([^)]*\?[^)]*:[^)]*\)\s*:/.test(f)||/\?\s+\w+\s+\?\s+/.test(f))throw Error("Nested ternary operators are not supported. Use if/else statements instead.");throw J}if(this.options.showSExpr)console.log(F1(R,0,!0)),console.log();let A=null;if(this.options.sourceMap){let J=(this.options.filename||"output")+".js",G=this.options.filename||"input.rip";A=new a1(J,G,f)}let Z=new $1({dataSection:U,source:f,skipPreamble:this.options.skipPreamble,skipRuntimes:this.options.skipRuntimes,skipExports:this.options.skipExports,skipImports:this.options.skipImports,skipDataPart:this.options.skipDataPart,stubComponents:this.options.stubComponents,reactiveVars:this.options.reactiveVars,sourceMap:A}),z=Z.compile(R),X=A?A.toJSON():null,H=A?A.toReverseMap():null;if(X&&this.options.sourceMap==="inline"){let J=typeof Buffer<"u"?Buffer.from(X).toString("base64"):btoa(X);z+=`
|
|
720
|
+
//# sourceMappingURL=data:application/json;base64,${J}`}else if(X&&this.options.filename)z+=`
|
|
721
|
+
//# sourceMappingURL=${this.options.filename}.js.map`;if(Y)W=n1(Y,R,f);return{tokens:F,sexpr:R,code:z,dts:W,map:X,reverseMap:H,data:U,reactiveVars:Z.reactiveVars}}compileToJS(f){return this.compile(f).code}compileToSExpr(f){return this.compile(f).sexpr}}S2($1,R1);$1.prototype.generateEnum=Q2;function y1(f,w={}){return new P1(w).compile(f)}function Y1(f,w={}){return new P1(w).compileToJS(f)}function I1(){return`globalThis.abort ??= (msg) => { if (msg) console.error(msg); process.exit(1); };
|
|
722
722
|
globalThis.assert ??= (v, msg) => { if (!v) throw new Error(msg || "Assertion failed"); };
|
|
723
723
|
globalThis.exit ??= (code) => process.exit(code || 0);
|
|
724
724
|
globalThis.kind ??= (v) => v != null ? (v.constructor?.name || Object.prototype.toString.call(v).slice(8, -1)).toLowerCase() : String(v);
|
|
@@ -731,17 +731,17 @@ globalThis.sleep ??= (ms) => new Promise(r => setTimeout(r, ms));
|
|
|
731
731
|
globalThis.todo ??= (msg) => { throw new Error(msg || "Not implemented"); };
|
|
732
732
|
globalThis.warn ??= console.warn;
|
|
733
733
|
globalThis.zip ??= (...a) => a[0].map((_, i) => a.map(b => b[i]));
|
|
734
|
-
`}function B1(){return new $1({}).getReactiveRuntime()}function N1(){return new $1({}).getComponentRuntime()}var
|
|
735
|
-
`}catch(z){console.error(`Rip compile error in ${
|
|
734
|
+
`}function B1(){return new $1({}).getReactiveRuntime()}function N1(){return new $1({}).getComponentRuntime()}var L2="3.13.121",T2="2026-03-17@16:10:50GMT";if(typeof globalThis<"u"){if(!globalThis.__rip)Function(B1())();if(!globalThis.__ripComponent)Function(N1())()}var z7=(f)=>{let w=f.match(/^[ \t]*(?=\S)/gm),U=Math.min(...(w||[]).map((_)=>_.length));return f.replace(RegExp(`^[ ]{${U}}`,"gm"),"").trim()};async function h2(){let f=[],w=document.querySelector('script[src$="rip.min.js"], script[src$="rip.js"]'),U=w?.getAttribute("data-src");if(U){for(let _ of U.trim().split(/\s+/))if(_)f.push({url:_})}for(let _ of document.querySelectorAll('script[type="text/rip"]'))if(_.src)f.push({url:_.src});else{let u=z7(_.textContent);if(u)f.push({code:u})}if(f.length>0){let _=await Promise.allSettled(f.map(async(Y)=>{if(!Y.url)return;let R=await fetch(Y.url);if(!R.ok)throw Error(`${Y.url} (${R.status})`);if(Y.url.endsWith(".rip"))Y.code=await R.text();else{let A=await R.json();Y.bundle=A}}));for(let Y of _)if(Y.status==="rejected")console.warn("Rip: fetch failed:",Y.reason.message);let u=[],$=[];for(let Y of f)if(Y.bundle)u.push(Y.bundle);else if(Y.code)$.push(Y);let F=w?.getAttribute("data-router");if(F!=null&&u.length>0){let Y={skipRuntimes:!0,skipExports:!0,skipImports:!0};if($.length>0){let A="";for(let Z of $)try{A+=Y1(Z.code,Y)+`
|
|
735
|
+
`}catch(z){console.error(`Rip compile error in ${Z.url||"inline"}:`,z.message)}if(A)try{await(0,eval)(`(async()=>{
|
|
736
736
|
${A}
|
|
737
|
-
})()`)}catch(
|
|
738
|
-
`),z=
|
|
739
|
-
${z}.mount(${JSON.stringify(
|
|
740
|
-
${
|
|
741
|
-
})()`),document.body.classList.add("ready")}catch(
|
|
742
|
-
${
|
|
743
|
-
})()`)}catch(J){console.error(` → source: ${
|
|
744
|
-
`,u=new Blob([U
|
|
745
|
-
${_}`).replace(/^let\s+[^;]+;\s*\n\s*/m,"");U=U.replace(/^const\s+(\w+)\s*=/gm,"globalThis.$1 =");let u=(0,eval)(U);if(u&&typeof u.then==="function")return u.then(($)=>{if($!==void 0)globalThis._=$;return $});if(u!==void 0)globalThis._=u;return u}catch(_){console.error("Rip compilation error:",_.message);return}}if(typeof globalThis<"u")globalThis.rip=V2,globalThis.importRip=K1,globalThis.compileToJS=Y1,globalThis.__ripExports={compile:c1,compileToJS:Y1,formatSExpr:w1,getStdlibCode:I1,VERSION:S2,BUILD_DATE:L2,getReactiveRuntime:B1,getComponentRuntime:N1};if(typeof document<"u")globalThis.__ripScriptsReady=new Promise((f)=>{let _=()=>T2().then(f);if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",()=>queueMicrotask(_));else queueMicrotask(_)});var x1={};Y2(x1,{throttle:()=>Q7,stash:()=>U3,setContext:()=>u3,raw:()=>f2,persistStash:()=>F3,launch:()=>K7,isStash:()=>A7,hold:()=>X7,hasContext:()=>s2,getContext:()=>o2,delay:()=>w3,debounce:()=>z7,createRouter:()=>Y3,createResource:()=>Z7,createRenderer:()=>R3,createComponents:()=>W3});var h2,s1,$2,M1,Z1,g1,C2,J1,e,j2,y2,c2,b2,O1,f1,v2,g2,x2,l2,k2,m2,t1,L1,T1,_2,i2,n2,b1,v1,d2,p2,r2,e1,u2,o2,a2,U2,s2,S1,F2,t2,e2,u3,f3,$3,w2,_3;globalThis.abort??=(f)=>{if(f)console.error(f);process.exit(1)};globalThis.assert??=(f,_)=>{if(!f)throw Error(_||"Assertion failed")};globalThis.exit??=(f)=>process.exit(f||0);globalThis.kind??=(f)=>f!=null?(f.constructor?.name||Object.prototype.toString.call(f).slice(8,-1)).toLowerCase():String(f);globalThis.noop??=()=>{};globalThis.p??=console.log;globalThis.pp??=(f)=>{return console.log(JSON.stringify(f,null,2)),f};globalThis.raise??=(f,_)=>{throw _!==void 0?new f(_):Error(f)};globalThis.rand??=(f,_)=>_!==void 0?(f>_&&([f,_]=[_,f]),Math.floor(Math.random()*(_-f+1)+f)):f?Math.floor(Math.random()*f):Math.random();globalThis.sleep??=(f)=>new Promise((_)=>setTimeout(_,f));globalThis.todo??=(f)=>{throw Error(f||"Not implemented")};globalThis.warn??=console.warn;globalThis.zip??=(...f)=>f[0].map((_,F)=>f.map((U)=>U[F]));({__state:e,__effect:J1,__batch:C2}=globalThis.__rip);({setContext:u3,getContext:o2,hasContext:s2}=globalThis.__ripComponent||{});g1=Symbol("stash");Z1=Symbol("signals");M1=Symbol("raw");s1=Symbol("persisted");$2=new WeakMap;t1=0;_2=e(0);U2=function(f,_){let F;if(!f[Z1])Object.defineProperty(f,Z1,{value:new Map,enumerable:!1});if(F=f[Z1].get(_),!F)F=e(f[_]),f[Z1].set(_,F);return F};S1=function(f){return U2(f,Symbol.for("keys"))};_3=function(f){let _;if(!(f!=null&&typeof f==="object"))return f;if(f[g1])return f;if(f instanceof Date||f instanceof RegExp||f instanceof Map||f instanceof Set||f instanceof Promise)return f;if(_=$2.get(f),_)return _;return F2(f)};F2=function(f){let _,F;return F=null,_={get:function(U,u){let $,W;if(u===g1)return!0;if(u===M1)return U;if(typeof u==="symbol")return Reflect.get(U,u);if(u==="length"&&Array.isArray(U))return S1(U).value,U.length;if(u==="get")return function(w){return f3(F,w)};if(u==="set")return function(w,Y){return $3(F,w,Y)};if($=U2(U,u),W=$.value,W!=null&&typeof W==="object")return _3(W);return W},set:function(U,u,$){let W,w;if(W=U[u],w=$?.[M1]?$[M1]:$,w===W)return!0;if(U[u]=w,U[Z1]?.has(u))U[Z1].get(u).value=w;if(W===void 0&&w!==void 0)S1(U).value=++t1;return _2.value++,!0},deleteProperty:function(U,u){let $;if(delete U[u],$=U[Z1]?.get(u),$!=null)$.value=void 0;return S1(U).value=++t1,!0},ownKeys:function(U){return S1(U).value,Reflect.ownKeys(U)}},F=new Proxy(f,_),$2.set(f,F),F};h2=/([./][^./\[\s]+|\[[-+]?\d+\]|\[(?:"[^"]+"|'[^']+')\])/;w2=function(f){let _,F,U,u,$;U=("."+f).split(h2),U.shift(),$=[],F=0;while(F<U.length){if(u=U[F],_=u[0],_==="."||_==="/")$.push(u.slice(1));else if(_==="[")if(u[1]==='"'||u[1]==="'")$.push(u.slice(2,-2));else $.push(+u.slice(1,-1));F+=2}return $};f3=function(f,_){let F,U;U=w2(_),F=f;for(let u of U){if(F==null)return;F=F[u]}return F};$3=function(f,_,F){let U,u;u=w2(_),U=f;for(let $=0;$<u.length;$++){let W=u[$];if($===u.length-1)U[W]=F;else{if(U[W]==null)U[W]={};U=U[W]}}return F};var U3=function(f={}){return F2(f)},f2=function(f){return f?.[M1]?f[M1]:f},A7=function(f){return f?.[g1]===!0},F3=function(f,_={}){let F,U,u,$,W,w;if(w=f2(f)||f,w[s1])return;w[s1]=!0,$=_.local?localStorage:sessionStorage,W=_.key||"__rip_app";try{if(U=$.getItem(W),U){u=JSON.parse(U);for(let Y in u){let Z=u[Y];f.data[Y]=Z}}}catch{}return F=function(){return(()=>{try{return $.setItem(W,JSON.stringify(f2(f.data)))}catch{return null}})()},J1(function(){let Y;return _2.value,Y=setTimeout(F,2000),function(){return clearTimeout(Y)}}),window.addEventListener("beforeunload",F)},Z7=function(f,_={}){let F,U,u,$,W;if(F=e(_.initial||null),u=e(!1),U=e(null),$=async function(){let w;return u.value=!0,U.value=null,(async()=>{try{return w=await f(),F.value=w}catch(Y){return U.value=Y}finally{u.value=!1}})()},W={data:void 0,loading:void 0,error:void 0,refetch:$},Object.defineProperty(W,"data",{get:function(){return F.value}}),Object.defineProperty(W,"loading",{get:function(){return u.value}}),Object.defineProperty(W,"error",{get:function(){return U.value}}),!_.lazy)$();return W};T1=function(f){return typeof f==="function"?f:function(){return f.value}};L1=function(f,_){let F;return F={read:function(){return f.read()}},Object.defineProperty(F,"value",{get:function(){return f.value},set:function(U){return _.value=U}}),F};var w3=function(f,_){let F,U;return F=T1(_),U=e(!!F()),J1(function(){let u;if(F())return u=setTimeout(function(){return U.value=!0},f),function(){return clearTimeout(u)};else return U.value=!1}),typeof _!=="function"?L1(U,_):U},z7=function(f,_){let F,U;return F=T1(_),U=e(F()),J1(function(){let u,$;return $=F(),u=setTimeout(function(){return U.value=$},f),function(){return clearTimeout(u)}}),typeof _!=="function"?L1(U,_):U},Q7=function(f,_){let F,U,u;return F=T1(_),u=e(F()),U=0,J1(function(){let $,W,w,Y;if(Y=F(),$=Date.now(),W=f-($-U),W<=0)return u.value=Y,U=$;else return w=setTimeout(function(){return u.value=F(),U=Date.now()},W),function(){return clearTimeout(w)}}),typeof _!=="function"?L1(u,_):u},X7=function(f,_){let F,U;return F=T1(_),U=e(!!F()),J1(function(){let u;if(F())return U.value=!0;else return u=setTimeout(function(){return U.value=!1},f),function(){return clearTimeout(u)}}),typeof _!=="function"?L1(U,_):U},W3=function(){let f,_,F,U;return _=new Map,U=[],f=new Map,F=function(u,$){for(let W of U)W(u,$)},{read:function(u){return _.get(u)},write:function(u,$){let W;return W=!_.has(u),_.set(u,$),f.delete(u),F(W?"create":"change",u)},del:function(u){return _.delete(u),f.delete(u),F("delete",u)},exists:function(u){return _.has(u)},size:function(){return _.size},list:function(u=""){let $,W,w;w=[],$=u?u+"/":"";for(let[Y]of _)if(Y.startsWith($)){if(W=Y.slice($.length),W.includes("/"))continue;w.push(Y)}return w},listAll:function(u=""){let $,W;W=[],$=u?u+"/":"";for(let[w]of _)if(w.startsWith($))W.push(w);return W},load:function(u){for(let $ in u){let W=u[$];_.set($,W)}},watch:function(u){return U.push(u),function(){return U.splice(U.indexOf(u),1)}},getCompiled:function(u){return f.get(u)},setCompiled:function(u,$){return f.set(u,$)}}};r2=function(f){let _;if(_=f.replace(/\.rip$/,""),_=_.replace(/\[\.\.\.(\w+)\]/g,"*$1"),_=_.replace(/\[(\w+)\]/g,":$1"),_==="index")return"/";return _=_.replace(/\/index$/,""),"/"+_};e2=function(f){let _,F;return _=[],F=f.replace(/\*(\w+)/g,function(U,u){return _.push(u),"(.+)"}).replace(/:(\w+)/g,function(U,u){return _.push(u),"([^/]+)"}),{regex:new RegExp("^"+F+"$"),names:_}};t2=function(f,_){let F,U;for(let u of _)if(F=f.match(u.regex.regex),F){U={};for(let $=0;$<u.regex.names.length;$++){let W=u.regex.names[$];U[W]=decodeURIComponent(F[$+1])}return{route:u,params:U}}return null};b1=function(f,_="components"){let F,U,u,$,W,w,Y,Z,A;Y=[],u=new Map,F=f.listAll(_);for(let R of F){if(w=R.slice(_.length+1),!w.endsWith(".rip"))continue;if($=w.split("/").pop(),$==="_layout.rip"){U=w==="_layout.rip"?"":w.slice(0,-12),u.set(U,R);continue}if($.startsWith("_"))continue;if(Z=w.split("/"),Z.length>1&&Z.some(function(z,Q){return Q<Z.length-1&&z.startsWith("_")}))continue;A=r2(w),W=e2(A),Y.push({pattern:A,regex:W,file:R,rel:w})}return Y.sort(function(R,z){let Q,D,J,q;if(D=(R.pattern.match(/:/g)||[]).length,q=(z.pattern.match(/:/g)||[]).length,Q=R.pattern.includes("*")?1:0,J=z.pattern.includes("*")?1:0,Q!==J)return Q-J;if(D!==q)return D-q;return R.pattern.localeCompare(z.pattern)}),{routes:Y,layouts:u}};a2=function(f,_,F){let U,u,$,W;if(U=[],$=f.slice(_.length+1),W=$.split("/"),u="",F.has(""))U.push(F.get(""));for(let w=0;w<W.length;w++){let Y=W[w];if(w===W.length-1)break;if(u=u?u+"/"+Y:Y,F.has(u))U.push(F.get(u))}return U};var Y3=function(f,_={}){let F,U,u,$,W,w,Y,Z,A,R,z,Q,D,J,q,X,G,O,K,P,E;if(G=_.root||"components",A=_.base||"",R=_.hash||!1,D=_.onError||null,K=function(H){return A&&H.startsWith(A)?H.slice(A.length)||"/":H},Z=function(H){return A?A+H:H},q=function(){let H;if(R){if(H=location.hash.slice(1),!H)return"/";return H[0]==="/"?H:"/"+H}else return location.pathname+location.search+location.hash},E=function(H){return R?H==="/"?location.pathname:"#"+H.slice(1):Z(H)},W=e(K(R?q():location.pathname)),$=e({}),Y=e(null),U=e([]),w=e({}),F=e(""),u=w3(100,e(!1)),P=b1(f,G),z=new Set,f.watch(function(H,M){if(!M.startsWith(G+"/"))return;return P=b1(f,G)}),X=function(H){let M,I,S,N,B;if(N=H.split("?")[0].split("#")[0],I=K(N),I=I[0]==="/"?I:"/"+I,S=H.split("?")[1]?.split("#")[0]||"",M=H.includes("#")?H.split("#")[1]:"",B=t2(I,P.routes),B){C2(function(){return W.value=I,$.value=B.params,Y.value=B.route,U.value=a2(B.route.file,G,P.layouts),w.value=Object.fromEntries(new URLSearchParams(S)),F.value=M});for(let V of z)V(O.current);return!0}if(D)D({status:404,path:I});return!1},J=function(){return X(q())},typeof window<"u")window.addEventListener("popstate",J);if(Q=function(H){let M,I,S;if(H.button!==0||H.metaKey||H.ctrlKey||H.shiftKey||H.altKey)return;I=H.target;while(I&&I.tagName!=="A")I=I.parentElement;if(!I?.href)return;if(S=new URL(I.href,location.origin),S.origin!==location.origin)return;if(I.target==="_blank"||I.hasAttribute("data-external"))return;return H.preventDefault(),M=R&&S.hash?S.hash.slice(1)||"/":S.pathname+S.search+S.hash,O.push(M)},typeof document<"u")document.addEventListener("click",Q);return O={push:function(H){return X(H)?history.pushState(null,"",E(W.read())):void 0},replace:function(H){return X(H)?history.replaceState(null,"",E(W.read())):void 0},back:function(){return history.back()},forward:function(){return history.forward()},current:void 0,path:void 0,params:void 0,route:void 0,layouts:void 0,query:void 0,hash:void 0,navigating:void 0,onNavigate:function(H){return z.add(H),function(){return z.delete(H)}},rebuild:function(){return P=b1(f,G)},routes:void 0,init:function(){return X(q()),O},destroy:function(){if(typeof window<"u")window.removeEventListener("popstate",J);if(typeof document<"u")document.removeEventListener("click",Q);return z.clear()}},Object.defineProperty(O,"current",{get:function(){return{path:W.value,params:$.value,route:Y.value,layouts:U.value,query:w.value,hash:F.value}}}),Object.defineProperty(O,"path",{get:function(){return W.value}}),Object.defineProperty(O,"params",{get:function(){return $.value}}),Object.defineProperty(O,"route",{get:function(){return Y.value}}),Object.defineProperty(O,"layouts",{get:function(){return U.value}}),Object.defineProperty(O,"query",{get:function(){return w.value}}),Object.defineProperty(O,"hash",{get:function(){return F.value}}),Object.defineProperty(O,"navigating",{get:function(){return u.value},set:function(H){return u.value=H}}),Object.defineProperty(O,"routes",{get:function(){return P.routes}}),O};i2=function(f,_){if(f.length!==_.length)return!1;for(let F=0;F<f.length;F++)if(f[F]!==_[F])return!1;return!0};u2=function(f){for(let _ in f){let F=f[_];if(typeof F==="function"&&(F.prototype?.mount||F.prototype?._create))return F}return typeof f.default==="function"?f.default:void 0};e1=function(f){let _;_={};for(let F in f){let U=f[F];if(typeof U==="function"&&(U.prototype?.mount||U.prototype?._create))_[F]=U}return _};p2=function(f){let _;return _=f.split("/").pop().replace(/\.rip$/,""),_.replace(/(^|[-_])([a-z])/g,function(F,U,u){return u.toUpperCase()})};n2=function(f,_="components"){let F,U,u;U={};for(let $ of f.listAll(_)){if(!$.endsWith(".rip"))continue;if(F=$.split("/").pop(),F.startsWith("_"))continue;if(u=p2($),U[u])console.warn(`[Rip] Component name collision: ${u} (${U[u]} vs ${$})`);U[u]=$}return U};v1=async function(f,_,F=null,U=null,u=null){let $,W,w,Y,Z,A,R,z,Q,D,J,q;if(F&&U){if(W=F.getCompiled(U),W)return W}if(R=_(f),u){D={};for(let X in u.map){let G=u.map[X];if(G!==U&&R.includes(`new ${X}(`)){if(!u.classes[X]){if(Y=F.read(G),Y){w=await v1(Y,_,F,G,u),Z=e1(w);for(let O in Z){let K=Z[O];u.classes[O]=K}}}if(u.classes[X])D[X]=!0}}if(Q=Object.keys(D),Q.length>0)J=`const {${Q.join(", ")}} = globalThis['${u.key}'];
|
|
746
|
-
`,
|
|
747
|
-
`:"",$=new Blob([A+R],{type:"application/javascript"}),q=URL.createObjectURL($),z=await import(q),u){Z=e1(z);for(let X in Z){let G=Z[X];u.classes[X]=G}}if(F&&U)F.setCompiled(U,z);return z};var R3=function(f={}){let _,F,U,u,$,W,w,Y,Z,A,R,z,Q,D,J,q,X,G,O,K,P,E;if({router:K,app:_,components:$,resolver:O,compile:U,target:P,onError:X}=f,W=typeof P==="string"?document.querySelector(P):P||document.getElementById("app"),!W)W=document.createElement("div"),W.id="app",document.body.appendChild(W);return W.style.opacity="0",w=null,A=null,Z=null,Y=[],Q=[],J=W,z=0,R=null,u=new Map,D=f.cacheSize||10,F=function(){let H,M;if(w&&A){if(w.beforeUnmount)w.beforeUnmount();if(u.set(A,w),u.size>D){if(M=u.keys().next().value,H=u.get(M),H.unmounted)H.unmounted();u.delete(M)}return w=null,A=null}},E=function(){F();for(let H=Q.length-1;H>=0;H--){let M=Q[H];if(M.beforeUnmount)M.beforeUnmount();if(M.unmounted)M.unmounted();M._target?.remove()}return Q=[],J=W},$.watch(function(H,M){let I;if(u.has(M)){if(I=u.get(M),I.unmounted)I.unmounted();return u.delete(M)}}),q=async function(H){let M,I,S,N,B,V,y,L,a,T,h,C,g,i,j,c,v,x,n,d,p,b;if({route:n,params:c,layouts:L,query:x}=H,!n)return;if(n.file===A&&JSON.stringify(c)===JSON.stringify(Z))return;return Z=c,N=++z,K.navigating=!0,(async()=>{try{if(p=$.read(n.file),!p){if(X)X({status:404,message:`File not found: ${n.file}`});K.navigating=!1;return}if(C=await v1(p,U,$,n.file,O),N!==z){K.navigating=!1;return}if(M=u2(C),!M){if(X)X({status:500,message:`No component found in ${n.file}`});K.navigating=!1;return}if(h=!i2(L,Y),i=w?._target,h)E();else F();if(g=h?W:J,h&&L.length>0){W.innerHTML="",g=W;for(let l of L){if(T=$.read(l),!T)continue;if(a=await v1(T,U,$,l,O),N!==z){K.navigating=!1;return}if(I=u2(a),!I)continue;if(V=new I({app:_,params:c,router:K}),V.beforeMount)V.beforeMount();b=document.createElement("div"),b.setAttribute("data-layout",l),g.appendChild(b),V.mount(b),Q.push(V),d=b.querySelector("#content")||b,g=d}Y=[...L],J=g}else if(h)W.innerHTML="",Y=[],J=W;if(S=u.get(n.file),S)u.delete(n.file),g.appendChild(S._target),w=S,A=n.file;else{if(j=document.createElement("div"),j.setAttribute("data-component",n.file),g.appendChild(j),y=new M({app:_,params:c,query:x,router:K}),y.beforeMount)y.beforeMount();if(y.mount(j),w=y,A=n.file,y.load)await y.load(c,x)}return i?.remove(),K.navigating=!1,W.style.opacity==="0"?document.fonts.ready.then(function(){return requestAnimationFrame(function(){return W.style.transition="opacity 150ms ease-in",W.style.opacity="1"})}):void 0}catch(l){if(K.navigating=!1,W.style.opacity="1",console.error(`Renderer: error mounting ${n.file}:`,l),X)X({status:500,message:l.message,error:l});B=!1;for(let m=Q.length-1;m>=0;m--){let s=Q[m];if(s.onError)try{s.onError(l),B=!0;break}catch(r){console.error("Renderer: error boundary failed:",r)}}return(()=>{if(!B)return v=document.createElement("pre"),v.style.cssText="color:red;padding:1em",v.textContent=l.stack||l.message,W.innerHTML="",W.appendChild(v)})()}})()},G={start:function(){return R=J1(function(){let H;return H=K.current,H.route?q(H):void 0}),K.init(),G},stop:function(){if(E(),R)R(),R=null;return W.innerHTML=""},remount:function(){let H;return H=K.current,H.route?q(H):void 0},cache:u},G};d2=function(f){let _,F,U;return U=1000,F=30000,_=function(){let u;return u=new EventSource(f),u.addEventListener("connected",function(){return U=1000,console.log("[Rip] Hot reload connected")}),u.addEventListener("reload",function(){return console.log("[Rip] Reloading..."),location.reload()}),u.addEventListener("css",function(){for(let $ of document.querySelectorAll('link[rel="stylesheet"]'))f=new URL($.href),f.searchParams.set("_t",Date.now()),$.href=f.toString()}),u.onerror=function(){return u.close(),setTimeout(_,U),U=Math.min(U*2,F)}},_()};var K7=async function(f="",_={}){let F,U,u,$,W,w,Y,Z,A,R,z,Q,D,J,q,X,G;if(globalThis.__ripLaunched=!0,typeof f==="object")_=f,f="";if(f=f.replace(/\/+$/,""),G=_.target||"#app",w=_.compile||null,Q=_.persist||!1,R=_.hash||!1,!w)w=globalThis?.compileToJS||null;if(typeof document<"u"&&!document.querySelector(G))Y=document.createElement("div"),Y.id=G.replace(/^#/,""),document.body.prepend(Y);if(_.bundle)u=_.bundle;else if(_.bundleUrl){if(z={},A=`__rip_etag_${_.bundleUrl}`,$=sessionStorage.getItem(A),$)z["If-None-Match"]=$;if(J=await fetch(_.bundleUrl,{headers:z}),J.status===304)u=JSON.parse(sessionStorage.getItem(`${A}_data`));else if(J.ok){if(u=await J.json(),Z=J.headers.get("etag"),Z)sessionStorage.setItem(A,Z),sessionStorage.setItem(`${A}_data`,JSON.stringify(u))}else throw Error(`launch: ${_.bundleUrl} (${J.status})`)}else throw Error("launch: no bundle or bundleUrl provided");if(F=U3({components:{},routes:{},data:{}}),globalThis.__ripApp=F,u.data)F.data=u.data;if(u.routes)F.routes=u.routes;if(Q&&typeof sessionStorage<"u")F3(F,{local:Q==="local",key:`__rip_${f}`});if(U=W3(),u.components)U.load(u.components);if(W=`__rip_${f.replace(/\//g,"_")||"app"}`,q={map:n2(U),classes:{},key:W},typeof globalThis<"u")globalThis[W]=q.classes;if(F.data.title&&typeof document<"u")document.title=F.data.title;if(X=Y3(U,{root:"components",base:f,hash:R,onError:function(O){return console.error(`[Rip] Error ${O.status}: ${O.message||O.path}`)}}),D=R3({router:X,app:F,components:U,resolver:q,compile:w,target:G,onError:function(O){return console.error(`[Rip] ${O.message}`,O.error)}}),D.start(),u.data?.watch)d2(`${f}/watch`);if(typeof window<"u")window.app=F,window.__RIP__={app:F,components:U,router:X,renderer:D,cache:D.cache,version:"0.3.0"};return{app:F,components:U,router:X,renderer:D}};f1=function(f,_){if(!_)return;return f.preventDefault(),f.stopPropagation(),_()};globalThis.__ariaLastFocusedEl??=null;if(typeof document<"u"&&!globalThis.__ariaFocusTrackerBound)document.addEventListener("focusin",function(f){return globalThis.__ariaLastFocusedEl=f.target},!0),globalThis.__ariaFocusTrackerBound=!0;c2=function(f,_){if(f.isComposing)return;return(()=>{switch(f.key){case"ArrowDown":return f1(f,_.next);case"ArrowUp":return f1(f,_.prev);case"Home":case"PageUp":return f1(f,_.first);case"End":case"PageDown":return f1(f,_.last);case"Enter":case" ":return f1(f,_.select);case"Escape":return f1(f,_.dismiss);case"Tab":return _.tab?.();default:return f.key.length===1?_.char?.(f.key):void 0}})()};v2=function(f,_,F,U=[],u=null){let $,W,w;if(!f)return;return $=function(Y){return typeof Y==="function"?Y():Y},W=(Y)=>{return![$(_),...U.map($)].some(function(Z){return Z?.contains(Y.target)})?F():void 0},w=(Y)=>{if($(_)?.contains(Y.target))return;return u?u():F()},document.addEventListener("mousedown",W),window.addEventListener("scroll",w,!0),function(){return document.removeEventListener("mousedown",W),window.removeEventListener("scroll",w,!0)}};y2=function(f,_,F,U=null){let u,$,W,w,Y,Z,A,R,z,Q;if(w=function(D){return typeof D==="function"?D():D},u=function(){let D,J;if(D=document.activeElement,D&&D!==document.body)return D;if(J=globalThis.__ariaLastFocusedEl,J?.isConnected!==!1)return J;return null},W=w(_),!W)return;if(!Object.hasOwn(HTMLElement.prototype,"togglePopover"))return;if(A=null,R=function(){let D,J;if(J=A,A=null,!J?.focus)return;return D=function(q=6){if(J.isConnected===!1)return;try{J.focus({preventScroll:!0})}catch{J.focus()}if(document.activeElement===J||q<=1)return;return setTimeout(function(){return D(q-1)},16)},requestAnimationFrame(function(){return D()})},Y=function(D){let J;if(J=D.newState==="open",J)A=w(U)||u();else R();return F?.(J)},W.addEventListener("toggle",Y),z=W.matches(":popover-open"),$=!!f,z!==$){if(Q=w(U),$)A=Q||u();Z=Q&&$?{force:$,source:Q}:{force:$};try{W.togglePopover(Z)}catch{}}return function(){return W.removeEventListener("toggle",Y)}};j2=function(f,_,F,U=!0){let u,$,W,w,Y,Z,A;if(W=function(R){return typeof R==="function"?R():R},u=function(){let R,z;if(R=document.activeElement,R&&R!==document.body)return R;if(z=globalThis.__ariaLastFocusedEl,z?.isConnected!==!1)return z;return null},$=W(_),!$?.showModal)return;if(Z=null,A=function(){let R,z;if(z=Z,Z=null,!z?.focus)return;return R=function(Q=6){if(z.isConnected===!1)return;try{z.focus({preventScroll:!0})}catch{z.focus()}if(document.activeElement===z||Q<=1)return;return setTimeout(function(){return R(Q-1)},16)},requestAnimationFrame(function(){return R()})},w=function(R){if(!U){R.preventDefault();return}return F?.(!1)},Y=function(){return F?.(!1),A()},$.addEventListener("cancel",w),$.addEventListener("close",Y),f&&!$.open){if(!Z)Z=u();try{$.showModal()}catch{}}if(!f&&$.open)$.close();return function(){return $.removeEventListener("cancel",w),$.removeEventListener("close",Y)}};x2=function(f,_,F="vertical"){let U,u;if(f.isComposing)return;return u=F!=="horizontal",U=F!=="vertical",(()=>{switch(f.key){case"ArrowDown":return u?f1(f,_.next):void 0;case"ArrowUp":return u?f1(f,_.prev):void 0;case"ArrowRight":return U?f1(f,_.next):void 0;case"ArrowLeft":return U?f1(f,_.prev):void 0;case"Home":case"PageUp":return f1(f,_.first);case"End":case"PageDown":return f1(f,_.last);case"Enter":case" ":return f1(f,_.select);case"Escape":return f1(f,_.dismiss);default:return f.key.length===1?_.char?.(f.key):void 0}})()};g2=function(f,_,F=4,U=!0){let u,$;if(!(f&&_))return;if($=f.getBoundingClientRect(),_.style.position="fixed",_.style.left=`${$.left}px`,_.style.top=`${$.bottom+F}px`,_.style.minWidth=`${$.width}px`,u=_.getBoundingClientRect(),u.bottom>window.innerHeight)_.style.top=`${$.top-u.height-F}px`;if(u.right>window.innerWidth)_.style.left=`${window.innerWidth-u.width-F}px`;return U?_.style.visibility="visible":void 0};var J7='a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),[tabindex]:not([tabindex="-1"])';l2=function(f){let _;return _=function(F){let U,u,$;if(F.key!=="Tab")return;if($=Array.from(f.querySelectorAll(J7)).filter(function(W){return W.offsetParent!==null}),!$.length)return;return U=$[0],u=$[$.length-1],F.shiftKey?document.activeElement===U?(F.preventDefault(),u.focus()):void 0:document.activeElement===u?(F.preventDefault(),U.focus()):void 0},f.addEventListener("keydown",_),function(){return f.removeEventListener("keydown",_)}};m2=function(f,_){let F,U;if(!f)return;if(U=f.querySelector("h1,h2,h3,h4,h5,h6"),U)U.id??=`${_}-title`,f.setAttribute("aria-labelledby",U.id);if(F=f.querySelector("p"),F)return F.id??=`${_}-desc`,f.setAttribute("aria-describedby",F.id)};O1=[];b2=function(f){let _;if(_=window.scrollY,O1.push({instance:f,scrollY:_}),O1.length===1)return document.body.style.position="fixed",document.body.style.top=`-${_}px`,document.body.style.width="100%"};k2=function(f){let _,F;if(_=O1.findIndex(function(U){return U.instance===f}),_<0)return;if({scrollY:F}=O1.splice(_,1)[0],!O1.length)return document.body.style.position="",document.body.style.top="",document.body.style.width="",window.scrollTo(0,F)};globalThis.__aria??={listNav:c2,rovingNav:x2,popupDismiss:v2,bindPopover:y2,bindDialog:j2,positionBelow:g2,trapFocus:l2,wireAria:m2,lockScroll:b2,unlockScroll:k2};globalThis.ARIA??=globalThis.__aria;K1.modules["ui.rip"]=x1;for(let[f,_]of Object.entries(x1))if(typeof _==="function")globalThis[f]=_;})();
|
|
737
|
+
})()`)}catch(Z){console.error("Rip runtime error:",Z)}}let R=K1.modules?.["ui.rip"];if(R?.launch){let A=u[u.length-1],Z=w.getAttribute("data-persist"),z={bundle:A,hash:F==="hash"};if(Z!=null)z.persist=Z==="local"?"local":!0;await R.launch("",z)}}else{let Y=[];for(let Z of u){for(let[z,X]of Object.entries(Z.components||{}))Y.push({code:X,url:z});if(Z.data){let z=w?.getAttribute("data-state"),X={};if(z)try{X=JSON.parse(z)}catch{}Object.assign(X,Z.data),w?.setAttribute("data-state",JSON.stringify(X))}}Y.push(...$);let R={skipRuntimes:!0,skipExports:!0,skipImports:!0},A=[];for(let Z of Y){if(!Z.code)continue;try{let z=Y1(Z.code,R);A.push({js:z,url:Z.url||"inline"})}catch(z){console.error(`Rip compile error in ${Z.url||"inline"}:`,z.message)}}if(!globalThis.__ripApp&&w){let Z=globalThis.stash;if(Z){let z={},X=w.getAttribute("data-state");if(X)try{z=JSON.parse(X)}catch(G){console.error("Rip: invalid data-state JSON:",G.message)}let H=Z({data:z});if(globalThis.__ripApp=H,typeof window<"u")window.app=H;let J=w.getAttribute("data-persist");if(J!=null&&globalThis.persistStash)globalThis.persistStash(H,{local:J==="local"})}}if(A.length>0){let Z=A.map((X)=>X.js).join(`
|
|
738
|
+
`),z=w?.getAttribute("data-mount");if(z){let X=w.getAttribute("data-target")||"body";Z+=`
|
|
739
|
+
${z}.mount(${JSON.stringify(X)});`}try{await(0,eval)(`(async()=>{
|
|
740
|
+
${Z}
|
|
741
|
+
})()`),document.body.classList.add("ready")}catch(X){if(X instanceof SyntaxError){console.error(`Rip syntax error in combined output: ${X.message}`);for(let H of A)try{Function(`(async()=>{
|
|
742
|
+
${H.js}
|
|
743
|
+
})()`)}catch(J){console.error(` → source: ${H.url}`,J.message)}}else console.error("Rip runtime error:",X)}}}}if(w?.hasAttribute("data-reload")&&!globalThis.__ripLaunched){let _=!1,u=1000,$=30000,F=()=>{let W=new EventSource("/watch");W.addEventListener("connected",()=>{if(u=1000,_)location.reload();_=!0}),W.addEventListener("reload",(Y)=>{if(Y.data==="styles"){let R=Date.now(),A=0;if(document.querySelectorAll('link[rel="stylesheet"]').forEach((Z)=>{if(new URL(Z.href).origin!==location.origin)return;let z=new URL(Z.href);z.searchParams.set("_r",R),Z.href=z.toString(),A++}),!A)location.reload()}else location.reload()}),W.onerror=()=>{W.close(),setTimeout(F,u),u=Math.min(u*2,$)}};F()}}async function K1(f){for(let[F,W]of Object.entries(K1.modules))if(f.includes(F))return W;let w=await fetch(f).then((F)=>{if(!F.ok)throw Error(`importRip: ${f} (${F.status})`);return F.text()}),U=Y1(w),_=`// ${f}
|
|
744
|
+
`,u=new Blob([_+U],{type:"application/javascript"});return await import(URL.createObjectURL(u))}K1.modules={};function V2(f){try{let w=f.replace(/^/gm," "),_=Y1(`do ->
|
|
745
|
+
${w}`).replace(/^let\s+[^;]+;\s*\n\s*/m,"");_=_.replace(/^const\s+(\w+)\s*=/gm,"globalThis.$1 =");let u=(0,eval)(_);if(u&&typeof u.then==="function")return u.then(($)=>{if($!==void 0)globalThis._=$;return $});if(u!==void 0)globalThis._=u;return u}catch(w){console.error("Rip compilation error:",w.message);return}}if(typeof globalThis<"u")globalThis.rip=V2,globalThis.importRip=K1,globalThis.compileToJS=Y1,globalThis.__ripExports={compile:y1,compileToJS:Y1,formatSExpr:F1,getStdlibCode:I1,VERSION:L2,BUILD_DATE:T2,getReactiveRuntime:B1,getComponentRuntime:N1};if(typeof document<"u")globalThis.__ripScriptsReady=new Promise((f)=>{let w=()=>h2().then(f);if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",()=>queueMicrotask(w));else queueMicrotask(w)});var x1={};A2(x1,{throttle:()=>J7,stash:()=>F3,setContext:()=>w3,raw:()=>f2,persistStash:()=>Y3,launch:()=>H7,isStash:()=>X7,hold:()=>D7,hasContext:()=>u3,getContext:()=>t2,delay:()=>A3,debounce:()=>K7,createRouter:()=>Z3,createResource:()=>Q7,createRenderer:()=>z3,createComponents:()=>R3});var C2,s1,$2,M1,Z1,g1,j2,J1,e,c2,y2,w2,b2,v2,G1,f1,g2,x2,l2,k2,m2,i2,n2,d2,t1,L1,T1,_2,p2,r2,b1,v1,o2,a2,s2,e1,u2,t2,e2,U2,u3,S1,W2,f3,$3,w3,_3,U3,F2,W3;globalThis.abort??=(f)=>{if(f)console.error(f);process.exit(1)};globalThis.assert??=(f,w)=>{if(!f)throw Error(w||"Assertion failed")};globalThis.exit??=(f)=>process.exit(f||0);globalThis.kind??=(f)=>f!=null?(f.constructor?.name||Object.prototype.toString.call(f).slice(8,-1)).toLowerCase():String(f);globalThis.noop??=()=>{};globalThis.p??=console.log;globalThis.pp??=(f)=>{return console.log(JSON.stringify(f,null,2)),f};globalThis.raise??=(f,w)=>{throw w!==void 0?new f(w):Error(f)};globalThis.rand??=(f,w)=>w!==void 0?(f>w&&([f,w]=[w,f]),Math.floor(Math.random()*(w-f+1)+f)):f?Math.floor(Math.random()*f):Math.random();globalThis.sleep??=(f)=>new Promise((w)=>setTimeout(w,f));globalThis.todo??=(f)=>{throw Error(f||"Not implemented")};globalThis.warn??=console.warn;globalThis.zip??=(...f)=>f[0].map((w,U)=>f.map((_)=>_[U]));({__state:e,__effect:J1,__batch:j2}=globalThis.__rip);({setContext:w3,getContext:t2,hasContext:u3}=globalThis.__ripComponent||{});g1=Symbol("stash");Z1=Symbol("signals");M1=Symbol("raw");s1=Symbol("persisted");$2=new WeakMap;t1=0;_2=e(0);U2=function(f,w){let U;if(!f[Z1])Object.defineProperty(f,Z1,{value:new Map,enumerable:!1});if(U=f[Z1].get(w),!U)U=e(f[w]),f[Z1].set(w,U);return U};S1=function(f){return U2(f,Symbol.for("keys"))};W3=function(f){let w;if(!(f!=null&&typeof f==="object"))return f;if(f[g1])return f;if(f instanceof Date||f instanceof RegExp||f instanceof Map||f instanceof Set||f instanceof Promise)return f;if(w=$2.get(f),w)return w;return W2(f)};W2=function(f){let w,U;return U=null,w={get:function(_,u){let $,F;if(u===g1)return!0;if(u===M1)return _;if(typeof u==="symbol")return Reflect.get(_,u);if(u==="length"&&Array.isArray(_))return S1(_).value,_.length;if(u==="get")return function(W){return _3(U,W)};if(u==="set")return function(W,Y){return U3(U,W,Y)};if($=U2(_,u),F=$.value,F!=null&&typeof F==="object")return W3(F);return F},set:function(_,u,$){let F,W;if(F=_[u],W=$?.[M1]?$[M1]:$,W===F)return!0;if(_[u]=W,_[Z1]?.has(u))_[Z1].get(u).value=W;if(F===void 0&&W!==void 0)S1(_).value=++t1;return _2.value++,!0},deleteProperty:function(_,u){let $;if(delete _[u],$=_[Z1]?.get(u),$!=null)$.value=void 0;return S1(_).value=++t1,!0},ownKeys:function(_){return S1(_).value,Reflect.ownKeys(_)}},U=new Proxy(f,w),$2.set(f,U),U};C2=/([./][^./\[\s]+|\[[-+]?\d+\]|\[(?:"[^"]+"|'[^']+')\])/;F2=function(f){let w,U,_,u,$;_=("."+f).split(C2),_.shift(),$=[],U=0;while(U<_.length){if(u=_[U],w=u[0],w==="."||w==="/")$.push(u.slice(1));else if(w==="[")if(u[1]==='"'||u[1]==="'")$.push(u.slice(2,-2));else $.push(+u.slice(1,-1));U+=2}return $};_3=function(f,w){let U,_;_=F2(w),U=f;for(let u of _){if(U==null)return;U=U[u]}return U};U3=function(f,w,U){let _,u;u=F2(w),_=f;for(let $=0;$<u.length;$++){let F=u[$];if($===u.length-1)_[F]=U;else{if(_[F]==null)_[F]={};_=_[F]}}return U};var F3=function(f={}){return W2(f)},f2=function(f){return f?.[M1]?f[M1]:f},X7=function(f){return f?.[g1]===!0},Y3=function(f,w={}){let U,_,u,$,F,W;if(W=f2(f)||f,W[s1])return;W[s1]=!0,$=w.local?localStorage:sessionStorage,F=w.key||"__rip_app";try{if(_=$.getItem(F),_){u=JSON.parse(_);for(let Y in u){let R=u[Y];f.data[Y]=R}}}catch{}return U=function(){return(()=>{try{return $.setItem(F,JSON.stringify(f2(f.data)))}catch{return null}})()},J1(function(){let Y;return _2.value,Y=setTimeout(U,2000),function(){return clearTimeout(Y)}}),window.addEventListener("beforeunload",U)},Q7=function(f,w={}){let U,_,u,$,F;if(U=e(w.initial||null),u=e(!1),_=e(null),$=async function(){let W;return u.value=!0,_.value=null,(async()=>{try{return W=await f(),U.value=W}catch(Y){return _.value=Y}finally{u.value=!1}})()},F={data:void 0,loading:void 0,error:void 0,refetch:$},Object.defineProperty(F,"data",{get:function(){return U.value}}),Object.defineProperty(F,"loading",{get:function(){return u.value}}),Object.defineProperty(F,"error",{get:function(){return _.value}}),!w.lazy)$();return F};T1=function(f){return typeof f==="function"?f:function(){return f.value}};L1=function(f,w){let U;return U={read:function(){return f.read()}},Object.defineProperty(U,"value",{get:function(){return f.value},set:function(_){return w.value=_}}),U};var A3=function(f,w){let U,_;return U=T1(w),_=e(!!U()),J1(function(){let u;if(U())return u=setTimeout(function(){return _.value=!0},f),function(){return clearTimeout(u)};else return _.value=!1}),typeof w!=="function"?L1(_,w):_},K7=function(f,w){let U,_;return U=T1(w),_=e(U()),J1(function(){let u,$;return $=U(),u=setTimeout(function(){return _.value=$},f),function(){return clearTimeout(u)}}),typeof w!=="function"?L1(_,w):_},J7=function(f,w){let U,_,u;return U=T1(w),u=e(U()),_=0,J1(function(){let $,F,W,Y;if(Y=U(),$=Date.now(),F=f-($-_),F<=0)return u.value=Y,_=$;else return W=setTimeout(function(){return u.value=U(),_=Date.now()},F),function(){return clearTimeout(W)}}),typeof w!=="function"?L1(u,w):u},D7=function(f,w){let U,_;return U=T1(w),_=e(!!U()),J1(function(){let u;if(U())return _.value=!0;else return u=setTimeout(function(){return _.value=!1},f),function(){return clearTimeout(u)}}),typeof w!=="function"?L1(_,w):_},R3=function(){let f,w,U,_;return w=new Map,_=[],f=new Map,U=function(u,$){for(let F of _)F(u,$)},{read:function(u){return w.get(u)},write:function(u,$){let F;return F=!w.has(u),w.set(u,$),f.delete(u),U(F?"create":"change",u)},del:function(u){return w.delete(u),f.delete(u),U("delete",u)},exists:function(u){return w.has(u)},size:function(){return w.size},list:function(u=""){let $,F,W;W=[],$=u?u+"/":"";for(let[Y]of w)if(Y.startsWith($)){if(F=Y.slice($.length),F.includes("/"))continue;W.push(Y)}return W},listAll:function(u=""){let $,F;F=[],$=u?u+"/":"";for(let[W]of w)if(W.startsWith($))F.push(W);return F},load:function(u){for(let $ in u){let F=u[$];w.set($,F)}},watch:function(u){return _.push(u),function(){return _.splice(_.indexOf(u),1)}},getCompiled:function(u){return f.get(u)},setCompiled:function(u,$){return f.set(u,$)}}};s2=function(f){let w;if(w=f.replace(/\.rip$/,""),w=w.replace(/\[\.\.\.(\w+)\]/g,"*$1"),w=w.replace(/\[(\w+)\]/g,":$1"),w==="index")return"/";return w=w.replace(/\/index$/,""),"/"+w};$3=function(f){let w,U;return w=[],U=f.replace(/\*(\w+)/g,function(_,u){return w.push(u),"(.+)"}).replace(/:(\w+)/g,function(_,u){return w.push(u),"([^/]+)"}),{regex:new RegExp("^"+U+"$"),names:w}};f3=function(f,w){let U,_;for(let u of w)if(U=f.match(u.regex.regex),U){_={};for(let $=0;$<u.regex.names.length;$++){let F=u.regex.names[$];_[F]=decodeURIComponent(U[$+1])}return{route:u,params:_}}return null};b1=function(f,w="components"){let U,_,u,$,F,W,Y,R,A;Y=[],u=new Map,U=f.listAll(w);for(let Z of U){if(W=Z.slice(w.length+1),!W.endsWith(".rip"))continue;if($=W.split("/").pop(),$==="_layout.rip"){_=W==="_layout.rip"?"":W.slice(0,-12),u.set(_,Z);continue}if($.startsWith("_"))continue;if(R=W.split("/"),R.length>1&&R.some(function(z,X){return X<R.length-1&&z.startsWith("_")}))continue;A=s2(W),F=$3(A),Y.push({pattern:A,regex:F,file:Z,rel:W})}return Y.sort(function(Z,z){let X,H,J,G;if(H=(Z.pattern.match(/:/g)||[]).length,G=(z.pattern.match(/:/g)||[]).length,X=Z.pattern.includes("*")?1:0,J=z.pattern.includes("*")?1:0,X!==J)return X-J;if(H!==G)return H-G;return Z.pattern.localeCompare(z.pattern)}),{routes:Y,layouts:u}};e2=function(f,w,U){let _,u,$,F;if(_=[],$=f.slice(w.length+1),F=$.split("/"),u="",U.has(""))_.push(U.get(""));for(let W=0;W<F.length;W++){let Y=F[W];if(W===F.length-1)break;if(u=u?u+"/"+Y:Y,U.has(u))_.push(U.get(u))}return _};var Z3=function(f,w={}){let U,_,u,$,F,W,Y,R,A,Z,z,X,H,J,G,Q,q,O,K,I,E;if(q=w.root||"components",A=w.base||"",Z=w.hash||!1,H=w.onError||null,K=function(D){return A&&D.startsWith(A)?D.slice(A.length)||"/":D},R=function(D){return A?A+D:D},G=function(){let D;if(Z){if(D=location.hash.slice(1),!D)return"/";return D[0]==="/"?D:"/"+D}else return location.pathname+location.search+location.hash},E=function(D){return Z?D==="/"?location.pathname:"#"+D.slice(1):R(D)},F=e(K(Z?G():location.pathname)),$=e({}),Y=e(null),_=e([]),W=e({}),U=e(""),u=A3(100,e(!1)),I=b1(f,q),z=new Set,f.watch(function(D,M){if(!M.startsWith(q+"/"))return;return I=b1(f,q)}),Q=function(D){let M,P,S,N,B;if(N=D.split("?")[0].split("#")[0],P=K(N),P=P[0]==="/"?P:"/"+P,S=D.split("?")[1]?.split("#")[0]||"",M=D.includes("#")?D.split("#")[1]:"",B=f3(P,I.routes),B){j2(function(){return F.value=P,$.value=B.params,Y.value=B.route,_.value=e2(B.route.file,q,I.layouts),W.value=Object.fromEntries(new URLSearchParams(S)),U.value=M});for(let h of z)h(O.current);return!0}if(H)H({status:404,path:P});return!1},J=function(){return Q(G())},typeof window<"u")window.addEventListener("popstate",J);if(X=function(D){let M,P,S;if(D.button!==0||D.metaKey||D.ctrlKey||D.shiftKey||D.altKey)return;P=D.target;while(P&&P.tagName!=="A")P=P.parentElement;if(!P?.href)return;if(S=new URL(P.href,location.origin),S.origin!==location.origin)return;if(P.target==="_blank"||P.hasAttribute("data-external"))return;return D.preventDefault(),M=Z&&S.hash?S.hash.slice(1)||"/":S.pathname+S.search+S.hash,O.push(M)},typeof document<"u")document.addEventListener("click",X);return O={push:function(D){return Q(D)?history.pushState(null,"",E(F.read())):void 0},replace:function(D){return Q(D)?history.replaceState(null,"",E(F.read())):void 0},back:function(){return history.back()},forward:function(){return history.forward()},current:void 0,path:void 0,params:void 0,route:void 0,layouts:void 0,query:void 0,hash:void 0,navigating:void 0,onNavigate:function(D){return z.add(D),function(){return z.delete(D)}},rebuild:function(){return I=b1(f,q)},routes:void 0,init:function(){return Q(G()),O},destroy:function(){if(typeof window<"u")window.removeEventListener("popstate",J);if(typeof document<"u")document.removeEventListener("click",X);return z.clear()}},Object.defineProperty(O,"current",{get:function(){return{path:F.value,params:$.value,route:Y.value,layouts:_.value,query:W.value,hash:U.value}}}),Object.defineProperty(O,"path",{get:function(){return F.value}}),Object.defineProperty(O,"params",{get:function(){return $.value}}),Object.defineProperty(O,"route",{get:function(){return Y.value}}),Object.defineProperty(O,"layouts",{get:function(){return _.value}}),Object.defineProperty(O,"query",{get:function(){return W.value}}),Object.defineProperty(O,"hash",{get:function(){return U.value}}),Object.defineProperty(O,"navigating",{get:function(){return u.value},set:function(D){return u.value=D}}),Object.defineProperty(O,"routes",{get:function(){return I.routes}}),O};p2=function(f,w){if(f.length!==w.length)return!1;for(let U=0;U<f.length;U++)if(f[U]!==w[U])return!1;return!0};u2=function(f){for(let w in f){let U=f[w];if(typeof U==="function"&&(U.prototype?.mount||U.prototype?._create))return U}return typeof f.default==="function"?f.default:void 0};e1=function(f){let w;w={};for(let U in f){let _=f[U];if(typeof _==="function"&&(_.prototype?.mount||_.prototype?._create))w[U]=_}return w};a2=function(f){let w;return w=f.split("/").pop().replace(/\.rip$/,""),w.replace(/(^|[-_])([a-z])/g,function(U,_,u){return u.toUpperCase()})};r2=function(f,w="components"){let U,_,u;_={};for(let $ of f.listAll(w)){if(!$.endsWith(".rip"))continue;if(U=$.split("/").pop(),U.startsWith("_"))continue;if(u=a2($),_[u])console.warn(`[Rip] Component name collision: ${u} (${_[u]} vs ${$})`);_[u]=$}return _};v1=async function(f,w,U=null,_=null,u=null){let $,F,W,Y,R,A,Z,z,X,H,J,G;if(U&&_){if(F=U.getCompiled(_),F)return F}if(Z=w(f),u){H={};for(let Q in u.map){let q=u.map[Q];if(q!==_&&Z.includes(`new ${Q}(`)){if(!u.classes[Q]){if(Y=U.read(q),Y){W=await v1(Y,w,U,q,u),R=e1(W);for(let O in R){let K=R[O];u.classes[O]=K}}}if(u.classes[Q])H[Q]=!0}}if(X=Object.keys(H),X.length>0)J=`const {${X.join(", ")}} = globalThis['${u.key}'];
|
|
746
|
+
`,Z=J+Z}if(A=_?`// ${_}
|
|
747
|
+
`:"",$=new Blob([A+Z],{type:"application/javascript"}),G=URL.createObjectURL($),z=await import(G),u){R=e1(z);for(let Q in R){let q=R[Q];u.classes[Q]=q}}if(U&&_)U.setCompiled(_,z);return z};var z3=function(f={}){let w,U,_,u,$,F,W,Y,R,A,Z,z,X,H,J,G,Q,q,O,K,I,E;if({router:K,app:w,components:$,resolver:O,compile:_,target:I,onError:Q}=f,F=typeof I==="string"?document.querySelector(I):I||document.getElementById("app"),!F)F=document.createElement("div"),F.id="app",document.body.appendChild(F);return F.style.opacity="0",W=null,A=null,R=null,Y=[],X=[],J=F,z=0,Z=null,u=new Map,H=f.cacheSize||10,U=function(){let D,M;if(W&&A){if(W.beforeUnmount)W.beforeUnmount();if(u.set(A,W),u.size>H){if(M=u.keys().next().value,D=u.get(M),D.unmounted)D.unmounted();u.delete(M)}return W=null,A=null}},E=function(){U();for(let D=X.length-1;D>=0;D--){let M=X[D];if(M.beforeUnmount)M.beforeUnmount();if(M.unmounted)M.unmounted();M._target?.remove()}return X=[],J=F},$.watch(function(D,M){let P;if(u.has(M)){if(P=u.get(M),P.unmounted)P.unmounted();return u.delete(M)}}),G=async function(D){let M,P,S,N,B,h,C,L,a,T,V,j,g,i,c,y,b,x,d,n,p,v;if({route:d,params:y,layouts:L,query:x}=D,!d)return;if(d.file===A&&JSON.stringify(y)===JSON.stringify(R))return;return R=y,N=++z,K.navigating=!0,(async()=>{try{if(p=$.read(d.file),!p){if(Q)Q({status:404,message:`File not found: ${d.file}`});K.navigating=!1;return}if(j=await v1(p,_,$,d.file,O),N!==z){K.navigating=!1;return}if(M=u2(j),!M){if(Q)Q({status:500,message:`No component found in ${d.file}`});K.navigating=!1;return}if(V=!p2(L,Y),i=W?._target,V)E();else U();if(g=V?F:J,V&&L.length>0){F.innerHTML="",g=F;for(let l of L){if(T=$.read(l),!T)continue;if(a=await v1(T,_,$,l,O),N!==z){K.navigating=!1;return}if(P=u2(a),!P)continue;if(h=new P({app:w,params:y,router:K}),h.beforeMount)h.beforeMount();v=document.createElement("div"),v.setAttribute("data-layout",l),g.appendChild(v),h.mount(v),X.push(h),n=v.querySelector("#content")||v,g=n}Y=[...L],J=g}else if(V)F.innerHTML="",Y=[],J=F;if(S=u.get(d.file),S)u.delete(d.file),g.appendChild(S._target),W=S,A=d.file;else{if(c=document.createElement("div"),c.setAttribute("data-component",d.file),g.appendChild(c),C=new M({app:w,params:y,query:x,router:K}),C.beforeMount)C.beforeMount();if(C.mount(c),W=C,A=d.file,C.load)await C.load(y,x)}return i?.remove(),K.navigating=!1,F.style.opacity==="0"?document.fonts.ready.then(function(){return requestAnimationFrame(function(){return F.style.transition="opacity 150ms ease-in",F.style.opacity="1"})}):void 0}catch(l){if(K.navigating=!1,F.style.opacity="1",console.error(`Renderer: error mounting ${d.file}:`,l),Q)Q({status:500,message:l.message,error:l});B=!1;for(let m=X.length-1;m>=0;m--){let s=X[m];if(s.onError)try{s.onError(l),B=!0;break}catch(r){console.error("Renderer: error boundary failed:",r)}}return(()=>{if(!B)return b=document.createElement("pre"),b.style.cssText="color:red;padding:1em",b.textContent=l.stack||l.message,F.innerHTML="",F.appendChild(b)})()}})()},q={start:function(){return Z=J1(function(){let D;return D=K.current,D.route?G(D):void 0}),K.init(),q},stop:function(){if(E(),Z)Z(),Z=null;return F.innerHTML=""},remount:function(){let D;return D=K.current,D.route?G(D):void 0},cache:u},q};o2=function(f){let w,U,_;return _=1000,U=30000,w=function(){let u;return u=new EventSource(f),u.addEventListener("connected",function(){return _=1000,console.log("[Rip] Hot reload connected")}),u.addEventListener("reload",function(){return console.log("[Rip] Reloading..."),location.reload()}),u.addEventListener("css",function(){for(let $ of document.querySelectorAll('link[rel="stylesheet"]'))f=new URL($.href),f.searchParams.set("_t",Date.now()),$.href=f.toString()}),u.onerror=function(){return u.close(),setTimeout(w,_),_=Math.min(_*2,U)}},w()};var H7=async function(f="",w={}){let U,_,u,$,F,W,Y,R,A,Z,z,X,H,J,G,Q,q;if(globalThis.__ripLaunched=!0,typeof f==="object")w=f,f="";if(f=f.replace(/\/+$/,""),q=w.target||"#app",W=w.compile||null,X=w.persist||!1,Z=w.hash||!1,!W)W=globalThis?.compileToJS||null;if(typeof document<"u"&&!document.querySelector(q))Y=document.createElement("div"),Y.id=q.replace(/^#/,""),document.body.prepend(Y);if(w.bundle)u=w.bundle;else if(w.bundleUrl){if(z={},A=`__rip_etag_${w.bundleUrl}`,$=sessionStorage.getItem(A),$)z["If-None-Match"]=$;if(J=await fetch(w.bundleUrl,{headers:z}),J.status===304)u=JSON.parse(sessionStorage.getItem(`${A}_data`));else if(J.ok){if(u=await J.json(),R=J.headers.get("etag"),R)sessionStorage.setItem(A,R),sessionStorage.setItem(`${A}_data`,JSON.stringify(u))}else throw Error(`launch: ${w.bundleUrl} (${J.status})`)}else throw Error("launch: no bundle or bundleUrl provided");if(U=F3({components:{},routes:{},data:{}}),globalThis.__ripApp=U,u.data)U.data=u.data;if(u.routes)U.routes=u.routes;if(X&&typeof sessionStorage<"u")Y3(U,{local:X==="local",key:`__rip_${f}`});if(_=R3(),u.components)_.load(u.components);if(F=`__rip_${f.replace(/\//g,"_")||"app"}`,G={map:r2(_),classes:{},key:F},typeof globalThis<"u")globalThis[F]=G.classes;if(U.data.title&&typeof document<"u")document.title=U.data.title;if(Q=Z3(_,{root:"components",base:f,hash:Z,onError:function(O){return console.error(`[Rip] Error ${O.status}: ${O.message||O.path}`)}}),H=z3({router:Q,app:U,components:_,resolver:G,compile:W,target:q,onError:function(O){return console.error(`[Rip] ${O.message}`,O.error)}}),H.start(),u.data?.watch)o2(`${f}/watch`);if(typeof window<"u")window.app=U,window.__RIP__={app:U,components:_,router:Q,renderer:H,cache:H.cache,version:"0.3.0"};return{app:U,components:_,router:Q,renderer:H}};f1=function(f,w){if(!w)return;return f.preventDefault(),f.stopPropagation(),w()};globalThis.__ariaLastFocusedEl??=null;if(typeof document<"u"&&!globalThis.__ariaFocusTrackerBound)document.addEventListener("focusin",function(f){return globalThis.__ariaLastFocusedEl=f.target},!0),globalThis.__ariaFocusTrackerBound=!0;b2=function(f,w){if(f.isComposing)return;return(()=>{switch(f.key){case"ArrowDown":return f1(f,w.next);case"ArrowUp":return f1(f,w.prev);case"Home":case"PageUp":return f1(f,w.first);case"End":case"PageDown":return f1(f,w.last);case"Enter":case" ":return f1(f,w.select);case"Escape":return f1(f,w.dismiss);case"Tab":return w.tab?.();default:return f.key.length===1?w.char?.(f.key):void 0}})()};g2=function(f,w,U,_=[],u=null){let $,F,W;if(!f)return;return $=function(Y){return typeof Y==="function"?Y():Y},F=(Y)=>{return![$(w),..._.map($)].some(function(R){return R?.contains(Y.target)})?U():void 0},W=(Y)=>{if($(w)?.contains(Y.target))return;return u?u():U()},document.addEventListener("mousedown",F),window.addEventListener("scroll",W,!0),function(){return document.removeEventListener("mousedown",F),window.removeEventListener("scroll",W,!0)}};x2=function(f=250){let w;return w=0,{block:function(U=f){return w=Date.now()+U},canOpen:function(){return Date.now()>=w}}};y2=function(f,w,U,_=null){let u,$,F,W,Y,R,A,Z,z,X,H;if(W=function(J){return typeof J==="function"?J():J},u=function(){let J,G;if(J=document.activeElement,J&&J!==document.body)return J;if(G=globalThis.__ariaLastFocusedEl,G?.isConnected!==!1)return G;return null},F=W(w),!F)return;if(!Object.hasOwn(HTMLElement.prototype,"togglePopover"))return;if(A=null,H=function(J){if(J){F.hidden=!1;try{F.inert=!1}catch{}return F.removeAttribute("aria-hidden")}else{try{F.inert=!0}catch{}return F.setAttribute("aria-hidden","true"),F.hidden=!0}},Z=function(){let J,G;if(G=A,A=null,!G?.focus)return;return J=function(Q=6){if(G.isConnected===!1)return;try{G.focus({preventScroll:!0})}catch{G.focus()}if(document.activeElement===G||Q<=1)return;return setTimeout(function(){return J(Q-1)},16)},requestAnimationFrame(function(){return J()})},Y=function(J){let G;if(G=J.newState==="open",G)A=W(_)||u(),H(!0);else H(!1),Z();return U?.(G)},F.addEventListener("toggle",Y),z=F.matches(":popover-open"),$=!!f,z!==$){if(X=W(_),$)A=X||u(),H(!0);R=X&&$?{force:$,source:X}:{force:$};try{F.togglePopover(R)}catch{}}else H($);return function(){return F.removeEventListener("toggle",Y)}};c2=function(f,w,U,_=!0){let u,$,F,W,Y,R,A,Z;if(F=function(z){return typeof z==="function"?z():z},u=function(){let z,X;if(z=document.activeElement,z&&z!==document.body)return z;if(X=globalThis.__ariaLastFocusedEl,X?.isConnected!==!1)return X;return null},$=F(w),!$?.showModal)return;if(R=null,Z=function(z){if(z){$.hidden=!1;try{$.inert=!1}catch{}return $.removeAttribute("aria-hidden")}else{try{$.inert=!0}catch{}return $.setAttribute("aria-hidden","true"),$.hidden=!0}},A=function(){let z,X;if(X=R,R=null,!X?.focus)return;return z=function(H=6){if(X.isConnected===!1)return;try{X.focus({preventScroll:!0})}catch{X.focus()}if(document.activeElement===X||H<=1)return;return setTimeout(function(){return z(H-1)},16)},requestAnimationFrame(function(){return z()})},W=function(z){if(!_){z.preventDefault();return}return U?.(!1)},Y=function(){return U?.(!1),Z(!1),A()},$.addEventListener("cancel",W),$.addEventListener("close",Y),f&&!$.open){if(!R)R=u();Z(!0);try{$.showModal()}catch{}}else if(!f&&$.open)$.close();else Z(!!f);return function(){return $.removeEventListener("cancel",W),$.removeEventListener("close",Y)}};m2=function(f,w,U="vertical"){let _,u;if(f.isComposing)return;return u=U!=="horizontal",_=U!=="vertical",(()=>{switch(f.key){case"ArrowDown":return u?f1(f,w.next):void 0;case"ArrowUp":return u?f1(f,w.prev):void 0;case"ArrowRight":return _?f1(f,w.next):void 0;case"ArrowLeft":return _?f1(f,w.prev):void 0;case"Home":case"PageUp":return f1(f,w.first);case"End":case"PageDown":return f1(f,w.last);case"Enter":case" ":return f1(f,w.select);case"Escape":return f1(f,w.dismiss);default:return f.key.length===1?w.char?.(f.key):void 0}})()};k2=function(f,w,U=4,_=!0){let u,$;if(!(f&&w))return;if($=f.getBoundingClientRect(),w.style.position="fixed",w.style.left=`${$.left}px`,w.style.top=`${$.bottom+U}px`,w.style.minWidth=`${$.width}px`,u=w.getBoundingClientRect(),u.bottom>window.innerHeight)w.style.top=`${$.top-u.height-U}px`;if(u.right>window.innerWidth)w.style.left=`${window.innerWidth-u.width-U}px`;return _?w.style.visibility="visible":void 0};var M7='a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),[tabindex]:not([tabindex="-1"])';i2=function(f){let w;return w=function(U){let _,u,$;if(U.key!=="Tab")return;if($=Array.from(f.querySelectorAll(M7)).filter(function(F){return F.offsetParent!==null}),!$.length)return;return _=$[0],u=$[$.length-1],U.shiftKey?document.activeElement===_?(U.preventDefault(),u.focus()):void 0:document.activeElement===u?(U.preventDefault(),_.focus()):void 0},f.addEventListener("keydown",w),function(){return f.removeEventListener("keydown",w)}};d2=function(f,w){let U,_;if(!f)return;if(_=f.querySelector("h1,h2,h3,h4,h5,h6"),_)_.id??=`${w}-title`,f.setAttribute("aria-labelledby",_.id);if(U=f.querySelector("p"),U)return U.id??=`${w}-desc`,f.setAttribute("aria-describedby",U.id)};G1=[];v2=function(f){let w;if(w=window.scrollY,G1.push({instance:f,scrollY:w}),G1.length===1)return document.body.style.position="fixed",document.body.style.top=`-${w}px`,document.body.style.width="100%"};n2=function(f){let w,U;if(w=G1.findIndex(function(_){return _.instance===f}),w<0)return;if({scrollY:U}=G1.splice(w,1)[0],!G1.length)return document.body.style.position="",document.body.style.top="",document.body.style.width="",window.scrollTo(0,U)};w2=function(){let f,w,U;return(()=>{try{if(!document?.createElement)return!1;return f=document.createElement("div"),w=document.createElement("div"),f.style.cssText="position:fixed;top:100px;left:100px;width:10px;height:10px;anchor-name:--probe",w.style.cssText="position:fixed;inset:auto;margin:0;position-anchor:--probe;position-area:bottom start;width:10px;height:10px",document.body.appendChild(f),document.body.appendChild(w),U=w.getBoundingClientRect(),f.remove(),w.remove(),U.top>50}catch{return!1}})()}();l2=function(f,w,U={}){let _,u,$,F,W,Y,R;if(!(f&&w))return;if(W=U.placement??"bottom start",F=U.offset??4,u=U.matchWidth??!1,w2){switch($=`--anchor-${w.id||Math.random().toString(36).slice(2,8)}`,f.style.anchorName=$,w.style.positionAnchor=$,w.style.position="fixed",w.style.inset="auto",w.style.margin="0",w.style.positionArea=W,w.style.positionTry="flip-block, flip-inline, flip-block flip-inline",w.style.positionVisibility="anchors-visible",[R]=W.split(" "),w.style.marginTop="",w.style.marginBottom="",w.style.marginLeft="",w.style.marginRight="",R){case"bottom":w.style.marginTop=`${F}px`;break;case"top":w.style.marginBottom=`${F}px`;break;case"left":w.style.marginRight=`${F}px`;break;case"right":w.style.marginLeft=`${F}px`;break}return u?w.style.minWidth="anchor-size(width)":void 0}else{switch(Y=f.getBoundingClientRect(),w.style.position="fixed",w.style.inset="auto",w.style.margin="0",[R,_]=W.split(" "),_??="start",R){case"bottom":w.style.top=`${Y.bottom+F}px`;break;case"top":w.style.bottom=`${window.innerHeight-Y.top+F}px`;break;case"left":w.style.right=`${window.innerWidth-Y.left+F}px`;break;case"right":w.style.left=`${Y.right+F}px`;break}if(Array.isArray(["bottom","top"])?["bottom","top"].includes(R):(R in["bottom","top"]))switch(_){case"start":w.style.left=`${Y.left}px`;break;case"center":w.style.left=`${Y.left+Y.width/2}px`,w.style.transform="translateX(-50%)";break;case"end":w.style.right=`${window.innerWidth-Y.right}px`;break}else switch(_){case"start":w.style.top=`${Y.top}px`;break;case"center":w.style.top=`${Y.top+Y.height/2}px`,w.style.transform="translateY(-50%)";break;case"end":w.style.bottom=`${window.innerHeight-Y.bottom}px`;break}return u?w.style.minWidth=`${Y.width}px`:void 0}};globalThis.__aria??={listNav:b2,rovingNav:m2,popupDismiss:g2,popupGuard:x2,bindPopover:y2,bindDialog:c2,positionBelow:k2,trapFocus:i2,wireAria:d2,lockScroll:v2,unlockScroll:n2,position:l2,hasAnchor:w2};globalThis.ARIA??=globalThis.__aria;K1.modules["ui.rip"]=x1;for(let[f,w]of Object.entries(x1))if(typeof w==="function")globalThis[f]=w;})();
|