@phin-tech/dottie 0.6.2 → 0.6.3
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/PARITY.md +2 -0
- package/dist/compile.js +12 -5
- package/dist/dottie-compile.mjs +13 -6
- package/dist/dottie-player.js +270 -42
- package/dist/dottie-player.min.js +52 -52
- package/dist/dottie.js +270 -42
- package/dist/types/connector.d.ts +6 -6
- package/dist/types/element.d.ts +3 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/model.d.ts +6 -0
- package/dist/types/shapes.d.ts +17 -4
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
/*! dottie.js 0.6.
|
|
2
|
-
"use strict";(()=>{var mn=Object.defineProperty;var Mi=(t,e,n)=>e in t?mn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var Ri=(t,e)=>{for(var n in e)mn(t,n,{get:e[n],enumerable:!0})};var w=(t,e,n)=>Mi(t,typeof e!="symbol"?e+"":e,n);var fn={};Ri(fn,{BOIL_DRAWINGS:()=>ve,BUNDLED_FONTS:()=>Dt,DottieFormatError:()=>Q,DottiePlayer:()=>At,KINDS:()=>yn,KNOWN_FIELDS:()=>gn,MAX_DURATION:()=>xt,MAX_MARCH:()=>Re,Playback:()=>Xt,SUPPORTED_VERSION:()=>Nr,VERSION:()=>Gr,addFonts:()=>ie,allowedURL:()=>ht,black:()=>ct,bounds:()=>et,cameraView:()=>vt,clampFPS:()=>wt,clampMarch:()=>bn,clampTime:()=>O,clear:()=>xn,cloneElement:()=>C,definePlayer:()=>ke,elementIndex:()=>Si,fontFaces:()=>Fe,fontFile:()=>Le,frameTimes:()=>fe,inkOnDark:()=>kn,inspect:()=>Pi,inspectFrame:()=>cn,inspectPage:()=>hn,isAutomaticInk:()=>Se,luminance:()=>Pt,orderedElements:()=>ft,pageIndex:()=>jt,parseDottie:()=>Ft,plan:()=>St,posterTime:()=>at,render:()=>Wr,repeatIsValid:()=>Qt,resolved:()=>H,sameColor:()=>kt,sampleTimes:()=>un,sceneAt:()=>ii,setFontBase:()=>Sn,stableSortBy:()=>qt,still:()=>ni,svg:()=>xe,svgParts:()=>ut,themeNamed:()=>gt,themes:()=>ln,transientElements:()=>ri,usedFonts:()=>ne,webLink:()=>Lt,withRoughness:()=>Jt});var Nr=2,yn=["rectangle","ellipse","diamond","text","connector","freehand","path","note","image","symbol"],Ti=["linear","easeIn","easeOut","easeInOut","hold","spring","bounce","elastic"],gn={file:["version","pages","images"],page:["id","name","layers","elements","theme","guidesX","guidesY","guidesLocked","timeline","symbols"],symbol:["id","name","width","height","layers","elements","timeline","button","params"],layer:["id","name","visible","locked"],rgba:["r","g","b","a"],style:["stroke","fill","fillStyle","strokeWidth","dash","roughness","bowing","fontSize","font","gridSize","opacity","dashOffset"],element:["id","kind","x","y","width","height","style","seed","layerID","text","connector","groupID","points","path","subpaths","evenOdd","rotation","link","url","anchor","click","hover","symbol","playback","offset","args","image","reveal","ports","labelRect","extension"],strokePoint:["x","y"],subpath:["closed","coords"],inlineImage:["data","format"],endpoint:["elementID","port","portIndex","x","y"],extensionRef:["id","shape","version","params"],normalizedPoint:["x","y"],normalizedRect:["x","y","width","height"],connector:["start","end","routing","startHead","endHead"],timeline:["fps","duration","boil","settle","poster","tracks","camera","markers"],track:["element","keys","boil","follow","repeats","march"],keyframe:["t","x","y","width","height","rotation","strokeWidth","stroke","fill","visible","reveal","opacity","ease"],follow:["path","start","end","ease","reverse","orient","laps"],repeat:["start","end","count"],cameraKey:["t","x","y","width","height","ease"],marker:["t","name"],click:["scene","url"],hover:["stroke","fill","opacity"]},xt=3600,Re=1e4,bn=t=>t===void 0||!Number.isFinite(t)||t===0?null:Math.min(Math.max(t,-Re),Re),ve=3,ct={r:.12,g:.12,b:.13,a:1},xn={r:0,g:0,b:0,a:0},kn={r:.93,g:.93,b:.94,a:1},Q=class extends Error{},E=t=>typeof t=="object"&&t!==null&&!Array.isArray(t),R=t=>typeof t=="number"&&Number.isFinite(t)?t:void 0,I=t=>typeof t=="string"?t:void 0,pn=t=>E(t)&&Object.values(t).every(e=>typeof e=="string")?{...t}:null,$=t=>typeof t=="boolean"?t:void 0,W=t=>typeof t=="string"?t.toUpperCase():void 0;function O(t){return Number.isFinite(t)?Math.min(Math.max(t,0),xt):t===1/0?xt:0}function wt(t){return Number.isFinite(t)?Math.min(Math.max(t,1),60):12}function ht(t){let e=t.trim();return!/^(https?:\/\/|mailto:)/i.test(e)||[...e].length<=7||/[\u0000-\u001f\u007f-\u009f]/.test(e)?null:e}function Lt(t){return t?ht(t):null}function bt(t){if(!E(t))return;let e=R(t.r),n=R(t.g),i=R(t.b);if(!(e===void 0||n===void 0||i===void 0))return{r:e,g:n,b:i,a:R(t.a)??1}}var Te=class{constructor(){w(this,"warnings",[]);w(this,"seen",new Set)}warn(e){this.seen.has(e)||(this.seen.add(e),this.warnings.push(e))}fields(e,n){let i=gn[n];for(let r of Object.keys(e))i.includes(r)||this.warn(`Unknown field "${r}" on ${n}, ignored`)}style(e){let n=E(e)?e:{};this.fields(n,"style");let i=I(n.fillStyle)??"solid",r=I(n.dash)??"solid";return["solid","hachure","crossHatch","grid"].includes(i)||this.warn(`Unknown fill style "${i}", drawn solid`),["solid","dashed","dotted"].includes(r)||this.warn(`Unknown dash "${r}", drawn solid`),{stroke:bt(n.stroke)??{...ct},fill:bt(n.fill)??{...xn},fillStyle:["solid","hachure","crossHatch","grid"].includes(i)?i:"solid",strokeWidth:R(n.strokeWidth)??2,dash:["solid","dashed","dotted"].includes(r)?r:"solid",roughness:R(n.roughness)??1,bowing:R(n.bowing)??1,fontSize:R(n.fontSize)??18,font:I(n.font)||null,gridSize:R(n.gridSize)??null,opacity:R(n.opacity)??null,dashOffset:R(n.dashOffset)??null}}endpoint(e){let n=E(e)?e:{},i=I(n.port),r=R(n.portIndex);return{elementID:W(n.elementID)??null,port:i&&["top","right","bottom","left"].includes(i)?i:null,portIndex:r!==void 0&&Number.isInteger(r)&&r>=0?r:null,x:R(n.x)??0,y:R(n.y)??0}}connector(e){if(!E(e))return null;this.fields(e,"connector");let n=(r,o)=>{let s=I(r);return s&&["none","arrow","triangle","dot","bar"].includes(s)?s:o},i=I(e.routing);return{start:this.endpoint(e.start),end:this.endpoint(e.end),routing:i&&["straight","curved","elbow"].includes(i)?i:"straight",startHead:n(e.startHead,"none"),endHead:n(e.endHead,"arrow")}}image(e,n){if(!E(e))return null;let i=I(e.ref);if(i!==void 0)return n[i]??{data:"",format:"png"};let r=I(e.data);return r===void 0?null:this.picture(r,I(e.format))}picture(e,n){return vi.test(e)?{data:e.replace(/\s+/g,""),format:n==="jpeg"?"jpeg":"png"}:(this.warn("Skipped a picture whose data isn't base64"),{data:"",format:"png"})}element(e,n){if(!E(e))return null;this.fields(e,"element");let i=W(e.id),r=I(e.kind),o=W(e.layerID);if(!i||!r||!o)return this.warn("Skipped an element without an id, kind or layer"),null;yn.includes(r)||this.warn(`Unknown element kind "${r}", drawn as a placeholder`);let s=Array.isArray(e.subpaths)?e.subpaths.filter(E).map(l=>({closed:$(l.closed)??!1,coords:Array.isArray(l.coords)?l.coords.filter(a=>typeof a=="number"):[]})):null;return{id:i,kind:r,layerID:o,x:R(e.x)??0,y:R(e.y)??0,width:R(e.width)??0,height:R(e.height)??0,style:this.style(e.style),seed:(R(e.seed)??1)>>>0,text:I(e.text)??null,connector:this.connector(e.connector),groupID:W(e.groupID)??null,points:Array.isArray(e.points)?e.points.filter(E).map(l=>({x:R(l.x)??0,y:R(l.y)??0})):null,path:Array.isArray(e.path)?e.path.filter(l=>typeof l=="number"):null,subpaths:s,evenOdd:$(e.evenOdd)??null,rotation:R(e.rotation)??null,link:W(e.link)??null,url:I(e.url)??null,anchor:I(e.anchor)??null,click:this.click(e.click),hover:this.hover(e.hover),symbol:W(e.symbol)??null,playback:this.playback(e.playback),offset:R(e.offset)??null,args:pn(e.args),image:this.image(e.image,n),reveal:R(e.reveal)??null,ports:Array.isArray(e.ports)?e.ports.map(l=>{let a=E(l)?l:{};return{x:R(a.x)??0,y:R(a.y)??0}}):null,labelRect:this.labelRect(e.labelRect),extension:this.extension(e.extension)}}labelRect(e){return E(e)?(this.fields(e,"normalizedRect"),{x:R(e.x)??0,y:R(e.y)??0,width:R(e.width)??0,height:R(e.height)??0}):null}extension(e){if(!E(e))return null;this.fields(e,"extensionRef");let n=I(e.id),i=I(e.shape),r=I(e.version);if(n===void 0||i===void 0||r===void 0)return this.warn("Skipped an extension without an id, shape or version"),null;let o={};if(E(e.params))for(let[s,l]of Object.entries(e.params))(typeof l=="number"||typeof l=="boolean"||typeof l=="string")&&(o[s]=l);return{id:n,shape:i,version:r,params:o}}click(e){if(!E(e))return null;this.fields(e,"click");let n=I(e.url),i=n===void 0?null:ht(n);return n!==void 0&&i===null&&this.warn("Skipped a click link that isn't http, https or mailto"),{scene:I(e.scene)??null,url:i}}playback(e){let n=I(e);return n===void 0?null:["loop","once","still","click"].includes(n)?n:"loop"}symbol(e,n){if(!E(e))return null;this.fields(e,"symbol");let i=W(e.id);if(!i)return this.warn("Skipped a symbol without an id"),null;let r=s=>{let l=R(s);return Math.max(1,l??100)},o=(Array.isArray(e.layers)?e.layers:[]).filter(E).flatMap(s=>{let l=W(s.id);return l?[{id:l,name:I(s.name)??"",visible:$(s.visible)??!0,locked:$(s.locked)??!1}]:[]});return o.length===0&&o.push({id:`${i}-LAYER`,name:"Layer 1",visible:!0,locked:!1}),{id:i,name:I(e.name)??"Symbol",width:r(e.width),height:r(e.height),layers:o,elements:(Array.isArray(e.elements)?e.elements:[]).map(s=>this.element(s,n)).filter(s=>s!==null),timeline:this.timeline(e.timeline),button:$(e.button)??null,params:pn(e.params)}}hover(e){return E(e)?(this.fields(e,"hover"),{stroke:bt(e.stroke)??null,fill:bt(e.fill)??null,opacity:R(e.opacity)??null}):null}ease(e){let n=I(e);return n===void 0?null:Ti.includes(n)?n:(this.warn(`Unknown ease "${n}", played linear`),null)}keyframe(e){if(!E(e))return null;this.fields(e,"keyframe");let n=R(e.t);if(n===void 0)return null;let i={t:n};for(let a of["x","y","width","height","rotation","strokeWidth","reveal","opacity"]){let h=R(e[a]);h!==void 0&&(i[a]=h)}let r=bt(e.stroke),o=bt(e.fill),s=$(e.visible),l=this.ease(e.ease);return r&&(i.stroke=r),o&&(i.fill=o),s!==void 0&&(i.visible=s),l&&(i.ease=l),i}track(e){if(!E(e))return null;this.fields(e,"track");let n=W(e.element);if(!n)return null;let i=(Array.isArray(e.keys)?e.keys:[]).map(s=>this.keyframe(s)).filter(s=>s!==null&&s.t>=0&&s.t<=xt);qt(i,s=>s.t);let r=Array.isArray(e.follow)?e.follow.filter(E).flatMap(s=>{let l=W(s.path),a=R(s.start),h=R(s.end);return!l||a===void 0||h===void 0||a<0||h>xt?[]:[{path:l,start:a,end:h,ease:this.ease(s.ease),reverse:$(s.reverse)??null,orient:$(s.orient)??null,laps:R(s.laps)??null}]}):null,o=Array.isArray(e.repeats)?e.repeats.filter(E).flatMap(s=>{let l=R(s.start),a=R(s.end);if(l===void 0||a===void 0)return[];let h=R(s.count),u={start:l,end:a,count:h===void 0?null:Math.trunc(h)};return Qt(u)?[u]:[]}):null;return{element:n,keys:i,boil:$(e.boil)??null,follow:r,repeats:o,march:bn(R(e.march))}}timeline(e){if(!E(e))return null;this.fields(e,"timeline");let n=R(e.boil),i=Array.isArray(e.camera)?e.camera.filter(E).flatMap(s=>{let l=R(s.t),a=R(s.x),h=R(s.y),u=R(s.width),c=R(s.height);return l===void 0||a===void 0||h===void 0||u===void 0||c===void 0?[]:u>1&&c>1&&l>=0?[{t:l,x:a,y:h,width:u,height:c,ease:this.ease(s.ease)}]:[]}):null;i&&qt(i,s=>s.t);let r=Array.isArray(e.markers)?e.markers.filter(E).flatMap(s=>{let l=R(s.t);return l!==void 0&&l>=0?[{t:l,name:I(s.name)??""}]:[]}):null;r&&qt(r,s=>s.t);let o=R(e.poster);return{fps:wt(R(e.fps)??12),duration:O(R(e.duration)??0),boil:n!==void 0&&Number.isInteger(n)&&n>0?Math.min(n,1e4):null,settle:$(e.settle)??null,poster:o===void 0?null:O(o),tracks:(Array.isArray(e.tracks)?e.tracks:[]).map(s=>this.track(s)).filter(s=>s!==null),camera:i,markers:r}}page(e,n,i){if(!E(e))throw new Q(`Page ${i} is not an object`);this.fields(e,"page");let r=(Array.isArray(e.layers)?e.layers:[]).filter(E).flatMap(o=>{let s=W(o.id);return s?[{id:s,name:I(o.name)??"",visible:$(o.visible)??!0,locked:$(o.locked)??!1}]:[]});return r.length===0&&(this.warn(`Page ${i} has no layers`),r.push({id:"LAYER",name:"Layer 1",visible:!0,locked:!1})),{id:W(e.id)??`PAGE-${i}`,name:I(e.name)??`Page ${i}`,layers:r,elements:(Array.isArray(e.elements)?e.elements:[]).map(o=>this.element(o,n)).filter(o=>o!==null),theme:I(e.theme)??null,timeline:this.timeline(e.timeline),symbols:Array.isArray(e.symbols)?e.symbols.map(o=>this.symbol(o,n)).filter(o=>o!==null):null}}},vi=/^[A-Za-z0-9+/=\s]*$/;function Qt(t){return Number.isFinite(t.start)&&Number.isFinite(t.end)&&t.start>=0&&t.end-t.start>.001&&t.end<=xt&&(t.count===null||t.count>=1&&t.count<=1e4)}function qt(t,e){let n=t.map((i,r)=>[i,r]);n.sort((i,r)=>e(i[0])-e(r[0])||i[1]-r[1]);for(let i=0;i<t.length;i++)t[i]=n[i][0]}function Ft(t){let e=t;if(typeof t=="string")try{e=JSON.parse(t)}catch(s){throw new Q(`Not JSON: ${s.message}`)}if(!E(e))throw new Q("Not a Dottie drawing");let n=R(e.version);if(n===void 0)throw new Q("Not a Dottie drawing (no version)");if(!Array.isArray(e.pages)||e.pages.length===0)throw new Q("A drawing needs at least one page");let i=new Te;i.fields(e,"file"),n>2&&i.warn(`File version ${n} is newer than this player knows (2); some things may not show`);let r={};if(E(e.images))for(let[s,l]of Object.entries(e.images))E(l)&&typeof l.data=="string"&&(r[s]=i.picture(l.data,I(l.format)));let o=e.pages.map((s,l)=>i.page(s,r,l+1));if(new Set(o.map(s=>s.id)).size!==o.length)throw new Q("Two pages share an id");return{version:n,pages:o,warnings:i.warnings}}function Pt(t){return .2126*t.r+.7152*t.g+.0722*t.b}function kt(t,e){return t.r===e.r&&t.g===e.g&&t.b===e.b&&t.a===e.a}function Se(t){return kt(t,ct)||kt(t,kn)}function C(t){return{...t,style:{...t.style,stroke:{...t.style.stroke},fill:{...t.style.fill}},connector:t.connector?{...t.connector,start:{...t.connector.start},end:{...t.connector.end}}:null}}function ft(t){if(t.layers.length<=1)return t.elements;let e=new Map;t.layers.forEach((i,r)=>{e.has(i.id)||e.set(i.id,r)});let n=t.layers.map(()=>[]);for(let i of t.elements)n[e.get(i.layerID)??0].push(i);return n.flat()}function Si(t){let e=new Map;for(let n of t.elements)e.has(n.id)||e.set(n.id,n);return e}var wn=.60205078125,Pn=.92822265625,Mn=.23583984375,dt={"Architects Daughter":{faces:{regular:{ascent:.986328125,descent:.4033203125,k:{},leading:0,w:{" ":400.39,_:686.52,"-":310.55,"\u2013":310.55,"\u2014":411.13,",":177.73,";":124.02,":":166.99,"!":134.77,"?":505.86,".":140.63,"\u2026":422.85,"\xB7":140.63,"'":162.11,"\u2018":162.11,"\u2019":162.11,'"':236.33,"\u201C":236.33,"\u201D":236.33,"(":297.85,")":351.56,"[":424.8,"]":541.02,"{":352.54,"}":478.52,"@":1042.97,"*":507.81,"/":455.08,"\\":501.95,"&":669.92,"#":637.7,"%":518.55,"\u2022":192.38,"`":171.88,"^":306.64,"\u2190":1e3,"\u2192":1e3,"\u2191":645.02,"\u2193":645.02,"+":524.41,"\xD7":470.7,"<":475.59,"=":492.19,">":471.68,"|":145.51,"~":444.34,"\u25E6":578.13,"\u2610":830.08,"\u2611":830.08,"\u2713":764.16,$:556.64,0:630.86,1:127.93,2:572.27,3:508.79,4:680.66,5:708.01,6:626.95,7:615.23,8:648.44,9:569.34,a:508.79,A:640.63,b:561.52,B:710.94,c:632.81,C:708.01,d:512.7,D:648.44,e:541.02,E:591.8,\u00E9:541.02,f:593.75,F:692.38,g:515.63,G:692.38,h:495.12,H:605.47,i:151.37,I:151.37,j:177.73,J:529.3,k:614.26,K:605.47,l:157.23,L:692.38,m:778.32,M:827.15,n:500,N:626.95,o:562.5,O:669.92,p:556.64,P:637.7,q:513.67,Q:712.89,r:551.76,R:712.89,s:501.95,S:642.58,t:404.3,T:623.05,u:507.81,U:561.52,v:518.55,V:626.95,w:808.59,W:940.43,x:470.7,X:599.61,y:548.83,Y:534.18,z:495.12,Z:784.18}}},fallback:{"\u2190":[.966796875,.2109375,0],"\u2192":[.966796875,.2109375,0],"\u2191":[.966796875,.2109375,0],"\u2193":[.966796875,.2109375,0],"\u25E6":[.966796875,.2109375,0],"\u2610":[.66650390625,.25,.08349609375],"\u2611":[.66650390625,.25,.08349609375],"\u2713":[.966796875,.2109375,0]}},Caveat:{faces:{bold:{ascent:.9600067138671875,descent:.3000030517578125,k:{AC:-20,AE:-10,AG:-10,AH:-10,AI:10,Aj:10,AJ:10,AL:-10,AM:10,An:-10,AO:-20,AP:-10,Aq:-10,AQ:-20,Ar:-10,As:-10,AS:-35,AT:-50,Au:-10,AU:-20,av:-20,Av:-5,AV:-40,aw:-10,AW:-20,Ax:10,AX:-10,ay:-20,Ay:-10,AY:-65,Az:20,AZ:-10,ba:-10,bc:-10,BC:-20,bd:-10,Bf:10,BF:-20,Bg:10,bh:-5,Bi:10,BI:-10,bj:-5,Bj:10,BJ:-10,Bk:10,Bl:10,Bm:10,BP:-10,BR:-10,BS:-20,BT:-40,bu:-10,BU:-20,BV:-50,BW:-50,bx:-10,Bx:10,BX:-40,by:-10,BY:-65,Bz:40,BZ:-30,CA:-20,Cc:-5,CC:-10,Cd:-10,CE:-10,CG:-10,Cj:10,CJ:-10,CK:-10,cl:10,Cl:5,Cn:-5,CO:-10,CP:-10,CQ:-20,Cs:-10,CS:-10,Ct:10,CT:-20,Cu:-10,CU:-10,Cv:-20,CV:-20,cw:-10,Cw:-10,CW:-20,Cx:20,CX:-30,cy:-5,CY:-35,Cz:20,CZ:-40,DA:-10,Db:10,Dc:10,De:10,Df:20,DF:-10,Dg:10,Dh:10,Di:15,DI:-10,Dj:5,DJ:-10,Dk:10,Dl:10,Dm:20,DM:-5,dn:-10,Do:10,Dp:10,Dq:10,Dr:10,Ds:10,dt:10,Dt:20,DT:-40,du:-10,Dv:30,DV:-30,Dw:20,DW:-10,Dx:20,DX:-50,Dy:10,DY:-50,Dz:30,DZ:-30,EC:-10,ED:-10,EG:-10,EJ:-10,el:10,EO:-10,EQ:-20,ES:-40,ET:-10,EU:-20,Ev:-10,EV:-25,Ew:-10,EW:-30,Ex:10,EX:-40,Ey:-10,EY:-50,Ez:20,EZ:-20,fa:-10,Fa:-30,FA:-40,Fc:-20,FC:-10,Fd:-20,FD:20,Fe:-15,ff:10,Ff:10,FF:20,Fg:-10,fh:10,Fh:20,fi:10,Fi:10,FI:10,fj:10,Fj:10,FJ:20,Fk:10,fl:20,Fl:20,FL:10,fm:10,FM:-10,Fn:-20,FN:10,Fo:-20,FO:10,Fp:-10,FP:-10,Fq:-10,FQ:10,Fr:-10,FS:10,ft:40,Ft:10,FT:-30,Fu:-10,fv:10,Fv:10,FV:10,FW:10,fy:10,FY:10,Fz:10,FZ:-10,GA:-10,Gf:10,Gh:10,gi:10,Gi:10,GI:-10,Gj:10,GJ:-10,Gk:10,Gl:10,Gm:10,GM:-10,GN:10,GP:-20,GS:-10,Gt:10,GU:-10,Gv:10,GV:-10,GW:-20,Gx:10,GX:-40,gy:10,GY:-40,Gz:10,GZ:-20,Hb:10,hf:-10,Hf:10,hg:-20,Hh:10,Hi:10,Hj:20,Hk:10,Hl:10,Hm:10,hq:-10,hs:-10,Ht:20,hv:-30,Hv:10,hw:-15,Hx:20,hy:-30,Hy:10,Hz:20,Ia:-10,IA:10,Ib:10,Ic:-10,Id:-10,ID:30,Ie:-10,if:10,If:20,IF:40,Ig:-10,Ih:30,Ii:20,II:30,Ij:30,IJ:40,Ik:20,IK:10,Il:20,IL:10,IM:30,In:-10,IN:20,Io:-10,Ip:10,Iq:-20,Ir:-10,IR:10,Is:-10,It:10,Iu:-10,IU:10,iv:10,Iv:-20,IV:30,Iw:-25,IW:20,Ix:10,IX:10,Iy:-10,IY:30,Iz:20,IZ:20,Ja:-10,Jb:10,Jc:-10,Jd:-10,Je:-10,Jf:10,Jh:10,Ji:10,JI:-10,Jj:20,JJ:10,Jk:10,Jl:20,Jn:-10,Jo:-10,JO:-10,Jp:10,JP:-10,Jq:-10,JQ:-10,JR:-10,jt:10,Jt:20,JT:10,ju:-10,Ju:-20,JU:-10,jx:10,JX:-25,jy:10,JY:-20,jz:10,Jz:10,JZ:-20,Ka:-40,kc:20,Kc:-40,KC:-10,Kd:-40,KD:10,ke:10,Ke:-40,kf:20,Kf:10,KF:20,Kg:-40,KG:-10,kh:10,Kh:10,ki:10,Ki:10,Kj:40,KJ:20,kk:20,Kk:10,kl:20,Kl:10,km:10,KM:20,Kn:-40,ko:10,Ko:-50,KO:-10,Kp:10,Kq:-50,kr:10,Ks:-40,kt:10,Kt:10,KT:-10,ku:10,Ku:-60,kv:10,Kv:-30,Kw:-40,Kx:-10,KX:-10,ky:-10,Ky:-30,kz:10,Lb:-10,LC:-20,LE:-20,Lf:10,Lg:-10,LG:-20,Lh:-10,Li:10,LI:-40,Lj:20,Lk:10,ll:10,Ll:10,LL:-20,Ln:-20,LO:-25,Lp:10,Lq:-40,LQ:-30,Ls:-10,LS:-65,lt:10,Lt:-10,LT:-70,Lu:-40,LU:-45,Lv:-60,LV:-70,Lw:-40,LW:-40,Lx:10,Ly:-20,LY:-90,lz:20,Lz:30,LZ:-10,Mb:10,md:10,Mf:10,Mh:10,Mi:10,MJ:10,Mk:10,Ml:10,mo:20,Mp:10,MP:-10,Mq:-10,MQ:-10,MS:-20,Mt:20,MT:-30,Mu:-10,MU:-20,mv:-15,Mv:10,MV:-20,mw:-10,MW:-30,Mx:10,MX:-10,my:-10,My:-10,MY:-50,Mz:10,MZ:-10,nb:-15,Nb:10,Ne:10,Nf:10,Ng:10,Nh:10,Ni:20,Nj:20,Nk:20,Nl:20,Nm:10,Nq:10,ns:-5,nt:-10,Nt:20,nu:-10,nv:-20,Nv:30,nw:-20,NW:-10,Nx:30,NX:-20,ny:-20,Ny:10,NY:-20,Nz:40,NZ:-10,OA:-10,OD:-10,Of:20,Og:20,Oh:10,Oi:20,OI:-10,oj:-5,Oj:20,Ok:10,Ol:20,OL:10,Om:20,Oo:10,Op:10,Oq:10,OQ:10,Os:10,Ot:20,OT:-10,ou:-10,ov:5,Ov:30,OV:-10,ow:-10,Ow:10,OW:-10,Ox:30,OX:-40,oy:-10,Oy:20,OY:-40,Oz:30,OZ:-20,Pa:-40,PA:-40,Pc:-30,Pd:-40,PD:-10,Pe:-20,Pf:10,Pg:-10,Ph:10,Pi:10,PI:-10,Pj:20,PJ:-10,Pk:10,Pl:10,Pm:10,PM:-30,pn:-10,Pn:-10,PN:-10,Po:-30,Pq:-30,Ps:-20,PS:10,Pt:20,pu:-10,Pu:-30,Pv:10,Px:10,PX:-35,py:-10,PY:-20,Pz:10,PZ:-50,Qb:10,Qf:20,Qg:20,qh:-10,Qh:10,Qi:20,qj:10,Qj:90,QJ:80,Qk:10,Ql:20,Qm:20,qn:-10,qo:-10,Qp:20,Qt:30,QT:-10,qu:-10,Qv:20,QV:-10,QW:-10,Qx:20,QX:-20,Qy:50,QY:-30,Qz:40,QZ:-10,ra:-5,Ra:-10,RA:-25,RB:-10,Rc:-10,RC:-20,Rd:-10,RD:10,Re:-10,RE:-20,Rf:20,RF:10,Rg:-10,RG:-10,ri:5,RI:-10,Rj:30,RJ:30,RL:-10,RM:-20,Rn:-10,RN:10,Ro:-10,RO:-10,Rp:20,Rq:-30,RQ:-10,Rr:-10,Rs:-10,Rt:10,RT:-10,Ru:-30,RU:-20,rv:20,RV:-10,Rw:-10,RW:-10,Rx:10,RX:-20,Ry:10,RY:-30,Rz:20,RZ:-45,Sa:-10,Sb:10,Sc:-20,Sd:-25,SD:20,Se:-20,SE:-10,sf:10,Sf:20,SF:30,Sg:-20,Sh:20,Si:20,SI:10,Sj:30,SJ:30,Sk:10,Sl:20,SL:20,Sn:-20,SN:10,So:-10,SO:10,Sq:-20,Sr:-10,Ss:-10,st:10,St:20,Su:-20,sv:20,Sv:-50,SV:20,Sw:-30,SW:10,sx:15,Sx:10,Sy:-15,SY:10,sz:20,Sz:20,SZ:-10,Ta:-90,TA:-50,Tc:-80,TC:-10,Td:-110,TD:10,Te:-90,TE:-10,Tf:20,TF:30,Tg:-80,TG:-10,Th:20,ti:5,TI:10,Tj:20,Tk:10,Tl:20,Tm:-50,TM:-30,Tn:-90,To:-90,Tp:-80,Tq:-120,Tr:-80,Ts:-80,Tt:10,TT:-30,Tu:-90,tv:10,Tv:-70,TV:10,Tw:-100,tx:20,Tx:-60,TX:-10,Ty:-50,tz:30,Tz:-40,TZ:-10,ub:-10,Ub:20,UE:10,uf:10,Uf:30,UF:10,Ug:10,Uh:30,ui:10,Ui:30,Uj:40,uk:10,Uk:20,ul:10,Ul:30,Um:30,Up:10,UQ:30,Ur:10,UR:10,Us:10,Ut:50,UT:20,Uu:10,UU:10,Uv:50,UV:10,Uw:10,ux:10,Ux:30,UX:-10,Uy:10,UY:-10,uz:30,Uz:30,UZ:-10,va:-10,Va:-50,VA:-55,Vc:-30,VC:-20,Vd:-30,Ve:-30,VE:-20,vf:10,VF:10,Vg:-30,VG:-10,vi:10,Vm:-10,VM:-30,Vn:-30,VN:-10,Vo:-30,VO:-10,Vp:-20,VP:-20,Vq:-30,VQ:-10,Vr:-20,Vs:-30,vt:10,VT:20,Vu:-30,VU:-10,vv:20,Vw:-30,vx:20,VX:-20,vy:10,VY:-10,vz:10,VZ:-20,WA:-20,Wb:20,Wd:-10,WD:20,We:10,Wf:30,WF:20,Wh:30,wi:10,Wi:30,WI:10,Wj:40,WJ:20,Wk:20,Wl:40,WL:10,Wm:10,WM:-10,WS:10,Wt:40,WT:30,Wv:30,WV:10,wx:10,Wx:20,WX:-10,Wy:20,WY:10,Wz:30,WZ:-10,XA:-25,XC:-20,Xe:-10,XE:-10,xf:10,Xf:10,Xg:-10,XG:-20,xi:10,Xi:10,XI:-10,Xj:30,xk:10,Xk:10,xl:10,Xl:20,Xm:10,XM:-25,xn:-10,XN:-10,Xo:-10,XO:-20,xp:10,Xp:10,XP:-10,xq:-10,Xq:-40,XQ:-25,XS:-20,xu:-5,Xu:-30,XU:-20,xv:10,Xv:-20,Xw:-30,xx:15,Xx:10,XX:-30,xy:-10,Xy:-20,XY:-20,xz:10,Xz:30,ya:-10,Ya:-70,YA:-55,Yc:-60,YC:-30,yd:-10,Yd:-60,YD:10,ye:10,Ye:-60,YE:-30,YF:20,Yg:-60,YG:-30,YH:-10,YI:10,YJ:10,Ym:-30,YM:-35,yn:-10,Yn:-60,Yo:-60,YO:-20,Yp:-50,YP:-10,Yq:-60,YQ:-10,Yr:-60,YR:-10,Ys:-60,YS:-10,yt:10,YT:-15,yu:-10,Yu:-60,yv:10,Yv:-20,Yw:-50,yx:10,Yx:-50,YX:-30,Yy:-40,YY:-10,Yz:-30,YZ:-40,Za:-20,ZA:-20,Zb:-10,ZB:-10,Zc:-10,ZC:-20,Zd:-30,ZD:-10,Ze:-40,ZE:-20,zf:10,Zg:-40,ZG:-20,zi:10,Zj:10,Zk:10,ZL:-10,Zm:-10,Zn:-50,Zo:-30,ZO:-30,Zp:-10,ZP:-10,Zq:-50,ZQ:-10,Zr:-40,ZR:-10,Zs:-30,ZS:-20,zt:10,Zt:-10,Zu:-30,ZU:-10,zv:10,Zv:-20,Zw:-40,ZW:-10,zx:10,Zx:-10,ZX:-10,Zy:-30,ZY:-20,zz:20,Zz:10,ZZ:-10},leading:0,w:{" ":242,_:446,"-":326,"\u2013":446,"\u2014":566,",":198,";":198,":":198,"!":210,"?":374,".":198,"\u2026":594,"\xB7":187,"'":117,"\u2018":117,"\u2019":117,'"':237,"\u201C":267,"\u201D":267,"(":330,")":330,"[":330,"]":330,"{":330,"}":330,"@":643,"*":363,"/":330,"\\":330,"&":564,"#":559,"%":600,"\u2022":187,"`":353,"^":446,"\u2190":1e3,"\u2192":1e3,"\u2191":722.66,"\u2193":722.66,"+":446,"\xD7":446,"<":446,"=":446,">":446,"|":330,"~":446,"\u25E6":608.4,"\u2610":830.08,"\u2611":830.08,"\u2713":764.16,$:450,0:450,1:450,2:450,3:450,4:450,5:434,6:471,7:446,8:450,9:438,a:446,A:511,b:444,B:523,c:364,C:477,d:402,D:587,e:334,E:534,\u00E9:325,f:300,F:466,g:364,G:494,h:473,H:574,i:196,I:409,j:213,J:315,k:374,K:508,l:178,L:426,m:569,M:729,n:459,N:619,o:362,O:505,p:378,P:468,q:377,Q:492,r:360,R:544,s:350,S:495,t:331,T:458,u:370,U:482,v:331,V:490,w:517,W:720,x:343,X:524,y:341,Y:504,z:315,Z:522}},regular:{ascent:.9600067138671875,descent:.3000030517578125,k:{AC:-20,AE:-10,AG:-10,AH:-10,AI:10,Aj:10,AJ:10,AL:-10,AM:10,An:-10,AO:-20,AP:-10,Aq:-10,AQ:-20,Ar:-10,As:-10,AS:-35,AT:-50,Au:-10,AU:-20,av:-20,Av:-5,AV:-40,aw:-10,AW:-20,Ax:10,AX:-10,ay:-20,Ay:-10,AY:-65,Az:20,AZ:-10,ba:-10,bc:-10,BC:-20,bd:-10,Bf:10,BF:-20,Bg:10,bh:-5,Bi:10,BI:-10,bj:-5,Bj:10,BJ:-10,Bk:10,Bl:10,Bm:10,BP:-10,BR:-10,BS:-20,BT:-40,bu:-10,BU:-20,BV:-50,BW:-50,bx:-10,Bx:10,BX:-40,by:-10,BY:-65,Bz:40,BZ:-30,CA:-20,Cc:-5,CC:-10,Cd:-10,CE:-10,CG:-10,Cj:10,CJ:-10,CK:-10,cl:10,Cl:5,Cn:-5,CO:-10,CP:-10,CQ:-20,Cs:-10,CS:-10,Ct:10,CT:-20,Cu:-10,CU:-10,Cv:-20,CV:-20,cw:-10,Cw:-10,CW:-20,Cx:20,CX:-30,cy:-5,CY:-35,Cz:20,CZ:-40,DA:-10,Db:10,Dc:10,De:10,Df:20,DF:-10,Dg:10,Dh:10,Di:15,DI:-10,Dj:5,DJ:-10,Dk:10,Dl:10,Dm:20,DM:-5,dn:-10,Do:10,Dp:10,Dq:10,Dr:10,Ds:10,dt:10,Dt:20,DT:-40,du:-10,Dv:30,DV:-30,Dw:20,DW:-10,Dx:20,DX:-50,Dy:10,DY:-50,Dz:30,DZ:-30,EC:-10,ED:-10,EG:-10,EJ:-10,el:10,EO:-10,EQ:-20,ES:-40,ET:-10,EU:-20,Ev:-10,EV:-25,Ew:-10,EW:-30,Ex:10,EX:-40,Ey:-10,EY:-50,Ez:20,EZ:-20,fa:-10,Fa:-30,FA:-40,Fc:-20,FC:-10,Fd:-20,FD:20,Fe:-15,ff:10,Ff:10,FF:20,Fg:-10,fh:10,Fh:20,fi:10,Fi:10,FI:10,fj:10,Fj:10,FJ:20,Fk:10,fl:20,Fl:20,FL:10,fm:10,FM:-10,Fn:-20,FN:10,Fo:-20,FO:10,Fp:-10,FP:-10,Fq:-10,FQ:10,Fr:-10,FS:10,ft:40,Ft:10,FT:-30,Fu:-10,fv:10,Fv:10,FV:10,FW:10,fy:10,FY:10,Fz:10,FZ:-10,GA:-10,Gf:10,Gh:10,gi:10,Gi:10,GI:-10,Gj:10,GJ:-10,Gk:10,Gl:10,Gm:10,GM:-10,GN:10,GP:-20,GS:-10,Gt:10,GU:-10,Gv:10,GV:-10,GW:-20,Gx:10,GX:-40,gy:10,GY:-40,Gz:10,GZ:-20,Hb:10,hf:-10,Hf:10,hg:-20,Hh:10,Hi:10,Hj:20,Hk:10,Hl:10,Hm:10,hq:-10,hs:-10,Ht:20,hv:-30,Hv:10,hw:-15,Hx:20,hy:-30,Hy:10,Hz:20,Ia:-10,IA:10,Ib:10,Ic:-10,Id:-10,ID:30,Ie:-10,if:10,If:20,IF:40,Ig:-10,Ih:30,Ii:20,II:30,Ij:30,IJ:40,Ik:20,IK:10,Il:20,IL:10,IM:30,In:-10,IN:20,Io:-10,Ip:10,Iq:-20,Ir:-10,IR:10,Is:-10,It:10,Iu:-10,IU:10,iv:10,Iv:-20,IV:30,Iw:-25,IW:20,Ix:10,IX:10,Iy:-10,IY:30,Iz:20,IZ:20,Ja:-10,Jb:10,Jc:-10,Jd:-10,Je:-10,Jf:10,Jh:10,Ji:10,JI:-10,Jj:20,JJ:10,Jk:10,Jl:20,Jn:-10,Jo:-10,JO:-10,Jp:10,JP:-10,Jq:-10,JQ:-10,JR:-10,jt:10,Jt:20,JT:10,ju:-10,Ju:-20,JU:-10,jx:10,JX:-25,jy:10,JY:-20,jz:10,Jz:10,JZ:-20,Ka:-40,kc:20,Kc:-40,KC:-10,Kd:-40,KD:10,ke:10,Ke:-40,kf:20,Kf:10,KF:20,Kg:-40,KG:-10,kh:10,Kh:10,ki:10,Ki:10,Kj:40,KJ:20,kk:20,Kk:10,kl:20,Kl:10,km:10,KM:20,Kn:-40,ko:10,Ko:-50,KO:-10,Kp:10,Kq:-50,kr:10,Ks:-40,kt:10,Kt:10,KT:-10,ku:10,Ku:-60,kv:10,Kv:-30,Kw:-40,Kx:-10,KX:-10,ky:-10,Ky:-30,kz:10,Lb:-10,LC:-20,LE:-20,Lf:10,Lg:-10,LG:-20,Lh:-10,Li:10,LI:-40,Lj:20,Lk:10,ll:10,Ll:10,LL:-20,Ln:-20,LO:-25,Lp:10,Lq:-40,LQ:-30,Ls:-10,LS:-65,lt:10,Lt:-10,LT:-70,Lu:-40,LU:-45,Lv:-60,LV:-70,Lw:-40,LW:-40,Lx:10,Ly:-20,LY:-90,lz:20,Lz:30,LZ:-10,Mb:10,md:10,Mf:10,Mh:10,Mi:10,MJ:10,Mk:10,Ml:10,mo:20,Mp:10,MP:-10,Mq:-10,MQ:-10,MS:-20,Mt:20,MT:-30,Mu:-10,MU:-20,mv:-15,Mv:10,MV:-20,mw:-10,MW:-30,Mx:10,MX:-10,my:-10,My:-10,MY:-50,Mz:10,MZ:-10,nb:-15,Nb:10,Ne:10,Nf:10,Ng:10,Nh:10,Ni:20,Nj:20,Nk:20,Nl:20,Nm:10,Nq:10,ns:-5,nt:-10,Nt:20,nu:-10,nv:-20,Nv:30,nw:-20,NW:-10,Nx:30,NX:-20,ny:-20,Ny:10,NY:-20,Nz:40,NZ:-10,OA:-10,OD:-10,Of:20,Og:20,Oh:10,Oi:20,OI:-10,oj:-5,Oj:20,Ok:10,Ol:20,OL:10,Om:20,Oo:10,Op:10,Oq:10,OQ:10,Os:10,Ot:20,OT:-10,ou:-10,ov:5,Ov:30,OV:-10,ow:-10,Ow:10,OW:-10,Ox:30,OX:-40,oy:-10,Oy:20,OY:-40,Oz:30,OZ:-20,Pa:-40,PA:-40,Pc:-30,Pd:-40,PD:-10,Pe:-20,Pf:10,Pg:-10,Ph:10,Pi:10,PI:-10,Pj:20,PJ:-10,Pk:10,Pl:10,Pm:10,PM:-30,pn:-10,Pn:-10,PN:-10,Po:-30,Pq:-30,Ps:-20,PS:10,Pt:20,pu:-10,Pu:-30,Pv:10,Px:10,PX:-35,py:-10,PY:-20,Pz:10,PZ:-50,Qb:10,Qf:20,Qg:20,qh:-10,Qh:10,Qi:20,qj:10,Qj:90,QJ:80,Qk:10,Ql:20,Qm:20,qn:-10,qo:-10,Qp:20,Qt:30,QT:-10,qu:-10,Qv:20,QV:-10,QW:-10,Qx:20,QX:-20,Qy:50,QY:-30,Qz:40,QZ:-10,ra:-5,Ra:-10,RA:-25,RB:-10,Rc:-10,RC:-20,Rd:-10,RD:10,Re:-10,RE:-20,Rf:20,RF:10,Rg:-10,RG:-10,ri:5,RI:-10,Rj:30,RJ:30,RL:-10,RM:-20,Rn:-10,RN:10,Ro:-10,RO:-10,Rp:20,Rq:-30,RQ:-10,Rr:-10,Rs:-10,Rt:10,RT:-10,Ru:-30,RU:-20,rv:20,RV:-10,Rw:-10,RW:-10,Rx:10,RX:-20,Ry:10,RY:-30,Rz:20,RZ:-45,Sa:-10,Sb:10,Sc:-20,Sd:-25,SD:20,Se:-20,SE:-10,sf:10,Sf:20,SF:30,Sg:-20,Sh:20,Si:20,SI:10,Sj:30,SJ:30,Sk:10,Sl:20,SL:20,Sn:-20,SN:10,So:-10,SO:10,Sq:-20,Sr:-10,Ss:-10,st:10,St:20,Su:-20,sv:20,Sv:-50,SV:20,Sw:-30,SW:10,sx:15,Sx:10,Sy:-15,SY:10,sz:20,Sz:20,SZ:-10,Ta:-90,TA:-50,Tc:-80,TC:-10,Td:-110,TD:10,Te:-90,TE:-10,Tf:20,TF:30,Tg:-80,TG:-10,Th:20,ti:5,TI:10,Tj:20,Tk:10,Tl:20,Tm:-50,TM:-30,Tn:-90,To:-90,Tp:-80,Tq:-120,Tr:-80,Ts:-80,Tt:10,TT:-30,Tu:-90,tv:10,Tv:-70,TV:10,Tw:-100,tx:20,Tx:-60,TX:-10,Ty:-50,tz:30,Tz:-40,TZ:-10,ub:-10,Ub:20,UE:10,uf:10,Uf:30,UF:10,Ug:10,Uh:30,ui:10,Ui:30,Uj:40,uk:10,Uk:20,ul:10,Ul:30,Um:30,Up:10,UQ:30,Ur:10,UR:10,Us:10,Ut:50,UT:20,Uu:10,UU:10,Uv:50,UV:10,Uw:10,ux:10,Ux:30,UX:-10,Uy:10,UY:-10,uz:30,Uz:30,UZ:-10,va:-10,Va:-50,VA:-55,Vc:-30,VC:-20,Vd:-30,Ve:-30,VE:-20,vf:10,VF:10,Vg:-30,VG:-10,vi:10,Vm:-10,VM:-30,Vn:-30,VN:-10,Vo:-30,VO:-10,Vp:-20,VP:-20,Vq:-30,VQ:-10,Vr:-20,Vs:-30,vt:10,VT:20,Vu:-30,VU:-10,vv:20,Vw:-30,vx:20,VX:-20,vy:10,VY:-10,vz:10,VZ:-20,WA:-20,Wb:20,Wd:-10,WD:20,We:10,Wf:30,WF:20,Wh:30,wi:10,Wi:30,WI:10,Wj:40,WJ:20,Wk:20,Wl:40,WL:10,Wm:10,WM:-10,WS:10,Wt:40,WT:30,Wv:30,WV:10,wx:10,Wx:20,WX:-10,Wy:20,WY:10,Wz:30,WZ:-10,XA:-25,XC:-20,Xe:-10,XE:-10,xf:10,Xf:10,Xg:-10,XG:-20,xi:10,Xi:10,XI:-10,Xj:30,xk:10,Xk:10,xl:10,Xl:20,Xm:10,XM:-25,xn:-10,XN:-10,Xo:-10,XO:-20,xp:10,Xp:10,XP:-10,xq:-10,Xq:-40,XQ:-25,XS:-20,xu:-5,Xu:-30,XU:-20,xv:10,Xv:-20,Xw:-30,xx:15,Xx:10,XX:-30,xy:-10,Xy:-20,XY:-20,xz:10,Xz:30,ya:-10,Ya:-70,YA:-55,Yc:-60,YC:-30,yd:-10,Yd:-60,YD:10,ye:10,Ye:-60,YE:-30,YF:20,Yg:-60,YG:-30,YH:-10,YI:10,YJ:10,Ym:-30,YM:-35,yn:-10,Yn:-60,Yo:-60,YO:-20,Yp:-50,YP:-10,Yq:-60,YQ:-10,Yr:-60,YR:-10,Ys:-60,YS:-10,yt:10,YT:-15,yu:-10,Yu:-60,yv:10,Yv:-20,Yw:-50,yx:10,Yx:-50,YX:-30,Yy:-40,YY:-10,Yz:-30,YZ:-40,Za:-20,ZA:-20,Zb:-10,ZB:-10,Zc:-10,ZC:-20,Zd:-30,ZD:-10,Ze:-40,ZE:-20,zf:10,Zg:-40,ZG:-20,zi:10,Zj:10,Zk:10,ZL:-10,Zm:-10,Zn:-50,Zo:-30,ZO:-30,Zp:-10,ZP:-10,Zq:-50,ZQ:-10,Zr:-40,ZR:-10,Zs:-30,ZS:-20,zt:10,Zt:-10,Zu:-30,ZU:-10,zv:10,Zv:-20,Zw:-40,ZW:-10,zx:10,Zx:-10,ZX:-10,Zy:-30,ZY:-20,zz:20,Zz:10,ZZ:-10},leading:0,w:{" ":242,_:446,"-":326,"\u2013":446,"\u2014":566,",":198,";":198,":":198,"!":210,"?":374,".":198,"\u2026":594,"\xB7":187,"'":117,"\u2018":117,"\u2019":117,'"':237,"\u201C":267,"\u201D":267,"(":330,")":330,"[":330,"]":330,"{":330,"}":330,"@":643,"*":363,"/":330,"\\":330,"&":564,"#":559,"%":600,"\u2022":187,"`":353,"^":446,"\u2190":1e3,"\u2192":1e3,"\u2191":645.02,"\u2193":645.02,"+":446,"\xD7":446,"<":446,"=":446,">":446,"|":330,"~":446,"\u25E6":578.13,"\u2610":830.08,"\u2611":830.08,"\u2713":764.16,$:450,0:450,1:450,2:450,3:450,4:450,5:450,6:450,7:450,8:450,9:450,a:437,A:502,b:435,B:520,c:355,C:472,d:393,D:578,e:325,E:529,\u00E9:325,f:291,F:454,g:355,G:487,h:464,H:563,i:187,I:400,j:204,J:306,k:365,K:498,l:169,L:426,m:560,M:720,n:450,N:599,o:353,O:496,p:378,P:464,q:377,Q:502,r:360,R:537,s:341,S:486,t:331,T:458,u:370,U:482,v:331,V:490,w:517,W:720,x:343,X:524,y:341,Y:504,z:315,Z:522}}},fallback:{"\u2190":[.966796875,.2109375,0],"\u2192":[.966796875,.2109375,0],"\u2191":[.966796875,.2109375,0],"\u2193":[.966796875,.2109375,0],"\u25E6":[.966796875,.2109375,0],"\u2610":[.66650390625,.25,.08349609375],"\u2611":[.66650390625,.25,.08349609375],"\u2713":[.966796875,.2109375,0]}},"Helvetica Neue":{faces:{bold:{ascent:.975006103515625,descent:.2169952392578125,k:{"\u2018\u2018":-95,"\u2019\u2019":-95,"\u2019s":-74,"\u2019t":-18,"A\u2019":-74,AT:-92,Av:-18,AV:-46,Aw:-18,AW:-24,Ay:-18,AY:-74,"F,":-157,"F.":-157,"f\u2019":18,FA:-55,ff:-30,fi:20,fl:20,"L\u2019":-74,LT:-92,LV:-92,LW:-55,Ly:-37,LY:-111,"P,":-179,"P.":-179,PA:-74,"r-":-55,"r,":-92,"r.":-92,rc:-18,rd:-18,re:-18,rg:-28,rn:18,ro:-18,rq:-18,RT:-18,RV:-18,RW:-18,RY:-37,"T-":-129,"T,":-111,"T;":-111,"T:":-111,"T.":-111,Ta:-111,TA:-92,Tc:-111,Te:-111,To:-111,Tr:-92,Ts:-111,Tu:-92,Tw:-111,Ty:-111,"V-":-55,"v,":-74,"V,":-129,"V;":-46,"V:":-46,"v.":-74,"V.":-129,Va:-55,VA:-46,Ve:-55,Vi:-18,Vo:-55,Vr:-37,Vu:-37,Vy:-18,"w,":-55,"W,":-74,"W;":-18,"W:":-18,"w.":-55,"W.":-74,Wa:-37,WA:-24,We:-57,Wo:-57,Wr:-18,Wu:-18,"Y-":-111,"y,":-74,"Y,":-139,"Y;":-92,"Y:":-92,"y.":-74,"Y.":-139,Ya:-92,YA:-74,Ye:-111,Yi:-37,Yo:-111,Yp:-74,Yq:-92,Yu:-74,Yv:-55},leading:.0290069580078125,w:{" ":278,_:500,"-":407,"\u2013":500,"\u2014":1e3,",":278,";":278,":":278,"!":278,"?":556,".":278,"\u2026":1e3,"\xB7":278,"'":278,"\u2018":278,"\u2019":278,'"':463,"\u201C":463,"\u201D":463,"(":296,")":296,"[":333,"]":333,"{":333,"}":333,"@":800,"*":407,"/":371,"\\":371,"&":685,"#":556,"%":1e3,"\u2022":350,"`":259,"^":600,"\u2190":1e3,"\u2192":1e3,"\u2191":722.66,"\u2193":722.66,"+":600,"\xD7":600,"<":600,"=":600,">":600,"|":223,"~":600,"\u25E6":608.4,"\u2610":830.08,"\u2611":830.08,"\u2713":764.16,$:556,0:556,1:556,2:556,3:556,4:556,5:556,6:556,7:556,8:556,9:556,a:574,A:685,b:611,B:704,c:574,C:741,d:611,D:741,e:574,E:648,\u00E9:574,f:333,F:593,g:611,G:759,h:593,H:741,i:258,I:295,j:278,J:556,k:574,K:722,l:258,L:593,m:906,M:907,n:593,N:741,o:611,O:778,p:611,P:667,q:611,Q:778,r:389,R:722,s:537,S:649,t:352,T:611,u:593,U:741,v:520,V:630,w:814,W:944,x:537,X:667,y:519,Y:667,z:519,Z:648}},boldItalic:{ascent:.975006103515625,descent:.2169952392578125,k:{"\u2018\u2018":-95,"\u2019\u2019":-95,"\u2019s":-74,"\u2019t":-18,"A\u2019":-74,AT:-92,Av:-18,AV:-46,Aw:-18,AW:-24,Ay:-18,AY:-74,"F,":-157,"F.":-157,"f\u2019":18,FA:-55,ff:-68,"L\u2019":-74,LT:-92,LV:-92,LW:-55,Ly:-37,LY:-111,"P,":-179,"P.":-179,PA:-74,"r-":-55,"r,":-92,"r.":-92,rc:-18,rd:-18,re:-18,rg:-28,rn:18,ro:-18,rq:-18,RT:-18,RV:-18,RW:-18,RY:-37,"T-":-129,"T,":-111,"T;":-111,"T:":-111,"T.":-111,Ta:-111,TA:-92,Tc:-111,Te:-111,To:-111,Tr:-92,Ts:-111,Tu:-92,Tw:-111,Ty:-111,"V-":-55,"v,":-74,"V,":-129,"V;":-46,"V:":-46,"v.":-74,"V.":-129,Va:-55,VA:-46,Ve:-55,Vi:-18,Vo:-55,Vr:-37,Vu:-37,Vy:-18,"w,":-55,"W,":-74,"W;":-18,"W:":-18,"w.":-55,"W.":-74,Wa:-37,WA:-24,We:-57,Wo:-57,Wr:-18,Wu:-18,"Y-":-111,"y,":-74,"Y,":-139,"Y;":-92,"Y:":-92,"y.":-74,"Y.":-139,Ya:-92,YA:-74,Ye:-111,Yi:-37,Yo:-111,Yp:-74,Yq:-92,Yu:-74,Yv:-55},leading:.0290069580078125,w:{" ":278,_:500,"-":407,"\u2013":500,"\u2014":1e3,",":278,";":278,":":278,"!":296,"?":574,".":278,"\u2026":1e3,"\xB7":278,"'":278,"\u2018":278,"\u2019":278,'"':481,"\u201C":481,"\u201D":481,"(":296,")":296,"[":333,"]":333,"{":333,"}":333,"@":800,"*":407,"/":389,"\\":389,"&":685,"#":556,"%":963,"\u2022":350,"`":259,"^":600,"\u2190":1e3,"\u2192":1e3,"\u2191":722.66,"\u2193":722.66,"+":600,"\xD7":600,"<":600,"=":600,">":600,"|":222,"~":600,"\u25E6":608.4,"\u2610":830.08,"\u2611":830.08,"\u2713":764.16,$:556,0:556,1:556,2:556,3:556,4:556,5:556,6:556,7:556,8:556,9:556,a:574,A:685,b:611,B:722,c:556,C:741,d:611,D:741,e:574,E:667,\u00E9:574,f:352,F:593,g:611,G:759,h:611,H:741,i:259,I:296,j:259,J:556,k:556,K:722,l:259,L:574,m:907,M:907,n:611,N:741,o:593,O:778,p:611,P:667,q:611,Q:778,r:389,R:722,s:519,S:648,t:370,T:611,u:611,U:741,v:519,V:630,w:815,W:944,x:519,X:667,y:519,Y:648,z:500,Z:648}},italic:{ascent:.957000732421875,descent:.2129974365234375,k:{"\u2018\u2018":-95,"\u2019\u2019":-95,"\u2019s":-74,"\u2019t":-18,"A\u2019":-74,AT:-92,Av:-18,AV:-46,Aw:-18,AW:-24,Ay:-18,AY:-74,"F,":-157,"F.":-157,"f\u2019":18,FA:-55,ff:-15,fi:1,fl:1,"L\u2019":-74,LT:-92,LV:-92,LW:-55,Ly:-37,LY:-111,"P,":-179,"P.":-179,PA:-74,"r-":-55,"r,":-92,"r.":-92,rc:-18,rd:-18,re:-18,rg:-28,rn:18,ro:-18,rq:-18,RT:-18,RV:-18,RW:-18,RY:-37,"T-":-129,"T,":-111,"T;":-111,"T:":-111,"T.":-111,Ta:-111,TA:-92,Tc:-111,Te:-111,To:-111,Tr:-92,Ts:-111,Tu:-92,Tw:-111,Ty:-111,"V-":-55,"v,":-74,"V,":-129,"V;":-46,"V:":-46,"v.":-74,"V.":-129,Va:-55,VA:-46,Ve:-55,Vi:-18,Vo:-55,Vr:-37,Vu:-37,Vy:-18,"w,":-55,"W,":-74,"W;":-18,"W:":-18,"w.":-55,"W.":-74,Wa:-37,WA:-24,We:-57,Wo:-57,Wr:-18,Wu:-18,"Y-":-111,"y,":-74,"Y,":-139,"Y;":-92,"Y:":-92,"y.":-74,"Y.":-139,Ya:-92,YA:-74,Ye:-111,Yi:-37,Yo:-111,Yp:-74,Yq:-92,Yu:-74,Yv:-55},leading:.0279998779296875,w:{" ":278,_:500,"-":389,"\u2013":500,"\u2014":1e3,",":278,";":278,":":278,"!":259,"?":556,".":278,"\u2026":1e3,"\xB7":278,"'":278,"\u2018":278,"\u2019":278,'"':426,"\u201C":426,"\u201D":426,"(":259,")":259,"[":259,"]":259,"{":333,"}":333,"@":800,"*":352,"/":333,"\\":333,"&":630,"#":556,"%":926,"\u2022":500,"`":222,"^":600,"\u2190":1e3,"\u2192":1e3,"\u2191":645.02,"\u2193":645.02,"+":600,"\xD7":600,"<":600,"=":600,">":600,"|":222,"~":600,"\u25E6":578.13,"\u2610":830.08,"\u2611":830.08,"\u2713":764.16,$:556,0:556,1:556,2:556,3:556,4:556,5:556,6:556,7:556,8:556,9:556,a:519,A:667,b:593,B:685,c:537,C:722,d:593,D:704,e:537,E:611,\u00E9:537,f:296,F:574,g:574,G:759,h:556,H:722,i:222,I:259,j:222,J:519,k:481,K:667,l:222,L:556,m:852,M:870,n:556,N:722,o:574,O:759,p:593,P:648,q:593,Q:759,r:333,R:685,s:481,S:648,t:315,T:574,u:556,U:722,v:481,V:611,w:759,W:926,x:481,X:611,y:481,Y:611,z:444,Z:611}},regular:{ascent:.951995849609375,descent:.2129974365234375,k:{"\u2018\u2018":-95,"\u2019\u2019":-95,"\u2019s":-74,"\u2019t":-18,"A\u2019":-74,AT:-92,Av:-18,AV:-46,Aw:-18,AW:-24,Ay:-18,AY:-74,"F,":-157,"F.":-157,"f\u2019":18,FA:-55,ff:-15,"L\u2019":-74,LT:-92,LV:-92,LW:-55,Ly:-37,LY:-111,"P,":-179,"P.":-179,PA:-74,"r-":-55,"r,":-92,"r.":-92,rc:-18,rd:-18,re:-18,rg:-28,rn:18,ro:-18,rq:-18,RT:-18,RV:-18,RW:-18,RY:-37,"T-":-129,"T,":-111,"T;":-111,"T:":-111,"T.":-111,Ta:-111,TA:-92,Tc:-111,Te:-111,To:-111,Tr:-92,Ts:-111,Tu:-92,Tw:-111,Ty:-111,"V-":-55,"v,":-74,"V,":-129,"V;":-46,"V:":-46,"v.":-74,"V.":-129,Va:-55,VA:-46,Ve:-55,Vi:-18,Vo:-55,Vr:-37,Vu:-37,Vy:-18,"w,":-55,"W,":-74,"W;":-18,"W:":-18,"w.":-55,"W.":-74,Wa:-37,WA:-24,We:-57,Wo:-57,Wr:-18,Wu:-18,"Y-":-111,"y,":-74,"Y,":-139,"Y;":-92,"Y:":-92,"y.":-74,"Y.":-139,Ya:-92,YA:-74,Ye:-111,Yi:-37,Yo:-111,Yp:-74,Yq:-92,Yu:-74,Yv:-55},leading:.0279998779296875,w:{" ":278,_:500,"-":389,"\u2013":500,"\u2014":1e3,",":278,";":278,":":278,"!":259,"?":556,".":278,"\u2026":1e3,"\xB7":278,"'":278,"\u2018":278,"\u2019":278,'"':426,"\u201C":426,"\u201D":426,"(":259,")":259,"[":259,"]":259,"{":333,"}":333,"@":800,"*":352,"/":333,"\\":333,"&":630,"#":556,"%":1e3,"\u2022":350,"`":222,"^":600,"\u2190":1e3,"\u2192":1e3,"\u2191":645.02,"\u2193":645.02,"+":600,"\xD7":600,"<":600,"=":600,">":600,"|":222,"~":600,"\u25E6":578.13,"\u2610":830.08,"\u2611":830.08,"\u2713":764.16,$:556,0:556,1:556,2:556,3:556,4:556,5:556,6:556,7:556,8:556,9:556,a:537,A:648,b:593,B:685,c:537,C:722,d:593,D:704,e:537,E:611,\u00E9:537,f:296,F:574,g:574,G:759,h:556,H:722,i:222,I:259,j:222,J:519,k:519,K:667,l:222,L:556,m:853,M:871,n:556,N:722,o:574,O:760,p:593,P:648,q:593,Q:760,r:333,R:685,s:500,S:648,t:315,T:574,u:556,U:722,v:500,V:611,w:758,W:926,x:518,X:611,y:500,Y:648,z:480,Z:611}}},fallback:{"\u2190":[.966796875,.2109375,0],"\u2192":[.966796875,.2109375,0],"\u2191":[.966796875,.2109375,0],"\u2193":[.966796875,.2109375,0],"\u25E6":[.966796875,.2109375,0],"\u2610":[.66650390625,.25,.08349609375],"\u2611":[.66650390625,.25,.08349609375],"\u2713":[.966796875,.2109375,0]}},"Patrick Hand":{faces:{regular:{ascent:1.0420074462890625,descent:.3119964599609375,k:{},leading:0,w:{" ":230,_:571,"-":404,"\u2013":420,"\u2014":648,",":202,";":232,":":232,"!":247,"?":368,".":214,"\u2026":571,"\xB7":200,"'":164,"\u2018":190,"\u2019":220,'"':303,"\u201C":315,"\u201D":303,"(":334,")":364,"[":303,"]":296,"{":339,"}":328,"@":550,"*":404,"/":423,"\\":420,"&":530,"#":457,"%":643,"\u2022":352,"`":220,"^":370,"\u2190":1e3,"\u2192":1e3,"\u2191":645.02,"\u2193":645.02,"+":480,"\xD7":490,"<":396,"=":572,">":400,"|":176,"~":529,"\u25E6":578.13,"\u2610":830.08,"\u2611":830.08,"\u2713":764.16,$:507,0:448,1:363,2:468,3:448,4:375,5:423,6:399,7:495,8:433,9:367,a:392,A:488,b:412,B:507,c:388,C:548,d:390,D:475,e:398,E:442,\u00E9:398,f:359,F:375,g:445,G:480,h:420,H:468,i:224,I:235,j:235,J:370,k:415,K:523,l:266,L:372,m:680,M:595,n:452,N:532,o:403,O:556,p:428,P:481,q:463,Q:655,r:385,R:454,s:385,S:459,t:344,T:468,u:400,U:550,v:400,V:562,w:463,W:616,x:448,X:601,y:423,Y:442,z:428,Z:507}}},fallback:{"\u2190":[.966796875,.2109375,0],"\u2192":[.966796875,.2109375,0],"\u2191":[.966796875,.2109375,0],"\u2193":[.966796875,.2109375,0],"\u25E6":[.966796875,.2109375,0],"\u2610":[.66650390625,.25,.08349609375],"\u2611":[.66650390625,.25,.08349609375],"\u2713":[.966796875,.2109375,0]}}};var _t="Helvetica Neue",Ae="Helvetica Neue, Helvetica, Arial, sans-serif",Dt=Object.keys(dt).filter(t=>t!==_t).sort();function Yt(t){if(!t)return null;let e=t.toLowerCase();return Dt.find(n=>n.toLowerCase()===e)??null}function te(t){return dt[Yt(t)??_t]}function Ot(t,e,n){let i=e?n?"boldItalic":"bold":n?"italic":"regular";return t.faces[i]?i:"regular"}function ee(t){if(!t)return Ae;let e=[...Yt(t)??t].filter(n=>!`"'<>&;{}\\`.includes(n)).join("");return e===""?Ae:`${/^[\p{L}\p{N} -]+$/u.test(e)?e:`'${e}'`}, ${Ae}`}function Rn(t,e,n="regular",i){let r=te(i),o=r.faces[n]??r.faces.regular,s=o.w.n,l=0,a="";for(let h of t)l+=o.w[h]??s,a&&(l+=o.k[a+h]??0),a=h;return l*e/1e3}function Ai(t,e){let n=te(e).faces.regular,i=Math.round(n.ascent*t),r=Math.round(n.descent*t),o=Math.round(n.leading*t);return[i+Math.ceil(n.descent*t-1e-9),i+r+o]}function Ee(t,e){return t===" "?!0:(t==="/"||t==="-")&&e!==""&&!/[\d\s/-]/.test(e)}function Ei(t){let e=[...t],n=[],i="";return e.forEach((r,o)=>{i+=r;let s=e[o+1]??"";Ee(r,s)&&s!==" "&&(n.push(i),i="")}),(i||n.length===0)&&n.push(i),n}function Ii(t,e,n,i="regular",r){let o=l=>Rn(l,e,i,r),s=[];for(let l of t.split(/\r\n|\n|\r|\u2028|\u2029/)){let a="";for(let h of Ei(l)){let u=a+h;for(a===""||o(u.trimEnd())<=n?a=u:(s.push(a),a=h);o(a.trimEnd())>n&&[...a.trimEnd()].length>1;){let c=[...a],m=c.length-1;for(;m>1&&o(c.slice(0,m).join(""))>n;)m--;s.push(c.slice(0,m).join("")),a=c.slice(m).join("")}}s.push(a)}return s}function Tn(t,e,n,i){if(t==="")return{width:0,height:0};let r=Ii(t,e,n,"regular",i),o=Math.max(...r.map(a=>Rn(a.trimEnd(),e,"regular",i))),[s,l]=Ai(e,i);return{width:Math.ceil(o-1e-9),height:Math.ceil(s+l*(r.length-1)-1e-9)}}var Li=["bold","boldItalic","italic","regular"];function Le(t,e){return`${t.toLowerCase().replaceAll(" ","-")}-${e}.woff2`}function Fe(t){return Li.filter(e=>dt[t]?.faces[e]!==void 0)}function ne(t){let e=new Set,n=i=>{for(let r of i){let o=Yt(r.style.font);o&&e.add(o)}};n(t.elements);for(let i of t.symbols??[])n(i.elements);return Dt.filter(i=>e.has(i))}function Fi(){try{let t=typeof document>"u"?null:document.currentScript;if(t?.src)return new URL("fonts/",t.src).href;let e=void 0;return e?new URL("fonts/",e).href:null}catch{return null}}var Ie=Fi(),vn=new Set;function Sn(t){Ie=t.endsWith("/")?t:`${t}/`}function ie(t,e={}){if(!(typeof document>"u"||typeof FontFace>"u"||!document.fonts))for(let n of t){let i=Yt(n);if(!i||vn.has(i))continue;let r=e[i];if(!(!r&&!Ie)){vn.add(i);for(let o of Fe(i)){let s=r?.[o],l;if(s)l=Uint8Array.from(atob(s),h=>h.charCodeAt(0));else if(!r)l=`url(${JSON.stringify(Ie+Le(i,o))}) format("woff2")`;else continue;let a={weight:o.startsWith("bold")?"bold":"normal",style:o==="italic"||o==="boldItalic"?"italic":"normal"};document.fonts.add(new FontFace(i,l,a))}}}}var An=.5522847498307936,A=class t{constructor(){w(this,"segments",[])}get isEmpty(){return this.segments.length===0}moveTo(e){return this.segments.push({op:"M",p:e}),this}lineTo(e){return this.segments.push({op:"L",p:e}),this}quadTo(e,n){return this.segments.push({op:"Q",c:n,p:e}),this}curveTo(e,n,i){return this.segments.push({op:"C",c1:n,c2:i,p:e}),this}close(){return this.segments.push({op:"Z"}),this}addPath(e){return this.segments.push(...e.segments),this}addLines(e){return e.forEach((n,i)=>i===0?this.moveTo(n):this.lineTo(n)),this}static rect(e){return new t().addLines([{x:e.x,y:e.y},{x:e.x+e.width,y:e.y},{x:e.x+e.width,y:e.y+e.height},{x:e.x,y:e.y+e.height}]).close()}addEllipse(e){let n=e.x+e.width/2,i=e.y+e.height/2,r=e.width/2,o=e.height/2,s=r*An,l=o*An;return this.moveTo({x:n+r,y:i}),this.curveTo({x:n,y:i+o},{x:n+r,y:i+l},{x:n+s,y:i+o}),this.curveTo({x:n-r,y:i},{x:n-s,y:i+o},{x:n-r,y:i+l}),this.curveTo({x:n,y:i-o},{x:n-r,y:i-l},{x:n-s,y:i-o}),this.curveTo({x:n+r,y:i},{x:n+s,y:i-o},{x:n+r,y:i-l}),this.close()}static ellipse(e){return new t().addEllipse(e)}translated(e,n){let i=o=>({x:o.x+e,y:o.y+n}),r=new t;return r.segments=this.segments.map(o=>{switch(o.op){case"M":case"L":return{op:o.op,p:i(o.p)};case"Q":return{op:"Q",c:i(o.c),p:i(o.p)};case"C":return{op:"C",c1:i(o.c1),c2:i(o.c2),p:i(o.p)};case"Z":return o}}),r}contours(){let e=[],n=[],i={x:0,y:0};for(let r of this.segments){let o=n.length?n[n.length-1]:i;switch(r.op){case"M":n.length>1&&e.push(n),i=r.p,n=[r.p];break;case"L":n.push(r.p);break;case"Q":for(let s=1;s<=12;s++){let l=s/12,a=1-l;n.push({x:a*a*o.x+2*a*l*r.c.x+l*l*r.p.x,y:a*a*o.y+2*a*l*r.c.y+l*l*r.p.y})}break;case"C":for(let s=1;s<=16;s++){let l=s/16,a=1-l;n.push({x:a*a*a*o.x+3*a*a*l*r.c1.x+3*a*l*l*r.c2.x+l*l*l*r.p.x,y:a*a*a*o.y+3*a*a*l*r.c1.y+3*a*l*l*r.c2.y+l*l*l*r.p.y})}break;case"Z":n.push(i),n.length>1&&e.push(n),n=[i];break}}return n.length>1&&e.push(n),e}trimmed(e){let n=this.contours().map(o=>new Mt(o)),i=Math.min(Math.max(e,0),1)*n.reduce((o,s)=>o+s.length,0),r=new t;for(let o of n){if(!(i>0))break;r.moveTo(o.points[0]);for(let s=1;s<o.points.length;s++){let l=o.lengths[s]-o.lengths[s-1];if(l<=i){r.lineTo(o.points[s]),i-=l;continue}let a=o.points[s-1],h=o.points[s],u=i/l;r.lineTo({x:a.x+(h.x-a.x)*u,y:a.y+(h.y-a.y)*u}),i=0;break}}return r}data(){let e=[];for(let n of this.segments)switch(n.op){case"M":e.push(`M${k(n.p.x)} ${k(n.p.y)}`);break;case"L":e.push(`L${k(n.p.x)} ${k(n.p.y)}`);break;case"Q":e.push(`Q${k(n.c.x)} ${k(n.c.y)} ${k(n.p.x)} ${k(n.p.y)}`);break;case"C":e.push(`C${k(n.c1.x)} ${k(n.c1.y)} ${k(n.c2.x)} ${k(n.c2.y)} ${k(n.p.x)} ${k(n.p.y)}`);break;case"Z":e.push("Z");break}return e.join(" ")}};function Ct(t){return t<0?-Math.round(-t):Math.round(t)}function k(t){let e=Ct(t*100)/100;return Number.isInteger(e)?String(e===0?0:e):String(e)}var Mt=class{constructor(e){w(this,"points");w(this,"lengths");this.points=e;let n=0;this.lengths=e.map((i,r)=>(r>0&&(n+=Math.hypot(i.x-e[r-1].x,i.y-e[r-1].y)),n))}get length(){return this.lengths.length?this.lengths[this.lengths.length-1]:0}point(e){if(this.points.length<=1||!(this.length>0))return this.points[0]??{x:0,y:0};let n=Math.min(Math.max(e,0),1)*this.length,i=1;for(;i<this.lengths.length-1&&this.lengths[i]<n;)i++;let r=this.lengths[i]-this.lengths[i-1],o=r>0?(n-this.lengths[i-1])/r:0,s=this.points[i-1],l=this.points[i];return{x:s.x+(l.x-s.x)*o,y:s.y+(l.y-s.y)*o}}},N=t=>t.x+t.width/2,Z=t=>t.y+t.height/2,G=t=>t.x+t.width,B=t=>t.y+t.height;function De(t,e){if(!t)return{...e};let n=Math.min(t.x,e.x),i=Math.min(t.y,e.y);return{x:n,y:i,width:Math.max(G(t),G(e))-n,height:Math.max(B(t),B(e))-i}}function Rt(t,e,n){return{x:t.x+e,y:t.y+n,width:t.width-2*e,height:t.height-2*n}}function it(t,e,n){if(n===0)return t;let i=t.x-e.x,r=t.y-e.y;return{x:e.x+i*Math.cos(n)-r*Math.sin(n),y:e.y+i*Math.sin(n)+r*Math.cos(n)}}function Ye(t,e){let n=1-e;return{x:t[0].x*(n*n*n)+t[1].x*(3*e*n*n)+t[2].x*(3*e*e*n)+t[3].x*(e*e*e),y:t[0].y*(n*n*n)+t[1].y*(3*e*n*n)+t[2].y*(3*e*e*n)+t[3].y*(e*e*e)}}function En(t,e){let n=[t[0]];for(let i=0;i<Math.floor((t.length-1)/3);i++){let r=t.slice(3*i,3*i+4),o=0;for(let l=1;l<r.length;l++)o+=Math.hypot(r[l].x-r[l-1].x,r[l].y-r[l-1].y);let s=Math.min(400,Math.max(4,Math.ceil(o/Math.max(e,.5))));for(let l=1;l<=s;l++)n.push(Ye(r,l/s))}return n}var D=t=>({x:t.x,y:t.y,width:t.width,height:t.height}),V=t=>t.rotation??0,Vt=t=>({x:t.x+t.width/2,y:t.y+t.height/2}),j=(t,e)=>it(e,Vt(t),V(t)),In=(t,e)=>it(e,Vt(t),-V(t));function Ln(t){let e=D(t);if(V(t)===0)return e;let n=[{x:e.x,y:e.y},{x:G(e),y:e.y},{x:G(e),y:B(e)},{x:e.x,y:B(e)}].map(l=>j(t,l)),i=n.map(l=>l.x),r=n.map(l=>l.y),o=Math.min(...i),s=Math.min(...r);return{x:o,y:s,width:Math.max(...i)-o,height:Math.max(...r)-s}}function Fn(t,e){if(!Se(t.style.stroke))return t;let n=C(t),r=(t.style.fillStyle==="solid"||t.style.fillStyle==="grid")&&t.style.fill.a>=.5&&Pt(t.style.fill)>.5;return n.style.stroke=Pt(e)>.5&&r?{...ct}:{...e},n}function Tt(t){if(t.kind!=="path"||!t.subpaths)return[];let e=[];for(let n of t.subpaths){if(n.coords.length<8||(n.coords.length-2)%6!==0)continue;let i=[];for(let r=0;r<n.coords.length;r+=2)i.push({x:t.x+n.coords[r]*t.width,y:t.y+n.coords[r+1]*t.height});e.push({closed:n.closed,points:i})}return e}function Oe(t){let e=new A;for(let n of Tt(t)){e.moveTo(n.points[0]);for(let i=0;i<(n.points.length-1)/3;i++)e.curveTo(n.points[3*i+3],n.points[3*i+1],n.points[3*i+2]);n.closed&&e.close()}return e}function Di(t,e){let n=D(t),i=e==="top"?{x:N(n),y:n.y}:e==="right"?{x:G(n),y:Z(n)}:e==="bottom"?{x:N(n),y:B(n)}:{x:n.x,y:Z(n)};return j(t,i)}function Yi(t){let e=[];for(let n=0;n+3<t.length;n+=3){let i=t.slice(n,n+4);for(let r=0;r<16;r++)e.push(Ye(i,r/16))}return e.push(t[t.length-1]),e}function Oi(t,e,n){let i=null,r=null;for(let s of Tt(t)){let l=Yi(s.points),a=l.length,h=s.closed?a:a-1;for(let u=0;u<h;u++){let c=l[u],m=l[(u+1)%a],f={x:m.x-c.x,y:m.y-c.y},d={x:c.x-e.x,y:c.y-e.y},p=f.x*n.y-n.x*f.y;if(p===0)continue;let y=(f.x*d.y-f.y*d.x)/p,g=(n.x*d.y-n.y*d.x)/p;y>0&&g>=0&&g<=1&&((i===null||y<i)&&(i=y),y<=1&&(r===null||y>r)&&(r=y))}}let o=r??i;return o===null?null:{x:e.x+n.x*o,y:e.y+n.y*o}}function Ci(t,e){let n=D(t),i=Vt(t),r=In(t,e),o=r.x-i.x,s=r.y-i.y;if(!((o!==0||s!==0)&&n.width>0&&n.height>0))return i;if(t.kind==="path"){let u=Oi(t,i,{x:o,y:s});if(u)return j(t,u)}let l=n.width/2,a=n.height/2,h;return t.kind==="ellipse"?h=1/Math.sqrt(o*o/(l*l)+s*s/(a*a)):t.kind==="diamond"?h=1/(Math.abs(o)/l+Math.abs(s)/a):h=Math.min(o!==0?l/Math.abs(o):1/0,s!==0?a/Math.abs(s):1/0),j(t,{x:i.x+o*h,y:i.y+s*h})}function Dn(t,e){let n=t.elementID?e.get(t.elementID):void 0;return n?Vt(n):{x:t.x,y:t.y}}function Vi(t,e){let n=D(t);return j(t,{x:n.x+e.x*n.width,y:n.y+e.y*n.height})}function Yn(t,e,n){let i=t.elementID?n.get(t.elementID):void 0;if(!i)return{x:t.x,y:t.y};let r=t.portIndex,o=i.ports??[];return typeof r=="number"&&Number.isInteger(r)&&r>=0&&r<o.length?Vi(i,o[r]):t.port?Di(i,t.port):Ci(i,e)}function _(t,e){let n=t.connector;return n?[Yn(n.start,Dn(n.end,e),e),Yn(n.end,Dn(n.start,e),e)]:[{x:0,y:0},{x:0,y:0}]}function rt(t){if(t.kind==="polyline")return t.points;let e=[];for(let n=0;n<=24;n++){let i=n/24,r=1-i;e.push({x:r*r*r*t.a.x+3*r*r*i*t.b.x+3*r*i*i*t.c.x+i*i*i*t.d.x,y:r*r*r*t.a.y+3*r*r*i*t.b.y+3*r*i*i*t.c.y+i*i*i*t.d.y})}return e}function ot(t,e){let n=t.connector;if(!n)return{kind:"polyline",points:[]};let[i,r]=_(t,e),o=r.x-i.x,s=r.y-i.y,l=Math.abs(o)>=Math.abs(s);switch(n.routing){case"straight":return{kind:"polyline",points:[i,r]};case"curved":return l?{kind:"cubic",a:i,b:{x:i.x+o/2,y:i.y},c:{x:r.x-o/2,y:r.y},d:r}:{kind:"cubic",a:i,b:{x:i.x,y:i.y+s/2},c:{x:r.x,y:r.y-s/2},d:r};case"elbow":{let a=c=>c===null?null:c==="top"||c==="bottom",h=a(n.start.port)??!l,u=a(n.end.port)??!l;if(h&&u){let c=i.y+s/2;return{kind:"polyline",points:[i,{x:i.x,y:c},{x:r.x,y:c},r]}}if(!h&&!u){let c=i.x+o/2;return{kind:"polyline",points:[i,{x:c,y:i.y},{x:c,y:r.y},r]}}return h?{kind:"polyline",points:[i,{x:i.x,y:r.y},r]}:{kind:"polyline",points:[i,{x:r.x,y:i.y},r]}}}}function On(t,e,n){let i=Math.atan2(t.y-e.y,t.x-e.x),r=Math.PI/7,o=s=>({x:t.x-n*Math.cos(i+s),y:t.y-n*Math.sin(i+s)});return[o(r),o(-r)]}function Cn(t,e){let n=rt(ot(t,e));if(n.length===0)return{x:0,y:0,width:0,height:0};let i=n[0].x,r=n[0].y,o=i,s=r;for(let l of n)i=Math.min(i,l.x),r=Math.min(r,l.y),o=Math.max(o,l.x),s=Math.max(s,l.y);return{x:i,y:r,width:o-i,height:s-r}}function Vn(t,e){let n=rt(ot(t,e));if(n.length<=1)return n[0]??{x:0,y:0};let i=[],r=0;for(let s=0;s<n.length-1;s++){let l=Math.hypot(n[s+1].x-n[s].x,n[s+1].y-n[s].y);i.push(l),r+=l}let o=r/2;for(let s=0;s<i.length;s++){let l=i[s];if(o<=l||s===i.length-1){let a=l===0?0:o/l;return{x:n[s].x+(n[s+1].x-n[s].x)*a,y:n[s].y+(n[s+1].y-n[s].y)*a}}o-=l}return n[0]}function J(t){let e=new Map;for(let n of t.elements)e.has(n.id)||e.set(n.id,n);return e}function Ve(t,e,n){let i=t[1]+n>>>0,r=i<t[1]?1:0;return[t[0]+e+r>>>0,i]}function $i(t,e){let n=t&65535,i=t>>>16,r=e&65535,o=e>>>16,s=n*r,l=n*o,a=i*r,h=i*o,u=l+a,c=s+u%65536*65536;return[h+Math.floor(u/65536)+Math.floor(c/4294967296)>>>0,c>>>0]}function $e(t,e,n){let i=$i(t[1],n);return[i[0]+Math.imul(t[0],n)+Math.imul(t[1],e)>>>0,i[1]]}function Ce(t,e){let n=(t[1]>>>e|t[0]<<32-e)>>>0;return[(t[0]^t[0]>>>e)>>>0,(t[1]^n)>>>0]}function $n(t){return t=$e(Ce(t,30),3210233709,484763065),t=$e(Ce(t,27),2496678331,321982955),Ce(t,31)}var st=class{constructor(e){w(this,"state");this.state=Ve([0,e>>>0],2654435769,2135587861)}next(){return this.state=Ve(this.state,2654435769,2135587861),$n(this.state)}top53(){let[e,n]=this.next();return e*2097152+(n>>>11)}signed(){return Math.floor(this.top53())/2**52-1}unit(){return this.top53()/2**53}};function re(t,e){let n=Ve([0,t>>>0],...Wi(e));return n=$n(n),Math.max(1,n[1]>>>0)}function Wi(t){let e=$e([0,t>>>0],2654435769,2135587861);return[e[0],e[1]]}var Wn=(t,e,n)=>t.signed()*e*n;function tt(t,e,n,i,r,o,s){let l=Math.hypot(e.x-t.x,e.y-t.y);if(!(l>.5))return;let a=l<200?1:l>500?.4:-.0016668*l+1.233334,h=l<20?l/10:2;for(let u=0;u<2;u++){let c=(u===0?1:.5)*a,m=()=>Wn(n,h,i)*c,f=n.unit()*.4+.3,d=Wn(n,l/60,i)*r*a,p=e.x-t.x,y=e.y-t.y,g=-y/l,P=p/l,b=o?t:{x:t.x+m(),y:t.y+m()},T=o?e:{x:e.x+m(),y:e.y+m()},v=t.x+p*f*.66+g*d+m()*.5,x=t.y+y*f*.66+P*d+m()*.5,M=t.x+p*(.5+f*.5)+g*d+m()*.5,S=t.y+y*(.5+f*.5)+P*d+m()*.5;s.moveTo(b),s.curveTo(T,{x:v,y:x},{x:M,y:S})}}function We(t,e,n,i){let r=new A;for(let o=0;o<t.length;o++)tt(t[o],t[(o+1)%t.length],e,n,i,!1,r);return r}function zn(t,e,n){let i=new A,r=t.x+t.width/2,o=t.y+t.height/2,s=t.width/2,l=t.height/2;if(!(s>.5&&l>.5))return i;let a=Math.max(8,Math.min(24,Math.trunc((s+l)/6))),h=Math.min(2.5,(s+l)/25)*n;for(let u=0;u<2;u++){let c=e.unit()*2*Math.PI,m=2*Math.PI*(u===0?1:1.04),f=Math.trunc(a*m/(2*Math.PI))+1,d=[];for(let p=0;p<f;p++){let y=c+m*p/a,g=e.signed()*h,P=e.signed()*h;d.push({x:r+s*Math.cos(y)+g,y:o+l*Math.sin(y)+P})}zi(d,i)}return i}function zi(t,e){if(!(t.length<=2)){e.moveTo(t[0]);for(let n=0;n<t.length-1;n++){let i=t[Math.max(n-1,0)],r=t[n],o=t[n+1],s=t[Math.min(n+2,t.length-1)];e.curveTo(o,{x:r.x+(o.x-i.x)/6,y:r.y+(o.y-i.y)/6},{x:o.x-(s.x-r.x)/6,y:o.y-(s.y-r.y)/6})}}}var ze=-41*Math.PI/180;function Gn(t,e,n){if(!(n>0))return[];let i=Math.cos(e),r=Math.sin(e),o=t.filter(m=>m.length>=3).map(m=>m.map(f=>({x:f.x*i+f.y*r,y:-f.x*r+f.y*i}))),s=o.flat();if(s.length===0)return[];let l=1/0,a=-1/0;for(let m of s)l=Math.min(l,m.y),a=Math.max(a,m.y);let h=(m,f)=>({x:m*i-f*r,y:m*r+f*i}),u=[],c=l+n/2;for(;c<a;){let m=[];for(let f of o)for(let d=0;d<f.length;d++){let p=f[d],y=f[(d+1)%f.length];(p.y<=c&&c<y.y||y.y<=c&&c<p.y)&&m.push(p.x+(c-p.y)/(y.y-p.y)*(y.x-p.x))}m.sort((f,d)=>f-d);for(let f=0;f+1<m.length;f+=2)m[f+1]-m[f]>.5&&u.push([h(m[f],c),h(m[f+1],c)]);c+=n}return u}var Un=2,Ge=.75,Gi=.8,Nn=.6;function Xn(t,e){return[...Zn(t,e,!1),...Zn(t,e,!0)]}function Zn(t,e,n){if(!(e>0))return[];let i=h=>n?{x:h.y,y:h.x}:h,r=t.filter(h=>h.length>=3).map(h=>h.map(i)),o=r.flat().map(h=>h.y);if(o.length===0)return[];let s=Math.min(...o),l=Math.max(...o),a=[];for(let h=Math.floor(s/e)*e;h<l-.5;h+=e){if(!(h>s+.5))continue;let u=[];for(let c of r)for(let m=0;m<c.length;m++){let f=c[m],d=c[(m+1)%c.length];(f.y<=h&&h<d.y||d.y<=h&&h<f.y)&&u.push(f.x+(h-f.y)/(d.y-f.y)*(d.x-f.x))}u.sort((c,m)=>c-m);for(let c=0;c+1<u.length;c+=2)u[c+1]-u[c]>.5&&a.push([i({x:u[c],y:h}),i({x:u[c+1],y:h})])}return a}function jn(t){return .2126*t.r+.7152*t.g+.0722*t.b>.5?{r:t.r*.84,g:t.g*.84,b:t.b*.8,a:t.a}:{r:t.r+(1-t.r)*.25,g:t.g+(1-t.g)*.25,b:t.b+(1-t.b)*.25,a:t.a}}function Be(t){return t.style.fillStyle==="grid"&&t.style.fill.a>0&&["rectangle","ellipse","diamond","path"].includes(t.kind)}function se(t,e,n){let i=(Math.imul(t,668265261)^Math.imul(e,374761393)^Math.imul(n,2654435761))>>>0;return i=Math.imul(i^i>>>15,2246822507)>>>0,i=Math.imul(i^i>>>13,3266489909)>>>0,i=(i^i>>>16)>>>0,i/4294967296}function Jn(t,e,n){let i=n/Un;return{x:(t+.5+(se(t,e,1)-.5)*Nn)*i,y:(e+.5+(se(t,e,2)-.5)*Nn)*i}}function Bi(t,e,n,i){let r=1/0;for(let o=-1;o<=1;o++)for(let s=-1;s<=1;s++){if(o===0&&s===0)continue;let l=Jn(t+o,e+s,i);r=Math.min(r,Math.hypot(l.x-n.x,l.y-n.y))}return r*Gi}function Ni(t,e,n){let i=Math.cos(e),r=Math.sin(e),o=n*.8,s=n*.5;return[-1,0,1].map(l=>{let a=t.x-r*s*l,h=t.y+i*s*l;return[{x:a-i*o,y:h-r*o},{x:a+i*o,y:h+r*o}]})}function Zi(t,e){let n=!1;for(let i of t){if(i.length<3)continue;let r=i.length-1;for(let o=0;o<i.length;o++){let s=i[o],l=i[r];s.y>e.y!=l.y>e.y&&e.x<(l.x-s.x)*(e.y-s.y)/(l.y-s.y)+s.x&&(n=!n),r=o}}return n}function Ui(t,e){let n=1/0;for(let i of e)if(!(i.length<2))for(let r=0;r<i.length;r++){let o=i[r],s=i[(r+1)%i.length],l=s.x-o.x,a=s.y-o.y,h=l*l+a*a,u=h>0?Math.max(0,Math.min(1,((t.x-o.x)*l+(t.y-o.y)*a)/h)):0;n=Math.min(n,Math.hypot(t.x-(o.x+u*l),t.y-(o.y+u*a)))}return n}var Xi=(t,e)=>e.x>=t.x&&e.x<t.x+t.width&&e.y>=t.y&&e.y<t.y+t.height,oe=new Map;function Hn(t){if(t.length===0)return[];let e=t.map(r=>[r.kind,r.x,r.y,r.width,r.height,r.rotation??0,mt(r),JSON.stringify(r.subpaths??null),r.style.stroke.r,r.style.stroke.g,r.style.stroke.b,r.style.stroke.a,r.style.roughness,r.style.strokeWidth].join(",")).join(";"),n=oe.get(e);if(n)return n;let i=ji(t);return oe.size>=16&&oe.clear(),oe.set(e,i),i}function ji(t){let e=t.map(o=>{let s=Ne(o).map(f=>f.map(d=>j(o,d))),l=s.flat(),a=l.map(f=>f.x),h=l.map(f=>f.y),u=a.length?Math.min(...a):0,c=h.length?Math.min(...h):0,m={x:u,y:c,width:(a.length?Math.max(...a):0)-u,height:(h.length?Math.max(...h):0)-c};return{contours:s,box:m,cell:mt(o),element:o}}),n=e.map(()=>[]),i=new Set;for(let o of e){let s=o.cell/Un,l=Rt(o.box,-o.cell,-o.cell),a=Math.floor(l.x/s),h=Math.ceil((l.x+l.width)/s),u=Math.floor(l.y/s),c=Math.ceil((l.y+l.height)/s),m=Ge*o.cell;for(let f=a;f<h;f++)for(let d=u;d<c;d++){let p=`${o.cell}|${f}|${d}`;if(i.has(p))continue;i.add(p);let y=Jn(f,d,o.cell),g=1/0,P=-1;for(let x=0;x<e.length;x++){let M=e[x];if(!Xi(Rt(M.box,-m,-m),y))continue;if(Zi(M.contours,y)){g=0;break}let S=Ui(y,M.contours);S<g&&(g=S,P=x)}if(!(g>0&&g<=m&&P>=0))continue;let b=se(f,d,3)*Math.PI,T=Bi(f,d,y,o.cell),v=Math.trunc(se(f,d,4)*4294967296)>>>0;for(let[x,M]of Ni(y,b,T))n[P].push([x,M,v])}}let r=[];return e.forEach((o,s)=>{if(n[s].length===0)return;let l=o.element,a=new A;for(let[h,u,c]of n[s])l.style.roughness<=0?a.moveTo(h).lineTo(u):tt(h,u,new st(c),l.style.roughness*.35,.2,!1,a);r.push({ink:{...l.style.stroke,a:l.style.stroke.a*.6},width:Math.max(.8,l.style.strokeWidth*.45),path:a})}),r}var le=class{constructor(e=6e3){w(this,"map",new Map);w(this,"limit");this.limit=e}get(e,n){let i=this.map.get(e);if(i!==void 0)return i;let r=n();return this.map.size>=this.limit&&this.map.clear(),this.map.set(e,r),r}},qn=new le,Ji=new le;function Qn(t,e){let n=t.style;return[e,t.kind,t.x,t.y,t.width,t.height,t.seed,n.roughness,n.bowing,n.strokeWidth,n.fillStyle,n.fillStyle==="grid"?mt(t):0,t.path?t.path.join(","):t.subpaths?JSON.stringify(t.subpaths):""].join("|")}var mt=t=>Math.max(8,t.style.gridSize??50);function pt(t){return t.kind==="freehand"&&t.path===null?Kn(t):qn.get(Qn(t,0),()=>Kn(t))}function _n(t){return[{x:t.x,y:t.y},{x:G(t),y:t.y},{x:G(t),y:B(t)},{x:t.x,y:B(t)}]}function ae(t){return[{x:N(t),y:t.y},{x:G(t),y:Z(t)},{x:N(t),y:B(t)},{x:t.x,y:Z(t)}]}function Kn(t){let e=D(t),n=new st(t.seed),i=t.style.roughness;switch(t.kind){case"ellipse":return i<=0?A.ellipse(e):zn(e,n,i);case"diamond":return i<=0?new A().addLines(ae(e)).close():We(ae(e),n,i,t.style.bowing);case"text":case"connector":return A.rect(e);case"freehand":return Ki(t);case"path":return i<=0?Oe(t):Hi(t,n);default:return i<=0?A.rect(e):We(_n(e),n,i,t.style.bowing)}}function Hi(t,e){let n=t.style.roughness,i=new A;for(let r of Tt(t)){let o=r.points;for(let s=0;s<(o.length-1)/3;s++){let l=o[3*s],a=o[3*s+1],h=o[3*s+2],u=o[3*s+3];if(a.x===l.x&&a.y===l.y&&h.x===u.x&&h.y===u.y){tt(l,u,e,n,t.style.bowing,!0,i);continue}let c=Math.hypot(a.x-l.x,a.y-l.y)+Math.hypot(h.x-a.x,h.y-a.y)+Math.hypot(u.x-h.x,u.y-h.y),m=Math.min(2.5,c/30)*n;for(let f=0;f<2;f++){let d=f===0?1:.5,p=()=>e.signed()*m*d;i.moveTo(l);let y=a.x+p(),g=a.y+p(),P=h.x+p(),b=h.y+p();i.curveTo(u,{x:y,y:g},{x:P,y:b})}}}return i}function Ki(t){let e=D(t),n=t.path;if(n&&n.length>=8&&(n.length-2)%6===0){let o=l=>({x:e.x+n[2*l]*e.width,y:e.y+n[2*l+1]*e.height}),s=new A().moveTo(o(0));for(let l=0;l<Math.floor((n.length/2-1)/3);l++)s.curveTo(o(3*l+3),o(3*l+1),o(3*l+2));return s}let i=(t.points??[]).map(o=>({x:e.x+o.x*e.width,y:e.y+o.y*e.height})),r=new A;if(i.length===0)return r;if(r.moveTo(i[0]),i.length===1)return r.lineTo(i[0]);if(i.length===2)return r.lineTo(i[1]);for(let o=1;o<i.length-1;o++)r.quadTo({x:(i[o].x+i[o+1].x)/2,y:(i[o].y+i[o+1].y)/2},i[o]);return r.lineTo(i[i.length-1])}function Ne(t){return t.kind!=="path"?[qi(t)]:Tt(t).map(e=>En(e.points,3))}function qi(t){let e=D(t);if(t.kind==="ellipse"){let n=[];for(let i=0;i<48;i++){let r=2*Math.PI*i/48;n.push({x:N(e)+e.width/2*Math.cos(r),y:Z(e)+e.height/2*Math.sin(r)})}return n}return t.kind==="diamond"?ae(e):_n(e)}function ue(t){let e=D(t);return t.kind==="ellipse"?A.ellipse(e):t.kind==="path"?Oe(t):t.kind==="diamond"?new A().addLines(ae(e)).close():A.rect(e)}function Ze(t){return t.style.fillStyle==="solid"||["freehand","connector","text","image"].includes(t.kind)?new A:qn.get(Qn(t,1),()=>Qi(t))}function Qi(t){let e=Ne(t),n=new st((t.seed^1540483477)>>>0),i=new A;if(t.style.fillStyle==="grid"){for(let[s,l]of Xn(e,mt(t)))t.style.roughness<=0?i.moveTo(s).lineTo(l):tt(s,l,n,t.style.roughness*.3,.3,!1,i);return i}let r=Math.max(4,t.style.strokeWidth*4),o=[ze];t.style.fillStyle==="crossHatch"&&o.push(ze+Math.PI/2);for(let s of o)for(let[l,a]of Gn(e,s,r))t.style.roughness<=0?i.moveTo(l).lineTo(a):tt(l,a,n,t.style.roughness*.6,.5,!1,i);return i}function ce(t,e){switch(t){case"solid":return null;case"dashed":return[Math.max(8,e*4),Math.max(6,e*3)];case"dotted":return[.01,Math.max(5,e*2.6)]}}function Ue(t,e){let n=t.connector;if(!n)return[new A,new A];let[i,r]=_(t,e),o=[t.seed,t.style.roughness,t.style.bowing,t.style.strokeWidth,n.routing,n.startHead,n.endHead,n.start.port,n.end.port,i.x,i.y,r.x,r.y].join("|");return Ji.get(o,()=>_i(t,e))}function _i(t,e){let n=t.connector,i=new st(t.seed),r=t.style.roughness,o=t.style.bowing,s=new A,l=new A,a=ot(t,e);if(a.kind==="polyline"){let f=a.points;for(let d=0;d<Math.max(f.length-1,0);d++)r<=0?s.moveTo(f[d]).lineTo(f[d+1]):tt(f[d],f[d+1],i,r,o,!0,s)}else{s.moveTo(a.a);let f=r*3,d=()=>i.signed()*f,p=a.b.x+d(),y=a.b.y+d(),g=a.c.x+d(),P=a.c.y+d();s.curveTo(a.d,{x:p,y},{x:g,y:P})}let h=rt(a),u=Math.max(10,t.style.strokeWidth*5),c=(f,d)=>{r<=0?s.moveTo(f).lineTo(d):tt(f,d,i,r*.5,0,!0,s)},m=(f,d,p)=>{let[y,g]=On(d,p,u);switch(f){case"arrow":c(y,d),c(g,d);break;case"triangle":c(y,d),c(g,d),c(y,g),l.moveTo(d).lineTo(y).lineTo(g).close();break;case"dot":{let P=u*.32,b=Math.atan2(d.y-p.y,d.x-p.x),T=d.x-P*Math.cos(b),v=d.y-P*Math.sin(b);l.addEllipse({x:T-P,y:v-P,width:2*P,height:2*P});break}case"bar":{let P=Math.atan2(d.y-p.y,d.x-p.x)+Math.PI/2,b=u*.5;c({x:d.x-b*Math.cos(P),y:d.y-b*Math.sin(P)},{x:d.x+b*Math.cos(P),y:d.y+b*Math.sin(P)});break}}};return h.length>1&&(m(n.endHead,h[h.length-1],h[h.length-2]),m(n.startHead,h[0],h[1])),[s,l]}function Je(t,e){switch(t){case"linear":return e;case"easeIn":return e*e*e;case"easeOut":return 1-Math.pow(1-e,3);case"easeInOut":return e<.5?4*e*e*e:1-Math.pow(-2*e+2,3)/2;case"hold":return 0;case"spring":return tr(e);case"bounce":return er(e);case"elastic":return nr(e)}}function tr(t){if(t<=0)return 0;if(t>=1)return 1;let e=n=>1-Math.exp(-6*n)*(Math.cos(3*Math.PI*n)+6/(3*Math.PI)*Math.sin(3*Math.PI*n));return e(t)+t*(1-e(1))}function er(t){if(t<=0)return 0;if(t>=1)return 1;let e=7.5625,n=2.75;if(t<1/n)return e*t*t;if(t<2/n){let r=t-1.5/n;return e*r*r+.75}if(t<2.5/n){let r=t-2.25/n;return e*r*r+.9375}let i=t-2.625/n;return e*i*i+.984375}function nr(t){return t<=0?0:t>=1?1:Math.pow(2,-10*t)*Math.sin((t*10-.75)*(2*Math.PI/3))+1}var $t=(t,e)=>t%e;function Wt(t,e){let n=(t.repeats??[]).filter(Qt).slice().sort((i,r)=>i.start-r.start);if(n.length===0)return e;for(let i of n){if(!(e>=i.end))continue;let r=i.end-i.start;if(i.count===null)return i.start+$t(e-i.start,r);let o=r*i.count;if(e<i.start+o)return i.start+$t(e-i.start,r);e-=o-r}return e}function Xe(t,e,n,i,r){e=Wt(t,e);let o,s;for(let u of t.keys)if(n(u)!==void 0)if(u.t<=e)o=u;else{s=u;break}if(!o&&!s)return i;if(o&&!s)return n(o);if(!o&&s)return n(s);let l=o,a=s,h=a.t-l.t>0?(e-l.t)/(a.t-l.t):1;return r(n(l),n(a),Je(l.ease??"linear",h))}var ir=(t,e,n)=>t+(e-t)*n,he=(t,e,n)=>Math.min(Math.max(t+(e-t)*n,0),1),ti=(t,e,n)=>({r:he(t.r,e.r,n),g:he(t.g,e.g,n),b:he(t.b,e.b,n),a:he(t.a,e.a,n)});function lt(t,e,n,i){return Xe(t,e,r=>r[n],i,ir)}function rr(t,e){e=Wt(t,e);let n=(r,o)=>{let s;for(let a of t.keys)a.t<=e&&r(a)!==void 0&&(s=a);let l=t.keys.find(a=>a.t>e&&r(a)!==void 0);return!s||!l?!1:s.ease!=="hold"&&!o(r(s),r(l))},i=r=>n(o=>o[r],(o,s)=>o===s);return i("x")||i("y")||i("width")||i("height")||i("rotation")||i("strokeWidth")||n(r=>r.stroke,kt)||n(r=>r.fill,kt)||i("reveal")||i("opacity")}function je(t,e){e=Wt(t,e);let n=t.keys.filter(r=>r.visible!==void 0);if(n.length===0)return!0;let i;for(let r of n)r.t<=e&&(i=r);return i?i.visible:!n[0].visible}function or(t,e,n){if(e=C(e),t.keys.some(i=>i.reveal!==void 0)){let i=lt(t,n,"reveal",e.reveal??1);e.reveal=i>=1?null:Math.max(0,i)}if(t.keys.some(i=>i.opacity!==void 0)){let i=Math.min(Math.max(lt(t,n,"opacity",e.style.opacity??1),0),1);e.style.opacity=i>=1?null:i}return e.kind==="connector"||(e.x=lt(t,n,"x",e.x),e.y=lt(t,n,"y",e.y),e.width=Math.max(0,lt(t,n,"width",e.width)),e.height=Math.max(0,lt(t,n,"height",e.height)),t.keys.some(i=>i.rotation!==void 0)&&(e.rotation=lt(t,n,"rotation",V(e))),e.style.strokeWidth=Math.max(0,lt(t,n,"strokeWidth",e.style.strokeWidth)),e.style.stroke=Xe(t,n,i=>i.stroke,e.style.stroke,ti),e.style.fill=Xe(t,n,i=>i.fill,e.style.fill,ti)),e}function sr(t,e){e=Wt(t,e);let n=null;for(let r of t.follow??[])r.start<=e&&(n===null||r.start>n.start)&&(n=r);if(!n)return null;let i=n;return t.keys.some(r=>r.t>=i.end&&r.t<=e&&(r.x!==void 0||r.y!==void 0))?null:n}function lr(t,e){if(t.kind==="connector")return new Mt(rt(ot(t,J(e))));let n=C(t);n.style.roughness=0;let i=pt(n).contours()[0]??[];return new Mt(V(t)===0?i:i.map(r=>j(t,r)))}function ar(t,e,n,i){let r=sr(t,n);if(!r)return e;n=Wt(t,n);let o=i.elements.find(c=>c.id===r.path);if(!o||o.id===e.id)return e;let s=lr(o,i),l=r.end-r.start,a=Math.min(Math.max(Je(r.ease??"easeInOut",l>0?Math.min(1,(n-r.start)/l):1),0),1)*(r.laps??1);a>1&&(a=$t(a,1)===0?1:$t(a,1)),r.reverse===!0&&(a=1-a);let h=s.point(a),u=C(e);if(u.x=h.x-e.width/2,u.y=h.y-e.height/2,r.orient===!0){let c=r.reverse===!0?-.01:.01,m=s.point(a-c/2),f=s.point(a+c/2);(m.x!==f.x||m.y!==f.y)&&(u.rotation=Math.atan2(f.y-m.y,f.x-m.x))}return u}function ur(t,e,n,i){if(!(n>0))return 0;let r=O(t.duration);if(r>0){let s=Ct(e*r/n);s!==0&&(e=s*n/r)}let o=$t(e*i,n);return o<0?-o:o===0?0:n-o}function cr(t){let e=new Map;for(let n of t.tracks)e.has(n.element)||e.set(n.element,n);return e}function H(t,e){return U(zt(t,e),O(e))}function zt(t,e){let n=t.timeline;if(!n)return t;e=O(e);let i=cr(n),r=n.boil===null?null:Math.trunc(Math.floor(e*wt(n.fps)+1e-9)/Math.max(1,n.boil))%ve>>>0,o=new Set;for(let f of i.values())je(f,e)||o.add(f.element);let s=null;if(n.settle===!0){s=new Set;for(let f of i.values())rr(f,e)&&s.add(f.element)}let l=f=>{let d=i.get(f.id)?.boil;return d??(s?f.connector?[f.connector.start.elementID,f.connector.end.elementID].some(p=>p!==null&&s.has(p)):s.has(f.id):!0)},a=t.elements.map(f=>{let d=i.get(f.id),p=d?or(d,f,e):f;r!==null&&r>0&&l(f)&&(p===f&&(p=C(f)),p.seed=re(f.seed,r));let y=d?.march!=null?ce(p.style.dash,p.style.strokeWidth):null;return d?.march!=null&&y&&(p===f&&(p=C(f)),p.style.dashOffset=ur(n,d.march,y.reduce((g,P)=>g+P,0),e)),p});a=a.map((f,d)=>o.has(f.id)?t.elements[d]:f);let h={...t,elements:a,timeline:null};a=a.map(f=>{let d=i.get(f.id);return d?ar(d,f,e,h):f});let u={...t,elements:a,timeline:null},c=J(u),m=new Set(o);return a=a.map(f=>{let d=f.connector;if(!d||![d.start.elementID,d.end.elementID].some(P=>P!==null&&o.has(P)))return f;if(!(i.get(f.id)?.keys.some(P=>P.visible!==void 0)??!1))return m.add(f.id),f;let[p,y]=_(f,c),g=C(f);return g.connector.start={elementID:null,port:d.start.port,x:p.x,y:p.y},g.connector.end={elementID:null,port:d.end.port,x:y.x,y:y.y},g}),{...t,elements:a.filter(f=>!m.has(f.id)),timeline:null}}function at(t){return t.timeline?t.timeline.poster??t.timeline.duration:0}function ni(t){return t.timeline?H(t,at(t)):U(t,0)}function hr(t,e){let n=t.camera??[];if(n.length===0)return null;let i;for(let l of n)l.t<=e&&(i=l);let r=n.find(l=>l.t>e);if(!i)return ei(n[0]);if(!r)return ei(i);let o=Je(i.ease??"easeInOut",(e-i.t)/Math.max(r.t-i.t,1e-9)),s=(l,a)=>l+(a-l)*o;return{x:s(i.x,r.x),y:s(i.y,r.y),width:Math.max(1,s(i.width,r.width)),height:Math.max(1,s(i.height,r.height))}}var ei=t=>({x:t.x,y:t.y,width:t.width,height:t.height});function vt(t,e){let n=t.camera?.[0],i=hr(t,e);return!n||!i||!(i.width>0&&i.height>0)?null:fr(i,n.width/n.height)}function fr(t,e){if(!(t.width>0&&t.height>0&&e>0))return t;let n=t.width,i=t.height;return t.width/t.height<e?n=t.height*e:i=t.width/e,{x:t.x+t.width/2-n/2,y:t.y+t.height/2-i/2,width:n,height:i}}function dr(t){return Math.max(1,Math.ceil(O(t.duration)*wt(t.fps)))}function fe(t){let e=wt(t.fps),n=[];for(let r=0;r<dr(t);r++)n.push(r/e);let i=n[n.length-1];return t.duration-i>1e-6&&n.push(t.duration),n}function ii(t,e){let n=-1;return(t.markers??[]).forEach((i,r)=>{i.t<=e&&(n=r)}),n}function ri(t){let e=t.timeline;if(!e)return new Set;let n=e.poster??e.duration;return new Set(e.tracks.filter(i=>!je(i,0)&&!je(i,n)).map(i=>i.element))}var mr=8,pr=2e4,He=1e-9;function de(t,e){let n=(t.timeline?.markers??[]).find(i=>i.name.toLowerCase()===e);return n?Math.min(Math.max(n.t,0),O(t.timeline?.duration??0)):null}function Bt(t,e){switch(e){case"up":return de(t,"up")??0;case"over":return de(t,"over")??Bt(t,"up");case"down":return de(t,"down")??Bt(t,"over");default:return de(t,"hit")}}function yr(t,e,n,i){let r=O(t.timeline?.duration??0);if(t.button===!0)return Bt(t,"up")??0;let o=i!==null&&Number.isFinite(i)?i:0;switch(n??"loop"){case"still":return Math.min(t.timeline?.poster??r,r);case"click":return Math.min(Math.max(o,0),r);case"once":return Math.min(Math.max(e+o,0),r);default:{if(r<=0)return 0;let s=e+o,l=s%r;return l<0&&(l+=r),s>He&&(l<He||r-l<He)?r:l}}}function gr(t,e){let n=t.params;if(!n||Object.keys(n).length===0)return t;let i=new Map(Object.entries(n));for(let[o,s]of Object.entries(e??{}))i.has(o)&&i.set(o,s);let r=o=>o.includes("{{")?o.replace(/\{\{\s*([^{}]*?)\s*\}\}/g,(s,l)=>i.get(l)??s):o;return{...t,elements:t.elements.map(o=>{if(o.text===null&&o.args===null)return o;let s=C(o);return s.text!==null&&(s.text=r(s.text)),s.args!==null&&(s.args=Object.fromEntries(Object.entries(s.args).map(([l,a])=>[l,r(a)]))),s})}}function br(t){return{id:t.id,name:t.name,layers:t.layers,elements:t.elements,theme:null,timeline:t.timeline,symbols:null}}function me(t){return t.elements.some(e=>e.kind==="symbol")}function U(t,e,n=!0,i=new Map){if(!me(t))return t;let r={left:pr};return{...t,elements:si(t.elements,t,e,Qe(t),[],n,r,i)}}function Qe(t){let e=new Map;for(let n of t.symbols??[])e.has(n.id)||e.set(n.id,n);return e}function si(t,e,n,i,r,o,s,l=new Map){let a=new Set(t.filter(c=>c.kind==="symbol").map(c=>c.id));if(a.size===0)return s.left-=t.length,t;let h=J(e),u=[];for(let c of t){if(s.left<=0)break;let m=c.connector;if(c.kind==="connector"&&m&&[m.start.elementID,m.end.elementID].some(v=>v!==null&&a.has(v))){let[v,x]=_(c,h),M=C(c);m.start.elementID!==null&&a.has(m.start.elementID)&&(M.connector.start={elementID:null,port:m.start.port,x:v.x,y:v.y}),m.end.elementID!==null&&a.has(m.end.elementID)&&(M.connector.end={elementID:null,port:m.end.port,x:x.x,y:x.y}),u.push(M),s.left-=1;continue}if(c.kind!=="symbol"){u.push(c),s.left-=1;continue}s.left-=1;let f=c.symbol,d=f===null?void 0:i.get(f);if(f===null||!d||r.includes(f)||r.length>=mr)continue;let p=r.length===0?l.get(c.id):void 0,y=p!==void 0?Math.min(Math.max(p,0),O(d.timeline?.duration??0)):yr(d,n,c.playback,c.offset),g=br(gr(d,c.args)),P=o?zt(g,y):g,b=new Set(P.layers.filter(v=>v.visible).map(v=>v.id)),T={...P,elements:ft(P).filter(v=>b.has(v.layerID)),layers:[{id:c.layerID,name:"",visible:!0,locked:!1}]};for(let v of si(T.elements,T,y,i,[...r,f],o,s))u.push(xr(v,c,d))}return u}function xr(t,e,n){let i={x:e.x,y:e.y,width:e.width,height:e.height},r=i.width/n.width,o=i.height/n.height,s=Math.sqrt(Math.abs(r*o)),l={x:i.x+i.width/2,y:i.y+i.height/2},a=V(e),h=f=>it({x:i.x+f.x*r,y:i.y+f.y*o},l,a),u=C(t);u.id=qe(e.id,t.id),u.layerID=e.layerID,u.groupID=null,u.link=t.link===null?null:qe(e.id,t.link),u.seed=re(t.seed,e.seed),u.click=null,u.hover=null;let c={x:i.x+t.x*r,y:i.y+t.y*o,width:t.width*r,height:t.height*o},m=it({x:c.x+c.width/2,y:c.y+c.height/2},l,a);if(u.x=m.x-c.width/2,u.y=m.y-c.height/2,u.width=c.width,u.height=c.height,(a!==0||t.rotation!==null)&&(u.rotation=V(t)+a),u.style.strokeWidth=t.style.strokeWidth*s,u.style.fontSize=t.style.fontSize*s,t.style.gridSize!==null&&(u.style.gridSize=t.style.gridSize*s),e.style.opacity!==null&&(u.style.opacity=(t.style.opacity??1)*e.style.opacity),t.connector){let f=d=>{if(d.elementID!==null)return{elementID:qe(e.id,d.elementID),port:d.port,x:d.x,y:d.y};let p=h(d);return{elementID:null,port:d.port,x:p.x,y:p.y}};u.connector={...t.connector,start:f(t.connector.start),end:f(t.connector.end)}}return u}var Ke=(1n<<64n)-1n;function Gt(t){let e=t+0x9e3779b97f4a7c15n&Ke;return e=(e^e>>30n)*0xbf58476d1ce4e5b9n&Ke,e=(e^e>>27n)*0x94d049bb133111ebn&Ke,e^e>>31n}function oi(t){let e=t.replace(/-/g,"").padStart(32,"0").slice(-32);return[BigInt(`0x${e.slice(0,16)}`),BigInt(`0x${e.slice(16)}`)]}function qe(t,e){let[n,i]=oi(t),[r,o]=oi(e),s=Gt(Gt(Gt(Gt(n)^i)^r)^o),l=Gt(s^0x6a09e667f3bcc909n),a=s.toString(16).padStart(16,"0")+l.toString(16).padStart(16,"0");return`${a.slice(0,8)}-${a.slice(8,12)}-${a.slice(12,16)}-${a.slice(16,20)}-${a.slice(20)}`.toUpperCase()}function kr(t,e){let n=e.findIndex(i=>i.name===t);return n>=0?n:e.findIndex(i=>i.name.toLowerCase()===t.toLowerCase())}function li(t,e){let n=t.timeline?.markers??[],i=new Map,r=null;for(let o of t.elements){let s=o.click;if(s?.scene){let a=kr(s.scene,n);if(a>=0){i.set(o.id,{scene:a});continue}}let l=(s?.url?ht(s.url):null)??Lt(o.url);if(l){i.set(o.id,{url:l});continue}if(o.link&&e&&e.pages.length>1){r||(r=new Map,e.pages.forEach((h,u)=>{for(let c of h.elements)r.has(c.id)||r.set(c.id,u)}));let a=r.get(o.link);a!==void 0&&e.pages[a]!==t&&i.set(o.id,{page:a})}}return i}function wr(t){let e=t.hover;if(!e)return t;let n={...t.style};if(e.stroke&&(n.stroke=e.stroke),e.fill&&(n.fill=e.fill),e.opacity!==null&&Number.isFinite(e.opacity)){let i=Math.min(Math.max(e.opacity,0),1);n.opacity=i>=1?null:i}return{...t,style:n}}function ai(t,e){return{...t,elements:t.elements.map(n=>e.has(n.id)?wr(n):n)}}function ui(t){return!!t.hover&&(t.hover.stroke!==null||t.hover.fill!==null||t.hover.opacity!==null)}function ci(t,e){let n=(t.text??"").split(`
|
|
3
|
-
`).find(i=>i.length>0);return n||(t.anchor?t.anchor:e||t.kind)}function
|
|
1
|
+
/*! dottie.js 0.6.3 | Apache-2.0 | https://github.com/phin-tech/dottie */
|
|
2
|
+
"use strict";(()=>{var wn=Object.defineProperty;var Yi=(t,e,n)=>e in t?wn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var Oi=(t,e)=>{for(var n in e)wn(t,n,{get:e[n],enumerable:!0})};var v=(t,e,n)=>Yi(t,typeof e!="symbol"?e+"":e,n);var kn={};Oi(kn,{BOIL_DRAWINGS:()=>De,BUNDLED_FONTS:()=>Gt,DottieFormatError:()=>rt,DottiePlayer:()=>Yt,KINDS:()=>Mn,KNOWN_FIELDS:()=>Rn,MAX_DURATION:()=>Tt,MAX_MARCH:()=>Le,Playback:()=>te,SUPPORTED_VERSION:()=>rr,VERSION:()=>ir,addFonts:()=>fe,allowedURL:()=>kt,black:()=>bt,bounds:()=>ht,cameraView:()=>Dt,clampFPS:()=>At,clampMarch:()=>vn,clampTime:()=>z,clear:()=>Tn,cloneElement:()=>G,definePlayer:()=>Ie,elementIndex:()=>$i,fontFaces:()=>We,fontFile:()=>Ve,frameTimes:()=>Pe,inkOnDark:()=>Sn,inspect:()=>Di,inspectFrame:()=>xn,inspectPage:()=>bn,isAutomaticInk:()=>zt,luminance:()=>Et,orderedElements:()=>st,pageIndex:()=>ee,parseDottie:()=>$t,plan:()=>Ct,posterTime:()=>yt,render:()=>er,repeatIsValid:()=>le,resolved:()=>nt,sameColor:()=>St,sampleTimes:()=>gn,sceneAt:()=>pi,setFontBase:()=>Cn,stableSortBy:()=>se,still:()=>di,svg:()=>Ee,svgParts:()=>gt,themeNamed:()=>vt,themes:()=>dn,transientElements:()=>yi,usedFonts:()=>he,webLink:()=>Wt,withRoughness:()=>ne});var rr=2,Mn=["rectangle","ellipse","diamond","text","connector","freehand","path","note","image","symbol"],Vi=["linear","easeIn","easeOut","easeInOut","hold","spring","bounce","elastic"],Rn={file:["version","pages","images"],page:["id","name","layers","elements","theme","guidesX","guidesY","guidesLocked","timeline","symbols"],symbol:["id","name","width","height","layers","elements","timeline","button","params"],layer:["id","name","visible","locked"],rgba:["r","g","b","a"],style:["stroke","fill","fillStyle","strokeWidth","dash","roughness","bowing","fontSize","font","gridSize","opacity","dashOffset","textColor"],element:["id","kind","x","y","width","height","style","seed","layerID","text","connector","groupID","points","path","subpaths","evenOdd","rotation","link","url","anchor","click","hover","symbol","playback","offset","args","image","reveal","ports","labelRect","extension"],strokePoint:["x","y"],subpath:["closed","coords"],inlineImage:["data","format"],endpoint:["elementID","port","portIndex","x","y"],extensionRef:["id","shape","version","params"],normalizedPoint:["x","y"],normalizedRect:["x","y","width","height"],connector:["start","end","routing","startHead","endHead","waypoints","hops"],waypoint:["x","y"],timeline:["fps","duration","boil","settle","poster","tracks","camera","markers"],track:["element","keys","boil","follow","repeats","march"],keyframe:["t","x","y","width","height","rotation","strokeWidth","stroke","fill","visible","reveal","opacity","ease"],follow:["path","start","end","ease","reverse","orient","laps"],repeat:["start","end","count"],cameraKey:["t","x","y","width","height","ease"],marker:["t","name"],click:["scene","url"],hover:["stroke","fill","opacity"]},Tt=3600,Le=1e4,vn=t=>t===void 0||!Number.isFinite(t)||t===0?null:Math.min(Math.max(t,-Le),Le),De=3,bt={r:.12,g:.12,b:.13,a:1},Tn={r:0,g:0,b:0,a:0},Sn={r:.93,g:.93,b:.94,a:1},rt=class extends Error{},E=t=>typeof t=="object"&&t!==null&&!Array.isArray(t),S=t=>typeof t=="number"&&Number.isFinite(t)?t:void 0,L=t=>typeof t=="string"?t:void 0,Pn=t=>E(t)&&Object.values(t).every(e=>typeof e=="string")?{...t}:null,X=t=>typeof t=="boolean"?t:void 0,j=t=>typeof t=="string"?t.toUpperCase():void 0;function z(t){return Number.isFinite(t)?Math.min(Math.max(t,0),Tt):t===1/0?Tt:0}function At(t){return Number.isFinite(t)?Math.min(Math.max(t,1),60):12}function kt(t){let e=t.trim();return!/^(https?:\/\/|mailto:)/i.test(e)||[...e].length<=7||/[\u0000-\u001f\u007f-\u009f]/.test(e)?null:e}function Wt(t){return t?kt(t):null}function xt(t){if(!E(t))return;let e=S(t.r),n=S(t.g),i=S(t.b);if(!(e===void 0||n===void 0||i===void 0))return{r:e,g:n,b:i,a:S(t.a)??1}}var Fe=class{constructor(){v(this,"warnings",[]);v(this,"seen",new Set)}warn(e){this.seen.has(e)||(this.seen.add(e),this.warnings.push(e))}fields(e,n){let i=Rn[n];for(let o of Object.keys(e))i.includes(o)||this.warn(`Unknown field "${o}" on ${n}, ignored`)}style(e){let n=E(e)?e:{};this.fields(n,"style");let i=L(n.fillStyle)??"solid",o=L(n.dash)??"solid";return["solid","hachure","crossHatch","grid"].includes(i)||this.warn(`Unknown fill style "${i}", drawn solid`),["solid","dashed","dotted"].includes(o)||this.warn(`Unknown dash "${o}", drawn solid`),{stroke:xt(n.stroke)??{...bt},fill:xt(n.fill)??{...Tn},fillStyle:["solid","hachure","crossHatch","grid"].includes(i)?i:"solid",strokeWidth:S(n.strokeWidth)??2,dash:["solid","dashed","dotted"].includes(o)?o:"solid",roughness:S(n.roughness)??1,bowing:S(n.bowing)??1,fontSize:S(n.fontSize)??18,font:L(n.font)||null,gridSize:S(n.gridSize)??null,opacity:S(n.opacity)??null,dashOffset:S(n.dashOffset)??null,textColor:xt(n.textColor)??null}}endpoint(e){let n=E(e)?e:{},i=L(n.port),o=S(n.portIndex);return{elementID:j(n.elementID)??null,port:i&&["top","right","bottom","left"].includes(i)?i:null,portIndex:o!==void 0&&Number.isInteger(o)&&o>=0?o:null,x:S(n.x)??0,y:S(n.y)??0}}connector(e){if(!E(e))return null;this.fields(e,"connector");let n=(o,r)=>{let s=L(o);return s&&["none","arrow","triangle","dot","bar"].includes(s)?s:r},i=L(e.routing);return{start:this.endpoint(e.start),end:this.endpoint(e.end),routing:i&&["straight","curved","elbow"].includes(i)?i:"straight",startHead:n(e.startHead,"none"),endHead:n(e.endHead,"arrow"),waypoints:Array.isArray(e.waypoints)?e.waypoints.filter(E).map(o=>(this.fields(o,"waypoint"),{x:S(o.x)??0,y:S(o.y)??0})):null,hops:typeof e.hops=="boolean"?e.hops:null}}image(e,n){if(!E(e))return null;let i=L(e.ref);if(i!==void 0)return n[i]??{data:"",format:"png"};let o=L(e.data);return o===void 0?null:this.picture(o,L(e.format))}picture(e,n){return Wi.test(e)?{data:e.replace(/\s+/g,""),format:n==="jpeg"?"jpeg":"png"}:(this.warn("Skipped a picture whose data isn't base64"),{data:"",format:"png"})}element(e,n){if(!E(e))return null;this.fields(e,"element");let i=j(e.id),o=L(e.kind),r=j(e.layerID);if(!i||!o||!r)return this.warn("Skipped an element without an id, kind or layer"),null;Mn.includes(o)||this.warn(`Unknown element kind "${o}", drawn as a placeholder`);let s=Array.isArray(e.subpaths)?e.subpaths.filter(E).map(l=>({closed:X(l.closed)??!1,coords:Array.isArray(l.coords)?l.coords.filter(a=>typeof a=="number"):[]})):null;return{id:i,kind:o,layerID:r,x:S(e.x)??0,y:S(e.y)??0,width:S(e.width)??0,height:S(e.height)??0,style:this.style(e.style),seed:(S(e.seed)??1)>>>0,text:L(e.text)??null,connector:this.connector(e.connector),groupID:j(e.groupID)??null,points:Array.isArray(e.points)?e.points.filter(E).map(l=>({x:S(l.x)??0,y:S(l.y)??0})):null,path:Array.isArray(e.path)?e.path.filter(l=>typeof l=="number"):null,subpaths:s,evenOdd:X(e.evenOdd)??null,rotation:S(e.rotation)??null,link:j(e.link)??null,url:L(e.url)??null,anchor:L(e.anchor)??null,click:this.click(e.click),hover:this.hover(e.hover),symbol:j(e.symbol)??null,playback:this.playback(e.playback),offset:S(e.offset)??null,args:Pn(e.args),image:this.image(e.image,n),reveal:S(e.reveal)??null,ports:Array.isArray(e.ports)?e.ports.map(l=>{let a=E(l)?l:{};return{x:S(a.x)??0,y:S(a.y)??0}}):null,labelRect:this.labelRect(e.labelRect),extension:this.extension(e.extension)}}labelRect(e){return E(e)?(this.fields(e,"normalizedRect"),{x:S(e.x)??0,y:S(e.y)??0,width:S(e.width)??0,height:S(e.height)??0}):null}extension(e){if(!E(e))return null;this.fields(e,"extensionRef");let n=L(e.id),i=L(e.shape),o=L(e.version);if(n===void 0||i===void 0||o===void 0)return this.warn("Skipped an extension without an id, shape or version"),null;let r={};if(E(e.params))for(let[s,l]of Object.entries(e.params))(typeof l=="number"||typeof l=="boolean"||typeof l=="string")&&(r[s]=l);return{id:n,shape:i,version:o,params:r}}click(e){if(!E(e))return null;this.fields(e,"click");let n=L(e.url),i=n===void 0?null:kt(n);return n!==void 0&&i===null&&this.warn("Skipped a click link that isn't http, https or mailto"),{scene:L(e.scene)??null,url:i}}playback(e){let n=L(e);return n===void 0?null:["loop","once","still","click"].includes(n)?n:"loop"}symbol(e,n){if(!E(e))return null;this.fields(e,"symbol");let i=j(e.id);if(!i)return this.warn("Skipped a symbol without an id"),null;let o=s=>{let l=S(s);return Math.max(1,l??100)},r=(Array.isArray(e.layers)?e.layers:[]).filter(E).flatMap(s=>{let l=j(s.id);return l?[{id:l,name:L(s.name)??"",visible:X(s.visible)??!0,locked:X(s.locked)??!1}]:[]});return r.length===0&&r.push({id:`${i}-LAYER`,name:"Layer 1",visible:!0,locked:!1}),{id:i,name:L(e.name)??"Symbol",width:o(e.width),height:o(e.height),layers:r,elements:(Array.isArray(e.elements)?e.elements:[]).map(s=>this.element(s,n)).filter(s=>s!==null),timeline:this.timeline(e.timeline),button:X(e.button)??null,params:Pn(e.params)}}hover(e){return E(e)?(this.fields(e,"hover"),{stroke:xt(e.stroke)??null,fill:xt(e.fill)??null,opacity:S(e.opacity)??null}):null}ease(e){let n=L(e);return n===void 0?null:Vi.includes(n)?n:(this.warn(`Unknown ease "${n}", played linear`),null)}keyframe(e){if(!E(e))return null;this.fields(e,"keyframe");let n=S(e.t);if(n===void 0)return null;let i={t:n};for(let a of["x","y","width","height","rotation","strokeWidth","reveal","opacity"]){let u=S(e[a]);u!==void 0&&(i[a]=u)}let o=xt(e.stroke),r=xt(e.fill),s=X(e.visible),l=this.ease(e.ease);return o&&(i.stroke=o),r&&(i.fill=r),s!==void 0&&(i.visible=s),l&&(i.ease=l),i}track(e){if(!E(e))return null;this.fields(e,"track");let n=j(e.element);if(!n)return null;let i=(Array.isArray(e.keys)?e.keys:[]).map(s=>this.keyframe(s)).filter(s=>s!==null&&s.t>=0&&s.t<=Tt);se(i,s=>s.t);let o=Array.isArray(e.follow)?e.follow.filter(E).flatMap(s=>{let l=j(s.path),a=S(s.start),u=S(s.end);return!l||a===void 0||u===void 0||a<0||u>Tt?[]:[{path:l,start:a,end:u,ease:this.ease(s.ease),reverse:X(s.reverse)??null,orient:X(s.orient)??null,laps:S(s.laps)??null}]}):null,r=Array.isArray(e.repeats)?e.repeats.filter(E).flatMap(s=>{let l=S(s.start),a=S(s.end);if(l===void 0||a===void 0)return[];let u=S(s.count),c={start:l,end:a,count:u===void 0?null:Math.trunc(u)};return le(c)?[c]:[]}):null;return{element:n,keys:i,boil:X(e.boil)??null,follow:o,repeats:r,march:vn(S(e.march))}}timeline(e){if(!E(e))return null;this.fields(e,"timeline");let n=S(e.boil),i=Array.isArray(e.camera)?e.camera.filter(E).flatMap(s=>{let l=S(s.t),a=S(s.x),u=S(s.y),c=S(s.width),h=S(s.height);return l===void 0||a===void 0||u===void 0||c===void 0||h===void 0?[]:c>1&&h>1&&l>=0?[{t:l,x:a,y:u,width:c,height:h,ease:this.ease(s.ease)}]:[]}):null;i&&se(i,s=>s.t);let o=Array.isArray(e.markers)?e.markers.filter(E).flatMap(s=>{let l=S(s.t);return l!==void 0&&l>=0?[{t:l,name:L(s.name)??""}]:[]}):null;o&&se(o,s=>s.t);let r=S(e.poster);return{fps:At(S(e.fps)??12),duration:z(S(e.duration)??0),boil:n!==void 0&&Number.isInteger(n)&&n>0?Math.min(n,1e4):null,settle:X(e.settle)??null,poster:r===void 0?null:z(r),tracks:(Array.isArray(e.tracks)?e.tracks:[]).map(s=>this.track(s)).filter(s=>s!==null),camera:i,markers:o}}page(e,n,i){if(!E(e))throw new rt(`Page ${i} is not an object`);this.fields(e,"page");let o=(Array.isArray(e.layers)?e.layers:[]).filter(E).flatMap(r=>{let s=j(r.id);return s?[{id:s,name:L(r.name)??"",visible:X(r.visible)??!0,locked:X(r.locked)??!1}]:[]});return o.length===0&&(this.warn(`Page ${i} has no layers`),o.push({id:"LAYER",name:"Layer 1",visible:!0,locked:!1})),{id:j(e.id)??`PAGE-${i}`,name:L(e.name)??`Page ${i}`,layers:o,elements:(Array.isArray(e.elements)?e.elements:[]).map(r=>this.element(r,n)).filter(r=>r!==null),theme:L(e.theme)??null,timeline:this.timeline(e.timeline),symbols:Array.isArray(e.symbols)?e.symbols.map(r=>this.symbol(r,n)).filter(r=>r!==null):null}}},Wi=/^[A-Za-z0-9+/=\s]*$/;function le(t){return Number.isFinite(t.start)&&Number.isFinite(t.end)&&t.start>=0&&t.end-t.start>.001&&t.end<=Tt&&(t.count===null||t.count>=1&&t.count<=1e4)}function se(t,e){let n=t.map((i,o)=>[i,o]);n.sort((i,o)=>e(i[0])-e(o[0])||i[1]-o[1]);for(let i=0;i<t.length;i++)t[i]=n[i][0]}function $t(t){let e=t;if(typeof t=="string")try{e=JSON.parse(t)}catch(s){throw new rt(`Not JSON: ${s.message}`)}if(!E(e))throw new rt("Not a Dottie drawing");let n=S(e.version);if(n===void 0)throw new rt("Not a Dottie drawing (no version)");if(!Array.isArray(e.pages)||e.pages.length===0)throw new rt("A drawing needs at least one page");let i=new Fe;i.fields(e,"file"),n>2&&i.warn(`File version ${n} is newer than this player knows (2); some things may not show`);let o={};if(E(e.images))for(let[s,l]of Object.entries(e.images))E(l)&&typeof l.data=="string"&&(o[s]=i.picture(l.data,L(l.format)));let r=e.pages.map((s,l)=>i.page(s,o,l+1));if(new Set(r.map(s=>s.id)).size!==r.length)throw new rt("Two pages share an id");return{version:n,pages:r,warnings:i.warnings}}function Et(t){return .2126*t.r+.7152*t.g+.0722*t.b}function St(t,e){return t.r===e.r&&t.g===e.g&&t.b===e.b&&t.a===e.a}function zt(t){return St(t,bt)||St(t,Sn)}function G(t){return{...t,style:{...t.style,stroke:{...t.style.stroke},fill:{...t.style.fill},textColor:t.style.textColor?{...t.style.textColor}:null},connector:t.connector?{...t.connector,start:{...t.connector.start},end:{...t.connector.end},waypoints:t.connector.waypoints?.map(e=>({...e}))??null}:null}}function st(t){if(t.layers.length<=1)return t.elements;let e=new Map;t.layers.forEach((i,o)=>{e.has(i.id)||e.set(i.id,o)});let n=t.layers.map(()=>[]);for(let i of t.elements)n[e.get(i.layerID)??0].push(i);return n.flat()}function $i(t){let e=new Map;for(let n of t.elements)e.has(n.id)||e.set(n.id,n);return e}var An=.60205078125,En=.92822265625,In=.23583984375,wt={"Architects Daughter":{faces:{regular:{ascent:.986328125,descent:.4033203125,k:{},leading:0,w:{" ":400.39,_:686.52,"-":310.55,"\u2013":310.55,"\u2014":411.13,",":177.73,";":124.02,":":166.99,"!":134.77,"?":505.86,".":140.63,"\u2026":422.85,"\xB7":140.63,"'":162.11,"\u2018":162.11,"\u2019":162.11,'"':236.33,"\u201C":236.33,"\u201D":236.33,"(":297.85,")":351.56,"[":424.8,"]":541.02,"{":352.54,"}":478.52,"@":1042.97,"*":507.81,"/":455.08,"\\":501.95,"&":669.92,"#":637.7,"%":518.55,"\u2022":192.38,"`":171.88,"^":306.64,"\u2190":1e3,"\u2192":1e3,"\u2191":645.02,"\u2193":645.02,"+":524.41,"\xD7":470.7,"<":475.59,"=":492.19,">":471.68,"|":145.51,"~":444.34,"\u25E6":578.13,"\u2610":830.08,"\u2611":830.08,"\u2713":764.16,$:556.64,0:630.86,1:127.93,2:572.27,3:508.79,4:680.66,5:708.01,6:626.95,7:615.23,8:648.44,9:569.34,a:508.79,A:640.63,b:561.52,B:710.94,c:632.81,C:708.01,d:512.7,D:648.44,e:541.02,E:591.8,\u00E9:541.02,f:593.75,F:692.38,g:515.63,G:692.38,h:495.12,H:605.47,i:151.37,I:151.37,j:177.73,J:529.3,k:614.26,K:605.47,l:157.23,L:692.38,m:778.32,M:827.15,n:500,N:626.95,o:562.5,O:669.92,p:556.64,P:637.7,q:513.67,Q:712.89,r:551.76,R:712.89,s:501.95,S:642.58,t:404.3,T:623.05,u:507.81,U:561.52,v:518.55,V:626.95,w:808.59,W:940.43,x:470.7,X:599.61,y:548.83,Y:534.18,z:495.12,Z:784.18}}},fallback:{"\u2190":[.966796875,.2109375,0],"\u2192":[.966796875,.2109375,0],"\u2191":[.966796875,.2109375,0],"\u2193":[.966796875,.2109375,0],"\u25E6":[.966796875,.2109375,0],"\u2610":[.66650390625,.25,.08349609375],"\u2611":[.66650390625,.25,.08349609375],"\u2713":[.966796875,.2109375,0]}},Caveat:{faces:{bold:{ascent:.9600067138671875,descent:.3000030517578125,k:{AC:-20,AE:-10,AG:-10,AH:-10,AI:10,Aj:10,AJ:10,AL:-10,AM:10,An:-10,AO:-20,AP:-10,Aq:-10,AQ:-20,Ar:-10,As:-10,AS:-35,AT:-50,Au:-10,AU:-20,av:-20,Av:-5,AV:-40,aw:-10,AW:-20,Ax:10,AX:-10,ay:-20,Ay:-10,AY:-65,Az:20,AZ:-10,ba:-10,bc:-10,BC:-20,bd:-10,Bf:10,BF:-20,Bg:10,bh:-5,Bi:10,BI:-10,bj:-5,Bj:10,BJ:-10,Bk:10,Bl:10,Bm:10,BP:-10,BR:-10,BS:-20,BT:-40,bu:-10,BU:-20,BV:-50,BW:-50,bx:-10,Bx:10,BX:-40,by:-10,BY:-65,Bz:40,BZ:-30,CA:-20,Cc:-5,CC:-10,Cd:-10,CE:-10,CG:-10,Cj:10,CJ:-10,CK:-10,cl:10,Cl:5,Cn:-5,CO:-10,CP:-10,CQ:-20,Cs:-10,CS:-10,Ct:10,CT:-20,Cu:-10,CU:-10,Cv:-20,CV:-20,cw:-10,Cw:-10,CW:-20,Cx:20,CX:-30,cy:-5,CY:-35,Cz:20,CZ:-40,DA:-10,Db:10,Dc:10,De:10,Df:20,DF:-10,Dg:10,Dh:10,Di:15,DI:-10,Dj:5,DJ:-10,Dk:10,Dl:10,Dm:20,DM:-5,dn:-10,Do:10,Dp:10,Dq:10,Dr:10,Ds:10,dt:10,Dt:20,DT:-40,du:-10,Dv:30,DV:-30,Dw:20,DW:-10,Dx:20,DX:-50,Dy:10,DY:-50,Dz:30,DZ:-30,EC:-10,ED:-10,EG:-10,EJ:-10,el:10,EO:-10,EQ:-20,ES:-40,ET:-10,EU:-20,Ev:-10,EV:-25,Ew:-10,EW:-30,Ex:10,EX:-40,Ey:-10,EY:-50,Ez:20,EZ:-20,fa:-10,Fa:-30,FA:-40,Fc:-20,FC:-10,Fd:-20,FD:20,Fe:-15,ff:10,Ff:10,FF:20,Fg:-10,fh:10,Fh:20,fi:10,Fi:10,FI:10,fj:10,Fj:10,FJ:20,Fk:10,fl:20,Fl:20,FL:10,fm:10,FM:-10,Fn:-20,FN:10,Fo:-20,FO:10,Fp:-10,FP:-10,Fq:-10,FQ:10,Fr:-10,FS:10,ft:40,Ft:10,FT:-30,Fu:-10,fv:10,Fv:10,FV:10,FW:10,fy:10,FY:10,Fz:10,FZ:-10,GA:-10,Gf:10,Gh:10,gi:10,Gi:10,GI:-10,Gj:10,GJ:-10,Gk:10,Gl:10,Gm:10,GM:-10,GN:10,GP:-20,GS:-10,Gt:10,GU:-10,Gv:10,GV:-10,GW:-20,Gx:10,GX:-40,gy:10,GY:-40,Gz:10,GZ:-20,Hb:10,hf:-10,Hf:10,hg:-20,Hh:10,Hi:10,Hj:20,Hk:10,Hl:10,Hm:10,hq:-10,hs:-10,Ht:20,hv:-30,Hv:10,hw:-15,Hx:20,hy:-30,Hy:10,Hz:20,Ia:-10,IA:10,Ib:10,Ic:-10,Id:-10,ID:30,Ie:-10,if:10,If:20,IF:40,Ig:-10,Ih:30,Ii:20,II:30,Ij:30,IJ:40,Ik:20,IK:10,Il:20,IL:10,IM:30,In:-10,IN:20,Io:-10,Ip:10,Iq:-20,Ir:-10,IR:10,Is:-10,It:10,Iu:-10,IU:10,iv:10,Iv:-20,IV:30,Iw:-25,IW:20,Ix:10,IX:10,Iy:-10,IY:30,Iz:20,IZ:20,Ja:-10,Jb:10,Jc:-10,Jd:-10,Je:-10,Jf:10,Jh:10,Ji:10,JI:-10,Jj:20,JJ:10,Jk:10,Jl:20,Jn:-10,Jo:-10,JO:-10,Jp:10,JP:-10,Jq:-10,JQ:-10,JR:-10,jt:10,Jt:20,JT:10,ju:-10,Ju:-20,JU:-10,jx:10,JX:-25,jy:10,JY:-20,jz:10,Jz:10,JZ:-20,Ka:-40,kc:20,Kc:-40,KC:-10,Kd:-40,KD:10,ke:10,Ke:-40,kf:20,Kf:10,KF:20,Kg:-40,KG:-10,kh:10,Kh:10,ki:10,Ki:10,Kj:40,KJ:20,kk:20,Kk:10,kl:20,Kl:10,km:10,KM:20,Kn:-40,ko:10,Ko:-50,KO:-10,Kp:10,Kq:-50,kr:10,Ks:-40,kt:10,Kt:10,KT:-10,ku:10,Ku:-60,kv:10,Kv:-30,Kw:-40,Kx:-10,KX:-10,ky:-10,Ky:-30,kz:10,Lb:-10,LC:-20,LE:-20,Lf:10,Lg:-10,LG:-20,Lh:-10,Li:10,LI:-40,Lj:20,Lk:10,ll:10,Ll:10,LL:-20,Ln:-20,LO:-25,Lp:10,Lq:-40,LQ:-30,Ls:-10,LS:-65,lt:10,Lt:-10,LT:-70,Lu:-40,LU:-45,Lv:-60,LV:-70,Lw:-40,LW:-40,Lx:10,Ly:-20,LY:-90,lz:20,Lz:30,LZ:-10,Mb:10,md:10,Mf:10,Mh:10,Mi:10,MJ:10,Mk:10,Ml:10,mo:20,Mp:10,MP:-10,Mq:-10,MQ:-10,MS:-20,Mt:20,MT:-30,Mu:-10,MU:-20,mv:-15,Mv:10,MV:-20,mw:-10,MW:-30,Mx:10,MX:-10,my:-10,My:-10,MY:-50,Mz:10,MZ:-10,nb:-15,Nb:10,Ne:10,Nf:10,Ng:10,Nh:10,Ni:20,Nj:20,Nk:20,Nl:20,Nm:10,Nq:10,ns:-5,nt:-10,Nt:20,nu:-10,nv:-20,Nv:30,nw:-20,NW:-10,Nx:30,NX:-20,ny:-20,Ny:10,NY:-20,Nz:40,NZ:-10,OA:-10,OD:-10,Of:20,Og:20,Oh:10,Oi:20,OI:-10,oj:-5,Oj:20,Ok:10,Ol:20,OL:10,Om:20,Oo:10,Op:10,Oq:10,OQ:10,Os:10,Ot:20,OT:-10,ou:-10,ov:5,Ov:30,OV:-10,ow:-10,Ow:10,OW:-10,Ox:30,OX:-40,oy:-10,Oy:20,OY:-40,Oz:30,OZ:-20,Pa:-40,PA:-40,Pc:-30,Pd:-40,PD:-10,Pe:-20,Pf:10,Pg:-10,Ph:10,Pi:10,PI:-10,Pj:20,PJ:-10,Pk:10,Pl:10,Pm:10,PM:-30,pn:-10,Pn:-10,PN:-10,Po:-30,Pq:-30,Ps:-20,PS:10,Pt:20,pu:-10,Pu:-30,Pv:10,Px:10,PX:-35,py:-10,PY:-20,Pz:10,PZ:-50,Qb:10,Qf:20,Qg:20,qh:-10,Qh:10,Qi:20,qj:10,Qj:90,QJ:80,Qk:10,Ql:20,Qm:20,qn:-10,qo:-10,Qp:20,Qt:30,QT:-10,qu:-10,Qv:20,QV:-10,QW:-10,Qx:20,QX:-20,Qy:50,QY:-30,Qz:40,QZ:-10,ra:-5,Ra:-10,RA:-25,RB:-10,Rc:-10,RC:-20,Rd:-10,RD:10,Re:-10,RE:-20,Rf:20,RF:10,Rg:-10,RG:-10,ri:5,RI:-10,Rj:30,RJ:30,RL:-10,RM:-20,Rn:-10,RN:10,Ro:-10,RO:-10,Rp:20,Rq:-30,RQ:-10,Rr:-10,Rs:-10,Rt:10,RT:-10,Ru:-30,RU:-20,rv:20,RV:-10,Rw:-10,RW:-10,Rx:10,RX:-20,Ry:10,RY:-30,Rz:20,RZ:-45,Sa:-10,Sb:10,Sc:-20,Sd:-25,SD:20,Se:-20,SE:-10,sf:10,Sf:20,SF:30,Sg:-20,Sh:20,Si:20,SI:10,Sj:30,SJ:30,Sk:10,Sl:20,SL:20,Sn:-20,SN:10,So:-10,SO:10,Sq:-20,Sr:-10,Ss:-10,st:10,St:20,Su:-20,sv:20,Sv:-50,SV:20,Sw:-30,SW:10,sx:15,Sx:10,Sy:-15,SY:10,sz:20,Sz:20,SZ:-10,Ta:-90,TA:-50,Tc:-80,TC:-10,Td:-110,TD:10,Te:-90,TE:-10,Tf:20,TF:30,Tg:-80,TG:-10,Th:20,ti:5,TI:10,Tj:20,Tk:10,Tl:20,Tm:-50,TM:-30,Tn:-90,To:-90,Tp:-80,Tq:-120,Tr:-80,Ts:-80,Tt:10,TT:-30,Tu:-90,tv:10,Tv:-70,TV:10,Tw:-100,tx:20,Tx:-60,TX:-10,Ty:-50,tz:30,Tz:-40,TZ:-10,ub:-10,Ub:20,UE:10,uf:10,Uf:30,UF:10,Ug:10,Uh:30,ui:10,Ui:30,Uj:40,uk:10,Uk:20,ul:10,Ul:30,Um:30,Up:10,UQ:30,Ur:10,UR:10,Us:10,Ut:50,UT:20,Uu:10,UU:10,Uv:50,UV:10,Uw:10,ux:10,Ux:30,UX:-10,Uy:10,UY:-10,uz:30,Uz:30,UZ:-10,va:-10,Va:-50,VA:-55,Vc:-30,VC:-20,Vd:-30,Ve:-30,VE:-20,vf:10,VF:10,Vg:-30,VG:-10,vi:10,Vm:-10,VM:-30,Vn:-30,VN:-10,Vo:-30,VO:-10,Vp:-20,VP:-20,Vq:-30,VQ:-10,Vr:-20,Vs:-30,vt:10,VT:20,Vu:-30,VU:-10,vv:20,Vw:-30,vx:20,VX:-20,vy:10,VY:-10,vz:10,VZ:-20,WA:-20,Wb:20,Wd:-10,WD:20,We:10,Wf:30,WF:20,Wh:30,wi:10,Wi:30,WI:10,Wj:40,WJ:20,Wk:20,Wl:40,WL:10,Wm:10,WM:-10,WS:10,Wt:40,WT:30,Wv:30,WV:10,wx:10,Wx:20,WX:-10,Wy:20,WY:10,Wz:30,WZ:-10,XA:-25,XC:-20,Xe:-10,XE:-10,xf:10,Xf:10,Xg:-10,XG:-20,xi:10,Xi:10,XI:-10,Xj:30,xk:10,Xk:10,xl:10,Xl:20,Xm:10,XM:-25,xn:-10,XN:-10,Xo:-10,XO:-20,xp:10,Xp:10,XP:-10,xq:-10,Xq:-40,XQ:-25,XS:-20,xu:-5,Xu:-30,XU:-20,xv:10,Xv:-20,Xw:-30,xx:15,Xx:10,XX:-30,xy:-10,Xy:-20,XY:-20,xz:10,Xz:30,ya:-10,Ya:-70,YA:-55,Yc:-60,YC:-30,yd:-10,Yd:-60,YD:10,ye:10,Ye:-60,YE:-30,YF:20,Yg:-60,YG:-30,YH:-10,YI:10,YJ:10,Ym:-30,YM:-35,yn:-10,Yn:-60,Yo:-60,YO:-20,Yp:-50,YP:-10,Yq:-60,YQ:-10,Yr:-60,YR:-10,Ys:-60,YS:-10,yt:10,YT:-15,yu:-10,Yu:-60,yv:10,Yv:-20,Yw:-50,yx:10,Yx:-50,YX:-30,Yy:-40,YY:-10,Yz:-30,YZ:-40,Za:-20,ZA:-20,Zb:-10,ZB:-10,Zc:-10,ZC:-20,Zd:-30,ZD:-10,Ze:-40,ZE:-20,zf:10,Zg:-40,ZG:-20,zi:10,Zj:10,Zk:10,ZL:-10,Zm:-10,Zn:-50,Zo:-30,ZO:-30,Zp:-10,ZP:-10,Zq:-50,ZQ:-10,Zr:-40,ZR:-10,Zs:-30,ZS:-20,zt:10,Zt:-10,Zu:-30,ZU:-10,zv:10,Zv:-20,Zw:-40,ZW:-10,zx:10,Zx:-10,ZX:-10,Zy:-30,ZY:-20,zz:20,Zz:10,ZZ:-10},leading:0,w:{" ":242,_:446,"-":326,"\u2013":446,"\u2014":566,",":198,";":198,":":198,"!":210,"?":374,".":198,"\u2026":594,"\xB7":187,"'":117,"\u2018":117,"\u2019":117,'"':237,"\u201C":267,"\u201D":267,"(":330,")":330,"[":330,"]":330,"{":330,"}":330,"@":643,"*":363,"/":330,"\\":330,"&":564,"#":559,"%":600,"\u2022":187,"`":353,"^":446,"\u2190":1e3,"\u2192":1e3,"\u2191":722.66,"\u2193":722.66,"+":446,"\xD7":446,"<":446,"=":446,">":446,"|":330,"~":446,"\u25E6":608.4,"\u2610":830.08,"\u2611":830.08,"\u2713":764.16,$:450,0:450,1:450,2:450,3:450,4:450,5:434,6:471,7:446,8:450,9:438,a:446,A:511,b:444,B:523,c:364,C:477,d:402,D:587,e:334,E:534,\u00E9:325,f:300,F:466,g:364,G:494,h:473,H:574,i:196,I:409,j:213,J:315,k:374,K:508,l:178,L:426,m:569,M:729,n:459,N:619,o:362,O:505,p:378,P:468,q:377,Q:492,r:360,R:544,s:350,S:495,t:331,T:458,u:370,U:482,v:331,V:490,w:517,W:720,x:343,X:524,y:341,Y:504,z:315,Z:522}},regular:{ascent:.9600067138671875,descent:.3000030517578125,k:{AC:-20,AE:-10,AG:-10,AH:-10,AI:10,Aj:10,AJ:10,AL:-10,AM:10,An:-10,AO:-20,AP:-10,Aq:-10,AQ:-20,Ar:-10,As:-10,AS:-35,AT:-50,Au:-10,AU:-20,av:-20,Av:-5,AV:-40,aw:-10,AW:-20,Ax:10,AX:-10,ay:-20,Ay:-10,AY:-65,Az:20,AZ:-10,ba:-10,bc:-10,BC:-20,bd:-10,Bf:10,BF:-20,Bg:10,bh:-5,Bi:10,BI:-10,bj:-5,Bj:10,BJ:-10,Bk:10,Bl:10,Bm:10,BP:-10,BR:-10,BS:-20,BT:-40,bu:-10,BU:-20,BV:-50,BW:-50,bx:-10,Bx:10,BX:-40,by:-10,BY:-65,Bz:40,BZ:-30,CA:-20,Cc:-5,CC:-10,Cd:-10,CE:-10,CG:-10,Cj:10,CJ:-10,CK:-10,cl:10,Cl:5,Cn:-5,CO:-10,CP:-10,CQ:-20,Cs:-10,CS:-10,Ct:10,CT:-20,Cu:-10,CU:-10,Cv:-20,CV:-20,cw:-10,Cw:-10,CW:-20,Cx:20,CX:-30,cy:-5,CY:-35,Cz:20,CZ:-40,DA:-10,Db:10,Dc:10,De:10,Df:20,DF:-10,Dg:10,Dh:10,Di:15,DI:-10,Dj:5,DJ:-10,Dk:10,Dl:10,Dm:20,DM:-5,dn:-10,Do:10,Dp:10,Dq:10,Dr:10,Ds:10,dt:10,Dt:20,DT:-40,du:-10,Dv:30,DV:-30,Dw:20,DW:-10,Dx:20,DX:-50,Dy:10,DY:-50,Dz:30,DZ:-30,EC:-10,ED:-10,EG:-10,EJ:-10,el:10,EO:-10,EQ:-20,ES:-40,ET:-10,EU:-20,Ev:-10,EV:-25,Ew:-10,EW:-30,Ex:10,EX:-40,Ey:-10,EY:-50,Ez:20,EZ:-20,fa:-10,Fa:-30,FA:-40,Fc:-20,FC:-10,Fd:-20,FD:20,Fe:-15,ff:10,Ff:10,FF:20,Fg:-10,fh:10,Fh:20,fi:10,Fi:10,FI:10,fj:10,Fj:10,FJ:20,Fk:10,fl:20,Fl:20,FL:10,fm:10,FM:-10,Fn:-20,FN:10,Fo:-20,FO:10,Fp:-10,FP:-10,Fq:-10,FQ:10,Fr:-10,FS:10,ft:40,Ft:10,FT:-30,Fu:-10,fv:10,Fv:10,FV:10,FW:10,fy:10,FY:10,Fz:10,FZ:-10,GA:-10,Gf:10,Gh:10,gi:10,Gi:10,GI:-10,Gj:10,GJ:-10,Gk:10,Gl:10,Gm:10,GM:-10,GN:10,GP:-20,GS:-10,Gt:10,GU:-10,Gv:10,GV:-10,GW:-20,Gx:10,GX:-40,gy:10,GY:-40,Gz:10,GZ:-20,Hb:10,hf:-10,Hf:10,hg:-20,Hh:10,Hi:10,Hj:20,Hk:10,Hl:10,Hm:10,hq:-10,hs:-10,Ht:20,hv:-30,Hv:10,hw:-15,Hx:20,hy:-30,Hy:10,Hz:20,Ia:-10,IA:10,Ib:10,Ic:-10,Id:-10,ID:30,Ie:-10,if:10,If:20,IF:40,Ig:-10,Ih:30,Ii:20,II:30,Ij:30,IJ:40,Ik:20,IK:10,Il:20,IL:10,IM:30,In:-10,IN:20,Io:-10,Ip:10,Iq:-20,Ir:-10,IR:10,Is:-10,It:10,Iu:-10,IU:10,iv:10,Iv:-20,IV:30,Iw:-25,IW:20,Ix:10,IX:10,Iy:-10,IY:30,Iz:20,IZ:20,Ja:-10,Jb:10,Jc:-10,Jd:-10,Je:-10,Jf:10,Jh:10,Ji:10,JI:-10,Jj:20,JJ:10,Jk:10,Jl:20,Jn:-10,Jo:-10,JO:-10,Jp:10,JP:-10,Jq:-10,JQ:-10,JR:-10,jt:10,Jt:20,JT:10,ju:-10,Ju:-20,JU:-10,jx:10,JX:-25,jy:10,JY:-20,jz:10,Jz:10,JZ:-20,Ka:-40,kc:20,Kc:-40,KC:-10,Kd:-40,KD:10,ke:10,Ke:-40,kf:20,Kf:10,KF:20,Kg:-40,KG:-10,kh:10,Kh:10,ki:10,Ki:10,Kj:40,KJ:20,kk:20,Kk:10,kl:20,Kl:10,km:10,KM:20,Kn:-40,ko:10,Ko:-50,KO:-10,Kp:10,Kq:-50,kr:10,Ks:-40,kt:10,Kt:10,KT:-10,ku:10,Ku:-60,kv:10,Kv:-30,Kw:-40,Kx:-10,KX:-10,ky:-10,Ky:-30,kz:10,Lb:-10,LC:-20,LE:-20,Lf:10,Lg:-10,LG:-20,Lh:-10,Li:10,LI:-40,Lj:20,Lk:10,ll:10,Ll:10,LL:-20,Ln:-20,LO:-25,Lp:10,Lq:-40,LQ:-30,Ls:-10,LS:-65,lt:10,Lt:-10,LT:-70,Lu:-40,LU:-45,Lv:-60,LV:-70,Lw:-40,LW:-40,Lx:10,Ly:-20,LY:-90,lz:20,Lz:30,LZ:-10,Mb:10,md:10,Mf:10,Mh:10,Mi:10,MJ:10,Mk:10,Ml:10,mo:20,Mp:10,MP:-10,Mq:-10,MQ:-10,MS:-20,Mt:20,MT:-30,Mu:-10,MU:-20,mv:-15,Mv:10,MV:-20,mw:-10,MW:-30,Mx:10,MX:-10,my:-10,My:-10,MY:-50,Mz:10,MZ:-10,nb:-15,Nb:10,Ne:10,Nf:10,Ng:10,Nh:10,Ni:20,Nj:20,Nk:20,Nl:20,Nm:10,Nq:10,ns:-5,nt:-10,Nt:20,nu:-10,nv:-20,Nv:30,nw:-20,NW:-10,Nx:30,NX:-20,ny:-20,Ny:10,NY:-20,Nz:40,NZ:-10,OA:-10,OD:-10,Of:20,Og:20,Oh:10,Oi:20,OI:-10,oj:-5,Oj:20,Ok:10,Ol:20,OL:10,Om:20,Oo:10,Op:10,Oq:10,OQ:10,Os:10,Ot:20,OT:-10,ou:-10,ov:5,Ov:30,OV:-10,ow:-10,Ow:10,OW:-10,Ox:30,OX:-40,oy:-10,Oy:20,OY:-40,Oz:30,OZ:-20,Pa:-40,PA:-40,Pc:-30,Pd:-40,PD:-10,Pe:-20,Pf:10,Pg:-10,Ph:10,Pi:10,PI:-10,Pj:20,PJ:-10,Pk:10,Pl:10,Pm:10,PM:-30,pn:-10,Pn:-10,PN:-10,Po:-30,Pq:-30,Ps:-20,PS:10,Pt:20,pu:-10,Pu:-30,Pv:10,Px:10,PX:-35,py:-10,PY:-20,Pz:10,PZ:-50,Qb:10,Qf:20,Qg:20,qh:-10,Qh:10,Qi:20,qj:10,Qj:90,QJ:80,Qk:10,Ql:20,Qm:20,qn:-10,qo:-10,Qp:20,Qt:30,QT:-10,qu:-10,Qv:20,QV:-10,QW:-10,Qx:20,QX:-20,Qy:50,QY:-30,Qz:40,QZ:-10,ra:-5,Ra:-10,RA:-25,RB:-10,Rc:-10,RC:-20,Rd:-10,RD:10,Re:-10,RE:-20,Rf:20,RF:10,Rg:-10,RG:-10,ri:5,RI:-10,Rj:30,RJ:30,RL:-10,RM:-20,Rn:-10,RN:10,Ro:-10,RO:-10,Rp:20,Rq:-30,RQ:-10,Rr:-10,Rs:-10,Rt:10,RT:-10,Ru:-30,RU:-20,rv:20,RV:-10,Rw:-10,RW:-10,Rx:10,RX:-20,Ry:10,RY:-30,Rz:20,RZ:-45,Sa:-10,Sb:10,Sc:-20,Sd:-25,SD:20,Se:-20,SE:-10,sf:10,Sf:20,SF:30,Sg:-20,Sh:20,Si:20,SI:10,Sj:30,SJ:30,Sk:10,Sl:20,SL:20,Sn:-20,SN:10,So:-10,SO:10,Sq:-20,Sr:-10,Ss:-10,st:10,St:20,Su:-20,sv:20,Sv:-50,SV:20,Sw:-30,SW:10,sx:15,Sx:10,Sy:-15,SY:10,sz:20,Sz:20,SZ:-10,Ta:-90,TA:-50,Tc:-80,TC:-10,Td:-110,TD:10,Te:-90,TE:-10,Tf:20,TF:30,Tg:-80,TG:-10,Th:20,ti:5,TI:10,Tj:20,Tk:10,Tl:20,Tm:-50,TM:-30,Tn:-90,To:-90,Tp:-80,Tq:-120,Tr:-80,Ts:-80,Tt:10,TT:-30,Tu:-90,tv:10,Tv:-70,TV:10,Tw:-100,tx:20,Tx:-60,TX:-10,Ty:-50,tz:30,Tz:-40,TZ:-10,ub:-10,Ub:20,UE:10,uf:10,Uf:30,UF:10,Ug:10,Uh:30,ui:10,Ui:30,Uj:40,uk:10,Uk:20,ul:10,Ul:30,Um:30,Up:10,UQ:30,Ur:10,UR:10,Us:10,Ut:50,UT:20,Uu:10,UU:10,Uv:50,UV:10,Uw:10,ux:10,Ux:30,UX:-10,Uy:10,UY:-10,uz:30,Uz:30,UZ:-10,va:-10,Va:-50,VA:-55,Vc:-30,VC:-20,Vd:-30,Ve:-30,VE:-20,vf:10,VF:10,Vg:-30,VG:-10,vi:10,Vm:-10,VM:-30,Vn:-30,VN:-10,Vo:-30,VO:-10,Vp:-20,VP:-20,Vq:-30,VQ:-10,Vr:-20,Vs:-30,vt:10,VT:20,Vu:-30,VU:-10,vv:20,Vw:-30,vx:20,VX:-20,vy:10,VY:-10,vz:10,VZ:-20,WA:-20,Wb:20,Wd:-10,WD:20,We:10,Wf:30,WF:20,Wh:30,wi:10,Wi:30,WI:10,Wj:40,WJ:20,Wk:20,Wl:40,WL:10,Wm:10,WM:-10,WS:10,Wt:40,WT:30,Wv:30,WV:10,wx:10,Wx:20,WX:-10,Wy:20,WY:10,Wz:30,WZ:-10,XA:-25,XC:-20,Xe:-10,XE:-10,xf:10,Xf:10,Xg:-10,XG:-20,xi:10,Xi:10,XI:-10,Xj:30,xk:10,Xk:10,xl:10,Xl:20,Xm:10,XM:-25,xn:-10,XN:-10,Xo:-10,XO:-20,xp:10,Xp:10,XP:-10,xq:-10,Xq:-40,XQ:-25,XS:-20,xu:-5,Xu:-30,XU:-20,xv:10,Xv:-20,Xw:-30,xx:15,Xx:10,XX:-30,xy:-10,Xy:-20,XY:-20,xz:10,Xz:30,ya:-10,Ya:-70,YA:-55,Yc:-60,YC:-30,yd:-10,Yd:-60,YD:10,ye:10,Ye:-60,YE:-30,YF:20,Yg:-60,YG:-30,YH:-10,YI:10,YJ:10,Ym:-30,YM:-35,yn:-10,Yn:-60,Yo:-60,YO:-20,Yp:-50,YP:-10,Yq:-60,YQ:-10,Yr:-60,YR:-10,Ys:-60,YS:-10,yt:10,YT:-15,yu:-10,Yu:-60,yv:10,Yv:-20,Yw:-50,yx:10,Yx:-50,YX:-30,Yy:-40,YY:-10,Yz:-30,YZ:-40,Za:-20,ZA:-20,Zb:-10,ZB:-10,Zc:-10,ZC:-20,Zd:-30,ZD:-10,Ze:-40,ZE:-20,zf:10,Zg:-40,ZG:-20,zi:10,Zj:10,Zk:10,ZL:-10,Zm:-10,Zn:-50,Zo:-30,ZO:-30,Zp:-10,ZP:-10,Zq:-50,ZQ:-10,Zr:-40,ZR:-10,Zs:-30,ZS:-20,zt:10,Zt:-10,Zu:-30,ZU:-10,zv:10,Zv:-20,Zw:-40,ZW:-10,zx:10,Zx:-10,ZX:-10,Zy:-30,ZY:-20,zz:20,Zz:10,ZZ:-10},leading:0,w:{" ":242,_:446,"-":326,"\u2013":446,"\u2014":566,",":198,";":198,":":198,"!":210,"?":374,".":198,"\u2026":594,"\xB7":187,"'":117,"\u2018":117,"\u2019":117,'"':237,"\u201C":267,"\u201D":267,"(":330,")":330,"[":330,"]":330,"{":330,"}":330,"@":643,"*":363,"/":330,"\\":330,"&":564,"#":559,"%":600,"\u2022":187,"`":353,"^":446,"\u2190":1e3,"\u2192":1e3,"\u2191":645.02,"\u2193":645.02,"+":446,"\xD7":446,"<":446,"=":446,">":446,"|":330,"~":446,"\u25E6":578.13,"\u2610":830.08,"\u2611":830.08,"\u2713":764.16,$:450,0:450,1:450,2:450,3:450,4:450,5:450,6:450,7:450,8:450,9:450,a:437,A:502,b:435,B:520,c:355,C:472,d:393,D:578,e:325,E:529,\u00E9:325,f:291,F:454,g:355,G:487,h:464,H:563,i:187,I:400,j:204,J:306,k:365,K:498,l:169,L:426,m:560,M:720,n:450,N:599,o:353,O:496,p:378,P:464,q:377,Q:502,r:360,R:537,s:341,S:486,t:331,T:458,u:370,U:482,v:331,V:490,w:517,W:720,x:343,X:524,y:341,Y:504,z:315,Z:522}}},fallback:{"\u2190":[.966796875,.2109375,0],"\u2192":[.966796875,.2109375,0],"\u2191":[.966796875,.2109375,0],"\u2193":[.966796875,.2109375,0],"\u25E6":[.966796875,.2109375,0],"\u2610":[.66650390625,.25,.08349609375],"\u2611":[.66650390625,.25,.08349609375],"\u2713":[.966796875,.2109375,0]}},"Helvetica Neue":{faces:{bold:{ascent:.975006103515625,descent:.2169952392578125,k:{"\u2018\u2018":-95,"\u2019\u2019":-95,"\u2019s":-74,"\u2019t":-18,"A\u2019":-74,AT:-92,Av:-18,AV:-46,Aw:-18,AW:-24,Ay:-18,AY:-74,"F,":-157,"F.":-157,"f\u2019":18,FA:-55,ff:-30,fi:20,fl:20,"L\u2019":-74,LT:-92,LV:-92,LW:-55,Ly:-37,LY:-111,"P,":-179,"P.":-179,PA:-74,"r-":-55,"r,":-92,"r.":-92,rc:-18,rd:-18,re:-18,rg:-28,rn:18,ro:-18,rq:-18,RT:-18,RV:-18,RW:-18,RY:-37,"T-":-129,"T,":-111,"T;":-111,"T:":-111,"T.":-111,Ta:-111,TA:-92,Tc:-111,Te:-111,To:-111,Tr:-92,Ts:-111,Tu:-92,Tw:-111,Ty:-111,"V-":-55,"v,":-74,"V,":-129,"V;":-46,"V:":-46,"v.":-74,"V.":-129,Va:-55,VA:-46,Ve:-55,Vi:-18,Vo:-55,Vr:-37,Vu:-37,Vy:-18,"w,":-55,"W,":-74,"W;":-18,"W:":-18,"w.":-55,"W.":-74,Wa:-37,WA:-24,We:-57,Wo:-57,Wr:-18,Wu:-18,"Y-":-111,"y,":-74,"Y,":-139,"Y;":-92,"Y:":-92,"y.":-74,"Y.":-139,Ya:-92,YA:-74,Ye:-111,Yi:-37,Yo:-111,Yp:-74,Yq:-92,Yu:-74,Yv:-55},leading:.0290069580078125,w:{" ":278,_:500,"-":407,"\u2013":500,"\u2014":1e3,",":278,";":278,":":278,"!":278,"?":556,".":278,"\u2026":1e3,"\xB7":278,"'":278,"\u2018":278,"\u2019":278,'"':463,"\u201C":463,"\u201D":463,"(":296,")":296,"[":333,"]":333,"{":333,"}":333,"@":800,"*":407,"/":371,"\\":371,"&":685,"#":556,"%":1e3,"\u2022":350,"`":259,"^":600,"\u2190":1e3,"\u2192":1e3,"\u2191":722.66,"\u2193":722.66,"+":600,"\xD7":600,"<":600,"=":600,">":600,"|":223,"~":600,"\u25E6":608.4,"\u2610":830.08,"\u2611":830.08,"\u2713":764.16,$:556,0:556,1:556,2:556,3:556,4:556,5:556,6:556,7:556,8:556,9:556,a:574,A:685,b:611,B:704,c:574,C:741,d:611,D:741,e:574,E:648,\u00E9:574,f:333,F:593,g:611,G:759,h:593,H:741,i:258,I:295,j:278,J:556,k:574,K:722,l:258,L:593,m:906,M:907,n:593,N:741,o:611,O:778,p:611,P:667,q:611,Q:778,r:389,R:722,s:537,S:649,t:352,T:611,u:593,U:741,v:520,V:630,w:814,W:944,x:537,X:667,y:519,Y:667,z:519,Z:648}},boldItalic:{ascent:.975006103515625,descent:.2169952392578125,k:{"\u2018\u2018":-95,"\u2019\u2019":-95,"\u2019s":-74,"\u2019t":-18,"A\u2019":-74,AT:-92,Av:-18,AV:-46,Aw:-18,AW:-24,Ay:-18,AY:-74,"F,":-157,"F.":-157,"f\u2019":18,FA:-55,ff:-68,"L\u2019":-74,LT:-92,LV:-92,LW:-55,Ly:-37,LY:-111,"P,":-179,"P.":-179,PA:-74,"r-":-55,"r,":-92,"r.":-92,rc:-18,rd:-18,re:-18,rg:-28,rn:18,ro:-18,rq:-18,RT:-18,RV:-18,RW:-18,RY:-37,"T-":-129,"T,":-111,"T;":-111,"T:":-111,"T.":-111,Ta:-111,TA:-92,Tc:-111,Te:-111,To:-111,Tr:-92,Ts:-111,Tu:-92,Tw:-111,Ty:-111,"V-":-55,"v,":-74,"V,":-129,"V;":-46,"V:":-46,"v.":-74,"V.":-129,Va:-55,VA:-46,Ve:-55,Vi:-18,Vo:-55,Vr:-37,Vu:-37,Vy:-18,"w,":-55,"W,":-74,"W;":-18,"W:":-18,"w.":-55,"W.":-74,Wa:-37,WA:-24,We:-57,Wo:-57,Wr:-18,Wu:-18,"Y-":-111,"y,":-74,"Y,":-139,"Y;":-92,"Y:":-92,"y.":-74,"Y.":-139,Ya:-92,YA:-74,Ye:-111,Yi:-37,Yo:-111,Yp:-74,Yq:-92,Yu:-74,Yv:-55},leading:.0290069580078125,w:{" ":278,_:500,"-":407,"\u2013":500,"\u2014":1e3,",":278,";":278,":":278,"!":296,"?":574,".":278,"\u2026":1e3,"\xB7":278,"'":278,"\u2018":278,"\u2019":278,'"':481,"\u201C":481,"\u201D":481,"(":296,")":296,"[":333,"]":333,"{":333,"}":333,"@":800,"*":407,"/":389,"\\":389,"&":685,"#":556,"%":963,"\u2022":350,"`":259,"^":600,"\u2190":1e3,"\u2192":1e3,"\u2191":722.66,"\u2193":722.66,"+":600,"\xD7":600,"<":600,"=":600,">":600,"|":222,"~":600,"\u25E6":608.4,"\u2610":830.08,"\u2611":830.08,"\u2713":764.16,$:556,0:556,1:556,2:556,3:556,4:556,5:556,6:556,7:556,8:556,9:556,a:574,A:685,b:611,B:722,c:556,C:741,d:611,D:741,e:574,E:667,\u00E9:574,f:352,F:593,g:611,G:759,h:611,H:741,i:259,I:296,j:259,J:556,k:556,K:722,l:259,L:574,m:907,M:907,n:611,N:741,o:593,O:778,p:611,P:667,q:611,Q:778,r:389,R:722,s:519,S:648,t:370,T:611,u:611,U:741,v:519,V:630,w:815,W:944,x:519,X:667,y:519,Y:648,z:500,Z:648}},italic:{ascent:.957000732421875,descent:.2129974365234375,k:{"\u2018\u2018":-95,"\u2019\u2019":-95,"\u2019s":-74,"\u2019t":-18,"A\u2019":-74,AT:-92,Av:-18,AV:-46,Aw:-18,AW:-24,Ay:-18,AY:-74,"F,":-157,"F.":-157,"f\u2019":18,FA:-55,ff:-15,fi:1,fl:1,"L\u2019":-74,LT:-92,LV:-92,LW:-55,Ly:-37,LY:-111,"P,":-179,"P.":-179,PA:-74,"r-":-55,"r,":-92,"r.":-92,rc:-18,rd:-18,re:-18,rg:-28,rn:18,ro:-18,rq:-18,RT:-18,RV:-18,RW:-18,RY:-37,"T-":-129,"T,":-111,"T;":-111,"T:":-111,"T.":-111,Ta:-111,TA:-92,Tc:-111,Te:-111,To:-111,Tr:-92,Ts:-111,Tu:-92,Tw:-111,Ty:-111,"V-":-55,"v,":-74,"V,":-129,"V;":-46,"V:":-46,"v.":-74,"V.":-129,Va:-55,VA:-46,Ve:-55,Vi:-18,Vo:-55,Vr:-37,Vu:-37,Vy:-18,"w,":-55,"W,":-74,"W;":-18,"W:":-18,"w.":-55,"W.":-74,Wa:-37,WA:-24,We:-57,Wo:-57,Wr:-18,Wu:-18,"Y-":-111,"y,":-74,"Y,":-139,"Y;":-92,"Y:":-92,"y.":-74,"Y.":-139,Ya:-92,YA:-74,Ye:-111,Yi:-37,Yo:-111,Yp:-74,Yq:-92,Yu:-74,Yv:-55},leading:.0279998779296875,w:{" ":278,_:500,"-":389,"\u2013":500,"\u2014":1e3,",":278,";":278,":":278,"!":259,"?":556,".":278,"\u2026":1e3,"\xB7":278,"'":278,"\u2018":278,"\u2019":278,'"':426,"\u201C":426,"\u201D":426,"(":259,")":259,"[":259,"]":259,"{":333,"}":333,"@":800,"*":352,"/":333,"\\":333,"&":630,"#":556,"%":926,"\u2022":500,"`":222,"^":600,"\u2190":1e3,"\u2192":1e3,"\u2191":645.02,"\u2193":645.02,"+":600,"\xD7":600,"<":600,"=":600,">":600,"|":222,"~":600,"\u25E6":578.13,"\u2610":830.08,"\u2611":830.08,"\u2713":764.16,$:556,0:556,1:556,2:556,3:556,4:556,5:556,6:556,7:556,8:556,9:556,a:519,A:667,b:593,B:685,c:537,C:722,d:593,D:704,e:537,E:611,\u00E9:537,f:296,F:574,g:574,G:759,h:556,H:722,i:222,I:259,j:222,J:519,k:481,K:667,l:222,L:556,m:852,M:870,n:556,N:722,o:574,O:759,p:593,P:648,q:593,Q:759,r:333,R:685,s:481,S:648,t:315,T:574,u:556,U:722,v:481,V:611,w:759,W:926,x:481,X:611,y:481,Y:611,z:444,Z:611}},regular:{ascent:.951995849609375,descent:.2129974365234375,k:{"\u2018\u2018":-95,"\u2019\u2019":-95,"\u2019s":-74,"\u2019t":-18,"A\u2019":-74,AT:-92,Av:-18,AV:-46,Aw:-18,AW:-24,Ay:-18,AY:-74,"F,":-157,"F.":-157,"f\u2019":18,FA:-55,ff:-15,"L\u2019":-74,LT:-92,LV:-92,LW:-55,Ly:-37,LY:-111,"P,":-179,"P.":-179,PA:-74,"r-":-55,"r,":-92,"r.":-92,rc:-18,rd:-18,re:-18,rg:-28,rn:18,ro:-18,rq:-18,RT:-18,RV:-18,RW:-18,RY:-37,"T-":-129,"T,":-111,"T;":-111,"T:":-111,"T.":-111,Ta:-111,TA:-92,Tc:-111,Te:-111,To:-111,Tr:-92,Ts:-111,Tu:-92,Tw:-111,Ty:-111,"V-":-55,"v,":-74,"V,":-129,"V;":-46,"V:":-46,"v.":-74,"V.":-129,Va:-55,VA:-46,Ve:-55,Vi:-18,Vo:-55,Vr:-37,Vu:-37,Vy:-18,"w,":-55,"W,":-74,"W;":-18,"W:":-18,"w.":-55,"W.":-74,Wa:-37,WA:-24,We:-57,Wo:-57,Wr:-18,Wu:-18,"Y-":-111,"y,":-74,"Y,":-139,"Y;":-92,"Y:":-92,"y.":-74,"Y.":-139,Ya:-92,YA:-74,Ye:-111,Yi:-37,Yo:-111,Yp:-74,Yq:-92,Yu:-74,Yv:-55},leading:.0279998779296875,w:{" ":278,_:500,"-":389,"\u2013":500,"\u2014":1e3,",":278,";":278,":":278,"!":259,"?":556,".":278,"\u2026":1e3,"\xB7":278,"'":278,"\u2018":278,"\u2019":278,'"':426,"\u201C":426,"\u201D":426,"(":259,")":259,"[":259,"]":259,"{":333,"}":333,"@":800,"*":352,"/":333,"\\":333,"&":630,"#":556,"%":1e3,"\u2022":350,"`":222,"^":600,"\u2190":1e3,"\u2192":1e3,"\u2191":645.02,"\u2193":645.02,"+":600,"\xD7":600,"<":600,"=":600,">":600,"|":222,"~":600,"\u25E6":578.13,"\u2610":830.08,"\u2611":830.08,"\u2713":764.16,$:556,0:556,1:556,2:556,3:556,4:556,5:556,6:556,7:556,8:556,9:556,a:537,A:648,b:593,B:685,c:537,C:722,d:593,D:704,e:537,E:611,\u00E9:537,f:296,F:574,g:574,G:759,h:556,H:722,i:222,I:259,j:222,J:519,k:519,K:667,l:222,L:556,m:853,M:871,n:556,N:722,o:574,O:760,p:593,P:648,q:593,Q:760,r:333,R:685,s:500,S:648,t:315,T:574,u:556,U:722,v:500,V:611,w:758,W:926,x:518,X:611,y:500,Y:648,z:480,Z:611}}},fallback:{"\u2190":[.966796875,.2109375,0],"\u2192":[.966796875,.2109375,0],"\u2191":[.966796875,.2109375,0],"\u2193":[.966796875,.2109375,0],"\u25E6":[.966796875,.2109375,0],"\u2610":[.66650390625,.25,.08349609375],"\u2611":[.66650390625,.25,.08349609375],"\u2713":[.966796875,.2109375,0]}},"Patrick Hand":{faces:{regular:{ascent:1.0420074462890625,descent:.3119964599609375,k:{},leading:0,w:{" ":230,_:571,"-":404,"\u2013":420,"\u2014":648,",":202,";":232,":":232,"!":247,"?":368,".":214,"\u2026":571,"\xB7":200,"'":164,"\u2018":190,"\u2019":220,'"':303,"\u201C":315,"\u201D":303,"(":334,")":364,"[":303,"]":296,"{":339,"}":328,"@":550,"*":404,"/":423,"\\":420,"&":530,"#":457,"%":643,"\u2022":352,"`":220,"^":370,"\u2190":1e3,"\u2192":1e3,"\u2191":645.02,"\u2193":645.02,"+":480,"\xD7":490,"<":396,"=":572,">":400,"|":176,"~":529,"\u25E6":578.13,"\u2610":830.08,"\u2611":830.08,"\u2713":764.16,$:507,0:448,1:363,2:468,3:448,4:375,5:423,6:399,7:495,8:433,9:367,a:392,A:488,b:412,B:507,c:388,C:548,d:390,D:475,e:398,E:442,\u00E9:398,f:359,F:375,g:445,G:480,h:420,H:468,i:224,I:235,j:235,J:370,k:415,K:523,l:266,L:372,m:680,M:595,n:452,N:532,o:403,O:556,p:428,P:481,q:463,Q:655,r:385,R:454,s:385,S:459,t:344,T:468,u:400,U:550,v:400,V:562,w:463,W:616,x:448,X:601,y:423,Y:442,z:428,Z:507}}},fallback:{"\u2190":[.966796875,.2109375,0],"\u2192":[.966796875,.2109375,0],"\u2191":[.966796875,.2109375,0],"\u2193":[.966796875,.2109375,0],"\u25E6":[.966796875,.2109375,0],"\u2610":[.66650390625,.25,.08349609375],"\u2611":[.66650390625,.25,.08349609375],"\u2713":[.966796875,.2109375,0]}}};var ae="Helvetica Neue",Ce="Helvetica Neue, Helvetica, Arial, sans-serif",Gt=Object.keys(wt).filter(t=>t!==ae).sort();function Bt(t){if(!t)return null;let e=t.toLowerCase();return Gt.find(n=>n.toLowerCase()===e)??null}function ce(t){return wt[Bt(t)??ae]}function Nt(t,e,n){let i=e?n?"boldItalic":"bold":n?"italic":"regular";return t.faces[i]?i:"regular"}function ue(t){if(!t)return Ce;let e=[...Bt(t)??t].filter(n=>!`"'<>&;{}\\`.includes(n)).join("");return e===""?Ce:`${/^[\p{L}\p{N} -]+$/u.test(e)?e:`'${e}'`}, ${Ce}`}function Ln(t,e,n="regular",i){let o=ce(i),r=o.faces[n]??o.faces.regular,s=r.w.n,l=0,a="";for(let u of t)l+=r.w[u]??s,a&&(l+=r.k[a+u]??0),a=u;return l*e/1e3}function zi(t,e){let n=ce(e).faces.regular,i=Math.round(n.ascent*t),o=Math.round(n.descent*t),r=Math.round(n.leading*t);return[i+Math.ceil(n.descent*t-1e-9),i+o+r]}function Ye(t,e){return t===" "?!0:(t==="/"||t==="-")&&e!==""&&!/[\d\s/-]/.test(e)}function Gi(t){let e=[...t],n=[],i="";return e.forEach((o,r)=>{i+=o;let s=e[r+1]??"";Ye(o,s)&&s!==" "&&(n.push(i),i="")}),(i||n.length===0)&&n.push(i),n}function Bi(t,e,n,i="regular",o){let r=l=>Ln(l,e,i,o),s=[];for(let l of t.split(/\r\n|\n|\r|\u2028|\u2029/)){let a="";for(let u of Gi(l)){let c=a+u;for(a===""||r(c.trimEnd())<=n?a=c:(s.push(a),a=u);r(a.trimEnd())>n&&[...a.trimEnd()].length>1;){let h=[...a],m=h.length-1;for(;m>1&&r(h.slice(0,m).join(""))>n;)m--;s.push(h.slice(0,m).join("")),a=h.slice(m).join("")}}s.push(a)}return s}function Fn(t,e,n,i){if(t==="")return{width:0,height:0};let o=Bi(t,e,n,"regular",i),r=Math.max(...o.map(a=>Ln(a.trimEnd(),e,"regular",i))),[s,l]=zi(e,i);return{width:Math.ceil(r-1e-9),height:Math.ceil(s+l*(o.length-1)-1e-9)}}var Ni=["bold","boldItalic","italic","regular"];function Ve(t,e){return`${t.toLowerCase().replaceAll(" ","-")}-${e}.woff2`}function We(t){return Ni.filter(e=>wt[t]?.faces[e]!==void 0)}function he(t){let e=new Set,n=i=>{for(let o of i){let r=Bt(o.style.font);r&&e.add(r)}};n(t.elements);for(let i of t.symbols??[])n(i.elements);return Gt.filter(i=>e.has(i))}function Zi(){try{let t=typeof document>"u"?null:document.currentScript;if(t?.src)return new URL("fonts/",t.src).href;let e=void 0;return e?new URL("fonts/",e).href:null}catch{return null}}var Oe=Zi(),Dn=new Set;function Cn(t){Oe=t.endsWith("/")?t:`${t}/`}function fe(t,e={}){if(!(typeof document>"u"||typeof FontFace>"u"||!document.fonts))for(let n of t){let i=Bt(n);if(!i||Dn.has(i))continue;let o=e[i];if(!(!o&&!Oe)){Dn.add(i);for(let r of We(i)){let s=o?.[r],l;if(s)l=Uint8Array.from(atob(s),u=>u.charCodeAt(0));else if(!o)l=`url(${JSON.stringify(Oe+Ve(i,r))}) format("woff2")`;else continue;let a={weight:r.startsWith("bold")?"bold":"normal",style:r==="italic"||r==="boldItalic"?"italic":"normal"};document.fonts.add(new FontFace(i,l,a))}}}}var Yn=.5522847498307936,I=class t{constructor(){v(this,"segments",[])}get isEmpty(){return this.segments.length===0}moveTo(e){return this.segments.push({op:"M",p:e}),this}lineTo(e){return this.segments.push({op:"L",p:e}),this}quadTo(e,n){return this.segments.push({op:"Q",c:n,p:e}),this}curveTo(e,n,i){return this.segments.push({op:"C",c1:n,c2:i,p:e}),this}close(){return this.segments.push({op:"Z"}),this}addPath(e){return this.segments.push(...e.segments),this}addLines(e){return e.forEach((n,i)=>i===0?this.moveTo(n):this.lineTo(n)),this}static rect(e){return new t().addLines([{x:e.x,y:e.y},{x:e.x+e.width,y:e.y},{x:e.x+e.width,y:e.y+e.height},{x:e.x,y:e.y+e.height}]).close()}addEllipse(e){let n=e.x+e.width/2,i=e.y+e.height/2,o=e.width/2,r=e.height/2,s=o*Yn,l=r*Yn;return this.moveTo({x:n+o,y:i}),this.curveTo({x:n,y:i+r},{x:n+o,y:i+l},{x:n+s,y:i+r}),this.curveTo({x:n-o,y:i},{x:n-s,y:i+r},{x:n-o,y:i+l}),this.curveTo({x:n,y:i-r},{x:n-o,y:i-l},{x:n-s,y:i-r}),this.curveTo({x:n+o,y:i},{x:n+s,y:i-r},{x:n+o,y:i-l}),this.close()}static ellipse(e){return new t().addEllipse(e)}translated(e,n){let i=r=>({x:r.x+e,y:r.y+n}),o=new t;return o.segments=this.segments.map(r=>{switch(r.op){case"M":case"L":return{op:r.op,p:i(r.p)};case"Q":return{op:"Q",c:i(r.c),p:i(r.p)};case"C":return{op:"C",c1:i(r.c1),c2:i(r.c2),p:i(r.p)};case"Z":return r}}),o}contours(){let e=[],n=[],i={x:0,y:0};for(let o of this.segments){let r=n.length?n[n.length-1]:i;switch(o.op){case"M":n.length>1&&e.push(n),i=o.p,n=[o.p];break;case"L":n.push(o.p);break;case"Q":for(let s=1;s<=12;s++){let l=s/12,a=1-l;n.push({x:a*a*r.x+2*a*l*o.c.x+l*l*o.p.x,y:a*a*r.y+2*a*l*o.c.y+l*l*o.p.y})}break;case"C":for(let s=1;s<=16;s++){let l=s/16,a=1-l;n.push({x:a*a*a*r.x+3*a*a*l*o.c1.x+3*a*l*l*o.c2.x+l*l*l*o.p.x,y:a*a*a*r.y+3*a*a*l*o.c1.y+3*a*l*l*o.c2.y+l*l*l*o.p.y})}break;case"Z":n.push(i),n.length>1&&e.push(n),n=[i];break}}return n.length>1&&e.push(n),e}trimmed(e){let n=this.contours().map(r=>new It(r)),i=Math.min(Math.max(e,0),1)*n.reduce((r,s)=>r+s.length,0),o=new t;for(let r of n){if(!(i>0))break;o.moveTo(r.points[0]);for(let s=1;s<r.points.length;s++){let l=r.lengths[s]-r.lengths[s-1];if(l<=i){o.lineTo(r.points[s]),i-=l;continue}let a=r.points[s-1],u=r.points[s],c=i/l;o.lineTo({x:a.x+(u.x-a.x)*c,y:a.y+(u.y-a.y)*c}),i=0;break}}return o}data(){let e=[];for(let n of this.segments)switch(n.op){case"M":e.push(`M${R(n.p.x)} ${R(n.p.y)}`);break;case"L":e.push(`L${R(n.p.x)} ${R(n.p.y)}`);break;case"Q":e.push(`Q${R(n.c.x)} ${R(n.c.y)} ${R(n.p.x)} ${R(n.p.y)}`);break;case"C":e.push(`C${R(n.c1.x)} ${R(n.c1.y)} ${R(n.c2.x)} ${R(n.c2.y)} ${R(n.p.x)} ${R(n.p.y)}`);break;case"Z":e.push("Z");break}return e.join(" ")}};function Zt(t){return t<0?-Math.round(-t):Math.round(t)}function R(t){let e=Zt(t*100)/100;return Number.isInteger(e)?String(e===0?0:e):String(e)}var It=class{constructor(e){v(this,"points");v(this,"lengths");this.points=e;let n=0;this.lengths=e.map((i,o)=>(o>0&&(n+=Math.hypot(i.x-e[o-1].x,i.y-e[o-1].y)),n))}get length(){return this.lengths.length?this.lengths[this.lengths.length-1]:0}point(e){if(this.points.length<=1||!(this.length>0))return this.points[0]??{x:0,y:0};let n=Math.min(Math.max(e,0),1)*this.length,i=1;for(;i<this.lengths.length-1&&this.lengths[i]<n;)i++;let o=this.lengths[i]-this.lengths[i-1],r=o>0?(n-this.lengths[i-1])/o:0,s=this.points[i-1],l=this.points[i];return{x:s.x+(l.x-s.x)*r,y:s.y+(l.y-s.y)*r}}},q=t=>t.x+t.width/2,Q=t=>t.y+t.height/2,H=t=>t.x+t.width,K=t=>t.y+t.height;function $e(t,e){if(!t)return{...e};let n=Math.min(t.x,e.x),i=Math.min(t.y,e.y);return{x:n,y:i,width:Math.max(H(t),H(e))-n,height:Math.max(K(t),K(e))-i}}function Lt(t,e,n){return{x:t.x+e,y:t.y+n,width:t.width-2*e,height:t.height-2*n}}function mt(t,e,n){if(n===0)return t;let i=t.x-e.x,o=t.y-e.y;return{x:e.x+i*Math.cos(n)-o*Math.sin(n),y:e.y+i*Math.sin(n)+o*Math.cos(n)}}function ze(t,e){let n=1-e;return{x:t[0].x*(n*n*n)+t[1].x*(3*e*n*n)+t[2].x*(3*e*e*n)+t[3].x*(e*e*e),y:t[0].y*(n*n*n)+t[1].y*(3*e*n*n)+t[2].y*(3*e*e*n)+t[3].y*(e*e*e)}}function On(t,e){let n=[t[0]];for(let i=0;i<Math.floor((t.length-1)/3);i++){let o=t.slice(3*i,3*i+4),r=0;for(let l=1;l<o.length;l++)r+=Math.hypot(o[l].x-o[l-1].x,o[l].y-o[l-1].y);let s=Math.min(400,Math.max(4,Math.ceil(r/Math.max(e,.5))));for(let l=1;l<=s;l++)n.push(ze(o,l/s))}return n}var Y=t=>({x:t.x,y:t.y,width:t.width,height:t.height}),N=t=>t.rotation??0,Ut=t=>({x:t.x+t.width/2,y:t.y+t.height/2}),tt=(t,e)=>mt(e,Ut(t),N(t)),Vn=(t,e)=>mt(e,Ut(t),-N(t));function Wn(t){let e=Y(t);if(N(t)===0)return e;let n=[{x:e.x,y:e.y},{x:H(e),y:e.y},{x:H(e),y:K(e)},{x:e.x,y:K(e)}].map(l=>tt(t,l)),i=n.map(l=>l.x),o=n.map(l=>l.y),r=Math.min(...i),s=Math.min(...o);return{x:r,y:s,width:Math.max(...i)-r,height:Math.max(...o)-s}}function $n(t,e){let n=t.style.textColor!==null&&zt(t.style.textColor);if(!zt(t.style.stroke)&&!n)return t;let i=G(t),r=(t.style.fillStyle==="solid"||t.style.fillStyle==="grid")&&t.style.fill.a>=.5&&Et(t.style.fill)>.5,s=Et(e)>.5&&r?bt:e;return zt(t.style.stroke)&&(i.style.stroke={...s}),n&&(i.style.textColor={...s}),i}function zn(t){return t.kind==="text"||t.kind==="note"?t.style.stroke:t.style.textColor??t.style.stroke}function Ft(t){if(t.kind!=="path"||!t.subpaths)return[];let e=[];for(let n of t.subpaths){if(n.coords.length<8||(n.coords.length-2)%6!==0)continue;let i=[];for(let o=0;o<n.coords.length;o+=2)i.push({x:t.x+n.coords[o]*t.width,y:t.y+n.coords[o+1]*t.height});e.push({closed:n.closed,points:i})}return e}function Ge(t){let e=new I;for(let n of Ft(t)){e.moveTo(n.points[0]);for(let i=0;i<(n.points.length-1)/3;i++)e.curveTo(n.points[3*i+3],n.points[3*i+1],n.points[3*i+2]);n.closed&&e.close()}return e}function Ui(t,e){let n=Y(t),i=e==="top"?{x:q(n),y:n.y}:e==="right"?{x:H(n),y:Q(n)}:e==="bottom"?{x:q(n),y:K(n)}:{x:n.x,y:Q(n)};return tt(t,i)}function Xi(t){let e=[];for(let n=0;n+3<t.length;n+=3){let i=t.slice(n,n+4);for(let o=0;o<16;o++)e.push(ze(i,o/16))}return e.push(t[t.length-1]),e}function ji(t,e,n){let i=null,o=null;for(let s of Ft(t)){let l=Xi(s.points),a=l.length,u=s.closed?a:a-1;for(let c=0;c<u;c++){let h=l[c],m=l[(c+1)%a],f={x:m.x-h.x,y:m.y-h.y},d={x:h.x-e.x,y:h.y-e.y},p=f.x*n.y-n.x*f.y;if(p===0)continue;let x=(f.x*d.y-f.y*d.x)/p,b=(n.x*d.y-n.y*d.x)/p;x>0&&b>=0&&b<=1&&((i===null||x<i)&&(i=x),x<=1&&(o===null||x>o)&&(o=x))}}let r=o??i;return r===null?null:{x:e.x+n.x*r,y:e.y+n.y*r}}function Ji(t,e){let n=Y(t),i=Ut(t),o=Vn(t,e),r=o.x-i.x,s=o.y-i.y;if(!((r!==0||s!==0)&&n.width>0&&n.height>0))return i;if(t.kind==="path"){let c=ji(t,i,{x:r,y:s});if(c)return tt(t,c)}let l=n.width/2,a=n.height/2,u;return t.kind==="ellipse"?u=1/Math.sqrt(r*r/(l*l)+s*s/(a*a)):t.kind==="diamond"?u=1/(Math.abs(r)/l+Math.abs(s)/a):u=Math.min(r!==0?l/Math.abs(r):1/0,s!==0?a/Math.abs(s):1/0),tt(t,{x:i.x+r*u,y:i.y+s*u})}function Gn(t,e){let n=t.elementID?e.get(t.elementID):void 0;return n?Ut(n):{x:t.x,y:t.y}}function Hi(t,e){let n=Y(t);return tt(t,{x:n.x+e.x*n.width,y:n.y+e.y*n.height})}function Bn(t,e,n){let i=t.elementID?n.get(t.elementID):void 0;if(!i)return{x:t.x,y:t.y};let o=t.portIndex,r=i.ports??[];return typeof o=="number"&&Number.isInteger(o)&&o>=0&&o<r.length?Hi(i,r[o]):t.port?Ui(i,t.port):Ji(i,e)}function lt(t,e){let n=t.connector;if(!n)return[{x:0,y:0},{x:0,y:0}];let i=n.waypoints??[];return[Bn(n.start,i.length>0?i[0]:Gn(n.end,e),e),Bn(n.end,i.length>0?i[i.length-1]:Gn(n.start,e),e)]}function at(t){if(t.kind==="polyline")return t.points;let e=[],n=t.points;for(let i=0;i<Math.floor((n.length-1)/3);i++){let o=n[3*i],r=n[3*i+1],s=n[3*i+2],l=n[3*i+3];for(let a=i===0?0:1;a<=24;a++){let u=a/24,c=1-u;e.push({x:c*c*c*o.x+3*c*c*u*r.x+3*c*u*u*s.x+u*u*u*l.x,y:c*c*c*o.y+3*c*c*u*r.y+3*c*u*u*s.y+u*u*u*l.y})}}return e}var me=t=>t===null?null:t==="top"||t==="bottom";function Ki(t){let e=[];for(let n of t){let i=e[e.length-1];if(!(i&&Math.abs(i.x-n.x)<.5&&Math.abs(i.y-n.y)<.5)){if(e.length>=2){let o=e[e.length-2],r=e[e.length-1];if(Math.abs(o.x-r.x)<.5&&Math.abs(r.x-n.x)<.5||Math.abs(o.y-r.y)<.5&&Math.abs(r.y-n.y)<.5){e[e.length-1]=n;continue}}e.push(n)}}return e.length>=2?e:t}function qi(t,e){switch(e.routing){case"straight":return{kind:"polyline",points:t};case"curved":{let n=[t[0]];for(let i=0;i<t.length-1;i++){let o=t[Math.max(i-1,0)],r=t[i],s=t[i+1],l=t[Math.min(i+2,t.length-1)];n.push({x:r.x+(s.x-o.x)/6,y:r.y+(s.y-o.y)/6}),n.push({x:s.x-(l.x-r.x)/6,y:s.y-(l.y-r.y)/6}),n.push(s)}return{kind:"curve",points:n}}case"elbow":{let n=t[0],i=t[1],o=me(e.start.port)??Math.abs(i.y-n.y)>Math.abs(i.x-n.x),r=me(e.end.port),s=[n];for(let l=1;l<t.length;l++){let a=t[l],u=s[s.length-1],c=Math.abs(u.x-a.x)<.5,h=Math.abs(u.y-a.y)<.5;if(c||h){s.push(a),c!==h&&(o=!c);continue}let m=l===t.length-1&&r!==null?!r:o;s.push(m?{x:u.x,y:a.y}:{x:a.x,y:u.y},a),o=m}return{kind:"polyline",points:Ki(s)}}}}function ct(t,e){let n=t.connector;if(!n)return{kind:"polyline",points:[]};let[i,o]=lt(t,e);if(n.waypoints&&n.waypoints.length>0)return qi([i,...n.waypoints.map(a=>({x:a.x,y:a.y})),o],n);let r=o.x-i.x,s=o.y-i.y,l=Math.abs(r)>=Math.abs(s);switch(n.routing){case"straight":return{kind:"polyline",points:[i,o]};case"curved":return l?{kind:"curve",points:[i,{x:i.x+r/2,y:i.y},{x:o.x-r/2,y:o.y},o]}:{kind:"curve",points:[i,{x:i.x,y:i.y+s/2},{x:o.x,y:o.y-s/2},o]};case"elbow":{let a=me(n.start.port)??!l,u=me(n.end.port)??!l;if(a&&u){let c=i.y+s/2;return{kind:"polyline",points:[i,{x:i.x,y:c},{x:o.x,y:c},o]}}if(!a&&!u){let c=i.x+r/2;return{kind:"polyline",points:[i,{x:c,y:i.y},{x:c,y:o.y},o]}}return a?{kind:"polyline",points:[i,{x:i.x,y:o.y},o]}:{kind:"polyline",points:[i,{x:o.x,y:i.y},o]}}}}function Nn(t,e,n){let i=Math.atan2(t.y-e.y,t.x-e.x),o=Math.PI/7,r=s=>({x:t.x-n*Math.cos(i+s),y:t.y-n*Math.sin(i+s)});return[r(o),r(-o)]}function Zn(t,e){let n=at(ct(t,e));if(n.length===0)return{x:0,y:0,width:0,height:0};let i=n[0].x,o=n[0].y,r=i,s=o;for(let l of n)i=Math.min(i,l.x),o=Math.min(o,l.y),r=Math.max(r,l.x),s=Math.max(s,l.y);return{x:i,y:o,width:r-i,height:s-o}}function Un(t,e){let n=at(ct(t,e));if(n.length<=1)return n[0]??{x:0,y:0};let i=[],o=0;for(let s=0;s<n.length-1;s++){let l=Math.hypot(n[s+1].x-n[s].x,n[s+1].y-n[s].y);i.push(l),o+=l}let r=o/2;for(let s=0;s<i.length;s++){let l=i[s];if(r<=l||s===i.length-1){let a=l===0?0:r/l;return{x:n[s].x+(n[s+1].x-n[s].x)*a,y:n[s].y+(n[s+1].y-n[s].y)*a}}r-=l}return n[0]}function et(t){let e=new Map;for(let n of t.elements)e.has(n.id)||e.set(n.id,n);return e}function Ne(t,e,n){let i=t[1]+n>>>0,o=i<t[1]?1:0;return[t[0]+e+o>>>0,i]}function Qi(t,e){let n=t&65535,i=t>>>16,o=e&65535,r=e>>>16,s=n*o,l=n*r,a=i*o,u=i*r,c=l+a,h=s+c%65536*65536;return[u+Math.floor(c/65536)+Math.floor(h/4294967296)>>>0,h>>>0]}function Ze(t,e,n){let i=Qi(t[1],n);return[i[0]+Math.imul(t[0],n)+Math.imul(t[1],e)>>>0,i[1]]}function Be(t,e){let n=(t[1]>>>e|t[0]<<32-e)>>>0;return[(t[0]^t[0]>>>e)>>>0,(t[1]^n)>>>0]}function Xn(t){return t=Ze(Be(t,30),3210233709,484763065),t=Ze(Be(t,27),2496678331,321982955),Be(t,31)}var dt=class{constructor(e){v(this,"state");this.state=Ne([0,e>>>0],2654435769,2135587861)}next(){return this.state=Ne(this.state,2654435769,2135587861),Xn(this.state)}top53(){let[e,n]=this.next();return e*2097152+(n>>>11)}signed(){return Math.floor(this.top53())/2**52-1}unit(){return this.top53()/2**53}};function de(t,e){let n=Ne([0,t>>>0],..._i(e));return n=Xn(n),Math.max(1,n[1]>>>0)}function _i(t){let e=Ze([0,t>>>0],2654435769,2135587861);return[e[0],e[1]]}var jn=(t,e,n)=>t.signed()*e*n;function ut(t,e,n,i,o,r,s){let l=Math.hypot(e.x-t.x,e.y-t.y);if(!(l>.5))return;let a=l<200?1:l>500?.4:-.0016668*l+1.233334,u=l<20?l/10:2;for(let c=0;c<2;c++){let h=(c===0?1:.5)*a,m=()=>jn(n,u,i)*h,f=n.unit()*.4+.3,d=jn(n,l/60,i)*o*a,p=e.x-t.x,x=e.y-t.y,b=-x/l,k=p/l,g=r?t:{x:t.x+m(),y:t.y+m()},P=r?e:{x:e.x+m(),y:e.y+m()},w=t.x+p*f*.66+b*d+m()*.5,y=t.y+x*f*.66+k*d+m()*.5,M=t.x+p*(.5+f*.5)+b*d+m()*.5,T=t.y+x*(.5+f*.5)+k*d+m()*.5;s.moveTo(g),s.curveTo(P,{x:w,y},{x:M,y:T})}}function Ue(t,e,n,i){let o=new I;for(let r=0;r<t.length;r++)ut(t[r],t[(r+1)%t.length],e,n,i,!1,o);return o}function Jn(t,e,n){let i=new I,o=t.x+t.width/2,r=t.y+t.height/2,s=t.width/2,l=t.height/2;if(!(s>.5&&l>.5))return i;let a=Math.max(8,Math.min(24,Math.trunc((s+l)/6))),u=Math.min(2.5,(s+l)/25)*n;for(let c=0;c<2;c++){let h=e.unit()*2*Math.PI,m=2*Math.PI*(c===0?1:1.04),f=Math.trunc(a*m/(2*Math.PI))+1,d=[];for(let p=0;p<f;p++){let x=h+m*p/a,b=e.signed()*u,k=e.signed()*u;d.push({x:o+s*Math.cos(x)+b,y:r+l*Math.sin(x)+k})}to(d,i)}return i}function to(t,e){if(!(t.length<=2)){e.moveTo(t[0]);for(let n=0;n<t.length-1;n++){let i=t[Math.max(n-1,0)],o=t[n],r=t[n+1],s=t[Math.min(n+2,t.length-1)];e.curveTo(r,{x:o.x+(r.x-i.x)/6,y:o.y+(r.y-i.y)/6},{x:r.x-(s.x-o.x)/6,y:r.y-(s.y-o.y)/6})}}}var Xe=-41*Math.PI/180;function Hn(t,e,n){if(!(n>0))return[];let i=Math.cos(e),o=Math.sin(e),r=t.filter(m=>m.length>=3).map(m=>m.map(f=>({x:f.x*i+f.y*o,y:-f.x*o+f.y*i}))),s=r.flat();if(s.length===0)return[];let l=1/0,a=-1/0;for(let m of s)l=Math.min(l,m.y),a=Math.max(a,m.y);let u=(m,f)=>({x:m*i-f*o,y:m*o+f*i}),c=[],h=l+n/2;for(;h<a;){let m=[];for(let f of r)for(let d=0;d<f.length;d++){let p=f[d],x=f[(d+1)%f.length];(p.y<=h&&h<x.y||x.y<=h&&h<p.y)&&m.push(p.x+(h-p.y)/(x.y-p.y)*(x.x-p.x))}m.sort((f,d)=>f-d);for(let f=0;f+1<m.length;f+=2)m[f+1]-m[f]>.5&&c.push([u(m[f],h),u(m[f+1],h)]);h+=n}return c}var _n=2,je=.75,eo=.8,qn=.6;function ti(t,e){return[...Qn(t,e,!1),...Qn(t,e,!0)]}function Qn(t,e,n){if(!(e>0))return[];let i=u=>n?{x:u.y,y:u.x}:u,o=t.filter(u=>u.length>=3).map(u=>u.map(i)),r=o.flat().map(u=>u.y);if(r.length===0)return[];let s=Math.min(...r),l=Math.max(...r),a=[];for(let u=Math.floor(s/e)*e;u<l-.5;u+=e){if(!(u>s+.5))continue;let c=[];for(let h of o)for(let m=0;m<h.length;m++){let f=h[m],d=h[(m+1)%h.length];(f.y<=u&&u<d.y||d.y<=u&&u<f.y)&&c.push(f.x+(u-f.y)/(d.y-f.y)*(d.x-f.x))}c.sort((h,m)=>h-m);for(let h=0;h+1<c.length;h+=2)c[h+1]-c[h]>.5&&a.push([i({x:c[h],y:u}),i({x:c[h+1],y:u})])}return a}function ei(t){return .2126*t.r+.7152*t.g+.0722*t.b>.5?{r:t.r*.84,g:t.g*.84,b:t.b*.8,a:t.a}:{r:t.r+(1-t.r)*.25,g:t.g+(1-t.g)*.25,b:t.b+(1-t.b)*.25,a:t.a}}function Je(t){return t.style.fillStyle==="grid"&&t.style.fill.a>0&&["rectangle","ellipse","diamond","path"].includes(t.kind)}function ye(t,e,n){let i=(Math.imul(t,668265261)^Math.imul(e,374761393)^Math.imul(n,2654435761))>>>0;return i=Math.imul(i^i>>>15,2246822507)>>>0,i=Math.imul(i^i>>>13,3266489909)>>>0,i=(i^i>>>16)>>>0,i/4294967296}function ni(t,e,n){let i=n/_n;return{x:(t+.5+(ye(t,e,1)-.5)*qn)*i,y:(e+.5+(ye(t,e,2)-.5)*qn)*i}}function no(t,e,n,i){let o=1/0;for(let r=-1;r<=1;r++)for(let s=-1;s<=1;s++){if(r===0&&s===0)continue;let l=ni(t+r,e+s,i);o=Math.min(o,Math.hypot(l.x-n.x,l.y-n.y))}return o*eo}function io(t,e,n){let i=Math.cos(e),o=Math.sin(e),r=n*.8,s=n*.5;return[-1,0,1].map(l=>{let a=t.x-o*s*l,u=t.y+i*s*l;return[{x:a-i*r,y:u-o*r},{x:a+i*r,y:u+o*r}]})}function oo(t,e){let n=!1;for(let i of t){if(i.length<3)continue;let o=i.length-1;for(let r=0;r<i.length;r++){let s=i[r],l=i[o];s.y>e.y!=l.y>e.y&&e.x<(l.x-s.x)*(e.y-s.y)/(l.y-s.y)+s.x&&(n=!n),o=r}}return n}function ro(t,e){let n=1/0;for(let i of e)if(!(i.length<2))for(let o=0;o<i.length;o++){let r=i[o],s=i[(o+1)%i.length],l=s.x-r.x,a=s.y-r.y,u=l*l+a*a,c=u>0?Math.max(0,Math.min(1,((t.x-r.x)*l+(t.y-r.y)*a)/u)):0;n=Math.min(n,Math.hypot(t.x-(r.x+c*l),t.y-(r.y+c*a)))}return n}var so=(t,e)=>e.x>=t.x&&e.x<t.x+t.width&&e.y>=t.y&&e.y<t.y+t.height,pe=new Map;function ii(t){if(t.length===0)return[];let e=t.map(o=>[o.kind,o.x,o.y,o.width,o.height,o.rotation??0,Pt(o),JSON.stringify(o.subpaths??null),o.style.stroke.r,o.style.stroke.g,o.style.stroke.b,o.style.stroke.a,o.style.roughness,o.style.strokeWidth].join(",")).join(";"),n=pe.get(e);if(n)return n;let i=lo(t);return pe.size>=16&&pe.clear(),pe.set(e,i),i}function lo(t){let e=t.map(r=>{let s=He(r).map(f=>f.map(d=>tt(r,d))),l=s.flat(),a=l.map(f=>f.x),u=l.map(f=>f.y),c=a.length?Math.min(...a):0,h=u.length?Math.min(...u):0,m={x:c,y:h,width:(a.length?Math.max(...a):0)-c,height:(u.length?Math.max(...u):0)-h};return{contours:s,box:m,cell:Pt(r),element:r}}),n=e.map(()=>[]),i=new Set;for(let r of e){let s=r.cell/_n,l=Lt(r.box,-r.cell,-r.cell),a=Math.floor(l.x/s),u=Math.ceil((l.x+l.width)/s),c=Math.floor(l.y/s),h=Math.ceil((l.y+l.height)/s),m=je*r.cell;for(let f=a;f<u;f++)for(let d=c;d<h;d++){let p=`${r.cell}|${f}|${d}`;if(i.has(p))continue;i.add(p);let x=ni(f,d,r.cell),b=1/0,k=-1;for(let y=0;y<e.length;y++){let M=e[y];if(!so(Lt(M.box,-m,-m),x))continue;if(oo(M.contours,x)){b=0;break}let T=ro(x,M.contours);T<b&&(b=T,k=y)}if(!(b>0&&b<=m&&k>=0))continue;let g=ye(f,d,3)*Math.PI,P=no(f,d,x,r.cell),w=Math.trunc(ye(f,d,4)*4294967296)>>>0;for(let[y,M]of io(x,g,P))n[k].push([y,M,w])}}let o=[];return e.forEach((r,s)=>{if(n[s].length===0)return;let l=r.element,a=new I;for(let[u,c,h]of n[s])l.style.roughness<=0?a.moveTo(u).lineTo(c):ut(u,c,new dt(h),l.style.roughness*.35,.2,!1,a);o.push({ink:{...l.style.stroke,a:l.style.stroke.a*.6},width:Math.max(.8,l.style.strokeWidth*.45),path:a})}),o}var ge=class{constructor(e=6e3){v(this,"map",new Map);v(this,"limit");this.limit=e}get(e,n){let i=this.map.get(e);if(i!==void 0)return i;let o=n();return this.map.size>=this.limit&&this.map.clear(),this.map.set(e,o),o}},si=new ge,ao=new ge;function li(t,e){let n=t.style;return[e,t.kind,t.x,t.y,t.width,t.height,t.seed,n.roughness,n.bowing,n.strokeWidth,n.fillStyle,n.fillStyle==="grid"?Pt(t):0,t.path?t.path.join(","):t.subpaths?JSON.stringify(t.subpaths):""].join("|")}var Pt=t=>Math.max(8,t.style.gridSize??50);function Mt(t){return t.kind==="freehand"&&t.path===null?oi(t):si.get(li(t,0),()=>oi(t))}function ai(t){return[{x:t.x,y:t.y},{x:H(t),y:t.y},{x:H(t),y:K(t)},{x:t.x,y:K(t)}]}function xe(t){return[{x:q(t),y:t.y},{x:H(t),y:Q(t)},{x:q(t),y:K(t)},{x:t.x,y:Q(t)}]}function oi(t){let e=Y(t),n=new dt(t.seed),i=t.style.roughness;switch(t.kind){case"ellipse":return i<=0?I.ellipse(e):Jn(e,n,i);case"diamond":return i<=0?new I().addLines(xe(e)).close():Ue(xe(e),n,i,t.style.bowing);case"text":case"connector":return I.rect(e);case"freehand":return uo(t);case"path":return i<=0?Ge(t):co(t,n);default:return i<=0?I.rect(e):Ue(ai(e),n,i,t.style.bowing)}}function co(t,e){let n=t.style.roughness,i=new I;for(let o of Ft(t)){let r=o.points;for(let s=0;s<(r.length-1)/3;s++){let l=r[3*s],a=r[3*s+1],u=r[3*s+2],c=r[3*s+3];if(a.x===l.x&&a.y===l.y&&u.x===c.x&&u.y===c.y){ut(l,c,e,n,t.style.bowing,!0,i);continue}let h=Math.hypot(a.x-l.x,a.y-l.y)+Math.hypot(u.x-a.x,u.y-a.y)+Math.hypot(c.x-u.x,c.y-u.y),m=Math.min(2.5,h/30)*n;for(let f=0;f<2;f++){let d=f===0?1:.5,p=()=>e.signed()*m*d;i.moveTo(l);let x=a.x+p(),b=a.y+p(),k=u.x+p(),g=u.y+p();i.curveTo(c,{x,y:b},{x:k,y:g})}}}return i}function uo(t){let e=Y(t),n=t.path;if(n&&n.length>=8&&(n.length-2)%6===0){let r=l=>({x:e.x+n[2*l]*e.width,y:e.y+n[2*l+1]*e.height}),s=new I().moveTo(r(0));for(let l=0;l<Math.floor((n.length/2-1)/3);l++)s.curveTo(r(3*l+3),r(3*l+1),r(3*l+2));return s}let i=(t.points??[]).map(r=>({x:e.x+r.x*e.width,y:e.y+r.y*e.height})),o=new I;if(i.length===0)return o;if(o.moveTo(i[0]),i.length===1)return o.lineTo(i[0]);if(i.length===2)return o.lineTo(i[1]);for(let r=1;r<i.length-1;r++)o.quadTo({x:(i[r].x+i[r+1].x)/2,y:(i[r].y+i[r+1].y)/2},i[r]);return o.lineTo(i[i.length-1])}function He(t){return t.kind!=="path"?[ho(t)]:Ft(t).map(e=>On(e.points,3))}function ho(t){let e=Y(t);if(t.kind==="ellipse"){let n=[];for(let i=0;i<48;i++){let o=2*Math.PI*i/48;n.push({x:q(e)+e.width/2*Math.cos(o),y:Q(e)+e.height/2*Math.sin(o)})}return n}return t.kind==="diamond"?xe(e):ai(e)}function be(t){let e=Y(t);return t.kind==="ellipse"?I.ellipse(e):t.kind==="path"?Ge(t):t.kind==="diamond"?new I().addLines(xe(e)).close():I.rect(e)}function qe(t){return t.style.fillStyle==="solid"||["freehand","connector","text","image"].includes(t.kind)?new I:si.get(li(t,1),()=>fo(t))}function fo(t){let e=He(t),n=new dt((t.seed^1540483477)>>>0),i=new I;if(t.style.fillStyle==="grid"){for(let[s,l]of ti(e,Pt(t)))t.style.roughness<=0?i.moveTo(s).lineTo(l):ut(s,l,n,t.style.roughness*.3,.3,!1,i);return i}let o=Math.max(4,t.style.strokeWidth*4),r=[Xe];t.style.fillStyle==="crossHatch"&&r.push(Xe+Math.PI/2);for(let s of r)for(let[l,a]of Hn(e,s,o))t.style.roughness<=0?i.moveTo(l).lineTo(a):ut(l,a,n,t.style.roughness*.6,.5,!1,i);return i}function ke(t,e){switch(t){case"solid":return null;case"dashed":return[Math.max(8,e*4),Math.max(6,e*3)];case"dotted":return[.01,Math.max(5,e*2.6)]}}function Qe(t,e,n){let i=t.connector;if(!i)return[new I,new I];let[o,r]=lt(t,e),s=ct(t,e),l=i.hops===!0&&n?mo(t,s,n,e):[],a=[t.seed,t.style.roughness,t.style.bowing,t.style.strokeWidth,i.routing,i.startHead,i.endHead,i.start.port,i.end.port,o.x,o.y,r.x,r.y,JSON.stringify(i.waypoints),JSON.stringify(l)].join("|");return ao.get(a,()=>po(t,s,l))}function ci(t){return Math.max(8,t*4)}function ui(t){let e=t.points,n=[];if(t.kind==="polyline"){for(let i=0;i<e.length-1;i++)n.push([e[i],e[i+1]]);return n}for(let i=0;i<Math.floor((e.length-1)/3);i++){let o=e.slice(3*i,3*i+4),r=[];for(let s=0;s<=24;s++)r.push(Ke(o,s/24));n.push(r)}return n}function hi(t){let e=[0];for(let n=1;n<t.length;n++)e.push(e[n-1]+Math.hypot(t[n].x-t[n-1].x,t[n].y-t[n-1].y));return e}function Ke(t,e){let n=1-e;return{x:n*n*n*t[0].x+3*n*n*e*t[1].x+3*n*e*e*t[2].x+e*e*e*t[3].x,y:n*n*n*t[0].y+3*n*n*e*t[1].y+3*n*e*e*t[2].y+e*e*e*t[3].y}}function ri(t,e,n){let i=(r,s)=>{let l=(d,p)=>({x:d.x+(p.x-d.x)*s,y:d.y+(p.y-d.y)*s}),a=l(r[0],r[1]),u=l(r[1],r[2]),c=l(r[2],r[3]),h=l(a,u),m=l(u,c),f=l(h,m);return[[r[0],a,h,f],[f,m,c,r[3]]]},o=i(t,n)[0];return n>0?i(o,e/n)[1]:[t[0],t[0],t[0],t[0]]}function mo(t,e,n,i){let o=ui(e);if(o.length===0)return[];let r=new Set(n.layers.filter(u=>u.visible).map(u=>u.id)),s=[];for(let u of st(n)){if(u.id===t.id)break;u.kind!=="connector"||!r.has(u.layerID)||s.push(at(ct(u,i)))}let l=ci(t.style.strokeWidth),a=[];for(let u of o){let c=hi(u),h=c[c.length-1],m=[];for(let d=0;d<u.length-1;d++){let p=u[d],x=u[d+1],b=x.x-p.x,k=x.y-p.y;for(let g of s)for(let P=0;P<g.length-1;P++){let w=g[P],y=g[P+1],M=y.x-w.x,T=y.y-w.y,A=b*T-k*M;if(Math.abs(A)<1e-9)continue;let O=w.x-p.x,D=w.y-p.y,V=(O*T-D*M)/A,$=(O*k-D*b)/A;V>0&&V<1&&$>=0&&$<=1&&m.push(c[d]+V*(c[d+1]-c[d]))}}let f=[];for(let d of m.sort((p,x)=>p-x))d<l+2||d>h-l-2||f.length>0&&d-f[f.length-1]<2*l+2||f.push(d);a.push(f)}return a}function po(t,e,n){let i=t.connector,o=new dt(t.seed),r=t.style.roughness,s=t.style.bowing,l=new I,a=new I,u=r*3,c=()=>o.signed()*u,h=(b,k,g,P)=>{let w={x:g.y,y:-g.x};(w.y>1e-9||Math.abs(w.y)<=1e-9&&w.x>0)&&(w={x:-w.x,y:-w.y});let y=P*.5523,M={x:(b.x+k.x)/2,y:(b.y+k.y)/2},T={x:M.x+w.x*P,y:M.y+w.y*P};l.moveTo(b);let A=b.x+w.x*y+c(),O=b.y+w.y*y+c(),D=T.x-g.x*y+c(),V=T.y-g.y*y+c();l.curveTo(T,{x:A,y:O},{x:D,y:V});let $=T.x+g.x*y+c(),B=T.y+g.y*y+c(),Z=k.x+w.x*y+c(),U=k.y+w.y*y+c();l.curveTo(k,{x:$,y:B},{x:Z,y:U})},m=ci(t.style.strokeWidth);if(e.kind==="polyline"){let b=e.points,k=(g,P)=>{r<=0?l.moveTo(g).lineTo(P):ut(g,P,o,r,s,!0,l)};for(let g=0;g<Math.max(b.length-1,0);g++){let P=b[g],w=b[g+1],y=Math.hypot(w.x-P.x,w.y-P.y),M=y>0?{x:(w.x-P.x)/y,y:(w.y-P.y)/y}:{x:0,y:0},T=O=>({x:P.x+M.x*O,y:P.y+M.y*O}),A=P;for(let O of g<n.length?n[g]:[]){let D=T(O-m),V=T(O+m);k(A,D),h(D,V,M,m),A=V}k(A,w)}}else{let b=e.points,k=ui(e);l.moveTo(b[0]);for(let g=0;g<Math.floor((b.length-1)/3);g++){let P=b[3*g+1],w=b[3*g+2],y=b[3*g+3],M=P.x+c(),T=P.y+c(),A=w.x+c(),O=w.y+c(),D=g<n.length?n[g]:[];if(D.length===0){l.curveTo(y,{x:M,y:T},{x:A,y:O});continue}let V=[b[3*g],{x:M,y:T},{x:A,y:O},y],$=hi(k[g]),B=ot=>{let C=0;for(;C<$.length-2&&$[C+1]<ot;)C++;let ft=$[C+1]-$[C];return(C+(ft>0?(ot-$[C])/ft:0))/24},Z=0;for(let ot of D){let C=B(ot-m),ft=B(ot+m),oe=ri(V,Z,C);(g>0||Z>0)&&l.moveTo(oe[0]),l.curveTo(oe[3],oe[1],oe[2]);let Ot=Ke(V,C),Vt=Ke(V,ft),re=Math.hypot(Vt.x-Ot.x,Vt.y-Ot.y),Ci=re>0?{x:(Vt.x-Ot.x)/re,y:(Vt.y-Ot.y)/re}:{x:0,y:0};h(Ot,Vt,Ci,re/2),Z=ft}let U=ri(V,Z,1);l.moveTo(U[0]).curveTo(U[3],U[1],U[2])}}let f=at(e),d=Math.max(10,t.style.strokeWidth*5),p=(b,k)=>{r<=0?l.moveTo(b).lineTo(k):ut(b,k,o,r*.5,0,!0,l)},x=(b,k,g)=>{let[P,w]=Nn(k,g,d);switch(b){case"arrow":p(P,k),p(w,k);break;case"triangle":p(P,k),p(w,k),p(P,w),a.moveTo(k).lineTo(P).lineTo(w).close();break;case"dot":{let y=d*.32,M=Math.atan2(k.y-g.y,k.x-g.x),T=k.x-y*Math.cos(M),A=k.y-y*Math.sin(M);a.addEllipse({x:T-y,y:A-y,width:2*y,height:2*y});break}case"bar":{let y=Math.atan2(k.y-g.y,k.x-g.x)+Math.PI/2,M=d*.5;p({x:k.x-M*Math.cos(y),y:k.y-M*Math.sin(y)},{x:k.x+M*Math.cos(y),y:k.y+M*Math.sin(y)});break}}};return f.length>1&&(x(i.endHead,f[f.length-1],f[f.length-2]),x(i.startHead,f[0],f[1])),[l,a]}function en(t,e){switch(t){case"linear":return e;case"easeIn":return e*e*e;case"easeOut":return 1-Math.pow(1-e,3);case"easeInOut":return e<.5?4*e*e*e:1-Math.pow(-2*e+2,3)/2;case"hold":return 0;case"spring":return yo(e);case"bounce":return go(e);case"elastic":return xo(e)}}function yo(t){if(t<=0)return 0;if(t>=1)return 1;let e=n=>1-Math.exp(-6*n)*(Math.cos(3*Math.PI*n)+6/(3*Math.PI)*Math.sin(3*Math.PI*n));return e(t)+t*(1-e(1))}function go(t){if(t<=0)return 0;if(t>=1)return 1;let e=7.5625,n=2.75;if(t<1/n)return e*t*t;if(t<2/n){let o=t-1.5/n;return e*o*o+.75}if(t<2.5/n){let o=t-2.25/n;return e*o*o+.9375}let i=t-2.625/n;return e*i*i+.984375}function xo(t){return t<=0?0:t>=1?1:Math.pow(2,-10*t)*Math.sin((t*10-.75)*(2*Math.PI/3))+1}var Xt=(t,e)=>t%e;function jt(t,e){let n=(t.repeats??[]).filter(le).slice().sort((i,o)=>i.start-o.start);if(n.length===0)return e;for(let i of n){if(!(e>=i.end))continue;let o=i.end-i.start;if(i.count===null)return i.start+Xt(e-i.start,o);let r=o*i.count;if(e<i.start+r)return i.start+Xt(e-i.start,o);e-=r-o}return e}function _e(t,e,n,i,o){e=jt(t,e);let r,s;for(let c of t.keys)if(n(c)!==void 0)if(c.t<=e)r=c;else{s=c;break}if(!r&&!s)return i;if(r&&!s)return n(r);if(!r&&s)return n(s);let l=r,a=s,u=a.t-l.t>0?(e-l.t)/(a.t-l.t):1;return o(n(l),n(a),en(l.ease??"linear",u))}var bo=(t,e,n)=>t+(e-t)*n,we=(t,e,n)=>Math.min(Math.max(t+(e-t)*n,0),1),fi=(t,e,n)=>({r:we(t.r,e.r,n),g:we(t.g,e.g,n),b:we(t.b,e.b,n),a:we(t.a,e.a,n)});function pt(t,e,n,i){return _e(t,e,o=>o[n],i,bo)}function ko(t,e){e=jt(t,e);let n=(o,r)=>{let s;for(let a of t.keys)a.t<=e&&o(a)!==void 0&&(s=a);let l=t.keys.find(a=>a.t>e&&o(a)!==void 0);return!s||!l?!1:s.ease!=="hold"&&!r(o(s),o(l))},i=o=>n(r=>r[o],(r,s)=>r===s);return i("x")||i("y")||i("width")||i("height")||i("rotation")||i("strokeWidth")||n(o=>o.stroke,St)||n(o=>o.fill,St)||i("reveal")||i("opacity")}function tn(t,e){e=jt(t,e);let n=t.keys.filter(o=>o.visible!==void 0);if(n.length===0)return!0;let i;for(let o of n)o.t<=e&&(i=o);return i?i.visible:!n[0].visible}function wo(t,e,n){if(e=G(e),t.keys.some(i=>i.reveal!==void 0)){let i=pt(t,n,"reveal",e.reveal??1);e.reveal=i>=1?null:Math.max(0,i)}if(t.keys.some(i=>i.opacity!==void 0)){let i=Math.min(Math.max(pt(t,n,"opacity",e.style.opacity??1),0),1);e.style.opacity=i>=1?null:i}return e.kind==="connector"||(e.x=pt(t,n,"x",e.x),e.y=pt(t,n,"y",e.y),e.width=Math.max(0,pt(t,n,"width",e.width)),e.height=Math.max(0,pt(t,n,"height",e.height)),t.keys.some(i=>i.rotation!==void 0)&&(e.rotation=pt(t,n,"rotation",N(e))),e.style.strokeWidth=Math.max(0,pt(t,n,"strokeWidth",e.style.strokeWidth)),e.style.stroke=_e(t,n,i=>i.stroke,e.style.stroke,fi),e.style.fill=_e(t,n,i=>i.fill,e.style.fill,fi)),e}function Po(t,e){e=jt(t,e);let n=null;for(let o of t.follow??[])o.start<=e&&(n===null||o.start>n.start)&&(n=o);if(!n)return null;let i=n;return t.keys.some(o=>o.t>=i.end&&o.t<=e&&(o.x!==void 0||o.y!==void 0))?null:n}function Mo(t,e){if(t.kind==="connector")return new It(at(ct(t,et(e))));let n=G(t);n.style.roughness=0;let i=Mt(n).contours()[0]??[];return new It(N(t)===0?i:i.map(o=>tt(t,o)))}function Ro(t,e,n,i){let o=Po(t,n);if(!o)return e;n=jt(t,n);let r=i.elements.find(h=>h.id===o.path);if(!r||r.id===e.id)return e;let s=Mo(r,i),l=o.end-o.start,a=Math.min(Math.max(en(o.ease??"easeInOut",l>0?Math.min(1,(n-o.start)/l):1),0),1)*(o.laps??1);a>1&&(a=Xt(a,1)===0?1:Xt(a,1)),o.reverse===!0&&(a=1-a);let u=s.point(a),c=G(e);if(c.x=u.x-e.width/2,c.y=u.y-e.height/2,o.orient===!0){let h=o.reverse===!0?-.01:.01,m=s.point(a-h/2),f=s.point(a+h/2);(m.x!==f.x||m.y!==f.y)&&(c.rotation=Math.atan2(f.y-m.y,f.x-m.x))}return c}function vo(t,e,n,i){if(!(n>0))return 0;let o=z(t.duration);if(o>0){let s=Zt(e*o/n);s!==0&&(e=s*n/o)}let r=Xt(e*i,n);return r<0?-r:r===0?0:n-r}function To(t){let e=new Map;for(let n of t.tracks)e.has(n.element)||e.set(n.element,n);return e}function nt(t,e){return _(Jt(t,e),z(e))}function Jt(t,e){let n=t.timeline;if(!n)return t;e=z(e);let i=To(n),o=n.boil===null?null:Math.trunc(Math.floor(e*At(n.fps)+1e-9)/Math.max(1,n.boil))%De>>>0,r=new Set;for(let f of i.values())tn(f,e)||r.add(f.element);let s=null;if(n.settle===!0){s=new Set;for(let f of i.values())ko(f,e)&&s.add(f.element)}let l=f=>{let d=i.get(f.id)?.boil;return d??(s?f.connector?[f.connector.start.elementID,f.connector.end.elementID].some(p=>p!==null&&s.has(p)):s.has(f.id):!0)},a=t.elements.map(f=>{let d=i.get(f.id),p=d?wo(d,f,e):f;o!==null&&o>0&&l(f)&&(p===f&&(p=G(f)),p.seed=de(f.seed,o));let x=d?.march!=null?ke(p.style.dash,p.style.strokeWidth):null;return d?.march!=null&&x&&(p===f&&(p=G(f)),p.style.dashOffset=vo(n,d.march,x.reduce((b,k)=>b+k,0),e)),p});a=a.map((f,d)=>r.has(f.id)?t.elements[d]:f);let u={...t,elements:a,timeline:null};a=a.map(f=>{let d=i.get(f.id);return d?Ro(d,f,e,u):f});let c={...t,elements:a,timeline:null},h=et(c),m=new Set(r);return a=a.map(f=>{let d=f.connector;if(!d||![d.start.elementID,d.end.elementID].some(k=>k!==null&&r.has(k)))return f;if(!(i.get(f.id)?.keys.some(k=>k.visible!==void 0)??!1))return m.add(f.id),f;let[p,x]=lt(f,h),b=G(f);return b.connector.start={elementID:null,port:d.start.port,x:p.x,y:p.y},b.connector.end={elementID:null,port:d.end.port,x:x.x,y:x.y},b}),{...t,elements:a.filter(f=>!m.has(f.id)),timeline:null}}function yt(t){return t.timeline?t.timeline.poster??t.timeline.duration:0}function di(t){return t.timeline?nt(t,yt(t)):_(t,0)}function So(t,e){let n=t.camera??[];if(n.length===0)return null;let i;for(let l of n)l.t<=e&&(i=l);let o=n.find(l=>l.t>e);if(!i)return mi(n[0]);if(!o)return mi(i);let r=en(i.ease??"easeInOut",(e-i.t)/Math.max(o.t-i.t,1e-9)),s=(l,a)=>l+(a-l)*r;return{x:s(i.x,o.x),y:s(i.y,o.y),width:Math.max(1,s(i.width,o.width)),height:Math.max(1,s(i.height,o.height))}}var mi=t=>({x:t.x,y:t.y,width:t.width,height:t.height});function Dt(t,e){let n=t.camera?.[0],i=So(t,e);return!n||!i||!(i.width>0&&i.height>0)?null:Ao(i,n.width/n.height)}function Ao(t,e){if(!(t.width>0&&t.height>0&&e>0))return t;let n=t.width,i=t.height;return t.width/t.height<e?n=t.height*e:i=t.width/e,{x:t.x+t.width/2-n/2,y:t.y+t.height/2-i/2,width:n,height:i}}function Eo(t){return Math.max(1,Math.ceil(z(t.duration)*At(t.fps)))}function Pe(t){let e=At(t.fps),n=[];for(let o=0;o<Eo(t);o++)n.push(o/e);let i=n[n.length-1];return t.duration-i>1e-6&&n.push(t.duration),n}function pi(t,e){let n=-1;return(t.markers??[]).forEach((i,o)=>{i.t<=e&&(n=o)}),n}function yi(t){let e=t.timeline;if(!e)return new Set;let n=e.poster??e.duration;return new Set(e.tracks.filter(i=>!tn(i,0)&&!tn(i,n)).map(i=>i.element))}var Io=8,Lo=2e4,nn=1e-9;function Me(t,e){let n=(t.timeline?.markers??[]).find(i=>i.name.toLowerCase()===e);return n?Math.min(Math.max(n.t,0),z(t.timeline?.duration??0)):null}function Kt(t,e){switch(e){case"up":return Me(t,"up")??0;case"over":return Me(t,"over")??Kt(t,"up");case"down":return Me(t,"down")??Kt(t,"over");default:return Me(t,"hit")}}function Fo(t,e,n,i){let o=z(t.timeline?.duration??0);if(t.button===!0)return Kt(t,"up")??0;let r=i!==null&&Number.isFinite(i)?i:0;switch(n??"loop"){case"still":return Math.min(t.timeline?.poster??o,o);case"click":return Math.min(Math.max(r,0),o);case"once":return Math.min(Math.max(e+r,0),o);default:{if(o<=0)return 0;let s=e+r,l=s%o;return l<0&&(l+=o),s>nn&&(l<nn||o-l<nn)?o:l}}}function Do(t,e){let n=t.params;if(!n||Object.keys(n).length===0)return t;let i=new Map(Object.entries(n));for(let[r,s]of Object.entries(e??{}))i.has(r)&&i.set(r,s);let o=r=>r.includes("{{")?r.replace(/\{\{\s*([^{}]*?)\s*\}\}/g,(s,l)=>i.get(l)??s):r;return{...t,elements:t.elements.map(r=>{if(r.text===null&&r.args===null)return r;let s=G(r);return s.text!==null&&(s.text=o(s.text)),s.args!==null&&(s.args=Object.fromEntries(Object.entries(s.args).map(([l,a])=>[l,o(a)]))),s})}}function Co(t){return{id:t.id,name:t.name,layers:t.layers,elements:t.elements,theme:null,timeline:t.timeline,symbols:null}}function Re(t){return t.elements.some(e=>e.kind==="symbol")}function _(t,e,n=!0,i=new Map){if(!Re(t))return t;let o={left:Lo};return{...t,elements:xi(t.elements,t,e,sn(t),[],n,o,i)}}function sn(t){let e=new Map;for(let n of t.symbols??[])e.has(n.id)||e.set(n.id,n);return e}function xi(t,e,n,i,o,r,s,l=new Map){let a=new Set(t.filter(h=>h.kind==="symbol").map(h=>h.id));if(a.size===0)return s.left-=t.length,t;let u=et(e),c=[];for(let h of t){if(s.left<=0)break;let m=h.connector;if(h.kind==="connector"&&m&&[m.start.elementID,m.end.elementID].some(w=>w!==null&&a.has(w))){let[w,y]=lt(h,u),M=G(h);m.start.elementID!==null&&a.has(m.start.elementID)&&(M.connector.start={elementID:null,port:m.start.port,x:w.x,y:w.y}),m.end.elementID!==null&&a.has(m.end.elementID)&&(M.connector.end={elementID:null,port:m.end.port,x:y.x,y:y.y}),c.push(M),s.left-=1;continue}if(h.kind!=="symbol"){c.push(h),s.left-=1;continue}s.left-=1;let f=h.symbol,d=f===null?void 0:i.get(f);if(f===null||!d||o.includes(f)||o.length>=Io)continue;let p=o.length===0?l.get(h.id):void 0,x=p!==void 0?Math.min(Math.max(p,0),z(d.timeline?.duration??0)):Fo(d,n,h.playback,h.offset),b=Co(Do(d,h.args)),k=r?Jt(b,x):b,g=new Set(k.layers.filter(w=>w.visible).map(w=>w.id)),P={...k,elements:st(k).filter(w=>g.has(w.layerID)),layers:[{id:h.layerID,name:"",visible:!0,locked:!1}]};for(let w of xi(P.elements,P,x,i,[...o,f],r,s))c.push(Yo(w,h,d))}return c}function Yo(t,e,n){let i={x:e.x,y:e.y,width:e.width,height:e.height},o=i.width/n.width,r=i.height/n.height,s=Math.sqrt(Math.abs(o*r)),l={x:i.x+i.width/2,y:i.y+i.height/2},a=N(e),u=f=>mt({x:i.x+f.x*o,y:i.y+f.y*r},l,a),c=G(t);c.id=rn(e.id,t.id),c.layerID=e.layerID,c.groupID=null,c.link=t.link===null?null:rn(e.id,t.link),c.seed=de(t.seed,e.seed),c.click=null,c.hover=null;let h={x:i.x+t.x*o,y:i.y+t.y*r,width:t.width*o,height:t.height*r},m=mt({x:h.x+h.width/2,y:h.y+h.height/2},l,a);if(c.x=m.x-h.width/2,c.y=m.y-h.height/2,c.width=h.width,c.height=h.height,(a!==0||t.rotation!==null)&&(c.rotation=N(t)+a),c.style.strokeWidth=t.style.strokeWidth*s,c.style.fontSize=t.style.fontSize*s,t.style.gridSize!==null&&(c.style.gridSize=t.style.gridSize*s),e.style.opacity!==null&&(c.style.opacity=(t.style.opacity??1)*e.style.opacity),t.connector){let f=d=>{if(d.elementID!==null)return{elementID:rn(e.id,d.elementID),port:d.port,x:d.x,y:d.y};let p=u(d);return{elementID:null,port:d.port,x:p.x,y:p.y}};c.connector={...t.connector,start:f(t.connector.start),end:f(t.connector.end),waypoints:t.connector.waypoints?.map(u)??null}}return c}var on=(1n<<64n)-1n;function Ht(t){let e=t+0x9e3779b97f4a7c15n&on;return e=(e^e>>30n)*0xbf58476d1ce4e5b9n&on,e=(e^e>>27n)*0x94d049bb133111ebn&on,e^e>>31n}function gi(t){let e=t.replace(/-/g,"").padStart(32,"0").slice(-32);return[BigInt(`0x${e.slice(0,16)}`),BigInt(`0x${e.slice(16)}`)]}function rn(t,e){let[n,i]=gi(t),[o,r]=gi(e),s=Ht(Ht(Ht(Ht(n)^i)^o)^r),l=Ht(s^0x6a09e667f3bcc909n),a=s.toString(16).padStart(16,"0")+l.toString(16).padStart(16,"0");return`${a.slice(0,8)}-${a.slice(8,12)}-${a.slice(12,16)}-${a.slice(16,20)}-${a.slice(20)}`.toUpperCase()}function Oo(t,e){let n=e.findIndex(i=>i.name===t);return n>=0?n:e.findIndex(i=>i.name.toLowerCase()===t.toLowerCase())}function bi(t,e){let n=t.timeline?.markers??[],i=new Map,o=null;for(let r of t.elements){let s=r.click;if(s?.scene){let a=Oo(s.scene,n);if(a>=0){i.set(r.id,{scene:a});continue}}let l=(s?.url?kt(s.url):null)??Wt(r.url);if(l){i.set(r.id,{url:l});continue}if(r.link&&e&&e.pages.length>1){o||(o=new Map,e.pages.forEach((u,c)=>{for(let h of u.elements)o.has(h.id)||o.set(h.id,c)}));let a=o.get(r.link);a!==void 0&&e.pages[a]!==t&&i.set(r.id,{page:a})}}return i}function Vo(t){let e=t.hover;if(!e)return t;let n={...t.style};if(e.stroke&&(n.stroke=e.stroke),e.fill&&(n.fill=e.fill),e.opacity!==null&&Number.isFinite(e.opacity)){let i=Math.min(Math.max(e.opacity,0),1);n.opacity=i>=1?null:i}return{...t,style:n}}function ki(t,e){return{...t,elements:t.elements.map(n=>e.has(n.id)?Vo(n):n)}}function wi(t){return!!t.hover&&(t.hover.stroke!==null||t.hover.fill!==null||t.hover.opacity!==null)}function Pi(t,e){let n=(t.text??"").split(`
|
|
3
|
+
`).find(i=>i.length>0);return n||(t.anchor?t.anchor:e||t.kind)}function Mi(t,e){let n=new Map;for(let i of t.elements){if(!e.has(i.id)||i.kind!=="symbol")continue;let o={...t,layers:[{id:i.layerID,name:"",visible:!0,locked:!1}],elements:[i]};for(let r of _(o,0,!1).elements)n.set(r.id,i.id)}return n}var Ri=`
|
|
4
4
|
.dottie-a { cursor: pointer; outline: none; }
|
|
5
5
|
.dottie-a .dottie-h { display: none; }
|
|
6
6
|
.dottie-a:hover .dottie-h, .dottie-a.dottie-hover .dottie-h, .dottie-a:focus-visible .dottie-h { display: inline; }
|
|
@@ -10,47 +10,47 @@
|
|
|
10
10
|
.dottie-a .dottie-d { display: none; }
|
|
11
11
|
.dottie-b:active .dottie-n, .dottie-b:active .dottie-h, .dottie-b.dottie-press .dottie-n, .dottie-b.dottie-press .dottie-h { display: none; }
|
|
12
12
|
.dottie-b:active .dottie-d, .dottie-b.dottie-press .dottie-d { display: inline; }
|
|
13
|
-
`;function
|
|
13
|
+
`;function W(t){let e=n=>Math.round(Math.min(Math.max(n,0),1)*255).toString(16).padStart(2,"0");return`#${e(t.r)}${e(t.g)}${e(t.b)}`}function qt(t){return t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")}var vi=12,Rt="\u2028";function Wo(t){let e=Math.min(vi,t.width/2),n=Math.min(vi,t.height/2);return{x:t.x+e,y:t.y+n,width:t.width-2*e,height:t.height-2*n}}var an=/^ {0,3}(#{1,6})(?:[ \t]+(.*?))?(?:[ \t]+#+)?[ \t]*$/,Ei=/^ {0,3}([-*_])(?:[ \t]*\1){2,}[ \t]*$/,cn=/^ {0,3}(`{3,}|~{3,})/,Qt=/^( *)([-*+]|\d{1,9}[.)])([ \t]+|$)(.*)$/,ve=/^ {0,3}> ?(.*)$/,$o=/^ *\|? *:?-+:? *(\| *:?-+:? *)*\|? *$/;function ln(t){let e=t.trim();return e.startsWith("|")&&(e=e.slice(1)),e.endsWith("|")&&!e.endsWith("\\|")&&(e=e.slice(0,-1)),e.split(/(?<!\\)\|/).map(n=>n.trim())}function zo(t){return mn(t.replace(/\r\n?/g,`
|
|
14
14
|
`).split(`
|
|
15
|
-
`))}function
|
|
16
|
-
`))}),i=null)};for(;n<t.length;){let
|
|
17
|
-
`)});continue}let l=
|
|
18
|
-
`))}),i=null,n++;continue}if(
|
|
19
|
-
`)){for(
|
|
20
|
-
`){for(
|
|
21
|
-
`,size:i,bold:!1,italic:!1,mono:!1,strike:!1,underline:!1,alpha:1}]:a.runs,
|
|
22
|
-
`){
|
|
23
|
-
`&&
|
|
24
|
-
`,"").replaceAll(
|
|
25
|
-
`)}let
|
|
26
|
-
`;return l}function
|
|
27
|
-
`;return n&&e&&(i+=`<rect x="${
|
|
28
|
-
`),i}function
|
|
29
|
-
`).join("");d&&
|
|
30
|
-
${
|
|
31
|
-
`),
|
|
32
|
-
${
|
|
33
|
-
`);let
|
|
34
|
-
${
|
|
35
|
-
`),
|
|
36
|
-
`}function
|
|
37
|
-
`:`<path d="${
|
|
38
|
-
`;switch(t.kind){case"connector":{let[
|
|
39
|
-
`;if(
|
|
40
|
-
`),
|
|
41
|
-
`),
|
|
42
|
-
`}return t.style.stroke.a>0&&t.style.strokeWidth>0&&(
|
|
43
|
-
`),
|
|
44
|
-
`;case"rectangle":case"ellipse":case"diamond":case"path":case"note":{let
|
|
45
|
-
`),t.style.fill.a>0){let
|
|
46
|
-
`;else if(t.style.fillStyle==="grid"){let
|
|
47
|
-
`,
|
|
48
|
-
`}else
|
|
49
|
-
`}return
|
|
50
|
-
`,
|
|
51
|
-
`+
|
|
52
|
-
`),s=
|
|
53
|
-
`}var
|
|
15
|
+
`))}function mn(t){let e=[],n=0,i=null,o=()=>{i&&(e.push({kind:"paragraph",inline:it(i.join(`
|
|
16
|
+
`))}),i=null)};for(;n<t.length;){let r=t[n];if(r.trim()===""){o(),n++;continue}let s=cn.exec(r);if(s){o();let u=new RegExp(`^ {0,3}${s[1][0]==="`"?"`":"~"}{${s[1].length},}[ \\t]*$`),c=[];for(n++;n<t.length&&!u.test(t[n]);)c.push(t[n++]);n++,e.push({kind:"code",text:c.join(`
|
|
17
|
+
`)});continue}let l=an.exec(r);if(l){o(),e.push({kind:"heading",level:l[1].length,inline:it(l[2]??"")}),n++;continue}if(i&&/^ {0,3}(=+|-+)[ \t]*$/.test(r)){let u=r.trim()[0]==="="?1:2;e.push({kind:"heading",level:u,inline:it(i.join(`
|
|
18
|
+
`))}),i=null,n++;continue}if(Ei.test(r)){o(),e.push({kind:"rule"}),n++;continue}if(ve.test(r)){o();let u=[];for(;n<t.length&&t[n].trim()!=="";){let c=ve.exec(t[n]);u.push(c?c[1]:t[n]),n++}e.push({kind:"quote",children:mn(u)});continue}let a=Qt.exec(r);if(a&&(!i||a[4].trim()!=="")){o();let u=Go(t,n);e.push(u.block),n=u.next;continue}if(!i&&r.includes("|")&&n+1<t.length&&$o.test(t[n+1])&&t[n+1].includes("-")){let u=ln(r),c=ln(t[n+1]).map(m=>m.startsWith(":")&&m.endsWith(":")?"center":m.endsWith(":")?"right":m.startsWith(":")?"left":null),h=[];for(n+=2;n<t.length&&t[n].trim()!==""&&!an.test(t[n])&&!ve.test(t[n])&&!cn.test(t[n]);)h.push(ln(t[n]).slice(0,u.length).map(m=>it(m))),n++;e.push({kind:"table",align:c,head:u.map(m=>it(m)),rows:h});continue}i||(i=[]),i.push(r.replace(/^ +/,"")),n++}return o(),e}function Go(t,e){let n=Qt.exec(t[e]),i=n[1].length,o=/^\d/.test(n[2])?null:n[2],r=o===null?parseInt(n[2],10):null,s=[],l=e;for(;l<t.length;){let a=Qt.exec(t[l]);if(!a||a[1].length!==i||o===null!==/^\d/.test(a[2])||o!==null&&a[2]!==o)break;let u=a[1].length+a[2].length+Math.max(1,Math.min(a[3].length,4)),c=[a[4]];l++;let h=!1;for(;l<t.length;){let d=t[l];if(d.trim()===""){h=!0,c.push(""),l++;continue}if(d.length-d.trimStart().length>=u){c.push(d.slice(u)),h=!1,l++;continue}if(!h&&!Qt.test(d)&&!an.test(d)&&!ve.test(d)&&!cn.test(d)&&!Ei.test(d)){c.push(d.trimStart()),l++;continue}break}for(;c.length&&c[c.length-1].trim()==="";)c.pop();let m=null,f=/^\[([ xX])\](?:[ \t]+|$)/.exec(c[0]??"");if(f&&(m=f[1]!==" ",c[0]=c[0].slice(f[0].length)),s.push({checkbox:m,children:mn(c)}),h&&l<t.length&&t[l-1]?.trim()===""){let d=Qt.exec(t[l]);if(!d||d[1].length!==i)break}}return{block:{kind:"list",ordered:r,items:s},next:l}}function it(t,e={}){let n=[],i=(l,a)=>{l&&n.push({...a,text:l})},o=0,r="",s=()=>{i(r,e),r=""};for(;o<t.length;){let l=t.slice(o),a;if(l[0]==="\\"&&/^\\[\\`*_{}[\]()#+\-.!|~>]/.test(l)){r+=l[1],o+=2;continue}if(l.startsWith(`\\
|
|
19
|
+
`)){for(r+=Rt,o+=2;t[o]===" ";)o++;continue}if(l[0]===`
|
|
20
|
+
`){for(r=r.replace(/ +$/,""),r+=Rt,o++;t[o]===" ";)o++;continue}if(a=/^(`+)([\s\S]*?[^`])\1(?!`)/.exec(l)){s();let u=a[2].replace(/\n/g," ");/^ .* $/.test(u)&&(u=u.slice(1,-1)),i(u,{...e,mono:!0}),o+=a[0].length;continue}if(a=/^!\[([^\]]*)\]\([^)]*\)/.exec(l)){s(),n.push(...it(a[1],e)),o+=a[0].length;continue}if(a=/^\[([^\]]+)\]\([^)]*\)/.exec(l)){s(),n.push(...it(a[1],{...e,link:!0})),o+=a[0].length;continue}if(a=/^<((?:https?|ftp|mailto):[^>\s]+)>/.exec(l)){s(),i(a[1],{...e,link:!0}),o+=a[0].length;continue}if(a=/^~~(?=\S)([\s\S]*?\S)~~/.exec(l)){s(),n.push(...it(a[1],{...e,strike:!0})),o+=a[0].length;continue}if(a=/^(\*\*|__)(?=\S)([\s\S]*?\S)\1/.exec(l)){s(),n.push(...it(a[2],{...e,bold:!0})),o+=a[0].length;continue}if((a=/^(\*|_)(?=\S)([\s\S]*?\S)\1(?!\1)/.exec(l))&&(a[1]==="*"||!/\w/.test(t[o-1]??""))){s(),n.push(...it(a[2],{...e,italic:!0})),o+=a[0].length;continue}r+=l[0],o++}return s(),Bo(n)}function Bo(t){let e=/\b(?:(?:https?|ftp):\/\/|www\.)[^\s<]*[^\s<.,:;"')\]!?]/g;return t.flatMap(n=>{if(n.link||n.mono||!(n.text.includes("://")||n.text.includes("www.")))return[n];let i=[],o=0;for(let r of n.text.matchAll(e))r.index>o&&i.push({...n,text:n.text.slice(o,r.index)}),i.push({...n,text:r[0],link:!0}),o=r.index+r[0].length;return o<n.text.length&&i.push({...n,text:n.text.slice(o)}),i})}function Se(t,e){return t.mono?wt[ae]:e}function Te(t,e,n){let i=Se(e,n);if(e.mono&&i.fallback[t]===void 0)return An*e.size;let o=i.faces[Nt(i,e.bold,e.italic)];return(o.w[t]??i.faces.regular.w[t]??o.w.n)*e.size/1e3}function un(t,e,n,i){return n.mono?0:(i.faces[Nt(i,n.bold,n.italic)].k[t+e]??0)*n.size/1e3}function hn(t,e,n){let i=Se(e,n).fallback[t];if(i)return[i[0]*e.size,i[1]*e.size,i[2]*e.size];if(e.mono)return[En*e.size,In*e.size,0];let o=n.faces[Nt(n,e.bold,e.italic)];return[o.ascent*e.size,o.descent*e.size,o.leading*e.size]}var fn=class{constructor(e,n,i){v(this,"paras",[]);v(this,"nextSpacing",null);v(this,"fontSize");v(this,"width");v(this,"fam");this.fontSize=e,this.width=n,this.fam=i}get gap(){return this.fontSize*.5}spacing(e){return this.paras.length===0?0:this.nextSpacing??e}run(e,n,i,o={}){let r=!!e.mono;return{text:e.text,size:r?n*.9:n,bold:!!(e.bold||o.bold),italic:!!(e.italic||o.italic),mono:r,strike:!!e.strike,underline:!!e.link,alpha:i}}paragraph(e,n){this.paras.push({tabs:[],rule:null,tableRule:null,...e,quote:n}),this.nextSpacing=null}text(e,n,i,o={}){if(n.marker){let r={text:n.marker.text+" ",size:this.fontSize,bold:!1,italic:!1,mono:!1,strike:!1,underline:!1,alpha:1};this.paragraph({runs:[r,...e],spacing:i,firstIndent:n.marker.start,indent:n.marker.hang,tabs:[{align:"left",x:n.marker.hang}],...o},n.quote)}else this.paragraph({runs:e,spacing:i,firstIndent:n.indent,indent:n.indent,...o},n.quote)}block(e,n){let i=n.quote!==null,o=i?.7:1;switch(e.kind){case"heading":{let r=[1.5,1.3,1.15,1.05,1,1][Math.min(Math.max(e.level,1),6)-1];this.text(e.inline.map(s=>this.run(s,this.fontSize*r,o,{bold:!0,italic:i})),n,this.spacing(this.gap*1.4));break}case"paragraph":this.text(e.inline.map(r=>this.run(r,this.fontSize,o,{italic:i})),n,this.spacing(this.gap));break;case"list":{let r=e.items.map((u,c)=>u.checkbox===!0?"\u2611":u.checkbox===!1?"\u2610":e.ordered!==null?`${e.ordered+c}.`:n.listDepth%2===0?"\u2022":"\u25E6"),s=u=>Ti({text:u,size:this.fontSize,bold:!1,italic:!1,mono:!1,strike:!1,underline:!1,alpha:1},this.fam),l=Math.max(0,...r.map(s)),a=n.indent+Math.max(l+this.fontSize*.45,this.fontSize*1.2);e.items.forEach((u,c)=>{(c>0||n.listDepth>0||n.marker)&&(this.nextSpacing=this.fontSize*.15);let h={...n,marker:{text:r[c],start:n.indent,hang:a},indent:a,listDepth:n.listDepth+1};u.children.length===0&&this.text([],h,this.spacing(this.gap));for(let m of u.children)this.block(m,h),h.marker=null,this.nextSpacing=this.fontSize*.3;this.nextSpacing=null});break}case"quote":{let r={...n,quote:n.indent+3,indent:n.indent+this.fontSize};for(let s of e.children)this.block(s,r);break}case"code":{let s={text:e.text===""?" ":e.text.replace(/\n/g,Rt),size:this.fontSize*.85,bold:!1,italic:!1,mono:!0,strike:!1,underline:!1,alpha:o};this.text([s],{...n,indent:n.indent+this.fontSize*.5},this.spacing(this.gap));break}case"rule":{let r={text:" ",size:this.fontSize*.6,bold:!1,italic:!1,mono:!1,strike:!1,underline:!1,alpha:1};this.text([r],n,this.spacing(this.gap),{rule:n.indent});break}case"table":this.table(e,n);break}}table(e,n){let i=[{cells:e.head,header:!0},...e.rows.map(g=>({cells:g,header:!1}))],o=Math.max(1,...i.map(g=>g.cells.length)),r=n.quote!==null,s=(g,P,w)=>g.map(y=>({...this.run({...y,text:y.text.replaceAll(Rt," ")},w,r?.7:1,{bold:P,italic:r})})),l=g=>{let P=new Array(o).fill(0);for(let w of i)w.cells.forEach((y,M)=>{M<o&&(P[M]=Math.max(P[M],s(y,w.header,g).reduce((T,A)=>T+Ti(A,this.fam),0)))});return P},a=Math.max(this.width-n.indent,1),u=this.fontSize,c=l(u),h=u*1.2,m=c.reduce((g,P)=>g+P,0)+h*(o-1);m>a&&(u=Math.max(this.fontSize*a/m,Math.min(this.fontSize,9)),c=l(u),h=u*1.2);let f=[],d=n.indent;for(let g of c)f.push(d),d+=g+h;let p=d-h-n.indent,x=[],b=!1;for(let g=0;g<o;g++){let P=e.align[g]??null;P==="center"?x.push({align:"center",x:f[g]+c[g]/2}):P==="right"?x.push({align:"right",x:f[g]+c[g]}):g>0&&x.push({align:"left",x:f[g]}),g===0&&(P==="center"||P==="right")&&(b=!0)}let k=g=>({text:g,size:u,bold:!1,italic:!1,mono:!1,strike:!1,underline:!1,alpha:1});i.forEach((g,P)=>{let w=[];b&&w.push(k(" "));for(let M=0;M<o;M++)M>0&&w.push(k(" ")),M<g.cells.length&&w.push(...s(g.cells[M],g.header,u));w.length===0&&w.push(k(" "));let y=P===0?this.spacing(this.gap):P===1?u*.45:u*.2;this.paragraph({runs:w,spacing:y,firstIndent:n.indent,indent:n.indent,tabs:x,tableRule:g.header?[n.indent,p]:null},n.quote)})}};function Ti(t,e){let n=0,i="";for(let o of t.text)n+=Te(o,t,e),i&&(n+=un(i,o,t,e)),i=o;return n}var Si=28;function No(t,e,n,i,o){let r=[],s=0,l=null;return t.forEach((a,u)=>{let c=u<t.length-1?[...a.runs,{text:`
|
|
21
|
+
`,size:i,bold:!1,italic:!1,mono:!1,strike:!1,underline:!1,alpha:1}]:a.runs,h=[];c.forEach((d,p)=>{for(let x of d.text)h.push({ch:x,run:p})});let m=0,f=!0;for(;m<h.length||f&&h.length===0;){let d=f?a.firstIndent:a.indent,p=e,x=[],b=d,k=-1,g=m;for(;g<h.length;g++){let{ch:T,run:A}=h[g],O=c[A];if(T===Rt||T===`
|
|
22
|
+
`){x.push({ch:T,run:A,x:b,w:0}),g++;break}if(T===" "){let B=a.tabs.find(U=>U.x>b+.01),Z;if(B)if(B.align==="left")Z=B.x;else{let U=0,ot="";for(let C=g+1;C<h.length&&h[C].ch!==" "&&h[C].ch!==`
|
|
23
|
+
`&&h[C].ch!==Rt;C++){let ft=c[h[C].run];U+=Te(h[C].ch,ft,o)+(ot?un(ot,h[C].ch,ft,o):0),ot=h[C].ch}Z=Math.max(b,B.align==="right"?B.x-U:B.x-U/2)}else Z=(Math.floor(b/Si)+1)*Si;x.push({ch:T,run:A,x:b,w:Z-b}),b=Z;continue}let D=x[x.length-1],V=D&&D.run===A&&D.ch!==" "?un(D.ch,T,O,o):0;D&&(D.w+=V,b+=V);let $=Te(T,O,o);if(T!==" "&&b+$>p+.01&&x.some(B=>B.ch!==" ")){k>=0&&(x.length=k+1,g=m+k+1),D&&(D.w-=V);break}x.push({ch:T,run:A,x:b,w:$}),b+=$,Ye(T,h[g+1]?.ch??"")&&(k=x.length-1)}if(x.length===0&&g===m&&m<h.length){let{ch:T,run:A}=h[m];x.push({ch:T,run:A,x:d,w:Te(T,c[A],o)}),g=m+1}let P=0,w=0,y=0;for(let T of x){let[A,O,D]=hn(T.ch,c[T.run],o);P=Math.max(P,A),w=Math.max(w,O),y=Math.max(y,D)}if(x.length===0&&([P,w,y]=hn(" ",c[0]??{text:" ",size:i,bold:!1,italic:!1,mono:!1,strike:!1,underline:!1,alpha:1},o)),s=l?s+Math.round(l.desc)+Math.round(l.lead)+(f?a.spacing:0)+Math.round(P):Math.round(P),s+w>n+.5)return;let M={glyphs:x,asc:P,desc:w,lead:y,baseline:s,para:a,first:f};if(M.glyphs.forEach(T=>{T.r=c[T.run]}),r.push(M),l=M,f=!1,m=g,h.length===0)break}}),r}function Ii(t,e){let n=Wo({x:e.x,y:e.y,width:e.width,height:e.height});if(!(n.width>1&&n.height>1))return"";let i=ce(e.style.font),o=new fn(e.style.fontSize,n.width,i);for(let c of zo(t))o.block(c,{indent:0,marker:null,quote:null,listDepth:0});let r=No(o.paras,n.width,n.height,e.style.fontSize,i),s=W(e.style.stroke),l="",a=[];for(let c of r){let h=c.para;if(h.quote!==null&&a.push([n.x+h.quote,n.y+c.baseline-c.asc,n.x+h.quote,n.y+c.baseline+c.desc]),h.rule!==null&&a.push([n.x+h.rule,n.y+c.baseline-3,n.x+n.width,n.y+c.baseline-3]),h.tableRule){let p=n.y+c.baseline+c.desc+2;a.push([n.x+h.tableRule[0],p,Math.min(n.x+n.width,n.x+h.tableRule[0]+h.tableRule[1]),p])}let m="",f=0,d=c.glyphs;for(;f<d.length;){let p=d[f].r,x=f,b="",k=Ai(d[f].ch,Se(p,i));for(;x<d.length&&Zo(d[x].r,p)&&d[x].ch!==" "&&Ai(d[x].ch,Se(p,i))===k;)b+=d[x].ch,x++;let g=b.replaceAll(`
|
|
24
|
+
`,"").replaceAll(Rt,"");if(g.trim()!==""){let P=`font-size="${R(p.size)}"`;p.mono&&(P+=' font-family="Menlo, Consolas, monospace"');let w=p.mono?"regular":Nt(i,p.bold,p.italic);(p.mono?p.bold:w==="bold"||w==="boldItalic")&&(P+=' font-weight="bold"'),(p.mono?p.italic:w==="italic"||w==="boldItalic")&&(P+=' font-style="italic"'),p.underline&&(P+=' text-decoration="underline"'),p.alpha<1&&(P+=` fill-opacity="${R(p.alpha*e.style.stroke.a)}"`),m+=`<tspan x="${R(n.x+d[f].x)}" ${P}>${qt(g)}</tspan>`}if(p.strike&&x>f){let P=c.baseline-hn(d[f].ch,p,i)[0]*.32;a.push([n.x+d[f].x,n.y+P,n.x+d[x-1].x+d[x-1].w,n.y+P])}x===f&&x++,f=x}m&&(l+=`<text y="${R(n.y+c.baseline)}" font-family="${ue(e.style.font)}" fill="${s}" xml:space="preserve">${m}</text>
|
|
25
|
+
`)}let u=R(Math.max(1,e.style.fontSize/14));for(let[c,h,m,f]of a)l+=`<line x1="${R(c)}" y1="${R(h)}" x2="${R(m)}" y2="${R(f)}" stroke="${s}" stroke-width="${u}"/>
|
|
26
|
+
`;return l}function Ai(t,e){return e.fallback[t]?`fb:${t}`:""}function Zo(t,e){return t===e||t.size===e.size&&t.bold===e.bold&&t.italic===e.italic&&t.mono===e.mono&&t.strike===e.strike&&t.underline===e.underline&&t.alpha===e.alpha}var J=(t,e,n)=>({r:t,g:e,b:n,a:1}),dn=[{id:"paper",name:"Paper",background:J(.984,.98,.965),ink:J(.12,.12,.13)},{id:"white",name:"White",background:J(1,1,1),ink:J(.12,.12,.13)},{id:"sepia",name:"Sepia",background:J(.953,.914,.824),ink:J(.23,.18,.13)},{id:"blueprint",name:"Blueprint",background:J(.106,.227,.361),ink:J(.91,.945,.984)},{id:"chalkboard",name:"Chalkboard",background:J(.169,.227,.2),ink:J(.945,.945,.918)},{id:"midnight",name:"Midnight",background:J(.082,.086,.102),ink:J(.925,.925,.94)}];function vt(t){return dn.find(e=>e.id===t)??null}function ht(t,e=24){if(Re(t))return ht(_(t,0),e);let n=et(t),i=s=>{if(s.kind==="connector")return Zn(s,n);let l=Je(s)?(je+.25)*Pt(s):0;return Lt(Wn(s),-l,-l)};if(t.elements.length===0)return{x:0,y:0,width:200,height:200};let o=t.elements.filter(s=>(s.style.opacity??1)>0),r=null;for(let s of o.length?o:t.elements)r=$e(r,i(s));return Lt(r,-e,-e)}function Ct(t){let e=t.timeline??{fps:12,duration:0,boil:null,settle:null,poster:null,tracks:[],camera:null,markers:null},n=Pe(e),i=e.camera?.find(r=>r.width>1&&r.height>1);if(i){let r=i.width/i.height,s=n.map(a=>Dt(e,a)??{x:i.x,y:i.y,width:i.width,height:i.height}),l=Math.min(Math.max(...s.map(a=>a.width)),4096);return{times:n,rects:s,size:{width:l,height:l/r}}}let o=null;for(let r of n){let s=nt(t,r);s.elements.length>0&&(o=$e(o,ht(s)))}return o||(o=ht(nt(t,n[0]))),{times:n,rects:n.map(()=>o),size:{width:o.width,height:o.height}}}var _t=(t,e)=>t.a<1?` ${e}="${R(t.a)}"`:"";function Uo(t,e,n){let i=`<svg xmlns="http://www.w3.org/2000/svg" width="${R(t.width)}" height="${R(t.height)}" viewBox="${R(t.x)} ${R(t.y)} ${R(t.width)} ${R(t.height)}">
|
|
27
|
+
`;return n&&e&&(i+=`<rect x="${R(t.x)}" y="${R(t.y)}" width="${R(t.width)}" height="${R(t.height)}" fill="${W(e)}"/>
|
|
28
|
+
`),i}function gt(t,e,n,i=!1){if(Re(t))return gt(_(t,0),e,n,i);let o=vt(t.theme),r=e?o?.background??e:null,s=o?.ink??bt,l={...t,elements:t.elements.map(p=>$n(p,s))},a=n??ht(l),u=new Set(l.layers.filter(p=>p.visible).map(p=>p.id)),c=[],h=et(l),m=st(l),f=m.filter(p=>u.has(p.layerID)&&Je(p)),d=ii(f).map(p=>`<path d="${p.path.data()}" fill="none" stroke="${W(p.ink)}"${_t(p.ink,"stroke-opacity")} stroke-width="${R(p.width)}" stroke-linecap="round"/>
|
|
29
|
+
`).join("");d&&c.push({key:"rock",markup:d});for(let p of m){if(!u.has(p.layerID))continue;let x=Math.min(Math.max(p.style.opacity??1,0),1);if(x<=0)continue;let b=Ho(p,h,r,l);N(p)!==0&&p.kind!=="connector"&&(b=`<g transform="rotate(${R(N(p)*180/Math.PI)} ${R(q(Y(p)))} ${R(Q(Y(p)))})">
|
|
30
|
+
${b}</g>
|
|
31
|
+
`),x<1&&(b=`<g opacity="${R(x)}">
|
|
32
|
+
${b}</g>
|
|
33
|
+
`);let k=i?(p.click?.url?kt(p.click.url):null)??Wt(p.url):null;k&&(b=`<a href="${qt(k).replace(/"/g,""")}" target="_blank">
|
|
34
|
+
${b}</a>
|
|
35
|
+
`),c.push({key:p.id,markup:b})}return{bounds:a,parts:c}}function Ee(t,e={r:1,g:1,b:1,a:1},n){let{bounds:i,parts:o}=gt(t,e,n,!0);return Uo(i,vt(t.theme)?.background??e,e!==null)+o.map(r=>r.markup).join("")+`</svg>
|
|
36
|
+
`}function Xo(t,e){let n=Un(t,e),i=t.text??"",o=Fn(i===""?"Label":i,t.style.fontSize,200,t.style.font),r=Math.max(o.width+12,44),s=o.height+6;return{x:n.x-r/2,y:n.y-s/2,width:r,height:s}}function jo(t,e){let n=[...t];return n.slice(0,Math.floor(n.length*e)).join("")}function Jo(t){return t.reveal!==null&&t.reveal<1?Math.max(0,t.reveal):null}function Ho(t,e,n,i){let o=W(t.style.stroke),r=`stroke="${o}" stroke-width="${R(t.style.strokeWidth)}" stroke-linecap="round" stroke-linejoin="round"`,s=ke(t.style.dash,t.style.strokeWidth);s&&(r+=` stroke-dasharray="${s.map(R).join(" ")}"`),s&&t.style.dashOffset!==null&&R(t.style.dashOffset)!=="0"&&(r+=` stroke-dashoffset="${R(t.style.dashOffset)}"`);let l=t.text,a=Jo(t);if(a!==null)if(t.kind==="text")l=jo(l??"",a);else return t.kind==="connector"?`<path d="${Qe(t,e,i)[0].trimmed(a).data()}" fill="none" ${r}/>
|
|
37
|
+
`:`<path d="${Mt(t).trimmed(a).data()}" fill="none" ${r}/>
|
|
38
|
+
`;switch(t.kind){case"connector":{let[u,c]=Qe(t,e,i),h=`<path d="${u.data()}" fill="none" ${r}/>
|
|
39
|
+
`;if(c.isEmpty||(h+=`<path d="${c.data()}" fill="${o}" stroke="none"/>
|
|
40
|
+
`),l){let m=Xo(t,e);n&&(h+=`<rect x="${R(m.x)}" y="${R(m.y)}" width="${R(m.width)}" height="${R(m.height)}" fill="${W(n)}"/>
|
|
41
|
+
`),h+=Ae(l,m,t,!0)}return h}case"text":return Ae(l??"",Y(t),t,!1);case"image":{let u=Y(t),c="";if(t.image){let h=t.image.format==="jpeg"?"image/jpeg":"image/png";c+=`<image x="${R(u.x)}" y="${R(u.y)}" width="${R(u.width)}" height="${R(u.height)}" preserveAspectRatio="none" href="data:${h};base64,${t.image.data}"/>
|
|
42
|
+
`}return t.style.stroke.a>0&&t.style.strokeWidth>0&&(c+=`<path d="${Mt(t).data()}" fill="none" ${r}/>
|
|
43
|
+
`),c}case"freehand":return`<path d="${Mt(t).data()}" fill="none" ${r}/>
|
|
44
|
+
`;case"rectangle":case"ellipse":case"diamond":case"path":case"note":{let u="";if(t.kind==="note"&&t.style.fill.a>0&&(u+=`<path d="${be(t).translated(2,3).data()}" fill="#000000" fill-opacity="${R(.14*t.style.fill.a)}" stroke="none"/>
|
|
45
|
+
`),t.style.fill.a>0){let c=t.evenOdd===!0?' fill-rule="evenodd"':"";if(t.style.fillStyle==="solid")u+=`<path d="${be(t).data()}" fill="${W(t.style.fill)}"${_t(t.style.fill,"fill-opacity")}${c} stroke="none"/>
|
|
46
|
+
`;else if(t.style.fillStyle==="grid"){let h=ei(t.style.fill);u+=`<path d="${be(t).data()}" fill="${W(t.style.fill)}"${_t(t.style.fill,"fill-opacity")}${c} stroke="none"/>
|
|
47
|
+
`,u+=`<path d="${qe(t).data()}" fill="none" stroke="${W(h)}"${_t(h,"stroke-opacity")} stroke-width="1" stroke-linecap="round"/>
|
|
48
|
+
`}else u+=`<path d="${qe(t).data()}" fill="none" stroke="${W(t.style.fill)}"${_t(t.style.fill,"stroke-opacity")} stroke-width="${R(Math.max(1,t.style.strokeWidth/2))}" stroke-linecap="round"/>
|
|
49
|
+
`}return u+=`<path d="${Mt(t).data()}" fill="none" ${r}/>
|
|
50
|
+
`,l&&(u+=t.kind==="note"?Ii(l,t):Ae(l,t.kind==="path"?qo(t):Y(t),t,!0)),u}default:return Ko(t,r)}}function Ko(t,e){let n=Y(t);return`<path d="${I.rect(n).moveTo({x:n.x,y:n.y}).lineTo({x:n.x+n.width,y:n.y+n.height}).data()}" fill="none" ${e} stroke-opacity="0.5" stroke-dasharray="6 4"/>
|
|
51
|
+
`+Ae(`${t.kind}${t.text?`: ${t.text}`:""}`,n,{...t,style:{...t.style,fontSize:Math.min(t.style.fontSize,12)}},!0)}function qo(t){let e=Y(t),n=t.labelRect;return n?{x:e.x+n.x*e.width,y:e.y+n.y*e.height,width:n.width*e.width,height:n.height*e.height}:e}function Ae(t,e,n,i){let o=n.style.fontSize,r=t.split(`
|
|
52
|
+
`),s=o*1.2,l=s*r.length,a=i?q(e):e.x,u=i?Q(e)-l/2:e.y,c=`<text x="${R(a)}" font-family="${ue(n.style.font)}" font-size="${R(o)}" fill="${W(zn(n))}"${i?' text-anchor="middle"':""}>`;return r.forEach((h,m)=>{c+=`<tspan x="${R(a)}" y="${R(u+s*(m+.8))}">${qt(h)}</tspan>`}),c+`</text>
|
|
53
|
+
`}var Qo={r:1,g:1,b:1,a:1};function ee(t,e){let n=(e??"").trim();if(!n)return 0;let i=t.pages.findIndex(r=>r.name.toLowerCase()===n.toLowerCase());if(i>=0)return i;let o=Number(n);return Number.isInteger(o)&&o>=1&&o<=t.pages.length?o-1:0}function ne(t,e){return{...t,elements:t.elements.map(n=>({...n,style:{...n.style,roughness:e}}))}}var _o=`
|
|
54
54
|
:host { display: block; position: relative; color: var(--dottie-ink); background: var(--dottie-page);
|
|
55
55
|
font: 14px -apple-system, system-ui, sans-serif; border-radius: var(--dottie-radius, 0); }
|
|
56
56
|
:host([hidden]) { display: none; }
|
|
@@ -65,16 +65,16 @@ input[type=range] { flex: 1; min-width: 60px; accent-color: currentColor; }
|
|
|
65
65
|
output { font-variant-numeric: tabular-nums; min-width: 4.5em; text-align: right; }
|
|
66
66
|
.scene { min-width: 0; flex: 0 1 auto; text-align: center; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
|
67
67
|
.error { padding: 16px; font-family: ui-monospace, Menlo, monospace; white-space: pre-wrap; }
|
|
68
|
-
${
|
|
69
|
-
${
|
|
70
|
-
`;if(d!==null&&(
|
|
68
|
+
${Ri}`,te=class{constructor(e,n,i={}){v(this,"page");v(this,"plan");v(this,"scenes");v(this,"sceneNames");v(this,"background");v(this,"ink");v(this,"clicks");v(this,"replays",new Map);v(this,"replayStarts",new Map);v(this,"hoverIDs");v(this,"labels",new Map);v(this,"owner",new Map);v(this,"partsOfOwner",new Map);v(this,"overTimes",new Map);v(this,"downTimes",new Map);v(this,"hitTimes",new Map);v(this,"last",{t:0,i:0});v(this,"svg");v(this,"groups",new Map);v(this,"order",[]);v(this,"frame",-1);v(this,"onFrame",null);this.page=i.clean?ne(e,0):e,fe(he(this.page)),this.plan=Ct(this.page),this.clicks=bi(e,i.file);let o=sn(this.page);for(let c of this.page.elements){let h=c.kind==="symbol"&&c.symbol!==null?o.get(c.symbol):void 0;if(h)if(h.button===!0)for(let[m,f]of[["over",this.overTimes],["down",this.downTimes],["hit",this.hitTimes]]){let d=Kt(h,m);d!==null&&f.set(c.id,d)}else c.playback==="click"&&(h.timeline?.duration??0)>0&&this.replays.set(c.id,h.timeline.duration)}let r=new Set([...this.clicks.keys(),...this.replays.keys()]);this.hoverIDs=new Set(this.page.elements.filter(c=>r.has(c.id)&&c.kind!=="symbol"&&wi(c)).map(c=>c.id));let s=new Set(this.page.elements.filter(c=>r.has(c.id)&&c.kind==="symbol").map(c=>c.id));for(let c of this.page.elements)r.has(c.id)&&(this.labels.set(c.id,Pi(c,c.symbol!==null?o.get(c.symbol)?.name:void 0)),c.kind!=="symbol"&&this.owner.set(c.id,c.id));for(let[c,h]of Mi(this.page,s))this.owner.set(c,h);for(let[c,h]of this.owner)this.partsOfOwner.set(h,[...this.partsOfOwner.get(h)??[],c]);let l=c=>{let h=0;return this.plan.times.forEach((m,f)=>{Math.abs(m-c)<Math.abs(this.plan.times[h]-c)&&(h=f)}),h};this.scenes=(e.timeline?.markers??[]).map(c=>l(c.t)),this.sceneNames=(e.timeline?.markers??[]).map(c=>c.name);let a=vt(e.theme);this.background=a?.background??Qo,this.ink=a?.ink??{r:.12,g:.12,b:.13,a:1};let u="http://www.w3.org/2000/svg";this.svg=document.createElementNS(u,"svg"),this.svg.setAttribute("width",R(this.plan.size.width)),this.svg.setAttribute("height",R(this.plan.size.height)),this.svg.style.maxWidth=`${Math.ceil(this.plan.size.width)}px`,n.replaceChildren(this.svg)}get frameCount(){return this.plan.times.length}get posterFrame(){let e=yt(this.page),n=0;return this.plan.times.forEach((i,o)=>{Math.abs(i-e)<Math.abs(this.plan.times[n]-e)&&(n=o)}),n}show(e){let n=this.frameCount;e=(e%n+n)%n,this.drawAt(this.plan.times[e],e),this.frame=e,this.onFrame?.(e)}replay(e,n){this.replays.has(e)&&this.replayStarts.set(e,n)}replaying(e=performance.now()){for(let[n,i]of this.replayStarts)if(e-i<(this.replays.get(n)??0)*1e3)return!0;return!1}redraw(){this.drawAt(this.last.t,this.last.i)}drawAt(e,n=0){this.last={t:e,i:n};let i=this.plan.rects[Math.min(n,this.plan.rects.length-1)],o=typeof performance>"u"?0:performance.now(),r=new Map;for(let[y,M]of this.replayStarts)r.set(y,Math.min((o-M)/1e3,this.replays.get(y)??0));let s=z(e),l=Jt(this.page,s),a=_(l,s,!0,r),{parts:u}=gt(a,this.background,i),c=(y,M)=>{for(let T of M)this.owner.has(T.key)&&y.set(T.key,T.markup);return y},h=y=>y.size===0?new Map:c(new Map,gt(_(l,s,!0,new Map([...r,...y])),this.background,i).parts.filter(M=>y.has(this.owner.get(M.key)??""))),m=this.hoverIDs.size===0?new Map:c(new Map,gt(ki(a,this.hoverIDs),this.background,i).parts.filter(y=>this.hoverIDs.has(y.key))),f=h(this.overTimes),d=h(this.downTimes),p=h(this.hitTimes),x=c(new Map,u),b=[],k=new Set;for(let y of u){let M=this.owner.get(y.key);if(M===void 0){b.push(y);continue}k.has(M)||(k.add(M),b.push(this.buttonPart(M,x,m,f,d,p,l)))}this.svg.setAttribute("viewBox",`${R(i.x)} ${R(i.y)} ${R(i.width)} ${R(i.height)}`);let g="http://www.w3.org/2000/svg",P=b.map(y=>y.key);for(let y of b){let M=y.markup,T=this.groups.get(y.key);if(T)T.markup!==M&&(T.g.innerHTML=M,T.markup=M),y.button!==void 0&&T.g.classList.toggle("dottie-b",y.button);else{let A=document.createElementNS(g,"g");A.innerHTML=M,y.button!==void 0&&(A.setAttribute("class",y.button?"dottie-a dottie-b":"dottie-a"),A.setAttribute("data-a",y.key),A.setAttribute("tabindex","0"),A.setAttribute("role","button"),A.setAttribute("aria-label",this.labels.get(y.key)??"")),this.groups.set(y.key,{g:A,markup:M})}}let w=new Set(P);for(let[y,M]of this.groups)w.has(y)||(M.g.remove(),this.groups.delete(y));if(P.length!==this.order.length||P.some((y,M)=>y!==this.order[M])){let y=this.svg.firstChild;for(let M of P){let T=this.groups.get(M).g;T===y?y=y.nextSibling:this.svg.insertBefore(T,y)}for(;y;){let M=y.nextSibling;y.remove(),y=M}this.order=P}}buttonPart(e,n,i,o,r,s,l){let a=this.partsOfOwner.get(e)??[e],u=k=>{let g=a.map(P=>k.get(P)??"").join("");return g===""?null:g},c=u(n)??"",h=l.elements.find(k=>k.id===e&&k.kind==="symbol"),m=u(h?o:i),f=h?u(r):null,d=m!==null&&m!==c?m:null,p=f!==null&&f!==(m??c)?f:null;if(!h&&d===null)return{key:e,markup:c,button:!1};let x=h?' pointer-events="none"':"",b=`<g class="dottie-n"${x}>
|
|
69
|
+
${c}</g>
|
|
70
|
+
`;if(d!==null&&(b+=`<g class="dottie-h"${x}>
|
|
71
71
|
${d}</g>
|
|
72
|
-
`),p!==null&&(
|
|
72
|
+
`),p!==null&&(b+=`<g class="dottie-d"${x}>
|
|
73
73
|
${p}</g>
|
|
74
|
-
`),
|
|
75
|
-
${
|
|
76
|
-
`;else{let
|
|
77
|
-
`}}return{key:e,markup:
|
|
74
|
+
`),h){let k=u(s);if(k!==null)b+=`<g class="dottie-hit" opacity="0" pointer-events="all">
|
|
75
|
+
${k}</g>
|
|
76
|
+
`;else{let g={x:h.x+h.width/2,y:h.y+h.height/2},P=h.rotation??0,w=[[h.x,h.y],[h.x+h.width,h.y],[h.x+h.width,h.y+h.height],[h.x,h.y+h.height]].map(([M,T])=>mt({x:M,y:T},g,P)),y=new I().moveTo(w[0]).lineTo(w[1]).lineTo(w[2]).lineTo(w[3]).close();b+=`<path class="dottie-hit" d="${y.data()}" fill="none" stroke="none" pointer-events="all"/>
|
|
77
|
+
`}}return{key:e,markup:b,button:p!==null}}sceneAt(e){let n=-1;return this.scenes.forEach((i,o)=>{i<=e&&(n=o)}),n}},tr=typeof HTMLElement>"u"?class{}:HTMLElement,Yt=class extends tr{constructor(){super();v(this,"file",null);v(this,"playback",null);v(this,"root");v(this,"stage");v(this,"bar");v(this,"playButton");v(this,"scrub");v(this,"time");v(this,"sceneLabel");v(this,"prev");v(this,"next");v(this,"playing",!1);v(this,"last",0);v(this,"acc",0);v(this,"raf",0);v(this,"replayRaf",0);v(this,"loadToken",0);v(this,"visible",!0);v(this,"observer",null);this.root=this.attachShadow({mode:"open"}),this.root.innerHTML=`<style>${_o}</style><div class="stage" part="stage" role="img"></div>
|
|
78
78
|
<div class="bar" part="controls" hidden>
|
|
79
79
|
<button class="play" aria-label="Play">\u25B6</button>
|
|
80
80
|
<button class="prev" aria-label="Previous scene" hidden>\u23EE</button>
|
|
@@ -82,4 +82,4 @@ ${P}</g>
|
|
|
82
82
|
<button class="next" aria-label="Next scene" hidden>\u23ED</button>
|
|
83
83
|
<input class="scrub" type="range" min="0" max="0" value="0" aria-label="Frame">
|
|
84
84
|
<output class="time">0.0s</output>
|
|
85
|
-
</div>`;let n=i=>this.root.querySelector(i);this.stage=n(".stage"),this.bar=n(".bar"),this.playButton=n(".play"),this.scrub=n(".scrub"),this.time=n(".time"),this.sceneLabel=n(".scene"),this.prev=n(".prev"),this.next=n(".next"),this.playButton.onclick=()=>{let i=this.playback;i&&!this.playing&&i.scenes.length&&i.frame>=i.frameCount-1&&i.show(0),this.setPlaying(!this.playing)},this.scrub.oninput=()=>{this.setPlaying(!1),this.playback?.show(Number(this.scrub.value))},this.next.onclick=()=>this.nextScene(),this.prev.onclick=()=>this.prevScene(),this.stage.addEventListener("click",i=>{let
|
|
85
|
+
</div>`;let n=i=>this.root.querySelector(i);this.stage=n(".stage"),this.bar=n(".bar"),this.playButton=n(".play"),this.scrub=n(".scrub"),this.time=n(".time"),this.sceneLabel=n(".scene"),this.prev=n(".prev"),this.next=n(".next"),this.playButton.onclick=()=>{let i=this.playback;i&&!this.playing&&i.scenes.length&&i.frame>=i.frameCount-1&&i.show(0),this.setPlaying(!this.playing)},this.scrub.oninput=()=>{this.setPlaying(!1),this.playback?.show(Number(this.scrub.value))},this.next.onclick=()=>this.nextScene(),this.prev.onclick=()=>this.prevScene(),this.stage.addEventListener("click",i=>{let o=Li(i.target);o&&this.activate(o.getAttribute("data-a")??"")}),this.addEventListener("keydown",i=>this.key(i))}connectedCallback(){this.hasAttribute("tabindex")||(this.tabIndex=0),"IntersectionObserver"in window&&(this.observer=new IntersectionObserver(n=>{this.visible=n.some(i=>i.isIntersecting),this.schedule()}),this.observer.observe(this)),this.load()}disconnectedCallback(){cancelAnimationFrame(this.raf),this.raf=0,this.observer?.disconnect()}attributeChangedCallback(n,i,o){i===o||!this.isConnected||(n==="src"?this.load():n==="label"?this.stage.setAttribute("aria-label",o??""):this.file&&this.mount())}async load(){let n=++this.loadToken;try{let i,o=this.getAttribute("src");if(o){let r=await fetch(o);if(!r.ok)throw new Error(`${o}: ${r.status} ${r.statusText}`);i=await r.text()}else{let r=this.querySelector('script[type="application/json"], script[type="application/vnd.dottie+json"]');if(!r)return;i=r.textContent??""}if(n!==this.loadToken)return;this.setFile($t(i))}catch(i){if(n!==this.loadToken)return;this.stage.innerHTML="";let o=document.createElement("div");o.className="error",o.textContent=`Couldn't show this drawing: ${i.message}`,this.stage.append(o),this.dispatchEvent(new CustomEvent("error",{detail:i}))}}setFile(n){this.file=n;for(let i of n.warnings)console.warn(`dottie-player: ${i}`);this.mount(),this.dispatchEvent(new CustomEvent("load",{detail:{file:n}}))}mount(){let n=this.file,i=n.pages[ee(n,this.getAttribute("page"))],o=new te(i,this.stage,{clean:this.hasAttribute("clean"),file:n});this.playback=o,this.style.setProperty("--dottie-page",W(o.background)),this.style.setProperty("--dottie-ink",W(o.ink)),this.style.colorScheme=Et(o.background)<.5?"dark":"light",this.stage.setAttribute("aria-label",this.getAttribute("label")??i.name);let r=this.getAttribute("at"),s=i.timeline!==null&&o.frameCount>1&&r===null;this.bar.hidden=!s||this.hasAttribute("no-controls");let l=o.scenes.length>0;if(this.prev.hidden=this.next.hidden=this.sceneLabel.hidden=!l,this.scrub.max=String(o.frameCount-1),o.onFrame=u=>{if(this.scrub.value=String(u),this.time.textContent=`${o.plan.times[u].toFixed(1)}s`,l){let c=o.sceneAt(u);this.sceneLabel.textContent=c<0?"":o.sceneNames[c]}this.dispatchEvent(new CustomEvent("frame",{detail:{frame:u,time:o.plan.times[u]}}))},!s){o.drawAt(r!==null?Number(r)||0:yt(i),r!==null?Fi(o,Number(r)||0):o.posterFrame),this.setPlaying(!1);return}if(o.show(0),typeof matchMedia=="function"&&matchMedia("(prefers-reduced-motion: reduce)").matches){o.show(o.posterFrame),this.setPlaying(!1);return}this.setPlaying(!this.hasAttribute("no-autoplay")&&!o.scenes.includes(0))}get paused(){return!this.playing}get currentTime(){let n=this.playback;return n&&n.frame>=0?n.plan.times[n.frame]:0}set currentTime(n){let i=this.playback;i&&(this.setPlaying(!1),i.show(Fi(i,n)))}get duration(){return this.playback?.page.timeline?.duration??0}play(){this.setPlaying(!0)}pause(){this.setPlaying(!1)}nextScene(){let n=this.playback;n&&(n.frame>=n.frameCount-1&&n.show(0),this.setPlaying(!0))}prevScene(){let n=this.playback;if(!n)return;let i=n.sceneAt(n.frame);i>=0&&n.scenes[i]===n.frame&&(i-=1),this.setPlaying(!1),n.show(i>=0?n.scenes[i]:0)}activate(n){let i=this.playback,o=i?.clicks.get(n),r=i?.replays.has(n)??!1;if(!i||!o&&!r)return;let s={element:n,...o??{},...r?{replay:!0}:{}};if(!this.dispatchEvent(new CustomEvent("action",{detail:s,cancelable:!0})))return;let l=typeof matchMedia=="function"&&matchMedia("(prefers-reduced-motion: reduce)").matches;if(r){let a=performance.now();i.replay(n,l?a-i.replays.get(n)*1e3:a),i.redraw(),this.scheduleReplay()}o&&("url"in o?/^(https?:|mailto:)/i.test(o.url)&&window.open(o.url,"_blank","noopener"):"page"in o?this.setAttribute("page",String(o.page+1)):o.scene>=0&&o.scene<i.scenes.length&&(l||this.hasAttribute("at")||i.frameCount<2?(this.setPlaying(!1),i.show(o.scene+1<i.scenes.length?i.scenes[o.scene+1]:i.frameCount-1)):(i.show(i.scenes[o.scene]),this.setPlaying(!0))))}scheduleReplay(){if(this.replayRaf)return;let n=()=>{this.replayRaf=0;let i=this.playback;!i||!this.isConnected||(this.playing||i.redraw(),i.replaying()?this.replayRaf=requestAnimationFrame(n):this.playing||i.redraw())};this.replayRaf=requestAnimationFrame(n)}setPlaying(n){let i=this.playback;this.playing=n&&!!i&&i.frameCount>1&&i.page.timeline!==null,this.playButton.textContent=this.playing?"\u275A\u275A":"\u25B6",this.playButton.setAttribute("aria-label",this.playing?"Pause":"Play"),this.last=0,this.acc=0,this.schedule()}schedule(){this.playing&&this.visible&&!this.raf&&this.isConnected&&(this.raf=requestAnimationFrame(n=>this.tick(n)))}tick(n){this.raf=0;let i=this.playback;if(!this.playing||!i)return;let o=1e3/(i.page.timeline?.fps??12);this.last&&(this.acc+=Math.min(n-this.last,1e3)),this.last=n;let r=!1;for(;this.playing&&this.acc>=o;){this.acc-=o;let s=i.frame+1;if(s>=i.frameCount&&(i.scenes.length||this.hasAttribute("no-loop"))){this.setPlaying(!1);break}if(i.frame=s%i.frameCount,r=!0,i.scenes.includes(i.frame)){this.setPlaying(!1);break}}r&&i.show(i.frame),this.playing&&!this.visible&&(this.last=0),this.schedule()}key(n){let i=this.playback,o=n.composedPath()[0],r=Li(o);if(i&&r&&(n.key==="Enter"||n.key===" ")){n.preventDefault(),this.activate(r.getAttribute("data-a")??"");return}if(!i||i.page.timeline===null||i.frameCount<=1||this.hasAttribute("at")||o===this.scrub&&n.key!==" ")return;let s=i.scenes.length>0,l=!0;n.key===" "?s?this.playing?this.setPlaying(!1):this.nextScene():this.setPlaying(!this.playing):n.key==="ArrowRight"?s?this.nextScene():(this.setPlaying(!1),i.show(i.frame+1)):n.key==="ArrowLeft"?s?this.prevScene():(this.setPlaying(!1),i.show(i.frame-1)):n.key==="."?(this.setPlaying(!1),i.show(i.frame+1)):n.key===","?(this.setPlaying(!1),i.show(i.frame-1)):l=!1,l&&n.preventDefault()}};v(Yt,"observedAttributes",["src","page","at","clean","no-controls","label"]);function Li(t){let e=t;return e&&typeof e.closest=="function"?e.closest(".dottie-a"):null}function Fi(t,e){let n=0;return t.plan.times.forEach((i,o)=>{Math.abs(i-e)<Math.abs(t.plan.times[n]-e)&&(n=o)}),n}function Ie(t="dottie-player"){typeof customElements<"u"&&!customElements.get(t)&&customElements.define(t,class extends Yt{})}var F=t=>{let e=Zt(t*1e4)/1e4;return e===0?0:e},pn=t=>[F(t.x),F(t.y)],ie=t=>[F(t.x),F(t.y),F(t.width),F(t.height)],yn=t=>[F(t.r),F(t.g),F(t.b),F(t.a)];function gn(t){let e=t.timeline;if(!e)return[0];let n=e.duration,i=[0,n];for(let o=1;o<16;o++)i.push(n*(o+.37)/16);for(let o of e.markers??[])i.push(o.t);return e.poster!==null&&i.push(e.poster),[...new Set(i.map(F))].filter(o=>o>=0&&o<=n).sort((o,r)=>o-r)}function xn(t,e){let n=nt(t,e),i=et(n),o=new Set(n.layers.filter(l=>l.visible).map(l=>l.id)),r={t:F(e)},s=t.timeline;if(s){let l=Dt(s,e);r.view=l?ie(l):null;let a=-1;(s.markers??[]).forEach((u,c)=>{u.t<=e&&(a=c)}),r.scene=a}return s?.camera?.length||(r.bounds=ie(ht(n))),r.elements=st(n).map((l,a)=>{let u={id:l.id,kind:l.kind,z:a,seed:l.seed,frame:ie({x:l.x,y:l.y,width:l.width,height:l.height})};if(o.has(l.layerID)||(u.hiddenLayer=!0),l.rotation!==null&&(u.rotation=F(l.rotation)),l.style.opacity!==null&&(u.opacity=F(l.style.opacity)),l.reveal!==null&&(u.reveal=F(l.reveal)),l.style.dashOffset!==null&&(u.dashOffset=F(l.style.dashOffset)),u.strokeWidth=F(l.style.strokeWidth),u.stroke=yn(l.style.stroke),u.fill=yn(l.style.fill),l.style.textColor!==null&&(u.textColor=yn(l.style.textColor)),l.kind==="connector"){let[c,h]=lt(l,i);u.start=pn(c),u.end=pn(h),u.route=at(ct(l,i)).map(pn)}return u}),r}function bn(t,e,n){let i={page:e+1,name:t.name,id:t.id},o=t.timeline;if(o){let r=Ct(t);i.duration=F(o.duration),i.fps=F(o.fps),i.frameCount=r.times.length,i.poster=F(o.poster??o.duration),i.size=[F(r.size.width),F(r.size.height)],o.camera?.length||(i.bounds=ie(r.rects[0])),i.markers=(o.markers??[]).map(s=>({t:F(s.t),name:s.name}))}else i.bounds=ie(ht(t));return i.frames=n.map(r=>xn(t,r)),i}function Di(t,e){return{version:t.version,pages:t.pages.map((n,i)=>bn(n,i,e??gn(n)))}}function er(t,e={}){let n=nr(t)?t:$t(t),i=n.pages[ee(n,e.page===void 0?null:String(e.page))];return i=nt(i,e.at??yt(i)),e.clean&&(i=ne(i,0)),Ee(i,e.background===void 0?{r:1,g:1,b:1,a:1}:e.background)}function nr(t){return typeof t=="object"&&t!==null&&Array.isArray(t.pages)&&Array.isArray(t.warnings)}var ir="0.6.3";Ie();globalThis.Dottie??(globalThis.Dottie=kn);})();
|