rip-lang 3.13.136 → 3.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +46 -4
- package/docs/RIP-LANG.md +116 -11
- package/docs/RIP-SCHEMA.md +2390 -0
- package/docs/RIP-TYPES.md +21 -14
- package/docs/assets/rip-schema-logo-960w.png +0 -0
- package/docs/assets/rip-schema-social.png +0 -0
- package/docs/dist/rip.js +6817 -3670
- package/docs/dist/rip.min.js +1454 -211
- package/docs/dist/rip.min.js.br +0 -0
- package/package.json +10 -4
- package/src/AGENTS.md +130 -0
- package/src/compiler.js +65 -2
- package/src/components.js +19 -5
- package/src/grammar/grammar.rip +20 -1
- package/src/lexer.js +42 -0
- package/src/parser.js +222 -220
- package/src/schema.js +3298 -0
- package/src/sourcemap-utils.js +155 -0
- package/src/typecheck.js +395 -23
- package/src/types.js +25 -0
- package/src/ui.rip +203 -45
- package/CHANGELOG.md +0 -1500
package/docs/dist/rip.min.js
CHANGED
|
@@ -1,30 +1,1270 @@
|
|
|
1
|
-
(()=>{var{defineProperty:a1,getOwnPropertyNames:E3,getOwnPropertyDescriptor:N3}=Object,S3=Object.prototype.hasOwnProperty;function L3(f){return this[f]}var T3=(f)=>{var w=(R2??=new WeakMap).get(f),_;if(w)return w;if(w=a1({},"__esModule",{value:!0}),f&&typeof f==="object"||typeof f==="function"){for(var U of E3(f))if(!S3.call(w,U))a1(w,U,{get:L3.bind(f,U),enumerable:!(_=N3(f,U))||_.enumerable})}return R2.set(f,w),w},R2;var V3=(f)=>f;function C3(f,w){this[f]=V3.bind(null,w)}var O2=(f,w)=>{for(var _ in w)a1(f,_,{get:w[_],enumerable:!0,configurable:!0,set:C3.bind(w,_)})};var l4={};O2(l4,{rip:()=>n2,processRipScripts:()=>i2,parser:()=>D1,importRip:()=>I1,getStdlibCode:()=>h1,getReactiveRuntime:()=>b1,getComponentRuntime:()=>j1,formatSExpr:()=>Z1,formatErrorHTML:()=>A2,formatError:()=>P1,compileToJS:()=>Q1,compile:()=>k1,VERSION:()=>m2,RipError:()=>F1,Lexer:()=>J1,Compiler:()=>C1,CodeEmitter:()=>W1,BUILD_DATE:()=>k2});var h3=["type __RipElementMap = HTMLElementTagNameMap & Omit<SVGElementTagNameMap, keyof HTMLElementTagNameMap>;","type __RipTag = keyof __RipElementMap;","type __RipBrowserElement = Omit<HTMLElement, 'querySelector' | 'querySelectorAll' | 'closest' | 'setAttribute' | 'hidden'> & { hidden: boolean | 'until-found'; setAttribute(qualifiedName: string, value: any): void; querySelector(selectors: string): __RipBrowserElement | null; querySelectorAll(selectors: string): NodeListOf<__RipBrowserElement>; closest(selectors: string): __RipBrowserElement | null; };","type __RipDomEl<K extends __RipTag> = Omit<__RipElementMap[K], 'querySelector' | 'querySelectorAll' | 'closest' | 'setAttribute' | 'hidden'> & __RipBrowserElement;","type __RipAttrKeys<T> = { [K in keyof T]-?: K extends 'style' | 'classList' | 'className' | 'nodeValue' | 'textContent' | 'innerHTML' | 'innerText' | 'outerHTML' | 'outerText' | 'scrollLeft' | 'scrollTop' ? never : K extends `on${string}` | `aria${string}Element` | `aria${string}Elements` ? never : T[K] extends (...args: any[]) => any ? never : (<V>() => V extends Pick<T, K> ? 1 : 2) extends (<V>() => V extends { -readonly [P in K]: T[P] } ? 1 : 2) ? K : never }[keyof T] & string;","type __RipEvents = { [K in keyof HTMLElementEventMap as `@${K}`]?: ((event: HTMLElementEventMap[K]) => void) | null };","type __RipClassValue = string | boolean | null | undefined | Record<string, boolean> | __RipClassValue[];","type __RipProps<K extends __RipTag> = { [P in __RipAttrKeys<__RipElementMap[K]>]?: __RipElementMap[K][P] } & __RipEvents & { ref?: string; class?: __RipClassValue | __RipClassValue[]; style?: string; [k: `data-${string}`]: any; [k: `aria-${string}`]: any };"];var b3=["type __RipAriaNavHandlers = { next?: () => void; prev?: () => void; first?: () => void; last?: () => void; select?: () => void; dismiss?: () => void; tab?: () => void; char?: () => void; };","declare const ARIA: {"," bindPopover(open: boolean, popover: () => Element | null | undefined, setOpen: (isOpen: boolean) => void, source?: (() => Element | null | undefined) | null): void;"," bindDialog(open: boolean, dialog: () => Element | null | undefined, setOpen: (isOpen: boolean) => void, dismissable?: boolean): void;"," popupDismiss(open: boolean, popup: () => Element | null | undefined, close: () => void, els?: Array<() => Element | null | undefined>, repos?: (() => void) | null): void;"," popupGuard(delay?: number): any;"," listNav(event: KeyboardEvent, handlers: __RipAriaNavHandlers): void;"," rovingNav(event: KeyboardEvent, handlers: __RipAriaNavHandlers, orientation?: 'vertical' | 'horizontal' | 'both'): void;"," positionBelow(trigger: Element | null | undefined, popup: Element | null | undefined, gap?: number, setVisible?: boolean): void;"," position(trigger: Element | null | undefined, floating: Element | null | undefined, opts?: any): void;"," trapFocus(panel: Element | null | undefined): void;"," wireAria(panel: Element, id: string): void;"," lockScroll(instance: any): void;"," unlockScroll(instance: any): void;"," hasAnchor: boolean;"," [key: string]: any;","};"];function I2(f){let w=f.prototype;w.rewriteTypes=function(){let _=this.tokens,U=this.typeRefNames=new Set,u=($,W,F)=>{let A=[$,W];if(A.pre=0,A.data=null,A.loc=F?.loc??{r:0,c:0,n:0},A.spaced=!1,A.newLine=!1,A.generated=!0,F)A.origin=F;return A};this.scanTokens(($,W,F)=>{let A=$[0];if(A==="IDENTIFIER"){let G=F[W+1];if(G&&G[0]==="COMPARE"&&G[1]==="<"&&!G.spaced){let Y=F[W-1]?.[0]==="DEF",Z=P2(F,W+1);if(Z){let Q=W+1+Z.length,K=!Y&&F[Q]?.[0]==="="&&F[Q+1]?.[0]==="COMPONENT";if(Y||K){if(!$.data)$.data={};if($.data.typeParams=K1(Z),F.splice(W+1,Z.length),Y&&F[W+1]?.[0]==="("){F[W+1][0]="CALL_START";let D=1,H=W+2;while(H<F.length&&D>0){if(F[H][0]==="("||F[H][0]==="CALL_START")D++;if(F[H][0]===")"||F[H][0]==="CALL_END")D--;if(D===0)F[H][0]="CALL_END";H++}}}}}}if(A==="TYPE_ANNOTATION"){let G=F[W-1];if(!G)return 1;let Y=q2(F,W+1),Z=K1(Y),Q=G,K="type";if(G[0]==="CALL_END"||G[0]===")"){let H=1,J=W-2;while(J>=0&&H>0){let z=F[J][0];if(z==="CALL_END"||z===")")H++;if(z==="CALL_START"||z==="(")H--;J--}if(J>=0)Q=F[J];K="returnType"}else if(G[0]==="PARAM_END"){let H=W+1+Y.consumed,J=F[H];if(J&&(J[0]==="->"||J[0]==="=>"))Q=J;K="returnType"}else if(G[0]==="IDENTIFIER"&&W>=2&&F[W-2]?.[0]==="DEF")K="returnType";if(!Q.data)Q.data={};Q.data[K]=Z;for(let H of Y)if(H[0]==="IDENTIFIER")U.add(H[1]);let D=1+Y.consumed;return F.splice(W,D),0}if(A==="IDENTIFIER"&&$[1]==="type"){let G=F[W-1]?.[0];if(!(!G||G==="TERMINATOR"||G==="INDENT"||G==="EXPORT"))return 1;let Z=W+1,Q=F[Z];if(!Q||Q[0]!=="IDENTIFIER")return 1;let K=Q[1],D=G==="EXPORT",H=D?W-1:W,J=Z+1;if(F[J]?.[0]==="COMPARE"&&F[J]?.[1]==="<"&&!F[J].spaced){let B=P2(F,J);if(B){if(!Q.data)Q.data={};Q.data.typeParams=K1(B),F.splice(J,B.length)}}if(F[J]?.[0]!=="=")return 1;let z=(B)=>{let I=u("TYPE_DECL",K,Q);if(I.data={name:K,typeText:B,exported:D},Q.data?.typeParams)I.data.typeParams=Q.data.typeParams;return I},q=J+1,R=F[q];if(R&&(R[0]==="TERMINATOR"||R[0]==="INDENT")){let B=j3(F,q);if(B)return F.splice(H,B.endIdx-H+1,z(B.typeText)),0}if(R&&R[0]==="INDENT"){let B=s1(F,q);return F.splice(H,B-H+1,z(r1(F,q))),0}let X=q2(F,q);return F.splice(H,q+X.consumed-H,z(K1(X))),0}if(A==="INTERFACE"){let G=W>=1&&F[W-1]?.[0]==="EXPORT",Y=W+1,Z=F[Y];if(!Z)return 1;let Q=Z[1],K=null,D=Y+1;if(F[D]?.[0]==="EXTENDS")K=F[D+1]?.[1],D=D+2;if(F[D]?.[0]==="INDENT"){let H=r1(F,D),J=s1(F,D),z=u("TYPE_DECL",Q,Z);z.data={name:Q,kind:"interface",extends:K,typeText:H,exported:G};let q=G?W-1:W,R=J-q+1;return F.splice(q,R,z),0}return 1}return 1});for(let $=_.length-1;$>=0;$--){if(_[$][0]!=="DEF")continue;let W=_[$+1];if(!W||W[0]!=="IDENTIFIER")continue;let F=$+2;if(_[F]?.[0]!=="CALL_START")continue;let A=1;F++;while(F<_.length&&A>0){if(_[F][0]==="CALL_START")A++;if(_[F][0]==="CALL_END")A--;F++}let G=F-1,Y=_[F];if(Y&&Y[0]!=="TERMINATOR")continue;let Z=W.data?.returnType;if(!Z){for(let z=$+2;z<=G;z++)if(_[z].data?.type){Z=!0;break}}if(!Z)continue;let Q=_.slice($,F+1),K=$>=1&&_[$-1]?.[0]==="EXPORT",D=K?$-1:$,H=F+1-D,J=u("TYPE_DECL",W[1],W);if(J.data={name:W[1],kind:"overload",overloadTokens:Q,exported:K},W.data?.typeParams)J.data.typeParams=W.data.typeParams;_.splice(D,H,J)}}}function q2(f,w){let _=[],U=0,u=w;while(w<f.length){let $=f[w],W=$[0],F=W==="("||W==="["||W==="{"||W==="CALL_START"||W==="PARAM_START"||W==="INDEX_START"||W==="COMPARE"&&$[1]==="<",A=W===")"||W==="]"||W==="}"||W==="CALL_END"||W==="PARAM_END"||W==="INDEX_END"||W==="COMPARE"&&$[1]===">";if(W==="SHIFT"&&$[1]===">>"&&U>=2){U-=2,_.push($),w++;continue}if(F){U++,_.push($),w++;continue}if(A){if(U>0){U--,_.push($),w++;continue}break}if(U===0){if(W==="INDENT"&&_.length>0&&_[_.length-1][0]==="=>"){w++;let G=1;while(w<f.length&&G>0)if(f[w][0]==="INDENT")G++,w++;else if(f[w][0]==="OUTDENT")G--,w++;else _.push(f[w]),w++;continue}if(W==="="||W==="REACTIVE_ASSIGN"||W==="COMPUTED_ASSIGN"||W==="READONLY_ASSIGN"||W==="EFFECT"||W==="TERMINATOR"||W==="INDENT"||W==="OUTDENT"||W==="->"||W===",")break}_.push($),w++}return _.consumed=w-u,_}function K1(f){if(f.length===0)return"";if(f[0]?.[0]==="=>")f.unshift(["","()"]);let w=f.map((_)=>_[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,": ").replace(/ : /g,": "),w}function P2(f,w){if(w>=f.length)return null;let _=f[w];if(_[0]!=="COMPARE"||_[1]!=="<")return null;let U=[_],u=1,$=w+1;while($<f.length&&u>0){let W=f[$];if(U.push(W),W[0]==="COMPARE"&&W[1]==="<")u++;else if(W[0]==="COMPARE"&&W[1]===">")u--;$++}return u===0?U:null}function r1(f,w){let _=[],U=w+1,u=1;while(U<f.length&&u>0){let $=f[U];if($[0]==="INDENT"){u++,U++;continue}if($[0]==="OUTDENT"){if(u--,u===0)break;U++;continue}if($[0]==="TERMINATOR"){U++;continue}if(u===1&&$[0]==="["){let F=[];U++;while(U<f.length&&f[U][0]!=="]")F.push(f[U]),U++;if(U++,f[U]?.[1]===":"||f[U]?.[0]==="TYPE_ANNOTATION")U++;let A=[];while(U<f.length){let Z=f[U];if(Z[0]==="TERMINATOR"||Z[0]==="OUTDENT")break;A.push(Z),U++}let G=K1(F),Y=K1(A);_.push(`[${G}]: ${Y}`);continue}let W=$[0]==="PROPERTY"||$[0]==="IDENTIFIER"||u===1&&/^[a-zA-Z_$]/.test($[1])&&f[U+1]?.[0]==="TYPE_ANNOTATION";if(u===1&&W){let F=$[1],A=!1,G=!1;if(U++,F==="readonly"&&f[U]&&(f[U][0]==="PROPERTY"||f[U][0]==="IDENTIFIER"||/^[a-zA-Z_$]/.test(f[U][1])&&f[U+1]?.[0]==="TYPE_ANNOTATION")){if(G=!0,F=f[U][1],f[U].data?.predicate)A=!0;U++}if($.data?.predicate)A=!0;if(f[U]?.[1]==="?"&&!f[U]?.spaced)A=!0,U++;if(f[U]?.[1]===":"||f[U]?.[0]==="TYPE_ANNOTATION")U++;let Y=[],Z=0;while(U<f.length){let H=f[U];if(H[0]==="IDENTIFIER"&&H[1]==="type"&&f[U+1]?.[0]==="INDENT"){U++;let J=r1(f,U);Y.push(["",J]);let z=1;U++;while(U<f.length&&z>0){if(f[U][0]==="INDENT")z++;if(f[U][0]==="OUTDENT")z--;U++}continue}if(H[0]==="INDENT"){Z++,U++;continue}if(H[0]==="OUTDENT"){if(Z>0){Z--,U++;continue}break}if(H[0]==="TERMINATOR"&&Z===0)break;Y.push(H),U++}let Q=K1(Y),K=G?"readonly ":"",D=A?"?":"";_.push(`${K}${F}${D}: ${Q}`)}else U++}return"{ "+_.join("; ")+" }"}function s1(f,w){let _=0;for(let U=w;U<f.length;U++){if(f[U][0]==="INDENT")_++;if(f[U][0]==="OUTDENT"){if(_--,_===0)return U}}return f.length-1}function j3(f,w){let _=w;if(f[_]?.[0]==="TERMINATOR")_++;if(f[_]?.[0]!=="INDENT")return null;let U=_;_++;while(_<f.length&&f[_][0]==="TERMINATOR")_++;if(!f[_]||f[_][1]!=="|")return null;let u=[],$=1;_=U+1;while(_<f.length&&$>0){let F=f[_];if(F[0]==="INDENT"){$++,_++;continue}if(F[0]==="OUTDENT"){if($--,$===0)break;_++;continue}if(F[0]==="TERMINATOR"){_++;continue}if(F[1]==="|"&&$===1){_++;let A=[];while(_<f.length){let G=f[_];if(G[0]==="TERMINATOR"||G[0]==="OUTDENT"||G[1]==="|"&&$===1)break;A.push(G),_++}if(A.length>0)u.push(K1(A));continue}_++}if(u.length===0)return null;let W=s1(f,U);return{typeText:u.join(" | "),endIdx:W}}function e1(f,w=null,_=""){let U=[],u=0,$=" ",W=()=>$.repeat(u),F=!1,A=new Set,G=!1,Y=!1,Z=!1,Q=typeof _==="string"?_.split(`
|
|
2
|
-
|
|
1
|
+
(()=>{var{defineProperty:U2,getOwnPropertyNames:p3,getOwnPropertyDescriptor:n3}=Object,o3=Object.prototype.hasOwnProperty;function a3(u){return this[u]}var r3=(u)=>{var U=(V2??=new WeakMap).get(u),_;if(U)return U;if(U=U2({},"__esModule",{value:!0}),u&&typeof u==="object"||typeof u==="function"){for(var W of p3(u))if(!o3.call(U,W))U2(U,W,{get:a3.bind(u,W),enumerable:!(_=n3(u,W))||_.enumerable})}return V2.set(u,U),U},V2;var s3=(u)=>u;function t3(u,U){this[u]=s3.bind(null,U)}var C2=(u,U)=>{for(var _ in U)U2(u,_,{get:U[_],enumerable:!0,configurable:!0,set:t3.bind(U,_)})};var e5={};C2(e5,{rip:()=>Q3,processRipScripts:()=>G3,parser:()=>z1,importRip:()=>I1,getStdlibCode:()=>l1,getReactiveRuntime:()=>m1,getComponentRuntime:()=>k1,formatSExpr:()=>X1,formatErrorHTML:()=>D2,formatError:()=>B1,compileToJS:()=>M1,compile:()=>t1,VERSION:()=>F3,RipError:()=>Z1,Lexer:()=>K1,Compiler:()=>x1,CodeEmitter:()=>Y1,BUILD_DATE:()=>Z3});var e3={symbolIds:{$accept:0,$end:1,error:2,Root:3,Body:4,Line:5,TERMINATOR:6,Expression:7,ExpressionLine:8,Statement:9,Return:10,STATEMENT:11,Import:12,Export:13,Value:14,Code:15,Operation:16,Assign:17,ReactiveAssign:18,ComputedAssign:19,ReadonlyAssign:20,Effect:21,If:22,Try:23,While:24,For:25,Switch:26,Class:27,Component:28,Render:29,Throw:30,Yield:31,Def:32,Enum:33,Schema:34,CodeLine:35,OperationLine:36,Assignable:37,Literal:38,Parenthetical:39,Range:40,Invocation:41,DoIife:42,This:43,Super:44,MetaProperty:45,MapLiteral:46,AlphaNumeric:47,JS:48,Regex:49,UNDEFINED:50,NULL:51,BOOL:52,INFINITY:53,NAN:54,SYMBOL:55,NUMBER:56,String:57,Identifier:58,IDENTIFIER:59,Property:60,PROPERTY:61,STRING:62,STRING_START:63,Interpolations:64,STRING_END:65,InterpolationChunk:66,INTERPOLATION_START:67,INTERPOLATION_END:68,INDENT:69,OUTDENT:70,REGEX:71,REGEX_START:72,REGEX_END:73,RegexWithIndex:74,",":75,"=":76,REACTIVE_ASSIGN:77,COMPUTED_ASSIGN:78,Block:79,READONLY_ASSIGN:80,EFFECT:81,SimpleAssignable:82,Array:83,Object:84,ThisProperty:85,".":86,"?.":87,INDEX_START:88,INDEX_END:89,Slice:90,ES6_OPTIONAL_INDEX:91,"{":92,ObjAssignable:93,":":94,FOR:95,ForVariables:96,FOROF:97,OptComma:98,"}":99,WHEN:100,OWN:101,AssignList:102,AssignObj:103,ObjRestValue:104,SimpleObjAssignable:105,"[":106,"]":107,"@":108,"...":109,ObjSpreadExpr:110,SUPER:111,Arguments:112,DYNAMIC_IMPORT:113,MAP_START:114,MAP_END:115,MapAssignList:116,MapAssignObj:117,MapAssignable:118,Elisions:119,ArgElisionList:120,OptElisions:121,ArgElision:122,Arg:123,Elision:124,RangeDots:125,"..":126,DEF:127,CALL_START:128,ParamList:129,CALL_END:130,PARAM_START:131,PARAM_END:132,FuncGlyph:133,"->":134,"=>":135,Param:136,ParamVar:137,Splat:138,ES6_OPTIONAL_CALL:139,ArgList:140,SimpleArgs:141,THIS:142,NEW_TARGET:143,IMPORT_META:144,"(":145,")":146,RETURN:147,THROW:148,YIELD:149,FROM:150,IfBlock:151,IF:152,ELSE:153,UnlessBlock:154,UNLESS:155,POST_IF:156,POST_UNLESS:157,TRY:158,Catch:159,FINALLY:160,CATCH:161,SWITCH:162,Whens:163,When:164,LEADING_WHEN:165,WhileSource:166,WHILE:167,UNTIL:168,Loop:169,LOOP:170,FORIN:171,BY:172,FORAS:173,AWAIT:174,FORASAWAIT:175,ForValue:176,CLASS:177,EXTENDS:178,ENUM:179,SCHEMA:180,SCHEMA_BODY:181,COMPONENT:182,ComponentBody:183,ComponentLine:184,OFFER:185,ACCEPT:186,RENDER:187,IMPORT:188,ImportDefaultSpecifier:189,ImportNamespaceSpecifier:190,ImportSpecifierList:191,ImportSpecifier:192,AS:193,DEFAULT:194,IMPORT_ALL:195,EXPORT:196,ExportSpecifierList:197,EXPORT_ALL:198,ExportSpecifier:199,UNARY:200,DO:201,DO_IIFE:202,UNARY_MATH:203,"-":204,"+":205,"?":206,PRESENCE:207,"--":208,"++":209,MATH:210,"**":211,SHIFT:212,COMPARE:213,"&":214,"^":215,"|":216,"||":217,"??":218,"&&":219,PIPE:220,RELATION:221,TERNARY:222,COMPOUND_ASSIGN:223},tokenNames:{2:"error",6:"TERMINATOR",11:"STATEMENT",48:"JS",50:"UNDEFINED",51:"NULL",52:"BOOL",53:"INFINITY",54:"NAN",55:"SYMBOL",56:"NUMBER",59:"IDENTIFIER",61:"PROPERTY",62:"STRING",63:"STRING_START",65:"STRING_END",67:"INTERPOLATION_START",68:"INTERPOLATION_END",69:"INDENT",70:"OUTDENT",71:"REGEX",72:"REGEX_START",73:"REGEX_END",75:",",76:"=",77:"REACTIVE_ASSIGN",78:"COMPUTED_ASSIGN",80:"READONLY_ASSIGN",81:"EFFECT",86:".",87:"?.",88:"INDEX_START",89:"INDEX_END",91:"ES6_OPTIONAL_INDEX",92:"{",94:":",95:"FOR",97:"FOROF",99:"}",100:"WHEN",101:"OWN",106:"[",107:"]",108:"@",109:"...",111:"SUPER",113:"DYNAMIC_IMPORT",114:"MAP_START",115:"MAP_END",126:"..",127:"DEF",128:"CALL_START",130:"CALL_END",131:"PARAM_START",132:"PARAM_END",134:"->",135:"=>",139:"ES6_OPTIONAL_CALL",142:"THIS",143:"NEW_TARGET",144:"IMPORT_META",145:"(",146:")",147:"RETURN",148:"THROW",149:"YIELD",150:"FROM",152:"IF",153:"ELSE",155:"UNLESS",156:"POST_IF",157:"POST_UNLESS",158:"TRY",160:"FINALLY",161:"CATCH",162:"SWITCH",165:"LEADING_WHEN",167:"WHILE",168:"UNTIL",170:"LOOP",171:"FORIN",172:"BY",173:"FORAS",174:"AWAIT",175:"FORASAWAIT",177:"CLASS",178:"EXTENDS",179:"ENUM",180:"SCHEMA",181:"SCHEMA_BODY",182:"COMPONENT",185:"OFFER",186:"ACCEPT",187:"RENDER",188:"IMPORT",193:"AS",194:"DEFAULT",195:"IMPORT_ALL",196:"EXPORT",198:"EXPORT_ALL",200:"UNARY",201:"DO",202:"DO_IIFE",203:"UNARY_MATH",204:"-",205:"+",206:"?",207:"PRESENCE",208:"--",209:"++",210:"MATH",211:"**",212:"SHIFT",213:"COMPARE",214:"&",215:"^",216:"|",217:"||",218:"??",219:"&&",220:"PIPE",221:"RELATION",222:"TERNARY",223:"COMPOUND_ASSIGN"},parseTable:(()=>{let u=[112,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,1,1,0,2,1,5,-2,112,5,1,5,62,2,76,-3,-3,-3,-3,-3,30,1,5,62,1,1,5,20,12,23,16,10,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-6,-6,-6,-6,-6,-6,131,-6,-6,-6,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,9,1,5,62,1,1,5,32,23,16,-7,-7,-7,-7,-7,-7,-7,-7,-7,14,1,5,62,1,1,5,32,23,16,10,1,9,1,1,-8,-8,-8,-8,-8,-8,-8,-8,-8,132,133,134,101,102,55,1,5,51,5,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,3,3,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-13,-13,137,110,111,-13,-13,-13,-13,140,141,142,-13,143,-13,-13,-13,-13,-13,-13,-13,138,-13,-13,144,-13,-13,139,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,135,136,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,46,1,5,62,1,1,5,11,1,1,1,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,145,146,147,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,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,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,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,9,1,5,62,1,1,5,32,23,16,-34,-34,-34,-34,-34,-34,-34,-34,-34,9,1,5,62,1,1,5,32,23,16,-35,-35,-35,-35,-35,-35,-35,-35,-35,13,1,5,62,1,1,5,32,23,16,10,1,10,1,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,13,1,5,62,1,1,5,32,23,16,10,1,10,1,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,13,1,5,62,1,1,5,32,23,16,10,1,10,1,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,13,1,5,62,1,1,5,32,23,16,10,1,10,1,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,58,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-36,-36,-36,-36,-36,-36,-36,-36,148,149,150,151,152,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,53,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,53,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,53,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,53,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,53,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,53,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,53,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,53,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,53,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,18,6,52,1,10,1,5,8,1,1,7,14,2,1,20,1,2,4,1,-200,157,109,-200,-200,-200,159,160,158,104,162,161,156,153,-200,-200,154,155,111,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,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,164,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,165,107,108,163,55,54,75,76,98,104,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,166,167,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,169,170,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,171,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,177,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,178,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,179,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,180,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,48,14,1,22,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,7,14,2,3,2,1,17,2,1,1,7,1,1,1,57,182,183,184,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,181,75,76,98,104,87,91,88,89,94,172,173,95,96,90,92,93,86,176,48,14,1,22,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,7,14,2,3,2,1,17,2,1,1,7,1,1,1,57,182,183,184,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,185,75,76,98,104,87,91,88,89,94,172,173,95,96,90,92,93,86,176,61,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,186,187,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,188,108,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,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,190,189,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,165,107,108,191,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,192,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,2,69,10,165,193,2,69,10,165,194,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,14,40,18,1,24,1,1,7,4,5,5,2,29,37,2,198,157,109,159,160,158,104,195,196,87,161,200,197,199,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,201,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,202,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,93,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,1,1,3,1,5,1,1,1,1,3,4,3,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,1,1,11,4,1,1,1,1,1,7,1,1,1,1,7,3,1,10,1,3,1,1,2,3,24,2,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-332,-332,182,183,184,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,-332,165,-332,107,108,-332,203,205,75,76,98,-332,104,-332,-332,-332,-332,-332,87,-332,91,-332,88,89,94,-332,-332,-332,172,-332,173,95,96,90,92,93,86,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,204,176,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,2,69,109,206,207,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,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,209,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,165,107,108,208,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,210,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,211,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,144,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,1,1,3,1,5,1,1,1,1,3,6,1,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,1,1,11,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,2,5,1,8,4,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-251,-251,212,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,-251,213,-251,107,108,-251,55,54,75,76,98,-251,104,-251,-251,-251,-251,-251,87,-251,91,-251,88,89,94,-251,-251,68,-251,172,-251,173,95,96,90,92,93,86,-251,72,66,67,214,56,99,-251,57,100,-251,-251,58,62,59,-251,-251,60,103,-251,-251,-251,51,-251,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,2,58,1,215,109,2,58,1,216,109,1,181,217,6,15,20,96,2,1,1,219,218,44,45,95,96,143,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,1,1,3,1,5,1,1,1,1,3,6,1,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,1,1,11,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,2,5,1,8,4,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-248,-248,220,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,-248,221,-248,107,108,-248,55,54,75,76,98,-248,104,-248,-248,-248,-248,-248,87,-248,91,-248,88,89,94,-248,-248,68,-248,172,-248,173,95,96,90,92,93,86,-248,72,66,67,56,99,-248,57,100,-248,-248,58,62,59,-248,-248,60,103,-248,-248,-248,51,-248,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,9,57,1,1,3,1,29,97,1,5,222,226,109,110,111,225,223,224,227,63,14,1,3,1,1,1,6,1,4,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,14,2,3,2,1,13,4,2,1,1,7,1,1,1,32,2,3,12,4,4,182,183,234,235,236,237,229,230,231,232,240,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,233,109,110,111,107,108,55,241,75,76,98,228,87,91,88,89,94,68,172,173,95,96,90,92,93,86,63,69,64,238,239,176,58,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,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,58,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,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,53,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,53,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,53,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,53,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,53,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,53,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,53,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,53,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,53,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,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,111,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,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,242,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,243,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,118,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,1,1,3,1,6,2,1,3,6,1,1,1,1,7,3,11,1,1,1,2,2,1,5,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,2,5,1,8,4,1,1,1,1,1,3,1,244,253,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,250,107,108,251,55,54,75,76,98,104,61,87,245,91,255,88,89,94,246,247,249,252,248,68,44,45,95,96,254,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,4,86,2,24,16,257,258,256,144,2,112,16,259,144,53,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,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,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,55,1,5,54,1,1,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-233,-233,260,261,-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,-233,-233,-233,-233,-233,-233,-233,1,86,262,1,86,263,35,6,33,8,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,1,1,1,3,8,1,1,7,14,2,1,6,1,1,1,27,-147,281,272,273,276,275,274,277,278,282,105,106,269,109,270,261,110,111,-147,-147,107,108,-147,279,280,271,104,162,161,268,264,265,266,267,86,57,11,37,2,1,1,1,1,1,1,3,3,1,6,2,1,9,11,3,11,2,3,2,1,13,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,57,11,37,2,1,1,1,1,1,1,3,3,1,6,2,1,9,11,3,11,2,3,2,1,13,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,62,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,26,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,62,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,26,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,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,283,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,284,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,285,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,286,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,288,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,165,107,108,287,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,23,6,41,9,1,1,1,1,1,1,1,6,1,5,10,8,6,3,1,1,1,1,2,1,-112,294,105,106,296,109,297,261,110,111,-112,-112,-112,298,289,-112,290,295,299,291,292,293,300,53,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,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,53,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,53,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,48,14,1,22,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,7,14,2,3,2,1,17,2,1,1,7,1,1,1,57,182,183,184,35,36,37,301,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,241,75,76,98,104,87,91,88,89,94,172,173,95,96,90,92,93,86,176,64,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,4,3,3,1,10,1,3,1,1,2,3,15,11,1,1,1,1,1,1,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,-57,-57,-57,-57,-57,-57,56,1,5,56,1,2,2,1,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,6,57,5,1,1,2,1,305,110,111,302,303,304,114,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,1,1,3,1,5,2,1,1,9,1,1,1,1,7,3,11,2,3,2,1,13,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,2,5,1,8,4,1,1,1,1,1,3,1,-5,306,-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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,-5,-5,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,-5,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,307,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,308,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,309,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,310,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,311,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,312,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,313,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,314,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,315,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,318,168,316,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,317,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,321,168,319,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,320,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,324,168,322,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,323,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,325,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,326,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,327,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,328,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,329,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,14,40,18,1,24,1,1,7,4,5,5,2,29,37,2,333,157,109,159,160,158,104,330,331,87,161,200,332,199,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,334,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,335,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,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,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,54,1,5,56,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,54,1,5,56,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,2,112,16,336,144,2,60,1,337,261,2,60,1,338,261,111,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,2,7,1,1,1,1,5,2,3,11,2,1,2,2,1,11,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,2,5,1,8,4,1,1,1,1,1,3,1,339,168,30,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,43,77,78,344,80,81,82,83,84,85,105,106,97,109,110,111,340,107,108,342,55,54,75,76,98,341,104,61,87,91,346,88,89,94,343,345,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,1,88,347,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,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,1,2,2,1,9,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,2,5,1,8,4,1,1,1,1,1,3,1,352,253,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,351,107,108,55,54,75,76,98,104,61,87,91,255,88,89,94,350,68,348,44,45,95,96,254,349,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,2,60,1,353,261,2,60,1,354,261,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,355,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,356,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,358,357,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,359,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,361,360,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,362,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,108,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,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,364,363,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,165,107,108,365,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,367,366,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,368,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,108,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,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,370,369,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,165,107,108,371,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,10,6,63,1,5,23,1,8,8,15,2,-244,-244,-244,373,374,-244,-244,-244,-244,372,6,6,63,1,5,55,2,-201,-201,-201,-201,-201,-201,7,6,63,1,5,1,54,2,-205,-205,-205,-205,375,-205,-205,15,6,52,1,10,1,5,8,1,1,7,14,2,22,2,5,-208,157,109,-208,-208,-208,159,160,158,104,162,161,-208,-208,376,11,6,63,1,5,1,21,33,2,39,2,2,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,11,6,63,1,5,1,21,33,2,39,2,2,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,11,6,63,1,5,1,21,33,2,39,2,2,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,11,6,63,1,5,1,21,33,2,39,2,2,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,2,60,1,260,261,118,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,1,1,3,1,6,2,1,3,6,1,1,1,1,7,3,11,1,1,1,2,2,1,5,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,2,5,1,8,4,1,1,1,1,1,3,1,352,253,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,250,107,108,251,55,54,75,76,98,104,61,87,245,91,255,88,89,94,246,247,249,252,248,68,44,45,95,96,254,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,53,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,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,9,1,5,62,1,1,5,32,23,16,-197,-197,-197,-197,-197,-197,-197,-197,-197,111,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,1,1,3,1,7,1,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,378,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,377,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,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,130,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,123,-403,-403,-403,-403,9,1,5,62,1,1,5,32,23,16,-400,-400,-400,-400,-400,-400,-400,-400,-400,5,156,1,9,1,1,132,133,134,101,102,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,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,130,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,123,-404,-404,-404,-404,9,1,5,62,1,1,5,32,23,16,-401,-401,-401,-401,-401,-401,-401,-401,-401,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,130,-405,-405,-405,-405,-405,-405,-405,-405,-405,116,-405,-405,-405,-405,-405,-405,123,-405,-405,-405,-405,18,6,52,1,10,1,5,8,1,1,7,14,2,1,20,1,2,4,1,-200,157,109,-200,-200,-200,159,160,158,104,162,161,156,379,-200,-200,154,155,2,69,10,165,163,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,166,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,169,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,5,15,116,2,1,1,219,172,173,95,96,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,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,-406,130,-406,-406,-406,-406,-406,-406,-406,-406,-406,116,-406,-406,-406,-406,-406,-406,123,-406,-406,-406,-406,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,130,-407,-407,-407,-407,-407,-407,-407,-407,-407,116,-407,-407,-407,-407,-407,-407,123,-407,-407,-407,-407,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,130,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,123,-410,-410,-410,-410,2,84,8,380,104,58,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-412,-412,-89,-89,-412,-412,-412,-412,-89,-89,-89,-89,-89,-89,-89,-89,-412,-89,-412,-412,-412,-412,-412,-412,-412,-412,-412,-89,-412,-412,-89,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-89,-89,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,10,57,5,1,23,1,1,3,21,16,11,137,110,111,140,141,142,143,138,144,139,3,86,1,1,145,146,147,53,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,58,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-413,-413,-89,-89,-413,-413,-413,-413,-89,-89,-89,-89,-89,-89,-89,-89,-413,-89,-413,-413,-413,-413,-413,-413,-413,-413,-413,-89,-413,-413,-89,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-89,-89,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,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,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,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,383,381,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,382,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,-86,-86,-86,-86,131,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,128,129,130,101,102,-86,-86,-86,-86,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,384,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,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,3,69,10,73,165,385,386,46,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,2,1,1,6,1,3,1,1,2,29,1,5,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,387,388,389,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,4,97,74,2,2,391,390,392,393,11,58,1,24,1,1,7,4,10,2,29,39,157,109,159,160,158,104,394,162,161,200,199,11,58,1,24,1,1,7,4,10,2,29,39,157,109,159,160,158,104,395,162,161,200,199,3,69,10,93,165,396,397,5,75,22,74,2,2,398,-330,-330,-330,-330,6,75,1,21,74,2,2,-328,399,-328,-328,-328,-328,22,69,26,61,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,400,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,3,163,1,1,401,402,403,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,404,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,60,1,5,56,1,5,1,1,5,1,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,26,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-336,-336,-89,-89,-336,165,-336,-336,-89,-89,-89,405,-89,-89,-89,-89,-89,-336,-89,-336,-336,-336,-336,-336,-336,-336,-336,-336,-89,-336,-336,-89,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,406,-336,-336,-89,-89,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,1,1,8,4,1,1,1,1,1,3,1,409,410,411,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,407,408,412,413,65,73,74,46,47,71,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,414,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-353,-353,-353,-353,-353,-353,-353,-353,131,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,130,101,102,-353,-353,-353,-353,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,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,130,-249,-249,-249,-249,-249,-249,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,2,84,8,415,104,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,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,130,-252,-252,-252,-252,-252,-252,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,2,84,8,416,104,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,417,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,3,69,10,49,165,419,418,2,69,10,165,420,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,9,1,5,62,1,1,5,32,23,16,-402,-402,-402,-402,-402,-402,-402,-402,-402,53,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,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,130,-246,-246,-246,-246,-246,-246,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,2,84,8,421,104,13,1,5,62,1,1,5,32,23,16,10,1,10,1,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,2,75,75,423,422,1,150,424,7,58,1,10,30,92,1,2,429,109,428,425,426,427,430,2,75,75,-370,-370,1,193,431,26,6,41,9,1,1,1,1,1,1,1,6,1,5,10,8,6,3,1,1,1,1,2,1,85,3,2,-112,294,105,106,436,109,297,261,110,111,435,-112,-112,298,289,432,290,295,299,291,292,293,300,437,433,434,13,1,5,62,1,1,5,32,23,16,10,1,10,1,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,13,1,5,62,1,1,5,32,23,16,10,1,10,1,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,13,1,5,62,1,1,5,32,23,16,10,1,10,1,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,13,1,5,62,1,1,5,32,23,16,10,1,10,1,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,62,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,26,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,438,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,13,1,5,62,1,1,5,32,23,16,10,1,10,1,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,13,1,5,62,1,1,5,32,23,16,10,1,10,1,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,13,1,5,62,1,1,5,32,23,16,10,1,10,1,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,13,1,5,62,1,1,5,32,23,16,10,1,10,1,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,439,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,440,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,1,150,441,57,1,5,56,1,5,1,1,5,2,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-36,-36,-36,-36,-36,-36,-36,-36,149,150,151,152,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,58,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,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,2,6,140,112,442,110,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,443,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,30,6,63,1,5,20,12,2,16,1,4,26,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-226,-226,-226,-226,131,-226,346,444,345,-226,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,58,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,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,-169,-169,-169,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,1,1,3,1,8,1,3,6,1,1,1,1,7,3,11,1,1,1,2,2,1,9,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,2,5,1,8,4,1,1,1,1,1,3,1,352,253,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,251,55,54,75,76,98,104,61,87,445,91,255,88,89,94,447,446,68,44,45,95,96,254,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,10,6,63,1,5,23,1,8,8,6,9,-244,-244,-244,449,450,-244,-244,-244,448,-244,62,6,5,37,2,1,1,1,1,1,1,3,3,1,6,1,1,1,3,6,11,3,11,1,1,1,2,2,1,13,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,451,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,5,6,63,1,5,32,-172,-172,-172,-172,-172,117,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,1,1,3,1,6,2,1,3,6,1,1,1,1,7,3,11,2,1,2,2,1,5,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,2,5,1,8,4,1,1,1,1,1,3,1,352,253,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,250,107,108,251,55,54,75,76,98,104,61,87,91,255,88,89,94,453,452,249,252,248,68,44,45,95,96,254,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,62,6,5,37,2,1,1,1,1,1,1,3,3,1,6,1,1,1,3,6,11,3,11,1,1,1,2,2,1,13,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,5,6,63,1,5,32,-177,-177,-177,-177,-177,6,6,63,1,5,32,23,-227,-227,-227,-227,-227,-227,6,6,63,1,5,32,23,-228,-228,-228,-228,-228,-228,111,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,1,1,3,1,6,1,1,1,3,6,1,1,1,1,7,3,11,1,1,3,2,1,13,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,2,5,1,8,4,1,1,1,1,1,3,1,-229,454,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,-229,-229,107,108,-229,55,54,75,76,98,104,61,87,-229,91,88,89,94,68,-229,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,54,1,5,56,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,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,2,60,1,455,261,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,456,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,457,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,54,1,5,56,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,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,62,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,26,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,62,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,26,1,1,1,1,1,1,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,-58,-58,-58,-58,2,60,1,458,261,2,60,1,459,261,53,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,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,9,6,63,1,5,23,1,8,8,15,-244,-244,-244,461,460,-244,-244,-244,-244,5,6,63,1,5,40,-148,-148,-148,-148,-148,1,94,462,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,463,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,1,94,-155,1,94,-156,1,94,-157,1,94,-158,1,94,-159,1,94,-160,1,94,-161,1,94,-162,1,94,-163,1,94,-164,1,94,-165,1,94,-166,1,94,-167,1,94,-168,23,69,10,16,61,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,165,464,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,23,69,10,16,61,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,165,465,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-283,-283,-283,-283,-283,-283,-283,-283,131,-283,-283,466,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,130,101,102,-283,-283,-283,-283,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-285,-285,-285,-285,-285,-285,-285,-285,131,-285,-285,467,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,130,101,102,-285,-285,-285,-285,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,45,1,5,62,1,1,5,4,10,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-292,-292,-292,165,-292,-292,468,-292,-292,131,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,130,101,102,-292,-292,-292,-292,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,6,6,63,1,5,19,5,-117,-117,-117,-117,469,-117,9,6,63,1,5,23,1,8,8,15,-244,-244,-244,471,470,-244,-244,-244,-244,7,6,63,1,5,1,18,5,-126,-126,-126,-126,472,-126,-126,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,473,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,3,60,1,45,260,261,474,6,6,63,1,5,19,5,-129,-129,-129,-129,-129,-129,5,6,63,1,5,24,-113,-113,-113,-113,-113,11,6,63,1,5,1,10,1,1,6,5,29,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,11,6,63,1,5,1,10,1,1,6,5,29,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,11,6,63,1,5,1,10,1,1,6,5,29,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,5,6,63,1,5,24,-118,-118,-118,-118,-118,17,39,4,1,14,1,1,1,23,1,7,13,3,2,1,2,29,3,478,480,479,296,109,297,261,477,298,104,475,91,476,481,482,90,86,54,1,5,56,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-40,-40,-40,-40,-40,-40,-40,483,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-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,57,5,1,2,1,1,305,110,111,484,485,304,4,62,1,2,2,-61,-61,-61,-61,112,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,1,1,3,1,5,1,2,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,486,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,488,487,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,4,62,1,2,2,-66,-66,-66,-66,5,1,5,62,2,76,-4,-4,-4,-4,-4,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,130,-416,-416,-416,-416,-416,-416,-416,-416,115,116,-416,-416,-416,-416,-416,-416,123,-416,-416,-416,-416,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,130,-417,-417,-417,-417,-417,-417,-417,-417,115,116,-417,-417,-417,-417,-417,-417,123,-417,-417,-417,-417,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,130,-418,-418,-418,-418,-418,-418,-418,-418,-418,116,-418,-418,-418,-418,-418,-418,123,-418,-418,-418,-418,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,130,-419,-419,-419,-419,-419,-419,-419,-419,-419,116,-419,-419,-419,-419,-419,-419,123,-419,-419,-419,-419,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,130,-420,-420,-420,-420,-420,-420,114,113,115,116,-420,-420,-420,-420,-420,-420,123,-420,-420,-420,-420,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,130,-421,-421,-421,-421,-421,-421,114,113,115,116,117,-421,-421,-421,-421,-421,123,-421,-421,126,-421,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,130,-422,-422,-422,-422,-422,-422,114,113,115,116,117,118,-422,-422,-422,-422,123,-422,-422,126,-422,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,130,-423,-423,-423,-423,-423,-423,114,113,115,116,117,118,119,-423,-423,-423,123,-423,-423,126,-423,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,130,-424,-424,-424,-424,-424,-424,114,113,115,116,117,118,119,120,-424,-424,123,-424,-424,126,-424,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,130,-432,-432,-432,-432,-432,-432,114,113,115,116,117,118,119,120,121,-432,123,124,-432,126,-432,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-433,-433,-433,-433,-433,-433,-433,-433,131,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,128,129,130,101,102,-433,-433,-433,-433,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,130,-431,-431,-431,-431,-431,-431,114,113,115,116,117,118,119,120,121,-431,123,-431,-431,126,-431,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,130,-434,-434,-434,-434,-434,-434,114,113,115,116,117,118,119,120,121,122,123,124,-434,126,-434,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,130,-435,-435,-435,-435,-435,-435,114,113,115,116,117,-435,-435,-435,-435,-435,123,-435,-435,-435,-435,22,94,1,61,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,489,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-263,-263,-263,-263,-263,-263,-263,-263,131,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,490,-263,-263,130,101,102,-263,-263,-263,-263,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-267,-267,-267,-267,-267,-267,-267,-267,131,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,130,101,102,-267,-267,-267,-267,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,4,97,74,2,2,492,491,493,494,11,58,1,24,1,1,7,4,10,2,29,39,157,109,159,160,158,104,495,162,161,200,199,11,58,1,24,1,1,7,4,10,2,29,39,157,109,159,160,158,104,496,162,161,200,199,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,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,497,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-262,-262,-262,-262,-262,-262,-262,-262,131,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,130,101,102,-262,-262,-262,-262,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-266,-266,-266,-266,-266,-266,-266,-266,131,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,130,101,102,-266,-266,-266,-266,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,54,1,5,56,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,62,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,26,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,62,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,26,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,25,89,6,14,16,1,30,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,498,131,346,499,345,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,109,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,5,2,3,11,2,1,2,2,1,11,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,2,5,1,8,4,1,1,1,1,1,3,1,500,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,501,104,61,87,91,346,88,89,94,343,345,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,1,89,502,1,89,503,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,1,1,3,1,7,1,1,9,1,1,1,1,4,3,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,504,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,-191,107,108,55,54,75,76,98,-191,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,53,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-48,-48,-48,-48,-48,-48,-48,505,-48,-48,-48,-70,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,58,11,37,2,1,1,1,1,1,1,3,3,1,7,1,1,9,8,3,3,11,2,3,2,1,13,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,58,11,37,2,1,1,1,1,1,1,3,3,1,7,1,1,9,8,3,3,11,2,3,2,1,13,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,506,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,507,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,54,1,5,56,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,9,6,63,1,5,23,1,8,8,15,-244,-244,-244,509,508,-244,-244,-244,-244,5,6,63,1,5,55,-221,-221,-221,-221,-221,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,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,1,2,2,1,9,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,2,5,1,8,4,1,1,1,1,1,3,1,352,253,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,351,107,108,55,54,75,76,98,104,61,87,91,255,88,89,94,350,68,44,45,95,96,254,510,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,27,6,63,1,5,20,12,23,26,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-226,-226,-226,-226,131,-226,-226,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,62,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,26,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,62,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,26,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,22,89,6,61,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,511,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,512,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,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,130,-71,-71,-71,-71,-71,-71,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,513,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,514,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-74,-74,-74,-74,-74,-74,-74,-74,131,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,128,129,130,101,102,-74,-74,-74,-74,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,515,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,516,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-77,-77,-77,-77,-77,-77,-77,-77,131,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,128,129,130,101,102,-77,-77,-77,-77,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,517,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-80,-80,-80,-80,-80,-80,-80,-80,131,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,128,129,130,101,102,-80,-80,-80,-80,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,518,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,519,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-83,-83,-83,-83,-83,-83,-83,-83,131,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,128,129,130,101,102,-83,-83,-83,-83,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,520,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,3,133,1,1,521,95,96,18,6,52,1,10,1,13,1,1,7,7,7,1,1,1,6,15,6,1,-245,157,109,-245,-245,159,160,158,104,-245,162,-245,161,156,-245,-245,522,155,2,6,63,523,524,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,525,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,6,6,63,1,5,55,2,-207,-207,-207,-207,-207,-207,56,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,3,1,4,2,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,2,6,64,112,526,10,6,63,1,5,23,1,8,8,15,2,-244,-244,-244,373,374,-244,-244,-244,-244,527,1,70,528,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,130,-437,-437,-437,-437,-437,-437,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,529,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,530,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-87,-87,-87,-87,-87,-87,-87,-87,131,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,128,129,130,101,102,-87,-87,-87,-87,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,531,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,3,7,1,3,1,1,2,29,1,5,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,532,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,2,69,10,165,533,6,58,1,10,10,5,8,534,109,165,536,535,104,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,537,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,538,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,539,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,540,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,1,97,541,1,173,542,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,543,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,10,58,1,24,1,1,7,14,2,29,39,157,109,159,160,158,104,162,161,200,544,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,545,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,3,163,1,1,546,402,403,4,70,83,11,1,547,548,549,403,3,70,83,12,-279,-279,-279,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,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,2,5,1,8,4,1,1,1,1,1,3,1,551,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,550,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,45,1,5,62,1,1,5,4,10,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-334,-334,-334,165,-334,-334,552,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,130,-334,-334,-334,-334,-334,-334,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,553,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,2,6,64,555,554,2,6,64,-344,-344,23,6,64,25,61,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-347,-347,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,2,6,64,-348,-348,7,6,64,86,1,9,1,1,-349,-349,132,133,134,101,102,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,556,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,1,59,557,22,69,26,61,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,558,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,1,70,559,1,70,560,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,130,-254,-254,-254,-254,-254,-254,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,18,6,52,1,10,1,5,8,1,1,7,14,2,1,20,1,2,4,1,-200,157,109,-200,-200,-200,159,160,158,104,162,161,156,561,-200,-200,154,155,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,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,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,1,70,562,3,57,5,1,563,110,111,3,92,98,5,565,564,227,3,57,5,1,566,110,111,1,150,567,9,6,63,1,5,23,1,8,8,15,-244,-244,-244,569,568,-244,-244,-244,-244,5,6,63,1,5,24,-361,-361,-361,-361,-361,6,58,1,10,122,1,2,429,109,428,570,427,430,6,6,63,1,5,24,94,-366,-366,-366,-366,-366,571,6,6,63,1,5,24,94,-368,-368,-368,-368,-368,572,2,58,1,573,109,14,1,5,62,1,1,5,32,23,16,4,6,1,10,1,-372,-372,-372,-372,-372,-372,-372,-372,-372,574,-372,-372,-372,-372,9,6,63,1,5,23,1,8,8,15,-244,-244,-244,576,575,-244,-244,-244,-244,5,6,63,1,5,24,-390,-390,-390,-390,-390,6,58,1,10,125,3,2,578,109,435,437,577,434,12,6,63,1,5,1,10,1,1,6,5,29,65,-395,-395,-395,-395,-123,-123,-123,-123,-123,-395,-123,579,6,6,63,1,5,24,94,-398,-398,-398,-398,-398,580,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,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,582,581,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,583,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,30,1,5,62,1,1,5,20,12,23,16,10,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-385,-385,-385,-385,-385,-385,131,-385,-385,-385,-385,-385,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,2,84,8,584,104,3,57,5,1,585,110,111,53,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,2,6,64,112,586,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,587,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,58,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,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,-170,-170,-170,62,6,5,37,2,1,1,1,1,1,1,3,3,1,6,1,1,1,3,6,11,3,11,1,1,1,2,2,1,13,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,451,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,5,6,63,1,5,32,-178,-178,-178,-178,-178,2,69,38,589,588,122,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,1,1,3,1,6,1,1,1,3,6,1,1,1,1,7,3,4,7,1,1,1,2,2,1,1,4,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,2,5,1,8,4,1,1,1,1,1,3,1,-245,352,253,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,-245,-245,107,108,251,55,54,75,76,98,104,61,-245,87,-245,91,255,88,89,94,-245,591,590,252,248,68,-245,44,45,95,96,254,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,4,6,63,1,37,592,-179,-179,-179,62,6,5,37,2,1,1,1,1,1,1,3,3,1,6,1,1,1,3,6,11,3,11,1,1,1,2,2,1,13,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,10,6,63,1,5,23,1,8,8,6,9,-244,-244,-244,449,450,-244,-244,-244,593,-244,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,1,1,3,1,8,1,3,6,1,1,1,1,7,3,11,2,1,2,2,1,9,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,2,5,1,8,4,1,1,1,1,1,3,1,352,253,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,251,55,54,75,76,98,104,61,87,91,255,88,89,94,447,446,68,44,45,95,96,254,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,27,6,63,1,5,20,12,23,26,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-213,-213,-213,-213,131,-213,-213,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,53,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,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,-235,-235,-235,-235,-235,-235,-235,-235,-235,22,89,6,61,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,594,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,595,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,53,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,53,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,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,-239,-239,-239,-239,-239,-239,-239,-239,-239,3,6,63,46,597,598,596,36,6,33,8,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,1,1,1,11,1,1,7,7,7,1,1,1,6,2,1,12,15,-245,281,272,273,276,275,274,277,278,282,105,106,269,109,270,261,110,111,-245,-245,107,108,279,280,271,104,-245,162,-245,161,268,-245,599,267,-245,86,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,600,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,601,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,26,6,63,1,5,20,20,41,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-154,-154,-154,-154,131,-154,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,602,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,603,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,604,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,605,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,606,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,3,6,63,30,608,609,607,24,6,41,9,1,1,1,1,1,1,1,6,1,15,8,6,4,1,1,1,1,1,1,6,15,-245,294,105,106,296,109,297,261,110,111,-245,-245,298,611,-245,610,299,291,292,-245,293,300,-245,-245,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,612,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,613,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,22,95,12,49,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,131,614,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,615,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,10,6,63,1,5,11,1,1,11,13,16,-130,-130,-130,-130,-132,-132,-132,-130,616,144,10,6,63,1,5,11,1,1,11,13,16,-131,-131,-131,-131,618,619,620,-131,617,144,9,6,63,1,5,11,1,1,11,29,-133,-133,-133,-133,-133,-133,-133,-133,-133,9,6,63,1,5,11,1,1,11,29,-134,-134,-134,-134,-134,-134,-134,-134,-134,9,6,63,1,5,11,1,1,11,29,-135,-135,-135,-135,-135,-135,-135,-135,-135,9,6,63,1,5,11,1,1,11,29,-136,-136,-136,-136,-136,-136,-136,-136,-136,4,86,2,24,16,257,258,621,144,2,112,16,622,144,53,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,56,1,5,56,1,2,2,1,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,4,62,1,2,2,-62,-62,-62,-62,2,6,62,112,623,110,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,624,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,4,62,1,2,2,-65,-65,-65,-65,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,625,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,627,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,626,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,628,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,629,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,630,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,631,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,1,97,632,1,173,633,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,634,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,62,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,26,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,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,1,1,3,1,7,1,1,9,1,1,1,1,4,3,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,635,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,-189,107,108,55,54,75,76,98,-189,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,25,70,25,14,16,1,30,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,636,131,346,499,345,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,1,70,637,62,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,26,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,62,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,26,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,23,70,19,6,61,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-190,-190,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,638,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,22,89,6,61,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,639,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,640,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,3,6,63,61,642,643,641,118,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,1,1,3,1,6,1,1,1,9,1,1,1,1,7,3,4,7,1,1,1,2,2,1,1,8,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,2,5,1,8,4,1,1,1,1,1,3,1,-245,352,253,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,-245,-245,107,108,55,54,75,76,98,104,61,-245,87,-245,91,255,88,89,94,-245,644,68,-245,44,45,95,96,254,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,9,6,63,1,5,23,1,8,8,15,-244,-244,-244,509,645,-244,-244,-244,-244,62,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,26,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,22,70,25,61,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,646,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,130,-72,-72,-72,-72,-72,-72,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,22,70,25,61,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,647,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-75,-75,-75,-75,-75,-75,-75,-75,131,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,128,129,130,101,102,-75,-75,-75,-75,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,22,70,25,61,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,648,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-78,-78,-78,-78,-78,-78,-78,-78,131,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,128,129,130,101,102,-78,-78,-78,-78,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-81,-81,-81,-81,-81,-81,-81,-81,131,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,128,129,130,101,102,-81,-81,-81,-81,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,22,70,25,61,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,649,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-84,-84,-84,-84,-84,-84,-84,-84,131,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,128,129,130,101,102,-84,-84,-84,-84,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,111,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,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,651,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,165,107,108,650,55,54,75,76,98,104,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,6,6,63,1,5,55,2,-202,-202,-202,-202,-202,-202,11,58,1,24,1,1,7,14,2,1,27,1,157,109,159,160,158,104,162,161,156,652,155,18,6,52,1,10,1,5,8,1,1,7,14,2,1,20,1,2,4,1,-200,157,109,-200,-200,-200,159,160,158,104,162,161,156,653,-200,-200,154,155,27,6,63,1,5,20,35,2,24,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-206,-206,-206,-206,131,-206,-206,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,56,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,3,1,4,2,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,3,133,1,1,654,95,96,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,22,70,25,61,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,655,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,130,-439,-439,-439,-439,-439,-439,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,23,69,10,16,61,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,165,656,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,2,69,10,165,657,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,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,2,69,10,165,658,2,69,10,165,659,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,3,7,1,3,1,1,2,29,1,5,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,25,69,10,16,5,56,1,9,1,1,4,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,165,660,131,661,128,129,130,101,102,662,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,24,69,10,16,5,56,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,165,663,131,664,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,24,69,10,16,5,56,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,165,665,131,666,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,24,69,10,16,5,56,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,165,667,131,668,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,669,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,670,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,23,69,10,16,61,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,165,671,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,4,97,74,2,2,-331,-331,-331,-331,26,75,20,2,59,1,9,1,1,3,2,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-329,131,-329,128,129,130,101,102,-329,-329,-329,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,4,70,83,11,1,672,673,549,403,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,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,2,69,10,165,674,3,70,83,12,-280,-280,-280,3,69,6,4,165,676,675,23,69,6,20,61,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-230,-230,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,45,1,5,62,1,1,5,4,10,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-338,-338,-338,165,-338,-338,677,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,130,-338,-338,-338,-338,-338,-338,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,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,1,1,3,1,7,1,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,2,1,1,1,1,8,4,1,1,1,1,1,3,1,-346,409,410,411,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,-346,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,678,412,413,65,73,74,46,47,71,48,49,50,52,53,23,6,64,25,61,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-350,-350,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,2,6,64,-351,-351,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,1,1,8,4,1,1,1,1,1,3,1,409,410,411,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,679,408,412,413,65,73,74,46,47,71,48,49,50,52,53,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,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,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,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,9,6,63,1,5,23,1,8,8,15,-244,-244,-244,373,374,-244,-244,-244,680,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,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,13,1,5,62,1,1,5,32,23,16,10,1,10,1,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,1,150,681,6,58,1,10,122,1,2,429,109,428,682,427,430,13,1,5,62,1,1,5,32,23,16,10,1,10,1,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,3,57,5,1,683,110,111,3,6,63,30,685,686,684,11,6,52,1,10,1,29,8,8,15,62,2,-245,429,109,-245,-245,-245,-245,-245,-245,687,430,9,6,63,1,5,23,1,8,8,15,-244,-244,-244,569,688,-244,-244,-244,-244,2,58,1,689,109,2,58,1,690,109,1,150,-371,3,57,5,1,691,110,111,3,6,63,30,693,694,692,11,6,52,1,10,1,29,8,8,15,64,5,-245,578,109,-245,-245,-245,-245,-245,-245,437,695,9,6,63,1,5,23,1,8,8,15,-244,-244,-244,576,696,-244,-244,-244,-244,6,6,63,1,5,24,94,-395,-395,-395,-395,-395,579,3,58,1,135,697,109,698,2,58,1,699,109,30,1,5,62,1,1,5,20,12,23,16,10,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-378,-378,-378,-378,-378,-378,131,-378,-378,-378,-378,-378,130,-378,-378,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,700,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,701,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,1,70,702,13,1,5,62,1,1,5,32,23,16,10,1,10,1,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,1,146,703,22,95,12,49,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,131,704,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,58,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,117,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,1,1,3,1,6,2,1,3,6,1,1,1,1,7,3,11,2,1,2,2,1,5,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,2,5,1,8,4,1,1,1,1,1,3,1,352,253,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,250,107,108,251,55,54,75,76,98,104,61,87,91,255,88,89,94,453,705,249,252,248,68,44,45,95,96,254,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,5,6,63,1,5,32,-173,-173,-173,-173,-173,116,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,1,1,3,1,6,1,1,1,3,6,1,1,1,1,7,3,11,1,1,1,2,2,1,9,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,2,5,1,8,4,1,1,1,1,1,3,1,352,253,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,-180,-180,107,108,251,55,54,75,76,98,104,61,87,-180,91,255,88,89,94,447,446,68,44,45,95,96,254,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,115,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,1,1,3,1,8,1,3,6,1,1,1,1,7,3,11,2,1,2,2,1,5,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,2,5,1,8,4,1,1,1,1,1,3,1,352,253,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,251,55,54,75,76,98,104,61,87,91,255,88,89,94,453,706,252,248,68,44,45,95,96,254,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,2,69,1,589,707,53,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,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,-236,-236,-236,-236,-236,-236,-236,-236,-236,22,70,25,61,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,708,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,53,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,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,29,39,8,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,8,1,11,1,1,7,14,2,1,8,1,27,281,272,273,276,275,274,277,278,282,105,106,269,109,270,261,110,111,107,108,279,280,271,104,162,161,268,709,267,86,35,6,33,8,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,1,1,1,3,8,1,1,7,14,2,1,6,1,1,1,27,-147,281,272,273,276,275,274,277,278,282,105,106,269,109,270,261,110,111,-147,-147,107,108,-147,279,280,271,104,162,161,268,-147,710,266,267,86,5,6,63,1,5,40,-149,-149,-149,-149,-149,26,6,63,1,5,20,20,41,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-152,-152,-152,-152,131,-152,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,711,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,2,69,10,165,712,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,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,130,-284,-284,-284,-284,-284,-284,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,130,-286,-286,-286,-286,-286,-286,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,26,6,63,1,5,20,4,57,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-119,-119,-119,-119,713,-119,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,714,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,58,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,17,47,9,1,1,1,1,1,1,1,22,8,10,1,1,1,2,1,294,105,106,296,109,297,261,110,111,298,611,715,299,291,292,293,300,23,6,41,9,1,1,1,1,1,1,1,6,1,5,10,8,6,3,1,1,1,1,2,1,-112,294,105,106,296,109,297,261,110,111,-112,-112,-112,298,611,-112,716,295,299,291,292,293,300,5,6,63,1,5,24,-114,-114,-114,-114,-114,6,6,63,1,5,19,5,-117,-117,-117,-117,717,-117,26,6,63,1,5,20,4,57,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-121,-121,-121,-121,131,-121,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,718,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,6,6,63,1,5,19,5,-127,-127,-127,-127,-127,-127,22,95,12,49,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,131,719,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,9,6,63,1,5,11,1,1,11,29,-139,-139,-139,-139,-139,-139,-139,-139,-139,9,6,63,1,5,11,1,1,11,29,-140,-140,-140,-140,-140,-140,-140,-140,-140,2,60,1,720,261,2,60,1,721,261,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,722,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,723,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,9,6,63,1,5,11,1,1,11,29,-137,-137,-137,-137,-137,-137,-137,-137,-137,9,6,63,1,5,11,1,1,11,29,-138,-138,-138,-138,-138,-138,-138,-138,-138,4,62,1,2,2,-63,-63,-63,-63,2,6,64,112,724,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,130,-436,-436,-436,-436,-436,-436,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,725,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-265,-265,-265,-265,-265,-265,-265,-265,131,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,130,101,102,-265,-265,-265,-265,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,726,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,130,-311,-311,-311,727,-311,-311,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,728,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,130,-316,-316,-316,-316,-316,-316,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,729,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,130,-320,-320,-320,-320,-320,-320,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,730,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,130,-324,-324,-324,-324,-324,-324,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,731,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,732,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,130,-327,-327,-327,-327,-327,-327,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,23,70,19,6,61,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-188,-188,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,1,89,733,1,89,734,22,89,6,61,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-69,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,62,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,26,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,22,70,25,61,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,735,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,54,1,5,56,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,1,2,2,1,9,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,2,5,1,8,4,1,1,1,1,1,3,1,352,253,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,255,88,89,94,736,68,44,45,95,96,254,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,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,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,1,2,2,1,9,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,2,5,1,8,4,1,1,1,1,1,3,1,352,253,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,351,107,108,55,54,75,76,98,104,61,87,91,255,88,89,94,350,68,44,45,95,96,254,737,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,5,6,63,1,5,55,-222,-222,-222,-222,-222,3,6,63,1,642,643,738,1,89,739,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,53,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,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,9,1,5,62,1,1,5,32,23,16,-196,-196,-196,-196,-196,-196,-196,-196,-196,6,6,63,1,5,55,2,-203,-203,-203,-203,-203,-203,9,6,63,1,5,23,1,8,8,15,-244,-244,-244,373,740,-244,-244,-244,-244,2,69,10,165,650,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,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,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,3,7,1,3,1,1,2,29,1,5,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,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,3,7,1,3,1,1,2,29,1,5,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,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,741,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,742,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,743,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,744,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,745,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,24,69,10,16,5,56,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,165,746,131,747,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,24,69,10,16,5,56,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,165,748,131,749,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,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,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,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,2,69,10,165,750,1,70,751,4,6,64,83,12,752,-281,-281,-281,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,753,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,2,6,64,-345,-345,2,6,64,555,754,2,69,10,165,755,3,57,5,1,756,110,111,9,6,63,1,5,23,1,8,8,15,-244,-244,-244,569,757,-244,-244,-244,-244,13,1,5,62,1,1,5,32,23,16,10,1,10,1,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,1,150,758,4,58,1,133,2,429,109,759,430,6,58,1,10,122,1,2,429,109,428,760,427,430,5,6,63,1,5,24,-362,-362,-362,-362,-362,3,6,63,1,685,686,761,5,6,63,1,5,24,-367,-367,-367,-367,-367,5,6,63,1,5,24,-369,-369,-369,-369,-369,13,1,5,62,1,1,5,32,23,16,10,1,10,1,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,14,1,5,62,1,1,5,32,23,16,4,6,1,10,1,-373,-373,-373,-373,-373,-373,-373,-373,-373,762,-373,-373,-373,-373,4,58,1,135,5,578,109,437,763,6,58,1,10,125,3,2,578,109,435,437,764,434,5,6,63,1,5,24,-391,-391,-391,-391,-391,3,6,63,1,693,694,765,5,6,63,1,5,24,-396,-396,-396,-396,-396,5,6,63,1,5,24,-397,-397,-397,-397,-397,5,6,63,1,5,24,-399,-399,-399,-399,-399,30,1,5,62,1,1,5,20,12,23,16,10,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-379,-379,-379,-379,-379,-379,131,-379,-379,-379,-379,-379,130,-379,-379,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,22,70,25,61,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,766,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,13,1,5,62,1,1,5,32,23,16,10,1,10,1,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,53,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,53,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,10,6,63,1,5,23,1,8,8,6,9,-244,-244,-244,449,450,-244,-244,-244,767,-244,5,6,63,1,5,32,-174,-174,-174,-174,-174,5,6,63,1,5,32,-175,-175,-175,-175,-175,1,89,768,5,6,63,1,5,40,-150,-150,-150,-150,-150,9,6,63,1,5,23,1,8,8,15,-244,-244,-244,461,769,-244,-244,-244,-244,22,70,25,61,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,770,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,14,40,18,1,24,1,1,7,4,5,5,2,29,37,2,333,157,109,159,160,158,104,771,772,87,161,200,332,199,22,70,25,61,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,773,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,5,6,63,1,5,24,-115,-115,-115,-115,-115,9,6,63,1,5,23,1,8,8,15,-244,-244,-244,471,774,-244,-244,-244,-244,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,775,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,606,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,22,70,25,61,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,776,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,6,6,63,1,5,19,5,-128,-128,-128,-128,-128,-128,9,6,63,1,5,11,1,1,11,29,-141,-141,-141,-141,-141,-141,-141,-141,-141,9,6,63,1,5,11,1,1,11,29,-142,-142,-142,-142,-142,-142,-142,-142,-142,22,89,6,61,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,777,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,778,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,1,68,779,22,70,25,61,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,780,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,781,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,782,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,783,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,784,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,785,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,786,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,130,-318,-318,-318,-318,-318,-318,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,787,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,130,-322,-322,-322,-322,-322,-322,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,62,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,26,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,62,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,26,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,1,89,788,5,6,63,1,5,55,-223,-223,-223,-223,-223,9,6,63,1,5,23,1,8,8,15,-244,-244,-244,509,789,-244,-244,-244,-244,5,6,63,1,5,55,-224,-224,-224,-224,-224,62,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,26,1,1,1,1,1,1,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,-106,-106,3,6,63,1,523,524,790,24,69,10,16,61,1,9,1,1,4,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,165,791,131,128,129,130,101,102,792,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,24,69,10,16,5,56,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,165,793,131,794,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,23,69,10,16,61,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,165,795,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,23,69,10,16,61,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,165,796,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,23,69,10,16,61,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,165,797,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,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,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,798,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,799,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,1,70,800,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,3,70,83,12,-282,-282,-282,23,69,6,20,61,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-231,-231,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,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,13,1,5,62,1,1,5,32,23,16,10,1,10,1,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,3,6,63,30,685,686,801,3,57,5,1,802,110,111,5,6,63,1,5,24,-363,-363,-363,-363,-363,9,6,63,1,5,23,1,8,8,15,-244,-244,-244,569,803,-244,-244,-244,-244,5,6,63,1,5,24,-364,-364,-364,-364,-364,3,57,5,1,804,110,111,5,6,63,1,5,24,-392,-392,-392,-392,-392,9,6,63,1,5,23,1,8,8,15,-244,-244,-244,576,805,-244,-244,-244,-244,5,6,63,1,5,24,-393,-393,-393,-393,-393,13,1,5,62,1,1,5,32,23,16,10,1,10,1,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,2,69,1,589,806,53,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,3,6,63,1,597,598,807,5,6,63,1,5,40,-153,-153,-153,-153,-153,4,97,74,2,2,808,491,493,494,11,58,1,24,1,1,7,4,10,2,29,39,157,109,159,160,158,104,809,162,161,200,199,5,6,63,1,5,24,-120,-120,-120,-120,-120,3,6,63,1,608,609,810,26,6,63,1,5,20,4,57,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-119,-119,-119,-119,131,-119,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,5,6,63,1,5,24,-122,-122,-122,-122,-122,9,6,63,1,5,11,1,1,11,29,-143,-143,-143,-143,-143,-143,-143,-143,-143,22,70,25,61,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,811,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,4,62,1,2,2,-64,-64,-64,-64,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,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,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,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,130,-312,-312,-312,812,-312,-312,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,813,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,130,-313,-313,-313,-313,-313,-313,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,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,130,-317,-317,-317,-317,-317,-317,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,130,-321,-321,-321,-321,-321,-321,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,130,-325,-325,-325,-325,-325,-325,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,814,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,815,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,62,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,26,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,3,6,63,1,642,643,816,6,6,63,1,5,55,2,-204,-204,-204,-204,-204,-204,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,817,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,818,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,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,23,69,10,16,61,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,165,819,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,23,69,10,16,61,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,165,820,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,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,1,150,821,13,1,5,62,1,1,5,32,23,16,10,1,10,1,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,3,6,63,1,685,686,822,13,1,5,62,1,1,5,32,23,16,10,1,10,1,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,3,6,63,1,693,694,823,5,6,63,1,5,32,-176,-176,-176,-176,-176,5,6,63,1,5,40,-151,-151,-151,-151,-151,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,824,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,1,97,825,5,6,63,1,5,24,-116,-116,-116,-116,-116,1,89,826,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,827,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,828,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,130,-319,-319,-319,-319,-319,-319,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,130,-323,-323,-323,-323,-323,-323,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,5,6,63,1,5,55,-225,-225,-225,-225,-225,23,69,10,16,61,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,165,829,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,23,69,10,16,61,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,165,830,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,3,57,5,1,831,110,111,5,6,63,1,5,24,-365,-365,-365,-365,-365,5,6,63,1,5,24,-394,-394,-394,-394,-394,45,1,5,62,1,1,5,14,5,1,2,1,1,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-316,-316,-316,-316,-316,834,-316,-316,-316,-316,832,-316,833,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,130,-316,-316,-316,-316,-316,-316,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,835,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,9,6,63,1,5,11,1,1,11,29,-144,-144,-144,-144,-144,-144,-144,-144,-144,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,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,130,-314,-314,-314,-314,-314,-314,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,44,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,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,130,-315,-315,-315,-315,-315,-315,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,43,1,5,62,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,13,1,5,62,1,1,5,32,23,16,10,1,10,1,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,1,99,836,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,837,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,7,6,63,1,29,8,8,15,-245,-245,-245,-245,-245,-245,-245,45,1,5,62,1,1,5,14,5,1,2,1,1,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-318,-318,-318,-318,-318,834,-318,-318,-318,-318,838,-318,839,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,130,-318,-318,-318,-318,-318,-318,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,58,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,45,1,5,62,1,1,5,14,5,1,2,1,1,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-317,-317,-317,-317,-317,834,-317,-317,-317,-317,840,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,130,-317,-317,-317,-317,-317,-317,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,1,99,841,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,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,5,1,8,4,1,1,1,1,1,3,1,842,168,30,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,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,172,173,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,174,175,176,48,49,50,52,53,1,99,843,58,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,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,45,1,5,62,1,1,5,14,5,1,2,1,1,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-319,-319,-319,-319,-319,834,-319,-319,-319,-319,844,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,130,-319,-319,-319,-319,-319,-319,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,58,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,1,99,845,58,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,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],U=[],_=0,W,f,$,F;while(_<u.length){W=u[_++],f={},$=0,F=[];while(W--)$+=u[_++],F.push($);for($ of F)f[$]=u[_++];U.push(f)}return U})(),ruleTable:[0,0,3,0,3,1,4,1,4,3,4,2,5,1,5,1,5,1,9,1,9,1,9,1,9,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,8,1,8,1,14,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,38,1,47,1,47,1,58,1,60,1,57,1,57,3,64,1,64,2,66,3,66,5,66,2,66,1,49,1,49,3,74,3,74,1,17,3,17,4,17,5,18,3,18,4,18,5,19,3,19,4,19,3,20,3,20,4,20,5,21,3,21,4,21,3,21,2,21,3,21,2,37,1,37,1,37,1,82,1,82,1,82,3,82,3,82,4,82,6,82,4,82,6,82,4,82,5,82,7,82,3,82,3,82,4,82,6,84,10,84,12,84,11,84,13,84,4,102,0,102,1,102,3,102,4,102,6,103,1,103,1,103,3,103,5,103,3,103,5,105,1,105,1,105,1,93,1,93,3,93,4,93,1,104,2,104,2,110,1,110,1,110,1,110,1,110,1,110,2,110,2,110,2,110,2,110,3,110,3,110,4,110,6,46,2,46,4,116,0,116,1,116,3,116,4,116,6,117,3,117,5,117,2,118,1,118,1,118,1,118,1,118,1,118,1,118,1,118,1,118,1,118,1,118,1,118,1,118,1,118,1,83,2,83,3,83,4,120,1,120,3,120,4,120,4,120,6,122,1,122,2,121,1,121,2,119,1,119,2,124,1,124,2,125,1,125,1,40,5,90,3,90,2,90,2,90,1,32,6,32,3,15,5,15,2,35,5,35,2,133,1,133,1,129,0,129,1,129,3,129,4,129,6,136,1,136,3,136,2,136,1,137,1,137,1,137,1,137,1,138,2,41,2,41,2,41,3,41,2,41,2,112,2,112,4,140,1,140,3,140,4,140,4,140,6,123,1,123,1,123,1,123,1,141,1,141,3,43,1,43,1,85,2,44,3,44,4,44,6,45,3,45,3,79,2,79,3,39,3,39,5,98,0,98,1,10,2,10,4,10,1,30,2,30,4,31,1,31,2,31,4,31,3,151,3,151,5,154,3,154,5,22,1,22,3,22,1,22,3,22,3,22,7,22,5,22,3,22,3,23,2,23,3,23,4,23,5,159,3,159,3,159,2,26,5,26,7,26,4,26,6,163,1,163,2,164,3,164,4,166,2,166,4,166,2,166,4,24,2,24,2,24,2,24,1,169,2,169,2,169,3,25,5,25,7,25,7,25,9,25,9,25,5,25,7,25,6,25,8,25,5,25,7,25,6,25,8,25,5,25,7,25,3,25,5,25,5,25,7,25,7,25,9,25,9,25,5,25,7,25,6,25,8,25,5,25,7,25,6,25,8,25,5,25,7,25,3,25,5,176,1,176,3,96,1,96,3,27,1,27,2,27,3,27,4,27,2,27,3,27,4,27,5,33,3,34,2,28,4,28,6,183,1,183,3,183,2,184,1,184,1,184,1,184,2,184,2,29,2,29,2,12,2,12,4,12,4,12,5,12,7,12,6,12,9,191,1,191,3,191,4,191,4,191,6,192,1,192,3,192,1,192,3,189,1,190,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,197,1,197,3,197,4,197,4,197,6,199,1,199,3,199,3,199,1,199,3,36,2,36,2,36,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,5,16,3,16,5,16,4,42,2],ruleActions:(u,U,_,W)=>{let f=U,$=U.length-1;switch(u){case 1:return["program"];case 2:return["program",...f[$]];case 3:case 61:case 113:case 148:case 177:case 181:case 201:case 221:case 230:case 279:case 330:case 344:case 361:case 390:return[f[$]];case 4:case 114:case 149:case 202:case 222:case 231:case 345:case 362:case 391:return[...f[$-2],f[$]];case 5:case 63:case 184:case 346:return f[$-1];case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 48:case 51:case 52:case 53:case 55:case 56:case 57:case 58:case 59:case 66:case 67:case 89:case 90:case 91:case 92:case 93:case 118:case 123:case 124:case 125:case 126:case 129:case 132:case 133:case 134:case 135:case 136:case 155:case 156:case 157:case 158:case 159:case 160:case 163:case 164:case 165:case 166:case 167:case 172:case 198:case 199:case 205:case 209:case 210:case 211:case 212:case 226:case 227:case 228:case 244:case 245:case 259:case 261:case 290:case 328:case 347:case 348:case 349:case 366:case 368:case 370:case 395:case 398:return f[$];case 49:case 162:return"undefined";case 50:case 161:return"null";case 54:case 168:return["symbol",f[$]];case 60:return["str",...f[$-1]];case 62:case 178:case 182:case 280:return[...f[$-1],f[$]];case 64:case 220:case 224:case 364:case 393:return f[$-2];case 65:return"";case 68:return["regex",f[$-1]];case 69:return["regex-index",f[$-2],f[$]];case 70:return["regex-index",f[$],null];case 71:case 121:return["=",f[$-2],f[$]];case 72:return["=",f[$-3],f[$]];case 73:case 122:return["=",f[$-4],f[$-1]];case 74:return["state",f[$-2],f[$]];case 75:return["state",f[$-3],f[$]];case 76:return["state",f[$-4],f[$-1]];case 77:case 79:return["computed",f[$-2],f[$]];case 78:return["computed",f[$-3],f[$]];case 80:return["readonly",f[$-2],f[$]];case 81:return["readonly",f[$-3],f[$]];case 82:return["readonly",f[$-4],f[$-1]];case 83:case 85:return["effect",f[$-2],f[$]];case 84:return["effect",f[$-3],f[$]];case 86:case 87:case 88:return["effect",null,f[$]];case 94:case 103:case 141:return[".",f[$-2],f[$]];case 95:case 104:case 142:return["?.",f[$-2],f[$]];case 96:case 98:case 105:case 143:return["[]",f[$-3],f[$-1]];case 97:case 99:case 106:case 144:return["[]",f[$-5],f[$-2]];case 100:return[f[$-1][0],f[$-3],...f[$-1].slice(1)];case 101:return["optindex",f[$-4],f[$-1]];case 102:return["optindex",f[$-6],f[$-2]];case 107:return["object-comprehension",f[$-8],f[$-6],[["for-of",f[$-4],f[$-2],!1]],[]];case 108:return["object-comprehension",f[$-10],f[$-8],[["for-of",f[$-6],f[$-4],!1]],[f[$-2]]];case 109:return["object-comprehension",f[$-9],f[$-7],[["for-of",f[$-4],f[$-2],!0]],[]];case 110:return["object-comprehension",f[$-11],f[$-9],[["for-of",f[$-6],f[$-4],!0]],[f[$-2]]];case 111:return["object",...f[$-2]];case 112:case 147:case 179:case 200:case 219:return[];case 115:case 150:case 203:case 223:case 363:case 392:return[...f[$-3],f[$]];case 116:case 151:case 204:case 225:case 365:case 394:return[...f[$-5],...f[$-2]];case 117:return[null,f[$],f[$]];case 119:case 152:return[":",f[$-2],f[$]];case 120:case 153:return[":",f[$-4],f[$-1]];case 127:return["dynamicKey",f[$-1]];case 128:return["[]","this",f[$-1]];case 130:case 131:case 154:case 213:return["...",f[$]];case 137:case 217:return["super",...f[$]];case 138:case 139:case 140:case 215:case 218:return[f[$-1],...f[$]];case 145:return["map-literal"];case 146:return["map-literal",...f[$-2]];case 169:return["array"];case 170:return["array",...f[$-1]];case 171:return["array",...f[$-2],...f[$-1]];case 173:return[...f[$-2],...f[$]];case 174:return[...f[$-3],...f[$]];case 175:return[...f[$-2],...f[$-1]];case 176:return[...f[$-5],...f[$-4],...f[$-2],...f[$-1]];case 180:return[...f[$]];case 183:return null;case 185:return"..";case 186:case 229:return"...";case 187:return[f[$-2],f[$-3],f[$-1]];case 188:case 418:case 420:case 421:case 435:case 437:return[f[$-1],f[$-2],f[$]];case 189:return[f[$],f[$-1],null];case 190:return[f[$-1],null,f[$]];case 191:return[f[$],null,null];case 192:return["def",f[$-4],f[$-2],f[$]];case 193:return["def",f[$-1],[],f[$]];case 194:case 196:return[f[$-1],f[$-3],f[$]];case 195:case 197:return[f[$-1],[],f[$]];case 206:case 329:return["default",f[$-2],f[$]];case 207:return["rest",f[$]];case 208:return["expansion"];case 214:return["tagged-template",f[$-1],f[$]];case 216:return["optcall",f[$-2],...f[$]];case 232:case 233:return"this";case 234:return[".","this",f[$]];case 235:return[".","super",f[$]];case 236:return["[]","super",f[$-1]];case 237:return["[]","super",f[$-2]];case 238:return[".","new",f[$]];case 239:return[".","import",f[$]];case 240:return["block"];case 241:return["block",...f[$-1]];case 242:return f[$-1].length===1?f[$-1][0]:["block",...f[$-1]];case 243:return f[$-2].length===1?f[$-2][0]:["block",...f[$-2]];case 246:return["return",f[$]];case 247:return["return",f[$-1]];case 248:return["return"];case 249:return["throw",f[$]];case 250:return["throw",f[$-1]];case 251:return["yield"];case 252:return["yield",f[$]];case 253:return["yield",f[$-1]];case 254:return["yield-from",f[$]];case 255:return["if",f[$-1],f[$]];case 256:return f[$-4].length===3?["if",f[$-4][1],f[$-4][2],["if",f[$-1],f[$]]]:[...f[$-4],["if",f[$-1],f[$]]];case 257:return["if",["!",f[$-1]],f[$]];case 258:return["if",["!",f[$-3]],f[$-2],f[$]];case 260:return f[$-2].length===3?["if",f[$-2][1],f[$-2][2],f[$]]:[...f[$-2],f[$]];case 262:case 263:return["if",f[$],[f[$-2]]];case 264:return["?:",f[$-4],f[$-6],f[$-1]];case 265:return["?:",f[$-2],f[$-4],f[$]];case 266:case 267:return["if",["!",f[$]],[f[$-2]]];case 268:return["try",f[$]];case 269:return["try",f[$-1],f[$]];case 270:return["try",f[$-2],f[$]];case 271:return["try",f[$-3],f[$-2],f[$]];case 272:case 273:case 400:case 403:case 405:return[f[$-1],f[$]];case 274:return[null,f[$]];case 275:return["switch",f[$-3],f[$-1],null];case 276:return["switch",f[$-5],f[$-3],f[$-1]];case 277:return["switch",null,f[$-1],null];case 278:return["switch",null,f[$-3],f[$-1]];case 281:return["when",f[$-1],f[$]];case 282:return["when",f[$-2],f[$-1]];case 283:return["while",f[$]];case 284:return["while",f[$-2],f[$]];case 285:return["while",["!",f[$]]];case 286:return["while",["!",f[$-2]],f[$]];case 287:return f[$-1].length===2?[f[$-1][0],f[$-1][1],f[$]]:[f[$-1][0],f[$-1][1],f[$-1][2],f[$]];case 288:case 289:return f[$].length===2?[f[$][0],f[$][1],[f[$-1]]]:[f[$][0],f[$][1],f[$][2],[f[$-1]]];case 291:return["loop",f[$]];case 292:return["loop",[f[$]]];case 293:return["loop-n",f[$-1],f[$]];case 294:return["for-in",f[$-3],f[$-1],null,null,f[$]];case 295:return["for-in",f[$-5],f[$-3],null,f[$-1],f[$]];case 296:return["for-in",f[$-5],f[$-3],f[$-1],null,f[$]];case 297:return["for-in",f[$-7],f[$-5],f[$-1],f[$-3],f[$]];case 298:return["for-in",f[$-7],f[$-5],f[$-3],f[$-1],f[$]];case 299:return["for-of",f[$-3],f[$-1],!1,null,f[$]];case 300:return["for-of",f[$-5],f[$-3],!1,f[$-1],f[$]];case 301:return["for-of",f[$-3],f[$-1],!0,null,f[$]];case 302:return["for-of",f[$-5],f[$-3],!0,f[$-1],f[$]];case 303:return["for-as",f[$-3],f[$-1],!1,null,f[$]];case 304:return["for-as",f[$-5],f[$-3],!1,f[$-1],f[$]];case 305:case 307:return["for-as",f[$-3],f[$-1],!0,null,f[$]];case 306:case 308:return["for-as",f[$-5],f[$-3],!0,f[$-1],f[$]];case 309:return["for-in",[],f[$-1],null,null,f[$]];case 310:return["for-in",[],f[$-3],f[$-1],null,f[$]];case 311:return["comprehension",f[$-4],[["for-in",f[$-2],f[$],null]],[]];case 312:return["comprehension",f[$-6],[["for-in",f[$-4],f[$-2],null]],[f[$]]];case 313:return["comprehension",f[$-6],[["for-in",f[$-4],f[$-2],f[$]]],[]];case 314:return["comprehension",f[$-8],[["for-in",f[$-6],f[$-4],f[$]]],[f[$-2]]];case 315:return["comprehension",f[$-8],[["for-in",f[$-6],f[$-4],f[$-2]]],[f[$]]];case 316:return["comprehension",f[$-4],[["for-of",f[$-2],f[$],!1]],[]];case 317:return["comprehension",f[$-6],[["for-of",f[$-4],f[$-2],!1]],[f[$]]];case 318:return["comprehension",f[$-5],[["for-of",f[$-2],f[$],!0]],[]];case 319:return["comprehension",f[$-7],[["for-of",f[$-4],f[$-2],!0]],[f[$]]];case 320:return["comprehension",f[$-4],[["for-as",f[$-2],f[$],!1,null]],[]];case 321:return["comprehension",f[$-6],[["for-as",f[$-4],f[$-2],!1,null]],[f[$]]];case 322:return["comprehension",f[$-5],[["for-as",f[$-2],f[$],!0,null]],[]];case 323:return["comprehension",f[$-7],[["for-as",f[$-4],f[$-2],!0,null]],[f[$]]];case 324:return["comprehension",f[$-4],[["for-as",f[$-2],f[$],!0,null]],[]];case 325:return["comprehension",f[$-6],[["for-as",f[$-4],f[$-2],!0,null]],[f[$]]];case 326:return["comprehension",f[$-2],[["for-in",[],f[$],null]],[]];case 327:return["comprehension",f[$-4],[["for-in",[],f[$-2],f[$]]],[]];case 331:case 367:case 369:case 396:case 397:case 399:return[f[$-2],f[$]];case 332:return["class",null,null];case 333:return["class",null,null,f[$]];case 334:return["class",null,f[$]];case 335:return["class",null,f[$-1],f[$]];case 336:return["class",f[$],null];case 337:return["class",f[$-1],null,f[$]];case 338:return["class",f[$-2],f[$]];case 339:return["class",f[$-3],f[$-1],f[$]];case 340:return["enum",f[$-1],f[$]];case 341:return["schema",f[$]];case 342:return["component",null,["block",...f[$-1]]];case 343:return["component",f[$-3],["block",...f[$-1]]];case 350:return["offer",f[$]];case 351:return["accept",f[$]];case 352:case 353:return["render",f[$]];case 354:case 357:return["import","{}",f[$]];case 355:case 356:return["import",f[$-2],f[$]];case 358:return["import",f[$-4],f[$]];case 359:return["import",f[$-4],f[$-2],f[$]];case 360:return["import",f[$-7],f[$-4],f[$]];case 371:return["*",f[$]];case 372:return["export","{}"];case 373:return["export",f[$-2]];case 374:case 375:case 376:case 377:case 381:case 382:case 383:case 384:return["export",f[$]];case 378:return["export",["=",f[$-2],f[$]]];case 379:return["export",["=",f[$-3],f[$]]];case 380:return["export",["=",f[$-4],f[$-1]]];case 385:return["export-default",f[$]];case 386:return["export-default",f[$-1]];case 387:return["export-all",f[$]];case 388:return["export-from","{}",f[$]];case 389:return["export-from",f[$-4],f[$]];case 401:case 402:case 404:case 440:return["do-iife",f[$]];case 406:return["-",f[$]];case 407:return["+",f[$]];case 408:return["?",f[$-1]];case 409:return["presence",f[$-1]];case 410:return["await",f[$]];case 411:return["await",f[$-1]];case 412:return["--",f[$],!1];case 413:return["++",f[$],!1];case 414:return["--",f[$-1],!0];case 415:return["++",f[$-1],!0];case 416:return["+",f[$-2],f[$]];case 417:return["-",f[$-2],f[$]];case 419:return["**",f[$-2],f[$]];case 422:return["&",f[$-2],f[$]];case 423:return["^",f[$-2],f[$]];case 424:return["|",f[$-2],f[$]];case 425:case 426:case 427:case 428:case 429:case 430:return["control",f[$-1],f[$-2],f[$]];case 431:return["&&",f[$-2],f[$]];case 432:return["||",f[$-2],f[$]];case 433:return["??",f[$-2],f[$]];case 434:return["|>",f[$-2],f[$]];case 436:return["?:",f[$-4],f[$-2],f[$]];case 438:return[f[$-3],f[$-4],f[$-1]];case 439:return[f[$-2],f[$-3],f[$]]}},parseError(u,U){let _,W,f,$,F,Y,Z;if(U.recoverable)return this.trace(u);else throw f=(U.line||0)+1,_=U.loc?.c||0,Z=U.token?` (token: ${U.token})`:"",Y=U.text?` near '${U.text}'`:"",$=`line ${f}, column ${_}`,F=`Parse error at ${$}${Z}${Y}: ${u}`,W=Error(F),W.hash=U,W},parse(u){let U,_,W,f,$,F,Y,Z,G,Q,z,J,X,K,D,w,A,R,O,P,q,B,M,I,H,S;[P,S,Q]=[[0],[null],[]],[X,H,M,B,w]=[this.parseTable,"",0,0,0],[_,U]=[2,1],Z=Object.create(this.lexer),R={ctx:{}};for(let N in this.ctx){if(!Object.hasOwn(this.ctx,N))continue;let V=this.ctx[N];R.ctx[N]=V}if(Z.setInput(u,R.ctx),[R.ctx.lexer,R.ctx.parser]=[Z,this],Z.loc==null)Z.loc={};I=Z.loc,Q.push(I),this.parseError=typeof R.ctx.parseError==="function"?R.ctx.parseError:Object.getPrototypeOf(this).parseError,Y=()=>{let N;if(N=Z.lex()||U,typeof N!=="number")N=this.symbolIds[N]||N;return N},q=K=O=W=D=J=F=z=$=null,A={};while(!0){if(O=P[P.length-1],q==null)q=Y();if(W=X[O]?.[q],W==null){if(f="",!w)$=(()=>{let N=[];for(let V in X[O]){if(!Object.hasOwn(X[O],V))continue;if(this.tokenNames[V]&&V>_)N.push(`'${this.tokenNames[V]}'`)}return N})();throw f=(()=>{if(Z.showPosition)return`Parse error on line ${M+1}:
|
|
2
|
+
${Z.showPosition()}
|
|
3
|
+
Expecting ${$.join(", ")}, got '${this.tokenNames[q]||q}'`;else return`Parse error on line ${M+1}: Unexpected ${q===U?"end of input":`'${this.tokenNames[q]||q}'`}`,this.parseError(f,{text:Z.match,token:this.tokenNames[q]||q,line:Z.line,loc:I,expected:$})})(),Error(f)}if(W>0)if(P.push(q,W),S.push(Z.text),Q.push(Z.loc),q=null,!K){if([B,H,M,I]=[Z.len,Z.text,Z.line,Z.loc],w>0)w--}else[q,K]=[K,null];else if(W<0){if(F=this.ruleTable[-W*2+1],A.$=S[S.length-F],G=Q[Q.length-(F||1)],A._$={r:G.r,c:G.c},D=this.ruleActions.call(A,-W,S,Q,R.ctx),D!=null)A.$=D;if(Array.isArray(A.$))A.$.loc=A._$;if(F)P.length-=F*2,S.length-=F,Q.length-=F;P.push(this.ruleTable[-W*2]),S.push(A.$),Q.push(A._$),z=X[P[P.length-2]][P[P.length-1]],P.push(z)}else if(W===0)return S[S.length-1]}},trace(){},ctx:{}},u4=(u={})=>{let U=Object.create(e3);return Object.defineProperty(U,"ctx",{value:{...u},enumerable:!1,writable:!0,configurable:!0}),U},z1=u4();var f0=z1.parse.bind(z1);var f4=new Set(["input","shape","model","mixin","enum"]),y2="input",$4=new Set(["beforeValidation","afterValidation","beforeSave","afterSave","beforeCreate","afterCreate","beforeUpdate","afterUpdate","beforeDestroy","afterDestroy"]),U4=new Set(["TERMINATOR","INDENT","OUTDENT","=","+=","-=","*=","/=","%=","**=","//=","%%=","?=","??=","&&=","||=","&=","|=","^=","<<=",">>=",">>>=","READONLY_ASSIGN","REACTIVE_ASSIGN","COMPUTED_ASSIGN","RETURN","THROW","YIELD","AWAIT","EXPORT",",","(","[","{","CALL_START","PARAM_START","INDEX_START","->","=>",":","WHEN","THEN","IF","UNLESS","UNARY","!","NOT"]);function n1(u,U){if(u)u.prototype.rewriteSchema=function(){W4(this)},v1._LexerCtor=u;if(U)U.prototype.emitSchema=function(_,W,f){return O4(this,_,W,f)},U.prototype.getSchemaRuntime=function(){return y4()}}var T2=new Set(["defaultMaxString"]);function W4(u){let U=u.tokens,_={defaultMaxString:null},W=0,f=0;while(f<U.length){let $=U[f];if($[0]==="INDENT")W++;else if($[0]==="OUTDENT")W--;let F=_4(U,f,_,W);if(F>0){U.splice(f,F);continue}if(Y4(U,f))F4(u,U,f,_);f++}}function _4(u,U,_,W){let f=u[U];if(!f||f[0]!=="IDENTIFIER"||f[1]!=="schema")return 0;if(u[U+1]?.[0]!==".")return 0;let $=u[U+2];if(!$||$[0]!=="PROPERTY")return 0;if(u[U+3]?.[0]!=="=")return 0;let F=u[U-1];if(F){let z=F[0];if(z!=="TERMINATOR"&&z!=="INDENT"&&z!=="OUTDENT")return 0}let Y=$[1];if(!T2.has(Y))throw v($,`Unknown schema pragma 'schema.${Y}'. Known pragmas: ${[...T2].join(", ")}.`);if(W>0)throw v($,`Schema pragma 'schema.${Y}' must be declared at file top level. It was found inside a nested block (function / class / if / loop body), where it would leak into later top-level schemas.`);let Z=u[U+4];if(!Z||Z[0]!=="NUMBER")throw v(Z||$,`Pragma 'schema.${Y}' requires a number literal. Example: schema.${Y} = 100.`);let G=Number(Z[1]);if(!Number.isFinite(G)||G<0||!Number.isInteger(G))throw v(Z,`Pragma 'schema.${Y}' expects a non-negative integer (got ${Z[1]}). Use 0 to disable.`);_[Y]=G===0?null:G;let Q=U+5;if(u[Q]?.[0]==="TERMINATOR")Q++;return Q-U}function Y4(u,U){let _=u[U];if(!_||_[0]!=="IDENTIFIER"||_[1]!=="schema")return!1;let W=u[U-1];if(W){let $=W[0];if($==="."||$==="?.")return!1;if(W[0]==="IDENTIFIER"||W[0]==="PROPERTY"||W[0]===")"||W[0]==="]"||W[0]==="}"||W[0]==="STRING"||W[0]==="NUMBER"){if(!U4.has($))return!1}}let f=U+1;if(u[f]?.[0]==="SYMBOL")f++;if(u[f]?.[0]==="TERMINATOR"){if(u[f][1]===";")return!0;f++}return u[f]?.[0]==="INDENT"}function F4(u,U,_,W){let f=U[_],$=null,F=y2,Y=_+1;if(U[Y]?.[0]==="SYMBOL"){$=U[Y];let X=$[1];if(!f4.has(X))throw v($,`Unknown schema kind :${X}. Expected one of :input, :shape, :model, :mixin, :enum.`);F=X,Y++}let Z,G;if(U[Y]?.[0]==="TERMINATOR"&&U[Y][1]===";"){let X=Y+1,K=X,D=0,w=U[X]?.loc?.r??null;while(K<U.length){let A=U[K],R=A[0];if(D===0&&w!=null&&A.loc&&A.loc.r>w)break;if(R==="("||R==="["||R==="{"||R==="CALL_START"||R==="INDEX_START"||R==="PARAM_START")D++;else if(R===")"||R==="]"||R==="}"||R==="CALL_END"||R==="INDEX_END"||R==="PARAM_END")D--;else if(D===0&&R==="TERMINATOR"&&A[1]!==";")break;else if(D===0&&(R==="INDENT"||R==="OUTDENT"))break;else if(D===0&&R==="->")throw v(A,"Inline schema body does not support '->' (method/hook/transform). Use the indented form.");else if(D===0&&R==="EFFECT")throw v(A,"Inline schema body does not support '~>' (computed getter). Use the indented form.");else if(D===0&&R==="UNARY_MATH"&&A[1]==="!"&&U[K+1]?.[0]==="COMPARE"&&U[K+1][1]===">")throw v(A,"Inline schema body does not support '!>' (eager derived). Use the indented form.");K++}while(K>X&&U[K-1][0]==="TERMINATOR")K--;if(Z=U.slice(X,K),G=K,!Z.length)throw v(f,`Inline schema body is empty. Either add '; field; …' entries after 'schema${$?" :"+F:""};' or switch to the indented form.`)}else{if(U[Y]?.[0]==="TERMINATOR")Y++;if(U[Y]?.[0]!=="INDENT")throw v(f,`Expected indented schema body after 'schema${$?" :"+F:""}'.`);let X=Y,K=b4(U,X);if(K<0)throw v(U[X],"Unterminated schema body.");Z=U.slice(X+1,K),G=K+1}let Q=Z4(F,Z,{schemaLoc:f.loc,kindLoc:$?.loc??null,kind:F,defaultMaxString:W?.defaultMaxString??null}),z=_2("SCHEMA","schema",f),J=_2("SCHEMA_BODY",F,f);J.data={descriptor:Q},U.splice(_,G-_,z,J)}function Z4(u,U,_){let W=[],f=G4(U);if(u===y2&&!_.kindLoc&&f.length>0&&f[0][0]?.[0]==="SYMBOL")u="enum",_.kind="enum";if(u==="enum")for(let $ of f)D4($,W);else{for(let $ of f)z4(u,$,W,_);if(u==="mixin")for(let $ of W){if($.tag==="method"||$.tag==="computed"||$.tag==="hook")throw v({loc:$.headerLoc||$.loc},`:mixin schemas are fields-only. '${$.name}' is a ${$.tag}; move it to a :shape or :model.`);if($.tag==="ensure")throw v({loc:$.headerLoc||$.loc},":mixin schemas don't accept @ensure refinements. Move the invariant to a :shape or :model that composes this mixin.");if($.tag==="directive"&&$.name!=="mixin")throw v({loc:$.loc},`:mixin schemas only accept '@mixin Name' directives. '@${$.name}' is not allowed.`)}else if(u==="input")for(let $ of W){if($.tag==="method"||$.tag==="computed"||$.tag==="hook")throw v({loc:$.headerLoc||$.loc},`:input schemas are fields-only. '${$.name}' is a ${$.tag}; use :shape or :model if you need behavior.`);if($.tag==="directive"&&$.name!=="mixin")throw v({loc:$.loc},`:input schemas only accept '@mixin Name' and '@ensure'. '@${$.name}' is not allowed.`)}else if(u==="shape")for(let $ of W){if($.tag==="hook")throw v({loc:$.headerLoc||$.loc},`:shape schemas don't have lifecycle hooks. '${$.name}' runs only on :model; move it or remove it.`);if($.tag==="directive"&&$.name!=="mixin")throw v({loc:$.loc},`:shape schemas only accept '@mixin Name'. '@${$.name}' is :model-only.`)}}return{kind:u,loc:_.schemaLoc,kindLoc:_.kindLoc,entries:W}}function G4(u){let U=[],_=[],W=0;for(let f of u){let $=f[0];if($==="INDENT")W++;if($==="OUTDENT")W--;if($==="TERMINATOR"&&W===0){if(_.length)U.push(_),_=[];continue}_.push(f)}if(_.length)U.push(_);return U}var Q4=new Set(["string","email","url","phone","zip"]);function z4(u,U,_,W){let f=U[0];if(!f)return;if(f[0]==="@"){let B=U[1];if(!B||B[0]!=="IDENTIFIER"&&B[0]!=="PROPERTY")throw v(f,"Expected directive name after '@'.");let M=U.slice(2),I=B[1];if(I==="ensure"){let S=w4(M,f);for(let N of S)_.push({tag:"ensure",name:"ensure",message:N.message,paramTokens:N.paramTokens,bodyTokens:N.bodyTokens,loc:N.loc,headerLoc:f.loc});return}let H=null;if(I==="belongs_to"||I==="has_many"||I==="has_one"||I==="one"||I==="many"||I==="mixin"){let S=M[0];if(S&&(S[0]==="IDENTIFIER"||S[0]==="PROPERTY")){let N=S.data?.predicate===!0;if(!N&&M[1]?.[0]==="?")N=!0;H=[{target:S[1],optional:N}]}}_.push({tag:"directive",name:I,args:H,argTokens:M,loc:f.loc});return}if(f[0]==="PROPERTY"){X4(u,f,U,_);return}if(f[0]!=="IDENTIFIER")throw v(f,`Unexpected ${f[0]} at schema top level. Allowed: fields ('name! type'), directives ('@name'), methods ('name: -> body'), or computed getters ('name: ~> body').`);let $=f[1];if(U[1]?.[0]===":")throw v(U[1],"Schema fields use 'name type' (space, no colon). For methods or computed use 'name: -> body' or 'name: ~> body'.");let F=j4(f),Y=1;while(Y<U.length){let B=U[Y];if(!(U[Y-1]&&!U[Y-1].spaced))break;if(B[0]==="#"||B[0]==="?"||B[0]==="!"){F.push(B[0]),Y++;continue}break}let Z=U[Y];if(Z?.[0]===":")throw v(Z,"Schema fields use 'name type' (space, no colon). Got 'name:'. For methods/computed use 'name: -> body' or 'name: ~> body'.");let G="string",Q=null;if(Z?.[0]==="IDENTIFIER")G=Z[1],Y++;else if(Z?.[0]==="STRING"){Q=[JSON.parse(Z[1])],Y++;while(U[Y]?.[0]==="|"&&U[Y+1]?.[0]==="STRING")Y++,Q.push(JSON.parse(U[Y][1])),Y++;if(U[Y]?.[0]==="|"){let B=U[Y+1],M=B?.[0]??"<end>";throw v(B||U[Y],`Literal unions contain string literals only. '${M}' is not allowed as a union member. Use the '?' modifier for nullability.`)}if(Q.length<2)throw v(Z,`Literal union needs at least two string literals. Use '${JSON.stringify(Q[0])}' as a default with '[${JSON.stringify(Q[0])}]' instead.`);G="literal-union"}let z=!1,J=U[Y]?.[0],X=U[Y+1]?.[0];if((J==="["||J==="INDEX_START")&&(X==="]"||X==="INDEX_END"))z=!0,Y+=2;let K=U.slice(Y);if((Z?.[0]==="IDENTIFIER"||Z?.[0]==="STRING")&&K[0]?.[0]==="->")throw v(K[0],`Field '${$}' has a transform after the type; a comma is required before '->'. Write '${$} ${G}, -> …'.`);let w=null,A=null,R=null,O=null,P=null;if(K.length>0){if(K[0]?.[0]===",")K=K.slice(1);let B=g1(K);for(let M=0;M<B.length;M++){let I=B[M];while(I.length&&(I[0][0]==="INDENT"||I[0][0]==="TERMINATOR"))I=I.slice(1);if(!I.length)continue;if(I[0][0]!=="->"){let S=A4(I);if(S>0)throw v(I[S],`Field '${$}' has a transform after other content; a comma is required before '->'. Write 'name! <constraints>, -> <body>'.`)}let H=I[0];if(H[0]!=="->"){while(I.length&&(I[I.length-1][0]==="OUTDENT"||I[I.length-1][0]==="TERMINATOR"))I=I.slice(0,-1);if(!I.length)continue;H=I[0]}if(H[0]==="["||H[0]==="INDEX_START"){if(w)throw v(H,`Field '${$}' has more than one '[…]' constraint. At most one default / regex bracket per field.`);w=I}else if(H[0]==="{"){if(A)throw v(H,`Field '${$}' has more than one '{…}' attrs bracket.`);A=I}else if(J4(I)){if(R)throw v(H,`Field '${$}' has more than one range constraint. Only one 'min..max' per field.`);R=I}else if(H[0]==="REGEX"&&I.length===1){if(O)throw v(H,`Field '${$}' has more than one regex constraint.`);O=H}else if(H[0]==="->"){if(M!==B.length-1)throw v(H,`Transform '-> …' must be the last element on the field line for '${$}'.`);P=I.slice(1)}else throw v(H,`Unexpected trailer for field '${$}'. Expected '[…]' default, '{…}' attrs, '/regex/', 'min..max' range, or '-> transform'.`)}}if(z&&Q)throw v(Z,"Array-of-literal-union is not supported. Use 'string[]' if you need an array of strings.");let q=null;if(W?.defaultMaxString!=null&&!O&&!Q&&Q4.has(G))q=W.defaultMaxString;_.push({tag:"field",name:$,modifiers:F,typeName:G,array:z,literals:Q,constraintTokens:w,attrsTokens:A,rangeTokens:R,regexToken:O,transformTokens:P,defaultMax:q,loc:f.loc})}function A4(u){let U=0;for(let _=0;_<u.length;_++){let W=u[_][0];if(W==="("||W==="["||W==="{"||W==="CALL_START"||W==="INDEX_START"||W==="PARAM_START")U++;else if(W===")"||W==="]"||W==="}"||W==="CALL_END"||W==="INDEX_END"||W==="PARAM_END")U--;else if(U===0&&W==="->")return _}return-1}function J4(u){let U=0,_=!1;if(u[U]?.[0]==="-"&&u[U+1]?.[0]==="NUMBER")U+=2,_=!0;else if(u[U]?.[0]==="NUMBER")U++,_=!0;if(u[U]?.[0]!=="..")return!1;U++;let W=!1;if(u[U]?.[0]==="-"&&u[U+1]?.[0]==="NUMBER")U+=2,W=!0;else if(u[U]?.[0]==="NUMBER")U++,W=!0;return(_||W)&&U===u.length}function X4(u,U,_,W){let f=U[1],$=_[1];if(!$||$[0]!==":")throw v(U,`Expected ':' after '${f}' before arrow.`);let F=_[2],Y=_[3],Z,G,Q;if(F&&F[0]==="->")Z="->",G=F.loc,Q=3;else if(F&&F[0]==="EFFECT")Z="~>",G=F.loc,Q=3;else if(F&&F[0]==="UNARY_MATH"&&F[1]==="!"&&Y&&Y[0]==="COMPARE"&&Y[1]===">"&&!F.spaced)Z="!>",G=F.loc,Q=4;else throw v($,`Schema top-level '${f}:' must be followed by '->' (method/hook), '~>' (computed getter), or '!>' (eager derived).`);let z=_.slice(Q),J=$4.has(f),X;if(Z==="~>")X="computed";else if(Z==="!>")X="derived";else if(u==="model"&&J)X="hook";else X="method";W.push({tag:X,name:f,arrow:Z,paramTokens:[],bodyTokens:z,headerLoc:U.loc,arrowLoc:G})}function w4(u,U){let _=u;if(!_.length)throw v(U,"@ensure requires 'message, (x) -> body' or '[...]' array of pairs.");if(_[0]?.[0]==="CALL_START"&&_[_.length-1]?.[0]==="CALL_END")_=_.slice(1,-1);if(!_.length)throw v(U,"@ensure requires 'message, (x) -> body' or '[...]' array of pairs.");let W=_[0];if(W[0]==="["||W[0]==="INDEX_START"){let $=K4(_,W),F=M4($);if(F.length===0)throw v(W,"@ensure [...] must contain at least one 'message, fn' pair.");if(F.length%2!==0)throw v(W,`@ensure [...] must have pairs of 'message, fn' (got ${F.length} elements; odd count).`);let Y=[];for(let Z=0;Z<F.length;Z+=2)Y.push(j2(F[Z],F[Z+1],W));return Y}let f=g1(_);if(f.length<2)throw v(W,"@ensure inline form must be 'message, (x) -> body'. Did you forget the comma?");if(f.length>2)throw v(W,`@ensure inline form takes exactly 'message, fn' (got ${f.length} comma-separated parts). Use '@ensure [...]' for multiple refinements.`);return[j2(f[0],f[1],W)]}function K4(u,U){let _=0,W=[];for(let f=0;f<u.length;f++){let $=u[f],F=$[0];if(F==="["||F==="INDEX_START"){if(_++,_===1)continue}if(F==="]"||F==="INDEX_END"){if(_--,_===0){if(f<u.length-1)throw v(u[f+1],"@ensure [...] must be the only argument — extra tokens after ']'.");if(W.length>=2&&W[0][0]==="INDENT"&&W[W.length-1][0]==="OUTDENT"){let Y=0,Z=!1;for(let G=0;G<W.length;G++)if(W[G][0]==="INDENT")Y++;else if(W[G][0]==="OUTDENT"){if(Y--,Y===0&&G===W.length-1){Z=!0;break}if(Y===0)break}if(Z)W=W.slice(1,-1)}return W}}if(_>=1)W.push($)}throw v(U,"@ensure: unclosed '['.")}function M4(u){let U=[],_=[],W=0;for(let f of u){let $=f[0];if($==="("||$==="["||$==="{"||$==="CALL_START"||$==="INDEX_START"||$==="PARAM_START"||$==="INDENT")W++;if($===")"||$==="]"||$==="}"||$==="CALL_END"||$==="INDEX_END"||$==="PARAM_END"||$==="OUTDENT")W--;if(W===0&&($===","||$==="TERMINATOR")){if(_.length)U.push(_),_=[];continue}_.push(f)}if(_.length)U.push(_);return U}function j2(u,U,_){if(!u||!u.length)throw v(_,"@ensure: missing message (expected a string literal).");if(u.length!==1||u[0][0]!=="STRING")throw v(u[0]||_,"@ensure: each refinement's first element must be a string literal message.");let W=u[0],f=JSON.parse(W[1]);if(!U||!U.length)throw v(W,"@ensure: missing function after message.");let $=U[0];if($[0]!=="("&&$[0]!=="PARAM_START")throw v($,"@ensure: expected '(args) -> body' after the message. Predicates must declare their parameter explicitly — '(u) -> ...'.");let F=1,Y=1,Z=[];while(Y<U.length&&F>0){let z=U[Y],J=z[0];if(J==="("||J==="PARAM_START")F++;if(J===")"||J==="PARAM_END"){if(F--,F===0){Y++;break}}Z.push(z),Y++}if(F!==0)throw v($,"@ensure: unclosed '(' in predicate parameters.");let G=U[Y];if(!G||G[0]!=="->")throw v(G||U[Y-1]||W,"@ensure: expected '->' after predicate parameters.");let Q=U.slice(Y+1);if(!Q.length)throw v(G,"@ensure: predicate function body is empty.");return{message:f,paramTokens:Z,bodyTokens:Q,loc:W.loc}}function H4(u,U){if(!u.length)return[];return g1(u).map((W)=>{let f=W.filter(($)=>$[0]!=="TERMINATOR");if(f.length!==1||f[0][0]!=="IDENTIFIER")throw v(f[0]||U,"@ensure: predicate parameters must be plain identifiers.");return f[0][1]})}function D4(u,U){let _=u[0];if(!_)return;if(_[0]==="@"){let $=u[1],F=$&&($[0]==="IDENTIFIER"||$[0]==="PROPERTY")?$[1]:"directive";throw v(_,`:enum schemas don't accept '@${F}'. Enums hold only :symbol members. Move the invariant to a :shape or :model that uses this enum as a field type.`)}if(_[0]!=="SYMBOL")throw v(_,`Enum member must be a :symbol. Use ':${_[1]??"name"}' for a bare member or ':${_[1]??"name"} value' for a valued one.`);let W=_[1],f=u[1];if(!f){U.push({tag:"enum-member",name:W,value:void 0,loc:_.loc});return}if(f[0]===":")throw v(f,`Enum member ':${W}' — drop the ':' before the value. Use ':${W} value'.`);if(u.length>2)throw v(u[2],`Extra tokens after enum member ':${W}' value.`);U.push({tag:"enum-member",name:W,value:h4(f),loc:_.loc})}function O4(u,U,_,W){let f=_[0],$=q4(f);if(!$)throw Error("schema: missing descriptor on SCHEMA_BODY token");u.usesSchemas=!0;let F=u._schemaName||null,Y=[`kind: ${JSON.stringify($.kind)}`];if(F)Y.push(`name: ${JSON.stringify(F)}`);return Y.push(`entries: [${$.entries.map((Z)=>R4(u,Z)).join(", ")}]`),`__schema({${Y.join(", ")}})`}function q4(u){if(u&&typeof u==="object"){if(u.descriptor)return u.descriptor;if(u.data?.descriptor)return u.data.descriptor}return null}function R4(u,U){switch(U.tag){case"field":{let _=['tag: "field"',`name: ${JSON.stringify(U.name)}`,`modifiers: ${JSON.stringify(U.modifiers)}`,`typeName: ${JSON.stringify(U.typeName)}`,`array: ${U.array?"true":"false"}`];if(U.literals)_.push(`literals: ${JSON.stringify(U.literals)}`);let W=U.rangeTokens?E4(U.rangeTokens,U):null,f=U.constraintTokens?S4(U.constraintTokens,U):null,$=U.regexToken?N4(U.regexToken):null,F=L4(W,f,$,U);if(F)_.push(`constraints: ${F}`);if(U.transformTokens)_.push(`transform: ${B4(u,U.transformTokens)}`);return`{${_.join(", ")}}`}case"directive":{let _=['tag: "directive"',`name: ${JSON.stringify(U.name)}`],W=C4(U.name,U.argTokens||[]);if(W)_.push(`args: ${W}`);return`{${_.join(", ")}}`}case"ensure":{let _=I4(u,U);return`{${['tag: "ensure"',`message: ${JSON.stringify(U.message)}`,`fn: ${_}`].join(", ")}}`}case"computed":case"method":case"hook":case"derived":{let _=P4(u,U);return`{${[`tag: ${JSON.stringify(U.tag)}`,`name: ${JSON.stringify(U.name)}`,`fn: ${_}`].join(", ")}}`}case"enum-member":{let _=['tag: "enum-member"',`name: ${JSON.stringify(U.name)}`];if(U.value!==void 0)_.push(`value: ${JSON.stringify(U.value)}`);return`{${_.join(", ")}}`}default:return'{tag: "unknown"}'}}function P4(u,U){let _=v1(U.bodyTokens);if(!_)return"(function() {})";let W=["->",[],_];return u.emit(W,"value")}function B4(u,U){let _=v1(U);if(!_)return"(function() { return undefined; })";let W=["->",[],_];return u.emit(W,"value")}function I4(u,U){let _=v1(U.bodyTokens);if(!_)return"(function() { return undefined; })";let f=["->",H4(U.paramTokens,U),_];return u.emit(f,"value")}function S4(u,U){let _=u.slice(1,-1),W=g1(_);if(!W.length)return{c:null};let f=W.map(($)=>v2($,U));if(f.length===1){let $=f[0];if($ instanceof RegExp)throw v(u[0],`Regex constraints are written bare, not in brackets. Replace '[${$}]' with '${$}'.`);return{c:{default:$}}}if(f.length===2&&typeof f[0]==="number"&&typeof f[1]==="number")throw v(u[0],`Size/value ranges use 'min..max' syntax, not brackets. Replace '[${f[0]}, ${f[1]}]' with '${f[0]}..${f[1]}'.`);if(f.length===3&&f.every(($)=>typeof $==="number"))throw v(u[0],`Range + default is two separate constraints in v2. Replace '[${f[0]}, ${f[1]}, ${f[2]}]' with '${f[0]}..${f[1]}, [${f[2]}]'.`);throw v(u[0],`Constraint bracket takes a single default value in v2. Got ${f.length} elements.`)}function N4(u){let U=u[1],_=/^\/((?:\\.|[^\\/])+)\/([a-z]*)$/.exec(U);if(!_)throw v(u,`Invalid regex literal ${JSON.stringify(U)}.`);try{return new RegExp(_[1],_[2])}catch(W){throw v(u,`Invalid regex '${U}': ${W.message}`)}}function E4(u,U){let _=0,W=()=>{let Y=1;if(u[_]?.[0]==="-")Y=-1,_++;let Z=u[_++],G=v2([Z],U);if(typeof G!=="number")throw v(Z,"Range endpoints must be numeric literals.");return Y*G},f;if(u[_]?.[0]!=="..")f=W();_++;let $;if(_<u.length)$=W();if(f!==void 0&&$!==void 0&&f>$)throw v(u[0],`Range '${f}..${$}' is reversed. Write the smaller endpoint first.`);let F={};if(f!==void 0)F.min=f;if($!==void 0)F.max=$;return F}function L4(u,U,_,W){let f=U&&U.c||{},$=u&&u.min===void 0;if(u){if(u.min!==void 0)f.min=u.min;if(u.max!==void 0)f.max=u.max;if($&&f.min===void 0&&W?.modifiers?.includes("!"))f.min=1}if(_)f.regex=_;if(W?.defaultMax!=null&&f.max===void 0)f.max=W.defaultMax;if(f.min!==void 0&&f.max!==void 0&&f.min>f.max){let F=u&&u.min!==void 0?`range min ${u.min}`:"implicit min=1 from `!`",Y=u&&u.max!==void 0?`range max ${u.max}`:`pragma defaultMaxString=${W?.defaultMax}`;throw v({loc:W?.loc},`Field '${W?.name}' would have impossible constraints min=${f.min} > max=${f.max} after sugar is applied (${F} vs ${Y}). Write an explicit range or drop the conflicting pragma.`)}if(f.min===void 0&&f.max===void 0&&f.default===void 0&&f.regex===void 0)return null;return V4(f)}function V4(u){let U=[];if(u.min!==void 0)U.push(`min: ${W2(u.min)}`);if(u.max!==void 0)U.push(`max: ${W2(u.max)}`);if(u.default!==void 0)U.push(`default: ${W2(u.default)}`);if(u.regex!==void 0)U.push(`regex: ${u.regex.toString()}`);return U.length?`{${U.join(", ")}}`:null}function W2(u){if(u===null)return"null";if(u===void 0)return"undefined";if(typeof u==="string")return JSON.stringify(u);if(typeof u==="number"||typeof u==="boolean")return String(u);if(u instanceof RegExp)return u.toString();return JSON.stringify(u)}function C4(u,U){if(!U.length)return null;if(u==="belongs_to"||u==="has_many"||u==="has_one"||u==="one"||u==="many"||u==="mixin"){let _=U[0];if(!_||_[0]!=="IDENTIFIER"&&_[0]!=="PROPERTY")throw v(_||U[U.length-1],`@${u} requires a target name.`);let W=_[1],f=_.data?.predicate===!0,$=1;if(!f&&U[$]?.[0]==="?")f=!0,$++;let F=[`target: ${JSON.stringify(W)}`];if(f)F.push("optional: true");return`[{${F.join(", ")}}]`}if(u==="index"){let _=[],W=!1,f=0;if(U[f]?.[0]==="IDENTIFIER"||U[f]?.[0]==="PROPERTY")_.push(U[f][1]),f++;else if(U[f]?.[0]==="["||U[f]?.[0]==="INDEX_START"){let F=[],Y=1;f++;while(f<U.length&&Y>0){let Z=U[f];if(Z[0]==="["||Z[0]==="INDEX_START")Y++;if(Z[0]==="]"||Z[0]==="INDEX_END"){if(Y--,Y===0){f++;break}}F.push(Z),f++}for(let Z of g1(F))if(Z[0]&&(Z[0][0]==="IDENTIFIER"||Z[0][0]==="PROPERTY"))_.push(Z[0][1])}if(U[f]?.[0]==="#")W=!0;let $=[`fields: ${JSON.stringify(_)}`];if(W)$.push("unique: true");return`[{${$.join(", ")}}]`}return null}function v2(u,U){if(!u.length)throw v(null,"Empty constraint value.");let _=u[0],W=_[0];if(u.length===1){if(W==="NUMBER")return Number(_[1]);if(W==="STRING")return JSON.parse(_[1]);if(W==="BOOL")return _[1]==="true";if(W==="NULL")return null;if(W==="UNDEFINED")return;if(W==="REGEX")return T4(_[1]);if(W==="SYMBOL")return _[1]}if(u.length===2&&W==="-"&&u[1][0]==="NUMBER")return-Number(u[1][1]);throw v(_,`Constraint values must be literals (number, string, boolean, null, regex, :symbol). Got ${W}.`)}function T4(u){let U=typeof u==="string"?u:String(u),_=U.match(/^\/(.*)\/([gimsuy]*)$/s);return _?new RegExp(_[1],_[2]):new RegExp(U)}function v1(u){if(!u||!u.length)return null;let U=v1._LexerCtor;if(!U)throw Error("schema: parseBodyTokens called before Lexer was wired");let _=Object.create(U.prototype),W=u.slice();if(W.length>=2&&W[0]?.[0]==="INDENT"){let G=0,Q=-1;for(let z=0;z<W.length;z++)if(W[z][0]==="INDENT")G++;else if(W[z][0]==="OUTDENT"){if(G--,G===0){Q=z;break}}if(Q===W.length-1)W=W.slice(1,-1)}if(_.tokens=W,_.seenFor=_.seenImport=_.seenExport=!1,_.ends=[],_.indent=0,_.outdebt=0,_.indents=[],_.tokens[_.tokens.length-1]?.[0]!=="TERMINATOR")_.tokens.push(_2("TERMINATOR",`
|
|
4
|
+
`,u[u.length-1]));try{_.rewriteTypes?.(),_.tagPostfixConditionals?.(),_.rewriteTaggedTemplates?.(),_.addImplicitBracesAndParens?.(),_.addImplicitCallCommas?.()}catch(G){throw v(u[0],`schema: failed to compile body: ${G.message}`)}let $=_.tokens.filter((G)=>G[0]!=="TYPE_DECL"),F=z1.lexer;z1.lexer={tokens:$,pos:0,setInput(){},lex(){if(this.pos>=this.tokens.length)return 1;let G=this.tokens[this.pos++],Q=G[1];if(G.data)Q=new String(Q),Object.assign(Q,G.data);return this.text=Q,this.loc=G.loc,this.line=G.loc?.r,G[0]}};let Y;try{Y=z1.parse("")}finally{z1.lexer=F}if(!Array.isArray(Y)||Y[0]!=="program")return null;let Z=Y.slice(1);if(Z.length===0)return null;if(Z.length===1)return Z[0];return["block",...Z]}function j4(u){let U=[],_=u.data;if(_?.await===!0)U.push("!");if(_?.predicate===!0)U.push("?");return U}function b4(u,U){let _=0;for(let W=U;W<u.length;W++)if(u[W][0]==="INDENT")_++;else if(u[W][0]==="OUTDENT"){if(_--,_===0)return W}return-1}function g1(u){let U=[],_=[],W=0;for(let f of u){let $=f[0];if($==="("||$==="["||$==="{"||$==="CALL_START"||$==="INDEX_START"||$==="PARAM_START"||$==="INDENT")W++;if($===")"||$==="]"||$==="}"||$==="CALL_END"||$==="INDEX_END"||$==="PARAM_END"||$==="OUTDENT")W--;if($===","&&W===0){if(_.length)U.push(_);_=[];continue}_.push(f)}if(_.length)U.push(_);return U}function h4(u){let U=u[0],_=u[1];if(U==="NUMBER")return Number(_);if(U==="STRING")return JSON.parse(_);if(U==="BOOL")return _==="true";if(U==="NULL")return null;if(U==="UNDEFINED")return;return _}function _2(u,U,_){let W=[u,U];if(W.pre=0,W.data=null,W.loc=_?.loc??{r:0,c:0,n:0},W.spaced=!1,W.newLine=!1,W.generated=!0,_)W.origin=_;return W}function v(u,U){let _=u?.loc||{r:0,c:0},W=Error(U);return W.name="SchemaSyntaxError",W.loc=_,W.line=_.r,W.column=_.c,W.phase="schema",W.code="E_SCHEMA",W}var g2=`
|
|
5
|
+
// ---- Rip Schema Runtime ----------------------------------------------------
|
|
6
|
+
// Four layers, lazy compilation:
|
|
7
|
+
// 1 (descriptor) object passed to __schema({...}). Raw metadata.
|
|
8
|
+
// 2 (normalized) fields/methods/computed/hooks/relations/constraints.
|
|
9
|
+
// Collision checks. Table name derivation. Built once.
|
|
10
|
+
// 3 (validator) compiled validator plan. Built on first .parse.
|
|
11
|
+
// 4a (ORM plan) built on first .find/.create/.save.
|
|
12
|
+
// 4b (DDL plan) built on first .toSQL(). Independent of 4a.
|
|
13
|
+
|
|
14
|
+
class SchemaError extends Error {
|
|
15
|
+
constructor(issues, schemaName, schemaKind) {
|
|
16
|
+
super(__schemaFormatIssues(issues, schemaName));
|
|
17
|
+
this.name = 'SchemaError';
|
|
18
|
+
this.issues = issues;
|
|
19
|
+
this.schemaName = schemaName || null;
|
|
20
|
+
this.schemaKind = schemaKind || null;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function __schemaFormatIssues(issues, name) {
|
|
25
|
+
if (!issues || !issues.length) return 'SchemaError';
|
|
26
|
+
const head = name ? name + ': ' : '';
|
|
27
|
+
return head + issues.map(i => i.message || i.error || 'invalid').join('; ');
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// Reserved names are hoisted to module scope — they're pure data and
|
|
31
|
+
// rebuilding them per _normalize() call wastes allocations. Static: names
|
|
32
|
+
// that become class-level methods on :model (parse, find, toSQL, …).
|
|
33
|
+
// Instance: names that become instance methods (save, destroy, toJSON, …).
|
|
34
|
+
// A declared field, method, computed, or derived that collides with
|
|
35
|
+
// either set on a :model raises a collision error during normalize.
|
|
36
|
+
const __SCHEMA_RESERVED_STATIC = new Set([
|
|
37
|
+
'parse','safe','ok','find','findMany','where','all','first','count','create','toSQL',
|
|
38
|
+
]);
|
|
39
|
+
const __SCHEMA_RESERVED_INSTANCE = new Set([
|
|
40
|
+
'save','destroy','reload','ok','errors','toJSON',
|
|
41
|
+
]);
|
|
42
|
+
const __SCHEMA_RESERVED = new Set([...__SCHEMA_RESERVED_STATIC, ...__SCHEMA_RESERVED_INSTANCE]);
|
|
43
|
+
|
|
44
|
+
const __schemaTypes = {
|
|
45
|
+
string: v => typeof v === 'string',
|
|
46
|
+
number: v => typeof v === 'number' && !Number.isNaN(v),
|
|
47
|
+
integer: v => Number.isInteger(v),
|
|
48
|
+
boolean: v => typeof v === 'boolean',
|
|
49
|
+
date: v => v instanceof Date && !Number.isNaN(v.getTime()),
|
|
50
|
+
datetime: v => v instanceof Date && !Number.isNaN(v.getTime()),
|
|
51
|
+
email: v => typeof v === 'string' && /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(v),
|
|
52
|
+
url: v => typeof v === 'string' && /^https?:\\/\\/.+/.test(v),
|
|
53
|
+
uuid: v => typeof v === 'string' && /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(v),
|
|
54
|
+
phone: v => typeof v === 'string' && /^[\\d\\s\\-+()]+$/.test(v),
|
|
55
|
+
zip: v => typeof v === 'string' && /^\\d{5}(-\\d{4})?$/.test(v),
|
|
56
|
+
text: v => typeof v === 'string',
|
|
57
|
+
json: v => v !== undefined,
|
|
58
|
+
any: () => true,
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
function __schemaCheckValue(v, typeName) {
|
|
62
|
+
const check = __schemaTypes[typeName];
|
|
63
|
+
return check ? check(v) : true;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// Validate a single value against a typeName, returning either null (ok)
|
|
67
|
+
// or an array of issues relative to the value's own root. Primitive
|
|
68
|
+
// typenames dispatch through the __schemaTypes map; typenames that
|
|
69
|
+
// resolve to a registered :shape / :input / :model validate the value
|
|
70
|
+
// as a nested object; typenames that resolve to a :enum enforce
|
|
71
|
+
// membership. Unknown typenames stay permissive so forward-references
|
|
72
|
+
// and cross-module names do not hard-fail — matches pre-registry behavior.
|
|
73
|
+
function __schemaValidateValue(v, typeName) {
|
|
74
|
+
const prim = __schemaTypes[typeName];
|
|
75
|
+
if (prim) {
|
|
76
|
+
return prim(v) ? null : [{field: '', error: 'type', message: 'must be ' + typeName}];
|
|
77
|
+
}
|
|
78
|
+
const subDef = __SchemaRegistry.get(typeName);
|
|
79
|
+
if (!subDef) return null;
|
|
80
|
+
if (subDef.kind === 'enum') {
|
|
81
|
+
const errs = subDef._validateEnum(v, true);
|
|
82
|
+
return errs.length ? [{field: '', error: 'enum', message: errs[0].message}] : null;
|
|
83
|
+
}
|
|
84
|
+
if (subDef.kind === 'mixin') {
|
|
85
|
+
return [{field: '', error: 'type', message: ':mixin ' + typeName + ' is not usable as a field type'}];
|
|
86
|
+
}
|
|
87
|
+
if (v === null || typeof v !== 'object' || Array.isArray(v)) {
|
|
88
|
+
return [{field: '', error: 'type', message: 'must be a ' + typeName + ' object'}];
|
|
89
|
+
}
|
|
90
|
+
const subErrs = subDef._validateFields(v, true);
|
|
91
|
+
return subErrs.length ? subErrs : null;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// Merge a child path segment into an existing field path. Produces
|
|
95
|
+
// 'addr.street' for object descent, 'items[0].name' for array descent.
|
|
96
|
+
function __schemaJoinField(head, child) {
|
|
97
|
+
if (!child) return head;
|
|
98
|
+
return head + (child.startsWith('[') ? child : '.' + child);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// Rewrite a child issue's message so the leading "<childField> " token
|
|
102
|
+
// (present on most leaf messages: "name is required", "id must be
|
|
103
|
+
// integer") is replaced by the joined parent path — avoiding the
|
|
104
|
+
// duplicated "items[1].id id must be integer" reading.
|
|
105
|
+
function __schemaRewriteMessage(joinedField, childField, childMessage) {
|
|
106
|
+
if (!childField) return joinedField + ' ' + childMessage;
|
|
107
|
+
if (childMessage.startsWith(childField)) {
|
|
108
|
+
return joinedField + childMessage.slice(childField.length);
|
|
109
|
+
}
|
|
110
|
+
return joinedField + ': ' + childMessage;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// Naming utilities (snake_case column/table names, irregular plurals).
|
|
114
|
+
function __schemaSnake(s) { return s.replace(/([a-z0-9])([A-Z])/g, '$1_$2').toLowerCase(); }
|
|
115
|
+
const __SCHEMA_UNCOUNTABLE = new Set(['equipment','information','rice','money','species','series','fish','sheep','data']);
|
|
116
|
+
const __SCHEMA_IRREGULAR = new Map([['person','people'],['man','men'],['woman','women'],['child','children'],['tooth','teeth'],['foot','feet'],['mouse','mice']]);
|
|
117
|
+
function __schemaPluralize(w) {
|
|
118
|
+
const lw = w.toLowerCase();
|
|
119
|
+
if (__SCHEMA_UNCOUNTABLE.has(lw)) return w;
|
|
120
|
+
if (__SCHEMA_IRREGULAR.has(lw)) return __SCHEMA_IRREGULAR.get(lw);
|
|
121
|
+
// Preserve case of the input — pluralizer operates on the trailing form
|
|
122
|
+
// but keeps the rest unchanged, so orderItem becomes orderItems
|
|
123
|
+
// and User becomes Users.
|
|
124
|
+
if (/[^aeiouy]y$/i.test(w)) return w.slice(0, -1) + 'ies';
|
|
125
|
+
if (/(s|x|z|ch|sh)$/i.test(w)) return w + 'es';
|
|
126
|
+
return w + 's';
|
|
127
|
+
}
|
|
128
|
+
function __schemaTableName(model) { return __schemaPluralize(__schemaSnake(model)); }
|
|
129
|
+
function __schemaFkName(model) { return __schemaSnake(model) + '_id'; }
|
|
130
|
+
|
|
131
|
+
// ---- Registry ---------------------------------------------------------------
|
|
132
|
+
// Process-global, resettable, with placeholder state for forward/circular
|
|
133
|
+
// references. Duplicate registration of the same model name is a hard error.
|
|
134
|
+
|
|
135
|
+
const __SchemaRegistry = {
|
|
136
|
+
_entries: new Map(),
|
|
137
|
+
register(def) {
|
|
138
|
+
// Named schemas of any kind land here. Relations look up :model,
|
|
139
|
+
// @mixin Name looks up :mixin. Algebra (.extend etc.) accepts :shape
|
|
140
|
+
// and derived shapes. Kind is checked at lookup time.
|
|
141
|
+
if (!def.name) return;
|
|
142
|
+
// Most recent registration wins. Recompilation produces a fresh
|
|
143
|
+
// __SchemaDef with the same name; the registry rebinds. Cross-
|
|
144
|
+
// module name collisions should be avoided — schema names are
|
|
145
|
+
// app-global identifiers for relation resolution.
|
|
146
|
+
this._entries.set(def.name, { def, kind: def.kind });
|
|
147
|
+
},
|
|
148
|
+
get(name) {
|
|
149
|
+
const entry = this._entries.get(name);
|
|
150
|
+
return entry ? entry.def : null;
|
|
151
|
+
},
|
|
152
|
+
getKind(name, kind) {
|
|
153
|
+
const entry = this._entries.get(name);
|
|
154
|
+
return entry && entry.kind === kind ? entry.def : null;
|
|
155
|
+
},
|
|
156
|
+
has(name) { return this._entries.has(name); },
|
|
157
|
+
reset() { this._entries.clear(); },
|
|
158
|
+
};
|
|
159
|
+
|
|
160
|
+
// ---- DB adapter seam --------------------------------------------------------
|
|
161
|
+
// Default adapter uses fetch to rip-db /sql. Tests can swap with
|
|
162
|
+
// __schemaSetAdapter(...) before running queries.
|
|
163
|
+
|
|
164
|
+
function __schemaDefaultAdapter() {
|
|
165
|
+
const url = (typeof process !== 'undefined' && process.env?.DB_URL) || 'http://localhost:4213';
|
|
166
|
+
return {
|
|
167
|
+
async query(sql, params) {
|
|
168
|
+
const body = params && params.length ? { sql, params } : { sql };
|
|
169
|
+
const res = await fetch(url + '/sql', {
|
|
170
|
+
method: 'POST',
|
|
171
|
+
headers: { 'Content-Type': 'application/json' },
|
|
172
|
+
body: JSON.stringify(body),
|
|
173
|
+
});
|
|
174
|
+
const data = await res.json();
|
|
175
|
+
if (data.error) throw new Error(data.error);
|
|
176
|
+
return data;
|
|
177
|
+
}
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
let __schemaAdapter = __schemaDefaultAdapter();
|
|
182
|
+
function __schemaSetAdapter(a) { __schemaAdapter = a; }
|
|
183
|
+
|
|
184
|
+
// ---- Query builder ----------------------------------------------------------
|
|
185
|
+
|
|
186
|
+
class __SchemaQuery {
|
|
187
|
+
constructor(def, opts = {}) {
|
|
188
|
+
this._def = def;
|
|
189
|
+
this._clauses = [];
|
|
190
|
+
this._params = [];
|
|
191
|
+
this._limit = null;
|
|
192
|
+
this._offset = null;
|
|
193
|
+
this._order = null;
|
|
194
|
+
this._includeDeleted = opts.includeDeleted === true;
|
|
195
|
+
}
|
|
196
|
+
where(cond, ...params) {
|
|
197
|
+
if (typeof cond === 'string') {
|
|
198
|
+
this._clauses.push(cond);
|
|
199
|
+
this._params.push(...params);
|
|
200
|
+
} else if (cond && typeof cond === 'object') {
|
|
201
|
+
for (const [k, v] of Object.entries(cond)) {
|
|
202
|
+
const col = __schemaSnake(k);
|
|
203
|
+
if (v === null || v === undefined) {
|
|
204
|
+
this._clauses.push('"' + col + '" IS NULL');
|
|
205
|
+
} else {
|
|
206
|
+
this._clauses.push('"' + col + '" = ?');
|
|
207
|
+
this._params.push(v);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
return this;
|
|
212
|
+
}
|
|
213
|
+
limit(n) { this._limit = n; return this; }
|
|
214
|
+
offset(n) { this._offset = n; return this; }
|
|
215
|
+
order(spec) { this._order = spec; return this; }
|
|
216
|
+
orderBy(spec) { return this.order(spec); }
|
|
217
|
+
_buildSQL() {
|
|
218
|
+
const n = this._def._normalize();
|
|
219
|
+
const table = n.tableName;
|
|
220
|
+
const parts = ['SELECT * FROM "' + table + '"'];
|
|
221
|
+
const where = [...this._clauses];
|
|
222
|
+
if (!this._includeDeleted && n.softDelete) where.push('"deleted_at" IS NULL');
|
|
223
|
+
if (where.length) parts.push('WHERE ' + where.join(' AND '));
|
|
224
|
+
if (this._order) parts.push('ORDER BY ' + this._order);
|
|
225
|
+
if (this._limit != null) parts.push('LIMIT ' + this._limit);
|
|
226
|
+
if (this._offset != null) parts.push('OFFSET ' + this._offset);
|
|
227
|
+
return parts.join(' ');
|
|
228
|
+
}
|
|
229
|
+
async all() {
|
|
230
|
+
const sql = this._buildSQL();
|
|
231
|
+
const res = await __schemaAdapter.query(sql, this._params);
|
|
232
|
+
return (res.data || []).map(row => this._def._hydrate(res.columns, row));
|
|
233
|
+
}
|
|
234
|
+
async first() {
|
|
235
|
+
this._limit = 1;
|
|
236
|
+
const arr = await this.all();
|
|
237
|
+
return arr[0] || null;
|
|
238
|
+
}
|
|
239
|
+
async count() {
|
|
240
|
+
const n = this._def._normalize();
|
|
241
|
+
const parts = ['SELECT COUNT(*) FROM "' + n.tableName + '"'];
|
|
242
|
+
const where = [...this._clauses];
|
|
243
|
+
if (!this._includeDeleted && n.softDelete) where.push('"deleted_at" IS NULL');
|
|
244
|
+
if (where.length) parts.push('WHERE ' + where.join(' AND '));
|
|
245
|
+
const res = await __schemaAdapter.query(parts.join(' '), this._params);
|
|
246
|
+
return res.data?.[0]?.[0] || 0;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
// ---- __SchemaDef ------------------------------------------------------------
|
|
251
|
+
|
|
252
|
+
class __SchemaDef {
|
|
253
|
+
constructor(desc) {
|
|
254
|
+
this._desc = desc;
|
|
255
|
+
this.kind = desc.kind;
|
|
256
|
+
this.name = desc.name || null;
|
|
257
|
+
this._norm = null;
|
|
258
|
+
this._klass = null;
|
|
259
|
+
this._sourceModel = null;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
_normalize() {
|
|
263
|
+
if (this._norm) return this._norm;
|
|
264
|
+
|
|
265
|
+
const fields = new Map();
|
|
266
|
+
const methods = new Map();
|
|
267
|
+
const computed = new Map();
|
|
268
|
+
const derived = new Map();
|
|
269
|
+
const hooks = new Map();
|
|
270
|
+
const directives = [];
|
|
271
|
+
const enumMembers = new Map();
|
|
272
|
+
const relations = new Map();
|
|
273
|
+
const ensures = [];
|
|
274
|
+
let timestamps = false;
|
|
275
|
+
let softDelete = false;
|
|
276
|
+
|
|
277
|
+
const collision = (n, where) => {
|
|
278
|
+
throw new SchemaError(
|
|
279
|
+
[{field: n, error: 'collision', message: n + ' collides with ' + where}],
|
|
280
|
+
this.name, this.kind);
|
|
281
|
+
};
|
|
282
|
+
const noteCollision = (n) => {
|
|
283
|
+
if (fields.has(n)) collision(n, 'field');
|
|
284
|
+
if (methods.has(n)) collision(n, 'method');
|
|
285
|
+
if (computed.has(n)) collision(n, 'computed');
|
|
286
|
+
if (hooks.has(n)) collision(n, 'hook');
|
|
287
|
+
if (relations.has(n)) collision(n, 'relation');
|
|
288
|
+
if (this.kind === 'model' && __SCHEMA_RESERVED.has(n)) collision(n, 'reserved ORM name');
|
|
289
|
+
};
|
|
290
|
+
|
|
291
|
+
for (const e of this._desc.entries) {
|
|
292
|
+
switch (e.tag) {
|
|
293
|
+
case 'field':
|
|
294
|
+
noteCollision(e.name);
|
|
295
|
+
fields.set(e.name, {
|
|
296
|
+
name: e.name,
|
|
297
|
+
required: e.modifiers.includes('!'),
|
|
298
|
+
unique: e.modifiers.includes('#'),
|
|
299
|
+
optional: e.modifiers.includes('?'),
|
|
300
|
+
typeName: e.typeName,
|
|
301
|
+
literals: e.literals || null,
|
|
302
|
+
array: e.array === true,
|
|
303
|
+
constraints: e.constraints || null,
|
|
304
|
+
transform: e.transform || null,
|
|
305
|
+
});
|
|
306
|
+
break;
|
|
307
|
+
case 'method':
|
|
308
|
+
noteCollision(e.name);
|
|
309
|
+
methods.set(e.name, e.fn);
|
|
310
|
+
break;
|
|
311
|
+
case 'computed':
|
|
312
|
+
noteCollision(e.name);
|
|
313
|
+
computed.set(e.name, e.fn);
|
|
314
|
+
break;
|
|
315
|
+
case 'derived':
|
|
316
|
+
noteCollision(e.name);
|
|
317
|
+
derived.set(e.name, e.fn);
|
|
318
|
+
break;
|
|
319
|
+
case 'hook':
|
|
320
|
+
if (hooks.has(e.name)) collision(e.name, 'duplicate hook');
|
|
321
|
+
hooks.set(e.name, e.fn);
|
|
322
|
+
break;
|
|
323
|
+
case 'directive': {
|
|
324
|
+
if (e.name === 'mixin') {
|
|
325
|
+
// Deferred to the post-pass so we can dedupe diamond includes
|
|
326
|
+
// and detect cycles with a full expansion stack.
|
|
327
|
+
directives.push({ name: e.name, args: e.args || [] });
|
|
328
|
+
break;
|
|
329
|
+
}
|
|
330
|
+
directives.push({ name: e.name, args: e.args || [] });
|
|
331
|
+
if (e.name === 'timestamps') timestamps = true;
|
|
332
|
+
if (e.name === 'softDelete') softDelete = true;
|
|
333
|
+
const rel = __schemaNormalizeDirectiveRelation(e, this.name);
|
|
334
|
+
if (rel) {
|
|
335
|
+
noteCollision(rel.accessor);
|
|
336
|
+
relations.set(rel.accessor, rel);
|
|
337
|
+
}
|
|
338
|
+
break;
|
|
339
|
+
}
|
|
340
|
+
case 'enum-member':
|
|
341
|
+
enumMembers.set(e.name, e.value !== undefined ? e.value : e.name);
|
|
342
|
+
break;
|
|
343
|
+
case 'ensure':
|
|
344
|
+
// @ensure entries are schema-level invariants (cross-field
|
|
345
|
+
// predicates). Declaration order is preserved so diagnostics
|
|
346
|
+
// come out in the order authored.
|
|
347
|
+
ensures.push({ message: e.message, fn: e.fn });
|
|
348
|
+
break;
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
// @mixin expansion (Phase 5). Depth-first, dedupes diamond includes
|
|
353
|
+
// in the same host expansion, detects cycles with full chain.
|
|
354
|
+
if (this.kind === 'model' || this.kind === 'shape' || this.kind === 'input' ||
|
|
355
|
+
this.kind === 'mixin') {
|
|
356
|
+
__schemaExpandMixins(this, fields, directives, {
|
|
357
|
+
stack: [this.name || '<anon>'],
|
|
358
|
+
seen: new Set([this.name || '<anon>']),
|
|
359
|
+
onCollision: (name, src) => collision(name, 'mixin-included field from ' + src),
|
|
360
|
+
});
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
// Add implicit primary key for :model unless a field already marked primary.
|
|
364
|
+
const primaryKey = 'id';
|
|
365
|
+
const tableName = this.kind === 'model' ? __schemaTableName(this.name) : null;
|
|
366
|
+
|
|
367
|
+
this._norm = {
|
|
368
|
+
fields, methods, computed, derived, hooks, directives, enumMembers, relations,
|
|
369
|
+
ensures,
|
|
370
|
+
timestamps, softDelete, primaryKey, tableName,
|
|
371
|
+
};
|
|
372
|
+
return this._norm;
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
// Run eager-derived entries (!>) — one pass, in declaration order.
|
|
376
|
+
//
|
|
377
|
+
// Invariants worth keeping in mind here:
|
|
378
|
+
// - Fires at parse/safe time AND at DB hydrate time (declared fields
|
|
379
|
+
// are populated by then in both paths).
|
|
380
|
+
// - NOT re-run on field mutation — the value is materialized once at
|
|
381
|
+
// instance creation and stays. Use ~> for live recomputation.
|
|
382
|
+
// - Stored as own enumerable properties, so they round-trip through
|
|
383
|
+
// Object.keys and JSON.stringify. Excluded from DB persistence by
|
|
384
|
+
// _getSaveableData (writes declared fields only).
|
|
385
|
+
// - Thrown errors propagate. parse() wraps them into SchemaError
|
|
386
|
+
// before surfacing; safe() captures into {error: 'derived'}
|
|
387
|
+
// issues; hydrate lets them crash fast as data-integrity signals.
|
|
388
|
+
_applyEagerDerived(inst) {
|
|
389
|
+
const norm = this._normalize();
|
|
390
|
+
if (!norm.derived.size) return;
|
|
391
|
+
for (const [n, fn] of norm.derived) {
|
|
392
|
+
const v = fn.call(inst);
|
|
393
|
+
Object.defineProperty(inst, n, {
|
|
394
|
+
value: v, enumerable: true, writable: true, configurable: true,
|
|
395
|
+
});
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
// Run '@ensure' predicates — schema-level cross-field invariants —
|
|
400
|
+
// against a fully-typed, fully-defaulted data object. Returns [] if
|
|
401
|
+
// all pass, or an array of {field: '', error: 'ensure', message}
|
|
402
|
+
// issues for every failing predicate.
|
|
403
|
+
//
|
|
404
|
+
// Naming: '_applyEnsures' mirrors '_applyTransforms' and
|
|
405
|
+
// '_applyEagerDerived' — runtime method name matches the directive
|
|
406
|
+
// it services. The industry term for this pattern is 'refinement'
|
|
407
|
+
// (Zod's '.refine', design-by-contract postconditions); in Rip the
|
|
408
|
+
// user-visible name is '@ensure' and the code tracks that.
|
|
409
|
+
//
|
|
410
|
+
// Semantics:
|
|
411
|
+
// - Truthy return → pass; falsy → fail with the declared message.
|
|
412
|
+
// - Thrown exception → fail with the declared message (the thrown
|
|
413
|
+
// error's own message is used only if the @ensure declared no
|
|
414
|
+
// message, which can't happen via the parser since message is
|
|
415
|
+
// required — but downstream code-built defs might omit it).
|
|
416
|
+
// - All @ensures run; declaration order preserved in output.
|
|
417
|
+
// - Caller short-circuits: per-field validation errors skip this
|
|
418
|
+
// step entirely (predicates assume field types are correct).
|
|
419
|
+
// - Skipped on _hydrate — trusted DB data bypasses @ensures.
|
|
420
|
+
_applyEnsures(data) {
|
|
421
|
+
const norm = this._normalize();
|
|
422
|
+
if (!norm.ensures.length) return [];
|
|
423
|
+
const errs = [];
|
|
424
|
+
for (const r of norm.ensures) {
|
|
425
|
+
let ok = false;
|
|
426
|
+
try {
|
|
427
|
+
ok = !!r.fn(data);
|
|
428
|
+
} catch (e) {
|
|
429
|
+
errs.push({
|
|
430
|
+
field: '', error: 'ensure',
|
|
431
|
+
message: r.message || e?.message || 'ensure failed',
|
|
432
|
+
});
|
|
433
|
+
continue;
|
|
434
|
+
}
|
|
435
|
+
if (!ok) {
|
|
436
|
+
errs.push({
|
|
437
|
+
field: '', error: 'ensure',
|
|
438
|
+
message: r.message || 'ensure failed',
|
|
439
|
+
});
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
return errs;
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
_getClass() {
|
|
446
|
+
if (this._klass) return this._klass;
|
|
447
|
+
const norm = this._normalize();
|
|
448
|
+
const name = this.name || 'Schema';
|
|
449
|
+
const def = this;
|
|
450
|
+
|
|
451
|
+
const fieldNames = [...norm.fields.keys()];
|
|
452
|
+
const klass = ({[name]: class {
|
|
453
|
+
constructor(data, persisted = false) {
|
|
454
|
+
// Internal state is non-enumerable so Object.keys(inst) lists
|
|
455
|
+
// only declared fields that received a value.
|
|
456
|
+
Object.defineProperty(this, '_dirty', { value: new Set(), enumerable: false, writable: false, configurable: true });
|
|
457
|
+
Object.defineProperty(this, '_persisted', { value: persisted === true, enumerable: false, writable: true, configurable: true });
|
|
458
|
+
Object.defineProperty(this, '_snapshot', { value: null, enumerable: false, writable: true, configurable: true });
|
|
459
|
+
if (data && typeof data === 'object') {
|
|
460
|
+
for (const k of fieldNames) {
|
|
461
|
+
if (k in data && data[k] !== undefined) this[k] = data[k];
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
}})[name];
|
|
466
|
+
|
|
467
|
+
for (const [n, fn] of norm.methods) {
|
|
468
|
+
Object.defineProperty(klass.prototype, n, {
|
|
469
|
+
value: fn, writable: true, enumerable: false, configurable: true,
|
|
470
|
+
});
|
|
471
|
+
}
|
|
472
|
+
for (const [n, fn] of norm.computed) {
|
|
473
|
+
Object.defineProperty(klass.prototype, n, {
|
|
474
|
+
get: fn, enumerable: false, configurable: true,
|
|
475
|
+
});
|
|
476
|
+
}
|
|
477
|
+
|
|
478
|
+
// Relation methods: user.organization(). Accepts no args; returns
|
|
479
|
+
// a promise to a target-model instance (or array for has_many).
|
|
480
|
+
for (const [acc, rel] of norm.relations) {
|
|
481
|
+
Object.defineProperty(klass.prototype, acc, {
|
|
482
|
+
enumerable: false, configurable: true,
|
|
483
|
+
value: async function() { return __schemaResolveRelation(def, this, rel); },
|
|
484
|
+
});
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
// Instance ORM methods — only for :model kind.
|
|
488
|
+
if (this.kind === 'model') {
|
|
489
|
+
Object.defineProperty(klass.prototype, 'save', {
|
|
490
|
+
enumerable: false, configurable: true, writable: true,
|
|
491
|
+
value: async function() { return __schemaSave(def, this); },
|
|
492
|
+
});
|
|
493
|
+
Object.defineProperty(klass.prototype, 'destroy', {
|
|
494
|
+
enumerable: false, configurable: true, writable: true,
|
|
495
|
+
value: async function() { return __schemaDestroy(def, this); },
|
|
496
|
+
});
|
|
497
|
+
Object.defineProperty(klass.prototype, 'ok', {
|
|
498
|
+
enumerable: false, configurable: true, writable: true,
|
|
499
|
+
value: function() { return def._validateFields(this, false); },
|
|
500
|
+
});
|
|
501
|
+
Object.defineProperty(klass.prototype, 'errors', {
|
|
502
|
+
enumerable: false, configurable: true, writable: true,
|
|
503
|
+
value: function() { return def._validateFields(this, true); },
|
|
504
|
+
});
|
|
505
|
+
Object.defineProperty(klass.prototype, 'toJSON', {
|
|
506
|
+
enumerable: false, configurable: true, writable: true,
|
|
507
|
+
value: function() {
|
|
508
|
+
const out = {};
|
|
509
|
+
for (const k of norm.fields.keys()) out[k] = this[k];
|
|
510
|
+
return out;
|
|
511
|
+
},
|
|
512
|
+
});
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
this._klass = klass;
|
|
516
|
+
return klass;
|
|
517
|
+
}
|
|
518
|
+
|
|
519
|
+
_hydrate(columns, row) {
|
|
520
|
+
// DB rows are trusted: hydrate into a class instance without
|
|
521
|
+
// revalidating. Column names arrive snake_case; declared fields live
|
|
522
|
+
// under their camelCase names, and implicit columns (id, created_at,
|
|
523
|
+
// updated_at, relation FKs) surface under their camelCase equivalents.
|
|
524
|
+
// Each snake_case column name also aliases the camelCase property via
|
|
525
|
+
// a non-enumerable accessor so order.user_id and order.userId read
|
|
526
|
+
// the same slot — useful when DB column names leak into user code
|
|
527
|
+
// via raw SQL helpers.
|
|
528
|
+
const data = {};
|
|
529
|
+
for (let i = 0; i < columns.length; i++) {
|
|
530
|
+
data[__schemaCamel(columns[i].name)] = row[i];
|
|
531
|
+
}
|
|
532
|
+
const k = this._getClass();
|
|
533
|
+
const inst = new k(data, true);
|
|
534
|
+
for (const key of Object.keys(data)) {
|
|
535
|
+
if (!(key in inst)) {
|
|
536
|
+
Object.defineProperty(inst, key, {
|
|
537
|
+
value: data[key], enumerable: true, writable: true, configurable: true,
|
|
538
|
+
});
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
for (let i = 0; i < columns.length; i++) {
|
|
542
|
+
const snake = columns[i].name;
|
|
543
|
+
const camel = __schemaCamel(snake);
|
|
544
|
+
if (snake !== camel && !(snake in inst)) {
|
|
545
|
+
Object.defineProperty(inst, snake, {
|
|
546
|
+
enumerable: false, configurable: true,
|
|
547
|
+
get() { return this[camel]; },
|
|
548
|
+
set(v) { this[camel] = v; },
|
|
549
|
+
});
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
// Eager-derived fields re-run on hydrate — they're not persisted
|
|
553
|
+
// and must be re-computed from the declared fields now present.
|
|
554
|
+
this._applyEagerDerived(inst);
|
|
555
|
+
return inst;
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
_validateFields(data, collect) {
|
|
559
|
+
const norm = this._normalize();
|
|
560
|
+
const errors = collect ? [] : null;
|
|
561
|
+
for (const [n, f] of norm.fields) {
|
|
562
|
+
const v = data == null ? undefined : data[n];
|
|
563
|
+
if (v === undefined || v === null) {
|
|
564
|
+
if (f.required) {
|
|
565
|
+
if (!collect) return false;
|
|
566
|
+
errors.push({field: n, error: 'required', message: n + ' is required'});
|
|
567
|
+
}
|
|
568
|
+
continue;
|
|
569
|
+
}
|
|
570
|
+
if (f.array) {
|
|
571
|
+
if (!Array.isArray(v)) {
|
|
572
|
+
if (!collect) return false;
|
|
573
|
+
errors.push({field: n, error: 'type', message: n + ' must be an array'});
|
|
574
|
+
continue;
|
|
575
|
+
}
|
|
576
|
+
let bad = false;
|
|
577
|
+
for (let i = 0; i < v.length; i++) {
|
|
578
|
+
const issues = __schemaValidateValue(v[i], f.typeName);
|
|
579
|
+
if (issues) {
|
|
580
|
+
if (!collect) return false;
|
|
581
|
+
const head = n + '[' + i + ']';
|
|
582
|
+
for (const e of issues) {
|
|
583
|
+
const joined = __schemaJoinField(head, e.field);
|
|
584
|
+
errors.push({
|
|
585
|
+
field: joined,
|
|
586
|
+
error: e.error,
|
|
587
|
+
message: __schemaRewriteMessage(joined, e.field, e.message),
|
|
588
|
+
});
|
|
589
|
+
}
|
|
590
|
+
bad = true;
|
|
591
|
+
}
|
|
592
|
+
}
|
|
593
|
+
if (bad) continue;
|
|
594
|
+
} else if (f.typeName === 'literal-union') {
|
|
595
|
+
if (!f.literals.includes(v)) {
|
|
596
|
+
if (!collect) return false;
|
|
597
|
+
errors.push({field: n, error: 'enum', message: n + ' must be one of ' + f.literals.map(l => JSON.stringify(l)).join(', ')});
|
|
598
|
+
continue;
|
|
599
|
+
}
|
|
600
|
+
} else {
|
|
601
|
+
const issues = __schemaValidateValue(v, f.typeName);
|
|
602
|
+
if (issues) {
|
|
603
|
+
if (!collect) return false;
|
|
604
|
+
for (const e of issues) {
|
|
605
|
+
const joined = __schemaJoinField(n, e.field);
|
|
606
|
+
errors.push({
|
|
607
|
+
field: joined,
|
|
608
|
+
error: e.error,
|
|
609
|
+
message: __schemaRewriteMessage(joined, e.field, e.message),
|
|
610
|
+
});
|
|
611
|
+
}
|
|
612
|
+
continue;
|
|
613
|
+
}
|
|
614
|
+
}
|
|
615
|
+
// Apply constraint checks.
|
|
616
|
+
const c = f.constraints;
|
|
617
|
+
if (c) {
|
|
618
|
+
if (typeof v === 'string') {
|
|
619
|
+
if (c.min != null && v.length < c.min) { if (!collect) return false; errors.push({field: n, error: 'min', message: n + ' must be at least ' + c.min + ' chars'}); }
|
|
620
|
+
if (c.max != null && v.length > c.max) { if (!collect) return false; errors.push({field: n, error: 'max', message: n + ' must be at most ' + c.max + ' chars'}); }
|
|
621
|
+
if (c.regex && !c.regex.test(v)) { if (!collect) return false; errors.push({field: n, error: 'pattern', message: n + ' is invalid'}); }
|
|
622
|
+
} else if (typeof v === 'number') {
|
|
623
|
+
if (c.min != null && v < c.min) { if (!collect) return false; errors.push({field: n, error: 'min', message: n + ' must be >= ' + c.min}); }
|
|
624
|
+
if (c.max != null && v > c.max) { if (!collect) return false; errors.push({field: n, error: 'max', message: n + ' must be <= ' + c.max}); }
|
|
625
|
+
}
|
|
626
|
+
}
|
|
627
|
+
}
|
|
628
|
+
return collect ? errors : true;
|
|
629
|
+
}
|
|
630
|
+
|
|
631
|
+
_applyDefaults(data) {
|
|
632
|
+
const norm = this._normalize();
|
|
633
|
+
for (const [n, f] of norm.fields) {
|
|
634
|
+
if ((data[n] === undefined || data[n] === null) && f.constraints?.default !== undefined) {
|
|
635
|
+
const d = f.constraints.default;
|
|
636
|
+
data[n] = (typeof d === 'object' && d !== null && !(d instanceof RegExp))
|
|
637
|
+
? structuredClone(d) : d;
|
|
638
|
+
}
|
|
639
|
+
}
|
|
640
|
+
return data;
|
|
641
|
+
}
|
|
642
|
+
|
|
643
|
+
// Inline field transforms run once during parse (and safe/ok), never
|
|
644
|
+
// during DB hydrate. Each transform receives the whole raw input
|
|
645
|
+
// object as 'it'; its return value becomes the field's candidate
|
|
646
|
+
// value before default + validation. Transform errors surface as
|
|
647
|
+
// {error: 'transform'} issues on the final result.
|
|
648
|
+
_applyTransforms(raw, working) {
|
|
649
|
+
const norm = this._normalize();
|
|
650
|
+
const errors = [];
|
|
651
|
+
for (const [n, f] of norm.fields) {
|
|
652
|
+
if (!f.transform) continue;
|
|
653
|
+
try {
|
|
654
|
+
working[n] = f.transform(raw);
|
|
655
|
+
} catch (e) {
|
|
656
|
+
errors.push({field: n, error: 'transform', message: e?.message || String(e)});
|
|
657
|
+
}
|
|
658
|
+
}
|
|
659
|
+
return errors;
|
|
660
|
+
}
|
|
661
|
+
|
|
662
|
+
_validateEnum(data, collect) {
|
|
663
|
+
const norm = this._normalize();
|
|
664
|
+
for (const [n, v] of norm.enumMembers) {
|
|
665
|
+
if (data === n || data === v) return collect ? [] : true;
|
|
666
|
+
}
|
|
667
|
+
if (!collect) return false;
|
|
668
|
+
const members = [...norm.enumMembers.keys()].join(', ');
|
|
669
|
+
return [{field: '', error: 'enum', message: (this.name || 'enum') + ' expected one of: ' + members}];
|
|
670
|
+
}
|
|
671
|
+
|
|
672
|
+
_materializeEnum(data) {
|
|
673
|
+
const norm = this._normalize();
|
|
674
|
+
for (const [n, v] of norm.enumMembers) {
|
|
675
|
+
if (data === n || data === v) return v;
|
|
676
|
+
}
|
|
677
|
+
return data;
|
|
678
|
+
}
|
|
679
|
+
|
|
680
|
+
// Canonical field parse pipeline — run per-field in declaration order,
|
|
681
|
+
// then an after-fields pass for eager-derived. This is the SINGLE
|
|
682
|
+
// source of truth for parse-time field semantics; _hydrate bypasses
|
|
683
|
+
// steps 1-5 entirely (DB rows arrive canonical) and picks up at step 7.
|
|
684
|
+
//
|
|
685
|
+
// 1. Obtain raw candidate — transform(raw) if declared, else raw[name]
|
|
686
|
+
// 2. Apply default — if candidate missing/undefined
|
|
687
|
+
// 3. Required check — optional/required/nullability
|
|
688
|
+
// 4. Type validation — primitive / literal-union / array
|
|
689
|
+
// 5. Constraint checks — range, regex, attrs
|
|
690
|
+
// 6. Assign to instance — own enumerable property
|
|
691
|
+
// 7. Eager-derived pass — run !> entries in declaration order
|
|
692
|
+
//
|
|
693
|
+
// Transforms (step 1) run on parse/safe/ok only. Hydrate skips them
|
|
694
|
+
// because DB columns already hold the canonical values. Eager-derived
|
|
695
|
+
// (step 7) fires on BOTH paths so hydrated instances have the same
|
|
696
|
+
// shape as parsed ones.
|
|
697
|
+
parse(data) {
|
|
698
|
+
if (this.kind === 'mixin') {
|
|
699
|
+
throw new Error(":mixin schema '" + (this.name || 'anon') + "' is not instantiable");
|
|
700
|
+
}
|
|
701
|
+
if (this.kind === 'enum') {
|
|
702
|
+
const errs = this._validateEnum(data, true);
|
|
703
|
+
if (errs.length) throw new SchemaError(errs, this.name, this.kind);
|
|
704
|
+
return this._materializeEnum(data);
|
|
705
|
+
}
|
|
706
|
+
const raw = data || {};
|
|
707
|
+
const working = { ...raw };
|
|
708
|
+
const transformErrors = this._applyTransforms(raw, working);
|
|
709
|
+
this._applyDefaults(working);
|
|
710
|
+
const errs = transformErrors.concat(this._validateFields(working, true));
|
|
711
|
+
if (errs.length) throw new SchemaError(errs, this.name, this.kind);
|
|
712
|
+
// @ensure runs AFTER per-field validation so predicates can
|
|
713
|
+
// assume declared fields are typed and defaulted. A field-level
|
|
714
|
+
// failure short-circuits: we never reach this line with errs.
|
|
715
|
+
const ensureErrs = this._applyEnsures(working);
|
|
716
|
+
if (ensureErrs.length) throw new SchemaError(ensureErrs, this.name, this.kind);
|
|
717
|
+
const klass = this._getClass();
|
|
718
|
+
const inst = new klass(working, false);
|
|
719
|
+
this._applyEagerDerived(inst);
|
|
720
|
+
return inst;
|
|
721
|
+
}
|
|
722
|
+
|
|
723
|
+
safe(data) {
|
|
724
|
+
if (this.kind === 'mixin') {
|
|
725
|
+
return {ok: false, value: null, errors: [{field: '', error: 'mixin', message: 'not instantiable'}]};
|
|
726
|
+
}
|
|
727
|
+
if (this.kind === 'enum') {
|
|
728
|
+
const errs = this._validateEnum(data, true);
|
|
729
|
+
if (errs.length) return {ok: false, value: null, errors: errs};
|
|
730
|
+
return {ok: true, value: this._materializeEnum(data), errors: null};
|
|
731
|
+
}
|
|
732
|
+
const raw = data || {};
|
|
733
|
+
const working = { ...raw };
|
|
734
|
+
const transformErrors = this._applyTransforms(raw, working);
|
|
735
|
+
this._applyDefaults(working);
|
|
736
|
+
const errs = transformErrors.concat(this._validateFields(working, true));
|
|
737
|
+
if (errs.length) return {ok: false, value: null, errors: errs};
|
|
738
|
+
const ensureErrs = this._applyEnsures(working);
|
|
739
|
+
if (ensureErrs.length) return {ok: false, value: null, errors: ensureErrs};
|
|
740
|
+
const klass = this._getClass();
|
|
741
|
+
const inst = new klass(working, false);
|
|
742
|
+
try { this._applyEagerDerived(inst); }
|
|
743
|
+
catch (e) {
|
|
744
|
+
return {ok: false, value: null, errors: [{field: '', error: 'derived', message: e?.message || String(e)}]};
|
|
745
|
+
}
|
|
746
|
+
return {ok: true, value: inst, errors: null};
|
|
747
|
+
}
|
|
748
|
+
|
|
749
|
+
ok(data) {
|
|
750
|
+
if (this.kind === 'mixin') return false;
|
|
751
|
+
if (this.kind === 'enum') return this._validateEnum(data, false);
|
|
752
|
+
const raw = data || {};
|
|
753
|
+
const working = { ...raw };
|
|
754
|
+
const transformErrors = this._applyTransforms(raw, working);
|
|
755
|
+
if (transformErrors.length) return false;
|
|
756
|
+
this._applyDefaults(working);
|
|
757
|
+
if (!this._validateFields(working, false)) return false;
|
|
758
|
+
// Per-field validation passed — @ensure predicates are the final gate.
|
|
759
|
+
return this._applyEnsures(working).length === 0;
|
|
760
|
+
}
|
|
761
|
+
|
|
762
|
+
// ---- :model static ORM methods --------------------------------------------
|
|
763
|
+
|
|
764
|
+
async find(id) {
|
|
765
|
+
this._assertModel('find');
|
|
766
|
+
const norm = this._normalize();
|
|
767
|
+
const soft = norm.softDelete ? ' AND "deleted_at" IS NULL' : '';
|
|
768
|
+
const sql = 'SELECT * FROM "' + norm.tableName + '" WHERE "' + norm.primaryKey + '" = ?' + soft + ' LIMIT 1';
|
|
769
|
+
const res = await __schemaAdapter.query(sql, [id]);
|
|
770
|
+
if (!res.rows) return null;
|
|
771
|
+
return this._hydrate(res.columns, res.data[0]);
|
|
772
|
+
}
|
|
773
|
+
|
|
774
|
+
where(cond, ...params) {
|
|
775
|
+
this._assertModel('where');
|
|
776
|
+
return new __SchemaQuery(this).where(cond, ...params);
|
|
777
|
+
}
|
|
778
|
+
|
|
779
|
+
all() {
|
|
780
|
+
this._assertModel('all');
|
|
781
|
+
return new __SchemaQuery(this).all();
|
|
782
|
+
}
|
|
783
|
+
|
|
784
|
+
first() {
|
|
785
|
+
this._assertModel('first');
|
|
786
|
+
return new __SchemaQuery(this).first();
|
|
787
|
+
}
|
|
788
|
+
|
|
789
|
+
count() {
|
|
790
|
+
this._assertModel('count');
|
|
791
|
+
return new __SchemaQuery(this).count();
|
|
792
|
+
}
|
|
793
|
+
|
|
794
|
+
async create(data) {
|
|
795
|
+
this._assertModel('create');
|
|
796
|
+
// Input keys may be snake_case or camelCase; the runtime
|
|
797
|
+
// canonicalizes to camelCase so instance properties line up with
|
|
798
|
+
// declared field names.
|
|
799
|
+
const klass = this._getClass();
|
|
800
|
+
const canonical = {};
|
|
801
|
+
if (data && typeof data === 'object') {
|
|
802
|
+
for (const k of Object.keys(data)) canonical[__schemaCamel(k)] = data[k];
|
|
803
|
+
}
|
|
804
|
+
const inst = new klass(this._applyDefaults(canonical), false);
|
|
805
|
+
// FK columns like user_id canonicalize to userId and need to
|
|
806
|
+
// round-trip through the INSERT path, so attach them as own
|
|
807
|
+
// properties even though they aren't declared fields.
|
|
808
|
+
for (const [k, v] of Object.entries(canonical)) {
|
|
809
|
+
if (!(k in inst)) {
|
|
810
|
+
Object.defineProperty(inst, k, { value: v, enumerable: true, writable: true, configurable: true });
|
|
811
|
+
}
|
|
812
|
+
}
|
|
813
|
+
await __schemaSave(this, inst);
|
|
814
|
+
return inst;
|
|
815
|
+
}
|
|
816
|
+
|
|
817
|
+
toSQL(options) {
|
|
818
|
+
this._assertModel('toSQL');
|
|
819
|
+
return __schemaToSQL(this, options);
|
|
820
|
+
}
|
|
821
|
+
|
|
822
|
+
_assertModel(api) {
|
|
823
|
+
if (this.kind !== 'model') {
|
|
824
|
+
throw new Error('schema: .' + api + '() is :model-only (got :' + this.kind + ')');
|
|
825
|
+
}
|
|
826
|
+
}
|
|
827
|
+
|
|
828
|
+
// ---- Schema algebra (Phase 6) --------------------------------------------
|
|
829
|
+
// Invariant: every algebra operation returns a :shape. Model algebra
|
|
830
|
+
// strips ORM; :shape algebra drops behavior. Derived shapes preserve
|
|
831
|
+
// field metadata (constraints, defaults, modifiers) from the source
|
|
832
|
+
// normalized descriptor.
|
|
833
|
+
|
|
834
|
+
pick(...keys) {
|
|
835
|
+
return __schemaDerive(this, (src) => {
|
|
836
|
+
const names = __schemaFlatten(keys);
|
|
837
|
+
const out = new Map();
|
|
838
|
+
for (const k of names) {
|
|
839
|
+
if (!src.has(k)) throw new Error("pick: unknown field '" + k + "' on " + (this.name || 'schema'));
|
|
840
|
+
out.set(k, src.get(k));
|
|
841
|
+
}
|
|
842
|
+
return out;
|
|
843
|
+
});
|
|
844
|
+
}
|
|
845
|
+
|
|
846
|
+
omit(...keys) {
|
|
847
|
+
return __schemaDerive(this, (src) => {
|
|
848
|
+
const drop = new Set(__schemaFlatten(keys));
|
|
849
|
+
const out = new Map();
|
|
850
|
+
for (const [k, v] of src) if (!drop.has(k)) out.set(k, v);
|
|
851
|
+
return out;
|
|
852
|
+
});
|
|
853
|
+
}
|
|
854
|
+
|
|
855
|
+
partial() {
|
|
856
|
+
return __schemaDerive(this, (src) => {
|
|
857
|
+
const out = new Map();
|
|
858
|
+
for (const [k, v] of src) out.set(k, { ...v, required: false });
|
|
859
|
+
return out;
|
|
860
|
+
});
|
|
861
|
+
}
|
|
862
|
+
|
|
863
|
+
required(...keys) {
|
|
864
|
+
return __schemaDerive(this, (src) => {
|
|
865
|
+
const req = new Set(__schemaFlatten(keys));
|
|
866
|
+
const out = new Map();
|
|
867
|
+
for (const [k, v] of src) out.set(k, { ...v, required: req.has(k) ? true : v.required });
|
|
868
|
+
return out;
|
|
869
|
+
});
|
|
870
|
+
}
|
|
871
|
+
|
|
872
|
+
extend(other) {
|
|
873
|
+
if (!(other instanceof __SchemaDef)) {
|
|
874
|
+
throw new Error('extend(): argument must be a schema value');
|
|
875
|
+
}
|
|
876
|
+
return __schemaDerive(this, (src) => {
|
|
877
|
+
const merged = new Map(src);
|
|
878
|
+
const otherFields = other._normalize().fields;
|
|
879
|
+
for (const [k, v] of otherFields) {
|
|
880
|
+
if (merged.has(k)) {
|
|
881
|
+
throw new Error("extend(): field '" + k + "' collides between " + (this.name || 'schema') + " and " + (other.name || 'other'));
|
|
882
|
+
}
|
|
883
|
+
merged.set(k, v);
|
|
884
|
+
}
|
|
885
|
+
return merged;
|
|
886
|
+
});
|
|
887
|
+
}
|
|
888
|
+
}
|
|
889
|
+
|
|
890
|
+
function __schemaFlatten(keys) {
|
|
891
|
+
const out = [];
|
|
892
|
+
for (const k of keys) {
|
|
893
|
+
if (typeof k === 'symbol') out.push(Symbol.keyFor(k) || k.description);
|
|
894
|
+
else if (Array.isArray(k)) for (const kk of k) out.push(typeof kk === 'symbol' ? (Symbol.keyFor(kk) || kk.description) : kk);
|
|
895
|
+
else out.push(k);
|
|
896
|
+
}
|
|
897
|
+
return out;
|
|
898
|
+
}
|
|
899
|
+
|
|
900
|
+
// Schema algebra — .pick / .omit / .partial / .required / .extend all
|
|
901
|
+
// land here. The v2 invariants encoded in this function:
|
|
902
|
+
//
|
|
903
|
+
// - Derived schemas are always kind: 'shape', regardless of source kind.
|
|
904
|
+
// ORM surface on :model is dropped.
|
|
905
|
+
// - Field semantics SURVIVE algebra: type, literals, constraints,
|
|
906
|
+
// inline transforms. Transforms-survive means a derived schema can
|
|
907
|
+
// still read raw-input keys that aren't in its declared output shape.
|
|
908
|
+
// - Instance behavior DOES NOT survive: methods, computed (~>), eager
|
|
909
|
+
// derived (!>), and hooks all get dropped because the rebuilt
|
|
910
|
+
// descriptor has no callable entries.
|
|
911
|
+
// - _sourceModel propagates through chained algebra so tooling can
|
|
912
|
+
// trace derived shapes back to the origin :model.
|
|
913
|
+
function __schemaDerive(source, transform) {
|
|
914
|
+
const src = source._normalize().fields;
|
|
915
|
+
const derivedFields = transform(src);
|
|
916
|
+
const entries = [];
|
|
917
|
+
for (const [, f] of derivedFields) {
|
|
918
|
+
const mods = [];
|
|
919
|
+
if (f.required) mods.push('!');
|
|
920
|
+
if (f.unique) mods.push('#');
|
|
921
|
+
if (f.optional && !f.required) mods.push('?');
|
|
922
|
+
entries.push({
|
|
923
|
+
tag: 'field', name: f.name, modifiers: mods,
|
|
924
|
+
typeName: f.typeName, array: f.array,
|
|
925
|
+
literals: f.literals || null,
|
|
926
|
+
constraints: f.constraints,
|
|
927
|
+
transform: f.transform || null,
|
|
928
|
+
});
|
|
929
|
+
}
|
|
930
|
+
const name = (source.name || 'Schema') + 'Derived';
|
|
931
|
+
const derived = new __SchemaDef({ kind: 'shape', name, entries });
|
|
932
|
+
// sourceModel propagates through chained algebra. Tooling can follow
|
|
933
|
+
// the chain back to the original :model for projection hints.
|
|
934
|
+
derived._sourceModel = source._sourceModel || (source.kind === 'model' ? source : null);
|
|
935
|
+
return derived;
|
|
936
|
+
}
|
|
937
|
+
|
|
938
|
+
function __schemaCamel(col) { return String(col).replace(/_([a-z])/g, (_, c) => c.toUpperCase()); }
|
|
939
|
+
|
|
940
|
+
function __schemaNormalizeDirectiveRelation(directive, ownerModel) {
|
|
941
|
+
const args = directive.args;
|
|
942
|
+
if (!args || !args.length) return null;
|
|
943
|
+
const a = args[0];
|
|
944
|
+
const name = directive.name;
|
|
945
|
+
if (name === 'belongs_to') {
|
|
946
|
+
const targetLc = a.target[0].toLowerCase() + a.target.slice(1);
|
|
947
|
+
return { kind: 'belongsTo', target: a.target, accessor: targetLc, foreignKey: __schemaFkName(a.target), optional: !!a.optional };
|
|
948
|
+
}
|
|
949
|
+
if (name === 'has_one' || name === 'one') {
|
|
950
|
+
const targetLc = a.target[0].toLowerCase() + a.target.slice(1);
|
|
951
|
+
return { kind: 'hasOne', target: a.target, accessor: targetLc, foreignKey: __schemaFkName(ownerModel), optional: !!a.optional };
|
|
952
|
+
}
|
|
953
|
+
if (name === 'has_many' || name === 'many') {
|
|
954
|
+
const targetLc = a.target[0].toLowerCase() + a.target.slice(1);
|
|
955
|
+
return { kind: 'hasMany', target: a.target, accessor: __schemaPluralize(targetLc), foreignKey: __schemaFkName(ownerModel), optional: !!a.optional };
|
|
956
|
+
}
|
|
957
|
+
return null;
|
|
958
|
+
}
|
|
959
|
+
|
|
960
|
+
function __schemaExpandMixins(host, fields, directives, ctx) {
|
|
961
|
+
for (const d of directives) {
|
|
962
|
+
if (d.name !== 'mixin' || !d.args || !d.args[0]) continue;
|
|
963
|
+
const target = d.args[0].target;
|
|
964
|
+
if (!target) continue;
|
|
965
|
+
if (ctx.stack.includes(target)) {
|
|
966
|
+
throw new SchemaError(
|
|
967
|
+
[{field: '', error: 'mixin-cycle', message: 'mixin cycle: ' + ctx.stack.concat(target).join(' -> ')}],
|
|
968
|
+
host.name, host.kind);
|
|
969
|
+
}
|
|
970
|
+
if (ctx.seen.has(target)) continue;
|
|
971
|
+
const mx = __SchemaRegistry.getKind(target, 'mixin');
|
|
972
|
+
if (!mx) {
|
|
973
|
+
throw new SchemaError(
|
|
974
|
+
[{field: '', error: 'mixin-missing', message: 'unknown mixin: ' + target}],
|
|
975
|
+
host.name, host.kind);
|
|
976
|
+
}
|
|
977
|
+
ctx.seen.add(target);
|
|
978
|
+
ctx.stack.push(target);
|
|
979
|
+
// Recurse into nested mixins first (depth-first).
|
|
980
|
+
const childDirectives = mx._desc.entries.filter(e => e.tag === 'directive' && e.name === 'mixin')
|
|
981
|
+
.map(e => ({ name: e.name, args: e.args || [] }));
|
|
982
|
+
__schemaExpandMixins(host, fields, childDirectives, ctx);
|
|
983
|
+
// Then contribute the mixin's own fields.
|
|
984
|
+
for (const e of mx._desc.entries) {
|
|
985
|
+
if (e.tag !== 'field') continue;
|
|
986
|
+
if (fields.has(e.name)) {
|
|
987
|
+
throw new SchemaError(
|
|
988
|
+
[{field: e.name, error: 'mixin-collision', message: e.name + ' from mixin ' + target + ' collides with existing field'}],
|
|
989
|
+
host.name, host.kind);
|
|
990
|
+
}
|
|
991
|
+
fields.set(e.name, {
|
|
992
|
+
name: e.name,
|
|
993
|
+
required: e.modifiers.includes('!'),
|
|
994
|
+
unique: e.modifiers.includes('#'),
|
|
995
|
+
optional: e.modifiers.includes('?'),
|
|
996
|
+
typeName: e.typeName,
|
|
997
|
+
literals: e.literals || null,
|
|
998
|
+
array: e.array === true,
|
|
999
|
+
constraints: e.constraints || null,
|
|
1000
|
+
transform: e.transform || null,
|
|
1001
|
+
});
|
|
1002
|
+
}
|
|
1003
|
+
ctx.stack.pop();
|
|
1004
|
+
}
|
|
1005
|
+
}
|
|
1006
|
+
|
|
1007
|
+
async function __schemaResolveRelation(def, inst, rel) {
|
|
1008
|
+
const target = __SchemaRegistry.get(rel.target);
|
|
1009
|
+
if (!target) throw new Error('schema: unknown relation target "' + rel.target + '" from ' + (def.name || 'anon'));
|
|
1010
|
+
const pk = def._normalize().primaryKey;
|
|
1011
|
+
if (rel.kind === 'belongsTo') {
|
|
1012
|
+
const fk = inst[__schemaCamel(rel.foreignKey)];
|
|
1013
|
+
return fk != null ? await target.find(fk) : null;
|
|
1014
|
+
}
|
|
1015
|
+
if (rel.kind === 'hasOne') {
|
|
1016
|
+
return await target.where({ [rel.foreignKey]: inst[pk] }).first();
|
|
1017
|
+
}
|
|
1018
|
+
if (rel.kind === 'hasMany') {
|
|
1019
|
+
return await target.where({ [rel.foreignKey]: inst[pk] }).all();
|
|
1020
|
+
}
|
|
1021
|
+
return null;
|
|
1022
|
+
}
|
|
1023
|
+
|
|
1024
|
+
// ---- Save / Destroy --------------------------------------------------------
|
|
1025
|
+
// Rails-style lifecycle (D18):
|
|
1026
|
+
// beforeValidation -> validate -> afterValidation ->
|
|
1027
|
+
// beforeSave -> (beforeCreate|beforeUpdate) -> INSERT/UPDATE ->
|
|
1028
|
+
// (afterCreate|afterUpdate) -> afterSave
|
|
1029
|
+
// Destroy:
|
|
1030
|
+
// beforeDestroy -> DELETE -> afterDestroy
|
|
1031
|
+
|
|
1032
|
+
async function __schemaRunHook(def, inst, name) {
|
|
1033
|
+
const fn = def._normalize().hooks.get(name);
|
|
1034
|
+
if (fn) await fn.call(inst);
|
|
1035
|
+
}
|
|
1036
|
+
|
|
1037
|
+
async function __schemaSave(def, inst) {
|
|
1038
|
+
const norm = def._normalize();
|
|
1039
|
+
const isNew = !inst._persisted;
|
|
1040
|
+
|
|
1041
|
+
await __schemaRunHook(def, inst, 'beforeValidation');
|
|
1042
|
+
const errs = def._validateFields(inst, true);
|
|
1043
|
+
if (errs.length) throw new SchemaError(errs, def.name, def.kind);
|
|
1044
|
+
await __schemaRunHook(def, inst, 'afterValidation');
|
|
1045
|
+
|
|
1046
|
+
await __schemaRunHook(def, inst, 'beforeSave');
|
|
1047
|
+
if (isNew) await __schemaRunHook(def, inst, 'beforeCreate');
|
|
1048
|
+
else await __schemaRunHook(def, inst, 'beforeUpdate');
|
|
1049
|
+
|
|
1050
|
+
if (isNew) {
|
|
1051
|
+
const cols = [], placeholders = [], values = [];
|
|
1052
|
+
for (const [n, f] of norm.fields) {
|
|
1053
|
+
const v = inst[n];
|
|
1054
|
+
if (v == null) continue;
|
|
1055
|
+
cols.push('"' + __schemaSnake(n) + '"');
|
|
1056
|
+
placeholders.push('?');
|
|
1057
|
+
values.push(__schemaSerialize(v, f));
|
|
1058
|
+
}
|
|
1059
|
+
// Include relation FKs. belongsTo FKs are camelCase properties on
|
|
1060
|
+
// the instance (e.g. organizationId for organization_id).
|
|
1061
|
+
for (const [, rel] of norm.relations) {
|
|
1062
|
+
if (rel.kind !== 'belongsTo') continue;
|
|
1063
|
+
const fkCamel = __schemaCamel(rel.foreignKey);
|
|
1064
|
+
const v = inst[fkCamel];
|
|
1065
|
+
if (v != null) {
|
|
1066
|
+
cols.push('"' + rel.foreignKey + '"');
|
|
1067
|
+
placeholders.push('?');
|
|
1068
|
+
values.push(v);
|
|
1069
|
+
}
|
|
1070
|
+
}
|
|
1071
|
+
const sql = 'INSERT INTO "' + norm.tableName + '" (' + cols.join(', ') + ') VALUES (' + placeholders.join(', ') + ') RETURNING *';
|
|
1072
|
+
const res = await __schemaAdapter.query(sql, values);
|
|
1073
|
+
if (res.data?.[0] && res.columns) {
|
|
1074
|
+
for (let i = 0; i < res.columns.length; i++) {
|
|
1075
|
+
const snake = res.columns[i].name;
|
|
1076
|
+
const key = __schemaCamel(snake);
|
|
1077
|
+
if (!(key in inst)) {
|
|
1078
|
+
Object.defineProperty(inst, key, { value: res.data[0][i], enumerable: true, writable: true, configurable: true });
|
|
1079
|
+
} else {
|
|
1080
|
+
inst[key] = res.data[0][i];
|
|
1081
|
+
}
|
|
1082
|
+
if (snake !== key && !(snake in inst)) {
|
|
1083
|
+
Object.defineProperty(inst, snake, {
|
|
1084
|
+
enumerable: false, configurable: true,
|
|
1085
|
+
get() { return this[key]; },
|
|
1086
|
+
set(v) { this[key] = v; },
|
|
1087
|
+
});
|
|
1088
|
+
}
|
|
1089
|
+
}
|
|
1090
|
+
}
|
|
1091
|
+
inst._persisted = true;
|
|
1092
|
+
} else {
|
|
1093
|
+
const sets = [], values = [];
|
|
1094
|
+
for (const [n, f] of norm.fields) {
|
|
1095
|
+
sets.push('"' + __schemaSnake(n) + '" = ?');
|
|
1096
|
+
values.push(__schemaSerialize(inst[n], f));
|
|
1097
|
+
}
|
|
1098
|
+
if (sets.length) {
|
|
1099
|
+
const pk = norm.primaryKey;
|
|
1100
|
+
values.push(inst[pk]);
|
|
1101
|
+
const sql = 'UPDATE "' + norm.tableName + '" SET ' + sets.join(', ') + ' WHERE "' + pk + '" = ?';
|
|
1102
|
+
await __schemaAdapter.query(sql, values);
|
|
1103
|
+
}
|
|
1104
|
+
}
|
|
1105
|
+
inst._dirty.clear();
|
|
1106
|
+
|
|
1107
|
+
if (isNew) await __schemaRunHook(def, inst, 'afterCreate');
|
|
1108
|
+
else await __schemaRunHook(def, inst, 'afterUpdate');
|
|
1109
|
+
await __schemaRunHook(def, inst, 'afterSave');
|
|
1110
|
+
return inst;
|
|
1111
|
+
}
|
|
1112
|
+
|
|
1113
|
+
async function __schemaDestroy(def, inst) {
|
|
1114
|
+
if (!inst._persisted) return inst;
|
|
1115
|
+
const norm = def._normalize();
|
|
1116
|
+
await __schemaRunHook(def, inst, 'beforeDestroy');
|
|
1117
|
+
if (norm.softDelete) {
|
|
1118
|
+
const now = new Date().toISOString();
|
|
1119
|
+
await __schemaAdapter.query('UPDATE "' + norm.tableName + '" SET "deleted_at" = ? WHERE "' + norm.primaryKey + '" = ?', [now, inst[norm.primaryKey]]);
|
|
1120
|
+
inst.deletedAt = now;
|
|
1121
|
+
} else {
|
|
1122
|
+
await __schemaAdapter.query('DELETE FROM "' + norm.tableName + '" WHERE "' + norm.primaryKey + '" = ?', [inst[norm.primaryKey]]);
|
|
1123
|
+
inst._persisted = false;
|
|
1124
|
+
}
|
|
1125
|
+
await __schemaRunHook(def, inst, 'afterDestroy');
|
|
1126
|
+
return inst;
|
|
1127
|
+
}
|
|
1128
|
+
|
|
1129
|
+
function __schemaSerialize(v, field) {
|
|
1130
|
+
if (field && field.typeName === 'json' && v != null && typeof v === 'object') {
|
|
1131
|
+
return JSON.stringify(v);
|
|
1132
|
+
}
|
|
1133
|
+
return v;
|
|
1134
|
+
}
|
|
1135
|
+
|
|
1136
|
+
// ---- DDL emission (.toSQL) --------------------------------------------------
|
|
1137
|
+
// Layer 4b: runs on first .toSQL() call. Independent of ORM — scripts
|
|
1138
|
+
// that build schema from DDL never touch .find/.create.
|
|
1139
|
+
|
|
1140
|
+
const __SCHEMA_SQL_TYPES = {
|
|
1141
|
+
string: 'VARCHAR', text: 'TEXT', integer: 'INTEGER', number: 'DOUBLE',
|
|
1142
|
+
boolean: 'BOOLEAN', date: 'DATE', datetime: 'TIMESTAMP', email: 'VARCHAR',
|
|
1143
|
+
url: 'VARCHAR', uuid: 'UUID', phone: 'VARCHAR', zip: 'VARCHAR', json: 'JSON', any: 'JSON',
|
|
1144
|
+
};
|
|
1145
|
+
|
|
1146
|
+
function __schemaToSQL(def, options) {
|
|
1147
|
+
const { dropFirst = false, header } = options || {};
|
|
1148
|
+
const norm = def._normalize();
|
|
1149
|
+
const blocks = [];
|
|
1150
|
+
if (header) blocks.push(header);
|
|
1151
|
+
|
|
1152
|
+
const table = norm.tableName;
|
|
1153
|
+
const seq = table + '_seq';
|
|
1154
|
+
if (dropFirst) {
|
|
1155
|
+
blocks.push('DROP TABLE IF EXISTS ' + table + ' CASCADE;\\nDROP SEQUENCE IF EXISTS ' + seq + ';');
|
|
1156
|
+
}
|
|
1157
|
+
|
|
1158
|
+
const columns = [];
|
|
1159
|
+
const indexes = [];
|
|
1160
|
+
columns.push(' ' + norm.primaryKey + " INTEGER PRIMARY KEY DEFAULT nextval('" + seq + "')");
|
|
1161
|
+
|
|
1162
|
+
for (const [n, f] of norm.fields) {
|
|
1163
|
+
columns.push(__schemaColumnDDL(n, f));
|
|
1164
|
+
if (f.unique) {
|
|
1165
|
+
indexes.push('CREATE UNIQUE INDEX idx_' + table + '_' + __schemaSnake(n) + ' ON ' + table + ' ("' + __schemaSnake(n) + '");');
|
|
1166
|
+
}
|
|
1167
|
+
}
|
|
1168
|
+
|
|
1169
|
+
for (const [, rel] of norm.relations) {
|
|
1170
|
+
if (rel.kind !== 'belongsTo') continue;
|
|
1171
|
+
const refTable = __schemaTableName(rel.target);
|
|
1172
|
+
const notNull = rel.optional ? '' : ' NOT NULL';
|
|
1173
|
+
columns.push(' ' + rel.foreignKey + ' INTEGER' + notNull + ' REFERENCES ' + refTable + '(id)');
|
|
1174
|
+
}
|
|
1175
|
+
|
|
1176
|
+
if (norm.timestamps) {
|
|
1177
|
+
columns.push(' created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP');
|
|
1178
|
+
columns.push(' updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP');
|
|
1179
|
+
}
|
|
1180
|
+
if (norm.softDelete) {
|
|
1181
|
+
columns.push(' deleted_at TIMESTAMP');
|
|
1182
|
+
}
|
|
1183
|
+
|
|
1184
|
+
// @index directives
|
|
1185
|
+
for (const d of norm.directives) {
|
|
1186
|
+
if (d.name !== 'index') continue;
|
|
1187
|
+
const ixArgs = d.args?.[0] || {};
|
|
1188
|
+
const fields = (ixArgs.fields || []).map(__schemaSnake);
|
|
1189
|
+
if (!fields.length) continue;
|
|
1190
|
+
const u = ixArgs.unique ? 'UNIQUE ' : '';
|
|
1191
|
+
indexes.push('CREATE ' + u + 'INDEX idx_' + table + '_' + fields.join('_') + ' ON ' + table + ' (' + fields.map(f => '"' + f + '"').join(', ') + ');');
|
|
1192
|
+
}
|
|
1193
|
+
|
|
1194
|
+
blocks.push('CREATE SEQUENCE ' + seq + ' START 1;');
|
|
1195
|
+
blocks.push('CREATE TABLE ' + table + ' (\\n' + columns.join(',\\n') + '\\n);');
|
|
1196
|
+
if (indexes.length) blocks.push(indexes.join('\\n'));
|
|
1197
|
+
|
|
1198
|
+
return blocks.join('\\n\\n') + '\\n';
|
|
1199
|
+
}
|
|
1200
|
+
|
|
1201
|
+
function __schemaColumnDDL(name, field) {
|
|
1202
|
+
let base = __SCHEMA_SQL_TYPES[field.typeName] || 'VARCHAR';
|
|
1203
|
+
if (field.array) base = 'JSON';
|
|
1204
|
+
if (base === 'VARCHAR' && field.constraints?.max != null) {
|
|
1205
|
+
base = 'VARCHAR(' + field.constraints.max + ')';
|
|
1206
|
+
}
|
|
1207
|
+
const parts = [' ' + __schemaSnake(name) + ' ' + base];
|
|
1208
|
+
if (field.required) parts.push('NOT NULL');
|
|
1209
|
+
if (field.unique) parts.push('UNIQUE');
|
|
1210
|
+
if (field.constraints?.default !== undefined) {
|
|
1211
|
+
parts.push('DEFAULT ' + __schemaSQLDefault(field.constraints.default));
|
|
1212
|
+
}
|
|
1213
|
+
return parts.join(' ');
|
|
1214
|
+
}
|
|
1215
|
+
|
|
1216
|
+
function __schemaSQLDefault(v) {
|
|
1217
|
+
if (v === true) return 'true';
|
|
1218
|
+
if (v === false) return 'false';
|
|
1219
|
+
if (v === null) return 'NULL';
|
|
1220
|
+
if (typeof v === 'number') return String(v);
|
|
1221
|
+
if (typeof v === 'string') return "'" + v.replace(/'/g, "''") + "'";
|
|
1222
|
+
return "'" + String(v).replace(/'/g, "''") + "'";
|
|
1223
|
+
}
|
|
1224
|
+
|
|
1225
|
+
function __schema(descriptor) {
|
|
1226
|
+
const def = new __SchemaDef(descriptor);
|
|
1227
|
+
// Every user-declared named schema lands in the registry so
|
|
1228
|
+
// nested-typed fields (address! Address, items! OrderItem[],
|
|
1229
|
+
// role! Role) can resolve their type reference at validate time.
|
|
1230
|
+
// Algebra-derived schemas (.pick/.omit/.partial/…) bypass this
|
|
1231
|
+
// factory so their synthetic names don't shadow the source.
|
|
1232
|
+
if (def.name) __SchemaRegistry.register(def);
|
|
1233
|
+
return def;
|
|
1234
|
+
}
|
|
1235
|
+
|
|
1236
|
+
if (typeof globalThis !== 'undefined') {
|
|
1237
|
+
globalThis.__ripSchema = {
|
|
1238
|
+
__schema, SchemaError, __SchemaRegistry, __schemaSetAdapter,
|
|
1239
|
+
};
|
|
1240
|
+
}
|
|
1241
|
+
|
|
1242
|
+
// === End Schema Runtime ===
|
|
1243
|
+
`;function y4(){return g2.trimStart()}var c2=["interface SchemaIssue { field: string; error: string; message: string; }","type SchemaSafeResult<T> = { ok: true; value: T; errors: null } | { ok: false; value: null; errors: SchemaIssue[] };","interface Schema<Out, In = unknown> {"," parse(data: In): Out;"," safe(data: In): SchemaSafeResult<Out>;"," ok(data: unknown): boolean;"," pick<K extends keyof In>(...keys: K[]): Schema<Pick<In, K>, Pick<In, K>>;"," omit<K extends keyof In>(...keys: K[]): Schema<Omit<In, K>, Omit<In, K>>;"," partial(): Schema<Partial<In>, Partial<In>>;"," required<K extends keyof In>(...keys: K[]): Schema<Omit<In, K> & Required<Pick<In, K>>, Omit<In, K> & Required<Pick<In, K>>>;"," extend<U>(other: Schema<U>): Schema<In & U, In & U>;","}","interface SchemaQuery<T> {"," all(): Promise<T[]>;"," first(): Promise<T | null>;"," count(): Promise<number>;"," limit(n: number): SchemaQuery<T>;"," offset(n: number): SchemaQuery<T>;"," order(spec: string): SchemaQuery<T>;","}","interface ModelSchema<Instance, Data = unknown> extends Schema<Instance, Data> {"," find(id: unknown): Promise<Instance | null>;"," findMany(ids: unknown[]): Promise<Instance[]>;"," where(cond: Record<string, unknown> | string, ...params: unknown[]): SchemaQuery<Instance>;"," all(limit?: number): Promise<Instance[]>;"," first(): Promise<Instance | null>;"," count(cond?: Record<string, unknown>): Promise<number>;"," create(data: Partial<Data>): Promise<Instance>;"," toSQL(options?: { dropFirst?: boolean; header?: string }): string;","}"],v4={string:"string",text:"string",email:"string",url:"string",uuid:"string",phone:"string",zip:"string",number:"number",integer:"number",boolean:"boolean",date:"Date",datetime:"Date",json:"unknown",any:"any"};function g4(u){if(u.typeName==="literal-union"&&u.literals?.length)return u.literals.map((_)=>JSON.stringify(_)).join(" | ");let U=v4[u.typeName]??u.typeName;return u.array?`${U}[]`:U}function c4(u){if(!Array.isArray(u))return null;if((u[0]?.valueOf?.()??u[0])!=="schema")return null;let _=u[1];if(!_||typeof _!=="object")return null;if(_.descriptor)return _.descriptor;if(_.data?.descriptor)return _.data.descriptor;return null}function x2(u,U){let _=[];if(Y2(u,_),!_.length)return!1;let W=new Set(_.map(($)=>$.name)),f=new Map(_.map(($)=>[$.name,$]));for(let $ of _)if($.descriptor.kind==="mixin")b2($,f,W,U);for(let $ of _)if($.descriptor.kind!=="mixin")b2($,f,W,U);return!0}function Y2(u,U){if(!Array.isArray(u))return;let _=u[0]?.valueOf?.()??u[0],W=!1,f=null;if(_==="export"&&Array.isArray(u[1])){let $=u[1];if(($[0]?.valueOf?.()??$[0])==="=")W=!0,f=$;else Y2(u[1],U)}else if(_==="=")f=u;else if(_==="program"||_==="block"){for(let $=1;$<u.length;$++)if(Array.isArray(u[$]))Y2(u[$],U)}if(f&&Array.isArray(f[2])){let $=f[1]?.valueOf?.()??f[1],F=c4(f[2]);if(typeof $==="string"&&F)U.push({name:$,descriptor:F,exported:W})}}function b2(u,U,_,W){let{name:f,descriptor:$,exported:F}=u,Y=F?"export ":"",Z=F?"":"declare ";if($.kind==="enum"){let w=[];for(let R of $.entries){if(R.tag!=="enum-member")continue;let O=R.value!==void 0?R.value:R.name;w.push(typeof O==="string"?JSON.stringify(O):String(O))}let A=w.length?w.join(" | "):"never";W.push(`${Y}type ${f} = ${A};`),W.push(`${Y}${Z}const ${f}: { parse(data: unknown): ${f}; safe(data: unknown): SchemaSafeResult<${f}>; ok(data: unknown): data is ${f}; };`);return}if($.kind==="mixin"){let w=h2($);W.push(`${Y}type ${f} = { ${w.join("; ")} };`);return}let G=h2($),Q=x4($,U),z=[],J=[];for(let w of $.entries)if(w.tag==="method")z.push(`${w.name}: (...args: any[]) => unknown`);else if(w.tag==="computed")J.push(`readonly ${w.name}: unknown`);let X=`{ ${G.join("; ")} }`,K=Q.length?`${X} & ${Q.join(" & ")}`:X;if($.kind==="model"){let w=`${f}Data`,A=`${f}Instance`,R=l4($,_),O=[...J,...z,...R,`save(): Promise<${A}>`,`destroy(): Promise<${A}>`,"ok(): boolean","errors(): SchemaIssue[]",`toJSON(): ${w}`];W.push(`${Y}type ${w} = ${K};`),W.push(`${Y}type ${A} = ${w} & { ${O.join("; ")} };`),W.push(`${Y}${Z}const ${f}: ModelSchema<${A}, ${w}>;`);return}if($.kind==="shape"){let w=`${f}Data`,A=`${f}Instance`,R=z.length+J.length>0;if(W.push(`${Y}type ${w} = ${K};`),R)W.push(`${Y}type ${A} = ${w} & { ${[...J,...z].join("; ")} };`),W.push(`${Y}${Z}const ${f}: Schema<${A}, ${w}>;`);else W.push(`${Y}${Z}const ${f}: Schema<${w}, ${w}>;`);return}let D=`${f}Value`;W.push(`${Y}type ${D} = ${K};`),W.push(`${Y}${Z}const ${f}: Schema<${D}, ${D}>;`)}function x4(u,U){let _=[];for(let W of u.entries){if(W.tag!=="directive"||W.name!=="mixin")continue;let f=W.args,$=f&&f[0]&&f[0].target;if(!$)continue;let F=U&&U.get($);if(F&&F.descriptor.kind==="mixin")_.push($)}return _}function l4(u,U){let _=[];for(let W of u.entries){if(W.tag!=="directive")continue;let f=W.args;if(!f||!f[0])continue;let $=f[0].target;if(!$)continue;let F=f[0].optional===!0,Y=$[0].toLowerCase()+$.slice(1),Z=`${$}Instance`,G=U&&U.has($);if(W.name==="belongs_to"){let Q=G?F?`${Z} | null`:`${Z} | null`:"unknown";_.push(`${Y}(): Promise<${Q}>`)}else if(W.name==="has_one"||W.name==="one"){let Q=G?`${Z} | null`:"unknown";_.push(`${Y}(): Promise<${Q}>`)}else if(W.name==="has_many"||W.name==="many"){let Q=G?`${Z}[]`:"unknown[]",z=m4(Y);_.push(`${z}(): Promise<${Q}>`)}}return _}function m4(u){let U=u.toLowerCase();if(/[^aeiouy]y$/i.test(u))return u.slice(0,-1)+"ies";if(/(s|x|z|ch|sh)$/i.test(u))return u+"es";return u+"s"}function h2(u){let U=[];for(let _ of u.entries){if(_.tag!=="field")continue;let f=_.modifiers.includes("!")?"":"?";U.push(`${_.name}${f}: ${g4(_)}`)}return U}if(typeof globalThis<"u"&&!globalThis.__ripSchema)try{(0,eval)(g2)}catch{}var k4=["type __RipElementMap = HTMLElementTagNameMap & Omit<SVGElementTagNameMap, keyof HTMLElementTagNameMap>;","type __RipTag = keyof __RipElementMap;","type __RipBrowserElement = Omit<HTMLElement, 'querySelector' | 'querySelectorAll' | 'closest' | 'setAttribute' | 'hidden'> & { hidden: boolean | 'until-found'; setAttribute(qualifiedName: string, value: any): void; querySelector(selectors: string): __RipBrowserElement | null; querySelectorAll(selectors: string): NodeListOf<__RipBrowserElement>; closest(selectors: string): __RipBrowserElement | null; };","type __RipDomEl<K extends __RipTag> = Omit<__RipElementMap[K], 'querySelector' | 'querySelectorAll' | 'closest' | 'setAttribute' | 'hidden'> & __RipBrowserElement;","type __RipAttrKeys<T> = { [K in keyof T]-?: K extends 'style' | 'classList' | 'className' | 'nodeValue' | 'textContent' | 'innerHTML' | 'innerText' | 'outerHTML' | 'outerText' | 'scrollLeft' | 'scrollTop' ? never : K extends `on${string}` | `aria${string}Element` | `aria${string}Elements` ? never : T[K] extends (...args: any[]) => any ? never : (<V>() => V extends Pick<T, K> ? 1 : 2) extends (<V>() => V extends { -readonly [P in K]: T[P] } ? 1 : 2) ? K : never }[keyof T] & string;","type __RipEvents = { [K in keyof HTMLElementEventMap as `@${K}`]?: ((event: HTMLElementEventMap[K]) => void) | null };","type __RipClassValue = string | boolean | null | undefined | Record<string, boolean> | __RipClassValue[];","type __RipProps<K extends __RipTag> = { [P in __RipAttrKeys<__RipElementMap[K]>]?: __RipElementMap[K][P] } & __RipEvents & { ref?: string; class?: __RipClassValue | __RipClassValue[]; style?: string; [k: `data-${string}`]: any; [k: `aria-${string}`]: any };"];var i4=["type __RipAriaNavHandlers = { next?: () => void; prev?: () => void; first?: () => void; last?: () => void; select?: () => void; dismiss?: () => void; tab?: () => void; char?: () => void; };","declare const ARIA: {"," bindPopover(open: boolean, popover: () => Element | null | undefined, setOpen: (isOpen: boolean) => void, source?: (() => Element | null | undefined) | null): void;"," bindDialog(open: boolean, dialog: () => Element | null | undefined, setOpen: (isOpen: boolean) => void, dismissable?: boolean): void;"," popupDismiss(open: boolean, popup: () => Element | null | undefined, close: () => void, els?: Array<() => Element | null | undefined>, repos?: (() => void) | null): void;"," popupGuard(delay?: number): any;"," listNav(event: KeyboardEvent, handlers: __RipAriaNavHandlers): void;"," rovingNav(event: KeyboardEvent, handlers: __RipAriaNavHandlers, orientation?: 'vertical' | 'horizontal' | 'both'): void;"," positionBelow(trigger: Element | null | undefined, popup: Element | null | undefined, gap?: number, setVisible?: boolean): void;"," position(trigger: Element | null | undefined, floating: Element | null | undefined, opts?: any): void;"," trapFocus(panel: Element | null | undefined): void;"," wireAria(panel: Element, id: string): void;"," lockScroll(instance: any): void;"," unlockScroll(instance: any): void;"," hasAnchor: boolean;"," [key: string]: any;","};"],d4="interface Signal<T> { value: T; read(): T; lock(): Signal<T>; free(): Signal<T>; kill(): T; }",p4="declare function __state<T>(value: T | Signal<T>): Signal<T>;",n4="interface Computed<T> { readonly value: T; read(): T; lock(): Computed<T>; free(): Computed<T>; kill(): T; }",o4="declare function __computed<T>(fn: () => T): Computed<T>;",a4="declare function __effect(fn: () => void | (() => void)): () => void;";function k2(u){let U=u.prototype;U.rewriteTypes=function(){let _=this.tokens,W=this.typeRefNames=new Set,f=($,F,Y)=>{let Z=[$,F];if(Z.pre=0,Z.data=null,Z.loc=Y?.loc??{r:0,c:0,n:0},Z.spaced=!1,Z.newLine=!1,Z.generated=!0,Y)Z.origin=Y;return Z};this.scanTokens(($,F,Y)=>{let Z=$[0];if(Z==="IDENTIFIER"){let G=Y[F+1];if(G&&G[0]==="COMPARE"&&G[1]==="<"&&!G.spaced){let Q=Y[F-1]?.[0]==="DEF",z=m2(Y,F+1);if(z){let J=F+1+z.length,X=!Q&&Y[J]?.[0]==="="&&Y[J+1]?.[0]==="COMPONENT";if(Q||X){if(!$.data)$.data={};if($.data.typeParams=H1(z),Y.splice(F+1,z.length),Q&&Y[F+1]?.[0]==="("){Y[F+1][0]="CALL_START";let K=1,D=F+2;while(D<Y.length&&K>0){if(Y[D][0]==="("||Y[D][0]==="CALL_START")K++;if(Y[D][0]===")"||Y[D][0]==="CALL_END")K--;if(K===0)Y[D][0]="CALL_END";D++}}}}}}if(Z==="TYPE_ANNOTATION"){let G=Y[F-1];if(!G)return 1;let Q=l2(Y,F+1),z=H1(Q),J=G,X="type";if(G[0]==="CALL_END"||G[0]===")"){let D=1,w=F-2;while(w>=0&&D>0){let A=Y[w][0];if(A==="CALL_END"||A===")")D++;if(A==="CALL_START"||A==="(")D--;w--}if(w>=0)J=Y[w];X="returnType"}else if(G[0]==="PARAM_END"){let D=F+1+Q.consumed,w=Y[D];if(w&&(w[0]==="->"||w[0]==="=>"))J=w;X="returnType"}else if(G[0]==="IDENTIFIER"&&F>=2&&Y[F-2]?.[0]==="DEF")X="returnType";if(!J.data)J.data={};J.data[X]=z;for(let D of Q)if(D[0]==="IDENTIFIER")W.add(D[1]);let K=1+Q.consumed;return Y.splice(F,K),0}if(Z==="IDENTIFIER"&&$[1]==="type"){let G=Y[F-1]?.[0];if(!(!G||G==="TERMINATOR"||G==="INDENT"||G==="EXPORT"))return 1;let z=F+1,J=Y[z];if(!J||J[0]!=="IDENTIFIER")return 1;let X=J[1],K=G==="EXPORT",D=K?F-1:F,w=z+1;if(Y[w]?.[0]==="COMPARE"&&Y[w]?.[1]==="<"&&!Y[w].spaced){let q=m2(Y,w);if(q){if(!J.data)J.data={};J.data.typeParams=H1(q),Y.splice(w,q.length)}}if(Y[w]?.[0]!=="=")return 1;let A=(q)=>{let B=f("TYPE_DECL",X,J);if(B.data={name:X,typeText:q,exported:K},J.data?.typeParams)B.data.typeParams=J.data.typeParams;return B},R=w+1,O=Y[R];if(O&&(O[0]==="TERMINATOR"||O[0]==="INDENT")){let q=r4(Y,R);if(q)return Y.splice(D,q.endIdx-D+1,A(q.typeText)),0}if(O&&O[0]==="INDENT"){let q=Z2(Y,R);return Y.splice(D,q-D+1,A(F2(Y,R))),0}let P=l2(Y,R);return Y.splice(D,R+P.consumed-D,A(H1(P))),0}if(Z==="INTERFACE"){let G=F>=1&&Y[F-1]?.[0]==="EXPORT",Q=F+1,z=Y[Q];if(!z)return 1;let J=z[1],X=null,K=Q+1;if(Y[K]?.[0]==="EXTENDS")X=Y[K+1]?.[1],K=K+2;if(Y[K]?.[0]==="INDENT"){let D=F2(Y,K),w=Z2(Y,K),A=f("TYPE_DECL",J,z);A.data={name:J,kind:"interface",extends:X,typeText:D,exported:G};let R=G?F-1:F,O=w-R+1;return Y.splice(R,O,A),0}return 1}return 1});for(let $=_.length-1;$>=0;$--){if(_[$][0]!=="DEF")continue;let F=_[$+1];if(!F||F[0]!=="IDENTIFIER")continue;let Y=$+2;if(_[Y]?.[0]!=="CALL_START")continue;let Z=1;Y++;while(Y<_.length&&Z>0){if(_[Y][0]==="CALL_START")Z++;if(_[Y][0]==="CALL_END")Z--;Y++}let G=Y-1,Q=_[Y];if(Q&&Q[0]!=="TERMINATOR")continue;let z=F.data?.returnType;if(!z){for(let A=$+2;A<=G;A++)if(_[A].data?.type){z=!0;break}}if(!z)continue;let J=_.slice($,Y+1),X=$>=1&&_[$-1]?.[0]==="EXPORT",K=X?$-1:$,D=Y+1-K,w=f("TYPE_DECL",F[1],F);if(w.data={name:F[1],kind:"overload",overloadTokens:J,exported:X},F.data?.typeParams)w.data.typeParams=F.data.typeParams;_.splice(K,D,w)}}}function l2(u,U){let _=[],W=0,f=U;while(U<u.length){let $=u[U],F=$[0],Y=F==="("||F==="["||F==="{"||F==="CALL_START"||F==="PARAM_START"||F==="INDEX_START"||F==="COMPARE"&&$[1]==="<",Z=F===")"||F==="]"||F==="}"||F==="CALL_END"||F==="PARAM_END"||F==="INDEX_END"||F==="COMPARE"&&$[1]===">";if(F==="SHIFT"&&$[1]===">>"&&W>=2){W-=2,_.push($),U++;continue}if(Y){W++,_.push($),U++;continue}if(Z){if(W>0){W--,_.push($),U++;continue}break}if(W===0){if(F==="INDENT"&&_.length>0&&_[_.length-1][0]==="=>"){U++;let G=1;while(U<u.length&&G>0)if(u[U][0]==="INDENT")G++,U++;else if(u[U][0]==="OUTDENT")G--,U++;else _.push(u[U]),U++;continue}if(F==="="||F==="REACTIVE_ASSIGN"||F==="COMPUTED_ASSIGN"||F==="READONLY_ASSIGN"||F==="EFFECT"||F==="TERMINATOR"||F==="INDENT"||F==="OUTDENT"||F==="->"||F===",")break}_.push($),U++}return _.consumed=U-f,_}function H1(u){if(u.length===0)return"";if(u[0]?.[0]==="=>")u.unshift(["","()"]);let U=u.map((_)=>_[1]).join(" ").replace(/\s+/g," ").trim();return U=U.replace(/\s*<\s*/g,"<").replace(/\s*>\s*/g,">").replace(/\s*\[\s*/g,"[").replace(/\s*\]\s*/g,"]").replace(/\s*\(\s*/g,"(").replace(/\s*\)\s*/g,")").replace(/\s*,\s*/g,", ").replace(/\s*=>\s*/g," => ").replace(/ :: /g,": ").replace(/:: /g,": ").replace(/ : /g,": "),U}function m2(u,U){if(U>=u.length)return null;let _=u[U];if(_[0]!=="COMPARE"||_[1]!=="<")return null;let W=[_],f=1,$=U+1;while($<u.length&&f>0){let F=u[$];if(W.push(F),F[0]==="COMPARE"&&F[1]==="<")f++;else if(F[0]==="COMPARE"&&F[1]===">")f--;$++}return f===0?W:null}function F2(u,U){let _=[],W=U+1,f=1;while(W<u.length&&f>0){let $=u[W];if($[0]==="INDENT"){f++,W++;continue}if($[0]==="OUTDENT"){if(f--,f===0)break;W++;continue}if($[0]==="TERMINATOR"){W++;continue}if(f===1&&$[0]==="["){let Y=[];W++;while(W<u.length&&u[W][0]!=="]")Y.push(u[W]),W++;if(W++,u[W]?.[1]===":"||u[W]?.[0]==="TYPE_ANNOTATION")W++;let Z=[];while(W<u.length){let z=u[W];if(z[0]==="TERMINATOR"||z[0]==="OUTDENT")break;Z.push(z),W++}let G=H1(Y),Q=H1(Z);_.push(`[${G}]: ${Q}`);continue}let F=$[0]==="PROPERTY"||$[0]==="IDENTIFIER"||f===1&&/^[a-zA-Z_$]/.test($[1])&&u[W+1]?.[0]==="TYPE_ANNOTATION";if(f===1&&F){let Y=$[1],Z=!1,G=!1;if(W++,Y==="readonly"&&u[W]&&(u[W][0]==="PROPERTY"||u[W][0]==="IDENTIFIER"||/^[a-zA-Z_$]/.test(u[W][1])&&u[W+1]?.[0]==="TYPE_ANNOTATION")){if(G=!0,Y=u[W][1],u[W].data?.predicate)Z=!0;W++}if($.data?.predicate)Z=!0;if(u[W]?.[1]==="?"&&!u[W]?.spaced)Z=!0,W++;if(u[W]?.[1]===":"||u[W]?.[0]==="TYPE_ANNOTATION")W++;let Q=[],z=0;while(W<u.length){let D=u[W];if(D[0]==="IDENTIFIER"&&D[1]==="type"&&u[W+1]?.[0]==="INDENT"){W++;let w=F2(u,W);Q.push(["",w]);let A=1;W++;while(W<u.length&&A>0){if(u[W][0]==="INDENT")A++;if(u[W][0]==="OUTDENT")A--;W++}continue}if(D[0]==="INDENT"){z++,W++;continue}if(D[0]==="OUTDENT"){if(z>0){z--,W++;continue}break}if(D[0]==="TERMINATOR"&&z===0)break;Q.push(D),W++}let J=H1(Q),X=G?"readonly ":"",K=Z?"?":"";_.push(`${X}${Y}${K}: ${J}`)}else W++}return"{ "+_.join("; ")+" }"}function Z2(u,U){let _=0;for(let W=U;W<u.length;W++){if(u[W][0]==="INDENT")_++;if(u[W][0]==="OUTDENT"){if(_--,_===0)return W}}return u.length-1}function r4(u,U){let _=U;if(u[_]?.[0]==="TERMINATOR")_++;if(u[_]?.[0]!=="INDENT")return null;let W=_;_++;while(_<u.length&&u[_][0]==="TERMINATOR")_++;if(!u[_]||u[_][1]!=="|")return null;let f=[],$=1;_=W+1;while(_<u.length&&$>0){let Y=u[_];if(Y[0]==="INDENT"){$++,_++;continue}if(Y[0]==="OUTDENT"){if($--,$===0)break;_++;continue}if(Y[0]==="TERMINATOR"){_++;continue}if(Y[1]==="|"&&$===1){_++;let Z=[];while(_<u.length){let G=u[_];if(G[0]==="TERMINATOR"||G[0]==="OUTDENT"||G[1]==="|"&&$===1)break;Z.push(G),_++}if(Z.length>0)f.push(H1(Z));continue}_++}if(f.length===0)return null;let F=Z2(u,W);return{typeText:f.join(" | "),endIdx:F}}function Q2(u,U=null,_=""){let W=[],f=0,$=" ",F=()=>$.repeat(f),Y=!1,Z=new Set,G=!1,Q=!1,z=!1,J=typeof _==="string"?_.split(`
|
|
1244
|
+
`):[];for(let q=0;q<u.length;q++){let B=u[q][0];if(B==="REACTIVE_ASSIGN")G=!0;else if(B==="COMPUTED_ASSIGN")Q=!0}let X=(q,B,M)=>{if(B.startsWith("{ ")&&B.endsWith(" }")){let I=0,H=-1;for(let S=0;S<B.length;S++)if(B[S]==="{")I++;else if(B[S]==="}"){if(I--,I===0){H=S;break}}if(H===B.length-1){let S=B.slice(2,-2),N=[],V=0,L=0;for(let C=0;C<S.length;C++)if(S[C]==="{")L++;else if(S[C]==="}")L--;else if(L===0&&S[C]===";"&&S[C+1]===" ")N.push(S.slice(V,C)),V=C+2;if(V<S.length)N.push(S.slice(V));if(N=N.filter((C)=>C.trim()),N.length>0){W.push(`${F()}${q}{`),f++;for(let C of N)W.push(`${F()}${C};`);f--,W.push(`${F()}}${M}`);return}}}W.push(`${F()}${q}${B}${M}`)},K=(q,B)=>{B++;let M=0;while(B<q.length){let I=q[B];if(I[0]==="("||I[0]==="["||I[0]==="{")M++;if(I[0]===")"||I[0]==="]"||I[0]==="}"){if(M===0)break;M--}if(M===0&&I[1]===",")break;B++}return B},D=(q,B)=>{let M=[],I=!1,H=B+1,S=1;while(H<q.length&&S>0){if(q[H][0]==="{")S++;if(q[H][0]==="}")S--;if(S<=0){H++;break}if(q[H][0]==="..."||q[H][0]==="SPREAD"){if(H++,q[H]?.[0]==="IDENTIFIER")M.push({kind:"rest",propName:q[H][1]}),H++;continue}if(q[H][0]==="PROPERTY"&&q[H+1]?.[0]===":"){let L=q[H][1];if(H+=2,q[H]?.[0]==="{"){let C=D(q,H);if(C.hasAnyType)I=!0;M.push({kind:"nested-obj",propName:L,inner:C}),H=C.endJ;continue}if(q[H]?.[0]==="["){let C=w(q,H);if(C.hasAnyType)I=!0;M.push({kind:"nested-arr",propName:L,inner:C}),H=C.endJ;continue}if(q[H]?.[0]==="IDENTIFIER"){let C=q[H][1],E=q[H].data?.type;if(E)I=!0;let n=q[H+1]?.[0]==="=";if(M.push({kind:"rename",propName:L,localName:C,type:E?_1(E):null,hasDefault:n}),H++,n)H=K(q,H)}continue}if(q[H][0]==="IDENTIFIER"){let L=q[H][1],C=q[H].data?.type;if(C)I=!0;let E=q[H+1]?.[0]==="=";if(M.push({kind:"simple",propName:L,type:C?_1(C):null,hasDefault:E}),H++,E)H=K(q,H);continue}H++}let N=[],V=[];for(let L of M)if(L.kind==="rest")N.push(`...${L.propName}`),V.push("[key: string]: unknown");else if(L.kind==="nested-obj"||L.kind==="nested-arr")N.push(`${L.propName}: ${L.inner.patternStr}`),V.push(`${L.propName}: ${L.inner.typeStr}`);else if(L.kind==="rename")N.push(`${L.propName}: ${L.localName}`),V.push(`${L.propName}${L.hasDefault?"?":""}: ${L.type||"any"}`);else N.push(L.propName),V.push(`${L.propName}${L.hasDefault?"?":""}: ${L.type||"any"}`);return{patternStr:`{${N.join(", ")}}`,typeStr:`{${V.join(", ")}}`,endJ:H,hasAnyType:I}},w=(q,B)=>{let M=[],I=[],H=!1,S=B+1,N=1;while(S<q.length&&N>0){if(q[S][0]==="[")N++;if(q[S][0]==="]")N--;if(N>0&&q[S][0]==="IDENTIFIER"){let V=q[S][1],L=q[S].data?.type;if(M.push(V),I.push(L?_1(L):null),L)H=!0}S++}return{patternStr:`[${M.join(", ")}]`,typeStr:`[${I.map((V)=>V||"any").join(", ")}]`,endJ:S,hasAnyType:H}},A=(q,B)=>{let M=[],I=[],H=B,S=q[H]?.[0];if(S!=="CALL_START"&&S!=="PARAM_START")return{params:M,fields:I,endIdx:H};let N=S==="CALL_START"?"CALL_END":"PARAM_END";H++;let V=0;while(H<q.length&&!(q[H][0]===N&&V===0)){let L=q[H];if(L[1]===","&&V===0){H++;continue}if(L[0]==="{"||L[0]==="["||L[0]==="CALL_START"||L[0]==="PARAM_START"||L[0]==="INDEX_START")V++;if(L[0]==="}"||L[0]==="]"||L[0]==="CALL_END"||L[0]==="PARAM_END"||L[0]==="INDEX_END"){V--,H++;continue}if(L[0]==="@"){if(H++,q[H]?.[0]==="PROPERTY"||q[H]?.[0]==="IDENTIFIER"){let C=q[H][1],E=q[H].data?.type;if(M.push(E?`${C}: ${_1(E)}`:C),E)I.push({name:C,type:_1(E)});H++}continue}if(L[0]==="SPREAD"||L[1]==="..."){if(H++,q[H]?.[0]==="IDENTIFIER"){let C=q[H][1],E=q[H].data?.type;M.push(E?`...${C}: ${_1(E)}`:`...${C}: any[]`),H++}continue}if(L[0]==="{"){V--;let C=D(q,H);if(H=C.endJ,C.hasAnyType)M.push(`${C.patternStr}: ${C.typeStr}`);else M.push(C.patternStr);continue}if(L[0]==="["){V--;let C=w(q,H);if(H=C.endJ,C.hasAnyType)M.push(`${C.patternStr}: ${C.typeStr}`);else M.push(C.patternStr);continue}if(L[0]==="IDENTIFIER"){let C=L[1],E=L.data?.type,n=!1;if(q[H+1]?.[0]==="=")n=!0;let T=n||L.data?.predicate;if(E)M.push(`${C}${T?"?":""}: ${_1(E)}`);else M.push(C);if(H++,n){H++;let j=0;while(H<q.length){let y=q[H];if(y[0]==="("||y[0]==="["||y[0]==="{")j++;if(y[0]===")"||y[0]==="]"||y[0]==="}")j--;if(j===0&&(y[1]===","||y[0]==="CALL_END"))break;H++}}continue}H++}return{params:M,fields:I,endIdx:H}};for(let q=0;q<u.length;q++){let B=u[q],M=B[0],I=!1;if(M==="EXPORT"){if(I=!0,q++,q>=u.length)break;if(B=u[q],M=B[0],M==="DEFAULT"){if(q++,q>=u.length)break;if(B=u[q],M=B[0],M==="IDENTIFIER")W.push(`${F()}export default ${B[1]};`);continue}}if(M==="IMPORT"){let H=[],S=q+1;while(S<u.length&&u[S][0]!=="TERMINATOR")H.push(u[S]),S++;let N="import "+H.map((V)=>V[1]).join(" ");N=N.replace(/\s+/g," ").replace(/\s*,\s*/g,", ").replace(/\{\s*/g,"{ ").replace(/\s*\}/g," }").trim(),W.push(`${F()}${N};`),q=S;continue}if(M==="TYPE_DECL"){let H=B.data;if(!H)continue;let S=I||H.exported?"export ":"",N=H.typeParams||"";if(H.kind==="overload"){let V=H.overloadTokens,L=V[1],{params:C}=A(V,2),E=L.data?.returnType,n=E?`: ${_1(E)}`:"",T=Y?"":S?"":"declare ",j=H.typeParams||"";if(Y)W.push(`${F()}${H.name}${j}(${C.join(", ")})${n};`);else W.push(`${F()}${S}${T}function ${H.name}${j}(${C.join(", ")})${n};`)}else if(H.kind==="interface"){let V=H.extends?` extends ${H.extends}`:"";X(`${S}interface ${H.name}${N}${V} `,H.typeText||"{}","")}else{let V=_1(H.typeText||"");X(`${S}type ${H.name}${N} = `,V,";")}continue}if(M==="ENUM"){let H=I?"export ":"",S=u[q+1];if(!S)continue;let N=S[1],V=q+2;if(u[V]?.[0]==="INDENT"){W.push(`${F()}${H}enum ${N} {`),f++,V++;let L=[];while(V<u.length&&u[V][0]!=="OUTDENT"){if(u[V][0]==="TERMINATOR"){V++;continue}if(u[V][0]==="IDENTIFIER"){let C=u[V][1];if(V++,u[V]?.[1]==="="){V++;let E=u[V]?.[1];L.push(`${C} = ${E}`),V++}else L.push(C)}else V++}for(let C=0;C<L.length;C++){let E=C<L.length-1?",":"";W.push(`${F()}${L[C]}${E}`)}f--,W.push(`${F()}}`)}continue}if(M==="CLASS"){let H=I?"export ":"",S=u[q+1];if(!S)continue;let N=S[1],V="",L=q+2;if(u[L]?.[0]==="EXTENDS")V=` extends ${u[L+1]?.[1]||""}`,L+=2;if(u[L]?.[0]==="INDENT"){let C=!1,E=L+1;while(E<u.length&&u[E][0]!=="OUTDENT"){if(u[E].data?.type||u[E].data?.returnType){C=!0;break}E++}if(C)W.push(`${F()}${H}declare class ${N}${V} {`),Y=!0,Z.clear(),f++}continue}if(M==="DEF"){let H=u[q+1];if(!H)continue;let S=H[1],N=H.data?.returnType;if(!N&&H.data?.await===!0)N="void";let V=H.data?.typeParams||"",{params:L,endIdx:C}=A(u,q+2);if(N||L.some((E)=>E.includes(":"))){let E=I?"export ":"",n=Y?"":I?"":"declare ",T=N?`: ${_1(N)}`:"",j=L.join(", ");if(Y)W.push(`${F()}${S}${V}(${j})${T};`);else W.push(`${F()}${E}${n}function ${S}${V}(${j})${T};`)}q=C;continue}if(M==="{"&&Y){let H=q+1,S=1;while(H<u.length&&S>0){let N=u[H];if(N[0]==="{"){S++,H++;continue}if(N[0]==="}"){S--,H++;continue}if(N[0]==="TERMINATOR"){H++;continue}if(N[0]==="PROPERTY"&&S===1){let V=N[1],L=N.data?.returnType;if(H++,u[H]?.[1]===":")H++;let C=[],E=[];if(u[H]?.[0]==="PARAM_START"){let n=A(u,H);C=n.params,E=n.fields,H=n.endIdx+1}if(u[H]?.[0]==="->"||u[H]?.[0]==="=>")H++;if(u[H]?.[0]==="INDENT"){let n=1;H++;while(H<u.length&&n>0){if(u[H][0]==="INDENT")n++;if(u[H][0]==="OUTDENT")n--;H++}}if(L||C.some((n)=>n.includes(":"))){let n=L?`: ${_1(L)}`:"",T=C.join(", ");if(V==="constructor"&&E.length){for(let j of E)if(!Z.has(j.name))W.push(`${F()}${j.name}: ${j.type};`),Z.add(j.name)}W.push(`${F()}${V}(${T})${n};`)}continue}H++}q=H-1;continue}if(M==="INDENT")continue;if(M==="OUTDENT"){if(Y)f--,W.push(`${F()}}`),Y=!1;continue}if(M==="IDENTIFIER"&&!Y&&u[q+1]?.[0]==="="&&(u[q+2]?.[0]==="PARAM_START"||u[q+2]?.[0]==="(")){let H=B[1],S=q+2,{params:N}=A(u,S),V=S,L=0;while(V<u.length){if(u[V][0]==="PARAM_START"||u[V][0]==="(")L++;if(u[V][0]==="PARAM_END"||u[V][0]===")")L--;if(L===0&&(u[V][0]==="->"||u[V][0]==="=>"))break;V++}let C=u[V]?.data?.returnType;if(C||N.some((E)=>E.includes(":"))){let E=I?"export ":"",n=I?"":"declare ",T=C?`: ${_1(C)}`:"",j=N.join(", ");W.push(`${F()}${E}${n}function ${H}(${j})${T};`);continue}}if(M==="IDENTIFIER"&&B.data?.type){let H=B[1],S=_1(B.data.type),N=u[q+1];if(N){let V=I?"export ":"",L=I?"":"declare ";if(N[0]==="READONLY_ASSIGN")W.push(`${F()}${V}${L}const ${H}: ${S};`);else if(N[0]==="REACTIVE_ASSIGN")G=!0,W.push(`${F()}${V}${L}const ${H}: Signal<${S}>;`);else if(N[0]==="COMPUTED_ASSIGN")Q=!0,W.push(`${F()}${V}${L}const ${H}: Computed<${S}>;`);else if(N[0]==="EFFECT")W.push(`${F()}${V}${L}const ${H}: () => void;`);else if(N[0]==="="){let C=q+2;if(u[C]?.[0]==="PARAM_START"){let n=1,T=C+1;while(T<u.length&&n>0){if(u[T][0]==="PARAM_START")n++;if(u[T][0]==="PARAM_END")n--;T++}C=T}let E=u[C];if(E&&(E[0]==="->"||E[0]==="=>")&&E.data?.returnType){let n=_1(E.data.returnType),{params:T}=A(u,q+2),j=T.join(", ");W.push(`${F()}${V}${L}function ${H}(${j}): ${n};`)}else if(Y)W.push(`${F()}${H}: ${S};`),Z.add(H);else W.push(`${F()}${V}let ${H}: ${S};`)}else if(Y)W.push(`${F()}${H}: ${S};`),Z.add(H)}else if(Y)W.push(`${F()}${H}: ${S};`)}}let R=new Set,O=!1;if(U){if(z=G2(U,W,F,f,R,J)||z,R.size>0)for(let B=W.length-1;B>=0;B--){let M=W[B].match(/(?:declare |export )*(?:const|let) (\w+)/);if(M&&R.has(M[1]))W.splice(B,1)}let q=[];if(O=x2(U,q),O){let B=new Set;for(let M of q){let I=M.match(/(?:declare |export )*const (\w+)/);if(I)B.add(I[1])}for(let M=W.length-1;M>=0;M--){let I=W[M].match(/(?:declare |export )*(?:const|let) (\w+)/);if(I&&B.has(I[1]))W.splice(M,1)}W.push(...q)}}if(W.length===0)return null;let P=[];if(z)P.push(...k4);if(/\bARIA\./.test(_))P.push(...i4);if(G)P.push(d4),P.push(p4);if(Q)P.push(n4),P.push(o4);if(G||Q)P.push(a4);if(O)P.push(...c2);if(P.length>0)P.push("");return P.concat(W).join(`
|
|
3
1245
|
`)+`
|
|
4
|
-
`}function _1(
|
|
5
|
-
`),
|
|
6
|
-
`+
|
|
7
|
-
`)this.row++,this.col=0;else this.col++;this.pos+=
|
|
8
|
-
`)return 0;let
|
|
9
|
-
`);if(this.isUnfinished()){if(_<this.indent&&/^\s*,/.test(this.chunk)&&!
|
|
10
|
-
`,{len:0})}isUnfinished(){if(this.inRenderBlock&&
|
|
11
|
-
`)
|
|
12
|
-
`)}if($===0&&w?.length===3)A=A.replace(/^\n/,"");if($===f.length-1&&w?.length===3)A=A.replace(/\n[^\S\n]*$/,"");if(u)A=A.replace(/\\([nrtbfv0\\'"`xu])/g,"\\\\$1");this.emit("STRING",`"${A}"`,{len:F.length,data:{quote:w}})}}if(f.length>1)this.emit("STRING_END",")",{len:w?.length||0});return U}numberToken(){let f=e3.exec(this.chunk);if(!f)return 0;let w=f[0],_=w.length,U={row:this.row,col:this.col};if(/^0[BOX]/.test(w))G1(`radix prefix in '${w}' must be lowercase`,{...U,col:U.col+1});if(/^0\d*[89]/.test(w))G1(`decimal literal '${w}' must not be prefixed with '0'`,{...U,len:_});if(/^0\d+/.test(w))G1(`octal literal '${w}' must be prefixed with '0o'`,{...U,len:_});let u=D4(w),$=u===1/0?"INFINITY":"NUMBER",W={parsedValue:u};if($==="INFINITY")W.original=w;return this.emit($,w,{len:_,data:W}),_}regexToken(){let f=this.matchWithInterpolations(Q4,"///");if(f){let{tokens:G,index:Y}=f,[Z]=j2.exec(this.chunk.slice(Y)),Q=Y+Z.length;if(G.length===1||!G.some((K)=>K[0]==="TOKENS")){let K=(G[0]?.[1]||"").replace(/(?<!\\)\//g,"\\/");this.emit("REGEX",`/${K}/${Z}`,{len:Q,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(G,{quote:"///",endOffset:Q-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 Q}let w=Z4.exec(this.chunk);if(!w)return 0;let[_,U,u]=w,$=this.prev();if($){if($.spaced&&l1.has($[0])&&(!u||/^\/=?\s/.test(_)))return 0;if(p3.has($[0])&&!($.spaced&&l1.has($[0])))return 0}if(!u)G1("missing / (unclosed regex)",{row:this.row,col:this.col});let W=_.length,[F]=j2.exec(this.chunk.slice(W)),A=W+F.length;if(!z4.test(F))G1(`invalid regular expression flags ${F}`,{row:this.row,col:this.col+W,len:F.length});return this.emit("REGEX",`/${U}/${F}`,{len:A,data:{delimiter:"/"}}),A}jsToken(){if(this.chunk[0]!=="`")return 0;let f=X4.exec(this.chunk)||K4.exec(this.chunk);if(!f)return 0;let w=f[1],_=f[0].length;return this.emit("JS",w,{len:_,data:{here:f[0].startsWith("```")}}),_}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,U=_!==f,u=1,$=3;while($<this.chunk.length&&u>0){let G=this.chunk[$];if(G==="\\"){$+=2;continue}if(U&&G===f)u++;if(G===_)u--;if(u>0)$++}if(u!==0)return 0;let W=this.chunk.slice(3,$),F=$+1,A=[];if(W.trim()){let G=W.trim().split(/(?<!\\)\s+/);for(let Y of G)A.push(Y.replace(/\\ /g," "))}this.emit("[","[",{len:F});for(let G=0;G<A.length;G++){if(G>0)this.emit(",",",");this.emit("STRING",`"${A[G]}"`)}return this.emit("]","]"),F}literalToken(){let f=this.wordLiteral();if(f)return f;let w=u4.exec(this.chunk),_=w?w[0]:this.chunk.charAt(0),U=_,u=this.prev();if(_4.test(_))this.tagParameters();if(_==="="&&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 F=$.slice(W,$.length-1);u[0]="=",u[1]="=";for(let A of F)this.tokens.push(x1(A[0],A[1],{pre:0,row:A[2],col:A[3],len:A[4]}));return this.tokens.push(x1(".",".",{pre:0,row:this.row,col:this.col,len:1})),_.length}}if(u&&(_==="="||h2.has(_))){if(_==="="&&(u[1]==="||"||u[1]==="&&"||u[1]==="??")&&!u.spaced)return u[0]="COMPOUND_ASSIGN",u[1]+="=",_.length}if(_==="("&&u?.[0]==="IMPORT")u[0]="DYNAMIC_IMPORT";if(_==="{"&&this.seenImport)this.importSpecifierList=!0;if(_==="}"&&this.importSpecifierList)this.importSpecifierList=!1;if(_==="{"&&u?.[0]==="EXPORT")this.exportSpecifierList=!0;if(_==="}"&&this.exportSpecifierList)this.exportSpecifierList=!1;if(_===";")this.seenFor=this.seenImport=this.seenExport=!1,this.inTypeAnnotation=!1,U="TERMINATOR";else if(_==="|>")U="PIPE";else if(_==="::"&&/^[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="BIND";else if(_==="~>")U="EFFECT",this.inTypeAnnotation=!1;else if(_==="=!")U="READONLY_ASSIGN",this.inTypeAnnotation=!1;else if(_==="*>"&&(!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 A=W[1];this.emit("IDENTIFIER","Object"),this.emit(".",".");let G=this.emit("PROPERTY","assign");return G.spaced=!0,this.emit("@","@"),this.emit(",",","),3+A.length+1}let F=/^(@?(?:(?!\s)[$\w\x7f-\uffff])+(?:\.[a-zA-Z_$][\w]*)*)(\s*)=(?!=)/.exec($);if(F){let A=F[1],G=F[2],Y=A[0]==="@",Z=Y?A.slice(1):A,Q=Z?Z.split("."):[],K=()=>{if(Y){if(this.emit("@","@"),Q.length>0)this.emit("PROPERTY",Q[0])}else this.emit("IDENTIFIER",Q[0]);for(let H=1;H<Q.length;H++)this.emit(".","."),this.emit("PROPERTY",Q[H])};K(),this.emit("=","="),this.emit("IDENTIFIER","Object"),this.emit(".","."),this.emit("PROPERTY","assign"),this.emit("CALL_START","("),K(),this.emit("COMPOUND_ASSIGN","??="),this.emit("{","{"),this.emit("}","}"),this.emit(",",",");let D=this.prev();return D.mergeClose=!0,2+A.length+G.length+1}}else if(_==="*"&&u?.[0]==="EXPORT")U="EXPORT_ALL";else if(o3.has(_))U="MATH";else if(a3.has(_))U="COMPARE";else if(h2.has(_))U="COMPOUND_ASSIGN";else if(s3.has(_))U="UNARY_MATH";else if(r3.has(_))U="SHIFT";else if(_==="?"&&u?.spaced)U="TERNARY";else if(_==="?!"&&u&&!u.spaced)U="PRESENCE";else if(_==="?"&&(this.chunk[1]==="["||this.chunk[1]==="("))U="?.";else if(u){if(_==="("&&!u.spaced&&l1.has(u[0])){if(u[0]==="?.")u[0]="ES6_OPTIONAL_CALL";U="CALL_START"}if(_==="["&&!u.spaced&&$2.has(u[0])){if(U="INDEX_START",u[0]==="?.")u[0]="ES6_OPTIONAL_INDEX"}}if(this.inTypeAnnotation&&(_==="="||U==="COMPOUND_ASSIGN"))this.inTypeAnnotation=!1;if(_==="("||_==="{"||_==="[")this.ends.push({tag:k3[_],origin:[U,_]});else if(_===")"||_==="}"||_==="]")this.pair(_);return this.emit(U,_,{len:_.length}),_.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 _=this.tokens[f];if(_[0]===")")w.push(_);else if(_[0]==="("||_[0]==="CALL_START")if(w.length)w.pop();else if(_[0]==="(")return _[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.rewriteMapLiterals(),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)}rewriteMapLiterals(){let f=this.tokens;for(let w=0;w<f.length;w++){if(f[w][0]!=="MATH"||f[w][1]!=="*")continue;let _=f[w+1];if(!_||_[0]!=="{")continue;if(f[w].spaced||f[w].newLine)continue;let U=f[w-1];if(U&&$2.has(U[0]))continue;f.splice(w,1),f[w][0]="MAP_START";let u=1;for(let $=w+1;$<f.length&&u>0;$++){let W=f[$][0];if(W==="{"||W==="MAP_START")u++;if(W==="}"){if(u--,u===0)f[$][0]="MAP_END"}}}}closeOpenCalls(){this.scanTokens((f,w)=>{if(f[0]==="CALL_START")this.detectEnd(w+1,(_)=>_[0]===")"||_[0]==="CALL_END",(_)=>_[0]="CALL_END");return 1})}closeOpenIndexes(){this.scanTokens((f,w)=>{if(f[0]==="INDEX_START")this.detectEnd(w+1,(_)=>_[0]==="]"||_[0]==="INDEX_END",(_,U)=>{if(this.tokens[U+1]?.[0]===":")f[0]="[",_[0]="]";else _[0]="INDEX_END"});return 1})}normalizeLines(){let f=null,w=null,_=null,U=($,W)=>{return $[1]!==";"&&d3.has($[0])&&!($[0]==="TERMINATOR"&&L2.has(this.tokens[W+1]?.[0]))&&!($[0]==="ELSE"&&f!=="THEN")||$[0]==="INDENT"&&!$.generated&&(f==="->"||f==="=>")||$[0]===","&&(f==="->"||f==="=>")&&!this.commaInImplicitCall(W)&&!this.commaInImplicitObject(W)||V2.has($[0])&&(this.tokens[W-1]?.newLine||this.tokens[W-1]?.[0]==="OUTDENT")},u=($,W)=>{let F=this.tokens[W-1]?.[0]===","?W-1:W;this.tokens.splice(F,0,_)};this.scanTokens(($,W,F)=>{let[A]=$;if(A==="TERMINATOR"){if(this.tokens[W+1]?.[0]==="ELSE"&&this.tokens[W-1]?.[0]!=="OUTDENT")return F.splice(W,1,...this.makeIndentation()),1;if(L2.has(this.tokens[W+1]?.[0]))return F.splice(W,1),0}if(A==="CATCH")for(let G=1;G<=2;G++){let Y=this.tokens[W+G]?.[0];if(Y==="OUTDENT"||Y==="TERMINATOR"||Y==="FINALLY")return F.splice(W+G,0,...this.makeIndentation()),2+G}if((A==="->"||A==="=>")&&(this.tokens[W+1]?.[0]===","||this.tokens[W+1]?.[0]==="]"))return[w,_]=this.makeIndentation(),F.splice(W+1,0,w,_),1;if(T2.has(A)&&this.tokens[W+1]?.[0]!=="INDENT"&&!(A==="ELSE"&&this.tokens[W+1]?.[0]==="IF")&&!(A==="ELSE"&&this.tokens[W-1]?.[0]!=="OUTDENT")){if(f=A,[w,_]=this.makeIndentation(),A==="THEN")w.fromThen=!0;if(F.splice(W+1,0,w),A==="THEN"&&this.singleLineOwner(W)==="LEADING_WHEN")this.detectWhenThenEnd(W+2,U,u);else this.detectEnd(W+2,U,u);if(A==="THEN")F.splice(W,1);return 1}return 1})}singleLineOwner(f){let w=new Set(["LEADING_WHEN","IF","POST_IF","UNLESS","POST_UNLESS","ELSE","CATCH","TRY","FINALLY","->","=>"]);for(let _=f-1;_>=0;_--){let U=this.tokens[_],u=U?.[0];if(w.has(u))return u;if(E1.has(u)||U?.newLine)return null}return null}detectWhenThenEnd(f,w,_){let U=0,u=0;while(f<this.tokens.length){let $=this.tokens[f],W=$[0];if(U===0){if(W==="THEN"&&this.singleLineOwner(f)!=="LEADING_WHEN")u++;else if(W==="ELSE"&&u>0)u--;else if(w.call(this,$,f))return _.call(this,$,f)}if(X1.has(W))U++;if(z1.has(W))U--;if(U<0)return _.call(this,$,f);f++}}tagPostfixConditionals(){let f=null,w=(U,u)=>{return U[0]==="TERMINATOR"||U[0]==="INDENT"&&!T2.has(this.tokens[u-1]?.[0])},_=(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,w,_),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 _=f[w-1];if(_&&i3.has(_[0])){if(f.splice(w,1),_.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[$]=_,W=u[U-1]||[],F=u[U+1]||[],[A]=W,[G]=F,Y=U,Z=(O)=>U-Y+O,Q=()=>f[f.length-1],K=(O)=>O?.[2]?.ours,D=()=>K(Q())&&Q()?.[0]==="(",H=()=>K(Q())&&Q()?.[0]==="{",J=(O)=>{f.push(["(",O,{ours:!0}]),u.splice(O,0,Y1("CALL_START","("))},z=()=>{f.pop(),u.splice(U,0,Y1("CALL_END",")")),U+=1},q=(O,M={})=>{f.push(["{",O,{sameLine:!0,startsLine:M.startsLine??!0,ours:!0}]);let P=Y1("{","{");if(!P.data)P.data={};P.data.generated=!0,u.splice(O,0,P)},R=(O)=>{O=O??U,f.pop(),u.splice(O,0,Y1("}","}")),U+=1};if((D()||H())&&n3.has($))return f.push(["CONTROL",U,{ours:!0}]),Z(1);if($==="INDENT"&&K(Q())){if(A!=="=>"&&A!=="->"&&A!=="["&&A!=="("&&A!==","&&A!=="{"&&A!=="ELSE"&&A!=="=")while(D()||H()&&A!==":")if(D())z();else R();if(Q()?.[2]?.ours&&Q()[0]==="CONTROL")f.pop();return f.push([$,U]),Z(1)}if(X1.has($))return f.push([$,U]),Z(1);if(z1.has($)){while(K(Q()))if(D())z();else if(H())R();else f.pop();f.pop()}if(u2.has($)&&_.spaced&&(g1.has(G)||G==="..."&&g1.has(u[U+2]?.[0])||l3.has(G)&&!F.spaced&&!F.newLine)&&!(($==="]"||$==="}")&&(G==="->"||G==="=>")))return J(U+1),Z(2);if(u2.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 J(U+1),f.push(["INDENT",U+2]),Z(3);if($==="TERNARY")w=!0;if($===":"){if(w)return w=!1,Z(1);if(u[U-1]?.[0]==="PROPERTY"&&u[U-2]?.[0]==="."){let P=U-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 E=[];for(let N=P;N<U;N+=2)E.push(u[N][1]);let S=Y1("STRING",`"${E.join(".")}"`,u[P]);S.pre=u[P].pre,S.spaced=u[P].spaced,S.newLine=u[P].newLine,S.loc=u[P].loc,u.splice(P,U-P,S),U=P+1}}let O=z1.has(this.tokens[U-1]?.[0])?f[f.length-1]?.[1]??U-1:U-1;if(this.tokens[U-2]?.[0]==="@")O=U-2;let M=O<=0||E1.has(this.tokens[O-1]?.[0])||this.tokens[O-1]?.newLine;if(Q()){let[P,E]=Q(),S=f[f.length-2],N=(L)=>L==="{"||L==="MAP_START";if((N(P)||P==="INDENT"&&N(S?.[0])&&!K(S))&&(M||this.tokens[O-1]?.[0]===","||N(this.tokens[O-1]?.[0])||N(this.tokens[O]?.[0])))return Z(1)}return q(O,{startsLine:!!M}),Z(2)}if(E1.has($))for(let O=f.length-1;O>=0;O--){if(!K(f[O]))break;if(f[O][0]==="{")f[O][2].sameLine=!1}let X=A==="OUTDENT"||W.newLine,B=$==="||"||$==="&&",I=!1;if(B){let O=U+1,M=u[O]?.[0];if(M==="("||M==="["||M==="{"){for(let P=1;++O<u.length&&P>0;)if(M=u[O][0],M==="("||M==="["||M==="{")P++;else if(M===")"||M==="]"||M==="}")P--}else if(M&&M!=="TERMINATOR"&&M!=="OUTDENT"&&M!==",")O++;I=u[O]?.[0]===","}if(x3.has($)&&!I||V2.has($)&&X)while(K(Q())){let[O,,{sameLine:M,startsLine:P}]=Q();if(D()&&A!==",")z();else if(H()&&!B&&M&&$!=="TERMINATOR"&&A!==":")R();else if(H()&&$==="TERMINATOR"&&A!==","&&!(P&&this.looksObjectish(U+1)))R();else if(Q()?.[2]?.ours&&Q()[0]==="CONTROL"&&u[Q()[1]]?.[0]==="CLASS"&&$==="TERMINATOR")f.pop();else break}if($===","&&!this.looksObjectish(U+1)&&H()&&(G!=="TERMINATOR"||!this.looksObjectish(U+2))){let O=G==="OUTDENT"?1:0;while(H())R(U+O)}return Z(1)})}addImplicitCallCommas(){let f=0,w=0,_=this.tokens;while(w<_.length){let U=_[w][0],u=w>0?_[w-1][0]:null;if(U==="CALL_START"||U==="(")f++;if(U==="CALL_END"||U===")")f--;if(f>0&&(U==="->"||U==="=>")&&m3.has(u))_.splice(w,0,Y1(",",",")),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 _.call(this,$,f);if(X1.has($[0]))u++;if(z1.has($[0]))u--;if(u<0){if(U.returnOnNegativeLevel)return;return _.call(this,$,f)}f++}}closeMergeAssignments(){let f=this.tokens;for(let w=0;w<f.length;w++){if(!f[w].mergeClose)continue;let _=0;for(let U=w+1;U<f.length;U++){let u=f[U][0];if(u==="("||u==="["||u==="{"||u==="CALL_START"||u==="INDEX_START"||u==="INDENT")_++;if(u===")"||u==="]"||u==="}"||u==="CALL_END"||u==="INDEX_END"||u==="OUTDENT")_--;if(_<0||_===0&&u==="TERMINATOR"){f.splice(U,0,Y1("CALL_END",")",f[U-1]));break}if(U===f.length-1){f.splice(U+1,0,Y1("CALL_END",")",f[U]));break}}}}commaInImplicitCall(f){let w=0;for(let _=f-1;_>=0;_--){let U=this.tokens[_][0];if(z1.has(U)){w++;continue}if(X1.has(U)){if(U==="INDENT")return!1;if(w--,w<0)return!1;continue}if(w>0)continue;if(u2.has(U)&&this.tokens[_].spaced){let u=this.tokens[_+1]?.[0];return g1.has(u)||u==="..."&&g1.has(this.tokens[_+2]?.[0])}}return!1}commaInImplicitObject(f){let w=0;for(let _=f-1;_>=0;_--){let U=this.tokens[_][0];if(z1.has(U)){w++;continue}if(X1.has(U)){if(w--,w<0)return!1;continue}if(w>0)continue;if(U===":"&&_>0&&this.tokens[_-1][0]==="PROPERTY")return this.looksObjectish(f+1);if(E1.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((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(X1.has(this.tokens[f]?.[0])){let w=null;if(this.detectEnd(f+1,(_)=>z1.has(_[0]),(_,U)=>w=U),w&&this.tokens[w+1]?.[0]===":")return!0}return!1}findTagsBackwards(f,w){let _=new Set(w),U=[];while(f>=0){let u=this.tokens[f]?.[0];if(!U.length&&_.has(u))return!0;if(z1.has(u))U.push(u);if(X1.has(u)&&U.length)U.pop();if(!U.length&&(X1.has(u)&&!this.tokens[f]?.generated||E1.has(u)))break;f--}return!1}makeIndentation(f){let w=Y1("INDENT",2),_=Y1("OUTDENT",2);if(f)w.generated=_.generated=!0,w.origin=_.origin=f;else w.explicit=_.explicit=!0;return[w,_]}}I2(J1);var H4={symbolIds:{$accept:0,$end:1,error:2,Root:3,Body:4,Line:5,TERMINATOR:6,Expression:7,ExpressionLine:8,Statement:9,Return:10,STATEMENT:11,Import:12,Export:13,Value:14,Code:15,Operation:16,Assign:17,ReactiveAssign:18,ComputedAssign:19,ReadonlyAssign:20,Effect:21,If:22,Try:23,While:24,For:25,Switch:26,Class:27,Component:28,Render:29,Throw:30,Yield:31,Def:32,Enum:33,CodeLine:34,OperationLine:35,Assignable:36,Literal:37,Parenthetical:38,Range:39,Invocation:40,DoIife:41,This:42,Super:43,MetaProperty:44,MapLiteral: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,REACTIVE_ASSIGN:75,COMPUTED_ASSIGN:76,Block:77,READONLY_ASSIGN:78,EFFECT:79,SimpleAssignable:80,Array:81,Object:82,ThisProperty:83,".":84,"?.":85,INDEX_START:86,INDEX_END:87,Slice:88,ES6_OPTIONAL_INDEX:89,"{":90,ObjAssignable:91,":":92,FOR:93,ForVariables:94,FOROF:95,OptComma:96,"}":97,WHEN:98,OWN:99,AssignList:100,AssignObj:101,ObjRestValue:102,SimpleObjAssignable:103,"[":104,"]":105,"@":106,"...":107,ObjSpreadExpr:108,SUPER:109,Arguments:110,DYNAMIC_IMPORT:111,MAP_START:112,MAP_END:113,MapAssignList:114,MapAssignObj:115,MapAssignable:116,Elisions:117,ArgElisionList:118,OptElisions:119,ArgElision:120,Arg:121,Elision:122,RangeDots:123,"..":124,DEF:125,CALL_START:126,ParamList:127,CALL_END:128,PARAM_START:129,PARAM_END:130,FuncGlyph:131,"->":132,"=>":133,Param:134,ParamVar:135,Splat:136,ES6_OPTIONAL_CALL:137,ArgList:138,SimpleArgs:139,THIS:140,NEW_TARGET:141,IMPORT_META:142,"(":143,")":144,RETURN:145,THROW:146,YIELD:147,FROM:148,IfBlock:149,IF:150,ELSE:151,UnlessBlock:152,UNLESS:153,POST_IF:154,POST_UNLESS:155,TRY:156,Catch:157,FINALLY:158,CATCH:159,SWITCH:160,Whens:161,When:162,LEADING_WHEN:163,WhileSource:164,WHILE:165,UNTIL:166,Loop:167,LOOP:168,FORIN:169,BY:170,FORAS:171,AWAIT:172,FORASAWAIT:173,ForValue:174,CLASS:175,EXTENDS:176,ENUM:177,COMPONENT:178,ComponentBody:179,ComponentLine:180,OFFER:181,ACCEPT:182,RENDER:183,IMPORT:184,ImportDefaultSpecifier:185,ImportNamespaceSpecifier:186,ImportSpecifierList:187,ImportSpecifier:188,AS:189,DEFAULT:190,IMPORT_ALL:191,EXPORT:192,ExportSpecifierList:193,EXPORT_ALL:194,ExportSpecifier:195,UNARY:196,DO:197,DO_IIFE:198,UNARY_MATH:199,"-":200,"+":201,"?":202,PRESENCE:203,"--":204,"++":205,MATH:206,"**":207,SHIFT:208,COMPARE:209,"&":210,"^":211,"|":212,"||":213,"??":214,"&&":215,PIPE:216,RELATION:217,TERNARY:218,COMPOUND_ASSIGN:219},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:"REACTIVE_ASSIGN",76:"COMPUTED_ASSIGN",78:"READONLY_ASSIGN",79:"EFFECT",84:".",85:"?.",86:"INDEX_START",87:"INDEX_END",89:"ES6_OPTIONAL_INDEX",90:"{",92:":",93:"FOR",95:"FOROF",97:"}",98:"WHEN",99:"OWN",104:"[",105:"]",106:"@",107:"...",109:"SUPER",111:"DYNAMIC_IMPORT",112:"MAP_START",113:"MAP_END",124:"..",125:"DEF",126:"CALL_START",128:"CALL_END",129:"PARAM_START",130:"PARAM_END",132:"->",133:"=>",137:"ES6_OPTIONAL_CALL",140:"THIS",141:"NEW_TARGET",142:"IMPORT_META",143:"(",144:")",145:"RETURN",146:"THROW",147:"YIELD",148:"FROM",150:"IF",151:"ELSE",153:"UNLESS",154:"POST_IF",155:"POST_UNLESS",156:"TRY",158:"FINALLY",159:"CATCH",160:"SWITCH",163:"LEADING_WHEN",165:"WHILE",166:"UNTIL",168:"LOOP",169:"FORIN",170:"BY",171:"FORAS",172:"AWAIT",173:"FORASAWAIT",175:"CLASS",176:"EXTENDS",177:"ENUM",178:"COMPONENT",181:"OFFER",182:"ACCEPT",183:"RENDER",184:"IMPORT",189:"AS",190:"DEFAULT",191:"IMPORT_ALL",192:"EXPORT",194:"EXPORT_ALL",196:"UNARY",197:"DO",198:"DO_IIFE",199:"UNARY_MATH",200:"-",201:"+",202:"?",203:"PRESENCE",204:"--",205:"++",206:"MATH",207:"**",208:"SHIFT",209:"COMPARE",210:"&",211:"^",212:"|",213:"||",214:"??",215:"&&",216:"PIPE",217:"RELATION",218:"TERNARY",219:"COMPOUND_ASSIGN"},parseTable:(()=>{let f=[109,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,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,-1,1,2,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,43,44,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,1,1,0,2,1,5,-2,109,5,1,5,60,2,76,-3,-3,-3,-3,-3,30,1,5,60,1,1,5,20,12,23,16,10,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-6,-6,-6,-6,-6,-6,128,-6,-6,-6,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,9,1,5,60,1,1,5,32,23,16,-7,-7,-7,-7,-7,-7,-7,-7,-7,14,1,5,60,1,1,5,32,23,16,10,1,9,1,1,-8,-8,-8,-8,-8,-8,-8,-8,-8,129,130,131,98,99,55,1,5,49,5,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,3,3,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-13,-13,134,107,108,-13,-13,-13,-13,137,138,139,-13,140,-13,-13,-13,-13,-13,-13,-13,135,-13,-13,141,-13,-13,136,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,132,133,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,46,1,5,60,1,1,5,11,1,1,1,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,142,143,144,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,9,1,5,60,1,1,5,32,23,16,-33,-33,-33,-33,-33,-33,-33,-33,-33,9,1,5,60,1,1,5,32,23,16,-34,-34,-34,-34,-34,-34,-34,-34,-34,13,1,5,60,1,1,5,32,23,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,32,23,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,32,23,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,32,23,16,10,1,10,1,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,58,1,5,54,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,145,146,147,148,149,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,53,1,5,54,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,53,1,5,54,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,53,1,5,54,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,53,1,5,54,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,53,1,5,54,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,53,1,5,54,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,53,1,5,54,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,53,1,5,54,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,53,1,5,54,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,18,6,50,1,10,1,5,8,1,1,7,14,2,1,20,1,2,4,1,-197,154,106,-197,-197,-197,156,157,155,101,159,158,153,150,-197,-197,151,152,108,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,7,2,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,161,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,162,104,105,160,54,53,73,74,95,101,60,84,88,85,86,91,67,43,44,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,105,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,163,164,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,43,44,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,105,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,166,167,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,43,44,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,45,46,69,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,168,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,174,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,175,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,176,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,177,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,47,14,1,21,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,7,14,2,3,2,1,17,2,1,1,7,1,1,1,55,179,180,181,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,178,73,74,95,101,84,88,85,86,91,169,170,92,93,87,89,90,83,173,47,14,1,21,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,7,14,2,3,2,1,17,2,1,1,7,1,1,1,55,179,180,181,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,182,73,74,95,101,84,88,85,86,91,169,170,92,93,87,89,90,83,173,61,1,5,54,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,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,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,183,184,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,185,105,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,187,186,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,162,104,105,188,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,189,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,2,67,10,162,190,2,67,10,162,191,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,14,39,17,1,24,1,1,7,4,5,5,2,29,37,2,195,154,106,156,157,155,101,192,193,84,158,197,194,196,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,198,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,199,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,92,1,5,8,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,4,3,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,1,1,11,4,1,1,1,1,1,7,1,1,1,1,7,3,1,10,1,3,1,1,2,3,22,2,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-329,-329,179,180,181,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,-329,162,-329,104,105,-329,200,202,73,74,95,-329,101,-329,-329,-329,-329,-329,84,-329,88,-329,85,86,91,-329,-329,-329,169,-329,170,92,93,87,89,90,83,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,201,173,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,2,67,109,203,204,2,67,10,162,205,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,206,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,207,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,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,1,1,1,3,6,1,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,1,1,11,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-248,-248,208,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,-248,209,-248,104,105,-248,54,53,73,74,95,-248,101,-248,-248,-248,-248,-248,84,-248,88,-248,85,86,91,-248,-248,67,-248,169,-248,170,92,93,87,89,90,83,-248,70,65,66,210,55,96,-248,56,97,-248,-248,57,61,58,-248,-248,59,100,-248,-248,-248,50,-248,62,68,63,64,71,72,171,172,173,47,48,49,51,52,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,2,56,1,211,106,2,56,1,212,106,6,15,19,95,2,1,1,214,213,43,44,92,93,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,3,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,1,1,1,3,6,1,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,1,1,11,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-245,-245,215,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,-245,216,-245,104,105,-245,54,53,73,74,95,-245,101,-245,-245,-245,-245,-245,84,-245,88,-245,85,86,91,-245,-245,67,-245,169,-245,170,92,93,87,89,90,83,-245,70,65,66,55,96,-245,56,97,-245,-245,57,61,58,-245,-245,59,100,-245,-245,-245,50,-245,62,68,63,64,71,72,171,172,173,47,48,49,51,52,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,9,55,1,1,3,1,29,95,1,5,217,221,106,107,108,220,218,219,222,62,14,1,3,1,1,1,6,1,4,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,14,2,3,2,1,13,4,2,1,1,7,1,1,1,32,2,1,12,4,4,179,180,229,230,231,232,224,225,226,227,235,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,228,106,107,108,104,105,54,236,73,74,95,223,84,88,85,86,91,67,169,170,92,93,87,89,90,83,62,68,63,233,234,173,58,1,5,54,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,58,1,5,54,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,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,53,1,5,54,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,53,1,5,54,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,53,1,5,54,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,53,1,5,54,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,53,1,5,54,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,53,1,5,54,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,53,1,5,54,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,53,1,5,54,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,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,6,2,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,237,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,238,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,43,44,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,115,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,6,1,1,1,1,7,3,11,1,1,1,2,2,1,5,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,3,1,239,248,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,245,104,105,246,54,53,73,74,95,101,60,84,240,88,250,85,86,91,241,242,244,247,243,67,43,44,92,93,249,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,4,84,2,24,16,252,253,251,141,2,110,16,254,141,53,1,5,54,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,55,1,5,52,1,1,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-230,-230,255,256,-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,-230,-230,-230,-230,-230,-230,-230,1,84,257,1,84,258,34,6,32,8,2,1,1,1,1,1,1,1,1,1,1,1,1,1,6,1,1,1,3,8,1,1,7,14,2,1,6,1,1,1,27,-145,276,267,268,271,270,269,272,273,102,103,264,106,265,256,107,108,-145,-145,104,105,-145,274,275,266,101,159,158,263,259,260,261,262,83,55,11,36,2,1,1,1,1,1,3,3,1,6,2,1,9,11,3,11,2,3,2,1,13,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,3,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,55,11,36,2,1,1,1,1,1,3,3,1,6,2,1,9,11,3,11,2,3,2,1,13,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,3,1,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,62,1,5,54,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,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,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,62,1,5,54,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,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,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,277,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,278,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,279,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,280,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,104,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,282,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,162,104,105,281,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,23,6,40,8,1,1,1,1,1,1,1,6,1,5,10,8,6,3,1,1,1,1,2,1,-110,288,102,103,290,106,291,256,107,108,-110,-110,-110,292,283,-110,284,289,293,285,286,287,294,53,1,5,54,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,53,1,5,54,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,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,53,1,5,54,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,47,14,1,21,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,7,14,2,3,2,1,17,2,1,1,7,1,1,1,55,179,180,181,34,35,36,295,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,236,73,74,95,101,84,88,85,86,91,169,170,92,93,87,89,90,83,173,64,1,5,54,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,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,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,56,1,5,54,1,2,2,1,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,6,55,5,1,1,2,1,299,107,108,296,297,298,111,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,9,1,1,1,1,7,3,11,2,3,2,1,13,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,3,1,-5,300,-5,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,-5,-5,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,43,44,92,93,87,89,90,83,-5,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,45,46,69,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,301,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,302,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,303,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,304,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,305,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,306,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,307,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,308,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,309,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,312,165,310,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,311,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,315,165,313,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,314,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,318,165,316,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,317,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,319,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,320,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,321,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,322,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,323,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,14,39,17,1,24,1,1,7,4,5,5,2,29,37,2,327,154,106,156,157,155,101,324,325,84,158,197,326,196,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,328,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,329,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,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,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,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,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,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,54,1,5,54,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,54,1,5,54,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,2,110,16,330,141,2,58,1,331,256,2,58,1,332,256,108,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,2,7,1,1,1,1,5,2,3,11,2,1,2,2,1,11,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,3,1,333,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,338,78,79,80,81,82,102,103,94,106,107,108,334,104,105,336,54,53,73,74,95,335,101,60,84,88,340,85,86,91,337,339,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,1,86,341,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,6,2,1,9,1,1,1,1,7,3,11,2,1,2,2,1,9,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,3,1,346,248,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,345,104,105,54,53,73,74,95,101,60,84,88,250,85,86,91,344,67,342,43,44,92,93,249,343,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,2,58,1,347,256,2,58,1,348,256,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,349,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,350,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,352,351,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,353,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,355,354,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,356,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,105,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,358,357,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,162,104,105,359,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,361,360,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,362,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,105,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,364,363,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,162,104,105,365,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,10,6,61,1,5,23,1,8,8,15,2,-241,-241,-241,367,368,-241,-241,-241,-241,366,6,6,61,1,5,55,2,-198,-198,-198,-198,-198,-198,7,6,61,1,5,1,54,2,-202,-202,-202,-202,369,-202,-202,15,6,50,1,10,1,5,8,1,1,7,14,2,22,2,5,-205,154,106,-205,-205,-205,156,157,155,101,159,158,-205,-205,370,11,6,61,1,5,1,21,33,2,39,2,2,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,11,6,61,1,5,1,21,33,2,39,2,2,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,11,6,61,1,5,1,21,33,2,39,2,2,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,11,6,61,1,5,1,21,33,2,39,2,2,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,2,58,1,255,256,115,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,6,1,1,1,1,7,3,11,1,1,1,2,2,1,5,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,3,1,346,248,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,245,104,105,246,54,53,73,74,95,101,60,84,240,88,250,85,86,91,241,242,244,247,243,67,43,44,92,93,249,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,53,1,5,54,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,9,1,5,60,1,1,5,32,23,16,-194,-194,-194,-194,-194,-194,-194,-194,-194,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,7,1,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,372,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,371,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,43,44,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,127,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,120,-398,-398,-398,-398,9,1,5,60,1,1,5,32,23,16,-395,-395,-395,-395,-395,-395,-395,-395,-395,5,154,1,9,1,1,129,130,131,98,99,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,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,127,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,120,-399,-399,-399,-399,9,1,5,60,1,1,5,32,23,16,-396,-396,-396,-396,-396,-396,-396,-396,-396,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,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,127,-400,-400,-400,-400,-400,-400,-400,-400,-400,113,-400,-400,-400,-400,-400,-400,120,-400,-400,-400,-400,18,6,50,1,10,1,5,8,1,1,7,14,2,1,20,1,2,4,1,-197,154,106,-197,-197,-197,156,157,155,101,159,158,153,373,-197,-197,151,152,2,67,10,162,160,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,163,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,166,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,5,15,114,2,1,1,214,169,170,92,93,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,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,127,-401,-401,-401,-401,-401,-401,-401,-401,-401,113,-401,-401,-401,-401,-401,-401,120,-401,-401,-401,-401,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,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,127,-402,-402,-402,-402,-402,-402,-402,-402,-402,113,-402,-402,-402,-402,-402,-402,120,-402,-402,-402,-402,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,127,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,120,-405,-405,-405,-405,2,82,8,374,101,58,1,5,54,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-407,-407,-87,-87,-407,-407,-407,-407,-87,-87,-87,-87,-87,-87,-87,-87,-407,-87,-407,-407,-407,-407,-407,-407,-407,-407,-407,-87,-407,-407,-87,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-87,-87,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,10,55,5,1,23,1,1,3,21,16,11,134,107,108,137,138,139,140,135,141,136,3,84,1,1,142,143,144,53,1,5,54,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,58,1,5,54,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-408,-408,-87,-87,-408,-408,-408,-408,-87,-87,-87,-87,-87,-87,-87,-87,-408,-87,-408,-408,-408,-408,-408,-408,-408,-408,-408,-87,-408,-408,-87,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-87,-87,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,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,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,377,375,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,376,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-84,-84,-84,-84,-84,-84,-84,-84,128,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,125,126,127,98,99,-84,-84,-84,-84,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,378,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,3,67,10,73,162,379,380,46,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,2,1,1,6,1,3,1,1,2,27,1,5,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,381,382,383,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,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,4,95,74,2,2,385,384,386,387,11,56,1,24,1,1,7,4,10,2,29,39,154,106,156,157,155,101,388,159,158,197,196,11,56,1,24,1,1,7,4,10,2,29,39,154,106,156,157,155,101,389,159,158,197,196,3,67,10,93,162,390,391,5,73,22,74,2,2,392,-327,-327,-327,-327,6,73,1,21,74,2,2,-325,393,-325,-325,-325,-325,22,67,26,61,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,394,128,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,3,161,1,1,395,396,397,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,398,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,60,1,5,54,1,5,1,1,5,1,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,24,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-333,-333,-87,-87,-333,162,-333,-333,-87,-87,-87,399,-87,-87,-87,-87,-87,-333,-87,-333,-333,-333,-333,-333,-333,-333,-333,-333,-87,-333,-333,-87,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,400,-333,-333,-87,-87,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,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,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,3,1,403,404,405,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,43,44,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,401,402,406,407,64,71,72,45,46,69,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,408,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,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,127,-246,-246,-246,-246,-246,-246,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,2,82,8,409,101,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,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,127,-249,-249,-249,-249,-249,-249,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,2,82,8,410,101,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,411,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,3,67,10,49,162,413,412,2,67,10,162,414,9,1,5,60,1,1,5,32,23,16,-397,-397,-397,-397,-397,-397,-397,-397,-397,53,1,5,54,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,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,127,-243,-243,-243,-243,-243,-243,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,2,82,8,415,101,13,1,5,60,1,1,5,32,23,16,10,1,10,1,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,2,73,75,417,416,1,148,418,7,56,1,10,30,90,1,2,423,106,422,419,420,421,424,2,73,75,-365,-365,1,189,425,26,6,40,8,1,1,1,1,1,1,1,6,1,5,10,8,6,3,1,1,1,1,2,1,83,3,2,-110,288,102,103,430,106,291,256,107,108,429,-110,-110,292,283,426,284,289,293,285,286,287,294,431,427,428,13,1,5,60,1,1,5,32,23,16,10,1,10,1,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,13,1,5,60,1,1,5,32,23,16,10,1,10,1,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,13,1,5,60,1,1,5,32,23,16,10,1,10,1,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,13,1,5,60,1,1,5,32,23,16,10,1,10,1,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,62,1,5,54,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,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,-90,-90,-90,-90,-90,-90,-90,-90,432,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,13,1,5,60,1,1,5,32,23,16,10,1,10,1,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,13,1,5,60,1,1,5,32,23,16,10,1,10,1,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,13,1,5,60,1,1,5,32,23,16,10,1,10,1,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,13,1,5,60,1,1,5,32,23,16,10,1,10,1,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,433,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,434,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,1,148,435,57,1,5,54,1,5,1,1,5,2,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,146,147,148,149,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,58,1,5,54,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,2,6,138,109,436,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,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,437,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,43,44,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,30,6,61,1,5,20,12,2,16,1,4,26,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-223,-223,-223,-223,128,-223,340,438,339,-223,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,58,1,5,54,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,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,6,1,1,1,1,7,3,11,1,1,1,2,2,1,9,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,3,1,346,248,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,246,54,53,73,74,95,101,60,84,439,88,250,85,86,91,441,440,67,43,44,92,93,249,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,10,6,61,1,5,23,1,8,8,6,9,-241,-241,-241,443,444,-241,-241,-241,442,-241,60,6,5,36,2,1,1,1,1,1,3,3,1,6,1,1,1,3,6,11,3,11,1,1,1,2,2,1,13,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,3,1,445,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,5,6,61,1,5,32,-169,-169,-169,-169,-169,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,6,1,1,1,1,7,3,11,2,1,2,2,1,5,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,3,1,346,248,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,245,104,105,246,54,53,73,74,95,101,60,84,88,250,85,86,91,447,446,244,247,243,67,43,44,92,93,249,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,60,6,5,36,2,1,1,1,1,1,3,3,1,6,1,1,1,3,6,11,3,11,1,1,1,2,2,1,13,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,3,1,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,5,6,61,1,5,32,-174,-174,-174,-174,-174,6,6,61,1,5,32,23,-224,-224,-224,-224,-224,-224,6,6,61,1,5,32,23,-225,-225,-225,-225,-225,-225,108,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,6,1,1,1,1,7,3,11,1,1,3,2,1,13,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,3,1,-226,448,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,-226,-226,104,105,-226,54,53,73,74,95,101,60,84,-226,88,85,86,91,67,-226,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,54,1,5,54,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,2,58,1,449,256,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,450,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,451,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,54,1,5,54,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,62,1,5,54,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,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,-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,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,62,1,5,54,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,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,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-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,452,256,2,58,1,453,256,53,1,5,54,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,9,6,61,1,5,23,1,8,8,15,-241,-241,-241,455,454,-241,-241,-241,-241,5,6,61,1,5,40,-146,-146,-146,-146,-146,1,92,456,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,457,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,1,92,-153,1,92,-154,1,92,-155,1,92,-156,1,92,-157,1,92,-158,1,92,-159,1,92,-160,1,92,-161,1,92,-162,1,92,-163,1,92,-164,1,92,-165,23,67,10,16,61,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,162,458,128,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,23,67,10,16,61,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,162,459,128,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-280,-280,-280,-280,-280,-280,-280,-280,128,-280,-280,460,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,127,98,99,-280,-280,-280,-280,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-282,-282,-282,-282,-282,-282,-282,-282,128,-282,-282,461,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,127,98,99,-282,-282,-282,-282,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,45,1,5,60,1,1,5,4,10,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,162,-289,-289,462,-289,-289,128,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,127,98,99,-289,-289,-289,-289,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,6,6,61,1,5,19,5,-115,-115,-115,-115,463,-115,9,6,61,1,5,23,1,8,8,15,-241,-241,-241,465,464,-241,-241,-241,-241,7,6,61,1,5,1,18,5,-124,-124,-124,-124,466,-124,-124,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,467,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,3,58,1,45,255,256,468,6,6,61,1,5,19,5,-127,-127,-127,-127,-127,-127,5,6,61,1,5,24,-111,-111,-111,-111,-111,11,6,61,1,5,1,10,1,1,6,5,29,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,11,6,61,1,5,1,10,1,1,6,5,29,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,11,6,61,1,5,1,10,1,1,6,5,29,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,5,6,61,1,5,24,-116,-116,-116,-116,-116,17,38,4,1,13,1,1,1,23,1,7,13,3,2,1,2,29,3,472,474,473,290,106,291,256,471,292,101,469,88,470,475,476,87,83,54,1,5,54,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,-39,-39,477,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,6,55,5,1,2,1,1,299,107,108,478,479,298,4,60,1,2,2,-59,-59,-59,-59,109,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,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,480,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,482,481,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,43,44,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,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,76,-4,-4,-4,-4,-4,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,127,-411,-411,-411,-411,-411,-411,-411,-411,112,113,-411,-411,-411,-411,-411,-411,120,-411,-411,-411,-411,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,127,-412,-412,-412,-412,-412,-412,-412,-412,112,113,-412,-412,-412,-412,-412,-412,120,-412,-412,-412,-412,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,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,127,-413,-413,-413,-413,-413,-413,-413,-413,-413,113,-413,-413,-413,-413,-413,-413,120,-413,-413,-413,-413,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,127,-414,-414,-414,-414,-414,-414,-414,-414,-414,113,-414,-414,-414,-414,-414,-414,120,-414,-414,-414,-414,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,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,127,-415,-415,-415,-415,-415,-415,111,110,112,113,-415,-415,-415,-415,-415,-415,120,-415,-415,-415,-415,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,127,-416,-416,-416,-416,-416,-416,111,110,112,113,114,-416,-416,-416,-416,-416,120,-416,-416,123,-416,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,127,-417,-417,-417,-417,-417,-417,111,110,112,113,114,115,-417,-417,-417,-417,120,-417,-417,123,-417,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,127,-418,-418,-418,-418,-418,-418,111,110,112,113,114,115,116,-418,-418,-418,120,-418,-418,123,-418,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,127,-419,-419,-419,-419,-419,-419,111,110,112,113,114,115,116,117,-419,-419,120,-419,-419,123,-419,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,127,-427,-427,-427,-427,-427,-427,111,110,112,113,114,115,116,117,118,-427,120,121,-427,123,-427,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-428,-428,-428,-428,-428,-428,-428,-428,128,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,125,126,127,98,99,-428,-428,-428,-428,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,127,-426,-426,-426,-426,-426,-426,111,110,112,113,114,115,116,117,118,-426,120,-426,-426,123,-426,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,127,-429,-429,-429,-429,-429,-429,111,110,112,113,114,115,116,117,118,119,120,121,-429,123,-429,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,127,-430,-430,-430,-430,-430,-430,111,110,112,113,114,-430,-430,-430,-430,-430,120,-430,-430,-430,-430,22,92,1,61,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,483,128,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-260,-260,-260,-260,-260,-260,-260,-260,128,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,484,-260,-260,127,98,99,-260,-260,-260,-260,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-264,-264,-264,-264,-264,-264,-264,-264,128,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,127,98,99,-264,-264,-264,-264,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,4,95,74,2,2,486,485,487,488,11,56,1,24,1,1,7,4,10,2,29,39,154,106,156,157,155,101,489,159,158,197,196,11,56,1,24,1,1,7,4,10,2,29,39,154,106,156,157,155,101,490,159,158,197,196,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,491,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-259,-259,-259,-259,-259,-259,-259,-259,128,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,127,98,99,-259,-259,-259,-259,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-263,-263,-263,-263,-263,-263,-263,-263,128,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,127,98,99,-263,-263,-263,-263,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,54,1,5,54,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,62,1,5,54,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,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,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,62,1,5,54,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,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,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,25,87,6,14,16,1,30,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,492,128,340,493,339,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,5,2,3,11,2,1,2,2,1,11,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,3,1,494,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,495,101,60,84,88,340,85,86,91,337,339,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,1,87,496,1,87,497,104,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,9,1,1,1,1,4,3,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,498,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,-188,104,105,54,53,73,74,95,-188,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,53,1,5,54,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-47,-47,-47,-47,-47,-47,-47,499,-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,56,11,36,2,1,1,1,1,1,3,3,1,7,1,1,9,8,3,3,11,2,3,2,1,13,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,3,1,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,56,11,36,2,1,1,1,1,1,3,3,1,7,1,1,9,8,3,3,11,2,3,2,1,13,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,3,1,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,500,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,501,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,54,1,5,54,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,9,6,61,1,5,23,1,8,8,15,-241,-241,-241,503,502,-241,-241,-241,-241,5,6,61,1,5,55,-218,-218,-218,-218,-218,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,9,1,1,1,1,7,3,11,2,1,2,2,1,9,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,3,1,346,248,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,345,104,105,54,53,73,74,95,101,60,84,88,250,85,86,91,344,67,43,44,92,93,249,504,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,27,6,61,1,5,20,12,23,26,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-223,-223,-223,-223,128,-223,-223,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,62,1,5,54,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,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,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,62,1,5,54,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,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,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,22,87,6,61,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,505,128,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,506,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,127,-69,-69,-69,-69,-69,-69,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,507,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,508,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-72,-72,-72,-72,-72,-72,-72,-72,128,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,125,126,127,98,99,-72,-72,-72,-72,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,509,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,510,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-75,-75,-75,-75,-75,-75,-75,-75,128,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,125,126,127,98,99,-75,-75,-75,-75,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,511,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-78,-78,-78,-78,-78,-78,-78,-78,128,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,125,126,127,98,99,-78,-78,-78,-78,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,512,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,513,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-81,-81,-81,-81,-81,-81,-81,-81,128,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,125,126,127,98,99,-81,-81,-81,-81,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,514,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,3,131,1,1,515,92,93,18,6,50,1,10,1,13,1,1,7,7,7,1,1,1,6,15,6,1,-242,154,106,-242,-242,156,157,155,101,-242,159,-242,158,153,-242,-242,516,152,2,6,61,517,518,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,519,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,6,6,61,1,5,55,2,-204,-204,-204,-204,-204,-204,56,1,5,54,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,3,1,4,2,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,2,6,62,109,520,10,6,61,1,5,23,1,8,8,15,2,-241,-241,-241,367,368,-241,-241,-241,-241,521,1,68,522,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,127,-432,-432,-432,-432,-432,-432,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,523,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,524,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-85,-85,-85,-85,-85,-85,-85,-85,128,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,125,126,127,98,99,-85,-85,-85,-85,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,525,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,3,7,1,3,1,1,2,27,1,5,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,526,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,2,67,10,162,527,6,56,1,10,10,5,8,528,106,162,530,529,101,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,531,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,532,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,533,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,534,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,1,95,535,1,171,536,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,537,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,10,56,1,24,1,1,7,14,2,29,39,154,106,156,157,155,101,159,158,197,538,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,539,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,3,161,1,1,540,396,397,4,68,83,11,1,541,542,543,397,3,68,83,12,-276,-276,-276,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,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,3,1,545,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,544,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,45,1,5,60,1,1,5,4,10,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-331,-331,-331,162,-331,-331,546,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,127,-331,-331,-331,-331,-331,-331,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,547,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,2,6,62,549,548,2,6,62,-340,-340,23,6,62,25,61,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-343,-343,128,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,2,6,62,-344,-344,7,6,62,86,1,9,1,1,-345,-345,129,130,131,98,99,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,550,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,1,57,551,22,67,26,61,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,552,128,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,1,68,553,1,68,554,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,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,127,-251,-251,-251,-251,-251,-251,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,18,6,50,1,10,1,5,8,1,1,7,14,2,1,20,1,2,4,1,-197,154,106,-197,-197,-197,156,157,155,101,159,158,153,555,-197,-197,151,152,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,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,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,1,68,556,3,55,5,1,557,107,108,3,90,96,5,559,558,222,3,55,5,1,560,107,108,1,148,561,9,6,61,1,5,23,1,8,8,15,-241,-241,-241,563,562,-241,-241,-241,-241,5,6,61,1,5,24,-356,-356,-356,-356,-356,6,56,1,10,120,1,2,423,106,422,564,421,424,6,6,61,1,5,24,92,-361,-361,-361,-361,-361,565,6,6,61,1,5,24,92,-363,-363,-363,-363,-363,566,2,56,1,567,106,14,1,5,60,1,1,5,32,23,16,4,6,1,10,1,-367,-367,-367,-367,-367,-367,-367,-367,-367,568,-367,-367,-367,-367,9,6,61,1,5,23,1,8,8,15,-241,-241,-241,570,569,-241,-241,-241,-241,5,6,61,1,5,24,-385,-385,-385,-385,-385,6,56,1,10,123,3,2,572,106,429,431,571,428,12,6,61,1,5,1,10,1,1,6,5,29,63,-390,-390,-390,-390,-121,-121,-121,-121,-121,-390,-121,573,6,6,61,1,5,24,92,-393,-393,-393,-393,-393,574,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,576,575,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,577,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,30,1,5,60,1,1,5,20,12,23,16,10,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-380,-380,-380,-380,-380,-380,128,-380,-380,-380,-380,-380,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,2,82,8,578,101,3,55,5,1,579,107,108,53,1,5,54,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,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,-239,-239,-239,-239,-239,-239,-239,-239,-239,2,6,62,109,580,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,581,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,58,1,5,54,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,60,6,5,36,2,1,1,1,1,1,3,3,1,6,1,1,1,3,6,11,3,11,1,1,1,2,2,1,13,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,3,1,445,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,5,6,61,1,5,32,-175,-175,-175,-175,-175,2,67,38,583,582,119,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,6,1,1,1,1,7,3,4,7,1,1,1,2,2,1,1,4,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,3,1,-242,346,248,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,-242,-242,104,105,246,54,53,73,74,95,101,60,-242,84,-242,88,250,85,86,91,-242,585,584,247,243,67,-242,43,44,92,93,249,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,4,6,61,1,37,586,-176,-176,-176,60,6,5,36,2,1,1,1,1,1,3,3,1,6,1,1,1,3,6,11,3,11,1,1,1,2,2,1,13,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,3,1,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,10,6,61,1,5,23,1,8,8,6,9,-241,-241,-241,443,444,-241,-241,-241,587,-241,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,6,1,1,1,1,7,3,11,2,1,2,2,1,9,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,3,1,346,248,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,246,54,53,73,74,95,101,60,84,88,250,85,86,91,441,440,67,43,44,92,93,249,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,27,6,61,1,5,20,12,23,26,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-210,-210,-210,-210,128,-210,-210,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,53,1,5,54,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,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,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,22,87,6,61,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,588,128,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,589,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,53,1,5,54,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,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,-235,-235,-235,-235,-235,-235,-235,-235,-235,53,1,5,54,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,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,-236,-236,-236,-236,-236,-236,-236,-236,-236,3,6,61,46,591,592,590,35,6,32,8,2,1,1,1,1,1,1,1,1,1,1,1,1,1,6,1,1,1,11,1,1,7,7,7,1,1,1,6,2,1,12,15,-242,276,267,268,271,270,269,272,273,102,103,264,106,265,256,107,108,-242,-242,104,105,274,275,266,101,-242,159,-242,158,263,-242,593,262,-242,83,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,594,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,595,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,26,6,61,1,5,20,20,41,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-152,-152,-152,-152,128,-152,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,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,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,596,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,597,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,598,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,599,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,600,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,3,6,61,30,602,603,601,24,6,40,8,1,1,1,1,1,1,1,6,1,15,8,6,4,1,1,1,1,1,1,6,15,-242,288,102,103,290,106,291,256,107,108,-242,-242,292,605,-242,604,293,285,286,-242,287,294,-242,-242,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,606,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,607,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,22,93,12,49,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,128,608,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,609,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,10,6,61,1,5,11,1,1,11,13,16,-128,-128,-128,-128,-130,-130,-130,-128,610,141,10,6,61,1,5,11,1,1,11,13,16,-129,-129,-129,-129,612,613,614,-129,611,141,9,6,61,1,5,11,1,1,11,29,-131,-131,-131,-131,-131,-131,-131,-131,-131,9,6,61,1,5,11,1,1,11,29,-132,-132,-132,-132,-132,-132,-132,-132,-132,9,6,61,1,5,11,1,1,11,29,-133,-133,-133,-133,-133,-133,-133,-133,-133,9,6,61,1,5,11,1,1,11,29,-134,-134,-134,-134,-134,-134,-134,-134,-134,4,84,2,24,16,252,253,615,141,2,110,16,616,141,53,1,5,54,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,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,56,1,5,54,1,2,2,1,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,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,4,60,1,2,2,-60,-60,-60,-60,2,6,60,109,617,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,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,618,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,43,44,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,4,60,1,2,2,-63,-63,-63,-63,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,619,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,621,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,620,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,622,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,623,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,624,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,625,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,1,95,626,1,171,627,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,628,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,62,1,5,54,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,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,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,104,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,9,1,1,1,1,4,3,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,629,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,-186,104,105,54,53,73,74,95,-186,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,25,68,25,14,16,1,30,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,630,128,340,493,339,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,1,68,631,62,1,5,54,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,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,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,62,1,5,54,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,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,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,23,68,19,6,61,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-187,-187,128,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,632,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,22,87,6,61,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,633,128,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,634,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,3,6,61,61,636,637,635,115,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,9,1,1,1,1,7,3,4,7,1,1,1,2,2,1,1,8,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,3,1,-242,346,248,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,-242,-242,104,105,54,53,73,74,95,101,60,-242,84,-242,88,250,85,86,91,-242,638,67,-242,43,44,92,93,249,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,9,6,61,1,5,23,1,8,8,15,-241,-241,-241,503,639,-241,-241,-241,-241,62,1,5,54,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,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,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,22,68,25,61,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,640,128,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,127,-70,-70,-70,-70,-70,-70,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,22,68,25,61,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,641,128,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-73,-73,-73,-73,-73,-73,-73,-73,128,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,125,126,127,98,99,-73,-73,-73,-73,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,22,68,25,61,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,642,128,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-76,-76,-76,-76,-76,-76,-76,-76,128,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,125,126,127,98,99,-76,-76,-76,-76,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-79,-79,-79,-79,-79,-79,-79,-79,128,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,125,126,127,98,99,-79,-79,-79,-79,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,22,68,25,61,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,643,128,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-82,-82,-82,-82,-82,-82,-82,-82,128,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,125,126,127,98,99,-82,-82,-82,-82,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,108,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,7,2,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,645,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,162,104,105,644,54,53,73,74,95,101,60,84,88,85,86,91,67,43,44,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,6,6,61,1,5,55,2,-199,-199,-199,-199,-199,-199,11,56,1,24,1,1,7,14,2,1,27,1,154,106,156,157,155,101,159,158,153,646,152,18,6,50,1,10,1,5,8,1,1,7,14,2,1,20,1,2,4,1,-197,154,106,-197,-197,-197,156,157,155,101,159,158,153,647,-197,-197,151,152,27,6,61,1,5,20,35,2,24,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-203,-203,-203,-203,128,-203,-203,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,56,1,5,54,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,3,1,4,2,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,3,131,1,1,648,92,93,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,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,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,22,68,25,61,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,649,128,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,127,-434,-434,-434,-434,-434,-434,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,23,67,10,16,61,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,162,650,128,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,2,67,10,162,651,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,2,67,10,162,652,2,67,10,162,653,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,3,7,1,3,1,1,2,27,1,5,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,25,67,10,16,5,56,1,9,1,1,4,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,162,654,128,655,125,126,127,98,99,656,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,24,67,10,16,5,56,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,162,657,128,658,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,24,67,10,16,5,56,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,162,659,128,660,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,24,67,10,16,5,56,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,162,661,128,662,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,663,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,664,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,23,67,10,16,61,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,162,665,128,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,4,95,74,2,2,-328,-328,-328,-328,26,73,20,2,59,1,9,1,1,3,2,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-326,128,-326,125,126,127,98,99,-326,-326,-326,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,4,68,83,11,1,666,667,543,397,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,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,2,67,10,162,668,3,68,83,12,-277,-277,-277,3,67,6,4,162,670,669,23,67,6,20,61,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-227,-227,128,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,45,1,5,60,1,1,5,4,10,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-335,-335,-335,162,-335,-335,671,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,127,-335,-335,-335,-335,-335,-335,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,110,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,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,3,1,-342,403,404,405,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,-342,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,43,44,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,672,406,407,64,71,72,45,46,69,47,48,49,51,52,23,6,62,25,61,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-346,-346,128,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,2,6,62,-347,-347,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,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,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,3,1,403,404,405,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,43,44,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,673,402,406,407,64,71,72,45,46,69,47,48,49,51,52,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,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,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,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,9,6,61,1,5,23,1,8,8,15,-241,-241,-241,367,368,-241,-241,-241,674,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,13,1,5,60,1,1,5,32,23,16,10,1,10,1,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,1,148,675,6,56,1,10,120,1,2,423,106,422,676,421,424,13,1,5,60,1,1,5,32,23,16,10,1,10,1,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,3,55,5,1,677,107,108,3,6,61,30,679,680,678,11,6,50,1,10,1,29,8,8,15,60,2,-242,423,106,-242,-242,-242,-242,-242,-242,681,424,9,6,61,1,5,23,1,8,8,15,-241,-241,-241,563,682,-241,-241,-241,-241,2,56,1,683,106,2,56,1,684,106,1,148,-366,3,55,5,1,685,107,108,3,6,61,30,687,688,686,11,6,50,1,10,1,29,8,8,15,62,5,-242,572,106,-242,-242,-242,-242,-242,-242,431,689,9,6,61,1,5,23,1,8,8,15,-241,-241,-241,570,690,-241,-241,-241,-241,6,6,61,1,5,24,92,-390,-390,-390,-390,-390,573,3,56,1,133,691,106,692,2,56,1,693,106,30,1,5,60,1,1,5,20,12,23,16,10,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-373,-373,-373,-373,-373,-373,128,-373,-373,-373,-373,-373,127,-373,-373,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,694,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,695,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,1,68,696,13,1,5,60,1,1,5,32,23,16,10,1,10,1,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,1,144,697,22,93,12,49,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,128,698,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,58,1,5,54,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,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,6,1,1,1,1,7,3,11,2,1,2,2,1,5,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,3,1,346,248,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,245,104,105,246,54,53,73,74,95,101,60,84,88,250,85,86,91,447,699,244,247,243,67,43,44,92,93,249,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,5,6,61,1,5,32,-170,-170,-170,-170,-170,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,1,1,1,3,6,1,1,1,1,7,3,11,1,1,1,2,2,1,9,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,3,1,346,248,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,-177,-177,104,105,246,54,53,73,74,95,101,60,84,-177,88,250,85,86,91,441,440,67,43,44,92,93,249,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,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,8,1,3,6,1,1,1,1,7,3,11,2,1,2,2,1,5,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,3,1,346,248,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,246,54,53,73,74,95,101,60,84,88,250,85,86,91,447,700,247,243,67,43,44,92,93,249,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,2,67,1,583,701,53,1,5,54,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,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,-233,-233,-233,-233,-233,-233,-233,-233,-233,22,68,25,61,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,702,128,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,53,1,5,54,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,28,38,8,2,1,1,1,1,1,1,1,1,1,1,1,1,1,8,1,11,1,1,7,14,2,1,8,1,27,276,267,268,271,270,269,272,273,102,103,264,106,265,256,107,108,104,105,274,275,266,101,159,158,263,703,262,83,34,6,32,8,2,1,1,1,1,1,1,1,1,1,1,1,1,1,6,1,1,1,3,8,1,1,7,14,2,1,6,1,1,1,27,-145,276,267,268,271,270,269,272,273,102,103,264,106,265,256,107,108,-145,-145,104,105,-145,274,275,266,101,159,158,263,-145,704,261,262,83,5,6,61,1,5,40,-147,-147,-147,-147,-147,26,6,61,1,5,20,20,41,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-150,-150,-150,-150,128,-150,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,705,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,2,67,10,162,706,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,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,127,-281,-281,-281,-281,-281,-281,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,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,127,-283,-283,-283,-283,-283,-283,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,26,6,61,1,5,20,4,57,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-117,-117,-117,-117,707,-117,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,708,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,58,1,5,54,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,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,17,46,8,1,1,1,1,1,1,1,22,8,10,1,1,1,2,1,288,102,103,290,106,291,256,107,108,292,605,709,293,285,286,287,294,23,6,40,8,1,1,1,1,1,1,1,6,1,5,10,8,6,3,1,1,1,1,2,1,-110,288,102,103,290,106,291,256,107,108,-110,-110,-110,292,605,-110,710,289,293,285,286,287,294,5,6,61,1,5,24,-112,-112,-112,-112,-112,6,6,61,1,5,19,5,-115,-115,-115,-115,711,-115,26,6,61,1,5,20,4,57,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-119,-119,-119,-119,128,-119,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,712,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,6,6,61,1,5,19,5,-125,-125,-125,-125,-125,-125,22,93,12,49,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,128,713,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,9,6,61,1,5,11,1,1,11,29,-137,-137,-137,-137,-137,-137,-137,-137,-137,9,6,61,1,5,11,1,1,11,29,-138,-138,-138,-138,-138,-138,-138,-138,-138,2,58,1,714,256,2,58,1,715,256,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,716,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,717,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,9,6,61,1,5,11,1,1,11,29,-135,-135,-135,-135,-135,-135,-135,-135,-135,9,6,61,1,5,11,1,1,11,29,-136,-136,-136,-136,-136,-136,-136,-136,-136,4,60,1,2,2,-61,-61,-61,-61,2,6,62,109,718,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,127,-431,-431,-431,-431,-431,-431,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,719,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-262,-262,-262,-262,-262,-262,-262,-262,128,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,127,98,99,-262,-262,-262,-262,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,720,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,127,-308,-308,-308,721,-308,-308,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,722,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,127,-313,-313,-313,-313,-313,-313,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,723,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,127,-317,-317,-317,-317,-317,-317,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,724,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,127,-321,-321,-321,-321,-321,-321,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,725,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,726,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,127,-324,-324,-324,-324,-324,-324,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,23,68,19,6,61,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-185,-185,128,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,1,87,727,1,87,728,22,87,6,61,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-67,128,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,62,1,5,54,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,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,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,22,68,25,61,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,729,128,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,54,1,5,54,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,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,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,9,1,1,1,1,7,3,11,2,1,2,2,1,9,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,3,1,346,248,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,250,85,86,91,730,67,43,44,92,93,249,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,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,9,1,1,1,1,7,3,11,2,1,2,2,1,9,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,3,1,346,248,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,345,104,105,54,53,73,74,95,101,60,84,88,250,85,86,91,344,67,43,44,92,93,249,731,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,45,46,69,47,48,49,51,52,5,6,61,1,5,55,-219,-219,-219,-219,-219,3,6,61,1,636,637,732,1,87,733,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,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,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,53,1,5,54,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,9,1,5,60,1,1,5,32,23,16,-193,-193,-193,-193,-193,-193,-193,-193,-193,6,6,61,1,5,55,2,-200,-200,-200,-200,-200,-200,9,6,61,1,5,23,1,8,8,15,-241,-241,-241,367,734,-241,-241,-241,-241,2,67,10,162,644,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,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,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,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,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,3,7,1,3,1,1,2,27,1,5,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,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,3,7,1,3,1,1,2,27,1,5,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,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,735,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,736,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,737,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,738,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,739,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,24,67,10,16,5,56,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,162,740,128,741,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,24,67,10,16,5,56,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,162,742,128,743,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,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,2,67,10,162,744,1,68,745,4,6,62,83,12,746,-278,-278,-278,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,747,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,2,6,62,-341,-341,2,6,62,549,748,2,67,10,162,749,3,55,5,1,750,107,108,9,6,61,1,5,23,1,8,8,15,-241,-241,-241,563,751,-241,-241,-241,-241,13,1,5,60,1,1,5,32,23,16,10,1,10,1,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,1,148,752,4,56,1,131,2,423,106,753,424,6,56,1,10,120,1,2,423,106,422,754,421,424,5,6,61,1,5,24,-357,-357,-357,-357,-357,3,6,61,1,679,680,755,5,6,61,1,5,24,-362,-362,-362,-362,-362,5,6,61,1,5,24,-364,-364,-364,-364,-364,13,1,5,60,1,1,5,32,23,16,10,1,10,1,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,14,1,5,60,1,1,5,32,23,16,4,6,1,10,1,-368,-368,-368,-368,-368,-368,-368,-368,-368,756,-368,-368,-368,-368,4,56,1,133,5,572,106,431,757,6,56,1,10,123,3,2,572,106,429,431,758,428,5,6,61,1,5,24,-386,-386,-386,-386,-386,3,6,61,1,687,688,759,5,6,61,1,5,24,-391,-391,-391,-391,-391,5,6,61,1,5,24,-392,-392,-392,-392,-392,5,6,61,1,5,24,-394,-394,-394,-394,-394,30,1,5,60,1,1,5,20,12,23,16,10,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-374,-374,-374,-374,-374,-374,128,-374,-374,-374,-374,-374,127,-374,-374,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,22,68,25,61,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,760,128,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,13,1,5,60,1,1,5,32,23,16,10,1,10,1,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,53,1,5,54,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,53,1,5,54,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,10,6,61,1,5,23,1,8,8,6,9,-241,-241,-241,443,444,-241,-241,-241,761,-241,5,6,61,1,5,32,-171,-171,-171,-171,-171,5,6,61,1,5,32,-172,-172,-172,-172,-172,1,87,762,5,6,61,1,5,40,-148,-148,-148,-148,-148,9,6,61,1,5,23,1,8,8,15,-241,-241,-241,455,763,-241,-241,-241,-241,22,68,25,61,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,764,128,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,14,39,17,1,24,1,1,7,4,5,5,2,29,37,2,327,154,106,156,157,155,101,765,766,84,158,197,326,196,22,68,25,61,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,767,128,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,5,6,61,1,5,24,-113,-113,-113,-113,-113,9,6,61,1,5,23,1,8,8,15,-241,-241,-241,465,768,-241,-241,-241,-241,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,769,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,600,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,22,68,25,61,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,770,128,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,6,6,61,1,5,19,5,-126,-126,-126,-126,-126,-126,9,6,61,1,5,11,1,1,11,29,-139,-139,-139,-139,-139,-139,-139,-139,-139,9,6,61,1,5,11,1,1,11,29,-140,-140,-140,-140,-140,-140,-140,-140,-140,22,87,6,61,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,771,128,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,772,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,1,66,773,22,68,25,61,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,774,128,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,775,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,776,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,777,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,778,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,779,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,780,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,127,-315,-315,-315,-315,-315,-315,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,781,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,127,-319,-319,-319,-319,-319,-319,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,62,1,5,54,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,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,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,62,1,5,54,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,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,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,1,87,782,5,6,61,1,5,55,-220,-220,-220,-220,-220,9,6,61,1,5,23,1,8,8,15,-241,-241,-241,503,783,-241,-241,-241,-241,5,6,61,1,5,55,-221,-221,-221,-221,-221,62,1,5,54,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,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,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,3,6,61,1,517,518,784,24,67,10,16,61,1,9,1,1,4,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,162,785,128,125,126,127,98,99,786,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,24,67,10,16,5,56,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,162,787,128,788,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,23,67,10,16,61,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,162,789,128,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,23,67,10,16,61,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,162,790,128,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,23,67,10,16,61,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,162,791,128,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,792,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,793,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,1,68,794,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,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,3,68,83,12,-279,-279,-279,23,67,6,20,61,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-228,-228,128,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,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,13,1,5,60,1,1,5,32,23,16,10,1,10,1,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,3,6,61,30,679,680,795,3,55,5,1,796,107,108,5,6,61,1,5,24,-358,-358,-358,-358,-358,9,6,61,1,5,23,1,8,8,15,-241,-241,-241,563,797,-241,-241,-241,-241,5,6,61,1,5,24,-359,-359,-359,-359,-359,3,55,5,1,798,107,108,5,6,61,1,5,24,-387,-387,-387,-387,-387,9,6,61,1,5,23,1,8,8,15,-241,-241,-241,570,799,-241,-241,-241,-241,5,6,61,1,5,24,-388,-388,-388,-388,-388,13,1,5,60,1,1,5,32,23,16,10,1,10,1,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,2,67,1,583,800,53,1,5,54,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,3,6,61,1,591,592,801,5,6,61,1,5,40,-151,-151,-151,-151,-151,4,95,74,2,2,802,485,487,488,11,56,1,24,1,1,7,4,10,2,29,39,154,106,156,157,155,101,803,159,158,197,196,5,6,61,1,5,24,-118,-118,-118,-118,-118,3,6,61,1,602,603,804,26,6,61,1,5,20,4,57,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-117,-117,-117,-117,128,-117,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,5,6,61,1,5,24,-120,-120,-120,-120,-120,9,6,61,1,5,11,1,1,11,29,-141,-141,-141,-141,-141,-141,-141,-141,-141,22,68,25,61,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,805,128,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,4,60,1,2,2,-62,-62,-62,-62,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,127,-309,-309,-309,806,-309,-309,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,807,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,127,-310,-310,-310,-310,-310,-310,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,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,127,-314,-314,-314,-314,-314,-314,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,127,-318,-318,-318,-318,-318,-318,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,127,-322,-322,-322,-322,-322,-322,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,808,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,809,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,62,1,5,54,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,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,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,3,6,61,1,636,637,810,6,6,61,1,5,55,2,-201,-201,-201,-201,-201,-201,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,811,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,812,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,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,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,23,67,10,16,61,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,162,813,128,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,23,67,10,16,61,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,162,814,128,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,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,1,148,815,13,1,5,60,1,1,5,32,23,16,10,1,10,1,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,3,6,61,1,679,680,816,13,1,5,60,1,1,5,32,23,16,10,1,10,1,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,3,6,61,1,687,688,817,5,6,61,1,5,32,-173,-173,-173,-173,-173,5,6,61,1,5,40,-149,-149,-149,-149,-149,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,818,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,1,95,819,5,6,61,1,5,24,-114,-114,-114,-114,-114,1,87,820,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,821,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,822,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,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,127,-316,-316,-316,-316,-316,-316,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,127,-320,-320,-320,-320,-320,-320,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,5,6,61,1,5,55,-222,-222,-222,-222,-222,23,67,10,16,61,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,162,823,128,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,23,67,10,16,61,1,9,1,1,34,1,5,1,1,1,1,1,1,1,1,1,1,1,1,162,824,128,125,126,127,98,99,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,3,55,5,1,825,107,108,5,6,61,1,5,24,-360,-360,-360,-360,-360,5,6,61,1,5,24,-389,-389,-389,-389,-389,45,1,5,60,1,1,5,14,5,1,2,1,1,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-313,-313,-313,-313,-313,828,-313,-313,-313,-313,826,-313,827,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,127,-313,-313,-313,-313,-313,-313,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,829,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,9,6,61,1,5,11,1,1,11,29,-142,-142,-142,-142,-142,-142,-142,-142,-142,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,127,-311,-311,-311,-311,-311,-311,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,44,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,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,127,-312,-312,-312,-312,-312,-312,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,43,1,5,60,1,1,5,14,5,1,2,2,1,7,2,6,11,4,2,14,7,3,1,10,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,13,1,5,60,1,1,5,32,23,16,10,1,10,1,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,1,97,830,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,831,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,7,6,61,1,29,8,8,15,-242,-242,-242,-242,-242,-242,-242,45,1,5,60,1,1,5,14,5,1,2,1,1,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-315,-315,-315,-315,-315,828,-315,-315,-315,-315,832,-315,833,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,127,-315,-315,-315,-315,-315,-315,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,58,1,5,54,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,45,1,5,60,1,1,5,14,5,1,2,1,1,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-314,-314,-314,-314,-314,828,-314,-314,-314,-314,834,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,127,-314,-314,-314,-314,-314,-314,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,1,97,835,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,1,13,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,5,1,8,4,1,1,1,1,1,3,1,836,165,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,42,75,76,77,78,79,80,81,82,102,103,94,106,107,108,104,105,54,53,73,74,95,101,60,84,88,85,86,91,67,169,170,92,93,87,89,90,83,70,65,66,55,96,56,97,57,61,58,98,99,59,100,50,62,68,63,64,71,72,171,172,173,47,48,49,51,52,1,97,837,58,1,5,54,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,45,1,5,60,1,1,5,14,5,1,2,1,1,1,7,2,6,11,4,2,14,7,3,1,9,1,1,3,1,1,2,27,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-316,-316,-316,-316,-316,828,-316,-316,-316,-316,838,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,127,-316,-316,-316,-316,-316,-316,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,58,1,5,54,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,1,97,839,58,1,5,54,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,6,11,2,2,2,7,7,7,3,1,10,1,3,1,1,2,27,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108],w=[],_=0,U,u,$,W;while(_<f.length){U=f[_++],u={},$=0,W=[];while(U--)$+=f[_++],W.push($);for($ of W)u[$]=f[_++];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,8,1,8,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,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,18,4,18,5,19,3,19,4,19,3,20,3,20,4,20,5,21,3,21,4,21,3,21,2,21,3,21,2,36,1,36,1,36,1,80,1,80,1,80,3,80,3,80,4,80,6,80,4,80,6,80,4,80,5,80,7,80,3,80,3,80,4,80,6,82,10,82,12,82,11,82,13,82,4,100,0,100,1,100,3,100,4,100,6,101,1,101,1,101,3,101,5,101,3,101,5,103,1,103,1,103,1,91,1,91,3,91,4,91,1,102,2,102,2,108,1,108,1,108,1,108,1,108,1,108,2,108,2,108,2,108,2,108,3,108,3,108,4,108,6,45,2,45,4,114,0,114,1,114,3,114,4,114,6,115,3,115,5,115,2,116,1,116,1,116,1,116,1,116,1,116,1,116,1,116,1,116,1,116,1,116,1,116,1,116,1,81,2,81,3,81,4,118,1,118,3,118,4,118,4,118,6,120,1,120,2,119,1,119,2,117,1,117,2,122,1,122,2,123,1,123,1,39,5,88,3,88,2,88,2,88,1,32,6,32,3,15,5,15,2,34,5,34,2,131,1,131,1,127,0,127,1,127,3,127,4,127,6,134,1,134,3,134,2,134,1,135,1,135,1,135,1,135,1,136,2,40,2,40,2,40,3,40,2,40,2,110,2,110,4,138,1,138,3,138,4,138,4,138,6,121,1,121,1,121,1,121,1,139,1,139,3,42,1,42,1,83,2,43,3,43,4,43,6,44,3,44,3,77,2,77,3,38,3,38,5,96,0,96,1,10,2,10,4,10,1,30,2,30,4,31,1,31,2,31,4,31,3,149,3,149,5,152,3,152,5,22,1,22,3,22,1,22,3,22,3,22,7,22,5,22,3,22,3,23,2,23,3,23,4,23,5,157,3,157,3,157,2,26,5,26,7,26,4,26,6,161,1,161,2,162,3,162,4,164,2,164,4,164,2,164,4,24,2,24,2,24,2,24,1,167,2,167,2,167,3,25,5,25,7,25,7,25,9,25,9,25,5,25,7,25,6,25,8,25,5,25,7,25,6,25,8,25,5,25,7,25,3,25,5,25,5,25,7,25,7,25,9,25,9,25,5,25,7,25,6,25,8,25,5,25,7,25,6,25,8,25,5,25,7,25,3,25,5,174,1,174,3,94,1,94,3,27,1,27,2,27,3,27,4,27,2,27,3,27,4,27,5,33,3,28,4,28,6,179,1,179,3,179,2,180,1,180,1,180,1,180,2,180,2,29,2,12,2,12,4,12,4,12,5,12,7,12,6,12,9,187,1,187,3,187,4,187,4,187,6,188,1,188,3,188,1,188,3,185,1,186,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,193,1,193,3,193,4,193,4,193,6,195,1,195,3,195,3,195,1,195,3,35,2,35,2,35,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,5,16,3,16,5,16,4,41,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 111:case 146:case 174:case 178:case 198:case 218:case 227:case 276:case 327:case 340:case 356:case 385:return[u[$]];case 4:case 112:case 147:case 199:case 219:case 228:case 341:case 357:case 386:return[...u[$-2],u[$]];case 5:case 61:case 181:case 342: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 87:case 88:case 89:case 90:case 91:case 116:case 121:case 122:case 123:case 124:case 127:case 130:case 131:case 132:case 133:case 134:case 153:case 154:case 155:case 156:case 157:case 158:case 161:case 162:case 163:case 164:case 165:case 169:case 195:case 196:case 202:case 206:case 207:case 208:case 209:case 223:case 224:case 225:case 241:case 242:case 256:case 258:case 287:case 325:case 343:case 344:case 345:case 361:case 363:case 365:case 390:case 393:return u[$];case 48:case 160:return"undefined";case 49:case 159:return"null";case 58:return["str",...u[$-1]];case 60:case 175:case 179:case 277:return[...u[$-1],u[$]];case 62:case 217:case 221:case 359:case 388: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:case 119:return["=",u[$-2],u[$]];case 70:return["=",u[$-3],u[$]];case 71:case 120:return["=",u[$-4],u[$-1]];case 72:return["state",u[$-2],u[$]];case 73:return["state",u[$-3],u[$]];case 74:return["state",u[$-4],u[$-1]];case 75:case 77:return["computed",u[$-2],u[$]];case 76:return["computed",u[$-3],u[$]];case 78:return["readonly",u[$-2],u[$]];case 79:return["readonly",u[$-3],u[$]];case 80:return["readonly",u[$-4],u[$-1]];case 81:case 83:return["effect",u[$-2],u[$]];case 82:return["effect",u[$-3],u[$]];case 84:case 85:case 86:return["effect",null,u[$]];case 92:case 101:case 139:return[".",u[$-2],u[$]];case 93:case 102:case 140:return["?.",u[$-2],u[$]];case 94:case 96:case 103:case 141:return["[]",u[$-3],u[$-1]];case 95:case 97:case 104:case 142:return["[]",u[$-5],u[$-2]];case 98:return[u[$-1][0],u[$-3],...u[$-1].slice(1)];case 99:return["optindex",u[$-4],u[$-1]];case 100:return["optindex",u[$-6],u[$-2]];case 105:return["object-comprehension",u[$-8],u[$-6],[["for-of",u[$-4],u[$-2],!1]],[]];case 106:return["object-comprehension",u[$-10],u[$-8],[["for-of",u[$-6],u[$-4],!1]],[u[$-2]]];case 107:return["object-comprehension",u[$-9],u[$-7],[["for-of",u[$-4],u[$-2],!0]],[]];case 108:return["object-comprehension",u[$-11],u[$-9],[["for-of",u[$-6],u[$-4],!0]],[u[$-2]]];case 109:return["object",...u[$-2]];case 110:case 145:case 176:case 197:case 216:return[];case 113:case 148:case 200:case 220:case 358:case 387:return[...u[$-3],u[$]];case 114:case 149:case 201:case 222:case 360:case 389:return[...u[$-5],...u[$-2]];case 115:return[null,u[$],u[$]];case 117:case 150:return[":",u[$-2],u[$]];case 118:case 151:return[":",u[$-4],u[$-1]];case 125:return["dynamicKey",u[$-1]];case 126:return["[]","this",u[$-1]];case 128:case 129:case 152:case 210:return["...",u[$]];case 135:case 214:return["super",...u[$]];case 136:case 137:case 138:case 212:case 215:return[u[$-1],...u[$]];case 143:return["map-literal"];case 144:return["map-literal",...u[$-2]];case 166:return["array"];case 167:return["array",...u[$-1]];case 168:return["array",...u[$-2],...u[$-1]];case 170:return[...u[$-2],...u[$]];case 171:return[...u[$-3],...u[$]];case 172:return[...u[$-2],...u[$-1]];case 173:return[...u[$-5],...u[$-4],...u[$-2],...u[$-1]];case 177:return[...u[$]];case 180:return null;case 182:return"..";case 183:case 226:return"...";case 184:return[u[$-2],u[$-3],u[$-1]];case 185:case 413:case 415:case 416:case 430:case 432:return[u[$-1],u[$-2],u[$]];case 186:return[u[$],u[$-1],null];case 187:return[u[$-1],null,u[$]];case 188:return[u[$],null,null];case 189:return["def",u[$-4],u[$-2],u[$]];case 190:return["def",u[$-1],[],u[$]];case 191:case 193:return[u[$-1],u[$-3],u[$]];case 192:case 194:return[u[$-1],[],u[$]];case 203:case 326:return["default",u[$-2],u[$]];case 204:return["rest",u[$]];case 205:return["expansion"];case 211:return["tagged-template",u[$-1],u[$]];case 213:return["optcall",u[$-2],...u[$]];case 229:case 230:return"this";case 231:return[".","this",u[$]];case 232:return[".","super",u[$]];case 233:return["[]","super",u[$-1]];case 234:return["[]","super",u[$-2]];case 235:return[".","new",u[$]];case 236:return[".","import",u[$]];case 237:return["block"];case 238:return["block",...u[$-1]];case 239:return u[$-1].length===1?u[$-1][0]:["block",...u[$-1]];case 240:return u[$-2].length===1?u[$-2][0]:["block",...u[$-2]];case 243:return["return",u[$]];case 244:return["return",u[$-1]];case 245:return["return"];case 246:return["throw",u[$]];case 247:return["throw",u[$-1]];case 248:return["yield"];case 249:return["yield",u[$]];case 250:return["yield",u[$-1]];case 251:return["yield-from",u[$]];case 252:return["if",u[$-1],u[$]];case 253:return u[$-4].length===3?["if",u[$-4][1],u[$-4][2],["if",u[$-1],u[$]]]:[...u[$-4],["if",u[$-1],u[$]]];case 254:return["if",["!",u[$-1]],u[$]];case 255:return["if",["!",u[$-3]],u[$-2],u[$]];case 257:return u[$-2].length===3?["if",u[$-2][1],u[$-2][2],u[$]]:[...u[$-2],u[$]];case 259:case 260:return["if",u[$],[u[$-2]]];case 261:return["?:",u[$-4],u[$-6],u[$-1]];case 262:return["?:",u[$-2],u[$-4],u[$]];case 263:case 264:return["if",["!",u[$]],[u[$-2]]];case 265:return["try",u[$]];case 266:return["try",u[$-1],u[$]];case 267:return["try",u[$-2],u[$]];case 268:return["try",u[$-3],u[$-2],u[$]];case 269:case 270:case 395:case 398:case 400:return[u[$-1],u[$]];case 271:return[null,u[$]];case 272:return["switch",u[$-3],u[$-1],null];case 273:return["switch",u[$-5],u[$-3],u[$-1]];case 274:return["switch",null,u[$-1],null];case 275:return["switch",null,u[$-3],u[$-1]];case 278:return["when",u[$-1],u[$]];case 279:return["when",u[$-2],u[$-1]];case 280:return["while",u[$]];case 281:return["while",u[$-2],u[$]];case 282:return["while",["!",u[$]]];case 283:return["while",["!",u[$-2]],u[$]];case 284:return u[$-1].length===2?[u[$-1][0],u[$-1][1],u[$]]:[u[$-1][0],u[$-1][1],u[$-1][2],u[$]];case 285:case 286:return u[$].length===2?[u[$][0],u[$][1],[u[$-1]]]:[u[$][0],u[$][1],u[$][2],[u[$-1]]];case 288:return["loop",u[$]];case 289:return["loop",[u[$]]];case 290:return["loop-n",u[$-1],u[$]];case 291:return["for-in",u[$-3],u[$-1],null,null,u[$]];case 292:return["for-in",u[$-5],u[$-3],null,u[$-1],u[$]];case 293:return["for-in",u[$-5],u[$-3],u[$-1],null,u[$]];case 294:return["for-in",u[$-7],u[$-5],u[$-1],u[$-3],u[$]];case 295:return["for-in",u[$-7],u[$-5],u[$-3],u[$-1],u[$]];case 296:return["for-of",u[$-3],u[$-1],!1,null,u[$]];case 297:return["for-of",u[$-5],u[$-3],!1,u[$-1],u[$]];case 298:return["for-of",u[$-3],u[$-1],!0,null,u[$]];case 299:return["for-of",u[$-5],u[$-3],!0,u[$-1],u[$]];case 300:return["for-as",u[$-3],u[$-1],!1,null,u[$]];case 301:return["for-as",u[$-5],u[$-3],!1,u[$-1],u[$]];case 302:case 304:return["for-as",u[$-3],u[$-1],!0,null,u[$]];case 303:case 305:return["for-as",u[$-5],u[$-3],!0,u[$-1],u[$]];case 306:return["for-in",[],u[$-1],null,null,u[$]];case 307:return["for-in",[],u[$-3],u[$-1],null,u[$]];case 308:return["comprehension",u[$-4],[["for-in",u[$-2],u[$],null]],[]];case 309:return["comprehension",u[$-6],[["for-in",u[$-4],u[$-2],null]],[u[$]]];case 310:return["comprehension",u[$-6],[["for-in",u[$-4],u[$-2],u[$]]],[]];case 311:return["comprehension",u[$-8],[["for-in",u[$-6],u[$-4],u[$]]],[u[$-2]]];case 312:return["comprehension",u[$-8],[["for-in",u[$-6],u[$-4],u[$-2]]],[u[$]]];case 313:return["comprehension",u[$-4],[["for-of",u[$-2],u[$],!1]],[]];case 314:return["comprehension",u[$-6],[["for-of",u[$-4],u[$-2],!1]],[u[$]]];case 315:return["comprehension",u[$-5],[["for-of",u[$-2],u[$],!0]],[]];case 316:return["comprehension",u[$-7],[["for-of",u[$-4],u[$-2],!0]],[u[$]]];case 317:return["comprehension",u[$-4],[["for-as",u[$-2],u[$],!1,null]],[]];case 318:return["comprehension",u[$-6],[["for-as",u[$-4],u[$-2],!1,null]],[u[$]]];case 319:return["comprehension",u[$-5],[["for-as",u[$-2],u[$],!0,null]],[]];case 320:return["comprehension",u[$-7],[["for-as",u[$-4],u[$-2],!0,null]],[u[$]]];case 321:return["comprehension",u[$-4],[["for-as",u[$-2],u[$],!0,null]],[]];case 322:return["comprehension",u[$-6],[["for-as",u[$-4],u[$-2],!0,null]],[u[$]]];case 323:return["comprehension",u[$-2],[["for-in",[],u[$],null]],[]];case 324:return["comprehension",u[$-4],[["for-in",[],u[$-2],u[$]]],[]];case 328:case 362:case 364:case 391:case 392:case 394:return[u[$-2],u[$]];case 329:return["class",null,null];case 330:return["class",null,null,u[$]];case 331:return["class",null,u[$]];case 332:return["class",null,u[$-1],u[$]];case 333:return["class",u[$],null];case 334:return["class",u[$-1],null,u[$]];case 335:return["class",u[$-2],u[$]];case 336:return["class",u[$-3],u[$-1],u[$]];case 337:return["enum",u[$-1],u[$]];case 338:return["component",null,["block",...u[$-1]]];case 339:return["component",u[$-3],["block",...u[$-1]]];case 346:return["offer",u[$]];case 347:return["accept",u[$]];case 348:return["render",u[$]];case 349:case 352:return["import","{}",u[$]];case 350:case 351:return["import",u[$-2],u[$]];case 353:return["import",u[$-4],u[$]];case 354:return["import",u[$-4],u[$-2],u[$]];case 355:return["import",u[$-7],u[$-4],u[$]];case 366:return["*",u[$]];case 367:return["export","{}"];case 368:return["export",u[$-2]];case 369:case 370:case 371:case 372:case 376:case 377:case 378:case 379:return["export",u[$]];case 373:return["export",["=",u[$-2],u[$]]];case 374:return["export",["=",u[$-3],u[$]]];case 375:return["export",["=",u[$-4],u[$-1]]];case 380:return["export-default",u[$]];case 381:return["export-default",u[$-1]];case 382:return["export-all",u[$]];case 383:return["export-from","{}",u[$]];case 384:return["export-from",u[$-4],u[$]];case 396:case 397:case 399:case 435:return["do-iife",u[$]];case 401:return["-",u[$]];case 402:return["+",u[$]];case 403:return["?",u[$-1]];case 404:return["presence",u[$-1]];case 405:return["await",u[$]];case 406:return["await",u[$-1]];case 407:return["--",u[$],!1];case 408:return["++",u[$],!1];case 409:return["--",u[$-1],!0];case 410:return["++",u[$-1],!0];case 411:return["+",u[$-2],u[$]];case 412:return["-",u[$-2],u[$]];case 414:return["**",u[$-2],u[$]];case 417:return["&",u[$-2],u[$]];case 418:return["^",u[$-2],u[$]];case 419:return["|",u[$-2],u[$]];case 420:case 421:case 422:case 423:case 424:case 425:return["control",u[$-1],u[$-2],u[$]];case 426:return["&&",u[$-2],u[$]];case 427:return["||",u[$-2],u[$]];case 428:return["??",u[$-2],u[$]];case 429:return["|>",u[$-2],u[$]];case 431:return["?:",u[$-4],u[$-2],u[$]];case 433:return[u[$-3],u[$-4],u[$-1]];case 434:return[u[$-2],u[$-3],u[$]]}},parseError(f,w){let _,U,u,$,W,F,A;if(w.recoverable)return this.trace(f);else throw u=(w.line||0)+1,_=w.loc?.c||0,A=w.token?` (token: ${w.token})`:"",F=w.text?` near '${w.text}'`:"",$=`line ${u}, column ${_}`,W=`Parse error at ${$}${A}${F}: ${f}`,U=Error(W),U.hash=w,U},parse(f){let w,_,U,u,$,W,F,A,G,Y,Z,Q,K,D,H,J,z,q,R,X,B,I,O,M,P,E;[X,E,Y]=[[0],[null],[]],[K,P,O,I,J]=[this.parseTable,"",0,0,0],[_,w]=[2,1],A=Object.create(this.lexer),q={ctx:{}};for(let S in this.ctx){if(!Object.hasOwn(this.ctx,S))continue;let N=this.ctx[S];q.ctx[S]=N}if(A.setInput(f,q.ctx),[q.ctx.lexer,q.ctx.parser]=[A,this],A.loc==null)A.loc={};M=A.loc,Y.push(M),this.parseError=typeof q.ctx.parseError==="function"?q.ctx.parseError:Object.getPrototypeOf(this).parseError,F=()=>{let S;if(S=A.lex()||w,typeof S!=="number")S=this.symbolIds[S]||S;return S},B=D=R=U=H=Q=W=Z=$=null,z={};while(!0){if(R=X[X.length-1],B==null)B=F();if(U=K[R]?.[B],U==null){if(u="",!J)$=(()=>{let S=[];for(let N in K[R]){if(!Object.hasOwn(K[R],N))continue;if(this.tokenNames[N]&&N>_)S.push(`'${this.tokenNames[N]}'`)}return S})();throw u=(()=>{if(A.showPosition)return`Parse error on line ${O+1}:
|
|
13
|
-
${A.
|
|
14
|
-
Expecting ${$.join(", ")}, got '${this.tokenNames[B]||B}'`;else return`Parse error on line ${O+1}: Unexpected ${B===w?"end of input":`'${this.tokenNames[B]||B}'`}`,this.parseError(u,{text:A.match,token:this.tokenNames[B]||B,line:A.line,loc:M,expected:$})})(),Error(u)}if(U>0)if(X.push(B,U),E.push(A.text),Y.push(A.loc),B=null,!D){if([I,P,O,M]=[A.len,A.text,A.line,A.loc],J>0)J--}else[B,D]=[D,null];else if(U<0){if(W=this.ruleTable[-U*2+1],z.$=E[E.length-W],G=Y[Y.length-(W||1)],z._$={r:G.r,c:G.c},H=this.ruleActions.call(z,-U,E,Y,q.ctx),H!=null)z.$=H;if(Array.isArray(z.$))z.$.loc=z._$;if(W)X.length-=W*2,E.length-=W,Y.length-=W;X.push(this.ruleTable[-U*2]),E.push(z.$),Y.push(z._$),Z=K[X[X.length-2]][X[X.length-1]],X.push(Z)}else if(U===0)return E[E.length-1]}},trace(){},ctx:{}},R4=(f={})=>{let w=Object.create(H4);return Object.defineProperty(w,"ctx",{value:{...f},enumerable:!1,writable:!0,configurable:!0}),w},D1=R4();var n4=D1.parse.bind(D1);var O4=["abort","animationcancel","animationend","animationiteration","animationstart","auxclick","beforeinput","beforematch","beforetoggle","blur","cancel","canplay","canplaythrough","change","click","close","compositionend","compositionstart","compositionupdate","contextlost","contextmenu","contextrestored","copy","cuechange","cut","dblclick","drag","dragend","dragenter","dragleave","dragover","dragstart","drop","durationchange","emptied","ended","error","focus","focusin","focusout","formdata","fullscreenchange","fullscreenerror","gotpointercapture","input","invalid","keydown","keypress","keyup","load","loadeddata","loadedmetadata","loadstart","lostpointercapture","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","paste","pause","play","playing","pointercancel","pointerdown","pointerenter","pointerleave","pointermove","pointerout","pointerover","pointerrawupdate","pointerup","progress","ratechange","reset","resize","scroll","scrollend","securitypolicyviolation","seeked","seeking","select","selectionchange","selectstart","slotchange","stalled","submit","suspend","timeupdate","toggle","touchcancel","touchend","touchmove","touchstart","transitioncancel","transitionend","transitionrun","transitionstart","volumechange","waiting","webkitanimationend","webkitanimationiteration","webkitanimationstart","webkittransitionend","wheel"],c2=new Set(O4);var q4=["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","link","main","map","mark","menu","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","script","search","section","select","slot","small","source","span","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr"];var P4=["animate","animateMotion","animateTransform","circle","clipPath","defs","desc","ellipse","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","filter","foreignObject","g","image","line","linearGradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialGradient","rect","set","stop","svg","switch","symbol","text","textPath","tspan","use","view"],I4=["math","param","portal"],v2=new Set([...q4,...I4]),H1=new Set(P4),R1=new Set([...v2,...H1]);var g2="__bind_",l2="__",w2=new Set(["beforeMount","mounted","updated","beforeUnmount","unmounted","onError"]),B4=new Set(["disabled","hidden","readonly","required","checked","selected","autofocus","autoplay","controls","loop","muted","multiple","novalidate","open","reversed","defer","async","formnovalidate","allowfullscreen","inert"]),_2="http://www.w3.org/2000/svg";function E4(f){for(let w of f){if(!Array.isArray(w))continue;let _=w[1]instanceof String?w[1].valueOf():w[1],U=w[2]instanceof String?w[2].valueOf():w[2];if(_==="type"&&typeof U==="string")return U.replace(/^["']|["']$/g,"")}return null}function O1(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 U2(f){return Array.isArray(f)&&f[0]==="."&&f[1]==="this"}function F2(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 x2(f,w){let _=(F,A)=>F instanceof String?F[A]:void 0,U=w.prototype.classifyKeyword;w.prototype.classifyKeyword=function(F,A,G){if(F==="offer"||F==="accept"){let Y=0;for(let Z=this.tokens.length-1;Z>=0;Z--){let Q=this.tokens[Z][0];if(Q==="OUTDENT")Y++;else if(Q==="INDENT")Y--;if(Y<0&&this.tokens[Z-1]?.[0]==="COMPONENT")return F.toUpperCase()}return A}return U.call(this,F,A,G)},w.prototype.rewriteRender=function(){let F=(z,q,R)=>{let X=[z,q];if(X.pre=0,X.data=null,X.loc=R?.loc??{r:0,c:0,n:0},X.spaced=!1,X.newLine=!1,X.generated=!0,R)X.origin=R;return X},A=!1,G=0,Y=0,Z=[],Q=(z)=>{let q=z.split("#")[0];return R1.has(q)},K=(z)=>{if(!z||typeof z!=="string")return!1;return/^[A-Z]/.test(z)},D=(z)=>{return Q(z)||K(z)},H=(z,q,R,X)=>{let B=1,I=q;while(I>=0&&B>0){let O=z[I][0];if(O===R)B++;else if(O===X)B--;if(B>0)I--}return I},J=(z,q)=>{let R=q;while(R>0){let X=z[R-1][0];if(X==="TERMINATOR"||X==="RENDER")break;if(X==="INDENT"||X==="OUTDENT"){let B=z[R][0];if(B==="CALL_END"||B===")"){R=H(z,R-1,B,B==="CALL_END"?"CALL_START":"(");continue}break}if(X==="CALL_END"||X===")"){R=H(z,R-2,X,X==="CALL_END"?"CALL_START":"(");continue}if(X==="INTERPOLATION_END"){R=H(z,R-2,"INTERPOLATION_END","INTERPOLATION_START");continue}if(X==="STRING_END"){R=H(z,R-2,"STRING_END","STRING_START");continue}R--}return z[R]&&z[R][0]==="IDENTIFIER"&&(D(z[R][1])||(R===0||z[R-1][0]==="INDENT"||z[R-1][0]==="TERMINATOR"||z[R-1][0]==="RENDER"))};this.scanTokens(function(z,q,R){let X=z[0],B=q<R.length-1?R[q+1]:null;if(X==="RENDER")return A=!0,G=Y+1,1;if(X==="INDENT")return Y++,1;if(X==="OUTDENT"){Y--;let I=0;while(Z.length>0&&Z[Z.length-1]>Y){let O=F("CALL_END",")",z);R.splice(q+1+I,0,O),Z.pop(),I++}if(A&&Y<G)A=!1;return 1+I}if(!A)return 1;if(X==="="&&q>0){let I=R[q-1][0];if(I==="TERMINATOR"||I==="INDENT"||I==="RENDER"){let O=F("IDENTIFIER","__text__",z),M=F("CALL_START","(",z);return R.splice(q,1,O,M),this.detectEnd(q+2,(P)=>P[0]==="TERMINATOR"||P[0]==="OUTDENT",(P,E)=>R.splice(E,0,F("CALL_END",")",P)),{returnOnNegativeLevel:!0}),2}}if(X==="UNARY_MATH"&&z[1]==="~"&&B&&B[0]==="IDENTIFIER"){z[0]="PROPERTY",z[1]="__transition__";let I=F(":",":",z),O=F("STRING",`"${B[1]}"`,B);return R.splice(q+1,1,I,O),1}if(X==="PROPERTY"&&z[1][0]==="$"&&z[1].length>1)return z[0]="STRING",z[1]=`"data-${z[1].slice(1)}"`,1;if(X==="IDENTIFIER"&&!z.spaced){let I=[z[1]],O=q+1;while(O+1<R.length){let M=R[O],P=R[O+1];if(M[0]==="-"&&!M.spaced&&(P[0]==="IDENTIFIER"||P[0]==="PROPERTY")){if(I.push(P[1]),O+=2,P[0]==="PROPERTY")break}else break}if(I.length>1&&O>q+1&&R[O-1][0]==="PROPERTY"){let M=I.join("-");if(M[0]==="$")M="data-"+M.slice(1);return z[0]="STRING",z[1]=`"${M}"`,R.splice(q+1,O-q-1),1}}if(X==="."){let I=q>0?R[q-1]:null,O=I?I[0]:null;if(O==="INDENT"||O==="TERMINATOR"){if(B&&B[0]==="PROPERTY"){let M=q+2<R.length?R[q+2]:null;if(!M||M[0]!==":"){let P=F("IDENTIFIER","div",z);return R.splice(q,0,P),2}}if(!B||B[0]!=="(")return z[0]="IDENTIFIER",z[1]="div",0}}if(X==="IDENTIFIER"||X==="PROPERTY"){let I=R[q+1],O=R[q+2];if(I&&I[0]==="#"&&O&&(O[0]==="PROPERTY"||O[0]==="IDENTIFIER")){if(z[1]=z[1]+"#"+O[1],O.spaced)z.spaced=!0;return R.splice(q+1,2),0}}if(X==="BIND"){let I=q>0?R[q-1]:null,O=R[q+1];if(I&&(I[0]==="IDENTIFIER"||I[0]==="PROPERTY")&&O&&O[0]==="IDENTIFIER")return I[1]=`__bind_${I[1]}__`,z[0]=":",z[1]=":",1}if(X==="@"){let I=q+1;if(I<R.length&&R[I][0]==="PROPERTY"){I++;while(I+1<R.length&&R[I][0]==="."&&R[I+1][0]==="PROPERTY")I+=2;if(I>q+2&&I<R.length&&R[I][0]===":"){let O=F("[","[",z);R.splice(q,0,O);let M=F("]","]",R[I+1]);return R.splice(I+1,0,M),2}}}if(X==="."&&B&&B[0]==="("){let I=q>0?R[q-1]:null,O=I?I[0]:null,M=O==="INDENT"||O==="TERMINATOR",P=F("PROPERTY","__clsx",z);B[0]="CALL_START";let E=1;for(let S=q+2;S<R.length&&E>0;S++)if(R[S][0]==="("||R[S][0]==="CALL_START")E++;else if(R[S][0]===")"){if(E--,E===0)R[S][0]="CALL_END"}else if(R[S][0]==="CALL_END")E--;if(M){let S=F("IDENTIFIER","div",z);return R.splice(q,0,S),R.splice(q+2,0,P),3}else if(O===":")return R[q]=F("IDENTIFIER","__clsx",z),1;else return R.splice(q+1,0,P),2}if(B&&B[0]==="INDENT"){if(B.fromThen)return 1;if(X==="->"||X==="=>"||X==="CALL_START"||X==="(")return 1;let I=!1,O=q>0?R[q-1][0]:null,M=O==="IF"||O==="UNLESS"||O==="WHILE"||O==="UNTIL"||O==="WHEN"||O==="FORIN"||O==="FOROF"||O==="FORAS"||O==="FORASAWAIT"||O==="BY",P=!1;if(X==="CALL_END"){let S=1;for(let N=q-1;N>=0&&S>0;N--)if(R[N][0]==="CALL_END")S++;else if(R[N][0]==="CALL_START"){if(S--,S===0&&N>0&&R[N-1][0]==="PROPERTY"&&R[N-1][1]==="__clsx")P=!0}}let E=X==="IDENTIFIER"&&(O==="INDENT"||O==="TERMINATOR"||O==="RENDER");if(P)I=!0;else if(X==="IDENTIFIER"&&D(z[1])&&!M)I=!0;else if(X==="IDENTIFIER"&&!M)I=E||J(R,q);else if(X==="PROPERTY"||X==="STRING"||X==="STRING_END"||X==="NUMBER"||X==="BOOL"||X==="CALL_END"||X===")"||X==="PRESENCE")I=J(R,q);if(I){let S=!1;if(X==="PROPERTY"&&q>0&&R[q-1][0]==="."){let L=q;while(L>=2&&R[L-1][0]==="."&&R[L-2][0]==="PROPERTY")L-=2;if(L>=2&&R[L-1][0]==="."&&R[L-2][0]==="IDENTIFIER"&&D(R[L-2][1])){let j=L>=3?R[L-3][0]:null;if(!j||j==="INDENT"||j==="OUTDENT"||j==="TERMINATOR"||j==="RENDER")S=!0}}if(P||X==="IDENTIFIER"&&(D(z[1])||E)||S){let L=F("CALL_START","(",z),j=F("->","->",z);return j.newLine=!0,R.splice(q+1,0,L,j),Z.push(Y+1),3}else{let L=F(",",",",z),j=F("->","->",z);return j.newLine=!0,R.splice(q+1,0,L,j),3}}}if(X==="IDENTIFIER"&&K(z[1])&&B&&(B[0]==="OUTDENT"||B[0]==="TERMINATOR"))return R.splice(q+1,0,F("CALL_START","(",z),F("CALL_END",")",z)),3;return 1})};let u=f.prototype;u.isHtmlTag=function(F){let A=F.split("#")[0];return R1.has(A.toLowerCase())},u.isComponent=function(F){if(!F||typeof F!=="string")return!1;return/^[A-Z]/.test(F)},u.collectTemplateClasses=function(F){let A=[],G=F;while(this.is(G,".")){let K=G[2];if(typeof K==="string"||K instanceof String)A.unshift(K.valueOf());G=G[1]}let Y=typeof G==="string"?G:G instanceof String?G.valueOf():null;if(Y===null)return{tag:null,classes:A,id:void 0,base:G};let[Z,Q]=Y.split("#");if(!Z)Z="div";return{tag:Z,classes:A,id:Q,base:G}};let $=(F)=>typeof F==="string"?F:F instanceof String?F.valueOf():null,W=(F,A)=>{if(!(F instanceof String))return A;let G=new String(A);if(F.predicate)G.predicate=!0;if(F.await)G.await=!0;return G.predicate||G.await?G:A};u.transformComponentMembers=function(F,A=new Set){let G=this._self;if(!Array.isArray(F)){let Y=$(F);if(Y&&A.has(Y))return F;if(Y&&this.reactiveMembers&&this.reactiveMembers.has(Y))return[".",[".",G,Y],W(F,"value")];if(Y&&this.componentMembers&&this.componentMembers.has(Y))return[".",G,W(F,Y)];return F}if(F[0]==="."&&F[1]==="this"&&$(F[2])!=null){let Y=F[2],Z=$(Y);if(this.reactiveMembers&&this.reactiveMembers.has(Z))return[".",[".",G,Z],W(Y,"value")];return this._factoryMode?[".",G,Y]:F}if(F[0]==="."||F[0]==="?.")return[F[0],this.transformComponentMembers(F[1]),F[2]];if(F[0]==="->"){let Y=F[1],Z=new Set(A);if(Array.isArray(Y))for(let Q of Y){let K=$(Array.isArray(Q)&&Q[0]==="default"?Q[1]:Q);if(K)Z.add(K)}return["=>",F[1],this.transformComponentMembers(F[2],Z)]}if(F[0]==="object"||F[0]==="map-literal")return[F[0],...F.slice(1).map((Y)=>{if(Array.isArray(Y)&&Y[0]==="...")return["...",this.transformComponentMembers(Y[1],A)];if(Array.isArray(Y)&&Y.length>=2){let Z=Y[1],Q=Array.isArray(Z)?this.transformComponentMembers(Z,A):Z,K=this.transformComponentMembers(Y[2],A);return[Y[0],Q,K]}return this.transformComponentMembers(Y,A)})];if(F[0]==="block"||F[0]==="program"){let Y=new Set(A),Z=[F[0]];for(let Q=1;Q<F.length;Q++){let K=F[Q];if(Array.isArray(K)&&K[0]==="="){let D=$(K[1]);if(D&&!(this.reactiveMembers&&this.reactiveMembers.has(D))){Z.push(["=",K[1],this.transformComponentMembers(K[2],Y)]),Y.add(D);continue}}Z.push(this.transformComponentMembers(K,Y))}return Z}return F.map((Y)=>this.transformComponentMembers(Y,A))},u.emitComponent=function(F,A,G,Y){let[,Z]=A,Q=this.is(Z,"block")?Z.slice(1):[],K=[],D=[],H=[],J=[],z=[],q=[],R=[],X=[],B=null,I=new Set,O=new Set;for(let V of Q){if(!Array.isArray(V))continue;let[C]=V;if(C==="offer"){if(V=V[1],!Array.isArray(V))continue;C=V[0];let y=O1(V[1]);if(y)R.push(y)}if(C==="accept"){let y=typeof V[1]==="string"?V[1]:O1(V[1]);if(y)X.push(y),I.add(y),O.add(y)}else if(C==="."&&V[1]==="this"&&O1(V)){let y=typeof V[2]==="string"||V[2]instanceof String?V[2].valueOf():null;if(y)K.push({name:y,value:void 0,isPublic:!0,type:V[2]?.type||null,required:!0}),I.add(y),O.add(y)}else if(C==="state"){let y=O1(V[1]);if(y)K.push({name:y,value:V[2],isPublic:U2(V[1]),type:F2(V[1])}),I.add(y),O.add(y)}else if(C==="computed"){let y=O1(V[1]);if(y)D.push({name:y,expr:V[2],type:F2(V[1])}),I.add(y),O.add(y)}else if(C==="readonly"){let y=O1(V[1]);if(y)H.push({name:y,value:V[2],isPublic:U2(V[1]),type:F2(V[1])}),I.add(y)}else if(C==="="){let y=O1(V[1]);if(y)if(w2.has(y))z.push({name:y,value:V[2]});else{let x=V[2];if(Array.isArray(x)&&(x[0]==="->"||x[0]==="=>"))J.push({name:y,func:x}),I.add(y);else K.push({name:y,value:x,isPublic:U2(V[1])}),I.add(y),O.add(y)}}else if(C==="effect")q.push(V);else if(C==="render")B=V;else if(C==="object")for(let y=1;y<V.length;y++){let x=V[y];if(!Array.isArray(x))continue;let[,r,f1]=x;if(typeof r==="string"&&w2.has(r))z.push({name:r,value:f1});else if(typeof r==="string")J.push({name:r,func:f1}),I.add(r)}}let M=new Map;for(let{name:V}of J)if(/^on[A-Z]/.test(V)&&!w2.has(V)){let C=V[2].toLowerCase()+V.slice(3);if(c2.has(C))M.set(C,V)}let P=A[0]?.valueOf?.()??null,E=new Set;for(let{name:V,isPublic:C}of K)if(C)E.add(V);for(let{name:V,isPublic:C}of H)if(C)E.add(V);let S=this.componentMembers,N=this.reactiveMembers,L=this._autoEventHandlers,j=this._inheritsTag;if(this.componentMembers=I,this.reactiveMembers=O,this._autoEventHandlers=M.size>0?M:null,this._inheritsTag=P||null,this.options.stubComponents){let V=(h)=>h?h.replace(/::/g,":").replace(/(\w+(?:<[^>]+>)?)\?\?/g,"$1 | null | undefined").replace(/(\w+(?:<[^>]+>)?)\?(?![.:])/g,"$1 | undefined").replace(/(\w+(?:<[^>]+>)?)\!/g,"NonNullable<$1>"):null,C=[],y=this._componentTypeParams||"";C.push(`class ${y}{`),C.push(" declare _root: Element | null; declare app: any;"),C.push(" emit(_name: string, _detail?: any): void {}");let x=[];for(let{name:h,type:c,isPublic:g,required:l}of K){if(!g)continue;let t=V(c),e=l?"":"?";x.push(`${h}${e}: ${t||"any"}`),x.push(`__bind_${h}__?: Signal<${t||"any"}>`)}for(let{name:h,type:c,isPublic:g}of H){if(!g)continue;let l=V(c);x.push(`${h}?: ${l||"any"}`)}{let c=x.length>0&&K.some((l)=>l.isPublic&&l.required)?"":"?",g=x.length>0?`{${x.join("; ")}}`:"{}";if(P)g+=` & __RipProps<'${P}'>`;C.push(` constructor(_props${c}: ${g}) {}`)}let r=(h)=>{let c=h?.valueOf?.()??h;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:h,type:c,value:g}of K){let l=V(c)||r(g);C.push(l?` declare ${h}: Signal<${l}>;`:` declare ${h}: Signal<any>;`)}for(let{name:h,type:c,value:g}of H){let l=V(c)||r(g);C.push(l?` declare ${h}: ${l};`:` declare ${h}: any;`)}for(let{name:h,expr:c,type:g}of D){let l=V(g),t=l?`: Computed<${l}>`:"";if(this.is(c,"block")){let e=this.transformComponentMembers(c),v=this.emitFunctionBody(e);C.push(` ${h}${t} = __computed(() => ${v});`)}else{let e=this.emitInComponent(c,"value");C.push(` ${h}${t} = __computed(() => ${e});`)}}C.push(" _init(props) {");for(let{name:h,value:c,isPublic:g}of H){let l=this.emitInComponent(c,"value");C.push(g?` this.${h} = props.${h} ?? ${l};`:` this.${h} = ${l};`)}for(let{name:h,value:c,isPublic:g,required:l,type:t}of K)if(g&&l)C.push(` this.${h} = __state(props.__bind_${h}__ ?? props.${h});`);else if(g){let e=this.emitInComponent(c,"value");C.push(` this.${h} = __state(props.__bind_${h}__ ?? props.${h} ?? ${e});`)}else{let e=this.emitInComponent(c,"value");C.push(` this.${h} = __state(${e});`)}for(let h of q){let c=h[2],g=this.containsAwait(c)?"async ":"";if(this.is(c,"block")){let l=this.transformComponentMembers(c),t=this.emitFunctionBody(l,[],!0);C.push(` __effect(${g}() => ${t});`)}else{let l=this.emitInComponent(c,"value");C.push(` __effect(${g}() => { ${l}; });`)}}C.push(" }");let f1=new Map;for(let[h,c]of M)f1.set(c,h);if(B){let h=(c)=>{if(!Array.isArray(c))return;let g=c[0]?.valueOf?.()??c[0];if(typeof g==="string"&&g!=="object"&&g!=="switch"&&R1.has(g.split(/[.#]/)[0]))for(let l=1;l<c.length;l++){let t=c[l],e=this.is(t,"object")?t:null;if(!e&&Array.isArray(t)&&(t[0]==="->"||t[0]==="=>")&&this.is(t[2],"block")){for(let v=1;v<t[2].length;v++)if(this.is(t[2][v],"object")){e=t[2][v];break}}if(!e)continue;for(let v=1;v<e.length;v++){let k=e[v];if(!Array.isArray(k)||k.length<2)continue;let[,o,a]=k;if(Array.isArray(o)&&o[0]==="."&&o[1]==="this"&&Array.isArray(a)&&a[0]==="."&&a[1]==="this"){let b=typeof o[2]==="string"?o[2]:o[2]?.valueOf?.(),n=typeof a[2]==="string"?a[2]:a[2]?.valueOf?.();if(b&&n&&!f1.has(n))f1.set(n,b)}}}for(let l=1;l<c.length;l++)h(c[l])};h(B)}for(let{name:h,func:c}of J)if(Array.isArray(c)&&(c[0]==="->"||c[0]==="=>")){let[,g,l]=c;if((!g||Array.isArray(g)&&g.length===0)&&this.containsIt(l))g=["it"];let t=Array.isArray(g)?g.map((a)=>{let b=this.formatParam(a);if(a?.type)b+=`: ${a.type}`;return b}).join(", "):"",e=f1.get(h);if(e&&Array.isArray(g)&&g.length>0){let a=g[0];if(!(a?.type||a instanceof String&&a.type)&&typeof(a?.valueOf?.()??a)==="string"){let n=a?.valueOf?.()??a;t=t.replace(n,`${n}: HTMLElementEventMap['${e}']`)}}let v=this.reactiveMembers?this.transformComponentMembers(l):l,k=this.containsAwait(l),o=this.emitFunctionBody(v,g||[]);C.push(` ${k?"async ":""}${h}(${t}) ${o}`)}for(let{name:h,value:c}of z)if(Array.isArray(c)&&(c[0]==="->"||c[0]==="=>")){let[,g,l]=c,t=Array.isArray(g)?g.map((o)=>this.formatParam(o)).join(", "):"",e=this.reactiveMembers?this.transformComponentMembers(l):l,v=this.containsAwait(l),k=this.emitFunctionBody(e,g||[]);C.push(` ${v?"async ":""}${h}(${t}) ${k}`)}if(B){let h=[],c=0,g=this.options.source?.split(`
|
|
15
|
-
`),l=(v)=>{let k=[];for(let o of v){let a=null;if(this.is(o,"object"))a=o;else if(Array.isArray(o)&&(o[0]==="->"||o[0]==="=>")&&this.is(o[2],"block")){for(let b=1;b<o[2].length;b++)if(this.is(o[2][b],"object")){a=o[2][b];break}}if(a)for(let b=1;b<a.length;b++){let n=a[b],[,m,p]=n;if(typeof m==="string"&&!m.startsWith("@")){let $1=n.loc?.r??a.loc?.r;if(m.startsWith("__bind_")&&m.endsWith("__")){let d=typeof p==="string"&&this.reactiveMembers?.has(p)?`this.${p}`:this.emitInComponent(p,"value");k.push({code:`${m}: ${d}`,srcLine:$1})}else{let d=this.emitInComponent(p,"value");k.push({code:`${m}: ${d}`,srcLine:$1})}}}}return k},t=(v)=>{let k=[];for(let o of v){let a=null;if(this.is(o,"object"))a=o;else if(Array.isArray(o)&&(o[0]==="->"||o[0]==="=>")&&this.is(o[2],"block")){for(let b=1;b<o[2].length;b++)if(this.is(o[2][b],"object")){a=o[2][b];break}}if(a)for(let b=1;b<a.length;b++){let n=a[b];if(!Array.isArray(n)||n.length<2)continue;let[,m,p]=n,$1=n.loc?.r??a.loc?.r;if(Array.isArray(m)&&m[0]==="."&&m[1]==="this"){let d=typeof m[2]==="string"?m[2]:m[2]?.valueOf?.();if(!d)continue;let u1="@"+d.split(".")[0],o1=this.emitInComponent(p,"value");k.push({code:`'${u1}': ${o1}`,srcLine:$1})}else if(typeof m==="string"){if(m==="key"){let d=this.emitInComponent(p,"value"),u1=$1!=null?` // @rip-src:${$1}`:"";h.push(` (${d});${u1}`);continue}if(m.startsWith("__bind_")&&m.endsWith("__")){let d=m.slice(7,-2),u1=this.emitInComponent(p,"value");k.push({code:`${d}: ${u1}`,srcLine:$1})}else{let d=this.emitInComponent(p,"value");k.push({code:`${m}: ${d}`,srcLine:$1})}}}}return k},e=(v)=>{if(!Array.isArray(v))return;let k=v[0]?.valueOf?.()??v[0];if(k==="object")return;if(k==="if"||k==="unless"){let b=v[1];if(b!=null){let n=this.emitInComponent(b,"value"),m=v.loc?.r,p=m!=null?` // @rip-src:${m}`:"";h.push(` ${n};${p}`)}}else if(k==="?:"){let b=this.emitInComponent(v,"value"),n=v.loc?.r,m=n!=null?` // @rip-src:${n}`:"";h.push(` ${b};${m}`)}else if(k==="switch"){let b=v[1];if(b!=null){let n=this.emitInComponent(b,"value"),m=v.loc?.r,p=m!=null?` // @rip-src:${m}`:"";h.push(` ${n};${p}`)}}else if(k==="for-in"||k==="for-of"||k==="for-as"){let b=v[1],n=v[2];if(n!=null){let m=this.emitInComponent(n,"value"),p=v.loc?.r,$1=p!=null?` // @rip-src:${p}`:"",d;if(Array.isArray(b))if(b.length===1){let u1=b[0];d=Array.isArray(u1)?this.emitDestructuringPattern(u1):String(u1)}else if(k==="for-of")d=`[${b.map((u1)=>String(u1)).join(", ")}]`;else d=String(b[0]);else d=String(b);if(k==="for-of")h.push(` for (const ${d} of Object.entries(${m})) {${$1}`);else h.push(` for (const ${d} of ${m}) {${$1}`);for(let u1=3;u1<v.length;u1++)if(v[u1]!=null)e(v[u1]);h.push(" }");return}}else if(k==="__text__"){let b=v[1];if(b!=null){let n=this.emitInComponent(b,"value"),m=v.loc?.r,p=m!=null?` // @rip-src:${m}`:"";h.push(` ${n};${p}`)}}let o=(b,n,m)=>{if(typeof b!=="string"||!/^[a-z][\w-]*$/.test(b))return;if(f.GENERATORS[b])return;if(b==="null"||b==="undefined"||b==="true"||b==="false")return;let p=n.loc?.r;if(p!=null&&g){let d=new RegExp(`\\b${b}\\b`);for(let u1=p;u1<g.length;u1++)if(d.test(g[u1])){p=u1;break}}let $1=p!=null?` // @rip-src:${p}`:"";if(this.componentMembers&&this.componentMembers.has(b))h.push(` this.${b};${$1}`);else if(m)h.push(` ${b};${$1}`);else h.push(` __ripEl('${b}');${$1}`)},a=typeof k==="string"&&/^[a-z][\w-]*$/.test(k)&&!f.GENERATORS[k]&&R1.has(k.split(/[.#]/)[0]);if(k==="block")for(let b=1;b<v.length;b++)o(v[b],v,!1);else if(a){for(let b=1;b<v.length;b++)o(v[b],v,!0);for(let b=1;b<v.length;b++){let n=v[b];if(!Array.isArray(n))continue;let m=n[0]?.valueOf?.()??n[0];if(m==="object"||m==="block"||m==="__text__")continue;if(typeof m==="string"){if(/^[A-Z]/.test(m))continue;if(R1.has(m.split(/[.#]/)[0]))continue;if(/^[a-z][\w-]*$/.test(m)&&!f.GENERATORS[m])continue;if(/^(if|unless|switch|for-in|for-of|for-as|while|until|loop|loop-n|try|throw|break|continue|break-if|continue-if|control|when|return|def|->|=>|class|enum|state|computed|readonly|effect|=|program)$/.test(m))continue}try{let p=this.emitInComponent(n,"value"),$1=n.loc?.r??v.loc?.r,d=$1!=null?` // @rip-src:${$1}`:"";h.push(` ${p};${d}`)}catch{}}}for(let b=1;b<v.length;b++)e(v[b]);if(typeof k==="string"&&/^[A-Z]/.test(k)){let b=l(v.slice(1)),n=`_${c++}`,m=`ConstructorParameters<typeof ${k}>[0] & {}`;if(b.length===0){let p=v.loc?.r;h.push(` const ${n}: ${m} = {};`+(p!=null?` // @rip-src:${p}`:""))}else if(b.length===1){let p=v.loc?.r??b[0].srcLine;h.push(` const ${n}: ${m} = {${b[0].code}};`+(p!=null?` // @rip-src:${p}`:""))}else{let p=v.loc?.r;if(new Set(b.map((d)=>d.srcLine).filter((d)=>d!=null)).size<=1){let d=b[0].srcLine??p;h.push(` const ${n}: ${m} = {${b.map((u1)=>u1.code).join(", ")}};`+(d!=null?` // @rip-src:${d}`:""))}else{h.push(` const ${n}: ${m} = {`+(p!=null?` // @rip-src:${p}`:""));for(let d of b)h.push(` ${d.code},`+(d.srcLine!=null?` // @rip-src:${d.srcLine}`:""));h.push(" };")}}}else if(typeof k==="string"&&!f.GENERATORS[k]&&(R1.has(k.split(/[.#]/)[0])||/^[a-z][\w-]*$/.test(k)&&v.length>1)){let b=k.split(/[.#]/)[0],n=t(v.slice(1)),m=v.loc?.r,p=m!=null?` // @rip-src:${m}`:"";if(n.length===0)h.push(` __ripEl('${b}');${p}`);else if(n.length===1){let $1=n[0].srcLine??m,d=$1!=null?` // @rip-src:${$1}`:"";h.push(` __ripEl('${b}', {${n[0].code}});${d}`)}else if(new Set(n.map((d)=>d.srcLine).filter((d)=>d!=null)).size<=1){let d=n[0].srcLine??m,u1=d!=null?` // @rip-src:${d}`:"";h.push(` __ripEl('${b}', {${n.map((o1)=>o1.code).join(", ")}});${u1}`)}else{h.push(` __ripEl('${b}', {${p}`);for(let d of n)h.push(` ${d.code},`+(d.srcLine!=null?` // @rip-src:${d.srcLine}`:""));h.push(" });")}}};if(e(B),h.length>0){C.push(" _render() {");for(let v of h)C.push(v);C.push(" }")}}return C.push("}"),this.componentMembers=S,this.reactiveMembers=N,this._autoEventHandlers=L,this._inheritsTag=j,C.join(`
|
|
16
|
-
`)}this.usesTemplates=!0,this.usesReactivity=!0;let T=[],s="";T.push("class extends __Component {"),T.push(" _init(props) {");for(let{name:V,value:C,isPublic:y}of H){let x=this.emitInComponent(C,"value");T.push(y?` this.${V} = props.${V} ?? ${x};`:` this.${V} = ${x};`)}for(let V of X)T.push(` this.${V} = getContext('${V}');`);for(let{name:V,value:C,isPublic:y,required:x}of K)if(y&&x)T.push(` this.${V} = __state(props.__bind_${V}__ ?? props.${V});`);else if(y){let r=this.emitInComponent(C,"value");T.push(` this.${V} = __state(props.__bind_${V}__ ?? props.${V} ?? ${r});`)}else{let r=this.emitInComponent(C,"value");T.push(` this.${V} = __state(${r});`)}if(P){if(T.push(" this._rest = {};"),T.push(" for (const __k in props) {"),E.size>0){let V=[...E].map((C)=>`__k !== '${C}'`).join(" && ");T.push(` if (${V} && !__k.startsWith('__bind_')) this._rest[__k] = props[__k];`)}else T.push(" if (!__k.startsWith('__bind_')) this._rest[__k] = props[__k];");T.push(" }")}for(let{name:V,expr:C}of D)if(this.is(C,"block")){let y=this.transformComponentMembers(C),x=this.emitFunctionBody(y);T.push(` this.${V} = __computed(() => ${x});`)}else{let y=this.emitInComponent(C,"value");T.push(` this.${V} = __computed(() => ${y});`)}for(let V of R)T.push(` setContext('${V}', this.${V});`);for(let V of q){let C=V[2],y=this.containsAwait(C)?"async ":"";if(this.is(C,"block")){let x=this.transformComponentMembers(C),r=this.emitFunctionBody(x,[],!0);T.push(` __effect(${y}() => ${r});`)}else{let x=this.emitInComponent(C,"value");T.push(` __effect(${y}() => { ${x}; });`)}}if(T.push(" }"),P)T.push(" _setRestProp(key, value) {"),T.push(" if (key.startsWith('__bind_')) return;"),T.push(" this._rest || (this._rest = {});"),T.push(" if (value == null) delete this._rest[key];"),T.push(" else this._rest[key] = value;"),T.push(" this._applyInheritedProp(this._inheritedEl, key, value);"),T.push(" }"),T.push(" _applyRestToInheritedEl() {"),T.push(" if (!this._inheritedEl || !this._rest) return;"),T.push(" for (const key in this._rest) this._applyInheritedProp(this._inheritedEl, key, this._rest[key]);"),T.push(" }"),T.push(" _applyInheritedProp(el, key, value) {"),T.push(" if (!el || key === 'key' || key === 'ref' || key === 'children' || key.startsWith('__bind_')) return;"),T.push(" if (key[0] === '@') {"),T.push(" const event = key.slice(1).split('.')[0];"),T.push(" this._restHandlers || (this._restHandlers = {});"),T.push(" const prev = this._restHandlers[key];"),T.push(" if (prev) el.removeEventListener(event, prev);"),T.push(" if (typeof value === 'function') {"),T.push(" const next = (e) => __batch(() => value(e));"),T.push(" this._restHandlers[key] = next;"),T.push(" el.addEventListener(event, next);"),T.push(" } else {"),T.push(" delete this._restHandlers[key];"),T.push(" }"),T.push(" return;"),T.push(" }"),T.push(" if (key === 'class' || key === 'className') {"),T.push(" if (el instanceof SVGElement) el.setAttribute('class', __clsx(value));"),T.push(" else el.className = __clsx(value);"),T.push(" return;"),T.push(" }"),T.push(" if (key === 'style') {"),T.push(" if (value == null) { el.removeAttribute('style'); return; }"),T.push(" if (typeof value === 'string') { el.setAttribute('style', value); return; }"),T.push(" if (typeof value === 'object') { Object.assign(el.style, value); return; }"),T.push(" }"),T.push(" if (key === 'innerHTML' || key === 'textContent' || key === 'innerText') {"),T.push(" el[key] = value ?? '';"),T.push(" return;"),T.push(" }"),T.push(" if (key in el && !key.includes('-')) {"),T.push(" el[key] = value;"),T.push(" return;"),T.push(" }"),T.push(" if (value == null || value === false) {"),T.push(" el.removeAttribute(key);"),T.push(" return;"),T.push(" }"),T.push(" if (value === true) {"),T.push(" el.setAttribute(key, '');"),T.push(" return;"),T.push(" }"),T.push(" el.setAttribute(key, value);"),T.push(" }");for(let{name:V,func:C}of J)if(Array.isArray(C)&&(C[0]==="->"||C[0]==="=>")){let[,y,x]=C;if((!y||Array.isArray(y)&&y.length===0)&&this.containsIt(x))y=["it"];let r=Array.isArray(y)?y.map((g)=>this.formatParam(g)).join(", "):"",f1=this.reactiveMembers?this.transformComponentMembers(x):x,h=this.containsAwait(x),c=this.emitFunctionBody(f1,y||[]);T.push(` ${h?"async ":""}${V}(${r}) ${c}`)}for(let{name:V,value:C}of z)if(Array.isArray(C)&&(C[0]==="->"||C[0]==="=>")){let[,y,x]=C,r=Array.isArray(y)?y.map((g)=>this.formatParam(g)).join(", "):"",f1=this.reactiveMembers?this.transformComponentMembers(x):x,h=this.containsAwait(x),c=this.emitFunctionBody(f1,y||[]);T.push(` ${h?"async ":""}${V}(${r}) ${c}`)}if(B){let V=B[1],C=this.buildRender(V);if(C.blockFactories.length>0)s=C.blockFactories.join(`
|
|
1246
|
+
`}function _1(u){if(!u)return u;return u=u.replace(/::/g,":"),u=u.replace(/(\w+(?:<[^>]+>)?)\?\?/g,"$1 | null | undefined"),u=u.replace(/(\w+(?:<[^>]+>)?)\?(?![.:])/g,"$1 | undefined"),u=u.replace(/(\w+(?:<[^>]+>)?)\!/g,"NonNullable<$1>"),u}function G2(u,U,_,W,f,$){if(!Array.isArray(u))return!1;let F=u[0]?.valueOf?.()??u[0],Y=!1,Z=new Map,G=(D)=>typeof D==="string"&&/^[a-z]/.test(D),Q=(D)=>{if(!Array.isArray(D))return;let w=D[0]?.valueOf?.()??D[0];if(G(w))for(let A=1;A<D.length;A++){let R=D[A];if(!Array.isArray(R))continue;if((R[0]?.valueOf?.()??R[0])!=="object")continue;for(let P=1;P<R.length;P++){let q=R[P];if(!Array.isArray(q))continue;if((q[0]?.valueOf?.()??q[0])!=="ref")continue;let M=q[1]?.valueOf?.()??q[1];if(typeof M==="string")M=M.replace(/^["']|["']$/g,"");if(typeof M==="string"&&!Z.has(M))Z.set(M,`__RipDomEl<'${w}'> | null`)}}for(let A=1;A<D.length;A++)if(Array.isArray(D[A]))Q(D[A])},z=!1,J=null,X=null,K="";if(F==="export"&&Array.isArray(u[1])){z=!0;let D=u[1];if((D[0]?.valueOf?.()??D[0])==="="&&Array.isArray(D[2])&&(D[2][0]?.valueOf?.()??D[2][0])==="component")K=D[1]?.typeParams||"",J=D[1]?.valueOf?.()??D[1],X=D[2]}else if(F==="="&&Array.isArray(u[2])&&(u[2][0]?.valueOf?.()??u[2][0])==="component")K=u[1]?.typeParams||"",J=u[1]?.valueOf?.()??u[1],X=u[2];if(J&&X){let D=z?"export ":"",w=X[1]?.valueOf?.()??null,A=w?`__RipProps<'${w}'>`:null;if(A)Y=!0;let R=X[2],O=Array.isArray(R)&&(R[0]?.valueOf?.()??R[0])==="block"?R.slice(1):R?[R]:[],P=[],q=[],B=!1,M=(I)=>{let H=I?.valueOf?.()??I;if(typeof H!=="string")return null;if(H==="true"||H==="false")return"boolean";if(/^-?\d+(\.\d+)?$/.test(H))return"number";if(H.startsWith('"')||H.startsWith("'"))return"string";return null};for(let I of O){if(!Array.isArray(I))continue;let H=I[0]?.valueOf?.()??I[0],S,N,V,L,C;if(H==="state"||H==="readonly"||H==="computed"){if(S=I[1],V=Array.isArray(S)&&(S[0]?.valueOf?.()??S[0])==="."&&(S[1]?.valueOf?.()??S[1])==="this",N=V?S[2]?.valueOf?.()??S[2]:S?.valueOf?.()??S,L=V?S[2]?.type:S?.type,C=!0,!V){f.add(N);let T=H==="computed"?"Computed":"Signal",j=L?_1(L):M(I[2])||"any";q.push(` ${N}: ${T}<${j}>;`);continue}}else if(H==="."){if(V=(I[1]?.valueOf?.()??I[1])==="this",N=V?I[2]?.valueOf?.()??I[2]:null,L=V?I[2]?.type:null,C=!1,!V&&N)f.add(N)}else if(H==="object"){for(let T=1;T<I.length;T++){let j=I[T];if(!Array.isArray(j)||j.length<3)continue;let y=j[1]?.valueOf?.()??j[1],m=j[2];if(!Array.isArray(m))continue;let t=m[0]?.valueOf?.()??m[0];if(t!=="->"&&t!=="=>")continue;let $1=m[1];if(!Array.isArray($1))continue;if(!$1.some((x)=>x?.type))continue;let g=[];for(let x of $1){let l=x?.valueOf?.()??x,e=x?.type?_1(x.type):"any";g.push(`${l}: ${e}`)}q.push(` ${y}(${g.join(", ")}): void;`)}continue}else if(H==="render"){Y=!0,Q(I[1]);continue}else continue;if(!V||!N)continue;let E=L?_1(L):"any",n=C?"?":"";if(!C)B=!0;if(P.push(` ${N}${n}: ${E};`),H==="state")P.push(` __bind_${N}__?: Signal<${E}>;`)}if(U.push(`${D}declare class ${J}${K} {`),P.length>0||A){let I=B?"":"?";if(P.length>0){U.push(` constructor(props${I}: {`);for(let H of P)U.push(H);U.push(A?` } & ${A});`:" });")}else U.push(` constructor(props${I}: ${A});`)}else U.push(" constructor(props?: {});");for(let[I,H]of Z)q.push(` ${I}: ${H};`);for(let I of q)U.push(I);U.push("}")}if(F==="program"||F==="block"){for(let D=1;D<u.length;D++)if(Array.isArray(u[D]))Y=G2(u[D],U,_,W,f,$)||Y}if(F==="export"&&Array.isArray(u[1])&&!X)Y=G2(u[1],U,_,W,f,$)||Y;return Y}function i2(u,U,_){let[W,f]=U,$=W?.valueOf?.()??W,F=[];if(Array.isArray(f)){let G=f[0]==="block"?f.slice(1):[f];for(let Q of G)if(Array.isArray(Q)){if(Q[0]?.valueOf?.()==="="){let z=Q[1]?.valueOf?.()??Q[1],J=Q[2]?.valueOf?.()??Q[2];F.push([z,J])}}}if(F.length===0)return`const ${$} = {}`;let Y=F.map(([G,Q])=>`${G}: ${Q}`).join(", "),Z=F.map(([G,Q])=>`${Q}: "${G}"`).join(", ");return`const ${$} = {${Y}, ${Z}}`}var d2=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"]),p2=new Set(["undefined","Infinity","NaN","then","unless","until","loop","of","by","when","def","component","render","enum","interface"]),A2={and:"&&",or:"||",is:"==",isnt:"!=",not:"!",yes:"true",no:"false",on:"true",off:"false"},n2=new Set(Object.keys(A2)),s4=new Set(["case","function","var","void","with","const","let","native","implements","package","private","protected","public","static"]),t4=new Set(["break","continue","debugger"]),e4=new Set(["NEW","TYPEOF","DELETE"]),u5=new Set(["IN","OF","INSTANCEOF"]),a1=new Set(["IDENTIFIER","PROPERTY",")","]","@","THIS","SUPER","DYNAMIC_IMPORT","?."]),J2=new Set([...a1,"NUMBER","INFINITY","NAN","STRING","STRING_END","REGEX","REGEX_END","BOOL","NULL","UNDEFINED","}","MAP_END","SYMBOL"]),o1=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","@","->","=>","[","(","{","MAP_START","--","++","SYMBOL"]),f5=new Set(["+","-"]),$5=new Set(["POST_IF","POST_UNLESS","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR","||","&&","PIPE"]),U5=new Set(["STRING","STRING_END","REGEX","REGEX_END","NUMBER","BOOL","NULL","UNDEFINED","INFINITY","NAN","]","}","MAP_END","SYMBOL"]),D1=new Set(["(","[","{","MAP_START","INDENT","CALL_START","PARAM_START","INDEX_START","STRING_START","INTERPOLATION_START","REGEX_START"]),w1=new Set([")","]","}","MAP_END","OUTDENT","CALL_END","PARAM_END","INDEX_END","STRING_END","INTERPOLATION_END","REGEX_END"]),W5={"(":")",")":"(","[":"]","]":"[","{":"}","}":"{",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",MAP_START:"MAP_END",MAP_END:"MAP_START"},o2=new Set(["CATCH","THEN","ELSE","FINALLY",...w1]),z2=new Set(["IDENTIFIER","PROPERTY","SUPER",")","CALL_END","]","INDEX_END","@","THIS"]),_5=new Set(["IDENTIFIER","PROPERTY",")","CALL_END","]","INDEX_END"]),Y5=new Set(["IF","TRY","FINALLY","CATCH","CLASS","SWITCH","COMPONENT"]),a2=new Set(["ELSE","->","=>","TRY","FINALLY","THEN"]),F5=new Set(["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"]),L1=new Set(["INDENT","OUTDENT","TERMINATOR"]),r2=new Set([".","?."]),s2=new Set(["\\",".","?.","UNARY","DO","DO_IIFE","MATH","UNARY_MATH","+","-","**","SHIFT","RELATION","COMPARE","&","^","|","&&","||","TERNARY","EXTENDS"]),Z5=new Set([...J2,"++","--"]),t2=new Set(["-=","+=","/=","*=","%=","||=","&&=","?=","??=","<<=",">>=",">>>=","&=","^=","|=","**=","//=","%%="]),G5=new Set(["*","/","%","//","%%"]),Q5=new Set(["==","!=","===","!==","<",">","<=",">=","=~"]),z5=new Set(["<<",">>",">>>"]),A5=new Set(["!","~"]),J5=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+(?:!|[?](?![.?![(]))?)([^\n\S]*:(?![=:]))?/,X5=/^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,w5=/^(?:<=>|::|\*>|[-=]>|~>|~=|:=|=!|===|!==|\?\!|\?\?|=~|\|>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?\.?|\.{2,3})/,K5=/^[^\n\S]+/,M5=/^(?:\n[^\n\S]*)+/,H5=/^(\s*)###([^#][\s\S]*?)(?:###([^\n\S]*)|###$)|^((?:\s*#(?!##[^#]).*)+)/,D5=/^[-=]>/,O5=/^(?:~[=>]|=!)/,q5=/^(?:'''\\|"""\\|'''|"""|'|")/,R5=/^(?:[^\\']|\\[\s\S])*/,P5=/^(?:[^\\"#$]|\\[\s\S]|\#(?!\{)|\$(?!\{))*/,B5=/^(?:[^\\']|\\[\s\S]|'(?!''))*/,I5=/^(?:[^\\"#$]|\\[\s\S]|"(?!"")|\#(?!\{)|\$(?!\{))*/,e2=/\n+([^\n\S]*)(?=\S)/g,S5=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/,u3=/^\w*/,N5=/^(?!.*(.).*\1)[gimsuy]*$/,E5=/^(?:[^\\\/#\s]|\\[\s\S]|\/(?!\/\/)|\#(?!\{)|\s+(?:#(?!\{).*)?)*/,L5=/^`(?!``)((?:[^`\\]|\\[\s\S])*)`/,V5=/^```((?:[^`\\]|\\[\s\S]|`(?!``))*)```/,C5=/\s+$/,f3=/^\s*(?:,|\??\.(?![.\d]))/,T5=65279;function r1(u,U,{pre:_=0,row:W=0,col:f=0,len:$=0,data:F=null}={}){let Y=[u,U];return Y.pre=_,Y.data=F,Y.loc={r:W,c:f,n:$},Y.spaced=_>0,Y.newLine=!1,Y}function A1(u,U,_){let W=r1(u,U);if(W.generated=!0,_)W.origin=_;return W}function J1(u,{row:U=0,col:_=0,len:W=1}={}){let f=SyntaxError(u);throw f.location={first_line:U,first_column:_,last_column:_+W-1},f}function j5(u){if(u==null)return NaN;switch(u.charAt(1)){case"b":return parseInt(u.slice(2).replace(/_/g,""),2);case"o":return parseInt(u.slice(2).replace(/_/g,""),8);case"x":return parseInt(u.slice(2).replace(/_/g,""),16);default:return parseFloat(u.replace(/_/g,""))}}class K1{tokenize(u,U={}){this.code=u,this.tokens=[],this.ends=[],this.chunk="",this.pos=0,this.row=U.row||0,this.col=U.col||0,this.indent=0,this.indents=[],this.seenFor=!1,this.seenImport=!1,this.seenExport=!1,this.importSpecifierList=!1,this.exportSpecifierList=!1,this.inRenderBlock=!1,this.renderIndent=0,this.inTypeAnnotation=!1,u=this.clean(u),this.code=u;while(this.pos<u.length){this.chunk=u.slice(this.pos);let _=this.identifierToken()||this.commentToken()||this.whitespaceToken()||this.lineToken()||this.stringToken()||this.numberToken()||this.regexToken()||this.jsToken()||this.literalToken();if(_===0)J1(`unexpected character: ${this.chunk.charAt(0)}`,{row:this.row,col:this.col});if(this.advance(_),U.untilBalanced&&this.ends.length===0)return{tokens:this.tokens,index:this.pos}}if(this.closeIndentation(),this.ends.length>0){let _=this.ends[this.ends.length-1];J1(`missing ${_.tag}`,{row:this.row,col:this.col})}if(U.rewrite===!1)return this.tokens;return this.rewrite(this.tokens)}clean(u){if(u.charCodeAt(0)===T5)u=u.slice(1);if(u=u.replace(/\r\n?/g,`
|
|
1247
|
+
`),u=u.replace(C5,""),/^[^\n\S]/.test(u))u=`
|
|
1248
|
+
`+u;return u}advance(u){let U=this.code.slice(this.pos,this.pos+u);for(let _=0;_<U.length;_++)if(U[_]===`
|
|
1249
|
+
`)this.row++,this.col=0;else this.col++;this.pos+=u}emit(u,U,{len:_,data:W,pre:f}={}){let $=r1(u,U,{pre:f??0,row:this.row,col:this.col,len:_??(typeof U==="string"?U.length:0),data:W});return this.tokens.push($),$}prev(){return this.tokens[this.tokens.length-1]}prevTag(){let u=this.prev();return u?u[0]:void 0}prevVal(){let u=this.prev();return u?u[1]:void 0}identifierToken(){if(O5.test(this.chunk))return 0;let u=J5.exec(this.chunk);if(!u)return 0;let[,U,_]=u,W=U.length,f={},$;if(U==="own"&&this.prevTag()==="FOR")return this.emit("OWN",U,{len:W}),W;if(U==="from"&&this.prevTag()==="YIELD")return this.emit("FROM",U,{len:W}),W;if(U==="as"&&!this.seenFor&&(this.seenImport||this.seenExport)){if(this.seenImport){if(this.prevVal()==="*")this.prev()[0]="IMPORT_ALL"}let Q=this.prevTag();if(Q==="DEFAULT"||Q==="IMPORT_ALL"||Q==="IDENTIFIER")return this.emit("AS",U,{len:W}),W}if((U==="as"||U==="as!")&&this.seenFor)return this.seenFor=!1,this.emit(U==="as!"?"FORASAWAIT":"FORAS","as",{len:W}),W;if(U==="default"&&this.seenExport&&(this.prevTag()==="EXPORT"||this.prevTag()==="AS"))return this.emit("DEFAULT",U,{len:W}),W;let F;if(U==="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 Y=this.prev();if(_&&Y&&Y[0]==="TERNARY")_=null;if(_&&_.length>1&&/[a-zA-Z_$]/.test(this.chunk[W+_.length]))_=null;if(_||Y&&(Y[0]==="."||Y[0]==="?."||!Y.spaced&&Y[0]==="@")){if($="PROPERTY",this.inRenderBlock&&Y&&Y[0]==="."&&!_){let Q=this.chunk.slice(W);while(Q[0]==="-"&&/^-[a-zA-Z]/.test(Q)){let z=/^-([a-zA-Z][\w]*)/.exec(Q);if(!z)break;U+="-"+z[1],W+=1+z[1].length,Q=this.chunk.slice(W)}}}else $="IDENTIFIER";let Z=U.endsWith("!")||U.endsWith("?")?U.slice(0,-1):U;if($==="IDENTIFIER"&&!U.endsWith("!")&&!U.endsWith("?")&&(d2.has(U)||p2.has(U)||n2.has(U))&&!(this.exportSpecifierList&&n2.has(U))){if(A2[U]!==void 0)f.original=U,U=A2[U];$=this.classifyKeyword(U,$,f)}if($==="IDENTIFIER"&&s4.has(Z))if(Z==="void"&&(this.inTypeAnnotation||this.prevTag()==="=>"));else J1(`reserved word '${Z}'`,{row:this.row,col:this.col,len:W});if($==="PROPERTY"&&Y){if(Y[0]==="."&&this.tokens.length>1){let Q=this.tokens[this.tokens.length-2];if(Q[0]==="UNARY"&&Q[1]==="new")Q[0]="NEW_TARGET";if(Q[0]==="IMPORT"&&Q[1]==="import")this.seenImport=!1,Q[0]="IMPORT_META"}}if(U.length>1&&U.endsWith("!"))f.await=!0,U=U.slice(0,-1);if(U.length>1&&U.endsWith("?"))f.predicate=!0,U=U.slice(0,-1);let G=this.emit($,U,{len:W,data:Object.keys(f).length?f:null});if($==="RENDER")this.inRenderBlock=!0,this.renderIndent=this.indent;if(_)return this.emit(":",":",{len:1}),W+_.length;return W}classifyKeyword(u,U,_){switch(u){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"true":case"false":return"BOOL";case"&&":case"||":return u}if(t4.has(u))return"STATEMENT";let W=u.toUpperCase();if(W==="WHEN"&&L1.has(this.prevTag()))return"LEADING_WHEN";if(W==="FOR")return this.seenFor={endsLength:this.ends.length},"FOR";if(W==="UNLESS")return"UNLESS";if(W==="IMPORT")return this.seenImport=!0,"IMPORT";if(W==="EXPORT")return this.seenExport=!0,"EXPORT";if(e4.has(W))return"UNARY";if(u5.has(W)){if(W!=="INSTANCEOF"&&this.seenFor)return this.seenFor=!1,"FOR"+W;if(this.prevVal()==="!"){let f=this.tokens.pop();_.invert=f.data?.original||f[1]}return"RELATION"}if(d2.has(u)||p2.has(u))return W;return U}commentToken(){if(this.inRenderBlock){if(/^#[a-zA-Z_]/.test(this.chunk)){let U=this.prev();if(U&&(U[0]==="IDENTIFIER"||U[0]==="PROPERTY"))return 0;let _=/^#([a-zA-Z_][\w-]*)/.exec(this.chunk);if(_)return this.emit("IDENTIFIER","div#"+_[1]),_[0].length}if(/^\s+#[a-zA-Z_]/.test(this.chunk))return 0}if(this.chunk[0]==="#"){let U=this.prev();if(U&&!U.spaced&&!U.newLine&&(U[0]==="IDENTIFIER"||U[0]==="PROPERTY"))return 0}let u=H5.exec(this.chunk);if(!u)return 0;return u[0].length}whitespaceToken(){let u=K5.exec(this.chunk);if(!u&&this.chunk[0]!==`
|
|
1250
|
+
`)return 0;let U=this.prev();if(U)if(u)U.spaced=!0,U.pre=u[0].length;else U.newLine=!0;return u?u[0].length:0}lineToken(){let u=M5.exec(this.chunk);if(!u)return 0;let U=u[0],_=U.length-1-U.lastIndexOf(`
|
|
1251
|
+
`);if(this.isUnfinished()){if(_<this.indent&&/^\s*,/.test(this.chunk)&&!s2.has(this.prevTag())){if(this.outdentTo(_,U.length),this.prevTag()==="TERMINATOR")this.tokens.pop();return U.length}return U.length}if(this.seenFor&&!(this.seenFor.endsLength<this.ends.length))this.seenFor=!1;if(!this.importSpecifierList)this.seenImport=!1;if(!this.exportSpecifierList)this.seenExport=!1;if(this.inTypeAnnotation=!1,_===this.indent)return this.emitNewline(),U.length;if(_>this.indent){if(!this.tokens.length)return this.indent=_,U.length;let W=_-this.indent;return this.emit("INDENT",W,{len:_}),this.indents.push(W),this.ends.push({tag:"OUTDENT"}),this.indent=_,U.length}return this.outdentTo(_,U.length),U.length}outdentTo(u,U=0){if(this.inRenderBlock&&u<=this.renderIndent)this.inRenderBlock=!1;let _=this.indent-u;while(_>0){let W=this.indents[this.indents.length-1];if(!W)_=0;else this.indents.pop(),this.pair("OUTDENT"),this.emit("OUTDENT",_,{len:U}),_-=W}this.emitNewline(),this.indent=u}closeIndentation(){this.outdentTo(0)}emitNewline(){if(this.prevTag()!=="TERMINATOR")this.emit("TERMINATOR",`
|
|
1252
|
+
`,{len:0})}isUnfinished(){if(this.inRenderBlock&&f3.test(this.chunk)&&/^\s*\./.test(this.chunk))return!1;if(this.inRenderBlock&&this.prevTag()==="."){let _=this.tokens.length;if(_>=2){let W=this.tokens[_-2][0];if(W==="INDENT"||W==="TERMINATOR"||W==="OUTDENT")return!1}}let u=this.tokens[this.tokens.length-1];if(u?.[0]==="COMPARE"&&u[1]===">"||u?.[0]==="SHIFT"&&(u[1]===">>"||u[1]===">>>")){let _=0;for(let W=this.tokens.length-1;W>=0;W--){let f=this.tokens[W];if(f[0]==="COMPARE"&&f[1]===">")_++;else if(f[0]==="SHIFT"&&f[1]===">>")_+=2;else if(f[0]==="SHIFT"&&f[1]===">>>")_+=3;else if(f[0]==="COMPARE"&&f[1]==="<")_--;if(_===0&&f[0]==="TYPE_ANNOTATION")return!1;if(_===0&&f[0]==="IDENTIFIER"&&f[1]==="type")return!1;if(f[0]==="TERMINATOR"||f[0]==="INDENT"||f[0]==="OUTDENT")break}}return f3.test(this.chunk)||s2.has(this.prevTag())}pair(u){let U=this.ends[this.ends.length-1];if(!U||u!==U.tag){if(U?.tag==="OUTDENT"){let _=this.indents[this.indents.length-1];if(_)this.outdentTo(this.indent-_);return this.pair(u)}J1(`unmatched ${u}`,{row:this.row,col:this.col})}return this.ends.pop()}stringToken(){let u=q5.exec(this.chunk);if(!u)return 0;let U=u[0],_=U.length>1&&U.endsWith("\\"),W=_?U.slice(0,-1):U,f=this.prev();if(f&&this.prevVal()==="from"&&(this.seenImport||this.seenExport))f[0]="FROM";let $;switch(W){case"'":$=R5;break;case'"':$=P5;break;case"'''":$=B5;break;case'"""':$=I5;break}let{tokens:F,index:Y}=this.matchWithInterpolations($,U,W),Z=W.length===3,G=null;if(Z)G=this.processHeredocIndent(Y,W,F);return this.mergeInterpolationTokens(F,{quote:W,indent:G,endOffset:Y,raw:_}),Y}processHeredocIndent(u,U,_){let W=u-U.length,f=W-1;while(f>=0&&this.chunk[f]!==`
|
|
1253
|
+
`)f--;f++;let $=this.chunk.slice(f,W),F=/^\s*$/.test($)?$.length:null,Y="";for(let Q of _)if(Q[0]==="NEOSTRING")Y+=Q[1];let Z=null,G;e2.lastIndex=0;while(G=e2.exec(Y))if(Z===null||G[1].length>0&&G[1].length<Z.length)Z=G[1];if(F===null)return Z;if(Z===null)return" ".repeat(F);if(F<=Z.length)return" ".repeat(F);return Z}matchWithInterpolations(u,U,_,W){if(!_)_=U;if(!W)W=/^[#$]\{/;let f=[],$=U.length;if(this.chunk.slice(0,$)!==U)return null;let F=this.chunk.slice($);while(!0){let[Y]=u.exec(F);f.push(["NEOSTRING",Y,{offset:$}]),F=F.slice(Y.length),$+=Y.length;let Z=W.exec(F);if(!Z)break;let Q=Z[0].length-1,z=F.slice(Q),J=new K1().tokenize(z,{row:this.row,col:this.col+$+Q,untilBalanced:!0,rewrite:!1}),X=J.index+Q;if(F[X-1]==="}"){let D=J.tokens[0],w=J.tokens[J.tokens.length-1];D[0]="INTERPOLATION_START",D[1]="(",w[0]="INTERPOLATION_END",w[1]=")"}if(J.tokens[1]?.[0]==="TERMINATOR")J.tokens.splice(1,1);let K=J.tokens.length;if(K>2&&J.tokens[K-3]?.[0]==="INDENT"&&J.tokens[K-2]?.[0]==="OUTDENT")J.tokens.splice(K-3,2);f.push(["TOKENS",J.tokens]),F=F.slice(X),$+=X}if(F.slice(0,_.length)!==_)J1(`missing ${_}`,{row:this.row,col:this.col});return{tokens:f,index:$+_.length}}mergeInterpolationTokens(u,{quote:U,indent:_,endOffset:W,raw:f}){if(u.length>1)this.emit("STRING_START","(",{len:U?.length||0,data:{quote:U}});for(let $=0;$<u.length;$++){let[F,Y]=u[$];if(F==="TOKENS")for(let Z of Y)this.tokens.push(Z);else if(F==="NEOSTRING"){let Z=Y;if(_){let G=new RegExp("\\n"+_,"g");Z=Z.replace(G,`
|
|
1254
|
+
`)}if($===0&&U?.length===3)Z=Z.replace(/^\n/,"");if($===u.length-1&&U?.length===3)Z=Z.replace(/\n[^\S\n]*$/,"");if(f)Z=Z.replace(/\\([nrtbfv0\\'"`xu])/g,"\\\\$1");this.emit("STRING",`"${Z}"`,{len:Y.length,data:{quote:U}})}}if(u.length>1)this.emit("STRING_END",")",{len:U?.length||0});return W}numberToken(){let u=X5.exec(this.chunk);if(!u)return 0;let U=u[0],_=U.length,W={row:this.row,col:this.col};if(/^0[BOX]/.test(U))J1(`radix prefix in '${U}' must be lowercase`,{...W,col:W.col+1});if(/^0\d*[89]/.test(U))J1(`decimal literal '${U}' must not be prefixed with '0'`,{...W,len:_});if(/^0\d+/.test(U))J1(`octal literal '${U}' must be prefixed with '0o'`,{...W,len:_});let f=j5(U),$=f===1/0?"INFINITY":"NUMBER",F={parsedValue:f};if($==="INFINITY")F.original=U;return this.emit($,U,{len:_,data:F}),_}regexToken(){let u=this.matchWithInterpolations(E5,"///");if(u){let{tokens:G,index:Q}=u,[z]=u3.exec(this.chunk.slice(Q)),J=Q+z.length;if(G.length===1||!G.some((X)=>X[0]==="TOKENS")){let X=(G[0]?.[1]||"").replace(/(?<!\\)\//g,"\\/");this.emit("REGEX",`/${X}/${z}`,{len:J,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(G,{quote:"///",endOffset:J-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 J}let U=S5.exec(this.chunk);if(!U)return 0;let[_,W,f]=U,$=this.prev();if($){if($.spaced&&a1.has($[0])&&(!f||/^\/=?\s/.test(_)))return 0;if(Z5.has($[0])&&!($.spaced&&a1.has($[0])))return 0}if(!f)J1("missing / (unclosed regex)",{row:this.row,col:this.col});let F=_.length,[Y]=u3.exec(this.chunk.slice(F)),Z=F+Y.length;if(!N5.test(Y))J1(`invalid regular expression flags ${Y}`,{row:this.row,col:this.col+F,len:Y.length});return this.emit("REGEX",`/${W}/${Y}`,{len:Z,data:{delimiter:"/"}}),Z}jsToken(){if(this.chunk[0]!=="`")return 0;let u=V5.exec(this.chunk)||L5.exec(this.chunk);if(!u)return 0;let U=u[1],_=u[0].length;return this.emit("JS",U,{len:_,data:{here:u[0].startsWith("```")}}),_}wordLiteral(){if(this.chunk[0]!=="%"||this.chunk[1]!=="w")return 0;let u=this.chunk[2];if(!u||/\s/.test(u))return 0;let _={"[":"]","(":")","{":"}","<":">"}[u]||u,W=_!==u,f=1,$=3;while($<this.chunk.length&&f>0){let G=this.chunk[$];if(G==="\\"){$+=2;continue}if(W&&G===u)f++;if(G===_)f--;if(f>0)$++}if(f!==0)return 0;let F=this.chunk.slice(3,$),Y=$+1,Z=[];if(F.trim()){let G=F.trim().split(/(?<!\\)\s+/);for(let Q of G)Z.push(Q.replace(/\\ /g," "))}this.emit("[","[",{len:Y});for(let G=0;G<Z.length;G++){if(G>0)this.emit(",",",");this.emit("STRING",`"${Z[G]}"`)}return this.emit("]","]"),Y}symbolToken(){if(this.chunk[0]!==":")return 0;let u=this.chunk[1];if(!u||u==="="||u===":"||/\s/.test(u))return 0;if(!/[a-zA-Z_$]/.test(u))return 0;let U=/^((?:(?!\s)[$\w\x7f-\uffff])+)/.exec(this.chunk.slice(1));if(!U)return 0;let _=U[1],W=_.length+1;return this.emit("SYMBOL",_,{len:W}),W}literalToken(){let u=this.wordLiteral();if(u)return u;let U=this.symbolToken();if(U)return U;let _=w5.exec(this.chunk),W=_?_[0]:this.chunk.charAt(0),f=W,$=this.prev();if(D5.test(W))this.tagParameters();if(W==="="&&$&&$[1]==="."&&!$.spaced){let F=this.tokens,Y=F.length-2;while(Y>=1&&F[Y][0]==="PROPERTY"&&F[Y-1]?.[1]===".")Y-=2;if(Y>=0&&(F[Y][0]==="IDENTIFIER"||F[Y][0]===")"||F[Y][0]==="]")){let Z=F.slice(Y,F.length-1);$[0]="=",$[1]="=";for(let G of Z)this.tokens.push(r1(G[0],G[1],{pre:0,row:G[2],col:G[3],len:G[4]}));return this.tokens.push(r1(".",".",{pre:0,row:this.row,col:this.col,len:1})),W.length}}if($&&(W==="="||t2.has(W))){if(W==="="&&($[1]==="||"||$[1]==="&&"||$[1]==="??")&&!$.spaced)return $[0]="COMPOUND_ASSIGN",$[1]+="=",W.length}if(W==="("&&$?.[0]==="IMPORT")$[0]="DYNAMIC_IMPORT";if(W==="{"&&this.seenImport)this.importSpecifierList=!0;if(W==="}"&&this.importSpecifierList)this.importSpecifierList=!1;if(W==="{"&&$?.[0]==="EXPORT")this.exportSpecifierList=!0;if(W==="}"&&this.exportSpecifierList)this.exportSpecifierList=!1;if(W===";")this.seenFor=this.seenImport=this.seenExport=!1,this.inTypeAnnotation=!1,f="TERMINATOR";else if(W==="|>")f="PIPE";else if(W==="::"&&/^[a-zA-Z_$]/.test(this.chunk[2]||""))return this.emit(".","."),this.emit("PROPERTY","prototype"),this.emit(".","."),2;else if(W==="::")f="TYPE_ANNOTATION",this.inTypeAnnotation=!0;else if(W==="~=")f="COMPUTED_ASSIGN";else if(W===":=")f="REACTIVE_ASSIGN";else if(W==="<=>")f="BIND";else if(W==="~>")f="EFFECT",this.inTypeAnnotation=!1;else if(W==="=!")f="READONLY_ASSIGN",this.inTypeAnnotation=!1;else if(W==="*>"&&(!$||$[0]==="TERMINATOR"||$[0]==="INDENT"||$[0]==="OUTDENT")&&(/^[a-zA-Z_$]/.test(this.chunk[2]||"")||this.chunk[2]==="@")){let F=this.chunk.slice(2),Y=/^@(\s*)=(?!=)/.exec(F);if(Y){let G=Y[1];this.emit("IDENTIFIER","Object"),this.emit(".",".");let Q=this.emit("PROPERTY","assign");return Q.spaced=!0,this.emit("@","@"),this.emit(",",","),3+G.length+1}let Z=/^(@?(?:(?!\s)[$\w\x7f-\uffff])+(?:\.[a-zA-Z_$][\w]*)*)(\s*)=(?!=)/.exec(F);if(Z){let G=Z[1],Q=Z[2],z=G[0]==="@",J=z?G.slice(1):G,X=J?J.split("."):[],K=()=>{if(z){if(this.emit("@","@"),X.length>0)this.emit("PROPERTY",X[0])}else this.emit("IDENTIFIER",X[0]);for(let w=1;w<X.length;w++)this.emit(".","."),this.emit("PROPERTY",X[w])};K(),this.emit("=","="),this.emit("IDENTIFIER","Object"),this.emit(".","."),this.emit("PROPERTY","assign"),this.emit("CALL_START","("),K(),this.emit("COMPOUND_ASSIGN","??="),this.emit("{","{"),this.emit("}","}"),this.emit(",",",");let D=this.prev();return D.mergeClose=!0,2+G.length+Q.length+1}}else if(W==="*"&&$?.[0]==="EXPORT")f="EXPORT_ALL";else if(G5.has(W))f="MATH";else if(Q5.has(W))f="COMPARE";else if(t2.has(W))f="COMPOUND_ASSIGN";else if(A5.has(W))f="UNARY_MATH";else if(z5.has(W))f="SHIFT";else if(W==="?"&&$?.spaced)f="TERNARY";else if(W==="?!"&&$&&!$.spaced)f="PRESENCE";else if(W==="?"&&(this.chunk[1]==="["||this.chunk[1]==="("))f="?.";else if($){if(W==="("&&!$.spaced&&a1.has($[0])){if($[0]==="?.")$[0]="ES6_OPTIONAL_CALL";f="CALL_START"}if(W==="["&&!$.spaced&&J2.has($[0])){if(f="INDEX_START",$[0]==="?.")$[0]="ES6_OPTIONAL_INDEX"}}if(this.inTypeAnnotation&&(W==="="||f==="COMPOUND_ASSIGN"))this.inTypeAnnotation=!1;if(W==="("||W==="{"||W==="[")this.ends.push({tag:W5[W],origin:[f,W]});else if(W===")"||W==="}"||W==="]")this.pair(W);return this.emit(f,W,{len:W.length}),W.length}tagParameters(){if(this.prevTag()!==")")return this.tagDoIife();let u=this.tokens.length-1,U=[];this.tokens[u][0]="PARAM_END";while(u-- >0){let _=this.tokens[u];if(_[0]===")")U.push(_);else if(_[0]==="("||_[0]==="CALL_START")if(U.length)U.pop();else if(_[0]==="(")return _[0]="PARAM_START",this.tagDoIife(u-1);else{this.tokens[this.tokens.length-1][0]="CALL_END";return}}}tagDoIife(u){let U=this.tokens[u??this.tokens.length-1];if(U?.[0]==="DO")U[0]="DO_IIFE"}rewrite(u){return this.tokens=u,this.removeLeadingNewlines(),this.rewriteMapLiterals(),this.closeMergeAssignments(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.rewriteRender?.(),this.rewriteSchema?.(),this.rewriteTypes(),this.tagPostfixConditionals(),this.rewriteTaggedTemplates(),this.addImplicitBracesAndParens(),this.addImplicitCallCommas(),this.tokens}removeLeadingNewlines(){let u=0;while(this.tokens[u]?.[0]==="TERMINATOR")u++;if(u>0)this.tokens.splice(0,u)}rewriteMapLiterals(){let u=this.tokens;for(let U=0;U<u.length;U++){if(u[U][0]!=="MATH"||u[U][1]!=="*")continue;let _=u[U+1];if(!_||_[0]!=="{")continue;if(u[U].spaced||u[U].newLine)continue;let W=u[U-1];if(W&&J2.has(W[0]))continue;u.splice(U,1),u[U][0]="MAP_START";let f=1;for(let $=U+1;$<u.length&&f>0;$++){let F=u[$][0];if(F==="{"||F==="MAP_START")f++;if(F==="}"){if(f--,f===0)u[$][0]="MAP_END"}}}}closeOpenCalls(){this.scanTokens((u,U)=>{if(u[0]==="CALL_START")this.detectEnd(U+1,(_)=>_[0]===")"||_[0]==="CALL_END",(_)=>_[0]="CALL_END");return 1})}closeOpenIndexes(){this.scanTokens((u,U)=>{if(u[0]==="INDEX_START")this.detectEnd(U+1,(_)=>_[0]==="]"||_[0]==="INDEX_END",(_,W)=>{if(this.tokens[W+1]?.[0]===":")u[0]="[",_[0]="]";else _[0]="INDEX_END"});return 1})}normalizeLines(){let u=null,U=null,_=null,W=($,F)=>{return $[1]!==";"&&F5.has($[0])&&!($[0]==="TERMINATOR"&&o2.has(this.tokens[F+1]?.[0]))&&!($[0]==="ELSE"&&u!=="THEN")||$[0]==="INDENT"&&!$.generated&&(u==="->"||u==="=>")||$[0]===","&&(u==="->"||u==="=>")&&!this.commaInImplicitCall(F)&&!this.commaInImplicitObject(F)||r2.has($[0])&&(this.tokens[F-1]?.newLine||this.tokens[F-1]?.[0]==="OUTDENT")},f=($,F)=>{let Y=this.tokens[F-1]?.[0]===","?F-1:F;this.tokens.splice(Y,0,_)};this.scanTokens(($,F,Y)=>{let[Z]=$;if(Z==="TERMINATOR"){if(this.tokens[F+1]?.[0]==="ELSE"&&this.tokens[F-1]?.[0]!=="OUTDENT")return Y.splice(F,1,...this.makeIndentation()),1;if(o2.has(this.tokens[F+1]?.[0]))return Y.splice(F,1),0}if(Z==="CATCH")for(let G=1;G<=2;G++){let Q=this.tokens[F+G]?.[0];if(Q==="OUTDENT"||Q==="TERMINATOR"||Q==="FINALLY")return Y.splice(F+G,0,...this.makeIndentation()),2+G}if((Z==="->"||Z==="=>")&&(this.tokens[F+1]?.[0]===","||this.tokens[F+1]?.[0]==="]"))return[U,_]=this.makeIndentation(),Y.splice(F+1,0,U,_),1;if(a2.has(Z)&&this.tokens[F+1]?.[0]!=="INDENT"&&!(Z==="ELSE"&&this.tokens[F+1]?.[0]==="IF")&&!(Z==="ELSE"&&this.tokens[F-1]?.[0]!=="OUTDENT")){if(u=Z,[U,_]=this.makeIndentation(),Z==="THEN")U.fromThen=!0;if(Y.splice(F+1,0,U),Z==="THEN"&&this.singleLineOwner(F)==="LEADING_WHEN")this.detectWhenThenEnd(F+2,W,f);else this.detectEnd(F+2,W,f);if(Z==="THEN")Y.splice(F,1);return 1}return 1})}singleLineOwner(u){let U=new Set(["LEADING_WHEN","IF","POST_IF","UNLESS","POST_UNLESS","ELSE","CATCH","TRY","FINALLY","->","=>"]);for(let _=u-1;_>=0;_--){let W=this.tokens[_],f=W?.[0];if(U.has(f))return f;if(L1.has(f)||W?.newLine)return null}return null}detectWhenThenEnd(u,U,_){let W=0,f=0;while(u<this.tokens.length){let $=this.tokens[u],F=$[0];if(W===0){if(F==="THEN"&&this.singleLineOwner(u)!=="LEADING_WHEN")f++;else if(F==="ELSE"&&f>0)f--;else if(U.call(this,$,u))return _.call(this,$,u)}if(D1.has(F))W++;if(w1.has(F))W--;if(W<0)return _.call(this,$,u);u++}}tagPostfixConditionals(){let u=null,U=(W,f)=>{return W[0]==="TERMINATOR"||W[0]==="INDENT"&&!a2.has(this.tokens[f-1]?.[0])},_=(W)=>{if(W[0]!=="INDENT"||W.generated&&!W.fromThen)u[0]="POST_"+u[0]};this.scanTokens((W,f)=>{if(W[0]!=="IF"&&W[0]!=="UNLESS")return 1;if(this.tokens[f-1]?.[0]==="INTERPOLATION_START")return 1;return u=W,this.detectEnd(f+1,U,_),1})}rewriteTaggedTemplates(){let u=this.tokens;for(let U=u.length-2;U>=0;U--)if(u[U][0]==="IDENTIFIER"&&u[U][1]==="$"&&(u[U+1]?.[0]==="STRING"||u[U+1]?.[0]==="STRING_START")){let _=u[U-1];if(_&&_5.has(_[0])){if(u.splice(U,1),_.spaced=!1,u[U].spaced=!1,u[U].pre=0,u[U].newLine)u[U].newLine=!1}}}addImplicitBracesAndParens(){let u=[],U=!1;this.scanTokens((_,W,f)=>{let[$]=_,F=f[W-1]||[],Y=f[W+1]||[],[Z]=F,[G]=Y,Q=W,z=(M)=>W-Q+M,J=()=>u[u.length-1],X=(M)=>M?.[2]?.ours,K=()=>X(J())&&J()?.[0]==="(",D=()=>X(J())&&J()?.[0]==="{",w=(M)=>{u.push(["(",M,{ours:!0}]),f.splice(M,0,A1("CALL_START","("))},A=()=>{u.pop(),f.splice(W,0,A1("CALL_END",")")),W+=1},R=(M,I={})=>{u.push(["{",M,{sameLine:!0,startsLine:I.startsLine??!0,ours:!0}]);let H=A1("{","{");if(!H.data)H.data={};H.data.generated=!0,f.splice(M,0,H)},O=(M)=>{M=M??W,u.pop(),f.splice(M,0,A1("}","}")),W+=1};if((K()||D())&&Y5.has($))return u.push(["CONTROL",W,{ours:!0}]),z(1);if($==="INDENT"&&X(J())){if(Z!=="=>"&&Z!=="->"&&Z!=="["&&Z!=="("&&Z!==","&&Z!=="{"&&Z!=="ELSE"&&Z!=="=")while(K()||D()&&Z!==":")if(K())A();else O();if(J()?.[2]?.ours&&J()[0]==="CONTROL")u.pop();return u.push([$,W]),z(1)}if(D1.has($))return u.push([$,W]),z(1);if(w1.has($)){while(X(J()))if(K())A();else if(D())O();else u.pop();u.pop()}if(z2.has($)&&_.spaced&&(o1.has(G)||G==="..."&&o1.has(f[W+2]?.[0])||f5.has(G)&&!Y.spaced&&!Y.newLine)&&!(($==="]"||$==="}")&&(G==="->"||G==="=>")))return w(W+1),z(2);if(z2.has($)&&this.tokens[W+1]?.[0]==="INDENT"&&this.looksObjectish(W+2)&&!this.findTagsBackwards(W,["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"]))return w(W+1),u.push(["INDENT",W+2]),z(3);if($==="TERNARY")U=!0;if($===":"){if(U)return U=!1,z(1);if(f[W-1]?.[0]==="PROPERTY"&&f[W-2]?.[0]==="."){let H=W-2;while(H>=2&&f[H]?.[0]==="."&&(f[H-1]?.[0]==="PROPERTY"||f[H-1]?.[0]==="IDENTIFIER"))H-=2;if(H+=1,f[H]?.[0]==="IDENTIFIER"||f[H]?.[0]==="PROPERTY"){let S=[];for(let V=H;V<W;V+=2)S.push(f[V][1]);let N=A1("STRING",`"${S.join(".")}"`,f[H]);N.pre=f[H].pre,N.spaced=f[H].spaced,N.newLine=f[H].newLine,N.loc=f[H].loc,f.splice(H,W-H,N),W=H+1}}let M=w1.has(this.tokens[W-1]?.[0])?u[u.length-1]?.[1]??W-1:W-1;if(this.tokens[W-2]?.[0]==="@")M=W-2;let I=M<=0||L1.has(this.tokens[M-1]?.[0])||this.tokens[M-1]?.newLine;if(J()){let[H,S]=J(),N=u[u.length-2],V=(L)=>L==="{"||L==="MAP_START";if((V(H)||H==="INDENT"&&V(N?.[0])&&!X(N))&&(I||this.tokens[M-1]?.[0]===","||V(this.tokens[M-1]?.[0])||V(this.tokens[M]?.[0])))return z(1)}return R(M,{startsLine:!!I}),z(2)}if(L1.has($))for(let M=u.length-1;M>=0;M--){if(!X(u[M]))break;if(u[M][0]==="{")u[M][2].sameLine=!1}let P=Z==="OUTDENT"||F.newLine,q=$==="||"||$==="&&",B=!1;if(q){let M=W+1,I=f[M]?.[0];if(I==="("||I==="["||I==="{"){for(let H=1;++M<f.length&&H>0;)if(I=f[M][0],I==="("||I==="["||I==="{")H++;else if(I===")"||I==="]"||I==="}")H--}else if(I&&I!=="TERMINATOR"&&I!=="OUTDENT"&&I!==",")M++;B=f[M]?.[0]===","}if($5.has($)&&!B||r2.has($)&&P)while(X(J())){let[M,,{sameLine:I,startsLine:H}]=J();if(K()&&Z!==",")A();else if(D()&&!q&&I&&$!=="TERMINATOR"&&Z!==":")O();else if(D()&&$==="TERMINATOR"&&Z!==","&&!(H&&this.looksObjectish(W+1)))O();else if(J()?.[2]?.ours&&J()[0]==="CONTROL"&&f[J()[1]]?.[0]==="CLASS"&&$==="TERMINATOR")u.pop();else break}if($===","&&!this.looksObjectish(W+1)&&D()&&(G!=="TERMINATOR"||!this.looksObjectish(W+2))){let M=G==="OUTDENT"?1:0;while(D())O(W+M)}return z(1)})}addImplicitCallCommas(){let u=0,U=0,_=this.tokens;while(U<_.length){let W=_[U][0],f=U>0?_[U-1][0]:null;if(W==="CALL_START"||W==="(")u++;if(W==="CALL_END"||W===")")u--;if(u>0&&(W==="->"||W==="=>")&&U5.has(f))_.splice(U,0,A1(",",",")),U++;U++}}scanTokens(u){let U=0;while(U<this.tokens.length)U+=u.call(this,this.tokens[U],U,this.tokens)}detectEnd(u,U,_,W={}){let f=0;while(u<this.tokens.length){let $=this.tokens[u];if(f===0&&U.call(this,$,u))return _.call(this,$,u);if(D1.has($[0]))f++;if(w1.has($[0]))f--;if(f<0){if(W.returnOnNegativeLevel)return;return _.call(this,$,u)}u++}}closeMergeAssignments(){let u=this.tokens;for(let U=0;U<u.length;U++){if(!u[U].mergeClose)continue;let _=0;for(let W=U+1;W<u.length;W++){let f=u[W][0];if(f==="("||f==="["||f==="{"||f==="CALL_START"||f==="INDEX_START"||f==="INDENT")_++;if(f===")"||f==="]"||f==="}"||f==="CALL_END"||f==="INDEX_END"||f==="OUTDENT")_--;if(_<0||_===0&&f==="TERMINATOR"){u.splice(W,0,A1("CALL_END",")",u[W-1]));break}if(W===u.length-1){u.splice(W+1,0,A1("CALL_END",")",u[W]));break}}}}commaInImplicitCall(u){let U=0;for(let _=u-1;_>=0;_--){let W=this.tokens[_][0];if(w1.has(W)){U++;continue}if(D1.has(W)){if(W==="INDENT")return!1;if(U--,U<0)return!1;continue}if(U>0)continue;if(z2.has(W)&&this.tokens[_].spaced){let f=this.tokens[_+1]?.[0];return o1.has(f)||f==="..."&&o1.has(this.tokens[_+2]?.[0])}}return!1}commaInImplicitObject(u){let U=0;for(let _=u-1;_>=0;_--){let W=this.tokens[_][0];if(w1.has(W)){U++;continue}if(D1.has(W)){if(U--,U<0)return!1;continue}if(U>0)continue;if(W===":"&&_>0&&this.tokens[_-1][0]==="PROPERTY")return this.looksObjectish(u+1);if(L1.has(W))return!1}return!1}looksObjectish(u){if(!this.tokens[u])return!1;if(this.tokens[u]?.[0]==="@"&&this.tokens[u+2]?.[0]===":")return!0;if(this.tokens[u+1]?.[0]===":")return!0;if((this.tokens[u]?.[0]==="IDENTIFIER"||this.tokens[u]?.[0]==="PROPERTY")&&this.tokens[u+1]?.[0]==="."){let U=u+2;while(this.tokens[U]?.[0]==="PROPERTY"&&this.tokens[U+1]?.[0]===".")U+=2;if(this.tokens[U]?.[0]==="PROPERTY"&&this.tokens[U+1]?.[0]===":")return!0}if(D1.has(this.tokens[u]?.[0])){let U=null;if(this.detectEnd(u+1,(_)=>w1.has(_[0]),(_,W)=>U=W),U&&this.tokens[U+1]?.[0]===":")return!0}return!1}findTagsBackwards(u,U){let _=new Set(U),W=[];while(u>=0){let f=this.tokens[u]?.[0];if(!W.length&&_.has(f))return!0;if(w1.has(f))W.push(f);if(D1.has(f)&&W.length)W.pop();if(!W.length&&(D1.has(f)&&!this.tokens[u]?.generated||L1.has(f)))break;u--}return!1}makeIndentation(u){let U=A1("INDENT",2),_=A1("OUTDENT",2);if(u)U.generated=_.generated=!0,U.origin=_.origin=u;else U.explicit=_.explicit=!0;return[U,_]}}k2(K1);n1(K1);var b5=["abort","animationcancel","animationend","animationiteration","animationstart","auxclick","beforeinput","beforematch","beforetoggle","blur","cancel","canplay","canplaythrough","change","click","close","compositionend","compositionstart","compositionupdate","contextlost","contextmenu","contextrestored","copy","cuechange","cut","dblclick","drag","dragend","dragenter","dragleave","dragover","dragstart","drop","durationchange","emptied","ended","error","focus","focusin","focusout","formdata","fullscreenchange","fullscreenerror","gotpointercapture","input","invalid","keydown","keypress","keyup","load","loadeddata","loadedmetadata","loadstart","lostpointercapture","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","paste","pause","play","playing","pointercancel","pointerdown","pointerenter","pointerleave","pointermove","pointerout","pointerover","pointerrawupdate","pointerup","progress","ratechange","reset","resize","scroll","scrollend","securitypolicyviolation","seeked","seeking","select","selectionchange","selectstart","slotchange","stalled","submit","suspend","timeupdate","toggle","touchcancel","touchend","touchmove","touchstart","transitioncancel","transitionend","transitionrun","transitionstart","volumechange","waiting","webkitanimationend","webkitanimationiteration","webkitanimationstart","webkittransitionend","wheel"],$3=new Set(b5);var h5=["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","link","main","map","mark","menu","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","script","search","section","select","slot","small","source","span","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr"];var y5=["animate","animateMotion","animateTransform","circle","clipPath","defs","desc","ellipse","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","filter","foreignObject","g","image","line","linearGradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialGradient","rect","set","stop","svg","switch","symbol","text","textPath","tspan","use","view"],v5=["math","param","portal"],U3=new Set([...h5,...v5]),O1=new Set(y5),q1=new Set([...U3,...O1]);var W3="__bind_",_3="__",X2=new Set(["beforeMount","mounted","updated","beforeUnmount","unmounted","onError"]),g5=new Set(["disabled","hidden","readonly","required","checked","selected","autofocus","autoplay","controls","loop","muted","multiple","novalidate","open","reversed","defer","async","formnovalidate","allowfullscreen","inert"]),w2="http://www.w3.org/2000/svg";function c5(u){for(let U of u){if(!Array.isArray(U))continue;let _=U[1]instanceof String?U[1].valueOf():U[1],W=U[2]instanceof String?U[2].valueOf():U[2];if(_==="type"&&typeof W==="string")return W.replace(/^["']|["']$/g,"")}return null}function R1(u){if(typeof u==="string"||u instanceof String)return u.valueOf();if(Array.isArray(u)&&u[0]==="."&&u[1]==="this"&&(typeof u[2]==="string"||u[2]instanceof String))return u[2].valueOf();return null}function K2(u){return Array.isArray(u)&&u[0]==="."&&u[1]==="this"}function M2(u){if(u instanceof String&&u.type)return u.type;if(Array.isArray(u)&&u[2]instanceof String&&u[2].type)return u[2].type;return null}function Y3(u,U){let _=(Y,Z)=>Y instanceof String?Y[Z]:void 0,W=U.prototype.classifyKeyword;U.prototype.classifyKeyword=function(Y,Z,G){if(Y==="offer"||Y==="accept"){let Q=0;for(let z=this.tokens.length-1;z>=0;z--){let J=this.tokens[z][0];if(J==="OUTDENT")Q++;else if(J==="INDENT")Q--;if(Q<0&&this.tokens[z-1]?.[0]==="COMPONENT")return Y.toUpperCase()}return Z}return W.call(this,Y,Z,G)},U.prototype.rewriteRender=function(){let Y=(A,R,O)=>{let P=[A,R];if(P.pre=0,P.data=null,P.loc=O?.loc??{r:0,c:0,n:0},P.spaced=!1,P.newLine=!1,P.generated=!0,O)P.origin=O;return P},Z=!1,G=0,Q=0,z=[],J=(A)=>{let R=A.split("#")[0];return q1.has(R)},X=(A)=>{if(!A||typeof A!=="string")return!1;return/^[A-Z][A-Za-z0-9]*[a-z][A-Za-z0-9]*$/.test(A)},K=(A)=>{return J(A)||X(A)},D=(A,R,O,P)=>{let q=1,B=R;while(B>=0&&q>0){let M=A[B][0];if(M===O)q++;else if(M===P)q--;if(q>0)B--}return B},w=(A,R)=>{let O=R;while(O>0){let P=A[O-1][0];if(P==="TERMINATOR"||P==="RENDER")break;if(P==="INDENT"||P==="OUTDENT"){let q=A[O][0];if(q==="CALL_END"||q===")"){O=D(A,O-1,q,q==="CALL_END"?"CALL_START":"(");continue}break}if(P==="CALL_END"||P===")"){O=D(A,O-2,P,P==="CALL_END"?"CALL_START":"(");continue}if(P==="INTERPOLATION_END"){O=D(A,O-2,"INTERPOLATION_END","INTERPOLATION_START");continue}if(P==="STRING_END"){O=D(A,O-2,"STRING_END","STRING_START");continue}O--}return A[O]&&A[O][0]==="IDENTIFIER"&&(K(A[O][1])||(O===0||A[O-1][0]==="INDENT"||A[O-1][0]==="TERMINATOR"||A[O-1][0]==="RENDER"))};this.scanTokens(function(A,R,O){let P=A[0],q=R<O.length-1?O[R+1]:null;if(P==="RENDER")return Z=!0,G=Q+1,1;if(P==="INDENT")return Q++,1;if(P==="OUTDENT"){Q--;let B=0;while(z.length>0&&z[z.length-1]>Q){let M=Y("CALL_END",")",A);O.splice(R+1+B,0,M),z.pop(),B++}if(Z&&Q<G)Z=!1;return 1+B}if(!Z)return 1;if(P==="="&&R>0){let B=O[R-1][0];if(B==="TERMINATOR"||B==="INDENT"||B==="RENDER"){let M=Y("IDENTIFIER","__text__",A),I=Y("CALL_START","(",A);return O.splice(R,1,M,I),this.detectEnd(R+2,(H)=>H[0]==="TERMINATOR"||H[0]==="OUTDENT",(H,S)=>O.splice(S,0,Y("CALL_END",")",H)),{returnOnNegativeLevel:!0}),2}}if(P==="UNARY_MATH"&&A[1]==="~"&&q&&q[0]==="IDENTIFIER"){A[0]="PROPERTY",A[1]="__transition__";let B=Y(":",":",A),M=Y("STRING",`"${q[1]}"`,q);return O.splice(R+1,1,B,M),1}if(P==="PROPERTY"&&A[1][0]==="$"&&A[1].length>1)return A[0]="STRING",A[1]=`"data-${A[1].slice(1)}"`,1;if(P==="IDENTIFIER"&&!A.spaced){let B=[A[1]],M=R+1;while(M+1<O.length){let I=O[M],H=O[M+1];if(I[0]==="-"&&!I.spaced&&(H[0]==="IDENTIFIER"||H[0]==="PROPERTY")){if(B.push(H[1]),M+=2,H[0]==="PROPERTY")break}else break}if(B.length>1&&M>R+1&&O[M-1][0]==="PROPERTY"){let I=B.join("-");if(I[0]==="$")I="data-"+I.slice(1);return A[0]="STRING",A[1]=`"${I}"`,O.splice(R+1,M-R-1),1}}if(P==="."){let B=R>0?O[R-1]:null,M=B?B[0]:null;if(M==="INDENT"||M==="TERMINATOR"){if(q&&q[0]==="PROPERTY"){let I=R+2<O.length?O[R+2]:null;if(!I||I[0]!==":"){let H=Y("IDENTIFIER","div",A);return O.splice(R,0,H),2}}if(!q||q[0]!=="(")return A[0]="IDENTIFIER",A[1]="div",0}}if(P==="IDENTIFIER"||P==="PROPERTY"){let B=O[R+1],M=O[R+2];if(B&&B[0]==="#"&&M&&(M[0]==="PROPERTY"||M[0]==="IDENTIFIER")){if(A[1]=A[1]+"#"+M[1],M.spaced)A.spaced=!0;return O.splice(R+1,2),0}}if(P==="BIND"){let B=R>0?O[R-1]:null,M=O[R+1];if(B&&(B[0]==="IDENTIFIER"||B[0]==="PROPERTY")&&M&&M[0]==="IDENTIFIER")return B[1]=`__bind_${B[1]}__`,A[0]=":",A[1]=":",1}if(P==="@"){let B=R+1;if(B<O.length&&O[B][0]==="PROPERTY"){B++;while(B+1<O.length&&O[B][0]==="."&&O[B+1][0]==="PROPERTY")B+=2;if(B>R+2&&B<O.length&&O[B][0]===":"){let M=Y("[","[",A);O.splice(R,0,M);let I=Y("]","]",O[B+1]);return O.splice(B+1,0,I),2}}}if(P==="."&&q&&q[0]==="("){let B=R>0?O[R-1]:null,M=B?B[0]:null,I=M==="INDENT"||M==="TERMINATOR",H=Y("PROPERTY","__clsx",A);q[0]="CALL_START";let S=1;for(let N=R+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(I){let N=Y("IDENTIFIER","div",A);return O.splice(R,0,N),O.splice(R+2,0,H),3}else if(M===":")return O[R]=Y("IDENTIFIER","__clsx",A),1;else return O.splice(R+1,0,H),2}if(q&&q[0]==="INDENT"){if(q.fromThen)return 1;if(P==="->"||P==="=>"||P==="CALL_START"||P==="(")return 1;let B=!1,M=R>0?O[R-1][0]:null,I=M==="IF"||M==="UNLESS"||M==="WHILE"||M==="UNTIL"||M==="WHEN"||M==="FORIN"||M==="FOROF"||M==="FORAS"||M==="FORASAWAIT"||M==="BY",H=!1;if(P==="CALL_END"){let N=1;for(let V=R-1;V>=0&&N>0;V--)if(O[V][0]==="CALL_END")N++;else if(O[V][0]==="CALL_START"){if(N--,N===0&&V>0&&O[V-1][0]==="PROPERTY"&&O[V-1][1]==="__clsx")H=!0}}let S=P==="IDENTIFIER"&&(M==="INDENT"||M==="TERMINATOR"||M==="RENDER");if(H)B=!0;else if(P==="IDENTIFIER"&&K(A[1])&&!I)B=!0;else if(P==="IDENTIFIER"&&!I)B=S||w(O,R);else if(P==="PROPERTY"||P==="STRING"||P==="STRING_END"||P==="NUMBER"||P==="BOOL"||P==="CALL_END"||P===")"||P==="PRESENCE")B=w(O,R);if(B){let N=!1;if(P==="PROPERTY"&&R>0&&O[R-1][0]==="."){let L=R;while(L>=2&&O[L-1][0]==="."&&O[L-2][0]==="PROPERTY")L-=2;if(L>=2&&O[L-1][0]==="."&&O[L-2][0]==="IDENTIFIER"&&K(O[L-2][1])){let C=L>=3?O[L-3][0]:null;if(!C||C==="INDENT"||C==="OUTDENT"||C==="TERMINATOR"||C==="RENDER")N=!0}}if(H||P==="IDENTIFIER"&&(K(A[1])||S)||N){let L=Y("CALL_START","(",A),C=Y("->","->",A);return C.newLine=!0,O.splice(R+1,0,L,C),z.push(Q+1),3}else{let L=Y(",",",",A),C=Y("->","->",A);return C.newLine=!0,O.splice(R+1,0,L,C),3}}}if(P==="IDENTIFIER"&&X(A[1])&&q&&(q[0]==="OUTDENT"||q[0]==="TERMINATOR"))return O.splice(R+1,0,Y("CALL_START","(",A),Y("CALL_END",")",A)),3;return 1})};let f=u.prototype;f.isHtmlTag=function(Y){let Z=Y.split("#")[0];return q1.has(Z.toLowerCase())},f.isComponent=function(Y){if(!Y||typeof Y!=="string")return!1;return/^[A-Z][A-Za-z0-9]*[a-z][A-Za-z0-9]*$/.test(Y)},f.collectTemplateClasses=function(Y){let Z=[],G=Y;while(this.is(G,".")){let X=G[2];if(typeof X==="string"||X instanceof String)Z.unshift(X.valueOf());G=G[1]}let Q=typeof G==="string"?G:G instanceof String?G.valueOf():null;if(Q===null)return{tag:null,classes:Z,id:void 0,base:G};let[z,J]=Q.split("#");if(!z)z="div";return{tag:z,classes:Z,id:J,base:G}};let $=(Y)=>typeof Y==="string"?Y:Y instanceof String?Y.valueOf():null,F=(Y,Z)=>{if(!(Y instanceof String))return Z;let G=new String(Z);if(Y.predicate)G.predicate=!0;if(Y.await)G.await=!0;return G.predicate||G.await?G:Z};f.transformComponentMembers=function(Y,Z=new Set){let G=this._self;if(!Array.isArray(Y)){let Q=$(Y);if(Q&&Z.has(Q))return Y;if(Q&&this.reactiveMembers&&this.reactiveMembers.has(Q))return[".",[".",G,Q],F(Y,"value")];if(Q&&this.componentMembers&&this.componentMembers.has(Q))return[".",G,F(Y,Q)];return Y}if(Y[0]==="."&&Y[1]==="this"&&$(Y[2])!=null){let Q=Y[2],z=$(Q);if(this.reactiveMembers&&this.reactiveMembers.has(z))return[".",[".",G,z],F(Q,"value")];return this._factoryMode?[".",G,Q]:Y}if(Y[0]==="."||Y[0]==="?.")return[Y[0],this.transformComponentMembers(Y[1]),Y[2]];if(Y[0]==="->"){let Q=Y[1],z=new Set(Z);if(Array.isArray(Q))for(let J of Q){let X=$(Array.isArray(J)&&J[0]==="default"?J[1]:J);if(X)z.add(X)}return["=>",Y[1],this.transformComponentMembers(Y[2],z)]}if(Y[0]==="object"||Y[0]==="map-literal")return[Y[0],...Y.slice(1).map((Q)=>{if(Array.isArray(Q)&&Q[0]==="...")return["...",this.transformComponentMembers(Q[1],Z)];if(Array.isArray(Q)&&Q.length>=2){let z=Q[1],J=Array.isArray(z)?this.transformComponentMembers(z,Z):z,X=this.transformComponentMembers(Q[2],Z);return[Q[0],J,X]}return this.transformComponentMembers(Q,Z)})];if(Y[0]==="block"||Y[0]==="program"){let Q=new Set(Z),z=[Y[0]];for(let J=1;J<Y.length;J++){let X=Y[J];if(Array.isArray(X)&&X[0]==="="){let K=$(X[1]);if(K&&!(this.reactiveMembers&&this.reactiveMembers.has(K))){z.push(["=",X[1],this.transformComponentMembers(X[2],Q)]),Q.add(K);continue}}z.push(this.transformComponentMembers(X,Q))}return z}return Y.map((Q)=>this.transformComponentMembers(Q,Z))},f.emitComponent=function(Y,Z,G,Q){let[,z]=Z,J=this.is(z,"block")?z.slice(1):[],X=[],K=[],D=[],w=[],A=[],R=[],O=[],P=[],q=null,B=new Set,M=new Set;for(let T of J){if(!Array.isArray(T))continue;let[j]=T;if(j==="offer"){if(T=T[1],!Array.isArray(T))continue;j=T[0];let y=R1(T[1]);if(y)O.push(y)}if(j==="accept"){let y=typeof T[1]==="string"?T[1]:R1(T[1]);if(y)P.push(y),B.add(y),M.add(y)}else if(j==="."&&T[1]==="this"&&R1(T)){let y=typeof T[2]==="string"||T[2]instanceof String?T[2].valueOf():null;if(y)X.push({name:y,value:void 0,isPublic:!0,type:T[2]?.type||null,required:!0}),B.add(y),M.add(y)}else if(j==="state"){let y=R1(T[1]);if(y)X.push({name:y,value:T[2],isPublic:K2(T[1]),type:M2(T[1])}),B.add(y),M.add(y)}else if(j==="computed"){let y=R1(T[1]);if(y)K.push({name:y,expr:T[2],type:M2(T[1])}),B.add(y),M.add(y)}else if(j==="readonly"){let y=R1(T[1]);if(y)D.push({name:y,value:T[2],isPublic:K2(T[1]),type:M2(T[1])}),B.add(y)}else if(j==="="){let y=R1(T[1]);if(y)if(X2.has(y))A.push({name:y,value:T[2]});else{let m=T[2];if(Array.isArray(m)&&(m[0]==="->"||m[0]==="=>"))w.push({name:y,func:m}),B.add(y);else X.push({name:y,value:m,isPublic:K2(T[1])}),B.add(y),M.add(y)}}else if(j==="effect")R.push(T);else if(j==="render")q=T;else if(j==="object")for(let y=1;y<T.length;y++){let m=T[y];if(!Array.isArray(m))continue;let[,t,$1]=m;if(typeof t==="string"&&X2.has(t))A.push({name:t,value:$1});else if(typeof t==="string")w.push({name:t,func:$1}),B.add(t)}}let I=new Map;for(let{name:T}of w)if(/^on[A-Z]/.test(T)&&!X2.has(T)){let j=T[2].toLowerCase()+T.slice(3);if($3.has(j))I.set(j,T)}let H=Z[0]?.valueOf?.()??null,S=new Set;for(let{name:T,isPublic:j}of X)if(j)S.add(T);for(let{name:T,isPublic:j}of D)if(j)S.add(T);let N=this.componentMembers,V=this.reactiveMembers,L=this._autoEventHandlers,C=this._inheritsTag;if(this.componentMembers=B,this.reactiveMembers=M,this._autoEventHandlers=I.size>0?I:null,this._inheritsTag=H||null,this.options.stubComponents){let T=(b)=>b?b.replace(/::/g,":").replace(/(\w+(?:<[^>]+>)?)\?\?/g,"$1 | null | undefined").replace(/(\w+(?:<[^>]+>)?)\?(?![.:])/g,"$1 | undefined").replace(/(\w+(?:<[^>]+>)?)\!/g,"NonNullable<$1>"):null,j=[],y=this._componentTypeParams||"";j.push(`class ${y}{`),j.push(" declare _root: Element | null; declare app: any;"),j.push(" emit(_name: string, _detail?: any): void {}");let m=[];for(let{name:b,type:g,isPublic:x,required:l}of X){if(!x)continue;let e=T(g),u1=l?"":"?";m.push(`${b}${u1}: ${e||"any"}`),m.push(`__bind_${b}__?: Signal<${e||"any"}>`)}for(let{name:b,type:g,isPublic:x}of D){if(!x)continue;let l=T(g);m.push(`${b}?: ${l||"any"}`)}{let g=m.length>0&&X.some((l)=>l.isPublic&&l.required)?"":"?",x=m.length>0?`{${m.join("; ")}}`:"{}";if(H)x+=` & __RipProps<'${H}'>`;j.push(` constructor(_props${g}: ${x}) {}`)}let t=(b)=>{let g=b?.valueOf?.()??b;if(typeof g!=="string")return null;if(g==="true"||g==="false")return"boolean";if(/^-?\d+(\.\d+)?$/.test(g))return"number";if(g.startsWith('"')||g.startsWith("'"))return"string";return null};for(let{name:b,type:g,value:x}of X){let l=T(g)||t(x);j.push(l?` declare ${b}: Signal<${l}>;`:` declare ${b}: Signal<any>;`)}for(let{name:b,type:g,value:x}of D){let l=T(g)||t(x);j.push(l?` declare ${b}: ${l};`:` declare ${b}: any;`)}for(let{name:b,expr:g,type:x}of K){let l=T(x),e=l?`: Computed<${l}>`:"";if(this.is(g,"block")){let u1=this.transformComponentMembers(g),c=this.emitFunctionBody(u1);j.push(` ${b}${e} = __computed(() => ${c});`)}else{let u1=this.emitInComponent(g,"value");j.push(` ${b}${e} = __computed(() => ${u1});`)}}j.push(" _init(props) {");for(let{name:b,value:g,isPublic:x}of D){let l=this.emitInComponent(g,"value");j.push(x?` this.${b} = props.${b} ?? ${l};`:` this.${b} = ${l};`)}for(let{name:b,value:g,isPublic:x,required:l,type:e}of X)if(x&&l)j.push(` this.${b} = __state(props.__bind_${b}__ ?? props.${b});`);else if(x){let u1=this.emitInComponent(g,"value");j.push(` this.${b} = __state(props.__bind_${b}__ ?? props.${b} ?? ${u1});`)}else{let u1=this.emitInComponent(g,"value");j.push(` this.${b} = __state(${u1});`)}for(let b of R){let g=b[2],x=this.containsAwait(g)?"async ":"";if(this.is(g,"block")){let l=this.transformComponentMembers(g),e=this.emitFunctionBody(l,[],!0);j.push(` __effect(${x}() => ${e});`)}else{let l=this.emitInComponent(g,"value");j.push(` __effect(${x}() => { ${l}; });`)}}j.push(" }");let $1=new Map;for(let[b,g]of I)$1.set(g,b);if(q){let b=(g)=>{if(!Array.isArray(g))return;let x=g[0]?.valueOf?.()??g[0];if(typeof x==="string"&&x!=="object"&&x!=="switch"&&q1.has(x.split(/[.#]/)[0]))for(let l=1;l<g.length;l++){let e=g[l],u1=this.is(e,"object")?e:null;if(!u1&&Array.isArray(e)&&(e[0]==="->"||e[0]==="=>")&&this.is(e[2],"block")){for(let c=1;c<e[2].length;c++)if(this.is(e[2][c],"object")){u1=e[2][c];break}}if(!u1)continue;for(let c=1;c<u1.length;c++){let i=u1[c];if(!Array.isArray(i)||i.length<2)continue;let[,r,s]=i;if(Array.isArray(r)&&r[0]==="."&&r[1]==="this"&&Array.isArray(s)&&s[0]==="."&&s[1]==="this"){let h=typeof r[2]==="string"?r[2]:r[2]?.valueOf?.(),p=typeof s[2]==="string"?s[2]:s[2]?.valueOf?.();if(h&&p&&!$1.has(p))$1.set(p,h)}}}for(let l=1;l<g.length;l++)b(g[l])};b(q)}for(let{name:b,func:g}of w)if(Array.isArray(g)&&(g[0]==="->"||g[0]==="=>")){let[,x,l]=g;if((!x||Array.isArray(x)&&x.length===0)&&this.containsIt(l))x=["it"];let e=Array.isArray(x)?x.map((s)=>{let h=this.formatParam(s);if(s?.type)h+=`: ${s.type}`;return h}).join(", "):"",u1=$1.get(b);if(u1&&Array.isArray(x)&&x.length>0){let s=x[0];if(!(s?.type||s instanceof String&&s.type)&&typeof(s?.valueOf?.()??s)==="string"){let p=s?.valueOf?.()??s;e=e.replace(p,`${p}: HTMLElementEventMap['${u1}']`)}}let c=this.reactiveMembers?this.transformComponentMembers(l):l,i=this.containsAwait(l),r=this.emitFunctionBody(c,x||[]);j.push(` ${i?"async ":""}${b}(${e}) ${r}`)}for(let{name:b,value:g}of A)if(Array.isArray(g)&&(g[0]==="->"||g[0]==="=>")){let[,x,l]=g,e=Array.isArray(x)?x.map((r)=>this.formatParam(r)).join(", "):"",u1=this.reactiveMembers?this.transformComponentMembers(l):l,c=this.containsAwait(l),i=this.emitFunctionBody(u1,x||[]);j.push(` ${c?"async ":""}${b}(${e}) ${i}`)}if(q){let b=[],g=0,x=this.options.source?.split(`
|
|
1255
|
+
`),l=(c)=>{let i=[];for(let r of c){let s=null;if(this.is(r,"object"))s=r;else if(Array.isArray(r)&&(r[0]==="->"||r[0]==="=>")&&this.is(r[2],"block")){for(let h=1;h<r[2].length;h++)if(this.is(r[2][h],"object")){s=r[2][h];break}}if(s)for(let h=1;h<s.length;h++){let p=s[h],[,k,a]=p;if(typeof k==="string"&&!k.startsWith("@")){let U1=p.loc?.r??s.loc?.r;if(k.startsWith("__bind_")&&k.endsWith("__")){let o=typeof a==="string"&&this.reactiveMembers?.has(a)?`this.${a}`:this.emitInComponent(a,"value");i.push({code:`${k}: ${o}`,srcLine:U1})}else{let o=this.emitInComponent(a,"value");i.push({code:`${k}: ${o}`,srcLine:U1})}}}}return i},e=(c)=>{let i=[];for(let r of c){let s=null;if(this.is(r,"object"))s=r;else if(Array.isArray(r)&&(r[0]==="->"||r[0]==="=>")&&this.is(r[2],"block")){for(let h=1;h<r[2].length;h++)if(this.is(r[2][h],"object")){s=r[2][h];break}}if(s)for(let h=1;h<s.length;h++){let p=s[h];if(!Array.isArray(p)||p.length<2)continue;let[,k,a]=p,U1=p.loc?.r??s.loc?.r;if(Array.isArray(k)&&k[0]==="."&&k[1]==="this"){let o=typeof k[2]==="string"?k[2]:k[2]?.valueOf?.();if(!o)continue;let f1="@"+o.split(".")[0],$2=this.emitInComponent(a,"value");i.push({code:`'${f1}': ${$2}`,srcLine:U1})}else if(typeof k==="string"){if(k==="key"){let o=this.emitInComponent(a,"value"),f1=U1!=null?` // @rip-src:${U1}`:"";b.push(` (${o});${f1}`);continue}if(k.startsWith("__bind_")&&k.endsWith("__")){let o=k.slice(7,-2),f1=this.emitInComponent(a,"value");i.push({code:`${o}: ${f1}`,srcLine:U1})}else{let o=this.emitInComponent(a,"value");i.push({code:`${k}: ${o}`,srcLine:U1})}}}}return i},u1=(c)=>{if(!Array.isArray(c))return;let i=c[0]?.valueOf?.()??c[0];if(i==="object")return;if(i==="if"||i==="unless"){let h=c[1];if(h!=null){let p=this.emitInComponent(h,"value"),k=c.loc?.r,a=k!=null?` // @rip-src:${k}`:"";b.push(` ${p};${a}`)}}else if(i==="?:"){let h=this.emitInComponent(c,"value"),p=c.loc?.r,k=p!=null?` // @rip-src:${p}`:"";b.push(` ${h};${k}`)}else if(i==="switch"){let h=c[1];if(h!=null){let p=this.emitInComponent(h,"value"),k=c.loc?.r,a=k!=null?` // @rip-src:${k}`:"";b.push(` ${p};${a}`)}}else if(i==="for-in"||i==="for-of"||i==="for-as"){let h=c[1],p=c[2];if(p!=null){let k=this.emitInComponent(p,"value"),a=c.loc?.r,U1=a!=null?` // @rip-src:${a}`:"",o;if(Array.isArray(h))if(h.length===1){let f1=h[0];o=Array.isArray(f1)?this.emitDestructuringPattern(f1):String(f1)}else if(i==="for-of")o=`[${h.map((f1)=>String(f1)).join(", ")}]`;else o=String(h[0]);else o=String(h);if(i==="for-of")b.push(` for (const ${o} of Object.entries(${k})) {${U1}`);else b.push(` for (const ${o} of ${k}) {${U1}`);for(let f1=3;f1<c.length;f1++)if(c[f1]!=null)u1(c[f1]);b.push(" }");return}}else if(i==="__text__"){let h=c[1];if(h!=null){let p=this.emitInComponent(h,"value"),k=c.loc?.r,a=k!=null?` // @rip-src:${k}`:"";b.push(` ${p};${a}`)}return}else if(i==="str"){try{let h=this.emitInComponent(c,"value"),p=c.loc?.r,k=p!=null?` // @rip-src:${p}`:"";b.push(` ${h};${k}`)}catch{}return}let r=(h,p,k)=>{if(typeof h!=="string"||!/^[a-z][\w-]*$/.test(h))return;if(u.GENERATORS[h])return;if(h==="null"||h==="undefined"||h==="true"||h==="false")return;let a=p.loc?.r;if(a!=null&&x){let o=new RegExp(`\\b${h}\\b`);for(let f1=a;f1<x.length;f1++)if(o.test(x[f1])){a=f1;break}}let U1=a!=null?` // @rip-src:${a}`:"";if(this.componentMembers&&this.componentMembers.has(h))b.push(` this.${h};${U1}`);else if(k)b.push(` ${h};${U1}`);else b.push(` __ripEl('${h}');${U1}`)},s=typeof i==="string"&&/^[a-z][\w-]*$/.test(i)&&!u.GENERATORS[i]&&q1.has(i.split(/[.#]/)[0]);if(i==="block")for(let h=1;h<c.length;h++)r(c[h],c,!1);else if(s){for(let h=1;h<c.length;h++)r(c[h],c,!0);for(let h=1;h<c.length;h++){let p=c[h];if(!Array.isArray(p))continue;let k=p[0]?.valueOf?.()??p[0];if(k==="object"||k==="block"||k==="__text__")continue;if(typeof k==="string"){if(/^[A-Z]/.test(k))continue;if(q1.has(k.split(/[.#]/)[0]))continue;if(/^[a-z][\w-]*$/.test(k)&&!u.GENERATORS[k])continue;if(/^(if|unless|switch|for-in|for-of|for-as|while|until|loop|loop-n|try|throw|break|continue|break-if|continue-if|control|when|return|def|->|=>|class|enum|state|computed|readonly|effect|=|program)$/.test(k))continue}try{let a=this.emitInComponent(p,"value"),U1=p.loc?.r??c.loc?.r,o=U1!=null?` // @rip-src:${U1}`:"";b.push(` ${a};${o}`)}catch{}}}for(let h=1;h<c.length;h++)u1(c[h]);if(typeof i==="string"&&/^[A-Z]/.test(i)){let h=l(c.slice(1)),p=`_${g++}`,k=`ConstructorParameters<typeof ${i}>[0] & {}`;if(h.length===0){let a=c.loc?.r;b.push(` const ${p}: ${k} = {};`+(a!=null?` // @rip-src:${a}`:""))}else if(h.length===1){let a=c.loc?.r??h[0].srcLine;b.push(` const ${p}: ${k} = {${h[0].code}};`+(a!=null?` // @rip-src:${a}`:""))}else{let a=c.loc?.r;if(new Set(h.map((o)=>o.srcLine).filter((o)=>o!=null)).size<=1){let o=h[0].srcLine??a;b.push(` const ${p}: ${k} = {${h.map((f1)=>f1.code).join(", ")}};`+(o!=null?` // @rip-src:${o}`:""))}else{b.push(` const ${p}: ${k} = {`+(a!=null?` // @rip-src:${a}`:""));for(let o of h)b.push(` ${o.code},`+(o.srcLine!=null?` // @rip-src:${o.srcLine}`:""));b.push(" };")}}}else if(typeof i==="string"&&!u.GENERATORS[i]&&(q1.has(i.split(/[.#]/)[0])||/^[a-z][\w-]*$/.test(i)&&c.length>1)){let h=i.split(/[.#]/)[0],p=e(c.slice(1)),k=c.loc?.r,a=k!=null?` // @rip-src:${k}`:"";if(p.length===0)b.push(` __ripEl('${h}');${a}`);else if(p.length===1){let U1=p[0].srcLine??k,o=U1!=null?` // @rip-src:${U1}`:"";b.push(` __ripEl('${h}', {${p[0].code}});${o}`)}else if(new Set(p.map((o)=>o.srcLine).filter((o)=>o!=null)).size<=1){let o=p[0].srcLine??k,f1=o!=null?` // @rip-src:${o}`:"";b.push(` __ripEl('${h}', {${p.map(($2)=>$2.code).join(", ")}});${f1}`)}else{b.push(` __ripEl('${h}', {${a}`);for(let o of p)b.push(` ${o.code},`+(o.srcLine!=null?` // @rip-src:${o.srcLine}`:""));b.push(" });")}}};if(u1(q),b.length>0){j.push(" _render() {");for(let c of b)j.push(c);j.push(" }")}}return j.push("}"),this.componentMembers=N,this.reactiveMembers=V,this._autoEventHandlers=L,this._inheritsTag=C,j.join(`
|
|
1256
|
+
`)}this.usesTemplates=!0,this.usesReactivity=!0;let E=[],n="";E.push("class extends __Component {"),E.push(" _init(props) {");for(let{name:T,value:j,isPublic:y}of D){let m=this.emitInComponent(j,"value");E.push(y?` this.${T} = props.${T} ?? ${m};`:` this.${T} = ${m};`)}for(let T of P)E.push(` this.${T} = getContext('${T}');`);for(let{name:T,value:j,isPublic:y,required:m}of X)if(y&&m)E.push(` this.${T} = __state(props.__bind_${T}__ ?? props.${T});`);else if(y){let t=this.emitInComponent(j,"value");E.push(` this.${T} = __state(props.__bind_${T}__ ?? props.${T} ?? ${t});`)}else{let t=this.emitInComponent(j,"value");E.push(` this.${T} = __state(${t});`)}if(H){if(E.push(" this._rest = {};"),E.push(" for (const __k in props) {"),S.size>0){let T=[...S].map((j)=>`__k !== '${j}'`).join(" && ");E.push(` if (${T} && !__k.startsWith('__bind_')) this._rest[__k] = props[__k];`)}else E.push(" if (!__k.startsWith('__bind_')) this._rest[__k] = props[__k];");E.push(" }")}for(let{name:T,expr:j}of K)if(this.is(j,"block")){let y=this.transformComponentMembers(j),m=this.emitFunctionBody(y);E.push(` this.${T} = __computed(() => ${m});`)}else{let y=this.emitInComponent(j,"value");E.push(` this.${T} = __computed(() => ${y});`)}for(let T of O)E.push(` setContext('${T}', this.${T});`);for(let T of R){let j=T[2],y=this.containsAwait(j)?"async ":"";if(this.is(j,"block")){let m=this.transformComponentMembers(j),t=this.emitFunctionBody(m,[],!0);E.push(` __effect(${y}() => ${t});`)}else{let m=this.emitInComponent(j,"value");E.push(` __effect(${y}() => { ${m}; });`)}}if(E.push(" }"),H)E.push(" _setRestProp(key, value) {"),E.push(" if (key.startsWith('__bind_')) return;"),E.push(" this._rest || (this._rest = {});"),E.push(" if (value == null) delete this._rest[key];"),E.push(" else this._rest[key] = value;"),E.push(" this._applyInheritedProp(this._inheritedEl, key, value);"),E.push(" }"),E.push(" _applyRestToInheritedEl() {"),E.push(" if (!this._inheritedEl || !this._rest) return;"),E.push(" for (const key in this._rest) this._applyInheritedProp(this._inheritedEl, key, this._rest[key]);"),E.push(" }"),E.push(" _applyInheritedProp(el, key, value) {"),E.push(" if (!el || key === 'key' || key === 'ref' || key === 'children' || key.startsWith('__bind_')) return;"),E.push(" if (key[0] === '@') {"),E.push(" const event = key.slice(1).split('.')[0];"),E.push(" this._restHandlers || (this._restHandlers = {});"),E.push(" const prev = this._restHandlers[key];"),E.push(" if (prev) el.removeEventListener(event, prev);"),E.push(" if (typeof value === 'function') {"),E.push(" const next = (e) => __batch(() => value(e));"),E.push(" this._restHandlers[key] = next;"),E.push(" el.addEventListener(event, next);"),E.push(" } else {"),E.push(" delete this._restHandlers[key];"),E.push(" }"),E.push(" return;"),E.push(" }"),E.push(" if (key === 'class' || key === 'className') {"),E.push(" if (el instanceof SVGElement) el.setAttribute('class', __clsx(value));"),E.push(" else el.className = __clsx(value);"),E.push(" return;"),E.push(" }"),E.push(" if (key === 'style') {"),E.push(" if (value == null) { el.removeAttribute('style'); return; }"),E.push(" if (typeof value === 'string') { el.setAttribute('style', value); return; }"),E.push(" if (typeof value === 'object') { Object.assign(el.style, value); return; }"),E.push(" }"),E.push(" if (key === 'innerHTML' || key === 'textContent' || key === 'innerText') {"),E.push(" el[key] = value ?? '';"),E.push(" return;"),E.push(" }"),E.push(" if (key in el && !key.includes('-')) {"),E.push(" el[key] = value;"),E.push(" return;"),E.push(" }"),E.push(" if (value == null || value === false) {"),E.push(" el.removeAttribute(key);"),E.push(" return;"),E.push(" }"),E.push(" if (value === true) {"),E.push(" el.setAttribute(key, '');"),E.push(" return;"),E.push(" }"),E.push(" el.setAttribute(key, value);"),E.push(" }");for(let{name:T,func:j}of w)if(Array.isArray(j)&&(j[0]==="->"||j[0]==="=>")){let[,y,m]=j;if((!y||Array.isArray(y)&&y.length===0)&&this.containsIt(m))y=["it"];let t=Array.isArray(y)?y.map((x)=>this.formatParam(x)).join(", "):"",$1=this.reactiveMembers?this.transformComponentMembers(m):m,b=this.containsAwait(m),g=this.emitFunctionBody($1,y||[]);E.push(` ${b?"async ":""}${T}(${t}) ${g}`)}for(let{name:T,value:j}of A)if(Array.isArray(j)&&(j[0]==="->"||j[0]==="=>")){let[,y,m]=j,t=Array.isArray(y)?y.map((x)=>this.formatParam(x)).join(", "):"",$1=this.reactiveMembers?this.transformComponentMembers(m):m,b=this.containsAwait(m),g=this.emitFunctionBody($1,y||[]);E.push(` ${b?"async ":""}${T}(${t}) ${g}`)}if(q){let T=q[1],j=this.buildRender(T);if(j.blockFactories.length>0)n=j.blockFactories.join(`
|
|
17
1257
|
|
|
18
1258
|
`)+`
|
|
19
1259
|
|
|
20
|
-
`;
|
|
21
|
-
${
|
|
1260
|
+
`;E.push(" _create() {");for(let y of j.createLines)E.push(` ${y}`);if(E.push(` return ${j.rootVar};`),E.push(" }"),j.setupLines.length>0){E.push(" _setup() {");for(let y of j.setupLines)E.push(` ${y}`);E.push(" }")}}if(E.push("}"),this.componentMembers=N,this.reactiveMembers=V,this._autoEventHandlers=L,this._inheritsTag=C,n)return`(() => {
|
|
1261
|
+
${n}return ${E.join(`
|
|
22
1262
|
`)};
|
|
23
|
-
})()`;return
|
|
24
|
-
`)},u.emitInComponent=function(F,A){if(typeof F==="string"&&this.reactiveMembers&&this.reactiveMembers.has(F))return`${this._self}.${F}.value`;if(typeof F==="string"&&this.componentMembers&&this.componentMembers.has(F))return`${this._self}.${F}`;if(Array.isArray(F)&&this.reactiveMembers){let G=this.transformComponentMembers(F);return this.emit(G,A)}return this.emit(F,A)},u.emitRender=function(F,A,G,Y){this.error("render blocks can only be used inside a component",Y)},u.emitOffer=function(F,A,G,Y){this.error("offer can only be used inside a component",Y)},u.emitAccept=function(F,A,G,Y){this.error("accept can only be used inside a component",Y)},u.buildRender=function(F){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 A=this.is(F,"block")?F.slice(1):[F],G;if(A.length===0)G="null";else if(A.length===1)this._pendingAutoWire=!!this._autoEventHandlers,G=this.emitNode(A[0]),this._pendingAutoWire=!1;else{G=this.newElementVar("frag"),this._createLines.push(`${G} = document.createDocumentFragment();`);let Y=[];for(let Z of A){let Q=this.emitNode(Z);this._createLines.push(`${G}.appendChild(${Q});`),Y.push(Q)}this._fragChildren.set(G,Y)}return{createLines:this._createLines,setupLines:this._setupLines,blockFactories:this._blockFactories,rootVar:G}},u.newBlockVar=function(){return`create_block_${this._blockCount++}`},u.newElementVar=function(F="el"){let A=`_${F}${this._elementCount++}`;if(this._factoryVars)this._factoryVars.add(A);return this._factoryMode?A:`this.${A}`},u.newTextVar=function(){let F=`_t${this._textCount++}`;if(this._factoryVars)this._factoryVars.add(F);return this._factoryMode?F:`this.${F}`},Object.defineProperty(u,"_self",{get(){return this._factoryMode?"ctx":"this"}}),u._pushEffect=function(F){if(this._factoryMode)this._setupLines.push(`disposers.push(__effect(() => { ${F} }));`);else this._setupLines.push(`__effect(() => { ${F} });`)},u.emitNode=function(F){if(typeof F==="string"||F instanceof String){let K=F.valueOf();if(K.startsWith('"')||K.startsWith("'")||K.startsWith("`")){let q=this.newTextVar();return this._createLines.push(`${q} = document.createTextNode(${K});`),q}if(this.reactiveMembers&&this.reactiveMembers.has(K)){let q=this.newTextVar();return this._createLines.push(`${q} = document.createTextNode('');`),this._pushEffect(`${q}.data = ${this._self}.${K}.value;`),q}if(K==="slot"&&this.componentMembers){let q=this._self,R=this.newElementVar("slot");return this._createLines.push(`${R} = ${q}.children instanceof Node ? ${q}.children : (${q}.children != null ? document.createTextNode(String(${q}.children)) : document.createComment(''));`),R}let[D,H]=K.split("#"),J=this.newElementVar(),z=D||"div";if(H1.has(z)||this._svgDepth>0)this._createLines.push(`${J} = document.createElementNS('${_2}', '${z}');`);else this._createLines.push(`${J} = document.createElement('${z}');`);if(H)this._createLines.push(`${J}.id = '${H}';`);return this._bindInheritedTarget(z,J),J}if(!Array.isArray(F)){let K=this.newElementVar("c");return this._createLines.push(`${K} = document.createComment('unknown');`),K}let[A,...G]=F,Y=typeof A==="string"?A:A instanceof String?A.valueOf():null;if(Y&&this.isComponent(Y))return this.emitChildComponent(Y,G);if(Y==="slot"&&this.componentMembers){let K=this._self,D=this.newElementVar("slot");return this._createLines.push(`${D} = ${K}.children instanceof Node ? ${K}.children : (${K}.children != null ? document.createTextNode(String(${K}.children)) : document.createComment(''));`),D}if(Y==="switch"){let K=G[0],D=G[1]||[],J=G[2]||null;for(let q=D.length-1;q>=0;q--){let[,R,X]=D[q],B;if(K===null)B=R.length===1?R[0]:R.reduce((I,O)=>I?["||",I,O]:O,null);else B=R.length===1?["==",K,R[0]]:R.map((I)=>["==",K,I]).reduce((I,O)=>I?["||",I,O]:O,null);J=["if",B,X,J]}if(J){if(Array.isArray(J)&&J[0]==="if")return this.emitConditional(J);return this.emitTemplateBlock(J)}let z=this.newElementVar("c");return this._createLines.push(`${z} = document.createComment('switch');`),z}if(Y&&this.isHtmlTag(Y)&&!_(A,"text")){let[K,D]=Y.split("#");return this.emitTag(K||"div",[],G,D)}if(Y==="."){let[,K,D]=F;if(K==="this"&&typeof D==="string"){let B=this._self;if(this.reactiveMembers&&this.reactiveMembers.has(D)){let O=this.newTextVar();return this._createLines.push(`${O} = document.createTextNode('');`),this._pushEffect(`${O}.data = ${B}.${D}.value;`),O}let I=this.newElementVar("slot");return this._createLines.push(`${I} = ${B}.${D} instanceof Node ? ${B}.${D} : (${B}.${D} != null ? document.createTextNode(String(${B}.${D})) : document.createComment(''));`),I}let{tag:H,classes:J,id:z,base:q}=this.collectTemplateClasses(F);if(!_(q,"text")&&H&&this.isHtmlTag(H))return this.emitTag(H,J,[],z);let R=this.newTextVar(),X=this.emitInComponent(F,"value");return this._createLines.push(`${R} = document.createTextNode(String(${X}));`),R}if(Array.isArray(A)){if(Array.isArray(A[0])&&A[0][0]==="."&&(A[0][2]==="__clsx"||A[0][2]instanceof String&&A[0][2].valueOf()==="__clsx")){let J=A[0][1],z=A.slice(1);if(Array.isArray(J)){let{tag:R,classes:X,id:B}=this.collectTemplateClasses(J);if(R){let I=X.map((O)=>`"${O}"`);return this.emitDynamicTag(R,z,G,I,B)}}let q=typeof J==="string"?J:J.valueOf();return this.emitDynamicTag(q,z,G)}let{tag:K,classes:D,id:H}=this.collectTemplateClasses(A);if(K&&this.isHtmlTag(K)){if(D.length>0&&D[D.length-1]==="__clsx"){let z=D.slice(0,-1).map((q)=>`"${q}"`);return this.emitDynamicTag(K,G,[],z,H)}return this.emitTag(K,D,G,H)}}if(Y==="->"||Y==="=>")return this.emitTemplateBlock(G[1]);if(Y==="if")return this.emitConditional(F);if(Y==="for"||Y==="for-in"||Y==="for-of"||Y==="for-as")return this.emitTemplateLoop(F);if(Y==="__text__"){let K=G[0]??"undefined",D=this.newTextVar(),H=this.emitInComponent(K,"value");if(this.hasReactiveDeps(K))this._createLines.push(`${D} = document.createTextNode('');`),this._pushEffect(`${D}.data = String(${H});`);else this._createLines.push(`${D} = document.createTextNode(String(${H}));`);return D}let Z=this.newTextVar(),Q=this.emitInComponent(F,"value");if(this.hasReactiveDeps(F))this._createLines.push(`${Z} = document.createTextNode('');`),this._pushEffect(`${Z}.data = ${Q};`);else this._createLines.push(`${Z} = document.createTextNode(String(${Q}));`);return Z},u.appendChildren=function(F,A){for(let G of A)if(this.is(G,"->")||this.is(G,"=>")){let Y=G[2];if(this.is(Y,"block"))for(let Z of Y.slice(1))if(this.is(Z,"object"))this.emitAttributes(F,Z);else{let Q=this.emitNode(Z);this._createLines.push(`${F}.appendChild(${Q});`)}else if(Y){let Z=this.emitNode(Y);this._createLines.push(`${F}.appendChild(${Z});`)}}else if(this.is(G,"object"))this.emitAttributes(F,G);else if(typeof G==="string"||G instanceof String){let Y=G.valueOf(),Z=Y.split(/[#.]/)[0];if(this.isHtmlTag(Z||"div")||this.isComponent(Z)){let Q=this.emitNode(G);this._createLines.push(`${F}.appendChild(${Q});`)}else{let Q=this.newTextVar();if(Y.startsWith('"')||Y.startsWith("'")||Y.startsWith("`"))this._createLines.push(`${Q} = document.createTextNode(${Y});`);else if(this.reactiveMembers&&this.reactiveMembers.has(Y))this._createLines.push(`${Q} = document.createTextNode('');`),this._pushEffect(`${Q}.data = ${this._self}.${Y}.value;`);else if(this.componentMembers&&this.componentMembers.has(Y))this._createLines.push(`${Q} = document.createTextNode(String(${this._self}.${Y}));`);else this._createLines.push(`${Q} = document.createTextNode(${this.emitInComponent(G,"value")});`);this._createLines.push(`${F}.appendChild(${Q});`)}}else if(G){let Y=this.emitNode(G);this._createLines.push(`${F}.appendChild(${Y});`)}},u._claimAutoWire=function(F){if(!this._pendingAutoWire||!this._autoEventHandlers?.size)return!1;return this._pendingAutoWire=!1,this._autoWireEl=F,this._autoWireExplicit=new Set,!0},u._emitAutoWire=function(F,A){if(!A)return;for(let[G,Y]of this._autoEventHandlers)if(!this._autoWireExplicit.has(G))this._createLines.push(`${F}.addEventListener('${G}', (e) => __batch(() => ${this._self}.${Y}(e)));`);this._autoWireEl=null,this._autoWireExplicit=null},u._bindInheritedTarget=function(F,A){if(!this._inheritsTag||this._factoryMode||this._inheritsTargetBound)return;if(F!==this._inheritsTag)return;this._inheritsTargetBound=!0,this._createLines.push(`this._inheritedEl = ${A};`),this._createLines.push("this._applyRestToInheritedEl();")},u.emitTag=function(F,A,G,Y){let Z=this.newElementVar(),Q=H1.has(F)||this._svgDepth>0;if(Q)this._createLines.push(`${Z} = document.createElementNS('${_2}', '${F}');`);else this._createLines.push(`${Z} = document.createElement('${F}');`);if(Y)this._createLines.push(`${Z}.id = '${Y}';`);if(this._bindInheritedTarget(F,Z),this._componentName&&this._elementCount===1&&!this._factoryMode&&!this.options.skipDataPart)this._createLines.push(`${Z}.setAttribute('data-part', '${this._componentName}');`);let K=this._claimAutoWire(Z),D=this._pendingClassArgs,H=this._pendingClassEl;if(A.length>0)this._pendingClassArgs=[`'${A.join(" ")}'`],this._pendingClassEl=Z;if(F==="svg")this._svgDepth=(this._svgDepth||0)+1;if(this.appendChildren(Z,G),F==="svg")this._svgDepth--;if(A.length>0){if(this._pendingClassArgs.length===1)if(Q)this._createLines.push(`${Z}.setAttribute('class', '${A.join(" ")}');`);else this._createLines.push(`${Z}.className = '${A.join(" ")}';`);else{let J=this._pendingClassArgs.join(", ");if(Q)this._pushEffect(`${Z}.setAttribute('class', __clsx(${J}));`);else this._pushEffect(`${Z}.className = __clsx(${J});`)}this._pendingClassArgs=D,this._pendingClassEl=H}return this._emitAutoWire(Z,K),Z},u.emitDynamicTag=function(F,A,G,Y,Z){let Q=this.newElementVar();if(H1.has(F)||this._svgDepth>0)this._createLines.push(`${Q} = document.createElementNS('${_2}', '${F}');`);else this._createLines.push(`${Q} = document.createElement('${F}');`);if(Z)this._createLines.push(`${Q}.id = '${Z}';`);this._bindInheritedTarget(F,Q);let K=this._claimAutoWire(Q),D=[...Y||[],...A.map((z)=>this.emitInComponent(z,"value"))],H=this._pendingClassArgs,J=this._pendingClassEl;if(this._pendingClassArgs=D,this._pendingClassEl=Q,F==="svg")this._svgDepth=(this._svgDepth||0)+1;if(this.appendChildren(Q,G),F==="svg")this._svgDepth--;if(this._pendingClassArgs.length>0){let z=this._pendingClassArgs.join(", ");if(H1.has(F)||this._svgDepth>0)this._pushEffect(`${Q}.setAttribute('class', __clsx(${z}));`);else this._pushEffect(`${Q}.className = __clsx(${z});`)}return this._pendingClassArgs=H,this._pendingClassEl=J,this._emitAutoWire(Q,K),Q},u.emitAttributes=function(F,A){let G=E4(A.slice(1));for(let Y=1;Y<A.length;Y++){let[,Z,Q]=A[Y];if(this.is(Z,".")&&Z[1]==="this"){let K=Z[2];if(this._autoWireExplicit&&this._autoWireEl===F)this._autoWireExplicit.add(K);if(typeof Q==="string"&&this.componentMembers?.has(Q))this._createLines.push(`${F}.addEventListener('${K}', (e) => __batch(() => ${this._self}.${Q}(e)));`);else{let D=this.emitInComponent(Q,"value");this._createLines.push(`${F}.addEventListener('${K}', (e) => __batch(() => (${D})(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 D=this.emitInComponent(Q,"value");if(this._pendingClassArgs&&this._pendingClassEl===F)this._pendingClassArgs.push(D);else if(this.hasReactiveDeps(Q))if(this._svgDepth>0)this._pushEffect(`${F}.setAttribute('class', __clsx(${D}));`);else this._pushEffect(`${F}.className = __clsx(${D});`);else if(this._svgDepth>0)this._createLines.push(`${F}.setAttribute('class', ${D});`);else this._createLines.push(`${F}.className = ${D};`);continue}if(Z==="__transition__"){let D=String(Q).replace(/^["']|["']$/g,"");this._createLines.push(`this._t = "${D}";`);continue}if(Z==="ref"){let D=String(Q).replace(/^["']|["']$/g,"");this._createLines.push(`${this._self}.${D} = ${F};`);continue}if(Z.startsWith(g2)&&Z.endsWith(l2)){let D=Z.slice(g2.length,-l2.length),H=this.emitInComponent(Q,"value"),J,z;if(D==="checked")J="change",z="e.target.checked";else J="input",z=G==="number"||G==="range"?"e.target.valueAsNumber":"e.target.value";this._pushEffect(`${F}.${D} = ${H};`);let q=`${H} = ${z}`,R=!this.isSimpleAssignable(Q)&&this.findRootReactiveMember(Q);if(R)q+=`; ${this._self}.${R}.touch?.()`;this._createLines.push(`${F}.addEventListener('${J}', (e) => { ${q}; });`);continue}let K=this.emitInComponent(Q,"value");if((Z==="value"||Z==="checked")&&this.hasReactiveDeps(Q)){this._pushEffect(`${F}.${Z} = ${K};`);continue}if(Z==="innerHTML"||Z==="textContent"||Z==="innerText")if(this.hasReactiveDeps(Q))this._pushEffect(`${F}.${Z} = ${K};`);else this._createLines.push(`${F}.${Z} = ${K};`);else if(B4.has(Z))if(this.hasReactiveDeps(Q))this._pushEffect(`${F}.toggleAttribute('${Z}', !!${K});`);else this._createLines.push(`if (${K}) ${F}.setAttribute('${Z}', '');`);else if(this.hasReactiveDeps(Q))if(Array.isArray(Q)&&Q[0]==="presence")this._pushEffect(`{ const __v = ${K}; __v == null ? ${F}.removeAttribute('${Z}') : ${F}.setAttribute('${Z}', __v); }`);else this._pushEffect(`${F}.setAttribute('${Z}', ${K});`);else if(Array.isArray(Q)&&Q[0]==="presence")this._createLines.push(`{ const __v = ${K}; if (__v != null) ${F}.setAttribute('${Z}', __v); }`);else this._createLines.push(`${F}.setAttribute('${Z}', ${K});`)}}},u.emitTemplateBlock=function(F){if(!Array.isArray(F)||F[0]!=="block")return this.emitNode(F);let A=F.slice(1);if(A.length===0){let Z=this.newElementVar("empty");return this._createLines.push(`${Z} = document.createComment('');`),Z}if(A.length===1)return this.emitNode(A[0]);let G=this.newElementVar("frag");this._createLines.push(`${G} = document.createDocumentFragment();`);let Y=[];for(let Z of A){let Q=this.emitNode(Z);this._createLines.push(`${G}.appendChild(${Q});`),Y.push(Q)}return this._fragChildren.set(G,Y),G},u.emitConditional=function(F){if(this._pendingAutoWire=!1,F.length>4){let X=F[F.length-1];for(let B=F.length-2;B>=3;B--)X=[...F[B],X];F=[F[0],F[1],F[2],X]}let[,A,G,Y]=F,Z=this.newElementVar("anchor");this._createLines.push(`${Z} = document.createComment('if');`);let Q=this.emitInComponent(A,"value"),K=this._loopVarStack.map((X)=>`${X.itemVar}, ${X.indexVar}`).join(", "),D=K?`, ${K}`:"",H=this.newBlockVar();this.emitConditionBranch(H,G);let J=null;if(Y)J=this.newBlockVar(),this.emitConditionBranch(J,Y);let z=[];z.push(`// Conditional: ${H}${J?" / "+J:""}`),z.push("{"),z.push(` const anchor = ${Z};`),z.push(" let currentBlock = null;"),z.push(" let showing = null;");let q=this._factoryMode?"disposers.push(__effect(() => {":"__effect(() => {",R=this._factoryMode?"}));":"});";if(z.push(` ${q}`),z.push(` const show = !!(${Q});`),z.push(` const want = show ? 'then' : ${Y?"'else'":"null"};`),z.push(" if (want === showing) return;"),z.push(""),z.push(" if (currentBlock) {"),z.push(" const leaving = currentBlock;"),z.push(" if (leaving._t) { __transition(leaving._first, leaving._t, 'leave', () => leaving.d(true)); }"),z.push(" else { leaving.d(true); }"),z.push(" currentBlock = null;"),z.push(" }"),z.push(" showing = want;"),z.push(""),z.push(" if (want === 'then') {"),z.push(` currentBlock = ${H}(${this._self}${D});`),z.push(" currentBlock.c();"),z.push(" if (anchor.parentNode) currentBlock.m(anchor.parentNode, anchor.nextSibling);"),z.push(` currentBlock.p(${this._self}${D});`),z.push(" if (currentBlock._t) __transition(currentBlock._first, currentBlock._t, 'enter');"),z.push(" }"),Y)z.push(" if (want === 'else') {"),z.push(` currentBlock = ${J}(${this._self}${D});`),z.push(" currentBlock.c();"),z.push(" if (anchor.parentNode) currentBlock.m(anchor.parentNode, anchor.nextSibling);"),z.push(` currentBlock.p(${this._self}${D});`),z.push(" if (currentBlock._t) __transition(currentBlock._first, currentBlock._t, 'enter');"),z.push(" }");if(z.push(` ${R}`),this._factoryMode)z.push(" disposers.push(() => { if (currentBlock) { currentBlock.d(true); currentBlock = null; } });");return z.push("}"),this._setupLines.push(z.join(`
|
|
25
|
-
`)),
|
|
26
|
-
`))},
|
|
27
|
-
`)),
|
|
1263
|
+
})()`;return E.join(`
|
|
1264
|
+
`)},f.emitInComponent=function(Y,Z){if(typeof Y==="string"&&this.reactiveMembers&&this.reactiveMembers.has(Y))return`${this._self}.${Y}.value`;if(typeof Y==="string"&&this.componentMembers&&this.componentMembers.has(Y))return`${this._self}.${Y}`;if(Array.isArray(Y)&&this.reactiveMembers){let G=this.transformComponentMembers(Y);return this.emit(G,Z)}return this.emit(Y,Z)},f.emitRender=function(Y,Z,G,Q){this.error("render blocks can only be used inside a component",Q)},f.emitOffer=function(Y,Z,G,Q){this.error("offer can only be used inside a component",Q)},f.emitAccept=function(Y,Z,G,Q){this.error("accept can only be used inside a component",Q)},f.buildRender=function(Y){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 Z=this.is(Y,"block")?Y.slice(1):[Y],G;if(Z.length===0||Z.length===1&&Z[0]==="null")G="null";else if(Z.length===1)this._pendingAutoWire=!!this._autoEventHandlers,G=this.emitNode(Z[0]),this._pendingAutoWire=!1;else{G=this.newElementVar("frag"),this._createLines.push(`${G} = document.createDocumentFragment();`);let Q=[];for(let z of Z){let J=this.emitNode(z);this._createLines.push(`${G}.appendChild(${J});`),Q.push(J)}this._fragChildren.set(G,Q)}return{createLines:this._createLines,setupLines:this._setupLines,blockFactories:this._blockFactories,rootVar:G}},f.newBlockVar=function(){return`create_block_${this._blockCount++}`},f.newElementVar=function(Y="el"){let Z=`_${Y}${this._elementCount++}`;if(this._factoryVars)this._factoryVars.add(Z);return this._factoryMode?Z:`this.${Z}`},f.newTextVar=function(){let Y=`_t${this._textCount++}`;if(this._factoryVars)this._factoryVars.add(Y);return this._factoryMode?Y:`this.${Y}`},Object.defineProperty(f,"_self",{get(){return this._factoryMode?"ctx":"this"}}),f._pushEffect=function(Y){if(this._factoryMode)this._setupLines.push(`disposers.push(__effect(() => { ${Y} }));`);else this._setupLines.push(`__effect(() => { ${Y} });`)},f.emitNode=function(Y){if(typeof Y==="string"||Y instanceof String){let X=Y.valueOf();if(X.startsWith('"')||X.startsWith("'")||X.startsWith("`")){let R=this.newTextVar();return this._createLines.push(`${R} = document.createTextNode(${X});`),R}if(this.reactiveMembers&&this.reactiveMembers.has(X)){let R=this.newTextVar();return this._createLines.push(`${R} = document.createTextNode('');`),this._pushEffect(`${R}.data = ${this._self}.${X}.value;`),R}if(X==="slot"&&this.componentMembers){let R=this._self,O=this.newElementVar("slot");return this._createLines.push(`${O} = ${R}.children instanceof Node ? ${R}.children : (${R}.children != null ? document.createTextNode(String(${R}.children)) : document.createComment(''));`),O}let[K,D]=X.split("#"),w=this.newElementVar(),A=K||"div";if(O1.has(A)||this._svgDepth>0)this._createLines.push(`${w} = document.createElementNS('${w2}', '${A}');`);else this._createLines.push(`${w} = document.createElement('${A}');`);if(D)this._createLines.push(`${w}.id = '${D}';`);return this._bindInheritedTarget(A,w),w}if(!Array.isArray(Y)){let X=this.newElementVar("c");return this._createLines.push(`${X} = document.createComment('unknown');`),X}let[Z,...G]=Y,Q=typeof Z==="string"?Z:Z instanceof String?Z.valueOf():null;if(Q&&this.isComponent(Q))return this.emitChildComponent(Q,G);if(Q==="slot"&&this.componentMembers){let X=this._self,K=this.newElementVar("slot");return this._createLines.push(`${K} = ${X}.children instanceof Node ? ${X}.children : (${X}.children != null ? document.createTextNode(String(${X}.children)) : document.createComment(''));`),K}if(Q==="switch"){let X=G[0],K=G[1]||[],w=G[2]||null;for(let R=K.length-1;R>=0;R--){let[,O,P]=K[R],q;if(X===null)q=O.length===1?O[0]:O.reduce((B,M)=>B?["||",B,M]:M,null);else q=O.length===1?["==",X,O[0]]:O.map((B)=>["==",X,B]).reduce((B,M)=>B?["||",B,M]:M,null);w=["if",q,P,w]}if(w){if(Array.isArray(w)&&w[0]==="if")return this.emitConditional(w);return this.emitTemplateBlock(w)}let A=this.newElementVar("c");return this._createLines.push(`${A} = document.createComment('switch');`),A}if(Q&&this.isHtmlTag(Q)&&!_(Z,"text")){let[X,K]=Q.split("#");return this.emitTag(X||"div",[],G,K)}if(Q==="."){let[,X,K]=Y;if(X==="this"&&typeof K==="string"){let q=this._self;if(this.reactiveMembers&&this.reactiveMembers.has(K)){let M=this.newTextVar();return this._createLines.push(`${M} = document.createTextNode('');`),this._pushEffect(`${M}.data = ${q}.${K}.value;`),M}let B=this.newElementVar("slot");return this._createLines.push(`${B} = ${q}.${K} instanceof Node ? ${q}.${K} : (${q}.${K} != null ? document.createTextNode(String(${q}.${K})) : document.createComment(''));`),B}let{tag:D,classes:w,id:A,base:R}=this.collectTemplateClasses(Y);if(!_(R,"text")&&D&&this.isHtmlTag(D))return this.emitTag(D,w,[],A);let O=this.newTextVar(),P=this.emitInComponent(Y,"value");return this._createLines.push(`${O} = document.createTextNode(String(${P}));`),O}if(Array.isArray(Z)){if(Array.isArray(Z[0])&&Z[0][0]==="."&&(Z[0][2]==="__clsx"||Z[0][2]instanceof String&&Z[0][2].valueOf()==="__clsx")){let w=Z[0][1],A=Z.slice(1);if(Array.isArray(w)){let{tag:O,classes:P,id:q}=this.collectTemplateClasses(w);if(O){let B=P.map((M)=>`"${M}"`);return this.emitDynamicTag(O,A,G,B,q)}}let R=typeof w==="string"?w:w.valueOf();return this.emitDynamicTag(R,A,G)}let{tag:X,classes:K,id:D}=this.collectTemplateClasses(Z);if(X&&this.isHtmlTag(X)){if(K.length>0&&K[K.length-1]==="__clsx"){let A=K.slice(0,-1).map((R)=>`"${R}"`);return this.emitDynamicTag(X,G,[],A,D)}return this.emitTag(X,K,G,D)}}if(Q==="->"||Q==="=>")return this.emitTemplateBlock(G[1]);if(Q==="if")return this.emitConditional(Y);if(Q==="for"||Q==="for-in"||Q==="for-of"||Q==="for-as")return this.emitTemplateLoop(Y);if(Q==="__text__"){let X=G[0]??"undefined",K=this.newTextVar(),D=this.emitInComponent(X,"value");if(this.hasReactiveDeps(X))this._createLines.push(`${K} = document.createTextNode('');`),this._pushEffect(`${K}.data = String(${D});`);else this._createLines.push(`${K} = document.createTextNode(String(${D}));`);return K}let z=this.newTextVar(),J=this.emitInComponent(Y,"value");if(this.hasReactiveDeps(Y))this._createLines.push(`${z} = document.createTextNode('');`),this._pushEffect(`${z}.data = ${J};`);else this._createLines.push(`${z} = document.createTextNode(String(${J}));`);return z},f.appendChildren=function(Y,Z){for(let G of Z)if(this.is(G,"->")||this.is(G,"=>")){let Q=G[2];if(this.is(Q,"block"))for(let z of Q.slice(1))if(this.is(z,"object"))this.emitAttributes(Y,z);else{let J=this.emitNode(z);this._createLines.push(`${Y}.appendChild(${J});`)}else if(Q){let z=this.emitNode(Q);this._createLines.push(`${Y}.appendChild(${z});`)}}else if(this.is(G,"object"))this.emitAttributes(Y,G);else if(typeof G==="string"||G instanceof String){let Q=G.valueOf(),z=Q.split(/[#.]/)[0];if(this.isHtmlTag(z||"div")||this.isComponent(z)){let J=this.emitNode(G);this._createLines.push(`${Y}.appendChild(${J});`)}else{let J=this.newTextVar();if(Q.startsWith('"')||Q.startsWith("'")||Q.startsWith("`"))this._createLines.push(`${J} = document.createTextNode(${Q});`);else if(this.reactiveMembers&&this.reactiveMembers.has(Q))this._createLines.push(`${J} = document.createTextNode('');`),this._pushEffect(`${J}.data = ${this._self}.${Q}.value;`);else if(this.componentMembers&&this.componentMembers.has(Q))this._createLines.push(`${J} = document.createTextNode(String(${this._self}.${Q}));`);else this._createLines.push(`${J} = document.createTextNode(${this.emitInComponent(G,"value")});`);this._createLines.push(`${Y}.appendChild(${J});`)}}else if(G){let Q=this.emitNode(G);this._createLines.push(`${Y}.appendChild(${Q});`)}},f._claimAutoWire=function(Y){if(!this._pendingAutoWire||!this._autoEventHandlers?.size)return!1;return this._pendingAutoWire=!1,this._autoWireEl=Y,this._autoWireExplicit=new Set,!0},f._emitAutoWire=function(Y,Z){if(!Z)return;for(let[G,Q]of this._autoEventHandlers)if(!this._autoWireExplicit.has(G))this._createLines.push(`${Y}.addEventListener('${G}', (e) => __batch(() => ${this._self}.${Q}(e)));`);this._autoWireEl=null,this._autoWireExplicit=null},f._bindInheritedTarget=function(Y,Z){if(!this._inheritsTag||this._factoryMode||this._inheritsTargetBound)return;if(Y!==this._inheritsTag)return;this._inheritsTargetBound=!0,this._createLines.push(`this._inheritedEl = ${Z};`),this._createLines.push("this._applyRestToInheritedEl();")},f.emitTag=function(Y,Z,G,Q){let z=this.newElementVar(),J=O1.has(Y)||this._svgDepth>0;if(J)this._createLines.push(`${z} = document.createElementNS('${w2}', '${Y}');`);else this._createLines.push(`${z} = document.createElement('${Y}');`);if(Q)this._createLines.push(`${z}.id = '${Q}';`);if(this._bindInheritedTarget(Y,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),K=this._pendingClassArgs,D=this._pendingClassEl;if(Z.length>0)this._pendingClassArgs=[`'${Z.join(" ")}'`],this._pendingClassEl=z;if(Y==="svg")this._svgDepth=(this._svgDepth||0)+1;if(this.appendChildren(z,G),Y==="svg")this._svgDepth--;if(Z.length>0){if(this._pendingClassArgs.length===1)if(J)this._createLines.push(`${z}.setAttribute('class', '${Z.join(" ")}');`);else this._createLines.push(`${z}.className = '${Z.join(" ")}';`);else{let w=this._pendingClassArgs.join(", ");if(J)this._pushEffect(`${z}.setAttribute('class', __clsx(${w}));`);else this._pushEffect(`${z}.className = __clsx(${w});`)}this._pendingClassArgs=K,this._pendingClassEl=D}return this._emitAutoWire(z,X),z},f.emitDynamicTag=function(Y,Z,G,Q,z){let J=this.newElementVar();if(O1.has(Y)||this._svgDepth>0)this._createLines.push(`${J} = document.createElementNS('${w2}', '${Y}');`);else this._createLines.push(`${J} = document.createElement('${Y}');`);if(z)this._createLines.push(`${J}.id = '${z}';`);this._bindInheritedTarget(Y,J);let X=this._claimAutoWire(J),K=[...Q||[],...Z.map((A)=>this.emitInComponent(A,"value"))],D=this._pendingClassArgs,w=this._pendingClassEl;if(this._pendingClassArgs=K,this._pendingClassEl=J,Y==="svg")this._svgDepth=(this._svgDepth||0)+1;if(this.appendChildren(J,G),Y==="svg")this._svgDepth--;if(this._pendingClassArgs.length>0){let A=this._pendingClassArgs.join(", ");if(O1.has(Y)||this._svgDepth>0)this._pushEffect(`${J}.setAttribute('class', __clsx(${A}));`);else this._pushEffect(`${J}.className = __clsx(${A});`)}return this._pendingClassArgs=D,this._pendingClassEl=w,this._emitAutoWire(J,X),J},f.emitAttributes=function(Y,Z){let G=c5(Z.slice(1));for(let Q=1;Q<Z.length;Q++){let[,z,J]=Z[Q];if(this.is(z,".")&&z[1]==="this"){let X=z[2];if(this._autoWireExplicit&&this._autoWireEl===Y)this._autoWireExplicit.add(X);if(typeof J==="string"&&this.componentMembers?.has(J))this._createLines.push(`${Y}.addEventListener('${X}', (e) => __batch(() => ${this._self}.${J}(e)));`);else{let K=this.emitInComponent(J,"value");this._createLines.push(`${Y}.addEventListener('${X}', (e) => __batch(() => (${K})(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 K=this.emitInComponent(J,"value");if(this._pendingClassArgs&&this._pendingClassEl===Y)this._pendingClassArgs.push(K);else if(this.hasReactiveDeps(J))if(this._svgDepth>0)this._pushEffect(`${Y}.setAttribute('class', __clsx(${K}));`);else this._pushEffect(`${Y}.className = __clsx(${K});`);else if(this._svgDepth>0)this._createLines.push(`${Y}.setAttribute('class', ${K});`);else this._createLines.push(`${Y}.className = ${K};`);continue}if(z==="__transition__"){let K=String(J).replace(/^["']|["']$/g,"");this._createLines.push(`this._t = "${K}";`);continue}if(z==="ref"){let K=String(J).replace(/^["']|["']$/g,"");this._createLines.push(`${this._self}.${K} = ${Y};`);continue}if(z.startsWith(W3)&&z.endsWith(_3)){let K=z.slice(W3.length,-_3.length),D=this.emitInComponent(J,"value"),w,A;if(K==="checked")w="change",A="e.target.checked";else w="input",A=G==="number"||G==="range"?"e.target.valueAsNumber":"e.target.value";this._pushEffect(`${Y}.${K} = ${D};`);let R=`${D} = ${A}`,O=!this.isSimpleAssignable(J)&&this.findRootReactiveMember(J);if(O)R+=`; ${this._self}.${O}.touch?.()`;this._createLines.push(`${Y}.addEventListener('${w}', (e) => { ${R}; });`);continue}let X=this.emitInComponent(J,"value");if((z==="value"||z==="checked")&&this.hasReactiveDeps(J)){this._pushEffect(`${Y}.${z} = ${X};`);continue}if(z==="innerHTML"||z==="textContent"||z==="innerText")if(this.hasReactiveDeps(J))this._pushEffect(`${Y}.${z} = ${X};`);else this._createLines.push(`${Y}.${z} = ${X};`);else if(g5.has(z))if(this.hasReactiveDeps(J))this._pushEffect(`${Y}.toggleAttribute('${z}', !!${X});`);else this._createLines.push(`if (${X}) ${Y}.setAttribute('${z}', '');`);else if(this.hasReactiveDeps(J))if(Array.isArray(J)&&J[0]==="presence")this._pushEffect(`{ const __v = ${X}; __v == null ? ${Y}.removeAttribute('${z}') : ${Y}.setAttribute('${z}', __v); }`);else this._pushEffect(`${Y}.setAttribute('${z}', ${X});`);else if(Array.isArray(J)&&J[0]==="presence")this._createLines.push(`{ const __v = ${X}; if (__v != null) ${Y}.setAttribute('${z}', __v); }`);else this._createLines.push(`${Y}.setAttribute('${z}', ${X});`)}}},f.emitTemplateBlock=function(Y){if(!Array.isArray(Y)||Y[0]!=="block")return this.emitNode(Y);let Z=Y.slice(1);if(Z.length===0){let z=this.newElementVar("empty");return this._createLines.push(`${z} = document.createComment('');`),z}if(Z.length===1)return this.emitNode(Z[0]);let G=this.newElementVar("frag");this._createLines.push(`${G} = document.createDocumentFragment();`);let Q=[];for(let z of Z){let J=this.emitNode(z);this._createLines.push(`${G}.appendChild(${J});`),Q.push(J)}return this._fragChildren.set(G,Q),G},f.emitConditional=function(Y){if(this._pendingAutoWire=!1,Y.length>4){let P=Y[Y.length-1];for(let q=Y.length-2;q>=3;q--)P=[...Y[q],P];Y=[Y[0],Y[1],Y[2],P]}let[,Z,G,Q]=Y,z=this.newElementVar("anchor");this._createLines.push(`${z} = document.createComment('if');`);let J=this.emitInComponent(Z,"value"),X=this._loopVarStack.map((P)=>`${P.itemVar}, ${P.indexVar}`).join(", "),K=X?`, ${X}`:"",D=this.newBlockVar();this.emitConditionBranch(D,G);let w=null;if(Q)w=this.newBlockVar(),this.emitConditionBranch(w,Q);let A=[];A.push(`// Conditional: ${D}${w?" / "+w:""}`),A.push("{"),A.push(` const anchor = ${z};`),A.push(" let currentBlock = null;"),A.push(" let showing = null;");let R=this._factoryMode?"disposers.push(__effect(() => {":"__effect(() => {",O=this._factoryMode?"}));":"});";if(A.push(` ${R}`),A.push(` const show = !!(${J});`),A.push(` const want = show ? 'then' : ${Q?"'else'":"null"};`),A.push(" if (want === showing) return;"),A.push(""),A.push(" if (currentBlock) {"),A.push(" const leaving = currentBlock;"),A.push(" if (leaving._t) { __transition(leaving._first, leaving._t, 'leave', () => leaving.d(true)); }"),A.push(" else { leaving.d(true); }"),A.push(" currentBlock = null;"),A.push(" }"),A.push(" showing = want;"),A.push(""),A.push(" if (want === 'then') {"),A.push(` currentBlock = ${D}(${this._self}${K});`),A.push(" currentBlock.c();"),A.push(" if (anchor.parentNode) currentBlock.m(anchor.parentNode, anchor.nextSibling);"),A.push(` currentBlock.p(${this._self}${K});`),A.push(" if (currentBlock._t) __transition(currentBlock._first, currentBlock._t, 'enter');"),A.push(" }"),Q)A.push(" if (want === 'else') {"),A.push(` currentBlock = ${w}(${this._self}${K});`),A.push(" currentBlock.c();"),A.push(" if (anchor.parentNode) currentBlock.m(anchor.parentNode, anchor.nextSibling);"),A.push(` currentBlock.p(${this._self}${K});`),A.push(" if (currentBlock._t) __transition(currentBlock._first, currentBlock._t, 'enter');"),A.push(" }");if(A.push(` ${O}`),this._factoryMode)A.push(" disposers.push(() => { if (currentBlock) { currentBlock.d(true); currentBlock = null; } });");return A.push("}"),this._setupLines.push(A.join(`
|
|
1265
|
+
`)),z},f.emitConditionBranch=function(Y,Z){let G=[this._createLines,this._setupLines,this._factoryMode,this._factoryVars];this._createLines=[],this._setupLines=[],this._factoryMode=!0,this._factoryVars=new Set;let Q=this.emitTemplateBlock(Z),z=this._createLines,J=this._setupLines,X=this._factoryVars;[this._createLines,this._setupLines,this._factoryMode,this._factoryVars]=G;let K=this._loopVarStack.map((w)=>`${w.itemVar}, ${w.indexVar}`).join(", "),D=K?`, ${K}`:"";this.emitBlockFactory(Y,`ctx${D}`,Q,z,J,X)},f.emitBlockFactory=function(Y,Z,G,Q,z,J,X){let K=[];if(K.push(`function ${Y}(${Z}) {`),J.size>0)K.push(` let ${[...J].join(", ")};`);let D=z.length>0;if(D)K.push(" let disposers = [];");if(K.push(" return {"),X)K.push(" _s: true,");let w=this._fragChildren.get(G),A=w?w[0]:G;K.push(" c() {");for(let R of Q)K.push(` ${R}`);if(K.push(` this._first = ${A};`),K.push(" },"),K.push(" m(target, anchor) {"),w)for(let R of w)K.push(` if (target) target.insertBefore(${R}, anchor);`);else K.push(` if (target) target.insertBefore(${G}, anchor);`);if(K.push(" },"),K.push(` p(${Z}) {`),D){K.push(" disposers.forEach(d => d());"),K.push(" disposers = [];");for(let R of z)K.push(` ${R}`)}if(K.push(" },"),K.push(" d(detaching) {"),D)K.push(" disposers.forEach(d => d());");if(w)for(let R of w)K.push(` if (detaching && ${R}) ${R}.remove();`);else K.push(` if (detaching && ${G}) ${G}.remove();`);K.push(" }"),K.push(" };"),K.push("}"),this._blockFactories.push(K.join(`
|
|
1266
|
+
`))},f.emitTemplateLoop=function(Y){this._pendingAutoWire=!1;let[Z,G,Q,z,J,X]=Y,K=this.newBlockVar(),D=this.newElementVar("anchor");this._createLines.push(`${D} = document.createComment('for');`);let w=Array.isArray(G)?G:[G],A=w[0],R=w[1]||null;if(!R){let m=new Set(this._loopVarStack.flatMap((t)=>[t.itemVar,t.indexVar]));m.add(A);for(let t of["i","j","k","l","m","n"])if(!m.has(t)){R=t;break}R=R||`_i${this._loopVarStack.length}`}let O=this.emitInComponent(Q,"value"),P=A;if(this.is(X,"block")&&X.length>1){let m=X[1];if(Array.isArray(m))for(let t of m){if(this.is(t,"object"))for(let $1=1;$1<t.length;$1++){let[b,g]=t[$1];if(b==="key"){P=this.emit(g,"value");break}}if(P!==A)break}}let q=[this._createLines,this._setupLines,this._factoryMode,this._factoryVars];this._createLines=[],this._setupLines=[],this._factoryMode=!0,this._factoryVars=new Set;let B=this._loopVarStack.map((m)=>`${m.itemVar}, ${m.indexVar}`).join(", "),M=B?`, ${B}`:"";this._loopVarStack.push({itemVar:A,indexVar:R});let I=this.emitTemplateBlock(X);this._loopVarStack.pop();let H=this._createLines,S=this._setupLines,N=this._factoryVars;[this._createLines,this._setupLines,this._factoryMode,this._factoryVars]=q;let V=S.length===0,L=`ctx, ${A}, ${R}${M}`;this.emitBlockFactory(K,L,I,H,S,N,V);let E=P!==A?`(${A}, ${R}) => ${P}`:"null",n=B?`, ${B}`:"",T=[];T.push(`// Loop: ${K}`),T.push("{"),T.push(" const __s = { blocks: [], keys: [] };");let j=this._factoryMode?"disposers.push(__effect(() => {":"__effect(() => {",y=this._factoryMode?"}));":"});";return T.push(` ${j}`),T.push(` __reconcile(${D}, __s, ${O}, ${this._self}, ${K}, ${E}${n});`),T.push(` ${y}`),T.push("}"),this._setupLines.push(T.join(`
|
|
1267
|
+
`)),D},f.emitChildComponent=function(Y,Z){this._pendingAutoWire=!1;let G=this.newElementVar("inst"),Q=this.newElementVar("el"),{propsCode:z,reactiveProps:J,eventBindings:X,childrenSetupLines:K}=this.buildComponentProps(Z),D=this._self;this._createLines.push(`{ const __prev = __pushComponent(${D}); try {`),this._createLines.push(`${G} = new ${Y}(${z});`),this._createLines.push(`${Q} = ${G}._root = ${G}._create();`),this._createLines.push(`(${D}._children || (${D}._children = [])).push(${G});`),this._createLines.push("} finally { __popComponent(__prev); } }");for(let{event:w,value:A}of X){let R=this.emitInComponent(A,"value");this._createLines.push(`${Q}.addEventListener('${w}', (e) => __batch(() => (${R})(e)));`)}this._setupLines.push(`try { if (${G}._setup) ${G}._setup(); if (${G}.mounted) ${G}.mounted(); } catch (__e) { __handleComponentError(__e, ${G}); }`);for(let{key:w,valueCode:A}of J)this._pushEffect(`if (${G}.${w} && typeof ${G}.${w} === 'object' && 'value' in ${G}.${w}) ${G}.${w}.value = ${A}; else if (${G}._setRestProp) ${G}._setRestProp('${w}', ${A});`);for(let w of K)this._setupLines.push(w);return Q},f.buildComponentProps=function(Y){let Z=[],G=[],Q=[],z=null,J=[],X=(w,A)=>{if(w.startsWith("@")){Q.push({event:w.slice(1).split(".")[0],value:A});return}if(this.reactiveMembers&&(typeof A==="string"&&this.reactiveMembers.has(A)||Array.isArray(A)&&A[0]==="."&&A[1]==="this"&&typeof A[2]==="string"&&this.reactiveMembers.has(A[2]))){let O=typeof A==="string"?A:A[2];Z.push(`${w}: ${this._self}.${O}`)}else{let O=this.emitInComponent(A,"value");if(Z.push(`${w}: ${O}`),this.hasReactiveDeps(A))G.push({key:w,valueCode:O})}},K=(w)=>{for(let A=1;A<w.length;A++){let[,R,O]=w[A];if(typeof R==="string")X(R,O);else if(Array.isArray(R)&&R[0]==="."&&R[1]==="this"&&typeof R[2]==="string")Q.push({event:R[2],value:O})}};for(let w of Y)if(this.is(w,"object"))K(w);else if(Array.isArray(w)&&(w[0]==="->"||w[0]==="=>")){let A=w[2];if(A){if(this.is(A,"block")){let R=[];for(let O of A.slice(1))if(this.is(O,"object"))K(O);else R.push(O);A=R.length>0?["block",...R]:null}if(A){let R=this._createLines,O=this._setupLines;this._createLines=[],this._setupLines=[],z=this.emitTemplateBlock(A);let P=this._createLines,q=this._setupLines;this._createLines=R,this._setupLines=O;for(let B of P)this._createLines.push(B);J.push(...q),Z.push(`children: ${z}`)}}}else if(w&&!z){let A=this.newTextVar(),R=this.emitInComponent(w,"value");if(this.hasReactiveDeps(w)){this._createLines.push(`${A} = document.createTextNode('');`);let O=`${A}.data = ${R};`,P=this._factoryMode?`disposers.push(__effect(() => { ${O} }));`:`__effect(() => { ${O} });`;J.push(P)}else this._createLines.push(`${A} = document.createTextNode(${R});`);z=A,Z.push(`children: ${z}`)}return{propsCode:Z.length>0?`{ ${Z.join(", ")} }`:"{}",reactiveProps:G,eventBindings:Q,childrenSetupLines:J}},f.hasReactiveDeps=function(Y){if(typeof Y==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(Y));if(!Array.isArray(Y))return!1;if(Y[0]==="."&&Y[1]==="this"&&typeof Y[2]==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(Y[2]));if(Y[0]==="."&&this._rootsAtThis(Y[1]))return!0;if(Array.isArray(Y[0])&&Y[0][0]==="."&&Y[0][1]==="this"){let Z=$(Y[0][2]);if(Z&&this.componentMembers?.has(Z))return!0}for(let Z of Y)if(this.hasReactiveDeps(Z))return!0;return!1},f.isSimpleAssignable=function(Y){if(typeof Y==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(Y));if(Array.isArray(Y)&&Y[0]==="."&&Y[1]==="this"&&typeof Y[2]==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(Y[2]));return!1},f.findRootReactiveMember=function(Y){if(typeof Y==="string")return this.reactiveMembers?.has(Y)?Y:null;if(!Array.isArray(Y))return null;if(Y[0]==="."&&Y[1]==="this"&&typeof Y[2]==="string")return this.reactiveMembers?.has(Y[2])?Y[2]:null;if(Y[0]==="."||Y[0]==="[]")return this.findRootReactiveMember(Y[1]);return null},f._rootsAtThis=function(Y){if(typeof Y==="string")return Y==="this";if(!Array.isArray(Y)||Y[0]!==".")return!1;return this._rootsAtThis(Y[1])},f.getComponentRuntime=function(){return`
|
|
28
1268
|
// ============================================================================
|
|
29
1269
|
// Rip Component Runtime
|
|
30
1270
|
// ============================================================================
|
|
@@ -271,7 +1511,7 @@ class __Component {
|
|
|
271
1511
|
this._target = target;
|
|
272
1512
|
try {
|
|
273
1513
|
this._root = this._create();
|
|
274
|
-
target.appendChild(this._root);
|
|
1514
|
+
if (this._root) target.appendChild(this._root);
|
|
275
1515
|
if (this._setup) this._setup();
|
|
276
1516
|
if (this.mounted) this.mounted();
|
|
277
1517
|
} catch (error) {
|
|
@@ -305,191 +1545,194 @@ if (typeof globalThis !== 'undefined') {
|
|
|
305
1545
|
globalThis.__ripComponent = { __pushComponent, __popComponent, setContext, getContext, hasContext, __clsx, __lis, __reconcile, __transition, __handleComponentError, __Component };
|
|
306
1546
|
}
|
|
307
1547
|
|
|
308
|
-
`}}function
|
|
309
|
-
`)}formatHTML(){let
|
|
310
|
-
`)}_snippet(){if(this.source==null||this.line==null)return null;let
|
|
311
|
-
`),
|
|
312
|
-
`)>=0){let _=
|
|
313
|
-
`).map((
|
|
314
|
-
`)}let
|
|
315
|
-
`))return" ".repeat(
|
|
316
|
-
`))
|
|
317
|
-
`).map((
|
|
318
|
-
`)}else
|
|
319
|
-
`)){
|
|
320
|
-
`)}class
|
|
321
|
-
`).length}}
|
|
322
|
-
`)
|
|
323
|
-
`)
|
|
324
|
-
`),Y=!1;if(
|
|
325
|
-
`),
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
`,
|
|
333
|
-
`,
|
|
334
|
-
`,
|
|
335
|
-
`,
|
|
336
|
-
`,
|
|
337
|
-
`,
|
|
338
|
-
`,
|
|
339
|
-
`,
|
|
340
|
-
`,
|
|
341
|
-
`,
|
|
342
|
-
`,
|
|
343
|
-
`,
|
|
344
|
-
`,
|
|
345
|
-
`,
|
|
346
|
-
`,
|
|
347
|
-
|
|
348
|
-
`;else
|
|
349
|
-
`;else if(
|
|
350
|
-
`;else
|
|
1548
|
+
`}}function V1(u){let U="",_=u<0?-u<<1|1:u<<1;do{let W=_&31;if(_>>>=5,_>0)W|=32;U+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[W]}while(_>0);return U}class H2{constructor(u,U,_=null){this.file=u,this.source=U,this.sourceContent=_,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(u){while(this.lines.length<=u)this.lines.push([])}addName(u){if(this.nameIndex.has(u))return this.nameIndex.get(u);let U=this.names.length;return this.names.push(u),this.nameIndex.set(u,U),U}addMapping(u,U,_,W,f){if(this.ensureLine(u),this.currentLine!==u)this.prevGenCol=0,this.currentLine=u;if(_==null){this.lines[u].push(V1(U-this.prevGenCol)),this.prevGenCol=U;return}this.mappings.push({genLine:u,genCol:U,origLine:_,origCol:W});let $=V1(U-this.prevGenCol);if(this.prevGenCol=U,$+=V1(0),$+=V1(_-this.prevOrigLine),this.prevOrigLine=_,$+=V1(W-this.prevOrigCol),this.prevOrigCol=W,f!=null){let F=this.addName(f);$+=V1(F-this.prevNameIdx),this.prevNameIdx=F}this.lines[u].push($)}toReverseMap(){let u=new Map;for(let U of this.mappings){if(!u.has(U.origLine))u.set(U.origLine,[]);u.get(U.origLine).push({origCol:U.origCol,genLine:U.genLine,genCol:U.genCol})}return u}toJSON(){let u=this.lines.map((_)=>_.join(",")).join(";"),U={version:3,file:this.file,sources:[this.source],names:this.names,mappings:u};if(this.sourceContent!=null)U.sourcesContent=[this.sourceContent];return JSON.stringify(U)}}class Z1 extends Error{constructor(u,{code:U=null,file:_=null,line:W=null,column:f=null,length:$=1,source:F=null,suggestion:Y=null,phase:Z=null}={}){super(u);this.name="RipError",this.code=U,this.file=_,this.line=W,this.column=f,this.length=$,this.source=F,this.suggestion=Y,this.phase=Z}static fromLexer(u,U,_){let W=u.location||{};return new Z1(u.message,{code:"E_SYNTAX",file:_,line:W.first_line??null,column:W.first_column??null,length:W.last_column!=null&&W.first_column!=null?W.last_column-W.first_column+1:1,source:U,phase:"lexer"})}static fromParser(u,U,_){let W=u.hash||{},f=W.loc||{},$=W.line??f.r??null,F=f.first_column??f.c??null,Y=null;if(W.expected?.length){if(Y=`Expected ${W.expected.slice(0,5).map((J)=>J.replace(/'/g,"")).join(", ")}`,W.expected.length>5)Y+=`, ... (${W.expected.length} total)`}let Z=W.token||"token",G=W.text?` near '${W.text}'`:"",Q=`Unexpected ${Z}${G}`;return new Z1(Q,{code:"E_PARSE",file:_,line:$,column:F,length:W.text?.length||1,source:U,suggestion:Y,phase:"parser"})}static fromSExpr(u,U,_,W,f){let $=U?.loc||{};return new Z1(u,{code:"E_CODEGEN",file:W,line:$.r??null,column:$.c??null,length:$.n??1,source:_,suggestion:f,phase:"codegen"})}get locationString(){let u=[];if(this.file)u.push(this.file);if(this.line!=null)u.push(`${this.line+1}:${(this.column??0)+1}`);return u.join(":")}format({color:u=!0}={}){let U=u?{red:"\x1B[31m",yellow:"\x1B[33m",cyan:"\x1B[36m",dim:"\x1B[2m",bold:"\x1B[1m",reset:"\x1B[0m"}:{red:"",yellow:"",cyan:"",dim:"",bold:"",reset:""},_=[],W=this.locationString,f=W?`${U.cyan}${W}${U.reset} `:"";_.push(`${f}${U.red}${U.bold}error${U.reset}${U.bold}: ${this.message}${U.reset}`);let $=this._snippet();if($){_.push("");for(let F of $)if(F.type==="source")_.push(`${U.dim}${F.gutter}${U.reset}${F.text}`);else if(F.type==="caret")_.push(`${U.dim}${F.gutter}${U.reset}${U.red}${U.bold}${F.text}${U.reset}`)}if(this.suggestion)_.push(""),_.push(`${U.yellow}hint${U.reset}: ${this.suggestion}`);return _.join(`
|
|
1549
|
+
`)}formatHTML(){let u=[];u.push('<div class="rip-error">'),u.push("<style>"),u.push('.rip-error { font-family: ui-monospace, "SF Mono", Menlo, Monaco, monospace; font-size: 13px; line-height: 1.5; padding: 16px 20px; background: #1e1e2e; color: #cdd6f4; border-radius: 8px; overflow-x: auto; }'),u.push(".rip-error .re-header { color: #f38ba8; font-weight: 600; }"),u.push(".rip-error .re-loc { color: #89b4fa; }"),u.push(".rip-error .re-gutter { color: #585b70; user-select: none; }"),u.push(".rip-error .re-caret { color: #f38ba8; font-weight: 700; }"),u.push(".rip-error .re-hint { color: #f9e2af; }"),u.push(".rip-error .re-snippet { margin: 8px 0; }"),u.push("</style>");let U=this.locationString,_=U?`<span class="re-loc">${P1(U)}</span> `:"";u.push(`<div class="re-header">${_}error: ${P1(this.message)}</div>`);let W=this._snippet();if(W){u.push('<pre class="re-snippet">');for(let f of W)if(f.type==="source")u.push(`<span class="re-gutter">${P1(f.gutter)}</span>${P1(f.text)}`);else if(f.type==="caret")u.push(`<span class="re-gutter">${P1(f.gutter)}</span><span class="re-caret">${P1(f.text)}</span>`);u.push("</pre>")}if(this.suggestion)u.push(`<div class="re-hint">hint: ${P1(this.suggestion)}</div>`);return u.push("</div>"),u.join(`
|
|
1550
|
+
`)}_snippet(){if(this.source==null||this.line==null)return null;let u=this.source.split(`
|
|
1551
|
+
`),U=this.line;if(U<0||U>=u.length)return null;let _=2,W=Math.max(0,U-_),f=Math.min(u.length-1,U+_),$=String(f+1).length,F=[];for(let Y=W;Y<=f;Y++){let G=` ${String(Y+1).padStart($)} │ `;if(F.push({type:"source",gutter:G,text:u[Y]}),Y===U&&this.column!=null){let Q=" ".repeat(this.column),z=Math.max(1,Math.min(this.length||1,u[Y].length-this.column)),J="^".repeat(z),X=" ".repeat($+2)+"│ ";F.push({type:"caret",gutter:X,text:`${Q}${J}`})}}return F}}function x5(u){return u instanceof SyntaxError&&u.location!=null}function l5(u){return!(u instanceof SyntaxError)&&u.hash!=null}function C1(u,U,_){if(u instanceof Z1){if(_&&!u.file)u.file=_;if(U&&!u.source)u.source=U;return u}if(x5(u))return Z1.fromLexer(u,U,_);if(l5(u))return Z1.fromParser(u,U,_);return new Z1(u.message,{file:_,source:U,phase:"unknown"})}function B1(u,{source:U,file:_,color:W=!0}={}){return(u instanceof Z1?u:C1(u,U,_)).format({color:W})}function D2(u,{source:U,file:_}={}){return(u instanceof Z1?u:C1(u,U,_)).formatHTML()}function P1(u){return u.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}var W1=(u,U)=>u instanceof String?u[U]:void 0,d=(u)=>u instanceof String?u.valueOf():u,m5=new Set(["+","-","*","/","%","//","%%","**","==","!=","<",">","<=",">=","===","!==","&&","||","??","not","&","|","^","<<",">>",">>>","=",".","?.","[]","!","typeof","void","delete","new","...","rest","expansion","optindex","optcall"]),k5=new Set(["def","class","if","unless","for-in","for-of","for-as","while","until","loop","switch","try","throw"]),i5=new Set(["true","false","null","undefined","Infinity","NaN"]);function s1(u){if(!Array.isArray(u)||u.length===0)return!1;let U=u[0]?.valueOf?.()??u[0];if(m5.has(U))return!0;return u.length<=4&&!u.some(Array.isArray)}function c1(u){if(Array.isArray(u))return"(???)";if(typeof u==="number")return String(u);if(u===null)return"null";if(u==="")return'""';let U=String(u);if(U[0]==="/"&&U.indexOf(`
|
|
1552
|
+
`)>=0){let _=U.match(/\/([gimsuvy]*)$/),W=_?_[1]:"",f=U.slice(1);return f=W?f.slice(0,-W.length-1):f.slice(0,-1),`"/${f.split(`
|
|
1553
|
+
`).map((Y)=>Y.replace(/#.*$/,"").trim()).join("")}/${W}"`}return U}function X1(u,U=0,_=!1){if(!Array.isArray(u))return c1(u);if(_&&u[0]==="program"){let G=u[1],z=[Array.isArray(G)?"(program":"(program "+c1(G)],J=Array.isArray(G)?1:2;for(let X=J;X<u.length;X++){let K=X1(u[X],2,!1);z.push(K[0]==="("?" "+K:K)}return z.push(")"),z.join(`
|
|
1554
|
+
`)}let W=u[0];if(s1(u)&&u.slice(1).every((G)=>!Array.isArray(G)||s1(G))){let Q=`(${u.map((z)=>Array.isArray(z)?X1(z,0,!1):c1(z)).join(" ")})`;if(!Q.includes(`
|
|
1555
|
+
`))return" ".repeat(U)+Q}let $=" ".repeat(U),F;if(Array.isArray(W)){if(F=X1(W,0,!1),F.includes(`
|
|
1556
|
+
`))F=F.split(`
|
|
1557
|
+
`).map((Q,z)=>z===0?Q:" ".repeat(U+2)+Q).join(`
|
|
1558
|
+
`)}else F=c1(W);let Y=[`${$}(${F}`],Z=W==="block";for(let G=1;G<u.length;G++){let Q=u[G];if(!Array.isArray(Q))Y[Y.length-1]+=" "+c1(Q);else{let z=s1(Q)&&Q.every((J)=>!Array.isArray(J)||s1(J));if(!Z&&z){let J=X1(Q,0,!1);if(!J.includes(`
|
|
1559
|
+
`)){Y[Y.length-1]+=" "+J;continue}}Y.push(X1(Q,U+2,!1))}}return Y[Y.length-1]+=")",Y.join(`
|
|
1560
|
+
`)}class Y1{static ASSIGNMENT_OPS=new Set(["=","+=","-=","*=","/=","?=","&=","|=","^=","%=","**=","??=","&&=","||=","<<=",">>=",">>>="]);static NUMBER_LITERAL_RE=/^-?\d+(\.\d+)?([eE][+-]?\d+)?$/;static NUMBER_START_RE=/^-?\d/;static GENERATORS={program:"emitProgram","&&":"emitLogicalAnd","||":"emitLogicalOr","+":"emitBinaryOp","-":"emitBinaryOp","*":"emitBinaryOp","/":"emitBinaryOp","%":"emitBinaryOp","**":"emitBinaryOp","==":"emitBinaryOp","===":"emitBinaryOp","!=":"emitBinaryOp","!==":"emitBinaryOp","<":"emitBinaryOp",">":"emitBinaryOp","<=":"emitBinaryOp",">=":"emitBinaryOp","??":"emitBinaryOp","&":"emitBinaryOp","|":"emitBinaryOp","^":"emitBinaryOp","<<":"emitBinaryOp",">>":"emitBinaryOp",">>>":"emitBinaryOp","%%":"emitModulo","%%=":"emitModuloAssign","//":"emitFloorDiv","//=":"emitFloorDivAssign","..":"emitRange","=":"emitAssignment","+=":"emitAssignment","-=":"emitAssignment","*=":"emitAssignment","/=":"emitAssignment","%=":"emitAssignment","**=":"emitAssignment","&&=":"emitAssignment","||=":"emitAssignment","??=":"emitAssignment","?=":"emitAssignment","&=":"emitAssignment","|=":"emitAssignment","^=":"emitAssignment","<<=":"emitAssignment",">>=":"emitAssignment",">>>=":"emitAssignment","...":"emitRange","!":"emitNot","~":"emitBitwiseNot","++":"emitIncDec","--":"emitIncDec","=~":"emitRegexMatch",instanceof:"emitInstanceof",in:"emitIn",of:"emitOf",typeof:"emitTypeof",delete:"emitDelete",new:"emitNew",array:"emitArray",object:"emitObject","map-literal":"emitMap",block:"emitBlock",".":"emitPropertyAccess","?.":"emitOptionalProperty","[]":"emitIndexAccess",optindex:"emitOptIndex",optcall:"emitOptCall","regex-index":"emitRegexIndex",def:"emitDef","->":"emitThinArrow","=>":"emitFatArrow",return:"emitReturn",state:"emitState",computed:"emitComputed",readonly:"emitReadonly",effect:"emitEffect",break:"emitBreak",continue:"emitContinue","?":"emitExistential",presence:"emitPresence","?:":"emitTernary","|>":"emitPipe",loop:"emitLoop","loop-n":"emitLoopN",await:"emitAwait",yield:"emitYield","yield-from":"emitYieldFrom",if:"emitIf","for-in":"emitForIn","for-of":"emitForOf","for-as":"emitForAs",while:"emitWhile",try:"emitTry",throw:"emitThrow",control:"emitControl",switch:"emitSwitch",when:"emitWhen",comprehension:"emitComprehension","object-comprehension":"emitObjectComprehension",class:"emitClass",super:"emitSuper",component:"emitComponent",render:"emitRender",offer:"emitOffer",accept:"emitAccept",enum:"emitEnum",schema:"emitSchema",import:"emitImport",export:"emitExport","export-default":"emitExportDefault","export-all":"emitExportAll","export-from":"emitExportFrom","do-iife":"emitDoIIFE",regex:"emitRegex","tagged-template":"emitTaggedTemplate",str:"emitString",symbol:"emitSymbol"};constructor(u={}){if(this.options=u,this.indentLevel=0,this.indentString=" ",this.comprehensionDepth=0,this.dataSection=u.dataSection,this.sourceMap=u.sourceMap||null,u.reactiveVars)this.reactiveVars=new Set(u.reactiveVars)}error(u,U,{suggestion:_}={}){throw Z1.fromSExpr(u,U,this.options.source,this.options.filename,_)}compile(u){this.programVars=new Set,this.functionVars=new Map,this.helpers=new Set,this.scopeStack=[],this.collectProgramVariables(u);let U=this.emit(u);if(this.sourceMap)this.buildMappings();return U}buildMappings(){if(!this._stmtEntries)return;let u=this._preambleLines;for(let U of this._stmtEntries){if(U.loc)this.sourceMap.addMapping(u,0,U.loc.r,U.loc.c);if(U.sexpr&&U.loc)this.recordSubMappings(U.code,U.sexpr,u);u+=U.code.split(`
|
|
1561
|
+
`).length}}static _isColInsideString(u,U){let _=!1,W="";for(let f=0;f<u.length&&f<U;f++){let $=u[f];if(_){if($==="\\"){f++;continue}if($===W)_=!1}else if($==='"'||$==="'"||$==="`")_=!0,W=$}return _}recordSubMappings(u,U,_){let W=U.loc?U.loc.r:0,f=[];this.collectSubExprs(U,f);let $=u.split(`
|
|
1562
|
+
`);for(let{name:F,origLine:Y,origCol:Z}of f){let G=F.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),Q=new RegExp("\\b"+G+"\\b","g"),z,J=null,X=1/0,K=Y-W;while((z=Q.exec(u))!==null){let w=u.substring(0,z.index).split(`
|
|
1563
|
+
`),A=w.length-1,R=w[w.length-1].length,O=$[A];if(O&&Y1._isColInsideString(O,R))continue;let P=_+A,q=Math.abs(A-K)*1e4+Math.abs(R-Z);if(q<X)X=q,J={genLine:P,genCol:R}}if(J)this.sourceMap.addMapping(J.genLine,J.genCol,Y,Z)}}collectSubExprs(u,U){if(!Array.isArray(u))return;let _=u[0];if(Array.isArray(_)||_!=null&&typeof _!=="string"&&!(_ instanceof String)){for(let f=0;f<u.length;f++)if(Array.isArray(u[f]))this.collectSubExprs(u[f],U);return}if(u.loc){_=d(_);let f=null;if(_==="."){if(typeof u[2]==="string")f=u[2]}else if(typeof _==="string"&&/^[=+\-*/%<>!&|?~^]|^\.\.?$|^def$|^class$|^state$|^computed$|^readonly$|^for-/.test(_)){if(typeof u[1]==="string"&&/^[a-zA-Z_$]/.test(u[1]))f=u[1]}else if(typeof _==="string"&&/^[a-zA-Z_$]/.test(_))f=_;if(f)U.push({name:f,origLine:u.loc.r,origCol:u.loc.c})}let W=_==="->"||_==="=>"?2:1;for(let f=W;f<u.length;f++)if(Array.isArray(u[f]))this.collectSubExprs(u[f],U)}collectProgramVariables(u){if(!Array.isArray(u))return;let[U,..._]=u;if(U=d(U),Array.isArray(U)){u.forEach((W)=>this.collectProgramVariables(W));return}if(U==="export"||U==="export-default"||U==="export-all"||U==="export-from")return;if(U==="state"||U==="computed"){let[W]=_,f=d(W)??W;if(!this.reactiveVars)this.reactiveVars=new Set;this.reactiveVars.add(f);return}if(U==="readonly"){let[W]=_,f=d(W)??W;if(!this.readonlyVars)this.readonlyVars=new Set;this.readonlyVars.add(f);return}if(U==="component")return;if(U==="enum")return;if(Y1.ASSIGNMENT_OPS.has(U)){let[W,f]=_;if(typeof W==="string"||W instanceof String){let $=d(W);if(!this.reactiveVars?.has($)&&!this.readonlyVars?.has($))this.programVars.add($)}else if(this.is(W,"array"))this.collectVarsFromArray(W,this.programVars);else if(this.is(W,"object"))this.collectVarsFromObject(W,this.programVars);this.collectProgramVariables(f);return}if(U==="def"||U==="->"||U==="=>"||U==="effect")return;if(U==="if"){let[W,f,$]=_;if(this.collectProgramVariables(W),this.collectProgramVariables(f),$)this.collectProgramVariables($);return}if(U==="try"){if(this.collectProgramVariables(_[0]),_.length>=2&&Array.isArray(_[1])&&_[1].length===2&&_[1][0]!=="block"){let[W,f]=_[1];if(W&&this.is(W,"object"))W.slice(1).forEach(($)=>{if(Array.isArray($)&&$.length===2&&typeof $[1]==="string")this.programVars.add($[1])});else if(W&&this.is(W,"array"))W.slice(1).forEach(($)=>{if(typeof $==="string")this.programVars.add($)});this.collectProgramVariables(f)}if(_.length===3)this.collectProgramVariables(_[2]);else if(_.length===2&&(!Array.isArray(_[1])||_[1][0]==="block"))this.collectProgramVariables(_[1]);return}_.forEach((W)=>this.collectProgramVariables(W))}collectFunctionVariables(u){let U=new Set,_=(W)=>{if(!Array.isArray(W))return;let[f,...$]=W;if(f=d(f),Array.isArray(f)){W.forEach((F)=>_(F));return}if(Y1.ASSIGNMENT_OPS.has(f)){let[F,Y]=$;if(typeof F==="string")U.add(F);else if(this.is(F,"array"))this.collectVarsFromArray(F,U);else if(this.is(F,"object"))this.collectVarsFromObject(F,U);_(Y);return}if(f==="def"||f==="->"||f==="=>"||f==="effect")return;if(f==="try"){if(_($[0]),$.length>=2&&Array.isArray($[1])&&$[1].length===2&&$[1][0]!=="block"){let[F,Y]=$[1];if(F&&this.is(F,"object"))F.slice(1).forEach((Z)=>{if(Array.isArray(Z)&&Z.length===2&&typeof Z[1]==="string")U.add(Z[1])});else if(F&&this.is(F,"array"))F.slice(1).forEach((Z)=>{if(typeof Z==="string")U.add(Z)});_(Y)}if($.length===3)_($[2]);else if($.length===2&&(!Array.isArray($[1])||$[1][0]==="block"))_($[1]);return}$.forEach((F)=>_(F))};return _(u),U}emit(u,U="statement"){if(u instanceof String){if(W1(u,"await")===!0)return`await ${d(u)}()`;if(W1(u,"predicate"))return`(${d(u)} != null)`;if(W1(u,"delimiter")==="///"&&W1(u,"heregex")){let Y=d(u),Z=Y.match(/^\/(.*)\/([gimsuvy]*)$/s);if(Z){let[,G,Q]=Z;return`/${this.processHeregex(G)}/${Q}`}return Y}let F=W1(u,"quote");if(F){let Y=d(u);if(F==='"""'||F==="'''"){let G=this.extractStringContent(u);return G=G.replace(/`/g,"\\`").replace(/\${/g,"\\${"),`\`${G}\``}if(Y[0]===F)return Y;let Z=Y.slice(1,-1);return`${F}${Z}${F}`}u=d(u)}if(typeof u==="string"){if(u.startsWith('"')||u.startsWith("'")||u.startsWith("`")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive:",u);let F=u.slice(1,-1);if(F.includes(`
|
|
1564
|
+
`))return`\`${F.replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}\``;let Y=F.includes("'")&&!F.includes('"')?'"':"'",Z=F.replace(new RegExp(Y,"g"),`\\${Y}`);return`${Y}${Z}${Y}`}if(this.reactiveVars?.has(u)&&!this.suppressReactiveUnwrap)return`${u}.value`;return u}if(typeof u==="number")return String(u);if(u===null||u===void 0)return"null";if(!Array.isArray(u))this.error(`Invalid s-expression: ${JSON.stringify(u)}`,u);let[_,...W]=u,f=W1(_,"await");_=d(_);let $=Y1.GENERATORS[_];if($)return this[$](_,W,U,u);if(typeof _==="string"&&!_.startsWith('"')&&!_.startsWith("'")){if(Y1.NUMBER_START_RE.test(_))return _;if(_==="super"&&this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}(${this._emitArgs(W)})`;let F=this._tryPostfixCall(_,W,U);if(F)return F;let Y=f===!0,Z=`${this.emit(_,"value")}(${this._emitArgs(W)})`;return Y?`await ${Z}`:Z}if(Array.isArray(_)&&typeof _[0]==="string"){if(["=","+=","-=","*=","/=","%=","**=","&&=","||=","??=","if","return","throw"].includes(_[0]))return`(${u.map((Y)=>this.emit(Y,"value")).join(", ")})`}if(Array.isArray(_)){if(_[0]==="."&&(_[2]==="new"||d(_[2])==="new")){let Q=_[1],z=this.emit(Q,"value");return`new ${Array.isArray(Q)?`(${z})`:z}(${this._emitArgs(W)})`}let F=this._tryPostfixCall(_,W,U);if(F)return F;let Y=!1,Z;if(_[0]==="."&&W1(_[2],"await")===!0){Y=!0;let[Q,z]=_.slice(1),J=this.emit(Q,"value");Z=`${Y1.NUMBER_LITERAL_RE.test(J)||(this.is(Q,"object")||this.is(Q,"await")||this.is(Q,"yield"))?`(${J})`:J}.${d(z)}`}else Z=this.emit(_,"value");let G=`${Z}(${this._emitArgs(W)})`;return Y?`await ${G}`:G}this.error(`Unknown s-expression type: ${_}`,u)}emitProgram(u,U,_,W){let f="",$=[],F=[];for(let X of U){if(!Array.isArray(X)){F.push(X);continue}if(X[0]==="import")$.push(X);else F.push(X)}let Y=["def","class","if","for-in","for-of","for-as","while","loop","switch","try"],Z=F.map((X,K)=>{let D=F.length===1&&$.length===0,w=this.is(X,"object"),A=w&&X.length===2&&Array.isArray(X[1])&&Array.isArray(X[1][2])&&X[1][2][0]==="comprehension",R=this.is(X,"comprehension")||this.is(X,"object-comprehension")||this.is(X,"do-iife"),O=this.programVars.size===0,P=D&&w&&O&&!R&&!A,B=K===F.length-1&&R,M;if(P)M=`(${this.emit(X,"value")})`;else if(B)M=this.emit(X,"value");else M=this.emit(X,"statement");if(M&&!M.endsWith(";")){let H=Array.isArray(X)?X[0]:null;if(!Y.includes(H)||!M.endsWith("}"))M+=";"}let I=Array.isArray(X)?X.loc:null;return{code:M,loc:I,sexpr:Array.isArray(X)?X:null}}),G=Z.map((X)=>X.code).join(`
|
|
1565
|
+
`),Q=!1;if($.length>0)f+=$.map((X)=>this.addSemicolon(X,this.emit(X,"statement"))).join(`
|
|
1566
|
+
`),Q=!0;if(this.programVars.size>0){let X=this.programVars.has("_");if(X)this.programVars.delete("_");if(this.programVars.size>0){let K=Array.from(this.programVars).sort().join(", ");if(K){if(Q)f+=`
|
|
1567
|
+
`;f+=`let ${K};
|
|
1568
|
+
`,Q=!0}}if(X){if(Q)f+=`
|
|
1569
|
+
`;f+=`var _;
|
|
1570
|
+
`,Q=!0}}let z=this.options.skipPreamble,J=this.options.skipRuntimes;if(!z){if(Q)f+=`
|
|
1571
|
+
`;f+=l1(),Q=!0;let X=J?"var":"const";if(this.helpers.has("slice"))f+=`${X} slice = [].slice;
|
|
1572
|
+
`,Q=!0;if(this.helpers.has("modulo"))f+=`${X} modulo = (n, d) => { n = +n; d = +d; return (n % d + d) % d; };
|
|
1573
|
+
`,Q=!0;if(this.helpers.has("toMatchable"))f+=`${X} toMatchable = (v, allowNewlines) => {
|
|
1574
|
+
`,f+=` if (typeof v === "string") return !allowNewlines && /[\\n\\r]/.test(v) ? null : v;
|
|
1575
|
+
`,f+=` if (v == null) return "";
|
|
1576
|
+
`,f+=` if (typeof v === "number" || typeof v === "bigint" || typeof v === "boolean") return String(v);
|
|
1577
|
+
`,f+=` if (typeof v === "symbol") return v.description || "";
|
|
1578
|
+
`,f+=` if (v instanceof Uint8Array || v instanceof ArrayBuffer) {
|
|
1579
|
+
`,f+=` return new TextDecoder().decode(v instanceof Uint8Array ? v : new Uint8Array(v));
|
|
1580
|
+
`,f+=` }
|
|
1581
|
+
`,f+=` if (Array.isArray(v)) return v.join(",");
|
|
1582
|
+
`,f+=` if (typeof v.toString === "function" && v.toString !== Object.prototype.toString) {
|
|
1583
|
+
`,f+=` try { return v.toString(); } catch { return ""; }
|
|
1584
|
+
`,f+=` }
|
|
1585
|
+
`,f+=` return "";
|
|
1586
|
+
`,f+=`};
|
|
1587
|
+
`,Q=!0}if(this.usesReactivity&&!z){if(J)f+=`var { __state, __computed, __effect, __batch, __readonly, __setErrorHandler, __handleError, __catchErrors } = globalThis.__rip;
|
|
1588
|
+
`;else if(typeof globalThis<"u"&&globalThis.__rip)f+=`const { __state, __computed, __effect, __batch, __readonly, __setErrorHandler, __handleError, __catchErrors } = globalThis.__rip;
|
|
1589
|
+
`;else f+=this.getReactiveRuntime();Q=!0}if(this.usesTemplates&&!z){if(J)f+=`var { __pushComponent, __popComponent, setContext, getContext, hasContext, __clsx, __lis, __reconcile, __transition, __handleComponentError, __Component } = globalThis.__ripComponent;
|
|
1590
|
+
`;else if(typeof globalThis<"u"&&globalThis.__ripComponent)f+=`const { __pushComponent, __popComponent, setContext, getContext, hasContext, __clsx, __lis, __reconcile, __transition, __handleComponentError, __Component } = globalThis.__ripComponent;
|
|
1591
|
+
`;else f+=this.getComponentRuntime();Q=!0}if(this.usesSchemas&&!z){if(J)f+=`var { __schema, SchemaError, __SchemaRegistry, __schemaSetAdapter } = globalThis.__ripSchema;
|
|
1592
|
+
`;else if(typeof globalThis<"u"&&globalThis.__ripSchema)f+=`const { __schema, SchemaError, __SchemaRegistry, __schemaSetAdapter } = globalThis.__ripSchema;
|
|
1593
|
+
`;else f+=this.getSchemaRuntime();Q=!0}if(this.dataSection!==null&&this.dataSection!==void 0&&!z)f+=`var DATA;
|
|
351
1594
|
_setDataSection();
|
|
352
|
-
`,
|
|
353
|
-
`;if(this._stmtEntries=
|
|
354
|
-
`).length-1,
|
|
1595
|
+
`,Q=!0;if(Q&&f.length>0)f+=`
|
|
1596
|
+
`;if(this._stmtEntries=Z,this._preambleLines=f.length===0?0:f.split(`
|
|
1597
|
+
`).length-1,f+=G,this.dataSection!==null&&this.dataSection!==void 0)f+=`
|
|
355
1598
|
|
|
356
1599
|
function _setDataSection() {
|
|
357
1600
|
DATA = ${JSON.stringify(this.dataSection)};
|
|
358
|
-
}`;return u}emitBinaryOp(f,w,_,U){if((f==="+"||f==="-")&&w.length===1)return`(${f}${this.emit(w[0],"value")})`;let[u,$]=w;if(f==="*"){let F=u?.valueOf?.()??u;if(typeof F==="string"&&/^["']/.test(F))return`${this.emit(u,"value")}.repeat(${this.emit($,"value")})`}let W=new Set(["<",">","<=",">="]);if(W.has(f)&&Array.isArray(u)){let F=u[0]?.valueOf?.()??u[0];if(W.has(F)){let A=this.emit(u[1],"value"),G=this.emit(u[2],"value"),Y=this.emit($,"value");return`((${A} ${F} ${G}) && (${G} ${f} ${Y}))`}}if(f==="==")f="===";if(f==="!=")f="!==";return`(${this.emit(u,"value")} ${f} ${this.emit($,"value")})`}emitModulo(f,w){let[_,U]=w;return this.helpers.add("modulo"),`modulo(${this.emit(_,"value")}, ${this.emit(U,"value")})`}emitModuloAssign(f,w){let[_,U]=w;this.helpers.add("modulo");let u=this.emit(_,"value"),$=this.emit(U,"value");return`${u} = modulo(${u}, ${$})`}emitFloorDiv(f,w){let[_,U]=w;return`Math.floor(${this.emit(_,"value")} / ${this.emit(U,"value")})`}emitFloorDivAssign(f,w){let[_,U]=w,u=this.emit(_,"value"),$=this.emit(U,"value");return`${u} = Math.floor(${u} / ${$})`}emitAssignment(f,w,_,U){let[u,$]=w,W=f==="?="?"??=":f,F=this._findOptionalInTarget(u);if(F){let q=this.emit(F.guard,"value"),R=this.emit(F.rewritten,"value"),X=this.emit($,"value");if(_==="value")return`(${q} != null ? (${R} ${W} ${X}) : undefined)`;return`if (${q} != null) ${R} ${W} ${X}`}let A=this.is($,"->")||this.is($,"=>")||this.is($,"def");if(u instanceof String&&w1(u,"await")!==void 0&&!A){let q=w1(u,"await")===!0?"!":"&";this.error(`Cannot use ${q} sigil in variable declaration '${i(u)}'`,U)}if(u instanceof String&&w1(u,"await")===!0&&A)this.nextFunctionIsVoid=!0;let G=this.is(u,"array",0),Y=this.is(u,"object",0);if(G||Y){let q=this.emit($,"value");return Y&&_==="statement"?`(${q})`:q}if(Array.isArray($)&&W==="="&&$[0]==="control"){let[,q,R,X]=$,B=i(q),I=X[0]==="return",O=this.emit(u,"value"),M=this.emit(R,"value"),P=X.length>1?X[1]:null,E=I?P?`return ${this.emit(P,"value")}`:"return":P?`throw ${this.emit(P,"value")}`:"throw new Error()";if(_==="value"){if(B==="??")return`(() => { const __v = ${M}; if (__v == null) ${E}; return (${O} = __v); })()`;if(B==="||")return`(() => { const __v = ${M}; if (!__v) ${E}; return (${O} = __v); })()`;return`(() => { const __v = ${M}; if (__v) ${E}; return (${O} = __v); })()`}if(B==="??")return`if ((${O} = ${M}) == null) ${E}`;if(B==="||")return`if (!(${O} = ${M})) ${E}`;return`if ((${O} = ${M})) ${E}`}if(this.is(u,"array")){let q=u.slice(1).findIndex((R)=>this.is(R,"...")||R==="...");if(q!==-1&&q<u.length-2){let R=u.slice(1),X=R.slice(q+1),B=X.length;if(B>0){let I=this.emit($,"value"),M=R.slice(0,q).map((L)=>L===","?"":typeof L==="string"?L:this.emit(L,"value")).join(", "),P=X.map((L)=>L===","?"":typeof L==="string"?L:this.emit(L,"value")).join(", ");this.helpers.add("slice"),R.forEach((L)=>{if(L===","||L==="...")return;if(typeof L==="string")this.programVars.add(L);else if(this.is(L,"...")&&typeof L[1]==="string")this.programVars.add(L[1])});let E=R[q],S=this.is(E,"...")?E[1]:null,N=[];if(M)N.push(`[${M}] = ${I}`);if(S)N.push(`[...${S}] = ${I}.slice(${q}, -${B})`);return N.push(`[${P}] = slice.call(${I}, -${B})`),N.join(", ")}}}if(_==="statement"&&f==="="&&Array.isArray($)&&($[0]==="||"||$[0]==="&&")&&$.length===3){let[q,R,X]=$;if(this.is(X,"if")&&X.length===3){let[,B,I]=X,O=Array.isArray(I)&&I.length===1?I[0]:I,M=[q,R,O],P=this.emit(u,"value"),E=this.emit(B,"value"),S=this.emit(M,"value");return`if (${E}) ${P} = ${S}`}}if(_==="statement"&&f==="="&&Array.isArray($)&&$.length===3){let[q,R,X]=$,B=Array.isArray(X)&&X.length===1&&(!Array.isArray(X[0])||X[0][0]!=="block");if(q==="if"&&B){let I=Array.isArray(X)&&X.length===1?X[0]:X,O=this.emit(u,"value"),M=this.unwrapLogical(this.emit(R,"value")),P=this.emit(I,"value");return`if (${M}) ${O} = ${P}`}}let Z;if(u instanceof String&&w1(u,"await")!==void 0)Z=i(u);else if(typeof u==="string"&&this.reactiveVars?.has(u))Z=`${u}.value`;else Z=this.emit(u,"value");let Q=this._componentName,K=this._componentTypeParams;if(this.is($,"component")&&(typeof u==="string"||u instanceof String))this._componentName=i(u),this._componentTypeParams=u.typeParams||"";let D=this.emit($,"value");if(this._componentName=Q,this._componentTypeParams=K,!this.is($,"object"))D=this.unwrap(D);let J=_==="value",z=_==="statement"&&this.is(u,"object");if(J||z)return`(${Z} ${W} ${D})`;return`${Z} ${W} ${D}`}emitPropertyAccess(f,w,_,U){let[u,$]=w;if(this._atParamMap&&u==="this"){let G=this._atParamMap.get(i($));if(G)return G}let W=this.emit(u,"value"),A=W1.NUMBER_LITERAL_RE.test(W)||W.startsWith("await ")||(this.is(u,"object")||this.is(u,"yield"))?`(${W})`:W;if(w1($,"await")===!0)return`await ${A}.${i($)}()`;if(w1($,"predicate"))return`(${A}.${i($)} != null)`;return`${A}.${i($)}`}emitOptionalProperty(f,w){let[_,U]=w;return`${this.emit(_,"value")}?.${U}`}emitRegexIndex(f,w){let[_,U,u]=w;this.helpers.add("toMatchable"),this.programVars.add("_");let $=this.emit(_,"value"),W=this.emit(U,"value"),F=u!==null?this.emit(u,"value"):"0",A=W.includes("/m")?", true":"";return`(_ = toMatchable(${$}${A}).match(${W})) && _[${F}]`}emitIndexAccess(f,w){let[_,U]=w;if(this.is(U,"..")||this.is(U,"...")){let u=U[0]==="..",$=this.emit(_,"value"),[W,F]=U.slice(1),A=(Q)=>{if(Q===null)return null;let K=i(Q)??Q;if(typeof K==="number")return K;if(typeof K==="string"&&/^\d+$/.test(K))return+K;if(Array.isArray(Q)&&Q[0]==="-"&&Q.length===2){let D=i(Q[1])??Q[1];if(typeof D==="number")return-D;if(typeof D==="string"&&/^\d+$/.test(D))return-D}return null},G=(Q,K,D)=>{let H=A(D);if(H!==null&&H!==-1)return`${$}.slice(${Q}, ${H+1})`;return`${$}.slice(${Q}, +${K} + 1 || 9e9)`};if(W===null&&F===null)return`${$}.slice()`;if(W===null){if(u&&this.is(F,"-",1)&&(i(F[1])??F[1])==1)return`${$}.slice(0)`;let Q=this.emit(F,"value");return u?G("0",Q,F):`${$}.slice(0, ${Q})`}if(F===null)return`${$}.slice(${this.emit(W,"value")})`;let Y=this.emit(W,"value");if(u&&this.is(F,"-",1)&&(i(F[1])??F[1])==1)return`${$}.slice(${Y})`;let Z=this.emit(F,"value");return u?G(Y,Z,F):`${$}.slice(${Y}, ${Z})`}if(this.is(U,"-",1)){let u=i(U[1])??U[1];if(typeof u==="number"||typeof u==="string"&&/^\d+$/.test(u))return`${this.emit(_,"value")}.at(-${u})`}return`${this.emit(_,"value")}[${this.unwrap(this.emit(U,"value"))}]`}emitOptIndex(f,w){let[_,U]=w;if(this.is(U,"-",1)){let u=i(U[1])??U[1];if(typeof u==="number"||typeof u==="string"&&/^\d+$/.test(u))return`${this.emit(_,"value")}?.at(-${u})`}return`${this.emit(_,"value")}?.[${this.emit(U,"value")}]`}emitOptCall(f,w){let[_,...U]=w;return`${this.emit(_,"value")}?.(${U.map((u)=>this.emit(u,"value")).join(", ")})`}emitDef(f,w,_,U){let[u,$,W]=w,F=w1(u,"await")===!0,A=i(u),G=this.emitParamList($),Y=this.emitFunctionBody(W,$,F),Z=this.containsAwait(W),Q=this.containsYield(W);return`${Z?"async ":""}function${Q?"*":""} ${A}(${G}) ${Y}`}emitThinArrow(f,w,_,U){let[u,$]=w;if((!u||Array.isArray(u)&&u.length===0)&&this.containsIt($))u=["it"];let W=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let F=this.emitParamList(u),A=this.emitFunctionBody($,u,W),G=this.containsAwait($),Y=this.containsYield($),Z=`${G?"async ":""}function${Y?"*":""}(${F}) ${A}`;return _==="value"?`(${Z})`:Z}emitFatArrow(f,w,_,U){let[u,$]=w;if((!u||Array.isArray(u)&&u.length===0)&&this.containsIt($))u=["it"];let W=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let F=this.emitParamList(u),G=u.length===1&&typeof u[0]==="string"&&!F.includes("=")&&!F.includes("...")&&!F.includes("[")&&!F.includes("{")?F:`(${F})`,Z=this.containsAwait($)?"async ":"";if(!W){if(this.is($,"block")&&$.length===2){let K=$[1],D=Array.isArray(K)?K[0]:null;if(D!=="return"&&!T4.has(D)){let H=this.emit(K,"value");if(H[0]==="{")H=`(${H})`;return`${Z}${G} => ${H}`}}if(!Array.isArray($)||$[0]!=="block"){let K=this.emit($,"value");if(K[0]==="{")K=`(${K})`;return`${Z}${G} => ${K}`}}let Q=this.emitFunctionBody($,u,W);return`${Z}${G} => ${Q}`}emitReturn(f,w,_,U){if(w.length===0)return"return";let[u]=w;if(this.sideEffectOnly&&!(this.is(u,"->")||this.is(u,"=>")))this.error("Cannot return a value from a void function (declared with !)",U);if(this.is(u,"if")){let[,$,W,...F]=u;if(F.length===0){let A=Array.isArray(W)&&W.length===1?W[0]:W;return`if (${this.emit($,"value")}) return ${this.emit(A,"value")}`}}if(this.is(u,"new")&&Array.isArray(u[1])&&u[1][0]==="if"){let[,$,W]=u[1],F=Array.isArray(W)&&W.length===1?W[0]:W;return`if (${this.emit($,"value")}) return ${this.emit(["new",F],"value")}`}return`return ${this.emit(u,"value")}`}emitState(f,w){let[_,U]=w;this.usesReactivity=!0;let u=i(_)??_;if(!this.reactiveVars)this.reactiveVars=new Set;return this.reactiveVars.add(u),`const ${u} = __state(${this.emit(U,"value")})`}emitComputed(f,w){let[_,U]=w;if(this.usesReactivity=!0,!this.reactiveVars)this.reactiveVars=new Set;let u=i(_)??_;if(this.reactiveVars.add(u),this.is(U,"block")&&U.length>2)return`const ${u} = __computed(() => ${this.emitFunctionBody(U)})`;return`const ${u} = __computed(() => ${this.emit(U,"value")})`}emitReadonly(f,w){let[_,U]=w;return`const ${i(_)??_} = ${this.emit(U,"value")}`}emitEffect(f,w){let[_,U]=w;this.usesReactivity=!0;let u;if(this.is(U,"block"))u=this.emitFunctionBody(U);else if(this.is(U,"->")||this.is(U,"=>")){let W=this.emit(U,"value");if(_)return`const ${i(_)??this.emit(_,"value")} = __effect(${W})`;return`__effect(${W})`}else u=`{ ${this.emit(U,"value")}; }`;let $=`__effect(() => ${u})`;if(_)return`const ${i(_)??this.emit(_,"value")} = ${$}`;return $}emitBreak(){return"break"}emitContinue(){return"continue"}emitExistential(f,w){return`(${this.emit(w[0],"value")} != null)`}emitPresence(f,w){return`(${this.emit(w[0],"value")} ? true : undefined)`}emitTernary(f,w,_){let[U,u,$]=w;if((u?.[0]?.valueOf?.()??u?.[0])==="="&&Array.isArray(u)){let F=this.emit(u[1],"value"),A=this.emit(u[2],"value"),G=this.emit($,"value");return`${F} = (${this.unwrap(this.emit(U,"value"))} ? ${A} : ${G})`}return`(${this.unwrap(this.emit(U,"value"))} ? ${this.emit(u,"value")} : ${this.emit($,"value")})`}emitPipe(f,w){let[_,U]=w,u=this.emit(_,"value");if(Array.isArray(U)&&U.length>1){let $=U[0];if(Array.isArray($)||typeof $==="string"&&/^[a-zA-Z_$]/.test($)){let F=this.emit($,"value"),A=U.slice(1).map((G)=>this.emit(G,"value"));return`${F}(${u}, ${A.join(", ")})`}}return`${this.emit(U,"value")}(${u})`}emitLoop(f,w){return`while (true) ${this.emitLoopBody(w[0])}`}emitLoopN(f,w){let[_,U]=w;return`for (let it = 0; it < ${this.emit(_,"value")}; it++) ${this.emitLoopBody(U)}`}emitAwait(f,w){return`await ${this.emit(w[0],"value")}`}emitYield(f,w){return w.length===0?"yield":`yield ${this.emit(w[0],"value")}`}emitYieldFrom(f,w){return`yield* ${this.emit(w[0],"value")}`}emitIf(f,w,_,U){let[u,$,...W]=w;return _==="value"?this.emitIfAsExpression(u,$,W):this.emitIfAsStatement(u,$,W)}emitForIn(f,w,_,U){let[u,$,W,F,A]=w;if(_==="value"&&this.comprehensionDepth===0){let J=["for-in",u,$,W];return this.emit(["comprehension",A,[J],F?[F]:[]],_)}let G=Array.isArray(u)?u:[u],Y=G.length===0,[Z,Q]=Y?["_i",null]:G,K=this.is(Z,"array")||this.is(Z,"object")?this.emitDestructuringPattern(Z):Z;if(W&&W!==null){let J=this.emit($,"value"),z=Q||"_i",q=this.emit(W,"value"),R=this.is(W,"-",1),X=R&&(W[1]==="1"||W[1]===1||i(W[1])==="1"),B=!R&&(W==="1"||W===1||i(W)==="1"),I;if(X)I=`for (let ${z} = ${J}.length - 1; ${z} >= 0; ${z}--) `;else if(B)I=`for (let ${z} = 0; ${z} < ${J}.length; ${z}++) `;else if(R)I=`for (let ${z} = ${J}.length - 1; ${z} >= 0; ${z} += ${q}) `;else I=`for (let ${z} = 0; ${z} < ${J}.length; ${z} += ${q}) `;if(this.is(A,"block")){let O=A.slice(1);this.indentLevel++;let M=[];if(!Y)M.push(`const ${K} = ${J}[${z}];`);if(F)M.push(`if (${this.emit(F,"value")}) {`),this.indentLevel++,M.push(...this.formatStatements(O)),this.indentLevel--,M.push(this.indent()+"}");else M.push(...O.map((P)=>this.addSemicolon(P,this.emit(P,"statement"))));return this.indentLevel--,I+`{
|
|
359
|
-
${
|
|
1601
|
+
}`;return f}emitBinaryOp(u,U,_,W){if((u==="+"||u==="-")&&U.length===1)return`(${u}${this.emit(U[0],"value")})`;let[f,$]=U;if(u==="*"){let Y=f?.valueOf?.()??f;if(typeof Y==="string"&&/^["']/.test(Y))return`${this.emit(f,"value")}.repeat(${this.emit($,"value")})`}let F=new Set(["<",">","<=",">="]);if(F.has(u)&&Array.isArray(f)){let Y=f[0]?.valueOf?.()??f[0];if(F.has(Y)){let Z=this.emit(f[1],"value"),G=this.emit(f[2],"value"),Q=this.emit($,"value");return`((${Z} ${Y} ${G}) && (${G} ${u} ${Q}))`}}if(u==="==")u="===";if(u==="!=")u="!==";return`(${this.emit(f,"value")} ${u} ${this.emit($,"value")})`}emitModulo(u,U){let[_,W]=U;return this.helpers.add("modulo"),`modulo(${this.emit(_,"value")}, ${this.emit(W,"value")})`}emitModuloAssign(u,U){let[_,W]=U;this.helpers.add("modulo");let f=this.emit(_,"value"),$=this.emit(W,"value");return`${f} = modulo(${f}, ${$})`}emitFloorDiv(u,U){let[_,W]=U;return`Math.floor(${this.emit(_,"value")} / ${this.emit(W,"value")})`}emitFloorDivAssign(u,U){let[_,W]=U,f=this.emit(_,"value"),$=this.emit(W,"value");return`${f} = Math.floor(${f} / ${$})`}emitAssignment(u,U,_,W){let[f,$]=U,F=u==="?="?"??=":u,Y=this._findOptionalInTarget(f);if(Y){let O=this.emit(Y.guard,"value"),P=this.emit(Y.rewritten,"value"),q=this.emit($,"value");if(_==="value")return`(${O} != null ? (${P} ${F} ${q}) : undefined)`;return`if (${O} != null) ${P} ${F} ${q}`}let Z=this.is($,"->")||this.is($,"=>")||this.is($,"def");if(f instanceof String&&W1(f,"await")!==void 0&&!Z){let O=W1(f,"await")===!0?"!":"&";this.error(`Cannot use ${O} sigil in variable declaration '${d(f)}'`,W)}if(f instanceof String&&W1(f,"await")===!0&&Z)this.nextFunctionIsVoid=!0;let G=this.is(f,"array",0),Q=this.is(f,"object",0);if(G||Q){let O=this.emit($,"value");return Q&&_==="statement"?`(${O})`:O}if(Array.isArray($)&&F==="="&&$[0]==="control"){let[,O,P,q]=$,B=d(O),M=q[0]==="return",I=this.emit(f,"value"),H=this.emit(P,"value"),S=q.length>1?q[1]:null,N=M?S?`return ${this.emit(S,"value")}`:"return":S?`throw ${this.emit(S,"value")}`:"throw new Error()";if(_==="value"){if(B==="??")return`(() => { const __v = ${H}; if (__v == null) ${N}; return (${I} = __v); })()`;if(B==="||")return`(() => { const __v = ${H}; if (!__v) ${N}; return (${I} = __v); })()`;return`(() => { const __v = ${H}; if (__v) ${N}; return (${I} = __v); })()`}if(B==="??")return`if ((${I} = ${H}) == null) ${N}`;if(B==="||")return`if (!(${I} = ${H})) ${N}`;return`if ((${I} = ${H})) ${N}`}if(this.is(f,"array")){let O=f.slice(1).findIndex((P)=>this.is(P,"...")||P==="...");if(O!==-1&&O<f.length-2){let P=f.slice(1),q=P.slice(O+1),B=q.length;if(B>0){let M=this.emit($,"value"),H=P.slice(0,O).map((C)=>C===","?"":typeof C==="string"?C:this.emit(C,"value")).join(", "),S=q.map((C)=>C===","?"":typeof C==="string"?C:this.emit(C,"value")).join(", ");this.helpers.add("slice"),P.forEach((C)=>{if(C===","||C==="...")return;if(typeof C==="string")this.programVars.add(C);else if(this.is(C,"...")&&typeof C[1]==="string")this.programVars.add(C[1])});let N=P[O],V=this.is(N,"...")?N[1]:null,L=[];if(H)L.push(`[${H}] = ${M}`);if(V)L.push(`[...${V}] = ${M}.slice(${O}, -${B})`);return L.push(`[${S}] = slice.call(${M}, -${B})`),L.join(", ")}}}if(_==="statement"&&u==="="&&Array.isArray($)&&($[0]==="||"||$[0]==="&&")&&$.length===3){let[O,P,q]=$;if(this.is(q,"if")&&q.length===3){let[,B,M]=q,I=Array.isArray(M)&&M.length===1?M[0]:M,H=[O,P,I],S=this.emit(f,"value"),N=this.emit(B,"value"),V=this.emit(H,"value");return`if (${N}) ${S} = ${V}`}}if(_==="statement"&&u==="="&&Array.isArray($)&&$.length===3){let[O,P,q]=$,B=Array.isArray(q)&&q.length===1&&(!Array.isArray(q[0])||q[0][0]!=="block");if(O==="if"&&B){let M=Array.isArray(q)&&q.length===1?q[0]:q,I=this.emit(f,"value"),H=this.unwrapLogical(this.emit(P,"value")),S=this.emit(M,"value");return`if (${H}) ${I} = ${S}`}}let z;if(f instanceof String&&W1(f,"await")!==void 0)z=d(f);else if(typeof f==="string"&&this.reactiveVars?.has(f))z=`${f}.value`;else z=this.emit(f,"value");let J=this._componentName,X=this._componentTypeParams,K=this._schemaName;if(this.is($,"component")&&(typeof f==="string"||f instanceof String))this._componentName=d(f),this._componentTypeParams=f.typeParams||"";if(this.is($,"schema")&&(typeof f==="string"||f instanceof String))this._schemaName=d(f);let D=this.emit($,"value");if(this._componentName=J,this._componentTypeParams=X,this._schemaName=K,!this.is($,"object"))D=this.unwrap(D);let A=_==="value",R=_==="statement"&&this.is(f,"object");if(A||R)return`(${z} ${F} ${D})`;return`${z} ${F} ${D}`}emitPropertyAccess(u,U,_,W){let[f,$]=U;if(this._atParamMap&&f==="this"){let G=this._atParamMap.get(d($));if(G)return G}let F=this.emit(f,"value"),Z=Y1.NUMBER_LITERAL_RE.test(F)||F.startsWith("await ")||(this.is(f,"object")||this.is(f,"yield"))?`(${F})`:F;if(W1($,"await")===!0)return`await ${Z}.${d($)}()`;if(W1($,"predicate"))return`(${Z}.${d($)} != null)`;return`${Z}.${d($)}`}emitOptionalProperty(u,U){let[_,W]=U;return`${this.emit(_,"value")}?.${W}`}emitRegexIndex(u,U){let[_,W,f]=U;this.helpers.add("toMatchable"),this.programVars.add("_");let $=this.emit(_,"value"),F=this.emit(W,"value"),Y=f!==null?this.emit(f,"value"):"0",Z=F.includes("/m")?", true":"";return`(_ = toMatchable(${$}${Z}).match(${F})) && _[${Y}]`}emitIndexAccess(u,U){let[_,W]=U;if(this.is(W,"..")||this.is(W,"...")){let f=W[0]==="..",$=this.emit(_,"value"),[F,Y]=W.slice(1),Z=(J)=>{if(J===null)return null;let X=d(J)??J;if(typeof X==="number")return X;if(typeof X==="string"&&/^\d+$/.test(X))return+X;if(Array.isArray(J)&&J[0]==="-"&&J.length===2){let K=d(J[1])??J[1];if(typeof K==="number")return-K;if(typeof K==="string"&&/^\d+$/.test(K))return-K}return null},G=(J,X,K)=>{let D=Z(K);if(D!==null&&D!==-1)return`${$}.slice(${J}, ${D+1})`;return`${$}.slice(${J}, +${X} + 1 || 9e9)`};if(F===null&&Y===null)return`${$}.slice()`;if(F===null){if(f&&this.is(Y,"-",1)&&(d(Y[1])??Y[1])==1)return`${$}.slice(0)`;let J=this.emit(Y,"value");return f?G("0",J,Y):`${$}.slice(0, ${J})`}if(Y===null)return`${$}.slice(${this.emit(F,"value")})`;let Q=this.emit(F,"value");if(f&&this.is(Y,"-",1)&&(d(Y[1])??Y[1])==1)return`${$}.slice(${Q})`;let z=this.emit(Y,"value");return f?G(Q,z,Y):`${$}.slice(${Q}, ${z})`}if(this.is(W,"-",1)){let f=d(W[1])??W[1];if(typeof f==="number"||typeof f==="string"&&/^\d+$/.test(f))return`${this.emit(_,"value")}.at(-${f})`}return`${this.emit(_,"value")}[${this.unwrap(this.emit(W,"value"))}]`}emitOptIndex(u,U){let[_,W]=U;if(this.is(W,"-",1)){let f=d(W[1])??W[1];if(typeof f==="number"||typeof f==="string"&&/^\d+$/.test(f))return`${this.emit(_,"value")}?.at(-${f})`}return`${this.emit(_,"value")}?.[${this.emit(W,"value")}]`}emitOptCall(u,U){let[_,...W]=U;return`${this.emit(_,"value")}?.(${W.map((f)=>this.emit(f,"value")).join(", ")})`}emitDef(u,U,_,W){let[f,$,F]=U,Y=W1(f,"await")===!0,Z=d(f),G=this.emitParamList($),Q=this.emitFunctionBody(F,$,Y),z=this.containsAwait(F),J=this.containsYield(F);return`${z?"async ":""}function${J?"*":""} ${Z}(${G}) ${Q}`}emitThinArrow(u,U,_,W){let[f,$]=U;if((!f||Array.isArray(f)&&f.length===0)&&this.containsIt($))f=["it"];let F=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let Y=this.emitParamList(f),Z=this.emitFunctionBody($,f,F),G=this.containsAwait($),Q=this.containsYield($),z=`${G?"async ":""}function${Q?"*":""}(${Y}) ${Z}`;return _==="value"?`(${z})`:z}emitFatArrow(u,U,_,W){let[f,$]=U;if((!f||Array.isArray(f)&&f.length===0)&&this.containsIt($))f=["it"];let F=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let Y=this.emitParamList(f),G=f.length===1&&typeof f[0]==="string"&&!Y.includes("=")&&!Y.includes("...")&&!Y.includes("[")&&!Y.includes("{")?Y:`(${Y})`,z=this.containsAwait($)?"async ":"";if(!F){if(this.is($,"block")&&$.length===2){let X=$[1],K=Array.isArray(X)?X[0]:null;if(K!=="return"&&!k5.has(K)){let D=this.emit(X,"value");if(D[0]==="{")D=`(${D})`;return`${z}${G} => ${D}`}}if(!Array.isArray($)||$[0]!=="block"){let X=this.emit($,"value");if(X[0]==="{")X=`(${X})`;return`${z}${G} => ${X}`}}let J=this.emitFunctionBody($,f,F);return`${z}${G} => ${J}`}emitReturn(u,U,_,W){if(U.length===0)return"return";let[f]=U;if(this.sideEffectOnly&&!(this.is(f,"->")||this.is(f,"=>")))this.error("Cannot return a value from a void function (declared with !)",W);if(this.is(f,"if")){let[,$,F,...Y]=f;if(Y.length===0){let Z=Array.isArray(F)&&F.length===1?F[0]:F;return`if (${this.emit($,"value")}) return ${this.emit(Z,"value")}`}}if(this.is(f,"new")&&Array.isArray(f[1])&&f[1][0]==="if"){let[,$,F]=f[1],Y=Array.isArray(F)&&F.length===1?F[0]:F;return`if (${this.emit($,"value")}) return ${this.emit(["new",Y],"value")}`}return`return ${this.emit(f,"value")}`}emitState(u,U){let[_,W]=U;this.usesReactivity=!0;let f=d(_)??_;if(!this.reactiveVars)this.reactiveVars=new Set;return this.reactiveVars.add(f),`const ${f} = __state(${this.emit(W,"value")})`}emitComputed(u,U){let[_,W]=U;if(this.usesReactivity=!0,!this.reactiveVars)this.reactiveVars=new Set;let f=d(_)??_;if(this.reactiveVars.add(f),this.is(W,"block")&&W.length>2)return`const ${f} = __computed(() => ${this.emitFunctionBody(W)})`;return`const ${f} = __computed(() => ${this.emit(W,"value")})`}emitReadonly(u,U){let[_,W]=U;return`const ${d(_)??_} = ${this.emit(W,"value")}`}emitEffect(u,U){let[_,W]=U;this.usesReactivity=!0;let f;if(this.is(W,"block"))f=this.emitFunctionBody(W);else if(this.is(W,"->")||this.is(W,"=>")){let F=this.emit(W,"value");if(_)return`const ${d(_)??this.emit(_,"value")} = __effect(${F})`;return`__effect(${F})`}else f=`{ ${this.emit(W,"value")}; }`;let $=`__effect(() => ${f})`;if(_)return`const ${d(_)??this.emit(_,"value")} = ${$}`;return $}emitBreak(){return"break"}emitContinue(){return"continue"}emitExistential(u,U){return`(${this.emit(U[0],"value")} != null)`}emitPresence(u,U){return`(${this.emit(U[0],"value")} ? true : undefined)`}emitTernary(u,U,_){let[W,f,$]=U;if((f?.[0]?.valueOf?.()??f?.[0])==="="&&Array.isArray(f)){let Y=this.emit(f[1],"value"),Z=this.emit(f[2],"value"),G=this.emit($,"value");return`${Y} = (${this.unwrap(this.emit(W,"value"))} ? ${Z} : ${G})`}return`(${this.unwrap(this.emit(W,"value"))} ? ${this.emit(f,"value")} : ${this.emit($,"value")})`}emitPipe(u,U){let[_,W]=U,f=this.emit(_,"value");if(Array.isArray(W)&&W.length>1){let $=W[0];if(Array.isArray($)||typeof $==="string"&&/^[a-zA-Z_$]/.test($)){let Y=this.emit($,"value"),Z=W.slice(1).map((G)=>this.emit(G,"value"));return`${Y}(${f}, ${Z.join(", ")})`}}return`${this.emit(W,"value")}(${f})`}emitLoop(u,U){return`while (true) ${this.emitLoopBody(U[0])}`}emitLoopN(u,U){let[_,W]=U;return`for (let it = 0; it < ${this.emit(_,"value")}; it++) ${this.emitLoopBody(W)}`}emitAwait(u,U){return`await ${this.emit(U[0],"value")}`}emitYield(u,U){return U.length===0?"yield":`yield ${this.emit(U[0],"value")}`}emitYieldFrom(u,U){return`yield* ${this.emit(U[0],"value")}`}emitIf(u,U,_,W){let[f,$,...F]=U;return _==="value"?this.emitIfAsExpression(f,$,F):this.emitIfAsStatement(f,$,F)}emitForIn(u,U,_,W){let[f,$,F,Y,Z]=U;if(_==="value"&&this.comprehensionDepth===0){let w=["for-in",f,$,F];return this.emit(["comprehension",Z,[w],Y?[Y]:[]],_)}let G=Array.isArray(f)?f:[f],Q=G.length===0,[z,J]=Q?["_i",null]:G,X=this.is(z,"array")||this.is(z,"object")?this.emitDestructuringPattern(z):z;if(F&&F!==null){let w=this.emit($,"value"),A=J||"_i",R=this.emit(F,"value"),O=this.is(F,"-",1),P=O&&(F[1]==="1"||F[1]===1||d(F[1])==="1"),q=!O&&(F==="1"||F===1||d(F)==="1"),B;if(P)B=`for (let ${A} = ${w}.length - 1; ${A} >= 0; ${A}--) `;else if(q)B=`for (let ${A} = 0; ${A} < ${w}.length; ${A}++) `;else if(O)B=`for (let ${A} = ${w}.length - 1; ${A} >= 0; ${A} += ${R}) `;else B=`for (let ${A} = 0; ${A} < ${w}.length; ${A} += ${R}) `;if(this.is(Z,"block")){let M=Z.slice(1);this.indentLevel++;let I=[];if(!Q)I.push(`const ${X} = ${w}[${A}];`);if(Y)I.push(`if (${this.emit(Y,"value")}) {`),this.indentLevel++,I.push(...this.formatStatements(M)),this.indentLevel--,I.push(this.indent()+"}");else I.push(...M.map((H)=>this.addSemicolon(H,this.emit(H,"statement"))));return this.indentLevel--,B+`{
|
|
1602
|
+
${I.map((H)=>this.indent()+H).join(`
|
|
360
1603
|
`)}
|
|
361
|
-
${this.indent()}}`}if(
|
|
362
|
-
`,this.indentLevel++,
|
|
363
|
-
`,
|
|
364
|
-
`,this.indentLevel++,
|
|
1604
|
+
${this.indent()}}`}if(Q)return Y?B+`{ if (${this.emit(Y,"value")}) ${this.emit(Z,"statement")}; }`:B+`{ ${this.emit(Z,"statement")}; }`;return Y?B+`{ const ${X} = ${w}[${A}]; if (${this.emit(Y,"value")}) ${this.emit(Z,"statement")}; }`:B+`{ const ${X} = ${w}[${A}]; ${this.emit(Z,"statement")}; }`}if(J){let w=this.emit($,"value"),A=`for (let ${J} = 0; ${J} < ${w}.length; ${J}++) `;if(this.is(Z,"block")){if(A+=`{
|
|
1605
|
+
`,this.indentLevel++,A+=this.indent()+`const ${X} = ${w}[${J}];
|
|
1606
|
+
`,Y)A+=this.indent()+`if (${this.unwrap(this.emit(Y,"value"))}) {
|
|
1607
|
+
`,this.indentLevel++,A+=this.formatStatements(Z.slice(1)).join(`
|
|
365
1608
|
`)+`
|
|
366
|
-
`,this.indentLevel--,
|
|
367
|
-
`;else
|
|
1609
|
+
`,this.indentLevel--,A+=this.indent()+`}
|
|
1610
|
+
`;else A+=this.formatStatements(Z.slice(1)).join(`
|
|
368
1611
|
`)+`
|
|
369
|
-
`;this.indentLevel--,
|
|
370
|
-
${
|
|
1612
|
+
`;this.indentLevel--,A+=this.indent()+"}"}else A+=Y?`{ const ${X} = ${w}[${J}]; if (${this.unwrap(this.emit(Y,"value"))}) ${this.emit(Z,"statement")}; }`:`{ const ${X} = ${w}[${J}]; ${this.emit(Z,"statement")}; }`;return A}let K=Array.isArray($)&&$[0];if(K instanceof String)K=d(K);if(K===".."||K==="..."){let w=K==="...",[A,R]=$.slice(1),O=(P)=>typeof P==="number"||typeof P==="string"&&!P.includes("(")||P instanceof String&&!d(P).includes("(")||this.is(P,".");if(O(A)&&O(R)){let P=this.emit(A,"value"),q=this.emit(R,"value"),B=w?"<":"<=",M=F?`${X} += ${this.emit(F,"value")}`:`${X}++`,I=`for (let ${X} = ${P}; ${X} ${B} ${q}; ${M}) `;return I+=Y?this.emitLoopBodyWithGuard(Z,Y):this.emitLoopBody(Z),I}}let D=`for (const ${X} of ${this.emit($,"value")}) `;return D+=Y?this.emitLoopBodyWithGuard(Z,Y):this.emitLoopBody(Z),D}emitForOf(u,U,_,W){let[f,$,F,Y,Z]=U;if(_==="value"&&this.comprehensionDepth===0){let X=["for-of",f,$,F];return this.emit(["comprehension",Z,[X],Y?[Y]:[]],_)}let[G,Q]=Array.isArray(f)?f:[f],z=this.emit($,"value"),J=`for (const ${G} in ${z}) `;if(F&&!Q&&!Y){if(this.is(Z,"block")){this.indentLevel++;let X=[`if (!Object.hasOwn(${z}, ${G})) continue;`,...Z.slice(1).map((K)=>this.addSemicolon(K,this.emit(K,"statement")))];return this.indentLevel--,J+`{
|
|
1613
|
+
${X.map((K)=>this.indent()+K).join(`
|
|
371
1614
|
`)}
|
|
372
|
-
${this.indent()}}`}return
|
|
373
|
-
${
|
|
1615
|
+
${this.indent()}}`}return J+`{ if (!Object.hasOwn(${z}, ${G})) continue; ${this.emit(Z,"statement")}; }`}if(Q){if(this.is(Z,"block")){let K=Z.slice(1);this.indentLevel++;let D=[];if(F)D.push(`if (!Object.hasOwn(${z}, ${G})) continue;`);if(D.push(`const ${Q} = ${z}[${G}];`),Y)D.push(`if (${this.emit(Y,"value")}) {`),this.indentLevel++,D.push(...K.map((w)=>this.addSemicolon(w,this.emit(w,"statement")))),this.indentLevel--,D.push(this.indent()+"}");else D.push(...K.map((w)=>this.addSemicolon(w,this.emit(w,"statement"))));return this.indentLevel--,J+`{
|
|
1616
|
+
${D.map((w)=>this.indent()+w).join(`
|
|
374
1617
|
`)}
|
|
375
|
-
${this.indent()}}`}let
|
|
376
|
-
${
|
|
1618
|
+
${this.indent()}}`}let X="";if(F)X+=`if (!Object.hasOwn(${z}, ${G})) continue; `;if(X+=`const ${Q} = ${z}[${G}]; `,Y)X+=`if (${this.emit(Y,"value")}) `;return X+=`${this.emit(Z,"statement")};`,J+`{ ${X} }`}return J+=Y?this.emitLoopBodyWithGuard(Z,Y):this.emitLoopBody(Z),J}emitForAs(u,U,_,W){let f=Array.isArray(U[0])?U[0]:[U[0]],[$]=f,F=U[1],Y=U[2],Z=U[3],G=U[4],Q=!1,z=[];if(this.is($,"array")){let w=$.slice(1),A=w.findIndex((R)=>this.is(R,"...")||R==="...");if(A!==-1&&A<w.length-1){Q=!0;let R=w.slice(A+1),O=R.length,P=w.slice(0,A),q=w[A],B=this.is(q,"...")?q[1]:"_rest",M=P.map((S)=>S===","?"":typeof S==="string"?S:this.emit(S,"value")).join(", "),I=M?`${M}, ...${B}`:`...${B}`,H=R.map((S)=>S===","?"":typeof S==="string"?S:this.emit(S,"value")).join(", ");z.push(`[${I}] = _item`),z.push(`[${H}] = ${B}.splice(-${O})`),this.helpers.add("slice"),w.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 J=this.emit(F,"value"),X=Y?"await ":"",K;if(Q)K="_item";else if(this.is($,"array")||this.is($,"object"))K=this.emitDestructuringPattern($);else K=$;let D=`for ${X}(const ${K} of ${J}) `;if(Q&&z.length>0){let w=this.unwrapBlock(G),A=this.withIndent(()=>[...z.map((R)=>this.indent()+R+";"),...this.formatStatements(w)]);D+=`{
|
|
1619
|
+
${A.join(`
|
|
377
1620
|
`)}
|
|
378
|
-
${this.indent()}}`}else
|
|
379
|
-
${this.withIndent(()=>this.formatStatements(
|
|
1621
|
+
${this.indent()}}`}else D+=Z?this.emitLoopBodyWithGuard(G,Z):this.emitLoopBody(G);return D}emitWhile(u,U){let _=U[0],W=U.length===3?U[1]:null,f=U[U.length-1];return`while (${this.unwrap(this.emit(_,"value"))}) `+(W?this.emitLoopBodyWithGuard(f,W):this.emitLoopBody(f))}emitRange(u,U){if(u==="..."){if(U.length===1)return`...${this.emit(U[0],"value")}`;let[F,Y]=U,Z=this.emit(F,"value"),G=this.emit(Y,"value");return`((s, e) => Array.from({length: Math.max(0, Math.abs(e - s))}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${Z}, ${G})`}let[_,W]=U,f=this.emit(_,"value"),$=this.emit(W,"value");return`((s, e) => Array.from({length: Math.abs(e - s) + 1}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${f}, ${$})`}emitNot(u,U){let[_]=U;if(typeof _==="string"||_ instanceof String)return`!${this.emit(_,"value")}`;if(Array.isArray(_)){if([".","?.","[]","optindex","optcall"].includes(_[0]))return`!${this.emit(_,"value")}`}let W=this.emit(_,"value");return W.startsWith("(")?`!${W}`:`(!${W})`}emitBitwiseNot(u,U){return`(~${this.emit(U[0],"value")})`}emitIncDec(u,U){let[_,W]=U,f=this.emit(_,"value");return W?`(${f}${u})`:`(${u}${f})`}emitTypeof(u,U){return`typeof ${this.emit(U[0],"value")}`}emitDelete(u,U){return`(delete ${this.emit(U[0],"value")})`}emitInstanceof(u,U,_,W){let[f,$]=U,F=W1(W[0],"invert"),Y=`(${this.emit(f,"value")} instanceof ${this.emit($,"value")})`;return F?`(!${Y})`:Y}emitIn(u,U,_,W){let[f,$]=U,F=this.emit(f,"value"),Y=W1(W[0],"invert");if(this.is($,"object")){let Q=`(${F} in ${this.emit($,"value")})`;return Y?`(!${Q})`:Q}let Z=this.emit($,"value"),G=`(Array.isArray(${Z}) || typeof ${Z} === 'string' ? ${Z}.includes(${F}) : (${F} in ${Z}))`;return Y?`(!${G})`:G}emitOf(u,U,_,W){let[f,$]=U,F=this.emit(f,"value"),Y=this.emit($,"value"),Z=W1(W[0],"invert"),G=`(${F} in ${Y})`;return Z?`(!${G})`:G}emitRegexMatch(u,U){let[_,W]=U;this.helpers.add("toMatchable"),this.programVars.add("_");let f=this.emit(W,"value"),$=f.includes("/m")?", true":"";return`(_ = toMatchable(${this.emit(_,"value")}${$}).match(${f}))`}emitNew(u,U){let[_]=U;if(this.is(_,".")||this.is(_,"?.")){let[W,f,$]=_;if(Array.isArray(f)&&!f[0].startsWith)return`(${this.emit(["new",f],"value")}).${$}`;return`new ${this.emit(f,"value")}.${$}`}if(Array.isArray(_)){let[W,...f]=_;return`new ${this.emit(W,"value")}(${f.map(($)=>this.unwrap(this.emit($,"value"))).join(", ")})`}return`new ${this.emit(_,"value")}()`}emitLogicalAnd(u,U,_,W){let f=this.flattenBinaryChain(W).slice(1);if(f.length===0)return"true";if(f.length===1)return this.emit(f[0],"value");return`(${f.map(($)=>this.emit($,"value")).join(" && ")})`}emitLogicalOr(u,U,_,W){let f=this.flattenBinaryChain(W).slice(1);if(f.length===0)return"true";if(f.length===1)return this.emit(f[0],"value");return`(${f.map(($)=>this.emit($,"value")).join(" || ")})`}emitSymbol(u,U){return`Symbol.for(${JSON.stringify(U[0])})`}emitArray(u,U){let _=U.length>0&&U[U.length-1]===",",W=U.map((f)=>{if(f===",")return"";if(f==="...")return"";if(this.is(f,"..."))return`...${this.emit(f[1],"value")}`;return this.emit(f,"value")}).join(", ");return _?`[${W},]`:`[${W}]`}emitObject(u,U,_){if(U.length===1&&Array.isArray(U[0])&&Array.isArray(U[0][2])&&U[0][2][0]==="comprehension"){let[,f,$]=U[0],[,F,Y,Z]=$;return this.emit(["object-comprehension",f,F,Y,Z],_)}return`{${U.map((f)=>{if(this.is(f,"..."))return`...${this.emit(f[1],"value")}`;let[$,F,Y]=f,Z;if(this.is(F,"dynamicKey"))Z=`[${this.emit(F[1],"value")}]`;else if(this.is(F,"str"))Z=`[${this.emit(F,"value")}]`;else this.suppressReactiveUnwrap=!0,Z=this.emit(F,"value"),this.suppressReactiveUnwrap=!1;let G=this.emit(Y,"value");if($==="=")return`${Z} = ${G}`;if($===":")return`${Z}: ${G}`;if(Z===G&&!Array.isArray(F))return Z;return`${Z}: ${G}`}).join(", ")}}`}emitMap(u,U,_){if(U.length===0)return"new Map()";return`new Map([${U.map((f)=>{if(this.is(f,"..."))return`...${this.emit(f[1],"value")}`;let[,$,F]=f,Y;if(Array.isArray($))Y=this.emit($,"value");else{let G=d($)??$;Y=!G.startsWith('"')&&!G.startsWith("'")&&!G.startsWith("/")&&!Y1.NUMBER_START_RE.test(G)&&!i5.has(G)?`"${G}"`:this.emit($,"value")}let Z=this.emit(F,"value");return`[${Y}, ${Z}]`}).join(", ")}])`}emitBlock(u,U,_){if(_==="statement")return`{
|
|
1622
|
+
${this.withIndent(()=>this.formatStatements(U)).join(`
|
|
380
1623
|
`)}
|
|
381
|
-
${this.indent()}}`;if(
|
|
382
|
-
${this.withIndent(()=>$.map((
|
|
1624
|
+
${this.indent()}}`;if(U.length===0)return"undefined";if(U.length===1)return this.emit(U[0],_);let W=U[U.length-1];if(Array.isArray(W)&&["break","continue","return","throw"].includes(W[0])){let $=U.map((F)=>this.addSemicolon(F,this.emit(F,"statement")));return`{
|
|
1625
|
+
${this.withIndent(()=>$.map((F)=>this.indent()+F).join(`
|
|
383
1626
|
`))}
|
|
384
|
-
${this.indent()}}`}return`(${
|
|
385
|
-
${this.indent()} ${
|
|
386
|
-
${this.indent()}}`}}let
|
|
387
|
-
`;this.indentLevel++;for(let
|
|
388
|
-
`}this.indentLevel++,
|
|
389
|
-
`,this.indentLevel++,
|
|
390
|
-
`;this.indentLevel++,this.comprehensionDepth++,
|
|
391
|
-
`;for(let
|
|
392
|
-
`,this.indentLevel++,
|
|
393
|
-
`}else if(
|
|
394
|
-
`,this.indentLevel++,
|
|
395
|
-
`;if(
|
|
396
|
-
`}else if(
|
|
397
|
-
`,this.indentLevel++}}for(let
|
|
398
|
-
`,this.indentLevel++;let
|
|
399
|
-
`;else if(Array.isArray(
|
|
400
|
-
`;else
|
|
401
|
-
`}else if(
|
|
402
|
-
`;else if(Array.isArray(
|
|
403
|
-
`;else
|
|
404
|
-
`;for(let
|
|
405
|
-
`;for(let
|
|
406
|
-
`;return
|
|
407
|
-
`,this.indentLevel--,this.comprehensionDepth--,
|
|
408
|
-
`;this.indentLevel++,
|
|
409
|
-
`;for(let G of $){let[
|
|
410
|
-
`,this.indentLevel++,
|
|
411
|
-
`;if(
|
|
412
|
-
`}}for(let G of
|
|
413
|
-
`,this.indentLevel++;
|
|
414
|
-
`;for(let G=0;G<
|
|
415
|
-
`;for(let G=0;G<$.length;G++)this.indentLevel--,
|
|
416
|
-
`;return
|
|
417
|
-
`,this.indentLevel--,
|
|
418
|
-
`,$.length>0&&Array.isArray($[0])){let
|
|
419
|
-
`;else
|
|
420
|
-
`}else
|
|
421
|
-
`;this.indentLevel--}else{this.indentLevel++;for(let
|
|
422
|
-
`;else
|
|
423
|
-
`;this.indentLevel--}}}return
|
|
424
|
-
`}else if(
|
|
425
|
-
`;else _+=this.indent()+`${
|
|
426
|
-
`}return _}emitSuper(
|
|
427
|
-
export default ${_[1]}`;return`export default ${this.emit(_,"statement")}`}emitExportAll(
|
|
428
|
-
`;if(
|
|
429
|
-
`;let
|
|
430
|
-
`;return}if(!$&&!
|
|
431
|
-
`;return}}if(!$&&!
|
|
432
|
-
`;return}}}let
|
|
433
|
-
`;else
|
|
434
|
-
`})};if(
|
|
435
|
-
`;else
|
|
436
|
-
`;for(let
|
|
437
|
-
`;
|
|
438
|
-
`;
|
|
439
|
-
`}return this.indentLevel--,
|
|
440
|
-
${this.withIndent(()=>
|
|
1627
|
+
${this.indent()}}`}return`(${U.map(($)=>this.emit($,"value")).join(", ")})`}emitTry(u,U,_){let W=_==="value",f="try ",$=U[0];if(f+=W&&this.is($,"block")?this.emitBlockWithReturns($):this.emit($,"statement"),U.length>=2&&Array.isArray(U[1])&&U[1].length===2&&U[1][0]!=="block"){let[F,Y]=U[1];if(f+=" catch",F&&(this.is(F,"object")||this.is(F,"array"))){f+=" (error)";let Z=`(${this.emit(F,"value")} = error)`;Y=this.is(Y,"block")?["block",Z,...Y.slice(1)]:["block",Z,Y]}else if(F)f+=` (${F})`;f+=" "+(W&&this.is(Y,"block")?this.emitBlockWithReturns(Y):this.emit(Y,"statement"))}else if(U.length===2)f+=" finally "+this.emit(U[1],"statement");if(U.length===3)f+=" finally "+this.emit(U[2],"statement");if(U.length===1)f+=" catch {}";if(W){let F=this.containsAwait(U[0])||U[1]&&this.containsAwait(U[1])||U[2]&&this.containsAwait(U[2]);return this.asyncIIFE(F,f)}return f}emitThrow(u,U,_){let[W]=U;if(Array.isArray(W)){let $=W,F=null;if(W[0]==="new"&&Array.isArray(W[1])&&W[1][0]==="if")F="new",$=W[1];else if(W[0]==="if")$=W;if($[0]==="if"){let[,Y,Z]=$,G=Array.isArray(Z)&&Z.length===1?Z[0]:Z;W=F==="new"?["new",G]:G;let Q=this.emit(Y,"value"),z=`throw ${this.emit(W,"value")}`;return`if (${Q}) {
|
|
1628
|
+
${this.indent()} ${z};
|
|
1629
|
+
${this.indent()}}`}}let f=`throw ${this.emit(W,"value")}`;return _==="value"?`(() => { ${f}; })()`:f}emitControl(u,U,_){let[W,f,$]=U,F=d(W),Y=$[0]==="return",Z=this.emit(f,"value"),G=$.length>1?$[1]:null,Q=Y?G?`return ${this.emit(G,"value")}`:"return":G?`throw ${this.emit(G,"value")}`:"throw new Error()",z=this.wrapForCondition(Z);if(_==="value"){if(F==="??")return`(() => { const __v = ${Z}; if (__v == null) ${Q}; return __v; })()`;if(F==="||")return`(() => { const __v = ${Z}; if (!__v) ${Q}; return __v; })()`;return`(() => { const __v = ${Z}; if (__v) ${Q}; return __v; })()`}if(F==="??")return`if (${z} == null) ${Q}`;if(F==="||")return`if (!${z}) ${Q}`;return`if (${z}) ${Q}`}emitSwitch(u,U,_){let[W,f,$]=U;if(W===null)return this.emitSwitchAsIfChain(f,$,_);let F=`switch (${this.emit(W,"value")}) {
|
|
1630
|
+
`;this.indentLevel++;for(let Y of f){let[,Z,G]=Y;for(let Q of Z){let z=d(Q)??Q,J;if(Array.isArray(z))J=this.emit(z,"value");else if(typeof z==="string"&&(z.startsWith('"')||z.startsWith("'")))J=`'${z.slice(1,-1)}'`;else J=this.emit(z,"value");F+=this.indent()+`case ${J}:
|
|
1631
|
+
`}this.indentLevel++,F+=this.emitSwitchCaseBody(G,_),this.indentLevel--}if($)F+=this.indent()+`default:
|
|
1632
|
+
`,this.indentLevel++,F+=this.emitSwitchCaseBody($,_),this.indentLevel--;if(this.indentLevel--,F+=this.indent()+"}",_==="value"){let Y=this.containsAwait(W)||f.some((Z)=>this.containsAwait(Z[1])||this.containsAwait(Z[2]))||$&&this.containsAwait($);return this.asyncIIFE(Y,F)}return F}emitWhen(u,U,_,W){this.error("when clause should be handled by switch",W)}_forInHeader(u,U,_){let W=Array.isArray(u)?u:[u],f=W.length===0,[$,F]=f?["_i",null]:W,Y=this.is($,"array")||this.is($,"object")?this.emitDestructuringPattern($):$;if(_&&_!==null){let Z=Array.isArray(U)&&U[0];if(Z instanceof String)Z=d(Z);if(Z===".."||Z==="..."){let R=Z==="...",[O,P]=U.slice(1),q=this.emit(O,"value"),B=this.emit(P,"value"),M=this.emit(_,"value");return{header:`for (let ${Y} = ${q}; ${Y} ${R?"<":"<="} ${B}; ${Y} += ${M})`,setup:null}}let Q=this.emit(U,"value"),z=F||"_i",J=this.emit(_,"value"),X=this.is(_,"-",1),K=X&&(_[1]==="1"||_[1]===1||d(_[1])==="1"),D=!X&&(_==="1"||_===1||d(_)==="1"),w=K?`${z}--`:D?`${z}++`:`${z} += ${J}`;return{header:X?`for (let ${z} = ${Q}.length - 1; ${z} >= 0; ${w})`:`for (let ${z} = 0; ${z} < ${Q}.length; ${w})`,setup:f?null:`const ${Y} = ${Q}[${z}];`}}if(F){let Z=this.emit(U,"value");return{header:`for (let ${F} = 0; ${F} < ${Z}.length; ${F}++)`,setup:`const ${Y} = ${Z}[${F}];`}}return{header:`for (const ${Y} of ${this.emit(U,"value")})`,setup:null}}_forOfHeader(u,U,_){let W=Array.isArray(u)?u:[u],[f,$]=W,F=this.is(f,"array")||this.is(f,"object")?this.emitDestructuringPattern(f):f,Y=this.emit(U,"value");return{header:`for (const ${F} in ${Y})`,own:_,vv:$,oc:Y,kvp:F}}_forAsHeader(u,U,_){let W=Array.isArray(u)?u:[u],[f]=W,$=this.is(f,"array")||this.is(f,"object")?this.emitDestructuringPattern(f):f;return{header:`for ${_?"await ":""}(const ${$} of ${this.emit(U,"value")})`}}emitComprehension(u,U,_){let[W,f,$]=U;if(_==="statement")return this.emitComprehensionAsLoop(W,f,$);if(this.comprehensionTarget)return this.emitComprehensionWithTarget(W,f,$,this.comprehensionTarget);let F=this.containsAwait(W)||f.some((Q)=>this.containsAwait(Q))||$.some((Q)=>this.containsAwait(Q)),Y=this.asyncIIFEOpen(F)+`
|
|
1633
|
+
`;this.indentLevel++,this.comprehensionDepth++,Y+=this.indent()+`const result = [];
|
|
1634
|
+
`;for(let Q of f){let[z,J,X,K]=Q;if(z==="for-in"){let{header:D,setup:w}=this._forInHeader(J,X,K);if(Y+=this.indent()+D+` {
|
|
1635
|
+
`,this.indentLevel++,w)Y+=this.indent()+w+`
|
|
1636
|
+
`}else if(z==="for-of"){let{header:D,own:w,vv:A,oc:R,kvp:O}=this._forOfHeader(J,X,K);if(Y+=this.indent()+D+` {
|
|
1637
|
+
`,this.indentLevel++,w)Y+=this.indent()+`if (!Object.hasOwn(${R}, ${O})) continue;
|
|
1638
|
+
`;if(A)Y+=this.indent()+`const ${A} = ${R}[${O}];
|
|
1639
|
+
`}else if(z==="for-as"){let{header:D}=this._forAsHeader(J,X,Q[3]);Y+=this.indent()+D+` {
|
|
1640
|
+
`,this.indentLevel++}}for(let Q of $)Y+=this.indent()+`if (${this.emit(Q,"value")}) {
|
|
1641
|
+
`,this.indentLevel++;let Z=(Q)=>{if(typeof Q==="string"&&(Q==="break"||Q==="continue"))return!0;if(!Array.isArray(Q))return!1;if(["break","continue","return","throw"].includes(Q[0]))return!0;if(Q[0]==="if")return Q.slice(1).some(Z);return Q.some(Z)},G=["for-in","for-of","for-as","while","loop"];if(this.is(W,"block"))for(let Q=0;Q<W.length-1;Q++){let z=W[Q+1];if(Q!==W.length-2||Z(z))Y+=this.indent()+this.emit(z,"statement")+`;
|
|
1642
|
+
`;else if(Array.isArray(z)&&G.includes(z[0]))Y+=this.indent()+this.emit(z,"statement")+`;
|
|
1643
|
+
`;else Y+=this.indent()+`result.push(${this.emit(z,"value")});
|
|
1644
|
+
`}else if(Z(W))Y+=this.indent()+this.emit(W,"statement")+`;
|
|
1645
|
+
`;else if(Array.isArray(W)&&G.includes(W[0]))Y+=this.indent()+this.emit(W,"statement")+`;
|
|
1646
|
+
`;else Y+=this.indent()+`result.push(${this.emit(W,"value")});
|
|
1647
|
+
`;for(let Q=0;Q<$.length;Q++)this.indentLevel--,Y+=this.indent()+`}
|
|
1648
|
+
`;for(let Q=0;Q<f.length;Q++)this.indentLevel--,Y+=this.indent()+`}
|
|
1649
|
+
`;return Y+=this.indent()+`return result;
|
|
1650
|
+
`,this.indentLevel--,this.comprehensionDepth--,Y+=this.indent()+"})()",Y}emitObjectComprehension(u,U,_){let[W,f,$,F]=U,Y=this.containsAwait(W)||this.containsAwait(f)||$.some((G)=>this.containsAwait(G))||F.some((G)=>this.containsAwait(G)),Z=this.asyncIIFEOpen(Y)+`
|
|
1651
|
+
`;this.indentLevel++,Z+=this.indent()+`const result = {};
|
|
1652
|
+
`;for(let G of $){let[Q,z,J,X]=G;if(Q==="for-of"){let[K,D]=z,w=this.emit(J,"value");if(Z+=this.indent()+`for (const ${K} in ${w}) {
|
|
1653
|
+
`,this.indentLevel++,X)Z+=this.indent()+`if (!Object.hasOwn(${w}, ${K})) continue;
|
|
1654
|
+
`;if(D)Z+=this.indent()+`const ${D} = ${w}[${K}];
|
|
1655
|
+
`}}for(let G of F)Z+=this.indent()+`if (${this.emit(G,"value")}) {
|
|
1656
|
+
`,this.indentLevel++;Z+=this.indent()+`result[${this.emit(W,"value")}] = ${this.emit(f,"value")};
|
|
1657
|
+
`;for(let G=0;G<F.length;G++)this.indentLevel--,Z+=this.indent()+`}
|
|
1658
|
+
`;for(let G=0;G<$.length;G++)this.indentLevel--,Z+=this.indent()+`}
|
|
1659
|
+
`;return Z+=this.indent()+`return result;
|
|
1660
|
+
`,this.indentLevel--,Z+=this.indent()+"})()",Z}emitClass(u,U,_){let[W,f,...$]=U,F=W?`class ${W}`:"class";if(f)F+=` extends ${this.emit(f,"value")}`;if(F+=` {
|
|
1661
|
+
`,$.length>0&&Array.isArray($[0])){let Y=$[0];if(Y[0]==="block"){let Z=Y.slice(1);if(Z.length>0&&Array.isArray(Z[0])&&Z[0][0]==="object"){let Q=Z[0].slice(1);this.indentLevel++,F+=this._emitClassMembers(Q,f);for(let z of Z.slice(1))if(this.is(z,"class")){let[,J,X,...K]=z;if(this.is(J,".")&&J[1]==="this")F+=this.indent()+`static ${J[2]} = ${this.emit(["class",null,X,...K],"value")};
|
|
1662
|
+
`;else F+=this.indent()+this.emit(z,"statement")+`;
|
|
1663
|
+
`}else F+=this.indent()+this.emit(z,"statement")+`;
|
|
1664
|
+
`;this.indentLevel--}else{this.indentLevel++;for(let Q of Z)if(this.is(Q,"=")&&Array.isArray(Q[1])&&Q[1][0]==="."&&Q[1][1]==="this")F+=this.indent()+`static ${Q[1][2]} = ${this.emit(Q[2],"value")};
|
|
1665
|
+
`;else F+=this.indent()+this.emit(Q,"statement")+`;
|
|
1666
|
+
`;this.indentLevel--}}}return F+=this.indent()+"}",F}_emitClassMembers(u,U){let _="",W=[];for(let[,f,$]of u){let F=this.is(f,".")&&f[1]==="this",Y=this.is(f,"computed"),Z=this.extractMemberName(f);if(this.is($,"=>")&&!F&&!Y&&Z!=="constructor")W.push(Z)}for(let[,f,$]of u){let F=this.is(f,".")&&f[1]==="this",Y=this.is(f,"computed"),Z=this.extractMemberName(f);if(this.is($,"->")||this.is($,"=>")){let[,G,Q]=$,z=this.containsAwait(Q),J=this.containsYield(Q),X=G,K=[];if(Z==="constructor"){let A=!!U,R=A?new Map:null;X=G.map((O)=>{if(this.is(O,".")&&O[1]==="this"){let P=O[2],q=A?`_${P}`:P;if(K.push(`this.${P} = ${q}`),A)R.set(P,q);return q}if(this.is(O,"default")&&this.is(O[1],".")&&O[1][1]==="this"){let P=O[1][2],q=A?`_${P}`:P;if(K.push(`this.${P} = ${q}`),A)R.set(P,q);return["default",q,O[2]]}return O});for(let O of W)K.unshift(`this.${O} = this.${O}.bind(this)`);if(R?.size>0)this._atParamMap=R}let D=this.emitParamList(X),w=(F?"static ":"")+(z?"async ":"")+(J?"*":"");if(_+=this.indent()+`${w}${Z}(${D}) `,!Y)this.currentMethodName=Z;_+=this.emitMethodBody(Q,K,Z==="constructor",X),this._atParamMap=null,this.currentMethodName=null,_+=`
|
|
1667
|
+
`}else if(F)_+=this.indent()+`static ${Z} = ${this.emit($,"value")};
|
|
1668
|
+
`;else _+=this.indent()+`${Z} = ${this.emit($,"value")};
|
|
1669
|
+
`}return _}emitSuper(u,U){if(U.length===0){if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}()`;return"super"}let _=U.map((W)=>this.unwrap(this.emit(W,"value"))).join(", ");if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}(${_})`;return`super(${_})`}emitImport(u,U,_,W){if(U.length===1){let Y=`import(${this.emit(U[0],"value")})`;if(W1(W[0],"await")===!0)return`(await ${Y})`;return Y}if(this.options.skipImports)return"";if(U.length===3){let[Y,Z,G]=U,Q=this.addJsExtensionAndAssertions(G);if(Z[0]==="*"&&Z.length===2)return`import ${Y}, * as ${Z[1]} from ${Q}`;let z=Z.map((J)=>Array.isArray(J)&&J.length===2?`${J[0]} as ${J[1]}`:J).join(", ");return`import ${Y}, { ${z} } from ${Q}`}let[f,$]=U,F=this.addJsExtensionAndAssertions($);if(typeof f==="string")return`import ${f} from ${F}`;if(Array.isArray(f)){if(f[0]==="*"&&f.length===2)return`import * as ${f[1]} from ${F}`;return`import { ${f.map((Z)=>Array.isArray(Z)&&Z.length===2?`${Z[0]} as ${Z[1]}`:Z).join(", ")} } from ${F}`}return`import ${this.emit(f,"value")} from ${F}`}emitExport(u,U){let[_]=U;if(this.options.skipExports){if(this.is(_,"=")){let W=this._componentName,f=this._componentTypeParams,$=this._schemaName;if(this.is(_[2],"component"))this._componentName=d(_[1]),this._componentTypeParams=_[1]?.typeParams||"";if(this.is(_[2],"schema"))this._schemaName=d(_[1]);let F=`const ${_[1]} = ${this.emit(_[2],"value")}`;return this._componentName=W,this._componentTypeParams=f,this._schemaName=$,F}if(Array.isArray(_)&&_.every((W)=>typeof W==="string"))return"";return this.emit(_,"statement")}if(this.is(_,"=")){let W=this._componentName,f=this._componentTypeParams,$=this._schemaName;if(this.is(_[2],"component"))this._componentName=d(_[1]),this._componentTypeParams=_[1]?.typeParams||"";if(this.is(_[2],"schema"))this._schemaName=d(_[1]);let F=`export const ${_[1]} = ${this.emit(_[2],"value")}`;return this._componentName=W,this._componentTypeParams=f,this._schemaName=$,F}if(Array.isArray(_)&&_.every((W)=>typeof W==="string"))return`export { ${_.join(", ")} }`;return`export ${this.emit(_,"statement")}`}emitExportDefault(u,U){let[_]=U;if(this.options.skipExports){if(this.is(_,"="))return`const ${_[1]} = ${this.emit(_[2],"value")}`;return this.emit(_,"statement")}if(this.is(_,"="))return`const ${_[1]} = ${this.emit(_[2],"value")};
|
|
1670
|
+
export default ${_[1]}`;return`export default ${this.emit(_,"statement")}`}emitExportAll(u,U){if(this.options.skipExports)return"";return`export * from ${this.addJsExtensionAndAssertions(U[0])}`}emitExportFrom(u,U){if(this.options.skipExports)return"";let[_,W]=U,f=this.addJsExtensionAndAssertions(W);if(Array.isArray(_))return`export { ${_.map((F)=>Array.isArray(F)&&F.length===2?`${F[0]} as ${F[1]}`:F).join(", ")} } from ${f}`;return`export ${_} from ${f}`}emitDoIIFE(u,U){return`(${this.emit(U[0],"statement")})()`}emitRegex(u,U){return U.length===0?u:this.emit(U[0],"value")}emitTaggedTemplate(u,U){let[_,W]=U,f=this.emit(_,"value"),$=this.emit(W,"value");if($.startsWith("`"))return`${f}${$}`;if($.startsWith('"')||$.startsWith("'"))return`${f}\`${$.slice(1,-1)}\``;return`${f}\`${$}\``}emitString(u,U){let _="`";for(let W of U)if(W instanceof String)_+=this.extractStringContent(W);else if(typeof W==="string")if(W.startsWith('"')||W.startsWith("'")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive in str:",W);_+=W.slice(1,-1)}else _+=W;else if(Array.isArray(W))if(W.length===1&&typeof W[0]==="string"&&!Array.isArray(W[0])){let f=W[0];_+=/^[\d"']/.test(f)?"${"+this.emit(f,"value")+"}":"${"+f+"}"}else{let f=W.length===1&&Array.isArray(W[0])?W[0]:W;_+="${"+this.emit(f,"value")+"}"}return _+"`"}findPostfixConditional(u){if(!Array.isArray(u))return null;let U=u[0];if(U==="if"&&u.length===3)return{type:U,condition:u[1],value:u[2]};if(U==="+"||U==="-"||U==="*"||U==="/")for(let _=1;_<u.length;_++){let W=this.findPostfixConditional(u[_]);if(W)return W.parentOp=U,W.operandIndex=_,W.otherOperands=u.slice(1).filter((f,$)=>$!==_-1),W}return null}rebuildWithoutConditional(u){let U=Array.isArray(u.value)&&u.value.length===1?u.value[0]:u.value;if(u.parentOp)return[u.parentOp,...u.otherOperands,U];return U}_tryPostfixCall(u,U,_){if(_!=="statement"||U.length!==1)return null;let W=this.findPostfixConditional(U[0]);if(!W)return null;let f=this.rebuildWithoutConditional(W),$=this.emit(u,"value"),F=this.emit(W.condition,"value"),Y=this.emit(f,"value");return`if (${F}) ${$}(${Y})`}_emitArgs(u){return u.map((U)=>this.unwrap(this.emit(U,"value"))).join(", ")}emitDestructuringPattern(u){return this.formatParam(u)}emitParamList(u){let U=u.findIndex((W)=>this.is(W,"expansion"));if(U!==-1){let W=u.slice(0,U),f=u.slice(U+1),$=W.map((F)=>this.formatParam(F)).join(", ");return this.expansionAfterParams=f,$?`${$}, ..._rest`:"..._rest"}let _=u.findIndex((W)=>this.is(W,"rest"));if(_!==-1&&_<u.length-1){let W=u.slice(0,_),f=u[_],$=u.slice(_+1),F=W.map((Y)=>this.formatParam(Y));return this.restMiddleParam={restName:f[1],afterParams:$,beforeCount:W.length},F.length>0?`${F.join(", ")}, ...${f[1]}`:`...${f[1]}`}return this.expansionAfterParams=null,this.restMiddleParam=null,u.map((W)=>this.formatParam(W)).join(", ")}formatParam(u){if(typeof u==="string")return u;if(u instanceof String)return u.valueOf();if(this.is(u,"rest"))return`...${u[1]}`;if(this.is(u,"default"))return`${u[1]} = ${this.emit(u[2],"value")}`;if(this.is(u,".")&&u[1]==="this")return u[2];if(this.is(u,"array"))return`[${u.slice(1).map((_)=>{if(_===",")return"";if(_==="...")return"";if(this.is(_,"..."))return`...${_[1]}`;if(this.is(_,"=")&&typeof _[1]==="string")return`${_[1]} = ${this.emit(_[2],"value")}`;if(typeof _==="string")return _;return this.formatParam(_)}).join(", ")}]`;if(this.is(u,"object"))return`{${u.slice(1).map((_)=>{if(this.is(_,"..."))return`...${_[1]}`;if(this.is(_,"default"))return`${_[1]} = ${this.emit(_[2],"value")}`;let[W,f,$]=_;if(W==="=")return`${f} = ${this.emit($,"value")}`;if(f===$)return f;return`${f}: ${this.formatParam($)}`}).join(", ")}}`;return JSON.stringify(u)}emitBodyWithReturns(u,U=[],_={}){let{sideEffectOnly:W=!1,autoAssignments:f=[],isConstructor:$=!1,hasExpansionParams:F=!1}=_,Y=this.sideEffectOnly;this.sideEffectOnly=W;let Z=new Set,G=(D)=>{if(typeof D==="string")Z.add(D);else if(Array.isArray(D)){if(D[0]==="rest"||D[0]==="..."){if(typeof D[1]==="string")Z.add(D[1])}else if(D[0]==="default"){if(typeof D[1]==="string")Z.add(D[1])}else if(D[0]==="array"||D[0]==="object")this.collectVarsFromArray(D,Z)}};if(Array.isArray(U))U.forEach(G);let Q=this.collectFunctionVariables(u),z=new Set([...Q].filter((D)=>!this.programVars.has(D)&&!this.reactiveVars?.has(D)&&!Z.has(D)&&!this.scopeStack.some((w)=>w.has(D)))),J=["return","throw","break","continue"],X=["for-in","for-of","for-as","while","loop"];if(this.scopeStack.push(new Set([...z,...Z])),this.is(u,"block")){let D=this.unwrapBlock(u);if(F&&this.expansionAfterParams?.length>0)D=[...this.expansionAfterParams.map((P,q)=>{return`const ${typeof P==="string"?P:JSON.stringify(P)} = _rest[_rest.length - ${this.expansionAfterParams.length-q}]`}),...D],this.expansionAfterParams=null;if(this.restMiddleParam){let{restName:O,afterParams:P}=this.restMiddleParam,q=P.length,B=[];if(P.forEach((M,I)=>{let H=typeof M==="string"?M:this.is(M,"default")?M[1]:JSON.stringify(M);B.push(`const ${H} = ${O}[${O}.length - ${q-I}]`)}),q>0)B.push(`${O} = ${O}.slice(0, -${q})`);D=[...B,...D],this.restMiddleParam=null}this.indentLevel++;let w=`{
|
|
1671
|
+
`;if(z.size>0)w+=this.indent()+`let ${Array.from(z).sort().join(", ")};
|
|
1672
|
+
`;let A=f.length>0&&D.length>0&&Array.isArray(D[0])&&D[0][0]==="super",R=(O)=>{O.forEach((P,q)=>{let B=q===O.length-1,M=Array.isArray(P)?P[0]:null;if(!B&&M==="comprehension"){let[,N,V,L]=P;w+=this.indent()+this.emitComprehensionAsLoop(N,V,L)+`
|
|
1673
|
+
`;return}if(!$&&!W&&B&&M==="if"){let[N,V,...L]=P.slice(1),C=(n)=>this.is(n,"block")&&n.length>2;if(this.hasStatementInBranch(V)||L.some((n)=>this.hasStatementInBranch(n))||C(V)||L.some(C)){w+=this.emitIfElseWithEarlyReturns(P)+`
|
|
1674
|
+
`;return}}if(!$&&!W&&B&&M==="="){let[N,V]=P.slice(1);if(typeof N==="string"&&Array.isArray(V)){let L=V[0];if(L==="comprehension"||L==="for-in"){this.comprehensionTarget=N,w+=this.emit(V,"value"),this.comprehensionTarget=null,w+=this.indent()+`return ${N};
|
|
1675
|
+
`;return}}}let I=!$&&!W&&B&&!J.includes(M)&&!X.includes(M)&&!this.hasExplicitControlFlow(P),H=I?"value":"statement",S=this.emit(P,H);if(I)w+=this.indent()+"return "+S+`;
|
|
1676
|
+
`;else w+=this.indent()+this.addSemicolon(P,S)+`
|
|
1677
|
+
`})};if(A){if(D.length===1&&!$)w+=this.indent()+"return "+this.emit(D[0],"value")+`;
|
|
1678
|
+
`;else w+=this.indent()+this.emit(D[0],"statement")+`;
|
|
1679
|
+
`;for(let P of f)w+=this.indent()+P+`;
|
|
1680
|
+
`;R(D.slice(1))}else{for(let O of f)w+=this.indent()+O+`;
|
|
1681
|
+
`;R(D)}if(W&&D.length>0){let O=Array.isArray(D[D.length-1])?D[D.length-1][0]:null;if(!J.includes(O))w+=this.indent()+`return;
|
|
1682
|
+
`}return this.indentLevel--,w+=this.indent()+"}",this.scopeStack.pop(),this.sideEffectOnly=Y,w}this.sideEffectOnly=Y;let K;if($&&f.length>0){let D=Array.isArray(u)&&u[0]==="super",w=this.emit(u,"statement"),A=f.map((R)=>`${R};`).join(" ");K=D?`{ ${w}; ${A} }`:`{ ${A} ${w}; }`}else if($||this.hasExplicitControlFlow(u))K=`{ ${this.emit(u,"statement")}; }`;else if(Array.isArray(u)&&(J.includes(u[0])||X.includes(u[0])))K=`{ ${this.emit(u,"statement")}; }`;else if(W)K=`{ ${this.emit(u,"statement")}; return; }`;else K=`{ return ${this.emit(u,"value")}; }`;return this.scopeStack.pop(),K}emitFunctionBody(u,U=[],_=!1){return this.emitBodyWithReturns(u,U,{sideEffectOnly:_,hasExpansionParams:this.expansionAfterParams?.length>0})}emitMethodBody(u,U=[],_=!1,W=[]){return this.emitBodyWithReturns(u,W,{autoAssignments:U,isConstructor:_})}emitBlockWithReturns(u){if(!Array.isArray(u)||u[0]!=="block")return this.emit(u,"statement");let U=this.unwrapBlock(u);return`{
|
|
1683
|
+
${this.withIndent(()=>U.map((W,f)=>{let $=f===U.length-1,F=Array.isArray(W)?W[0]:null,Y=$&&!["return","throw","break","continue"].includes(F),Z=this.emit(W,Y?"value":"statement");return Y?this.indent()+"return "+Z+";":this.indent()+Z+";"})).join(`
|
|
441
1684
|
`)}
|
|
442
|
-
${this.indent()}}`}emitLoopBody(
|
|
443
|
-
${this.withIndent(()=>
|
|
1685
|
+
${this.indent()}}`}emitLoopBody(u){if(!Array.isArray(u))return`{ ${this.emit(u,"statement")}; }`;if(u[0]==="block"||Array.isArray(u[0])){let U=u[0]==="block"?u.slice(1):u;return`{
|
|
1686
|
+
${this.withIndent(()=>U.map((W)=>{if(this.is(W,"comprehension")){let[,f,$,F]=W;return this.indent()+this.emitComprehensionAsLoop(f,$,F)}return this.indent()+this.addSemicolon(W,this.emit(W,"statement"))})).join(`
|
|
444
1687
|
`)}
|
|
445
|
-
${this.indent()}}`}return`{ ${this.emit(
|
|
446
|
-
`,
|
|
447
|
-
${
|
|
1688
|
+
${this.indent()}}`}return`{ ${this.emit(u,"statement")}; }`}emitLoopBodyWithGuard(u,U){let _=this.unwrap(this.emit(U,"value"));if(!Array.isArray(u))return`{ if (${_}) ${this.emit(u,"statement")}; }`;if(u[0]==="block"||Array.isArray(u[0])){let W=u[0]==="block"?u.slice(1):u,f=this.withIndent(()=>this.indent()),$=`if (${_}) {
|
|
1689
|
+
`,F=this.withIndent(()=>{this.indentLevel++;let Z=this.formatStatements(W);return this.indentLevel--,Z}),Y=this.withIndent(()=>this.indent()+"}");return`{
|
|
1690
|
+
${f}${$}${F.join(`
|
|
448
1691
|
`)}
|
|
449
|
-
${
|
|
450
|
-
${this.indent()}}`}return`{ if (${this.emit(
|
|
451
|
-
`;let $=this.is(
|
|
452
|
-
`,this.indentLevel++,
|
|
453
|
-
`;if(_&&_.length>0)
|
|
454
|
-
`,this.indentLevel++;if(
|
|
455
|
-
`,_&&_.length>0)this.indentLevel--,
|
|
456
|
-
`;return this.indentLevel--,
|
|
457
|
-
`,
|
|
458
|
-
`}emitComprehensionAsLoop(
|
|
459
|
-
`,this.indentLevel++,
|
|
460
|
-
`,this.indentLevel--,
|
|
461
|
-
`;else
|
|
462
|
-
`};if(
|
|
463
|
-
`,this.indentLevel++,
|
|
464
|
-
`;return $(),this.indentLevel--,
|
|
465
|
-
`,this.indentLevel++,$(),this.indentLevel--,
|
|
466
|
-
`,this.indentLevel++,
|
|
467
|
-
`;if(
|
|
468
|
-
`;return $(),this.indentLevel--,
|
|
469
|
-
`,$+=this.withIndent(()=>this.emitBranchWithReturn(
|
|
470
|
-
`,$+=this.withIndent(()=>this.emitBranchWithReturn(G)),$+=this.indent()+"}";for(let
|
|
471
|
-
`,$+=this.withIndent(()=>this.emitBranchWithReturn(
|
|
472
|
-
`,$+=this.withIndent(()=>this.emitBranchWithReturn(
|
|
1692
|
+
${Y}
|
|
1693
|
+
${this.indent()}}`}return`{ if (${this.emit(U,"value")}) ${this.emit(u,"statement")}; }`}emitComprehensionWithTarget(u,U,_,W){let f="";f+=this.indent()+`${W} = [];
|
|
1694
|
+
`;let $=this.is(u,"block")&&u.length===2?u[1]:u;if(U.length===1){let[F,Y,Z,G]=U[0];if(F==="for-in"){let{header:Q,setup:z}=this._forInHeader(Y,Z,G);if(f+=this.indent()+Q+` {
|
|
1695
|
+
`,this.indentLevel++,z)f+=this.indent()+z+`
|
|
1696
|
+
`;if(_&&_.length>0)f+=this.indent()+`if (${_.map((J)=>this.emit(J,"value")).join(" && ")}) {
|
|
1697
|
+
`,this.indentLevel++;if(f+=this.indent()+`${W}.push(${this.unwrap(this.emit($,"value"))});
|
|
1698
|
+
`,_&&_.length>0)this.indentLevel--,f+=this.indent()+`}
|
|
1699
|
+
`;return this.indentLevel--,f+=this.indent()+`}
|
|
1700
|
+
`,f}}return this.indent()+`${W} = (() => { /* complex comprehension */ })();
|
|
1701
|
+
`}emitComprehensionAsLoop(u,U,_){let W="",f=_?.length?_.map((F)=>this.emit(F,"value")).join(" && "):null,$=()=>{if(f)W+=this.indent()+`if (${f}) {
|
|
1702
|
+
`,this.indentLevel++,W+=this.indent()+this.emit(u,"statement")+`;
|
|
1703
|
+
`,this.indentLevel--,W+=this.indent()+`}
|
|
1704
|
+
`;else W+=this.indent()+this.emit(u,"statement")+`;
|
|
1705
|
+
`};if(U.length===1){let[F,Y,Z,G]=U[0];if(F==="for-in"){let{header:Q,setup:z}=this._forInHeader(Y,Z,G);if(W+=Q+` {
|
|
1706
|
+
`,this.indentLevel++,z)W+=this.indent()+z+`
|
|
1707
|
+
`;return $(),this.indentLevel--,W+=this.indent()+"}",W}if(F==="for-as"){let{header:Q}=this._forAsHeader(Y,Z,G);return W+=Q+` {
|
|
1708
|
+
`,this.indentLevel++,$(),this.indentLevel--,W+=this.indent()+"}",W}if(F==="for-of"){let{header:Q,own:z,vv:J,oc:X,kvp:K}=this._forOfHeader(Y,Z,G);if(W+=Q+` {
|
|
1709
|
+
`,this.indentLevel++,z)W+=this.indent()+`if (!Object.hasOwn(${X}, ${K})) continue;
|
|
1710
|
+
`;if(J)W+=this.indent()+`const ${J} = ${X}[${K}];
|
|
1711
|
+
`;return $(),this.indentLevel--,W+=this.indent()+"}",W}}return this.emit(["comprehension",u,U,_],"value")}emitIfElseWithEarlyReturns(u){let[U,_,W,...f]=u,$="",F=this.emit(_,"value");$+=this.indent()+`if (${F}) {
|
|
1712
|
+
`,$+=this.withIndent(()=>this.emitBranchWithReturn(W)),$+=this.indent()+"}";for(let Y of f)if($+=" else ",this.is(Y,"if")){let[,Z,G,...Q]=Y;$+=`if (${this.emit(Z,"value")}) {
|
|
1713
|
+
`,$+=this.withIndent(()=>this.emitBranchWithReturn(G)),$+=this.indent()+"}";for(let z of Q)$+=` else {
|
|
1714
|
+
`,$+=this.withIndent(()=>this.emitBranchWithReturn(z)),$+=this.indent()+"}"}else $+=`{
|
|
1715
|
+
`,$+=this.withIndent(()=>this.emitBranchWithReturn(Y)),$+=this.indent()+"}";return $}emitBranchWithReturn(u){u=this.unwrapIfBranch(u);let U=this.unwrapBlock(u),_="";for(let W=0;W<U.length;W++){let f=W===U.length-1,$=U[W],F=Array.isArray($)?$[0]:null;if(f&&!(F==="return"||F==="throw"||F==="break"||F==="continue"))_+=this.indent()+`return ${this.emit($,"value")};
|
|
473
1716
|
`;else _+=this.indent()+this.emit($,"statement")+`;
|
|
474
|
-
`}return _}emitIfAsExpression(
|
|
475
|
-
`;else if(
|
|
476
|
-
`;else _+=this.indent()+this.emit(
|
|
477
|
-
`;else _+=this.indent()+`return ${this.extractExpression(
|
|
478
|
-
`;else{if(
|
|
479
|
-
`}else if(this.is(
|
|
480
|
-
`;else _+=this.indent()+this.emit(
|
|
1717
|
+
`}return _}emitIfAsExpression(u,U,_){if(this.is(U,"block")&&U.length>2||this.hasStatementInBranch(U)||_.some((Y)=>this.is(Y,"block")&&Y.length>2||this.hasStatementInBranch(Y)||this.hasNestedMultiStatement(Y))){let Y=this.containsAwait(u)||this.containsAwait(U)||_.some((G)=>this.containsAwait(G)),Z=this.asyncIIFEOpen(Y)+" ";Z+=`if (${this.emit(u,"value")}) `,Z+=this.emitBlockWithReturns(U);for(let G of _)if(Z+=" else ",this.is(G,"if")){let[Q,z,J,...X]=G;Z+=`if (${this.emit(z,"value")}) `,Z+=this.emitBlockWithReturns(J);for(let K of X)if(Z+=" else ",this.is(K,"if")){let[D,w,A,...R]=K;Z+=`if (${this.emit(w,"value")}) `,Z+=this.emitBlockWithReturns(A),_.push(...R)}else Z+=this.emitBlockWithReturns(K)}else Z+=this.emitBlockWithReturns(G);return Z+" })()"}let f=this.extractExpression(this.unwrapIfBranch(U)),$=this.buildTernaryChain(_),F=this.emit(u,"value");if(this.is(u,"yield")||this.is(u,"await"))F=`(${F})`;return`(${F} ? ${f} : ${$})`}emitIfAsStatement(u,U,_){let W=`if (${this.unwrap(this.emit(u,"value"))}) `;W+=this.emit(this.unwrapIfBranch(U),"statement");for(let f of _)W+=" else "+this.emit(this.unwrapIfBranch(f),"statement");return W}emitSwitchCaseBody(u,U){let _="",W=this.hasExplicitControlFlow(u),f=this.unwrapBlock(u);if(W)for(let $ of f)_+=this.indent()+this.emit($,"statement")+`;
|
|
1718
|
+
`;else if(U==="value")if(this.is(u,"block")&&u.length>2)for(let $=0;$<f.length;$++)if($===f.length-1)_+=this.indent()+`return ${this.emit(f[$],"value")};
|
|
1719
|
+
`;else _+=this.indent()+this.emit(f[$],"statement")+`;
|
|
1720
|
+
`;else _+=this.indent()+`return ${this.extractExpression(u)};
|
|
1721
|
+
`;else{if(f.length===1&&this.is(f[0],"if")&&!this.hasStatementInBranch(f[0])&&!this.hasNestedMultiStatement(f[0])){let[$,F,Y,...Z]=f[0],G=this.extractExpression(this.unwrapIfBranch(Y)),Q=this.buildTernaryChain(Z);_+=this.indent()+`(${this.unwrap(this.emit(F,"value"))} ? ${G} : ${Q});
|
|
1722
|
+
`}else if(this.is(u,"block")&&u.length>1)for(let $ of f)_+=this.indent()+this.emit($,"statement")+`;
|
|
1723
|
+
`;else _+=this.indent()+this.emit(u,"statement")+`;
|
|
481
1724
|
`;_+=this.indent()+`break;
|
|
482
|
-
`}return _}emitSwitchAsIfChain(
|
|
483
|
-
`,this.indentLevel++,_==="value")
|
|
484
|
-
`;else for(let
|
|
485
|
-
`;this.indentLevel--,
|
|
486
|
-
`,this.indentLevel++,_==="value")
|
|
487
|
-
`;else for(let
|
|
488
|
-
`;this.indentLevel--,
|
|
489
|
-
`);if(
|
|
490
|
-
`))
|
|
491
|
-
`))
|
|
492
|
-
`)
|
|
1725
|
+
`}return _}emitSwitchAsIfChain(u,U,_){let W="";for(let f=0;f<u.length;f++){let[,$,F]=u[f],Y=Array.isArray($)?$[0]:$;if(W+=(f===0?"":" else ")+`if (${this.emit(Y,"value")}) {
|
|
1726
|
+
`,this.indentLevel++,_==="value")W+=this.indent()+`return ${this.extractExpression(F)};
|
|
1727
|
+
`;else for(let Z of this.unwrapBlock(F))W+=this.indent()+this.emit(Z,"statement")+`;
|
|
1728
|
+
`;this.indentLevel--,W+=this.indent()+"}"}if(U){if(W+=` else {
|
|
1729
|
+
`,this.indentLevel++,_==="value")W+=this.indent()+`return ${this.extractExpression(U)};
|
|
1730
|
+
`;else for(let f of this.unwrapBlock(U))W+=this.indent()+this.emit(f,"statement")+`;
|
|
1731
|
+
`;this.indentLevel--,W+=this.indent()+"}"}if(_==="value"){let f=u.some(($)=>this.containsAwait($[1])||this.containsAwait($[2]))||U&&this.containsAwait(U);return this.asyncIIFE(f,W)}return W}asyncIIFE(u,U){return`${u?"await ":""}(${u?"async ":""}() => { ${U} })()`}asyncIIFEOpen(u){return`${u?"await ":""}(${u?"async ":""}() => {`}extractExpression(u){let U=this.unwrapBlock(u);return U.length>0?this.emit(U[U.length-1],"value"):"undefined"}unwrapBlock(u){if(!Array.isArray(u))return[u];if(u[0]==="block")return u.slice(1);if(Array.isArray(u[0])){if(typeof u[0][0]==="string")return[u];return u}return[u]}indent(){return this.indentString.repeat(this.indentLevel)}needsSemicolon(u,U){if(!U||U.endsWith(";"))return!1;if(!U.endsWith("}"))return!0;let _=Array.isArray(u)?u[0]:null;return!["def","class","if","for-in","for-of","for-as","while","loop","switch","try"].includes(_)}addSemicolon(u,U){return U+(this.needsSemicolon(u,U)?";":"")}formatStatements(u,U="statement"){return u.map((_)=>this.indent()+this.addSemicolon(_,this.emit(_,U)))}wrapForCondition(u){if(/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(u))return u;if(u.startsWith("(")&&u.endsWith(")"))return u;return`(${u})`}hasExplicitControlFlow(u){if(!Array.isArray(u))return!1;let U=u[0];if(U==="return"||U==="throw"||U==="break"||U==="continue")return!0;if(U==="block")return u.slice(1).some((_)=>Array.isArray(_)&&["return","throw","break","continue"].includes(_[0]));if(U==="switch"){let[,,_]=u;return _?.some((W)=>{return this.unwrapBlock(W[2]).some(($)=>Array.isArray($)&&["return","throw","break","continue"].includes($[0]))})}if(U==="if"){let[,,_,W]=u;return this.branchHasControlFlow(_)&&W&&this.branchHasControlFlow(W)}return!1}branchHasControlFlow(u){if(!Array.isArray(u))return!1;let U=this.unwrapBlock(u);if(U.length===0)return!1;let _=U[U.length-1];return Array.isArray(_)&&["return","throw","break","continue"].includes(_[0])}withIndent(u){this.indentLevel++;let U=u();return this.indentLevel--,U}is(u,U,_){if(!Array.isArray(u))return null;if((d(u[0])??u[0])!==U)return null;let W=u.slice(1);if(_!=null&&W.length!==_)return null;return W}unwrap(u){if(typeof u!=="string")return u;while(u.startsWith("(")&&u.endsWith(")")){let U=0,_=0,W=!0,f=!1;for(let $=0;$<u.length;$++){if(u[$]==="(")U++;if(u[$]===")")U--;if(u[$]==="["||u[$]==="{")_++;if(u[$]==="]"||u[$]==="}")_--;if(u[$]===","&&U===1&&_===0)f=!0;if(U===0&&$<u.length-1){W=!1;break}}if(f)W=!1;if(W)u=u.slice(1,-1);else break}return u}_findOptionalInTarget(u){if(!Array.isArray(u))return null;if(u[0]==="?.")return{guard:u[1],rewritten:[".",u[1],u[2]]};if(u[0]==="optindex")return{guard:u[1],rewritten:["[]",u[1],u[2]]};if(u[0]==="."||u[0]==="[]"){let U=this._findOptionalInTarget(u[1]);if(U)return{guard:U.guard,rewritten:[u[0],U.rewritten,u[2]]}}return null}unwrapLogical(u){if(typeof u!=="string")return u;while(u.startsWith("(")&&u.endsWith(")")){let U=0,_=1/0;for(let W=1;W<u.length-1;W++){if(u[W]==="(")U++;if(u[W]===")")U--;_=Math.min(_,U)}if(_>=0)u=u.slice(1,-1);else break}return u}unwrapIfBranch(u){if(Array.isArray(u)&&u.length===1&&(!Array.isArray(u[0])||u[0][0]!=="block"))return u[0];return u}flattenBinaryChain(u){if(!Array.isArray(u)||u.length<3)return u;let[U,..._]=u;if(U!=="&&"&&U!=="||")return u;let W=[],f=($)=>{if(Array.isArray($)&&$[0]===U)for(let F=1;F<$.length;F++)f($[F]);else W.push($)};for(let $ of _)f($);return[U,...W]}hasStatementInBranch(u){if(!Array.isArray(u))return!1;if(u.length===1&&Array.isArray(u[0]))return this.hasStatementInBranch(u[0]);let U=u[0];if(U==="return"||U==="throw"||U==="break"||U==="continue")return!0;if(U==="block")return u.slice(1).some((_)=>this.hasStatementInBranch(_));return!1}hasNestedMultiStatement(u){if(!Array.isArray(u))return!1;if(u[0]==="if"){let[U,_,W,...f]=u;return this.is(W,"block")&&W.length>2||f.some(($)=>this.hasNestedMultiStatement($))}return!1}buildTernaryChain(u){if(u.length===0)return"undefined";if(u.length===1)return this.extractExpression(this.unwrapIfBranch(u[0]));let U=u[0];if(this.is(U,"if")){let[_,W,f,...$]=U,F=this.extractExpression(this.unwrapIfBranch(f)),Y=this.buildTernaryChain([...$,...u.slice(1)]);return`(${this.emit(W,"value")} ? ${F} : ${Y})`}return this.extractExpression(this.unwrapIfBranch(U))}collectVarsFromArray(u,U){u.slice(1).forEach((_)=>{if(_===","||_==="...")return;if(typeof _==="string"){U.add(_);return}if(Array.isArray(_)){if(_[0]==="..."&&typeof _[1]==="string")U.add(_[1]);else if(_[0]==="array")this.collectVarsFromArray(_,U);else if(_[0]==="object")this.collectVarsFromObject(_,U)}})}collectVarsFromObject(u,U){u.slice(1).forEach((_)=>{if(!Array.isArray(_))return;if(_[0]==="..."&&typeof _[1]==="string"){U.add(_[1]);return}if(_.length>=2){let[W,f,$]=_;if(W==="="){if(typeof f==="string")U.add(f)}else if(typeof $==="string")U.add($);else if(Array.isArray($)){if($[0]==="array")this.collectVarsFromArray($,U);else if($[0]==="object")this.collectVarsFromObject($,U)}}})}extractStringContent(u){let U=d(u).slice(1,-1),_=W1(u,"indent");if(_)U=U.replace(new RegExp(`\\n${_}`,"g"),`
|
|
1732
|
+
`);if(W1(u,"initialChunk")&&U.startsWith(`
|
|
1733
|
+
`))U=U.slice(1);if(W1(u,"finalChunk")&&U.endsWith(`
|
|
1734
|
+
`))U=U.slice(0,-1);return U}processHeregex(u){let U="",_=!1,W=0,f=()=>{let $=0,F=W-1;while(F>=0&&u[F]==="\\")$++,F--;return $%2===1};while(W<u.length){let $=u[W];if($==="["&&!f()){_=!0,U+=$,W++;continue}if($==="]"&&_&&!f()){_=!1,U+=$,W++;continue}if(_){U+=$,W++;continue}if(/\s/.test($)){W++;continue}if($==="#"){if(f()){U+=$,W++;continue}let F=W-1;while(F>=0&&u[F]==="\\")F--;if(F<W-1){U+=$,W++;continue}while(W<u.length&&u[W]!==`
|
|
1735
|
+
`)W++;continue}U+=$,W++}return U}addJsExtensionAndAssertions(u){if(u instanceof String)u=d(u);if(typeof u!=="string")return u;let _=u.startsWith('"')||u.startsWith("'")?u.slice(1,-1):u,W=_.startsWith("./")||_.startsWith("../"),f=_,$="";if(W){let F=_.lastIndexOf("/"),Y=F>=0?_.substring(F+1):_;if(Y.includes(".")){if(Y.endsWith(".json"))$=" with { type: 'json' }"}else f=_+".js"}return`'${f}'`+$}containsIt(u){if(!u)return!1;if(u==="it"||u instanceof String&&d(u)==="it")return!0;if(typeof u!=="object")return!1;if(this.is(u,"def")||this.is(u,"->")||this.is(u,"=>"))return!1;if(Array.isArray(u))return u.some((U)=>this.containsIt(U));return!1}containsAwait(u){if(!u)return!1;if(u instanceof String&&W1(u,"await")===!0)return!0;if(typeof u!=="object")return!1;if(this.is(u,"await"))return!0;if(this.is(u,"for-as")&&u[3]===!0)return!0;if(this.is(u,"def")||this.is(u,"->")||this.is(u,"=>")||this.is(u,"class"))return!1;if(Array.isArray(u))return u.some((U)=>this.containsAwait(U));return!1}containsYield(u){if(!u)return!1;if(typeof u!=="object")return!1;if(this.is(u,"yield")||this.is(u,"yield-from"))return!0;if(this.is(u,"def")||this.is(u,"->")||this.is(u,"=>")||this.is(u,"class"))return!1;if(Array.isArray(u))return u.some((U)=>this.containsYield(U));return!1}extractMemberName(u){if(this.is(u,".")&&u[1]==="this")return u[2];if(this.is(u,"computed"))return`[${this.emit(u[1],"value")}]`;return u}getReactiveRuntime(){return`// ============================================================================
|
|
493
1736
|
// Rip Reactive Runtime
|
|
494
1737
|
// A minimal, fine-grained reactivity system
|
|
495
1738
|
//
|
|
@@ -718,13 +1961,13 @@ if (typeof globalThis !== 'undefined') {
|
|
|
718
1961
|
}
|
|
719
1962
|
|
|
720
1963
|
// === End Reactive Runtime ===
|
|
721
|
-
`}}class
|
|
722
|
-
`),
|
|
1964
|
+
`}}class x1{constructor(u={}){this.options={showTokens:!1,showSExpr:!1,...u}}compile(u,U){if(U)this.options={...this.options,...U};let _=null,W=u.split(`
|
|
1965
|
+
`),f=W.findIndex((w)=>w==="__DATA__");if(f!==-1){let w=W.slice(f+1);_=w.length>0?w.join(`
|
|
723
1966
|
`)+`
|
|
724
|
-
`:"",
|
|
725
|
-
`)}let $=new
|
|
726
|
-
//# sourceMappingURL=data:application/json;base64,${
|
|
727
|
-
//# sourceMappingURL=${this.options.filename}.js.map`;if(
|
|
1967
|
+
`:"",u=W.slice(0,f).join(`
|
|
1968
|
+
`)}let $=new K1,F;try{F=$.tokenize(u)}catch(w){throw C1(w,u,this.options.filename)}if(this.options.showTokens)F.forEach((w)=>console.log(`${w[0].padEnd(12)} ${JSON.stringify(w[1])}`)),console.log();let Y=null,Z=null;if(this.options.types==="emit"||this.options.types==="check"||this.options.types===!0)Z=[...F];if(F=F.filter((w)=>w[0]!=="TYPE_DECL"),$.typeRefNames?.size>0){let w=$.typeRefNames,A=new Set,R=!1;for(let O of F){if(O[0]==="IMPORT"){R=!0;continue}if(R&&O[0]==="TERMINATOR"){R=!1;continue}if(R)continue;if(O[0]==="IDENTIFIER")A.add(O[1])}for(let O=F.length-1;O>=0;O--){if(F[O][0]!=="IMPORT")continue;let P=O+1;if(P>=F.length)continue;if(F[P][0]==="CALL_START"||F[P][0]==="(")continue;if(F[P][0]==="STRING")continue;let q=[];while(P<F.length&&F[P][0]!=="FROM"&&F[P][0]!=="TERMINATOR"){if(F[P][0]==="IDENTIFIER")q.push(F[P][1]);P++}if(q.length===0)continue;if(q.some((M)=>A.has(M)))continue;if(!q.some((M)=>w.has(M)))continue;let B=P;while(B<F.length&&F[B][0]!=="TERMINATOR")B++;if(B<F.length)B++;F.splice(O,B-O)}}while(F.length>0&&F[0][0]==="TERMINATOR")F.shift();if(F.every((w)=>w[0]==="TERMINATOR")){if(Z)Y=Q2(Z,["program"],u);return{tokens:F,sexpr:["program"],code:"",dts:Y,data:_,reactiveVars:{}}}let G=null;z1.lexer={tokens:F,pos:0,setInput:function(){},lex:function(){if(this.pos>=this.tokens.length)return 1;let w=this.tokens[this.pos++],A=w[1];if(w.data)A=new String(A),Object.assign(A,w.data);return this.text=A,this.loc=w.loc,this.line=w.loc?.r,G=w.loc,w[0]}};let Q;try{Q=z1.parse(u)}catch(w){if(/\?\s*\([^)]*\?[^)]*:[^)]*\)\s*:/.test(u)||/\?\s+\w+\s+\?\s+/.test(u))throw new Z1("Nested ternary operators are not supported",{code:"E_PARSE",source:u,file:this.options.filename,suggestion:"Use if/else statements instead.",phase:"parser"});let A=C1(w,u,this.options.filename);if(A.phase==="parser"&&G)A.line=G.r??A.line,A.column=G.c??A.column,A.length=G.n||1;throw A}if(this.options.showSExpr)console.log(X1(Q,0,!0)),console.log();let z=null;if(this.options.sourceMap){let w=(this.options.filename||"output")+".js",A=this.options.filename||"input.rip";z=new H2(w,A,u)}let J=new Y1({dataSection:_,source:u,filename:this.options.filename,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:z}),X=J.compile(Q),K=z?z.toJSON():null,D=z?z.toReverseMap():null;if(K&&this.options.sourceMap==="inline"){let w=typeof Buffer<"u"?Buffer.from(K).toString("base64"):btoa(K);X+=`
|
|
1969
|
+
//# sourceMappingURL=data:application/json;base64,${w}`}else if(K&&this.options.filename)X+=`
|
|
1970
|
+
//# sourceMappingURL=${this.options.filename}.js.map`;if(Z)Y=Q2(Z,Q,u);return{tokens:F,sexpr:Q,code:X,dts:Y,map:K,reverseMap:D,data:_,reactiveVars:J.reactiveVars}}compileToJS(u){return this.compile(u).code}compileToSExpr(u){return this.compile(u).sexpr}}Y3(Y1,K1);Y1.prototype.emitEnum=i2;n1(null,Y1);function t1(u,U={}){return new x1(U).compile(u)}function M1(u,U={}){return new x1(U).compileToJS(u)}function l1(){return`globalThis.abort ??= (msg) => { if (msg) console.error(msg); process.exit(1); };
|
|
728
1971
|
globalThis.assert ??= (v, msg) => { if (!v) throw new Error(msg || "Assertion failed"); };
|
|
729
1972
|
globalThis.exit ??= (code) => process.exit(code || 0);
|
|
730
1973
|
globalThis.kind ??= (v) => v != null ? (v.constructor?.name || Object.prototype.toString.call(v).slice(8, -1)).toLowerCase() : String(v);
|
|
@@ -737,17 +1980,17 @@ globalThis.sleep ??= (ms) => new Promise(r => setTimeout(r, ms));
|
|
|
737
1980
|
globalThis.todo ??= (msg) => { throw new Error(msg || "Not implemented"); };
|
|
738
1981
|
globalThis.warn ??= console.warn;
|
|
739
1982
|
globalThis.zip ??= (...a) => a[0].map((_, i) => a.map(b => b[i]));
|
|
740
|
-
`}function
|
|
741
|
-
`}catch(
|
|
742
|
-
${
|
|
743
|
-
})()`)}catch(
|
|
744
|
-
`),
|
|
745
|
-
${
|
|
746
|
-
${
|
|
747
|
-
})()`),document.body.classList.add("ready")}catch(
|
|
748
|
-
${
|
|
749
|
-
})()`)}catch(
|
|
750
|
-
`,
|
|
751
|
-
${w}`).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(w){console.error(P1(w,{source:f,color:!1}));return}}if(typeof globalThis<"u")globalThis.rip=n2,globalThis.importRip=I1,globalThis.compileToJS=Q1,globalThis.__ripExports={compile:k1,compileToJS:Q1,formatSExpr:Z1,getStdlibCode:h1,VERSION:m2,BUILD_DATE:k2,getReactiveRuntime:b1,getComponentRuntime:j1};if(typeof document<"u")globalThis.__ripScriptsReady=new Promise((f)=>{let w=()=>i2().then(f);if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",()=>queueMicrotask(w));else queueMicrotask(w)});var p1={};O2(p1,{throttle:()=>y4,stash:()=>R3,setContext:()=>J3,raw:()=>Q2,persistStash:()=>O3,launch:()=>v4,isStash:()=>h4,hold:()=>c4,hasContext:()=>Q3,getContext:()=>Z3,delay:()=>q3,debounce:()=>j4,createRouter:()=>I3,createResource:()=>b4,createRenderer:()=>B3,createComponents:()=>P3});var d2,Y2,K2,L1,M1,d1,p2,B1,U1,o2,a2,X2,r2,s2,T1,A1,t2,e2,u3,f3,$3,w3,_3,U3,G2,c1,v1,J2,F3,W3,i1,n1,A3,Y3,G3,Z2,z2,Z3,z3,M2,Q3,y1,D2,K3,X3,J3,M3,D3,H2,H3;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,_)=>f.map((U)=>U[_]));({__state:U1,__effect:B1,__batch:p2}=globalThis.__rip);({setContext:J3,getContext:Z3,hasContext:Q3}=globalThis.__ripComponent||{});d1=Symbol("stash");M1=Symbol("signals");L1=Symbol("raw");Y2=Symbol("persisted");K2=new WeakMap;G2=0;J2=U1(0);M2=function(f,w){let _;if(!f[M1])Object.defineProperty(f,M1,{value:new Map,enumerable:!1});if(_=f[M1].get(w),!_)_=U1(f[w]),f[M1].set(w,_);return _};y1=function(f){return M2(f,Symbol.for("keys"))};H3=function(f){let w;if(!(f!=null&&typeof f==="object"))return f;if(f[d1])return f;if(f instanceof Date||f instanceof RegExp||f instanceof Map||f instanceof Set||f instanceof Promise)return f;if(w=K2.get(f),w)return w;return D2(f)};D2=function(f){let w,_;return _=null,w={get:function(U,u){let $,W;if(u===d1)return!0;if(u===L1)return U;if(typeof u==="symbol")return Reflect.get(U,u);if(u==="length"&&Array.isArray(U))return y1(U).value,U.length;if(u==="get")return function(F){return M3(_,F)};if(u==="set")return function(F,A){return D3(_,F,A)};if($=M2(U,u),W=$.value,W!=null&&typeof W==="object")return H3(W);return W},set:function(U,u,$){let W,F;if(W=U[u],F=$?.[L1]?$[L1]:$,F===W)return!0;if(U[u]=F,U[M1]?.has(u))U[M1].get(u).value=F;if(W===void 0&&F!==void 0)y1(U).value=++G2;return J2.value++,!0},deleteProperty:function(U,u){let $;if(delete U[u],$=U[M1]?.get(u),$!=null)$.value=void 0;return y1(U).value=++G2,!0},ownKeys:function(U){return y1(U).value,Reflect.ownKeys(U)}},_=new Proxy(f,w),K2.set(f,_),_};d2=/([./][^./\[\s]+|\[[-+]?\d+\]|\[(?:"[^"]+"|'[^']+')\])/;H2=function(f){let w,_,U,u,$;U=("."+f).split(d2),U.shift(),$=[],_=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));_+=2}return $};M3=function(f,w){let _,U;U=H2(w),_=f;for(let u of U){if(_==null)return;_=_[u]}return _};D3=function(f,w,_){let U,u;u=H2(w),U=f;for(let $=0;$<u.length;$++){let W=u[$];if($===u.length-1)U[W]=_;else{if(U[W]==null)U[W]={};U=U[W]}}return _};var R3=function(f={}){return D2(f)},Q2=function(f){return f?.[L1]?f[L1]:f},h4=function(f){return f?.[d1]===!0},O3=function(f,w={}){let _,U,u,$,W,F;if(F=Q2(f)||f,F[Y2])return;F[Y2]=!0,$=w.local?localStorage:sessionStorage,W=w.key||"__rip_app";try{if(U=$.getItem(W),U){u=JSON.parse(U);for(let A in u){let G=u[A];f.data[A]=G}}}catch{}return _=function(){return(()=>{try{return $.setItem(W,JSON.stringify(Q2(f.data)))}catch{return null}})()},B1(function(){let A;return J2.value,A=setTimeout(_,2000),function(){return clearTimeout(A)}}),window.addEventListener("beforeunload",_)},b4=function(f,w={}){let _,U,u,$,W;if(_=U1(w.initial||null),u=U1(!1),U=U1(null),$=async function(){let F;return u.value=!0,U.value=null,await(async()=>{try{return F=await f(),_.value=F}catch(A){return U.value=A}finally{u.value=!1}})()},W={data:void 0,loading:void 0,error:void 0,refetch:$},Object.defineProperty(W,"data",{get:function(){return _.value}}),Object.defineProperty(W,"loading",{get:function(){return u.value}}),Object.defineProperty(W,"error",{get:function(){return U.value}}),!w.lazy)$();return W};v1=function(f){return typeof f==="function"?f:function(){return f.value}};c1=function(f,w){let _;return _={read:function(){return f.read()}},Object.defineProperty(_,"value",{get:function(){return f.value},set:function(U){return w.value=U}}),_};var q3=function(f,w){let _,U;return _=v1(w),U=U1(!!_()),B1(function(){let u;if(_())return u=setTimeout(function(){return U.value=!0},f),function(){return clearTimeout(u)};else return U.value=!1}),typeof w!=="function"?c1(U,w):U},j4=function(f,w){let _,U;return _=v1(w),U=U1(_()),B1(function(){let u,$;return $=_(),u=setTimeout(function(){return U.value=$},f),function(){return clearTimeout(u)}}),typeof w!=="function"?c1(U,w):U},y4=function(f,w){let _,U,u;return _=v1(w),u=U1(_()),U=0,B1(function(){let $,W,F,A;if(A=_(),$=Date.now(),W=f-($-U),W<=0)return u.value=A,U=$;else return F=setTimeout(function(){return u.value=_(),U=Date.now()},W),function(){return clearTimeout(F)}}),typeof w!=="function"?c1(u,w):u},c4=function(f,w){let _,U;return _=v1(w),U=U1(!!_()),B1(function(){let u;if(_())return U.value=!0;else return u=setTimeout(function(){return U.value=!1},f),function(){return clearTimeout(u)}}),typeof w!=="function"?c1(U,w):U},P3=function(){let f,w,_,U;return w=new Map,U=[],f=new Map,_=function(u,$){for(let W of U)W(u,$)},{read:function(u){return w.get(u)},write:function(u,$){let W;return W=!w.has(u),w.set(u,$),f.delete(u),_(W?"create":"change",u)},del:function(u){return w.delete(u),f.delete(u),_("delete",u)},exists:function(u){return w.has(u)},size:function(){return w.size},list:function(u=""){let $,W,F;F=[],$=u?u+"/":"";for(let[A]of w)if(A.startsWith($)){if(W=A.slice($.length),W.includes("/"))continue;F.push(A)}return F},listAll:function(u=""){let $,W;W=[],$=u?u+"/":"";for(let[F]of w)if(F.startsWith($))W.push(F);return W},load:function(u){for(let $ in u){let W=u[$];w.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,$)}}};G3=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};X3=function(f){let w,_;return w=[],_=f.replace(/\*(\w+)/g,function(U,u){return w.push(u),"(.+)"}).replace(/:(\w+)/g,function(U,u){return w.push(u),"([^/]+)"}),{regex:new RegExp("^"+_+"$"),names:w}};K3=function(f,w){let _,U;for(let u of w)if(_=f.match(u.regex.regex),_){U={};for(let $=0;$<u.regex.names.length;$++){let W=u.regex.names[$];U[W]=decodeURIComponent(_[$+1])}return{route:u,params:U}}return null};i1=function(f,w="components"){let _,U,u,$,W,F,A,G,Y;A=[],u=new Map,_=f.listAll(w);for(let Z of _){if(F=Z.slice(w.length+1),!F.endsWith(".rip"))continue;if($=F.split("/").pop(),$==="_layout.rip"){U=F==="_layout.rip"?"":F.slice(0,-12),u.set(U,Z);continue}if($.startsWith("_"))continue;if(G=F.split("/"),G.length>1&&G.some(function(Q,K){return K<G.length-1&&Q.startsWith("_")}))continue;Y=G3(F),W=X3(Y),A.push({pattern:Y,regex:W,file:Z,rel:F})}return A.sort(function(Z,Q){let K,D,H,J;if(D=(Z.pattern.match(/:/g)||[]).length,J=(Q.pattern.match(/:/g)||[]).length,K=Z.pattern.includes("*")?1:0,H=Q.pattern.includes("*")?1:0,K!==H)return K-H;if(D!==J)return D-J;return Z.pattern.localeCompare(Q.pattern)}),{routes:A,layouts:u}};z3=function(f,w,_){let U,u,$,W;if(U=[],$=f.slice(w.length+1),W=$.split("/"),u="",_.has(""))U.push(_.get(""));for(let F=0;F<W.length;F++){let A=W[F];if(F===W.length-1)break;if(u=u?u+"/"+A:A,_.has(u))U.push(_.get(u))}return U};var I3=function(f,w={}){let _,U,u,$,W,F,A,G,Y,Z,Q,K,D,H,J,z,q,R,X,B,I;if(q=w.root||"components",Y=w.base||"",Z=w.hash||!1,D=w.onError||null,X=function(O){return Y&&O.startsWith(Y)?O.slice(Y.length)||"/":O},G=function(O){return Y?Y+O:O},J=function(){let O;if(Z){if(O=location.hash.slice(1),!O)return"/";return O[0]==="/"?O:"/"+O}else return location.pathname+location.search+location.hash},I=function(O){return Z?O==="/"?location.pathname:"#"+O.slice(1):G(O)},W=U1(X(Z?J():location.pathname)),$=U1({}),A=U1(null),U=U1([]),F=U1({}),_=U1(""),u=q3(100,U1(!1)),B=i1(f,q),Q=new Set,f.watch(function(O,M){if(!M.startsWith(q+"/"))return;return B=i1(f,q)}),z=function(O){let M,P,E,S,N;if(S=O.split("?")[0].split("#")[0],P=X(S),P=P[0]==="/"?P:"/"+P,E=O.split("?")[1]?.split("#")[0]||"",M=O.includes("#")?O.split("#")[1]:"",N=K3(P,B.routes),N){p2(function(){return W.value=P,$.value=N.params,A.value=N.route,U.value=z3(N.route.file,q,B.layouts),F.value=Object.fromEntries(new URLSearchParams(E)),_.value=M});for(let L of Q)L(R.current);return!0}if(D)D({status:404,path:P});return!1},H=function(){return z(J())},typeof window<"u")window.addEventListener("popstate",H);if(K=function(O){let M,P,E;if(O.button!==0||O.metaKey||O.ctrlKey||O.shiftKey||O.altKey)return;P=O.target;while(P&&P.tagName!=="A")P=P.parentElement;if(!P?.href)return;if(E=new URL(P.href,location.origin),E.origin!==location.origin)return;if(P.target==="_blank"||P.hasAttribute("data-external"))return;return O.preventDefault(),M=Z&&E.hash?E.hash.slice(1)||"/":E.pathname+E.search+E.hash,R.push(M)},typeof document<"u")document.addEventListener("click",K);return R={push:function(O){return z(O)?history.pushState(null,"",I(W.read())):void 0},replace:function(O){return z(O)?history.replaceState(null,"",I(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(O){return Q.add(O),function(){return Q.delete(O)}},rebuild:function(){return B=i1(f,q)},routes:void 0,init:function(){return z(J()),R},destroy:function(){if(typeof window<"u")window.removeEventListener("popstate",H);if(typeof document<"u")document.removeEventListener("click",K);return Q.clear()}},Object.defineProperty(R,"current",{get:function(){return{path:W.value,params:$.value,route:A.value,layouts:U.value,query:F.value,hash:_.value}}}),Object.defineProperty(R,"path",{get:function(){return W.value}}),Object.defineProperty(R,"params",{get:function(){return $.value}}),Object.defineProperty(R,"route",{get:function(){return A.value}}),Object.defineProperty(R,"layouts",{get:function(){return U.value}}),Object.defineProperty(R,"query",{get:function(){return F.value}}),Object.defineProperty(R,"hash",{get:function(){return _.value}}),Object.defineProperty(R,"navigating",{get:function(){return u.value},set:function(O){return u.value=O}}),Object.defineProperty(R,"routes",{get:function(){return B.routes}}),R};F3=function(f,w){if(f.length!==w.length)return!1;for(let _=0;_<f.length;_++)if(f[_]!==w[_])return!1;return!0};z2=function(f){for(let w in f){let _=f[w];if(typeof _==="function"&&(_.prototype?.mount||_.prototype?._create))return _}return typeof f.default==="function"?f.default:void 0};Z2=function(f){let w;w={};for(let _ in f){let U=f[_];if(typeof U==="function"&&(U.prototype?.mount||U.prototype?._create))w[_]=U}return w};Y3=function(f){let w;return w=f.split("/").pop().replace(/\.rip$/,""),w.replace(/(^|[-_])([a-z])/g,function(_,U,u){return u.toUpperCase()})};W3=function(f,w="components"){let _,U,u;U={};for(let $ of f.listAll(w)){if(!$.endsWith(".rip"))continue;if(_=$.split("/").pop(),_.startsWith("_"))continue;if(u=Y3($),U[u])console.warn(`[Rip] Component name collision: ${u} (${U[u]} vs ${$})`);U[u]=$}return U};n1=async function(f,w,_=null,U=null,u=null){let $,W,F,A,G,Y,Z,Q,K,D,H,J;if(_&&U){if(W=_.getCompiled(U),W)return W}if(Z=w(f),u){D={};for(let z in u.map){let q=u.map[z];if(q!==U&&Z.includes(`new ${z}(`)){if(!u.classes[z]){if(A=_.read(q),A){F=await n1(A,w,_,q,u),G=Z2(F);for(let R in G){let X=G[R];u.classes[R]=X}}}if(u.classes[z])D[z]=!0}}if(K=Object.keys(D),K.length>0)H=`const {${K.join(", ")}} = globalThis['${u.key}'];
|
|
752
|
-
`,
|
|
753
|
-
`:"",$=new Blob([Y+Z],{type:"application/javascript"}),J=URL.createObjectURL($),Q=await import(J),u){G=Z2(Q);for(let z in G){let q=G[z];u.classes[z]=q}}if(_&&U)_.setCompiled(U,Q);return Q};var B3=function(f={}){let w,_,U,u,$,W,F,A,G,Y,Z,Q,K,D,H,J,z,q,R,X,B,I;if({router:X,app:w,components:$,resolver:R,compile:U,target:B,onError:z}=f,W=typeof B==="string"?document.querySelector(B):B||document.getElementById("app"),!W)W=document.createElement("div"),W.id="app",document.body.appendChild(W);return W.style.opacity="0",F=null,Y=null,G=null,A=[],K=[],H=W,Q=0,Z=null,u=new Map,D=f.cacheSize||10,_=function(){let O,M;if(F&&Y){if(F.beforeUnmount)F.beforeUnmount();if(u.set(Y,F),u.size>D){if(M=u.keys().next().value,O=u.get(M),O.unmounted)O.unmounted();u.delete(M)}return F=null,Y=null}},I=function(){_();for(let O=K.length-1;O>=0;O--){let M=K[O];if(M.beforeUnmount)M.beforeUnmount();if(M.unmounted)M.unmounted();M._target?.remove()}return K=[],H=W},$.watch(function(O,M){let P;if(u.has(M)){if(P=u.get(M),P.unmounted)P.unmounted();return u.delete(M)}}),J=async function(O){let M,P,E,S,N,L,j,T,s,V,C,y,x,r,f1,h,c,g,l,t,e,v;if({route:l,params:h,layouts:T,query:g}=O,!l)return;if(l.file===Y&&JSON.stringify(h)===JSON.stringify(G))return;return G=h,S=++Q,X.navigating=!0,await(async()=>{try{if(e=$.read(l.file),!e){if(z)z({status:404,message:`File not found: ${l.file}`});X.navigating=!1;return}if(y=await n1(e,U,$,l.file,R),S!==Q){X.navigating=!1;return}if(M=z2(y),!M){if(z)z({status:500,message:`No component found in ${l.file}`});X.navigating=!1;return}if(C=!F3(T,A),r=F?._target,C)I();else _();if(x=C?W:H,C&&T.length>0){W.innerHTML="",x=W;for(let k of T){if(V=$.read(k),!V)continue;if(s=await n1(V,U,$,k,R),S!==Q){X.navigating=!1;return}if(P=z2(s),!P)continue;if(L=new P({app:w,params:h,router:X}),L.beforeMount)L.beforeMount();v=document.createElement("div"),v.setAttribute("data-layout",k),x.appendChild(v),L.mount(v),K.push(L),t=v.querySelector("#content")||v,x=t}A=[...T],H=x}else if(C)W.innerHTML="",A=[],H=W;if(E=u.get(l.file),E){if(u.delete(l.file),x.appendChild(E._target),F=E,Y=l.file,h)E.params=h;if(g)E.query=g;if(E.mounted)E.mounted();if(E.load)await E.load(h,g)}else{if(f1=document.createElement("div"),f1.setAttribute("data-component",l.file),x.appendChild(f1),j=new M({app:w,params:h,query:g,router:X}),j.beforeMount)j.beforeMount();if(j.mount(f1),F=j,Y=l.file,j.load)await j.load(h,g)}return r?.remove(),X.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(k){if(X.navigating=!1,W.style.opacity="1",console.error(`Renderer: error mounting ${l.file}:`,k),z)z({status:500,message:k.message,error:k});N=!1;for(let o=K.length-1;o>=0;o--){let a=K[o];if(a.onError)try{a.onError(k),N=!0;break}catch(b){console.error("Renderer: error boundary failed:",b)}}return(()=>{if(!N)return c=document.createElement("pre"),c.style.cssText="color:red;padding:1em",c.textContent=k.stack||k.message,W.innerHTML="",W.appendChild(c)})()}})()},q={start:function(){return Z=B1(function(){let O;return O=X.current,O.route?J(O):void 0}),X.init(),q},stop:function(){if(I(),Z)Z(),Z=null;return W.innerHTML=""},remount:function(){let O;return O=X.current,O.route?J(O):void 0},cache:u},q};A3=function(f){let w,_,U;return U=1000,_=30000,w=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(w,U),U=Math.min(U*2,_)}},w()};var v4=async function(f="",w={}){let _,U,u,$,W,F,A,G,Y,Z,Q,K,D,H,J,z,q;if(globalThis.__ripLaunched=!0,typeof f==="object")w=f,f="";if(f=f.replace(/\/+$/,""),q=w.target||"#app",F=w.compile||null,K=w.persist||!1,Z=w.hash||!1,!F)F=globalThis?.compileToJS||null;if(typeof document<"u"&&!document.querySelector(q))A=document.createElement("div"),A.id=q.replace(/^#/,""),document.body.prepend(A);if(w.bundle)u=w.bundle;else if(w.bundleUrl){if(Q={},Y=`__rip_etag_${w.bundleUrl}`,$=sessionStorage.getItem(Y),$)Q["If-None-Match"]=$;if(H=await fetch(w.bundleUrl,{headers:Q}),H.status===304)u=JSON.parse(sessionStorage.getItem(`${Y}_data`));else if(H.ok){if(u=await H.json(),G=H.headers.get("etag"),G)sessionStorage.setItem(Y,G),sessionStorage.setItem(`${Y}_data`,JSON.stringify(u))}else throw Error(`launch: ${w.bundleUrl} (${H.status})`)}else throw Error("launch: no bundle or bundleUrl provided");if(_=R3({components:{},routes:{},data:{}}),globalThis.__ripApp=_,u.data)_.data=u.data;if(u.routes)_.routes=u.routes;if(K&&typeof sessionStorage<"u")O3(_,{local:K==="local",key:`__rip_${f}`});if(U=P3(),u.components)U.load(u.components);if(W=`__rip_${f.replace(/\//g,"_")||"app"}`,J={map:W3(U),classes:{},key:W},typeof globalThis<"u")globalThis[W]=J.classes;if(_.data.title&&typeof document<"u")document.title=_.data.title;if(z=I3(U,{root:"components",base:f,hash:Z,onError:function(R){return console.error(`[Rip] Error ${R.status}: ${R.message||R.path}`)}}),D=B3({router:z,app:_,components:U,resolver:J,compile:F,target:q,onError:function(R){return console.error(`[Rip] ${R.message}`,R.error)}}),D.start(),u.data?.watch)A3(`${f}/watch`);if(typeof window<"u")window.app=_,window.__RIP__={app:_,components:U,router:z,renderer:D,cache:D.cache,version:"0.3.0"};return{app:_,components:U,router:z,renderer:D}};A1=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;r2=function(f,w){if(f.isComposing)return;return(()=>{switch(f.key){case"ArrowDown":return A1(f,w.next);case"ArrowUp":return A1(f,w.prev);case"Home":case"PageUp":return A1(f,w.first);case"End":case"PageDown":return A1(f,w.last);case"Enter":case" ":return A1(f,w.select);case"Escape":return A1(f,w.dismiss);case"Tab":return w.tab?.();default:return f.key.length===1?w.char?.(f.key):void 0}})()};t2=function(f,w,_,U=[],u=null){let $,W,F;if(!f)return;return $=function(A){return typeof A==="function"?A():A},W=(A)=>{return![$(w),...U.map($)].some(function(G){return G?.contains(A.target)})?_():void 0},F=(A)=>{if($(w)?.contains(A.target))return;return u?u():_()},document.addEventListener("mousedown",W),window.addEventListener("scroll",F,!0),function(){return document.removeEventListener("mousedown",W),window.removeEventListener("scroll",F,!0)}};e2=function(f=250){let w;return w=0,{block:function(_=f){return w=Date.now()+_},canOpen:function(){return Date.now()>=w}}};a2=function(f,w,_,U=null){let u,$,W,F,A,G,Y,Z,Q,K,D;if(F=function(H){return typeof H==="function"?H():H},u=function(){let H,J;if(H=document.activeElement,H&&H!==document.body)return H;if(J=globalThis.__ariaLastFocusedEl,J?.isConnected!==!1)return J;return null},W=F(w),!W)return;if(!Object.hasOwn(HTMLElement.prototype,"togglePopover"))return;if(Y=null,D=function(H){if(H){W.hidden=!1;try{W.inert=!1}catch{}return W.removeAttribute("aria-hidden")}else{try{W.inert=!0}catch{}return W.setAttribute("aria-hidden","true"),W.hidden=!0}},Z=function(){let H,J;if(J=Y,Y=null,!J?.focus)return;return H=function(z=6){if(J.isConnected===!1)return;try{J.focus({preventScroll:!0})}catch{J.focus()}if(document.activeElement===J||z<=1)return;return setTimeout(function(){return H(z-1)},16)},requestAnimationFrame(function(){return H()})},A=function(H){let J;if(J=H.newState==="open",J)Y=F(U)||u(),D(!0);else D(!1),Z();return _?.(J)},W.addEventListener("toggle",A),Q=W.matches(":popover-open"),$=!!f,Q!==$){if(K=F(U),$)Y=K||u(),D(!0);G=K&&$?{force:$,source:K}:{force:$};try{W.togglePopover(G)}catch{}}else D($);return function(){return W.removeEventListener("toggle",A)}};o2=function(f,w,_,U=!0){let u,$,W,F,A,G,Y,Z;if(W=function(Q){return typeof Q==="function"?Q():Q},u=function(){let Q,K;if(Q=document.activeElement,Q&&Q!==document.body)return Q;if(K=globalThis.__ariaLastFocusedEl,K?.isConnected!==!1)return K;return null},$=W(w),!$?.showModal)return;if(G=null,Z=function(Q){if(Q){$.hidden=!1;try{$.inert=!1}catch{}return $.removeAttribute("aria-hidden")}else{try{$.inert=!0}catch{}return $.setAttribute("aria-hidden","true"),$.hidden=!0}},Y=function(){let Q,K;if(K=G,G=null,!K?.focus)return;return Q=function(D=6){if(K.isConnected===!1)return;try{K.focus({preventScroll:!0})}catch{K.focus()}if(document.activeElement===K||D<=1)return;return setTimeout(function(){return Q(D-1)},16)},requestAnimationFrame(function(){return Q()})},F=function(Q){if(!U){Q.preventDefault();return}return _?.(!1)},A=function(){return _?.(!1),Z(!1),Y()},$.addEventListener("cancel",F),$.addEventListener("close",A),f&&!$.open){if(!G)G=u();Z(!0);try{$.showModal()}catch{}}else if(!f&&$.open)$.close();else Z(!!f);return function(){return $.removeEventListener("cancel",F),$.removeEventListener("close",A)}};$3=function(f,w,_="vertical"){let U,u;if(f.isComposing)return;return u=_!=="horizontal",U=_!=="vertical",(()=>{switch(f.key){case"ArrowDown":return u?A1(f,w.next):void 0;case"ArrowUp":return u?A1(f,w.prev):void 0;case"ArrowRight":return U?A1(f,w.next):void 0;case"ArrowLeft":return U?A1(f,w.prev):void 0;case"Home":case"PageUp":return A1(f,w.first);case"End":case"PageDown":return A1(f,w.last);case"Enter":case" ":return A1(f,w.select);case"Escape":return A1(f,w.dismiss);default:return f.key.length===1?w.char?.(f.key):void 0}})()};f3=function(f,w,_=4,U=!0){let u,$;if(!(f&&w))return;if($=f.getBoundingClientRect(),w.style.position="fixed",w.style.left=`${$.left}px`,w.style.top=`${$.bottom+_}px`,w.style.minWidth=`${$.width}px`,u=w.getBoundingClientRect(),u.bottom>window.innerHeight)w.style.top=`${$.top-u.height-_}px`;if(u.right>window.innerWidth)w.style.left=`${window.innerWidth-u.width-_}px`;return U?w.style.visibility="visible":void 0};var g4='a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),[tabindex]:not([tabindex="-1"])';w3=function(f){let w;return w=function(_){let U,u,$;if(_.key!=="Tab")return;if($=Array.from(f.querySelectorAll(g4)).filter(function(W){return W.offsetParent!==null}),!$.length)return;return U=$[0],u=$[$.length-1],_.shiftKey?document.activeElement===U?(_.preventDefault(),u.focus()):void 0:document.activeElement===u?(_.preventDefault(),U.focus()):void 0},f.addEventListener("keydown",w),function(){return f.removeEventListener("keydown",w)}};U3=function(f,w){let _,U;if(!f)return;if(U=f.querySelector("h1,h2,h3,h4,h5,h6"),U)U.id??=`${w}-title`,f.setAttribute("aria-labelledby",U.id);if(_=f.querySelector("p"),_)return _.id??=`${w}-desc`,f.setAttribute("aria-describedby",_.id)};T1=[];s2=function(f){let w;if(w=window.scrollY,T1.push({instance:f,scrollY:w}),T1.length===1)return document.body.style.position="fixed",document.body.style.top=`-${w}px`,document.body.style.width="100%"};_3=function(f){let w,_;if(w=T1.findIndex(function(U){return U.instance===f}),w<0)return;if({scrollY:_}=T1.splice(w,1)[0],!T1.length)return document.body.style.position="",document.body.style.top="",document.body.style.width="",window.scrollTo(0,_)};X2=function(){let f,w,_;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),_=w.getBoundingClientRect(),f.remove(),w.remove(),_.top>50}catch{return!1}})()}();u3=function(f,w,_={}){let U,u,$,W,F,A,G;if(!(f&&w))return;if(F=_.placement??"bottom start",W=_.offset??4,u=_.matchWidth??!1,X2){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=F,w.style.positionTry="flip-block, flip-inline, flip-block flip-inline",w.style.positionVisibility="anchors-visible",[G]=F.split(" "),w.style.marginTop="",w.style.marginBottom="",w.style.marginLeft="",w.style.marginRight="",G){case"bottom":w.style.marginTop=`${W}px`;break;case"top":w.style.marginBottom=`${W}px`;break;case"left":w.style.marginRight=`${W}px`;break;case"right":w.style.marginLeft=`${W}px`;break}return u?w.style.minWidth="anchor-size(width)":void 0}else{switch(A=f.getBoundingClientRect(),w.style.position="fixed",w.style.inset="auto",w.style.margin="0",[G,U]=F.split(" "),U??="start",G){case"bottom":w.style.top=`${A.bottom+W}px`;break;case"top":w.style.bottom=`${window.innerHeight-A.top+W}px`;break;case"left":w.style.right=`${window.innerWidth-A.left+W}px`;break;case"right":w.style.left=`${A.right+W}px`;break}if(Array.isArray(["bottom","top"])?["bottom","top"].includes(G):(G in["bottom","top"]))switch(U){case"start":w.style.left=`${A.left}px`;break;case"center":w.style.left=`${A.left+A.width/2}px`,w.style.transform="translateX(-50%)";break;case"end":w.style.right=`${window.innerWidth-A.right}px`;break}else switch(U){case"start":w.style.top=`${A.top}px`;break;case"center":w.style.top=`${A.top+A.height/2}px`,w.style.transform="translateY(-50%)";break;case"end":w.style.bottom=`${window.innerHeight-A.bottom}px`;break}return u?w.style.minWidth=`${A.width}px`:void 0}};globalThis.__aria??={listNav:r2,rovingNav:$3,popupDismiss:t2,popupGuard:e2,bindPopover:a2,bindDialog:o2,positionBelow:f3,trapFocus:w3,wireAria:U3,lockScroll:s2,unlockScroll:_3,position:u3,hasAnchor:X2};globalThis.ARIA??=globalThis.__aria;I1.modules["ui.rip"]=p1;for(let[f,w]of Object.entries(p1))if(typeof w==="function")globalThis[f]=w;})();
|
|
1983
|
+
`}function m1(){return new Y1({}).getReactiveRuntime()}function k1(){return new Y1({}).getComponentRuntime()}var F3="3.14.0",Z3="2026-04-20@09:13:03GMT";if(typeof globalThis<"u"){if(!globalThis.__rip)Function(m1())();if(!globalThis.__ripComponent)Function(k1())()}var d5=(u)=>{let U=u.match(/^[ \t]*(?=\S)/gm),_=Math.min(...(U||[]).map((W)=>W.length));return u.replace(RegExp(`^[ ]{${_}}`,"gm"),"").trim()};async function G3(){let u=[],U=document.querySelector('script[src$="rip.min.js"], script[src$="rip.js"]'),_=U?.getAttribute("data-src");if(_){for(let W of _.trim().split(/\s+/))if(W)u.push({url:W})}for(let W of document.querySelectorAll('script[type="text/rip"]'))if(W.src)u.push({url:W.src});else{let f=d5(W.textContent);if(f)u.push({code:f})}if(u.length>0){let W=await Promise.allSettled(u.map(async(Z)=>{if(!Z.url)return;let G=await fetch(Z.url);if(!G.ok)throw Error(`${Z.url} (${G.status})`);if(Z.url.endsWith(".rip"))Z.code=await G.text();else{let Q=await G.json();Z.bundle=Q}}));for(let Z of W)if(Z.status==="rejected")console.warn("Rip: fetch failed:",Z.reason.message);let f=[],$=[];for(let Z of u)if(Z.bundle)f.push(Z.bundle);else if(Z.code)$.push(Z);let F=U?.getAttribute("data-router");if(F!=null&&f.length>0){let Z={skipRuntimes:!0,skipExports:!0,skipImports:!0};if($.length>0){let Q="";for(let z of $)try{Q+=M1(z.code,Z)+`
|
|
1984
|
+
`}catch(J){console.error(B1(J,{source:z.code,file:z.url||"inline",color:!1}))}if(Q)try{await(0,eval)(`(async()=>{
|
|
1985
|
+
${Q}
|
|
1986
|
+
})()`)}catch(z){console.error("Rip runtime error:",z)}}let G=I1.modules?.["ui.rip"];if(G?.launch){let Q=f[f.length-1],z=U.getAttribute("data-persist"),J={bundle:Q,hash:F==="hash"};if(z!=null)J.persist=z==="local"?"local":!0;await G.launch("",J)}}else{let Z=[];for(let z of f){for(let[J,X]of Object.entries(z.components||{}))Z.push({code:X,url:J});if(z.data){let J=U?.getAttribute("data-state"),X={};if(J)try{X=JSON.parse(J)}catch{}Object.assign(X,z.data),U?.setAttribute("data-state",JSON.stringify(X))}}Z.push(...$);let G={skipRuntimes:!0,skipExports:!0,skipImports:!0},Q=[];for(let z of Z){if(!z.code)continue;try{let J=M1(z.code,G);Q.push({js:J,url:z.url||"inline"})}catch(J){console.error(B1(J,{source:z.code,file:z.url||"inline",color:!1}))}}if(!globalThis.__ripApp&&U){let z=globalThis.stash;if(z){let J={},X=U.getAttribute("data-state");if(X)try{J=JSON.parse(X)}catch(w){console.error("Rip: invalid data-state JSON:",w.message)}let K=z({data:J});if(globalThis.__ripApp=K,typeof window<"u")window.app=K;let D=U.getAttribute("data-persist");if(D!=null&&globalThis.persistStash)globalThis.persistStash(K,{local:D==="local"})}}if(Q.length>0){let z=Q.map((X)=>X.js).join(`
|
|
1987
|
+
`),J=U?.getAttribute("data-mount");if(J){let X=U.getAttribute("data-target")||"body";z+=`
|
|
1988
|
+
${J}.mount(${JSON.stringify(X)});`}try{await(0,eval)(`(async()=>{
|
|
1989
|
+
${z}
|
|
1990
|
+
})()`),document.body.classList.add("ready")}catch(X){if(X instanceof SyntaxError){console.error(`Rip syntax error in combined output: ${X.message}`);for(let K of Q)try{Function(`(async()=>{
|
|
1991
|
+
${K.js}
|
|
1992
|
+
})()`)}catch(D){console.error(` → source: ${K.url}`,D.message)}}else console.error("Rip runtime error:",X)}}}}if(U?.hasAttribute("data-reload")&&!globalThis.__ripLaunched){let W=!1,f=1000,$=30000,F=()=>{let Y=new EventSource("/watch");Y.addEventListener("connected",()=>{if(f=1000,W)location.reload();W=!0}),Y.addEventListener("reload",(Z)=>{if(Z.data==="styles"){let G=Date.now(),Q=0;if(document.querySelectorAll('link[rel="stylesheet"]').forEach((z)=>{if(new URL(z.href).origin!==location.origin)return;let J=new URL(z.href);J.searchParams.set("_r",G),z.href=J.toString(),Q++}),!Q)location.reload()}else location.reload()}),Y.onerror=()=>{Y.close(),setTimeout(F,f),f=Math.min(f*2,$)}};F()}}async function I1(u){for(let[F,Y]of Object.entries(I1.modules))if(u.includes(F))return Y;let U=await fetch(u).then((F)=>{if(!F.ok)throw Error(`importRip: ${u} (${F.status})`);return F.text()}),_=M1(U),W=`// ${u}
|
|
1993
|
+
`,f=new Blob([W+_],{type:"application/javascript"});return await import(URL.createObjectURL(f))}I1.modules={};function Q3(u){try{let U=u.replace(/^/gm," "),W=M1(`do ->
|
|
1994
|
+
${U}`).replace(/^let\s+[^;]+;\s*\n\s*/m,"");W=W.replace(/^const\s+(\w+)\s*=/gm,"globalThis.$1 =");let f=(0,eval)(W);if(f&&typeof f.then==="function")return f.then(($)=>{if($!==void 0)globalThis._=$;return $});if(f!==void 0)globalThis._=f;return f}catch(U){console.error(B1(U,{source:u,color:!1}));return}}if(typeof globalThis<"u")globalThis.rip=Q3,globalThis.importRip=I1,globalThis.compileToJS=M1,globalThis.__ripExports={compile:t1,compileToJS:M1,formatSExpr:X1,getStdlibCode:l1,VERSION:F3,BUILD_DATE:Z3,getReactiveRuntime:m1,getComponentRuntime:k1};if(typeof document<"u")globalThis.__ripScriptsReady=new Promise((u)=>{let U=()=>G3().then(u);if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",()=>queueMicrotask(U));else queueMicrotask(U)});var f2={};C2(f2,{throttle:()=>a5,stash:()=>x3,setContext:()=>v3,raw:()=>y1,persistStash:()=>l3,launch:()=>s5,isStash:()=>p5,hold:()=>r5,hasContext:()=>T3,getContext:()=>V3,delay:()=>m3,debounce:()=>o5,createRouter:()=>i3,createResource:()=>n5,createRenderer:()=>d3,createComponents:()=>k3});var O2,z3,I2,A3,S2,E1,F1,J3,X3,N2,w3,K3,j1,G1,M3,H3,D3,O3,q3,R3,P3,B3,Q1,q2,d1,p1,u2,I3,S3,e1,i1,N3,E3,L3,R2,P2,V3,C3,E2,T3,j3,B2,N1,L2,b3,h3,b1,y3,v3,S1,g3,T1,h1,c3;globalThis.abort??=(u)=>{if(u)console.error(u);process.exit(1)};globalThis.assert??=(u,U)=>{if(!u)throw Error(U||"Assertion failed")};globalThis.exit??=(u)=>process.exit(u||0);globalThis.kind??=(u)=>u!=null?(u.constructor?.name||Object.prototype.toString.call(u).slice(8,-1)).toLowerCase():String(u);globalThis.noop??=()=>{};globalThis.p??=console.log;globalThis.pp??=(u)=>{return console.log(JSON.stringify(u,null,2)),u};globalThis.raise??=(u,U)=>{throw U!==void 0?new u(U):Error(u)};globalThis.rand??=(u,U)=>U!==void 0?(u>U&&([u,U]=[U,u]),Math.floor(Math.random()*(U-u+1)+u)):u?Math.floor(Math.random()*u):Math.random();globalThis.sleep??=(u)=>new Promise((U)=>setTimeout(U,u));globalThis.todo??=(u)=>{throw Error(u||"Not implemented")};globalThis.warn??=console.warn;globalThis.zip??=(...u)=>u[0].map((U,_)=>u.map((W)=>W[_]));({__state:F1,__effect:E1,__batch:S2}=globalThis.__rip);({setContext:v3,getContext:V3,hasContext:T3}=globalThis.__ripComponent||{});I2=new WeakMap;O2=new WeakMap;q2=0;u2=F1(0);Q1=0;B2=function(u){return typeof u==="string"&&(u.indexOf(".")!==-1||u.indexOf("/")!==-1||u.indexOf("[")!==-1)};j3=function(u){return/^-?\d+$/.test(u)};E2=function(u,U){let _;if(!u[Symbol.for("signals")])Object.defineProperty(u,Symbol.for("signals"),{value:new Map,enumerable:!1});if(_=u[Symbol.for("signals")].get(U),!_)_=F1(u[U]),u[Symbol.for("signals")].set(U,_);return _};N1=function(u){return E2(u,Symbol.for("keys"))};c3=function(u){let U;if(!(u!=null&&typeof u==="object"))return u;if(u[Symbol.for("stash")])return u;if(u instanceof Date||u instanceof RegExp||u instanceof Map||u instanceof Set||u instanceof Promise)return u;if(U=I2.get(u),U)return U;return L2(u)};L2=function(u){let U,_;return _=null,U={get:function(W,f){let $,F,Y;if(f===Symbol.for("stash"))return!0;if(f===Symbol.for("raw"))return W;if(typeof f==="symbol")return Reflect.get(W,f);if(f==="length"&&Array.isArray(W))return N1(W).value,W.length;if(!Q1&&B2(f))return S1(_,f);if($=g3(_,f),$)return $;if(F=E2(W,f),Y=F.value,Y!=null&&typeof Y==="object")return c3(Y);return Y},set:function(W,f,$){let F,Y;if(!Q1&&B2(f))return T1(_,f,$),!0;if(F=W[f],Y=$?.[Symbol.for("raw")]?$[Symbol.for("raw")]:$,Y===F)return!0;if(W[f]=Y,W[Symbol.for("signals")]?.has(f))W[Symbol.for("signals")].get(f).value=Y;if(F===void 0&&Y!==void 0)N1(W).value=++q2;return u2.value++,!0},deleteProperty:function(W,f){let $;if(delete W[f],$=W[Symbol.for("signals")]?.get(f),$!=null)$.value=void 0;return N1(W).value=++q2,u2.value++,!0},ownKeys:function(W){return N1(W).value,Reflect.ownKeys(W)}},_=new Proxy(u,U),I2.set(u,_),_};z3=/([./][^./\[\s]+|\[[-+]?\d+\]|\[(?:"[^"]+"|'[^']+')\])/;h1=function(u){let U,_,W,f,$;W=("."+u).split(z3),W.shift(),$=[],_=0;while(_<W.length){if(f=W[_],U=f[0],U==="."||U==="/")$.push(f.slice(1));else if(U==="[")if(f[1]==='"'||f[1]==="'")$.push(f.slice(2,-2));else $.push(+f.slice(1,-1));_+=2}return $};b1=function(u,U){let _;if(typeof u==="number"&&u<0){if(_=y1(U),Array.isArray(_))return _.length+u}return u};S1=function(u,U){let _,W;return W=h1(U),_=u,Q1++,(()=>{try{for(let f of W){if(_==null)return;_=_[b1(f,_)]}return _}finally{Q1--}})()};T1=function(u,U,_){let W,f,$,F;return F=h1(U),$=u,Q1++,(()=>{try{for(let Y=0;Y<F.length;Y++){let Z=F[Y];if(W=b1(Z,$),Y===F.length-1)$[W]=_;else{if($[W]==null)f=F[Y+1],$[W]=typeof f==="number"||j3(f)?[]:{};$=$[W]}}return _}finally{Q1--}})()};A3={inc:!0,dec:!0,flip:!0,join:!0,keys:!0,has:!0,del:!0};g3=function(u,U){let _,W;if(!A3[U])return;if(_=O2.get(u),!_)_={},O2.set(u,_);if(_[U])return _[U];return W=(()=>{switch(U){case"inc":return function(f,$=1){let F;return F=S1(u,f)??0,T1(u,f,F+$)};case"dec":return function(f,$=1){let F;return F=S1(u,f)??0,T1(u,f,F-$)};case"flip":return function(f){let $;return $=S1(u,f)??!1,T1(u,f,!$)};case"join":return function(f,$){return S2(function(){let F;if(F=S1(u,f),!(F!=null&&typeof F==="object"))T1(u,f,{}),F=S1(u,f);return Q1++,(()=>{try{return(()=>{let Y=[];for(let Z in $){let G=$[Z];Y.push(F[Z]=G)}return Y})()}finally{Q1--}})()})};case"keys":return function(f){let $,F,Y;return Q1++,(()=>{try{F=h1(f),$=u;for(let Z of F){if($==null)return[];$=$[b1(Z,$)]}if(!($!=null&&typeof $==="object"))return[];return Y=y1($),N1(Y).value,Object.keys(Y)}finally{Q1--}})()};case"has":return function(f){let $,F,Y,Z;return Q1++,(()=>{try{if(Y=h1(f),!(Y.length>0))return!1;F=u;for(let G=0;G<Y.length;G++){let Q=Y[G];if($=b1(Q,F),G===Y.length-1)return Z=y1(F),N1(Z).value,Object.prototype.hasOwnProperty.call(Z,$);if(F==null)return!1;F=F[$]}return!1}finally{Q1--}})()};case"del":return function(f){let $,F,Y;return Q1++,(()=>{try{if(Y=h1(f),!(Y.length>0))return;return F=u,(()=>{let Z=[];for(let G=0;G<Y.length;G++){let Q=Y[G];if($=b1(Q,F),G===Y.length-1){delete F[$];return}if(F==null)return;Z.push(F=F[$])}return Z})()}finally{Q1--}})()}}})(),_[U]=W,W};var x3=function(u={}){return L2(u)},y1=function(u){return u?.[Symbol.for("raw")]?u[Symbol.for("raw")]:u},p5=function(u){return u?.[Symbol.for("stash")]===!0},l3=function(u,U={}){let _,W,f,$,F,Y;if(Y=y1(u)||u,Y[Symbol.for("persisted")])return;Y[Symbol.for("persisted")]=!0,$=U.local?localStorage:sessionStorage,F=U.key||"__rip_app";try{if(W=$.getItem(F),W){f=JSON.parse(W);for(let Z in f){let G=f[Z];u.data[Z]=G}}}catch{}return _=function(){return(()=>{try{return $.setItem(F,JSON.stringify(y1(u.data)))}catch{return null}})()},E1(function(){let Z;return u2.value,Z=setTimeout(_,2000),function(){return clearTimeout(Z)}}),window.addEventListener("beforeunload",_)},n5=function(u,U={}){let _,W,f,$,F;if(_=F1(U.initial||null),f=F1(!1),W=F1(null),$=async function(){let Y;return f.value=!0,W.value=null,await(async()=>{try{return Y=await u(),_.value=Y}catch(Z){return W.value=Z}finally{f.value=!1}})()},F={data:void 0,loading:void 0,error:void 0,refetch:$},Object.defineProperty(F,"data",{get:function(){return _.value}}),Object.defineProperty(F,"loading",{get:function(){return f.value}}),Object.defineProperty(F,"error",{get:function(){return W.value}}),!U.lazy)$();return F};p1=function(u){return typeof u==="function"?u:function(){return u.value}};d1=function(u,U){let _;return _={read:function(){return u.read()}},Object.defineProperty(_,"value",{get:function(){return u.value},set:function(W){return U.value=W}}),_};var m3=function(u,U){let _,W;return _=p1(U),W=F1(!!_()),E1(function(){let f;if(_())return f=setTimeout(function(){return W.value=!0},u),function(){return clearTimeout(f)};else return W.value=!1}),typeof U!=="function"?d1(W,U):W},o5=function(u,U){let _,W;return _=p1(U),W=F1(_()),E1(function(){let f,$;return $=_(),f=setTimeout(function(){return W.value=$},u),function(){return clearTimeout(f)}}),typeof U!=="function"?d1(W,U):W},a5=function(u,U){let _,W,f;return _=p1(U),f=F1(_()),W=0,E1(function(){let $,F,Y,Z;if(Z=_(),$=Date.now(),F=u-($-W),F<=0)return f.value=Z,W=$;else return Y=setTimeout(function(){return f.value=_(),W=Date.now()},F),function(){return clearTimeout(Y)}}),typeof U!=="function"?d1(f,U):f},r5=function(u,U){let _,W;return _=p1(U),W=F1(!!_()),E1(function(){let f;if(_())return W.value=!0;else return f=setTimeout(function(){return W.value=!1},u),function(){return clearTimeout(f)}}),typeof U!=="function"?d1(W,U):W},k3=function(){let u,U,_,W;return U=new Map,W=[],u=new Map,_=function(f,$){for(let F of W)F(f,$)},{read:function(f){return U.get(f)},write:function(f,$){let F;return F=!U.has(f),U.set(f,$),u.delete(f),_(F?"create":"change",f)},del:function(f){return U.delete(f),u.delete(f),_("delete",f)},exists:function(f){return U.has(f)},size:function(){return U.size},list:function(f=""){let $,F,Y;Y=[],$=f?f+"/":"";for(let[Z]of U)if(Z.startsWith($)){if(F=Z.slice($.length),F.includes("/"))continue;Y.push(Z)}return Y},listAll:function(f=""){let $,F;F=[],$=f?f+"/":"";for(let[Y]of U)if(Y.startsWith($))F.push(Y);return F},load:function(f){for(let $ in f){let F=f[$];U.set($,F)}},watch:function(f){return W.push(f),function(){return W.splice(W.indexOf(f),1)}},getCompiled:function(f){return u.get(f)},setCompiled:function(f,$){return u.set(f,$)}}};L3=function(u){let U;if(U=u.replace(/\.rip$/,""),U=U.replace(/\[\.\.\.(\w+)\]/g,"*$1"),U=U.replace(/\[(\w+)\]/g,":$1"),U==="index")return"/";return U=U.replace(/\/index$/,""),"/"+U};h3=function(u){let U,_;return U=[],_=u.replace(/\*(\w+)/g,function(W,f){return U.push(f),"(.+)"}).replace(/:(\w+)/g,function(W,f){return U.push(f),"([^/]+)"}),{regex:new RegExp("^"+_+"$"),names:U}};b3=function(u,U){let _,W;for(let f of U)if(_=u.match(f.regex.regex),_){W={};for(let $=0;$<f.regex.names.length;$++){let F=f.regex.names[$];W[F]=decodeURIComponent(_[$+1])}return{route:f,params:W}}return null};e1=function(u,U="components"){let _,W,f,$,F,Y,Z,G,Q;Z=[],f=new Map,_=u.listAll(U);for(let z of _){if(Y=z.slice(U.length+1),!Y.endsWith(".rip"))continue;if($=Y.split("/").pop(),$==="_layout.rip"){W=Y==="_layout.rip"?"":Y.slice(0,-12),f.set(W,z);continue}if($.startsWith("_"))continue;if(G=Y.split("/"),G.length>1&&G.some(function(J,X){return X<G.length-1&&J.startsWith("_")}))continue;Q=L3(Y),F=h3(Q),Z.push({pattern:Q,regex:F,file:z,rel:Y})}return Z.sort(function(z,J){let X,K,D,w;if(K=(z.pattern.match(/:/g)||[]).length,w=(J.pattern.match(/:/g)||[]).length,X=z.pattern.includes("*")?1:0,D=J.pattern.includes("*")?1:0,X!==D)return X-D;if(K!==w)return K-w;return z.pattern.localeCompare(J.pattern)}),{routes:Z,layouts:f}};C3=function(u,U,_){let W,f,$,F;if(W=[],$=u.slice(U.length+1),F=$.split("/"),f="",_.has(""))W.push(_.get(""));for(let Y=0;Y<F.length;Y++){let Z=F[Y];if(Y===F.length-1)break;if(f=f?f+"/"+Z:Z,_.has(f))W.push(_.get(f))}return W};var i3=function(u,U={}){let _,W,f,$,F,Y,Z,G,Q,z,J,X,K,D,w,A,R,O,P,q,B;if(R=U.root||"components",Q=U.base||"",z=U.hash||!1,K=U.onError||null,P=function(M){return Q&&M.startsWith(Q)?M.slice(Q.length)||"/":M},G=function(M){return Q?Q+M:M},w=function(){let M;if(z){if(M=location.hash.slice(1),!M)return"/";return M[0]==="/"?M:"/"+M}else return location.pathname+location.search+location.hash},B=function(M){return z?M==="/"?location.pathname:"#"+M.slice(1):G(M)},F=F1(P(z?w():location.pathname)),$=F1({}),Z=F1(null),W=F1([]),Y=F1({}),_=F1(""),f=m3(100,F1(!1)),q=e1(u,R),J=new Set,u.watch(function(M,I){if(!I.startsWith(R+"/"))return;return q=e1(u,R)}),A=function(M){let I,H,S,N,V;if(N=M.split("?")[0].split("#")[0],H=P(N),H=H[0]==="/"?H:"/"+H,S=M.split("?")[1]?.split("#")[0]||"",I=M.includes("#")?M.split("#")[1]:"",V=b3(H,q.routes),V){S2(function(){return F.value=H,$.value=V.params,Z.value=V.route,W.value=C3(V.route.file,R,q.layouts),Y.value=Object.fromEntries(new URLSearchParams(S)),_.value=I});for(let L of J)L(O.current);return!0}if(K)K({status:404,path:H});return!1},D=function(){return A(w())},typeof window<"u")window.addEventListener("popstate",D);if(X=function(M){let I,H,S;if(M.button!==0||M.metaKey||M.ctrlKey||M.shiftKey||M.altKey)return;H=M.target;while(H&&H.tagName!=="A")H=H.parentElement;if(!H?.href)return;if(S=new URL(H.href,location.origin),S.origin!==location.origin)return;if(H.target==="_blank"||H.hasAttribute("data-external"))return;return M.preventDefault(),I=z&&S.hash?S.hash.slice(1)||"/":S.pathname+S.search+S.hash,O.push(I)},typeof document<"u")document.addEventListener("click",X);return O={push:function(M){return A(M)?history.pushState(null,"",B(F.read())):void 0},replace:function(M){return A(M)?history.replaceState(null,"",B(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(M){return J.add(M),function(){return J.delete(M)}},rebuild:function(){return q=e1(u,R)},routes:void 0,init:function(){return A(w()),O},destroy:function(){if(typeof window<"u")window.removeEventListener("popstate",D);if(typeof document<"u")document.removeEventListener("click",X);return J.clear()}},Object.defineProperty(O,"current",{get:function(){return{path:F.value,params:$.value,route:Z.value,layouts:W.value,query:Y.value,hash:_.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 Z.value}}),Object.defineProperty(O,"layouts",{get:function(){return W.value}}),Object.defineProperty(O,"query",{get:function(){return Y.value}}),Object.defineProperty(O,"hash",{get:function(){return _.value}}),Object.defineProperty(O,"navigating",{get:function(){return f.value},set:function(M){return f.value=M}}),Object.defineProperty(O,"routes",{get:function(){return q.routes}}),O};I3=function(u,U){if(u.length!==U.length)return!1;for(let _=0;_<u.length;_++)if(u[_]!==U[_])return!1;return!0};P2=function(u){for(let U in u){let _=u[U];if(typeof _==="function"&&(_.prototype?.mount||_.prototype?._create))return _}return typeof u.default==="function"?u.default:void 0};R2=function(u){let U;U={};for(let _ in u){let W=u[_];if(typeof W==="function"&&(W.prototype?.mount||W.prototype?._create))U[_]=W}return U};E3=function(u){let U;return U=u.split("/").pop().replace(/\.rip$/,""),U.replace(/(^|[-_])([a-z])/g,function(_,W,f){return f.toUpperCase()})};S3=function(u,U="components"){let _,W,f;W={};for(let $ of u.listAll(U)){if(!$.endsWith(".rip"))continue;if(_=$.split("/").pop(),_.startsWith("_"))continue;if(f=E3($),W[f])console.warn(`[Rip] Component name collision: ${f} (${W[f]} vs ${$})`);W[f]=$}return W};y3=function(u,U,_){let W,f,$,F;if($=u.replace(/^(\.\.\/|\.\/)+/,""),W=$.split("/").pop(),U){F=U.split("/"),F.pop();for(let Y of u.split("/"))if(Y==="..")F.pop();else if(Y!==".")F.push(Y);if(f=F.join("/"),_.exists(f))return f}if(_.exists(`components/_lib/${$}`))return`components/_lib/${$}`;if(_.exists(`components/${$}`))return`components/${$}`;for(let Y of _.listAll("components"))if(Y.endsWith(`/${W}`))return Y;return null};i1=async function(u,U,_=null,W=null,f=null){let $,F,Y,Z,G,Q,z,J,X,K,D,w,A,R,O,P,q,B,M,I,H,S,N,V;if(_&&W){if(Y=_.getCompiled(W),Y)return Y}if(f&&W)f.compiling??={},f.compiling[W]=!0;if(K=U(u),f){if(X=new Set,_){H=/^(\s*import\s+(?:\{([^}]+)\}\s+from\s+|.*?\s+from\s+)?['"])([^'"]*\.rip)(['"];?\s*)$/gm,D=Array.from(K.matchAll(H));for(let L=D.length-1;L>=0;L--){let C=D[L];if([z,B,R,S,q]=C,N=y3(S,W,_),N===W)continue;if(!N){if(A=`[Rip] Could not resolve import: ${S}`,W)A+=` (from ${W})`;console.warn(A);continue}if(!f.blobUrls?.[N]){if(f.compiling?.[N])continue;if(G=_.read(N),G)await i1(G,U,_,N,f)}if(F=f.blobUrls?.[N],F){if(I=`${B}${F}${q}`,K=K.slice(0,C.index)+I+K.slice(C.index+z.length),R)for(let E of R.split(","))X.add(E.trim().split(/\s+as\s+/).pop().trim())}}}P={};for(let L in f.map){let C=f.map[L];if(X.has(L))continue;if(C!==W&&K.includes(`new ${L}(`)){if(!f.classes[L]){if(G=_.read(C),G){Z=await i1(G,U,_,C,f),Q=R2(Z);for(let E in Q){let n=Q[E];f.classes[E]=n}}}if(f.classes[L])P[L]=!0}}if(O=Object.keys(P),O.length>0)M=`const {${O.join(", ")}} = globalThis['${f.key}'];
|
|
1995
|
+
`,K=M+K}if(J=W?`// ${W}
|
|
1996
|
+
`:"",$=new Blob([J+K],{type:"application/javascript"}),V=URL.createObjectURL($),f&&W){if(f.blobUrls??={},f.blobUrls[W]=V,f.compiling)delete f.compiling[W]}if(w=await import(V),f){Q=R2(w);for(let L in Q){let C=Q[L];f.classes[L]=C}}if(_&&W)_.setCompiled(W,w);return w};var d3=function(u={}){let U,_,W,f,$,F,Y,Z,G,Q,z,J,X,K,D,w,A,R,O,P,q,B;if({router:P,app:U,components:$,resolver:O,compile:W,target:q,onError:A}=u,F=typeof q==="string"?document.querySelector(q):q||document.getElementById("app"),!F)F=document.createElement("div"),F.id="app",document.body.appendChild(F);return Y=null,Q=null,G=null,Z=[],X=[],D=F,J=0,z=null,f=new Map,K=u.cacheSize||10,_=function(){let M,I;if(Y&&Q){if(Y.beforeUnmount)Y.beforeUnmount();if(f.set(Q,Y),f.size>K){if(I=f.keys().next().value,M=f.get(I),M.unmounted)M.unmounted();f.delete(I)}return Y=null,Q=null}},B=function(){_();for(let M=X.length-1;M>=0;M--){let I=X[M];if(I.beforeUnmount)I.beforeUnmount();if(I.unmounted)I.unmounted();I._target?.remove()}return X=[],D=F},$.watch(function(M,I){let H;if(f.has(I)){if(H=f.get(I),H.unmounted)H.unmounted();return f.delete(I)}}),w=async function(M){let I,H,S,N,V,L,C,E,n,T,j,y,m,t,$1,b,g,x,l,e,u1,c;if({route:l,params:b,layouts:E,query:x}=M,!l)return;if(l.file===Q&&JSON.stringify(b)===JSON.stringify(G))return;return G=b,N=++J,P.navigating=!0,await(async()=>{try{if(u1=$.read(l.file),!u1){if(A)A({status:404,message:`File not found: ${l.file}`});P.navigating=!1;return}if(y=await i1(u1,W,$,l.file,O),N!==J){P.navigating=!1;return}if(I=P2(y),!I){if(A)A({status:500,message:`No component found in ${l.file}`});P.navigating=!1;return}if(j=!I3(E,Z),t=Y?._target,j)B();else _();if(m=j?F:D,j&&E.length>0){F.innerHTML="",m=F;for(let i of E){if(T=$.read(i),!T)continue;if(n=await i1(T,W,$,i,O),N!==J){P.navigating=!1;return}if(H=P2(n),!H)continue;if(L=new H({app:U,params:b,router:P}),L.beforeMount)L.beforeMount();c=document.createElement("div"),c.setAttribute("data-layout",i),m.appendChild(c),L.mount(c),X.push(L),e=c.querySelector("#content")||c,m=e}Z=[...E],D=m}else if(j)F.innerHTML="",Z=[],D=F;if(S=f.get(l.file),S){if(f.delete(l.file),m.appendChild(S._target),Y=S,Q=l.file,b)S.params=b;if(x)S.query=x;if(S.mounted)S.mounted();if(S.load)await S.load(b,x)}else{if($1=document.createElement("div"),$1.setAttribute("data-component",l.file),m.appendChild($1),C=new I({app:U,params:b,query:x,router:P}),C.beforeMount)C.beforeMount();if(C.mount($1),Y=C,Q=l.file,C.load)await C.load(b,x)}return t?.remove(),P.navigating=!1}catch(i){if(P.navigating=!1,console.error(`Renderer: error mounting ${l.file}:`,i),A)A({status:500,message:i.message,error:i});V=!1;for(let r=X.length-1;r>=0;r--){let s=X[r];if(s.onError)try{s.onError(i),V=!0;break}catch(h){console.error("Renderer: error boundary failed:",h)}}return(()=>{if(!V)return g=document.createElement("pre"),g.style.cssText="color:red;padding:1em",g.textContent=i.stack||i.message,F.innerHTML="",F.appendChild(g)})()}})()},R={start:function(){return z=E1(function(){let M;return M=P.current,M.route?w(M):void 0}),P.init(),R},stop:function(){if(B(),z)z(),z=null;return F.innerHTML=""},remount:function(){let M;return M=P.current,M.route?w(M):void 0},cache:f},R};N3=function(u){let U,_,W;return W=1000,_=30000,U=function(){let f;return f=new EventSource(u),f.addEventListener("connected",function(){return W=1000,console.log("[Rip] Hot reload connected")}),f.addEventListener("reload",function(){return console.log("[Rip] Reloading..."),location.reload()}),f.addEventListener("css",function(){for(let $ of document.querySelectorAll('link[rel="stylesheet"]'))u=new URL($.href),u.searchParams.set("_t",Date.now()),$.href=u.toString()}),f.onerror=function(){return f.close(),setTimeout(U,W),W=Math.min(W*2,_)}},U()};var s5=async function(u="",U={}){let _,W,f,$,F,Y,Z,G,Q,z,J,X,K,D,w,A,R;if(globalThis.__ripLaunched=!0,typeof u==="object")U=u,u="";if(u=u.replace(/\/+$/,""),R=U.target||"#app",Y=U.compile||null,X=U.persist||!1,z=U.hash||!1,!Y)Y=globalThis?.compileToJS||null;if(typeof document<"u"&&!document.querySelector(R))Z=document.createElement("div"),Z.id=R.replace(/^#/,""),document.body.prepend(Z);if(U.bundle)f=U.bundle;else if(U.bundleUrl){if(J={},Q=`__rip_etag_${U.bundleUrl}`,$=sessionStorage.getItem(Q),$)J["If-None-Match"]=$;if(D=await fetch(U.bundleUrl,{headers:J}),D.status===304)f=JSON.parse(sessionStorage.getItem(`${Q}_data`));else if(D.ok){if(f=await D.json(),G=D.headers.get("etag"),G)sessionStorage.setItem(Q,G),sessionStorage.setItem(`${Q}_data`,JSON.stringify(f))}else throw Error(`launch: ${U.bundleUrl} (${D.status})`)}else throw Error("launch: no bundle or bundleUrl provided");if(_=x3({components:{},routes:{},data:{}}),globalThis.__ripApp=_,f.data)_.data=f.data;if(f.routes)_.routes=f.routes;if(X&&typeof sessionStorage<"u")l3(_,{local:X==="local",key:`__rip_${u}`});if(W=k3(),f.components)W.load(f.components);if(F=`__rip_${u.replace(/\//g,"_")||"app"}`,w={map:S3(W),classes:{},key:F},typeof globalThis<"u")globalThis[F]=w.classes;if(_.data.title&&typeof document<"u")document.title=_.data.title;if(A=i3(W,{root:"components",base:u,hash:z,onError:function(O){return console.error(`[Rip] Error ${O.status}: ${O.message||O.path}`)}}),K=d3({router:A,app:_,components:W,resolver:w,compile:Y,target:R,onError:function(O){return console.error(`[Rip] ${O.message}`,O.error)}}),K.start(),f.data?.watch)N3(`${u}/watch`);if(typeof window<"u")window.app=_,window.__RIP__={app:_,components:W,router:A,renderer:K,cache:K.cache,version:"0.3.0"};return{app:_,components:W,router:A,renderer:K}};G1=function(u,U){if(!U)return;return u.preventDefault(),u.stopPropagation(),U()};globalThis.__ariaLastFocusedEl??=null;if(typeof document<"u"&&!globalThis.__ariaFocusTrackerBound)document.addEventListener("focusin",function(u){return globalThis.__ariaLastFocusedEl=u.target},!0),globalThis.__ariaFocusTrackerBound=!0;w3=function(u,U){if(u.isComposing)return;return(()=>{switch(u.key){case"ArrowDown":return G1(u,U.next);case"ArrowUp":return G1(u,U.prev);case"Home":case"PageUp":return G1(u,U.first);case"End":case"PageDown":return G1(u,U.last);case"Enter":case" ":return G1(u,U.select);case"Escape":return G1(u,U.dismiss);case"Tab":return U.tab?.();default:return u.key.length===1?U.char?.(u.key):void 0}})()};M3=function(u,U,_,W=[],f=null){let $,F,Y;if(!u)return;return $=function(Z){return typeof Z==="function"?Z():Z},F=(Z)=>{return![$(U),...W.map($)].some(function(G){return G?.contains(Z.target)})?_():void 0},Y=(Z)=>{if($(U)?.contains(Z.target))return;return f?f():_()},document.addEventListener("mousedown",F),window.addEventListener("scroll",Y,!0),function(){return document.removeEventListener("mousedown",F),window.removeEventListener("scroll",Y,!0)}};H3=function(u=250){let U;return U=0,{block:function(_=u){return U=Date.now()+_},canOpen:function(){return Date.now()>=U}}};X3=function(u,U,_,W=null){let f,$,F,Y,Z,G,Q,z,J,X,K;if(Y=function(D){return typeof D==="function"?D():D},f=function(){let D,w;if(D=document.activeElement,D&&D!==document.body)return D;if(w=globalThis.__ariaLastFocusedEl,w?.isConnected!==!1)return w;return null},F=Y(U),!F)return;if(!Object.hasOwn(HTMLElement.prototype,"togglePopover"))return;if(Q=null,K=function(D){if(D){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 D,w;if(w=Q,Q=null,!w?.focus)return;return D=function(A=6){if(w.isConnected===!1)return;try{w.focus({preventScroll:!0})}catch{w.focus()}if(document.activeElement===w||A<=1)return;return setTimeout(function(){return D(A-1)},16)},requestAnimationFrame(function(){return D()})},Z=function(D){let w;if(w=D.newState==="open",w)Q=Y(W)||f(),K(!0);else K(!1),z();return _?.(w)},F.addEventListener("toggle",Z),J=F.matches(":popover-open"),$=!!u,J!==$){if(X=Y(W),$)Q=X||f(),K(!0);G=X&&$?{force:$,source:X}:{force:$};try{F.togglePopover(G)}catch{}}else K($);return function(){return F.removeEventListener("toggle",Z)}};J3=function(u,U,_,W=!0){let f,$,F,Y,Z,G,Q,z;if(F=function(J){return typeof J==="function"?J():J},f=function(){let J,X;if(J=document.activeElement,J&&J!==document.body)return J;if(X=globalThis.__ariaLastFocusedEl,X?.isConnected!==!1)return X;return null},$=F(U),!$?.showModal)return;if(G=null,z=function(J){if(J){$.hidden=!1;try{$.inert=!1}catch{}return $.removeAttribute("aria-hidden")}else{try{$.inert=!0}catch{}return $.setAttribute("aria-hidden","true"),$.hidden=!0}},Q=function(){let J,X;if(X=G,G=null,!X?.focus)return;return J=function(K=6){if(X.isConnected===!1)return;try{X.focus({preventScroll:!0})}catch{X.focus()}if(document.activeElement===X||K<=1)return;return setTimeout(function(){return J(K-1)},16)},requestAnimationFrame(function(){return J()})},Y=function(J){if(!W){J.preventDefault();return}return _?.(!1)},Z=function(){return _?.(!1),z(!1),Q()},$.addEventListener("cancel",Y),$.addEventListener("close",Z),u&&!$.open){if(!G)G=f();z(!0);try{$.showModal()}catch{}}else if(!u&&$.open)$.close();else z(!!u);return function(){return $.removeEventListener("cancel",Y),$.removeEventListener("close",Z)}};q3=function(u,U,_="vertical"){let W,f;if(u.isComposing)return;return f=_!=="horizontal",W=_!=="vertical",(()=>{switch(u.key){case"ArrowDown":return f?G1(u,U.next):void 0;case"ArrowUp":return f?G1(u,U.prev):void 0;case"ArrowRight":return W?G1(u,U.next):void 0;case"ArrowLeft":return W?G1(u,U.prev):void 0;case"Home":case"PageUp":return G1(u,U.first);case"End":case"PageDown":return G1(u,U.last);case"Enter":case" ":return G1(u,U.select);case"Escape":return G1(u,U.dismiss);default:return u.key.length===1?U.char?.(u.key):void 0}})()};O3=function(u,U,_=4,W=!0){let f,$;if(!(u&&U))return;if($=u.getBoundingClientRect(),U.style.position="fixed",U.style.left=`${$.left}px`,U.style.top=`${$.bottom+_}px`,U.style.minWidth=`${$.width}px`,f=U.getBoundingClientRect(),f.bottom>window.innerHeight)U.style.top=`${$.top-f.height-_}px`;if(f.right>window.innerWidth)U.style.left=`${window.innerWidth-f.width-_}px`;return W?U.style.visibility="visible":void 0};var t5='a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),[tabindex]:not([tabindex="-1"])';R3=function(u){let U;return U=function(_){let W,f,$;if(_.key!=="Tab")return;if($=Array.from(u.querySelectorAll(t5)).filter(function(F){return F.offsetParent!==null}),!$.length)return;return W=$[0],f=$[$.length-1],_.shiftKey?document.activeElement===W?(_.preventDefault(),f.focus()):void 0:document.activeElement===f?(_.preventDefault(),W.focus()):void 0},u.addEventListener("keydown",U),function(){return u.removeEventListener("keydown",U)}};B3=function(u,U){let _,W;if(!u)return;if(W=u.querySelector("h1,h2,h3,h4,h5,h6"),W)W.id??=`${U}-title`,u.setAttribute("aria-labelledby",W.id);if(_=u.querySelector("p"),_)return _.id??=`${U}-desc`,u.setAttribute("aria-describedby",_.id)};j1=[];K3=function(u){let U;if(U=window.scrollY,j1.push({instance:u,scrollY:U}),j1.length===1)return document.body.style.position="fixed",document.body.style.top=`-${U}px`,document.body.style.width="100%"};P3=function(u){let U,_;if(U=j1.findIndex(function(W){return W.instance===u}),U<0)return;if({scrollY:_}=j1.splice(U,1)[0],!j1.length)return document.body.style.position="",document.body.style.top="",document.body.style.width="",window.scrollTo(0,_)};N2=function(){let u,U,_;return(()=>{try{if(!document?.createElement)return!1;return u=document.createElement("div"),U=document.createElement("div"),u.style.cssText="position:fixed;top:100px;left:100px;width:10px;height:10px;anchor-name:--probe",U.style.cssText="position:fixed;inset:auto;margin:0;position-anchor:--probe;position-area:bottom start;width:10px;height:10px",document.body.appendChild(u),document.body.appendChild(U),_=U.getBoundingClientRect(),u.remove(),U.remove(),_.top>50}catch{return!1}})()}();D3=function(u,U,_={}){let W,f,$,F,Y,Z,G;if(!(u&&U))return;if(Y=_.placement??"bottom start",F=_.offset??4,f=_.matchWidth??!1,N2){switch($=`--anchor-${U.id||Math.random().toString(36).slice(2,8)}`,u.style.anchorName=$,U.style.positionAnchor=$,U.style.position="fixed",U.style.inset="auto",U.style.margin="0",U.style.positionArea=Y,U.style.positionTry="flip-block, flip-inline, flip-block flip-inline",U.style.positionVisibility="anchors-visible",[G]=Y.split(" "),U.style.marginTop="",U.style.marginBottom="",U.style.marginLeft="",U.style.marginRight="",G){case"bottom":U.style.marginTop=`${F}px`;break;case"top":U.style.marginBottom=`${F}px`;break;case"left":U.style.marginRight=`${F}px`;break;case"right":U.style.marginLeft=`${F}px`;break}return f?U.style.minWidth="anchor-size(width)":void 0}else{switch(Z=u.getBoundingClientRect(),U.style.position="fixed",U.style.inset="auto",U.style.margin="0",[G,W]=Y.split(" "),W??="start",G){case"bottom":U.style.top=`${Z.bottom+F}px`;break;case"top":U.style.bottom=`${window.innerHeight-Z.top+F}px`;break;case"left":U.style.right=`${window.innerWidth-Z.left+F}px`;break;case"right":U.style.left=`${Z.right+F}px`;break}if(Array.isArray(["bottom","top"])?["bottom","top"].includes(G):(G in["bottom","top"]))switch(W){case"start":U.style.left=`${Z.left}px`;break;case"center":U.style.left=`${Z.left+Z.width/2}px`,U.style.transform="translateX(-50%)";break;case"end":U.style.right=`${window.innerWidth-Z.right}px`;break}else switch(W){case"start":U.style.top=`${Z.top}px`;break;case"center":U.style.top=`${Z.top+Z.height/2}px`,U.style.transform="translateY(-50%)";break;case"end":U.style.bottom=`${window.innerHeight-Z.bottom}px`;break}return f?U.style.minWidth=`${Z.width}px`:void 0}};globalThis.__aria??={listNav:w3,rovingNav:q3,popupDismiss:M3,popupGuard:H3,bindPopover:X3,bindDialog:J3,positionBelow:O3,trapFocus:R3,wireAria:B3,lockScroll:K3,unlockScroll:P3,position:D3,hasAnchor:N2};globalThis.ARIA??=globalThis.__aria;I1.modules["ui.rip"]=f2;for(let[u,U]of Object.entries(f2))if(typeof U==="function")globalThis[u]=U;})();
|