@shotstack/shotstack-studio 2.0.0-beta.31 → 2.0.0-beta.32
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/dist/index.d.ts +18 -0
- package/dist/internal.es.js +397 -380
- package/dist/internal.umd.js +10 -10
- package/dist/schema/index.d.ts +18 -0
- package/dist/shotstack-studio.es.js +6401 -5679
- package/dist/shotstack-studio.umd.js +281 -85
- package/package.json +1 -1
package/dist/internal.umd.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function(Ht,jt){typeof exports=="object"&&typeof module<"u"?jt(exports,require("pixi.js"),require("howler"),require("opentype.js")):typeof define=="function"&&define.amd?define(["exports","pixi.js","howler","opentype.js"],jt):(Ht=typeof globalThis<"u"?globalThis:Ht||self,jt(Ht.ShotstackStudioInternal={},Ht.PIXI,Ht.Howler,Ht.opentype))})(this,function(Ht,jt,Q0,$0){"use strict";var ls=typeof document<"u"?document.currentScript:null;function Kr(t){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const s in t)if(s!=="default"){const a=Object.getOwnPropertyDescriptor(t,s);Object.defineProperty(e,s,a.get?a:{enumerable:!0,get:()=>t[s]})}}return e.default=t,Object.freeze(e)}const X=Kr(jt),eu=Kr(Q0),Xr=Kr($0);class tu{curves={};constructor(){this.initializeCurves()}initializeCurves(){this.curves={smooth:[[.5,0],[.5,1]],ease:[[.25,.1],[.25,1]],easeIn:[[.42,0],[1,1]],easeOut:[[0,0],[.58,1]],easeInOut:[[.42,0],[.58,1]],easeInQuad:[[.55,.085],[.68,.53]],easeInCubic:[[.55,.055],[.675,.19]],easeInQuart:[[.895,.03],[.685,.22]],easeInQuint:[[.755,.05],[.855,.06]],easeInSine:[[.47,0],[.745,.715]],easeInExpo:[[.95,.05],[.795,.035]],easeInCirc:[[.6,.04],[.98,.335]],easeInBack:[[.6,-.28],[.735,.045]],easeOutQuad:[[.25,.46],[.45,.94]],easeOutCubic:[[.215,.61],[.355,1]],easeOutQuart:[[.165,.84],[.44,1]],easeOutQuint:[[.23,1],[.32,1]],easeOutSine:[[.39,.575],[.565,1]],easeOutExpo:[[.19,1],[.22,1]],easeOutCirc:[[.075,.82],[.165,1]],easeOutBack:[[.175,.885],[.32,1.275]],easeInOutQuad:[[.455,.03],[.515,.955]],easeInOutCubic:[[.645,.045],[.355,1]],easeInOutQuart:[[.77,0],[.175,1]],easeInOutQuint:[[.86,0],[.07,1]],easeInOutSine:[[.445,.05],[.55,.95]],easeInOutExpo:[[1,0],[0,1]],easeInOutCirc:[[.785,.135],[.15,.86]],easeInOutBack:[[.68,-.55],[.265,1.55]]}}getValue(e,s,a,i){const r=this.curves[i??""]??this.curves.ease,[[n,o],[l,c]]=r,f=a+(3*n-3*l+1)*a*(1-a),h=e,d=e+(s-e)*o,m=e+(s-e)*c,b=s,V=f,M=1-V;return M**3*h+3*M**2*V*d+3*M*V**2*m+V**3*b}}class Pa{property;length;cubicBuilder;cachedIndex=0;constructor(e,s,a=0){this.property=this.createKeyframes(e,s,a),this.length=s,this.cubicBuilder=new tu}getValue(e){const s=this.findKeyframe(e);if(!s){if(this.property.length>0){if(e>=this.length)return this.property[this.property.length-1].to;if(e<0)return this.property[0].from}return 1}const a=(e-s.start)/s.length;switch(s.interpolation){case"bezier":return this.cubicBuilder.getValue(s.from,s.to,a,s.easing);case"constant":return s.from;case"linear":default:return s.from+(s.to-s.from)*a}}findKeyframe(e){const s=this.property;if(s.length===0)return;const a=s[this.cachedIndex];if(a){const o=a.start+a.length;if(Number.isFinite(o)&&e>=a.start&&e<o)return a}const i=this.cachedIndex+1;if(i<s.length){const o=s[i],l=o.start+o.length;if(Number.isFinite(l)&&e>=o.start&&e<l)return this.cachedIndex=i,o}const r=this.cachedIndex-1;if(r>=0){const o=s[r],l=o.start+o.length;if(Number.isFinite(l)&&e>=o.start&&e<l)return this.cachedIndex=r,o}const n=this.binarySearchKeyframe(e);if(n!==-1)return this.cachedIndex=n,s[n]}binarySearchKeyframe(e){const s=this.property;let a=0,i=s.length-1;for(;a<=i;){const r=Math.floor((a+i)/2),n=s[r],o=n.start+n.length;if(!Number.isFinite(o)||e>=o)a=r+1;else if(e<n.start)i=r-1;else return r}return-1}createKeyframes(e,s,a=0){if(typeof e=="number")return[{start:0,length:s,from:e,to:e}];if(!e.length)throw new Error("Keyframes should have at least one value.");const i=this.createNormalizedKeyframes(e);return this.validateKeyframes(i),this.insertFillerKeyframes(i,s,a)}createNormalizedKeyframes(e){return e.filter(s=>typeof s.start=="number"&&typeof s.length=="number").toSorted((s,a)=>s.start-a.start).map(s=>({start:s.start,length:s.length,from:typeof s.from=="number"?s.from:0,to:typeof s.to=="number"?s.to:0,interpolation:s.interpolation,easing:s.easing}))}validateKeyframes(e){for(let s=0;s<e.length;s+=1){const a=e[s],i=e[s+1];if(!i){if(a.start+a.length>this.length)throw new Error("Last keyframe exceeds the maximum duration.");break}if(a.start+a.length>i.start)throw new Error("Overlapping keyframes detected.")}}insertFillerKeyframes(e,s,a=0){const i=[];for(let r=0;r<e.length;r+=1){const n=e[r],o=e[r+1];if(r===0&&n.start!==0){const f={start:0,length:n.start,from:a,to:n.from};i.push(f)}if(i.push(n),!o){if(n.start+n.length<s){const h=n.start+n.length,d={start:h,length:s-h,from:n.to,to:n.to};i.push(d)}break}if(n.start+n.length!==o.start){const f=n.start+n.length,h=o.start-f,d={start:f,length:h,from:n.to,to:o.from};i.push(d)}}return i}}class Rs{baseValue;mode;layers=[];length;clampRange;constructor(e,s,a,i){this.baseValue=e,this.length=s,this.mode=a,this.clampRange=i}addLayer(e){if(e.length===0)return;const s=this.mode==="additive"?0:1;this.layers.push(new Pa(e,this.length,s))}getValue(e){if(this.layers.length===0)return this.baseValue;if(this.mode==="additive"){let a=this.baseValue;for(const i of this.layers)a+=i.getValue(e);return a}let s=this.baseValue;for(const a of this.layers)s*=a.getValue(e);return this.clampRange&&(s=Math.max(this.clampRange.min,Math.min(this.clampRange.max,s))),s}}class su{clipConfiguration;effectPreset;constructor(e){this.clipConfiguration=e;const[s,a]=(e.effect??"").split(/(Slow|Fast)/);this.effectPreset={name:s,speed:a}}buildRelative(e,s){const a=[],i=[],r=[],n=[],o=[],{effect:l,length:c}=this.clipConfiguration;if(!l)return{offsetXKeyframes:a,offsetYKeyframes:i,opacityKeyframes:r,scaleKeyframes:n,rotationKeyframes:o};const f=0,h=this.getPresetName();switch(h){case"zoomIn":{const d=this.getZoomSpeed();n.push({from:1,to:d,start:f,length:c,interpolation:"linear"});break}case"zoomOut":{const d=this.getZoomSpeed();n.push({from:d,to:1,start:f,length:c,interpolation:"linear"});break}case"slideLeft":case"slideRight":case"slideUp":case"slideDown":{const d=h==="slideLeft"||h==="slideRight",m=h==="slideLeft"||h==="slideUp",b=this.getFittedSize(e,s),V=d?e.width:e.height,M=d?b.width:b.height;let E=this.getSlideStart();const I=V+V*E*2;if(M<I){const Z=I/M;n.push({from:Z,to:Z,start:f,length:c,interpolation:"linear"})}else E=(M-V)/2/V;const[v,F]=m?[E,-E]:[-E,E];(d?a:i).push({from:v,to:F,start:f,length:c});break}}return{offsetXKeyframes:a,offsetYKeyframes:i,opacityKeyframes:r,scaleKeyframes:n,rotationKeyframes:o}}getPresetName(){return this.effectPreset.name}getZoomSpeed(){const{name:e,speed:s}=this.effectPreset;if(e.startsWith("zoom"))switch(s){case"Slow":return 1.1;case"Fast":return 1.7;default:return 1.3}return 0}getSlideStart(){const{name:e,speed:s}=this.effectPreset;if(e.startsWith("slide"))switch(s){case"Slow":return .03;case"Fast":return .2;default:return .12}return 0}getFittedSize(e,s){switch(this.clipConfiguration.fit??"crop"){case"cover":case"crop":{const i=Math.max(e.width/s.width,e.height/s.height);return{width:s.width*i,height:s.height*i}}case"contain":{const i=Math.min(e.width/s.width,e.height/s.height);return{width:s.width*i,height:s.height*i}}case"none":default:return s}}}class au{clipConfiguration;inPreset;outPreset;constructor(e){this.clipConfiguration=e,this.inPreset=this.parseTransition(e.transition?.in),this.outPreset=this.parseTransition(e.transition?.out)}parseTransition(e){const[s,a]=(e??"").split(/(Slow|Fast|VeryFast)/);return{name:s,speed:a}}buildRelative(){return{in:this.buildTransitionKeyframes("in"),out:this.buildTransitionKeyframes("out")}}createEmptyKeyframeSet(){return{offsetXKeyframes:[],offsetYKeyframes:[],opacityKeyframes:[],scaleKeyframes:[],rotationKeyframes:[],maskXKeyframes:[]}}buildTransitionKeyframes(e){const s=this.createEmptyKeyframeSet();if(!(e==="in"?this.clipConfiguration.transition?.in:this.clipConfiguration.transition?.out))return s;const i=this.getPresetLength(e),r=e==="in"?0:this.clipConfiguration.length-i,n=this.getPresetName(e),o=e==="in";switch(n){case"fade":{const[l,c]=o?[0,1]:[1,0];s.opacityKeyframes.push({from:l,to:c,start:r,length:i,interpolation:"bezier",easing:"ease"});break}case"zoom":{const[l,c]=o?[10,1]:[1,10],[f,h]=o?[0,1]:[1,0],d=o?"easeIn":"easeOut";s.scaleKeyframes.push({from:l,to:c,start:r,length:i,interpolation:"bezier",easing:d}),s.opacityKeyframes.push({from:f,to:h,start:r,length:i,interpolation:"bezier",easing:d});break}case"slideLeft":case"slideRight":case"slideUp":case"slideDown":{const l=n==="slideLeft"||n==="slideRight",c=n==="slideLeft"||n==="slideUp",f=.025,[h,d]=o?[c?f:-f,0]:[0,c?-f:f],m=o?"linear":"bezier",[b,V]=o?[0,1]:[1,0];(l?s.offsetXKeyframes:s.offsetYKeyframes).push(o?{from:h,to:d,start:r,length:i,interpolation:m}:{from:h,to:d,start:r,length:i,interpolation:m,easing:"ease"}),s.opacityKeyframes.push({from:b,to:V,start:r,length:i,interpolation:"bezier",easing:"ease"});break}case"carouselLeft":case"carouselRight":case"carouselUp":case"carouselDown":{const l=n==="carouselLeft"||n==="carouselRight",c=n==="carouselLeft"||n==="carouselUp",f=l&&1||(o?1.05:1.1),[h,d]=o?[c?f:-f,0]:[0,c?-f:f];(l?s.offsetXKeyframes:s.offsetYKeyframes).push(o?{from:h,to:d,start:r,length:i,interpolation:"linear"}:{from:h,to:d,start:r,length:i,interpolation:"bezier",easing:"ease"});break}case"reveal":case"wipeRight":{const[l,c]=o?[0,1]:[1,0];s.maskXKeyframes.push({from:l,to:c,start:r,length:i,interpolation:"bezier",easing:"ease"});break}case"wipeLeft":{const[l,c]=o?[1,0]:[0,1];s.maskXKeyframes.push({from:l,to:c,start:r,length:i,interpolation:"bezier",easing:"ease"});break}}return s}getPresetName(e){return e==="in"?this.inPreset.name:this.outPreset.name}getPresetLength(e){const{name:s,speed:a}=e==="in"?this.inPreset:this.outPreset,i=s.startsWith("carousel"),r=s.startsWith("slide");if(s==="zoom")return .4;switch(a){case"Slow":return 2;case"Fast":return i||r?.25:.5;case"VeryFast":return .25;default:return i||r?.5:1}}}const ce={PlaybackPlay:"playback:play",PlaybackPause:"playback:pause",TimelineUpdated:"timeline:updated",TimelineBackgroundChanged:"timeline:backgroundChanged",ClipAdded:"clip:added",ClipSplit:"clip:split",ClipSelected:"clip:selected",ClipUpdated:"clip:updated",ClipDeleted:"clip:deleted",ClipRestored:"clip:restored",ClipCopied:"clip:copied",ClipLoadFailed:"clip:loadFailed",ClipUnresolved:"clip:unresolved",SelectionCleared:"selection:cleared",EditChanged:"edit:changed",EditUndo:"edit:undo",EditRedo:"edit:redo",TrackAdded:"track:added",TrackRemoved:"track:removed",DurationChanged:"duration:changed",OutputResized:"output:resized",OutputResolutionChanged:"output:resolutionChanged",OutputAspectRatioChanged:"output:aspectRatioChanged",OutputFpsChanged:"output:fpsChanged",OutputFormatChanged:"output:formatChanged",OutputDestinationsChanged:"output:destinationsChanged",MergeFieldRegistered:"mergefield:registered",MergeFieldUpdated:"mergefield:updated",MergeFieldRemoved:"mergefield:removed",MergeFieldChanged:"mergefield:changed",MergeFieldApplied:"mergefield:applied",TranscriptionProgress:"transcription:progress",TranscriptionCompleted:"transcription:completed",TranscriptionFailed:"transcription:failed",LumaAttached:"luma:attached",LumaDetached:"luma:detached"},ot={CanvasClipClicked:"canvas:clipClicked",CanvasBackgroundClicked:"canvas:backgroundClicked",FontCapabilitiesChanged:"font:capabilitiesChanged",Resolved:"resolved",PlayerAddedToTrack:"player:addedToTrack",PlayerMovedBetweenTracks:"player:movedBetweenTracks",PlayerLoaded:"player:loaded",TrackContainerRemoved:"track:containerRemoved",ViewportSizeChanged:"viewport:sizeChanged",ViewportNeedsZoomToFit:"viewport:needsZoomToFit"};function iu(t,e,s){const a=e.width/t.width,i=e.height/t.height;switch(s??"crop"){case"crop":case"cover":return Math.max(a,i);case"contain":return Math.min(a,i);case"none":default:return 1}}function ru(t,e,s,a,i){if(i)return{x:a,y:a};if(t.width===0||t.height===0)return{x:a,y:a};const r=e.width/t.width,n=e.height/t.height;switch(s??"crop"){case"contain":{const o=Math.min(r,n)*a;return{x:o,y:o}}case"crop":{const o=Math.max(r,n)*a;return{x:o,y:o}}case"cover":return{x:r*a,y:n*a};case"none":default:return{x:a,y:a}}}function nu(t,e,s){const a=e.width/2,i=e.height/2;switch(s??"crop"){case"cover":{const r=e.width/t.width,n=e.height/t.height;return{scaleX:r,scaleY:n,positionX:a,positionY:i}}case"crop":{const r=Math.max(e.width/t.width,e.height/t.height);return{scaleX:r,scaleY:r,positionX:a,positionY:i}}case"contain":{const r=Math.min(e.width/t.width,e.height/t.height);return{scaleX:r,scaleY:r,positionX:a,positionY:i}}case"none":default:return{scaleX:1,scaleY:1,positionX:a,positionY:i}}}function ou(t){return t/1e3}function vN(t){return t}function Kt(t){return typeof t=="string"&&/^alias:\/\/[a-zA-Z0-9_-]+$/.test(t)}function Ci(t){return t.replace(/^alias:\/\//,"")}let lu=class{static ButtonLeftClick=0;static ButtonRightClick=3};class cu{containerSize;constructor(e){this.containerSize=e}relativeToAbsolute(e,s,a){switch(s){case"topLeft":return{x:a.x*this.containerSize.width,y:-a.y*this.containerSize.height};case"topRight":return{x:(a.x+1)*this.containerSize.width-e.width,y:-a.y*this.containerSize.height};case"bottomLeft":return{x:a.x*this.containerSize.width,y:(-a.y+1)*this.containerSize.height-e.height};case"bottomRight":return{x:(a.x+1)*this.containerSize.width-e.width,y:(-a.y+1)*this.containerSize.height-e.height};case"left":return{x:a.x*this.containerSize.width,y:(-a.y+.5)*this.containerSize.height-e.height/2};case"right":return{x:(a.x+1)*this.containerSize.width-e.width,y:(-a.y+.5)*this.containerSize.height-e.height/2};case"top":return{x:(a.x+.5)*this.containerSize.width-e.width/2,y:-a.y*this.containerSize.height};case"bottom":return{x:(a.x+.5)*this.containerSize.width-e.width/2,y:(-a.y+1)*this.containerSize.height-e.height};case"center":default:return{x:(a.x+.5)*this.containerSize.width-e.width/2,y:(-a.y+.5)*this.containerSize.height-e.height/2}}}absoluteToRelative(e,s,a){switch(s){case"topLeft":return{x:a.x/this.containerSize.width,y:-(a.y/this.containerSize.height)};case"topRight":return{x:(a.x+e.width)/this.containerSize.width-1,y:-(a.y/this.containerSize.height)};case"bottomLeft":return{x:a.x/this.containerSize.width,y:-((a.y+e.height)/this.containerSize.height-1)};case"bottomRight":return{x:(a.x+e.width)/this.containerSize.width-1,y:-((a.y+e.height)/this.containerSize.height-1)};case"left":return{x:a.x/this.containerSize.width,y:-((a.y+e.height/2)/this.containerSize.height-.5)};case"right":return{x:(a.x+e.width)/this.containerSize.width-1,y:-((a.y+e.height/2)/this.containerSize.height-.5)};case"top":return{x:(a.x+e.width/2)/this.containerSize.width-.5,y:-(a.y/this.containerSize.height)};case"bottom":return{x:(a.x+e.width/2)/this.containerSize.width-.5,y:-((a.y+e.height)/this.containerSize.height-1)};case"center":default:return{x:(a.x+e.width/2)/this.containerSize.width-.5,y:-((a.y+e.height/2)/this.containerSize.height-.5)}}}}class fu{container;constructor(){this.container=new X.Container}getContainer(){return this.container}}var Qe=(t=>(t.Video="video",t.Image="image",t.Audio="audio",t.Text="text",t.RichText="rich-text",t.Luma="luma",t.Html="html",t.Shape="shape",t.Caption="caption",t.Svg="svg",t.TextToImage="text-to-image",t.ImageToVideo="image-to-video",t.TextToSpeech="text-to-speech",t))(Qe||{});class xt extends fu{static DiscardedFrameCount=0;layer;shouldDispose;playerType;clipId=null;edit;clipConfiguration;resolvedTiming;positionBuilder;offsetXKeyframeBuilder;offsetYKeyframeBuilder;scaleKeyframeBuilder;opacityKeyframeBuilder;rotationKeyframeBuilder;skewXKeyframeBuilder;skewYKeyframeBuilder;maskXKeyframeBuilder;wipeMask;contentContainer;constructor(e,s,a){super(),this.edit=e,this.layer=0,this.shouldDispose=!1,this.playerType=a,this.clipConfiguration=s,this.positionBuilder=new cu(e.size),this.resolvedTiming={start:s.start,length:s.length},this.wipeMask=null,this.contentContainer=new X.Container,this.getContainer().addChild(this.contentContainer)}reconfigureAfterRestore(){this.configureKeyframes()}async reloadAsset(){}configureKeyframes(){const e=this.getLength(),s=this.clipConfiguration,a=typeof s.offset?.x=="number"?s.offset.x:0,i=typeof s.offset?.y=="number"?s.offset.y:0,r=typeof s.scale=="number"?s.scale:1,n=typeof s.opacity=="number"?s.opacity:1,o=typeof s.transform?.rotate?.angle=="number"?s.transform.rotate.angle:0,l=typeof s.transform?.skew?.x=="number"?s.transform.skew.x:0,c=typeof s.transform?.skew?.y=="number"?s.transform.skew.y:0;if(this.offsetXKeyframeBuilder=new Rs(a,e,"additive"),this.offsetYKeyframeBuilder=new Rs(i,e,"additive"),this.scaleKeyframeBuilder=new Rs(r,e,"multiplicative"),this.opacityKeyframeBuilder=new Rs(n,e,"multiplicative",{min:0,max:1}),this.rotationKeyframeBuilder=new Rs(o,e,"additive"),this.skewXKeyframeBuilder=new Rs(l,e,"additive"),this.skewYKeyframeBuilder=new Rs(c,e,"additive"),this.clipHasKeyframes()){Array.isArray(s.scale)&&this.scaleKeyframeBuilder.addLayer(s.scale),Array.isArray(s.opacity)&&this.opacityKeyframeBuilder.addLayer(s.opacity),Array.isArray(s.offset?.x)&&this.offsetXKeyframeBuilder.addLayer(s.offset.x),Array.isArray(s.offset?.y)&&this.offsetYKeyframeBuilder.addLayer(s.offset.y),Array.isArray(s.transform?.rotate?.angle)&&this.rotationKeyframeBuilder.addLayer(s.transform.rotate.angle),Array.isArray(s.transform?.skew?.x)&&this.skewXKeyframeBuilder.addLayer(s.transform.skew.x),Array.isArray(s.transform?.skew?.y)&&this.skewYKeyframeBuilder.addLayer(s.transform.skew.y);return}const f={...s,start:this.getStart(),length:e},h=new su(f).buildRelative(this.edit.size,this.getSize()),d=new au(f).buildRelative();this.offsetXKeyframeBuilder.addLayer(h.offsetXKeyframes),this.offsetYKeyframeBuilder.addLayer(h.offsetYKeyframes),this.scaleKeyframeBuilder.addLayer(h.scaleKeyframes),this.opacityKeyframeBuilder.addLayer(h.opacityKeyframes),this.rotationKeyframeBuilder.addLayer(h.rotationKeyframes),this.offsetXKeyframeBuilder.addLayer(d.in.offsetXKeyframes),this.offsetYKeyframeBuilder.addLayer(d.in.offsetYKeyframes),this.scaleKeyframeBuilder.addLayer(d.in.scaleKeyframes),this.opacityKeyframeBuilder.addLayer(d.in.opacityKeyframes),this.rotationKeyframeBuilder.addLayer(d.in.rotationKeyframes),this.offsetXKeyframeBuilder.addLayer(d.out.offsetXKeyframes),this.offsetYKeyframeBuilder.addLayer(d.out.offsetYKeyframes),this.scaleKeyframeBuilder.addLayer(d.out.scaleKeyframes),this.opacityKeyframeBuilder.addLayer(d.out.opacityKeyframes),this.rotationKeyframeBuilder.addLayer(d.out.rotationKeyframes);const m=[...d.in.maskXKeyframes,...d.out.maskXKeyframes];m.length&&(this.maskXKeyframeBuilder=new Pa(m,e))}async load(){this.contentContainer?.destroyed&&(this.contentContainer=new X.Container,this.getContainer().addChild(this.contentContainer)),this.getContainer().sortableChildren=!0,this.getContainer().cursor="pointer",this.getContainer().eventMode="static",this.getContainer().on?.("pointerdown",this.onPointerDown.bind(this))}update(e,s){if(this.getContainer().visible=this.isActive(),this.getContainer().zIndex=1e5-this.layer*100,!this.isActive())return;const a=this.getPivot(),i=this.getPosition(),r=this.getContainerScale();this.getContainer().scale.set(r.x,r.y),this.getContainer().pivot.set(a.x,a.y),this.getContainer().position.set(i.x+a.x,i.y+a.y);const n=this.getRotation();this.contentContainer.alpha=this.getOpacity(),this.getContainer().angle=n;const o=this.getSkew();this.getContainer().skew?.set(o.x*(Math.PI/180),o.y*(Math.PI/180)),this.clipConfiguration.width&&this.clipConfiguration.height&&this.applyFixedDimensions(),this.updateWipeMask(),this.shouldDiscardFrame()&&(this.contentContainer.alpha=0)}updateWipeMask(){if(!this.maskXKeyframeBuilder){this.wipeMask&&(this.getContainer().mask=null,this.wipeMask.destroy(),this.wipeMask=null);return}const e=this.maskXKeyframeBuilder.getValue(this.getPlaybackTime()),s=this.getSize();this.wipeMask||(this.wipeMask=new X.Graphics,this.getContainer().addChild(this.wipeMask),this.getContainer().mask=this.wipeMask),this.wipeMask.clear(),this.wipeMask.rect(0,0,s.width*e,s.height),this.wipeMask.fill(16777215)}dispose(){this.wipeMask?.destroy(),this.wipeMask=null,this.contentContainer?.destroy()}getStart(){return this.resolvedTiming.start}getLength(){return this.resolvedTiming.length}getEnd(){return this.resolvedTiming.start+this.resolvedTiming.length}getTimingIntent(){if(this.clipId){const e=this.edit.getDocumentClipById(this.clipId);if(e){let s;e.start==="auto"?s="auto":(Kt(e.start),s=e.start);let a;return e.length==="auto"||e.length==="end"||Kt(e.length),a=e.length,{start:s,length:a}}}return{start:this.clipConfiguration.start,length:this.clipConfiguration.length}}getResolvedTiming(){return{...this.resolvedTiming}}setResolvedTiming(e){this.resolvedTiming={...e},this.clipConfiguration.start=e.start,this.clipConfiguration.length=e.length}getExportableClip(){const e=structuredClone(this.clipConfiguration),s=this.getTimingIntent();return e.start=s.start,e.length=s.length,e}getPlaybackTime(){const e=this.edit.playbackTime-this.getStart();return e<0?0:e>this.getLength()?this.getLength():e}getContentSize(){return this.getSize()}getContentContainer(){return this.contentContainer}getOpacity(){return this.opacityKeyframeBuilder?.getValue(this.getPlaybackTime())??1}getPosition(){const e={x:this.offsetXKeyframeBuilder?.getValue(this.getPlaybackTime())??0,y:this.offsetYKeyframeBuilder?.getValue(this.getPlaybackTime())??0};return this.positionBuilder.relativeToAbsolute(this.getSize(),this.clipConfiguration.position??"center",e)}getPivot(){const e=this.getSize();return{x:e.width/2,y:e.height/2}}calculateMoveOffset(e,s){const a=this.getPosition(),i={x:a.x+e,y:a.y+s},r=this.positionBuilder.absoluteToRelative(this.getSize(),this.clipConfiguration.position??"center",i);return{x:r.x,y:r.y}}getFitScale(){const e={width:this.clipConfiguration.width??this.edit.size.width,height:this.clipConfiguration.height??this.edit.size.height},s=this.getContentSize(),a=this.clipConfiguration.fit??"crop";return iu(s,e,a)}getScale(){return(this.scaleKeyframeBuilder?.getValue(this.getPlaybackTime())??1)*this.getFitScale()}getContainerScale(){const e=this.scaleKeyframeBuilder?.getValue(this.getPlaybackTime())??1,s=this.getContentSize(),a=this.clipConfiguration.fit??"crop",i=!!(this.clipConfiguration.width&&this.clipConfiguration.height);return ru(s,this.edit.size,a,e,i)}getRotation(){return this.rotationKeyframeBuilder?.getValue(this.getPlaybackTime())??0}getSkew(){return{x:this.skewXKeyframeBuilder?.getValue(this.getPlaybackTime())??0,y:this.skewYKeyframeBuilder?.getValue(this.getPlaybackTime())??0}}isActive(){return this.edit.playbackTime>=this.getStart()&&this.edit.playbackTime<this.getEnd()}shouldDiscardFrame(){return this.getPlaybackTime()<xt.DiscardedFrameCount}onPointerDown(e){e.button===lu.ButtonLeftClick&&this.edit.events.emit(ot.CanvasClipClicked,{player:this})}clipHasKeyframes(){return[this.clipConfiguration.scale,this.clipConfiguration.opacity,this.clipConfiguration.offset?.x,this.clipConfiguration.offset?.y,this.clipConfiguration.transform?.rotate?.angle,this.clipConfiguration.transform?.skew?.x,this.clipConfiguration.transform?.skew?.y].some(e=>e&&typeof e!="number")}applyFixedDimensions(){const e=this.clipConfiguration.width,s=this.clipConfiguration.height;if(!e||!s)return;const a=this.contentContainer.children.find(m=>m instanceof X.Sprite);if(!a?.texture)return;const i=a.texture.width,r=a.texture.height,n=this.clipConfiguration.fit||"crop",o=this.contentContainer.mask;let l=null;if(o instanceof X.Graphics?l=o:o||(l=new X.Graphics,this.contentContainer.addChild(l),this.contentContainer.mask=l),l){const{asset:m}=this.clipConfiguration,b=m&&"border"in m&&m.border&&typeof m.border=="object"?m.border.width??0:0,V=b/2;l.clear(),l.rect(-V,-V,e+b,s+b),l.fill(16777215)}const c=this.scaleKeyframeBuilder?.getValue(this.getPlaybackTime())??1;a.anchor.set(.5,.5);const d=nu({width:i,height:r},{width:e,height:s},n);a.scale.set(d.scaleX,d.scaleY),a.position.set(d.positionX,d.positionY),this.contentContainer.scale.set(c,c),this.contentContainer.position.set(e/2*(1-c),s/2*(1-c))}applyAnchorPositioning(e,s,a,i){const r=i.width,n=i.height;if(!!i.mask){i.position.set(0,0);return}const l=(e??"center").toLowerCase();let c=0,f=0;l.includes("left")||l==="left"?c=0:l.includes("right")||l==="right"?c=s-r:c=(s-r)/2,l.includes("top")||l==="top"?f=0:l.includes("bottom")||l==="bottom"?f=a-n:f=(a-n)/2,i.position.set(c,f)}supportsEdgeResize(){return!1}onDimensionsChanged(){}notifyDimensionsChanged(){this.onDimensionsChanged()}}class ki{static Name="AudioLoadParser";id;name;extension;validAudioExtensions;constructor(){this.id=ki.Name,this.name=ki.Name,this.extension={type:[X.ExtensionType.LoadParser],priority:X.LoaderParserPriority.Normal,ref:null},this.validAudioExtensions=["mp3","mpeg","ogg","wav"]}test(e){const s=e.split("?")[0]?.split(".").pop()??"";return this.validAudioExtensions.includes(s)}async load(e,s,a){return new Promise(i=>{const r={src:e},n=new Howl(r);n.on("load",()=>i(n)),n.on("loaderror",()=>i(null))})}unload(e){e?.unload()}}class uu extends xt{audioResource;isPlaying;volumeKeyframeBuilder;syncTimer;constructor(e,s){super(e,s,Qe.Audio),this.audioResource=null,this.isPlaying=!1,this.syncTimer=0}async load(){await super.load();const e=this.clipConfiguration.asset,s=e.src,a={src:s,parser:ki.Name},i=await this.edit.assetLoader.load(s,a);if(!(i instanceof eu.Howl))throw new Error(`Invalid audio source '${e.src}'.`);this.audioResource=i;const n=typeof e.volume=="number"?e.volume:1;this.volumeKeyframeBuilder=new Pa(this.createVolumeKeyframes(e,n),this.getLength(),n),this.configureKeyframes()}update(e,s){super.update(e,s);const{trim:a=0}=this.clipConfiguration.asset;if(this.syncTimer+=s,this.getContainer().alpha=0,!this.audioResource)return;const i=this.edit.isPlaying&&this.isActive(),r=this.getPlaybackTime();i&&(this.isPlaying||(this.isPlaying=!0,this.audioResource.seek(r+a),this.audioResource.play()),this.audioResource.volume()!==this.getVolume()&&this.audioResource.volume(this.getVolume()),Math.abs(this.audioResource.seek()-a-r)>.1&&(this.audioResource.seek(r+a),this.edit.recordSyncCorrection())),this.isPlaying&&!i&&(this.isPlaying=!1,this.audioResource.pause());const n=this.syncTimer>100;!this.edit.isPlaying&&this.isActive()&&n&&(this.syncTimer=0,this.audioResource.seek(r+a))}dispose(){this.audioResource?.unload(),this.audioResource=null}reconfigureAfterRestore(){super.reconfigureAfterRestore();const e=this.clipConfiguration.asset,s=typeof e.volume=="number"?e.volume:1;this.volumeKeyframeBuilder=new Pa(this.createVolumeKeyframes(e,s),this.getLength(),s)}getSize(){return{width:0,height:0}}getVolume(){return this.volumeKeyframeBuilder.getValue(this.getPlaybackTime())}getCurrentDrift(){if(!this.audioResource)return 0;const{trim:e=0}=this.clipConfiguration.asset,s=this.audioResource.seek(),a=this.getPlaybackTime();return Math.abs(s-e-a)}createVolumeKeyframes(e,s){const{effect:a,volume:i}=e;if(!a||a==="none"||Array.isArray(i))return i??1;const r=this.getLength()/1e3,n=Math.min(2,r/2);return a==="fadeIn"?[{from:0,to:s,start:0,length:n}]:a==="fadeOut"?[{from:s,to:0,start:r-n,length:n}]:[{from:0,to:s,start:0,length:n},{from:s,to:0,start:r-n,length:n}]}}function Ni(t){const e=t.trim().replace(",","."),s=e.split(":");if(s.length===3){const a=parseInt(s[0],10),i=parseInt(s[1],10),r=parseFloat(s[2]);return a*3600+i*60+r}if(s.length===2){const a=parseInt(s[0],10),i=parseFloat(s[1]);return a*60+i}return parseFloat(e)||0}function hu(t){const e=[],s=t.split(/\r?\n/);let a=0;for(;a<s.length&&!s[a].includes("-->");)a+=1;for(;a<s.length;){const i=s[a].trim();if(i.includes("-->")){const[r,n]=i.split("-->").map(f=>f.trim().split(" ")[0]),o=Ni(r),l=Ni(n),c=[];for(a+=1;a<s.length&&s[a].trim()!==""&&!s[a].includes("-->");){const f=s[a].trim();f.startsWith("NOTE")||c.push(f),a+=1}c.length>0&&e.push({start:o,end:l,text:c.join(`
|
|
1
|
+
(function(Ht,jt){typeof exports=="object"&&typeof module<"u"?jt(exports,require("pixi.js"),require("howler"),require("opentype.js")):typeof define=="function"&&define.amd?define(["exports","pixi.js","howler","opentype.js"],jt):(Ht=typeof globalThis<"u"?globalThis:Ht||self,jt(Ht.ShotstackStudioInternal={},Ht.PIXI,Ht.Howler,Ht.opentype))})(this,function(Ht,jt,Q0,$0){"use strict";var ls=typeof document<"u"?document.currentScript:null;function Kr(t){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const s in t)if(s!=="default"){const a=Object.getOwnPropertyDescriptor(t,s);Object.defineProperty(e,s,a.get?a:{enumerable:!0,get:()=>t[s]})}}return e.default=t,Object.freeze(e)}const X=Kr(jt),eu=Kr(Q0),Xr=Kr($0);class tu{curves={};constructor(){this.initializeCurves()}initializeCurves(){this.curves={smooth:[[.5,0],[.5,1]],ease:[[.25,.1],[.25,1]],easeIn:[[.42,0],[1,1]],easeOut:[[0,0],[.58,1]],easeInOut:[[.42,0],[.58,1]],easeInQuad:[[.55,.085],[.68,.53]],easeInCubic:[[.55,.055],[.675,.19]],easeInQuart:[[.895,.03],[.685,.22]],easeInQuint:[[.755,.05],[.855,.06]],easeInSine:[[.47,0],[.745,.715]],easeInExpo:[[.95,.05],[.795,.035]],easeInCirc:[[.6,.04],[.98,.335]],easeInBack:[[.6,-.28],[.735,.045]],easeOutQuad:[[.25,.46],[.45,.94]],easeOutCubic:[[.215,.61],[.355,1]],easeOutQuart:[[.165,.84],[.44,1]],easeOutQuint:[[.23,1],[.32,1]],easeOutSine:[[.39,.575],[.565,1]],easeOutExpo:[[.19,1],[.22,1]],easeOutCirc:[[.075,.82],[.165,1]],easeOutBack:[[.175,.885],[.32,1.275]],easeInOutQuad:[[.455,.03],[.515,.955]],easeInOutCubic:[[.645,.045],[.355,1]],easeInOutQuart:[[.77,0],[.175,1]],easeInOutQuint:[[.86,0],[.07,1]],easeInOutSine:[[.445,.05],[.55,.95]],easeInOutExpo:[[1,0],[0,1]],easeInOutCirc:[[.785,.135],[.15,.86]],easeInOutBack:[[.68,-.55],[.265,1.55]]}}getValue(e,s,a,i){const r=this.curves[i??""]??this.curves.ease,[[n,o],[l,c]]=r,f=a+(3*n-3*l+1)*a*(1-a),h=e,d=e+(s-e)*o,m=e+(s-e)*c,b=s,I=f,M=1-I;return M**3*h+3*M**2*I*d+3*M*I**2*m+I**3*b}}class Pa{property;length;cubicBuilder;cachedIndex=0;constructor(e,s,a=0){this.property=this.createKeyframes(e,s,a),this.length=s,this.cubicBuilder=new tu}getValue(e){const s=this.findKeyframe(e);if(!s){if(this.property.length>0){if(e>=this.length)return this.property[this.property.length-1].to;if(e<0)return this.property[0].from}return 1}const a=(e-s.start)/s.length;switch(s.interpolation){case"bezier":return this.cubicBuilder.getValue(s.from,s.to,a,s.easing);case"constant":return s.from;case"linear":default:return s.from+(s.to-s.from)*a}}findKeyframe(e){const s=this.property;if(s.length===0)return;const a=s[this.cachedIndex];if(a){const o=a.start+a.length;if(Number.isFinite(o)&&e>=a.start&&e<o)return a}const i=this.cachedIndex+1;if(i<s.length){const o=s[i],l=o.start+o.length;if(Number.isFinite(l)&&e>=o.start&&e<l)return this.cachedIndex=i,o}const r=this.cachedIndex-1;if(r>=0){const o=s[r],l=o.start+o.length;if(Number.isFinite(l)&&e>=o.start&&e<l)return this.cachedIndex=r,o}const n=this.binarySearchKeyframe(e);if(n!==-1)return this.cachedIndex=n,s[n]}binarySearchKeyframe(e){const s=this.property;let a=0,i=s.length-1;for(;a<=i;){const r=Math.floor((a+i)/2),n=s[r],o=n.start+n.length;if(!Number.isFinite(o)||e>=o)a=r+1;else if(e<n.start)i=r-1;else return r}return-1}createKeyframes(e,s,a=0){if(typeof e=="number")return[{start:0,length:s,from:e,to:e}];if(!e.length)throw new Error("Keyframes should have at least one value.");const i=this.createNormalizedKeyframes(e);return this.validateKeyframes(i),this.insertFillerKeyframes(i,s,a)}createNormalizedKeyframes(e){return e.filter(s=>typeof s.start=="number"&&typeof s.length=="number").toSorted((s,a)=>s.start-a.start).map(s=>({start:s.start,length:s.length,from:typeof s.from=="number"?s.from:0,to:typeof s.to=="number"?s.to:0,interpolation:s.interpolation,easing:s.easing}))}validateKeyframes(e){for(let s=0;s<e.length;s+=1){const a=e[s],i=e[s+1];if(!i){if(a.start+a.length>this.length)throw new Error("Last keyframe exceeds the maximum duration.");break}if(a.start+a.length>i.start)throw new Error("Overlapping keyframes detected.")}}insertFillerKeyframes(e,s,a=0){const i=[];for(let r=0;r<e.length;r+=1){const n=e[r],o=e[r+1];if(r===0&&n.start!==0){const f={start:0,length:n.start,from:a,to:n.from};i.push(f)}if(i.push(n),!o){if(n.start+n.length<s){const h=n.start+n.length,d={start:h,length:s-h,from:n.to,to:n.to};i.push(d)}break}if(n.start+n.length!==o.start){const f=n.start+n.length,h=o.start-f,d={start:f,length:h,from:n.to,to:o.from};i.push(d)}}return i}}class Rs{baseValue;mode;layers=[];length;clampRange;constructor(e,s,a,i){this.baseValue=e,this.length=s,this.mode=a,this.clampRange=i}addLayer(e){if(e.length===0)return;const s=this.mode==="additive"?0:1;this.layers.push(new Pa(e,this.length,s))}getValue(e){if(this.layers.length===0)return this.baseValue;if(this.mode==="additive"){let a=this.baseValue;for(const i of this.layers)a+=i.getValue(e);return a}let s=this.baseValue;for(const a of this.layers)s*=a.getValue(e);return this.clampRange&&(s=Math.max(this.clampRange.min,Math.min(this.clampRange.max,s))),s}}class su{clipConfiguration;effectPreset;constructor(e){this.clipConfiguration=e;const[s,a]=(e.effect??"").split(/(Slow|Fast)/);this.effectPreset={name:s,speed:a}}buildRelative(e,s){const a=[],i=[],r=[],n=[],o=[],{effect:l,length:c}=this.clipConfiguration;if(!l)return{offsetXKeyframes:a,offsetYKeyframes:i,opacityKeyframes:r,scaleKeyframes:n,rotationKeyframes:o};const f=0,h=this.getPresetName();switch(h){case"zoomIn":{const d=this.getZoomSpeed();n.push({from:1,to:d,start:f,length:c,interpolation:"linear"});break}case"zoomOut":{const d=this.getZoomSpeed();n.push({from:d,to:1,start:f,length:c,interpolation:"linear"});break}case"slideLeft":case"slideRight":case"slideUp":case"slideDown":{const d=h==="slideLeft"||h==="slideRight",m=h==="slideLeft"||h==="slideUp",b=this.getFittedSize(e,s),I=d?e.width:e.height,M=d?b.width:b.height;let E=this.getSlideStart();const V=I+I*E*2;if(M<V){const Z=V/M;n.push({from:Z,to:Z,start:f,length:c,interpolation:"linear"})}else E=(M-I)/2/I;const[v,F]=m?[E,-E]:[-E,E];(d?a:i).push({from:v,to:F,start:f,length:c});break}}return{offsetXKeyframes:a,offsetYKeyframes:i,opacityKeyframes:r,scaleKeyframes:n,rotationKeyframes:o}}getPresetName(){return this.effectPreset.name}getZoomSpeed(){const{name:e,speed:s}=this.effectPreset;if(e.startsWith("zoom"))switch(s){case"Slow":return 1.1;case"Fast":return 1.7;default:return 1.3}return 0}getSlideStart(){const{name:e,speed:s}=this.effectPreset;if(e.startsWith("slide"))switch(s){case"Slow":return .03;case"Fast":return .2;default:return .12}return 0}getFittedSize(e,s){switch(this.clipConfiguration.fit??"crop"){case"cover":case"crop":{const i=Math.max(e.width/s.width,e.height/s.height);return{width:s.width*i,height:s.height*i}}case"contain":{const i=Math.min(e.width/s.width,e.height/s.height);return{width:s.width*i,height:s.height*i}}case"none":default:return s}}}class au{clipConfiguration;inPreset;outPreset;constructor(e){this.clipConfiguration=e,this.inPreset=this.parseTransition(e.transition?.in),this.outPreset=this.parseTransition(e.transition?.out)}parseTransition(e){const[s,a]=(e??"").split(/(Slow|Fast|VeryFast)/);return{name:s,speed:a}}buildRelative(){return{in:this.buildTransitionKeyframes("in"),out:this.buildTransitionKeyframes("out")}}createEmptyKeyframeSet(){return{offsetXKeyframes:[],offsetYKeyframes:[],opacityKeyframes:[],scaleKeyframes:[],rotationKeyframes:[],maskXKeyframes:[]}}buildTransitionKeyframes(e){const s=this.createEmptyKeyframeSet();if(!(e==="in"?this.clipConfiguration.transition?.in:this.clipConfiguration.transition?.out))return s;const i=this.getPresetLength(e),r=e==="in"?0:this.clipConfiguration.length-i,n=this.getPresetName(e),o=e==="in";switch(n){case"fade":{const[l,c]=o?[0,1]:[1,0];s.opacityKeyframes.push({from:l,to:c,start:r,length:i,interpolation:"bezier",easing:"ease"});break}case"zoom":{const[l,c]=o?[10,1]:[1,10],[f,h]=o?[0,1]:[1,0],d=o?"easeIn":"easeOut";s.scaleKeyframes.push({from:l,to:c,start:r,length:i,interpolation:"bezier",easing:d}),s.opacityKeyframes.push({from:f,to:h,start:r,length:i,interpolation:"bezier",easing:d});break}case"slideLeft":case"slideRight":case"slideUp":case"slideDown":{const l=n==="slideLeft"||n==="slideRight",c=n==="slideLeft"||n==="slideUp",f=.025,[h,d]=o?[c?f:-f,0]:[0,c?-f:f],m=o?"linear":"bezier",[b,I]=o?[0,1]:[1,0];(l?s.offsetXKeyframes:s.offsetYKeyframes).push(o?{from:h,to:d,start:r,length:i,interpolation:m}:{from:h,to:d,start:r,length:i,interpolation:m,easing:"ease"}),s.opacityKeyframes.push({from:b,to:I,start:r,length:i,interpolation:"bezier",easing:"ease"});break}case"carouselLeft":case"carouselRight":case"carouselUp":case"carouselDown":{const l=n==="carouselLeft"||n==="carouselRight",c=n==="carouselLeft"||n==="carouselUp",f=l&&1||(o?1.05:1.1),[h,d]=o?[c?f:-f,0]:[0,c?-f:f];(l?s.offsetXKeyframes:s.offsetYKeyframes).push(o?{from:h,to:d,start:r,length:i,interpolation:"linear"}:{from:h,to:d,start:r,length:i,interpolation:"bezier",easing:"ease"});break}case"reveal":case"wipeRight":{const[l,c]=o?[0,1]:[1,0];s.maskXKeyframes.push({from:l,to:c,start:r,length:i,interpolation:"bezier",easing:"ease"});break}case"wipeLeft":{const[l,c]=o?[1,0]:[0,1];s.maskXKeyframes.push({from:l,to:c,start:r,length:i,interpolation:"bezier",easing:"ease"});break}}return s}getPresetName(e){return e==="in"?this.inPreset.name:this.outPreset.name}getPresetLength(e){const{name:s,speed:a}=e==="in"?this.inPreset:this.outPreset,i=s.startsWith("carousel"),r=s.startsWith("slide");if(s==="zoom")return .4;switch(a){case"Slow":return 2;case"Fast":return i||r?.25:.5;case"VeryFast":return .25;default:return i||r?.5:1}}}const ce={PlaybackPlay:"playback:play",PlaybackPause:"playback:pause",TimelineUpdated:"timeline:updated",TimelineBackgroundChanged:"timeline:backgroundChanged",ClipAdded:"clip:added",ClipSplit:"clip:split",ClipSelected:"clip:selected",ClipUpdated:"clip:updated",ClipDeleted:"clip:deleted",ClipRestored:"clip:restored",ClipCopied:"clip:copied",ClipLoadFailed:"clip:loadFailed",ClipUnresolved:"clip:unresolved",SelectionCleared:"selection:cleared",EditChanged:"edit:changed",EditUndo:"edit:undo",EditRedo:"edit:redo",TrackAdded:"track:added",TrackRemoved:"track:removed",DurationChanged:"duration:changed",OutputResized:"output:resized",OutputResolutionChanged:"output:resolutionChanged",OutputAspectRatioChanged:"output:aspectRatioChanged",OutputFpsChanged:"output:fpsChanged",OutputFormatChanged:"output:formatChanged",OutputDestinationsChanged:"output:destinationsChanged",MergeFieldRegistered:"mergefield:registered",MergeFieldUpdated:"mergefield:updated",MergeFieldRemoved:"mergefield:removed",MergeFieldChanged:"mergefield:changed",MergeFieldApplied:"mergefield:applied",TranscriptionProgress:"transcription:progress",TranscriptionCompleted:"transcription:completed",TranscriptionFailed:"transcription:failed",LumaAttached:"luma:attached",LumaDetached:"luma:detached"},ot={CanvasClipClicked:"canvas:clipClicked",CanvasBackgroundClicked:"canvas:backgroundClicked",FontCapabilitiesChanged:"font:capabilitiesChanged",Resolved:"resolved",PlayerAddedToTrack:"player:addedToTrack",PlayerMovedBetweenTracks:"player:movedBetweenTracks",PlayerLoaded:"player:loaded",TrackContainerRemoved:"track:containerRemoved",ViewportSizeChanged:"viewport:sizeChanged",ViewportNeedsZoomToFit:"viewport:needsZoomToFit"};function iu(t,e,s){const a=e.width/t.width,i=e.height/t.height;switch(s??"crop"){case"crop":case"cover":return Math.max(a,i);case"contain":return Math.min(a,i);case"none":default:return 1}}function ru(t,e,s,a,i){if(i)return{x:a,y:a};if(t.width===0||t.height===0)return{x:a,y:a};const r=e.width/t.width,n=e.height/t.height;switch(s??"crop"){case"contain":{const o=Math.min(r,n)*a;return{x:o,y:o}}case"crop":{const o=Math.max(r,n)*a;return{x:o,y:o}}case"cover":return{x:r*a,y:n*a};case"none":default:return{x:a,y:a}}}function nu(t,e,s){const a=e.width/2,i=e.height/2;switch(s??"crop"){case"cover":{const r=e.width/t.width,n=e.height/t.height;return{scaleX:r,scaleY:n,positionX:a,positionY:i}}case"crop":{const r=Math.max(e.width/t.width,e.height/t.height);return{scaleX:r,scaleY:r,positionX:a,positionY:i}}case"contain":{const r=Math.min(e.width/t.width,e.height/t.height);return{scaleX:r,scaleY:r,positionX:a,positionY:i}}case"none":default:return{scaleX:1,scaleY:1,positionX:a,positionY:i}}}function ou(t){return t/1e3}function vN(t){return t}function Kt(t){return typeof t=="string"&&/^alias:\/\/[a-zA-Z0-9_-]+$/.test(t)}function Ci(t){return t.replace(/^alias:\/\//,"")}let lu=class{static ButtonLeftClick=0;static ButtonRightClick=3};class cu{containerSize;constructor(e){this.containerSize=e}relativeToAbsolute(e,s,a){switch(s){case"topLeft":return{x:a.x*this.containerSize.width,y:-a.y*this.containerSize.height};case"topRight":return{x:(a.x+1)*this.containerSize.width-e.width,y:-a.y*this.containerSize.height};case"bottomLeft":return{x:a.x*this.containerSize.width,y:(-a.y+1)*this.containerSize.height-e.height};case"bottomRight":return{x:(a.x+1)*this.containerSize.width-e.width,y:(-a.y+1)*this.containerSize.height-e.height};case"left":return{x:a.x*this.containerSize.width,y:(-a.y+.5)*this.containerSize.height-e.height/2};case"right":return{x:(a.x+1)*this.containerSize.width-e.width,y:(-a.y+.5)*this.containerSize.height-e.height/2};case"top":return{x:(a.x+.5)*this.containerSize.width-e.width/2,y:-a.y*this.containerSize.height};case"bottom":return{x:(a.x+.5)*this.containerSize.width-e.width/2,y:(-a.y+1)*this.containerSize.height-e.height};case"center":default:return{x:(a.x+.5)*this.containerSize.width-e.width/2,y:(-a.y+.5)*this.containerSize.height-e.height/2}}}absoluteToRelative(e,s,a){switch(s){case"topLeft":return{x:a.x/this.containerSize.width,y:-(a.y/this.containerSize.height)};case"topRight":return{x:(a.x+e.width)/this.containerSize.width-1,y:-(a.y/this.containerSize.height)};case"bottomLeft":return{x:a.x/this.containerSize.width,y:-((a.y+e.height)/this.containerSize.height-1)};case"bottomRight":return{x:(a.x+e.width)/this.containerSize.width-1,y:-((a.y+e.height)/this.containerSize.height-1)};case"left":return{x:a.x/this.containerSize.width,y:-((a.y+e.height/2)/this.containerSize.height-.5)};case"right":return{x:(a.x+e.width)/this.containerSize.width-1,y:-((a.y+e.height/2)/this.containerSize.height-.5)};case"top":return{x:(a.x+e.width/2)/this.containerSize.width-.5,y:-(a.y/this.containerSize.height)};case"bottom":return{x:(a.x+e.width/2)/this.containerSize.width-.5,y:-((a.y+e.height)/this.containerSize.height-1)};case"center":default:return{x:(a.x+e.width/2)/this.containerSize.width-.5,y:-((a.y+e.height/2)/this.containerSize.height-.5)}}}}class fu{container;constructor(){this.container=new X.Container}getContainer(){return this.container}}var Qe=(t=>(t.Video="video",t.Image="image",t.Audio="audio",t.Text="text",t.RichText="rich-text",t.Luma="luma",t.Html="html",t.Shape="shape",t.Caption="caption",t.Svg="svg",t.TextToImage="text-to-image",t.ImageToVideo="image-to-video",t.TextToSpeech="text-to-speech",t))(Qe||{});class xt extends fu{static DiscardedFrameCount=0;layer;shouldDispose;playerType;clipId=null;edit;clipConfiguration;resolvedTiming;positionBuilder;offsetXKeyframeBuilder;offsetYKeyframeBuilder;scaleKeyframeBuilder;opacityKeyframeBuilder;rotationKeyframeBuilder;skewXKeyframeBuilder;skewYKeyframeBuilder;maskXKeyframeBuilder;wipeMask;contentContainer;constructor(e,s,a){super(),this.edit=e,this.layer=0,this.shouldDispose=!1,this.playerType=a,this.clipConfiguration=s,this.positionBuilder=new cu(e.size),this.resolvedTiming={start:s.start,length:s.length},this.wipeMask=null,this.contentContainer=new X.Container,this.getContainer().addChild(this.contentContainer)}reconfigureAfterRestore(){this.configureKeyframes()}async reloadAsset(){}configureKeyframes(){const e=this.getLength(),s=this.clipConfiguration,a=typeof s.offset?.x=="number"?s.offset.x:0,i=typeof s.offset?.y=="number"?s.offset.y:0,r=typeof s.scale=="number"?s.scale:1,n=typeof s.opacity=="number"?s.opacity:1,o=typeof s.transform?.rotate?.angle=="number"?s.transform.rotate.angle:0,l=typeof s.transform?.skew?.x=="number"?s.transform.skew.x:0,c=typeof s.transform?.skew?.y=="number"?s.transform.skew.y:0;if(this.offsetXKeyframeBuilder=new Rs(a,e,"additive"),this.offsetYKeyframeBuilder=new Rs(i,e,"additive"),this.scaleKeyframeBuilder=new Rs(r,e,"multiplicative"),this.opacityKeyframeBuilder=new Rs(n,e,"multiplicative",{min:0,max:1}),this.rotationKeyframeBuilder=new Rs(o,e,"additive"),this.skewXKeyframeBuilder=new Rs(l,e,"additive"),this.skewYKeyframeBuilder=new Rs(c,e,"additive"),this.clipHasKeyframes()){Array.isArray(s.scale)&&this.scaleKeyframeBuilder.addLayer(s.scale),Array.isArray(s.opacity)&&this.opacityKeyframeBuilder.addLayer(s.opacity),Array.isArray(s.offset?.x)&&this.offsetXKeyframeBuilder.addLayer(s.offset.x),Array.isArray(s.offset?.y)&&this.offsetYKeyframeBuilder.addLayer(s.offset.y),Array.isArray(s.transform?.rotate?.angle)&&this.rotationKeyframeBuilder.addLayer(s.transform.rotate.angle),Array.isArray(s.transform?.skew?.x)&&this.skewXKeyframeBuilder.addLayer(s.transform.skew.x),Array.isArray(s.transform?.skew?.y)&&this.skewYKeyframeBuilder.addLayer(s.transform.skew.y);return}const f={...s,start:this.getStart(),length:e},h=new su(f).buildRelative(this.edit.size,this.getSize()),d=new au(f).buildRelative();this.offsetXKeyframeBuilder.addLayer(h.offsetXKeyframes),this.offsetYKeyframeBuilder.addLayer(h.offsetYKeyframes),this.scaleKeyframeBuilder.addLayer(h.scaleKeyframes),this.opacityKeyframeBuilder.addLayer(h.opacityKeyframes),this.rotationKeyframeBuilder.addLayer(h.rotationKeyframes),this.offsetXKeyframeBuilder.addLayer(d.in.offsetXKeyframes),this.offsetYKeyframeBuilder.addLayer(d.in.offsetYKeyframes),this.scaleKeyframeBuilder.addLayer(d.in.scaleKeyframes),this.opacityKeyframeBuilder.addLayer(d.in.opacityKeyframes),this.rotationKeyframeBuilder.addLayer(d.in.rotationKeyframes),this.offsetXKeyframeBuilder.addLayer(d.out.offsetXKeyframes),this.offsetYKeyframeBuilder.addLayer(d.out.offsetYKeyframes),this.scaleKeyframeBuilder.addLayer(d.out.scaleKeyframes),this.opacityKeyframeBuilder.addLayer(d.out.opacityKeyframes),this.rotationKeyframeBuilder.addLayer(d.out.rotationKeyframes);const m=[...d.in.maskXKeyframes,...d.out.maskXKeyframes];m.length&&(this.maskXKeyframeBuilder=new Pa(m,e))}async load(){this.contentContainer?.destroyed&&(this.contentContainer=new X.Container,this.getContainer().addChild(this.contentContainer)),this.getContainer().sortableChildren=!0,this.getContainer().cursor="pointer",this.getContainer().eventMode="static",this.getContainer().on?.("pointerdown",this.onPointerDown.bind(this))}update(e,s){if(this.getContainer().visible=this.isActive(),this.getContainer().zIndex=1e5-this.layer*100,!this.isActive())return;const a=this.getPivot(),i=this.getPosition(),r=this.getContainerScale();this.getContainer().scale.set(r.x,r.y),this.getContainer().pivot.set(a.x,a.y),this.getContainer().position.set(i.x+a.x,i.y+a.y);const n=this.getRotation();this.contentContainer.alpha=this.getOpacity(),this.getContainer().angle=n;const o=this.getSkew();this.getContainer().skew?.set(o.x*(Math.PI/180),o.y*(Math.PI/180)),this.clipConfiguration.width&&this.clipConfiguration.height&&this.applyFixedDimensions(),this.updateWipeMask(),this.shouldDiscardFrame()&&(this.contentContainer.alpha=0)}updateWipeMask(){if(!this.maskXKeyframeBuilder){this.wipeMask&&(this.getContainer().mask=null,this.wipeMask.destroy(),this.wipeMask=null);return}const e=this.maskXKeyframeBuilder.getValue(this.getPlaybackTime()),s=this.getSize();this.wipeMask||(this.wipeMask=new X.Graphics,this.getContainer().addChild(this.wipeMask),this.getContainer().mask=this.wipeMask),this.wipeMask.clear(),this.wipeMask.rect(0,0,s.width*e,s.height),this.wipeMask.fill(16777215)}dispose(){this.wipeMask?.destroy(),this.wipeMask=null,this.contentContainer?.destroy()}getStart(){return this.resolvedTiming.start}getLength(){return this.resolvedTiming.length}getEnd(){return this.resolvedTiming.start+this.resolvedTiming.length}getTimingIntent(){if(this.clipId){const e=this.edit.getDocumentClipById(this.clipId);if(e){let s;e.start==="auto"?s="auto":(Kt(e.start),s=e.start);let a;return e.length==="auto"||e.length==="end"||Kt(e.length),a=e.length,{start:s,length:a}}}return{start:this.clipConfiguration.start,length:this.clipConfiguration.length}}getResolvedTiming(){return{...this.resolvedTiming}}setResolvedTiming(e){this.resolvedTiming={...e},this.clipConfiguration.start=e.start,this.clipConfiguration.length=e.length}getExportableClip(){const e=structuredClone(this.clipConfiguration),s=this.getTimingIntent();return e.start=s.start,e.length=s.length,e}getPlaybackTime(){const e=this.edit.playbackTime-this.getStart();return e<0?0:e>this.getLength()?this.getLength():e}getContentSize(){return this.getSize()}getContentContainer(){return this.contentContainer}getOpacity(){return this.opacityKeyframeBuilder?.getValue(this.getPlaybackTime())??1}getPosition(){const e={x:this.offsetXKeyframeBuilder?.getValue(this.getPlaybackTime())??0,y:this.offsetYKeyframeBuilder?.getValue(this.getPlaybackTime())??0};return this.positionBuilder.relativeToAbsolute(this.getSize(),this.clipConfiguration.position??"center",e)}getPivot(){const e=this.getSize();return{x:e.width/2,y:e.height/2}}calculateMoveOffset(e,s){const a=this.getPosition(),i={x:a.x+e,y:a.y+s},r=this.positionBuilder.absoluteToRelative(this.getSize(),this.clipConfiguration.position??"center",i);return{x:r.x,y:r.y}}getFitScale(){const e={width:this.clipConfiguration.width??this.edit.size.width,height:this.clipConfiguration.height??this.edit.size.height},s=this.getContentSize(),a=this.clipConfiguration.fit??"crop";return iu(s,e,a)}getScale(){return(this.scaleKeyframeBuilder?.getValue(this.getPlaybackTime())??1)*this.getFitScale()}getContainerScale(){const e=this.scaleKeyframeBuilder?.getValue(this.getPlaybackTime())??1,s=this.getContentSize(),a=this.clipConfiguration.fit??"crop",i=!!(this.clipConfiguration.width&&this.clipConfiguration.height);return ru(s,this.edit.size,a,e,i)}getRotation(){return this.rotationKeyframeBuilder?.getValue(this.getPlaybackTime())??0}getSkew(){return{x:this.skewXKeyframeBuilder?.getValue(this.getPlaybackTime())??0,y:this.skewYKeyframeBuilder?.getValue(this.getPlaybackTime())??0}}isActive(){return this.edit.playbackTime>=this.getStart()&&this.edit.playbackTime<this.getEnd()}shouldDiscardFrame(){return this.getPlaybackTime()<xt.DiscardedFrameCount}onPointerDown(e){e.button===lu.ButtonLeftClick&&this.edit.events.emit(ot.CanvasClipClicked,{player:this})}clipHasKeyframes(){return[this.clipConfiguration.scale,this.clipConfiguration.opacity,this.clipConfiguration.offset?.x,this.clipConfiguration.offset?.y,this.clipConfiguration.transform?.rotate?.angle,this.clipConfiguration.transform?.skew?.x,this.clipConfiguration.transform?.skew?.y].some(e=>e&&typeof e!="number")}applyFixedDimensions(){const e=this.clipConfiguration.width,s=this.clipConfiguration.height;if(!e||!s)return;const a=this.contentContainer.children.find(m=>m instanceof X.Sprite);if(!a?.texture)return;const i=a.texture.width,r=a.texture.height,n=this.clipConfiguration.fit||"crop",o=this.contentContainer.mask;let l=null;if(o instanceof X.Graphics?l=o:o||(l=new X.Graphics,this.contentContainer.addChild(l),this.contentContainer.mask=l),l){const{asset:m}=this.clipConfiguration,b=m&&"border"in m&&m.border&&typeof m.border=="object"?m.border.width??0:0,I=b/2;l.clear(),l.rect(-I,-I,e+b,s+b),l.fill(16777215)}const c=this.scaleKeyframeBuilder?.getValue(this.getPlaybackTime())??1;a.anchor.set(.5,.5);const d=nu({width:i,height:r},{width:e,height:s},n);a.scale.set(d.scaleX,d.scaleY),a.position.set(d.positionX,d.positionY),this.contentContainer.scale.set(c,c),this.contentContainer.position.set(e/2*(1-c),s/2*(1-c))}applyAnchorPositioning(e,s,a,i){const r=i.width,n=i.height;if(!!i.mask){i.position.set(0,0);return}const l=(e??"center").toLowerCase();let c=0,f=0;l.includes("left")||l==="left"?c=0:l.includes("right")||l==="right"?c=s-r:c=(s-r)/2,l.includes("top")||l==="top"?f=0:l.includes("bottom")||l==="bottom"?f=a-n:f=(a-n)/2,i.position.set(c,f)}supportsEdgeResize(){return!1}onDimensionsChanged(){}notifyDimensionsChanged(){this.onDimensionsChanged()}}class ki{static Name="AudioLoadParser";id;name;extension;validAudioExtensions;constructor(){this.id=ki.Name,this.name=ki.Name,this.extension={type:[X.ExtensionType.LoadParser],priority:X.LoaderParserPriority.Normal,ref:null},this.validAudioExtensions=["mp3","mpeg","ogg","wav"]}test(e){const s=e.split("?")[0]?.split(".").pop()??"";return this.validAudioExtensions.includes(s)}async load(e,s,a){return new Promise(i=>{const r={src:e},n=new Howl(r);n.on("load",()=>i(n)),n.on("loaderror",()=>i(null))})}unload(e){e?.unload()}}class uu extends xt{audioResource;isPlaying;volumeKeyframeBuilder;syncTimer;constructor(e,s){super(e,s,Qe.Audio),this.audioResource=null,this.isPlaying=!1,this.syncTimer=0}async load(){await super.load();const e=this.clipConfiguration.asset,s=e.src,a={src:s,parser:ki.Name},i=await this.edit.assetLoader.load(s,a);if(!(i instanceof eu.Howl))throw new Error(`Invalid audio source '${e.src}'.`);this.audioResource=i;const n=typeof e.volume=="number"?e.volume:1;this.volumeKeyframeBuilder=new Pa(this.createVolumeKeyframes(e,n),this.getLength(),n),this.configureKeyframes()}update(e,s){super.update(e,s);const{trim:a=0}=this.clipConfiguration.asset;if(this.syncTimer+=s,this.getContainer().alpha=0,!this.audioResource)return;const i=this.edit.isPlaying&&this.isActive(),r=this.getPlaybackTime();i&&(this.isPlaying||(this.isPlaying=!0,this.audioResource.seek(r+a),this.audioResource.play()),this.audioResource.volume()!==this.getVolume()&&this.audioResource.volume(this.getVolume()),Math.abs(this.audioResource.seek()-a-r)>.1&&(this.audioResource.seek(r+a),this.edit.recordSyncCorrection())),this.isPlaying&&!i&&(this.isPlaying=!1,this.audioResource.pause());const n=this.syncTimer>100;!this.edit.isPlaying&&this.isActive()&&n&&(this.syncTimer=0,this.audioResource.seek(r+a))}dispose(){this.audioResource?.unload(),this.audioResource=null}reconfigureAfterRestore(){super.reconfigureAfterRestore();const e=this.clipConfiguration.asset,s=typeof e.volume=="number"?e.volume:1;this.volumeKeyframeBuilder=new Pa(this.createVolumeKeyframes(e,s),this.getLength(),s)}getSize(){return{width:0,height:0}}getVolume(){return this.volumeKeyframeBuilder.getValue(this.getPlaybackTime())}getCurrentDrift(){if(!this.audioResource)return 0;const{trim:e=0}=this.clipConfiguration.asset,s=this.audioResource.seek(),a=this.getPlaybackTime();return Math.abs(s-e-a)}createVolumeKeyframes(e,s){const{effect:a,volume:i}=e;if(!a||a==="none"||Array.isArray(i))return i??1;const r=this.getLength()/1e3,n=Math.min(2,r/2);return a==="fadeIn"?[{from:0,to:s,start:0,length:n}]:a==="fadeOut"?[{from:s,to:0,start:r-n,length:n}]:[{from:0,to:s,start:0,length:n},{from:s,to:0,start:r-n,length:n}]}}function Ni(t){const e=t.trim().replace(",","."),s=e.split(":");if(s.length===3){const a=parseInt(s[0],10),i=parseInt(s[1],10),r=parseFloat(s[2]);return a*3600+i*60+r}if(s.length===2){const a=parseInt(s[0],10),i=parseFloat(s[1]);return a*60+i}return parseFloat(e)||0}function hu(t){const e=[],s=t.split(/\r?\n/);let a=0;for(;a<s.length&&!s[a].includes("-->");)a+=1;for(;a<s.length;){const i=s[a].trim();if(i.includes("-->")){const[r,n]=i.split("-->").map(f=>f.trim().split(" ")[0]),o=Ni(r),l=Ni(n),c=[];for(a+=1;a<s.length&&s[a].trim()!==""&&!s[a].includes("-->");){const f=s[a].trim();f.startsWith("NOTE")||c.push(f),a+=1}c.length>0&&e.push({start:o,end:l,text:c.join(`
|
|
2
2
|
`)})}else a+=1}return e}function du(t){const e=[],s=t.split(/\r?\n/);let a=0;for(;a<s.length;){const i=s[a].trim();if(/^\d+$/.test(i)||i==="")a+=1;else if(i.includes("-->")){const[r,n]=i.split("-->").map(f=>f.trim()),o=Ni(r),l=Ni(n),c=[];for(a+=1;a<s.length&&s[a].trim()!=="";)c.push(s[a].trim()),a+=1;c.length>0&&e.push({start:o,end:l,text:c.join(`
|
|
3
3
|
`)})}else a+=1}return e}function gu(t){return t.trim().startsWith("WEBVTT")?hu(t):du(t)}function pu(t,e){return t.find(s=>e>=s.start&&e<=s.end)??null}const mu=`
|
|
4
4
|
let transcriber = null;
|
|
@@ -230,9 +230,9 @@ fn outlineMaxAlphaAtPos(uv: vec2<f32>) -> f32 {
|
|
|
230
230
|
return maxAlpha;
|
|
231
231
|
}
|
|
232
232
|
|
|
233
|
-
const DOUBLE_PI: f32 = 3.14159265358979323846264 * 2.;`,Pu=Object.defineProperty,Eu=(t,e,s)=>e in t?Pu(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,zs=(t,e,s)=>(Eu(t,typeof e!="symbol"?e+"":e,s),s);const Si=class ea extends jt.Filter{constructor(...e){let s=e[0]??{};typeof s=="number"&&(jt.deprecation("6.0.0","OutlineFilter constructor params are now options object. See params: { thickness, color, quality, alpha, knockout }"),s={thickness:s},e[1]!==void 0&&(s.color=e[1]),e[2]!==void 0&&(s.quality=e[2]),e[3]!==void 0&&(s.alpha=e[3]),e[4]!==void 0&&(s.knockout=e[4])),s={...ea.DEFAULT_OPTIONS,...s};const a=s.quality??.1,i=jt.GpuProgram.from({vertex:{source:_u,entryPoint:"mainVertex"},fragment:{source:Tu,entryPoint:"mainFragment"}}),r=jt.GlProgram.from({vertex:Iu,fragment:Fu.replace(/\$\{ANGLE_STEP\}/,ea.getAngleStep(a).toFixed(7)),name:"outline-filter"});super({gpuProgram:i,glProgram:r,resources:{outlineUniforms:{uThickness:{value:new Float32Array(2),type:"vec2<f32>"},uColor:{value:new Float32Array(3),type:"vec3<f32>"},uAlpha:{value:s.alpha,type:"f32"},uAngleStep:{value:0,type:"f32"},uKnockout:{value:s.knockout?1:0,type:"f32"}}}}),zs(this,"uniforms"),zs(this,"_thickness"),zs(this,"_quality"),zs(this,"_color"),this.uniforms=this.resources.outlineUniforms.uniforms,this.uniforms.uAngleStep=ea.getAngleStep(a),this._color=new jt.Color,this.color=s.color??0,Object.assign(this,s)}apply(e,s,a,i){this.uniforms.uThickness[0]=this.thickness/s.source.width,this.uniforms.uThickness[1]=this.thickness/s.source.height,e.applyFilter(this,s,a,i)}static getAngleStep(e){return parseFloat((Math.PI*2/Math.max(e*ea.MAX_SAMPLES,ea.MIN_SAMPLES)).toFixed(7))}get thickness(){return this._thickness}set thickness(e){this._thickness=this.padding=e}get color(){return this._color.value}set color(e){this._color.setValue(e);const[s,a,i]=this._color.toArray();this.uniforms.uColor[0]=s,this.uniforms.uColor[1]=a,this.uniforms.uColor[2]=i}get alpha(){return this.uniforms.uAlpha}set alpha(e){this.uniforms.uAlpha=e}get quality(){return this._quality}set quality(e){this._quality=e,this.uniforms.uAngleStep=ea.getAngleStep(e)}get knockout(){return this.uniforms.uKnockout===1}set knockout(e){this.uniforms.uKnockout=e?1:0}};zs(Si,"DEFAULT_OPTIONS",{thickness:1,color:0,alpha:1,quality:.1,knockout:!1}),zs(Si,"MIN_SAMPLES",1),zs(Si,"MAX_SAMPLES",100);let Oa=Si;class Vi extends xt{static loadedFonts=new Set;cues=[];currentCue=null;background=null;text=null;vttBlobUrl=null;pendingTranscription=null;isTranscribing=!1;constructor(e,s){super(e,s,Qe.Caption)}async load(){await super.load();const e=this.clipConfiguration.asset,s=e.font?.family??"Open Sans";if(await this.loadFont(s),bu(e.src)?(this.isTranscribing=!0,this.pendingTranscription=this.loadTranscriptionInBackground(e.src)):await this.loadSubtitles(e.src),this.background=new X.Graphics,this.contentContainer.addChild(this.background),this.text=new X.Text({text:"",style:this.createTextStyle(e)}),this.text.visible=!1,e.stroke?.width&&e.stroke.width>0&&e.stroke.color){const a=new Oa({thickness:e.stroke.width,color:e.stroke.color});this.text.filters=[a]}this.contentContainer.addChild(this.text),this.configureKeyframes()}async loadTranscriptionInBackground(e){const s=this.clipConfiguration.alias??"";try{const a=this.edit.getResolvedEdit();if(!a)throw new Error("Cannot resolve alias: edit not loaded");const i=await Cu(e,a,o=>{this.edit.events.emit(ce.TranscriptionProgress,{clipAlias:s,...o})});this.vttBlobUrl=i.vttUrl;const r={src:i.vttUrl,parser:Ea.Name},n=await this.edit.assetLoader.load(i.vttUrl,r);n&&(this.cues=n.cues),this.isTranscribing=!1,this.edit.events.emit(ce.TranscriptionCompleted,{clipAlias:s,cueCount:this.cues.length})}catch(a){this.isTranscribing=!1,console.error("Failed to transcribe:",a),this.edit.events.emit(ce.TranscriptionFailed,{clipAlias:s,error:a instanceof Error?a.message:"Transcription failed"})}}isTranscriptionPending(){return this.isTranscribing}async waitForTranscription(){this.pendingTranscription&&await this.pendingTranscription}update(e,s){if(super.update(e,s),!this.text)return;const a=this.clipConfiguration.asset,i=a.trim??0,r=this.getPlaybackTime()+i,n=pu(this.cues,r);n!==this.currentCue&&(this.currentCue=n,this.updateDisplay(n,a))}dispose(){super.dispose(),this.background?.destroy(),this.background=null,this.text?.destroy(),this.text=null,this.vttBlobUrl&&(ku(this.vttBlobUrl),this.vttBlobUrl=null),this.cues=[],this.currentCue=null}getSize(){const e=this.clipConfiguration.asset;return{width:this.clipConfiguration.width??e.width??this.edit.size.width,height:this.clipConfiguration.height??e.height??this.edit.size.height}}getFitScale(){return 1}getContainerScale(){const e=this.getScale();return{x:e,y:e}}async loadSubtitles(e){try{const s={src:e,parser:Ea.Name},a=await this.edit.assetLoader.load(e,s);a?this.cues=a.cues:(console.error("Failed to load subtitles"),this.cues=[])}catch(s){console.error("Failed to load subtitles:",s),this.cues=[]}}createTextStyle(e){const s=e.font?.family??"Open Sans",{baseFontFamily:a,fontWeight:i}=Dt(s),r=e.font?.size??32,{width:n}=this.getSize();return new X.TextStyle({fontFamily:a,fontSize:r,fill:e.font?.color??"#ffffff",fontWeight:i.toString(),wordWrap:!0,wordWrapWidth:n*.9,lineHeight:(e.font?.lineHeight??1.2)*r,align:e.alignment?.horizontal??"center"})}updateDisplay(e,s){if(!(!this.text||!this.background)){if(!e){this.text.visible=!1,this.background.clear();return}this.text.text=e.text,this.text.visible=!0,this.positionText(s),this.drawBackground(s)}}positionText(e){if(!this.text)return;const s=e.alignment?.horizontal??"center",a=e.alignment?.vertical??"bottom",{width:i,height:r}=this.getSize(),n=e.background?.padding??10;let o=i/2-this.text.width/2;s==="left"?o=n:s==="right"&&(o=i-this.text.width-n);let l=r*.9;a==="top"?l=n:a==="center"&&(l=r/2-this.text.height/2),this.text.position.set(o,l)}drawBackground(e){if(!this.background||!this.text||!this.text.visible){this.background?.clear();return}const s=e.background;if(!s?.color){this.background.clear();return}const a=s.padding??10,i=s.borderRadius??4,r=this.text.x-a,n=this.text.y-a,o=this.text.width+a*2,l=this.text.height+a*2;this.background.clear(),this.background.fillStyle={color:s.color,alpha:s.opacity??.8},i>0?this.background.roundRect(r,n,o,l,i):this.background.rect(r,n,o,l),this.background.fill()}async loadFont(e){const{baseFontFamily:s,fontWeight:a}=Dt(e),i=`${s}-${a}`;if(Vi.loadedFonts.has(i))return;const r=qr(e);if(r){const n=new FontFace(s,`url(${r})`,{weight:a.toString()});await n.load(),document.fonts.add(n),Vi.loadedFonts.add(i)}}}class Ou extends xt{background;text;constructor(e,s){super(e,s,Qe.Html),this.background=null,this.text=null}async load(){await super.load();const e=this.clipConfiguration.asset,s=await this.parseDocument();if(!s)return;const a=new X.Graphics;s.background.color&&(a.fillStyle={color:s.background.color,alpha:s.background.opacity??1},a.rect(0,0,e.width??this.edit.size.width,e.height??this.edit.size.height),a.fill());const i=new X.Text;i.text=s.text;const{horizontal:r,vertical:n}=s.alignment;i.style={fontFamily:s.font?.family??"Open Sans",fontSize:s.font?.size??32,fill:s.font?.color??"#ffffff",fontWeight:(s.font?.weight??"400").toString(),wordWrap:!0,wordWrapWidth:e.width??this.edit.size.width,lineHeight:(s.font?.lineHeight??1)*(s.font?.size??32),align:r};let o=(e.width??this.edit.size.width)/2-i.width/2,l=(e.height??this.edit.size.height)/2-i.height/2;if(r==="left"&&(o=0),r==="right"&&(o=(e.width??this.edit.size.width)-i.width),n==="top"&&(l=0),n==="bottom"&&(l=(e.height??this.edit.size.height)-i.height),i.position={x:o,y:l},s.stroke.color&&s.stroke.width){const c=new Oa({thickness:s.stroke.width,color:s.stroke.color});i.filters=[c]}this.background=a,this.text=i,this.contentContainer.addChild(a),this.contentContainer.addChild(i),this.configureKeyframes()}update(e,s){super.update(e,s)}dispose(){super.dispose(),this.background?.destroy(),this.background=null,this.text?.destroy(),this.text=null}getSize(){const e=this.clipConfiguration.asset;return{width:e.width??this.edit.size.width,height:e.height??this.edit.size.height}}getFitScale(){return 1}async parseDocument(){const e=this.clipConfiguration.asset,{html:s,css:a="",position:i}=e;if(!s.includes('data-html-type="text"'))return console.warn("Unsupported html format."),null;const n=new DOMParser().parseFromString(s,"text/html").body.textContent??"",l=(await new CSSStyleSheet().replace(a)).cssRules[0],c={text:n,font:{},alignment:{},background:{},stroke:{}};if(l?.constructor.name!=="CSSStyleRule"||!("style"in l))return console.warn("Unsupported css format."),c;const f=l.style,h=this.parseAlignment(i??"center");c.font={color:f.color.length?f.color:void 0,family:f.fontFamily.length?f.fontFamily:void 0,size:f.fontSize.length?parseInt(f.fontSize,10):void 0,weight:f.fontWeight.length?parseInt(f.fontWeight,10):void 0,lineHeight:f.lineHeight.length?parseInt(f.lineHeight,10):void 0},c.alignment=h;let d="";return f.background.length&&(d=f.background),f.backgroundColor.length&&(d=f.backgroundColor),c.background={color:d.length?d:void 0,opacity:f.opacity.length?parseInt(f.opacity,10):void 0},c.stroke={width:f.strokeWidth.length?parseInt(f.strokeWidth,10):void 0,color:f.stroke.length?f.stroke:void 0},c}parseAlignment(e){switch(e){case"topLeft":return{horizontal:"left",vertical:"top"};case"top":return{horizontal:"center",vertical:"top"};case"topRight":return{horizontal:"right",vertical:"top"};case"left":return{horizontal:"left",vertical:"center"};case"right":return{horizontal:"right",vertical:"center"};case"bottomLeft":return{horizontal:"left",vertical:"bottom"};case"bottom":return{horizontal:"center",vertical:"bottom"};case"bottomRight":return{horizontal:"right",vertical:"bottom"};case"center":default:return{horizontal:"center",vertical:"center"}}}}class Mu extends xt{texture;sprite;constructor(e,s){super(e,s,Qe.Image),this.texture=null,this.sprite=null}async load(){await super.load(),await this.loadTexture(),this.configureKeyframes()}update(e,s){super.update(e,s)}dispose(){super.dispose(),this.disposeTexture()}getSize(){return this.clipConfiguration.width&&this.clipConfiguration.height?{width:this.clipConfiguration.width,height:this.clipConfiguration.height}:{width:this.sprite?.width??0,height:this.sprite?.height??0}}getContentSize(){return{width:this.sprite?.width??0,height:this.sprite?.height??0}}async reloadAsset(){this.disposeTexture(),await this.loadTexture()}async loadTexture(){const e=this.clipConfiguration.asset,{src:s}=e,a=`${s}${s.includes("?")?"&":"?"}x-cors=1`,i={src:a,crossorigin:"anonymous",data:{}},r=await this.edit.assetLoader.load(a,i);if(!(r?.source instanceof X.ImageSource))throw r&&r.destroy(!0),new Error(`Invalid image source '${s}'.`);this.texture=this.createCroppedTexture(r),this.sprite=new X.Sprite(this.texture),this.contentContainer.addChild(this.sprite),this.clipConfiguration.width&&this.clipConfiguration.height&&this.applyFixedDimensions()}disposeTexture(){this.sprite&&(this.contentContainer.removeChild(this.sprite),this.sprite.destroy(),this.sprite=null),this.texture=null}supportsEdgeResize(){return!0}createCroppedTexture(e){const s=this.clipConfiguration.asset;if(!s.crop)return e;const a=e.width,i=e.height,r=Math.floor((s.crop?.left??0)*a),n=Math.floor((s.crop?.right??0)*a),o=Math.floor((s.crop?.top??0)*i),l=Math.floor((s.crop?.bottom??0)*i),c=r,f=o,h=a-r-n,d=i-o-l,m=new X.Rectangle(c,f,h,d);return new X.Texture({source:e.source,frame:m})}}const Ru=new Set(["text-to-image","image-to-video","text-to-speech"]);function ta(t){return typeof t=="object"&&t!==null&&"type"in t&&typeof t.type=="string"&&Ru.has(t.type)}function Jr(t){return"id"in t&&typeof t.id=="string"}const Ro=new WeakMap;function zu(t){let e=Ro.get(t);return e||(e=[...t].sort((s,a)=>s.start-a.start),Ro.set(t,e)),e}function zo(t,e){const s=t.find(n=>Jr(n)&&n.id===e);if(!s||!Jr(s)||!s.asset||!ta(s.asset))return null;const a=s.asset.type,i=zu(t);let r=0;for(const n of i){if(Jr(n)&&n.id===e)break;n.asset&&ta(n.asset)&&n.asset.type===a&&(r+=1)}return r+1}function Lu(t){const e=t*137.5%360;return[e,(e+30)%360,(e+60)%360,(e+90)%360,(e+120)%360]}function Ma(t,e,s){const a=t/360,i=e/100,r=s/100;let n,o,l;{const d=(V,M,E)=>{let I=E;return I<0&&(I+=1),I>1&&(I-=1),I<.16666666666666666?V+(M-V)*6*I:I<.5?M:I<.6666666666666666?V+(M-V)*(.6666666666666666-I)*6:V},m=r+i-r*i,b=2*r-m;n=d(b,m,a+1/3),o=d(b,m,a),l=d(b,m,a-1/3)}const c=Math.round(n*255)*65536,f=Math.round(o*255)*256,h=Math.round(l*255);return c+f+h}function Du(t){return{"text-to-image":"Image","image-to-video":"Video","text-to-speech":"Audio"}[t]||t}function Bu(t,e=60){return t.length<=e?t:`${t.substring(0,e-3)}...`}const Uu={image:"M20.7134 8.12811L20.4668 8.69379C20.2864 9.10792 19.7136 9.10792 19.5331 8.69379L19.2866 8.12811C18.8471 7.11947 18.0555 6.31641 17.0677 5.87708L16.308 5.53922C15.8973 5.35653 15.8973 4.75881 16.308 4.57612L17.0252 4.25714C18.0384 3.80651 18.8442 2.97373 19.2761 1.93083L19.5293 1.31953C19.7058 0.893489 20.2942 0.893489 20.4706 1.31953L20.7238 1.93083C21.1558 2.97373 21.9616 3.80651 22.9748 4.25714L23.6919 4.57612C24.1027 4.75881 24.1027 5.35653 23.6919 5.53922L22.9323 5.87708C21.9445 6.31641 21.1529 7.11947 20.7134 8.12811ZM2.9918 3H14V5H4V19L13.2923 9.70649C13.6828 9.31595 14.3159 9.31591 14.7065 9.70641L20 15.0104V11H22V20.0066C22 20.5552 21.5447 21 21.0082 21H2.9918C2.44405 21 2 20.5551 2 20.0066V3.9934C2 3.44476 2.45531 3 2.9918 3ZM8 11C6.89543 11 6 10.1046 6 9C6 7.89543 6.89543 7 8 7C9.10457 7 10 7.89543 10 9C10 10.1046 9.10457 11 8 11Z",video:"M19.7134 8.12811L19.4668 8.69379C19.2864 9.10792 18.7136 9.10792 18.5331 8.69379L18.2866 8.12811C17.8471 7.11947 17.0555 6.31641 16.0677 5.87708L15.308 5.53922C14.8973 5.35653 14.8973 4.75881 15.308 4.57612L16.0252 4.25714C17.0384 3.80651 17.8442 2.97373 18.2761 1.93083L18.5293 1.31953C18.7058 0.893489 19.2942 0.893489 19.4706 1.31953L19.7238 1.93083C20.1558 2.97373 20.9616 3.80651 21.9748 4.25714L22.6919 4.57612C23.1027 4.75881 23.1027 5.35653 22.6919 5.53922L21.9323 5.87708C20.9445 6.31641 20.1529 7.11947 19.7134 8.12811ZM19 11C19.7013 11 20.3744 10.8797 21 10.6586V20.0066C21 20.5552 20.5551 21 20.0066 21H3.9934C3.44476 21 3 20.5551 3 20.0066V3.9934C3 3.44476 3.44495 3 3.9934 3H13.3414C13.1203 3.62556 13 4.29873 13 5C13 8.31371 15.6863 11 19 11ZM10.6219 8.41459C10.5562 8.37078 10.479 8.34741 10.4 8.34741C10.1791 8.34741 10 8.52649 10 8.74741V15.2526C10 15.3316 10.0234 15.4088 10.0672 15.4745C10.1897 15.6583 10.4381 15.708 10.6219 15.5854L15.5008 12.3328C15.5447 12.3035 15.5824 12.2658 15.6117 12.2219C15.7343 12.0381 15.6846 11.7897 15.5008 11.6672L10.6219 8.41459Z",mic:"M20.4668 7.69379L20.7134 7.12811C21.1529 6.11947 21.9445 5.31641 22.9323 4.87708L23.6919 4.53922C24.1027 4.35653 24.1027 3.75881 23.6919 3.57612L22.9748 3.25714C21.9616 2.80651 21.1558 1.97373 20.7238 0.930828L20.4706 0.319534C20.2942 -0.106511 19.7058 -0.106511 19.5293 0.319534L19.2761 0.930828C18.8442 1.97373 18.0384 2.80651 17.0252 3.25714L16.308 3.57612C15.8973 3.75881 15.8973 4.35653 16.308 4.53922L17.0677 4.87708C18.0555 5.31641 18.8471 6.11947 19.2866 7.12811L19.5331 7.69379C19.7136 8.10792 20.2864 8.10792 20.4668 7.69379ZM14.3869 5.33879C14.661 5.77254 15.0357 6.09305 15.5111 6.30032L16.0764 6.54679C16.4565 6.71249 16.7643 6.94524 16.9998 7.24503V10C16.9998 12.7614 14.7612 15 11.9998 15C9.23833 15 6.99976 12.7614 6.99976 10V6C6.99976 3.23858 9.23833 1 11.9998 1C13.1238 1 14.1613 1.37094 14.9964 1.99709C14.7563 2.17678 14.5531 2.39813 14.3869 2.66114C14.129 3.06938 14 3.51566 14 3.99997C14 4.48428 14.129 4.93056 14.3869 5.33879ZM3.05469 11H5.07065C5.55588 14.3923 8.47329 17 11.9998 17C15.5262 17 18.4436 14.3923 18.9289 11H20.9448C20.4837 15.1716 17.1714 18.4839 12.9998 18.9451V23H10.9998V18.9451C6.82814 18.4839 3.51584 15.1716 3.05469 11Z"};function Zu(t,e,s,a){let i=0;for(const[r,n,o]of a)i+=Math.sin(t*r+e*o+s)*n;return i}function Gu(t){if(t===void 0)return[{color:440020,baseAlpha:.12,baseY:.35,rayHeight:.45,phase:0,scrollSpeed:.08,waves:[[2,.08,.15],[4.5,.04,.25],[9,.015,.4]]},{color:1096065,baseAlpha:.18,baseY:.3,rayHeight:.5,phase:1.2,scrollSpeed:.12,waves:[[1.5,.1,.18],[3.8,.05,.3],[8,.02,.5],[14,.008,.7]]},{color:3462041,baseAlpha:.15,baseY:.28,rayHeight:.35,phase:2.8,scrollSpeed:.1,waves:[[2.2,.07,.2],[5.5,.035,.35],[11,.012,.55]]},{color:8141549,baseAlpha:.14,baseY:.45,rayHeight:.4,phase:4.1,scrollSpeed:.09,waves:[[1.8,.09,.12],[4.2,.045,.28],[9.5,.018,.45]]},{color:15485081,baseAlpha:.1,baseY:.5,rayHeight:.3,phase:5.5,scrollSpeed:.14,waves:[[2.5,.06,.22],[6,.03,.38],[12,.01,.6]]}];const e=Lu(t);return[{color:Ma(e[0],70,50),baseAlpha:.12,baseY:.35,rayHeight:.45,phase:0,scrollSpeed:.08,waves:[[2,.08,.15],[4.5,.04,.25],[9,.015,.4]]},{color:Ma(e[1],70,50),baseAlpha:.18,baseY:.3,rayHeight:.5,phase:1.2,scrollSpeed:.12,waves:[[1.5,.1,.18],[3.8,.05,.3],[8,.02,.5],[14,.008,.7]]},{color:Ma(e[2],70,50),baseAlpha:.15,baseY:.28,rayHeight:.35,phase:2.8,scrollSpeed:.1,waves:[[2.2,.07,.2],[5.5,.035,.35],[11,.012,.55]]},{color:Ma(e[3],70,50),baseAlpha:.14,baseY:.45,rayHeight:.4,phase:4.1,scrollSpeed:.09,waves:[[1.8,.09,.12],[4.2,.045,.28],[9.5,.018,.45]]},{color:Ma(e[4],70,50),baseAlpha:.1,baseY:.5,rayHeight:.3,phase:5.5,scrollSpeed:.14,waves:[[2.5,.06,.22],[6,.03,.38],[12,.01,.6]]}]}const Qr=64,Xt=72,Lo=42;class $r{constructor(e){this.options=e,this.container=new X.Container,this.build(),this.startAnimation()}container;layers=[];auroraLayer;time=0;rafId=null;lastTime=null;getContainer(){return this.container}resize(e,s){e===this.options.width&&s===this.options.height||(this.options.width=e,this.options.height=s,this.rebuild())}dispose(){this.stopAnimation(),this.container.destroy({children:!0})}rebuild(){this.container.removeChildren(),this.layers=[],this.build()}startAnimation(){const e=s=>{if(this.lastTime!==null){const a=(s-this.lastTime)/1e3;this.time+=a,this.drawAurora()}this.lastTime=s,this.rafId=requestAnimationFrame(e)};this.rafId=requestAnimationFrame(e)}stopAnimation(){this.rafId!==null&&(cancelAnimationFrame(this.rafId),this.rafId=null)}build(){const{mode:e,width:s,height:a}=this.options;if(e==="panel"){const o=new X.Graphics;o.roundRect(0,0,s,a,4),o.fill({color:"#1E1B2E",alpha:1}),this.container.addChild(o)}else{const o=new X.Graphics;o.rect(0,0,s,a),o.fill({color:"#000000",alpha:.25}),this.container.addChild(o)}this.auroraLayer=new X.Container,this.layers=Gu(this.options.assetNumber).map(o=>{const l=new X.Graphics;return this.auroraLayer.addChild(l),{...o,graphics:l}});const i=Math.min(Math.max(Math.min(s,a)*.04,12),40),r=new X.BlurFilter({strength:i,quality:4});this.auroraLayer.filters=[r];const n=new X.Graphics;e==="panel"?n.roundRect(0,0,s,a,4):n.rect(0,0,s,a),n.fill({color:"#ffffff"}),this.auroraLayer.addChild(n),this.auroraLayer.mask=n,this.container.addChild(this.auroraLayer),this.drawAurora(),this.buildBadge()}drawAurora(){const{width:e,height:s}=this.options,a=this.time,i=e/Qr;for(const r of this.layers){r.graphics.clear();const n=Math.sin(a*.3+r.phase*1.7)*.5+.5,o=r.baseAlpha*(.7+.3*n),l=a*r.scrollSpeed;for(let c=0;c<Qr;c+=1){const h=c/Qr*Math.PI*2+l,d=Zu(h,a,r.phase,r.waves),m=(r.baseY+d)*s,b=.6+.4*Math.sin(h*3.7+a*.2+r.phase*2.3),V=r.rayHeight*s*b,M=.4+.6*(Math.sin(h*5+a*.15+r.phase*3.1)*.5+.5)**.7,E=o*M,I=c*i;r.graphics.rect(I,m,i+1,V),r.graphics.fill({color:r.color,alpha:E})}}}buildBadge(){const{width:e,height:s,icon:a,assetNumber:i,prompt:r,assetType:n}=this.options,o=new X.Container;o.position.set(e/2-Xt/2,s/2-Xt/2);const l=new X.Graphics;l.circle(Xt/2,Xt/2,Xt/2),l.fill({color:"#000000",alpha:.5}),o.addChild(l);const c=new X.Graphics;c.svg(`<svg viewBox="0 0 24 24"><path d="${Uu[a]}" fill="#C084FC" /></svg>`);const f=Lo/24,h=(Xt-Lo)/2;if(c.scale.set(f,f),c.position.set(h,h),o.addChild(c),i!==void 0){const d=n?Du(n):"",m=d?`${d} ${i}`:String(i),b=new X.Text({text:m,style:{fontFamily:"Arial",fontSize:18,fontWeight:"bold",fill:"#ffffff"}});b.anchor.set(.5,.5),b.position.set(Xt/2,Xt+15),o.addChild(b)}if(r){const d=Bu(r,60),m=new X.Text({text:d,style:{fontFamily:"Arial",fontSize:16,fontWeight:"normal",fill:"#ffffff",align:"center",wordWrap:!0,wordWrapWidth:e*.8,lineHeight:20}});m.anchor.set(.5,0),m.position.set(Xt/2,Xt+40),o.addChild(m)}this.container.addChild(o)}}function Do(t,e){const s=new X.Graphics;return s.fillStyle={color:"#cccccc",alpha:.5},s.rect(0,0,t,e),s.fill(),s.strokeStyle={color:"#999999",width:2},s.moveTo(0,0),s.lineTo(t,e),s.moveTo(t,0),s.lineTo(0,e),s.stroke(),s}class Wu extends xt{sprite=null;texture=null;placeholder=null;aiOverlay=null;constructor(e,s){super(e,s,Qe.ImageToVideo)}async load(){await super.load();const e=this.getDisplaySize(),s=this.edit.getResolvedEdit()?.timeline.tracks.flatMap(o=>o.clips)??[],a=zo(s,this.clipId??""),{asset:i}=this.clipConfiguration,r=ta(i)&&i.prompt||"",n=ta(i)?i.type:"image-to-video";try{await this.loadTexture(),this.aiOverlay=new $r({mode:"badge",icon:"video",width:e.width,height:e.height,assetNumber:a??void 0,prompt:r,assetType:n})}catch{this.placeholder=Do(e.width,e.height),this.contentContainer.addChild(this.placeholder),this.aiOverlay=new $r({mode:"panel",icon:"video",width:e.width,height:e.height,assetNumber:a??void 0,prompt:r,assetType:n})}this.contentContainer.addChild(this.aiOverlay.getContainer()),this.configureKeyframes()}update(e,s){super.update(e,s);const a=this.getDisplaySize();this.aiOverlay?.resize(a.width,a.height);const i=this.aiOverlay?.getContainer();if(i){const r=this.getContainerScale(),n=this.getSize();i.scale.set(1/r.x,1/r.y),i.position.set(n.width/2-a.width/(2*r.x),n.height/2-a.height/(2*r.y))}}getSize(){return this.clipConfiguration.width&&this.clipConfiguration.height?{width:this.clipConfiguration.width,height:this.clipConfiguration.height}:{width:this.sprite?.width||this.edit.size.width,height:this.sprite?.height||this.edit.size.height}}dispose(){this.sprite&&(this.contentContainer.removeChild(this.sprite),this.sprite.destroy(),this.sprite=null),this.texture=null,this.placeholder?.destroy(),this.placeholder=null,this.aiOverlay?.dispose(),this.aiOverlay=null,super.dispose()}getDisplaySize(){return{width:this.clipConfiguration.width??this.edit.size.width,height:this.clipConfiguration.height??this.edit.size.height}}async loadTexture(){const e=this.clipConfiguration.asset,{src:s}=e,a=`${s}${s.includes("?")?"&":"?"}x-cors=1`,i={src:a,crossorigin:"anonymous",data:{}},r=await this.edit.assetLoader.load(a,i);if(!(r?.source instanceof X.ImageSource))throw r&&r.destroy(!0),new Error(`Invalid image source '${s}'.`);this.texture=r,this.sprite=new X.Sprite(this.texture),this.contentContainer.addChild(this.sprite),this.clipConfiguration.width&&this.clipConfiguration.height&&this.applyFixedDimensions()}}class Yu extends xt{texture;sprite;isPlaying;constructor(e,s){super(e,s,Qe.Luma),this.texture=null,this.sprite=null,this.isPlaying=!1}async load(){await super.load();const e=this.clipConfiguration.asset,s=e.src,a={src:s,data:{autoPlay:!1,muted:!0}},i=await this.edit.assetLoader.load(s,a);if(!(i?.source instanceof X.ImageSource||i?.source instanceof X.VideoSource))throw i&&this.edit.assetLoader.decrementRef(s),new Error(`Invalid luma source '${e.src}'.`);i.source instanceof X.VideoSource&&(i.source.alphaMode="no-premultiply-alpha"),this.texture=i,this.sprite=new X.Sprite(this.texture),this.contentContainer.addChild(this.sprite),this.configureKeyframes()}update(e,s){if(super.update(e,s),!this.texture||!(this.texture.source instanceof X.VideoSource))return;const a=this.getPlaybackTime(),i=this.edit.isPlaying&&this.isActive();i&&(this.isPlaying||(this.isPlaying=!0,this.texture.source.resource.currentTime=a,this.texture.source.resource.play().catch(console.error)),this.texture.source.resource.volume!==this.getVolume()&&(this.texture.source.resource.volume=this.getVolume()),Math.abs(this.texture.source.resource.currentTime-a)>.1&&(this.texture.source.resource.currentTime=a)),!i&&this.isPlaying&&(this.isPlaying=!1,this.texture.source.resource.pause()),!this.edit.isPlaying&&this.isActive()&&(this.texture.source.resource.currentTime=a)}dispose(){super.dispose(),this.sprite?.destroy(),this.sprite=null,this.texture=null}getSize(){return this.clipConfiguration.width&&this.clipConfiguration.height?{width:this.clipConfiguration.width,height:this.clipConfiguration.height}:{width:this.sprite?.width??0,height:this.sprite?.height??0}}getVolume(){return 0}getSprite(){return this.sprite}isVideoSource(){return this.texture?.source instanceof X.VideoSource}getVideoCurrentTime(){return this.texture?.source instanceof X.VideoSource?this.texture.source.resource.currentTime:-1}}function L(t,e,s){function a(o,l){if(o._zod||Object.defineProperty(o,"_zod",{value:{def:l,constr:n,traits:new Set},enumerable:!1}),o._zod.traits.has(t))return;o._zod.traits.add(t),e(o,l);const c=n.prototype,f=Object.keys(c);for(let h=0;h<f.length;h++){const d=f[h];d in o||(o[d]=c[d].bind(o))}}const i=s?.Parent??Object;class r extends i{}Object.defineProperty(r,"name",{value:t});function n(o){var l;const c=s?.Parent?new r:this;a(c,o),(l=c._zod).deferred??(l.deferred=[]);for(const f of c._zod.deferred)f();return c}return Object.defineProperty(n,"init",{value:a}),Object.defineProperty(n,Symbol.hasInstance,{value:o=>s?.Parent&&o instanceof s.Parent?!0:o?._zod?.traits?.has(t)}),Object.defineProperty(n,"name",{value:t}),n}class sa extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class Bo extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}}const Uo={};function bs(t){return Uo}function Zo(t){const e=Object.values(t).filter(a=>typeof a=="number");return Object.entries(t).filter(([a,i])=>e.indexOf(+a)===-1).map(([a,i])=>i)}function en(t,e){return typeof e=="bigint"?e.toString():e}function Ii(t){return{get value(){{const e=t();return Object.defineProperty(this,"value",{value:e}),e}}}}function tn(t){return t==null}function sn(t){const e=t.startsWith("^")?1:0,s=t.endsWith("$")?t.length-1:t.length;return t.slice(e,s)}function Hu(t,e){const s=(t.toString().split(".")[1]||"").length,a=e.toString();let i=(a.split(".")[1]||"").length;if(i===0&&/\d?e-\d?/.test(a)){const l=a.match(/\d?e-(\d?)/);l?.[1]&&(i=Number.parseInt(l[1]))}const r=s>i?s:i,n=Number.parseInt(t.toFixed(r).replace(".","")),o=Number.parseInt(e.toFixed(r).replace(".",""));return n%o/10**r}const Go=Symbol("evaluating");function Me(t,e,s){let a;Object.defineProperty(t,e,{get(){if(a!==Go)return a===void 0&&(a=Go,a=s()),a},set(i){Object.defineProperty(t,e,{value:i})},configurable:!0})}function Ls(t,e,s){Object.defineProperty(t,e,{value:s,writable:!0,enumerable:!0,configurable:!0})}function ws(...t){const e={};for(const s of t){const a=Object.getOwnPropertyDescriptors(s);Object.assign(e,a)}return Object.defineProperties({},e)}function Wo(t){return JSON.stringify(t)}function ju(t){return t.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}const Yo="captureStackTrace"in Error?Error.captureStackTrace:(...t)=>{};function Ra(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}const Ku=Ii(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{const t=Function;return new t(""),!0}catch{return!1}});function aa(t){if(Ra(t)===!1)return!1;const e=t.constructor;if(e===void 0||typeof e!="function")return!0;const s=e.prototype;return!(Ra(s)===!1||Object.prototype.hasOwnProperty.call(s,"isPrototypeOf")===!1)}function Ho(t){return aa(t)?{...t}:Array.isArray(t)?[...t]:t}const Xu=new Set(["string","number","symbol"]);function ia(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function vs(t,e,s){const a=new t._zod.constr(e??t._zod.def);return(!e||s?.parent)&&(a._zod.parent=t),a}function oe(t){const e=t;if(!e)return{};if(typeof e=="string")return{error:()=>e};if(e?.message!==void 0){if(e?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");e.error=e.message}return delete e.message,typeof e.error=="string"?{...e,error:()=>e.error}:e}function qu(t){return Object.keys(t).filter(e=>t[e]._zod.optin==="optional"&&t[e]._zod.optout==="optional")}const Ju={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function Qu(t,e){const s=t._zod.def,a=s.checks;if(a&&a.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");const r=ws(t._zod.def,{get shape(){const n={};for(const o in e){if(!(o in s.shape))throw new Error(`Unrecognized key: "${o}"`);e[o]&&(n[o]=s.shape[o])}return Ls(this,"shape",n),n},checks:[]});return vs(t,r)}function $u(t,e){const s=t._zod.def,a=s.checks;if(a&&a.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");const r=ws(t._zod.def,{get shape(){const n={...t._zod.def.shape};for(const o in e){if(!(o in s.shape))throw new Error(`Unrecognized key: "${o}"`);e[o]&&delete n[o]}return Ls(this,"shape",n),n},checks:[]});return vs(t,r)}function eh(t,e){if(!aa(e))throw new Error("Invalid input to extend: expected a plain object");const s=t._zod.def.checks;if(s&&s.length>0){const r=t._zod.def.shape;for(const n in e)if(Object.getOwnPropertyDescriptor(r,n)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}const i=ws(t._zod.def,{get shape(){const r={...t._zod.def.shape,...e};return Ls(this,"shape",r),r}});return vs(t,i)}function th(t,e){if(!aa(e))throw new Error("Invalid input to safeExtend: expected a plain object");const s=ws(t._zod.def,{get shape(){const a={...t._zod.def.shape,...e};return Ls(this,"shape",a),a}});return vs(t,s)}function sh(t,e){const s=ws(t._zod.def,{get shape(){const a={...t._zod.def.shape,...e._zod.def.shape};return Ls(this,"shape",a),a},get catchall(){return e._zod.def.catchall},checks:[]});return vs(t,s)}function ah(t,e,s){const i=e._zod.def.checks;if(i&&i.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");const n=ws(e._zod.def,{get shape(){const o=e._zod.def.shape,l={...o};if(s)for(const c in s){if(!(c in o))throw new Error(`Unrecognized key: "${c}"`);s[c]&&(l[c]=t?new t({type:"optional",innerType:o[c]}):o[c])}else for(const c in o)l[c]=t?new t({type:"optional",innerType:o[c]}):o[c];return Ls(this,"shape",l),l},checks:[]});return vs(e,n)}function ih(t,e,s){const a=ws(e._zod.def,{get shape(){const i=e._zod.def.shape,r={...i};if(s)for(const n in s){if(!(n in r))throw new Error(`Unrecognized key: "${n}"`);s[n]&&(r[n]=new t({type:"nonoptional",innerType:i[n]}))}else for(const n in i)r[n]=new t({type:"nonoptional",innerType:i[n]});return Ls(this,"shape",r),r}});return vs(e,a)}function ra(t,e=0){if(t.aborted===!0)return!0;for(let s=e;s<t.issues.length;s++)if(t.issues[s]?.continue!==!0)return!0;return!1}function na(t,e){return e.map(s=>{var a;return(a=s).path??(a.path=[]),s.path.unshift(t),s})}function _i(t){return typeof t=="string"?t:t?.message}function xs(t,e,s){const a={...t,path:t.path??[]};if(!t.message){const i=_i(t.inst?._zod.def?.error?.(t))??_i(e?.error?.(t))??_i(s.customError?.(t))??_i(s.localeError?.(t))??"Invalid input";a.message=i}return delete a.inst,delete a.continue,e?.reportInput||delete a.input,a}function an(t){return Array.isArray(t)?"array":typeof t=="string"?"string":"unknown"}function za(...t){const[e,s,a]=t;return typeof e=="string"?{message:e,code:"custom",input:s,inst:a}:{...e}}const jo=(t,e)=>{t.name="$ZodError",Object.defineProperty(t,"_zod",{value:t._zod,enumerable:!1}),Object.defineProperty(t,"issues",{value:e,enumerable:!1}),t.message=JSON.stringify(e,en,2),Object.defineProperty(t,"toString",{value:()=>t.message,enumerable:!1})},Ko=L("$ZodError",jo),Xo=L("$ZodError",jo,{Parent:Error});function rh(t,e=s=>s.message){const s={},a=[];for(const i of t.issues)i.path.length>0?(s[i.path[0]]=s[i.path[0]]||[],s[i.path[0]].push(e(i))):a.push(e(i));return{formErrors:a,fieldErrors:s}}function nh(t,e=s=>s.message){const s={_errors:[]},a=i=>{for(const r of i.issues)if(r.code==="invalid_union"&&r.errors.length)r.errors.map(n=>a({issues:n}));else if(r.code==="invalid_key")a({issues:r.issues});else if(r.code==="invalid_element")a({issues:r.issues});else if(r.path.length===0)s._errors.push(e(r));else{let n=s,o=0;for(;o<r.path.length;){const l=r.path[o];o===r.path.length-1?(n[l]=n[l]||{_errors:[]},n[l]._errors.push(e(r))):n[l]=n[l]||{_errors:[]},n=n[l],o++}}};return a(t),s}const rn=t=>(e,s,a,i)=>{const r=a?Object.assign(a,{async:!1}):{async:!1},n=e._zod.run({value:s,issues:[]},r);if(n instanceof Promise)throw new sa;if(n.issues.length){const o=new(i?.Err??t)(n.issues.map(l=>xs(l,r,bs())));throw Yo(o,i?.callee),o}return n.value},nn=t=>async(e,s,a,i)=>{const r=a?Object.assign(a,{async:!0}):{async:!0};let n=e._zod.run({value:s,issues:[]},r);if(n instanceof Promise&&(n=await n),n.issues.length){const o=new(i?.Err??t)(n.issues.map(l=>xs(l,r,bs())));throw Yo(o,i?.callee),o}return n.value},Fi=t=>(e,s,a)=>{const i=a?{...a,async:!1}:{async:!1},r=e._zod.run({value:s,issues:[]},i);if(r instanceof Promise)throw new sa;return r.issues.length?{success:!1,error:new(t??Ko)(r.issues.map(n=>xs(n,i,bs())))}:{success:!0,data:r.value}},oh=Fi(Xo),Ti=t=>async(e,s,a)=>{const i=a?Object.assign(a,{async:!0}):{async:!0};let r=e._zod.run({value:s,issues:[]},i);return r instanceof Promise&&(r=await r),r.issues.length?{success:!1,error:new t(r.issues.map(n=>xs(n,i,bs())))}:{success:!0,data:r.value}},lh=Ti(Xo),ch=t=>(e,s,a)=>{const i=a?Object.assign(a,{direction:"backward"}):{direction:"backward"};return rn(t)(e,s,i)},fh=t=>(e,s,a)=>rn(t)(e,s,a),uh=t=>async(e,s,a)=>{const i=a?Object.assign(a,{direction:"backward"}):{direction:"backward"};return nn(t)(e,s,i)},hh=t=>async(e,s,a)=>nn(t)(e,s,a),dh=t=>(e,s,a)=>{const i=a?Object.assign(a,{direction:"backward"}):{direction:"backward"};return Fi(t)(e,s,i)},gh=t=>(e,s,a)=>Fi(t)(e,s,a),ph=t=>async(e,s,a)=>{const i=a?Object.assign(a,{direction:"backward"}):{direction:"backward"};return Ti(t)(e,s,i)},mh=t=>async(e,s,a)=>Ti(t)(e,s,a),yh=/^[cC][^\s-]{8,}$/,bh=/^[0-9a-z]+$/,wh=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,vh=/^[0-9a-vA-V]{20}$/,xh=/^[A-Za-z0-9]{27}$/,Ch=/^[a-zA-Z0-9_-]{21}$/,kh=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Nh=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,qo=t=>t?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${t}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,Ah=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Sh="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function Vh(){return new RegExp(Sh,"u")}const Ih=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,_h=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,Fh=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,Th=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Ph=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Jo=/^[A-Za-z0-9_-]*$/,Eh=/^\+[1-9]\d{6,14}$/,Qo="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",Oh=new RegExp(`^${Qo}$`);function $o(t){const e="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof t.precision=="number"?t.precision===-1?`${e}`:t.precision===0?`${e}:[0-5]\\d`:`${e}:[0-5]\\d\\.\\d{${t.precision}}`:`${e}(?::[0-5]\\d(?:\\.\\d+)?)?`}function Mh(t){return new RegExp(`^${$o(t)}$`)}function Rh(t){const e=$o({precision:t.precision}),s=["Z"];t.local&&s.push(""),t.offset&&s.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const a=`${e}(?:${s.join("|")})`;return new RegExp(`^${Qo}T(?:${a})$`)}const zh=t=>{const e=t?`[\\s\\S]{${t?.minimum??0},${t?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)},Lh=/^-?\d+$/,el=/^-?\d+(?:\.\d+)?$/,Dh=/^(?:true|false)$/i,Bh=/^null$/i,Uh=/^[^A-Z]*$/,Zh=/^[^a-z]*$/,At=L("$ZodCheck",(t,e)=>{var s;t._zod??(t._zod={}),t._zod.def=e,(s=t._zod).onattach??(s.onattach=[])}),tl={number:"number",bigint:"bigint",object:"date"},sl=L("$ZodCheckLessThan",(t,e)=>{At.init(t,e);const s=tl[typeof e.value];t._zod.onattach.push(a=>{const i=a._zod.bag,r=(e.inclusive?i.maximum:i.exclusiveMaximum)??Number.POSITIVE_INFINITY;e.value<r&&(e.inclusive?i.maximum=e.value:i.exclusiveMaximum=e.value)}),t._zod.check=a=>{(e.inclusive?a.value<=e.value:a.value<e.value)||a.issues.push({origin:s,code:"too_big",maximum:typeof e.value=="object"?e.value.getTime():e.value,input:a.value,inclusive:e.inclusive,inst:t,continue:!e.abort})}}),al=L("$ZodCheckGreaterThan",(t,e)=>{At.init(t,e);const s=tl[typeof e.value];t._zod.onattach.push(a=>{const i=a._zod.bag,r=(e.inclusive?i.minimum:i.exclusiveMinimum)??Number.NEGATIVE_INFINITY;e.value>r&&(e.inclusive?i.minimum=e.value:i.exclusiveMinimum=e.value)}),t._zod.check=a=>{(e.inclusive?a.value>=e.value:a.value>e.value)||a.issues.push({origin:s,code:"too_small",minimum:typeof e.value=="object"?e.value.getTime():e.value,input:a.value,inclusive:e.inclusive,inst:t,continue:!e.abort})}}),Gh=L("$ZodCheckMultipleOf",(t,e)=>{At.init(t,e),t._zod.onattach.push(s=>{var a;(a=s._zod.bag).multipleOf??(a.multipleOf=e.value)}),t._zod.check=s=>{if(typeof s.value!=typeof e.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof s.value=="bigint"?s.value%e.value===BigInt(0):Hu(s.value,e.value)===0)||s.issues.push({origin:typeof s.value,code:"not_multiple_of",divisor:e.value,input:s.value,inst:t,continue:!e.abort})}}),Wh=L("$ZodCheckNumberFormat",(t,e)=>{At.init(t,e),e.format=e.format||"float64";const s=e.format?.includes("int"),a=s?"int":"number",[i,r]=Ju[e.format];t._zod.onattach.push(n=>{const o=n._zod.bag;o.format=e.format,o.minimum=i,o.maximum=r,s&&(o.pattern=Lh)}),t._zod.check=n=>{const o=n.value;if(s){if(!Number.isInteger(o)){n.issues.push({expected:a,format:e.format,code:"invalid_type",continue:!1,input:o,inst:t});return}if(!Number.isSafeInteger(o)){o>0?n.issues.push({input:o,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:a,inclusive:!0,continue:!e.abort}):n.issues.push({input:o,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:a,inclusive:!0,continue:!e.abort});return}}o<i&&n.issues.push({origin:"number",input:o,code:"too_small",minimum:i,inclusive:!0,inst:t,continue:!e.abort}),o>r&&n.issues.push({origin:"number",input:o,code:"too_big",maximum:r,inclusive:!0,inst:t,continue:!e.abort})}}),Yh=L("$ZodCheckMaxLength",(t,e)=>{var s;At.init(t,e),(s=t._zod.def).when??(s.when=a=>{const i=a.value;return!tn(i)&&i.length!==void 0}),t._zod.onattach.push(a=>{const i=a._zod.bag.maximum??Number.POSITIVE_INFINITY;e.maximum<i&&(a._zod.bag.maximum=e.maximum)}),t._zod.check=a=>{const i=a.value;if(i.length<=e.maximum)return;const n=an(i);a.issues.push({origin:n,code:"too_big",maximum:e.maximum,inclusive:!0,input:i,inst:t,continue:!e.abort})}}),Hh=L("$ZodCheckMinLength",(t,e)=>{var s;At.init(t,e),(s=t._zod.def).when??(s.when=a=>{const i=a.value;return!tn(i)&&i.length!==void 0}),t._zod.onattach.push(a=>{const i=a._zod.bag.minimum??Number.NEGATIVE_INFINITY;e.minimum>i&&(a._zod.bag.minimum=e.minimum)}),t._zod.check=a=>{const i=a.value;if(i.length>=e.minimum)return;const n=an(i);a.issues.push({origin:n,code:"too_small",minimum:e.minimum,inclusive:!0,input:i,inst:t,continue:!e.abort})}}),jh=L("$ZodCheckLengthEquals",(t,e)=>{var s;At.init(t,e),(s=t._zod.def).when??(s.when=a=>{const i=a.value;return!tn(i)&&i.length!==void 0}),t._zod.onattach.push(a=>{const i=a._zod.bag;i.minimum=e.length,i.maximum=e.length,i.length=e.length}),t._zod.check=a=>{const i=a.value,r=i.length;if(r===e.length)return;const n=an(i),o=r>e.length;a.issues.push({origin:n,...o?{code:"too_big",maximum:e.length}:{code:"too_small",minimum:e.length},inclusive:!0,exact:!0,input:a.value,inst:t,continue:!e.abort})}}),Pi=L("$ZodCheckStringFormat",(t,e)=>{var s,a;At.init(t,e),t._zod.onattach.push(i=>{const r=i._zod.bag;r.format=e.format,e.pattern&&(r.patterns??(r.patterns=new Set),r.patterns.add(e.pattern))}),e.pattern?(s=t._zod).check??(s.check=i=>{e.pattern.lastIndex=0,!e.pattern.test(i.value)&&i.issues.push({origin:"string",code:"invalid_format",format:e.format,input:i.value,...e.pattern?{pattern:e.pattern.toString()}:{},inst:t,continue:!e.abort})}):(a=t._zod).check??(a.check=()=>{})}),Kh=L("$ZodCheckRegex",(t,e)=>{Pi.init(t,e),t._zod.check=s=>{e.pattern.lastIndex=0,!e.pattern.test(s.value)&&s.issues.push({origin:"string",code:"invalid_format",format:"regex",input:s.value,pattern:e.pattern.toString(),inst:t,continue:!e.abort})}}),Xh=L("$ZodCheckLowerCase",(t,e)=>{e.pattern??(e.pattern=Uh),Pi.init(t,e)}),qh=L("$ZodCheckUpperCase",(t,e)=>{e.pattern??(e.pattern=Zh),Pi.init(t,e)}),Jh=L("$ZodCheckIncludes",(t,e)=>{At.init(t,e);const s=ia(e.includes),a=new RegExp(typeof e.position=="number"?`^.{${e.position}}${s}`:s);e.pattern=a,t._zod.onattach.push(i=>{const r=i._zod.bag;r.patterns??(r.patterns=new Set),r.patterns.add(a)}),t._zod.check=i=>{i.value.includes(e.includes,e.position)||i.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:e.includes,input:i.value,inst:t,continue:!e.abort})}}),Qh=L("$ZodCheckStartsWith",(t,e)=>{At.init(t,e);const s=new RegExp(`^${ia(e.prefix)}.*`);e.pattern??(e.pattern=s),t._zod.onattach.push(a=>{const i=a._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(s)}),t._zod.check=a=>{a.value.startsWith(e.prefix)||a.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:e.prefix,input:a.value,inst:t,continue:!e.abort})}}),$h=L("$ZodCheckEndsWith",(t,e)=>{At.init(t,e);const s=new RegExp(`.*${ia(e.suffix)}$`);e.pattern??(e.pattern=s),t._zod.onattach.push(a=>{const i=a._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(s)}),t._zod.check=a=>{a.value.endsWith(e.suffix)||a.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:e.suffix,input:a.value,inst:t,continue:!e.abort})}}),ed=L("$ZodCheckOverwrite",(t,e)=>{At.init(t,e),t._zod.check=s=>{s.value=e.tx(s.value)}});class td{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if(typeof e=="function"){e(this,{execution:"sync"}),e(this,{execution:"async"});return}const a=e.split(`
|
|
233
|
+
const DOUBLE_PI: f32 = 3.14159265358979323846264 * 2.;`,Pu=Object.defineProperty,Eu=(t,e,s)=>e in t?Pu(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,zs=(t,e,s)=>(Eu(t,typeof e!="symbol"?e+"":e,s),s);const Si=class ta extends jt.Filter{constructor(...e){let s=e[0]??{};typeof s=="number"&&(jt.deprecation("6.0.0","OutlineFilter constructor params are now options object. See params: { thickness, color, quality, alpha, knockout }"),s={thickness:s},e[1]!==void 0&&(s.color=e[1]),e[2]!==void 0&&(s.quality=e[2]),e[3]!==void 0&&(s.alpha=e[3]),e[4]!==void 0&&(s.knockout=e[4])),s={...ta.DEFAULT_OPTIONS,...s};const a=s.quality??.1,i=jt.GpuProgram.from({vertex:{source:_u,entryPoint:"mainVertex"},fragment:{source:Tu,entryPoint:"mainFragment"}}),r=jt.GlProgram.from({vertex:Iu,fragment:Fu.replace(/\$\{ANGLE_STEP\}/,ta.getAngleStep(a).toFixed(7)),name:"outline-filter"});super({gpuProgram:i,glProgram:r,resources:{outlineUniforms:{uThickness:{value:new Float32Array(2),type:"vec2<f32>"},uColor:{value:new Float32Array(3),type:"vec3<f32>"},uAlpha:{value:s.alpha,type:"f32"},uAngleStep:{value:0,type:"f32"},uKnockout:{value:s.knockout?1:0,type:"f32"}}}}),zs(this,"uniforms"),zs(this,"_thickness"),zs(this,"_quality"),zs(this,"_color"),this.uniforms=this.resources.outlineUniforms.uniforms,this.uniforms.uAngleStep=ta.getAngleStep(a),this._color=new jt.Color,this.color=s.color??0,Object.assign(this,s)}apply(e,s,a,i){this.uniforms.uThickness[0]=this.thickness/s.source.width,this.uniforms.uThickness[1]=this.thickness/s.source.height,e.applyFilter(this,s,a,i)}static getAngleStep(e){return parseFloat((Math.PI*2/Math.max(e*ta.MAX_SAMPLES,ta.MIN_SAMPLES)).toFixed(7))}get thickness(){return this._thickness}set thickness(e){this._thickness=this.padding=e}get color(){return this._color.value}set color(e){this._color.setValue(e);const[s,a,i]=this._color.toArray();this.uniforms.uColor[0]=s,this.uniforms.uColor[1]=a,this.uniforms.uColor[2]=i}get alpha(){return this.uniforms.uAlpha}set alpha(e){this.uniforms.uAlpha=e}get quality(){return this._quality}set quality(e){this._quality=e,this.uniforms.uAngleStep=ta.getAngleStep(e)}get knockout(){return this.uniforms.uKnockout===1}set knockout(e){this.uniforms.uKnockout=e?1:0}};zs(Si,"DEFAULT_OPTIONS",{thickness:1,color:0,alpha:1,quality:.1,knockout:!1}),zs(Si,"MIN_SAMPLES",1),zs(Si,"MAX_SAMPLES",100);let Oa=Si;class Vi extends xt{static loadedFonts=new Set;cues=[];currentCue=null;background=null;text=null;vttBlobUrl=null;pendingTranscription=null;isTranscribing=!1;constructor(e,s){super(e,s,Qe.Caption)}async load(){await super.load();const e=this.clipConfiguration.asset,s=e.font?.family??"Open Sans";if(await this.loadFont(s),bu(e.src)?(this.isTranscribing=!0,this.pendingTranscription=this.loadTranscriptionInBackground(e.src)):await this.loadSubtitles(e.src),this.background=new X.Graphics,this.contentContainer.addChild(this.background),this.text=new X.Text({text:"",style:this.createTextStyle(e)}),this.text.visible=!1,e.stroke?.width&&e.stroke.width>0&&e.stroke.color){const a=new Oa({thickness:e.stroke.width,color:e.stroke.color});this.text.filters=[a]}this.contentContainer.addChild(this.text),this.configureKeyframes()}async loadTranscriptionInBackground(e){const s=this.clipConfiguration.alias??"";try{const a=this.edit.getResolvedEdit();if(!a)throw new Error("Cannot resolve alias: edit not loaded");const i=await Cu(e,a,o=>{this.edit.events.emit(ce.TranscriptionProgress,{clipAlias:s,...o})});this.vttBlobUrl=i.vttUrl;const r={src:i.vttUrl,parser:Ea.Name},n=await this.edit.assetLoader.load(i.vttUrl,r);n&&(this.cues=n.cues),this.isTranscribing=!1,this.edit.events.emit(ce.TranscriptionCompleted,{clipAlias:s,cueCount:this.cues.length})}catch(a){this.isTranscribing=!1,console.error("Failed to transcribe:",a),this.edit.events.emit(ce.TranscriptionFailed,{clipAlias:s,error:a instanceof Error?a.message:"Transcription failed"})}}isTranscriptionPending(){return this.isTranscribing}async waitForTranscription(){this.pendingTranscription&&await this.pendingTranscription}update(e,s){if(super.update(e,s),!this.text)return;const a=this.clipConfiguration.asset,i=a.trim??0,r=this.getPlaybackTime()+i,n=pu(this.cues,r);n!==this.currentCue&&(this.currentCue=n,this.updateDisplay(n,a))}dispose(){super.dispose(),this.background?.destroy(),this.background=null,this.text?.destroy(),this.text=null,this.vttBlobUrl&&(ku(this.vttBlobUrl),this.vttBlobUrl=null),this.cues=[],this.currentCue=null}getSize(){const e=this.clipConfiguration.asset;return{width:this.clipConfiguration.width??e.width??this.edit.size.width,height:this.clipConfiguration.height??e.height??this.edit.size.height}}getFitScale(){return 1}getContainerScale(){const e=this.getScale();return{x:e,y:e}}async loadSubtitles(e){try{const s={src:e,parser:Ea.Name},a=await this.edit.assetLoader.load(e,s);a?this.cues=a.cues:(console.error("Failed to load subtitles"),this.cues=[])}catch(s){console.error("Failed to load subtitles:",s),this.cues=[]}}createTextStyle(e){const s=e.font?.family??"Open Sans",{baseFontFamily:a,fontWeight:i}=Dt(s),r=e.font?.size??32,{width:n}=this.getSize();return new X.TextStyle({fontFamily:a,fontSize:r,fill:e.font?.color??"#ffffff",fontWeight:i.toString(),wordWrap:!0,wordWrapWidth:n*.9,lineHeight:(e.font?.lineHeight??1.2)*r,align:e.alignment?.horizontal??"center"})}updateDisplay(e,s){if(!(!this.text||!this.background)){if(!e){this.text.visible=!1,this.background.clear();return}this.text.text=e.text,this.text.visible=!0,this.positionText(s),this.drawBackground(s)}}positionText(e){if(!this.text)return;const s=e.alignment?.horizontal??"center",a=e.alignment?.vertical??"bottom",{width:i,height:r}=this.getSize(),n=e.background?.padding??10;let o=i/2-this.text.width/2;s==="left"?o=n:s==="right"&&(o=i-this.text.width-n);let l=r*.9;a==="top"?l=n:a==="center"&&(l=r/2-this.text.height/2),this.text.position.set(o,l)}drawBackground(e){if(!this.background||!this.text||!this.text.visible){this.background?.clear();return}const s=e.background;if(!s?.color){this.background.clear();return}const a=s.padding??10,i=s.borderRadius??4,r=this.text.x-a,n=this.text.y-a,o=this.text.width+a*2,l=this.text.height+a*2;this.background.clear(),this.background.fillStyle={color:s.color,alpha:s.opacity??.8},i>0?this.background.roundRect(r,n,o,l,i):this.background.rect(r,n,o,l),this.background.fill()}async loadFont(e){const{baseFontFamily:s,fontWeight:a}=Dt(e),i=`${s}-${a}`;if(Vi.loadedFonts.has(i))return;const r=qr(e);if(r){const n=new FontFace(s,`url(${r})`,{weight:a.toString()});await n.load(),document.fonts.add(n),Vi.loadedFonts.add(i)}}}class Ou extends xt{background;text;constructor(e,s){super(e,s,Qe.Html),this.background=null,this.text=null}async load(){await super.load();const e=this.clipConfiguration.asset,s=await this.parseDocument();if(!s)return;const a=new X.Graphics;s.background.color&&(a.fillStyle={color:s.background.color,alpha:s.background.opacity??1},a.rect(0,0,e.width??this.edit.size.width,e.height??this.edit.size.height),a.fill());const i=new X.Text;i.text=s.text;const{horizontal:r,vertical:n}=s.alignment;i.style={fontFamily:s.font?.family??"Open Sans",fontSize:s.font?.size??32,fill:s.font?.color??"#ffffff",fontWeight:(s.font?.weight??"400").toString(),wordWrap:!0,wordWrapWidth:e.width??this.edit.size.width,lineHeight:(s.font?.lineHeight??1)*(s.font?.size??32),align:r};let o=(e.width??this.edit.size.width)/2-i.width/2,l=(e.height??this.edit.size.height)/2-i.height/2;if(r==="left"&&(o=0),r==="right"&&(o=(e.width??this.edit.size.width)-i.width),n==="top"&&(l=0),n==="bottom"&&(l=(e.height??this.edit.size.height)-i.height),i.position={x:o,y:l},s.stroke.color&&s.stroke.width){const c=new Oa({thickness:s.stroke.width,color:s.stroke.color});i.filters=[c]}this.background=a,this.text=i,this.contentContainer.addChild(a),this.contentContainer.addChild(i),this.configureKeyframes()}update(e,s){super.update(e,s)}dispose(){super.dispose(),this.background?.destroy(),this.background=null,this.text?.destroy(),this.text=null}getSize(){const e=this.clipConfiguration.asset;return{width:e.width??this.edit.size.width,height:e.height??this.edit.size.height}}getFitScale(){return 1}async parseDocument(){const e=this.clipConfiguration.asset,{html:s,css:a="",position:i}=e;if(!s.includes('data-html-type="text"'))return console.warn("Unsupported html format."),null;const n=new DOMParser().parseFromString(s,"text/html").body.textContent??"",l=(await new CSSStyleSheet().replace(a)).cssRules[0],c={text:n,font:{},alignment:{},background:{},stroke:{}};if(l?.constructor.name!=="CSSStyleRule"||!("style"in l))return console.warn("Unsupported css format."),c;const f=l.style,h=this.parseAlignment(i??"center");c.font={color:f.color.length?f.color:void 0,family:f.fontFamily.length?f.fontFamily:void 0,size:f.fontSize.length?parseInt(f.fontSize,10):void 0,weight:f.fontWeight.length?parseInt(f.fontWeight,10):void 0,lineHeight:f.lineHeight.length?parseInt(f.lineHeight,10):void 0},c.alignment=h;let d="";return f.background.length&&(d=f.background),f.backgroundColor.length&&(d=f.backgroundColor),c.background={color:d.length?d:void 0,opacity:f.opacity.length?parseInt(f.opacity,10):void 0},c.stroke={width:f.strokeWidth.length?parseInt(f.strokeWidth,10):void 0,color:f.stroke.length?f.stroke:void 0},c}parseAlignment(e){switch(e){case"topLeft":return{horizontal:"left",vertical:"top"};case"top":return{horizontal:"center",vertical:"top"};case"topRight":return{horizontal:"right",vertical:"top"};case"left":return{horizontal:"left",vertical:"center"};case"right":return{horizontal:"right",vertical:"center"};case"bottomLeft":return{horizontal:"left",vertical:"bottom"};case"bottom":return{horizontal:"center",vertical:"bottom"};case"bottomRight":return{horizontal:"right",vertical:"bottom"};case"center":default:return{horizontal:"center",vertical:"center"}}}}class Mu extends xt{texture;sprite;constructor(e,s){super(e,s,Qe.Image),this.texture=null,this.sprite=null}async load(){await super.load(),await this.loadTexture(),this.configureKeyframes()}update(e,s){super.update(e,s)}dispose(){super.dispose(),this.disposeTexture()}getSize(){return this.clipConfiguration.width&&this.clipConfiguration.height?{width:this.clipConfiguration.width,height:this.clipConfiguration.height}:{width:this.sprite?.width??0,height:this.sprite?.height??0}}getContentSize(){return{width:this.sprite?.width??0,height:this.sprite?.height??0}}async reloadAsset(){this.disposeTexture(),await this.loadTexture()}async loadTexture(){const e=this.clipConfiguration.asset,{src:s}=e,a=`${s}${s.includes("?")?"&":"?"}x-cors=1`,i={src:a,crossorigin:"anonymous",data:{}},r=await this.edit.assetLoader.load(a,i);if(!(r?.source instanceof X.ImageSource))throw r&&r.destroy(!0),new Error(`Invalid image source '${s}'.`);this.texture=this.createCroppedTexture(r),this.sprite=new X.Sprite(this.texture),this.contentContainer.addChild(this.sprite),this.clipConfiguration.width&&this.clipConfiguration.height&&this.applyFixedDimensions()}disposeTexture(){this.sprite&&(this.contentContainer.removeChild(this.sprite),this.sprite.destroy(),this.sprite=null),this.texture=null}supportsEdgeResize(){return!0}createCroppedTexture(e){const s=this.clipConfiguration.asset;if(!s.crop)return e;const a=e.width,i=e.height,r=Math.floor((s.crop?.left??0)*a),n=Math.floor((s.crop?.right??0)*a),o=Math.floor((s.crop?.top??0)*i),l=Math.floor((s.crop?.bottom??0)*i),c=r,f=o,h=a-r-n,d=i-o-l,m=new X.Rectangle(c,f,h,d);return new X.Texture({source:e.source,frame:m})}}const Ru=new Set(["text-to-image","image-to-video","text-to-speech"]);function Ls(t){return typeof t=="object"&&t!==null&&"type"in t&&typeof t.type=="string"&&Ru.has(t.type)}function Jr(t){return"id"in t&&typeof t.id=="string"}const Ro=new WeakMap;function zu(t){let e=Ro.get(t);return e||(e=[...t].sort((s,a)=>s.start-a.start),Ro.set(t,e)),e}function zo(t,e){const s=t.find(n=>Jr(n)&&n.id===e);if(!s||!Jr(s)||!s.asset||!Ls(s.asset))return null;const a=s.asset.type,i=zu(t);let r=0;for(const n of i){if(Jr(n)&&n.id===e)break;n.asset&&Ls(n.asset)&&n.asset.type===a&&(r+=1)}return r+1}function Lu(t){const e=t*137.5%360;return[e,(e+30)%360,(e+60)%360,(e+90)%360,(e+120)%360]}function Ma(t,e,s){const a=t/360,i=e/100,r=s/100;let n,o,l;{const d=(I,M,E)=>{let V=E;return V<0&&(V+=1),V>1&&(V-=1),V<.16666666666666666?I+(M-I)*6*V:V<.5?M:V<.6666666666666666?I+(M-I)*(.6666666666666666-V)*6:I},m=r+i-r*i,b=2*r-m;n=d(b,m,a+1/3),o=d(b,m,a),l=d(b,m,a-1/3)}const c=Math.round(n*255)*65536,f=Math.round(o*255)*256,h=Math.round(l*255);return c+f+h}function Du(t){return{"text-to-image":"Image","image-to-video":"Video","text-to-speech":"Audio"}[t]||t}function Bu(t,e=60){return t.length<=e?t:`${t.substring(0,e-3)}...`}const Uu={image:"M20.7134 8.12811L20.4668 8.69379C20.2864 9.10792 19.7136 9.10792 19.5331 8.69379L19.2866 8.12811C18.8471 7.11947 18.0555 6.31641 17.0677 5.87708L16.308 5.53922C15.8973 5.35653 15.8973 4.75881 16.308 4.57612L17.0252 4.25714C18.0384 3.80651 18.8442 2.97373 19.2761 1.93083L19.5293 1.31953C19.7058 0.893489 20.2942 0.893489 20.4706 1.31953L20.7238 1.93083C21.1558 2.97373 21.9616 3.80651 22.9748 4.25714L23.6919 4.57612C24.1027 4.75881 24.1027 5.35653 23.6919 5.53922L22.9323 5.87708C21.9445 6.31641 21.1529 7.11947 20.7134 8.12811ZM2.9918 3H14V5H4V19L13.2923 9.70649C13.6828 9.31595 14.3159 9.31591 14.7065 9.70641L20 15.0104V11H22V20.0066C22 20.5552 21.5447 21 21.0082 21H2.9918C2.44405 21 2 20.5551 2 20.0066V3.9934C2 3.44476 2.45531 3 2.9918 3ZM8 11C6.89543 11 6 10.1046 6 9C6 7.89543 6.89543 7 8 7C9.10457 7 10 7.89543 10 9C10 10.1046 9.10457 11 8 11Z",video:"M19.7134 8.12811L19.4668 8.69379C19.2864 9.10792 18.7136 9.10792 18.5331 8.69379L18.2866 8.12811C17.8471 7.11947 17.0555 6.31641 16.0677 5.87708L15.308 5.53922C14.8973 5.35653 14.8973 4.75881 15.308 4.57612L16.0252 4.25714C17.0384 3.80651 17.8442 2.97373 18.2761 1.93083L18.5293 1.31953C18.7058 0.893489 19.2942 0.893489 19.4706 1.31953L19.7238 1.93083C20.1558 2.97373 20.9616 3.80651 21.9748 4.25714L22.6919 4.57612C23.1027 4.75881 23.1027 5.35653 22.6919 5.53922L21.9323 5.87708C20.9445 6.31641 20.1529 7.11947 19.7134 8.12811ZM19 11C19.7013 11 20.3744 10.8797 21 10.6586V20.0066C21 20.5552 20.5551 21 20.0066 21H3.9934C3.44476 21 3 20.5551 3 20.0066V3.9934C3 3.44476 3.44495 3 3.9934 3H13.3414C13.1203 3.62556 13 4.29873 13 5C13 8.31371 15.6863 11 19 11ZM10.6219 8.41459C10.5562 8.37078 10.479 8.34741 10.4 8.34741C10.1791 8.34741 10 8.52649 10 8.74741V15.2526C10 15.3316 10.0234 15.4088 10.0672 15.4745C10.1897 15.6583 10.4381 15.708 10.6219 15.5854L15.5008 12.3328C15.5447 12.3035 15.5824 12.2658 15.6117 12.2219C15.7343 12.0381 15.6846 11.7897 15.5008 11.6672L10.6219 8.41459Z",mic:"M20.4668 7.69379L20.7134 7.12811C21.1529 6.11947 21.9445 5.31641 22.9323 4.87708L23.6919 4.53922C24.1027 4.35653 24.1027 3.75881 23.6919 3.57612L22.9748 3.25714C21.9616 2.80651 21.1558 1.97373 20.7238 0.930828L20.4706 0.319534C20.2942 -0.106511 19.7058 -0.106511 19.5293 0.319534L19.2761 0.930828C18.8442 1.97373 18.0384 2.80651 17.0252 3.25714L16.308 3.57612C15.8973 3.75881 15.8973 4.35653 16.308 4.53922L17.0677 4.87708C18.0555 5.31641 18.8471 6.11947 19.2866 7.12811L19.5331 7.69379C19.7136 8.10792 20.2864 8.10792 20.4668 7.69379ZM14.3869 5.33879C14.661 5.77254 15.0357 6.09305 15.5111 6.30032L16.0764 6.54679C16.4565 6.71249 16.7643 6.94524 16.9998 7.24503V10C16.9998 12.7614 14.7612 15 11.9998 15C9.23833 15 6.99976 12.7614 6.99976 10V6C6.99976 3.23858 9.23833 1 11.9998 1C13.1238 1 14.1613 1.37094 14.9964 1.99709C14.7563 2.17678 14.5531 2.39813 14.3869 2.66114C14.129 3.06938 14 3.51566 14 3.99997C14 4.48428 14.129 4.93056 14.3869 5.33879ZM3.05469 11H5.07065C5.55588 14.3923 8.47329 17 11.9998 17C15.5262 17 18.4436 14.3923 18.9289 11H20.9448C20.4837 15.1716 17.1714 18.4839 12.9998 18.9451V23H10.9998V18.9451C6.82814 18.4839 3.51584 15.1716 3.05469 11Z"};function Zu(t,e,s,a){let i=0;for(const[r,n,o]of a)i+=Math.sin(t*r+e*o+s)*n;return i}function Gu(t){if(t===void 0)return[{color:440020,baseAlpha:.12,baseY:.35,rayHeight:.45,phase:0,scrollSpeed:.08,waves:[[2,.08,.15],[4.5,.04,.25],[9,.015,.4]]},{color:1096065,baseAlpha:.18,baseY:.3,rayHeight:.5,phase:1.2,scrollSpeed:.12,waves:[[1.5,.1,.18],[3.8,.05,.3],[8,.02,.5],[14,.008,.7]]},{color:3462041,baseAlpha:.15,baseY:.28,rayHeight:.35,phase:2.8,scrollSpeed:.1,waves:[[2.2,.07,.2],[5.5,.035,.35],[11,.012,.55]]},{color:8141549,baseAlpha:.14,baseY:.45,rayHeight:.4,phase:4.1,scrollSpeed:.09,waves:[[1.8,.09,.12],[4.2,.045,.28],[9.5,.018,.45]]},{color:15485081,baseAlpha:.1,baseY:.5,rayHeight:.3,phase:5.5,scrollSpeed:.14,waves:[[2.5,.06,.22],[6,.03,.38],[12,.01,.6]]}];const e=Lu(t);return[{color:Ma(e[0],70,50),baseAlpha:.12,baseY:.35,rayHeight:.45,phase:0,scrollSpeed:.08,waves:[[2,.08,.15],[4.5,.04,.25],[9,.015,.4]]},{color:Ma(e[1],70,50),baseAlpha:.18,baseY:.3,rayHeight:.5,phase:1.2,scrollSpeed:.12,waves:[[1.5,.1,.18],[3.8,.05,.3],[8,.02,.5],[14,.008,.7]]},{color:Ma(e[2],70,50),baseAlpha:.15,baseY:.28,rayHeight:.35,phase:2.8,scrollSpeed:.1,waves:[[2.2,.07,.2],[5.5,.035,.35],[11,.012,.55]]},{color:Ma(e[3],70,50),baseAlpha:.14,baseY:.45,rayHeight:.4,phase:4.1,scrollSpeed:.09,waves:[[1.8,.09,.12],[4.2,.045,.28],[9.5,.018,.45]]},{color:Ma(e[4],70,50),baseAlpha:.1,baseY:.5,rayHeight:.3,phase:5.5,scrollSpeed:.14,waves:[[2.5,.06,.22],[6,.03,.38],[12,.01,.6]]}]}const Qr=64,Xt=72,Lo=42;class $r{constructor(e){this.options=e,this.container=new X.Container,this.build(),this.startAnimation()}container;layers=[];auroraLayer;time=0;rafId=null;lastTime=null;getContainer(){return this.container}resize(e,s){e===this.options.width&&s===this.options.height||(this.options.width=e,this.options.height=s,this.rebuild())}updatePrompt(e){e!==this.options.prompt&&(this.options.prompt=e,this.rebuild())}dispose(){this.stopAnimation(),this.container.destroy({children:!0})}rebuild(){this.container.removeChildren(),this.layers=[],this.build()}startAnimation(){const e=s=>{if(this.lastTime!==null){const a=(s-this.lastTime)/1e3;this.time+=a,this.drawAurora()}this.lastTime=s,this.rafId=requestAnimationFrame(e)};this.rafId=requestAnimationFrame(e)}stopAnimation(){this.rafId!==null&&(cancelAnimationFrame(this.rafId),this.rafId=null)}build(){const{mode:e,width:s,height:a}=this.options;if(e==="panel"){const o=new X.Graphics;o.roundRect(0,0,s,a,4),o.fill({color:"#1E1B2E",alpha:1}),this.container.addChild(o)}else{const o=new X.Graphics;o.rect(0,0,s,a),o.fill({color:"#000000",alpha:.25}),this.container.addChild(o)}this.auroraLayer=new X.Container,this.layers=Gu(this.options.assetNumber).map(o=>{const l=new X.Graphics;return this.auroraLayer.addChild(l),{...o,graphics:l}});const i=Math.min(Math.max(Math.min(s,a)*.04,12),40),r=new X.BlurFilter({strength:i,quality:4});this.auroraLayer.filters=[r];const n=new X.Graphics;e==="panel"?n.roundRect(0,0,s,a,4):n.rect(0,0,s,a),n.fill({color:"#ffffff"}),this.auroraLayer.addChild(n),this.auroraLayer.mask=n,this.container.addChild(this.auroraLayer),this.drawAurora(),this.buildBadge()}drawAurora(){const{width:e,height:s}=this.options,a=this.time,i=e/Qr;for(const r of this.layers){r.graphics.clear();const n=Math.sin(a*.3+r.phase*1.7)*.5+.5,o=r.baseAlpha*(.7+.3*n),l=a*r.scrollSpeed;for(let c=0;c<Qr;c+=1){const h=c/Qr*Math.PI*2+l,d=Zu(h,a,r.phase,r.waves),m=(r.baseY+d)*s,b=.6+.4*Math.sin(h*3.7+a*.2+r.phase*2.3),I=r.rayHeight*s*b,M=.4+.6*(Math.sin(h*5+a*.15+r.phase*3.1)*.5+.5)**.7,E=o*M,V=c*i;r.graphics.rect(V,m,i+1,I),r.graphics.fill({color:r.color,alpha:E})}}}buildBadge(){const{width:e,height:s,icon:a,assetNumber:i,prompt:r,assetType:n}=this.options,o=new X.Container;o.position.set(e/2-Xt/2,s/2-Xt/2);const l=new X.Graphics;l.circle(Xt/2,Xt/2,Xt/2),l.fill({color:"#000000",alpha:.5}),o.addChild(l);const c=new X.Graphics;c.svg(`<svg viewBox="0 0 24 24"><path d="${Uu[a]}" fill="#C084FC" /></svg>`);const f=Lo/24,h=(Xt-Lo)/2;if(c.scale.set(f,f),c.position.set(h,h),o.addChild(c),i!==void 0){const d=n?Du(n):"",m=d?`${d} ${i}`:String(i),b=new X.Text({text:m,style:{fontFamily:"Arial",fontSize:18,fontWeight:"bold",fill:"#ffffff"}});b.anchor.set(.5,.5),b.position.set(Xt/2,Xt+15),o.addChild(b)}if(r){const d=Bu(r,60),m=new X.Text({text:d,style:{fontFamily:"Arial",fontSize:16,fontWeight:"normal",fill:"#ffffff",align:"center",wordWrap:!0,wordWrapWidth:e*.8,lineHeight:20}});m.anchor.set(.5,0),m.position.set(Xt/2,Xt+40),o.addChild(m)}this.container.addChild(o)}}function Do(t,e){const s=new X.Graphics;return s.fillStyle={color:"#cccccc",alpha:.5},s.rect(0,0,t,e),s.fill(),s.strokeStyle={color:"#999999",width:2},s.moveTo(0,0),s.lineTo(t,e),s.moveTo(t,0),s.lineTo(0,e),s.stroke(),s}class Wu extends xt{sprite=null;texture=null;placeholder=null;aiOverlay=null;constructor(e,s){super(e,s,Qe.ImageToVideo)}async load(){await super.load();const e=this.getDisplaySize(),s=this.edit.getResolvedEdit()?.timeline.tracks.flatMap(o=>o.clips)??[],a=zo(s,this.clipId??""),{asset:i}=this.clipConfiguration,r=Ls(i)&&i.prompt||"",n=Ls(i)?i.type:"image-to-video";try{await this.loadTexture(),this.aiOverlay=new $r({mode:"badge",icon:"video",width:e.width,height:e.height,assetNumber:a??void 0,prompt:r,assetType:n})}catch{this.placeholder=Do(e.width,e.height),this.contentContainer.addChild(this.placeholder),this.aiOverlay=new $r({mode:"panel",icon:"video",width:e.width,height:e.height,assetNumber:a??void 0,prompt:r,assetType:n})}this.contentContainer.addChild(this.aiOverlay.getContainer()),this.configureKeyframes()}update(e,s){super.update(e,s);const a=this.getDisplaySize();this.aiOverlay?.resize(a.width,a.height);const i=this.aiOverlay?.getContainer();if(i){const r=this.getContainerScale(),n=this.getSize();i.scale.set(1/r.x,1/r.y),i.position.set(n.width/2-a.width/(2*r.x),n.height/2-a.height/(2*r.y))}}getSize(){return this.clipConfiguration.width&&this.clipConfiguration.height?{width:this.clipConfiguration.width,height:this.clipConfiguration.height}:{width:this.sprite?.width||this.edit.size.width,height:this.sprite?.height||this.edit.size.height}}dispose(){this.sprite&&(this.contentContainer.removeChild(this.sprite),this.sprite.destroy(),this.sprite=null),this.texture=null,this.placeholder?.destroy(),this.placeholder=null,this.aiOverlay?.dispose(),this.aiOverlay=null,super.dispose()}getDisplaySize(){return{width:this.clipConfiguration.width??this.edit.size.width,height:this.clipConfiguration.height??this.edit.size.height}}async loadTexture(){const e=this.clipConfiguration.asset,{src:s}=e,a=`${s}${s.includes("?")?"&":"?"}x-cors=1`,i={src:a,crossorigin:"anonymous",data:{}},r=await this.edit.assetLoader.load(a,i);if(!(r?.source instanceof X.ImageSource))throw r&&r.destroy(!0),new Error(`Invalid image source '${s}'.`);this.texture=r,this.sprite=new X.Sprite(this.texture),this.contentContainer.addChild(this.sprite),this.clipConfiguration.width&&this.clipConfiguration.height&&this.applyFixedDimensions()}}class Yu extends xt{texture;sprite;isPlaying;constructor(e,s){super(e,s,Qe.Luma),this.texture=null,this.sprite=null,this.isPlaying=!1}async load(){await super.load();const e=this.clipConfiguration.asset,s=e.src,a={src:s,data:{autoPlay:!1,muted:!0}},i=await this.edit.assetLoader.load(s,a);if(!(i?.source instanceof X.ImageSource||i?.source instanceof X.VideoSource))throw i&&this.edit.assetLoader.decrementRef(s),new Error(`Invalid luma source '${e.src}'.`);i.source instanceof X.VideoSource&&(i.source.alphaMode="no-premultiply-alpha"),this.texture=i,this.sprite=new X.Sprite(this.texture),this.contentContainer.addChild(this.sprite),this.configureKeyframes()}update(e,s){if(super.update(e,s),!this.texture||!(this.texture.source instanceof X.VideoSource))return;const a=this.getPlaybackTime(),i=this.edit.isPlaying&&this.isActive();i&&(this.isPlaying||(this.isPlaying=!0,this.texture.source.resource.currentTime=a,this.texture.source.resource.play().catch(console.error)),this.texture.source.resource.volume!==this.getVolume()&&(this.texture.source.resource.volume=this.getVolume()),Math.abs(this.texture.source.resource.currentTime-a)>.1&&(this.texture.source.resource.currentTime=a)),!i&&this.isPlaying&&(this.isPlaying=!1,this.texture.source.resource.pause()),!this.edit.isPlaying&&this.isActive()&&(this.texture.source.resource.currentTime=a)}dispose(){super.dispose(),this.sprite?.destroy(),this.sprite=null,this.texture=null}getSize(){return this.clipConfiguration.width&&this.clipConfiguration.height?{width:this.clipConfiguration.width,height:this.clipConfiguration.height}:{width:this.sprite?.width??0,height:this.sprite?.height??0}}getVolume(){return 0}getSprite(){return this.sprite}isVideoSource(){return this.texture?.source instanceof X.VideoSource}getVideoCurrentTime(){return this.texture?.source instanceof X.VideoSource?this.texture.source.resource.currentTime:-1}}function L(t,e,s){function a(o,l){if(o._zod||Object.defineProperty(o,"_zod",{value:{def:l,constr:n,traits:new Set},enumerable:!1}),o._zod.traits.has(t))return;o._zod.traits.add(t),e(o,l);const c=n.prototype,f=Object.keys(c);for(let h=0;h<f.length;h++){const d=f[h];d in o||(o[d]=c[d].bind(o))}}const i=s?.Parent??Object;class r extends i{}Object.defineProperty(r,"name",{value:t});function n(o){var l;const c=s?.Parent?new r:this;a(c,o),(l=c._zod).deferred??(l.deferred=[]);for(const f of c._zod.deferred)f();return c}return Object.defineProperty(n,"init",{value:a}),Object.defineProperty(n,Symbol.hasInstance,{value:o=>s?.Parent&&o instanceof s.Parent?!0:o?._zod?.traits?.has(t)}),Object.defineProperty(n,"name",{value:t}),n}class sa extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class Bo extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}}const Uo={};function bs(t){return Uo}function Zo(t){const e=Object.values(t).filter(a=>typeof a=="number");return Object.entries(t).filter(([a,i])=>e.indexOf(+a)===-1).map(([a,i])=>i)}function en(t,e){return typeof e=="bigint"?e.toString():e}function Ii(t){return{get value(){{const e=t();return Object.defineProperty(this,"value",{value:e}),e}}}}function tn(t){return t==null}function sn(t){const e=t.startsWith("^")?1:0,s=t.endsWith("$")?t.length-1:t.length;return t.slice(e,s)}function Hu(t,e){const s=(t.toString().split(".")[1]||"").length,a=e.toString();let i=(a.split(".")[1]||"").length;if(i===0&&/\d?e-\d?/.test(a)){const l=a.match(/\d?e-(\d?)/);l?.[1]&&(i=Number.parseInt(l[1]))}const r=s>i?s:i,n=Number.parseInt(t.toFixed(r).replace(".","")),o=Number.parseInt(e.toFixed(r).replace(".",""));return n%o/10**r}const Go=Symbol("evaluating");function Me(t,e,s){let a;Object.defineProperty(t,e,{get(){if(a!==Go)return a===void 0&&(a=Go,a=s()),a},set(i){Object.defineProperty(t,e,{value:i})},configurable:!0})}function Ds(t,e,s){Object.defineProperty(t,e,{value:s,writable:!0,enumerable:!0,configurable:!0})}function ws(...t){const e={};for(const s of t){const a=Object.getOwnPropertyDescriptors(s);Object.assign(e,a)}return Object.defineProperties({},e)}function Wo(t){return JSON.stringify(t)}function ju(t){return t.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}const Yo="captureStackTrace"in Error?Error.captureStackTrace:(...t)=>{};function Ra(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}const Ku=Ii(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{const t=Function;return new t(""),!0}catch{return!1}});function aa(t){if(Ra(t)===!1)return!1;const e=t.constructor;if(e===void 0||typeof e!="function")return!0;const s=e.prototype;return!(Ra(s)===!1||Object.prototype.hasOwnProperty.call(s,"isPrototypeOf")===!1)}function Ho(t){return aa(t)?{...t}:Array.isArray(t)?[...t]:t}const Xu=new Set(["string","number","symbol"]);function ia(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function vs(t,e,s){const a=new t._zod.constr(e??t._zod.def);return(!e||s?.parent)&&(a._zod.parent=t),a}function oe(t){const e=t;if(!e)return{};if(typeof e=="string")return{error:()=>e};if(e?.message!==void 0){if(e?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");e.error=e.message}return delete e.message,typeof e.error=="string"?{...e,error:()=>e.error}:e}function qu(t){return Object.keys(t).filter(e=>t[e]._zod.optin==="optional"&&t[e]._zod.optout==="optional")}const Ju={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function Qu(t,e){const s=t._zod.def,a=s.checks;if(a&&a.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");const r=ws(t._zod.def,{get shape(){const n={};for(const o in e){if(!(o in s.shape))throw new Error(`Unrecognized key: "${o}"`);e[o]&&(n[o]=s.shape[o])}return Ds(this,"shape",n),n},checks:[]});return vs(t,r)}function $u(t,e){const s=t._zod.def,a=s.checks;if(a&&a.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");const r=ws(t._zod.def,{get shape(){const n={...t._zod.def.shape};for(const o in e){if(!(o in s.shape))throw new Error(`Unrecognized key: "${o}"`);e[o]&&delete n[o]}return Ds(this,"shape",n),n},checks:[]});return vs(t,r)}function eh(t,e){if(!aa(e))throw new Error("Invalid input to extend: expected a plain object");const s=t._zod.def.checks;if(s&&s.length>0){const r=t._zod.def.shape;for(const n in e)if(Object.getOwnPropertyDescriptor(r,n)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}const i=ws(t._zod.def,{get shape(){const r={...t._zod.def.shape,...e};return Ds(this,"shape",r),r}});return vs(t,i)}function th(t,e){if(!aa(e))throw new Error("Invalid input to safeExtend: expected a plain object");const s=ws(t._zod.def,{get shape(){const a={...t._zod.def.shape,...e};return Ds(this,"shape",a),a}});return vs(t,s)}function sh(t,e){const s=ws(t._zod.def,{get shape(){const a={...t._zod.def.shape,...e._zod.def.shape};return Ds(this,"shape",a),a},get catchall(){return e._zod.def.catchall},checks:[]});return vs(t,s)}function ah(t,e,s){const i=e._zod.def.checks;if(i&&i.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");const n=ws(e._zod.def,{get shape(){const o=e._zod.def.shape,l={...o};if(s)for(const c in s){if(!(c in o))throw new Error(`Unrecognized key: "${c}"`);s[c]&&(l[c]=t?new t({type:"optional",innerType:o[c]}):o[c])}else for(const c in o)l[c]=t?new t({type:"optional",innerType:o[c]}):o[c];return Ds(this,"shape",l),l},checks:[]});return vs(e,n)}function ih(t,e,s){const a=ws(e._zod.def,{get shape(){const i=e._zod.def.shape,r={...i};if(s)for(const n in s){if(!(n in r))throw new Error(`Unrecognized key: "${n}"`);s[n]&&(r[n]=new t({type:"nonoptional",innerType:i[n]}))}else for(const n in i)r[n]=new t({type:"nonoptional",innerType:i[n]});return Ds(this,"shape",r),r}});return vs(e,a)}function ra(t,e=0){if(t.aborted===!0)return!0;for(let s=e;s<t.issues.length;s++)if(t.issues[s]?.continue!==!0)return!0;return!1}function na(t,e){return e.map(s=>{var a;return(a=s).path??(a.path=[]),s.path.unshift(t),s})}function _i(t){return typeof t=="string"?t:t?.message}function xs(t,e,s){const a={...t,path:t.path??[]};if(!t.message){const i=_i(t.inst?._zod.def?.error?.(t))??_i(e?.error?.(t))??_i(s.customError?.(t))??_i(s.localeError?.(t))??"Invalid input";a.message=i}return delete a.inst,delete a.continue,e?.reportInput||delete a.input,a}function an(t){return Array.isArray(t)?"array":typeof t=="string"?"string":"unknown"}function za(...t){const[e,s,a]=t;return typeof e=="string"?{message:e,code:"custom",input:s,inst:a}:{...e}}const jo=(t,e)=>{t.name="$ZodError",Object.defineProperty(t,"_zod",{value:t._zod,enumerable:!1}),Object.defineProperty(t,"issues",{value:e,enumerable:!1}),t.message=JSON.stringify(e,en,2),Object.defineProperty(t,"toString",{value:()=>t.message,enumerable:!1})},Ko=L("$ZodError",jo),Xo=L("$ZodError",jo,{Parent:Error});function rh(t,e=s=>s.message){const s={},a=[];for(const i of t.issues)i.path.length>0?(s[i.path[0]]=s[i.path[0]]||[],s[i.path[0]].push(e(i))):a.push(e(i));return{formErrors:a,fieldErrors:s}}function nh(t,e=s=>s.message){const s={_errors:[]},a=i=>{for(const r of i.issues)if(r.code==="invalid_union"&&r.errors.length)r.errors.map(n=>a({issues:n}));else if(r.code==="invalid_key")a({issues:r.issues});else if(r.code==="invalid_element")a({issues:r.issues});else if(r.path.length===0)s._errors.push(e(r));else{let n=s,o=0;for(;o<r.path.length;){const l=r.path[o];o===r.path.length-1?(n[l]=n[l]||{_errors:[]},n[l]._errors.push(e(r))):n[l]=n[l]||{_errors:[]},n=n[l],o++}}};return a(t),s}const rn=t=>(e,s,a,i)=>{const r=a?Object.assign(a,{async:!1}):{async:!1},n=e._zod.run({value:s,issues:[]},r);if(n instanceof Promise)throw new sa;if(n.issues.length){const o=new(i?.Err??t)(n.issues.map(l=>xs(l,r,bs())));throw Yo(o,i?.callee),o}return n.value},nn=t=>async(e,s,a,i)=>{const r=a?Object.assign(a,{async:!0}):{async:!0};let n=e._zod.run({value:s,issues:[]},r);if(n instanceof Promise&&(n=await n),n.issues.length){const o=new(i?.Err??t)(n.issues.map(l=>xs(l,r,bs())));throw Yo(o,i?.callee),o}return n.value},Fi=t=>(e,s,a)=>{const i=a?{...a,async:!1}:{async:!1},r=e._zod.run({value:s,issues:[]},i);if(r instanceof Promise)throw new sa;return r.issues.length?{success:!1,error:new(t??Ko)(r.issues.map(n=>xs(n,i,bs())))}:{success:!0,data:r.value}},oh=Fi(Xo),Ti=t=>async(e,s,a)=>{const i=a?Object.assign(a,{async:!0}):{async:!0};let r=e._zod.run({value:s,issues:[]},i);return r instanceof Promise&&(r=await r),r.issues.length?{success:!1,error:new t(r.issues.map(n=>xs(n,i,bs())))}:{success:!0,data:r.value}},lh=Ti(Xo),ch=t=>(e,s,a)=>{const i=a?Object.assign(a,{direction:"backward"}):{direction:"backward"};return rn(t)(e,s,i)},fh=t=>(e,s,a)=>rn(t)(e,s,a),uh=t=>async(e,s,a)=>{const i=a?Object.assign(a,{direction:"backward"}):{direction:"backward"};return nn(t)(e,s,i)},hh=t=>async(e,s,a)=>nn(t)(e,s,a),dh=t=>(e,s,a)=>{const i=a?Object.assign(a,{direction:"backward"}):{direction:"backward"};return Fi(t)(e,s,i)},gh=t=>(e,s,a)=>Fi(t)(e,s,a),ph=t=>async(e,s,a)=>{const i=a?Object.assign(a,{direction:"backward"}):{direction:"backward"};return Ti(t)(e,s,i)},mh=t=>async(e,s,a)=>Ti(t)(e,s,a),yh=/^[cC][^\s-]{8,}$/,bh=/^[0-9a-z]+$/,wh=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,vh=/^[0-9a-vA-V]{20}$/,xh=/^[A-Za-z0-9]{27}$/,Ch=/^[a-zA-Z0-9_-]{21}$/,kh=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Nh=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,qo=t=>t?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${t}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,Ah=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Sh="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function Vh(){return new RegExp(Sh,"u")}const Ih=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,_h=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,Fh=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,Th=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Ph=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Jo=/^[A-Za-z0-9_-]*$/,Eh=/^\+[1-9]\d{6,14}$/,Qo="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",Oh=new RegExp(`^${Qo}$`);function $o(t){const e="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof t.precision=="number"?t.precision===-1?`${e}`:t.precision===0?`${e}:[0-5]\\d`:`${e}:[0-5]\\d\\.\\d{${t.precision}}`:`${e}(?::[0-5]\\d(?:\\.\\d+)?)?`}function Mh(t){return new RegExp(`^${$o(t)}$`)}function Rh(t){const e=$o({precision:t.precision}),s=["Z"];t.local&&s.push(""),t.offset&&s.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const a=`${e}(?:${s.join("|")})`;return new RegExp(`^${Qo}T(?:${a})$`)}const zh=t=>{const e=t?`[\\s\\S]{${t?.minimum??0},${t?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)},Lh=/^-?\d+$/,el=/^-?\d+(?:\.\d+)?$/,Dh=/^(?:true|false)$/i,Bh=/^null$/i,Uh=/^[^A-Z]*$/,Zh=/^[^a-z]*$/,At=L("$ZodCheck",(t,e)=>{var s;t._zod??(t._zod={}),t._zod.def=e,(s=t._zod).onattach??(s.onattach=[])}),tl={number:"number",bigint:"bigint",object:"date"},sl=L("$ZodCheckLessThan",(t,e)=>{At.init(t,e);const s=tl[typeof e.value];t._zod.onattach.push(a=>{const i=a._zod.bag,r=(e.inclusive?i.maximum:i.exclusiveMaximum)??Number.POSITIVE_INFINITY;e.value<r&&(e.inclusive?i.maximum=e.value:i.exclusiveMaximum=e.value)}),t._zod.check=a=>{(e.inclusive?a.value<=e.value:a.value<e.value)||a.issues.push({origin:s,code:"too_big",maximum:typeof e.value=="object"?e.value.getTime():e.value,input:a.value,inclusive:e.inclusive,inst:t,continue:!e.abort})}}),al=L("$ZodCheckGreaterThan",(t,e)=>{At.init(t,e);const s=tl[typeof e.value];t._zod.onattach.push(a=>{const i=a._zod.bag,r=(e.inclusive?i.minimum:i.exclusiveMinimum)??Number.NEGATIVE_INFINITY;e.value>r&&(e.inclusive?i.minimum=e.value:i.exclusiveMinimum=e.value)}),t._zod.check=a=>{(e.inclusive?a.value>=e.value:a.value>e.value)||a.issues.push({origin:s,code:"too_small",minimum:typeof e.value=="object"?e.value.getTime():e.value,input:a.value,inclusive:e.inclusive,inst:t,continue:!e.abort})}}),Gh=L("$ZodCheckMultipleOf",(t,e)=>{At.init(t,e),t._zod.onattach.push(s=>{var a;(a=s._zod.bag).multipleOf??(a.multipleOf=e.value)}),t._zod.check=s=>{if(typeof s.value!=typeof e.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof s.value=="bigint"?s.value%e.value===BigInt(0):Hu(s.value,e.value)===0)||s.issues.push({origin:typeof s.value,code:"not_multiple_of",divisor:e.value,input:s.value,inst:t,continue:!e.abort})}}),Wh=L("$ZodCheckNumberFormat",(t,e)=>{At.init(t,e),e.format=e.format||"float64";const s=e.format?.includes("int"),a=s?"int":"number",[i,r]=Ju[e.format];t._zod.onattach.push(n=>{const o=n._zod.bag;o.format=e.format,o.minimum=i,o.maximum=r,s&&(o.pattern=Lh)}),t._zod.check=n=>{const o=n.value;if(s){if(!Number.isInteger(o)){n.issues.push({expected:a,format:e.format,code:"invalid_type",continue:!1,input:o,inst:t});return}if(!Number.isSafeInteger(o)){o>0?n.issues.push({input:o,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:a,inclusive:!0,continue:!e.abort}):n.issues.push({input:o,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:a,inclusive:!0,continue:!e.abort});return}}o<i&&n.issues.push({origin:"number",input:o,code:"too_small",minimum:i,inclusive:!0,inst:t,continue:!e.abort}),o>r&&n.issues.push({origin:"number",input:o,code:"too_big",maximum:r,inclusive:!0,inst:t,continue:!e.abort})}}),Yh=L("$ZodCheckMaxLength",(t,e)=>{var s;At.init(t,e),(s=t._zod.def).when??(s.when=a=>{const i=a.value;return!tn(i)&&i.length!==void 0}),t._zod.onattach.push(a=>{const i=a._zod.bag.maximum??Number.POSITIVE_INFINITY;e.maximum<i&&(a._zod.bag.maximum=e.maximum)}),t._zod.check=a=>{const i=a.value;if(i.length<=e.maximum)return;const n=an(i);a.issues.push({origin:n,code:"too_big",maximum:e.maximum,inclusive:!0,input:i,inst:t,continue:!e.abort})}}),Hh=L("$ZodCheckMinLength",(t,e)=>{var s;At.init(t,e),(s=t._zod.def).when??(s.when=a=>{const i=a.value;return!tn(i)&&i.length!==void 0}),t._zod.onattach.push(a=>{const i=a._zod.bag.minimum??Number.NEGATIVE_INFINITY;e.minimum>i&&(a._zod.bag.minimum=e.minimum)}),t._zod.check=a=>{const i=a.value;if(i.length>=e.minimum)return;const n=an(i);a.issues.push({origin:n,code:"too_small",minimum:e.minimum,inclusive:!0,input:i,inst:t,continue:!e.abort})}}),jh=L("$ZodCheckLengthEquals",(t,e)=>{var s;At.init(t,e),(s=t._zod.def).when??(s.when=a=>{const i=a.value;return!tn(i)&&i.length!==void 0}),t._zod.onattach.push(a=>{const i=a._zod.bag;i.minimum=e.length,i.maximum=e.length,i.length=e.length}),t._zod.check=a=>{const i=a.value,r=i.length;if(r===e.length)return;const n=an(i),o=r>e.length;a.issues.push({origin:n,...o?{code:"too_big",maximum:e.length}:{code:"too_small",minimum:e.length},inclusive:!0,exact:!0,input:a.value,inst:t,continue:!e.abort})}}),Pi=L("$ZodCheckStringFormat",(t,e)=>{var s,a;At.init(t,e),t._zod.onattach.push(i=>{const r=i._zod.bag;r.format=e.format,e.pattern&&(r.patterns??(r.patterns=new Set),r.patterns.add(e.pattern))}),e.pattern?(s=t._zod).check??(s.check=i=>{e.pattern.lastIndex=0,!e.pattern.test(i.value)&&i.issues.push({origin:"string",code:"invalid_format",format:e.format,input:i.value,...e.pattern?{pattern:e.pattern.toString()}:{},inst:t,continue:!e.abort})}):(a=t._zod).check??(a.check=()=>{})}),Kh=L("$ZodCheckRegex",(t,e)=>{Pi.init(t,e),t._zod.check=s=>{e.pattern.lastIndex=0,!e.pattern.test(s.value)&&s.issues.push({origin:"string",code:"invalid_format",format:"regex",input:s.value,pattern:e.pattern.toString(),inst:t,continue:!e.abort})}}),Xh=L("$ZodCheckLowerCase",(t,e)=>{e.pattern??(e.pattern=Uh),Pi.init(t,e)}),qh=L("$ZodCheckUpperCase",(t,e)=>{e.pattern??(e.pattern=Zh),Pi.init(t,e)}),Jh=L("$ZodCheckIncludes",(t,e)=>{At.init(t,e);const s=ia(e.includes),a=new RegExp(typeof e.position=="number"?`^.{${e.position}}${s}`:s);e.pattern=a,t._zod.onattach.push(i=>{const r=i._zod.bag;r.patterns??(r.patterns=new Set),r.patterns.add(a)}),t._zod.check=i=>{i.value.includes(e.includes,e.position)||i.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:e.includes,input:i.value,inst:t,continue:!e.abort})}}),Qh=L("$ZodCheckStartsWith",(t,e)=>{At.init(t,e);const s=new RegExp(`^${ia(e.prefix)}.*`);e.pattern??(e.pattern=s),t._zod.onattach.push(a=>{const i=a._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(s)}),t._zod.check=a=>{a.value.startsWith(e.prefix)||a.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:e.prefix,input:a.value,inst:t,continue:!e.abort})}}),$h=L("$ZodCheckEndsWith",(t,e)=>{At.init(t,e);const s=new RegExp(`.*${ia(e.suffix)}$`);e.pattern??(e.pattern=s),t._zod.onattach.push(a=>{const i=a._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(s)}),t._zod.check=a=>{a.value.endsWith(e.suffix)||a.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:e.suffix,input:a.value,inst:t,continue:!e.abort})}}),ed=L("$ZodCheckOverwrite",(t,e)=>{At.init(t,e),t._zod.check=s=>{s.value=e.tx(s.value)}});class td{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if(typeof e=="function"){e(this,{execution:"sync"}),e(this,{execution:"async"});return}const a=e.split(`
|
|
234
234
|
`).filter(n=>n),i=Math.min(...a.map(n=>n.length-n.trimStart().length)),r=a.map(n=>n.slice(i)).map(n=>" ".repeat(this.indent*2)+n);for(const n of r)this.content.push(n)}compile(){const e=Function,s=this?.args,i=[...(this?.content??[""]).map(r=>` ${r}`)];return new e(...s,i.join(`
|
|
235
|
-
`))}}const sd={major:4,minor:3,patch:6},Ke=L("$ZodType",(t,e)=>{var s;t??(t={}),t._zod.def=e,t._zod.bag=t._zod.bag||{},t._zod.version=sd;const a=[...t._zod.def.checks??[]];t._zod.traits.has("$ZodCheck")&&a.unshift(t);for(const i of a)for(const r of i._zod.onattach)r(t);if(a.length===0)(s=t._zod).deferred??(s.deferred=[]),t._zod.deferred?.push(()=>{t._zod.run=t._zod.parse});else{const i=(n,o,l)=>{let c=ra(n),f;for(const h of o){if(h._zod.def.when){if(!h._zod.def.when(n))continue}else if(c)continue;const d=n.issues.length,m=h._zod.check(n);if(m instanceof Promise&&l?.async===!1)throw new sa;if(f||m instanceof Promise)f=(f??Promise.resolve()).then(async()=>{await m,n.issues.length!==d&&(c||(c=ra(n,d)))});else{if(n.issues.length===d)continue;c||(c=ra(n,d))}}return f?f.then(()=>n):n},r=(n,o,l)=>{if(ra(n))return n.aborted=!0,n;const c=i(o,a,l);if(c instanceof Promise){if(l.async===!1)throw new sa;return c.then(f=>t._zod.parse(f,l))}return t._zod.parse(c,l)};t._zod.run=(n,o)=>{if(o.skipChecks)return t._zod.parse(n,o);if(o.direction==="backward"){const c=t._zod.parse({value:n.value,issues:[]},{...o,skipChecks:!0});return c instanceof Promise?c.then(f=>r(f,n,o)):r(c,n,o)}const l=t._zod.parse(n,o);if(l instanceof Promise){if(o.async===!1)throw new sa;return l.then(c=>i(c,a,o))}return i(l,a,o)}}Me(t,"~standard",()=>({validate:i=>{try{const r=oh(t,i);return r.success?{value:r.data}:{issues:r.error?.issues}}catch{return lh(t,i).then(n=>n.success?{value:n.data}:{issues:n.error?.issues})}},vendor:"zod",version:1}))}),on=L("$ZodString",(t,e)=>{Ke.init(t,e),t._zod.pattern=[...t?._zod.bag?.patterns??[]].pop()??zh(t._zod.bag),t._zod.parse=(s,a)=>{if(e.coerce)try{s.value=String(s.value)}catch{}return typeof s.value=="string"||s.issues.push({expected:"string",code:"invalid_type",input:s.value,inst:t}),s}}),Xe=L("$ZodStringFormat",(t,e)=>{Pi.init(t,e),on.init(t,e)}),ad=L("$ZodGUID",(t,e)=>{e.pattern??(e.pattern=Nh),Xe.init(t,e)}),id=L("$ZodUUID",(t,e)=>{if(e.version){const a={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[e.version];if(a===void 0)throw new Error(`Invalid UUID version: "${e.version}"`);e.pattern??(e.pattern=qo(a))}else e.pattern??(e.pattern=qo());Xe.init(t,e)}),rd=L("$ZodEmail",(t,e)=>{e.pattern??(e.pattern=Ah),Xe.init(t,e)}),nd=L("$ZodURL",(t,e)=>{Xe.init(t,e),t._zod.check=s=>{try{const a=s.value.trim(),i=new URL(a);e.hostname&&(e.hostname.lastIndex=0,e.hostname.test(i.hostname)||s.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:e.hostname.source,input:s.value,inst:t,continue:!e.abort})),e.protocol&&(e.protocol.lastIndex=0,e.protocol.test(i.protocol.endsWith(":")?i.protocol.slice(0,-1):i.protocol)||s.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:e.protocol.source,input:s.value,inst:t,continue:!e.abort})),e.normalize?s.value=i.href:s.value=a;return}catch{s.issues.push({code:"invalid_format",format:"url",input:s.value,inst:t,continue:!e.abort})}}}),od=L("$ZodEmoji",(t,e)=>{e.pattern??(e.pattern=Vh()),Xe.init(t,e)}),ld=L("$ZodNanoID",(t,e)=>{e.pattern??(e.pattern=Ch),Xe.init(t,e)}),cd=L("$ZodCUID",(t,e)=>{e.pattern??(e.pattern=yh),Xe.init(t,e)}),fd=L("$ZodCUID2",(t,e)=>{e.pattern??(e.pattern=bh),Xe.init(t,e)}),ud=L("$ZodULID",(t,e)=>{e.pattern??(e.pattern=wh),Xe.init(t,e)}),hd=L("$ZodXID",(t,e)=>{e.pattern??(e.pattern=vh),Xe.init(t,e)}),dd=L("$ZodKSUID",(t,e)=>{e.pattern??(e.pattern=xh),Xe.init(t,e)}),gd=L("$ZodISODateTime",(t,e)=>{e.pattern??(e.pattern=Rh(e)),Xe.init(t,e)}),pd=L("$ZodISODate",(t,e)=>{e.pattern??(e.pattern=Oh),Xe.init(t,e)}),md=L("$ZodISOTime",(t,e)=>{e.pattern??(e.pattern=Mh(e)),Xe.init(t,e)}),yd=L("$ZodISODuration",(t,e)=>{e.pattern??(e.pattern=kh),Xe.init(t,e)}),bd=L("$ZodIPv4",(t,e)=>{e.pattern??(e.pattern=Ih),Xe.init(t,e),t._zod.bag.format="ipv4"}),wd=L("$ZodIPv6",(t,e)=>{e.pattern??(e.pattern=_h),Xe.init(t,e),t._zod.bag.format="ipv6",t._zod.check=s=>{try{new URL(`http://[${s.value}]`)}catch{s.issues.push({code:"invalid_format",format:"ipv6",input:s.value,inst:t,continue:!e.abort})}}}),vd=L("$ZodCIDRv4",(t,e)=>{e.pattern??(e.pattern=Fh),Xe.init(t,e)}),xd=L("$ZodCIDRv6",(t,e)=>{e.pattern??(e.pattern=Th),Xe.init(t,e),t._zod.check=s=>{const a=s.value.split("/");try{if(a.length!==2)throw new Error;const[i,r]=a;if(!r)throw new Error;const n=Number(r);if(`${n}`!==r)throw new Error;if(n<0||n>128)throw new Error;new URL(`http://[${i}]`)}catch{s.issues.push({code:"invalid_format",format:"cidrv6",input:s.value,inst:t,continue:!e.abort})}}});function il(t){if(t==="")return!0;if(t.length%4!==0)return!1;try{return atob(t),!0}catch{return!1}}const Cd=L("$ZodBase64",(t,e)=>{e.pattern??(e.pattern=Ph),Xe.init(t,e),t._zod.bag.contentEncoding="base64",t._zod.check=s=>{il(s.value)||s.issues.push({code:"invalid_format",format:"base64",input:s.value,inst:t,continue:!e.abort})}});function kd(t){if(!Jo.test(t))return!1;const e=t.replace(/[-_]/g,a=>a==="-"?"+":"/"),s=e.padEnd(Math.ceil(e.length/4)*4,"=");return il(s)}const Nd=L("$ZodBase64URL",(t,e)=>{e.pattern??(e.pattern=Jo),Xe.init(t,e),t._zod.bag.contentEncoding="base64url",t._zod.check=s=>{kd(s.value)||s.issues.push({code:"invalid_format",format:"base64url",input:s.value,inst:t,continue:!e.abort})}}),Ad=L("$ZodE164",(t,e)=>{e.pattern??(e.pattern=Eh),Xe.init(t,e)});function Sd(t,e=null){try{const s=t.split(".");if(s.length!==3)return!1;const[a]=s;if(!a)return!1;const i=JSON.parse(atob(a));return!("typ"in i&&i?.typ!=="JWT"||!i.alg||e&&(!("alg"in i)||i.alg!==e))}catch{return!1}}const Vd=L("$ZodJWT",(t,e)=>{Xe.init(t,e),t._zod.check=s=>{Sd(s.value,e.alg)||s.issues.push({code:"invalid_format",format:"jwt",input:s.value,inst:t,continue:!e.abort})}}),rl=L("$ZodNumber",(t,e)=>{Ke.init(t,e),t._zod.pattern=t._zod.bag.pattern??el,t._zod.parse=(s,a)=>{if(e.coerce)try{s.value=Number(s.value)}catch{}const i=s.value;if(typeof i=="number"&&!Number.isNaN(i)&&Number.isFinite(i))return s;const r=typeof i=="number"?Number.isNaN(i)?"NaN":Number.isFinite(i)?void 0:"Infinity":void 0;return s.issues.push({expected:"number",code:"invalid_type",input:i,inst:t,...r?{received:r}:{}}),s}}),Id=L("$ZodNumberFormat",(t,e)=>{Wh.init(t,e),rl.init(t,e)}),_d=L("$ZodBoolean",(t,e)=>{Ke.init(t,e),t._zod.pattern=Dh,t._zod.parse=(s,a)=>{if(e.coerce)try{s.value=!!s.value}catch{}const i=s.value;return typeof i=="boolean"||s.issues.push({expected:"boolean",code:"invalid_type",input:i,inst:t}),s}}),Fd=L("$ZodNull",(t,e)=>{Ke.init(t,e),t._zod.pattern=Bh,t._zod.values=new Set([null]),t._zod.parse=(s,a)=>{const i=s.value;return i===null||s.issues.push({expected:"null",code:"invalid_type",input:i,inst:t}),s}}),Td=L("$ZodUnknown",(t,e)=>{Ke.init(t,e),t._zod.parse=s=>s}),Pd=L("$ZodNever",(t,e)=>{Ke.init(t,e),t._zod.parse=(s,a)=>(s.issues.push({expected:"never",code:"invalid_type",input:s.value,inst:t}),s)});function nl(t,e,s){t.issues.length&&e.issues.push(...na(s,t.issues)),e.value[s]=t.value}const Ed=L("$ZodArray",(t,e)=>{Ke.init(t,e),t._zod.parse=(s,a)=>{const i=s.value;if(!Array.isArray(i))return s.issues.push({expected:"array",code:"invalid_type",input:i,inst:t}),s;s.value=Array(i.length);const r=[];for(let n=0;n<i.length;n++){const o=i[n],l=e.element._zod.run({value:o,issues:[]},a);l instanceof Promise?r.push(l.then(c=>nl(c,s,n))):nl(l,s,n)}return r.length?Promise.all(r).then(()=>s):s}});function Ei(t,e,s,a,i){if(t.issues.length){if(i&&!(s in a))return;e.issues.push(...na(s,t.issues))}t.value===void 0?s in a&&(e.value[s]=void 0):e.value[s]=t.value}function ol(t){const e=Object.keys(t.shape);for(const a of e)if(!t.shape?.[a]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${a}": expected a Zod schema`);const s=qu(t.shape);return{...t,keys:e,keySet:new Set(e),numKeys:e.length,optionalKeys:new Set(s)}}function ll(t,e,s,a,i,r){const n=[],o=i.keySet,l=i.catchall._zod,c=l.def.type,f=l.optout==="optional";for(const h in e){if(o.has(h))continue;if(c==="never"){n.push(h);continue}const d=l.run({value:e[h],issues:[]},a);d instanceof Promise?t.push(d.then(m=>Ei(m,s,h,e,f))):Ei(d,s,h,e,f)}return n.length&&s.issues.push({code:"unrecognized_keys",keys:n,input:e,inst:r}),t.length?Promise.all(t).then(()=>s):s}const Od=L("$ZodObject",(t,e)=>{if(Ke.init(t,e),!Object.getOwnPropertyDescriptor(e,"shape")?.get){const o=e.shape;Object.defineProperty(e,"shape",{get:()=>{const l={...o};return Object.defineProperty(e,"shape",{value:l}),l}})}const a=Ii(()=>ol(e));Me(t._zod,"propValues",()=>{const o=e.shape,l={};for(const c in o){const f=o[c]._zod;if(f.values){l[c]??(l[c]=new Set);for(const h of f.values)l[c].add(h)}}return l});const i=Ra,r=e.catchall;let n;t._zod.parse=(o,l)=>{n??(n=a.value);const c=o.value;if(!i(c))return o.issues.push({expected:"object",code:"invalid_type",input:c,inst:t}),o;o.value={};const f=[],h=n.shape;for(const d of n.keys){const m=h[d],b=m._zod.optout==="optional",
|
|
235
|
+
`))}}const sd={major:4,minor:3,patch:6},Ke=L("$ZodType",(t,e)=>{var s;t??(t={}),t._zod.def=e,t._zod.bag=t._zod.bag||{},t._zod.version=sd;const a=[...t._zod.def.checks??[]];t._zod.traits.has("$ZodCheck")&&a.unshift(t);for(const i of a)for(const r of i._zod.onattach)r(t);if(a.length===0)(s=t._zod).deferred??(s.deferred=[]),t._zod.deferred?.push(()=>{t._zod.run=t._zod.parse});else{const i=(n,o,l)=>{let c=ra(n),f;for(const h of o){if(h._zod.def.when){if(!h._zod.def.when(n))continue}else if(c)continue;const d=n.issues.length,m=h._zod.check(n);if(m instanceof Promise&&l?.async===!1)throw new sa;if(f||m instanceof Promise)f=(f??Promise.resolve()).then(async()=>{await m,n.issues.length!==d&&(c||(c=ra(n,d)))});else{if(n.issues.length===d)continue;c||(c=ra(n,d))}}return f?f.then(()=>n):n},r=(n,o,l)=>{if(ra(n))return n.aborted=!0,n;const c=i(o,a,l);if(c instanceof Promise){if(l.async===!1)throw new sa;return c.then(f=>t._zod.parse(f,l))}return t._zod.parse(c,l)};t._zod.run=(n,o)=>{if(o.skipChecks)return t._zod.parse(n,o);if(o.direction==="backward"){const c=t._zod.parse({value:n.value,issues:[]},{...o,skipChecks:!0});return c instanceof Promise?c.then(f=>r(f,n,o)):r(c,n,o)}const l=t._zod.parse(n,o);if(l instanceof Promise){if(o.async===!1)throw new sa;return l.then(c=>i(c,a,o))}return i(l,a,o)}}Me(t,"~standard",()=>({validate:i=>{try{const r=oh(t,i);return r.success?{value:r.data}:{issues:r.error?.issues}}catch{return lh(t,i).then(n=>n.success?{value:n.data}:{issues:n.error?.issues})}},vendor:"zod",version:1}))}),on=L("$ZodString",(t,e)=>{Ke.init(t,e),t._zod.pattern=[...t?._zod.bag?.patterns??[]].pop()??zh(t._zod.bag),t._zod.parse=(s,a)=>{if(e.coerce)try{s.value=String(s.value)}catch{}return typeof s.value=="string"||s.issues.push({expected:"string",code:"invalid_type",input:s.value,inst:t}),s}}),Xe=L("$ZodStringFormat",(t,e)=>{Pi.init(t,e),on.init(t,e)}),ad=L("$ZodGUID",(t,e)=>{e.pattern??(e.pattern=Nh),Xe.init(t,e)}),id=L("$ZodUUID",(t,e)=>{if(e.version){const a={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[e.version];if(a===void 0)throw new Error(`Invalid UUID version: "${e.version}"`);e.pattern??(e.pattern=qo(a))}else e.pattern??(e.pattern=qo());Xe.init(t,e)}),rd=L("$ZodEmail",(t,e)=>{e.pattern??(e.pattern=Ah),Xe.init(t,e)}),nd=L("$ZodURL",(t,e)=>{Xe.init(t,e),t._zod.check=s=>{try{const a=s.value.trim(),i=new URL(a);e.hostname&&(e.hostname.lastIndex=0,e.hostname.test(i.hostname)||s.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:e.hostname.source,input:s.value,inst:t,continue:!e.abort})),e.protocol&&(e.protocol.lastIndex=0,e.protocol.test(i.protocol.endsWith(":")?i.protocol.slice(0,-1):i.protocol)||s.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:e.protocol.source,input:s.value,inst:t,continue:!e.abort})),e.normalize?s.value=i.href:s.value=a;return}catch{s.issues.push({code:"invalid_format",format:"url",input:s.value,inst:t,continue:!e.abort})}}}),od=L("$ZodEmoji",(t,e)=>{e.pattern??(e.pattern=Vh()),Xe.init(t,e)}),ld=L("$ZodNanoID",(t,e)=>{e.pattern??(e.pattern=Ch),Xe.init(t,e)}),cd=L("$ZodCUID",(t,e)=>{e.pattern??(e.pattern=yh),Xe.init(t,e)}),fd=L("$ZodCUID2",(t,e)=>{e.pattern??(e.pattern=bh),Xe.init(t,e)}),ud=L("$ZodULID",(t,e)=>{e.pattern??(e.pattern=wh),Xe.init(t,e)}),hd=L("$ZodXID",(t,e)=>{e.pattern??(e.pattern=vh),Xe.init(t,e)}),dd=L("$ZodKSUID",(t,e)=>{e.pattern??(e.pattern=xh),Xe.init(t,e)}),gd=L("$ZodISODateTime",(t,e)=>{e.pattern??(e.pattern=Rh(e)),Xe.init(t,e)}),pd=L("$ZodISODate",(t,e)=>{e.pattern??(e.pattern=Oh),Xe.init(t,e)}),md=L("$ZodISOTime",(t,e)=>{e.pattern??(e.pattern=Mh(e)),Xe.init(t,e)}),yd=L("$ZodISODuration",(t,e)=>{e.pattern??(e.pattern=kh),Xe.init(t,e)}),bd=L("$ZodIPv4",(t,e)=>{e.pattern??(e.pattern=Ih),Xe.init(t,e),t._zod.bag.format="ipv4"}),wd=L("$ZodIPv6",(t,e)=>{e.pattern??(e.pattern=_h),Xe.init(t,e),t._zod.bag.format="ipv6",t._zod.check=s=>{try{new URL(`http://[${s.value}]`)}catch{s.issues.push({code:"invalid_format",format:"ipv6",input:s.value,inst:t,continue:!e.abort})}}}),vd=L("$ZodCIDRv4",(t,e)=>{e.pattern??(e.pattern=Fh),Xe.init(t,e)}),xd=L("$ZodCIDRv6",(t,e)=>{e.pattern??(e.pattern=Th),Xe.init(t,e),t._zod.check=s=>{const a=s.value.split("/");try{if(a.length!==2)throw new Error;const[i,r]=a;if(!r)throw new Error;const n=Number(r);if(`${n}`!==r)throw new Error;if(n<0||n>128)throw new Error;new URL(`http://[${i}]`)}catch{s.issues.push({code:"invalid_format",format:"cidrv6",input:s.value,inst:t,continue:!e.abort})}}});function il(t){if(t==="")return!0;if(t.length%4!==0)return!1;try{return atob(t),!0}catch{return!1}}const Cd=L("$ZodBase64",(t,e)=>{e.pattern??(e.pattern=Ph),Xe.init(t,e),t._zod.bag.contentEncoding="base64",t._zod.check=s=>{il(s.value)||s.issues.push({code:"invalid_format",format:"base64",input:s.value,inst:t,continue:!e.abort})}});function kd(t){if(!Jo.test(t))return!1;const e=t.replace(/[-_]/g,a=>a==="-"?"+":"/"),s=e.padEnd(Math.ceil(e.length/4)*4,"=");return il(s)}const Nd=L("$ZodBase64URL",(t,e)=>{e.pattern??(e.pattern=Jo),Xe.init(t,e),t._zod.bag.contentEncoding="base64url",t._zod.check=s=>{kd(s.value)||s.issues.push({code:"invalid_format",format:"base64url",input:s.value,inst:t,continue:!e.abort})}}),Ad=L("$ZodE164",(t,e)=>{e.pattern??(e.pattern=Eh),Xe.init(t,e)});function Sd(t,e=null){try{const s=t.split(".");if(s.length!==3)return!1;const[a]=s;if(!a)return!1;const i=JSON.parse(atob(a));return!("typ"in i&&i?.typ!=="JWT"||!i.alg||e&&(!("alg"in i)||i.alg!==e))}catch{return!1}}const Vd=L("$ZodJWT",(t,e)=>{Xe.init(t,e),t._zod.check=s=>{Sd(s.value,e.alg)||s.issues.push({code:"invalid_format",format:"jwt",input:s.value,inst:t,continue:!e.abort})}}),rl=L("$ZodNumber",(t,e)=>{Ke.init(t,e),t._zod.pattern=t._zod.bag.pattern??el,t._zod.parse=(s,a)=>{if(e.coerce)try{s.value=Number(s.value)}catch{}const i=s.value;if(typeof i=="number"&&!Number.isNaN(i)&&Number.isFinite(i))return s;const r=typeof i=="number"?Number.isNaN(i)?"NaN":Number.isFinite(i)?void 0:"Infinity":void 0;return s.issues.push({expected:"number",code:"invalid_type",input:i,inst:t,...r?{received:r}:{}}),s}}),Id=L("$ZodNumberFormat",(t,e)=>{Wh.init(t,e),rl.init(t,e)}),_d=L("$ZodBoolean",(t,e)=>{Ke.init(t,e),t._zod.pattern=Dh,t._zod.parse=(s,a)=>{if(e.coerce)try{s.value=!!s.value}catch{}const i=s.value;return typeof i=="boolean"||s.issues.push({expected:"boolean",code:"invalid_type",input:i,inst:t}),s}}),Fd=L("$ZodNull",(t,e)=>{Ke.init(t,e),t._zod.pattern=Bh,t._zod.values=new Set([null]),t._zod.parse=(s,a)=>{const i=s.value;return i===null||s.issues.push({expected:"null",code:"invalid_type",input:i,inst:t}),s}}),Td=L("$ZodUnknown",(t,e)=>{Ke.init(t,e),t._zod.parse=s=>s}),Pd=L("$ZodNever",(t,e)=>{Ke.init(t,e),t._zod.parse=(s,a)=>(s.issues.push({expected:"never",code:"invalid_type",input:s.value,inst:t}),s)});function nl(t,e,s){t.issues.length&&e.issues.push(...na(s,t.issues)),e.value[s]=t.value}const Ed=L("$ZodArray",(t,e)=>{Ke.init(t,e),t._zod.parse=(s,a)=>{const i=s.value;if(!Array.isArray(i))return s.issues.push({expected:"array",code:"invalid_type",input:i,inst:t}),s;s.value=Array(i.length);const r=[];for(let n=0;n<i.length;n++){const o=i[n],l=e.element._zod.run({value:o,issues:[]},a);l instanceof Promise?r.push(l.then(c=>nl(c,s,n))):nl(l,s,n)}return r.length?Promise.all(r).then(()=>s):s}});function Ei(t,e,s,a,i){if(t.issues.length){if(i&&!(s in a))return;e.issues.push(...na(s,t.issues))}t.value===void 0?s in a&&(e.value[s]=void 0):e.value[s]=t.value}function ol(t){const e=Object.keys(t.shape);for(const a of e)if(!t.shape?.[a]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${a}": expected a Zod schema`);const s=qu(t.shape);return{...t,keys:e,keySet:new Set(e),numKeys:e.length,optionalKeys:new Set(s)}}function ll(t,e,s,a,i,r){const n=[],o=i.keySet,l=i.catchall._zod,c=l.def.type,f=l.optout==="optional";for(const h in e){if(o.has(h))continue;if(c==="never"){n.push(h);continue}const d=l.run({value:e[h],issues:[]},a);d instanceof Promise?t.push(d.then(m=>Ei(m,s,h,e,f))):Ei(d,s,h,e,f)}return n.length&&s.issues.push({code:"unrecognized_keys",keys:n,input:e,inst:r}),t.length?Promise.all(t).then(()=>s):s}const Od=L("$ZodObject",(t,e)=>{if(Ke.init(t,e),!Object.getOwnPropertyDescriptor(e,"shape")?.get){const o=e.shape;Object.defineProperty(e,"shape",{get:()=>{const l={...o};return Object.defineProperty(e,"shape",{value:l}),l}})}const a=Ii(()=>ol(e));Me(t._zod,"propValues",()=>{const o=e.shape,l={};for(const c in o){const f=o[c]._zod;if(f.values){l[c]??(l[c]=new Set);for(const h of f.values)l[c].add(h)}}return l});const i=Ra,r=e.catchall;let n;t._zod.parse=(o,l)=>{n??(n=a.value);const c=o.value;if(!i(c))return o.issues.push({expected:"object",code:"invalid_type",input:c,inst:t}),o;o.value={};const f=[],h=n.shape;for(const d of n.keys){const m=h[d],b=m._zod.optout==="optional",I=m._zod.run({value:c[d],issues:[]},l);I instanceof Promise?f.push(I.then(M=>Ei(M,o,d,c,b))):Ei(I,o,d,c,b)}return r?ll(f,c,o,l,a.value,t):f.length?Promise.all(f).then(()=>o):o}}),Md=L("$ZodObjectJIT",(t,e)=>{Od.init(t,e);const s=t._zod.parse,a=Ii(()=>ol(e)),i=d=>{const m=new td(["shape","payload","ctx"]),b=a.value,I=v=>{const F=Wo(v);return`shape[${F}]._zod.run({ value: input[${F}], issues: [] }, ctx)`};m.write("const input = payload.value;");const M=Object.create(null);let E=0;for(const v of b.keys)M[v]=`key_${E++}`;m.write("const newResult = {};");for(const v of b.keys){const F=M[v],y=Wo(v),P=d[v]?._zod?.optout==="optional";m.write(`const ${F} = ${I(v)};`),P?m.write(`
|
|
236
236
|
if (${F}.issues.length) {
|
|
237
237
|
if (${y} in input) {
|
|
238
238
|
payload.issues = payload.issues.concat(${F}.issues.map(iss => ({
|
|
@@ -266,12 +266,12 @@ const DOUBLE_PI: f32 = 3.14159265358979323846264 * 2.;`,Pu=Object.defineProperty
|
|
|
266
266
|
newResult[${y}] = ${F}.value;
|
|
267
267
|
}
|
|
268
268
|
|
|
269
|
-
`)}m.write("payload.value = newResult;"),m.write("return payload;");const I=m.compile();return(v,F)=>I(d,v,F)};let r;const n=Ra,o=!Uo.jitless,c=o&&Ku.value,f=e.catchall;let h;t._zod.parse=(d,m)=>{h??(h=a.value);const b=d.value;return n(b)?o&&c&&m?.async===!1&&m.jitless!==!0?(r||(r=i(e.shape)),d=r(d,m),f?ll([],b,d,m,h,t):d):s(d,m):(d.issues.push({expected:"object",code:"invalid_type",input:b,inst:t}),d)}});function cl(t,e,s,a){for(const r of t)if(r.issues.length===0)return e.value=r.value,e;const i=t.filter(r=>!ra(r));return i.length===1?(e.value=i[0].value,i[0]):(e.issues.push({code:"invalid_union",input:e.value,inst:s,errors:t.map(r=>r.issues.map(n=>xs(n,a,bs())))}),e)}const fl=L("$ZodUnion",(t,e)=>{Ke.init(t,e),Me(t._zod,"optin",()=>e.options.some(i=>i._zod.optin==="optional")?"optional":void 0),Me(t._zod,"optout",()=>e.options.some(i=>i._zod.optout==="optional")?"optional":void 0),Me(t._zod,"values",()=>{if(e.options.every(i=>i._zod.values))return new Set(e.options.flatMap(i=>Array.from(i._zod.values)))}),Me(t._zod,"pattern",()=>{if(e.options.every(i=>i._zod.pattern)){const i=e.options.map(r=>r._zod.pattern);return new RegExp(`^(${i.map(r=>sn(r.source)).join("|")})$`)}});const s=e.options.length===1,a=e.options[0]._zod.run;t._zod.parse=(i,r)=>{if(s)return a(i,r);let n=!1;const o=[];for(const l of e.options){const c=l._zod.run({value:i.value,issues:[]},r);if(c instanceof Promise)o.push(c),n=!0;else{if(c.issues.length===0)return c;o.push(c)}}return n?Promise.all(o).then(l=>cl(l,i,t,r)):cl(o,i,t,r)}}),Rd=L("$ZodDiscriminatedUnion",(t,e)=>{e.inclusive=!1,fl.init(t,e);const s=t._zod.parse;Me(t._zod,"propValues",()=>{const i={};for(const r of e.options){const n=r._zod.propValues;if(!n||Object.keys(n).length===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(r)}"`);for(const[o,l]of Object.entries(n)){i[o]||(i[o]=new Set);for(const c of l)i[o].add(c)}}return i});const a=Ii(()=>{const i=e.options,r=new Map;for(const n of i){const o=n._zod.propValues?.[e.discriminator];if(!o||o.size===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(n)}"`);for(const l of o){if(r.has(l))throw new Error(`Duplicate discriminator value "${String(l)}"`);r.set(l,n)}}return r});t._zod.parse=(i,r)=>{const n=i.value;if(!Ra(n))return i.issues.push({code:"invalid_type",expected:"object",input:n,inst:t}),i;const o=a.value.get(n?.[e.discriminator]);return o?o._zod.run(i,r):e.unionFallback?s(i,r):(i.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:e.discriminator,input:n,path:[e.discriminator],inst:t}),i)}}),zd=L("$ZodIntersection",(t,e)=>{Ke.init(t,e),t._zod.parse=(s,a)=>{const i=s.value,r=e.left._zod.run({value:i,issues:[]},a),n=e.right._zod.run({value:i,issues:[]},a);return r instanceof Promise||n instanceof Promise?Promise.all([r,n]).then(([l,c])=>ul(s,l,c)):ul(s,r,n)}});function ln(t,e){if(t===e)return{valid:!0,data:t};if(t instanceof Date&&e instanceof Date&&+t==+e)return{valid:!0,data:t};if(aa(t)&&aa(e)){const s=Object.keys(e),a=Object.keys(t).filter(r=>s.indexOf(r)!==-1),i={...t,...e};for(const r of a){const n=ln(t[r],e[r]);if(!n.valid)return{valid:!1,mergeErrorPath:[r,...n.mergeErrorPath]};i[r]=n.data}return{valid:!0,data:i}}if(Array.isArray(t)&&Array.isArray(e)){if(t.length!==e.length)return{valid:!1,mergeErrorPath:[]};const s=[];for(let a=0;a<t.length;a++){const i=t[a],r=e[a],n=ln(i,r);if(!n.valid)return{valid:!1,mergeErrorPath:[a,...n.mergeErrorPath]};s.push(n.data)}return{valid:!0,data:s}}return{valid:!1,mergeErrorPath:[]}}function ul(t,e,s){const a=new Map;let i;for(const o of e.issues)if(o.code==="unrecognized_keys"){i??(i=o);for(const l of o.keys)a.has(l)||a.set(l,{}),a.get(l).l=!0}else t.issues.push(o);for(const o of s.issues)if(o.code==="unrecognized_keys")for(const l of o.keys)a.has(l)||a.set(l,{}),a.get(l).r=!0;else t.issues.push(o);const r=[...a].filter(([,o])=>o.l&&o.r).map(([o])=>o);if(r.length&&i&&t.issues.push({...i,keys:r}),ra(t))return t;const n=ln(e.value,s.value);if(!n.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(n.mergeErrorPath)}`);return t.value=n.data,t}const Ld=L("$ZodRecord",(t,e)=>{Ke.init(t,e),t._zod.parse=(s,a)=>{const i=s.value;if(!aa(i))return s.issues.push({expected:"record",code:"invalid_type",input:i,inst:t}),s;const r=[],n=e.keyType._zod.values;if(n){s.value={};const o=new Set;for(const c of n)if(typeof c=="string"||typeof c=="number"||typeof c=="symbol"){o.add(typeof c=="number"?c.toString():c);const f=e.valueType._zod.run({value:i[c],issues:[]},a);f instanceof Promise?r.push(f.then(h=>{h.issues.length&&s.issues.push(...na(c,h.issues)),s.value[c]=h.value})):(f.issues.length&&s.issues.push(...na(c,f.issues)),s.value[c]=f.value)}let l;for(const c in i)o.has(c)||(l=l??[],l.push(c));l&&l.length>0&&s.issues.push({code:"unrecognized_keys",input:i,inst:t,keys:l})}else{s.value={};for(const o of Reflect.ownKeys(i)){if(o==="__proto__")continue;let l=e.keyType._zod.run({value:o,issues:[]},a);if(l instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(typeof o=="string"&&el.test(o)&&l.issues.length){const h=e.keyType._zod.run({value:Number(o),issues:[]},a);if(h instanceof Promise)throw new Error("Async schemas not supported in object keys currently");h.issues.length===0&&(l=h)}if(l.issues.length){e.mode==="loose"?s.value[o]=i[o]:s.issues.push({code:"invalid_key",origin:"record",issues:l.issues.map(h=>xs(h,a,bs())),input:o,path:[o],inst:t});continue}const f=e.valueType._zod.run({value:i[o],issues:[]},a);f instanceof Promise?r.push(f.then(h=>{h.issues.length&&s.issues.push(...na(o,h.issues)),s.value[l.value]=h.value})):(f.issues.length&&s.issues.push(...na(o,f.issues)),s.value[l.value]=f.value)}}return r.length?Promise.all(r).then(()=>s):s}}),Dd=L("$ZodEnum",(t,e)=>{Ke.init(t,e);const s=Zo(e.entries),a=new Set(s);t._zod.values=a,t._zod.pattern=new RegExp(`^(${s.filter(i=>Xu.has(typeof i)).map(i=>typeof i=="string"?ia(i):i.toString()).join("|")})$`),t._zod.parse=(i,r)=>{const n=i.value;return a.has(n)||i.issues.push({code:"invalid_value",values:s,input:n,inst:t}),i}}),Bd=L("$ZodLiteral",(t,e)=>{if(Ke.init(t,e),e.values.length===0)throw new Error("Cannot create literal schema with no valid values");const s=new Set(e.values);t._zod.values=s,t._zod.pattern=new RegExp(`^(${e.values.map(a=>typeof a=="string"?ia(a):a?ia(a.toString()):String(a)).join("|")})$`),t._zod.parse=(a,i)=>{const r=a.value;return s.has(r)||a.issues.push({code:"invalid_value",values:e.values,input:r,inst:t}),a}}),Ud=L("$ZodTransform",(t,e)=>{Ke.init(t,e),t._zod.parse=(s,a)=>{if(a.direction==="backward")throw new Bo(t.constructor.name);const i=e.transform(s.value,s);if(a.async)return(i instanceof Promise?i:Promise.resolve(i)).then(n=>(s.value=n,s));if(i instanceof Promise)throw new sa;return s.value=i,s}});function hl(t,e){return t.issues.length&&e===void 0?{issues:[],value:void 0}:t}const dl=L("$ZodOptional",(t,e)=>{Ke.init(t,e),t._zod.optin="optional",t._zod.optout="optional",Me(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,void 0]):void 0),Me(t._zod,"pattern",()=>{const s=e.innerType._zod.pattern;return s?new RegExp(`^(${sn(s.source)})?$`):void 0}),t._zod.parse=(s,a)=>{if(e.innerType._zod.optin==="optional"){const i=e.innerType._zod.run(s,a);return i instanceof Promise?i.then(r=>hl(r,s.value)):hl(i,s.value)}return s.value===void 0?s:e.innerType._zod.run(s,a)}}),Zd=L("$ZodExactOptional",(t,e)=>{dl.init(t,e),Me(t._zod,"values",()=>e.innerType._zod.values),Me(t._zod,"pattern",()=>e.innerType._zod.pattern),t._zod.parse=(s,a)=>e.innerType._zod.run(s,a)}),Gd=L("$ZodNullable",(t,e)=>{Ke.init(t,e),Me(t._zod,"optin",()=>e.innerType._zod.optin),Me(t._zod,"optout",()=>e.innerType._zod.optout),Me(t._zod,"pattern",()=>{const s=e.innerType._zod.pattern;return s?new RegExp(`^(${sn(s.source)}|null)$`):void 0}),Me(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,null]):void 0),t._zod.parse=(s,a)=>s.value===null?s:e.innerType._zod.run(s,a)}),Wd=L("$ZodDefault",(t,e)=>{Ke.init(t,e),t._zod.optin="optional",Me(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(s,a)=>{if(a.direction==="backward")return e.innerType._zod.run(s,a);if(s.value===void 0)return s.value=e.defaultValue,s;const i=e.innerType._zod.run(s,a);return i instanceof Promise?i.then(r=>gl(r,e)):gl(i,e)}});function gl(t,e){return t.value===void 0&&(t.value=e.defaultValue),t}const Yd=L("$ZodPrefault",(t,e)=>{Ke.init(t,e),t._zod.optin="optional",Me(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(s,a)=>(a.direction==="backward"||s.value===void 0&&(s.value=e.defaultValue),e.innerType._zod.run(s,a))}),Hd=L("$ZodNonOptional",(t,e)=>{Ke.init(t,e),Me(t._zod,"values",()=>{const s=e.innerType._zod.values;return s?new Set([...s].filter(a=>a!==void 0)):void 0}),t._zod.parse=(s,a)=>{const i=e.innerType._zod.run(s,a);return i instanceof Promise?i.then(r=>pl(r,t)):pl(i,t)}});function pl(t,e){return!t.issues.length&&t.value===void 0&&t.issues.push({code:"invalid_type",expected:"nonoptional",input:t.value,inst:e}),t}const jd=L("$ZodCatch",(t,e)=>{Ke.init(t,e),Me(t._zod,"optin",()=>e.innerType._zod.optin),Me(t._zod,"optout",()=>e.innerType._zod.optout),Me(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(s,a)=>{if(a.direction==="backward")return e.innerType._zod.run(s,a);const i=e.innerType._zod.run(s,a);return i instanceof Promise?i.then(r=>(s.value=r.value,r.issues.length&&(s.value=e.catchValue({...s,error:{issues:r.issues.map(n=>xs(n,a,bs()))},input:s.value}),s.issues=[]),s)):(s.value=i.value,i.issues.length&&(s.value=e.catchValue({...s,error:{issues:i.issues.map(r=>xs(r,a,bs()))},input:s.value}),s.issues=[]),s)}}),Kd=L("$ZodPipe",(t,e)=>{Ke.init(t,e),Me(t._zod,"values",()=>e.in._zod.values),Me(t._zod,"optin",()=>e.in._zod.optin),Me(t._zod,"optout",()=>e.out._zod.optout),Me(t._zod,"propValues",()=>e.in._zod.propValues),t._zod.parse=(s,a)=>{if(a.direction==="backward"){const r=e.out._zod.run(s,a);return r instanceof Promise?r.then(n=>Oi(n,e.in,a)):Oi(r,e.in,a)}const i=e.in._zod.run(s,a);return i instanceof Promise?i.then(r=>Oi(r,e.out,a)):Oi(i,e.out,a)}});function Oi(t,e,s){return t.issues.length?(t.aborted=!0,t):e._zod.run({value:t.value,issues:t.issues},s)}const Xd=L("$ZodReadonly",(t,e)=>{Ke.init(t,e),Me(t._zod,"propValues",()=>e.innerType._zod.propValues),Me(t._zod,"values",()=>e.innerType._zod.values),Me(t._zod,"optin",()=>e.innerType?._zod?.optin),Me(t._zod,"optout",()=>e.innerType?._zod?.optout),t._zod.parse=(s,a)=>{if(a.direction==="backward")return e.innerType._zod.run(s,a);const i=e.innerType._zod.run(s,a);return i instanceof Promise?i.then(ml):ml(i)}});function ml(t){return t.value=Object.freeze(t.value),t}const qd=L("$ZodCustom",(t,e)=>{At.init(t,e),Ke.init(t,e),t._zod.parse=(s,a)=>s,t._zod.check=s=>{const a=s.value,i=e.fn(a);if(i instanceof Promise)return i.then(r=>yl(r,s,a,t));yl(i,s,a,t)}});function yl(t,e,s,a){if(!t){const i={code:"custom",input:s,inst:a,path:[...a._zod.def.path??[]],continue:!a._zod.def.abort};a._zod.def.params&&(i.params=a._zod.def.params),e.issues.push(za(i))}}var bl;class Jd{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...s){const a=s[0];return this._map.set(e,a),a&&typeof a=="object"&&"id"in a&&this._idmap.set(a.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){const s=this._map.get(e);return s&&typeof s=="object"&&"id"in s&&this._idmap.delete(s.id),this._map.delete(e),this}get(e){const s=e._zod.parent;if(s){const a={...this.get(s)??{}};delete a.id;const i={...a,...this._map.get(e)};return Object.keys(i).length?i:void 0}return this._map.get(e)}has(e){return this._map.has(e)}}function Qd(){return new Jd}(bl=globalThis).__zod_globalRegistry??(bl.__zod_globalRegistry=Qd());const La=globalThis.__zod_globalRegistry;function $d(t,e){return new t({type:"string",...oe(e)})}function eg(t,e){return new t({type:"string",format:"email",check:"string_format",abort:!1,...oe(e)})}function wl(t,e){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...oe(e)})}function tg(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...oe(e)})}function sg(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...oe(e)})}function ag(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...oe(e)})}function ig(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...oe(e)})}function rg(t,e){return new t({type:"string",format:"url",check:"string_format",abort:!1,...oe(e)})}function ng(t,e){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...oe(e)})}function og(t,e){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...oe(e)})}function lg(t,e){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...oe(e)})}function cg(t,e){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...oe(e)})}function fg(t,e){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...oe(e)})}function ug(t,e){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...oe(e)})}function hg(t,e){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...oe(e)})}function dg(t,e){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...oe(e)})}function gg(t,e){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...oe(e)})}function pg(t,e){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...oe(e)})}function mg(t,e){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...oe(e)})}function yg(t,e){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...oe(e)})}function bg(t,e){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...oe(e)})}function wg(t,e){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...oe(e)})}function vg(t,e){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...oe(e)})}function xg(t,e){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...oe(e)})}function Cg(t,e){return new t({type:"string",format:"date",check:"string_format",...oe(e)})}function kg(t,e){return new t({type:"string",format:"time",check:"string_format",precision:null,...oe(e)})}function Ng(t,e){return new t({type:"string",format:"duration",check:"string_format",...oe(e)})}function Ag(t,e){return new t({type:"number",checks:[],...oe(e)})}function Sg(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...oe(e)})}function Vg(t,e){return new t({type:"boolean",...oe(e)})}function Ig(t,e){return new t({type:"null",...oe(e)})}function _g(t){return new t({type:"unknown"})}function Fg(t,e){return new t({type:"never",...oe(e)})}function vl(t,e){return new sl({check:"less_than",...oe(e),value:t,inclusive:!1})}function cn(t,e){return new sl({check:"less_than",...oe(e),value:t,inclusive:!0})}function xl(t,e){return new al({check:"greater_than",...oe(e),value:t,inclusive:!1})}function fn(t,e){return new al({check:"greater_than",...oe(e),value:t,inclusive:!0})}function Cl(t,e){return new Gh({check:"multiple_of",...oe(e),value:t})}function kl(t,e){return new Yh({check:"max_length",...oe(e),maximum:t})}function Mi(t,e){return new Hh({check:"min_length",...oe(e),minimum:t})}function Nl(t,e){return new jh({check:"length_equals",...oe(e),length:t})}function Tg(t,e){return new Kh({check:"string_format",format:"regex",...oe(e),pattern:t})}function Pg(t){return new Xh({check:"string_format",format:"lowercase",...oe(t)})}function Eg(t){return new qh({check:"string_format",format:"uppercase",...oe(t)})}function Og(t,e){return new Jh({check:"string_format",format:"includes",...oe(e),includes:t})}function Mg(t,e){return new Qh({check:"string_format",format:"starts_with",...oe(e),prefix:t})}function Rg(t,e){return new $h({check:"string_format",format:"ends_with",...oe(e),suffix:t})}function oa(t){return new ed({check:"overwrite",tx:t})}function zg(t){return oa(e=>e.normalize(t))}function Lg(){return oa(t=>t.trim())}function Dg(){return oa(t=>t.toLowerCase())}function Bg(){return oa(t=>t.toUpperCase())}function Ug(){return oa(t=>ju(t))}function Zg(t,e,s){return new t({type:"array",element:e,...oe(s)})}function Gg(t,e,s){return new t({type:"custom",check:"custom",fn:e,...oe(s)})}function Wg(t){const e=Yg(s=>(s.addIssue=a=>{if(typeof a=="string")s.issues.push(za(a,s.value,e._zod.def));else{const i=a;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=s.value),i.inst??(i.inst=e),i.continue??(i.continue=!e._zod.def.abort),s.issues.push(za(i))}},t(s.value,s)));return e}function Yg(t,e){const s=new At({check:"custom",...oe(e)});return s._zod.check=t,s}function Al(t){let e=t?.target??"draft-2020-12";return e==="draft-4"&&(e="draft-04"),e==="draft-7"&&(e="draft-07"),{processors:t.processors??{},metadataRegistry:t?.metadata??La,target:e,unrepresentable:t?.unrepresentable??"throw",override:t?.override??(()=>{}),io:t?.io??"output",counter:0,seen:new Map,cycles:t?.cycles??"ref",reused:t?.reused??"inline",external:t?.external??void 0}}function nt(t,e,s={path:[],schemaPath:[]}){var a;const i=t._zod.def,r=e.seen.get(t);if(r)return r.count++,s.schemaPath.includes(t)&&(r.cycle=s.path),r.schema;const n={schema:{},count:1,cycle:void 0,path:s.path};e.seen.set(t,n);const o=t._zod.toJSONSchema?.();if(o)n.schema=o;else{const f={...s,schemaPath:[...s.schemaPath,t],path:s.path};if(t._zod.processJSONSchema)t._zod.processJSONSchema(e,n.schema,f);else{const d=n.schema,m=e.processors[i.type];if(!m)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${i.type}`);m(t,e,d,f)}const h=t._zod.parent;h&&(n.ref||(n.ref=h),nt(h,e,f),e.seen.get(h).isParent=!0)}const l=e.metadataRegistry.get(t);return l&&Object.assign(n.schema,l),e.io==="input"&&Ct(t)&&(delete n.schema.examples,delete n.schema.default),e.io==="input"&&n.schema._prefault&&((a=n.schema).default??(a.default=n.schema._prefault)),delete n.schema._prefault,e.seen.get(t).schema}function Sl(t,e){const s=t.seen.get(e);if(!s)throw new Error("Unprocessed schema. This is a bug in Zod.");const a=new Map;for(const n of t.seen.entries()){const o=t.metadataRegistry.get(n[0])?.id;if(o){const l=a.get(o);if(l&&l!==n[0])throw new Error(`Duplicate schema id "${o}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);a.set(o,n[0])}}const i=n=>{const o=t.target==="draft-2020-12"?"$defs":"definitions";if(t.external){const h=t.external.registry.get(n[0])?.id,d=t.external.uri??(b=>b);if(h)return{ref:d(h)};const m=n[1].defId??n[1].schema.id??`schema${t.counter++}`;return n[1].defId=m,{defId:m,ref:`${d("__shared")}#/${o}/${m}`}}if(n[1]===s)return{ref:"#"};const c=`#/${o}/`,f=n[1].schema.id??`__schema${t.counter++}`;return{defId:f,ref:c+f}},r=n=>{if(n[1].schema.$ref)return;const o=n[1],{ref:l,defId:c}=i(n);o.def={...o.schema},c&&(o.defId=c);const f=o.schema;for(const h in f)delete f[h];f.$ref=l};if(t.cycles==="throw")for(const n of t.seen.entries()){const o=n[1];if(o.cycle)throw new Error(`Cycle detected: #/${o.cycle?.join("/")}/<root>
|
|
269
|
+
`)}m.write("payload.value = newResult;"),m.write("return payload;");const V=m.compile();return(v,F)=>V(d,v,F)};let r;const n=Ra,o=!Uo.jitless,c=o&&Ku.value,f=e.catchall;let h;t._zod.parse=(d,m)=>{h??(h=a.value);const b=d.value;return n(b)?o&&c&&m?.async===!1&&m.jitless!==!0?(r||(r=i(e.shape)),d=r(d,m),f?ll([],b,d,m,h,t):d):s(d,m):(d.issues.push({expected:"object",code:"invalid_type",input:b,inst:t}),d)}});function cl(t,e,s,a){for(const r of t)if(r.issues.length===0)return e.value=r.value,e;const i=t.filter(r=>!ra(r));return i.length===1?(e.value=i[0].value,i[0]):(e.issues.push({code:"invalid_union",input:e.value,inst:s,errors:t.map(r=>r.issues.map(n=>xs(n,a,bs())))}),e)}const fl=L("$ZodUnion",(t,e)=>{Ke.init(t,e),Me(t._zod,"optin",()=>e.options.some(i=>i._zod.optin==="optional")?"optional":void 0),Me(t._zod,"optout",()=>e.options.some(i=>i._zod.optout==="optional")?"optional":void 0),Me(t._zod,"values",()=>{if(e.options.every(i=>i._zod.values))return new Set(e.options.flatMap(i=>Array.from(i._zod.values)))}),Me(t._zod,"pattern",()=>{if(e.options.every(i=>i._zod.pattern)){const i=e.options.map(r=>r._zod.pattern);return new RegExp(`^(${i.map(r=>sn(r.source)).join("|")})$`)}});const s=e.options.length===1,a=e.options[0]._zod.run;t._zod.parse=(i,r)=>{if(s)return a(i,r);let n=!1;const o=[];for(const l of e.options){const c=l._zod.run({value:i.value,issues:[]},r);if(c instanceof Promise)o.push(c),n=!0;else{if(c.issues.length===0)return c;o.push(c)}}return n?Promise.all(o).then(l=>cl(l,i,t,r)):cl(o,i,t,r)}}),Rd=L("$ZodDiscriminatedUnion",(t,e)=>{e.inclusive=!1,fl.init(t,e);const s=t._zod.parse;Me(t._zod,"propValues",()=>{const i={};for(const r of e.options){const n=r._zod.propValues;if(!n||Object.keys(n).length===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(r)}"`);for(const[o,l]of Object.entries(n)){i[o]||(i[o]=new Set);for(const c of l)i[o].add(c)}}return i});const a=Ii(()=>{const i=e.options,r=new Map;for(const n of i){const o=n._zod.propValues?.[e.discriminator];if(!o||o.size===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(n)}"`);for(const l of o){if(r.has(l))throw new Error(`Duplicate discriminator value "${String(l)}"`);r.set(l,n)}}return r});t._zod.parse=(i,r)=>{const n=i.value;if(!Ra(n))return i.issues.push({code:"invalid_type",expected:"object",input:n,inst:t}),i;const o=a.value.get(n?.[e.discriminator]);return o?o._zod.run(i,r):e.unionFallback?s(i,r):(i.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:e.discriminator,input:n,path:[e.discriminator],inst:t}),i)}}),zd=L("$ZodIntersection",(t,e)=>{Ke.init(t,e),t._zod.parse=(s,a)=>{const i=s.value,r=e.left._zod.run({value:i,issues:[]},a),n=e.right._zod.run({value:i,issues:[]},a);return r instanceof Promise||n instanceof Promise?Promise.all([r,n]).then(([l,c])=>ul(s,l,c)):ul(s,r,n)}});function ln(t,e){if(t===e)return{valid:!0,data:t};if(t instanceof Date&&e instanceof Date&&+t==+e)return{valid:!0,data:t};if(aa(t)&&aa(e)){const s=Object.keys(e),a=Object.keys(t).filter(r=>s.indexOf(r)!==-1),i={...t,...e};for(const r of a){const n=ln(t[r],e[r]);if(!n.valid)return{valid:!1,mergeErrorPath:[r,...n.mergeErrorPath]};i[r]=n.data}return{valid:!0,data:i}}if(Array.isArray(t)&&Array.isArray(e)){if(t.length!==e.length)return{valid:!1,mergeErrorPath:[]};const s=[];for(let a=0;a<t.length;a++){const i=t[a],r=e[a],n=ln(i,r);if(!n.valid)return{valid:!1,mergeErrorPath:[a,...n.mergeErrorPath]};s.push(n.data)}return{valid:!0,data:s}}return{valid:!1,mergeErrorPath:[]}}function ul(t,e,s){const a=new Map;let i;for(const o of e.issues)if(o.code==="unrecognized_keys"){i??(i=o);for(const l of o.keys)a.has(l)||a.set(l,{}),a.get(l).l=!0}else t.issues.push(o);for(const o of s.issues)if(o.code==="unrecognized_keys")for(const l of o.keys)a.has(l)||a.set(l,{}),a.get(l).r=!0;else t.issues.push(o);const r=[...a].filter(([,o])=>o.l&&o.r).map(([o])=>o);if(r.length&&i&&t.issues.push({...i,keys:r}),ra(t))return t;const n=ln(e.value,s.value);if(!n.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(n.mergeErrorPath)}`);return t.value=n.data,t}const Ld=L("$ZodRecord",(t,e)=>{Ke.init(t,e),t._zod.parse=(s,a)=>{const i=s.value;if(!aa(i))return s.issues.push({expected:"record",code:"invalid_type",input:i,inst:t}),s;const r=[],n=e.keyType._zod.values;if(n){s.value={};const o=new Set;for(const c of n)if(typeof c=="string"||typeof c=="number"||typeof c=="symbol"){o.add(typeof c=="number"?c.toString():c);const f=e.valueType._zod.run({value:i[c],issues:[]},a);f instanceof Promise?r.push(f.then(h=>{h.issues.length&&s.issues.push(...na(c,h.issues)),s.value[c]=h.value})):(f.issues.length&&s.issues.push(...na(c,f.issues)),s.value[c]=f.value)}let l;for(const c in i)o.has(c)||(l=l??[],l.push(c));l&&l.length>0&&s.issues.push({code:"unrecognized_keys",input:i,inst:t,keys:l})}else{s.value={};for(const o of Reflect.ownKeys(i)){if(o==="__proto__")continue;let l=e.keyType._zod.run({value:o,issues:[]},a);if(l instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(typeof o=="string"&&el.test(o)&&l.issues.length){const h=e.keyType._zod.run({value:Number(o),issues:[]},a);if(h instanceof Promise)throw new Error("Async schemas not supported in object keys currently");h.issues.length===0&&(l=h)}if(l.issues.length){e.mode==="loose"?s.value[o]=i[o]:s.issues.push({code:"invalid_key",origin:"record",issues:l.issues.map(h=>xs(h,a,bs())),input:o,path:[o],inst:t});continue}const f=e.valueType._zod.run({value:i[o],issues:[]},a);f instanceof Promise?r.push(f.then(h=>{h.issues.length&&s.issues.push(...na(o,h.issues)),s.value[l.value]=h.value})):(f.issues.length&&s.issues.push(...na(o,f.issues)),s.value[l.value]=f.value)}}return r.length?Promise.all(r).then(()=>s):s}}),Dd=L("$ZodEnum",(t,e)=>{Ke.init(t,e);const s=Zo(e.entries),a=new Set(s);t._zod.values=a,t._zod.pattern=new RegExp(`^(${s.filter(i=>Xu.has(typeof i)).map(i=>typeof i=="string"?ia(i):i.toString()).join("|")})$`),t._zod.parse=(i,r)=>{const n=i.value;return a.has(n)||i.issues.push({code:"invalid_value",values:s,input:n,inst:t}),i}}),Bd=L("$ZodLiteral",(t,e)=>{if(Ke.init(t,e),e.values.length===0)throw new Error("Cannot create literal schema with no valid values");const s=new Set(e.values);t._zod.values=s,t._zod.pattern=new RegExp(`^(${e.values.map(a=>typeof a=="string"?ia(a):a?ia(a.toString()):String(a)).join("|")})$`),t._zod.parse=(a,i)=>{const r=a.value;return s.has(r)||a.issues.push({code:"invalid_value",values:e.values,input:r,inst:t}),a}}),Ud=L("$ZodTransform",(t,e)=>{Ke.init(t,e),t._zod.parse=(s,a)=>{if(a.direction==="backward")throw new Bo(t.constructor.name);const i=e.transform(s.value,s);if(a.async)return(i instanceof Promise?i:Promise.resolve(i)).then(n=>(s.value=n,s));if(i instanceof Promise)throw new sa;return s.value=i,s}});function hl(t,e){return t.issues.length&&e===void 0?{issues:[],value:void 0}:t}const dl=L("$ZodOptional",(t,e)=>{Ke.init(t,e),t._zod.optin="optional",t._zod.optout="optional",Me(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,void 0]):void 0),Me(t._zod,"pattern",()=>{const s=e.innerType._zod.pattern;return s?new RegExp(`^(${sn(s.source)})?$`):void 0}),t._zod.parse=(s,a)=>{if(e.innerType._zod.optin==="optional"){const i=e.innerType._zod.run(s,a);return i instanceof Promise?i.then(r=>hl(r,s.value)):hl(i,s.value)}return s.value===void 0?s:e.innerType._zod.run(s,a)}}),Zd=L("$ZodExactOptional",(t,e)=>{dl.init(t,e),Me(t._zod,"values",()=>e.innerType._zod.values),Me(t._zod,"pattern",()=>e.innerType._zod.pattern),t._zod.parse=(s,a)=>e.innerType._zod.run(s,a)}),Gd=L("$ZodNullable",(t,e)=>{Ke.init(t,e),Me(t._zod,"optin",()=>e.innerType._zod.optin),Me(t._zod,"optout",()=>e.innerType._zod.optout),Me(t._zod,"pattern",()=>{const s=e.innerType._zod.pattern;return s?new RegExp(`^(${sn(s.source)}|null)$`):void 0}),Me(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,null]):void 0),t._zod.parse=(s,a)=>s.value===null?s:e.innerType._zod.run(s,a)}),Wd=L("$ZodDefault",(t,e)=>{Ke.init(t,e),t._zod.optin="optional",Me(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(s,a)=>{if(a.direction==="backward")return e.innerType._zod.run(s,a);if(s.value===void 0)return s.value=e.defaultValue,s;const i=e.innerType._zod.run(s,a);return i instanceof Promise?i.then(r=>gl(r,e)):gl(i,e)}});function gl(t,e){return t.value===void 0&&(t.value=e.defaultValue),t}const Yd=L("$ZodPrefault",(t,e)=>{Ke.init(t,e),t._zod.optin="optional",Me(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(s,a)=>(a.direction==="backward"||s.value===void 0&&(s.value=e.defaultValue),e.innerType._zod.run(s,a))}),Hd=L("$ZodNonOptional",(t,e)=>{Ke.init(t,e),Me(t._zod,"values",()=>{const s=e.innerType._zod.values;return s?new Set([...s].filter(a=>a!==void 0)):void 0}),t._zod.parse=(s,a)=>{const i=e.innerType._zod.run(s,a);return i instanceof Promise?i.then(r=>pl(r,t)):pl(i,t)}});function pl(t,e){return!t.issues.length&&t.value===void 0&&t.issues.push({code:"invalid_type",expected:"nonoptional",input:t.value,inst:e}),t}const jd=L("$ZodCatch",(t,e)=>{Ke.init(t,e),Me(t._zod,"optin",()=>e.innerType._zod.optin),Me(t._zod,"optout",()=>e.innerType._zod.optout),Me(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(s,a)=>{if(a.direction==="backward")return e.innerType._zod.run(s,a);const i=e.innerType._zod.run(s,a);return i instanceof Promise?i.then(r=>(s.value=r.value,r.issues.length&&(s.value=e.catchValue({...s,error:{issues:r.issues.map(n=>xs(n,a,bs()))},input:s.value}),s.issues=[]),s)):(s.value=i.value,i.issues.length&&(s.value=e.catchValue({...s,error:{issues:i.issues.map(r=>xs(r,a,bs()))},input:s.value}),s.issues=[]),s)}}),Kd=L("$ZodPipe",(t,e)=>{Ke.init(t,e),Me(t._zod,"values",()=>e.in._zod.values),Me(t._zod,"optin",()=>e.in._zod.optin),Me(t._zod,"optout",()=>e.out._zod.optout),Me(t._zod,"propValues",()=>e.in._zod.propValues),t._zod.parse=(s,a)=>{if(a.direction==="backward"){const r=e.out._zod.run(s,a);return r instanceof Promise?r.then(n=>Oi(n,e.in,a)):Oi(r,e.in,a)}const i=e.in._zod.run(s,a);return i instanceof Promise?i.then(r=>Oi(r,e.out,a)):Oi(i,e.out,a)}});function Oi(t,e,s){return t.issues.length?(t.aborted=!0,t):e._zod.run({value:t.value,issues:t.issues},s)}const Xd=L("$ZodReadonly",(t,e)=>{Ke.init(t,e),Me(t._zod,"propValues",()=>e.innerType._zod.propValues),Me(t._zod,"values",()=>e.innerType._zod.values),Me(t._zod,"optin",()=>e.innerType?._zod?.optin),Me(t._zod,"optout",()=>e.innerType?._zod?.optout),t._zod.parse=(s,a)=>{if(a.direction==="backward")return e.innerType._zod.run(s,a);const i=e.innerType._zod.run(s,a);return i instanceof Promise?i.then(ml):ml(i)}});function ml(t){return t.value=Object.freeze(t.value),t}const qd=L("$ZodCustom",(t,e)=>{At.init(t,e),Ke.init(t,e),t._zod.parse=(s,a)=>s,t._zod.check=s=>{const a=s.value,i=e.fn(a);if(i instanceof Promise)return i.then(r=>yl(r,s,a,t));yl(i,s,a,t)}});function yl(t,e,s,a){if(!t){const i={code:"custom",input:s,inst:a,path:[...a._zod.def.path??[]],continue:!a._zod.def.abort};a._zod.def.params&&(i.params=a._zod.def.params),e.issues.push(za(i))}}var bl;class Jd{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...s){const a=s[0];return this._map.set(e,a),a&&typeof a=="object"&&"id"in a&&this._idmap.set(a.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){const s=this._map.get(e);return s&&typeof s=="object"&&"id"in s&&this._idmap.delete(s.id),this._map.delete(e),this}get(e){const s=e._zod.parent;if(s){const a={...this.get(s)??{}};delete a.id;const i={...a,...this._map.get(e)};return Object.keys(i).length?i:void 0}return this._map.get(e)}has(e){return this._map.has(e)}}function Qd(){return new Jd}(bl=globalThis).__zod_globalRegistry??(bl.__zod_globalRegistry=Qd());const La=globalThis.__zod_globalRegistry;function $d(t,e){return new t({type:"string",...oe(e)})}function eg(t,e){return new t({type:"string",format:"email",check:"string_format",abort:!1,...oe(e)})}function wl(t,e){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...oe(e)})}function tg(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...oe(e)})}function sg(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...oe(e)})}function ag(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...oe(e)})}function ig(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...oe(e)})}function rg(t,e){return new t({type:"string",format:"url",check:"string_format",abort:!1,...oe(e)})}function ng(t,e){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...oe(e)})}function og(t,e){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...oe(e)})}function lg(t,e){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...oe(e)})}function cg(t,e){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...oe(e)})}function fg(t,e){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...oe(e)})}function ug(t,e){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...oe(e)})}function hg(t,e){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...oe(e)})}function dg(t,e){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...oe(e)})}function gg(t,e){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...oe(e)})}function pg(t,e){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...oe(e)})}function mg(t,e){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...oe(e)})}function yg(t,e){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...oe(e)})}function bg(t,e){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...oe(e)})}function wg(t,e){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...oe(e)})}function vg(t,e){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...oe(e)})}function xg(t,e){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...oe(e)})}function Cg(t,e){return new t({type:"string",format:"date",check:"string_format",...oe(e)})}function kg(t,e){return new t({type:"string",format:"time",check:"string_format",precision:null,...oe(e)})}function Ng(t,e){return new t({type:"string",format:"duration",check:"string_format",...oe(e)})}function Ag(t,e){return new t({type:"number",checks:[],...oe(e)})}function Sg(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...oe(e)})}function Vg(t,e){return new t({type:"boolean",...oe(e)})}function Ig(t,e){return new t({type:"null",...oe(e)})}function _g(t){return new t({type:"unknown"})}function Fg(t,e){return new t({type:"never",...oe(e)})}function vl(t,e){return new sl({check:"less_than",...oe(e),value:t,inclusive:!1})}function cn(t,e){return new sl({check:"less_than",...oe(e),value:t,inclusive:!0})}function xl(t,e){return new al({check:"greater_than",...oe(e),value:t,inclusive:!1})}function fn(t,e){return new al({check:"greater_than",...oe(e),value:t,inclusive:!0})}function Cl(t,e){return new Gh({check:"multiple_of",...oe(e),value:t})}function kl(t,e){return new Yh({check:"max_length",...oe(e),maximum:t})}function Mi(t,e){return new Hh({check:"min_length",...oe(e),minimum:t})}function Nl(t,e){return new jh({check:"length_equals",...oe(e),length:t})}function Tg(t,e){return new Kh({check:"string_format",format:"regex",...oe(e),pattern:t})}function Pg(t){return new Xh({check:"string_format",format:"lowercase",...oe(t)})}function Eg(t){return new qh({check:"string_format",format:"uppercase",...oe(t)})}function Og(t,e){return new Jh({check:"string_format",format:"includes",...oe(e),includes:t})}function Mg(t,e){return new Qh({check:"string_format",format:"starts_with",...oe(e),prefix:t})}function Rg(t,e){return new $h({check:"string_format",format:"ends_with",...oe(e),suffix:t})}function oa(t){return new ed({check:"overwrite",tx:t})}function zg(t){return oa(e=>e.normalize(t))}function Lg(){return oa(t=>t.trim())}function Dg(){return oa(t=>t.toLowerCase())}function Bg(){return oa(t=>t.toUpperCase())}function Ug(){return oa(t=>ju(t))}function Zg(t,e,s){return new t({type:"array",element:e,...oe(s)})}function Gg(t,e,s){return new t({type:"custom",check:"custom",fn:e,...oe(s)})}function Wg(t){const e=Yg(s=>(s.addIssue=a=>{if(typeof a=="string")s.issues.push(za(a,s.value,e._zod.def));else{const i=a;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=s.value),i.inst??(i.inst=e),i.continue??(i.continue=!e._zod.def.abort),s.issues.push(za(i))}},t(s.value,s)));return e}function Yg(t,e){const s=new At({check:"custom",...oe(e)});return s._zod.check=t,s}function Al(t){let e=t?.target??"draft-2020-12";return e==="draft-4"&&(e="draft-04"),e==="draft-7"&&(e="draft-07"),{processors:t.processors??{},metadataRegistry:t?.metadata??La,target:e,unrepresentable:t?.unrepresentable??"throw",override:t?.override??(()=>{}),io:t?.io??"output",counter:0,seen:new Map,cycles:t?.cycles??"ref",reused:t?.reused??"inline",external:t?.external??void 0}}function nt(t,e,s={path:[],schemaPath:[]}){var a;const i=t._zod.def,r=e.seen.get(t);if(r)return r.count++,s.schemaPath.includes(t)&&(r.cycle=s.path),r.schema;const n={schema:{},count:1,cycle:void 0,path:s.path};e.seen.set(t,n);const o=t._zod.toJSONSchema?.();if(o)n.schema=o;else{const f={...s,schemaPath:[...s.schemaPath,t],path:s.path};if(t._zod.processJSONSchema)t._zod.processJSONSchema(e,n.schema,f);else{const d=n.schema,m=e.processors[i.type];if(!m)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${i.type}`);m(t,e,d,f)}const h=t._zod.parent;h&&(n.ref||(n.ref=h),nt(h,e,f),e.seen.get(h).isParent=!0)}const l=e.metadataRegistry.get(t);return l&&Object.assign(n.schema,l),e.io==="input"&&Ct(t)&&(delete n.schema.examples,delete n.schema.default),e.io==="input"&&n.schema._prefault&&((a=n.schema).default??(a.default=n.schema._prefault)),delete n.schema._prefault,e.seen.get(t).schema}function Sl(t,e){const s=t.seen.get(e);if(!s)throw new Error("Unprocessed schema. This is a bug in Zod.");const a=new Map;for(const n of t.seen.entries()){const o=t.metadataRegistry.get(n[0])?.id;if(o){const l=a.get(o);if(l&&l!==n[0])throw new Error(`Duplicate schema id "${o}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);a.set(o,n[0])}}const i=n=>{const o=t.target==="draft-2020-12"?"$defs":"definitions";if(t.external){const h=t.external.registry.get(n[0])?.id,d=t.external.uri??(b=>b);if(h)return{ref:d(h)};const m=n[1].defId??n[1].schema.id??`schema${t.counter++}`;return n[1].defId=m,{defId:m,ref:`${d("__shared")}#/${o}/${m}`}}if(n[1]===s)return{ref:"#"};const c=`#/${o}/`,f=n[1].schema.id??`__schema${t.counter++}`;return{defId:f,ref:c+f}},r=n=>{if(n[1].schema.$ref)return;const o=n[1],{ref:l,defId:c}=i(n);o.def={...o.schema},c&&(o.defId=c);const f=o.schema;for(const h in f)delete f[h];f.$ref=l};if(t.cycles==="throw")for(const n of t.seen.entries()){const o=n[1];if(o.cycle)throw new Error(`Cycle detected: #/${o.cycle?.join("/")}/<root>
|
|
270
270
|
|
|
271
|
-
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const n of t.seen.entries()){const o=n[1];if(e===n[0]){r(n);continue}if(t.external){const c=t.external.registry.get(n[0])?.id;if(e!==n[0]&&c){r(n);continue}}if(t.metadataRegistry.get(n[0])?.id){r(n);continue}if(o.cycle){r(n);continue}if(o.count>1&&t.reused==="ref"){r(n);continue}}}function Vl(t,e){const s=t.seen.get(e);if(!s)throw new Error("Unprocessed schema. This is a bug in Zod.");const a=n=>{const o=t.seen.get(n);if(o.ref===null)return;const l=o.def??o.schema,c={...l},f=o.ref;if(o.ref=null,f){a(f);const d=t.seen.get(f),m=d.schema;if(m.$ref&&(t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0")?(l.allOf=l.allOf??[],l.allOf.push(m)):Object.assign(l,m),Object.assign(l,c),n._zod.parent===f)for(const V in l)V==="$ref"||V==="allOf"||V in c||delete l[V];if(m.$ref&&d.def)for(const V in l)V==="$ref"||V==="allOf"||V in d.def&&JSON.stringify(l[V])===JSON.stringify(d.def[V])&&delete l[V]}const h=n._zod.parent;if(h&&h!==f){a(h);const d=t.seen.get(h);if(d?.schema.$ref&&(l.$ref=d.schema.$ref,d.def))for(const m in l)m==="$ref"||m==="allOf"||m in d.def&&JSON.stringify(l[m])===JSON.stringify(d.def[m])&&delete l[m]}t.override({zodSchema:n,jsonSchema:l,path:o.path??[]})};for(const n of[...t.seen.entries()].reverse())a(n[0]);const i={};if(t.target==="draft-2020-12"?i.$schema="https://json-schema.org/draft/2020-12/schema":t.target==="draft-07"?i.$schema="http://json-schema.org/draft-07/schema#":t.target==="draft-04"?i.$schema="http://json-schema.org/draft-04/schema#":t.target,t.external?.uri){const n=t.external.registry.get(e)?.id;if(!n)throw new Error("Schema is missing an `id` property");i.$id=t.external.uri(n)}Object.assign(i,s.def??s.schema);const r=t.external?.defs??{};for(const n of t.seen.entries()){const o=n[1];o.def&&o.defId&&(r[o.defId]=o.def)}t.external||Object.keys(r).length>0&&(t.target==="draft-2020-12"?i.$defs=r:i.definitions=r);try{const n=JSON.parse(JSON.stringify(i));return Object.defineProperty(n,"~standard",{value:{...e["~standard"],jsonSchema:{input:Ri(e,"input",t.processors),output:Ri(e,"output",t.processors)}},enumerable:!1,writable:!1}),n}catch{throw new Error("Error converting schema to JSON.")}}function Ct(t,e){const s=e??{seen:new Set};if(s.seen.has(t))return!1;s.seen.add(t);const a=t._zod.def;if(a.type==="transform")return!0;if(a.type==="array")return Ct(a.element,s);if(a.type==="set")return Ct(a.valueType,s);if(a.type==="lazy")return Ct(a.getter(),s);if(a.type==="promise"||a.type==="optional"||a.type==="nonoptional"||a.type==="nullable"||a.type==="readonly"||a.type==="default"||a.type==="prefault")return Ct(a.innerType,s);if(a.type==="intersection")return Ct(a.left,s)||Ct(a.right,s);if(a.type==="record"||a.type==="map")return Ct(a.keyType,s)||Ct(a.valueType,s);if(a.type==="pipe")return Ct(a.in,s)||Ct(a.out,s);if(a.type==="object"){for(const i in a.shape)if(Ct(a.shape[i],s))return!0;return!1}if(a.type==="union"){for(const i of a.options)if(Ct(i,s))return!0;return!1}if(a.type==="tuple"){for(const i of a.items)if(Ct(i,s))return!0;return!!(a.rest&&Ct(a.rest,s))}return!1}const Hg=(t,e={})=>s=>{const a=Al({...s,processors:e});return nt(t,a),Sl(a,t),Vl(a,t)},Ri=(t,e,s={})=>a=>{const{libraryOptions:i,target:r}=a??{},n=Al({...i??{},target:r,io:e,processors:s});return nt(t,n),Sl(n,t),Vl(n,t)},jg={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},Kg=(t,e,s,a)=>{const i=s;i.type="string";const{minimum:r,maximum:n,format:o,patterns:l,contentEncoding:c}=t._zod.bag;if(typeof r=="number"&&(i.minLength=r),typeof n=="number"&&(i.maxLength=n),o&&(i.format=jg[o]??o,i.format===""&&delete i.format,o==="time"&&delete i.format),c&&(i.contentEncoding=c),l&&l.size>0){const f=[...l];f.length===1?i.pattern=f[0].source:f.length>1&&(i.allOf=[...f.map(h=>({...e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0"?{type:"string"}:{},pattern:h.source}))])}},Xg=(t,e,s,a)=>{const i=s,{minimum:r,maximum:n,format:o,multipleOf:l,exclusiveMaximum:c,exclusiveMinimum:f}=t._zod.bag;typeof o=="string"&&o.includes("int")?i.type="integer":i.type="number",typeof f=="number"&&(e.target==="draft-04"||e.target==="openapi-3.0"?(i.minimum=f,i.exclusiveMinimum=!0):i.exclusiveMinimum=f),typeof r=="number"&&(i.minimum=r,typeof f=="number"&&e.target!=="draft-04"&&(f>=r?delete i.minimum:delete i.exclusiveMinimum)),typeof c=="number"&&(e.target==="draft-04"||e.target==="openapi-3.0"?(i.maximum=c,i.exclusiveMaximum=!0):i.exclusiveMaximum=c),typeof n=="number"&&(i.maximum=n,typeof c=="number"&&e.target!=="draft-04"&&(c<=n?delete i.maximum:delete i.exclusiveMaximum)),typeof l=="number"&&(i.multipleOf=l)},qg=(t,e,s,a)=>{s.type="boolean"},Jg=(t,e,s,a)=>{e.target==="openapi-3.0"?(s.type="string",s.nullable=!0,s.enum=[null]):s.type="null"},Qg=(t,e,s,a)=>{s.not={}},$g=(t,e,s,a)=>{},ep=(t,e,s,a)=>{const i=t._zod.def,r=Zo(i.entries);r.every(n=>typeof n=="number")&&(s.type="number"),r.every(n=>typeof n=="string")&&(s.type="string"),s.enum=r},tp=(t,e,s,a)=>{const i=t._zod.def,r=[];for(const n of i.values)if(n===void 0){if(e.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof n=="bigint"){if(e.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");r.push(Number(n))}else r.push(n);if(r.length!==0)if(r.length===1){const n=r[0];s.type=n===null?"null":typeof n,e.target==="draft-04"||e.target==="openapi-3.0"?s.enum=[n]:s.const=n}else r.every(n=>typeof n=="number")&&(s.type="number"),r.every(n=>typeof n=="string")&&(s.type="string"),r.every(n=>typeof n=="boolean")&&(s.type="boolean"),r.every(n=>n===null)&&(s.type="null"),s.enum=r},sp=(t,e,s,a)=>{if(e.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},ap=(t,e,s,a)=>{if(e.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},ip=(t,e,s,a)=>{const i=s,r=t._zod.def,{minimum:n,maximum:o}=t._zod.bag;typeof n=="number"&&(i.minItems=n),typeof o=="number"&&(i.maxItems=o),i.type="array",i.items=nt(r.element,e,{...a,path:[...a.path,"items"]})},rp=(t,e,s,a)=>{const i=s,r=t._zod.def;i.type="object",i.properties={};const n=r.shape;for(const c in n)i.properties[c]=nt(n[c],e,{...a,path:[...a.path,"properties",c]});const o=new Set(Object.keys(n)),l=new Set([...o].filter(c=>{const f=r.shape[c]._zod;return e.io==="input"?f.optin===void 0:f.optout===void 0}));l.size>0&&(i.required=Array.from(l)),r.catchall?._zod.def.type==="never"?i.additionalProperties=!1:r.catchall?r.catchall&&(i.additionalProperties=nt(r.catchall,e,{...a,path:[...a.path,"additionalProperties"]})):e.io==="output"&&(i.additionalProperties=!1)},np=(t,e,s,a)=>{const i=t._zod.def,r=i.inclusive===!1,n=i.options.map((o,l)=>nt(o,e,{...a,path:[...a.path,r?"oneOf":"anyOf",l]}));r?s.oneOf=n:s.anyOf=n},op=(t,e,s,a)=>{const i=t._zod.def,r=nt(i.left,e,{...a,path:[...a.path,"allOf",0]}),n=nt(i.right,e,{...a,path:[...a.path,"allOf",1]}),o=c=>"allOf"in c&&Object.keys(c).length===1,l=[...o(r)?r.allOf:[r],...o(n)?n.allOf:[n]];s.allOf=l},lp=(t,e,s,a)=>{const i=s,r=t._zod.def;i.type="object";const n=r.keyType,l=n._zod.bag?.patterns;if(r.mode==="loose"&&l&&l.size>0){const f=nt(r.valueType,e,{...a,path:[...a.path,"patternProperties","*"]});i.patternProperties={};for(const h of l)i.patternProperties[h.source]=f}else(e.target==="draft-07"||e.target==="draft-2020-12")&&(i.propertyNames=nt(r.keyType,e,{...a,path:[...a.path,"propertyNames"]})),i.additionalProperties=nt(r.valueType,e,{...a,path:[...a.path,"additionalProperties"]});const c=n._zod.values;if(c){const f=[...c].filter(h=>typeof h=="string"||typeof h=="number");f.length>0&&(i.required=f)}},cp=(t,e,s,a)=>{const i=t._zod.def,r=nt(i.innerType,e,a),n=e.seen.get(t);e.target==="openapi-3.0"?(n.ref=i.innerType,s.nullable=!0):s.anyOf=[r,{type:"null"}]},fp=(t,e,s,a)=>{const i=t._zod.def;nt(i.innerType,e,a);const r=e.seen.get(t);r.ref=i.innerType},up=(t,e,s,a)=>{const i=t._zod.def;nt(i.innerType,e,a);const r=e.seen.get(t);r.ref=i.innerType,s.default=JSON.parse(JSON.stringify(i.defaultValue))},hp=(t,e,s,a)=>{const i=t._zod.def;nt(i.innerType,e,a);const r=e.seen.get(t);r.ref=i.innerType,e.io==="input"&&(s._prefault=JSON.parse(JSON.stringify(i.defaultValue)))},dp=(t,e,s,a)=>{const i=t._zod.def;nt(i.innerType,e,a);const r=e.seen.get(t);r.ref=i.innerType;let n;try{n=i.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}s.default=n},gp=(t,e,s,a)=>{const i=t._zod.def,r=e.io==="input"?i.in._zod.def.type==="transform"?i.out:i.in:i.out;nt(r,e,a);const n=e.seen.get(t);n.ref=r},pp=(t,e,s,a)=>{const i=t._zod.def;nt(i.innerType,e,a);const r=e.seen.get(t);r.ref=i.innerType,s.readOnly=!0},Il=(t,e,s,a)=>{const i=t._zod.def;nt(i.innerType,e,a);const r=e.seen.get(t);r.ref=i.innerType},mp=L("ZodISODateTime",(t,e)=>{gd.init(t,e),$e.init(t,e)});function yp(t){return xg(mp,t)}const bp=L("ZodISODate",(t,e)=>{pd.init(t,e),$e.init(t,e)});function wp(t){return Cg(bp,t)}const vp=L("ZodISOTime",(t,e)=>{md.init(t,e),$e.init(t,e)});function xp(t){return kg(vp,t)}const Cp=L("ZodISODuration",(t,e)=>{yd.init(t,e),$e.init(t,e)});function kp(t){return Ng(Cp,t)}const Rt=L("ZodError",(t,e)=>{Ko.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:s=>nh(t,s)},flatten:{value:s=>rh(t,s)},addIssue:{value:s=>{t.issues.push(s),t.message=JSON.stringify(t.issues,en,2)}},addIssues:{value:s=>{t.issues.push(...s),t.message=JSON.stringify(t.issues,en,2)}},isEmpty:{get(){return t.issues.length===0}}})},{Parent:Error}),Np=rn(Rt),Ap=nn(Rt),Sp=Fi(Rt),Vp=Ti(Rt),Ip=ch(Rt),_p=fh(Rt),Fp=uh(Rt),Tp=hh(Rt),Pp=dh(Rt),Ep=gh(Rt),Op=ph(Rt),Mp=mh(Rt),qe=L("ZodType",(t,e)=>(Ke.init(t,e),Object.assign(t["~standard"],{jsonSchema:{input:Ri(t,"input"),output:Ri(t,"output")}}),t.toJSONSchema=Hg(t,{}),t.def=e,t.type=e.type,Object.defineProperty(t,"_def",{value:e}),t.check=(...s)=>t.clone(ws(e,{checks:[...e.checks??[],...s.map(a=>typeof a=="function"?{_zod:{check:a,def:{check:"custom"},onattach:[]}}:a)]}),{parent:!0}),t.with=t.check,t.clone=(s,a)=>vs(t,s,a),t.brand=()=>t,t.register=(s,a)=>(s.add(t,a),t),t.parse=(s,a)=>Np(t,s,a,{callee:t.parse}),t.safeParse=(s,a)=>Sp(t,s,a),t.parseAsync=async(s,a)=>Ap(t,s,a,{callee:t.parseAsync}),t.safeParseAsync=async(s,a)=>Vp(t,s,a),t.spa=t.safeParseAsync,t.encode=(s,a)=>Ip(t,s,a),t.decode=(s,a)=>_p(t,s,a),t.encodeAsync=async(s,a)=>Fp(t,s,a),t.decodeAsync=async(s,a)=>Tp(t,s,a),t.safeEncode=(s,a)=>Pp(t,s,a),t.safeDecode=(s,a)=>Ep(t,s,a),t.safeEncodeAsync=async(s,a)=>Op(t,s,a),t.safeDecodeAsync=async(s,a)=>Mp(t,s,a),t.refine=(s,a)=>t.check(Vm(s,a)),t.superRefine=s=>t.check(Im(s)),t.overwrite=s=>t.check(oa(s)),t.optional=()=>g(t),t.exactOptional=()=>gm(t),t.nullable=()=>zl(t),t.nullish=()=>g(zl(t)),t.nonoptional=s=>vm(t,s),t.array=()=>Ie(t),t.or=s=>x([t,s]),t.and=s=>cm(t,s),t.transform=s=>dn(t,Ml(s)),t.default=s=>ym(t,s),t.prefault=s=>wm(t,s),t.catch=s=>Cm(t,s),t.pipe=s=>dn(t,s),t.readonly=()=>Am(t),t.describe=s=>{const a=t.clone();return La.add(a,{description:s}),a},Object.defineProperty(t,"description",{get(){return La.get(t)?.description},configurable:!0}),t.meta=(...s)=>{if(s.length===0)return La.get(t);const a=t.clone();return La.add(a,s[0]),a},t.isOptional=()=>t.safeParse(void 0).success,t.isNullable=()=>t.safeParse(null).success,t.apply=s=>s(t),t)),_l=L("_ZodString",(t,e)=>{on.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(a,i,r)=>Kg(t,a,i);const s=t._zod.bag;t.format=s.format??null,t.minLength=s.minimum??null,t.maxLength=s.maximum??null,t.regex=(...a)=>t.check(Tg(...a)),t.includes=(...a)=>t.check(Og(...a)),t.startsWith=(...a)=>t.check(Mg(...a)),t.endsWith=(...a)=>t.check(Rg(...a)),t.min=(...a)=>t.check(Mi(...a)),t.max=(...a)=>t.check(kl(...a)),t.length=(...a)=>t.check(Nl(...a)),t.nonempty=(...a)=>t.check(Mi(1,...a)),t.lowercase=a=>t.check(Pg(a)),t.uppercase=a=>t.check(Eg(a)),t.trim=()=>t.check(Lg()),t.normalize=(...a)=>t.check(zg(...a)),t.toLowerCase=()=>t.check(Dg()),t.toUpperCase=()=>t.check(Bg()),t.slugify=()=>t.check(Ug())}),Rp=L("ZodString",(t,e)=>{on.init(t,e),_l.init(t,e),t.email=s=>t.check(eg(zp,s)),t.url=s=>t.check(rg(Lp,s)),t.jwt=s=>t.check(vg($p,s)),t.emoji=s=>t.check(ng(Dp,s)),t.guid=s=>t.check(wl(Fl,s)),t.uuid=s=>t.check(tg(zi,s)),t.uuidv4=s=>t.check(sg(zi,s)),t.uuidv6=s=>t.check(ag(zi,s)),t.uuidv7=s=>t.check(ig(zi,s)),t.nanoid=s=>t.check(og(Bp,s)),t.guid=s=>t.check(wl(Fl,s)),t.cuid=s=>t.check(lg(Up,s)),t.cuid2=s=>t.check(cg(Zp,s)),t.ulid=s=>t.check(fg(Gp,s)),t.base64=s=>t.check(yg(qp,s)),t.base64url=s=>t.check(bg(Jp,s)),t.xid=s=>t.check(ug(Wp,s)),t.ksuid=s=>t.check(hg(Yp,s)),t.ipv4=s=>t.check(dg(Hp,s)),t.ipv6=s=>t.check(gg(jp,s)),t.cidrv4=s=>t.check(pg(Kp,s)),t.cidrv6=s=>t.check(mg(Xp,s)),t.e164=s=>t.check(wg(Qp,s)),t.datetime=s=>t.check(yp(s)),t.date=s=>t.check(wp(s)),t.time=s=>t.check(xp(s)),t.duration=s=>t.check(kp(s))});function p(t){return $d(Rp,t)}const $e=L("ZodStringFormat",(t,e)=>{Xe.init(t,e),_l.init(t,e)}),zp=L("ZodEmail",(t,e)=>{rd.init(t,e),$e.init(t,e)}),Fl=L("ZodGUID",(t,e)=>{ad.init(t,e),$e.init(t,e)}),zi=L("ZodUUID",(t,e)=>{id.init(t,e),$e.init(t,e)}),Lp=L("ZodURL",(t,e)=>{nd.init(t,e),$e.init(t,e)}),Dp=L("ZodEmoji",(t,e)=>{od.init(t,e),$e.init(t,e)}),Bp=L("ZodNanoID",(t,e)=>{ld.init(t,e),$e.init(t,e)}),Up=L("ZodCUID",(t,e)=>{cd.init(t,e),$e.init(t,e)}),Zp=L("ZodCUID2",(t,e)=>{fd.init(t,e),$e.init(t,e)}),Gp=L("ZodULID",(t,e)=>{ud.init(t,e),$e.init(t,e)}),Wp=L("ZodXID",(t,e)=>{hd.init(t,e),$e.init(t,e)}),Yp=L("ZodKSUID",(t,e)=>{dd.init(t,e),$e.init(t,e)}),Hp=L("ZodIPv4",(t,e)=>{bd.init(t,e),$e.init(t,e)}),jp=L("ZodIPv6",(t,e)=>{wd.init(t,e),$e.init(t,e)}),Kp=L("ZodCIDRv4",(t,e)=>{vd.init(t,e),$e.init(t,e)}),Xp=L("ZodCIDRv6",(t,e)=>{xd.init(t,e),$e.init(t,e)}),qp=L("ZodBase64",(t,e)=>{Cd.init(t,e),$e.init(t,e)}),Jp=L("ZodBase64URL",(t,e)=>{Nd.init(t,e),$e.init(t,e)}),Qp=L("ZodE164",(t,e)=>{Ad.init(t,e),$e.init(t,e)}),$p=L("ZodJWT",(t,e)=>{Vd.init(t,e),$e.init(t,e)}),Tl=L("ZodNumber",(t,e)=>{rl.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(a,i,r)=>Xg(t,a,i),t.gt=(a,i)=>t.check(xl(a,i)),t.gte=(a,i)=>t.check(fn(a,i)),t.min=(a,i)=>t.check(fn(a,i)),t.lt=(a,i)=>t.check(vl(a,i)),t.lte=(a,i)=>t.check(cn(a,i)),t.max=(a,i)=>t.check(cn(a,i)),t.int=a=>t.check(Pl(a)),t.safe=a=>t.check(Pl(a)),t.positive=a=>t.check(xl(0,a)),t.nonnegative=a=>t.check(fn(0,a)),t.negative=a=>t.check(vl(0,a)),t.nonpositive=a=>t.check(cn(0,a)),t.multipleOf=(a,i)=>t.check(Cl(a,i)),t.step=(a,i)=>t.check(Cl(a,i)),t.finite=()=>t;const s=t._zod.bag;t.minValue=Math.max(s.minimum??Number.NEGATIVE_INFINITY,s.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,t.maxValue=Math.min(s.maximum??Number.POSITIVE_INFINITY,s.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,t.isInt=(s.format??"").includes("int")||Number.isSafeInteger(s.multipleOf??.5),t.isFinite=!0,t.format=s.format??null});function C(t){return Ag(Tl,t)}const em=L("ZodNumberFormat",(t,e)=>{Id.init(t,e),Tl.init(t,e)});function Pl(t){return Sg(em,t)}const tm=L("ZodBoolean",(t,e)=>{_d.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(s,a,i)=>qg(t,s,a)});function Ge(t){return Vg(tm,t)}const sm=L("ZodNull",(t,e)=>{Fd.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(s,a,i)=>Jg(t,s,a)});function un(t){return Ig(sm,t)}const am=L("ZodUnknown",(t,e)=>{Td.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(s,a,i)=>$g()});function Cs(){return _g(am)}const im=L("ZodNever",(t,e)=>{Pd.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(s,a,i)=>Qg(t,s,a)});function be(t){return Fg(im,t)}const rm=L("ZodArray",(t,e)=>{Ed.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(s,a,i)=>ip(t,s,a,i),t.element=e.element,t.min=(s,a)=>t.check(Mi(s,a)),t.nonempty=s=>t.check(Mi(1,s)),t.max=(s,a)=>t.check(kl(s,a)),t.length=(s,a)=>t.check(Nl(s,a)),t.unwrap=()=>t.element});function Ie(t,e){return Zg(rm,t,e)}const nm=L("ZodObject",(t,e)=>{Md.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(s,a,i)=>rp(t,s,a,i),Me(t,"shape",()=>e.shape),t.keyof=()=>D(Object.keys(t._zod.def.shape)),t.catchall=s=>t.clone({...t._zod.def,catchall:s}),t.passthrough=()=>t.clone({...t._zod.def,catchall:Cs()}),t.loose=()=>t.clone({...t._zod.def,catchall:Cs()}),t.strict=()=>t.clone({...t._zod.def,catchall:be()}),t.strip=()=>t.clone({...t._zod.def,catchall:void 0}),t.extend=s=>eh(t,s),t.safeExtend=s=>th(t,s),t.merge=s=>sh(t,s),t.pick=s=>Qu(t,s),t.omit=s=>$u(t,s),t.partial=(...s)=>ah(Rl,t,s[0]),t.required=(...s)=>ih(Ll,t,s[0])});function w(t,e){const s={type:"object",shape:t??{},...oe(e)};return new nm(s)}const El=L("ZodUnion",(t,e)=>{fl.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(s,a,i)=>np(t,s,a,i),t.options=e.options});function x(t,e){return new El({type:"union",options:t,...oe(e)})}const om=L("ZodDiscriminatedUnion",(t,e)=>{El.init(t,e),Rd.init(t,e)});function Li(t,e,s){return new om({type:"union",options:e,discriminator:t,...oe(s)})}const lm=L("ZodIntersection",(t,e)=>{zd.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(s,a,i)=>op(t,s,a,i)});function cm(t,e){return new lm({type:"intersection",left:t,right:e})}const fm=L("ZodRecord",(t,e)=>{Ld.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(s,a,i)=>lp(t,s,a,i),t.keyType=e.keyType,t.valueType=e.valueType});function Ol(t,e,s){return new fm({type:"record",keyType:t,valueType:e,...oe(s)})}const hn=L("ZodEnum",(t,e)=>{Dd.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(a,i,r)=>ep(t,a,i),t.enum=e.entries,t.options=Object.values(e.entries);const s=new Set(Object.keys(e.entries));t.extract=(a,i)=>{const r={};for(const n of a)if(s.has(n))r[n]=e.entries[n];else throw new Error(`Key ${n} not found in enum`);return new hn({...e,checks:[],...oe(i),entries:r})},t.exclude=(a,i)=>{const r={...e.entries};for(const n of a)if(s.has(n))delete r[n];else throw new Error(`Key ${n} not found in enum`);return new hn({...e,checks:[],...oe(i),entries:r})}});function D(t,e){const s=Array.isArray(t)?Object.fromEntries(t.map(a=>[a,a])):t;return new hn({type:"enum",entries:s,...oe(e)})}const um=L("ZodLiteral",(t,e)=>{Bd.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(s,a,i)=>tp(t,s,a),t.values=new Set(e.values),Object.defineProperty(t,"value",{get(){if(e.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return e.values[0]}})});function he(t,e){return new um({type:"literal",values:Array.isArray(t)?t:[t],...oe(e)})}const hm=L("ZodTransform",(t,e)=>{Ud.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(s,a,i)=>ap(t,s),t._zod.parse=(s,a)=>{if(a.direction==="backward")throw new Bo(t.constructor.name);s.addIssue=r=>{if(typeof r=="string")s.issues.push(za(r,s.value,e));else{const n=r;n.fatal&&(n.continue=!1),n.code??(n.code="custom"),n.input??(n.input=s.value),n.inst??(n.inst=t),s.issues.push(za(n))}};const i=e.transform(s.value,s);return i instanceof Promise?i.then(r=>(s.value=r,s)):(s.value=i,s)}});function Ml(t){return new hm({type:"transform",transform:t})}const Rl=L("ZodOptional",(t,e)=>{dl.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(s,a,i)=>Il(t,s,a,i),t.unwrap=()=>t._zod.def.innerType});function g(t){return new Rl({type:"optional",innerType:t})}const dm=L("ZodExactOptional",(t,e)=>{Zd.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(s,a,i)=>Il(t,s,a,i),t.unwrap=()=>t._zod.def.innerType});function gm(t){return new dm({type:"optional",innerType:t})}const pm=L("ZodNullable",(t,e)=>{Gd.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(s,a,i)=>cp(t,s,a,i),t.unwrap=()=>t._zod.def.innerType});function zl(t){return new pm({type:"nullable",innerType:t})}const mm=L("ZodDefault",(t,e)=>{Wd.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(s,a,i)=>up(t,s,a,i),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function ym(t,e){return new mm({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():Ho(e)}})}const bm=L("ZodPrefault",(t,e)=>{Yd.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(s,a,i)=>hp(t,s,a,i),t.unwrap=()=>t._zod.def.innerType});function wm(t,e){return new bm({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():Ho(e)}})}const Ll=L("ZodNonOptional",(t,e)=>{Hd.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(s,a,i)=>fp(t,s,a,i),t.unwrap=()=>t._zod.def.innerType});function vm(t,e){return new Ll({type:"nonoptional",innerType:t,...oe(e)})}const xm=L("ZodCatch",(t,e)=>{jd.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(s,a,i)=>dp(t,s,a,i),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function Cm(t,e){return new xm({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}const km=L("ZodPipe",(t,e)=>{Kd.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(s,a,i)=>gp(t,s,a,i),t.in=e.in,t.out=e.out});function dn(t,e){return new km({type:"pipe",in:t,out:e})}const Nm=L("ZodReadonly",(t,e)=>{Xd.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(s,a,i)=>pp(t,s,a,i),t.unwrap=()=>t._zod.def.innerType});function Am(t){return new Nm({type:"readonly",innerType:t})}const Sm=L("ZodCustom",(t,e)=>{qd.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(s,a,i)=>sp(t,s)});function Vm(t,e={}){return Gg(Sm,t,e)}function Im(t){return Wg(t)}function _(t,e){return dn(Ml(t),e)}const la={custom:"custom"},_m=w({color:g(p()),opacity:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),padding:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),borderRadius:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]))}),Fm=w({family:g(p()),color:g(p()),opacity:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),size:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),lineHeight:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),stroke:g(p()),strokeWidth:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]))}),Tm=w({top:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),left:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),right:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]))}),Pm=w({type:D(["caption"]),src:p().min(1).regex(/\S/),font:g(Fm),background:g(_m),margin:g(Tm),trim:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),speed:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(10)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]))}),Em=w({color:x([p().regex(/^#[0-9a-fA-F]{6}$/),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),threshold:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int().gte(0).lte(250)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),halo:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int().gte(0).lte(250)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]))}),Om=w({type:D(["text-to-avatar"]),text:p(),avatar:D(["jack","lana","lily","matt","rian"]),background:g(p())}),Mm=w({type:he("didTextToAvatarOptions_DIDTextToAvatarOptions")}).and(Om),Rm=w({provider:D(["d-id"]),options:Mm}),zm=w({type:D(["text-to-speech"]),text:p(),voice:D(["Adam","Antoni","Arnold","Bella","Domi","Elli","Josh","Rachel","Sam"])}),Lm=w({type:he("elevenlabsTextToSpeechOptions_ElevenLabsTextToSpeechOptions")}).and(zm),Dm=w({provider:D(["elevenlabs"]),options:Lm}),Bm=w({type:D(["text-to-avatar"]),text:p(),avatar:D(["Angela","Bill","Daisy","Derek","Eva","Jake","Jeff","Jerome","Joon","Kayla","Kent","Luna","Mark","Matthew","Monica","Peter","Selina","Tanya","Thomas","Tina","Tyler","Vanessa","Vera","Wilson","Zoey"]),voice:D(["Abbi - Natural","Adam - Natural","Aiston - Friendly","Alice - Newscaster","Alison - Cheerful","Amber - Friendly","Amy - Warm","Ana - Cheerful","Antoni - Friendly","Aria - Newscaster","Arnold - Cheerful","Arthur - Natural","Bella - Friendly","Belle - Natural","Brandon - Warm","Brian - Natural","Bruce - Natural","Cerise - Cheerful","Christopher - Calm","Clara - Professional","Connor - Natural","Dahlia - Friendly","Davis - Professional","Dean - Natural","Delbert - Cheerful","Edward - Friendly","Elaine - Calm","Emily - Natural","Emma - Newscaster","Eric - Newscaster","Grace - Natural","Hailey - Calm","Indira - Cheerful","Isabella - Cheerful","Jacob - Natural","Jahmai - Friendly","Jane - Serious","Jason - Serious","Jelle - Friendly","Jen - Natural","Jenny - Professional","Jodi - Cheerful","Joey - Calm","Johan - Friendly","Josie - Cheerful","Keanan - Natural","Keith - Cheerful","Kellie - Friendly","Lauren - Friendly","Leah - Natural","Liam - Professional","Libby - Natural","Lily - Professional","Lucas - Natural","Luke - Professional","Luna - Natural","Marieke - Natural","Matthew - Professional","Michelle - Natural","Mitchell - Natural","Molly - Newscaster","Monica - Calm","Natasha - Professional","Neerja - Newscaster","Noah - Serious","Oliver - Newscaster","Olivia - Calm","Paul - Natural","Prabhat - Natural","Raveena - Natural","Rudi - Friendly","Ryan - Professional","Sam - Natural","Sara - Cheerful","Sherry - Friendly","Sonia - Warm","Thomas - Natural","Todd - Professional","Tony - Professional","Tracy - Cheerful","Wayne - Natural","Wilder - Natural","Wille - Natural","William - Friendly"]),avatarStyle:g(D(["normal","circle"])),background:g(p()),ratio:g(D(["16:9","9:16"])),test:g(Ge())}),Um=w({type:he("heygenTextToAvatarOptions_HeyGenTextToAvatarOptions")}).and(Bm),Zm=w({provider:D(["heygen"]),options:Um}),Gm=w({type:D(["text-generator"]),prompt:p(),model:D(["gpt-3.5-turbo","gpt-4"]),systemPrompt:g(p())}),Wm=w({type:he("openaiTextGeneratorOptions_OpenAiTextGeneratorOptions")}).and(Gm),Ym=w({provider:D(["openai"]),options:Wm}),Hm=w({status:p(),title:p(),detail:p()});w({errors:Ie(Hm)});const jm=w({owner:p(),provider:D(["shotstack","elevenlabs","heygen","d-id"]),type:D(["text-to-speech","text-to-avatar"]),url:g(p()),status:D(["queued","processing","saving","done","failed"]),created:p(),updated:p()}),Km=w({type:p(),id:p(),attributes:jm});w({data:Km});const Xm=w({type:D(["image-to-video"]),imageUrl:p(),guidanceScale:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(1.8),motion:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(127)}),qm=w({type:D(["text-generator"]),prompt:p()}),Jm=w({type:D(["text-to-image"]),prompt:p(),width:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),height:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])}),Qm=w({type:D(["text-to-speech"]),text:p(),voice:D(["Hala","Lisa","Arlet","Hiujin","Zhiyu","Sofie","Laura","Olivia","Amy","Emma","Brian","Arthur","Kajal","Niamh","Aria","Ayanda","Ivy","Joanna","Kendra","Kimberly","Salli","Joey","Justin","Kevin","Matthew","Ruth","Stephen","Suvi","Léa","Rémi","Gabrielle","Liam","Vicki","Daniel","Hannah","Kajal","Bianca","Adriano","Takumi","Kazuha","Tomoko","Seoyeon","Ida","Ola","Camila","Vitória","Vitoria","Thiago","Inês","Ines","Lucia","Sergio","Mia","Andrés","Lupe","Pedro","Elin"]),language:g(D(["cmn-CN","da-DK","de-DE","en-AU","en-GB","en-IN","en-US","es-ES","es-MX","es-US","fr-CA","fr-FR","it-IT","ja-JP","hi-IN","ko-KR","nb-NO","nl-NL","pl-PL","pt-BR","pt-PT","sv-SE","en-NZ","en-ZA","ca-ES","de-AT","yue-CN","ar-AE","fi-FI"])),newscaster:g(Ge()).default(!1)}),$m=x([w({type:he("shotstackTextToSpeechOptions_ShotstackTextToSpeechOptions")}).and(Qm),w({type:he("shotstackTextToImageOptions_ShotstackTextToImageOptions")}).and(Jm),w({type:he("shotstackTextGeneratorOptions_ShotstackTextGeneratorOptions")}).and(qm),w({type:he("shotstackImageToVideoOptions_ShotstackImageToVideoOptions")}).and(Xm)]),ey=w({provider:D(["shotstack"]),options:$m}),ty=w({type:D(["text-to-image"]),prompt:p(),engine:g(D(["stable-diffusion-xl-1024-v0-9","stable-diffusion-xl-1024-v1-0","stable-diffusion-v1-6","stable-diffusion-512-v2-1","stable-diffusion-xl-beta-v2-2-2"])),width:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),height:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),steps:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(30),seed:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0),cfgScale:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(7),stylePreset:g(D(["3d-model","analog-film","anime","cinematic","comic-book","digital-art","enhance","fantasy-art","isometric","line-art","low-poly","modeling-compound","neon-punk","origami","photographic","pixel-art","tile-texture"]))}),sy=w({type:he("stabilityAiTextToImageOptions_StabilityAiTextToImageOptions")}).and(ty),ay=w({provider:D(["stability-ai"]),options:sy}),iy=x([w({provider:he("shotstackGeneratedAsset_ShotstackGeneratedAsset")}).and(ey),w({provider:he("didGeneratedAsset_DIDGeneratedAsset")}).and(Rm),w({provider:he("elevenlabsGeneratedAsset_ElevenLabsGeneratedAsset")}).and(Dm),w({provider:he("heygenGeneratedAsset_HeyGenGeneratedAsset")}).and(Zm),w({provider:he("openaiGeneratedAsset_OpenAiGeneratedAsset")}).and(Ym),w({provider:he("stabilityAiGeneratedAsset_StabilityAiGeneratedAsset")}).and(ay)]),Di=w({top:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),bottom:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),left:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),right:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]))}),ry=w({bucket:p(),prefix:g(p()),filename:g(p())}),ny=w({provider:he("google-cloud-storage"),options:g(ry)}),oy=w({folderId:p(),filename:g(p())}),ly=w({provider:he("google-drive"),options:oy}),cy=w({playbackPolicy:g(Ie(D(["public","signed"]))),passthrough:g(p().max(255))}),fy=w({provider:he("mux"),options:g(cy)}),uy=w({region:p(),bucket:p(),prefix:g(p()),filename:g(p()),acl:g(p())}),hy=w({provider:he("s3"),options:g(uy)}),dy=w({provider:he("shotstack"),exclude:g(Ge())}),gy=w({title:g(p().max(150)),privacyLevel:g(D(["public","friends","private"])),disableDuet:g(Ge()).default(!1),disableStitch:g(Ge()).default(!1),disableComment:g(Ge()).default(!1)}),py=w({provider:he("tiktok"),options:g(gy)}),my=w({view:g(D(["anybody","nobody","contacts","password","unlisted"])),embed:g(D(["public","private","whitelist"])),comments:g(D(["anybody","nobody","contacts"])),download:g(Ge()),add:g(Ge())}),yy=w({name:g(p()),description:g(p()),privacy:g(my),folderUri:g(p())}),by=w({provider:he("vimeo"),options:g(yy)}),Bi=Li("provider",[dy,fy,hy,ny,ly,by,py]),wy=Bi,vy=w({horizontal:g(Ge()),vertical:g(Ge())}),xy=w({src:p()}),Cy=w({type:D(["html"]),html:p(),css:g(p()),width:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),height:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),background:g(p()),position:g(D(["top","topRight","right","bottomRight","bottom","bottomLeft","left","topLeft","center"]))}),ky=w({type:D(["image"]),src:p().min(1).regex(/\S/),crop:g(Di)}),Ny=w({type:D(["image-to-video"]),src:p().min(1),prompt:g(p()),aspectRatio:g(D(["1:1","4:3","16:9","9:16","3:4","21:9","9:21"])),speed:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(10)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),crop:g(Di)}),Ay=w({preset:D(["conference","interview","lecture","meeting","mobile_phone","music","podcast","studio","voice_over"])}),Sy=w({provider:p().default("dolby"),options:Ay}),Vy=w({enhancement:he("dolbyEnhancement_DolbyEnhancement")}).and(Sy),Iy=w({audio:g(Vy)}),_y=w({status:p(),title:p(),detail:p()});w({errors:Ie(_y)});const Fy=w({type:p(),id:p()});w({data:Fy});const Ty=w({id:p(),url:p(),expires:p()}),Py=w({type:p(),id:p(),attributes:Ty});w({data:Py});const Ey=w({speed:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(10)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),preservePitch:g(Ge())}),Oy=w({format:g(D(["srt","vtt"]))}),My=w({type:D(["luma"]),src:p().min(1).regex(/\S/),trim:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]))}),Dl=w({find:p(),replace:x([p(),C(),Ge(),un(),Ol(p(),Cs()),Ie(Cs())])}),Ry=w({capture:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])}),zy=w({start:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),length:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]))}),Ly=w({id:p(),owner:p(),region:g(p()),renderId:g(p()),providerId:g(p()),filename:g(p()),url:g(p()),status:D(["importing","ready","failed","deleted"]),created:g(p()),updated:g(p())}),Bl=w({type:p(),attributes:Ly});w({data:Ie(Bl)}),w({data:Bl}),w({success:Ge(),message:p(),response:Ol(p(),Cs())});const Dy=w({message:p(),id:p()});w({success:Ge(),message:p(),response:Dy});const By=w({id:p(),name:p(),created:g(p()),updated:g(p())}),Uy=w({owner:p(),templates:Ie(By)});w({success:Ge(),message:p(),response:Uy});const Zy=w({message:p(),id:p()});w({success:Ge(),message:p(),response:Zy});const Ul=w({horizontal:g(D(["left","center","right"])),vertical:g(D(["top","middle","bottom"]))}),Gy=Ul,Zl=w({preset:D(["fadeIn","slideIn","typewriter","ascend","shift","movingLetters"]),duration:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(.1).lte(30)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),style:g(D(["character","word"])),direction:g(D(["left","right","up","down"]))}),Wy=Zl,Gl=w({color:g(x([p().regex(/^#[A-Fa-f0-9]{6}$/),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),opacity:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(1),borderRadius:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0)}),Yy=Gl,Hy=w({width:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0),color:g(x([p().regex(/^#[A-Fa-f0-9]{6}$/),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default("#000000"),opacity:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(1),radius:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0)}),jy=w({type:g(D(["linear","radial"])),angle:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(360)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0),stops:Ie(w({offset:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),color:x([p().regex(/^#[A-Fa-f0-9]{6}$/),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])})).min(2)}),Ky=w({top:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0),right:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0),bottom:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0),left:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0)}),Wl=w({offsetX:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0),offsetY:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0),blur:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0),color:g(x([p().regex(/^#[A-Fa-f0-9]{6}$/),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default("#000000"),opacity:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(.5)}),Xy=Wl,gn=w({width:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0),color:g(x([p().regex(/^#[A-Fa-f0-9]{6}$/),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default("#000000"),opacity:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(1)}),qy=gn,Yl=w({family:g(p()).default("Open Sans"),size:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int().gte(1).lte(500)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(24),weight:g(Cs()).default("400"),color:g(x([p().regex(/^#[A-Fa-f0-9]{6}$/),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default("#ffffff"),opacity:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(1),background:g(x([p().regex(/^#[A-Fa-f0-9]{6}$/),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),stroke:g(gn)}),Jy=Yl,Hl=w({letterSpacing:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0),lineHeight:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(10)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(1.2),textTransform:g(D(["none","uppercase","lowercase","capitalize"])),textDecoration:g(D(["none","underline","line-through"])),gradient:g(jy)}),Qy=Hl,jl=w({type:D(["rich-text"]),text:p().max(5e3),font:g(Yl),style:g(Hl),stroke:g(gn),shadow:g(Wl),background:g(Gl),border:g(Hy),padding:g(x([x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),Ky])),align:g(Ul),animation:g(Zl)}),Kl=jl,$y=w({id:g(p()),owner:g(p()),status:g(D(["queued","failed"])),created:g(p())}),eb=w({type:g(p()),attributes:g($y)});w({data:eb});const tb=w({url:p(),id:p(),destinations:Ie(Bi)}),sb=w({type:D(["shape"]),shape:D(["rectangle","circle","line"]),width:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),height:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),fill:g(w({color:g(p()),opacity:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]))})),stroke:g(w({color:g(p()),width:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]))})),rectangle:g(w({width:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),height:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),cornerRadius:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]))})),circle:g(w({radius:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])})),line:g(w({length:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),thickness:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])}))}),pn=w({width:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int().gte(1).lte(4096)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),height:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int().gte(1).lte(4096)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]))}),ab=pn,Xl=w({format:g(D(["mp4","webm","mov","avi","mkv","ogv","wmv","avif","gif","mp3","wav","jpg","png","webp","tif"])),size:g(pn),fit:g(D(["cover","contain","crop"])),resolution:g(D(["preview","mobile","sd","hd","fhd"])),quality:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int().gte(1).lte(100)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),fps:g(x([he(12),he(15),he(23.976),he(24),he(25),he(29.97),he(30),he(48),he(50),he(59.94),he(60)])),speed:g(Ey),keyframeInterval:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int().gte(1).lte(300)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),fixOffset:g(Ge()),fixRotation:g(Ge()),enhance:g(Iy),filename:g(p())}),ib=w({renditions:g(Ie(Xl)),transcription:g(Oy)}),rb=w({id:p(),status:g(D(["queued","importing","ready","failed","deleted","overwritten"])),url:g(p()),executionTime:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),transformation:g(Xl),width:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),height:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),duration:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),fps:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]))}),nb=w({renditions:g(Ie(rb))}),ob=w({id:p(),owner:p(),input:g(p()),source:g(p()),status:g(D(["queued","importing","ready","failed","deleted","overwritten"])),outputs:g(nb),width:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),height:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),duration:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),fps:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),created:g(p()),updated:g(p())}),ql=w({type:p(),id:p(),attributes:ob});w({data:Ie(ql)}),w({data:ql});const lb=w({url:g(p()),outputs:g(ib),destinations:g(Bi),callback:g(p())}),cb=w({src:p().min(1).regex(/\S/),effect:g(D(["fadeIn","fadeOut","fadeInFadeOut"])),volume:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]))}),Jl=w({offset:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),color:x([p().regex(/^#[A-Fa-f0-9]{6}$/),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])}),fb=w({type:D(["linear"]),angle:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(360)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0),stops:Ie(Jl).min(2),opacity:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(1)}),ub=w({type:D(["radial"]),stops:Ie(Jl).min(2),opacity:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(1)}),hb=w({offsetX:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0),offsetY:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0),blur:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0),color:g(x([p().regex(/^#[A-Fa-f0-9]{6}$/),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default("#000000"),opacity:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(.5)}),db=w({type:D(["solid"]),color:p().regex(/^#[A-Fa-f0-9]{6}$/).default("#000000"),opacity:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(1)}),gb=Li("type",[db,fb,ub]),pb=w({color:g(x([p().regex(/^#[A-Fa-f0-9]{6}$/),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default("#000000"),width:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(100)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(1),opacity:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(1),lineCap:g(D(["butt","round","square"])),lineJoin:g(D(["miter","round","bevel"])),dashArray:g(Ie(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]))),dashOffset:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0)}),mb=w({x:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0),y:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0),rotation:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(-360).lte(360)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0),scale:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(.01).lte(100)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(1),originX:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(.5),originY:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(.5)}),yb=w({type:D(["arrow"]),length:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(1).lte(4096)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),headWidth:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(1).lte(1e3)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),headLength:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(1).lte(1e3)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),shaftWidth:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(1).lte(1e3)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])}),bb=w({type:D(["circle"]),radius:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(1).lte(2048)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])}),wb=w({type:D(["cross"]),width:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(1).lte(4096)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),height:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(1).lte(4096)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),thickness:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(1).lte(500)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])}),vb=w({type:D(["ellipse"]),radiusX:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(1).lte(2048)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),radiusY:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(1).lte(2048)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])}),xb=w({type:D(["heart"]),size:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(1).lte(4096)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])}),Cb=w({type:D(["line"]),length:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(1).lte(4096)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),thickness:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(1).lte(500)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])}),kb=w({type:D(["path"]),d:p().min(1).max(1e5)}),Nb=w({type:D(["polygon"]),sides:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int().gte(3).lte(100)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),radius:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(1).lte(2048)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])}),Ab=w({type:D(["rectangle"]),width:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(1).lte(4096)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),height:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(1).lte(4096)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),cornerRadius:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(2048)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0)}),Sb=w({type:D(["ring"]),outerRadius:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(1).lte(2048)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),innerRadius:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(2048)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])}),Vb=w({type:D(["star"]),points:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int().gte(3).lte(100)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),outerRadius:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(1).lte(2048)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),innerRadius:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(1).lte(2048)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])}),Ib=Li("type",[Ab,bb,vb,Cb,Nb,Vb,yb,xb,wb,Sb,kb]),Ql=w({type:D(["svg"]),src:g(p().min(1).max(5e5)),shape:g(Ib),fill:g(gb),stroke:g(pb),shadow:g(hb),transform:g(mb),opacity:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(1),width:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int().gte(1).lte(4096)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),height:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int().gte(1).lte(4096)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]))}).superRefine((t,e)=>{const s=t.shape!==void 0,a=t.src!==void 0&&t.src.trim()!=="";if(!s&&!a&&e.addIssue({code:la.custom,message:"Either 'src' or 'shape' must be provided",path:[]}),s&&a&&e.addIssue({code:la.custom,message:"Provide either 'src' or 'shape', not both",path:["src"]}),a){const i=["shape","fill","stroke","shadow","transform","width","height"];for(const r of i)t[r]!==void 0&&e.addIssue({code:la.custom,message:`'${r}' is not allowed when using 'src'. Only 'type' and 'src' are allowed in import mode`,path:[r]})}}),_b=Ql,Fb=w({id:p(),merge:g(Ie(Dl))}),Tb=w({horizontal:g(D(["left","center","right"])),vertical:g(D(["top","center","bottom"]))}),Pb=w({preset:D(["typewriter"]),duration:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(.1).lte(30)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]))}),Eb=w({color:g(x([p().regex(/^#[A-Fa-f0-9]{6}$/),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),opacity:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),padding:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(100)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),borderRadius:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]))}),Ob=w({family:g(p()),color:g(p()),opacity:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),size:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),weight:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),lineHeight:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]))}),Mb=w({width:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(10)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),color:g(x([p().regex(/^#[A-Fa-f0-9]{6}$/),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]))}),Rb=w({type:D(["text"]),text:p(),width:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),height:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),font:g(Ob),background:g(Eb),alignment:g(Tb),stroke:g(Mb),animation:g(Pb),ellipsis:g(p())}),zb=w({type:D(["text-to-image"]),prompt:p(),width:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),height:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),crop:g(Di)}),Lb=w({capture:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),scale:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])}),$l=w({format:D(["mp4","gif","mp3","jpg","png","bmp"]),resolution:g(D(["preview","mobile","sd","hd","1080","4k"])),aspectRatio:g(D(["16:9","9:16","1:1","4:5","4:3"])),size:g(pn),fps:g(x([he(12),he(15),he(23.976),he(24),he(25),he(29.97),he(30),he(48),he(50),he(59.94),he(60)])),scaleTo:g(D(["preview","mobile","sd","hd","1080","4k"])),quality:g(D(["verylow","low","medium","high","veryhigh"])),repeat:g(Ge()),mute:g(Ge()),range:g(zy),poster:g(Ry),thumbnail:g(Lb),destinations:g(Ie(Bi))}),Ui=$l,Db=w({in:g(D(["none","fade","fadeSlow","fadeFast","reveal","revealSlow","revealFast","wipeLeft","wipeLeftSlow","wipeLeftFast","wipeRight","wipeRightSlow","wipeRightFast","slideLeft","slideLeftSlow","slideLeftFast","slideRight","slideRightSlow","slideRightFast","slideUp","slideUpSlow","slideUpFast","slideDown","slideDownSlow","slideDownFast","carouselLeft","carouselLeftSlow","carouselLeftFast","carouselRight","carouselRightSlow","carouselRightFast","carouselUp","carouselUpSlow","carouselUpFast","carouselDown","carouselDownSlow","carouselDownFast","shuffleTopRight","shuffleTopRightSlow","shuffleTopRightFast","shuffleRightTop","shuffleRightTopSlow","shuffleRightTopFast","shuffleRightBottom","shuffleRightBottomSlow","shuffleRightBottomFast","shuffleBottomRight","shuffleBottomRightSlow","shuffleBottomRightFast","shuffleBottomLeft","shuffleBottomLeftSlow","shuffleBottomLeftFast","shuffleLeftBottom","shuffleLeftBottomSlow","shuffleLeftBottomFast","shuffleLeftTop","shuffleLeftTopSlow","shuffleLeftTopFast","shuffleTopLeft","shuffleTopLeftSlow","shuffleTopLeftFast","zoom"])),out:g(D(["none","fade","fadeSlow","fadeFast","reveal","revealSlow","revealFast","wipeLeft","wipeLeftSlow","wipeLeftFast","wipeRight","wipeRightSlow","wipeRightFast","slideLeft","slideLeftSlow","slideLeftFast","slideRight","slideRightSlow","slideRightFast","slideUp","slideUpSlow","slideUpFast","slideDown","slideDownSlow","slideDownFast","carouselLeft","carouselLeftSlow","carouselLeftFast","carouselRight","carouselRightSlow","carouselRightFast","carouselUp","carouselUpSlow","carouselUpFast","carouselDown","carouselDownSlow","carouselDownFast","shuffleTopRight","shuffleTopRightSlow","shuffleTopRightFast","shuffleRightTop","shuffleRightTopSlow","shuffleRightTopFast","shuffleRightBottom","shuffleRightBottomSlow","shuffleRightBottomFast","shuffleBottomRight","shuffleBottomRightSlow","shuffleBottomRightFast","shuffleBottomLeft","shuffleBottomLeftSlow","shuffleBottomLeftFast","shuffleLeftBottom","shuffleLeftBottomSlow","shuffleLeftBottomFast","shuffleLeftTop","shuffleLeftTopSlow","shuffleLeftTopFast","shuffleTopLeft","shuffleTopLeftSlow","shuffleTopLeftFast","zoom"]))}),qt=w({from:g(Cs()),to:g(Cs()),start:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),length:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),interpolation:g(D(["linear","bezier","constant"])),easing:g(D(["ease","easeIn","easeOut","easeInOut","easeInQuad","easeInCubic","easeInQuart","easeInQuint","easeInSine","easeInExpo","easeInCirc","easeInBack","easeOutQuad","easeOutCubic","easeOutQuart","easeOutQuint","easeOutSine","easeOutExpo","easeOutCirc","easeOutBack","easeInOutQuad","easeInOutCubic","easeInOutQuart","easeInOutQuint","easeInOutSine","easeInOutExpo","easeInOutCirc","easeInOutBack"]))}),Bb=w({type:D(["audio"]),src:p().min(1).regex(/\S/),trim:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),volume:g(x([x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),Ie(qt)])),speed:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(10)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),effect:g(D(["none","fadeIn","fadeOut","fadeInFadeOut"]))}),ec=w({x:g(x([x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(-10).lte(10)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),Ie(qt)])),y:g(x([x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(-10).lte(10)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),Ie(qt)]))}),Ub=w({angle:g(x([x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(-360).lte(360)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),Ie(qt)]))}),Zb=w({x:g(x([x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(-100).lte(100)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),Ie(qt)])),y:g(x([x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(-100).lte(100)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),Ie(qt)]))}),Gb=w({type:D(["text-to-speech"]),text:p(),voice:p(),language:g(p()),newscaster:g(Ge()).default(!1),trim:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),volume:g(x([x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),Ie(qt)])),speed:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(10)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),effect:g(D(["none","fadeIn","fadeOut","fadeInFadeOut"]))}),Wb=w({type:D(["title"]),text:p(),style:g(D(["minimal","blockbuster","vogue","sketchy","skinny","chunk","chunkLight","marker","future","subtitle"])),color:g(p()),size:g(D(["xx-small","x-small","small","medium","large","x-large","xx-large"])),background:g(p()),position:g(D(["top","topRight","right","bottomRight","bottom","bottomLeft","left","topLeft","center"])),offset:g(ec)}),Yb=w({rotate:g(Ub),skew:g(Zb),flip:g(vy)}),Hb=w({type:D(["video"]),src:p().min(1).regex(/\S/),transcode:g(Ge()),trim:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),volume:g(x([x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),Ie(qt)])),volumeEffect:g(D(["none","fadeIn","fadeOut","fadeInFadeOut"])),speed:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(10)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),crop:g(Di),chromaKey:g(Em)}),jb=Li("type",[Hb,ky,Rb,jl,Bb,My,Pm,Cy,Wb,sb,Ql,zb,Ny,Gb]),Kb=w({asset:jb,start:x([x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),x([p().regex(/^(auto|alias:\/\/[A-Za-z0-9_-]+)$/),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])]),length:x([x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),x([p().regex(/^(auto|end|alias:\/\/[A-Za-z0-9_-]+)$/),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])]),fit:g(D(["cover","contain","crop","none"])),scale:g(x([x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),Ie(qt)])),width:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(1).lte(3840)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),height:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(1).lte(2160)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),position:g(D(["top","topRight","right","bottomRight","bottom","bottomLeft","left","topLeft","center"])),offset:g(ec),transition:g(Db),effect:g(D(["zoomIn","zoomInSlow","zoomInFast","zoomOut","zoomOutSlow","zoomOutFast","slideLeft","slideLeftSlow","slideLeftFast","slideRight","slideRightSlow","slideRightFast","slideUp","slideUpSlow","slideUpFast","slideDown","slideDownSlow","slideDownFast"])),filter:g(D(["none","blur","boost","contrast","darken","greyscale","lighten","muted","negative"])),opacity:g(x([x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),Ie(qt)])),transform:g(Yb),alias:g(x([p().regex(/^[A-Za-z0-9_-]+$/),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]))}).transform(t=>{if(t.asset&&typeof t.asset=="object"&&"type"in t.asset&&t.asset.type==="rich-text"){const{fit:s,...a}=t;return a}return t}),Xb=w({clips:Ie(Kb).min(1)}),qb=w({soundtrack:g(cb),background:g(p()),fonts:g(Ie(xy)),tracks:Ie(Xb).min(1),cache:g(Ge())}),Da=w({timeline:qb,output:$l,merge:g(Ie(Dl)),callback:g(p()),disk:g(D(["local","mount"]))}),tc=Da,Jb=w({id:p(),owner:p(),plan:g(p()),status:D(["queued","fetching","preprocessing","rendering","saving","done","failed"]),error:g(p()),duration:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),renderTime:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),url:g(p()),poster:g(x([p(),un()])),thumbnail:g(x([p(),un()])),data:g(Da),created:g(p()),updated:g(p())});w({success:Ge(),message:p(),response:Jb});const Qb=w({id:p(),name:p(),owner:p(),template:Da});w({success:Ge(),message:p(),response:Qb});const sc=w({name:p(),template:g(Da)});w({body:Da,path:g(be()),query:g(be())}),w({body:g(be()),path:w({id:p().regex(/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/)}),query:g(w({data:g(Ge()),merged:g(Ge())}))}),w({body:g(be()),path:g(be()),query:g(be())}),w({body:sc,path:g(be()),query:g(be())}),w({body:g(be()),path:w({id:p().regex(/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/)}),query:g(be())}),w({body:g(be()),path:w({id:p().regex(/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/)}),query:g(be())}),w({body:sc,path:w({id:p().regex(/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/)}),query:g(be())}),w({body:Fb,path:g(be()),query:g(be())}),w({body:g(be()),path:w({url:p()}),query:g(be())}),w({body:g(be()),path:w({id:p().regex(/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/)}),query:g(be())}),w({body:g(be()),path:w({id:p().regex(/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/)}),query:g(be())}),w({body:g(be()),path:w({id:p().regex(/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/)}),query:g(be())}),w({body:tb,path:g(be()),query:g(be())}),w({body:g(be()),path:g(be()),query:g(be())}),w({body:lb,path:g(be()),query:g(be())}),w({body:g(be()),path:w({id:p().regex(/^[0-9a-zA-Z]{8}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{12}$/)}),query:g(be())}),w({body:g(be()),path:w({id:p().regex(/^[0-9a-zA-Z]{8}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{12}$/)}),query:g(be())}),w({body:g(be()),path:g(be()),query:g(be())}),w({body:iy,path:g(be()),query:g(be())}),w({body:g(be()),path:w({id:p().regex(/^[0-9a-zA-Z]{8}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{12}$/)}),query:g(be())});const $b=wy,ew=ab,tw=Ui.shape.format,sw=Ui.shape.fps.unwrap(),aw=Ui.shape.resolution,iw=Ui.shape.aspectRatio,rw=p().regex(/^#[0-9A-Fa-f]{6}$|^#[0-9A-Fa-f]{8}$/);var nw=Object.defineProperty,ow=Object.getOwnPropertyNames,lw=(t,e,s)=>e in t?nw(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,cw=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,s)=>(typeof require<"u"?require:e)[s]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')}),ac=(t,e)=>function(){return e||(0,t[ow(t)[0]])((e={exports:{}}).exports,e),e.exports},bt=(t,e,s)=>lw(t,typeof e!="symbol"?e+"":e,s);const fw={utf16le:"utf-16le",ucs2:"utf-16le",utf16be:"utf-16be"};class pt{constructor(e){this.buffer=e,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength),this.pos=0,this.length=this.buffer.length}readString(e,s="ascii"){s=fw[s]||s;let a=this.readBuffer(e);try{return new TextDecoder(s).decode(a)}catch{return a}}readBuffer(e){return this.buffer.slice(this.pos,this.pos+=e)}readUInt24BE(){return(this.readUInt16BE()<<8)+this.readUInt8()}readUInt24LE(){return this.readUInt16LE()+(this.readUInt8()<<16)}readInt24BE(){return(this.readInt16BE()<<8)+this.readUInt8()}readInt24LE(){return this.readUInt16LE()+(this.readInt8()<<16)}}pt.TYPES={UInt8:1,UInt16:2,UInt24:3,UInt32:4,Int8:1,Int16:2,Int24:3,Int32:4,Float:4,Double:8};for(let t of Object.getOwnPropertyNames(DataView.prototype))if(t.slice(0,3)==="get"){let e=t.slice(3).replace("Ui","UI");e==="Float32"?e="Float":e==="Float64"&&(e="Double");let s=pt.TYPES[e];pt.prototype["read"+e+(s===1?"":"BE")]=function(){const a=this.view[t](this.pos,!1);return this.pos+=s,a},s!==1&&(pt.prototype["read"+e+"LE"]=function(){const a=this.view[t](this.pos,!0);return this.pos+=s,a})}const uw=new TextEncoder,ic=new Uint8Array(new Uint16Array([4660]).buffer)[0]==18;class Zi{constructor(e){this.buffer=e,this.view=new DataView(this.buffer.buffer,this.buffer.byteOffset,this.buffer.byteLength),this.pos=0}writeBuffer(e){this.buffer.set(e,this.pos),this.pos+=e.length}writeString(e,s="ascii"){let a;switch(s){case"utf16le":case"utf16-le":case"ucs2":a=rc(e,ic);break;case"utf16be":case"utf16-be":a=rc(e,!ic);break;case"utf8":a=uw.encode(e);break;case"ascii":a=hw(e);break;default:throw new Error(`Unsupported encoding: ${s}`)}this.writeBuffer(a)}writeUInt24BE(e){this.buffer[this.pos++]=e>>>16&255,this.buffer[this.pos++]=e>>>8&255,this.buffer[this.pos++]=e&255}writeUInt24LE(e){this.buffer[this.pos++]=e&255,this.buffer[this.pos++]=e>>>8&255,this.buffer[this.pos++]=e>>>16&255}writeInt24BE(e){e>=0?this.writeUInt24BE(e):this.writeUInt24BE(e+16777215+1)}writeInt24LE(e){e>=0?this.writeUInt24LE(e):this.writeUInt24LE(e+16777215+1)}fill(e,s){if(s<this.buffer.length)this.buffer.fill(e,this.pos,this.pos+s),this.pos+=s;else{const a=new Uint8Array(s);a.fill(e),this.writeBuffer(a)}}}function rc(t,e){let s=new Uint16Array(t.length);for(let a=0;a<t.length;a++){let i=t.charCodeAt(a);e&&(i=i>>8|(i&255)<<8),s[a]=i}return new Uint8Array(s.buffer)}function hw(t){let e=new Uint8Array(t.length);for(let s=0;s<t.length;s++)e[s]=t.charCodeAt(s);return e}for(let t of Object.getOwnPropertyNames(DataView.prototype))if(t.slice(0,3)==="set"){let e=t.slice(3).replace("Ui","UI");e==="Float32"?e="Float":e==="Float64"&&(e="Double");let s=pt.TYPES[e];Zi.prototype["write"+e+(s===1?"":"BE")]=function(a){this.view[t](this.pos,a,!1),this.pos+=s},s!==1&&(Zi.prototype["write"+e+"LE"]=function(a){this.view[t](this.pos,a,!0),this.pos+=s})}class cs{fromBuffer(e){let s=new pt(e);return this.decode(s)}toBuffer(e){let s=this.size(e),a=new Uint8Array(s),i=new Zi(a);return this.encode(i,e),a}}class Ee extends cs{constructor(e,s="BE"){super(),this.type=e,this.endian=s,this.fn=this.type,this.type[this.type.length-1]!=="8"&&(this.fn+=this.endian)}size(){return pt.TYPES[this.type]}decode(e){return e[`read${this.fn}`]()}encode(e,s){return e[`write${this.fn}`](s)}}const K=new Ee("UInt8"),u=new Ee("UInt16","BE");new Ee("UInt16","LE");const ks=new Ee("UInt24","BE");new Ee("UInt24","LE");const S=new Ee("UInt32","BE");new Ee("UInt32","LE");const lt=new Ee("Int8"),U=new Ee("Int16","BE");new Ee("Int16","LE"),new Ee("Int24","BE"),new Ee("Int24","LE");const Ds=new Ee("Int32","BE");new Ee("Int32","LE"),new Ee("Float","BE"),new Ee("Float","LE"),new Ee("Double","BE"),new Ee("Double","LE");class Bs extends Ee{constructor(e,s,a=e>>1){super(`Int${e}`,s),this._point=1<<a}decode(e){return super.decode(e)/this._point}encode(e,s){return super.encode(e,s*this._point|0)}}const dw=new Bs(16,"BE");new Bs(16,"LE");const st=new Bs(32,"BE");new Bs(32,"LE");function Jt(t,e,s){let a;if(typeof t=="number"?a=t:typeof t=="function"?a=t.call(s,s):s&&typeof t=="string"?a=s[t]:e&&t instanceof Ee&&(a=t.decode(e)),isNaN(a))throw new Error("Not a fixed size");return a}class mn{constructor(e={}){this.enumerable=!0,this.configurable=!0;for(let s in e){const a=e[s];this[s]=a}}}class k extends cs{constructor(e,s,a="count"){super(),this.type=e,this.length=s,this.lengthType=a}decode(e,s){let a;const{pos:i}=e,r=[];let n=s;if(this.length!=null&&(a=Jt(this.length,e,s)),this.length instanceof Ee&&(Object.defineProperties(r,{parent:{value:s},_startOffset:{value:i},_currentOffset:{value:0,writable:!0},_length:{value:a}}),n=r),a==null||this.lengthType==="bytes"){const o=a!=null?e.pos+a:s?._length?s._startOffset+s._length:e.length;for(;e.pos<o;)r.push(this.type.decode(e,n))}else for(let o=0,l=a;o<l;o++)r.push(this.type.decode(e,n));return r}size(e,s,a=!0){if(!e)return this.type.size(null,s)*Jt(this.length,null,s);let i=0;this.length instanceof Ee&&(i+=this.length.size(),s={parent:s,pointerSize:0});for(let r of e)i+=this.type.size(r,s);return s&&a&&this.length instanceof Ee&&(i+=s.pointerSize),i}encode(e,s,a){let i=a;this.length instanceof Ee&&(i={pointers:[],startOffset:e.pos,parent:a},i.pointerOffset=e.pos+this.size(s,i,!1),this.length.encode(e,s.length));for(let r of s)this.type.encode(e,r,i);if(this.length instanceof Ee){let r=0;for(;r<i.pointers.length;){const n=i.pointers[r++];n.type.encode(e,n.val,n.parent)}}}}class Be extends k{decode(e,s){const{pos:a}=e,i=Jt(this.length,e,s);this.length instanceof Ee&&(s={parent:s,_startOffset:a,_currentOffset:0,_length:i});const r=new yn(this.type,i,e,s);return e.pos+=i*this.type.size(null,s),r}size(e,s){return e instanceof yn&&(e=e.toArray()),super.size(e,s)}encode(e,s,a){return s instanceof yn&&(s=s.toArray()),super.encode(e,s,a)}}class yn{constructor(e,s,a,i){this.type=e,this.length=s,this.stream=a,this.ctx=i,this.base=this.stream.pos,this.items=[]}get(e){if(!(e<0||e>=this.length)){if(this.items[e]==null){const{pos:s}=this.stream;this.stream.pos=this.base+this.type.size(null,this.ctx)*e,this.items[e]=this.type.decode(this.stream,this.ctx),this.stream.pos=s}return this.items[e]}}toArray(){const e=[];for(let s=0,a=this.length;s<a;s++)e.push(this.get(s));return e}}class Bt extends cs{constructor(e,s=[]){super(),this.type=e,this.flags=s}decode(e){const s=this.type.decode(e),a={};for(let i=0;i<this.flags.length;i++){const r=this.flags[i];r!=null&&(a[r]=!!(s&1<<i))}return a}size(){return this.type.size()}encode(e,s){let a=0;for(let i=0;i<this.flags.length;i++){const r=this.flags[i];r!=null&&s[r]&&(a|=1<<i)}return this.type.encode(e,a)}}class Qt extends cs{constructor(e){super(),this.length=e}decode(e,s){const a=Jt(this.length,e,s);return e.readBuffer(a)}size(e,s){if(!e)return Jt(this.length,null,s);let a=e.length;return this.length instanceof Ee&&(a+=this.length.size()),a}encode(e,s,a){return this.length instanceof Ee&&this.length.encode(e,s.length),e.writeBuffer(s)}}class Gi extends cs{constructor(e,s=!0){super(),this.type=e,this.condition=s}decode(e,s){let{condition:a}=this;if(typeof a=="function"&&(a=a.call(s,s)),a)return this.type.decode(e,s)}size(e,s){let{condition:a}=this;return typeof a=="function"&&(a=a.call(s,s)),a?this.type.size(e,s):0}encode(e,s,a){let{condition:i}=this;if(typeof i=="function"&&(i=i.call(a,a)),i)return this.type.encode(e,s,a)}}class je extends cs{constructor(e,s=1){super(),this.type=e,this.count=s}decode(e,s){e.pos+=this.size(null,s)}size(e,s){const a=Jt(this.count,null,s);return this.type.size()*a}encode(e,s,a){return e.fill(0,this.size(s,a))}}class Re extends cs{constructor(e,s="ascii"){super(),this.length=e,this.encoding=s}decode(e,s){let a,i,{encoding:r}=this;typeof r=="function"&&(r=r.call(s,s)||"ascii");let n=bn(r);if(this.length!=null)a=Jt(this.length,e,s);else{let l;for({buffer:l,length:a,pos:i}=e;i<a-n+1&&(l[i]!==0||n===2&&l[i+1]!==0);)i+=n;a=i-e.pos}const o=e.readString(a,r);return this.length==null&&e.pos<e.length&&(e.pos+=n),o}size(e,s){if(e==null)return Jt(this.length,null,s);let{encoding:a}=this;typeof a=="function"&&(a=a.call(s?.val,s?.val)||"ascii"),a==="utf16be"&&(a="utf16le");let i=nc(e,a);return this.length instanceof Ee&&(i+=this.length.size()),this.length==null&&(i+=bn(a)),i}encode(e,s,a){let{encoding:i}=this;if(typeof i=="function"&&(i=i.call(a?.val,a?.val)||"ascii"),this.length instanceof Ee&&this.length.encode(e,nc(s,i)),e.writeString(s,i),this.length==null)return bn(i)==2?e.writeUInt16LE(0):e.writeUInt8(0)}}function bn(t){switch(t){case"ascii":case"utf8":return 1;case"utf16le":case"utf16-le":case"utf-16be":case"utf-16le":case"utf16be":case"utf16-be":case"ucs2":return 2;default:return 1}}function nc(t,e){switch(e){case"ascii":return t.length;case"utf8":let s=0;for(let a=0;a<t.length;a++){let i=t.charCodeAt(a);if(i>=55296&&i<=56319&&a<t.length-1){let r=t.charCodeAt(++a);(r&64512)===56320?i=((i&1023)<<10)+(r&1023)+65536:a--}i&4294967168?i&4294965248?i&4294901760?i&4292870144||(s+=4):s+=3:s+=2:s++}return s;case"utf16le":case"utf16-le":case"utf16be":case"utf16-be":case"ucs2":return t.length*2;default:throw new Error("Unknown encoding "+e)}}class T extends cs{constructor(e={}){super(),this.fields=e}decode(e,s,a=0){const i=this._setup(e,s,a);return this._parseFields(e,i,this.fields),this.process!=null&&this.process.call(i,e),i}_setup(e,s,a){const i={};return Object.defineProperties(i,{parent:{value:s},_startOffset:{value:e.pos},_currentOffset:{value:0,writable:!0},_length:{value:a}}),i}_parseFields(e,s,a){for(let r in a){var i;const n=a[r];typeof n=="function"?i=n.call(s,s):i=n.decode(e,s),i!==void 0&&(i instanceof mn?Object.defineProperty(s,r,i):s[r]=i),s._currentOffset=e.pos-s._startOffset}}size(e,s,a=!0){e==null&&(e={});const i={parent:s,val:e,pointerSize:0};this.preEncode!=null&&this.preEncode.call(e);let r=0;for(let n in this.fields){const o=this.fields[n];o.size!=null&&(r+=o.size(e[n],i))}return a&&(r+=i.pointerSize),r}encode(e,s,a){let i;this.preEncode!=null&&this.preEncode.call(s,e);const r={pointers:[],startOffset:e.pos,parent:a,val:s,pointerSize:0};r.pointerOffset=e.pos+this.size(s,r,!1);for(let o in this.fields)i=this.fields[o],i.encode!=null&&i.encode(e,s[o],r);let n=0;for(;n<r.pointers.length;){const o=r.pointers[n++];o.type.encode(e,o.val,o.parent)}}}const gw=(t,e)=>e.reduce((s,a)=>s&&s[a],t);class ve extends T{constructor(e,s={}){super(),this.type=e,this.versions=s,typeof e=="string"&&(this.versionPath=e.split("."))}decode(e,s,a=0){const i=this._setup(e,s,a);typeof this.type=="string"?i.version=gw(s,this.versionPath):i.version=this.type.decode(e),this.versions.header&&this._parseFields(e,i,this.versions.header);const r=this.versions[i.version];if(r==null)throw new Error(`Unknown version ${i.version}`);return r instanceof ve?r.decode(e,s):(this._parseFields(e,i,r),this.process!=null&&this.process.call(i,e),i)}size(e,s,a=!0){let i,r;if(!e)throw new Error("Not a fixed size");this.preEncode!=null&&this.preEncode.call(e);const n={parent:s,val:e,pointerSize:0};let o=0;if(typeof this.type!="string"&&(o+=this.type.size(e.version,n)),this.versions.header)for(i in this.versions.header)r=this.versions.header[i],r.size!=null&&(o+=r.size(e[i],n));const l=this.versions[e.version];if(l==null)throw new Error(`Unknown version ${e.version}`);for(i in l)r=l[i],r.size!=null&&(o+=r.size(e[i],n));return a&&(o+=n.pointerSize),o}encode(e,s,a){let i,r;this.preEncode!=null&&this.preEncode.call(s,e);const n={pointers:[],startOffset:e.pos,parent:a,val:s,pointerSize:0};if(n.pointerOffset=e.pos+this.size(s,n,!1),typeof this.type!="string"&&this.type.encode(e,s.version),this.versions.header)for(i in this.versions.header)r=this.versions.header[i],r.encode!=null&&r.encode(e,s[i],n);const o=this.versions[s.version];for(i in o)r=o[i],r.encode!=null&&r.encode(e,s[i],n);let l=0;for(;l<n.pointers.length;){const c=n.pointers[l++];c.type.encode(e,c.val,c.parent)}}}class A extends cs{constructor(e,s,a={}){if(super(),this.offsetType=e,this.type=s,this.options=a,this.type==="void"&&(this.type=null),this.options.type==null&&(this.options.type="local"),this.options.allowNull==null&&(this.options.allowNull=!0),this.options.nullValue==null&&(this.options.nullValue=0),this.options.lazy==null&&(this.options.lazy=!1),this.options.relativeTo){if(typeof this.options.relativeTo!="function")throw new Error("relativeTo option must be a function");this.relativeToGetter=a.relativeTo}}decode(e,s){const a=this.offsetType.decode(e,s);if(a===this.options.nullValue&&this.options.allowNull)return null;let i;switch(this.options.type){case"local":i=s._startOffset;break;case"immediate":i=e.pos-this.offsetType.size();break;case"parent":i=s.parent._startOffset;break;default:for(var r=s;r.parent;)r=r.parent;i=r._startOffset||0}this.options.relativeTo&&(i+=this.relativeToGetter(s));const n=a+i;if(this.type!=null){let o=null;const l=()=>{if(o!=null)return o;const{pos:c}=e;return e.pos=n,o=this.type.decode(e,s),e.pos=c,o};return this.options.lazy?new mn({get:l}):l()}else return n}size(e,s){const a=s;switch(this.options.type){case"local":case"immediate":break;case"parent":s=s.parent;break;default:for(;s.parent;)s=s.parent}let{type:i}=this;if(i==null){if(!(e instanceof wn))throw new Error("Must be a VoidPointer");({type:i}=e),e=e.value}if(e&&s){let r=i.size(e,a);s.pointerSize+=r}return this.offsetType.size()}encode(e,s,a){let i;const r=a;if(s==null){this.offsetType.encode(e,this.options.nullValue);return}switch(this.options.type){case"local":i=a.startOffset;break;case"immediate":i=e.pos+this.offsetType.size(s,r);break;case"parent":a=a.parent,i=a.startOffset;break;default:for(i=0;a.parent;)a=a.parent}this.options.relativeTo&&(i+=this.relativeToGetter(r.val)),this.offsetType.encode(e,a.pointerOffset-i);let{type:n}=this;if(n==null){if(!(s instanceof wn))throw new Error("Must be a VoidPointer");({type:n}=s),s=s.value}return a.pointers.push({type:n,val:s,parent:r}),a.pointerOffset+=n.size(s,r)}}class wn{constructor(e,s){this.type=e,this.value=s}}function St(t,e,s){return e in t?Object.defineProperty(t,e,{value:s,enumerable:!0,configurable:!0,writable:!0}):t[e]=s,t}function mt(t,e,s,a){var i=arguments.length,r=i<3?e:a===null?a=Object.getOwnPropertyDescriptor(e,s):a,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(t,e,s,a);else for(var o=t.length-1;o>=0;o--)(n=t[o])&&(r=(i<3?n(r):i>3?n(e,s,r):n(e,s))||r);return i>3&&r&&Object.defineProperty(e,s,r),r}typeof SuppressedError=="function"&&SuppressedError;function ca(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var pw=function t(e,s){if(e===s)return!0;if(e&&s&&typeof e=="object"&&typeof s=="object"){if(e.constructor!==s.constructor)return!1;var a,i,r;if(Array.isArray(e)){if(a=e.length,a!=s.length)return!1;for(i=a;i--!==0;)if(!t(e[i],s[i]))return!1;return!0}if(e.constructor===RegExp)return e.source===s.source&&e.flags===s.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===s.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===s.toString();if(r=Object.keys(e),a=r.length,a!==Object.keys(s).length)return!1;for(i=a;i--!==0;)if(!Object.prototype.hasOwnProperty.call(s,r[i]))return!1;for(i=a;i--!==0;){var n=r[i];if(!t(e[n],s[n]))return!1}return!0}return e!==e&&s!==s};const oc=ca(pw);var Ba={};Ba.byteLength=bw,Ba.toByteArray=vw,Ba.fromByteArray=kw;for(var $t=[],zt=[],mw=typeof Uint8Array<"u"?Uint8Array:Array,vn="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",fa=0,yw=vn.length;fa<yw;++fa)$t[fa]=vn[fa],zt[vn.charCodeAt(fa)]=fa;zt[45]=62,zt[95]=63;function lc(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var s=t.indexOf("=");s===-1&&(s=e);var a=s===e?0:4-s%4;return[s,a]}function bw(t){var e=lc(t),s=e[0],a=e[1];return(s+a)*3/4-a}function ww(t,e,s){return(e+s)*3/4-s}function vw(t){var e,s=lc(t),a=s[0],i=s[1],r=new mw(ww(t,a,i)),n=0,o=i>0?a-4:a,l;for(l=0;l<o;l+=4)e=zt[t.charCodeAt(l)]<<18|zt[t.charCodeAt(l+1)]<<12|zt[t.charCodeAt(l+2)]<<6|zt[t.charCodeAt(l+3)],r[n++]=e>>16&255,r[n++]=e>>8&255,r[n++]=e&255;return i===2&&(e=zt[t.charCodeAt(l)]<<2|zt[t.charCodeAt(l+1)]>>4,r[n++]=e&255),i===1&&(e=zt[t.charCodeAt(l)]<<10|zt[t.charCodeAt(l+1)]<<4|zt[t.charCodeAt(l+2)]>>2,r[n++]=e>>8&255,r[n++]=e&255),r}function xw(t){return $t[t>>18&63]+$t[t>>12&63]+$t[t>>6&63]+$t[t&63]}function Cw(t,e,s){for(var a,i=[],r=e;r<s;r+=3)a=(t[r]<<16&16711680)+(t[r+1]<<8&65280)+(t[r+2]&255),i.push(xw(a));return i.join("")}function kw(t){for(var e,s=t.length,a=s%3,i=[],r=16383,n=0,o=s-a;n<o;n+=r)i.push(Cw(t,n,n+r>o?o:n+r));return a===1?(e=t[s-1],i.push($t[e>>2]+$t[e<<4&63]+"==")):a===2&&(e=(t[s-2]<<8)+t[s-1],i.push($t[e>>10]+$t[e>>4&63]+$t[e<<2&63]+"=")),i.join("")}var xn=0,cc=-3;function Ua(){this.table=new Uint16Array(16),this.trans=new Uint16Array(288)}function Nw(t,e){this.source=t,this.sourceIndex=0,this.tag=0,this.bitcount=0,this.dest=e,this.destLen=0,this.ltree=new Ua,this.dtree=new Ua}var fc=new Ua,uc=new Ua,Cn=new Uint8Array(30),kn=new Uint16Array(30),hc=new Uint8Array(30),dc=new Uint16Array(30),Aw=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),gc=new Ua,es=new Uint8Array(320);function pc(t,e,s,a){var i,r;for(i=0;i<s;++i)t[i]=0;for(i=0;i<30-s;++i)t[i+s]=i/s|0;for(r=a,i=0;i<30;++i)e[i]=r,r+=1<<t[i]}function Sw(t,e){var s;for(s=0;s<7;++s)t.table[s]=0;for(t.table[7]=24,t.table[8]=152,t.table[9]=112,s=0;s<24;++s)t.trans[s]=256+s;for(s=0;s<144;++s)t.trans[24+s]=s;for(s=0;s<8;++s)t.trans[168+s]=280+s;for(s=0;s<112;++s)t.trans[176+s]=144+s;for(s=0;s<5;++s)e.table[s]=0;for(e.table[5]=32,s=0;s<32;++s)e.trans[s]=s}var mc=new Uint16Array(16);function Nn(t,e,s,a){var i,r;for(i=0;i<16;++i)t.table[i]=0;for(i=0;i<a;++i)t.table[e[s+i]]++;for(t.table[0]=0,r=0,i=0;i<16;++i)mc[i]=r,r+=t.table[i];for(i=0;i<a;++i)e[s+i]&&(t.trans[mc[e[s+i]]++]=i)}function Vw(t){t.bitcount--||(t.tag=t.source[t.sourceIndex++],t.bitcount=7);var e=t.tag&1;return t.tag>>>=1,e}function ts(t,e,s){if(!e)return s;for(;t.bitcount<24;)t.tag|=t.source[t.sourceIndex++]<<t.bitcount,t.bitcount+=8;var a=t.tag&65535>>>16-e;return t.tag>>>=e,t.bitcount-=e,a+s}function An(t,e){for(;t.bitcount<24;)t.tag|=t.source[t.sourceIndex++]<<t.bitcount,t.bitcount+=8;var s=0,a=0,i=0,r=t.tag;do a=2*a+(r&1),r>>>=1,++i,s+=e.table[i],a-=e.table[i];while(a>=0);return t.tag=r,t.bitcount-=i,e.trans[s+a]}function Iw(t,e,s){var a,i,r,n,o,l;for(a=ts(t,5,257),i=ts(t,5,1),r=ts(t,4,4),n=0;n<19;++n)es[n]=0;for(n=0;n<r;++n){var c=ts(t,3,0);es[Aw[n]]=c}for(Nn(gc,es,0,19),o=0;o<a+i;){var f=An(t,gc);switch(f){case 16:var h=es[o-1];for(l=ts(t,2,3);l;--l)es[o++]=h;break;case 17:for(l=ts(t,3,3);l;--l)es[o++]=0;break;case 18:for(l=ts(t,7,11);l;--l)es[o++]=0;break;default:es[o++]=f;break}}Nn(e,es,0,a),Nn(s,es,a,i)}function yc(t,e,s){for(;;){var a=An(t,e);if(a===256)return xn;if(a<256)t.dest[t.destLen++]=a;else{var i,r,n,o;for(a-=257,i=ts(t,Cn[a],kn[a]),r=An(t,s),n=t.destLen-ts(t,hc[r],dc[r]),o=n;o<n+i;++o)t.dest[t.destLen++]=t.dest[o]}}}function _w(t){for(var e,s,a;t.bitcount>8;)t.sourceIndex--,t.bitcount-=8;if(e=t.source[t.sourceIndex+1],e=256*e+t.source[t.sourceIndex],s=t.source[t.sourceIndex+3],s=256*s+t.source[t.sourceIndex+2],e!==(~s&65535))return cc;for(t.sourceIndex+=4,a=e;a;--a)t.dest[t.destLen++]=t.source[t.sourceIndex++];return t.bitcount=0,xn}function Fw(t,e){var s=new Nw(t,e),a,i,r;do{switch(a=Vw(s),i=ts(s,2,0),i){case 0:r=_w(s);break;case 1:r=yc(s,fc,uc);break;case 2:Iw(s,s.ltree,s.dtree),r=yc(s,s.ltree,s.dtree);break;default:r=cc}if(r!==xn)throw new Error("Data error")}while(!a);return s.destLen<s.dest.length?typeof s.dest.slice=="function"?s.dest.slice(0,s.destLen):s.dest.subarray(0,s.destLen):s.dest}Sw(fc,uc),pc(Cn,kn,4,3),pc(hc,dc,2,1),Cn[28]=0,kn[28]=258;var bc=Fw;const Tw=ca(bc),Pw=new Uint8Array(new Uint32Array([305419896]).buffer)[0]===18,wc=(t,e,s)=>{let a=t[e];t[e]=t[s],t[s]=a},Ew=t=>{const e=t.length;for(let s=0;s<e;s+=4)wc(t,s,s+3),wc(t,s+1,s+2)};var Ow={swap32LE:t=>{Pw&&Ew(t)}};const vc=bc,{swap32LE:Mw}=Ow,Sn=11,Us=5,Rw=Sn-Us,zw=65536>>Sn,Lw=(1<<Rw)-1,Wi=2,Vn=(1<<Us)-1,xc=65536>>Us,Dw=1024>>Us,Bw=xc+Dw+32,Uw=1<<Wi;class Zw{constructor(e){const s=typeof e.readUInt32BE=="function"&&typeof e.slice=="function";if(s||e instanceof Uint8Array){let a;if(s)this.highStart=e.readUInt32LE(0),this.errorValue=e.readUInt32LE(4),a=e.readUInt32LE(8),e=e.slice(12);else{const i=new DataView(e.buffer);this.highStart=i.getUint32(0,!0),this.errorValue=i.getUint32(4,!0),a=i.getUint32(8,!0),e=e.subarray(12)}e=vc(e,new Uint8Array(a)),e=vc(e,new Uint8Array(a)),Mw(e),this.data=new Uint32Array(e.buffer)}else({data:this.data,highStart:this.highStart,errorValue:this.errorValue}=e)}get(e){let s;return e<0||e>1114111?this.errorValue:e<55296||e>56319&&e<=65535?(s=(this.data[e>>Us]<<Wi)+(e&Vn),this.data[s]):e<=65535?(s=(this.data[xc+(e-55296>>Us)]<<Wi)+(e&Vn),this.data[s]):e<this.highStart?(s=this.data[Bw-zw+(e>>Sn)],s=this.data[s+(e>>Us&Lw)],s=(s<<Wi)+(e&Vn),this.data[s]):this.data[this.data.length-Uw]}}var Gw=Zw;const Yi=ca(Gw);function Zs(t){return t&&t.__esModule?t.default:t}var Ns={};Ns=JSON.parse('{"categories":["Cc","Zs","Po","Sc","Ps","Pe","Sm","Pd","Nd","Lu","Sk","Pc","Ll","So","Lo","Pi","Cf","No","Pf","Lt","Lm","Mn","Me","Mc","Nl","Zl","Zp","Cs","Co"],"combiningClasses":["Not_Reordered","Above","Above_Right","Below","Attached_Above_Right","Attached_Below","Overlay","Iota_Subscript","Double_Below","Double_Above","Below_Right","Above_Left","CCC10","CCC11","CCC12","CCC13","CCC14","CCC15","CCC16","CCC17","CCC18","CCC19","CCC20","CCC21","CCC22","CCC23","CCC24","CCC25","CCC30","CCC31","CCC32","CCC27","CCC28","CCC29","CCC33","CCC34","CCC35","CCC36","Nukta","Virama","CCC84","CCC91","CCC103","CCC107","CCC118","CCC122","CCC129","CCC130","CCC132","Attached_Above","Below_Left","Left","Kana_Voicing","CCC26","Right"],"scripts":["Common","Latin","Bopomofo","Inherited","Greek","Coptic","Cyrillic","Armenian","Hebrew","Arabic","Syriac","Thaana","Nko","Samaritan","Mandaic","Devanagari","Bengali","Gurmukhi","Gujarati","Oriya","Tamil","Telugu","Kannada","Malayalam","Sinhala","Thai","Lao","Tibetan","Myanmar","Georgian","Hangul","Ethiopic","Cherokee","Canadian_Aboriginal","Ogham","Runic","Tagalog","Hanunoo","Buhid","Tagbanwa","Khmer","Mongolian","Limbu","Tai_Le","New_Tai_Lue","Buginese","Tai_Tham","Balinese","Sundanese","Batak","Lepcha","Ol_Chiki","Braille","Glagolitic","Tifinagh","Han","Hiragana","Katakana","Yi","Lisu","Vai","Bamum","Syloti_Nagri","Phags_Pa","Saurashtra","Kayah_Li","Rejang","Javanese","Cham","Tai_Viet","Meetei_Mayek","null","Linear_B","Lycian","Carian","Old_Italic","Gothic","Old_Permic","Ugaritic","Old_Persian","Deseret","Shavian","Osmanya","Osage","Elbasan","Caucasian_Albanian","Linear_A","Cypriot","Imperial_Aramaic","Palmyrene","Nabataean","Hatran","Phoenician","Lydian","Meroitic_Hieroglyphs","Meroitic_Cursive","Kharoshthi","Old_South_Arabian","Old_North_Arabian","Manichaean","Avestan","Inscriptional_Parthian","Inscriptional_Pahlavi","Psalter_Pahlavi","Old_Turkic","Old_Hungarian","Hanifi_Rohingya","Old_Sogdian","Sogdian","Elymaic","Brahmi","Kaithi","Sora_Sompeng","Chakma","Mahajani","Sharada","Khojki","Multani","Khudawadi","Grantha","Newa","Tirhuta","Siddham","Modi","Takri","Ahom","Dogra","Warang_Citi","Nandinagari","Zanabazar_Square","Soyombo","Pau_Cin_Hau","Bhaiksuki","Marchen","Masaram_Gondi","Gunjala_Gondi","Makasar","Cuneiform","Egyptian_Hieroglyphs","Anatolian_Hieroglyphs","Mro","Bassa_Vah","Pahawh_Hmong","Medefaidrin","Miao","Tangut","Nushu","Duployan","SignWriting","Nyiakeng_Puachue_Hmong","Wancho","Mende_Kikakui","Adlam"],"eaw":["N","Na","A","W","H","F"]}');const In=new Yi(Ba.toByteArray("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")),Ww=Math.log2||(t=>Math.log(t)/Math.LN2),Hi=t=>Ww(t)+1|0,Yw=Hi(Zs(Ns).categories.length-1),Cc=Hi(Zs(Ns).combiningClasses.length-1),_n=Hi(Zs(Ns).scripts.length-1),Fn=Hi(Zs(Ns).eaw.length-1),Tn=10,Hw=Cc+_n+Fn+Tn,jw=_n+Fn+Tn,Kw=Fn+Tn,Xw=(1<<Yw)-1,qw=(1<<Cc)-1,Jw=(1<<_n)-1;function ji(t){const e=In.get(t);return Zs(Ns).categories[e>>Hw&Xw]}function Qw(t){const e=In.get(t);return Zs(Ns).combiningClasses[e>>jw&qw]}function kc(t){const e=In.get(t);return Zs(Ns).scripts[e>>Kw&Jw]}function Nc(t){return ji(t)==="Nd"}function Ac(t){const e=ji(t);return e==="Mn"||e==="Me"||e==="Mc"}var Pn=1,En=0;class $w{constructor(e){this.stateTable=e.stateTable,this.accepting=e.accepting,this.tags=e.tags}match(e){var s=this;return{*[Symbol.iterator](){for(var a=Pn,i=null,r=null,n=null,o=0;o<e.length;o++){var l=e[o];n=a,a=s.stateTable[a][l],a===En&&(i!=null&&r!=null&&r>=i&&(yield[i,r,s.tags[n]]),a=s.stateTable[Pn][l],i=null),a!==En&&i==null&&(i=o),s.accepting[a]&&(r=o),a===En&&(a=Pn)}i!=null&&r!=null&&r>=i&&(yield[i,r,s.tags[a]])}}}apply(e,s){for(var[a,i,r]of this.match(e))for(var n of r)typeof s[n]=="function"&&s[n](a,i,e.slice(a,i+1))}}var e1=$w;const Sc=ca(e1);var Vc={exports:{}};(function(t){var e=function(){function s(d,m){return m!=null&&d instanceof m}var a;try{a=Map}catch{a=function(){}}var i;try{i=Set}catch{i=function(){}}var r;try{r=Promise}catch{r=function(){}}function n(d,m,b,V,M){typeof m=="object"&&(b=m.depth,V=m.prototype,M=m.includeNonEnumerable,m=m.circular);var E=[],I=[],v=typeof Buffer<"u";typeof m>"u"&&(m=!0),typeof b>"u"&&(b=1/0);function F(y,Z){if(y===null)return null;if(Z===0)return y;var P,B;if(typeof y!="object")return y;if(s(y,a))P=new a;else if(s(y,i))P=new i;else if(s(y,r))P=new r(function(ye,G){y.then(function(Y){ye(F(Y,Z-1))},function(Y){G(F(Y,Z-1))})});else if(n.__isArray(y))P=[];else if(n.__isRegExp(y))P=new RegExp(y.source,h(y)),y.lastIndex&&(P.lastIndex=y.lastIndex);else if(n.__isDate(y))P=new Date(y.getTime());else{if(v&&Buffer.isBuffer(y))return Buffer.allocUnsafe?P=Buffer.allocUnsafe(y.length):P=new Buffer(y.length),y.copy(P),P;s(y,Error)?P=Object.create(y):typeof V>"u"?(B=Object.getPrototypeOf(y),P=Object.create(B)):(P=Object.create(V),B=V)}if(m){var J=E.indexOf(y);if(J!=-1)return I[J];E.push(y),I.push(P)}s(y,a)&&y.forEach(function(ye,G){var Y=F(G,Z-1),W=F(ye,Z-1);P.set(Y,W)}),s(y,i)&&y.forEach(function(ye){var G=F(ye,Z-1);P.add(G)});for(var $ in y){var se;B&&(se=Object.getOwnPropertyDescriptor(B,$)),!(se&&se.set==null)&&(P[$]=F(y[$],Z-1))}if(Object.getOwnPropertySymbols)for(var ue=Object.getOwnPropertySymbols(y),$=0;$<ue.length;$++){var Ce=ue[$],Te=Object.getOwnPropertyDescriptor(y,Ce);Te&&!Te.enumerable&&!M||(P[Ce]=F(y[Ce],Z-1),Te.enumerable||Object.defineProperty(P,Ce,{enumerable:!1}))}if(M)for(var Ae=Object.getOwnPropertyNames(y),$=0;$<Ae.length;$++){var Le=Ae[$],Te=Object.getOwnPropertyDescriptor(y,Le);Te&&Te.enumerable||(P[Le]=F(y[Le],Z-1),Object.defineProperty(P,Le,{enumerable:!1}))}return P}return F(d,b)}n.clonePrototype=function(m){if(m===null)return null;var b=function(){};return b.prototype=m,new b};function o(d){return Object.prototype.toString.call(d)}n.__objToStr=o;function l(d){return typeof d=="object"&&o(d)==="[object Date]"}n.__isDate=l;function c(d){return typeof d=="object"&&o(d)==="[object Array]"}n.__isArray=c;function f(d){return typeof d=="object"&&o(d)==="[object RegExp]"}n.__isRegExp=f;function h(d){var m="";return d.global&&(m+="g"),d.ignoreCase&&(m+="i"),d.multiline&&(m+="m"),m}return n.__getRegExpFlags=h,n}();t.exports&&(t.exports=e)})(Vc);var t1=Vc.exports;const On=ca(t1);var Za={},Ki={};function Ic(t){this.buffer=t,this.pos=0}Ic.prototype.read=function(t,e,s){this.pos+s>this.buffer.length&&(s=this.buffer.length-this.pos);for(var a=0;a<s;a++)t[e+a]=this.buffer[this.pos+a];return this.pos+=s,s},Ki.BrotliInput=Ic;function _c(t){this.buffer=t,this.pos=0}_c.prototype.write=function(t,e){if(this.pos+e>this.buffer.length)throw new Error("Output buffer is not large enough");return this.buffer.set(t.subarray(0,e),this.pos),this.pos+=e,e},Ki.BrotliOutput=_c;var Gs=4096,s1=2*Gs+32,Fc=2*Gs-1,a1=new Uint32Array([0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535,131071,262143,524287,1048575,2097151,4194303,8388607,16777215]);function Ws(t){this.buf_=new Uint8Array(s1),this.input_=t,this.reset()}Ws.READ_SIZE=Gs,Ws.IBUF_MASK=Fc,Ws.prototype.reset=function(){this.buf_ptr_=0,this.val_=0,this.pos_=0,this.bit_pos_=0,this.bit_end_pos_=0,this.eos_=0,this.readMoreInput();for(var t=0;t<4;t++)this.val_|=this.buf_[this.pos_]<<8*t,++this.pos_;return this.bit_end_pos_>0},Ws.prototype.readMoreInput=function(){if(!(this.bit_end_pos_>256))if(this.eos_){if(this.bit_pos_>this.bit_end_pos_)throw new Error("Unexpected end of input "+this.bit_pos_+" "+this.bit_end_pos_)}else{var t=this.buf_ptr_,e=this.input_.read(this.buf_,t,Gs);if(e<0)throw new Error("Unexpected end of input");if(e<Gs){this.eos_=1;for(var s=0;s<32;s++)this.buf_[t+e+s]=0}if(t===0){for(var s=0;s<32;s++)this.buf_[(Gs<<1)+s]=this.buf_[s];this.buf_ptr_=Gs}else this.buf_ptr_=0;this.bit_end_pos_+=e<<3}},Ws.prototype.fillBitWindow=function(){for(;this.bit_pos_>=8;)this.val_>>>=8,this.val_|=this.buf_[this.pos_&Fc]<<24,++this.pos_,this.bit_pos_=this.bit_pos_-8>>>0,this.bit_end_pos_=this.bit_end_pos_-8>>>0},Ws.prototype.readBits=function(t){32-this.bit_pos_<t&&this.fillBitWindow();var e=this.val_>>>this.bit_pos_&a1[t];return this.bit_pos_+=t,e};var i1=Ws,As={},Mn={},Rn,Tc;function r1(){return Tc||(Tc=1,Rn="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"),Rn}var Pc;function n1(){if(Pc)return Mn;Pc=1;var t=Ba;return Mn.init=function(){var e=Dc().BrotliDecompressBuffer,s=t.toByteArray(r1());return e(s)},Mn}var Ec;function Oc(){if(Ec)return As;Ec=1;var t=n1();return As.init=function(){As.dictionary=t.init()},As.offsetsByLength=new Uint32Array([0,0,0,0,0,4096,9216,21504,35840,44032,53248,63488,74752,87040,93696,100864,104704,106752,108928,113536,115968,118528,119872,121280,122016]),As.sizeBitsByLength=new Uint8Array([0,0,0,0,10,10,11,11,10,10,10,10,10,9,9,8,7,7,8,7,7,6,6,5,5]),As.minDictionaryWordLength=4,As.maxDictionaryWordLength=24,As}var Xi={};function ua(t,e){this.bits=t,this.value=e}Xi.HuffmanCode=ua;var ha=15;function Mc(t,e){for(var s=1<<e-1;t&s;)s>>=1;return(t&s-1)+s}function Rc(t,e,s,a,i){do a-=s,t[e+a]=new ua(i.bits,i.value);while(a>0)}function o1(t,e,s){for(var a=1<<e-s;e<ha&&(a-=t[e],!(a<=0));)++e,a<<=1;return e-s}Xi.BrotliBuildHuffmanTable=function(t,e,s,a,i){var r=e,n,o,l,c,f,h,d,m,b,V,M,E=new Int32Array(ha+1),I=new Int32Array(ha+1);for(M=new Int32Array(i),l=0;l<i;l++)E[a[l]]++;for(I[1]=0,o=1;o<ha;o++)I[o+1]=I[o]+E[o];for(l=0;l<i;l++)a[l]!==0&&(M[I[a[l]]++]=l);if(m=s,b=1<<m,V=b,I[ha]===1){for(c=0;c<V;++c)t[e+c]=new ua(0,M[0]&65535);return V}for(c=0,l=0,o=1,f=2;o<=s;++o,f<<=1)for(;E[o]>0;--E[o])n=new ua(o&255,M[l++]&65535),Rc(t,e+c,f,b,n),c=Mc(c,o);for(d=V-1,h=-1,o=s+1,f=2;o<=ha;++o,f<<=1)for(;E[o]>0;--E[o])(c&d)!==h&&(e+=b,m=o1(E,o,s),b=1<<m,V+=b,h=c&d,t[r+h]=new ua(m+s&255,e-r-h&65535)),n=new ua(o-s&255,M[l++]&65535),Rc(t,e+(c>>s),f,b,n),c=Mc(c,o);return V};var zn={};zn.lookup=new Uint8Array([0,0,0,0,0,0,0,0,0,4,4,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,12,16,12,12,20,12,16,24,28,12,12,32,12,36,12,44,44,44,44,44,44,44,44,44,44,32,32,24,40,28,12,12,48,52,52,52,48,52,52,52,48,52,52,52,52,52,48,52,52,52,52,52,48,52,52,52,52,52,24,12,28,12,12,12,56,60,60,60,56,60,60,60,56,60,60,60,60,60,56,60,60,60,60,60,56,60,60,60,60,60,24,12,28,12,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,56,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,43,43,43,43,44,44,44,44,45,45,45,45,46,46,46,46,47,47,47,47,48,48,48,48,49,49,49,49,50,50,50,50,51,51,51,51,52,52,52,52,53,53,53,53,54,54,54,54,55,55,55,55,56,56,56,56,57,57,57,57,58,58,58,58,59,59,59,59,60,60,60,60,61,61,61,61,62,62,62,62,63,63,63,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),zn.lookupOffsets=new Uint16Array([1024,1536,1280,1536,0,256,768,512]);var da={};function Q(t,e){this.offset=t,this.nbits=e}da.kBlockLengthPrefixCode=[new Q(1,2),new Q(5,2),new Q(9,2),new Q(13,2),new Q(17,3),new Q(25,3),new Q(33,3),new Q(41,3),new Q(49,4),new Q(65,4),new Q(81,4),new Q(97,4),new Q(113,5),new Q(145,5),new Q(177,5),new Q(209,5),new Q(241,6),new Q(305,6),new Q(369,7),new Q(497,8),new Q(753,9),new Q(1265,10),new Q(2289,11),new Q(4337,12),new Q(8433,13),new Q(16625,24)],da.kInsertLengthPrefixCode=[new Q(0,0),new Q(1,0),new Q(2,0),new Q(3,0),new Q(4,0),new Q(5,0),new Q(6,1),new Q(8,1),new Q(10,2),new Q(14,2),new Q(18,3),new Q(26,3),new Q(34,4),new Q(50,4),new Q(66,5),new Q(98,5),new Q(130,6),new Q(194,7),new Q(322,8),new Q(578,9),new Q(1090,10),new Q(2114,12),new Q(6210,14),new Q(22594,24)],da.kCopyLengthPrefixCode=[new Q(2,0),new Q(3,0),new Q(4,0),new Q(5,0),new Q(6,0),new Q(7,0),new Q(8,0),new Q(9,0),new Q(10,1),new Q(12,1),new Q(14,2),new Q(18,2),new Q(22,3),new Q(30,3),new Q(38,4),new Q(54,4),new Q(70,5),new Q(102,5),new Q(134,6),new Q(198,7),new Q(326,8),new Q(582,9),new Q(1094,10),new Q(2118,24)],da.kInsertRangeLut=[0,0,8,8,0,16,8,16,16],da.kCopyRangeLut=[0,8,0,8,16,0,16,8,16];var Ga={},zc;function l1(){if(zc)return Ga;zc=1;var t=Oc(),e=0,s=1,a=2,i=3,r=4,n=5,o=6,l=7,c=8,f=9,h=10,d=11,m=12,b=13,V=14,M=15,E=16,I=17,v=18,F=20;function y(B,J,$){this.prefix=new Uint8Array(B.length),this.transform=J,this.suffix=new Uint8Array($.length);for(var se=0;se<B.length;se++)this.prefix[se]=B.charCodeAt(se);for(var se=0;se<$.length;se++)this.suffix[se]=$.charCodeAt(se)}var Z=[new y("",e,""),new y("",e," "),new y(" ",e," "),new y("",m,""),new y("",h," "),new y("",e," the "),new y(" ",e,""),new y("s ",e," "),new y("",e," of "),new y("",h,""),new y("",e," and "),new y("",b,""),new y("",s,""),new y(", ",e," "),new y("",e,", "),new y(" ",h," "),new y("",e," in "),new y("",e," to "),new y("e ",e," "),new y("",e,'"'),new y("",e,"."),new y("",e,'">'),new y("",e,`
|
|
272
|
-
`),new y("",i,""),new y("",e,"]"),new y("",e," for "),new y("",
|
|
273
|
-
`),new y("",e,":"),new y(" ",e,". "),new y("",e,"ed "),new y("",F,""),new y("",v,""),new y("",o,""),new y("",e,"("),new y("",h,", "),new y("",c,""),new y("",e," at "),new y("",e,"ly "),new y(" the ",e," of "),new y("",n,""),new y("",f,""),new y(" ",h,", "),new y("",h,'"'),new y(".",e,"("),new y("",d," "),new y("",h,'">'),new y("",e,'="'),new y(" ",e,"."),new y(".com/",e,""),new y(" the ",e," of the "),new y("",h,"'"),new y("",e,". This "),new y("",e,","),new y(".",e," "),new y("",h,"("),new y("",h,"."),new y("",e," not "),new y(" ",e,'="'),new y("",e,"er "),new y(" ",d," "),new y("",e,"al "),new y(" ",d,""),new y("",e,"='"),new y("",d,'"'),new y("",h,". "),new y(" ",e,"("),new y("",e,"ful "),new y(" ",h,". "),new y("",e,"ive "),new y("",e,"less "),new y("",d,"'"),new y("",e,"est "),new y(" ",h,"."),new y("",d,'">'),new y(" ",e,"='"),new y("",h,","),new y("",e,"ize "),new y("",d,"."),new y(" ",e,""),new y(" ",e,","),new y("",h,'="'),new y("",d,'="'),new y("",e,"ous "),new y("",d,", "),new y("",h,"='"),new y(" ",h,","),new y(" ",d,'="'),new y(" ",d,", "),new y("",d,","),new y("",d,"("),new y("",d,". "),new y(" ",d,"."),new y("",d,"='"),new y(" ",d,". "),new y(" ",h,'="'),new y(" ",d,"='"),new y(" ",h,"='")];Ga.kTransforms=Z,Ga.kNumTransforms=Z.length;function P(B,J){return B[J]<192?(B[J]>=97&&B[J]<=122&&(B[J]^=32),1):B[J]<224?(B[J+1]^=32,2):(B[J+2]^=5,3)}return Ga.transformDictionaryWord=function(B,J,$,se,ue){var Ce=Z[ue].prefix,Te=Z[ue].suffix,Ae=Z[ue].transform,Le=Ae<m?0:Ae-(m-1),ye=0,G=J,Y;Le>se&&(Le=se);for(var W=0;W<Ce.length;)B[J++]=Ce[W++];for($+=Le,se-=Le,Ae<=f&&(se-=Ae),ye=0;ye<se;ye++)B[J++]=t.dictionary[$+ye];if(Y=J-se,Ae===h)P(B,Y);else if(Ae===d)for(;se>0;){var pe=P(B,Y);Y+=pe,se-=pe}for(var ge=0;ge<Te.length;)B[J++]=Te[ge++];return J-G},Ga}var Lc;function Dc(){if(Lc)return Za;Lc=1;var t=Ki.BrotliInput,e=Ki.BrotliOutput,s=i1,a=Oc(),i=Xi.HuffmanCode,r=Xi.BrotliBuildHuffmanTable,n=zn,o=da,l=l1(),c=8,f=16,h=256,d=704,m=26,b=6,V=2,M=8,E=255,I=1080,v=18,F=new Uint8Array([1,2,3,4,0,5,17,6,16,7,8,9,10,11,12,13,14,15]),y=16,Z=new Uint8Array([3,2,1,0,3,3,3,3,3,3,2,2,2,2,2,2]),P=new Int8Array([0,0,0,0,-1,1,-2,2,-3,3,-1,1,-2,2,-3,3]),B=new Uint16Array([256,402,436,468,500,534,566,598,630,662,694,726,758,790,822,854,886,920,952,984,1016,1048,1080]);function J(H){var z;return H.readBits(1)===0?16:(z=H.readBits(3),z>0?17+z:(z=H.readBits(3),z>0?8+z:17))}function $(H){if(H.readBits(1)){var z=H.readBits(3);return z===0?1:H.readBits(z)+(1<<z)}return 0}function se(){this.meta_block_length=0,this.input_end=0,this.is_uncompressed=0,this.is_metadata=!1}function ue(H){var z=new se,R,O,ee;if(z.input_end=H.readBits(1),z.input_end&&H.readBits(1))return z;if(R=H.readBits(2)+4,R===7){if(z.is_metadata=!0,H.readBits(1)!==0)throw new Error("Invalid reserved bit");if(O=H.readBits(2),O===0)return z;for(ee=0;ee<O;ee++){var ne=H.readBits(8);if(ee+1===O&&O>1&&ne===0)throw new Error("Invalid size byte");z.meta_block_length|=ne<<ee*8}}else for(ee=0;ee<R;++ee){var ae=H.readBits(4);if(ee+1===R&&R>4&&ae===0)throw new Error("Invalid size nibble");z.meta_block_length|=ae<<ee*4}return++z.meta_block_length,!z.input_end&&!z.is_metadata&&(z.is_uncompressed=H.readBits(1)),z}function Ce(H,z,R){var O;return R.fillBitWindow(),z+=R.val_>>>R.bit_pos_&E,O=H[z].bits-M,O>0&&(R.bit_pos_+=M,z+=H[z].value,z+=R.val_>>>R.bit_pos_&(1<<O)-1),R.bit_pos_+=H[z].bits,H[z].value}function Te(H,z,R,O){for(var ee=0,ne=c,ae=0,re=0,me=32768,ie=[],q=0;q<32;q++)ie.push(new i(0,0));for(r(ie,0,5,H,v);ee<z&&me>0;){var we=0,Je;if(O.readMoreInput(),O.fillBitWindow(),we+=O.val_>>>O.bit_pos_&31,O.bit_pos_+=ie[we].bits,Je=ie[we].value&255,Je<f)ae=0,R[ee++]=Je,Je!==0&&(ne=Je,me-=32768>>Je);else{var gt=Je-14,Ye,it,rt=0;if(Je===f&&(rt=ne),re!==rt&&(ae=0,re=rt),Ye=ae,ae>0&&(ae-=2,ae<<=gt),ae+=O.readBits(gt)+3,it=ae-Ye,ee+it>z)throw new Error("[ReadHuffmanCodeLengths] symbol + repeat_delta > num_symbols");for(var vt=0;vt<it;vt++)R[ee+vt]=re;ee+=it,re!==0&&(me-=it<<15-re)}}if(me!==0)throw new Error("[ReadHuffmanCodeLengths] space = "+me);for(;ee<z;ee++)R[ee]=0}function Ae(H,z,R,O){var ee=0,ne,ae=new Uint8Array(H);if(O.readMoreInput(),ne=O.readBits(2),ne===1){for(var re,me=H-1,ie=0,q=new Int32Array(4),we=O.readBits(2)+1;me;)me>>=1,++ie;for(re=0;re<we;++re)q[re]=O.readBits(ie)%H,ae[q[re]]=2;switch(ae[q[0]]=1,we){case 1:break;case 3:if(q[0]===q[1]||q[0]===q[2]||q[1]===q[2])throw new Error("[ReadHuffmanCode] invalid symbols");break;case 2:if(q[0]===q[1])throw new Error("[ReadHuffmanCode] invalid symbols");ae[q[1]]=1;break;case 4:if(q[0]===q[1]||q[0]===q[2]||q[0]===q[3]||q[1]===q[2]||q[1]===q[3]||q[2]===q[3])throw new Error("[ReadHuffmanCode] invalid symbols");O.readBits(1)?(ae[q[2]]=3,ae[q[3]]=3):ae[q[0]]=2;break}}else{var re,Je=new Uint8Array(v),gt=32,Ye=0,it=[new i(2,0),new i(2,4),new i(2,3),new i(3,2),new i(2,0),new i(2,4),new i(2,3),new i(4,1),new i(2,0),new i(2,4),new i(2,3),new i(3,2),new i(2,0),new i(2,4),new i(2,3),new i(4,5)];for(re=ne;re<v&>>0;++re){var rt=F[re],vt=0,_t;O.fillBitWindow(),vt+=O.val_>>>O.bit_pos_&15,O.bit_pos_+=it[vt].bits,_t=it[vt].value,Je[rt]=_t,_t!==0&&(gt-=32>>_t,++Ye)}if(!(Ye===1||gt===0))throw new Error("[ReadHuffmanCode] invalid num_codes or space");Te(Je,H,ae,O)}if(ee=r(z,R,M,ae,H),ee===0)throw new Error("[ReadHuffmanCode] BuildHuffmanTable failed: ");return ee}function Le(H,z,R){var O,ee;return O=Ce(H,z,R),ee=o.kBlockLengthPrefixCode[O].nbits,o.kBlockLengthPrefixCode[O].offset+R.readBits(ee)}function ye(H,z,R){var O;return H<y?(R+=Z[H],R&=3,O=z[R]+P[H]):O=H-y+1,O}function G(H,z){for(var R=H[z],O=z;O;--O)H[O]=H[O-1];H[0]=R}function Y(H,z){var R=new Uint8Array(256),O;for(O=0;O<256;++O)R[O]=O;for(O=0;O<z;++O){var ee=H[O];H[O]=R[ee],ee&&G(R,ee)}}function W(H,z){this.alphabet_size=H,this.num_htrees=z,this.codes=new Array(z+z*B[H+31>>>5]),this.htrees=new Uint32Array(z)}W.prototype.decode=function(H){var z,R,O=0;for(z=0;z<this.num_htrees;++z)this.htrees[z]=O,R=Ae(this.alphabet_size,this.codes,O,H),O+=R};function pe(H,z){var R={num_htrees:null,context_map:null},O,ee=0,ne,ae;z.readMoreInput();var re=R.num_htrees=$(z)+1,me=R.context_map=new Uint8Array(H);if(re<=1)return R;for(O=z.readBits(1),O&&(ee=z.readBits(4)+1),ne=[],ae=0;ae<I;ae++)ne[ae]=new i(0,0);for(Ae(re+ee,ne,0,z),ae=0;ae<H;){var ie;if(z.readMoreInput(),ie=Ce(ne,0,z),ie===0)me[ae]=0,++ae;else if(ie<=ee)for(var q=1+(1<<ie)+z.readBits(ie);--q;){if(ae>=H)throw new Error("[DecodeContextMap] i >= context_map_size");me[ae]=0,++ae}else me[ae]=ie-ee,++ae}return z.readBits(1)&&Y(me,H),R}function ge(H,z,R,O,ee,ne,ae){var re=R*2,me=R,ie=Ce(z,R*I,ae),q;ie===0?q=ee[re+(ne[me]&1)]:ie===1?q=ee[re+(ne[me]-1&1)]+1:q=ie-2,q>=H&&(q-=H),O[R]=q,ee[re+(ne[me]&1)]=q,++ne[me]}function Pe(H,z,R,O,ee,ne){var ae=ee+1,re=R&ee,me=ne.pos_&s.IBUF_MASK,ie;if(z<8||ne.bit_pos_+(z<<3)<ne.bit_end_pos_){for(;z-- >0;)ne.readMoreInput(),O[re++]=ne.readBits(8),re===ae&&(H.write(O,ae),re=0);return}if(ne.bit_end_pos_<32)throw new Error("[CopyUncompressedBlockToOutput] br.bit_end_pos_ < 32");for(;ne.bit_pos_<32;)O[re]=ne.val_>>>ne.bit_pos_,ne.bit_pos_+=8,++re,--z;if(ie=ne.bit_end_pos_-ne.bit_pos_>>3,me+ie>s.IBUF_MASK){for(var q=s.IBUF_MASK+1-me,we=0;we<q;we++)O[re+we]=ne.buf_[me+we];ie-=q,re+=q,z-=q,me=0}for(var we=0;we<ie;we++)O[re+we]=ne.buf_[me+we];if(re+=ie,z-=ie,re>=ae){H.write(O,ae),re-=ae;for(var we=0;we<re;we++)O[we]=O[ae+we]}for(;re+z>=ae;){if(ie=ae-re,ne.input_.read(O,re,ie)<ie)throw new Error("[CopyUncompressedBlockToOutput] not enough bytes");H.write(O,ae),z-=ie,re=0}if(ne.input_.read(O,re,z)<z)throw new Error("[CopyUncompressedBlockToOutput] not enough bytes");ne.reset()}function Ue(H){var z=H.bit_pos_+7&-8,R=H.readBits(z-H.bit_pos_);return R==0}function Oe(H){var z=new t(H),R=new s(z);J(R);var O=ue(R);return O.meta_block_length}Za.BrotliDecompressedSize=Oe;function _e(H,z){var R=new t(H);z==null&&(z=Oe(H));var O=new Uint8Array(z),ee=new e(O);return ft(R,ee),ee.pos<ee.buffer.length&&(ee.buffer=ee.buffer.subarray(0,ee.pos)),ee.buffer}Za.BrotliDecompressBuffer=_e;function ft(H,z){var R,O=0,ee=0,ne=0,ae,re=0,me,ie,q,we,Je=[16,15,11,4],gt=0,Ye=0,it=0,rt=[new W(0,0),new W(0,0),new W(0,0)],vt,_t,ke,Vo=128+s.READ_SIZE;ke=new s(H),ne=J(ke),ae=(1<<ne)-16,me=1<<ne,ie=me-1,q=new Uint8Array(me+Vo+a.maxDictionaryWordLength),we=me,vt=[],_t=[];for(var Sa=0;Sa<3*I;Sa++)vt[Sa]=new i(0,0),_t[Sa]=new i(0,0);for(;!ee;){var ut=0,pi,Lt=[1<<28,1<<28,1<<28],Wt=[0],Et=[1,1,1],ms=[0,1,0,1,0,1],$s=[0],Os,Ot,Br,Va,Ur=null,Ms=null,Zr,Gr=null,mi,Wr=0,Ia=null,Yt=0,_a=0,yi=null,N=0,te=0,Ve=0,De,Ze;for(R=0;R<3;++R)rt[R].codes=null,rt[R].htrees=null;ke.readMoreInput();var ht=ue(ke);if(ut=ht.meta_block_length,O+ut>z.buffer.length){var Fa=new Uint8Array(O+ut);Fa.set(z.buffer),z.buffer=Fa}if(ee=ht.input_end,pi=ht.is_uncompressed,ht.is_metadata){for(Ue(ke);ut>0;--ut)ke.readMoreInput(),ke.readBits(8);continue}if(ut!==0){if(pi){ke.bit_pos_=ke.bit_pos_+7&-8,Pe(z,ut,O,q,ie,ke),O+=ut;continue}for(R=0;R<3;++R)Et[R]=$(ke)+1,Et[R]>=2&&(Ae(Et[R]+2,vt,R*I,ke),Ae(m,_t,R*I,ke),Lt[R]=Le(_t,R*I,ke),$s[R]=1);for(ke.readMoreInput(),Os=ke.readBits(2),Ot=y+(ke.readBits(4)<<Os),Br=(1<<Os)-1,Va=Ot+(48<<Os),Ms=new Uint8Array(Et[0]),R=0;R<Et[0];++R)ke.readMoreInput(),Ms[R]=ke.readBits(2)<<1;var Yr=pe(Et[0]<<b,ke);Zr=Yr.num_htrees,Ur=Yr.context_map;var Io=pe(Et[2]<<V,ke);for(mi=Io.num_htrees,Gr=Io.context_map,rt[0]=new W(h,Zr),rt[1]=new W(d,Et[1]),rt[2]=new W(Va,mi),R=0;R<3;++R)rt[R].decode(ke);for(Ia=0,yi=0,De=Ms[Wt[0]],te=n.lookupOffsets[De],Ve=n.lookupOffsets[De+1],Ze=rt[1].htrees[0];ut>0;){var Hr,bi,_o,Fo,To,Ft,Mt,ys,wi,Ta,vi;for(ke.readMoreInput(),Lt[1]===0&&(ge(Et[1],vt,1,Wt,ms,$s,ke),Lt[1]=Le(_t,I,ke),Ze=rt[1].htrees[Wt[1]]),--Lt[1],Hr=Ce(rt[1].codes,Ze,ke),bi=Hr>>6,bi>=2?(bi-=2,Mt=-1):Mt=0,_o=o.kInsertRangeLut[bi]+(Hr>>3&7),Fo=o.kCopyRangeLut[bi]+(Hr&7),To=o.kInsertLengthPrefixCode[_o].offset+ke.readBits(o.kInsertLengthPrefixCode[_o].nbits),Ft=o.kCopyLengthPrefixCode[Fo].offset+ke.readBits(o.kCopyLengthPrefixCode[Fo].nbits),Ye=q[O-1&ie],it=q[O-2&ie],Ta=0;Ta<To;++Ta)ke.readMoreInput(),Lt[0]===0&&(ge(Et[0],vt,0,Wt,ms,$s,ke),Lt[0]=Le(_t,0,ke),Wr=Wt[0]<<b,Ia=Wr,De=Ms[Wt[0]],te=n.lookupOffsets[De],Ve=n.lookupOffsets[De+1]),wi=n.lookup[te+Ye]|n.lookup[Ve+it],Yt=Ur[Ia+wi],--Lt[0],it=Ye,Ye=Ce(rt[0].codes,rt[0].htrees[Yt],ke),q[O&ie]=Ye,(O&ie)===ie&&z.write(q,me),++O;if(ut-=To,ut<=0)break;if(Mt<0){var wi;if(ke.readMoreInput(),Lt[2]===0&&(ge(Et[2],vt,2,Wt,ms,$s,ke),Lt[2]=Le(_t,2*I,ke),_a=Wt[2]<<V,yi=_a),--Lt[2],wi=(Ft>4?3:Ft-2)&255,N=Gr[yi+wi],Mt=Ce(rt[2].codes,rt[2].htrees[N],ke),Mt>=Ot){var Po,H0,xi;Mt-=Ot,H0=Mt&Br,Mt>>=Os,Po=(Mt>>1)+1,xi=(2+(Mt&1)<<Po)-4,Mt=Ot+(xi+ke.readBits(Po)<<Os)+H0}}if(ys=ye(Mt,Je,gt),ys<0)throw new Error("[BrotliDecompress] invalid distance");if(O<ae&&re!==ae?re=O:re=ae,vi=O&ie,ys>re)if(Ft>=a.minDictionaryWordLength&&Ft<=a.maxDictionaryWordLength){var xi=a.offsetsByLength[Ft],j0=ys-re-1,K0=a.sizeBitsByLength[Ft],bN=(1<<K0)-1,wN=j0&bN,X0=j0>>K0;if(xi+=wN*Ft,X0<l.kNumTransforms){var Eo=l.transformDictionaryWord(q,vi,xi,Ft,X0);if(vi+=Eo,O+=Eo,ut-=Eo,vi>=we){z.write(q,me);for(var jr=0;jr<vi-we;jr++)q[jr]=q[we+jr]}}else throw new Error("Invalid backward reference. pos: "+O+" distance: "+ys+" len: "+Ft+" bytes left: "+ut)}else throw new Error("Invalid backward reference. pos: "+O+" distance: "+ys+" len: "+Ft+" bytes left: "+ut);else{if(Mt>0&&(Je[gt&3]=ys,++gt),Ft>ut)throw new Error("Invalid backward reference. pos: "+O+" distance: "+ys+" len: "+Ft+" bytes left: "+ut);for(Ta=0;Ta<Ft;++Ta)q[O&ie]=q[O-ys&ie],(O&ie)===ie&&z.write(q,me),++O,--ut}Ye=q[O-1&ie],it=q[O-2&ie]}O&=1073741823}}z.write(q,O&ie)}return Za.BrotliDecompress=ft,a.init(),Za}var c1=Dc().BrotliDecompressBuffer;const f1=ca(c1);function Wa(t,e,s,a){Object.defineProperty(t,e,{get:s,set:a,enumerable:!0,configurable:!0})}function qi(t){return t&&t.__esModule?t.default:t}var Ya={};Wa(Ya,"logErrors",()=>u1),Wa(Ya,"registerFormat",()=>ga),Wa(Ya,"create",()=>Bc),Wa(Ya,"defaultLanguage",()=>Ji),Wa(Ya,"setDefaultLanguage",()=>h1);let u1=!1,Ln=[];function ga(t){Ln.push(t)}function Bc(t,e){for(let s=0;s<Ln.length;s++){let a=Ln[s];if(a.probe(t)){let i=new a(new pt(t));return e?i.getFont(e):i}}throw new Error("Unknown font format")}let Ji="en";function h1(t="en"){Ji=t}function yt(t,e,s){if(s.get){let a=s.get;s.get=function(){let i=a.call(this);return Object.defineProperty(this,e,{value:i}),i}}else if(typeof s.value=="function"){let a=s.value;return{get(){let i=new Map;function r(...n){let o=n.length>0?n[0]:"value";if(i.has(o))return i.get(o);let l=a.apply(this,n);return i.set(o,l),l}return Object.defineProperty(this,e,{value:r}),r}}}}let d1=new T({firstCode:u,entryCount:u,idDelta:U,idRangeOffset:u}),Dn=new T({startCharCode:S,endCharCode:S,glyphID:S}),g1=new T({startUnicodeValue:ks,additionalCount:K}),p1=new T({unicodeValue:ks,glyphID:u}),m1=new k(g1,S),y1=new k(p1,S),b1=new T({varSelector:ks,defaultUVS:new A(S,m1,{type:"parent"}),nonDefaultUVS:new A(S,y1,{type:"parent"})}),w1=new ve(u,{0:{length:u,language:u,codeMap:new Be(K,256)},2:{length:u,language:u,subHeaderKeys:new k(u,256),subHeaderCount:t=>Math.max.apply(Math,t.subHeaderKeys),subHeaders:new Be(d1,"subHeaderCount"),glyphIndexArray:new Be(u,"subHeaderCount")},4:{length:u,language:u,segCountX2:u,segCount:t=>t.segCountX2>>1,searchRange:u,entrySelector:u,rangeShift:u,endCode:new Be(u,"segCount"),reservedPad:new je(u),startCode:new Be(u,"segCount"),idDelta:new Be(U,"segCount"),idRangeOffset:new Be(u,"segCount"),glyphIndexArray:new Be(u,t=>(t.length-t._currentOffset)/2)},6:{length:u,language:u,firstCode:u,entryCount:u,glyphIndices:new Be(u,"entryCount")},8:{reserved:new je(u),length:S,language:u,is32:new Be(K,8192),nGroups:S,groups:new Be(Dn,"nGroups")},10:{reserved:new je(u),length:S,language:S,firstCode:S,entryCount:S,glyphIndices:new Be(u,"numChars")},12:{reserved:new je(u),length:S,language:S,nGroups:S,groups:new Be(Dn,"nGroups")},13:{reserved:new je(u),length:S,language:S,nGroups:S,groups:new Be(Dn,"nGroups")},14:{length:S,numRecords:S,varSelectors:new Be(b1,"numRecords")}}),v1=new T({platformID:u,encodingID:u,table:new A(S,w1,{type:"parent",lazy:!0})});var x1=new T({version:u,numSubtables:u,tables:new k(v1,"numSubtables")}),C1=new T({version:Ds,revision:Ds,checkSumAdjustment:S,magicNumber:S,flags:u,unitsPerEm:u,created:new k(Ds,2),modified:new k(Ds,2),xMin:U,yMin:U,xMax:U,yMax:U,macStyle:new Bt(u,["bold","italic","underline","outline","shadow","condensed","extended"]),lowestRecPPEM:u,fontDirectionHint:U,indexToLocFormat:U,glyphDataFormat:U}),k1=new T({version:Ds,ascent:U,descent:U,lineGap:U,advanceWidthMax:u,minLeftSideBearing:U,minRightSideBearing:U,xMaxExtent:U,caretSlopeRise:U,caretSlopeRun:U,caretOffset:U,reserved:new je(U,4),metricDataFormat:U,numberOfMetrics:u});let N1=new T({advance:u,bearing:U});var A1=new T({metrics:new Be(N1,t=>t.parent.hhea.numberOfMetrics),bearings:new Be(U,t=>t.parent.maxp.numGlyphs-t.parent.hhea.numberOfMetrics)}),S1=new T({version:Ds,numGlyphs:u,maxPoints:u,maxContours:u,maxComponentPoints:u,maxComponentContours:u,maxZones:u,maxTwilightPoints:u,maxStorage:u,maxFunctionDefs:u,maxInstructionDefs:u,maxStackElements:u,maxSizeOfInstructions:u,maxComponentElements:u,maxComponentDepth:u});function Uc(t,e,s=0){return t===1&&Zc[s]?Zc[s]:F1[t][e]}const V1=new Set(["x-mac-roman","x-mac-cyrillic","iso-8859-6","iso-8859-8"]),I1={"x-mac-croatian":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®Š™´¨≠ŽØ∞±≤≥∆µ∂∑∏š∫ªºΩžø¿¡¬√ƒ≈ƫȅ ÀÃÕŒœĐ—“”‘’÷◊©⁄€‹›Æ»–·‚„‰ÂćÁčÈÍÎÏÌÓÔđÒÚÛÙıˆ˜¯πË˚¸Êæˇ","x-mac-gaelic":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØḂ±≤≥ḃĊċḊḋḞḟĠġṀæøṁṖṗɼƒſṠ«»… ÀÃÕŒœ–—“”‘’ṡẛÿŸṪ€‹›Ŷŷṫ·Ỳỳ⁊ÂÊÁËÈÍÎÏÌÓÔ♣ÒÚÛÙıÝýŴŵẄẅẀẁẂẃ","x-mac-greek":"Ĺ²É³ÖÜ΅àâä΄¨çéèê룙î‰ôö¦€ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ","x-mac-icelandic":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüݰ¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄€ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ","x-mac-inuit":"ᐃᐄᐅᐆᐊᐋᐱᐲᐳᐴᐸᐹᑉᑎᑏᑐᑑᑕᑖᑦᑭᑮᑯᑰᑲᑳᒃᒋᒌᒍᒎᒐᒑ°ᒡᒥᒦ•¶ᒧ®©™ᒨᒪᒫᒻᓂᓃᓄᓅᓇᓈᓐᓯᓰᓱᓲᓴᓵᔅᓕᓖᓗᓘᓚᓛᓪᔨᔩᔪᔫᔭ… ᔮᔾᕕᕖᕗ–—“”‘’ᕘᕙᕚᕝᕆᕇᕈᕉᕋᕌᕐᕿᖀᖁᖂᖃᖄᖅᖏᖐᖑᖒᖓᖔᖕᙱᙲᙳᙴᙵᙶᖖᖠᖡᖢᖣᖤᖥᖦᕼŁł","x-mac-ce":"ÄĀāÉĄÖÜáąČäčĆć鏟ĎíďĒēĖóėôöõúĚěü†°Ę£§•¶ß®©™ę¨≠ģĮįĪ≤≥īĶ∂∑łĻļĽľĹĺŅņѬ√ńŇ∆«»… ňŐÕőŌ–—“”‘’÷◊ōŔŕŘ‹›řŖŗŠ‚„šŚśÁŤťÍŽžŪÓÔūŮÚůŰűŲųÝýķŻŁżĢˇ","x-mac-romanian":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ĂȘ∞±≤≥¥µ∂∑∏π∫ªºΩăș¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄€‹›Țț‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ","x-mac-turkish":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙˆ˜¯˘˙˚¸˝˛ˇ"},Bn=new Map;function _1(t){let e=Bn.get(t);if(e)return e;let s=I1[t];if(s){let a=new Map;for(let i=0;i<s.length;i++)a.set(s.charCodeAt(i),128+i);return Bn.set(t,a),a}if(V1.has(t)){let a=new TextDecoder(t),i=new Uint8Array(128);for(let o=0;o<128;o++)i[o]=128+o;let r=new Map,n=a.decode(i);for(let o=0;o<128;o++)r.set(n.charCodeAt(o),128+o);return Bn.set(t,r),r}}const F1=[["utf-16be","utf-16be","utf-16be","utf-16be","utf-16be","utf-16be","utf-16be"],["x-mac-roman","shift-jis","big5","euc-kr","iso-8859-6","iso-8859-8","x-mac-greek","x-mac-cyrillic","x-mac-symbol","x-mac-devanagari","x-mac-gurmukhi","x-mac-gujarati","Oriya","Bengali","Tamil","Telugu","Kannada","Malayalam","Sinhalese","Burmese","Khmer","iso-8859-11","Laotian","Georgian","Armenian","gbk","Tibetan","Mongolian","Geez","x-mac-ce","Vietnamese","Sindhi"],["ascii",null,"iso-8859-1"],["symbol","utf-16be","shift-jis","gb18030","big5","euc-kr","johab",null,null,null,"utf-16be"]],Zc={15:"x-mac-icelandic",17:"x-mac-turkish",18:"x-mac-croatian",24:"x-mac-ce",25:"x-mac-ce",26:"x-mac-ce",27:"x-mac-ce",28:"x-mac-ce",30:"x-mac-icelandic",37:"x-mac-romanian",38:"x-mac-ce",39:"x-mac-ce",40:"x-mac-ce",143:"x-mac-inuit",146:"x-mac-gaelic"},T1=[[],{0:"en",30:"fo",60:"ks",90:"rw",1:"fr",31:"fa",61:"ku",91:"rn",2:"de",32:"ru",62:"sd",92:"ny",3:"it",33:"zh",63:"bo",93:"mg",4:"nl",34:"nl-BE",64:"ne",94:"eo",5:"sv",35:"ga",65:"sa",128:"cy",6:"es",36:"sq",66:"mr",129:"eu",7:"da",37:"ro",67:"bn",130:"ca",8:"pt",38:"cz",68:"as",131:"la",9:"no",39:"sk",69:"gu",132:"qu",10:"he",40:"si",70:"pa",133:"gn",11:"ja",41:"yi",71:"or",134:"ay",12:"ar",42:"sr",72:"ml",135:"tt",13:"fi",43:"mk",73:"kn",136:"ug",14:"el",44:"bg",74:"ta",137:"dz",15:"is",45:"uk",75:"te",138:"jv",16:"mt",46:"be",76:"si",139:"su",17:"tr",47:"uz",77:"my",140:"gl",18:"hr",48:"kk",78:"km",141:"af",19:"zh-Hant",49:"az-Cyrl",79:"lo",142:"br",20:"ur",50:"az-Arab",80:"vi",143:"iu",21:"hi",51:"hy",81:"id",144:"gd",22:"th",52:"ka",82:"tl",145:"gv",23:"ko",53:"mo",83:"ms",146:"ga",24:"lt",54:"ky",84:"ms-Arab",147:"to",25:"pl",55:"tg",85:"am",148:"el-polyton",26:"hu",56:"tk",86:"ti",149:"kl",27:"es",57:"mn-CN",87:"om",150:"az",28:"lv",58:"mn",88:"so",151:"nn",29:"se",59:"ps",89:"sw"},[],{1078:"af",16393:"en-IN",1159:"rw",1074:"tn",1052:"sq",6153:"en-IE",1089:"sw",1115:"si",1156:"gsw",8201:"en-JM",1111:"kok",1051:"sk",1118:"am",17417:"en-MY",1042:"ko",1060:"sl",5121:"ar-DZ",5129:"en-NZ",1088:"ky",11274:"es-AR",15361:"ar-BH",13321:"en-PH",1108:"lo",16394:"es-BO",3073:"ar",18441:"en-SG",1062:"lv",13322:"es-CL",2049:"ar-IQ",7177:"en-ZA",1063:"lt",9226:"es-CO",11265:"ar-JO",11273:"en-TT",2094:"dsb",5130:"es-CR",13313:"ar-KW",2057:"en-GB",1134:"lb",7178:"es-DO",12289:"ar-LB",1033:"en",1071:"mk",12298:"es-EC",4097:"ar-LY",12297:"en-ZW",2110:"ms-BN",17418:"es-SV",6145:"ary",1061:"et",1086:"ms",4106:"es-GT",8193:"ar-OM",1080:"fo",1100:"ml",18442:"es-HN",16385:"ar-QA",1124:"fil",1082:"mt",2058:"es-MX",1025:"ar-SA",1035:"fi",1153:"mi",19466:"es-NI",10241:"ar-SY",2060:"fr-BE",1146:"arn",6154:"es-PA",7169:"aeb",3084:"fr-CA",1102:"mr",15370:"es-PY",14337:"ar-AE",1036:"fr",1148:"moh",10250:"es-PE",9217:"ar-YE",5132:"fr-LU",1104:"mn",20490:"es-PR",1067:"hy",6156:"fr-MC",2128:"mn-CN",3082:"es",1101:"as",4108:"fr-CH",1121:"ne",1034:"es",2092:"az-Cyrl",1122:"fy",1044:"nb",21514:"es-US",1068:"az",1110:"gl",2068:"nn",14346:"es-UY",1133:"ba",1079:"ka",1154:"oc",8202:"es-VE",1069:"eu",3079:"de-AT",1096:"or",2077:"sv-FI",1059:"be",1031:"de",1123:"ps",1053:"sv",2117:"bn",5127:"de-LI",1045:"pl",1114:"syr",1093:"bn-IN",4103:"de-LU",1046:"pt",1064:"tg",8218:"bs-Cyrl",2055:"de-CH",2070:"pt-PT",2143:"tzm",5146:"bs",1032:"el",1094:"pa",1097:"ta",1150:"br",1135:"kl",1131:"qu-BO",1092:"tt",1026:"bg",1095:"gu",2155:"qu-EC",1098:"te",1027:"ca",1128:"ha",3179:"qu",1054:"th",3076:"zh-HK",1037:"he",1048:"ro",1105:"bo",5124:"zh-MO",1081:"hi",1047:"rm",1055:"tr",2052:"zh",1038:"hu",1049:"ru",1090:"tk",4100:"zh-SG",1039:"is",9275:"smn",1152:"ug",1028:"zh-TW",1136:"ig",4155:"smj-NO",1058:"uk",1155:"co",1057:"id",5179:"smj",1070:"hsb",1050:"hr",1117:"iu",3131:"se-FI",1056:"ur",4122:"hr-BA",2141:"iu-Latn",1083:"se",2115:"uz-Cyrl",1029:"cs",2108:"ga",2107:"se-SE",1091:"uz",1030:"da",1076:"xh",8251:"sms",1066:"vi",1164:"prs",1077:"zu",6203:"sma-NO",1106:"cy",1125:"dv",1040:"it",7227:"sms",1160:"wo",2067:"nl-BE",2064:"it-CH",1103:"sa",1157:"sah",1043:"nl",1041:"ja",7194:"sr-Cyrl-BA",1144:"ii",3081:"en-AU",1099:"kn",3098:"sr",1130:"yo",10249:"en-BZ",1087:"kk",6170:"sr-Latn-BA",4105:"en-CA",1107:"km",2074:"sr-Latn",9225:"en-029",1158:"quc",1132:"nso"}];let Gc=new T({platformID:u,encodingID:u,languageID:u,nameID:u,length:u,string:new A(u,new Re("length",t=>Uc(t.platformID,t.encodingID,t.languageID)),{type:"parent",relativeTo:t=>t.parent.stringOffset,allowNull:!1})}),P1=new T({length:u,tag:new A(u,new Re("length","utf16be"),{type:"parent",relativeTo:t=>t.stringOffset})});var Qi=new ve(u,{0:{count:u,stringOffset:u,records:new k(Gc,"count")},1:{count:u,stringOffset:u,records:new k(Gc,"count"),langTagCount:u,langTags:new k(P1,"langTagCount")}}),E1=Qi;const Un=["copyright","fontFamily","fontSubfamily","uniqueSubfamily","fullName","version","postscriptName","trademark","manufacturer","designer","description","vendorURL","designerURL","license","licenseURL",null,"preferredFamily","preferredSubfamily","compatibleFull","sampleText","postscriptCIDFontName","wwsFamilyName","wwsSubfamilyName"];Qi.process=function(t){var e={};for(let s of this.records){let a=T1[s.platformID][s.languageID];a==null&&this.langTags!=null&&s.languageID>=32768&&(a=this.langTags[s.languageID-32768].tag),a==null&&(a=s.platformID+"-"+s.languageID);let i=s.nameID>=256?"fontFeatures":Un[s.nameID]||s.nameID;e[i]==null&&(e[i]={});let r=e[i];s.nameID>=256&&(r=r[s.nameID]||(r[s.nameID]={})),(typeof s.string=="string"||typeof r[a]!="string")&&(r[a]=s.string)}this.records=e},Qi.preEncode=function(){if(Array.isArray(this.records))return;this.version=0;let t=[];for(let e in this.records){let s=this.records[e];e!=="fontFeatures"&&(t.push({platformID:3,encodingID:1,languageID:1033,nameID:Un.indexOf(e),length:s.en.length*2,string:s.en}),e==="postscriptName"&&t.push({platformID:1,encodingID:0,languageID:0,nameID:Un.indexOf(e),length:s.en.length,string:s.en}))}this.records=t,this.count=t.length,this.stringOffset=Qi.size(this,null,!1)};var Wc=new ve(u,{header:{xAvgCharWidth:U,usWeightClass:u,usWidthClass:u,fsType:new Bt(u,[null,"noEmbedding","viewOnly","editable",null,null,null,null,"noSubsetting","bitmapOnly"]),ySubscriptXSize:U,ySubscriptYSize:U,ySubscriptXOffset:U,ySubscriptYOffset:U,ySuperscriptXSize:U,ySuperscriptYSize:U,ySuperscriptXOffset:U,ySuperscriptYOffset:U,yStrikeoutSize:U,yStrikeoutPosition:U,sFamilyClass:U,panose:new k(K,10),ulCharRange:new k(S,4),vendorID:new Re(4),fsSelection:new Bt(u,["italic","underscore","negative","outlined","strikeout","bold","regular","useTypoMetrics","wws","oblique"]),usFirstCharIndex:u,usLastCharIndex:u},0:{},1:{typoAscender:U,typoDescender:U,typoLineGap:U,winAscent:u,winDescent:u,codePageRange:new k(S,2)},2:{typoAscender:U,typoDescender:U,typoLineGap:U,winAscent:u,winDescent:u,codePageRange:new k(S,2),xHeight:U,capHeight:U,defaultChar:u,breakChar:u,maxContent:u},5:{typoAscender:U,typoDescender:U,typoLineGap:U,winAscent:u,winDescent:u,codePageRange:new k(S,2),xHeight:U,capHeight:U,defaultChar:u,breakChar:u,maxContent:u,usLowerOpticalPointSize:u,usUpperOpticalPointSize:u}});let Zn=Wc.versions;Zn[3]=Zn[4]=Zn[2];var O1=Wc,M1=new ve(st,{header:{italicAngle:st,underlinePosition:U,underlineThickness:U,isFixedPitch:S,minMemType42:S,maxMemType42:S,minMemType1:S,maxMemType1:S},1:{},2:{numberOfGlyphs:u,glyphNameIndex:new k(u,"numberOfGlyphs"),names:new k(new Re(K))},2.5:{numberOfGlyphs:u,offsets:new k(K,"numberOfGlyphs")},3:{},4:{map:new k(S,t=>t.parent.maxp.numGlyphs)}}),R1=new T({controlValues:new k(U)}),z1=new T({instructions:new k(K)});let Gn=new ve("head.indexToLocFormat",{0:{offsets:new k(u)},1:{offsets:new k(S)}});Gn.process=function(){if(this.version===0&&!this._processed){for(let t=0;t<this.offsets.length;t++)this.offsets[t]<<=1;this._processed=!0}},Gn.preEncode=function(){if(this.version===0&&this._processed!==!1){for(let t=0;t<this.offsets.length;t++)this.offsets[t]>>>=1;this._processed=!1}};var L1=Gn,D1=new T({controlValueProgram:new k(K)}),B1=new k(new Qt);class ss{getCFFVersion(e){for(;e&&!e.hdrSize;)e=e.parent;return e?e.version:-1}decode(e,s){let i=this.getCFFVersion(s)>=2?e.readUInt32BE():e.readUInt16BE();if(i===0)return[];let r=e.readUInt8(),n;if(r===1)n=K;else if(r===2)n=u;else if(r===3)n=ks;else if(r===4)n=S;else throw new Error(`Bad offset size in CFFIndex: ${r} ${e.pos}`);let o=[],l=e.pos+(i+1)*r-1,c=n.decode(e);for(let f=0;f<i;f++){let h=n.decode(e);if(this.type!=null){let d=e.pos;e.pos=l+c,s.length=h-c,o.push(this.type.decode(e,s)),e.pos=d}else o.push({offset:l+c,length:h-c});c=h}return e.pos=l+c,o}size(e,s){let a=2;if(e.length===0)return a;let i=this.type||new Qt,r=1;for(let o=0;o<e.length;o++){let l=e[o];r+=i.size(l,s)}let n;if(r<=255)n=K;else if(r<=65535)n=u;else if(r<=16777215)n=ks;else if(r<=4294967295)n=S;else throw new Error("Bad offset in CFFIndex");return a+=1+n.size()*(e.length+1),a+=r-1,a}encode(e,s,a){if(e.writeUInt16BE(s.length),s.length===0)return;let i=this.type||new Qt,r=[],n=1;for(let l of s){let c=i.size(l,a);r.push(c),n+=c}let o;if(n<=255)o=K;else if(n<=65535)o=u;else if(n<=16777215)o=ks;else if(n<=4294967295)o=S;else throw new Error("Bad offset in CFFIndex");e.writeUInt8(o.size()),n=1,o.encode(e,n);for(let l of r)n+=l,o.encode(e,n);for(let l of s)i.encode(e,l,a)}constructor(e){this.type=e}}const Ha=15,Yc=["0","1","2","3","4","5","6","7","8","9",".","E","E-",null,"-"],Hc={".":10,E:11,"E-":12,"-":14};class Wn{static decode(e,s){if(32<=s&&s<=246)return s-139;if(247<=s&&s<=250)return(s-247)*256+e.readUInt8()+108;if(251<=s&&s<=254)return-(s-251)*256-e.readUInt8()-108;if(s===28)return e.readInt16BE();if(s===29)return e.readInt32BE();if(s===30){let a="";for(;;){let i=e.readUInt8(),r=i>>4;if(r===Ha)break;a+=Yc[r];let n=i&15;if(n===Ha)break;a+=Yc[n]}return parseFloat(a)}return null}static size(e){if(e.forceLarge&&(e=32768),(e|0)!==e){let s=""+e;return 1+Math.ceil((s.length+1)/2)}else return-107<=e&&e<=107?1:108<=e&&e<=1131||-1131<=e&&e<=-108?2:-32768<=e&&e<=32767?3:5}static encode(e,s){let a=Number(s);if(s.forceLarge)return e.writeUInt8(29),e.writeInt32BE(a);if((a|0)!==a){e.writeUInt8(30);let r=""+a;for(let n=0;n<r.length;n+=2){let o=r[n],l=Hc[o]||+o;if(n===r.length-1)var i=Ha;else{let c=r[n+1];var i=Hc[c]||+c}e.writeUInt8(l<<4|i&15)}if(i!==Ha)return e.writeUInt8(Ha<<4)}else return-107<=a&&a<=107?e.writeUInt8(a+139):108<=a&&a<=1131?(a-=108,e.writeUInt8((a>>8)+247),e.writeUInt8(a&255)):-1131<=a&&a<=-108?(a=-a-108,e.writeUInt8((a>>8)+251),e.writeUInt8(a&255)):-32768<=a&&a<=32767?(e.writeUInt8(28),e.writeInt16BE(a)):(e.writeUInt8(29),e.writeInt32BE(a))}}class $i{decodeOperands(e,s,a,i){if(Array.isArray(e))return i.map((r,n)=>this.decodeOperands(e[n],s,a,[r]));if(e.decode!=null)return e.decode(s,a,i);switch(e){case"number":case"offset":case"sid":return i[0];case"boolean":return!!i[0];default:return i}}encodeOperands(e,s,a,i){return Array.isArray(e)?i.map((r,n)=>this.encodeOperands(e[n],s,a,r)[0]):e.encode!=null?e.encode(s,i,a):typeof i=="number"?[i]:typeof i=="boolean"?[+i]:Array.isArray(i)?i:[i]}decode(e,s){let a=e.pos+s.length,i={},r=[];Object.defineProperties(i,{parent:{value:s},_startOffset:{value:e.pos}});for(let n in this.fields){let o=this.fields[n];i[o[1]]=o[3]}for(;e.pos<a;){let n=e.readUInt8();if(n<28){n===12&&(n=n<<8|e.readUInt8());let o=this.fields[n];if(!o)throw new Error(`Unknown operator ${n}`);let l=this.decodeOperands(o[2],e,i,r);l!=null&&(l instanceof mn?Object.defineProperty(i,o[1],l):i[o[1]]=l),r=[]}else r.push(Wn.decode(e,n))}return i}size(e,s,a=!0){let i={parent:s,val:e,pointerSize:0,startOffset:s.startOffset||0},r=0;for(let n in this.fields){let o=this.fields[n],l=e[o[1]];if(l==null||oc(l,o[3]))continue;let c=this.encodeOperands(o[2],null,i,l);for(let h of c)r+=Wn.size(h);let f=Array.isArray(o[0])?o[0]:[o[0]];r+=f.length}return a&&(r+=i.pointerSize),r}encode(e,s,a){let i={pointers:[],startOffset:e.pos,parent:a,val:s,pointerSize:0};i.pointerOffset=e.pos+this.size(s,i,!1);for(let n of this.ops){let o=s[n[1]];if(o==null||oc(o,n[3]))continue;let l=this.encodeOperands(n[2],e,i,o);for(let f of l)Wn.encode(e,f);let c=Array.isArray(n[0])?n[0]:[n[0]];for(let f of c)e.writeUInt8(f)}let r=0;for(;r<i.pointers.length;){let n=i.pointers[r++];n.type.encode(e,n.val,n.parent)}}constructor(e=[]){this.ops=e,this.fields={};for(let s of e){let a=Array.isArray(s[0])?s[0][0]<<8|s[0][1]:s[0];this.fields[a]=s}}}class Ut extends A{decode(e,s,a){return this.offsetType={decode:()=>a[0]},super.decode(e,s,a)}encode(e,s,a){if(!e)return this.offsetType={size:()=>0},this.size(s,a),[new jc(0)];let i=null;return this.offsetType={encode:(r,n)=>i=n},super.encode(e,s,a),[new jc(i)]}constructor(e,s={}){s.type==null&&(s.type="global"),super(null,e,s)}}class jc{valueOf(){return this.val}constructor(e){this.val=e,this.forceLarge=!0}}class U1{static decode(e,s,a){let i=a.pop();for(;a.length>i;)a.pop()}}var Yn=new $i([[6,"BlueValues","delta",null],[7,"OtherBlues","delta",null],[8,"FamilyBlues","delta",null],[9,"FamilyOtherBlues","delta",null],[[12,9],"BlueScale","number",.039625],[[12,10],"BlueShift","number",7],[[12,11],"BlueFuzz","number",1],[10,"StdHW","number",null],[11,"StdVW","number",null],[[12,12],"StemSnapH","delta",null],[[12,13],"StemSnapV","delta",null],[[12,14],"ForceBold","boolean",!1],[[12,17],"LanguageGroup","number",0],[[12,18],"ExpansionFactor","number",.06],[[12,19],"initialRandomSeed","number",0],[20,"defaultWidthX","number",0],[21,"nominalWidthX","number",0],[22,"vsindex","number",0],[23,"blend",U1,null],[19,"Subrs",new Ut(new ss,{type:"local"}),null]]),er=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall","001.000","001.001","001.002","001.003","Black","Bold","Book","Light","Medium","Regular","Roman","Semibold"];let Kc=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","","endash","dagger","daggerdbl","periodcentered","","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","","questiondown","","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","","ring","cedilla","","hungarumlaut","ogonek","caron","emdash","","","","","","","","","","","","","","","","","AE","","ordfeminine","","","","","Lslash","Oslash","OE","ordmasculine","","","","","","ae","","","","dotlessi","","","lslash","oslash","oe","germandbls"],Z1=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclamsmall","Hungarumlautsmall","","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","","asuperior","bsuperior","centsuperior","dsuperior","esuperior","","","isuperior","","","lsuperior","msuperior","nsuperior","osuperior","","","rsuperior","ssuperior","tsuperior","","ff","fi","fl","ffi","ffl","parenleftinferior","","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdownsmall","centoldstyle","Lslashsmall","","","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","","Dotaccentsmall","","","Macronsmall","","","figuredash","hypheninferior","","","Ogoneksmall","Ringsmall","Cedillasmall","","","","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","","","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"],Xc=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron"],G1=[".notdef","space","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","fi","fl","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"],W1=[".notdef","space","dollaroldstyle","dollarsuperior","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","fi","fl","ffi","ffl","parenleftinferior","parenrightinferior","hyphensuperior","colonmonetary","onefitted","rupiah","centoldstyle","figuredash","hypheninferior","onequarter","onehalf","threequarters","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior"],qc=new T({reserved:new je(u),reqFeatureIndex:u,featureCount:u,featureIndexes:new k(u,"featureCount")}),Y1=new T({tag:new Re(4),langSys:new A(u,qc,{type:"parent"})}),H1=new T({defaultLangSys:new A(u,qc),count:u,langSysRecords:new k(Y1,"count")}),j1=new T({tag:new Re(4),script:new A(u,H1,{type:"parent"})}),Jc=new k(j1,u),K1=new T({version:u,nameID:u}),Qc=new T({featureParams:new A(u,K1),lookupCount:u,lookupListIndexes:new k(u,"lookupCount")}),X1=new T({tag:new Re(4),feature:new A(u,Qc,{type:"parent"})}),$c=new k(X1,u),q1=new T({markAttachmentType:K,flags:new Bt(K,["rightToLeft","ignoreBaseGlyphs","ignoreLigatures","ignoreMarks","useMarkFilteringSet"])});function tr(t){let e=new T({lookupType:u,flags:q1,subTableCount:u,subTables:new k(new A(u,t),"subTableCount"),markFilteringSet:new Gi(u,s=>s.flags.flags.useMarkFilteringSet)});return new Be(new A(u,e),u)}let J1=new T({start:u,end:u,startCoverageIndex:u}),ze=new ve(u,{1:{glyphCount:u,glyphs:new k(u,"glyphCount")},2:{rangeCount:u,rangeRecords:new k(J1,"rangeCount")}}),Q1=new T({start:u,end:u,class:u}),Ss=new ve(u,{1:{startGlyph:u,glyphCount:u,classValueArray:new k(u,"glyphCount")},2:{classRangeCount:u,classRangeRecord:new k(Q1,"classRangeCount")}}),Vs=new T({a:u,b:u,deltaFormat:u}),ja=new T({sequenceIndex:u,lookupListIndex:u}),$1=new T({glyphCount:u,lookupCount:u,input:new k(u,t=>t.glyphCount-1),lookupRecords:new k(ja,"lookupCount")}),e4=new k(new A(u,$1),u),t4=new T({glyphCount:u,lookupCount:u,classes:new k(u,t=>t.glyphCount-1),lookupRecords:new k(ja,"lookupCount")}),s4=new k(new A(u,t4),u),ef=new ve(u,{1:{coverage:new A(u,ze),ruleSetCount:u,ruleSets:new k(new A(u,e4),"ruleSetCount")},2:{coverage:new A(u,ze),classDef:new A(u,Ss),classSetCnt:u,classSet:new k(new A(u,s4),"classSetCnt")},3:{glyphCount:u,lookupCount:u,coverages:new k(new A(u,ze),"glyphCount"),lookupRecords:new k(ja,"lookupCount")}}),a4=new T({backtrackGlyphCount:u,backtrack:new k(u,"backtrackGlyphCount"),inputGlyphCount:u,input:new k(u,t=>t.inputGlyphCount-1),lookaheadGlyphCount:u,lookahead:new k(u,"lookaheadGlyphCount"),lookupCount:u,lookupRecords:new k(ja,"lookupCount")}),tf=new k(new A(u,a4),u),sf=new ve(u,{1:{coverage:new A(u,ze),chainCount:u,chainRuleSets:new k(new A(u,tf),"chainCount")},2:{coverage:new A(u,ze),backtrackClassDef:new A(u,Ss),inputClassDef:new A(u,Ss),lookaheadClassDef:new A(u,Ss),chainCount:u,chainClassSet:new k(new A(u,tf),"chainCount")},3:{backtrackGlyphCount:u,backtrackCoverage:new k(new A(u,ze),"backtrackGlyphCount"),inputGlyphCount:u,inputCoverage:new k(new A(u,ze),"inputGlyphCount"),lookaheadGlyphCount:u,lookaheadCoverage:new k(new A(u,ze),"lookaheadGlyphCount"),lookupCount:u,lookupRecords:new k(ja,"lookupCount")}}),Ka=new Bs(16,"BE",14),i4=new T({startCoord:Ka,peakCoord:Ka,endCoord:Ka}),r4=new T({axisCount:u,regionCount:u,variationRegions:new k(new k(i4,"axisCount"),"regionCount")}),n4=new T({shortDeltas:new k(U,t=>t.parent.shortDeltaCount),regionDeltas:new k(lt,t=>t.parent.regionIndexCount-t.parent.shortDeltaCount),deltas:t=>t.shortDeltas.concat(t.regionDeltas)}),o4=new T({itemCount:u,shortDeltaCount:u,regionIndexCount:u,regionIndexes:new k(u,"regionIndexCount"),deltaSets:new k(n4,"itemCount")}),sr=new T({format:u,variationRegionList:new A(S,r4),variationDataCount:u,itemVariationData:new k(new A(S,o4),"variationDataCount")}),l4=new ve(u,{1:{axisIndex:u,axisIndex:u,filterRangeMinValue:Ka,filterRangeMaxValue:Ka}}),c4=new T({conditionCount:u,conditionTable:new k(new A(S,l4),"conditionCount")}),f4=new T({featureIndex:u,alternateFeatureTable:new A(S,Qc,{type:"parent"})}),u4=new T({version:st,substitutionCount:u,substitutions:new k(f4,"substitutionCount")}),h4=new T({conditionSet:new A(S,c4,{type:"parent"}),featureTableSubstitution:new A(S,u4,{type:"parent"})}),af=new T({majorVersion:u,minorVersion:u,featureVariationRecordCount:S,featureVariationRecords:new k(h4,"featureVariationRecordCount")});class rf{decode(e,s,a){return this.predefinedOps[a[0]]?this.predefinedOps[a[0]]:this.type.decode(e,s,a)}size(e,s){return this.type.size(e,s)}encode(e,s,a){let i=this.predefinedOps.indexOf(s);return i!==-1?i:this.type.encode(e,s,a)}constructor(e,s){this.predefinedOps=e,this.type=s}}class d4 extends Ee{decode(e){return K.decode(e)&127}constructor(){super("UInt8")}}let nf=new T({first:u,nLeft:K}),g4=new T({first:u,nLeft:u}),p4=new ve(new d4,{0:{nCodes:K,codes:new k(K,"nCodes")},1:{nRanges:K,ranges:new k(nf,"nRanges")}}),m4=new rf([Kc,Z1],new Ut(p4,{lazy:!0}));class of extends k{decode(e,s){let a=Jt(this.length,e,s),i=0,r=[];for(;i<a;){let n=this.type.decode(e,s);n.offset=i,i+=n.nLeft+1,r.push(n)}return r}}let y4=new ve(K,{0:{glyphs:new k(u,t=>t.parent.CharStrings.length-1)},1:{ranges:new of(nf,t=>t.parent.CharStrings.length-1)},2:{ranges:new of(g4,t=>t.parent.CharStrings.length-1)}}),b4=new rf([Xc,G1,W1],new Ut(y4,{lazy:!0})),w4=new T({first:u,fd:K}),v4=new T({first:S,fd:u}),lf=new ve(K,{0:{fds:new k(K,t=>t.parent.CharStrings.length)},3:{nRanges:u,ranges:new k(w4,"nRanges"),sentinel:u},4:{nRanges:S,ranges:new k(v4,"nRanges"),sentinel:S}}),Hn=new Ut(Yn);class cf{decode(e,s,a){return s.length=a[0],Hn.decode(e,s,[a[1]])}size(e,s){return[Yn.size(e,s,!1),Hn.size(e,s)[0]]}encode(e,s,a){return[Yn.size(s,a,!1),Hn.encode(e,s,a)[0]]}}let ff=new $i([[18,"Private",new cf,null],[[12,38],"FontName","sid",null],[[12,7],"FontMatrix","array",[.001,0,0,.001,0,0]],[[12,5],"PaintType","number",0]]),x4=new $i([[[12,30],"ROS",["sid","sid","number"],null],[0,"version","sid",null],[1,"Notice","sid",null],[[12,0],"Copyright","sid",null],[2,"FullName","sid",null],[3,"FamilyName","sid",null],[4,"Weight","sid",null],[[12,1],"isFixedPitch","boolean",!1],[[12,2],"ItalicAngle","number",0],[[12,3],"UnderlinePosition","number",-100],[[12,4],"UnderlineThickness","number",50],[[12,5],"PaintType","number",0],[[12,6],"CharstringType","number",2],[[12,7],"FontMatrix","array",[.001,0,0,.001,0,0]],[13,"UniqueID","number",null],[5,"FontBBox","array",[0,0,0,0]],[[12,8],"StrokeWidth","number",0],[14,"XUID","array",null],[15,"charset",b4,Xc],[16,"Encoding",m4,Kc],[17,"CharStrings",new Ut(new ss),null],[18,"Private",new cf,null],[[12,20],"SyntheticBase","number",null],[[12,21],"PostScript","sid",null],[[12,22],"BaseFontName","sid",null],[[12,23],"BaseFontBlend","delta",null],[[12,31],"CIDFontVersion","number",0],[[12,32],"CIDFontRevision","number",0],[[12,33],"CIDFontType","number",0],[[12,34],"CIDCount","number",8720],[[12,35],"UIDBase","number",null],[[12,37],"FDSelect",new Ut(lf),null],[[12,36],"FDArray",new Ut(new ss(ff)),null],[[12,38],"FontName","sid",null]]),C4=new T({length:u,itemVariationStore:sr}),k4=new $i([[[12,7],"FontMatrix","array",[.001,0,0,.001,0,0]],[17,"CharStrings",new Ut(new ss),null],[[12,37],"FDSelect",new Ut(lf),null],[[12,36],"FDArray",new Ut(new ss(ff)),null],[24,"vstore",new Ut(C4),null],[25,"maxstack","number",193]]);var uf=new ve(dw,{1:{hdrSize:K,offSize:K,nameIndex:new ss(new Re("length")),topDictIndex:new ss(x4),stringIndex:new ss(new Re("length")),globalSubrIndex:new ss},2:{hdrSize:K,length:u,topDict:k4,globalSubrIndex:new ss}});class jn{static decode(e){return new jn(e)}decode(){this.stream.pos;let e=uf.decode(this.stream);for(let s in e){let a=e[s];this[s]=a}if(this.version<2){if(this.topDictIndex.length!==1)throw new Error("Only a single font is allowed in CFF");this.topDict=this.topDictIndex[0]}return this.isCIDFont=this.topDict.ROS!=null,this}string(e){return this.version>=2?null:e<er.length?er[e]:this.stringIndex[e-er.length]}get postscriptName(){return this.version<2?this.nameIndex[0]:null}get fullName(){return this.string(this.topDict.FullName)}get familyName(){return this.string(this.topDict.FamilyName)}getCharString(e){return this.stream.pos=this.topDict.CharStrings[e].offset,this.stream.readBuffer(this.topDict.CharStrings[e].length)}getGlyphName(e){if(this.version>=2||this.isCIDFont)return null;let{charset:s}=this.topDict;if(Array.isArray(s))return s[e];if(e===0)return".notdef";switch(e-=1,s.version){case 0:return this.string(s.glyphs[e]);case 1:case 2:for(let a=0;a<s.ranges.length;a++){let i=s.ranges[a];if(i.offset<=e&&e<=i.offset+i.nLeft)return this.string(i.first+(e-i.offset))}break}return null}fdForGlyph(e){if(!this.topDict.FDSelect)return null;switch(this.topDict.FDSelect.version){case 0:return this.topDict.FDSelect.fds[e];case 3:case 4:let{ranges:s}=this.topDict.FDSelect,a=0,i=s.length-1;for(;a<=i;){let r=a+i>>1;if(e<s[r].first)i=r-1;else if(r<i&&e>=s[r+1].first)a=r+1;else return s[r].fd}default:throw new Error(`Unknown FDSelect version: ${this.topDict.FDSelect.version}`)}}privateDictForGlyph(e){if(this.topDict.FDSelect){let s=this.fdForGlyph(e);return this.topDict.FDArray[s]?this.topDict.FDArray[s].Private:null}return this.version<2?this.topDict.Private:this.topDict.FDArray[0].Private}constructor(e){this.stream=e,this.decode()}}var hf=jn;let N4=new T({glyphIndex:u,vertOriginY:U});var A4=new T({majorVersion:u,minorVersion:u,defaultVertOriginY:U,numVertOriginYMetrics:u,metrics:new k(N4,"numVertOriginYMetrics")});let pa=new T({height:K,width:K,horiBearingX:lt,horiBearingY:lt,horiAdvance:K,vertBearingX:lt,vertBearingY:lt,vertAdvance:K}),ar=new T({height:K,width:K,bearingX:lt,bearingY:lt,advance:K}),df=new T({glyph:u,xOffset:lt,yOffset:lt});class gf{}class Kn{}new ve("version",{1:{metrics:ar,data:gf},2:{metrics:ar,data:Kn},5:{data:Kn},6:{metrics:pa,data:gf},7:{metrics:pa,data:Kn},8:{metrics:ar,pad:new je(K),numComponents:u,components:new k(df,"numComponents")},9:{metrics:pa,pad:new je(K),numComponents:u,components:new k(df,"numComponents")},17:{metrics:ar,dataLen:S,data:new Qt("dataLen")},18:{metrics:pa,dataLen:S,data:new Qt("dataLen")},19:{dataLen:S,data:new Qt("dataLen")}});let pf=new T({ascender:lt,descender:lt,widthMax:K,caretSlopeNumerator:lt,caretSlopeDenominator:lt,caretOffset:lt,minOriginSB:lt,minAdvanceSB:lt,maxBeforeBL:lt,minAfterBL:lt,pad:new je(lt,2)}),S4=new T({glyphCode:u,offset:u}),V4=new ve(u,{header:{imageFormat:u,imageDataOffset:S},1:{offsetArray:new k(S,t=>t.parent.lastGlyphIndex-t.parent.firstGlyphIndex+1)},2:{imageSize:S,bigMetrics:pa},3:{offsetArray:new k(u,t=>t.parent.lastGlyphIndex-t.parent.firstGlyphIndex+1)},4:{numGlyphs:S,glyphArray:new k(S4,t=>t.numGlyphs+1)},5:{imageSize:S,bigMetrics:pa,numGlyphs:S,glyphCodeArray:new k(u,"numGlyphs")}}),I4=new T({firstGlyphIndex:u,lastGlyphIndex:u,subtable:new A(S,V4)}),_4=new T({indexSubTableArray:new A(S,new k(I4,1),{type:"parent"}),indexTablesSize:S,numberOfIndexSubTables:S,colorRef:S,hori:pf,vert:pf,startGlyphIndex:u,endGlyphIndex:u,ppemX:K,ppemY:K,bitDepth:K,flags:new Bt(K,["horizontal","vertical"])});var F4=new T({version:S,numSizes:S,sizes:new k(_4,"numSizes")});let T4=new T({ppem:u,resolution:u,imageOffsets:new k(new A(S,"void"),t=>t.parent.parent.maxp.numGlyphs+1)});var P4=new T({version:u,flags:new Bt(u,["renderOutlines"]),numImgTables:S,imageTables:new k(new A(S,T4),"numImgTables")});let E4=new T({gid:u,paletteIndex:u}),O4=new T({gid:u,firstLayerIndex:u,numLayers:u});var M4=new T({version:u,numBaseGlyphRecords:u,baseGlyphRecord:new A(S,new k(O4,"numBaseGlyphRecords")),layerRecords:new A(S,new k(E4,"numLayerRecords"),{lazy:!0}),numLayerRecords:u});let R4=new T({blue:K,green:K,red:K,alpha:K});var z4=new ve(u,{header:{numPaletteEntries:u,numPalettes:u,numColorRecords:u,colorRecords:new A(S,new k(R4,"numColorRecords")),colorRecordIndices:new k(u,"numPalettes")},0:{},1:{offsetPaletteTypeArray:new A(S,new k(S,"numPalettes")),offsetPaletteLabelArray:new A(S,new k(u,"numPalettes")),offsetPaletteEntryLabelArray:new A(S,new k(u,"numPaletteEntries"))}});let Xa=new ve(u,{1:{coordinate:U},2:{coordinate:U,referenceGlyph:u,baseCoordPoint:u},3:{coordinate:U,deviceTable:new A(u,Vs)}}),L4=new T({defaultIndex:u,baseCoordCount:u,baseCoords:new k(new A(u,Xa),"baseCoordCount")}),D4=new T({tag:new Re(4),minCoord:new A(u,Xa,{type:"parent"}),maxCoord:new A(u,Xa,{type:"parent"})}),mf=new T({minCoord:new A(u,Xa),maxCoord:new A(u,Xa),featMinMaxCount:u,featMinMaxRecords:new k(D4,"featMinMaxCount")}),B4=new T({tag:new Re(4),minMax:new A(u,mf,{type:"parent"})}),U4=new T({baseValues:new A(u,L4),defaultMinMax:new A(u,mf),baseLangSysCount:u,baseLangSysRecords:new k(B4,"baseLangSysCount")}),Z4=new T({tag:new Re(4),script:new A(u,U4,{type:"parent"})}),G4=new k(Z4,u),W4=new k(new Re(4),u),yf=new T({baseTagList:new A(u,W4),baseScriptList:new A(u,G4)});var Y4=new ve(S,{header:{horizAxis:new A(u,yf),vertAxis:new A(u,yf)},65536:{},65537:{itemVariationStore:new A(S,sr)}});let H4=new k(u,u),j4=new T({coverage:new A(u,ze),glyphCount:u,attachPoints:new k(new A(u,H4),"glyphCount")}),K4=new ve(u,{1:{coordinate:U},2:{caretValuePoint:u},3:{coordinate:U,deviceTable:new A(u,Vs)}}),X4=new k(new A(u,K4),u),q4=new T({coverage:new A(u,ze),ligGlyphCount:u,ligGlyphs:new k(new A(u,X4),"ligGlyphCount")}),bf=new T({markSetTableFormat:u,markSetCount:u,coverage:new k(new A(S,ze),"markSetCount")});var J4=new ve(S,{header:{glyphClassDef:new A(u,Ss),attachList:new A(u,j4),ligCaretList:new A(u,q4),markAttachClassDef:new A(u,Ss)},65536:{},65538:{markGlyphSetsDef:new A(u,bf)},65539:{markGlyphSetsDef:new A(u,bf),itemVariationStore:new A(S,sr)}});let ma=new Bt(u,["xPlacement","yPlacement","xAdvance","yAdvance","xPlaDevice","yPlaDevice","xAdvDevice","yAdvDevice"]),Q4={xPlacement:U,yPlacement:U,xAdvance:U,yAdvance:U,xPlaDevice:new A(u,Vs,{type:"global",relativeTo:t=>t.rel}),yPlaDevice:new A(u,Vs,{type:"global",relativeTo:t=>t.rel}),xAdvDevice:new A(u,Vs,{type:"global",relativeTo:t=>t.rel}),yAdvDevice:new A(u,Vs,{type:"global",relativeTo:t=>t.rel})};class ya{buildStruct(e){let s=e;for(;!s[this.key]&&s.parent;)s=s.parent;if(!s[this.key])return;let a={};a.rel=()=>s._startOffset;let i=s[this.key];for(let r in i)i[r]&&(a[r]=Q4[r]);return new T(a)}size(e,s){return this.buildStruct(s).size(e,s)}decode(e,s){let a=this.buildStruct(s).decode(e,s);return delete a.rel,a}constructor(e="valueFormat"){this.key=e}}let $4=new T({secondGlyph:u,value1:new ya("valueFormat1"),value2:new ya("valueFormat2")}),e2=new k($4,u),t2=new T({value1:new ya("valueFormat1"),value2:new ya("valueFormat2")}),qa=new ve(u,{1:{xCoordinate:U,yCoordinate:U},2:{xCoordinate:U,yCoordinate:U,anchorPoint:u},3:{xCoordinate:U,yCoordinate:U,xDeviceTable:new A(u,Vs),yDeviceTable:new A(u,Vs)}}),s2=new T({entryAnchor:new A(u,qa,{type:"parent"}),exitAnchor:new A(u,qa,{type:"parent"})}),a2=new T({class:u,markAnchor:new A(u,qa,{type:"parent"})}),Xn=new k(a2,u),i2=new k(new A(u,qa),t=>t.parent.classCount),wf=new k(i2,u),r2=new k(new A(u,qa),t=>t.parent.parent.classCount),n2=new k(r2,u),o2=new k(new A(u,n2),u),Ja=new ve("lookupType",{1:new ve(u,{1:{coverage:new A(u,ze),valueFormat:ma,value:new ya},2:{coverage:new A(u,ze),valueFormat:ma,valueCount:u,values:new Be(new ya,"valueCount")}}),2:new ve(u,{1:{coverage:new A(u,ze),valueFormat1:ma,valueFormat2:ma,pairSetCount:u,pairSets:new Be(new A(u,e2),"pairSetCount")},2:{coverage:new A(u,ze),valueFormat1:ma,valueFormat2:ma,classDef1:new A(u,Ss),classDef2:new A(u,Ss),class1Count:u,class2Count:u,classRecords:new Be(new Be(t2,"class2Count"),"class1Count")}}),3:{format:u,coverage:new A(u,ze),entryExitCount:u,entryExitRecords:new k(s2,"entryExitCount")},4:{format:u,markCoverage:new A(u,ze),baseCoverage:new A(u,ze),classCount:u,markArray:new A(u,Xn),baseArray:new A(u,wf)},5:{format:u,markCoverage:new A(u,ze),ligatureCoverage:new A(u,ze),classCount:u,markArray:new A(u,Xn),ligatureArray:new A(u,o2)},6:{format:u,mark1Coverage:new A(u,ze),mark2Coverage:new A(u,ze),classCount:u,mark1Array:new A(u,Xn),mark2Array:new A(u,wf)},7:ef,8:sf,9:{posFormat:u,lookupType:u,extension:new A(S,null)}});Ja.versions[9].extension.type=Ja;var l2=new ve(S,{header:{scriptList:new A(u,Jc),featureList:new A(u,$c),lookupList:new A(u,new tr(Ja))},65536:{},65537:{featureVariations:new A(S,af)}});let vf=new k(u,u),c2=vf,f2=new T({glyph:u,compCount:u,components:new k(u,t=>t.compCount-1)}),u2=new k(new A(u,f2),u),qn=new ve("lookupType",{1:new ve(u,{1:{coverage:new A(u,ze),deltaGlyphID:U},2:{coverage:new A(u,ze),glyphCount:u,substitute:new Be(u,"glyphCount")}}),2:{substFormat:u,coverage:new A(u,ze),count:u,sequences:new Be(new A(u,vf),"count")},3:{substFormat:u,coverage:new A(u,ze),count:u,alternateSet:new Be(new A(u,c2),"count")},4:{substFormat:u,coverage:new A(u,ze),count:u,ligatureSets:new Be(new A(u,u2),"count")},5:ef,6:sf,7:{substFormat:u,lookupType:u,extension:new A(S,null)},8:{substFormat:u,coverage:new A(u,ze),backtrackCoverage:new k(new A(u,ze),"backtrackGlyphCount"),lookaheadGlyphCount:u,lookaheadCoverage:new k(new A(u,ze),"lookaheadGlyphCount"),glyphCount:u,substitutes:new k(u,"glyphCount")}});qn.versions[7].extension.type=qn;var h2=new ve(S,{header:{scriptList:new A(u,Jc),featureList:new A(u,$c),lookupList:new A(u,new tr(qn))},65536:{},65537:{featureVariations:new A(S,af)}});let Is=new k(u,u),d2=new T({shrinkageEnableGSUB:new A(u,Is),shrinkageDisableGSUB:new A(u,Is),shrinkageEnableGPOS:new A(u,Is),shrinkageDisableGPOS:new A(u,Is),shrinkageJstfMax:new A(u,new tr(Ja)),extensionEnableGSUB:new A(u,Is),extensionDisableGSUB:new A(u,Is),extensionEnableGPOS:new A(u,Is),extensionDisableGPOS:new A(u,Is),extensionJstfMax:new A(u,new tr(Ja))}),xf=new k(new A(u,d2),u),g2=new T({tag:new Re(4),jstfLangSys:new A(u,xf)}),p2=new T({extenderGlyphs:new A(u,new k(u,u)),defaultLangSys:new A(u,xf),langSysCount:u,langSysRecords:new k(g2,"langSysCount")}),m2=new T({tag:new Re(4),script:new A(u,p2,{type:"parent"})});var y2=new T({version:S,scriptCount:u,scriptList:new k(m2,"scriptCount")});class b2{decode(e,s){switch(this.size(0,s)){case 1:return e.readUInt8();case 2:return e.readUInt16BE();case 3:return e.readUInt24BE();case 4:return e.readUInt32BE()}}size(e,s){return Jt(this._size,null,s)}constructor(e){this._size=e}}let w2=new T({entry:new b2(t=>((t.parent.entryFormat&48)>>4)+1),outerIndex:t=>t.entry>>(t.parent.entryFormat&15)+1,innerIndex:t=>t.entry&(1<<(t.parent.entryFormat&15)+1)-1}),Jn=new T({entryFormat:u,mapCount:u,mapData:new k(w2,"mapCount")});var v2=new T({majorVersion:u,minorVersion:u,itemVariationStore:new A(S,sr),advanceWidthMapping:new A(S,Jn),LSBMapping:new A(S,Jn),RSBMapping:new A(S,Jn)});let x2=new T({format:S,length:S,offset:S}),C2=new T({reserved:new je(u,2),cbSignature:S,signature:new Qt("cbSignature")});var k2=new T({ulVersion:S,usNumSigs:u,usFlag:u,signatures:new k(x2,"usNumSigs"),signatureBlocks:new k(C2,"usNumSigs")});let N2=new T({rangeMaxPPEM:u,rangeGaspBehavior:new Bt(u,["grayscale","gridfit","symmetricSmoothing","symmetricGridfit"])});var A2=new T({version:u,numRanges:u,gaspRanges:new k(N2,"numRanges")});let S2=new T({pixelSize:K,maximumWidth:K,widths:new k(K,t=>t.parent.parent.maxp.numGlyphs)});var V2=new T({version:u,numRecords:U,sizeDeviceRecord:Ds,records:new k(S2,"numRecords")});let I2=new T({left:u,right:u,value:U}),Cf=new T({firstGlyph:u,nGlyphs:u,offsets:new k(u,"nGlyphs"),max:t=>t.offsets.length&&Math.max.apply(Math,t.offsets)}),_2=new T({off:t=>t._startOffset-t.parent.parent._startOffset,len:t=>((t.parent.leftTable.max-t.off)/t.parent.rowWidth+1)*(t.parent.rowWidth/2),values:new Be(U,"len")}),kf=new ve("format",{0:{nPairs:u,searchRange:u,entrySelector:u,rangeShift:u,pairs:new k(I2,"nPairs")},2:{rowWidth:u,leftTable:new A(u,Cf,{type:"parent"}),rightTable:new A(u,Cf,{type:"parent"}),array:new A(u,_2,{type:"parent"})},3:{glyphCount:u,kernValueCount:K,leftClassCount:K,rightClassCount:K,flags:K,kernValue:new k(U,"kernValueCount"),leftClass:new k(K,"glyphCount"),rightClass:new k(K,"glyphCount"),kernIndex:new k(K,t=>t.leftClassCount*t.rightClassCount)}}),Nf=new ve("version",{0:{subVersion:u,length:u,format:K,coverage:new Bt(K,["horizontal","minimum","crossStream","override"]),subtable:kf,padding:new je(K,t=>t.length-t._currentOffset)},1:{length:S,coverage:new Bt(K,[null,null,null,null,null,"variation","crossStream","vertical"]),format:K,tupleIndex:u,subtable:kf,padding:new je(K,t=>t.length-t._currentOffset)}});var F2=new ve(u,{0:{nTables:u,tables:new k(Nf,"nTables")},1:{reserved:new je(u),nTables:S,tables:new k(Nf,"nTables")}}),T2=new T({version:u,numGlyphs:u,yPels:new k(K,"numGlyphs")}),P2=new T({version:u,fontNumber:S,pitch:u,xHeight:u,style:u,typeFamily:u,capHeight:u,symbolSet:u,typeface:new Re(16),characterComplement:new Re(8),fileName:new Re(6),strokeWeight:new Re(1),widthType:new Re(1),serifStyle:K,reserved:new je(K)});let E2=new T({bCharSet:K,xRatio:K,yStartRatio:K,yEndRatio:K}),O2=new T({yPelHeight:u,yMax:U,yMin:U}),M2=new T({recs:u,startsz:K,endsz:K,entries:new k(O2,"recs")});var R2=new T({version:u,numRecs:u,numRatios:u,ratioRanges:new k(E2,"numRatios"),offsets:new k(u,"numRatios"),groups:new k(M2,"numRecs")}),z2=new T({version:u,ascent:U,descent:U,lineGap:U,advanceHeightMax:U,minTopSideBearing:U,minBottomSideBearing:U,yMaxExtent:U,caretSlopeRise:U,caretSlopeRun:U,caretOffset:U,reserved:new je(U,4),metricDataFormat:U,numberOfMetrics:u});let L2=new T({advance:u,bearing:U});var D2=new T({metrics:new Be(L2,t=>t.parent.vhea.numberOfMetrics),bearings:new Be(U,t=>t.parent.maxp.numGlyphs-t.parent.vhea.numberOfMetrics)});let Af=new Bs(16,"BE",14),B2=new T({fromCoord:Af,toCoord:Af}),U2=new T({pairCount:u,correspondence:new k(B2,"pairCount")});var Z2=new T({version:st,axisCount:S,segment:new k(U2,"axisCount")});class G2{getItem(e){if(this._items[e]==null){let s=this.stream.pos;this.stream.pos=this.base+this.type.size(null,this.parent)*e,this._items[e]=this.type.decode(this.stream,this.parent),this.stream.pos=s}return this._items[e]}inspect(){return`[UnboundedArray ${this.type.constructor.name}]`}constructor(e,s,a){this.type=e,this.stream=s,this.parent=a,this.base=this.stream.pos,this._items=[]}}class as extends k{decode(e,s){return new G2(this.type,e,s)}constructor(e){super(e,0)}}let _s=function(t=u){class e{decode(o,l){return l=l.parent.parent,this.type.decode(o,l)}size(o,l){return l=l.parent.parent,this.type.size(o,l)}encode(o,l,c){return c=c.parent.parent,this.type.encode(o,l,c)}constructor(o){this.type=o}}t=new e(t);let s=new T({unitSize:u,nUnits:u,searchRange:u,entrySelector:u,rangeShift:u}),a=new T({lastGlyph:u,firstGlyph:u,value:t}),i=new T({lastGlyph:u,firstGlyph:u,values:new A(u,new k(t,n=>n.lastGlyph-n.firstGlyph+1),{type:"parent"})}),r=new T({glyph:u,value:t});return new ve(u,{0:{values:new as(t)},2:{binarySearchHeader:s,segments:new k(a,n=>n.binarySearchHeader.nUnits)},4:{binarySearchHeader:s,segments:new k(i,n=>n.binarySearchHeader.nUnits)},6:{binarySearchHeader:s,segments:new k(r,n=>n.binarySearchHeader.nUnits)},8:{firstGlyph:u,count:u,values:new k(t,"count")}})};function ir(t={},e=u){let s=Object.assign({newState:u,flags:u},t),a=new T(s),i=new as(new k(u,n=>n.nClasses));return new T({nClasses:S,classTable:new A(S,new _s(e)),stateArray:new A(S,i),entryTable:new A(S,new as(a))})}function W2(t={},e=u){let s=new T({version(){return 8},firstGlyph:u,values:new k(K,u)}),a=Object.assign({newStateOffset:u,newState:o=>(o.newStateOffset-(o.parent.stateArray.base-o.parent._startOffset))/o.parent.nClasses,flags:u},t),i=new T(a),r=new as(new k(K,o=>o.nClasses));return new T({nClasses:u,classTable:new A(u,s),stateArray:new A(u,r),entryTable:new A(u,new as(i))})}let Y2=new ve("format",{0:{deltas:new k(U,32)},1:{deltas:new k(U,32),mappingData:new _s(u)},2:{standardGlyph:u,controlPoints:new k(u,32)},3:{standardGlyph:u,controlPoints:new k(u,32),mappingData:new _s(u)}});var H2=new T({version:st,format:u,defaultBaseline:u,subtable:Y2});let j2=new T({setting:u,nameIndex:U,name:t=>t.parent.parent.parent.name.records.fontFeatures[t.nameIndex]}),K2=new T({feature:u,nSettings:u,settingTable:new A(S,new k(j2,"nSettings"),{type:"parent"}),featureFlags:new Bt(K,[null,null,null,null,null,null,"hasDefault","exclusive"]),defaultSetting:K,nameIndex:U,name:t=>t.parent.parent.name.records.fontFeatures[t.nameIndex]});var X2=new T({version:st,featureNameCount:u,reserved1:new je(u),reserved2:new je(S),featureNames:new k(K2,"featureNameCount")});let q2=new T({axisTag:new Re(4),minValue:st,defaultValue:st,maxValue:st,flags:u,nameID:u,name:t=>t.parent.parent.name.records.fontFeatures[t.nameID]}),J2=new T({nameID:u,name:t=>t.parent.parent.name.records.fontFeatures[t.nameID],flags:u,coord:new k(st,t=>t.parent.axisCount),postscriptNameID:new Gi(u,t=>t.parent.instanceSize-t._currentOffset>0)});var Q2=new T({version:st,offsetToData:u,countSizePairs:u,axisCount:u,axisSize:u,instanceCount:u,instanceSize:u,axis:new k(q2,"axisCount"),instance:new k(J2,"instanceCount")});let $2=new Bs(16,"BE",14);class ev{static decode(e,s){return s.flags?e.readUInt32BE():e.readUInt16BE()*2}}var tv=new T({version:u,reserved:new je(u),axisCount:u,globalCoordCount:u,globalCoords:new A(S,new k(new k($2,"axisCount"),"globalCoordCount")),glyphCount:u,flags:u,offsetToData:S,offsets:new k(new A(ev,"void",{relativeTo:t=>t.offsetToData,allowNull:!1}),t=>t.glyphCount+1)});let sv=new T({length:u,coverage:u,subFeatureFlags:S,stateTable:new W2}),av=new T({justClass:S,beforeGrowLimit:st,beforeShrinkLimit:st,afterGrowLimit:st,afterShrinkLimit:st,growFlags:u,shrinkFlags:u}),iv=new k(av,S),rv=new ve("actionType",{0:{lowerLimit:st,upperLimit:st,order:u,glyphs:new k(u,u)},1:{addGlyph:u},2:{substThreshold:st,addGlyph:u,substGlyph:u},3:{},4:{variationAxis:S,minimumLimit:st,noStretchValue:st,maximumLimit:st},5:{flags:u,glyph:u}}),nv=new T({actionClass:u,actionType:u,actionLength:S,actionData:rv,padding:new je(K,t=>t.actionLength-t._currentOffset)}),ov=new k(nv,S),lv=new T({lookupTable:new _s(new A(u,ov))}),Sf=new T({classTable:new A(u,sv,{type:"parent"}),wdcOffset:u,postCompensationTable:new A(u,lv,{type:"parent"}),widthDeltaClusters:new _s(new A(u,iv,{type:"parent",relativeTo:t=>t.wdcOffset}))});var cv=new T({version:S,format:u,horizontal:new A(u,Sf),vertical:new A(u,Sf)});let fv={action:u},uv={markIndex:u,currentIndex:u},hv={currentInsertIndex:u,markedInsertIndex:u},dv=new T({items:new as(new A(S,new _s))}),gv=new ve("type",{0:{stateTable:new ir},1:{stateTable:new ir(uv),substitutionTable:new A(S,dv)},2:{stateTable:new ir(fv),ligatureActions:new A(S,new as(S)),components:new A(S,new as(u)),ligatureList:new A(S,new as(u))},4:{lookupTable:new _s},5:{stateTable:new ir(hv),insertionActions:new A(S,new as(u))}}),pv=new T({length:S,coverage:ks,type:K,subFeatureFlags:S,table:gv,padding:new je(K,t=>t.length-t._currentOffset)}),mv=new T({featureType:u,featureSetting:u,enableFlags:S,disableFlags:S}),yv=new T({defaultFlags:S,chainLength:S,nFeatureEntries:S,nSubtables:S,features:new k(mv,"nFeatureEntries"),subtables:new k(pv,"nSubtables")});var bv=new T({version:u,unused:new je(u),nChains:S,chains:new k(yv,"nChains")});let wv=new T({left:U,top:U,right:U,bottom:U});var vv=new T({version:st,format:u,lookupTable:new _s(wv)});let de={};var rr=de;de.cmap=x1,de.head=C1,de.hhea=k1,de.hmtx=A1,de.maxp=S1,de.name=E1,de["OS/2"]=O1,de.post=M1,de.fpgm=z1,de.loca=L1,de.prep=D1,de["cvt "]=R1,de.glyf=B1,de["CFF "]=hf,de.CFF2=hf,de.VORG=A4,de.EBLC=F4,de.CBLC=de.EBLC,de.sbix=P4,de.COLR=M4,de.CPAL=z4,de.BASE=Y4,de.GDEF=J4,de.GPOS=l2,de.GSUB=h2,de.JSTF=y2,de.HVAR=v2,de.DSIG=k2,de.gasp=A2,de.hdmx=V2,de.kern=F2,de.LTSH=T2,de.PCLT=P2,de.VDMX=R2,de.vhea=z2,de.vmtx=D2,de.avar=Z2,de.bsln=H2,de.feat=X2,de.fvar=Q2,de.gvar=tv,de.just=cv,de.morx=bv,de.opbd=vv;let xv=new T({tag:new Re(4),checkSum:S,offset:new A(S,"void",{type:"global"}),length:S}),Qn=new T({tag:new Re(4),numTables:u,searchRange:u,entrySelector:u,rangeShift:u,tables:new k(xv,"numTables")});Qn.process=function(){let t={};for(let e of this.tables)t[e.tag]=e;this.tables=t},Qn.preEncode=function(){if(!Array.isArray(this.tables)){let s=[];for(let a in this.tables){let i=this.tables[a];i&&s.push({tag:a,checkSum:0,offset:new wn(rr[a],i),length:rr[a].size(i)})}this.tables=s}this.tag="true",this.numTables=this.tables.length;let t=Math.floor(Math.log(this.numTables)/Math.LN2),e=Math.pow(2,t);this.searchRange=e*16,this.entrySelector=Math.log(e)/Math.LN2,this.rangeShift=this.numTables*16-this.searchRange};var Vf=Qn;function nr(t,e){let s=0,a=t.length-1;for(;s<=a;){let i=s+a>>1,r=e(t[i]);if(r<0)a=i-1;else if(r>0)s=i+1;else return i}return-1}function ba(t,e){let s=[];for(;t<e;)s.push(t++);return s}const or=new TextDecoder("ascii"),If="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Qa=new Uint8Array(256);for(let t=0;t<If.length;t++)Qa[If.charCodeAt(t)]=t;function $n(t){let e=t.length*.75;t[t.length-1]==="="&&(e--,t[t.length-2]==="="&&e--);let s=new Uint8Array(e),a=0;for(let i=0,r=t.length;i<r;i+=4){let n=Qa[t.charCodeAt(i)],o=Qa[t.charCodeAt(i+1)],l=Qa[t.charCodeAt(i+2)],c=Qa[t.charCodeAt(i+3)];s[a++]=n<<2|o>>4,s[a++]=(o&15)<<4|l>>2,s[a++]=(l&3)<<6|c&63}return s}class eo{findSubtable(e,s){for(let[a,i]of s)for(let r of e.tables)if(r.platformID===a&&r.encodingID===i)return r.table;return null}lookup(e,s){if(this.encoding)e=this.encoding.get(e)||e;else if(s){let i=this.getVariationSelector(e,s);if(i)return i}let a=this.cmap;switch(a.version){case 0:return a.codeMap.get(e)||0;case 4:{let i=0,r=a.segCount-1;for(;i<=r;){let n=i+r>>1;if(e<a.startCode.get(n))r=n-1;else if(e>a.endCode.get(n))i=n+1;else{let o=a.idRangeOffset.get(n),l;if(o===0)l=e+a.idDelta.get(n);else{let c=o/2+(e-a.startCode.get(n))-(a.segCount-n);l=a.glyphIndexArray.get(c)||0,l!==0&&(l+=a.idDelta.get(n))}return l&65535}}return 0}case 8:throw new Error("TODO: cmap format 8");case 6:case 10:return a.glyphIndices.get(e-a.firstCode)||0;case 12:case 13:{let i=0,r=a.nGroups-1;for(;i<=r;){let n=i+r>>1,o=a.groups.get(n);if(e<o.startCharCode)r=n-1;else if(e>o.endCharCode)i=n+1;else return a.version===12?o.glyphID+(e-o.startCharCode):o.glyphID}return 0}case 14:throw new Error("TODO: cmap format 14");default:throw new Error(`Unknown cmap format ${a.version}`)}}getVariationSelector(e,s){if(!this.uvs)return 0;let a=this.uvs.varSelectors.toArray(),i=nr(a,n=>s-n.varSelector),r=a[i];return i!==-1&&r.defaultUVS&&(i=nr(r.defaultUVS,n=>e<n.startUnicodeValue?-1:e>n.startUnicodeValue+n.additionalCount?1:0)),i!==-1&&r.nonDefaultUVS&&(i=nr(r.nonDefaultUVS,n=>e-n.unicodeValue),i!==-1)?r.nonDefaultUVS[i].glyphID:0}getCharacterSet(){let e=this.cmap;switch(e.version){case 0:return ba(0,e.codeMap.length);case 4:{let s=[],a=e.endCode.toArray();for(let i=0;i<a.length;i++){let r=a[i]+1,n=e.startCode.get(i);s.push(...ba(n,r))}return s}case 8:throw new Error("TODO: cmap format 8");case 6:case 10:return ba(e.firstCode,e.firstCode+e.glyphIndices.length);case 12:case 13:{let s=[];for(let a of e.groups.toArray())s.push(...ba(a.startCharCode,a.endCharCode+1));return s}case 14:throw new Error("TODO: cmap format 14");default:throw new Error(`Unknown cmap format ${e.version}`)}}codePointsForGlyph(e){let s=this.cmap;switch(s.version){case 0:{let i=[];for(let r=0;r<256;r++)s.codeMap.get(r)===e&&i.push(r);return i}case 4:{let i=[];for(let r=0;r<s.segCount;r++){let n=s.endCode.get(r),o=s.startCode.get(r),l=s.idRangeOffset.get(r),c=s.idDelta.get(r);for(var a=o;a<=n;a++){let f=0;if(l===0)f=a+c;else{let h=l/2+(a-o)-(s.segCount-r);f=s.glyphIndexArray.get(h)||0,f!==0&&(f+=c)}f===e&&i.push(a)}}return i}case 12:{let i=[];for(let r of s.groups.toArray())e>=r.glyphID&&e<=r.glyphID+(r.endCharCode-r.startCharCode)&&i.push(r.startCharCode+(e-r.glyphID));return i}case 13:{let i=[];for(let r of s.groups.toArray())e===r.glyphID&&i.push(...ba(r.startCharCode,r.endCharCode+1));return i}default:throw new Error(`Unknown cmap format ${s.version}`)}}constructor(e){if(this.encoding=null,this.cmap=this.findSubtable(e,[[3,10],[0,6],[0,4],[3,1],[0,3],[0,2],[0,1],[0,0]]),!this.cmap)for(let s of e.tables){let a=Uc(s.platformID,s.encodingID,s.table.language-1),i=_1(a);i&&(this.cmap=s.table,this.encoding=i)}if(!this.cmap)throw new Error("Could not find a supported cmap table");this.uvs=this.findSubtable(e,[[0,5]]),this.uvs&&this.uvs.version!==14&&(this.uvs=null)}}mt([yt],eo.prototype,"getCharacterSet",null),mt([yt],eo.prototype,"codePointsForGlyph",null);class Cv{process(e,s){for(let a=0;a<e.length-1;a++){let i=e[a].id,r=e[a+1].id;s[a].xAdvance+=this.getKerning(i,r)}}getKerning(e,s){let a=0;for(let i of this.kern.tables){if(i.coverage.crossStream)continue;switch(i.version){case 0:if(!i.coverage.horizontal)continue;break;case 1:if(i.coverage.vertical||i.coverage.variation)continue;break;default:throw new Error(`Unsupported kerning table version ${i.version}`)}let r=0,n=i.subtable;switch(i.format){case 0:let o=nr(n.pairs,function(h){return e-h.left||s-h.right});o>=0&&(r=n.pairs[o].value);break;case 2:let l=0,c=0;e>=n.leftTable.firstGlyph&&e<n.leftTable.firstGlyph+n.leftTable.nGlyphs?l=n.leftTable.offsets[e-n.leftTable.firstGlyph]:l=n.array.off,s>=n.rightTable.firstGlyph&&s<n.rightTable.firstGlyph+n.rightTable.nGlyphs&&(c=n.rightTable.offsets[s-n.rightTable.firstGlyph]);let f=(l+c-n.array.off)/2;r=n.array.values.get(f);break;case 3:if(e>=n.glyphCount||s>=n.glyphCount)return 0;r=n.kernValue[n.kernIndex[n.leftClass[e]*n.rightClassCount+n.rightClass[s]]];break;default:throw new Error(`Unsupported kerning sub-table format ${i.format}`)}i.coverage.override?a=r:a+=r}return a}constructor(e){this.kern=e.kern}}class kv{positionGlyphs(e,s){let a=0,i=0;for(let r=0;r<e.length;r++)e[r].isMark?i=r:(a!==i&&this.positionCluster(e,s,a,i),a=i=r);return a!==i&&this.positionCluster(e,s,a,i),s}positionCluster(e,s,a,i){let r=e[a],n=r.cbox.copy();r.codePoints.length>1&&(n.minX+=(r.codePoints.length-1)*n.width/r.codePoints.length);let o=-s[a].xAdvance,l=0,c=this.font.unitsPerEm/16;for(let f=a+1;f<=i;f++){let h=e[f],d=h.cbox,m=s[f],b=this.getCombiningClass(h.codePoints[0]);if(b!=="Not_Reordered"){switch(m.xOffset=m.yOffset=0,b){case"Double_Above":case"Double_Below":m.xOffset+=n.minX-d.width/2-d.minX;break;case"Attached_Below_Left":case"Below_Left":case"Above_Left":m.xOffset+=n.minX-d.minX;break;case"Attached_Above_Right":case"Below_Right":case"Above_Right":m.xOffset+=n.maxX-d.width-d.minX;break;default:m.xOffset+=n.minX+(n.width-d.width)/2-d.minX}switch(b){case"Double_Below":case"Below_Left":case"Below":case"Below_Right":case"Attached_Below_Left":case"Attached_Below":(b==="Attached_Below_Left"||b==="Attached_Below")&&(n.minY+=c),m.yOffset=-n.minY-d.maxY,n.minY+=d.height;break;case"Double_Above":case"Above_Left":case"Above":case"Above_Right":case"Attached_Above":case"Attached_Above_Right":(b==="Attached_Above"||b==="Attached_Above_Right")&&(n.maxY+=c),m.yOffset=n.maxY-d.minY,n.maxY+=d.height;break}m.xAdvance=m.yAdvance=0,m.xOffset+=o,m.yOffset+=l}else o-=m.xAdvance,l-=m.yAdvance}}getCombiningClass(e){let s=Qw(e);if((e&-256)===3584){if(s==="Not_Reordered")switch(e){case 3633:case 3636:case 3637:case 3638:case 3639:case 3655:case 3660:case 3645:case 3662:return"Above_Right";case 3761:case 3764:case 3765:case 3766:case 3767:case 3771:case 3788:case 3789:return"Above";case 3772:return"Below"}else if(e===3642)return"Below_Right"}switch(s){case"CCC10":case"CCC11":case"CCC12":case"CCC13":case"CCC14":case"CCC15":case"CCC16":case"CCC17":case"CCC18":case"CCC20":case"CCC22":return"Below";case"CCC23":return"Attached_Above";case"CCC24":return"Above_Right";case"CCC25":case"CCC19":return"Above_Left";case"CCC26":return"Above";case"CCC21":break;case"CCC27":case"CCC28":case"CCC30":case"CCC31":case"CCC33":case"CCC34":case"CCC35":case"CCC36":return"Above";case"CCC29":case"CCC32":return"Below";case"CCC103":return"Below_Right";case"CCC107":return"Above_Right";case"CCC118":return"Below";case"CCC122":return"Above";case"CCC129":case"CCC132":return"Below";case"CCC130":return"Above"}return s}constructor(e){this.font=e}}class Fs{get width(){return this.maxX-this.minX}get height(){return this.maxY-this.minY}addPoint(e,s){Math.abs(e)!==1/0&&(e<this.minX&&(this.minX=e),e>this.maxX&&(this.maxX=e)),Math.abs(s)!==1/0&&(s<this.minY&&(this.minY=s),s>this.maxY&&(this.maxY=s))}copy(){return new Fs(this.minX,this.minY,this.maxX,this.maxY)}constructor(e=1/0,s=1/0,a=-1/0,i=-1/0){this.minX=e,this.minY=s,this.maxX=a,this.maxY=i}}const wa={Caucasian_Albanian:"aghb",Arabic:"arab",Imperial_Aramaic:"armi",Armenian:"armn",Avestan:"avst",Balinese:"bali",Bamum:"bamu",Bassa_Vah:"bass",Batak:"batk",Bengali:["bng2","beng"],Bopomofo:"bopo",Brahmi:"brah",Braille:"brai",Buginese:"bugi",Buhid:"buhd",Chakma:"cakm",Canadian_Aboriginal:"cans",Carian:"cari",Cham:"cham",Cherokee:"cher",Coptic:"copt",Cypriot:"cprt",Cyrillic:"cyrl",Devanagari:["dev2","deva"],Deseret:"dsrt",Duployan:"dupl",Egyptian_Hieroglyphs:"egyp",Elbasan:"elba",Ethiopic:"ethi",Georgian:"geor",Glagolitic:"glag",Gothic:"goth",Grantha:"gran",Greek:"grek",Gujarati:["gjr2","gujr"],Gurmukhi:["gur2","guru"],Hangul:"hang",Han:"hani",Hanunoo:"hano",Hebrew:"hebr",Hiragana:"hira",Pahawh_Hmong:"hmng",Katakana_Or_Hiragana:"hrkt",Old_Italic:"ital",Javanese:"java",Kayah_Li:"kali",Katakana:"kana",Kharoshthi:"khar",Khmer:"khmr",Khojki:"khoj",Kannada:["knd2","knda"],Kaithi:"kthi",Tai_Tham:"lana",Lao:"lao ",Latin:"latn",Lepcha:"lepc",Limbu:"limb",Linear_A:"lina",Linear_B:"linb",Lisu:"lisu",Lycian:"lyci",Lydian:"lydi",Mahajani:"mahj",Mandaic:"mand",Manichaean:"mani",Mende_Kikakui:"mend",Meroitic_Cursive:"merc",Meroitic_Hieroglyphs:"mero",Malayalam:["mlm2","mlym"],Modi:"modi",Mongolian:"mong",Mro:"mroo",Meetei_Mayek:"mtei",Myanmar:["mym2","mymr"],Old_North_Arabian:"narb",Nabataean:"nbat",Nko:"nko ",Ogham:"ogam",Ol_Chiki:"olck",Old_Turkic:"orkh",Oriya:["ory2","orya"],Osmanya:"osma",Palmyrene:"palm",Pau_Cin_Hau:"pauc",Old_Permic:"perm",Phags_Pa:"phag",Inscriptional_Pahlavi:"phli",Psalter_Pahlavi:"phlp",Phoenician:"phnx",Miao:"plrd",Inscriptional_Parthian:"prti",Rejang:"rjng",Runic:"runr",Samaritan:"samr",Old_South_Arabian:"sarb",Saurashtra:"saur",Shavian:"shaw",Sharada:"shrd",Siddham:"sidd",Khudawadi:"sind",Sinhala:"sinh",Sora_Sompeng:"sora",Sundanese:"sund",Syloti_Nagri:"sylo",Syriac:"syrc",Tagbanwa:"tagb",Takri:"takr",Tai_Le:"tale",New_Tai_Lue:"talu",Tamil:["tml2","taml"],Tai_Viet:"tavt",Telugu:["tel2","telu"],Tifinagh:"tfng",Tagalog:"tglg",Thaana:"thaa",Thai:"thai",Tibetan:"tibt",Tirhuta:"tirh",Ugaritic:"ugar",Vai:"vai ",Warang_Citi:"wara",Old_Persian:"xpeo",Cuneiform:"xsux",Yi:"yi ",Inherited:"zinh",Common:"zyyy",Unknown:"zzzz"},to={};for(let t in wa){let e=wa[t];if(Array.isArray(e))for(let s of e)to[s]=t;else to[e]=t}function Nv(t){return to[t]}function Av(t){let e=t.length,s=0;for(;s<e;){let a=t.charCodeAt(s++);if(55296<=a&&a<=56319&&s<e){let r=t.charCodeAt(s);56320<=r&&r<=57343&&(s++,a=((a&1023)<<10)+(r&1023)+65536)}let i=kc(a);if(i!=="Common"&&i!=="Inherited"&&i!=="Unknown")return wa[i]}return wa.Unknown}function Sv(t){for(let e=0;e<t.length;e++){let s=t[e],a=kc(s);if(a!=="Common"&&a!=="Inherited"&&a!=="Unknown")return wa[a]}return wa.Unknown}const Vv={arab:!0,hebr:!0,syrc:!0,thaa:!0,cprt:!0,khar:!0,phnx:!0,"nko ":!0,lydi:!0,avst:!0,armi:!0,phli:!0,prti:!0,sarb:!0,orkh:!0,samr:!0,mand:!0,merc:!0,mero:!0,mani:!0,mend:!0,nbat:!0,narb:!0,palm:!0,phlp:!0};function _f(t){return Vv[t]?"rtl":"ltr"}class Iv{get advanceWidth(){let e=0;for(let s of this.positions)e+=s.xAdvance;return e}get advanceHeight(){let e=0;for(let s of this.positions)e+=s.yAdvance;return e}get bbox(){let e=new Fs,s=0,a=0;for(let i=0;i<this.glyphs.length;i++){let r=this.glyphs[i],n=this.positions[i],o=r.bbox;e.addPoint(o.minX+s+n.xOffset,o.minY+a+n.yOffset),e.addPoint(o.maxX+s+n.xOffset,o.maxY+a+n.yOffset),s+=n.xAdvance,a+=n.yAdvance}return e}constructor(e,s,a,i,r){if(this.glyphs=e,this.positions=null,this.script=a,this.language=i||null,this.direction=r||_f(a),this.features={},Array.isArray(s))for(let n of s)this.features[n]=!0;else typeof s=="object"&&(this.features=s)}}class _v{constructor(e=0,s=0,a=0,i=0){this.xAdvance=e,this.yAdvance=s,this.xOffset=a,this.yOffset=i}}const Ys={allTypographicFeatures:{code:0,exclusive:!1,allTypeFeatures:0},ligatures:{code:1,exclusive:!1,requiredLigatures:0,commonLigatures:2,rareLigatures:4,rebusPictures:8,diphthongLigatures:10,squaredLigatures:12,abbrevSquaredLigatures:14,symbolLigatures:16,contextualLigatures:18,historicalLigatures:20},cursiveConnection:{code:2,exclusive:!0,unconnected:0,partiallyConnected:1,cursive:2},letterCase:{code:3,exclusive:!0},verticalSubstitution:{code:4,exclusive:!1,substituteVerticalForms:0},linguisticRearrangement:{code:5,exclusive:!1,linguisticRearrangement:0},numberSpacing:{code:6,exclusive:!0,monospacedNumbers:0,proportionalNumbers:1,thirdWidthNumbers:2,quarterWidthNumbers:3},smartSwash:{code:8,exclusive:!1,wordInitialSwashes:0,wordFinalSwashes:2,nonFinalSwashes:8},diacritics:{code:9,exclusive:!0,showDiacritics:0,hideDiacritics:1,decomposeDiacritics:2},verticalPosition:{code:10,exclusive:!0,normalPosition:0,superiors:1,inferiors:2,ordinals:3,scientificInferiors:4},fractions:{code:11,exclusive:!0,noFractions:0,verticalFractions:1,diagonalFractions:2},overlappingCharacters:{code:13,exclusive:!1,preventOverlap:0},typographicExtras:{code:14,exclusive:!1,slashedZero:4},mathematicalExtras:{code:15,exclusive:!1,mathematicalGreek:10},ornamentSets:{code:16,exclusive:!0,noOrnaments:0,dingbats:1,piCharacters:2,fleurons:3,decorativeBorders:4,internationalSymbols:5,mathSymbols:6},characterAlternatives:{code:17,exclusive:!0,noAlternates:0},designComplexity:{code:18,exclusive:!0,designLevel1:0,designLevel2:1,designLevel3:2,designLevel4:3,designLevel5:4},styleOptions:{code:19,exclusive:!0,noStyleOptions:0,displayText:1,engravedText:2,illuminatedCaps:3,titlingCaps:4,tallCaps:5},characterShape:{code:20,exclusive:!0,traditionalCharacters:0,simplifiedCharacters:1,JIS1978Characters:2,JIS1983Characters:3,JIS1990Characters:4,traditionalAltOne:5,traditionalAltTwo:6,traditionalAltThree:7,traditionalAltFour:8,traditionalAltFive:9,expertCharacters:10,JIS2004Characters:11,hojoCharacters:12,NLCCharacters:13,traditionalNamesCharacters:14},numberCase:{code:21,exclusive:!0,lowerCaseNumbers:0,upperCaseNumbers:1},textSpacing:{code:22,exclusive:!0,proportionalText:0,monospacedText:1,halfWidthText:2,thirdWidthText:3,quarterWidthText:4,altProportionalText:5,altHalfWidthText:6},transliteration:{code:23,exclusive:!0,noTransliteration:0},annotation:{code:24,exclusive:!0,noAnnotation:0,boxAnnotation:1,roundedBoxAnnotation:2,circleAnnotation:3,invertedCircleAnnotation:4,parenthesisAnnotation:5,periodAnnotation:6,romanNumeralAnnotation:7,diamondAnnotation:8,invertedBoxAnnotation:9,invertedRoundedBoxAnnotation:10},kanaSpacing:{code:25,exclusive:!0,fullWidthKana:0,proportionalKana:1},ideographicSpacing:{code:26,exclusive:!0,fullWidthIdeographs:0,proportionalIdeographs:1,halfWidthIdeographs:2},unicodeDecomposition:{code:27,exclusive:!1,canonicalComposition:0,compatibilityComposition:2,transcodingComposition:4},rubyKana:{code:28,exclusive:!1,rubyKana:2},CJKSymbolAlternatives:{code:29,exclusive:!0,noCJKSymbolAlternatives:0,CJKSymbolAltOne:1,CJKSymbolAltTwo:2,CJKSymbolAltThree:3,CJKSymbolAltFour:4,CJKSymbolAltFive:5},ideographicAlternatives:{code:30,exclusive:!0,noIdeographicAlternatives:0,ideographicAltOne:1,ideographicAltTwo:2,ideographicAltThree:3,ideographicAltFour:4,ideographicAltFive:5},CJKVerticalRomanPlacement:{code:31,exclusive:!0,CJKVerticalRomanCentered:0,CJKVerticalRomanHBaseline:1},italicCJKRoman:{code:32,exclusive:!1,CJKItalicRoman:2},caseSensitiveLayout:{code:33,exclusive:!1,caseSensitiveLayout:0,caseSensitiveSpacing:2},alternateKana:{code:34,exclusive:!1,alternateHorizKana:0,alternateVertKana:2},stylisticAlternatives:{code:35,exclusive:!1,noStylisticAlternates:0,stylisticAltOne:2,stylisticAltTwo:4,stylisticAltThree:6,stylisticAltFour:8,stylisticAltFive:10,stylisticAltSix:12,stylisticAltSeven:14,stylisticAltEight:16,stylisticAltNine:18,stylisticAltTen:20,stylisticAltEleven:22,stylisticAltTwelve:24,stylisticAltThirteen:26,stylisticAltFourteen:28,stylisticAltFifteen:30,stylisticAltSixteen:32,stylisticAltSeventeen:34,stylisticAltEighteen:36,stylisticAltNineteen:38,stylisticAltTwenty:40},contextualAlternates:{code:36,exclusive:!1,contextualAlternates:0,swashAlternates:2,contextualSwashAlternates:4},lowerCase:{code:37,exclusive:!0,defaultLowerCase:0,lowerCaseSmallCaps:1,lowerCasePetiteCaps:2},upperCase:{code:38,exclusive:!0,defaultUpperCase:0,upperCaseSmallCaps:1,upperCasePetiteCaps:2},languageTag:{code:39,exclusive:!0},CJKRomanSpacing:{code:103,exclusive:!0,halfWidthCJKRoman:0,proportionalCJKRoman:1,defaultCJKRoman:2,fullWidthCJKRoman:3}},j=(t,e)=>[Ys[t].code,Ys[t][e]],lr={rlig:j("ligatures","requiredLigatures"),clig:j("ligatures","contextualLigatures"),dlig:j("ligatures","rareLigatures"),hlig:j("ligatures","historicalLigatures"),liga:j("ligatures","commonLigatures"),hist:j("ligatures","historicalLigatures"),smcp:j("lowerCase","lowerCaseSmallCaps"),pcap:j("lowerCase","lowerCasePetiteCaps"),frac:j("fractions","diagonalFractions"),dnom:j("fractions","diagonalFractions"),numr:j("fractions","diagonalFractions"),afrc:j("fractions","verticalFractions"),case:j("caseSensitiveLayout","caseSensitiveLayout"),ccmp:j("unicodeDecomposition","canonicalComposition"),cpct:j("CJKVerticalRomanPlacement","CJKVerticalRomanCentered"),valt:j("CJKVerticalRomanPlacement","CJKVerticalRomanCentered"),swsh:j("contextualAlternates","swashAlternates"),cswh:j("contextualAlternates","contextualSwashAlternates"),curs:j("cursiveConnection","cursive"),c2pc:j("upperCase","upperCasePetiteCaps"),c2sc:j("upperCase","upperCaseSmallCaps"),init:j("smartSwash","wordInitialSwashes"),fin2:j("smartSwash","wordFinalSwashes"),medi:j("smartSwash","nonFinalSwashes"),med2:j("smartSwash","nonFinalSwashes"),fin3:j("smartSwash","wordFinalSwashes"),fina:j("smartSwash","wordFinalSwashes"),pkna:j("kanaSpacing","proportionalKana"),half:j("textSpacing","halfWidthText"),halt:j("textSpacing","altHalfWidthText"),hkna:j("alternateKana","alternateHorizKana"),vkna:j("alternateKana","alternateVertKana"),ital:j("italicCJKRoman","CJKItalicRoman"),lnum:j("numberCase","upperCaseNumbers"),onum:j("numberCase","lowerCaseNumbers"),mgrk:j("mathematicalExtras","mathematicalGreek"),calt:j("contextualAlternates","contextualAlternates"),vrt2:j("verticalSubstitution","substituteVerticalForms"),vert:j("verticalSubstitution","substituteVerticalForms"),tnum:j("numberSpacing","monospacedNumbers"),pnum:j("numberSpacing","proportionalNumbers"),sups:j("verticalPosition","superiors"),subs:j("verticalPosition","inferiors"),ordn:j("verticalPosition","ordinals"),pwid:j("textSpacing","proportionalText"),hwid:j("textSpacing","halfWidthText"),qwid:j("textSpacing","quarterWidthText"),twid:j("textSpacing","thirdWidthText"),fwid:j("textSpacing","proportionalText"),palt:j("textSpacing","altProportionalText"),trad:j("characterShape","traditionalCharacters"),smpl:j("characterShape","simplifiedCharacters"),jp78:j("characterShape","JIS1978Characters"),jp83:j("characterShape","JIS1983Characters"),jp90:j("characterShape","JIS1990Characters"),jp04:j("characterShape","JIS2004Characters"),expt:j("characterShape","expertCharacters"),hojo:j("characterShape","hojoCharacters"),nlck:j("characterShape","NLCCharacters"),tnam:j("characterShape","traditionalNamesCharacters"),ruby:j("rubyKana","rubyKana"),titl:j("styleOptions","titlingCaps"),zero:j("typographicExtras","slashedZero"),ss01:j("stylisticAlternatives","stylisticAltOne"),ss02:j("stylisticAlternatives","stylisticAltTwo"),ss03:j("stylisticAlternatives","stylisticAltThree"),ss04:j("stylisticAlternatives","stylisticAltFour"),ss05:j("stylisticAlternatives","stylisticAltFive"),ss06:j("stylisticAlternatives","stylisticAltSix"),ss07:j("stylisticAlternatives","stylisticAltSeven"),ss08:j("stylisticAlternatives","stylisticAltEight"),ss09:j("stylisticAlternatives","stylisticAltNine"),ss10:j("stylisticAlternatives","stylisticAltTen"),ss11:j("stylisticAlternatives","stylisticAltEleven"),ss12:j("stylisticAlternatives","stylisticAltTwelve"),ss13:j("stylisticAlternatives","stylisticAltThirteen"),ss14:j("stylisticAlternatives","stylisticAltFourteen"),ss15:j("stylisticAlternatives","stylisticAltFifteen"),ss16:j("stylisticAlternatives","stylisticAltSixteen"),ss17:j("stylisticAlternatives","stylisticAltSeventeen"),ss18:j("stylisticAlternatives","stylisticAltEighteen"),ss19:j("stylisticAlternatives","stylisticAltNineteen"),ss20:j("stylisticAlternatives","stylisticAltTwenty")};for(let t=1;t<=99;t++)lr[`cv${`00${t}`.slice(-2)}`]=[Ys.characterAlternatives.code,t];let Hs={};for(let t in lr){let e=lr[t];Hs[e[0]]==null&&(Hs[e[0]]={}),Hs[e[0]][e[1]]=t}function Fv(t){let e={};for(let s in t){let a;(a=lr[s])&&(e[a[0]]==null&&(e[a[0]]={}),e[a[0]][a[1]]=t[s])}return e}function Ff(t){let[e,s]=t;if(isNaN(e))var a=Ys[e]&&Ys[e].code;else var a=e;if(isNaN(s))var i=Ys[e]&&Ys[e][s];else var i=s;return[a,i]}function Tv(t){let e={};if(Array.isArray(t))for(let s=0;s<t.length;s++){let a,i=Ff(t[s]);(a=Hs[i[0]]&&Hs[i[0]][i[1]])&&(e[a]=!0)}else if(typeof t=="object")for(let s in t){let a=t[s];for(let i in a){let r,n=Ff([s,i]);a[i]&&(r=Hs[n[0]]&&Hs[n[0]][n[1]])&&(e[r]=!0)}}return Object.keys(e)}class $a{lookup(e){switch(this.table.version){case 0:return this.table.values.getItem(e);case 2:case 4:{let i=0,r=this.table.binarySearchHeader.nUnits-1;for(;i<=r;){var s=i+r>>1,a=this.table.segments[s];if(a.firstGlyph===65535)return null;if(e<a.firstGlyph)r=s-1;else if(e>a.lastGlyph)i=s+1;else return this.table.version===2?a.value:a.values[e-a.firstGlyph]}return null}case 6:{let i=0,r=this.table.binarySearchHeader.nUnits-1;for(;i<=r;){var s=i+r>>1,a=this.table.segments[s];if(a.glyph===65535)return null;if(e<a.glyph)r=s-1;else if(e>a.glyph)i=s+1;else return a.value}return null}case 8:return this.table.values[e-this.table.firstGlyph];default:throw new Error(`Unknown lookup table format: ${this.table.version}`)}}glyphsForValue(e){let s=[];switch(this.table.version){case 2:case 4:for(let a of this.table.segments)if(this.table.version===2&&a.value===e)s.push(...ba(a.firstGlyph,a.lastGlyph+1));else for(let i=0;i<a.values.length;i++)a.values[i]===e&&s.push(a.firstGlyph+i);break;case 6:for(let a of this.table.segments)a.value===e&&s.push(a.glyph);break;case 8:for(let a=0;a<this.table.values.length;a++)this.table.values[a]===e&&s.push(this.table.firstGlyph+a);break;default:throw new Error(`Unknown lookup table format: ${this.table.version}`)}return s}constructor(e){this.table=e}}mt([yt],$a.prototype,"glyphsForValue",null);const Pv=0,Tf=0,Pf=1,Ef=2,Ev=16384;class Ov{process(e,s,a){let i=Pv,r=s?e.length-1:0,n=s?-1:1;for(;n===1&&r<=e.length||n===-1&&r>=-1;){let o=null,l=Pf,c=!0;r===e.length||r===-1?l=Tf:(o=e[r],o.id===65535?l=Ef:(l=this.lookupTable.lookup(o.id),l==null&&(l=Pf)));let h=this.stateTable.stateArray.getItem(i)[l],d=this.stateTable.entryTable.getItem(h);l!==Tf&&l!==Ef&&(a(o,d,r),c=!(d.flags&Ev)),i=d.newState,c&&(r+=n)}return e}traverse(e,s=0,a=new Set){if(a.has(s))return;a.add(s);let{nClasses:i,stateArray:r,entryTable:n}=this.stateTable,o=r.getItem(s);for(let l=4;l<i;l++){let c=o[l],f=n.getItem(c);for(let h of this.lookupTable.glyphsForValue(l))e.enter&&e.enter(h,f),f.newState!==0&&this.traverse(e,f.newState,a),e.exit&&e.exit(h,f)}}constructor(e){this.stateTable=e,this.lookupTable=new $a(e.classTable)}}const Mv=32768,Rv=8192,zv=15,Of=32768,Lv=32768,Dv=8192,Bv=2147483648,Uv=1073741824,Zv=1073741823,Mf=4194304,Gv=2048,Wv=1024,Yv=992,Hv=31;class Rf{process(e,s={}){for(let i of this.morx.chains){let r=i.defaultFlags;for(let n of i.features){let o;(o=s[n.featureType])&&(o[n.featureSetting]?(r&=n.disableFlags,r|=n.enableFlags):o[n.featureSetting]===!1&&(r|=~n.disableFlags,r&=~n.enableFlags))}for(let n of i.subtables)n.subFeatureFlags&r&&this.processSubtable(n,e)}let a=e.length-1;for(;a>=0;)e[a].id===65535&&e.splice(a,1),a--;return e}processSubtable(e,s){if(this.subtable=e,this.glyphs=s,this.subtable.type===4){this.processNoncontextualSubstitutions(this.subtable,this.glyphs);return}this.ligatureStack=[],this.markedGlyph=null,this.firstGlyph=null,this.lastGlyph=null,this.markedIndex=null;let a=this.getStateMachine(e),i=this.getProcessor(),r=!!(this.subtable.coverage&Mf);return a.process(this.glyphs,r,i)}getStateMachine(e){return new Ov(e.table.stateTable)}getProcessor(){switch(this.subtable.type){case 0:return this.processIndicRearragement;case 1:return this.processContextualSubstitution;case 2:return this.processLigature;case 4:return this.processNoncontextualSubstitutions;case 5:return this.processGlyphInsertion;default:throw new Error(`Invalid morx subtable type: ${this.subtable.type}`)}}processIndicRearragement(e,s,a){s.flags&Mv&&(this.firstGlyph=a),s.flags&Rv&&(this.lastGlyph=a),jv(this.glyphs,s.flags&zv,this.firstGlyph,this.lastGlyph)}processContextualSubstitution(e,s,a){let i=this.subtable.table.substitutionTable.items;if(s.markIndex!==65535){let n=i.getItem(s.markIndex),o=new $a(n);e=this.glyphs[this.markedGlyph];var r=o.lookup(e.id);r&&(this.glyphs[this.markedGlyph]=this.font.getGlyph(r,e.codePoints))}if(s.currentIndex!==65535){let n=i.getItem(s.currentIndex),o=new $a(n);e=this.glyphs[a];var r=o.lookup(e.id);r&&(this.glyphs[a]=this.font.getGlyph(r,e.codePoints))}s.flags&Of&&(this.markedGlyph=a)}processLigature(e,s,a){if(s.flags&Lv&&this.ligatureStack.push(a),s.flags&Dv){let i=this.subtable.table.ligatureActions,r=this.subtable.table.components,n=this.subtable.table.ligatureList,o=s.action,l=!1,c=0,f=[],h=[];for(;!l;){let d=this.ligatureStack.pop();f.unshift(...this.glyphs[d].codePoints);let m=i.getItem(o++);l=!!(m&Bv);let b=!!(m&Uv),V=(m&Zv)<<2>>2;V+=this.glyphs[d].id;let M=r.getItem(V);if(c+=M,l||b){let E=n.getItem(c);this.glyphs[d]=this.font.getGlyph(E,f),h.push(d),c=0,f=[]}else this.glyphs[d]=this.font.getGlyph(65535)}this.ligatureStack.push(...h)}}processNoncontextualSubstitutions(e,s,a){let i=new $a(e.table.lookupTable);for(a=0;a<s.length;a++){let r=s[a];if(r.id!==65535){let n=i.lookup(r.id);n&&(s[a]=this.font.getGlyph(n,r.codePoints))}}}_insertGlyphs(e,s,a,i){let r=[];for(;a--;){let n=this.subtable.table.insertionActions.getItem(s++);r.push(this.font.getGlyph(n))}i||e++,this.glyphs.splice(e,0,...r)}processGlyphInsertion(e,s,a){if(s.flags&Of&&(this.markedIndex=a),s.markedInsertIndex!==65535){let i=(s.flags&Hv)>>>5,r=!!(s.flags&Wv);this._insertGlyphs(this.markedIndex,s.markedInsertIndex,i,r)}if(s.currentInsertIndex!==65535){let i=(s.flags&Yv)>>>5,r=!!(s.flags&Gv);this._insertGlyphs(a,s.currentInsertIndex,i,r)}}getSupportedFeatures(){let e=[];for(let s of this.morx.chains)for(let a of s.features)e.push([a.featureType,a.featureSetting]);return e}generateInputs(e){return this.inputCache||this.generateInputCache(),this.inputCache[e]||[]}generateInputCache(){this.inputCache={};for(let e of this.morx.chains){let s=e.defaultFlags;for(let a of e.subtables)a.subFeatureFlags&s&&this.generateInputsForSubtable(a)}}generateInputsForSubtable(e){if(e.type!==2)return;if(!!(e.coverage&Mf))throw new Error("Reverse subtable, not supported.");this.subtable=e,this.ligatureStack=[];let a=this.getStateMachine(e),i=this.getProcessor(),r=[],n=[];this.glyphs=[],a.traverse({enter:(o,l)=>{let c=this.glyphs;n.push({glyphs:c.slice(),ligatureStack:this.ligatureStack.slice()});let f=this.font.getGlyph(o);r.push(f),c.push(r[r.length-1]),i(c[c.length-1],l,c.length-1);let h=0,d=0;for(let m=0;m<c.length&&h<=1;m++)c[m].id!==65535&&(h++,d=c[m].id);if(h===1){let m=r.map(V=>V.id),b=this.inputCache[d];b?b.push(m):this.inputCache[d]=[m]}},exit:()=>{({glyphs:this.glyphs,ligatureStack:this.ligatureStack}=n.pop()),r.pop()}})}constructor(e){this.processIndicRearragement=this.processIndicRearragement.bind(this),this.processContextualSubstitution=this.processContextualSubstitution.bind(this),this.processLigature=this.processLigature.bind(this),this.processNoncontextualSubstitutions=this.processNoncontextualSubstitutions.bind(this),this.processGlyphInsertion=this.processGlyphInsertion.bind(this),this.font=e,this.morx=e.morx,this.inputCache=null}}mt([yt],Rf.prototype,"getStateMachine",null);function kt(t,e,s,a=!1,i=!1){let r=t.splice(s[0]-(s[1]-1),s[1]);i&&r.reverse();let n=t.splice(e[0],e[1],...r);return a&&n.reverse(),t.splice(s[0]-(e[1]-1),0,...n),t}function jv(t,e,s,a){switch(e){case 0:return t;case 1:return kt(t,[s,1],[a,0]);case 2:return kt(t,[s,0],[a,1]);case 3:return kt(t,[s,1],[a,1]);case 4:return kt(t,[s,2],[a,0]);case 5:return kt(t,[s,2],[a,0],!0,!1);case 6:return kt(t,[s,0],[a,2]);case 7:return kt(t,[s,0],[a,2],!1,!0);case 8:return kt(t,[s,1],[a,2]);case 9:return kt(t,[s,1],[a,2],!1,!0);case 10:return kt(t,[s,2],[a,1]);case 11:return kt(t,[s,2],[a,1],!0,!1);case 12:return kt(t,[s,2],[a,2]);case 13:return kt(t,[s,2],[a,2],!0,!1);case 14:return kt(t,[s,2],[a,2],!1,!0);case 15:return kt(t,[s,2],[a,2],!0,!0);default:throw new Error(`Unknown verb: ${e}`)}}class Kv{substitute(e){e.direction==="rtl"&&e.glyphs.reverse(),this.morxProcessor.process(e.glyphs,Fv(e.features))}getAvailableFeatures(e,s){return Tv(this.morxProcessor.getSupportedFeatures())}stringsForGlyph(e){let s=this.morxProcessor.generateInputs(e),a=new Set;for(let i of s)this._addStrings(i,0,a,"");return a}_addStrings(e,s,a,i){let r=this.font._cmapProcessor.codePointsForGlyph(e[s]);for(let n of r){let o=i+String.fromCodePoint(n);s<e.length-1?this._addStrings(e,s+1,a,o):a.add(o)}}constructor(e){this.font=e,this.morxProcessor=new Rf(e),this.fallbackPosition=!1}}class Xv{_addFeatures(e,s){let a=this.stages.length-1,i=this.stages[a];for(let r of e)this.allFeatures[r]==null&&(i.push(r),this.allFeatures[r]=a,s&&(this.globalFeatures[r]=!0))}add(e,s=!0){if(this.stages.length===0&&this.stages.push([]),typeof e=="string"&&(e=[e]),Array.isArray(e))this._addFeatures(e,s);else if(typeof e=="object")this._addFeatures(e.global||[],!0),this._addFeatures(e.local||[],!1);else throw new Error("Unsupported argument to ShapingPlan#add")}addStage(e,s){typeof e=="function"?this.stages.push(e,[]):(this.stages.push([]),this.add(e,s))}setFeatureOverrides(e){if(Array.isArray(e))this.add(e);else if(typeof e=="object"){for(let s in e)if(e[s])this.add(s);else if(this.allFeatures[s]!=null){let a=this.stages[this.allFeatures[s]];a.splice(a.indexOf(s),1),delete this.allFeatures[s],delete this.globalFeatures[s]}}}assignGlobalFeatures(e){for(let s of e)for(let a in this.globalFeatures)s.features[a]=!0}process(e,s,a){for(let i of this.stages)typeof i=="function"?a||i(this.font,s,this):i.length>0&&e.applyFeatures(i,s,a)}constructor(e,s,a){this.font=e,this.script=s,this.direction=a,this.stages=[],this.globalFeatures={},this.allFeatures={}}}const qv=["rvrn"],Jv=["ccmp","locl","rlig","mark","mkmk"],Qv=["frac","numr","dnom"],$v=["calt","clig","liga","rclt","curs","kern"],e3={ltr:["ltra","ltrm"],rtl:["rtla","rtlm"]};class Ts{static plan(e,s,a){this.planPreprocessing(e),this.planFeatures(e),this.planPostprocessing(e,a),e.assignGlobalFeatures(s),this.assignFeatures(e,s)}static planPreprocessing(e){e.add({global:[...qv,...e3[e.direction]],local:Qv})}static planFeatures(e){}static planPostprocessing(e,s){e.add([...Jv,...$v]),e.setFeatureOverrides(s)}static assignFeatures(e,s){for(let a=0;a<s.length;a++){let i=s[a];if(i.codePoints[0]===8260){let r=a,n=a+1;for(;r>0&&Nc(s[r-1].codePoints[0]);)s[r-1].features.numr=!0,s[r-1].features.frac=!0,r--;for(;n<s.length&&Nc(s[n].codePoints[0]);)s[n].features.dnom=!0,s[n].features.frac=!0,n++;i.features.frac=!0,a=n-1}}}}St(Ts,"zeroMarkWidths","AFTER_GPOS");const t3=new Yi($n("APABAAAAAAAAOAAAAf0BAv7tmi1MxDAUx7vtvjhAgcDgkEgEAnmXEBIMCYaEcygEiqBQ4FAkCE4ikUgMiiBJSAgSiUQSDMn9L9eSl6bddddug9t7yS/trevre+3r27pcNxZiG+yCfdCVv/9LeQxOwRm4AJegD27ALbgD9+ABPJF+z+BN/h7yDj5k/VOWX6SdmU5+wLWknggxDxaS8u0qiiX4uiz9XamQ3wzDMAzDMAzDMAzDVI/h959V/v7BMAzDMAzDMLlyNTNiMSdewVxbiA44B4/guz1qW58VYlMI0WsJ0W+N6kXw0spvPtdwhtkwnGM6uLaV4Xyzg3v3PM9DPfQ/sOg4xPWjipy31P8LTqbU304c/cLCUmWJLNB2Uz2U1KTeRKNmKHVMfbJC+/0loTZRH/W5cvEvBJPMbREkWt3FD1NcqXZBSpuE2Ad0PBehPtNrPtIEdYP+hiRt/V1jIiE69X4NT/uVZI3PUHE9bm5M7ePGdZWy951v7Nn6j8v1WWKP3mt6ttnsigx6VN7Vc0VomSSGqW2mGNP1muZPl7LfjNUaKNFtDGVf2fvE9O7VlBS5j333c5p/eeoOqcs1R/hIqDWLJ7TTlksirVT1SI7l8k4Yp+g3jafGcrU1RM6l9th80XOpnlN97bDNY4i4s61B0Si/ipa0uHMl6zqEjlFfCZm/TM8KmzQDjmuTAQ==")),zf=["isol","fina","fin2","fin3","medi","med2","init"],so={Non_Joining:0,Transparent:6},We="isol",Ps="fina",ao="fin2",s3="fin3",cr="medi",fr="med2",ur="init",Se=null,a3=[[[Se,Se,0],[Se,We,2],[Se,We,1],[Se,We,2],[Se,We,1],[Se,We,6]],[[Se,Se,0],[Se,We,2],[Se,We,1],[Se,We,2],[Se,ao,5],[Se,We,6]],[[Se,Se,0],[Se,We,2],[ur,Ps,1],[ur,Ps,3],[ur,Ps,4],[ur,Ps,6]],[[Se,Se,0],[Se,We,2],[cr,Ps,1],[cr,Ps,3],[cr,Ps,4],[cr,Ps,6]],[[Se,Se,0],[Se,We,2],[fr,We,1],[fr,We,2],[fr,ao,5],[fr,We,6]],[[Se,Se,0],[Se,We,2],[We,We,1],[We,We,2],[We,ao,5],[We,We,6]],[[Se,Se,0],[Se,We,2],[Se,We,1],[Se,We,2],[Se,s3,5],[Se,We,6]]];class Es extends Ts{static planFeatures(e){e.add(["ccmp","locl"]);for(let s=0;s<zf.length;s++){let a=zf[s];e.addStage(a,!1)}e.addStage("mset")}static assignFeatures(e,s){super.assignFeatures(e,s);let a=-1,i=0,r=[];for(let o=0;o<s.length;o++){let l,c;var n=s[o];let f=i3(n.codePoints[0]);if(f===so.Transparent){r[o]=Se;continue}[c,l,i]=a3[i][f],c!==Se&&a!==-1&&(r[a]=c),r[o]=l,a=o}for(let o=0;o<s.length;o++){let l;var n=s[o];(l=r[o])&&(n.features[l]=!0)}}}function i3(t){let e=t3.get(t);if(e)return e-1;let s=ji(t);return s==="Mn"||s==="Me"||s==="Cf"?so.Transparent:so.Non_Joining}class r3{reset(e={},s=0){this.options=e,this.flags=e.flags||{},this.markAttachmentType=e.markAttachmentType||0,this.index=s}get cur(){return this.glyphs[this.index]||null}shouldIgnore(e){return this.flags.ignoreMarks&&e.isMark||this.flags.ignoreBaseGlyphs&&e.isBase||this.flags.ignoreLigatures&&e.isLigature||this.markAttachmentType&&e.isMark&&e.markAttachmentType!==this.markAttachmentType}move(e){for(this.index+=e;0<=this.index&&this.index<this.glyphs.length&&this.shouldIgnore(this.glyphs[this.index]);)this.index+=e;return 0>this.index||this.index>=this.glyphs.length?null:this.glyphs[this.index]}next(){return this.move(1)}prev(){return this.move(-1)}peek(e=1){let s=this.index,a=this.increment(e);return this.index=s,a}peekIndex(e=1){let s=this.index;this.increment(e);let a=this.index;return this.index=s,a}increment(e=1){let s=e<0?-1:1;for(e=Math.abs(e);e--;)this.move(s);return this.glyphs[this.index]}constructor(e,s){this.glyphs=e,this.reset(s)}}const n3=["DFLT","dflt","latn"];class hr{findScript(e){if(this.table.scriptList==null)return null;Array.isArray(e)||(e=[e]);for(let s of e)for(let a of this.table.scriptList)if(a.tag===s)return a;return null}selectScript(e,s,a){let i=!1,r;if(!this.script||e!==this.scriptTag){if(r=this.findScript(e),r||(r=this.findScript(n3)),!r)return this.scriptTag;this.scriptTag=r.tag,this.script=r.script,this.language=null,this.languageTag=null,i=!0}if((!a||a!==this.direction)&&(this.direction=a||_f(e)),s&&s.length<4&&(s+=" ".repeat(4-s.length)),!s||s!==this.languageTag){this.language=null;for(let n of this.script.langSysRecords)if(n.tag===s){this.language=n.langSys,this.languageTag=n.tag;break}this.language||(this.language=this.script.defaultLangSys,this.languageTag=null),i=!0}if(i&&(this.features={},this.language))for(let n of this.language.featureIndexes){let o=this.table.featureList[n],l=this.substituteFeatureForVariations(n);this.features[o.tag]=l||o.feature}return this.scriptTag}lookupsForFeatures(e=[],s){let a=[];for(let i of e){let r=this.features[i];if(r)for(let n of r.lookupListIndexes)s&&s.indexOf(n)!==-1||a.push({feature:i,index:n,lookup:this.table.lookupList.get(n)})}return a.sort((i,r)=>i.index-r.index),a}substituteFeatureForVariations(e){if(this.variationsIndex===-1)return null;let a=this.table.featureVariations.featureVariationRecords[this.variationsIndex].featureTableSubstitution.substitutions;for(let i of a)if(i.featureIndex===e)return i.alternateFeatureTable;return null}findVariationsIndex(e){let s=this.table.featureVariations;if(!s)return-1;let a=s.featureVariationRecords;for(let i=0;i<a.length;i++){let r=a[i].conditionSet.conditionTable;if(this.variationConditionsMatch(r,e))return i}return-1}variationConditionsMatch(e,s){return e.every(a=>{let i=a.axisIndex<s.length?s[a.axisIndex]:0;return a.filterRangeMinValue<=i&&i<=a.filterRangeMaxValue})}applyFeatures(e,s,a){let i=this.lookupsForFeatures(e);this.applyLookups(i,s,a)}applyLookups(e,s,a){this.glyphs=s,this.positions=a,this.glyphIterator=new r3(s);for(let{feature:i,lookup:r}of e)for(this.currentFeature=i,this.glyphIterator.reset(r.flags);this.glyphIterator.index<s.length;){if(!(i in this.glyphIterator.cur.features)){this.glyphIterator.next();continue}for(let n of r.subTables)if(this.applyLookup(r.lookupType,n))break;this.glyphIterator.next()}}applyLookup(e,s){throw new Error("applyLookup must be implemented by subclasses")}applyLookupList(e){let s=this.glyphIterator.options,a=this.glyphIterator.index;for(let i of e){this.glyphIterator.reset(s,a),this.glyphIterator.increment(i.sequenceIndex);let r=this.table.lookupList.get(i.lookupListIndex);this.glyphIterator.reset(r.flags,this.glyphIterator.index);for(let n of r.subTables)if(this.applyLookup(r.lookupType,n))break}return this.glyphIterator.reset(s,a),!0}coverageIndex(e,s){switch(s==null&&(s=this.glyphIterator.cur.id),e.version){case 1:return e.glyphs.indexOf(s);case 2:for(let a of e.rangeRecords)if(a.start<=s&&s<=a.end)return a.startCoverageIndex+s-a.start;break}return-1}match(e,s,a,i){let r=this.glyphIterator.index,n=this.glyphIterator.increment(e),o=0;for(;o<s.length&&n&&a(s[o],n);)i&&i.push(this.glyphIterator.index),o++,n=this.glyphIterator.next();return this.glyphIterator.index=r,o<s.length?!1:i||!0}sequenceMatches(e,s){return this.match(e,s,(a,i)=>a===i.id)}sequenceMatchIndices(e,s){return this.match(e,s,(a,i)=>this.currentFeature in i.features?a===i.id:!1,[])}coverageSequenceMatches(e,s){return this.match(e,s,(a,i)=>this.coverageIndex(a,i.id)>=0)}getClassID(e,s){switch(s.version){case 1:let a=e-s.startGlyph;if(a>=0&&a<s.classValueArray.length)return s.classValueArray[a];break;case 2:for(let i of s.classRangeRecord)if(i.start<=e&&e<=i.end)return i.class;break}return 0}classSequenceMatches(e,s,a){return this.match(e,s,(i,r)=>i===this.getClassID(r.id,a))}applyContext(e){let s,a;switch(e.version){case 1:if(s=this.coverageIndex(e.coverage),s===-1)return!1;a=e.ruleSets[s];for(let i of a)if(this.sequenceMatches(1,i.input))return this.applyLookupList(i.lookupRecords);break;case 2:if(this.coverageIndex(e.coverage)===-1||(s=this.getClassID(this.glyphIterator.cur.id,e.classDef),s===-1))return!1;a=e.classSet[s];for(let i of a)if(this.classSequenceMatches(1,i.classes,e.classDef))return this.applyLookupList(i.lookupRecords);break;case 3:if(this.coverageSequenceMatches(0,e.coverages))return this.applyLookupList(e.lookupRecords);break}return!1}applyChainingContext(e){let s;switch(e.version){case 1:if(s=this.coverageIndex(e.coverage),s===-1)return!1;let a=e.chainRuleSets[s];for(let r of a)if(this.sequenceMatches(-r.backtrack.length,r.backtrack)&&this.sequenceMatches(1,r.input)&&this.sequenceMatches(1+r.input.length,r.lookahead))return this.applyLookupList(r.lookupRecords);break;case 2:if(this.coverageIndex(e.coverage)===-1)return!1;s=this.getClassID(this.glyphIterator.cur.id,e.inputClassDef);let i=e.chainClassSet[s];if(!i)return!1;for(let r of i)if(this.classSequenceMatches(-r.backtrack.length,r.backtrack,e.backtrackClassDef)&&this.classSequenceMatches(1,r.input,e.inputClassDef)&&this.classSequenceMatches(1+r.input.length,r.lookahead,e.lookaheadClassDef))return this.applyLookupList(r.lookupRecords);break;case 3:if(this.coverageSequenceMatches(-e.backtrackGlyphCount,e.backtrackCoverage)&&this.coverageSequenceMatches(0,e.inputCoverage)&&this.coverageSequenceMatches(e.inputGlyphCount,e.lookaheadCoverage))return this.applyLookupList(e.lookupRecords);break}return!1}constructor(e,s){this.font=e,this.table=s,this.script=null,this.scriptTag=null,this.language=null,this.languageTag=null,this.features={},this.lookups={},this.variationsIndex=e._variationProcessor?this.findVariationsIndex(e._variationProcessor.normalizedCoords):-1,this.selectScript(),this.glyphs=[],this.positions=[],this.ligatureID=1,this.currentFeature=null}}class Zt{get id(){return this._id}set id(e){this._id=e,this.substituted=!0;let s=this._font.GDEF;if(s&&s.glyphClassDef){let a=hr.prototype.getClassID(e,s.glyphClassDef);this.isBase=a===1,this.isLigature=a===2,this.isMark=a===3,this.markAttachmentType=s.markAttachClassDef?hr.prototype.getClassID(e,s.markAttachClassDef):0}else this.isMark=this.codePoints.length>0&&this.codePoints.every(Ac),this.isBase=!this.isMark,this.isLigature=this.codePoints.length>1,this.markAttachmentType=0}copy(){return new Zt(this._font,this.id,this.codePoints,this.features)}constructor(e,s,a=[],i){if(this._font=e,this.codePoints=a,this.id=s,this.features={},Array.isArray(i))for(let r=0;r<i.length;r++){let n=i[r];this.features[n]=!0}else typeof i=="object"&&Object.assign(this.features,i);this.ligatureID=null,this.ligatureComponent=null,this.isLigated=!1,this.cursiveAttachment=null,this.markAttachment=null,this.shaperInfo=null,this.substituted=!1,this.isMultiplied=!1}}class Lf extends Ts{static planFeatures(e){e.add(["ljmo","vjmo","tjmo"],!1)}static assignFeatures(e,s){let a=0,i=0;for(;i<s.length;){let r,o=s[i].codePoints[0],l=br(o);switch([r,a]=N3[a][l],r){case fs:e.font.hasGlyphForCodePoint(o)||(i=Zf(s,i,e.font));break;case ro:i=A3(s,i,e.font);break;case no:V3(s,i,e.font);break;case oo:i=I3(s,i,e.font);break}i++}}}St(Lf,"zeroMarkWidths","NONE");const va=44032,Df=55204,o3=Df-va+1,dr=4352,gr=4449,js=4519,l3=19,pr=21,ei=28,c3=dr+l3-1,f3=gr+pr-1,u3=js+ei-1,Bf=9676,h3=t=>4352<=t&&t<=4447||43360<=t&&t<=43388,d3=t=>4448<=t&&t<=4519||55216<=t&&t<=55238,g3=t=>4520<=t&&t<=4607||55243<=t&&t<=55291,p3=t=>12334<=t&&t<=12335,m3=t=>va<=t&&t<=Df,y3=t=>t-va<o3&&(t-va)%ei===0,b3=t=>dr<=t&&t<=c3,w3=t=>gr<=t&&t<=f3,v3=t=>1<=t&&t<=u3,x3=0,C3=1,mr=2,io=3,yr=4,Uf=5,k3=6;function br(t){return h3(t)?C3:d3(t)?mr:g3(t)?io:y3(t)?yr:m3(t)?Uf:p3(t)?k3:x3}const Vt=0,fs=1,ro=2,no=4,oo=5,N3=[[[Vt,0],[Vt,1],[Vt,0],[Vt,0],[fs,2],[fs,3],[oo,0]],[[Vt,0],[Vt,1],[ro,2],[Vt,0],[fs,2],[fs,3],[oo,0]],[[Vt,0],[Vt,1],[Vt,0],[ro,3],[fs,2],[fs,3],[no,0]],[[Vt,0],[Vt,1],[Vt,0],[Vt,0],[fs,2],[fs,3],[no,0]]];function ti(t,e,s){return new Zt(t,t.glyphForCodePoint(e).id,[e],s)}function Zf(t,e,s){let a=t[e],r=a.codePoints[0]-va,n=js+r%ei;r=r/ei|0;let o=dr+r/pr|0,l=gr+r%pr;if(!s.hasGlyphForCodePoint(o)||!s.hasGlyphForCodePoint(l)||n!==js&&!s.hasGlyphForCodePoint(n))return e;let c=ti(s,o,a.features);c.features.ljmo=!0;let f=ti(s,l,a.features);f.features.vjmo=!0;let h=[c,f];if(n>js){let d=ti(s,n,a.features);d.features.tjmo=!0,h.push(d)}return t.splice(e,1,...h),e+h.length-1}function A3(t,e,s){let a=t[e],i=t[e].codePoints[0],r=br(i),n=t[e-1].codePoints[0],o=br(n),l,c,f,h;if(o===yr&&r===io)l=n,h=a;else{r===mr?(c=t[e-1],f=a):(c=t[e-2],f=t[e-1],h=a);let m=c.codePoints[0],b=f.codePoints[0];b3(m)&&w3(b)&&(l=va+((m-dr)*pr+(b-gr))*ei)}let d=h&&h.codePoints[0]||js;if(l!=null&&(d===js||v3(d))){let m=l+(d-js);if(s.hasGlyphForCodePoint(m)){let b=o===mr?3:2;return t.splice(e-b+1,b,ti(s,m,a.features)),e-b+1}}return c&&(c.features.ljmo=!0),f&&(f.features.vjmo=!0),h&&(h.features.tjmo=!0),o===yr?(Zf(t,e-1,s),e+1):e}function S3(t){switch(br(t)){case yr:case Uf:return 1;case mr:return 2;case io:return 3}}function V3(t,e,s){let a=t[e],i=t[e].codePoints[0];if(s.glyphForCodePoint(i).advanceWidth===0)return;let r=t[e-1].codePoints[0],n=S3(r);return t.splice(e,1),t.splice(e-n,0,a)}function I3(t,e,s){let a=t[e],i=t[e].codePoints[0];if(s.hasGlyphForCodePoint(Bf)){let r=ti(s,Bf,a.features),n=s.glyphForCodePoint(i).advanceWidth===0?e:e+1;t.splice(n,0,r),e++}return e}var Gf={};Gf=JSON.parse('{"stateTable":[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,2,3,4,5,6,7,8,9,0,10,11,11,12,13,14,15,16,17],[0,0,0,18,19,20,21,22,23,0,24,0,0,25,26,0,0,27,0],[0,0,0,28,29,30,31,32,33,0,34,0,0,35,36,0,0,37,0],[0,0,0,38,5,7,7,8,9,0,10,0,0,0,13,0,0,16,0],[0,39,0,0,0,40,41,0,9,0,10,0,0,0,42,0,39,0,0],[0,0,0,0,43,44,44,8,9,0,0,0,0,12,43,0,0,0,0],[0,0,0,0,43,44,44,8,9,0,0,0,0,0,43,0,0,0,0],[0,0,0,45,46,47,48,49,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,50,0,0,51,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,52,0,0,0,0,0,0,0,0],[0,0,0,53,54,55,56,57,58,0,59,0,0,60,61,0,0,62,0],[0,0,0,4,5,7,7,8,9,0,10,0,0,0,13,0,0,16,0],[0,63,64,0,0,40,41,0,9,0,10,0,0,0,42,0,63,0,0],[0,2,3,4,5,6,7,8,9,0,10,11,11,12,13,0,2,16,0],[0,0,0,18,65,20,21,22,23,0,24,0,0,25,26,0,0,27,0],[0,0,0,0,66,67,67,8,9,0,10,0,0,0,68,0,0,0,0],[0,0,0,69,0,70,70,0,71,0,72,0,0,0,0,0,0,0,0],[0,0,0,73,19,74,74,22,23,0,24,0,0,0,26,0,0,27,0],[0,75,0,0,0,76,77,0,23,0,24,0,0,0,78,0,75,0,0],[0,0,0,0,79,80,80,22,23,0,0,0,0,25,79,0,0,0,0],[0,0,0,18,19,20,74,22,23,0,24,0,0,25,26,0,0,27,0],[0,0,0,81,82,83,84,85,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,86,0,0,87,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,88,0,0,0,0,0,0,0,0],[0,0,0,18,19,74,74,22,23,0,24,0,0,0,26,0,0,27,0],[0,89,90,0,0,76,77,0,23,0,24,0,0,0,78,0,89,0,0],[0,0,0,0,91,92,92,22,23,0,24,0,0,0,93,0,0,0,0],[0,0,0,94,29,95,31,32,33,0,34,0,0,0,36,0,0,37,0],[0,96,0,0,0,97,98,0,33,0,34,0,0,0,99,0,96,0,0],[0,0,0,0,100,101,101,32,33,0,0,0,0,35,100,0,0,0,0],[0,0,0,0,100,101,101,32,33,0,0,0,0,0,100,0,0,0,0],[0,0,0,102,103,104,105,106,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,107,0,0,108,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,109,0,0,0,0,0,0,0,0],[0,0,0,28,29,95,31,32,33,0,34,0,0,0,36,0,0,37,0],[0,110,111,0,0,97,98,0,33,0,34,0,0,0,99,0,110,0,0],[0,0,0,0,112,113,113,32,33,0,34,0,0,0,114,0,0,0,0],[0,0,0,0,5,7,7,8,9,0,10,0,0,0,13,0,0,16,0],[0,0,0,115,116,117,118,8,9,0,10,0,0,119,120,0,0,16,0],[0,0,0,0,0,121,121,0,9,0,10,0,0,0,42,0,0,0,0],[0,39,0,122,0,123,123,8,9,0,10,0,0,0,42,0,39,0,0],[0,124,64,0,0,0,0,0,0,0,0,0,0,0,0,0,124,0,0],[0,39,0,0,0,121,125,0,9,0,10,0,0,0,42,0,39,0,0],[0,0,0,0,0,126,126,8,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,46,47,48,49,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,47,47,49,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,127,127,49,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,128,127,127,49,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,129,130,131,132,133,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,50,0,0,0,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,134,0,0,0,0,0,0,0,0],[0,0,0,135,54,56,56,57,58,0,59,0,0,0,61,0,0,62,0],[0,136,0,0,0,137,138,0,58,0,59,0,0,0,139,0,136,0,0],[0,0,0,0,140,141,141,57,58,0,0,0,0,60,140,0,0,0,0],[0,0,0,0,140,141,141,57,58,0,0,0,0,0,140,0,0,0,0],[0,0,0,142,143,144,145,146,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,147,0,0,148,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,149,0,0,0,0,0,0,0,0],[0,0,0,53,54,56,56,57,58,0,59,0,0,0,61,0,0,62,0],[0,150,151,0,0,137,138,0,58,0,59,0,0,0,139,0,150,0,0],[0,0,0,0,152,153,153,57,58,0,59,0,0,0,154,0,0,0,0],[0,0,0,155,116,156,157,8,9,0,10,0,0,158,120,0,0,16,0],[0,0,0,0,0,121,121,0,9,0,10,0,0,0,0,0,0,0,0],[0,75,3,4,5,159,160,8,161,0,162,0,11,12,163,0,75,16,0],[0,0,0,0,0,40,164,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,165,44,44,8,9,0,0,0,0,0,165,0,0,0,0],[0,124,64,0,0,40,164,0,9,0,10,0,0,0,42,0,124,0,0],[0,0,0,0,0,70,70,0,71,0,72,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,71,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,166,0,0,167,0,72,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,168,0,0,0,0,0,0,0,0],[0,0,0,0,19,74,74,22,23,0,24,0,0,0,26,0,0,27,0],[0,0,0,0,79,80,80,22,23,0,0,0,0,0,79,0,0,0,0],[0,0,0,169,170,171,172,22,23,0,24,0,0,173,174,0,0,27,0],[0,0,0,0,0,175,175,0,23,0,24,0,0,0,78,0,0,0,0],[0,75,0,176,0,177,177,22,23,0,24,0,0,0,78,0,75,0,0],[0,178,90,0,0,0,0,0,0,0,0,0,0,0,0,0,178,0,0],[0,75,0,0,0,175,179,0,23,0,24,0,0,0,78,0,75,0,0],[0,0,0,0,0,180,180,22,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,82,83,84,85,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,83,83,85,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,181,181,85,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,182,181,181,85,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,183,184,185,186,187,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,86,0,0,0,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,188,0,0,0,0,0,0,0,0],[0,0,0,189,170,190,191,22,23,0,24,0,0,192,174,0,0,27,0],[0,0,0,0,0,175,175,0,23,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,76,193,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,194,80,80,22,23,0,0,0,0,0,194,0,0,0,0],[0,178,90,0,0,76,193,0,23,0,24,0,0,0,78,0,178,0,0],[0,0,0,0,29,95,31,32,33,0,34,0,0,0,36,0,0,37,0],[0,0,0,0,100,101,101,32,33,0,0,0,0,0,100,0,0,0,0],[0,0,0,195,196,197,198,32,33,0,34,0,0,199,200,0,0,37,0],[0,0,0,0,0,201,201,0,33,0,34,0,0,0,99,0,0,0,0],[0,96,0,202,0,203,203,32,33,0,34,0,0,0,99,0,96,0,0],[0,204,111,0,0,0,0,0,0,0,0,0,0,0,0,0,204,0,0],[0,96,0,0,0,201,205,0,33,0,34,0,0,0,99,0,96,0,0],[0,0,0,0,0,206,206,32,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,103,104,105,106,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,104,104,106,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,207,207,106,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,208,207,207,106,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,209,210,211,212,213,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,107,0,0,0,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,214,0,0,0,0,0,0,0,0],[0,0,0,215,196,216,217,32,33,0,34,0,0,218,200,0,0,37,0],[0,0,0,0,0,201,201,0,33,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,97,219,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,220,101,101,32,33,0,0,0,0,0,220,0,0,0,0],[0,204,111,0,0,97,219,0,33,0,34,0,0,0,99,0,204,0,0],[0,0,0,221,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,223,0,0,0,40,224,0,9,0,10,0,0,0,42,0,223,0,0],[0,0,0,0,225,44,44,8,9,0,0,0,0,119,225,0,0,0,0],[0,0,0,115,116,117,222,8,9,0,10,0,0,119,120,0,0,16,0],[0,0,0,115,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,226,64,0,0,40,224,0,9,0,10,0,0,0,42,0,226,0,0],[0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0],[0,39,0,0,0,121,121,0,9,0,10,0,0,0,42,0,39,0,0],[0,0,0,0,0,44,44,8,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,227,0,228,229,0,9,0,10,0,0,230,0,0,0,0,0],[0,39,0,122,0,121,121,0,9,0,10,0,0,0,42,0,39,0,0],[0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,231,231,49,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,232,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,130,131,132,133,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,131,131,133,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,233,233,133,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,234,233,233,133,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,235,236,237,238,239,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,54,56,56,57,58,0,59,0,0,0,61,0,0,62,0],[0,0,0,240,241,242,243,57,58,0,59,0,0,244,245,0,0,62,0],[0,0,0,0,0,246,246,0,58,0,59,0,0,0,139,0,0,0,0],[0,136,0,247,0,248,248,57,58,0,59,0,0,0,139,0,136,0,0],[0,249,151,0,0,0,0,0,0,0,0,0,0,0,0,0,249,0,0],[0,136,0,0,0,246,250,0,58,0,59,0,0,0,139,0,136,0,0],[0,0,0,0,0,251,251,57,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,143,144,145,146,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,144,144,146,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,252,252,146,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,253,252,252,146,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,254,255,256,257,258,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,147,0,0,0,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,259,0,0,0,0,0,0,0,0],[0,0,0,260,241,261,262,57,58,0,59,0,0,263,245,0,0,62,0],[0,0,0,0,0,246,246,0,58,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,137,264,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,265,141,141,57,58,0,0,0,0,0,265,0,0,0,0],[0,249,151,0,0,137,264,0,58,0,59,0,0,0,139,0,249,0,0],[0,0,0,221,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,9,0,0,0,0,158,225,0,0,0,0],[0,0,0,155,116,156,222,8,9,0,10,0,0,158,120,0,0,16,0],[0,0,0,155,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,0,0,0,43,266,266,8,161,0,24,0,0,12,267,0,0,0,0],[0,75,0,176,43,268,268,269,161,0,24,0,0,0,267,0,75,0,0],[0,0,0,0,0,270,0,0,271,0,162,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,272,0,0,0,0,0,0,0,0],[0,273,274,0,0,40,41,0,9,0,10,0,0,0,42,0,273,0,0],[0,0,0,40,0,123,123,8,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,121,275,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,72,0,0,0,0,0,0,0,0],[0,0,0,0,0,166,0,0,0,0,72,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,276,0,0,0,0,0,0,0,0],[0,0,0,277,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,279,0,0,0,76,280,0,23,0,24,0,0,0,78,0,279,0,0],[0,0,0,0,281,80,80,22,23,0,0,0,0,173,281,0,0,0,0],[0,0,0,169,170,171,278,22,23,0,24,0,0,173,174,0,0,27,0],[0,0,0,169,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,282,90,0,0,76,280,0,23,0,24,0,0,0,78,0,282,0,0],[0,0,0,0,0,0,0,0,23,0,0,0,0,0,0,0,0,0,0],[0,75,0,0,0,175,175,0,23,0,24,0,0,0,78,0,75,0,0],[0,0,0,0,0,80,80,22,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,283,0,284,285,0,23,0,24,0,0,286,0,0,0,0,0],[0,75,0,176,0,175,175,0,23,0,24,0,0,0,78,0,75,0,0],[0,0,0,0,0,0,0,22,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,287,287,85,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,288,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,184,185,186,187,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,185,185,187,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,289,289,187,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,290,289,289,187,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,291,292,293,294,295,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,277,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,0,0,0,281,80,80,22,23,0,0,0,0,192,281,0,0,0,0],[0,0,0,189,170,190,278,22,23,0,24,0,0,192,174,0,0,27,0],[0,0,0,189,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,0,0,76,0,177,177,22,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,175,296,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,297,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,299,0,0,0,97,300,0,33,0,34,0,0,0,99,0,299,0,0],[0,0,0,0,301,101,101,32,33,0,0,0,0,199,301,0,0,0,0],[0,0,0,195,196,197,298,32,33,0,34,0,0,199,200,0,0,37,0],[0,0,0,195,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,302,111,0,0,97,300,0,33,0,34,0,0,0,99,0,302,0,0],[0,0,0,0,0,0,0,0,33,0,0,0,0,0,0,0,0,0,0],[0,96,0,0,0,201,201,0,33,0,34,0,0,0,99,0,96,0,0],[0,0,0,0,0,101,101,32,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,303,0,304,305,0,33,0,34,0,0,306,0,0,0,0,0],[0,96,0,202,0,201,201,0,33,0,34,0,0,0,99,0,96,0,0],[0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,307,307,106,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,308,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,210,211,212,213,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,211,211,213,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,309,309,213,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,310,309,309,213,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,311,312,313,314,315,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,297,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,0,0,0,301,101,101,32,33,0,0,0,0,218,301,0,0,0,0],[0,0,0,215,196,216,298,32,33,0,34,0,0,218,200,0,0,37,0],[0,0,0,215,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,0,0,97,0,203,203,32,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,201,316,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,9,0,0,0,0,0,225,0,0,0,0],[0,0,0,317,318,319,320,8,9,0,10,0,0,321,322,0,0,16,0],[0,223,0,323,0,123,123,8,9,0,10,0,0,0,42,0,223,0,0],[0,223,0,0,0,121,324,0,9,0,10,0,0,0,42,0,223,0,0],[0,0,0,325,318,326,327,8,9,0,10,0,0,328,322,0,0,16,0],[0,0,0,64,0,121,121,0,9,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,9,0,0,0,0,230,0,0,0,0,0],[0,0,0,227,0,228,121,0,9,0,10,0,0,230,0,0,0,0,0],[0,0,0,227,0,121,121,0,9,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46,0,0],[0,0,0,0,0,329,329,133,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,330,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,236,237,238,239,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,237,237,239,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,331,331,239,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,332,331,331,239,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,333,40,121,334,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,335,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,337,0,0,0,137,338,0,58,0,59,0,0,0,139,0,337,0,0],[0,0,0,0,339,141,141,57,58,0,0,0,0,244,339,0,0,0,0],[0,0,0,240,241,242,336,57,58,0,59,0,0,244,245,0,0,62,0],[0,0,0,240,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,340,151,0,0,137,338,0,58,0,59,0,0,0,139,0,340,0,0],[0,0,0,0,0,0,0,0,58,0,0,0,0,0,0,0,0,0,0],[0,136,0,0,0,246,246,0,58,0,59,0,0,0,139,0,136,0,0],[0,0,0,0,0,141,141,57,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,341,0,342,343,0,58,0,59,0,0,344,0,0,0,0,0],[0,136,0,247,0,246,246,0,58,0,59,0,0,0,139,0,136,0,0],[0,0,0,0,0,0,0,57,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,345,345,146,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,346,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,255,256,257,258,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,256,256,258,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,347,347,258,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,348,347,347,258,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,349,350,351,352,353,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,335,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,0,0,0,339,141,141,57,58,0,0,0,0,263,339,0,0,0,0],[0,0,0,260,241,261,336,57,58,0,59,0,0,263,245,0,0,62,0],[0,0,0,260,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,0,0,137,0,248,248,57,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,246,354,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,126,126,8,23,0,0,0,0,0,0,0,0,0,0],[0,355,90,0,0,121,125,0,9,0,10,0,0,0,42,0,355,0,0],[0,0,0,0,0,356,356,269,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,357,358,359,360,361,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,162,0,0,0,0,0,0,0,0],[0,0,0,0,0,270,0,0,0,0,162,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,363,0,0,0,0,0,0,0,0],[0,0,0,364,116,365,366,8,161,0,162,0,0,367,120,0,0,16,0],[0,0,0,0,0,368,368,0,161,0,162,0,0,0,0,0,0,0,0],[0,0,0,40,0,121,121,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,0,0,0,281,80,80,22,23,0,0,0,0,0,281,0,0,0,0],[0,0,0,369,370,371,372,22,23,0,24,0,0,373,374,0,0,27,0],[0,279,0,375,0,177,177,22,23,0,24,0,0,0,78,0,279,0,0],[0,279,0,0,0,175,376,0,23,0,24,0,0,0,78,0,279,0,0],[0,0,0,377,370,378,379,22,23,0,24,0,0,380,374,0,0,27,0],[0,0,0,90,0,175,175,0,23,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,23,0,0,0,0,286,0,0,0,0,0],[0,0,0,283,0,284,175,0,23,0,24,0,0,286,0,0,0,0,0],[0,0,0,283,0,175,175,0,23,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,85,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,0,0],[0,0,0,0,0,381,381,187,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,382,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,292,293,294,295,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,293,293,295,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,383,383,295,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,384,383,383,295,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,385,76,175,386,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,76,0,175,175,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,0,0,0,301,101,101,32,33,0,0,0,0,0,301,0,0,0,0],[0,0,0,387,388,389,390,32,33,0,34,0,0,391,392,0,0,37,0],[0,299,0,393,0,203,203,32,33,0,34,0,0,0,99,0,299,0,0],[0,299,0,0,0,201,394,0,33,0,34,0,0,0,99,0,299,0,0],[0,0,0,395,388,396,397,32,33,0,34,0,0,398,392,0,0,37,0],[0,0,0,111,0,201,201,0,33,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,33,0,0,0,0,306,0,0,0,0,0],[0,0,0,303,0,304,201,0,33,0,34,0,0,306,0,0,0,0,0],[0,0,0,303,0,201,201,0,33,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,106,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,103,0,0],[0,0,0,0,0,399,399,213,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,400,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,312,313,314,315,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,313,313,315,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,401,401,315,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,402,401,401,315,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,403,97,201,404,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,97,0,201,201,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,405,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,407,0,0,0,40,408,0,9,0,10,0,0,0,42,0,407,0,0],[0,0,0,0,409,44,44,8,9,0,0,0,0,321,409,0,0,0,0],[0,0,0,317,318,319,406,8,9,0,10,0,0,321,322,0,0,16,0],[0,0,0,317,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,410,64,0,0,40,408,0,9,0,10,0,0,0,42,0,410,0,0],[0,223,0,0,0,121,121,0,9,0,10,0,0,0,42,0,223,0,0],[0,223,0,323,0,121,121,0,9,0,10,0,0,0,42,0,223,0,0],[0,0,0,405,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,0,0,0,409,44,44,8,9,0,0,0,0,328,409,0,0,0,0],[0,0,0,325,318,326,406,8,9,0,10,0,0,328,322,0,0,16,0],[0,0,0,325,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,0,0,0,0,0,0,133,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,130,0,0],[0,0,0,0,0,411,411,239,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,412,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,40,121,334,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,413,0,0,0,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,0,0,0,339,141,141,57,58,0,0,0,0,0,339,0,0,0,0],[0,0,0,414,415,416,417,57,58,0,59,0,0,418,419,0,0,62,0],[0,337,0,420,0,248,248,57,58,0,59,0,0,0,139,0,337,0,0],[0,337,0,0,0,246,421,0,58,0,59,0,0,0,139,0,337,0,0],[0,0,0,422,415,423,424,57,58,0,59,0,0,425,419,0,0,62,0],[0,0,0,151,0,246,246,0,58,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,58,0,0,0,0,344,0,0,0,0,0],[0,0,0,341,0,342,246,0,58,0,59,0,0,344,0,0,0,0,0],[0,0,0,341,0,246,246,0,58,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,146,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,143,0,0],[0,0,0,0,0,426,426,258,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,427,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,350,351,352,353,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,351,351,353,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,428,428,353,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,429,428,428,353,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,430,137,246,431,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,137,0,246,246,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,432,116,433,434,8,161,0,162,0,0,435,120,0,0,16,0],[0,0,0,0,0,180,180,269,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,358,359,360,361,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,359,359,361,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,436,436,361,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,437,436,436,361,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,438,439,440,441,442,161,0,162,0,0,0,362,0,0,0,0],[0,443,274,0,0,0,0,0,0,0,0,0,0,0,0,0,443,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,444,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,161,0,0,0,0,367,225,0,0,0,0],[0,0,0,364,116,365,445,8,161,0,162,0,0,367,120,0,0,16,0],[0,0,0,364,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,0,0,0,0,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,446,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,448,0,0,0,76,449,0,23,0,24,0,0,0,78,0,448,0,0],[0,0,0,0,450,80,80,22,23,0,0,0,0,373,450,0,0,0,0],[0,0,0,369,370,371,447,22,23,0,24,0,0,373,374,0,0,27,0],[0,0,0,369,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,451,90,0,0,76,449,0,23,0,24,0,0,0,78,0,451,0,0],[0,279,0,0,0,175,175,0,23,0,24,0,0,0,78,0,279,0,0],[0,279,0,375,0,175,175,0,23,0,24,0,0,0,78,0,279,0,0],[0,0,0,446,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,0,0,0,450,80,80,22,23,0,0,0,0,380,450,0,0,0,0],[0,0,0,377,370,378,447,22,23,0,24,0,0,380,374,0,0,27,0],[0,0,0,377,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,0,0,0,0,0,0,187,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,184,0,0],[0,0,0,0,0,452,452,295,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,453,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,76,175,386,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,454,0,0,0,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,455,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,457,0,0,0,97,458,0,33,0,34,0,0,0,99,0,457,0,0],[0,0,0,0,459,101,101,32,33,0,0,0,0,391,459,0,0,0,0],[0,0,0,387,388,389,456,32,33,0,34,0,0,391,392,0,0,37,0],[0,0,0,387,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,460,111,0,0,97,458,0,33,0,34,0,0,0,99,0,460,0,0],[0,299,0,0,0,201,201,0,33,0,34,0,0,0,99,0,299,0,0],[0,299,0,393,0,201,201,0,33,0,34,0,0,0,99,0,299,0,0],[0,0,0,455,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,0,0,0,459,101,101,32,33,0,0,0,0,398,459,0,0,0,0],[0,0,0,395,388,396,456,32,33,0,34,0,0,398,392,0,0,37,0],[0,0,0,395,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,0,0,0,0,0,0,213,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,210,0,0],[0,0,0,0,0,461,461,315,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,462,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,97,201,404,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,463,0,0,0,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,0,0,0,409,44,44,8,9,0,0,0,0,0,409,0,0,0,0],[0,0,0,464,465,466,467,8,9,0,10,0,0,468,469,0,0,16,0],[0,407,0,470,0,123,123,8,9,0,10,0,0,0,42,0,407,0,0],[0,407,0,0,0,121,471,0,9,0,10,0,0,0,42,0,407,0,0],[0,0,0,472,465,473,474,8,9,0,10,0,0,475,469,0,0,16,0],[0,0,0,0,0,0,0,239,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,236,0,0],[0,0,0,0,0,0,476,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,477,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,479,0,0,0,137,480,0,58,0,59,0,0,0,139,0,479,0,0],[0,0,0,0,481,141,141,57,58,0,0,0,0,418,481,0,0,0,0],[0,0,0,414,415,416,478,57,58,0,59,0,0,418,419,0,0,62,0],[0,0,0,414,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,482,151,0,0,137,480,0,58,0,59,0,0,0,139,0,482,0,0],[0,337,0,0,0,246,246,0,58,0,59,0,0,0,139,0,337,0,0],[0,337,0,420,0,246,246,0,58,0,59,0,0,0,139,0,337,0,0],[0,0,0,477,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,0,0,0,481,141,141,57,58,0,0,0,0,425,481,0,0,0,0],[0,0,0,422,415,423,478,57,58,0,59,0,0,425,419,0,0,62,0],[0,0,0,422,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,0,0,0,0,0,0,258,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0],[0,0,0,0,0,483,483,353,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,484,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,137,246,431,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,485,0,0,0,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,444,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,161,0,0,0,0,435,225,0,0,0,0],[0,0,0,432,116,433,445,8,161,0,162,0,0,435,120,0,0,16,0],[0,0,0,432,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,0,486,486,361,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,487,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,439,440,441,442,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,440,440,442,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,488,488,442,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,489,488,488,442,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,490,491,492,493,494,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,495,0,496,497,0,161,0,162,0,0,498,0,0,0,0,0],[0,0,0,0,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,161,0,0,0,0,0,225,0,0,0,0],[0,0,0,0,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,0,0,0,450,80,80,22,23,0,0,0,0,0,450,0,0,0,0],[0,0,0,499,500,501,502,22,23,0,24,0,0,503,504,0,0,27,0],[0,448,0,505,0,177,177,22,23,0,24,0,0,0,78,0,448,0,0],[0,448,0,0,0,175,506,0,23,0,24,0,0,0,78,0,448,0,0],[0,0,0,507,500,508,509,22,23,0,24,0,0,510,504,0,0,27,0],[0,0,0,0,0,0,0,295,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,292,0,0],[0,0,0,0,0,0,511,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,0,0,0,459,101,101,32,33,0,0,0,0,0,459,0,0,0,0],[0,0,0,512,513,514,515,32,33,0,34,0,0,516,517,0,0,37,0],[0,457,0,518,0,203,203,32,33,0,34,0,0,0,99,0,457,0,0],[0,457,0,0,0,201,519,0,33,0,34,0,0,0,99,0,457,0,0],[0,0,0,520,513,521,522,32,33,0,34,0,0,523,517,0,0,37,0],[0,0,0,0,0,0,0,315,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,312,0,0],[0,0,0,0,0,0,524,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,525,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,527,0,0,0,40,528,0,9,0,10,0,0,0,42,0,527,0,0],[0,0,0,0,529,44,44,8,9,0,0,0,0,468,529,0,0,0,0],[0,0,0,464,465,466,526,8,9,0,10,0,0,468,469,0,0,16,0],[0,0,0,464,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,530,64,0,0,40,528,0,9,0,10,0,0,0,42,0,530,0,0],[0,407,0,0,0,121,121,0,9,0,10,0,0,0,42,0,407,0,0],[0,407,0,470,0,121,121,0,9,0,10,0,0,0,42,0,407,0,0],[0,0,0,525,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,0,0,0,529,44,44,8,9,0,0,0,0,475,529,0,0,0,0],[0,0,0,472,465,473,526,8,9,0,10,0,0,475,469,0,0,16,0],[0,0,0,472,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,0,0],[0,0,0,0,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,0,0,0,481,141,141,57,58,0,0,0,0,0,481,0,0,0,0],[0,0,0,531,532,533,534,57,58,0,59,0,0,535,536,0,0,62,0],[0,479,0,537,0,248,248,57,58,0,59,0,0,0,139,0,479,0,0],[0,479,0,0,0,246,538,0,58,0,59,0,0,0,139,0,479,0,0],[0,0,0,539,532,540,541,57,58,0,59,0,0,542,536,0,0,62,0],[0,0,0,0,0,0,0,353,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,350,0,0],[0,0,0,0,0,0,543,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,361,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,358,0,0],[0,0,0,0,0,544,544,442,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,545,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,491,492,493,494,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,492,492,494,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,546,546,494,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,547,546,546,494,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,548,549,368,550,0,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,274,0,368,368,0,161,0,162,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,161,0,0,0,0,498,0,0,0,0,0],[0,0,0,495,0,496,368,0,161,0,162,0,0,498,0,0,0,0,0],[0,0,0,495,0,368,368,0,161,0,162,0,0,0,0,0,0,0,0],[0,0,0,551,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,553,0,0,0,76,554,0,23,0,24,0,0,0,78,0,553,0,0],[0,0,0,0,555,80,80,22,23,0,0,0,0,503,555,0,0,0,0],[0,0,0,499,500,501,552,22,23,0,24,0,0,503,504,0,0,27,0],[0,0,0,499,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,556,90,0,0,76,554,0,23,0,24,0,0,0,78,0,556,0,0],[0,448,0,0,0,175,175,0,23,0,24,0,0,0,78,0,448,0,0],[0,448,0,505,0,175,175,0,23,0,24,0,0,0,78,0,448,0,0],[0,0,0,551,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,0,0,0,555,80,80,22,23,0,0,0,0,510,555,0,0,0,0],[0,0,0,507,500,508,552,22,23,0,24,0,0,510,504,0,0,27,0],[0,0,0,507,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,76,0,0],[0,0,0,557,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,559,0,0,0,97,560,0,33,0,34,0,0,0,99,0,559,0,0],[0,0,0,0,561,101,101,32,33,0,0,0,0,516,561,0,0,0,0],[0,0,0,512,513,514,558,32,33,0,34,0,0,516,517,0,0,37,0],[0,0,0,512,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,562,111,0,0,97,560,0,33,0,34,0,0,0,99,0,562,0,0],[0,457,0,0,0,201,201,0,33,0,34,0,0,0,99,0,457,0,0],[0,457,0,518,0,201,201,0,33,0,34,0,0,0,99,0,457,0,0],[0,0,0,557,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,0,0,0,561,101,101,32,33,0,0,0,0,523,561,0,0,0,0],[0,0,0,520,513,521,558,32,33,0,34,0,0,523,517,0,0,37,0],[0,0,0,520,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,0,0],[0,0,0,0,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,0,0,0,529,44,44,8,9,0,0,0,0,0,529,0,0,0,0],[0,0,0,563,66,564,565,8,9,0,10,0,0,566,68,0,0,16,0],[0,527,0,567,0,123,123,8,9,0,10,0,0,0,42,0,527,0,0],[0,527,0,0,0,121,568,0,9,0,10,0,0,0,42,0,527,0,0],[0,0,0,569,66,570,571,8,9,0,10,0,0,572,68,0,0,16,0],[0,0,0,573,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,575,0,0,0,137,576,0,58,0,59,0,0,0,139,0,575,0,0],[0,0,0,0,577,141,141,57,58,0,0,0,0,535,577,0,0,0,0],[0,0,0,531,532,533,574,57,58,0,59,0,0,535,536,0,0,62,0],[0,0,0,531,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,578,151,0,0,137,576,0,58,0,59,0,0,0,139,0,578,0,0],[0,479,0,0,0,246,246,0,58,0,59,0,0,0,139,0,479,0,0],[0,479,0,537,0,246,246,0,58,0,59,0,0,0,139,0,479,0,0],[0,0,0,573,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,0,0,0,577,141,141,57,58,0,0,0,0,542,577,0,0,0,0],[0,0,0,539,532,540,574,57,58,0,59,0,0,542,536,0,0,62,0],[0,0,0,539,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,137,0,0],[0,0,0,0,0,0,0,442,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,439,0,0],[0,0,0,0,0,579,579,494,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,580,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,549,368,550,0,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,368,368,0,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,581,0,0,0,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,0,0,0,555,80,80,22,23,0,0,0,0,0,555,0,0,0,0],[0,0,0,582,91,583,584,22,23,0,24,0,0,585,93,0,0,27,0],[0,553,0,586,0,177,177,22,23,0,24,0,0,0,78,0,553,0,0],[0,553,0,0,0,175,587,0,23,0,24,0,0,0,78,0,553,0,0],[0,0,0,588,91,589,590,22,23,0,24,0,0,591,93,0,0,27,0],[0,0,0,0,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,0,0,0,561,101,101,32,33,0,0,0,0,0,561,0,0,0,0],[0,0,0,592,112,593,594,32,33,0,34,0,0,595,114,0,0,37,0],[0,559,0,596,0,203,203,32,33,0,34,0,0,0,99,0,559,0,0],[0,559,0,0,0,201,597,0,33,0,34,0,0,0,99,0,559,0,0],[0,0,0,598,112,599,600,32,33,0,34,0,0,601,114,0,0,37,0],[0,0,0,602,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,0,0,0,165,44,44,8,9,0,0,0,0,566,165,0,0,0,0],[0,0,0,563,66,564,67,8,9,0,10,0,0,566,68,0,0,16,0],[0,0,0,563,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,527,0,0,0,121,121,0,9,0,10,0,0,0,42,0,527,0,0],[0,527,0,567,0,121,121,0,9,0,10,0,0,0,42,0,527,0,0],[0,0,0,602,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,0,0,0,165,44,44,8,9,0,0,0,0,572,165,0,0,0,0],[0,0,0,569,66,570,67,8,9,0,10,0,0,572,68,0,0,16,0],[0,0,0,569,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,0,0,0,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,0,0,0,577,141,141,57,58,0,0,0,0,0,577,0,0,0,0],[0,0,0,603,152,604,605,57,58,0,59,0,0,606,154,0,0,62,0],[0,575,0,607,0,248,248,57,58,0,59,0,0,0,139,0,575,0,0],[0,575,0,0,0,246,608,0,58,0,59,0,0,0,139,0,575,0,0],[0,0,0,609,152,610,611,57,58,0,59,0,0,612,154,0,0,62,0],[0,0,0,0,0,0,0,494,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,491,0,0],[0,0,0,0,0,0,613,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,614,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,0,0,0,194,80,80,22,23,0,0,0,0,585,194,0,0,0,0],[0,0,0,582,91,583,92,22,23,0,24,0,0,585,93,0,0,27,0],[0,0,0,582,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,553,0,0,0,175,175,0,23,0,24,0,0,0,78,0,553,0,0],[0,553,0,586,0,175,175,0,23,0,24,0,0,0,78,0,553,0,0],[0,0,0,614,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,0,0,0,194,80,80,22,23,0,0,0,0,591,194,0,0,0,0],[0,0,0,588,91,589,92,22,23,0,24,0,0,591,93,0,0,27,0],[0,0,0,588,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,0,0,615,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,0,0,0,220,101,101,32,33,0,0,0,0,595,220,0,0,0,0],[0,0,0,592,112,593,113,32,33,0,34,0,0,595,114,0,0,37,0],[0,0,0,592,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,559,0,0,0,201,201,0,33,0,34,0,0,0,99,0,559,0,0],[0,559,0,596,0,201,201,0,33,0,34,0,0,0,99,0,559,0,0],[0,0,0,615,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,0,0,0,220,101,101,32,33,0,0,0,0,601,220,0,0,0,0],[0,0,0,598,112,599,113,32,33,0,34,0,0,601,114,0,0,37,0],[0,0,0,598,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,0,0,0,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,0,0,616,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0],[0,0,0,0,265,141,141,57,58,0,0,0,0,606,265,0,0,0,0],[0,0,0,603,152,604,153,57,58,0,59,0,0,606,154,0,0,62,0],[0,0,0,603,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0],[0,575,0,0,0,246,246,0,58,0,59,0,0,0,139,0,575,0,0],[0,575,0,607,0,246,246,0,58,0,59,0,0,0,139,0,575,0,0],[0,0,0,616,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0],[0,0,0,0,265,141,141,57,58,0,0,0,0,612,265,0,0,0,0],[0,0,0,609,152,610,153,57,58,0,59,0,0,612,154,0,0,62,0],[0,0,0,609,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,549,0,0],[0,0,0,0,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,0,0,0,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,0,0,0,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0]],"accepting":[false,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,false,true,false,true,true,false,false,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,false,true,true,false,true,true,true,false,true,true,true,false,true,false,true,true,false,false,true,true,true,true,true,true,true,false,true,true,false,true,true,true,false,true,false,true,true,false,false,true,true,true,true,true,true,true,false,true,true,true,false,true,true,true,false,true,false,true,true,false,false,false,true,true,false,false,true,true,true,true,true,true,false,true,false,true,true,false,false,true,true,true,true,true,true,true,false,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,false,true,false,true,true,false,false,false,true,true,false,false,true,true,true,false,true,true,true,true,true,true,false,true,true,true,false,true,false,true,true,false,false,false,true,true,false,false,true,true,true,false,true,true,true,true,true,false,true,true,true,true,true,false,true,true,false,false,false,false,true,true,false,false,true,true,true,false,true,true,true,false,true,false,true,true,false,false,false,true,true,false,false,true,true,true,false,true,true,true,true,false,true,false,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,false,true,true,false,false,false,false,true,true,false,false,true,true,true,false,true,true,true,true,true,false,true,true,false,false,false,false,true,true,false,false,true,true,true,true,false,true,true,true,true,true,true,false,true,true,false,false,false,false,true,false,true,false,true,true,true,true,true,false,true,true,false,false,false,false,true,true,false,false,true,true,true,false,true,true,false,false,true,false,true,true,false,true,true,false,true,true,false,true,true,true,true,true,true,false,true,true,false,false,false,false,true,false,true,true,false,true,true,true,true,true,true,false,true,true,false,false,false,false,true,false,true,false,true,true,true,true,false,false,false,true,true,false,true,true,true,true,true,true,false,true,true,false,false,false,false,true,false,true,false,true,true,false,false,true,true,false,false,true,true,true,false,true,false,true,true,true,true,false,false,false,true,false,true,true,true,true,false,false,false,true,true,false,true,true,true,true,true,true,false,true,true,false,true,false,true,true,true,true,false,false,false,false,false,false,false,true,true,false,false,true,true,false,true,true,true,true,false,true,true,true,true,true,true,false,true,true,false,true,true,false,true,true,true,true,true,true,false,true,true,false,true,false,true,true,true,true,true,true,false,true,true,true,true,true,true,false,true,true,false,false,false,false,false,true,true,false,true,false,true,true,true,true,true,false,true,true,true,true,true,false,true,true,true,true,true,false,true,true,true,false,true,true,true,true,false,false,false,true,false,true,true,true,true,true,false,true,true,true,false,true,true,true,true,true,false,true,true,true,true,false,true,true,true,true,true,false,true,true,false,true,true,true],"tags":[[],["broken_cluster"],["consonant_syllable"],["vowel_syllable"],["broken_cluster"],["broken_cluster"],[],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["standalone_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["consonant_syllable"],["broken_cluster"],["symbol_cluster"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],[],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["standalone_cluster"],["standalone_cluster"],[],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["broken_cluster"],["broken_cluster"],["consonant_syllable","broken_cluster"],["broken_cluster"],[],["broken_cluster"],["symbol_cluster"],[],["symbol_cluster"],["symbol_cluster"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],[],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],[],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],[],[],[],["broken_cluster"],["broken_cluster"],[],[],["broken_cluster"],["broken_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],[],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["symbol_cluster"],["symbol_cluster"],["symbol_cluster"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],[],[],[],["consonant_syllable"],["consonant_syllable"],[],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],[],[],[],["vowel_syllable"],["vowel_syllable"],[],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],[],[],[],[],["broken_cluster"],["broken_cluster"],[],[],["broken_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],[],[],[],["standalone_cluster"],["standalone_cluster"],[],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["broken_cluster"],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["broken_cluster"],["symbol_cluster"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],[],[],[],[],["consonant_syllable"],["consonant_syllable"],[],[],["consonant_syllable"],["consonant_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],[],[],[],[],["vowel_syllable"],["vowel_syllable"],[],[],["vowel_syllable"],["vowel_syllable"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],[],[],[],[],["broken_cluster"],[],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],[],[],[],[],["standalone_cluster"],["standalone_cluster"],[],[],["standalone_cluster"],["standalone_cluster"],["consonant_syllable","broken_cluster"],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],[],["consonant_syllable","broken_cluster"],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],[],[],[],[],["consonant_syllable"],[],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],[],[],[],[],["vowel_syllable"],[],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],[],[],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],[],[],[],[],["standalone_cluster"],[],["consonant_syllable","broken_cluster"],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],[],[],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],[],[],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],[],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],[],[],[],[],[],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],[],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],[],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],[],[],[],[],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],[],[],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["broken_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],[],["consonant_syllable"],["vowel_syllable"],["standalone_cluster"]]}');var wr={};wr=JSON.parse('{"categories":["O","IND","S","GB","B","FM","CGJ","VMAbv","VMPst","VAbv","VPst","CMBlw","VPre","VBlw","H","VMBlw","CMAbv","MBlw","CS","R","SUB","MPst","MPre","FAbv","FPst","FBlw","null","SMAbv","SMBlw","VMPre","ZWNJ","ZWJ","WJ","M","VS","N","HN","MAbv"],"decompositions":{"2507":[2503,2494],"2508":[2503,2519],"2888":[2887,2902],"2891":[2887,2878],"2892":[2887,2903],"3018":[3014,3006],"3019":[3015,3006],"3020":[3014,3031],"3144":[3142,3158],"3264":[3263,3285],"3271":[3270,3285],"3272":[3270,3286],"3274":[3270,3266],"3275":[3270,3266,3285],"3402":[3398,3390],"3403":[3399,3390],"3404":[3398,3415],"3546":[3545,3530],"3548":[3545,3535],"3549":[3545,3535,3530],"3550":[3545,3551],"3635":[3661,3634],"3763":[3789,3762],"3955":[3953,3954],"3957":[3953,3956],"3958":[4018,3968],"3959":[4018,3953,3968],"3960":[4019,3968],"3961":[4019,3953,3968],"3969":[3953,3968],"6971":[6970,6965],"6973":[6972,6965],"6976":[6974,6965],"6977":[6975,6965],"6979":[6978,6965],"69934":[69937,69927],"69935":[69938,69927],"70475":[70471,70462],"70476":[70471,70487],"70843":[70841,70842],"70844":[70841,70832],"70846":[70841,70845],"71098":[71096,71087],"71099":[71097,71087]},"stateTable":[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[2,2,3,4,4,5,0,6,7,8,9,10,11,12,13,14,15,16,0,17,18,11,19,20,21,22,0,0,0,23,0,0,2,0,0,24,0,25],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,28,0,0,0,0,0,27,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,34,35,36,37,38,39,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,39,0,0,47],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,0,0,0,0,0,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,8,9,0,0,12,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,0,9,0,0,0,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,8,9,10,11,12,13,14,0,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,0,11,12,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,0,9,0,0,12,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,0,7,0,0,0,0,0,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,8,9,10,11,12,13,14,15,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,0,11,12,0,14,0,0,0,0,0,11,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,4,4,5,0,6,7,8,9,10,11,12,13,14,15,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,48,11,12,13,14,48,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,49,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,0,11,12,0,14,0,16,0,0,0,11,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,0,0,0,0,0,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,0,51,0],[0,0,0,0,0,5,0,6,7,8,9,0,11,12,0,14,0,16,0,0,0,11,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,28,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,0,0,0,0,0,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,43,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,0,0,36,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,0,33,0,0,0,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,34,35,36,37,38,0,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,29,0,30,31,32,33,0,35,36,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,0,33,0,0,36,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,0,31,0,0,0,0,0,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,34,35,36,37,38,39,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,29,0,30,31,32,33,0,35,36,0,38,0,0,0,0,0,35,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,52,35,36,37,38,52,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,53,0,0,47],[0,0,0,0,0,29,0,30,31,32,33,0,35,36,0,38,0,40,0,0,0,35,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,43,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,0,0,0,0,0,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,0,35,36,0,38,0,40,0,0,0,35,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,8,9,48,11,12,13,14,0,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,48,11,12,13,14,48,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,51,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,54,0,0],[0,0,0,0,0,29,0,30,31,32,33,52,35,36,37,38,0,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,29,0,30,31,32,33,52,35,36,37,38,52,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,0,51,0]],"accepting":[false,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],"tags":[[],["broken_cluster"],["independent_cluster"],["symbol_cluster"],["standard_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["numeral_cluster"],["broken_cluster"],["independent_cluster"],["symbol_cluster"],["symbol_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["virama_terminated_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["broken_cluster"],["broken_cluster"],["numeral_cluster"],["number_joiner_terminated_cluster"],["standard_cluster"],["standard_cluster"],["numeral_cluster"]]}');const Ne={X:1,C:2,V:4,N:8,H:16,ZWNJ:32,ZWJ:64,M:128,Placeholder:2048,Dotted_Circle:4096,RS:8192,Coeng:16384,Repha:32768,Ra:65536,CM:131072},fe={Start:1,Ra_To_Become_Reph:2,Pre_M:4,Pre_C:8,Base_C:16,After_Main:32,Before_Sub:128,Below_C:256,After_Sub:512,Before_Post:1024,Post_C:2048,After_Post:4096,Final_C:8192,SMVD:16384,End:32768},_3=Ne.C|Ne.Ra|Ne.CM|Ne.V|Ne.Placeholder|Ne.Dotted_Circle,Wf=Ne.ZWJ|Ne.ZWNJ,si=Ne.H|Ne.Coeng,Yf={Default:{hasOldSpec:!1,virama:0,basePos:"Last",rephPos:fe.Before_Post,rephMode:"Implicit",blwfMode:"Pre_And_Post"},Devanagari:{hasOldSpec:!0,virama:2381,basePos:"Last",rephPos:fe.Before_Post,rephMode:"Implicit",blwfMode:"Pre_And_Post"},Bengali:{hasOldSpec:!0,virama:2509,basePos:"Last",rephPos:fe.After_Sub,rephMode:"Implicit",blwfMode:"Pre_And_Post"},Gurmukhi:{hasOldSpec:!0,virama:2637,basePos:"Last",rephPos:fe.Before_Sub,rephMode:"Implicit",blwfMode:"Pre_And_Post"},Gujarati:{hasOldSpec:!0,virama:2765,basePos:"Last",rephPos:fe.Before_Post,rephMode:"Implicit",blwfMode:"Pre_And_Post"},Oriya:{hasOldSpec:!0,virama:2893,basePos:"Last",rephPos:fe.After_Main,rephMode:"Implicit",blwfMode:"Pre_And_Post"},Tamil:{hasOldSpec:!0,virama:3021,basePos:"Last",rephPos:fe.After_Post,rephMode:"Implicit",blwfMode:"Pre_And_Post"},Telugu:{hasOldSpec:!0,virama:3149,basePos:"Last",rephPos:fe.After_Post,rephMode:"Explicit",blwfMode:"Post_Only"},Kannada:{hasOldSpec:!0,virama:3277,basePos:"Last",rephPos:fe.After_Post,rephMode:"Implicit",blwfMode:"Post_Only"},Malayalam:{hasOldSpec:!0,virama:3405,basePos:"Last",rephPos:fe.After_Main,rephMode:"Log_Repha",blwfMode:"Pre_And_Post"},Khmer:{hasOldSpec:!1,virama:6098,basePos:"First",rephPos:fe.Ra_To_Become_Reph,rephMode:"Vis_Repha",blwfMode:"Pre_And_Post"}},F3={6078:[6081,6078],6079:[6081,6079],6080:[6081,6080],6084:[6081,6084],6085:[6081,6085]},{decompositions:T3}=qi(wr),Hf=new Yi($n("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")),P3=new Sc(qi(Gf));class at extends Ts{static planFeatures(e){e.addStage(E3),e.addStage(["locl","ccmp"]),e.addStage(M3),e.addStage("nukt"),e.addStage("akhn"),e.addStage("rphf",!1),e.addStage("rkrf"),e.addStage("pref",!1),e.addStage("blwf",!1),e.addStage("abvf",!1),e.addStage("half",!1),e.addStage("pstf",!1),e.addStage("vatu"),e.addStage("cjct"),e.addStage("cfar",!1),e.addStage(R3),e.addStage({local:["init"],global:["pres","abvs","blws","psts","haln","dist","abvm","blwm","calt","clig"]}),e.unicodeScript=Nv(e.script),e.indicConfig=Yf[e.unicodeScript]||Yf.Default,e.isOldSpec=e.indicConfig.hasOldSpec&&e.script[e.script.length-1]!=="2"}static assignFeatures(e,s){for(let a=s.length-1;a>=0;a--){let i=s[a].codePoints[0],r=F3[i]||T3[i];if(r){let n=r.map(o=>{let l=e.font.glyphForCodePoint(o);return new Zt(e.font,l.id,[o],s[a].features)});s.splice(a,1,...n)}}}}St(at,"zeroMarkWidths","NONE");function lo(t){return Hf.get(t.codePoints[0])>>8}function jf(t){return 1<<(Hf.get(t.codePoints[0])&255)}class vr{constructor(e,s,a,i){this.category=e,this.position=s,this.syllableType=a,this.syllable=i}}function E3(t,e){let s=0,a=0;for(let[i,r,n]of P3.match(e.map(lo))){if(i>a){++s;for(let o=a;o<i;o++)e[o].shaperInfo=new vr(Ne.X,fe.End,"non_indic_cluster",s)}++s;for(let o=i;o<=r;o++)e[o].shaperInfo=new vr(1<<lo(e[o]),jf(e[o]),n[0],s);a=r+1}if(a<e.length){++s;for(let i=a;i<e.length;i++)e[i].shaperInfo=new vr(Ne.X,fe.End,"non_indic_cluster",s)}}function Ks(t){return t.shaperInfo.category&_3}function is(t){return t.shaperInfo.category&Wf}function us(t){return t.shaperInfo.category&si}function hs(t,e){for(let a of t)a.features={[e]:!0};return t[0]._font._layoutEngine.engine.GSUBProcessor.applyFeatures([e],t),t.length===1}function O3(t,e,s){let a=[s,e,s];return hs(a.slice(0,2),"blwf")||hs(a.slice(1,3),"blwf")?fe.Below_C:hs(a.slice(0,2),"pstf")||hs(a.slice(1,3),"pstf")||hs(a.slice(0,2),"pref")||hs(a.slice(1,3),"pref")?fe.Post_C:fe.Base_C}function M3(t,e,s){let a=s.indicConfig,i=t._layoutEngine.engine.GSUBProcessor.features,r=t.glyphForCodePoint(9676).id,n=t.glyphForCodePoint(a.virama).id;if(n){let o=new Zt(t,n,[a.virama]);for(let l=0;l<e.length;l++)e[l].shaperInfo.position===fe.Base_C&&(e[l].shaperInfo.position=O3(t,e[l].copy(),o))}for(let o=0,l=xr(e,0);o<e.length;o=l,l=xr(e,o)){let{category:c,syllableType:f}=e[o].shaperInfo;if(f==="symbol_cluster"||f==="non_indic_cluster")continue;if(f==="broken_cluster"&&r){let v=new Zt(t,r,[9676]);v.shaperInfo=new vr(1<<lo(v),jf(v),e[o].shaperInfo.syllableType,e[o].shaperInfo.syllable);let F=o;for(;F<l&&e[F].shaperInfo.category===Ne.Repha;)F++;e.splice(F++,0,v),l++}let h=l,d=o,m=!1;if(a.rephPos!==fe.Ra_To_Become_Reph&&i.rphf&&o+3<=l&&(a.rephMode==="Implicit"&&!is(e[o+2])||a.rephMode==="Explicit"&&e[o+2].shaperInfo.category===Ne.ZWJ)){let v=[e[o].copy(),e[o+1].copy(),e[o+2].copy()];if(hs(v.slice(0,2),"rphf")||a.rephMode==="Explicit"&&hs(v,"rphf")){for(d+=2;d<l&&is(e[d]);)d++;h=o,m=!0}}else if(a.rephMode==="Log_Repha"&&e[o].shaperInfo.category===Ne.Repha){for(d++;d<l&&is(e[d]);)d++;h=o,m=!0}switch(a.basePos){case"Last":{let v=l,F=!1;do{let y=e[--v].shaperInfo;if(Ks(e[v])){if(y.position!==fe.Below_C&&(y.position!==fe.Post_C||F)){h=v;break}y.position===fe.Below_C&&(F=!0),h=v}else if(o<v&&y.category===Ne.ZWJ&&e[v-1].shaperInfo.category===Ne.H)break}while(v>d);break}case"First":h=o;for(let v=h+1;v<l;v++)Ks(e[v])&&(e[v].shaperInfo.position=fe.Below_C)}m&&h===o&&d-h<=2&&(m=!1);for(let v=o;v<h;v++){let F=e[v].shaperInfo;F.position=Math.min(fe.Pre_C,F.position)}h<l&&(e[h].shaperInfo.position=fe.Base_C);for(let v=h+1;v<l;v++)if(e[v].shaperInfo.category===Ne.M){for(let F=v+1;F<l;F++)if(Ks(e[F])){e[F].shaperInfo.position=fe.Final_C;break}break}if(m&&(e[o].shaperInfo.position=fe.Ra_To_Become_Reph),s.isOldSpec){let v=s.unicodeScript!=="Malayalam";for(let F=h+1;F<l;F++)if(e[F].shaperInfo.category===Ne.H){let y;for(y=l-1;y>F&&!(Ks(e[y])||v&&e[y].shaperInfo.category===Ne.H);y--);if(e[y].shaperInfo.category!==Ne.H&&y>F){let Z=e[F];e.splice(F,0,...e.splice(F+1,y-F)),e[y]=Z}break}}let b=fe.Start;for(let v=o;v<l;v++){let F=e[v].shaperInfo;if(F.category&(Wf|Ne.N|Ne.RS|Ne.CM|si&F.category)){if(F.position=b,F.category===Ne.H&&F.position===fe.Pre_M){for(let y=v;y>o;y--)if(e[y-1].shaperInfo.position!==fe.Pre_M){F.position=e[y-1].shaperInfo.position;break}}}else F.position!==fe.SMVD&&(b=F.position)}let V=h;for(let v=h+1;v<l;v++)if(Ks(e[v])){for(let F=V+1;F<v;F++)e[F].shaperInfo.position<fe.SMVD&&(e[F].shaperInfo.position=e[v].shaperInfo.position);V=v}else e[v].shaperInfo.category===Ne.M&&(V=v);let M=e.slice(o,l);M.sort((v,F)=>v.shaperInfo.position-F.shaperInfo.position),e.splice(o,M.length,...M);for(let v=o;v<l;v++)if(e[v].shaperInfo.position===fe.Base_C){h=v;break}for(let v=o;v<l&&e[v].shaperInfo.position===fe.Ra_To_Become_Reph;v++)e[v].features.rphf=!0;let E=!s.isOldSpec&&a.blwfMode==="Pre_And_Post";for(let v=o;v<h;v++)e[v].features.half=!0,E&&(e[v].features.blwf=!0);for(let v=h+1;v<l;v++)e[v].features.abvf=!0,e[v].features.pstf=!0,e[v].features.blwf=!0;if(s.isOldSpec&&s.unicodeScript==="Devanagari")for(let v=o;v+1<h;v++)e[v].shaperInfo.category===Ne.Ra&&e[v+1].shaperInfo.category===Ne.H&&(v+1===h||e[v+2].shaperInfo.category===Ne.ZWJ)&&(e[v].features.blwf=!0,e[v+1].features.blwf=!0);let I=2;if(i.pref&&h+I<l)for(let v=h+1;v+I-1<l;v++){let F=[e[v].copy(),e[v+1].copy()];if(hs(F,"pref")){for(let y=0;y<I;y++)e[v++].features.pref=!0;if(i.cfar)for(;v<l;v++)e[v].features.cfar=!0;break}}for(let v=o+1;v<l;v++)if(is(e[v])){let F=e[v].shaperInfo.category===Ne.ZWNJ,y=v;do y--,F&&delete e[y].features.half;while(y>o&&!Ks(e[y]))}}}function R3(t,e,s){let a=s.indicConfig,i=t._layoutEngine.engine.GSUBProcessor.features;for(let r=0,n=xr(e,0);r<e.length;r=n,n=xr(e,r)){let o=!!i.pref,l=r;for(;l<n;l++)if(e[l].shaperInfo.position>=fe.Base_C){if(o&&l+1<n){for(let c=l+1;c<n;c++)if(e[c].features.pref){if(!(e[c].substituted&&e[c].isLigated&&!e[c].isMultiplied)){for(l=c;l<n&&us(e[l]);)l++;e[l].shaperInfo.position=fe.BASE_C,o=!1}break}}if(s.unicodeScript==="Malayalam")for(let c=l+1;c<n;c++){for(;c<n&&is(e[c]);)c++;if(c===n||!us(e[c]))break;for(c++;c<n&&is(e[c]);)c++;c<n&&Ks(e[c])&&e[c].shaperInfo.position===fe.Below_C&&(l=c,e[l].shaperInfo.position=fe.Base_C)}r<l&&e[l].shaperInfo.position>fe.Base_C&&l--;break}if(l===n&&r<l&&e[l-1].shaperInfo.category===Ne.ZWJ&&l--,l<n)for(;r<l&&e[l].shaperInfo.category&(Ne.N|si);)l--;if(r+1<n&&r<l){let c=l===n?l-2:l-1;if(s.unicodeScript!=="Malayalam"&&s.unicodeScript!=="Tamil"){for(;c>r&&!(e[c].shaperInfo.category&(Ne.M|si));)c--;us(e[c])&&e[c].shaperInfo.position!==fe.Pre_M?c+1<n&&is(e[c+1])&&c++:c=r}if(r<c&&e[c].shaperInfo.position!==fe.Pre_M){for(let f=c;f>r;f--)if(e[f-1].shaperInfo.position===fe.Pre_M){let h=f-1;h<l&&l<=c&&l--;let d=e[h];e.splice(h,0,...e.splice(h+1,c-h)),e[c]=d,c--}}}if(r+1<n&&e[r].shaperInfo.position===fe.Ra_To_Become_Reph&&e[r].shaperInfo.category===Ne.Repha!==(e[r].isLigated&&!e[r].isMultiplied)){let c,f=a.rephPos,h=!1;if(f!==fe.After_Post){for(c=r+1;c<l&&!us(e[c]);)c++;if(c<l&&us(e[c])&&(c+1<l&&is(e[c+1])&&c++,h=!0),!h&&f===fe.After_Main){for(c=l;c+1<n&&e[c+1].shaperInfo.position<=fe.After_Main;)c++;h=c<n}if(!h&&f===fe.After_Sub){for(c=l;c+1<n&&!(e[c+1].shaperInfo.position&(fe.Post_C|fe.After_Post|fe.SMVD));)c++;h=c<n}}if(!h){for(c=r+1;c<l&&!us(e[c]);)c++;c<l&&us(e[c])&&(c+1<l&&is(e[c+1])&&c++,h=!0)}if(!h){for(c=n-1;c>r&&e[c].shaperInfo.position===fe.SMVD;)c--;if(us(e[c]))for(let m=l+1;m<c;m++)e[m].shaperInfo.category===Ne.M&&c--}let d=e[r];e.splice(r,0,...e.splice(r+1,c-r)),e[c]=d,r<l&&l<=c&&l--}if(o&&l+1<n){for(let c=l+1;c<n;c++)if(e[c].features.pref){if(e[c].isLigated&&!e[c].isMultiplied){let f=l;if(s.unicodeScript!=="Malayalam"&&s.unicodeScript!=="Tamil"){for(;f>r&&!(e[f-1].shaperInfo.category&(Ne.M|si));)f--;if(f>r&&e[f-1].shaperInfo.category===Ne.M){let m=c;for(let b=l+1;b<m;b++)if(e[b].shaperInfo.category===Ne.M){f--;break}}}f>r&&us(e[f-1])&&f<n&&is(e[f])&&f++;let h=c,d=e[h];e.splice(f+1,0,...e.splice(f,h-f)),e[f]=d,f<=l&&l<h&&l++}break}}e[r].shaperInfo.position===fe.Pre_M&&(!r||!/Cf|Mn/.test(ji(e[r-1].codePoints[0])))&&(e[r].features.init=!0)}}function xr(t,e){if(e>=t.length)return e;let s=t[e].shaperInfo.syllable;for(;++e<t.length&&t[e].shaperInfo.syllable===s;);return e}const{categories:z3,decompositions:Kf}=qi(wr),L3=new Yi($n("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")),D3=new Sc(qi(wr));class xe extends Ts{static planFeatures(e){e.addStage(U3),e.addStage(["locl","ccmp","nukt","akhn"]),e.addStage(qf),e.addStage(["rphf"],!1),e.addStage(Z3),e.addStage(qf),e.addStage(["pref"]),e.addStage(G3),e.addStage(["rkrf","abvf","blwf","half","pstf","vatu","cjct"]),e.addStage(W3),e.addStage(["abvs","blws","pres","psts","dist","abvm","blwm"])}static assignFeatures(e,s){for(let a=s.length-1;a>=0;a--){let i=s[a].codePoints[0];if(Kf[i]){let r=Kf[i].map(n=>{let o=e.font.glyphForCodePoint(n);return new Zt(e.font,o.id,[n],s[a].features)});s.splice(a,1,...r)}}}}St(xe,"zeroMarkWidths","BEFORE_GPOS");function Xf(t){return L3.get(t.codePoints[0])}class B3{constructor(e,s,a){this.category=e,this.syllableType=s,this.syllable=a}}function U3(t,e){let s=0;for(let[a,i,r]of D3.match(e.map(Xf))){++s;for(let o=a;o<=i;o++)e[o].shaperInfo=new B3(z3[Xf(e[o])],r[0],s);let n=e[a].shaperInfo.category==="R"?1:Math.min(3,i-a);for(let o=a;o<a+n;o++)e[o].features.rphf=!0}}function qf(t,e){for(let s of e)s.substituted=!1}function Z3(t,e){for(let s of e)s.substituted&&s.features.rphf&&(s.shaperInfo.category="R")}function G3(t,e){for(let s of e)s.substituted&&(s.shaperInfo.category="VPre")}function W3(t,e){let s=t.glyphForCodePoint(9676).id;for(let a=0,i=Jf(e,0);a<e.length;a=i,i=Jf(e,a)){let r,n,o=e[a].shaperInfo,l=o.syllableType;if(!(l!=="virama_terminated_cluster"&&l!=="standard_cluster"&&l!=="broken_cluster")){if(l==="broken_cluster"&&s){let c=new Zt(t,s,[9676]);for(c.shaperInfo=o,r=a;r<i&&e[r].shaperInfo.category==="R";r++);e.splice(++r,0,c),i++}if(o.category==="R"&&i-a>1){for(r=a+1;r<i;r++)if(o=e[r].shaperInfo,Qf(o)||Cr(e[r])){Cr(e[r])&&r--,e.splice(a,0,...e.splice(a+1,r-a),e[r]);break}}for(r=a,n=i;r<i;r++)o=e[r].shaperInfo,Qf(o)||Cr(e[r])?n=Cr(e[r])?r+1:r:(o.category==="VPre"||o.category==="VMPre")&&n<r&&e.splice(n,1,e[r],...e.splice(n,r-n))}}}function Jf(t,e){if(e>=t.length)return e;let s=t[e].shaperInfo.syllable;for(;++e<t.length&&t[e].shaperInfo.syllable===s;);return e}function Cr(t){return t.shaperInfo.category==="H"&&!t.isLigated}function Qf(t){return t.category==="B"||t.category==="GB"}const Y3={arab:Es,mong:Es,syrc:Es,"nko ":Es,phag:Es,mand:Es,mani:Es,phlp:Es,hang:Lf,bng2:at,beng:at,dev2:at,deva:at,gjr2:at,gujr:at,guru:at,gur2:at,knda:at,knd2:at,mlm2:at,mlym:at,ory2:at,orya:at,taml:at,tml2:at,telu:at,tel2:at,khmr:at,bali:xe,batk:xe,brah:xe,bugi:xe,buhd:xe,cakm:xe,cham:xe,dupl:xe,egyp:xe,gran:xe,hano:xe,java:xe,kthi:xe,kali:xe,khar:xe,khoj:xe,sind:xe,lepc:xe,limb:xe,mahj:xe,mtei:xe,modi:xe,hmng:xe,rjng:xe,saur:xe,shrd:xe,sidd:xe,sinh:at,sund:xe,sylo:xe,tglg:xe,tagb:xe,tale:xe,lana:xe,tavt:xe,takr:xe,tibt:xe,tfng:xe,tirh:xe,latn:Ts,DFLT:Ts};function H3(t){Array.isArray(t)||(t=[t]);for(let e of t){let s=Y3[e];if(s)return s}return Ts}class j3 extends hr{applyLookup(e,s){switch(e){case 1:{let i=this.coverageIndex(s.coverage);if(i===-1)return!1;let r=this.glyphIterator.cur;switch(s.version){case 1:r.id=r.id+s.deltaGlyphID&65535;break;case 2:r.id=s.substitute.get(i);break}return!0}case 2:{let i=this.coverageIndex(s.coverage);if(i!==-1){let r=s.sequences.get(i);if(r.length===0)return this.glyphs.splice(this.glyphIterator.index,1),!0;this.glyphIterator.cur.id=r[0],this.glyphIterator.cur.ligatureComponent=0;let n=this.glyphIterator.cur.features,o=this.glyphIterator.cur,l=r.slice(1).map((c,f)=>{let h=new Zt(this.font,c,void 0,n);return h.shaperInfo=o.shaperInfo,h.isLigated=o.isLigated,h.ligatureComponent=f+1,h.substituted=!0,h.isMultiplied=!0,h});return this.glyphs.splice(this.glyphIterator.index+1,0,...l),!0}return!1}case 3:{let i=this.coverageIndex(s.coverage);if(i!==-1){let r=0;return this.glyphIterator.cur.id=s.alternateSet.get(i)[r],!0}return!1}case 4:{let i=this.coverageIndex(s.coverage);if(i===-1)return!1;for(let r of s.ligatureSets.get(i)){let n=this.sequenceMatchIndices(1,r.components);if(!n)continue;let o=this.glyphIterator.cur,l=o.codePoints.slice();for(let V of n)l.push(...this.glyphs[V].codePoints);let c=new Zt(this.font,r.glyph,l,o.features);c.shaperInfo=o.shaperInfo,c.isLigated=!0,c.substituted=!0;let f=o.isMark;for(let V=0;V<n.length&&f;V++)f=this.glyphs[n[V]].isMark;c.ligatureID=f?null:this.ligatureID++;let h=o.ligatureID,d=o.codePoints.length,m=d,b=this.glyphIterator.index+1;for(let V of n){if(f)b=V;else for(;b<V;){var a=m-d+Math.min(this.glyphs[b].ligatureComponent||1,d);this.glyphs[b].ligatureID=c.ligatureID,this.glyphs[b].ligatureComponent=a,b++}h=this.glyphs[b].ligatureID,d=this.glyphs[b].codePoints.length,m+=d,b++}if(h&&!f)for(let V=b;V<this.glyphs.length&&this.glyphs[V].ligatureID===h;V++){var a=m-d+Math.min(this.glyphs[V].ligatureComponent||1,d);this.glyphs[V].ligatureComponent=a}for(let V=n.length-1;V>=0;V--)this.glyphs.splice(n[V],1);return this.glyphs[this.glyphIterator.index]=c,!0}return!1}case 5:return this.applyContext(s);case 6:return this.applyChainingContext(s);case 7:return this.applyLookup(s.lookupType,s.extension);default:throw new Error(`GSUB lookupType ${e} is not supported`)}}}class K3 extends hr{applyPositionValue(e,s){let a=this.positions[this.glyphIterator.peekIndex(e)];s.xAdvance!=null&&(a.xAdvance+=s.xAdvance),s.yAdvance!=null&&(a.yAdvance+=s.yAdvance),s.xPlacement!=null&&(a.xOffset+=s.xPlacement),s.yPlacement!=null&&(a.yOffset+=s.yPlacement);let i=this.font._variationProcessor,r=this.font.GDEF&&this.font.GDEF.itemVariationStore;i&&r&&(s.xPlaDevice&&(a.xOffset+=i.getDelta(r,s.xPlaDevice.a,s.xPlaDevice.b)),s.yPlaDevice&&(a.yOffset+=i.getDelta(r,s.yPlaDevice.a,s.yPlaDevice.b)),s.xAdvDevice&&(a.xAdvance+=i.getDelta(r,s.xAdvDevice.a,s.xAdvDevice.b)),s.yAdvDevice&&(a.yAdvance+=i.getDelta(r,s.yAdvDevice.a,s.yAdvDevice.b)))}applyLookup(e,s){switch(e){case 1:{let i=this.coverageIndex(s.coverage);if(i===-1)return!1;switch(s.version){case 1:this.applyPositionValue(0,s.value);break;case 2:this.applyPositionValue(0,s.values.get(i));break}return!0}case 2:{let i=this.glyphIterator.peek();if(!i)return!1;let r=this.coverageIndex(s.coverage);if(r===-1)return!1;switch(s.version){case 1:let n=s.pairSets.get(r);for(let c of n)if(c.secondGlyph===i.id)return this.applyPositionValue(0,c.value1),this.applyPositionValue(1,c.value2),!0;return!1;case 2:let o=this.getClassID(this.glyphIterator.cur.id,s.classDef1),l=this.getClassID(i.id,s.classDef2);if(o===-1||l===-1)return!1;var a=s.classRecords.get(o).get(l);return this.applyPositionValue(0,a.value1),this.applyPositionValue(1,a.value2),!0}}case 3:{let i=this.glyphIterator.peekIndex(),r=this.glyphs[i];if(!r)return!1;let n=s.entryExitRecords[this.coverageIndex(s.coverage)];if(!n||!n.exitAnchor)return!1;let o=s.entryExitRecords[this.coverageIndex(s.coverage,r.id)];if(!o||!o.entryAnchor)return!1;let l=this.getAnchor(o.entryAnchor),c=this.getAnchor(n.exitAnchor),f=this.positions[this.glyphIterator.index],h=this.positions[i],d;switch(this.direction){case"ltr":f.xAdvance=c.x+f.xOffset,d=l.x+h.xOffset,h.xAdvance-=d,h.xOffset-=d;break;case"rtl":d=c.x+f.xOffset,f.xAdvance-=d,f.xOffset-=d,h.xAdvance=l.x+h.xOffset;break}return this.glyphIterator.flags.rightToLeft?(this.glyphIterator.cur.cursiveAttachment=i,f.yOffset=l.y-c.y):(r.cursiveAttachment=this.glyphIterator.index,f.yOffset=c.y-l.y),!0}case 4:{let i=this.coverageIndex(s.markCoverage);if(i===-1)return!1;let r=this.glyphIterator.index;for(;--r>=0&&(this.glyphs[r].isMark||this.glyphs[r].ligatureComponent>0););if(r<0)return!1;let n=this.coverageIndex(s.baseCoverage,this.glyphs[r].id);if(n===-1)return!1;let o=s.markArray[i],l=s.baseArray[n][o.class];return this.applyAnchor(o,l,r),!0}case 5:{let i=this.coverageIndex(s.markCoverage);if(i===-1)return!1;let r=this.glyphIterator.index;for(;--r>=0&&this.glyphs[r].isMark;);if(r<0)return!1;let n=this.coverageIndex(s.ligatureCoverage,this.glyphs[r].id);if(n===-1)return!1;let o=s.ligatureArray[n],l=this.glyphIterator.cur,c=this.glyphs[r],f=c.ligatureID&&c.ligatureID===l.ligatureID&&l.ligatureComponent>0?Math.min(l.ligatureComponent,c.codePoints.length)-1:c.codePoints.length-1,h=s.markArray[i],d=o[f][h.class];return this.applyAnchor(h,d,r),!0}case 6:{let i=this.coverageIndex(s.mark1Coverage);if(i===-1)return!1;let r=this.glyphIterator.peekIndex(-1),n=this.glyphs[r];if(!n||!n.isMark)return!1;let o=this.glyphIterator.cur,l=!1;if(o.ligatureID===n.ligatureID?o.ligatureID?o.ligatureComponent===n.ligatureComponent&&(l=!0):l=!0:(o.ligatureID&&!o.ligatureComponent||n.ligatureID&&!n.ligatureComponent)&&(l=!0),!l)return!1;let c=this.coverageIndex(s.mark2Coverage,n.id);if(c===-1)return!1;let f=s.mark1Array[i],h=s.mark2Array[c][f.class];return this.applyAnchor(f,h,r),!0}case 7:return this.applyContext(s);case 8:return this.applyChainingContext(s);case 9:return this.applyLookup(s.lookupType,s.extension);default:throw new Error(`Unsupported GPOS table: ${e}`)}}applyAnchor(e,s,a){let i=this.getAnchor(s),r=this.getAnchor(e.markAnchor);this.positions[a];let n=this.positions[this.glyphIterator.index];n.xOffset=i.x-r.x,n.yOffset=i.y-r.y,this.glyphIterator.cur.markAttachment=a}getAnchor(e){let s=e.xCoordinate,a=e.yCoordinate,i=this.font._variationProcessor,r=this.font.GDEF&&this.font.GDEF.itemVariationStore;return i&&r&&(e.xDeviceTable&&(s+=i.getDelta(r,e.xDeviceTable.a,e.xDeviceTable.b)),e.yDeviceTable&&(a+=i.getDelta(r,e.yDeviceTable.a,e.yDeviceTable.b))),{x:s,y:a}}applyFeatures(e,s,a){super.applyFeatures(e,s,a);for(var i=0;i<this.glyphs.length;i++)this.fixCursiveAttachment(i);this.fixMarkAttachment()}fixCursiveAttachment(e){let s=this.glyphs[e];if(s.cursiveAttachment!=null){let a=s.cursiveAttachment;s.cursiveAttachment=null,this.fixCursiveAttachment(a),this.positions[e].yOffset+=this.positions[a].yOffset}}fixMarkAttachment(){for(let e=0;e<this.glyphs.length;e++){let s=this.glyphs[e];if(s.markAttachment!=null){let a=s.markAttachment;if(this.positions[e].xOffset+=this.positions[a].xOffset,this.positions[e].yOffset+=this.positions[a].yOffset,this.direction==="ltr")for(let i=a;i<e;i++)this.positions[e].xOffset-=this.positions[i].xAdvance,this.positions[e].yOffset-=this.positions[i].yAdvance;else for(let i=a+1;i<e+1;i++)this.positions[e].xOffset+=this.positions[i].xAdvance,this.positions[e].yOffset+=this.positions[i].yAdvance}}}}class X3{setup(e){this.glyphInfos=e.glyphs.map(a=>new Zt(this.font,a.id,[...a.codePoints]));let s=null;this.GPOSProcessor&&(s=this.GPOSProcessor.selectScript(e.script,e.language,e.direction)),this.GSUBProcessor&&(s=this.GSUBProcessor.selectScript(e.script,e.language,e.direction)),this.shaper=H3(s),this.plan=new Xv(this.font,s,e.direction),this.shaper.plan(this.plan,this.glyphInfos,e.features);for(let a in this.plan.allFeatures)e.features[a]=!0}substitute(e){this.GSUBProcessor&&(this.plan.process(this.GSUBProcessor,this.glyphInfos),e.glyphs=this.glyphInfos.map(s=>this.font.getGlyph(s.id,s.codePoints)))}position(e){return this.shaper.zeroMarkWidths==="BEFORE_GPOS"&&this.zeroMarkAdvances(e.positions),this.GPOSProcessor&&this.plan.process(this.GPOSProcessor,this.glyphInfos,e.positions),this.shaper.zeroMarkWidths==="AFTER_GPOS"&&this.zeroMarkAdvances(e.positions),e.direction==="rtl"&&(e.glyphs.reverse(),e.positions.reverse()),this.GPOSProcessor&&this.GPOSProcessor.features}zeroMarkAdvances(e){for(let s=0;s<this.glyphInfos.length;s++)this.glyphInfos[s].isMark&&(e[s].xAdvance=0,e[s].yAdvance=0)}cleanup(){this.glyphInfos=null,this.plan=null,this.shaper=null}getAvailableFeatures(e,s){let a=[];return this.GSUBProcessor&&(this.GSUBProcessor.selectScript(e,s),a.push(...Object.keys(this.GSUBProcessor.features))),this.GPOSProcessor&&(this.GPOSProcessor.selectScript(e,s),a.push(...Object.keys(this.GPOSProcessor.features))),a}constructor(e){this.font=e,this.glyphInfos=null,this.plan=null,this.GSUBProcessor=null,this.GPOSProcessor=null,this.fallbackPosition=!0,e.GSUB&&(this.GSUBProcessor=new j3(e,e.GSUB)),e.GPOS&&(this.GPOSProcessor=new K3(e,e.GPOS))}}class q3{layout(e,s,a,i,r){if(typeof s=="string"&&(r=i,i=a,a=s,s=[]),typeof e=="string"){a==null&&(a=Av(e));var n=this.font.glyphsForString(e)}else{if(a==null){let c=[];for(let f of e)c.push(...f.codePoints);a=Sv(c)}var n=e}let o=new Iv(n,s,a,i,r);return n.length===0?(o.positions=[],o):(this.engine&&this.engine.setup&&this.engine.setup(o),this.substitute(o),this.position(o),this.hideDefaultIgnorables(o.glyphs,o.positions),this.engine&&this.engine.cleanup&&this.engine.cleanup(),o)}substitute(e){this.engine&&this.engine.substitute&&this.engine.substitute(e)}position(e){e.positions=e.glyphs.map(a=>new _v(a.advanceWidth));let s=null;this.engine&&this.engine.position&&(s=this.engine.position(e)),!s&&(!this.engine||this.engine.fallbackPosition)&&(this.unicodeLayoutEngine||(this.unicodeLayoutEngine=new kv(this.font)),this.unicodeLayoutEngine.positionGlyphs(e.glyphs,e.positions)),(!s||!s.kern)&&e.features.kern!==!1&&this.font.kern&&(this.kernProcessor||(this.kernProcessor=new Cv(this.font)),this.kernProcessor.process(e.glyphs,e.positions),e.features.kern=!0)}hideDefaultIgnorables(e,s){let a=this.font.glyphForCodePoint(32);for(let i=0;i<e.length;i++)this.isDefaultIgnorable(e[i].codePoints[0])&&(e[i]=a,s[i].xAdvance=0,s[i].yAdvance=0)}isDefaultIgnorable(e){let s=e>>16;if(s===0)switch(e>>8){case 0:return e===173;case 3:return e===847;case 6:return e===1564;case 23:return 6068<=e&&e<=6069;case 24:return 6155<=e&&e<=6158;case 32:return 8203<=e&&e<=8207||8234<=e&&e<=8238||8288<=e&&e<=8303;case 254:return 65024<=e&&e<=65039||e===65279;case 255:return 65520<=e&&e<=65528;default:return!1}else switch(s){case 1:return 113824<=e&&e<=113827||119155<=e&&e<=119162;case 14:return 917504<=e&&e<=921599;default:return!1}}getAvailableFeatures(e,s){let a=[];return this.engine&&a.push(...this.engine.getAvailableFeatures(e,s)),this.font.kern&&a.indexOf("kern")===-1&&a.push("kern"),a}stringsForGlyph(e){let s=new Set,a=this.font._cmapProcessor.codePointsForGlyph(e);for(let i of a)s.add(String.fromCodePoint(i));if(this.engine&&this.engine.stringsForGlyph)for(let i of this.engine.stringsForGlyph(e))s.add(i);return Array.from(s)}constructor(e){this.font=e,this.unicodeLayoutEngine=null,this.kernProcessor=null,this.font.morx?this.engine=new Kv(this.font):(this.font.GSUB||this.font.GPOS)&&(this.engine=new X3(this.font))}}const J3={moveTo:"M",lineTo:"L",quadraticCurveTo:"Q",bezierCurveTo:"C",closePath:"Z"};class xa{toFunction(){return e=>{this.commands.forEach(s=>e[s.command].apply(e,s.args))}}toSVG(){return this.commands.map(s=>{let a=s.args.map(i=>Math.round(i*100)/100);return`${J3[s.command]}${a.join(" ")}`}).join("")}get cbox(){if(!this._cbox){let e=new Fs;for(let s of this.commands)for(let a=0;a<s.args.length;a+=2)e.addPoint(s.args[a],s.args[a+1]);this._cbox=Object.freeze(e)}return this._cbox}get bbox(){if(this._bbox)return this._bbox;let e=new Fs,s=0,a=0,i=I=>Math.pow(1-I,3)*m[E]+3*Math.pow(1-I,2)*I*b[E]+3*(1-I)*Math.pow(I,2)*V[E]+Math.pow(I,3)*M[E];for(let I of this.commands)switch(I.command){case"moveTo":case"lineTo":let[v,F]=I.args;e.addPoint(v,F),s=v,a=F;break;case"quadraticCurveTo":case"bezierCurveTo":if(I.command==="quadraticCurveTo")var[r,n,h,d]=I.args,o=s+2/3*(r-s),l=a+2/3*(n-a),c=h+2/3*(r-h),f=d+2/3*(n-d);else var[o,l,c,f,h,d]=I.args;e.addPoint(h,d);for(var m=[s,a],b=[o,l],V=[c,f],M=[h,d],E=0;E<=1;E++){let y=6*m[E]-12*b[E]+6*V[E],Z=-3*m[E]+9*b[E]-9*V[E]+3*M[E];if(I=3*b[E]-3*m[E],Z===0){if(y===0)continue;let $=-I/y;0<$&&$<1&&(E===0?e.addPoint(i($),e.maxY):E===1&&e.addPoint(e.maxX,i($)));continue}let P=Math.pow(y,2)-4*I*Z;if(P<0)continue;let B=(-y+Math.sqrt(P))/(2*Z);0<B&&B<1&&(E===0?e.addPoint(i(B),e.maxY):E===1&&e.addPoint(e.maxX,i(B)));let J=(-y-Math.sqrt(P))/(2*Z);0<J&&J<1&&(E===0?e.addPoint(i(J),e.maxY):E===1&&e.addPoint(e.maxX,i(J)))}s=h,a=d;break}return this._bbox=Object.freeze(e)}mapPoints(e){let s=new xa;for(let a of this.commands){let i=[];for(let r=0;r<a.args.length;r+=2){let[n,o]=e(a.args[r],a.args[r+1]);i.push(n,o)}s[a.command](...i)}return s}transform(e,s,a,i,r,n){return this.mapPoints((o,l)=>{const c=e*o+a*l+r,f=s*o+i*l+n;return[c,f]})}translate(e,s){return this.transform(1,0,0,1,e,s)}rotate(e){let s=Math.cos(e),a=Math.sin(e);return this.transform(s,a,-a,s,0,0)}scale(e,s=e){return this.transform(e,0,0,s,0,0)}constructor(){this.commands=[],this._bbox=null,this._cbox=null}}for(let t of["moveTo","lineTo","quadraticCurveTo","bezierCurveTo","closePath"])xa.prototype[t]=function(...e){return this._bbox=this._cbox=null,this.commands.push({command:t,args:e}),this};var ai=[".notdef",".null","nonmarkingreturn","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","Adieresis","Aring","Ccedilla","Eacute","Ntilde","Odieresis","Udieresis","aacute","agrave","acircumflex","adieresis","atilde","aring","ccedilla","eacute","egrave","ecircumflex","edieresis","iacute","igrave","icircumflex","idieresis","ntilde","oacute","ograve","ocircumflex","odieresis","otilde","uacute","ugrave","ucircumflex","udieresis","dagger","degree","cent","sterling","section","bullet","paragraph","germandbls","registered","copyright","trademark","acute","dieresis","notequal","AE","Oslash","infinity","plusminus","lessequal","greaterequal","yen","mu","partialdiff","summation","product","pi","integral","ordfeminine","ordmasculine","Omega","ae","oslash","questiondown","exclamdown","logicalnot","radical","florin","approxequal","Delta","guillemotleft","guillemotright","ellipsis","nonbreakingspace","Agrave","Atilde","Otilde","OE","oe","endash","emdash","quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge","ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright","fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase","perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple","Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde","macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron","Lslash","lslash","Scaron","scaron","Zcaron","zcaron","brokenbar","Eth","eth","Yacute","yacute","Thorn","thorn","minus","multiply","onesuperior","twosuperior","threesuperior","onehalf","onequarter","threequarters","franc","Gbreve","gbreve","Idotaccent","Scedilla","scedilla","Cacute","cacute","Ccaron","ccaron","dcroat"];class rs{_getPath(){return new xa}_getCBox(){return this.path.cbox}_getBBox(){return this.path.bbox}_getTableMetrics(e){if(this.id<e.metrics.length)return e.metrics.get(this.id);let s=e.metrics.get(e.metrics.length-1);return{advance:s?s.advance:0,bearing:e.bearings.get(this.id-e.metrics.length)||0}}_getMetrics(e){if(this._metrics)return this._metrics;let{advance:s,bearing:a}=this._getTableMetrics(this._font.hmtx);if(this._font.vmtx)var{advance:i,bearing:r}=this._getTableMetrics(this._font.vmtx);else{let n;if((typeof e>"u"||e===null)&&({cbox:e}=this),(n=this._font["OS/2"])&&n.version>0)var i=Math.abs(n.typoAscender-n.typoDescender),r=n.typoAscender-e.maxY;else{let{hhea:o}=this._font;var i=Math.abs(o.ascent-o.descent),r=o.ascent-e.maxY}}return this._font._variationProcessor&&this._font.HVAR&&(s+=this._font._variationProcessor.getAdvanceAdjustment(this.id,this._font.HVAR)),this._metrics={advanceWidth:s,advanceHeight:i,leftBearing:a,topBearing:r}}get cbox(){return this._getCBox()}get bbox(){return this._getBBox()}get path(){return this._getPath()}getScaledPath(e){let s=1/this._font.unitsPerEm*e;return this.path.scale(s)}get advanceWidth(){return this._getMetrics().advanceWidth}get advanceHeight(){return this._getMetrics().advanceHeight}get ligatureCaretPositions(){}_getName(){let{post:e}=this._font;if(!e)return null;switch(e.version){case 1:return ai[this.id];case 2:let s=e.glyphNameIndex[this.id];return s<ai.length?ai[s]:e.names[s-ai.length];case 2.5:return ai[this.id+e.offsets[this.id]];case 4:return String.fromCharCode(e.map[this.id])}}get name(){return this._getName()}render(e,s){e.save();let a=1/this._font.head.unitsPerEm*s;e.scale(a,a),this.path.toFunction()(e),e.fill(),e.restore()}constructor(e,s,a){this.id=e,this.codePoints=s,this._font=a,this.isMark=this.codePoints.length>0&&this.codePoints.every(Ac),this.isLigature=this.codePoints.length>1}}mt([yt],rs.prototype,"cbox",null),mt([yt],rs.prototype,"bbox",null),mt([yt],rs.prototype,"path",null),mt([yt],rs.prototype,"advanceWidth",null),mt([yt],rs.prototype,"advanceHeight",null),mt([yt],rs.prototype,"name",null);let $f=new T({numberOfContours:U,xMin:U,yMin:U,xMax:U,yMax:U});const Q3=1,$3=2,ex=4,tx=8,sx=16,ax=32,ix=1,rx=8,e0=32,nx=64,ox=128,lx=256;class Gt{copy(){return new Gt(this.onCurve,this.endContour,this.x,this.y)}constructor(e,s,a=0,i=0){this.onCurve=e,this.endContour=s,this.x=a,this.y=i}}class cx{constructor(e,s,a){this.glyphID=e,this.dx=s,this.dy=a,this.pos=0,this.scaleX=this.scaleY=1,this.scale01=this.scale10=0}}class kr extends rs{_getCBox(e){if(this._font._variationProcessor&&!e)return this.path.cbox;let s=this._font._getTableStream("glyf");s.pos+=this._font.loca.offsets[this.id];let a=$f.decode(s),i=new Fs(a.xMin,a.yMin,a.xMax,a.yMax);return Object.freeze(i)}_parseGlyphCoord(e,s,a,i){if(a){var r=e.readUInt8();i||(r=-r),r+=s}else if(i)var r=s;else var r=s+e.readInt16BE();return r}_decode(){let e=this._font.loca.offsets[this.id],s=this._font.loca.offsets[this.id+1];if(e===s)return null;let a=this._font._getTableStream("glyf");a.pos+=e;let i=a.pos,r=$f.decode(a);return r.numberOfContours>0?this._decodeSimple(r,a):r.numberOfContours<0&&this._decodeComposite(r,a,i),r}_decodeSimple(e,s){e.points=[];let a=new k(u,e.numberOfContours).decode(s);e.instructions=new k(K,u).decode(s);let i=[],r=a[a.length-1]+1;for(;i.length<r;){var n=s.readUInt8();if(i.push(n),n&tx){let f=s.readUInt8();for(let h=0;h<f;h++)i.push(n)}}for(var o=0;o<i.length;o++){var n=i[o];let h=new Gt(!!(n&Q3),a.indexOf(o)>=0,0,0);e.points.push(h)}let l=0;for(var o=0;o<i.length;o++){var n=i[o];e.points[o].x=l=this._parseGlyphCoord(s,l,n&$3,n&sx)}let c=0;for(var o=0;o<i.length;o++){var n=i[o];e.points[o].y=c=this._parseGlyphCoord(s,c,n&ex,n&ax)}if(this._font._variationProcessor){let f=e.points.slice();f.push(...this._getPhantomPoints(e)),this._font._variationProcessor.transformPoints(this.id,f),e.phantomPoints=f.slice(-4)}}_decodeComposite(e,s,a=0){e.components=[];let i=!1,r=e0;for(;r&e0;){r=s.readUInt16BE();let c=s.pos-a,f=s.readUInt16BE();if(i||(i=(r&lx)!==0),r&ix)var n=s.readInt16BE(),o=s.readInt16BE();else var n=s.readInt8(),o=s.readInt8();var l=new cx(f,n,o);l.pos=c,r&rx?l.scaleX=l.scaleY=(s.readUInt8()<<24|s.readUInt8()<<16)/1073741824:r&nx?(l.scaleX=(s.readUInt8()<<24|s.readUInt8()<<16)/1073741824,l.scaleY=(s.readUInt8()<<24|s.readUInt8()<<16)/1073741824):r&ox&&(l.scaleX=(s.readUInt8()<<24|s.readUInt8()<<16)/1073741824,l.scale01=(s.readUInt8()<<24|s.readUInt8()<<16)/1073741824,l.scale10=(s.readUInt8()<<24|s.readUInt8()<<16)/1073741824,l.scaleY=(s.readUInt8()<<24|s.readUInt8()<<16)/1073741824),e.components.push(l)}if(this._font._variationProcessor){let c=[];for(let f=0;f<e.components.length;f++){var l=e.components[f];c.push(new Gt(!0,!0,l.dx,l.dy))}c.push(...this._getPhantomPoints(e)),this._font._variationProcessor.transformPoints(this.id,c),e.phantomPoints=c.splice(-4,4);for(let f=0;f<c.length;f++){let h=c[f];e.components[f].dx=h.x,e.components[f].dy=h.y}}return i}_getPhantomPoints(e){let s=this._getCBox(!0);this._metrics==null&&(this._metrics=rs.prototype._getMetrics.call(this,s));let{advanceWidth:a,advanceHeight:i,leftBearing:r,topBearing:n}=this._metrics;return[new Gt(!1,!0,e.xMin-r,0),new Gt(!1,!0,e.xMin-r+a,0),new Gt(!1,!0,0,e.yMax+n),new Gt(!1,!0,0,e.yMax+n+i)]}_getContours(){let e=this._decode();if(!e)return[];let s=[];if(e.numberOfContours<0)for(let n of e.components){let o=this._font.getGlyph(n.glyphID)._getContours();for(let l=0;l<o.length;l++){let c=o[l];for(let f=0;f<c.length;f++){let h=c[f],d=h.x*n.scaleX+h.y*n.scale01+n.dx,m=h.y*n.scaleY+h.x*n.scale10+n.dy;s.push(new Gt(h.onCurve,h.endContour,d,m))}}}else s=e.points||[];e.phantomPoints&&!this._font.directory.tables.HVAR&&(this._metrics.advanceWidth=e.phantomPoints[1].x-e.phantomPoints[0].x,this._metrics.advanceHeight=e.phantomPoints[3].y-e.phantomPoints[2].y,this._metrics.leftBearing=e.xMin-e.phantomPoints[0].x,this._metrics.topBearing=e.phantomPoints[2].y-e.yMax);let a=[],i=[];for(let n=0;n<s.length;n++){var r=s[n];i.push(r),r.endContour&&(a.push(i),i=[])}return a}_getMetrics(){if(this._metrics)return this._metrics;let e=this._getCBox(!0);return super._getMetrics(e),this._font._variationProcessor&&!this._font.HVAR&&this.path,this._metrics}_getPath(){let e=this._getContours(),s=new xa;for(let i=0;i<e.length;i++){let r=e[i],n=r[0],o=r[r.length-1],l=0;if(n.onCurve){var a=null;l=1}else{o.onCurve?n=o:n=new Gt(!1,!1,(n.x+o.x)/2,(n.y+o.y)/2);var a=n}s.moveTo(n.x,n.y);for(let c=l;c<r.length;c++){let f=r[c],h=c===0?n:r[c-1];if(h.onCurve&&f.onCurve)s.lineTo(f.x,f.y);else if(h.onCurve&&!f.onCurve)var a=f;else if(!h.onCurve&&!f.onCurve){let m=(h.x+f.x)/2,b=(h.y+f.y)/2;s.quadraticCurveTo(h.x,h.y,m,b);var a=f}else if(!h.onCurve&&f.onCurve){s.quadraticCurveTo(a.x,a.y,f.x,f.y);var a=null}else throw new Error("Unknown TTF path state")}a&&s.quadraticCurveTo(a.x,a.y,n.x,n.y),s.closePath()}return s}constructor(...e){super(...e),St(this,"type","TTF")}}class fx extends rs{_getName(){return this._font.CFF2?super._getName():this._font["CFF "].getGlyphName(this.id)}bias(e){return e.length<1240?107:e.length<33900?1131:32768}_getPath(){let e=this._font.CFF2||this._font["CFF "],{stream:s}=e,a=e.topDict.CharStrings[this.id],i=a.offset+a.length;s.pos=a.offset;let r=new xa,n=[],o=[],l=null,c=0,f=0,h=0,d,m,b=!1;this._usedGsubrs=d={},this._usedSubrs=m={};let V=e.globalSubrIndex||[],M=this.bias(V),E=e.privateDictForGlyph(this.id)||{},I=E.Subrs||[],v=this.bias(I),F=e.topDict.vstore&&e.topDict.vstore.itemVariationStore,y=E.vsindex,Z=this._font._variationProcessor;function P(){l==null&&(l=n.shift()+E.nominalWidthX)}function B(){return n.length%2!==0&&P(),c+=n.length>>1,n.length=0}function J(se,ue){b&&r.closePath(),r.moveTo(se,ue),b=!0}let $=function(){for(;s.pos<i;){let Ce=s.readUInt8();if(Ce<32){let Te,Ae,Le,ye,G,Y,W,pe,ge,Pe,Ue,Oe,_e,ft,H,z;switch(Ce){case 1:case 3:case 18:case 23:B();break;case 4:n.length>1&&P(),h+=n.shift(),J(f,h);break;case 5:for(;n.length>=2;)f+=n.shift(),h+=n.shift(),r.lineTo(f,h);break;case 6:case 7:for(Le=Ce===6;n.length>=1;)Le?f+=n.shift():h+=n.shift(),r.lineTo(f,h),Le=!Le;break;case 8:for(;n.length>0;)ye=f+n.shift(),G=h+n.shift(),Y=ye+n.shift(),W=G+n.shift(),f=Y+n.shift(),h=W+n.shift(),r.bezierCurveTo(ye,G,Y,W,f,h);break;case 10:if(Te=n.pop()+v,Ae=I[Te],Ae){m[Te]=!0;let R=s.pos,O=i;s.pos=Ae.offset,i=Ae.offset+Ae.length,$(),s.pos=R,i=O}break;case 11:if(e.version>=2)break;return;case 14:if(e.version>=2)break;n.length>0&&P(),b&&(r.closePath(),b=!1);break;case 15:if(e.version<2)throw new Error("vsindex operator not supported in CFF v1");y=n.pop();break;case 16:{if(e.version<2)throw new Error("blend operator not supported in CFF v1");if(!Z)throw new Error("blend operator in non-variation font");let R=Z.getBlendVector(F,y),O=n.pop(),ee=O*R.length,ne=n.length-ee,ae=ne-O;for(let re=0;re<O;re++){let me=n[ae+re];for(let ie=0;ie<R.length;ie++)me+=R[ie]*n[ne++];n[ae+re]=me}for(;ee--;)n.pop();break}case 19:case 20:B(),s.pos+=c+7>>3;break;case 21:n.length>2&&P(),f+=n.shift(),h+=n.shift(),J(f,h);break;case 22:n.length>1&&P(),f+=n.shift(),J(f,h);break;case 24:for(;n.length>=8;)ye=f+n.shift(),G=h+n.shift(),Y=ye+n.shift(),W=G+n.shift(),f=Y+n.shift(),h=W+n.shift(),r.bezierCurveTo(ye,G,Y,W,f,h);f+=n.shift(),h+=n.shift(),r.lineTo(f,h);break;case 25:for(;n.length>=8;)f+=n.shift(),h+=n.shift(),r.lineTo(f,h);ye=f+n.shift(),G=h+n.shift(),Y=ye+n.shift(),W=G+n.shift(),f=Y+n.shift(),h=W+n.shift(),r.bezierCurveTo(ye,G,Y,W,f,h);break;case 26:for(n.length%2&&(f+=n.shift());n.length>=4;)ye=f,G=h+n.shift(),Y=ye+n.shift(),W=G+n.shift(),f=Y,h=W+n.shift(),r.bezierCurveTo(ye,G,Y,W,f,h);break;case 27:for(n.length%2&&(h+=n.shift());n.length>=4;)ye=f+n.shift(),G=h,Y=ye+n.shift(),W=G+n.shift(),f=Y+n.shift(),h=W,r.bezierCurveTo(ye,G,Y,W,f,h);break;case 28:n.push(s.readInt16BE());break;case 29:if(Te=n.pop()+M,Ae=V[Te],Ae){d[Te]=!0;let R=s.pos,O=i;s.pos=Ae.offset,i=Ae.offset+Ae.length,$(),s.pos=R,i=O}break;case 30:case 31:for(Le=Ce===31;n.length>=4;)Le?(ye=f+n.shift(),G=h,Y=ye+n.shift(),W=G+n.shift(),h=W+n.shift(),f=Y+(n.length===1?n.shift():0)):(ye=f,G=h+n.shift(),Y=ye+n.shift(),W=G+n.shift(),f=Y+n.shift(),h=W+(n.length===1?n.shift():0)),r.bezierCurveTo(ye,G,Y,W,f,h),Le=!Le;break;case 12:switch(Ce=s.readUInt8(),Ce){case 3:let R=n.pop(),O=n.pop();n.push(R&&O?1:0);break;case 4:R=n.pop(),O=n.pop(),n.push(R||O?1:0);break;case 5:R=n.pop(),n.push(R?0:1);break;case 9:R=n.pop(),n.push(Math.abs(R));break;case 10:R=n.pop(),O=n.pop(),n.push(R+O);break;case 11:R=n.pop(),O=n.pop(),n.push(R-O);break;case 12:R=n.pop(),O=n.pop(),n.push(R/O);break;case 14:R=n.pop(),n.push(-R);break;case 15:R=n.pop(),O=n.pop(),n.push(R===O?1:0);break;case 18:n.pop();break;case 20:let ee=n.pop(),ne=n.pop();o[ne]=ee;break;case 21:ne=n.pop(),n.push(o[ne]||0);break;case 22:let ae=n.pop(),re=n.pop(),me=n.pop(),ie=n.pop();n.push(me<=ie?ae:re);break;case 23:n.push(Math.random());break;case 24:R=n.pop(),O=n.pop(),n.push(R*O);break;case 26:R=n.pop(),n.push(Math.sqrt(R));break;case 27:R=n.pop(),n.push(R,R);break;case 28:R=n.pop(),O=n.pop(),n.push(O,R);break;case 29:ne=n.pop(),ne<0?ne=0:ne>n.length-1&&(ne=n.length-1),n.push(n[ne]);break;case 30:let q=n.pop(),we=n.pop();if(we>=0)for(;we>0;){var se=n[q-1];for(let Ye=q-2;Ye>=0;Ye--)n[Ye+1]=n[Ye];n[0]=se,we--}else for(;we<0;){var se=n[0];for(let it=0;it<=q;it++)n[it]=n[it+1];n[q-1]=se,we++}break;case 34:ye=f+n.shift(),G=h,Y=ye+n.shift(),W=G+n.shift(),pe=Y+n.shift(),ge=W,Pe=pe+n.shift(),Ue=ge,Oe=Pe+n.shift(),_e=Ue,ft=Oe+n.shift(),H=_e,f=ft,h=H,r.bezierCurveTo(ye,G,Y,W,pe,ge),r.bezierCurveTo(Pe,Ue,Oe,_e,ft,H);break;case 35:z=[];for(let Ye=0;Ye<=5;Ye++)f+=n.shift(),h+=n.shift(),z.push(f,h);r.bezierCurveTo(...z.slice(0,6)),r.bezierCurveTo(...z.slice(6)),n.shift();break;case 36:ye=f+n.shift(),G=h+n.shift(),Y=ye+n.shift(),W=G+n.shift(),pe=Y+n.shift(),ge=W,Pe=pe+n.shift(),Ue=ge,Oe=Pe+n.shift(),_e=Ue+n.shift(),ft=Oe+n.shift(),H=_e,f=ft,h=H,r.bezierCurveTo(ye,G,Y,W,pe,ge),r.bezierCurveTo(Pe,Ue,Oe,_e,ft,H);break;case 37:let Je=f,gt=h;z=[];for(let Ye=0;Ye<=4;Ye++)f+=n.shift(),h+=n.shift(),z.push(f,h);Math.abs(f-Je)>Math.abs(h-gt)?(f+=n.shift(),h=gt):(f=Je,h+=n.shift()),z.push(f,h),r.bezierCurveTo(...z.slice(0,6)),r.bezierCurveTo(...z.slice(6));break;default:throw new Error(`Unknown op: 12 ${Ce}`)}break;default:throw new Error(`Unknown op: ${Ce}`)}}else if(Ce<247)n.push(Ce-139);else if(Ce<251){var ue=s.readUInt8();n.push((Ce-247)*256+ue+108)}else if(Ce<255){var ue=s.readUInt8();n.push(-(Ce-251)*256-ue-108)}else n.push(s.readInt32BE()/65536)}};return $(),b&&r.closePath(),r}constructor(...e){super(...e),St(this,"type","CFF")}}let ux=new T({originX:u,originY:u,type:new Re(4),data:new Qt(t=>t.parent.buflen-t._currentOffset)});class hx extends kr{getImageForSize(e){for(let n=0;n<this._font.sbix.imageTables.length;n++){var s=this._font.sbix.imageTables[n];if(s.ppem>=e)break}let a=s.imageOffsets,i=a[this.id],r=a[this.id+1];return i===r?null:(this._font.stream.pos=i,ux.decode(this._font.stream,{buflen:r-i}))}render(e,s){let a=this.getImageForSize(s);if(a!=null){let i=s/this._font.unitsPerEm;e.image(a.data,{height:s,x:a.originX,y:(this.bbox.minY-a.originY)*i})}this._font.sbix.flags.renderOutlines&&super.render(e,s)}constructor(...e){super(...e),St(this,"type","SBIX")}}class t0{constructor(e,s){this.glyph=e,this.color=s}}class dx extends rs{_getBBox(){let e=new Fs;for(let s=0;s<this.layers.length;s++){let i=this.layers[s].glyph.bbox;e.addPoint(i.minX,i.minY),e.addPoint(i.maxX,i.maxY)}return e}get layers(){let e=this._font.CPAL,s=this._font.COLR,a=0,i=s.baseGlyphRecord.length-1;for(;a<=i;){let f=a+i>>1;var r=s.baseGlyphRecord[f];if(this.id<r.gid)i=f-1;else if(this.id>r.gid)a=f+1;else{var n=r;break}}if(n==null){var o=this._font._getBaseGlyph(this.id),l={red:0,green:0,blue:0,alpha:255};return[new t0(o,l)]}let c=[];for(let f=n.firstLayerIndex;f<n.firstLayerIndex+n.numLayers;f++){var r=s.layerRecords[f],l=e.colorRecords[r.paletteIndex],o=this._font._getBaseGlyph(r.gid);c.push(new t0(o,l))}return c}render(e,s){for(let{glyph:a,color:i}of this.layers)e.fillColor([i.red,i.green,i.blue],i.alpha/255*100),a.render(e,s)}constructor(...e){super(...e),St(this,"type","COLR")}}const gx=32768,px=4095,mx=32768,s0=16384,yx=8192,a0=4095,i0=128,r0=127,bx=128,wx=64,vx=63;class xx{normalizeCoords(e){let s=[];for(var a=0;a<this.font.fvar.axis.length;a++){let i=this.font.fvar.axis[a];e[a]<i.defaultValue?s.push((e[a]-i.defaultValue+Number.EPSILON)/(i.defaultValue-i.minValue+Number.EPSILON)):s.push((e[a]-i.defaultValue+Number.EPSILON)/(i.maxValue-i.defaultValue+Number.EPSILON))}if(this.font.avar)for(var a=0;a<this.font.avar.segment.length;a++){let r=this.font.avar.segment[a];for(let n=0;n<r.correspondence.length;n++){let o=r.correspondence[n];if(n>=1&&s[a]<o.fromCoord){let l=r.correspondence[n-1];s[a]=((s[a]-l.fromCoord)*(o.toCoord-l.toCoord)+Number.EPSILON)/(o.fromCoord-l.fromCoord+Number.EPSILON)+l.toCoord;break}}}return s}transformPoints(e,s){if(!this.font.fvar||!this.font.gvar)return;let{gvar:a}=this.font;if(e>=a.glyphCount)return;let i=a.offsets[e];if(i===a.offsets[e+1])return;let{stream:r}=this.font;if(r.pos=i,r.pos>=r.length)return;let n=r.readUInt16BE(),o=i+r.readUInt16BE();if(n&gx){var l=r.pos;r.pos=o;var c=this.decodePoints();o=r.pos,r.pos=l}let f=s.map(M=>M.copy());n&=px;for(let M=0;M<n;M++){let E=r.readUInt16BE(),I=r.readUInt16BE();if(I&mx){var h=[];for(let B=0;B<a.axisCount;B++)h.push(r.readInt16BE()/16384)}else{if((I&a0)>=a.globalCoordCount)throw new Error("Invalid gvar table");var h=a.globalCoords[I&a0]}if(I&s0){var d=[];for(let B=0;B<a.axisCount;B++)d.push(r.readInt16BE()/16384);var m=[];for(let B=0;B<a.axisCount;B++)m.push(r.readInt16BE()/16384)}let v=this.tupleFactor(I,h,d,m);if(v===0){o+=E;continue}var l=r.pos;if(r.pos=o,I&yx)var b=this.decodePoints();else var b=c;let y=b.length===0?s.length:b.length,Z=this.decodeDeltas(y),P=this.decodeDeltas(y);if(b.length===0)for(let B=0;B<s.length;B++){var V=s[B];V.x+=Math.round(Z[B]*v),V.y+=Math.round(P[B]*v)}else{let B=f.map($=>$.copy()),J=s.map(()=>!1);for(let $=0;$<b.length;$++){let se=b[$];if(se<s.length){let ue=B[se];J[se]=!0,ue.x+=Z[$]*v,ue.y+=P[$]*v}}this.interpolateMissingDeltas(B,f,J);for(let $=0;$<s.length;$++){let se=B[$].x-f[$].x,ue=B[$].y-f[$].y;s[$].x=Math.round(s[$].x+se),s[$].y=Math.round(s[$].y+ue)}}o+=E,r.pos=l}}decodePoints(){let e=this.font.stream,s=e.readUInt8();s&i0&&(s=(s&r0)<<8|e.readUInt8());let a=new Uint16Array(s),i=0,r=0;for(;i<s;){let n=e.readUInt8(),o=(n&r0)+1,l=n&i0?e.readUInt16:e.readUInt8;for(let c=0;c<o&&i<s;c++)r+=l.call(e),a[i++]=r}return a}decodeDeltas(e){let s=this.font.stream,a=0,i=new Int16Array(e);for(;a<e;){let r=s.readUInt8(),n=(r&vx)+1;if(r&bx)a+=n;else{let o=r&wx?s.readInt16BE:s.readInt8;for(let l=0;l<n&&a<e;l++)i[a++]=o.call(s)}}return i}tupleFactor(e,s,a,i){let r=this.normalizedCoords,{gvar:n}=this.font,o=1;for(let l=0;l<n.axisCount;l++)if(s[l]!==0){if(r[l]===0)return 0;if(e&s0){if(r[l]<a[l]||r[l]>i[l])return 0;r[l]<s[l]?o=o*(r[l]-a[l]+Number.EPSILON)/(s[l]-a[l]+Number.EPSILON):o=o*(i[l]-r[l]+Number.EPSILON)/(i[l]-s[l]+Number.EPSILON)}else{if(r[l]<Math.min(0,s[l])||r[l]>Math.max(0,s[l]))return 0;o=(o*r[l]+Number.EPSILON)/(s[l]+Number.EPSILON)}}return o}interpolateMissingDeltas(e,s,a){if(e.length===0)return;let i=0;for(;i<e.length;){let r=i,n=i,o=e[n];for(;!o.endContour;)o=e[++n];for(;i<=n&&!a[i];)i++;if(i>n)continue;let l=i,c=i;for(i++;i<=n;)a[i]&&(this.deltaInterpolate(c+1,i-1,c,i,s,e),c=i),i++;c===l?this.deltaShift(r,n,c,s,e):(this.deltaInterpolate(c+1,n,c,l,s,e),l>0&&this.deltaInterpolate(r,l-1,c,l,s,e)),i=n+1}}deltaInterpolate(e,s,a,i,r,n){if(e>s)return;let o=["x","y"];for(let c=0;c<o.length;c++){let f=o[c];if(r[a][f]>r[i][f]){var l=a;a=i,i=l}let h=r[a][f],d=r[i][f],m=n[a][f],b=n[i][f];if(h!==d||m===b){let V=h===d?0:(b-m)/(d-h);for(let M=e;M<=s;M++){let E=r[M][f];E<=h?E+=m-h:E>=d?E+=b-d:E=m+(E-h)*V,n[M][f]=E}}}}deltaShift(e,s,a,i,r){let n=r[a].x-i[a].x,o=r[a].y-i[a].y;if(!(n===0&&o===0))for(let l=e;l<=s;l++)l!==a&&(r[l].x+=n,r[l].y+=o)}getAdvanceAdjustment(e,s){let a,i;if(s.advanceWidthMapping){let r=e;r>=s.advanceWidthMapping.mapCount&&(r=s.advanceWidthMapping.mapCount-1),s.advanceWidthMapping.entryFormat,{outerIndex:a,innerIndex:i}=s.advanceWidthMapping.mapData[r]}else a=0,i=e;return this.getDelta(s.itemVariationStore,a,i)}getDelta(e,s,a){if(s>=e.itemVariationData.length)return 0;let i=e.itemVariationData[s];if(a>=i.deltaSets.length)return 0;let r=i.deltaSets[a],n=this.getBlendVector(e,s),o=0;for(let l=0;l<i.regionIndexCount;l++)o+=r.deltas[l]*n[l];return o}getBlendVector(e,s){let a=e.itemVariationData[s];if(this.blendVectors.has(a))return this.blendVectors.get(a);let i=this.normalizedCoords,r=[];for(let n=0;n<a.regionIndexCount;n++){let o=1,l=a.regionIndexes[n],c=e.variationRegionList.variationRegions[l];for(let f=0;f<c.length;f++){let h=c[f],d;h.startCoord>h.peakCoord||h.peakCoord>h.endCoord||h.startCoord<0&&h.endCoord>0&&h.peakCoord!==0||h.peakCoord===0?d=1:i[f]<h.startCoord||i[f]>h.endCoord?d=0:i[f]===h.peakCoord?d=1:i[f]<h.peakCoord?d=(i[f]-h.startCoord+Number.EPSILON)/(h.peakCoord-h.startCoord+Number.EPSILON):d=(h.endCoord-i[f]+Number.EPSILON)/(h.endCoord-h.peakCoord+Number.EPSILON),o*=d}r[n]=o}return this.blendVectors.set(a,r),r}constructor(e,s){this.font=e,this.normalizedCoords=this.normalizeCoords(s),this.blendVectors=new Map}}Promise.resolve();class n0{includeGlyph(e){return typeof e=="object"&&(e=e.id),this.mapping[e]==null&&(this.glyphs.push(e),this.mapping[e]=this.glyphs.length-1),this.mapping[e]}constructor(e){this.font=e,this.glyphs=[],this.mapping={},this.includeGlyph(0)}}const Cx=1,kx=2,Nx=4,Ax=8,Sx=16,Vx=32;class o0{static size(e){return e>=0&&e<=255?1:2}static encode(e,s){s>=0&&s<=255?e.writeUInt8(s):e.writeInt16BE(s)}}let l0=new T({numberOfContours:U,xMin:U,yMin:U,xMax:U,yMax:U,endPtsOfContours:new k(u,"numberOfContours"),instructions:new k(K,u),flags:new k(K,0),xPoints:new k(o0,0),yPoints:new k(o0,0)});class Ix{encodeSimple(e,s=[]){let a=[],i=[],r=[],n=[],o=0,l=0,c=0,f=0,h=0;for(let E=0;E<e.commands.length;E++){let I=e.commands[E];for(let v=0;v<I.args.length;v+=2){let F=I.args[v],y=I.args[v+1],Z=0;if(I.command==="quadraticCurveTo"&&v===2){let P=e.commands[E+1];if(P&&P.command==="quadraticCurveTo"){let B=(l+P.args[0])/2,J=(c+P.args[1])/2;if(F===B&&y===J)continue}}I.command==="quadraticCurveTo"&&v===0||(Z|=Cx),Z=this._encodePoint(F,l,i,Z,kx,Sx),Z=this._encodePoint(y,c,r,Z,Nx,Vx),Z===f&&o<255?(n[n.length-1]|=Ax,o++):(o>0&&(n.push(o),o=0),n.push(Z),f=Z),l=F,c=y,h++}I.command==="closePath"&&a.push(h-1)}e.commands.length>1&&e.commands[e.commands.length-1].command!=="closePath"&&a.push(h-1);let d=e.bbox,m={numberOfContours:a.length,xMin:d.minX,yMin:d.minY,xMax:d.maxX,yMax:d.maxY,endPtsOfContours:a,instructions:s,flags:n,xPoints:i,yPoints:r},b=l0.size(m),V=4-b%4,M=new Zi(b+V);return l0.encode(M,m),V!==0&&M.fill(0,V),M.buffer}_encodePoint(e,s,a,i,r,n){let o=e-s;return e===s?i|=n:(-255<=o&&o<=255&&(i|=r,o<0?o=-o:i|=n),a.push(o)),i}}class _x extends n0{_addGlyph(e){let s=this.font.getGlyph(e),a=s._decode(),i=this.font.loca.offsets[e],r=this.font.loca.offsets[e+1],n=this.font._getTableStream("glyf");n.pos+=i;let o=n.readBuffer(r-i);if(a&&a.numberOfContours<0){o=new Uint8Array(o);let l=new DataView(o.buffer);for(let c of a.components)e=this.includeGlyph(c.glyphID),l.setUint16(c.pos,e)}else a&&this.font._variationProcessor&&(o=this.glyphEncoder.encodeSimple(s.path,a.instructions));return this.glyf.push(o),this.loca.offsets.push(this.offset),this.hmtx.metrics.push({advance:s.advanceWidth,bearing:s._getMetrics().leftBearing}),this.offset+=o.length,this.glyf.length-1}encode(){this.glyf=[],this.offset=0,this.loca={offsets:[],version:this.font.loca.version},this.hmtx={metrics:[],bearings:[]};let e=0;for(;e<this.glyphs.length;)this._addGlyph(this.glyphs[e++]);let s=On(this.font.maxp);s.numGlyphs=this.glyf.length,this.loca.offsets.push(this.offset);let a=On(this.font.head);a.indexToLocFormat=this.loca.version;let i=On(this.font.hhea);return i.numberOfMetrics=this.hmtx.metrics.length,Vf.toBuffer({tables:{head:a,hhea:i,loca:this.loca,maxp:s,"cvt ":this.font["cvt "],prep:this.font.prep,glyf:this.glyf,hmtx:this.hmtx,fpgm:this.font.fpgm}})}constructor(e){super(e),this.glyphEncoder=new Ix}}class Fx extends n0{subsetCharstrings(){this.charstrings=[];let e={};for(let s of this.glyphs){this.charstrings.push(this.cff.getCharString(s));let a=this.font.getGlyph(s);a.path;for(let i in a._usedGsubrs)e[i]=!0}this.gsubrs=this.subsetSubrs(this.cff.globalSubrIndex,e)}subsetSubrs(e,s){let a=[];for(let i=0;i<e.length;i++){let r=e[i];s[i]?(this.cff.stream.pos=r.offset,a.push(this.cff.stream.readBuffer(r.length))):a.push(new Uint8Array([11]))}return a}subsetFontdict(e){e.FDArray=[],e.FDSelect={version:0,fds:[]};let s={},a=[],i={};for(let r of this.glyphs){let n=this.cff.fdForGlyph(r);if(n==null)continue;s[n]||(e.FDArray.push(Object.assign({},this.cff.topDict.FDArray[n])),a.push({}),i[n]=e.FDArray.length-1),s[n]=!0,e.FDSelect.fds.push(i[n]);let o=this.font.getGlyph(r);o.path;for(let l in o._usedSubrs)a[i[n]][l]=!0}for(let r=0;r<e.FDArray.length;r++){let n=e.FDArray[r];delete n.FontName,n.Private&&n.Private.Subrs&&(n.Private=Object.assign({},n.Private),n.Private.Subrs=this.subsetSubrs(n.Private.Subrs,a[r]))}}createCIDFontdict(e){let s={};for(let i of this.glyphs){let r=this.font.getGlyph(i);r.path;for(let n in r._usedSubrs)s[n]=!0}let a=Object.assign({},this.cff.topDict.Private);return this.cff.topDict.Private&&this.cff.topDict.Private.Subrs&&(a.Subrs=this.subsetSubrs(this.cff.topDict.Private.Subrs,s)),e.FDArray=[{Private:a}],e.FDSelect={version:3,nRanges:1,ranges:[{first:0,fd:0}],sentinel:this.charstrings.length}}addString(e){return e?(this.strings||(this.strings=[]),this.strings.push(e),er.length+this.strings.length-1):null}encode(){this.subsetCharstrings();let e={version:this.charstrings.length>255?2:1,ranges:[{first:1,nLeft:this.charstrings.length-2}]},s=Object.assign({},this.cff.topDict);s.Private=null,s.charset=e,s.Encoding=null,s.CharStrings=this.charstrings;for(let i of["version","Notice","Copyright","FullName","FamilyName","Weight","PostScript","BaseFontName","FontName"])s[i]=this.addString(this.cff.string(s[i]));s.ROS=[this.addString("Adobe"),this.addString("Identity"),0],s.CIDCount=this.charstrings.length,this.cff.isCIDFont?this.subsetFontdict(s):this.createCIDFontdict(s);let a={version:1,hdrSize:this.cff.hdrSize,offSize:4,header:this.cff.header,nameIndex:[this.cff.postscriptName],topDictIndex:[s],stringIndex:this.strings,globalSubrIndex:this.gsubrs};return uf.toBuffer(a)}constructor(e){if(super(e),this.cff=this.font["CFF "],!this.cff)throw new Error("Not a CFF Font")}}class wt{static probe(e){let s=or.decode(e.slice(0,4));return s==="true"||s==="OTTO"||s==="\0\0\0"}setDefaultLanguage(e=null){this.defaultLanguage=e}_getTable(e){if(!(e.tag in this._tables))try{this._tables[e.tag]=this._decodeTable(e)}catch{}return this._tables[e.tag]}_getTableStream(e){let s=this.directory.tables[e];return s?(this.stream.pos=s.offset,this.stream):null}_decodeDirectory(){return this.directory=Vf.decode(this.stream,{_startOffset:0})}_decodeTable(e){let s=this.stream.pos,a=this._getTableStream(e.tag),i=rr[e.tag].decode(a,this,e.length);return this.stream.pos=s,i}getName(e,s=this.defaultLanguage||Ji){let a=this.name&&this.name.records[e];return a&&(a[s]||a[this.defaultLanguage]||a[Ji]||a.en||a[Object.keys(a)[0]])||null}get postscriptName(){return this.getName("postscriptName")}get fullName(){return this.getName("fullName")}get familyName(){return this.getName("fontFamily")}get subfamilyName(){return this.getName("fontSubfamily")}get copyright(){return this.getName("copyright")}get version(){return this.getName("version")}get ascent(){return this.hhea.ascent}get descent(){return this.hhea.descent}get lineGap(){return this.hhea.lineGap}get underlinePosition(){return this.post.underlinePosition}get underlineThickness(){return this.post.underlineThickness}get italicAngle(){return this.post.italicAngle}get capHeight(){let e=this["OS/2"];return e?e.capHeight:this.ascent}get xHeight(){let e=this["OS/2"];return e?e.xHeight:0}get numGlyphs(){return this.maxp.numGlyphs}get unitsPerEm(){return this.head.unitsPerEm}get bbox(){return Object.freeze(new Fs(this.head.xMin,this.head.yMin,this.head.xMax,this.head.yMax))}get _cmapProcessor(){return new eo(this.cmap)}get characterSet(){return this._cmapProcessor.getCharacterSet()}hasGlyphForCodePoint(e){return!!this._cmapProcessor.lookup(e)}glyphForCodePoint(e){return this.getGlyph(this._cmapProcessor.lookup(e),[e])}glyphsForString(e){let s=[],a=e.length,i=0,r=-1,n=-1;for(;i<=a;){let o=0,l=0;if(i<a){if(o=e.charCodeAt(i++),55296<=o&&o<=56319&&i<a){let c=e.charCodeAt(i);56320<=c&&c<=57343&&(i++,o=((o&1023)<<10)+(c&1023)+65536)}l=65024<=o&&o<=65039||917760<=o&&o<=917999?1:0}else i++;n===0&&l===1?s.push(this.getGlyph(this._cmapProcessor.lookup(r,o),[r,o])):n===0&&l===0&&s.push(this.glyphForCodePoint(r)),r=o,n=l}return s}get _layoutEngine(){return new q3(this)}layout(e,s,a,i,r){return this._layoutEngine.layout(e,s,a,i,r)}stringsForGlyph(e){return this._layoutEngine.stringsForGlyph(e)}get availableFeatures(){return this._layoutEngine.getAvailableFeatures()}getAvailableFeatures(e,s){return this._layoutEngine.getAvailableFeatures(e,s)}_getBaseGlyph(e,s=[]){return this._glyphs[e]||(this.directory.tables.glyf?this._glyphs[e]=new kr(e,s,this):(this.directory.tables["CFF "]||this.directory.tables.CFF2)&&(this._glyphs[e]=new fx(e,s,this))),this._glyphs[e]||null}getGlyph(e,s=[]){return this._glyphs[e]||(this.directory.tables.sbix?this._glyphs[e]=new hx(e,s,this):this.directory.tables.COLR&&this.directory.tables.CPAL?this._glyphs[e]=new dx(e,s,this):this._getBaseGlyph(e,s)),this._glyphs[e]||null}createSubset(){return this.directory.tables["CFF "]?new Fx(this):new _x(this)}get variationAxes(){let e={};if(!this.fvar)return e;for(let s of this.fvar.axis)e[s.axisTag.trim()]={name:s.name.en,min:s.minValue,default:s.defaultValue,max:s.maxValue};return e}get namedVariations(){let e={};if(!this.fvar)return e;for(let s of this.fvar.instance){let a={};for(let i=0;i<this.fvar.axis.length;i++){let r=this.fvar.axis[i];a[r.axisTag.trim()]=s.coord[i]}e[s.name.en]=a}return e}getVariation(e){if(!(this.directory.tables.fvar&&(this.directory.tables.gvar&&this.directory.tables.glyf||this.directory.tables.CFF2)))throw new Error("Variations require a font with the fvar, gvar and glyf, or CFF2 tables.");if(typeof e=="string"&&(e=this.namedVariations[e]),typeof e!="object")throw new Error("Variation settings must be either a variation name or settings object.");let s=this.fvar.axis.map((r,n)=>{let o=r.axisTag.trim();return o in e?Math.max(r.minValue,Math.min(r.maxValue,e[o])):r.defaultValue}),a=new pt(this.stream.buffer);a.pos=this._directoryPos;let i=new wt(a,s);return i._tables=this._tables,i}get _variationProcessor(){if(!this.fvar)return null;let e=this.variationCoords;return!e&&!this.CFF2?null:(e||(e=this.fvar.axis.map(s=>s.defaultValue)),new xx(this,e))}getFont(e){return this.getVariation(e)}constructor(e,s=null){St(this,"type","TTF"),this.defaultLanguage=null,this.stream=e,this.variationCoords=s,this._directoryPos=this.stream.pos,this._tables={},this._glyphs={},this._decodeDirectory();for(let a in this.directory.tables){let i=this.directory.tables[a];rr[a]&&i.length>0&&Object.defineProperty(this,a,{get:this._getTable.bind(this,i)})}}}mt([yt],wt.prototype,"bbox",null),mt([yt],wt.prototype,"_cmapProcessor",null),mt([yt],wt.prototype,"characterSet",null),mt([yt],wt.prototype,"_layoutEngine",null),mt([yt],wt.prototype,"variationAxes",null),mt([yt],wt.prototype,"namedVariations",null),mt([yt],wt.prototype,"_variationProcessor",null);let Tx=new T({tag:new Re(4),offset:new A(S,"void",{type:"global"}),compLength:S,length:S,origChecksum:S}),c0=new T({tag:new Re(4),flavor:S,length:S,numTables:u,reserved:new je(u),totalSfntSize:S,majorVersion:u,minorVersion:u,metaOffset:S,metaLength:S,metaOrigLength:S,privOffset:S,privLength:S,tables:new k(Tx,"numTables")});c0.process=function(){let t={};for(let e of this.tables)t[e.tag]=e;this.tables=t};var Px=c0;class Ex extends wt{static probe(e){return or.decode(e.slice(0,4))==="wOFF"}_decodeDirectory(){this.directory=Px.decode(this.stream,{_startOffset:0})}_getTableStream(e){let s=this.directory.tables[e];if(s)if(this.stream.pos=s.offset,s.compLength<s.length){this.stream.pos+=2;let a=new Uint8Array(s.length),i=Tw(this.stream.readBuffer(s.compLength-2),a);return new pt(i)}else return this.stream;return null}constructor(...e){super(...e),St(this,"type","WOFF")}}class Ox extends kr{_decode(){return this._font._transformedGlyphs[this.id]}_getCBox(){return this.path.bbox}constructor(...e){super(...e),St(this,"type","WOFF2")}}const f0={decode(t){let e=0,s=[0,1,2,3,4];for(let a=0;a<s.length;a++){let i=t.readUInt8();if(e&3758096384)throw new Error("Overflow");if(e=e<<7|i&127,!(i&128))return e}throw new Error("Bad base 128 number")}};let Mx=["cmap","head","hhea","hmtx","maxp","name","OS/2","post","cvt ","fpgm","glyf","loca","prep","CFF ","VORG","EBDT","EBLC","gasp","hdmx","kern","LTSH","PCLT","VDMX","vhea","vmtx","BASE","GDEF","GPOS","GSUB","EBSC","JSTF","MATH","CBDT","CBLC","COLR","CPAL","SVG ","sbix","acnt","avar","bdat","bloc","bsln","cvar","fdsc","feat","fmtx","fvar","gvar","hsty","just","lcar","mort","morx","opbd","prop","trak","Zapf","Silf","Glat","Gloc","Feat","Sill"],Rx=new T({flags:K,customTag:new Gi(new Re(4),t=>(t.flags&63)===63),tag:t=>t.customTag||Mx[t.flags&63],length:f0,transformVersion:t=>t.flags>>>6&3,transformed:t=>t.tag==="glyf"||t.tag==="loca"?t.transformVersion===0:t.transformVersion!==0,transformLength:new Gi(f0,t=>t.transformed)}),u0=new T({tag:new Re(4),flavor:S,length:S,numTables:u,reserved:new je(u),totalSfntSize:S,totalCompressedSize:S,majorVersion:u,minorVersion:u,metaOffset:S,metaLength:S,metaOrigLength:S,privOffset:S,privLength:S,tables:new k(Rx,"numTables")});u0.process=function(){let t={};for(let e=0;e<this.tables.length;e++){let s=this.tables[e];t[s.tag]=s}return this.tables=t};var zx=u0;class Lx extends wt{static probe(e){return or.decode(e.slice(0,4))==="wOF2"}_decodeDirectory(){this.directory=zx.decode(this.stream),this._dataPos=this.stream.pos}_decompress(){if(!this._decompressed){this.stream.pos=this._dataPos;let e=this.stream.readBuffer(this.directory.totalCompressedSize),s=0;for(let i in this.directory.tables){let r=this.directory.tables[i];r.offset=s,s+=r.transformLength!=null?r.transformLength:r.length}let a=f1(e,s);if(!a)throw new Error("Error decoding compressed data in WOFF2");this.stream=new pt(a),this._decompressed=!0}}_decodeTable(e){return this._decompress(),super._decodeTable(e)}_getBaseGlyph(e,s=[]){if(!this._glyphs[e])return this.directory.tables.glyf&&this.directory.tables.glyf.transformed?(this._transformedGlyphs||this._transformGlyfTable(),this._glyphs[e]=new Ox(e,s,this)):super._getBaseGlyph(e,s)}_transformGlyfTable(){this._decompress(),this.stream.pos=this.directory.tables.glyf.offset;let e=Dx.decode(this.stream),s=[];for(let i=0;i<e.numGlyphs;i++){let r={},n=e.nContours.readInt16BE();if(r.numberOfContours=n,n>0){let o=[],l=0;for(let c=0;c<n;c++){let f=co(e.nPoints);l+=f,o.push(l)}r.points=Gx(e.flags,e.glyphs,l);for(let c=0;c<n;c++)r.points[o[c]-1].endContour=!0;var a=co(e.glyphs)}else if(n<0&&kr.prototype._decodeComposite.call({_font:this},r,e.composites))var a=co(e.glyphs);s.push(r)}this._transformedGlyphs=s}constructor(...e){super(...e),St(this,"type","WOFF2")}}class Xs{decode(e,s){return new pt(this._buf.decode(e,s))}constructor(e){this.length=e,this._buf=new Qt(e)}}let Dx=new T({version:S,numGlyphs:u,indexFormat:u,nContourStreamSize:S,nPointsStreamSize:S,flagStreamSize:S,glyphStreamSize:S,compositeStreamSize:S,bboxStreamSize:S,instructionStreamSize:S,nContours:new Xs("nContourStreamSize"),nPoints:new Xs("nPointsStreamSize"),flags:new Xs("flagStreamSize"),glyphs:new Xs("glyphStreamSize"),composites:new Xs("compositeStreamSize"),bboxes:new Xs("bboxStreamSize"),instructions:new Xs("instructionStreamSize")});const Bx=253,Ux=254,Zx=255,h0=253;function co(t){let e=t.readUInt8();return e===Bx?t.readUInt16BE():e===Zx?t.readUInt8()+h0:e===Ux?t.readUInt8()+h0*2:e}function ns(t,e){return t&1?e:-e}function Gx(t,e,s){let a,i=a=0,r=[];for(let l=0;l<s;l++){let c=0,f=0,h=t.readUInt8(),d=!(h>>7);if(h&=127,h<10)c=0,f=ns(h,((h&14)<<7)+e.readUInt8());else if(h<20)c=ns(h,((h-10&14)<<7)+e.readUInt8()),f=0;else if(h<84){var n=h-20,o=e.readUInt8();c=ns(h,1+(n&48)+(o>>4)),f=ns(h>>1,1+((n&12)<<2)+(o&15))}else if(h<120){var n=h-84;c=ns(h,1+(n/12<<8)+e.readUInt8()),f=ns(h>>1,1+(n%12>>2<<8)+e.readUInt8())}else if(h<124){var o=e.readUInt8();let b=e.readUInt8();c=ns(h,(o<<4)+(b>>4)),f=ns(h>>1,((b&15)<<8)+e.readUInt8())}else c=ns(h,e.readUInt16BE()),f=ns(h>>1,e.readUInt16BE());i+=c,a+=f,r.push(new Gt(d,!1,i,a))}return r}let Wx=new ve(S,{65536:{numFonts:S,offsets:new k(S,"numFonts")},131072:{numFonts:S,offsets:new k(S,"numFonts"),dsigTag:S,dsigLength:S,dsigOffset:S}});class Yx{static probe(e){return or.decode(e.slice(0,4))==="ttcf"}getFont(e){for(let s of this.header.offsets){let a=new pt(this.stream.buffer);a.pos=s;let i=new wt(a);if(i.postscriptName===e||i.postscriptName instanceof Uint8Array&&e instanceof Uint8Array&&i.postscriptName.every((r,n)=>e[n]===r))return i}return null}get fonts(){let e=[];for(let s of this.header.offsets){let a=new pt(this.stream.buffer);a.pos=s,e.push(new wt(a))}return e}constructor(e){if(St(this,"type","TTC"),this.stream=e,e.readString(4)!=="ttcf")throw new Error("Not a TrueType collection");this.header=Wx.decode(e)}}let Hx=new Re(K);new T({len:S,buf:new Qt("len")});let jx=new T({id:u,nameOffset:U,attr:K,dataOffset:ks,handle:S}),Kx=new T({name:new Re(4),maxTypeIndex:u,refList:new A(u,new k(jx,t=>t.maxTypeIndex+1),{type:"parent"})}),Xx=new T({length:u,types:new k(Kx,t=>t.length+1)}),qx=new T({reserved:new je(K,24),typeList:new A(u,Xx),nameListOffset:new A(u,"void")}),d0=new T({dataOffset:S,map:new A(S,qx),dataLength:S,mapLength:S});class Jx{static probe(e){let s=new pt(e);try{var a=d0.decode(s)}catch{return!1}for(let i of a.map.typeList.types)if(i.name==="sfnt")return!0;return!1}getFont(e){if(!this.sfnt)return null;for(let s of this.sfnt.refList){let a=this.header.dataOffset+s.dataOffset+4,i=new pt(this.stream.buffer.slice(a)),r=new wt(i);if(r.postscriptName===e||r.postscriptName instanceof Uint8Array&&e instanceof Uint8Array&&r.postscriptName.every((n,o)=>e[o]===n))return r}return null}get fonts(){let e=[];for(let s of this.sfnt.refList){let a=this.header.dataOffset+s.dataOffset+4,i=new pt(this.stream.buffer.slice(a));e.push(new wt(i))}return e}constructor(e){St(this,"type","DFont"),this.stream=e,this.header=d0.decode(this.stream);for(let s of this.header.map.typeList.types){for(let a of s.refList)a.nameOffset>=0?(this.stream.pos=a.nameOffset+this.header.map.nameListOffset,a.name=Hx.decode(this.stream)):a.name=null;s.name==="sfnt"&&(this.sfnt=s)}}}ga(wt),ga(Ex),ga(Lx),ga(Yx),ga(Jx);var ct={DEFAULTS:{width:800,height:400,pixelRatio:2,fontFamily:"Roboto",fontSize:48,color:"#000000",textAlign:"center"},LIMITS:{minWidth:1,maxWidth:4096,minHeight:1,maxHeight:4096,minFontSize:1,maxFontSize:512,minDuration:.1,maxDuration:120,maxTextLength:1e4},ANIMATION_TYPES:["typewriter","fadeIn","slideIn","shift","ascend","movingLetters"]},qs=/^#[A-Fa-f0-9]{6}$/,Qx=w({src:p().url(),family:p(),weight:x([p(),C()]).optional(),style:p().optional(),originalFamily:p().optional()}),$x=w({width:C().min(0).default(0),color:p().regex(qs).default("#000000"),opacity:C().min(0).max(1).default(1),radius:C().min(0).default(0)}),eC=x([C().min(0),w({top:C().min(0).default(0),right:C().min(0).default(0),bottom:C().min(0).default(0),left:C().min(0).default(0)})]),tC=Jy.extend({family:p().default(ct.DEFAULTS.fontFamily),size:C().int().min(ct.LIMITS.minFontSize).max(ct.LIMITS.maxFontSize).default(ct.DEFAULTS.fontSize),weight:x([p(),C()]).default("400"),color:p().regex(qs).default(ct.DEFAULTS.color),opacity:C().min(0).max(1).default(1),background:p().regex(qs).optional()}),sC=w({type:D(["linear","radial"]).default("linear"),angle:C().min(0).max(360).default(0),stops:Ie(w({offset:C().min(0).max(1),color:p().regex(qs)})).min(2)}),aC=Qy.extend({letterSpacing:C().default(0),lineHeight:C().min(0).max(10).default(1.2),textTransform:D(["none","uppercase","lowercase","capitalize"]).default("none"),textDecoration:D(["none","underline","line-through"]).default("none"),gradient:sC.optional()}),iC=qy.extend({width:C().min(0).default(0),color:p().regex(qs).default("#000000"),opacity:C().min(0).max(1).default(1)}),rC=Xy.extend({offsetX:C().default(0),offsetY:C().default(0),blur:C().min(0).default(0),color:p().regex(qs).default("#000000"),opacity:C().min(0).max(1).default(.5)}),nC=Yy.extend({color:p().regex(qs).optional(),opacity:C().min(0).max(1).default(1)}),oC=Gy.extend({horizontal:D(["left","center","right"]).default(ct.DEFAULTS.textAlign),vertical:D(["top","middle","bottom"]).default("middle")}),lC=Wy.extend({preset:D(ct.ANIMATION_TYPES),speed:C().min(.1).max(10).default(1),duration:C().min(ct.LIMITS.minDuration).max(ct.LIMITS.maxDuration).optional(),style:D(["character","word"]).optional(),direction:D(["left","right","up","down"]).optional()}).superRefine((t,e)=>{const s=["typewriter","shift","fadeIn","slideIn"];t.style&&!s.includes(t.preset)&&e.addIssue({code:la.custom,message:`style is not allowed for preset "${t.preset}"`,path:["style"]});const a={ascend:["up","down"],shift:["left","right","up","down"],slideIn:["left","right","up","down"],movingLetters:["left","right","up","down"]};if(t.direction){const i=a[t.preset];i?i.includes(t.direction)||e.addIssue({code:la.custom,message:`direction "${t.direction}" is not valid for preset "${t.preset}"`,path:["direction"]}):e.addIssue({code:la.custom,message:`direction is not allowed for preset "${t.preset}"`,path:["direction"]})}}),cC=Kl.extend({type:he("rich-text"),text:p().max(ct.LIMITS.maxTextLength).default(""),width:C().int().min(ct.LIMITS.minWidth).max(ct.LIMITS.maxWidth).default(ct.DEFAULTS.width).optional(),height:C().int().min(ct.LIMITS.minHeight).max(ct.LIMITS.maxHeight).default(ct.DEFAULTS.height).optional(),font:tC.optional(),style:aC.optional(),stroke:iC.optional(),shadow:rC.optional(),background:nC.optional(),border:$x.optional(),padding:eC.optional(),align:oC.optional(),animation:lC.optional(),customFonts:Ie(Qx).optional()}).strict(),Nr=null;function g0(){return typeof process<"u"&&process.versions!=null&&process.versions.node!=null}function fC(t){if(t.buffer instanceof ArrayBuffer)return t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength);const e=new ArrayBuffer(t.byteLength),s=new Uint8Array(e);for(let a=0;a<t.byteLength;a++)s[a]=t[a];return e}var p0="https://shotstack-ingest-api-dev-sources.s3.ap-southeast-2.amazonaws.com/euo5r93oyr/zzz01k9h-yycyx-2x2y6-qx9bj-7n567b/source.wasm";async function m0(t){try{const e=await fetch(t);if(e.ok){const s=await e.arrayBuffer(),a=new Uint8Array(s);if(a.length>=4&&a[0]===0&&a[1]===97&&a[2]===115&&a[3]===109)return s;console.error(`❌ Invalid WASM magic number from URL: ${t}`)}else console.error(`❌ Failed to fetch WASM from URL: ${t}, status: ${e.status}`);return}catch(e){console.error(`❌ Error fetching WASM from ${t}:`,e);return}}async function uC(){try{const{readFile:t}=await Promise.resolve().then(()=>Rr),e=await Promise.resolve().then(()=>Rr),s=[];try{const{createRequire:i}=await Promise.resolve().then(()=>Rr),n=i((typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__filename).href:typeof document>"u"?location.href:ls&&ls.tagName.toUpperCase()==="SCRIPT"&&ls.src||new URL("internal.umd.js",document.baseURI).href)||`file://${process.cwd()}/`).resolve("harfbuzzjs/package.json"),o=e.dirname(n);s.push(e.join(o,"hb.wasm"))}catch{}let a;try{if(typeof(typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__filename).href:typeof document>"u"?location.href:ls&&ls.tagName.toUpperCase()==="SCRIPT"&&ls.src||new URL("internal.umd.js",document.baseURI).href)=="string"){const{fileURLToPath:i}=await Promise.resolve().then(()=>Rr);a=e.dirname(i(typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__filename).href:typeof document>"u"?location.href:ls&&ls.tagName.toUpperCase()==="SCRIPT"&&ls.src||new URL("internal.umd.js",document.baseURI).href))}}catch{}a||(a=process.cwd()),s.push(e.join(a,"dist/hb.wasm"),e.join(a,"assets/wasm/hb.wasm"),e.join(a,"node_modules/harfbuzzjs/hb.wasm"),e.join(a,"node_modules/@shotstack/shotstack-canvas/assets/wasm/hb.wasm")),s.push("/var/task/node_modules/harfbuzzjs/hb.wasm","/var/task/node_modules/@shotstack/shotstack-canvas/assets/wasm/hb.wasm");for(const i of s)try{const r=await t(i);return fC(r)}catch{continue}return await m0(p0)}catch(t){return console.error("Error in loadWasmNode:",t),await m0(p0)}}async function hC(t){try{if(t){const e=t.endsWith(".wasm")?t:t.endsWith("/")?`${t}hb.wasm`:`${t}/hb.wasm`,s=await fetch(e);if(s.ok){const a=await s.arrayBuffer(),i=new Uint8Array(a);if(i.length>=4&&i[0]===0&&i[1]===97&&i[2]===115&&i[3]===109)return a}}return}catch(e){console.error("Error in loadWasmWeb:",e);return}}function dC(t){const e=window.fetch;window.fetch=function(i,r){return(typeof i=="string"?i:i instanceof URL?i.href:i.url).includes("hb.wasm")?Promise.resolve(new Response(t.slice(0),{status:200,statusText:"OK",headers:{"Content-Type":"application/wasm","Content-Length":t.byteLength.toString()}})):e.apply(this,[i,r])};const s=WebAssembly.instantiate;WebAssembly.instantiate=async function(i,r){if(i instanceof WebAssembly.Module||(i instanceof ArrayBuffer,i.byteLength)!==t.byteLength)return s.call(WebAssembly,i,r);const o=await WebAssembly.compile(t),l=await s.call(WebAssembly,o,r);return{module:o,instance:l}};const a=WebAssembly.instantiateStreaming;a&&(WebAssembly.instantiateStreaming=async function(i,r){try{const n=await i;if((n.url||"").includes("hb.wasm")){const l=await WebAssembly.compile(t),c=await WebAssembly.instantiate(l,r);return{module:l,instance:c}}return a.call(WebAssembly,n,r)}catch(n){throw n}})}async function gC(t){if(Nr)return Nr;try{let e;if(g0()?e=await uC():e=await hC(t),!e)throw new Error("Failed to load WASM binary from any source");g0()||(dC(e),window.Module={wasmBinary:e,locateFile:l=>l});const s=await Promise.resolve().then(()=>eN),i=await(s.default||s)({wasmBinary:e}),r=await Promise.resolve().then(()=>aN),o=(r.default||r)(i);if(!o||typeof o.createBuffer!="function"||typeof o.createFont!="function")throw new Error("Failed to initialize HarfBuzz: unexpected export shape from 'harfbuzzjs'.");return Nr=o,Nr}catch(e){throw console.error("Failed to initialize HarfBuzz:",e),new Error(`Failed to initialize HarfBuzz: ${e instanceof Error?e.message:String(e)}`)}}function Ar(t){if(t==null)return"400";if(typeof t=="number")return String(t);const e=String(t).toLowerCase().trim(),s={thin:"100",hairline:"100",extralight:"200",ultralight:"200",light:"300",normal:"400",regular:"400",medium:"500",semibold:"600",demibold:"600",bold:"700",extrabold:"800",ultrabold:"800",black:"900",heavy:"900"};if(s[e])return s[e];const a=parseInt(String(t),10);return!isNaN(a)&&a>=100&&a<=900?String(a):(console.warn(`Invalid font weight "${t}", defaulting to 400`),"400")}var ii=class He{constructor(e){bt(this,"hb"),bt(this,"faces",new Map),bt(this,"fonts",new Map),bt(this,"blobs",new Map),bt(this,"fontkitFonts",new Map),bt(this,"fontkitBaseFonts",new Map),bt(this,"colorEmojiFonts",new Set),bt(this,"colorEmojiFontBytes",new Map),bt(this,"wasmBaseURL"),bt(this,"initPromise"),bt(this,"emojiFallbackDesc"),this.wasmBaseURL=e}static setFallbackLoader(e){He.fallbackLoader=e}static async getSharedInstance(e){if(He.sharedInitPromise){const s=await He.sharedInitPromise;return He.refCount++,s}if(He.sharedInstance)return He.refCount++,He.sharedInstance;He.sharedInitPromise=(async()=>{const s=new He(e);return await s.init(),He.sharedInstance=s,He.refCount=1,s})();try{return await He.sharedInitPromise}finally{He.sharedInitPromise=null}}static getRefCount(){return He.refCount}static hasSharedInstance(){return He.sharedInstance!==null}release(){if(this!==He.sharedInstance){this.destroy();return}He.refCount--,He.refCount<=0&&(this.destroy(),He.sharedInstance=null,He.refCount=0)}static resetSharedInstance(){He.sharedInstance&&(He.sharedInstance.destroy(),He.sharedInstance=null),He.refCount=0,He.sharedInitPromise=null}setEmojiFallback(e){this.emojiFallbackDesc=e}isColorEmojiFont(e){return this.colorEmojiFonts.has(e)}getColorEmojiFontBytes(e){return this.colorEmojiFontBytes.get(e)}getColorEmojiFontFamilies(){return Array.from(this.colorEmojiFonts)}detectColorEmojiFont(e){try{if(e.directory&&e.directory.tables){const s=e.directory.tables;if(s.CBDT||s.CBLC||s.sbix||s.COLR&&s.CPAL||s.SVG)return!0}if(e.availableTables){const s=e.availableTables;if(s.includes("CBDT")||s.includes("CBLC")||s.includes("sbix")||s.includes("COLR")&&s.includes("CPAL")||s.includes("SVG"))return!0}if(e._tables){const s=Object.keys(e._tables);if(s.includes("CBDT")||s.includes("CBLC")||s.includes("sbix")||s.includes("COLR")&&s.includes("CPAL")||s.includes("SVG"))return!0}return!1}catch{return!1}}async init(){if(this.initPromise){await this.initPromise;return}if(!this.hb){this.initPromise=this._doInit();try{await this.initPromise}catch(e){throw new Error(`Failed to initialize FontRegistry: ${e instanceof Error?e.message:String(e)}`)}}}async _doInit(){try{this.hb=await gC("https://shotstack-ingest-api-dev-sources.s3.ap-southeast-2.amazonaws.com/euo5r93oyr/zzz01k9h-yycyx-2x2y6-qx9bj-7n567b/source.wasm")}catch(e){throw this.initPromise=void 0,e}}async getHB(){if(!this.hb)try{await this.init()}catch(e){throw new Error(`Failed to get HarfBuzz instance: ${e instanceof Error?e.message:String(e)}`)}return this.hb}key(e){const s=Ar(e.weight);return`${e.family}__${s}`}async registerFromBytes(e,s){try{this.hb||await this.init();const a=this.key(s);if(this.fonts.has(a))return;const i=this.hb.createBlob(e),r=this.hb.createFace(i,0),n=this.hb.createFont(r),o=r.upem||1e3;n.setScale(o,o);const l=Ar(s.weight),c=parseInt(l,10);if(c!==400&&typeof n.setVariations=="function")try{n.setVariations(`wght=${c}`)}catch{}this.blobs.set(a,i),this.faces.set(a,r),this.fonts.set(a,n);try{const f=typeof Buffer<"u"?Buffer.from(e):new Uint8Array(e),h=Bc(f),d=s.family;if(this.fontkitBaseFonts.has(d)||this.fontkitBaseFonts.set(d,h),this.detectColorEmojiFont(h)&&(this.colorEmojiFonts.add(s.family),this.colorEmojiFontBytes.has(s.family)||this.colorEmojiFontBytes.set(s.family,e.slice(0))),h.variationAxes&&Object.keys(h.variationAxes).length>0){const b=h.getVariation({wght:c});this.fontkitFonts.set(a,b)}else this.fontkitFonts.set(a,h)}catch(f){console.warn(`⚠️ Fontkit failed for ${s.family}:`,f)}}catch(a){throw new Error(`Failed to register font "${s.family}": ${a instanceof Error?a.message:String(a)}`)}}async tryFallbackInstall(e){const s=He.fallbackLoader;if(!s)return!1;try{const a=Ar(e.weight),i=await s({family:e.family,weight:a});return i?(await this.registerFromBytes(i,{family:e.family,weight:a}),!0):!1}catch{return!1}}async getFont(e){try{this.hb||await this.init();const s=this.key(e);let a=this.fonts.get(s);if(a||(a=await this.tryFallbackInstall(e)?this.fonts.get(s):void 0),a||(a=await this.tryDeriveFromExistingFont(e)),!a)throw new Error(`Font not registered for ${s}`);return a}catch(s){throw s instanceof Error&&s.message.includes("Font not registered")?s:new Error(`Failed to get font "${e.family}": ${s instanceof Error?s.message:String(s)}`)}}async tryDeriveFromExistingFont(e){const s=e.family,a=Ar(e.weight),i=parseInt(a,10);let r;for(const[d,m]of this.blobs)if(d.startsWith(`${s}__`)){r=m;break}const n=this.fontkitBaseFonts.get(s);if(!r||!n)return;if(!(n.variationAxes&&n.variationAxes.wght!==void 0)){console.warn(`Font ${s} is not a variable font, cannot derive weight ${a}`);return}const l=this.key(e),c=this.hb.createFace(r,0),f=this.hb.createFont(c),h=c.upem||1e3;if(f.setScale(h,h),typeof f.setVariations=="function")try{f.setVariations(`wght=${i}`)}catch{}this.faces.set(l,c),this.fonts.set(l,f);try{const d=n.getVariation({wght:i});this.fontkitFonts.set(l,d)}catch{this.fontkitFonts.set(l,n),console.warn(`⚠️ Could not apply weight variation, using base font for ${s}`)}return f}async getFace(e){try{this.hb||await this.init();const s=this.key(e);let a=this.faces.get(s);return a||(a=await this.tryFallbackInstall(e)?this.faces.get(s):void 0),a||(await this.tryDeriveFromExistingFont(e),a=this.faces.get(s)),a}catch(s){throw new Error(`Failed to get face for "${e.family}": ${s instanceof Error?s.message:String(s)}`)}}async getUnitsPerEm(e){try{return(await this.getFace(e))?.upem||1e3}catch(s){throw new Error(`Failed to get units per em for "${e.family}": ${s instanceof Error?s.message:String(s)}`)}}async glyphPath(e,s){const a=this.key(e);try{const i=this.fontkitFonts.get(a);if(i){const o=i.getGlyph(s);if(o&&o.path){const l=o.path.toSVG();return l&&l!==""?l:"M 0 0"}}const n=(await this.getFont(e)).glyphToPath(s);return n&&n!==""?n:"M 0 0"}catch(i){throw new Error(`Failed to get glyph path for glyph ${s} in font "${e.family}": ${i instanceof Error?i.message:String(i)}`)}}destroy(){try{for(const[,e]of this.fonts)try{e.destroy()}catch(s){console.error(`Error destroying font: ${s instanceof Error?s.message:String(s)}`)}for(const[,e]of this.faces)try{e.destroy()}catch(s){console.error(`Error destroying face: ${s instanceof Error?s.message:String(s)}`)}for(const[,e]of this.blobs)try{e.destroy()}catch(s){console.error(`Error destroying blob: ${s instanceof Error?s.message:String(s)}`)}this.fonts.clear(),this.faces.clear(),this.blobs.clear(),this.fontkitFonts.clear(),this.fontkitBaseFonts.clear(),this.colorEmojiFonts.clear(),this.colorEmojiFontBytes.clear(),this.hb=void 0,this.initPromise=void 0}catch(e){console.error(`Error during FontRegistry cleanup: ${e instanceof Error?e.message:String(e)}`)}}};bt(ii,"sharedInstance",null),bt(ii,"refCount",0),bt(ii,"sharedInitPromise",null),bt(ii,"fallbackLoader");var y0=ii;function pC(t){const e=t.codePointAt(0);return e?e>=127744&&e<=129535||e>=9728&&e<=9983||e>=9984&&e<=10175||e>=65024&&e<=65039||e>=128512&&e<=128591||e>=128640&&e<=128767||e>=129280&&e<=129535||e>=129648&&e<=129791:!1}var mC=class{constructor(t){this.fonts=t}transformText(t,e){switch(e){case"uppercase":return t.toUpperCase();case"lowercase":return t.toLowerCase();case"capitalize":return t.replace(/\b\w/g,s=>s.toUpperCase());default:return t}}async shapeFull(t,e){try{const s=await this.fonts.getHB(),a=s.createBuffer();try{a.addText(t),a.guessSegmentProperties();const i=await this.fonts.getFont(e),n=(await this.fonts.getFace(e))?.upem||1e3;return i.setScale(n,n),s.shape(i,a),a.json()}finally{try{a.destroy()}catch(i){console.error(`Error destroying HarfBuzz buffer: ${i instanceof Error?i.message:String(i)}`)}}}catch(s){throw new Error(`Failed to shape text with font "${e.family}": ${s instanceof Error?s.message:String(s)}`)}}async layout(t){try{const{textTransform:e,desc:s,fontSize:a,letterSpacing:i,width:r,emojiFallback:n}=t,o=this.transformText(t.text,e);if(!o||o.length===0)return[];let l;try{if(!n)l=await this.shapeFull(o,s);else{const I=Array.from(o),v=[];let F={text:"",startIndex:0,isEmoji:!1};for(let y=0;y<I.length;y++){const Z=I[y],P=pC(Z);y===0?F={text:Z,startIndex:0,isEmoji:P}:F.isEmoji===P?F.text+=Z:(v.push(F),F={text:Z,startIndex:F.startIndex+F.text.length,isEmoji:P})}F.text&&v.push(F),l=[];for(const y of v){const Z=y.isEmoji?n:s,P=await this.shapeFull(y.text,Z);for(const B of P)B.cl+=y.startIndex,B.fontDesc=Z;l.push(...P)}}}catch(I){throw new Error(`Text shaping failed: ${I instanceof Error?I.message:String(I)}`)}let c;try{c=(await this.fonts.getFace(s))?.upem||1e3}catch(I){throw new Error(`Failed to get font metrics: ${I instanceof Error?I.message:String(I)}`)}const f=a/c,h=l.map(I=>{const v=I.cl;let F;if(v>=0&&v<o.length){const y=o.codePointAt(v);y!==void 0&&(F=String.fromCodePoint(y))}return{id:I.g,xAdvance:I.ax*f+i,xOffset:I.dx*f,yOffset:-I.dy*f,cluster:I.cl,char:F,fontDesc:I.fontDesc}}),d=[];let m=[],b=0;const V=new Set;for(let I=0;I<o.length;I++)o[I]===" "&&V.add(I);let M=-1;for(let I=0;I<h.length;I++){const v=h[I],F=v.xAdvance;if(v.char===`
|
|
274
|
-
`){d.push({glyphs:m,width:b,y:0}),m=[],b=0,M=I;continue}if(b+F>r&&m.length>0){if(M>-1){const y=M-(I-m.length)+1,Z=m.splice(y),P=m.reduce((B,J)=>B+J.xAdvance,0);d.push({glyphs:m,width:P,y:0}),m=Z,b=Z.reduce((B,J)=>B+J.xAdvance,0)}else d.push({glyphs:m,width:b,y:0}),m=[],b=0;M=-1}m.push(v),b+=F,V.has(v.cluster)&&(M=I)}m.length>0&&d.push({glyphs:m,width:b,y:0});const E=t.lineHeight*a;for(let I=0;I<d.length;I++)d[I].y=(I+1)*E;return d}catch(e){throw e instanceof Error?e:new Error(`Layout failed: ${String(e)}`)}}};function yC(t,e){return t.type==="linear"?{kind:"linear",angle:t.angle,stops:t.stops,opacity:e}:{kind:"radial",stops:t.stops,opacity:e}}function bC(t,e){const s=Math.max(1,Math.round(e.fontSize*.05));let a=e.baselineY+Math.round(e.fontSize*.1);return t==="line-through"&&(a=e.baselineY-Math.round(e.fontSize*.3)),{x1:e.xStart,x2:e.xStart+e.lineWidth,y:a,width:s}}function wC(t){return t==null?{top:0,right:0,bottom:0,left:0}:typeof t=="number"?{top:t,right:t,bottom:t,left:t}:t}async function vC(t){const e=[],s=wC(t.padding),a=t.border?.width??0;if(e.push({op:"BeginFrame",width:t.canvas.width,height:t.canvas.height,pixelRatio:t.canvas.pixelRatio,clear:!0,bg:void 0}),t.lines.length===0)return e;const i=Math.max(1,await t.getUnitsPerEm()),r=t.font.size/i,n=t.lines.length,o=t.font.size*t.style.lineHeight;let l;switch(t.align.vertical){case"top":l=t.font.size;break;case"bottom":l=t.textRect.height-(n-1)*o;break;case"middle":default:const I=t.font.size*.35;l=(t.textRect.height-(n-1)*o)/2+I;break}l+=a+s.top;const c=t.style.gradient?yC(t.style.gradient,1):{kind:"solid",color:t.font.color,opacity:t.font.opacity},f=t.style.gradient?t.style.gradient.stops[t.style.gradient.stops.length-1]?.color??t.font.color:t.font.color,h=[],d=[];let m=1/0,b=1/0,V=-1/0,M=-1/0;for(const E of t.lines){let I;switch(t.align.horizontal){case"left":I=0;break;case"right":I=t.textRect.width-E.width;break;case"center":default:I=(t.textRect.width-E.width)/2;break}I+=a+s.left;let v=I;const F=t.lines.indexOf(E),y=l+F*o;if(t.font.background){const Z=t.font.size*.15,P=t.font.size*.12,B=t.font.size*.92+P*2,J=y-t.font.size*.78-P;d.push({op:"Rectangle",x:I-Z,y:J,width:E.width+Z*2,height:B,fill:{kind:"solid",color:t.font.background,opacity:1}})}for(const Z of E.glyphs){const P=v+Z.xOffset,B=y+Z.yOffset,J=Z.fontDesc?.family;if((Z.isColorEmoji||J&&t.isColorEmojiFont&&t.isColorEmojiFont(J))&&Z.char){h.push({op:"DrawColorEmoji",char:Z.char,x:P,y:B,fontSize:t.font.size,fontFamily:J||"NotoColorEmoji"}),v+=Z.xAdvance;continue}const se=await t.glyphPathProvider(Z.id,Z.fontDesc);if(!se||se==="M 0 0"){v+=Z.xAdvance;continue}const ue=CC(se),Ce=P+r*ue.x,Te=P+r*(ue.x+ue.w),Ae=B-r*(ue.y+ue.h),Le=B-r*ue.y;Ce<m&&(m=Ce),Ae<b&&(b=Ae),Te>V&&(V=Te),Le>M&&(M=Le),t.shadow&&t.shadow.blur>0&&h.push({isShadow:!0,op:"FillPath",path:se,x:P+t.shadow.offsetX,y:B+t.shadow.offsetY,scale:r,fill:{kind:"solid",color:t.shadow.color,opacity:t.shadow.opacity}}),t.stroke&&t.stroke.width>0&&h.push({op:"StrokePath",path:se,x:P,y:B,scale:r,width:t.stroke.width,color:t.stroke.color,opacity:t.stroke.opacity}),h.push({op:"FillPath",path:se,x:P,y:B,scale:r,fill:c}),v+=Z.xAdvance}if(t.style.textDecoration!=="none"){const Z=bC(t.style.textDecoration,{baselineY:y,fontSize:t.font.size,lineWidth:E.width,xStart:I});h.push({op:"DecorationLine",from:{x:Z.x1,y:Z.y},to:{x:Z.x2,y:Z.y},width:Z.width,color:f,opacity:t.font.opacity})}}if(m!==1/0){const E={x:m,y:b,w:Math.max(1,V-m),h:Math.max(1,M-b)};for(const I of h)I.op==="FillPath"&&!I.isShadow&&(I.gradientBBox=E)}if(t.background||t.border){const E=t.contentRect?.width??t.canvas.width,I=t.contentRect?.height??t.canvas.height,v=t.border?.width??0,F=t.border?.radius??0,y=v/2,Z=t.canvas.width/2,P=t.canvas.height/2,B=Z-E/2,J=P-I/2,$=Math.min(E-v,I-v)/2,se=Math.min(F,$),ue=Math.max(0,se-y);t.background?.color&&e.push({op:"Rectangle",x:B+v,y:J+v,width:E-v*2,height:I-v*2,fill:{kind:"solid",color:t.background.color,opacity:t.background.opacity},borderRadius:ue}),t.border&&t.border.width>0&&e.push({op:"RectangleStroke",x:B+y,y:J+y,width:E-v,height:I-v,stroke:{width:t.border.width,color:t.border.color,opacity:t.border.opacity},borderRadius:se})}return e.push(...d),e.push(...h),e}function xC(t){return t.match(/[MLCQZ]|-?\d*\.?\d+(?:e[-+]?\d+)?/gi)??[]}function CC(t){const e=xC(t);let s=0,a=1/0,i=1/0,r=-1/0,n=-1/0;const o=(l,c)=>{l<a&&(a=l),c<i&&(i=c),l>r&&(r=l),c>n&&(n=c)};for(;s<e.length;)switch(e[s++]){case"M":case"L":{const c=parseFloat(e[s++]),f=parseFloat(e[s++]);o(c,f);break}case"C":{const c=parseFloat(e[s++]),f=parseFloat(e[s++]),h=parseFloat(e[s++]),d=parseFloat(e[s++]),m=parseFloat(e[s++]),b=parseFloat(e[s++]);o(c,f),o(h,d),o(m,b);break}case"Q":{const c=parseFloat(e[s++]),f=parseFloat(e[s++]),h=parseFloat(e[s++]),d=parseFloat(e[s++]);o(c,f),o(h,d);break}}return a===1/0?{x:0,y:0,w:0,h:0}:{x:a,y:i,w:r-a,h:n-i}}var fo=.999;function kC(t,e,s){if(!s.anim||!s.anim.preset)return t;const{preset:a}=s.anim,i=e.reduce((l,c)=>l+c.glyphs.length,0);let r=Math.max(.3,i/(30*s.anim.speed));s.clipDuration&&!s.anim.duration&&(r=Math.min(r,s.clipDuration*.9));const n=s.anim.duration??r,o=Math.max(0,Math.min(1,s.t/n));switch(a){case"typewriter":return AC(t,e,o,s.anim.style,s.fontSize,s.t);case"fadeIn":return IC(t,e,o,s.anim.style,s.fontSize,n);case"slideIn":return _C(t,e,o,s.anim.direction??"left",s.fontSize,s.anim.style,n);case"shift":return VC(t,e,o,s.anim.direction??"left",s.fontSize,s.anim.style,n);case"ascend":return SC(t,e,o,s.anim.direction??"up",s.fontSize,n);case"movingLetters":return FC(t,s.t,s.anim.direction??"up",s.fontSize);default:return t}}var Sr=t=>t.op==="FillPath"&&t.isShadow===!0,Vr=t=>t.op==="FillPath"&&!t.isShadow;function NC(t){for(const e of t)if(e.op==="FillPath"){const s=e.fill;if(s?.kind==="solid")return s.color;if((s?.kind==="linear"||s?.kind==="radial")&&Array.isArray(s.stops)&&s.stops.length)return s.stops[s.stops.length-1].color||"#000000"}return"#000000"}function AC(t,e,s,a,i,r,n){if(a==="word"){const l=ri(e),c=l.length,f=Math.floor(s*c);if(f===0)return t.filter(b=>b.op==="BeginFrame"||b.op==="Rectangle"||b.op==="RectangleStroke");let h=0;for(let b=0;b<Math.min(f,l.length);b++)h+=l[b].glyphCount;const d=b0(t,h),m=s>=fo?d:d.filter(b=>b.op!=="DecorationLine");return s<1&&h>0?w0(m,h,i):m}else{const l=e.reduce((d,m)=>d+m.glyphs.length,0),c=Math.floor(s*l);if(c===0)return t.filter(d=>d.op==="BeginFrame"||d.op==="Rectangle"||d.op==="RectangleStroke");const f=b0(t,c),h=s>=fo?f:f.filter(d=>d.op!=="DecorationLine");return s<1&&c>0?w0(h,c,i):h}}function SC(t,e,s,a,i,r){const n=ri(e),o=n.length;if(o===0)return t;const l=[];let c=0;for(const f of t)if((f.op==="BeginFrame"||f.op==="Rectangle"||f.op==="RectangleStroke")&&l.push(f),f.op==="FillPath"||f.op==="StrokePath")break;for(const f of t)if(f.op==="FillPath"||f.op==="StrokePath"){let h=-1,d=0;for(let m=0;m<n.length;m++){const b=n[m].glyphCount;if(c>=d&&c<d+b){h=m;break}d+=b}if(h>=0){const m=h/Math.max(1,o)*(r/r),b=Math.min(1,m+.3);if(s>=b)l.push(f);else if(s>m){const V=(s-m)/Math.max(1e-6,b-m),M=Ir(Math.min(1,V)),E=a==="up"?i*.4:-i*.4,I={...f,y:f.y+E*(1-M)};f.op==="FillPath"?I.fill.kind==="solid"?I.fill={...I.fill,opacity:I.fill.opacity*M}:I.fill={...I.fill,opacity:(I.fill.opacity??1)*M}:I.opacity=I.opacity*M,l.push(I)}}Vr(f)&&c++}else f.op==="DecorationLine"&&s>=fo&&l.push(f);return l}function VC(t,e,s,a,i,r,n){const o=r==="word",c={left:{x:i*.6,y:0},right:{x:-i*.6,y:0},up:{x:0,y:i*.6},down:{x:0,y:-i*.6}}[a],f=o?ri(e):[],h=e.reduce((v,F)=>v+F.glyphs.length,0),d=o?f.length:h;if(d===0)return t;const m=[];for(const v of t)if((v.op==="BeginFrame"||v.op==="Rectangle"||v.op==="RectangleStroke")&&m.push(v),v.op==="FillPath"||v.op==="StrokePath")break;const b=.3,M=n*.7/Math.max(1,d-1),E=v=>{const F=v*M,y=F/n,Z=Math.min(1,(F+b)/n);return{startF:y,endF:Z}};let I=0;for(const v of t){if(v.op!=="FillPath"&&v.op!=="StrokePath"){v.op==="DecorationLine"&&s>.8&&m.push(v);continue}let F;if(!o)F=I;else{let P=-1,B=0;for(let J=0;J<f.length;J++){const $=f[J].glyphCount;if(I>=B&&I<B+$){P=J;break}B+=$}F=Math.max(0,P)}const{startF:y,endF:Z}=E(F);if(s<=y){const P={...v,x:v.x+c.x,y:v.y+c.y};v.op==="FillPath"?P.fill.kind==="solid"?P.fill={...P.fill,opacity:0}:P.fill={...P.fill,opacity:0}:P.opacity=0,m.push(P)}else if(s>=Z)m.push(v);else{const P=(s-y)/Math.max(1e-6,Z-y),B=Ir(Math.min(1,P)),J=c.x*(1-B),$=c.y*(1-B),se={...v,x:v.x+J,y:v.y+$};if(v.op==="FillPath"){const ue=se.fill.kind==="solid"?se.fill.opacity:se.fill.opacity??1;se.fill.kind==="solid"?se.fill={...se.fill,opacity:ue*B}:se.fill={...se.fill,opacity:ue*B}}else se.opacity=se.opacity*B;m.push(se)}Vr(v)&&I++}return m}function IC(t,e,s,a,i,r){const n=a==="word";if(!n&&!(a==="character")){const E=uo(s),I=.95+.05*E;return PC(t,E,I)}const l=n?ri(e):[],c=e.reduce((E,I)=>E+I.glyphs.length,0),f=n?l.length:c;if(f===0)return t;const h=[];for(const E of t)if(E.op==="BeginFrame"){h.push(E);break}const d=.3,b=r*.7/Math.max(1,f-1),V=E=>{const I=E*b,v=I/r,F=Math.min(1,(I+d)/r);return{startF:v,endF:F}};let M=0;for(const E of t){if(E.op!=="FillPath"&&E.op!=="StrokePath"){E.op==="DecorationLine"&&s>.8&&h.push(E);continue}let I;if(!n)I=M;else{let y=-1,Z=0;for(let P=0;P<l.length;P++){const B=l[P].glyphCount;if(M>=Z&&M<Z+B){y=P;break}Z+=B}I=Math.max(0,y)}const{startF:v,endF:F}=V(I);if(s<=v){const y={...E};E.op==="FillPath"?y.fill.kind==="solid"?y.fill={...y.fill,opacity:0}:y.fill={...y.fill,opacity:0}:y.opacity=0,h.push(y)}else if(s>=F)h.push(E);else{const y=(s-v)/Math.max(1e-6,F-v),Z=uo(Math.min(1,y)),P={...E};if(E.op==="FillPath"){const B=P.fill.kind==="solid"?P.fill.opacity:P.fill.opacity??1;P.fill.kind==="solid"?P.fill={...P.fill,opacity:B*Z}:P.fill={...P.fill,opacity:B*Z}}else P.opacity=P.opacity*Z;h.push(P)}Vr(E)&&M++}return h}function _C(t,e,s,a,i,r,n){const o=r==="word";if(!o&&!(r==="character")){const F=Ir(s),y=MC(1-F,a,i*2),Z=uo(s);return EC(t,y.dx,y.dy,Z)}const f={left:{x:i*2,y:0},right:{x:-i*2,y:0},up:{x:0,y:i*2},down:{x:0,y:-i*2}}[a],h=o?ri(e):[],d=e.reduce((F,y)=>F+y.glyphs.length,0),m=o?h.length:d;if(m===0)return t;const b=[];for(const F of t)if(F.op==="BeginFrame"){b.push(F);break}const V=.3,E=n*.7/Math.max(1,m-1),I=F=>{const y=F*E,Z=y/n,P=Math.min(1,(y+V)/n);return{startF:Z,endF:P}};let v=0;for(const F of t){if(F.op!=="FillPath"&&F.op!=="StrokePath"){F.op==="DecorationLine"&&s>.8&&b.push(F);continue}let y;if(!o)y=v;else{let B=-1,J=0;for(let $=0;$<h.length;$++){const se=h[$].glyphCount;if(v>=J&&v<J+se){B=$;break}J+=se}y=Math.max(0,B)}const{startF:Z,endF:P}=I(y);if(s<=Z){const B={...F,x:F.x+f.x,y:F.y+f.y};F.op==="FillPath"?B.fill.kind==="solid"?B.fill={...B.fill,opacity:0}:B.fill={...B.fill,opacity:0}:B.opacity=0,b.push(B)}else if(s>=P)b.push(F);else{const B=(s-Z)/Math.max(1e-6,P-Z),J=Ir(Math.min(1,B)),$=f.x*(1-J),se=f.y*(1-J),ue={...F,x:F.x+$,y:F.y+se};if(F.op==="FillPath"){const Ce=ue.fill.kind==="solid"?ue.fill.opacity:ue.fill.opacity??1;ue.fill.kind==="solid"?ue.fill={...ue.fill,opacity:Ce*J}:ue.fill={...ue.fill,opacity:Ce*J}}else ue.opacity=ue.opacity*J;b.push(ue)}Vr(F)&&v++}return b}function FC(t,e,s,a){const i=a*.3;return OC(t,s,i,e)}function ri(t){const e=[];let s=0;for(let a=0;a<t.length;a++){const i=t[a],r=TC(i);for(const n of r)n.length>0&&e.push({startGlyph:s,glyphCount:n.length,lineIndex:a}),s+=n.length}return e}function TC(t){const e=[];let s=[];for(const a of t.glyphs)a.char===" "||a.char===" "||a.char===`
|
|
275
|
-
`?s.length&&(e.push([...s]),s=[]):s.push(a);return s.length&&e.push(s),e}function b0(t,e){const s=[];let a=0,i=!1;for(const r of t){if(r.op==="BeginFrame"||r.op==="Rectangle"||r.op==="RectangleStroke"){s.push(r);continue}if(r.op==="FillPath"&&!Sr(r)){a<e&&(s.push(r),i=!0),a++;continue}if(r.op==="StrokePath"){a<e&&s.push(r);continue}if(r.op==="FillPath"&&Sr(r)){a<e&&s.push(r);continue}if(r.op==="DecorationLine"&&i){s.push(r);continue}}return s}function w0(t,e,s,a){if(e===0)return t;let i=null,r=0;for(const n of t)if(n.op==="FillPath"&&!Sr(n)&&(r++,r===e)){i=n;break}if(i&&i.op==="FillPath"){const n=NC(t),o=i.x+s*.5,l=i.y,c=Math.max(3,s/15),f={op:"DecorationLine",from:{x:o,y:l-s*.75},to:{x:o,y:l+s*.15},width:c,color:n,opacity:1};return[...t,f]}return t}function PC(t,e,s){let a=0,i=0,r=0;return t.forEach(n=>{n.op==="FillPath"&&(a+=n.x,i+=n.y,r++)}),r>0&&(a/=r,i/=r),t.map(n=>{if(n.op==="FillPath"){const o={...n};if(o.fill.kind==="solid"?o.fill={...o.fill,opacity:o.fill.opacity*e}:o.fill={...o.fill,opacity:(o.fill.opacity??1)*e},s!==1&&r>0){const l=n.x-a,c=n.y-i;o.x=a+l*s,o.y=i+c*s}return o}if(n.op==="StrokePath"){const o={...n,opacity:n.opacity*e};if(s!==1&&r>0){const l=n.x-a,c=n.y-i;o.x=a+l*s,o.y=i+c*s}return o}return n.op==="DecorationLine"?{...n,opacity:n.opacity*e}:n})}function EC(t,e,s,a=1){return t.map(i=>{if(i.op==="FillPath"){const r={...i,x:i.x+e,y:i.y+s};return a<1&&(r.fill.kind==="solid"?r.fill={...r.fill,opacity:r.fill.opacity*a}:r.fill={...r.fill,opacity:(r.fill.opacity??1)*a}),r}return i.op==="StrokePath"?{...i,x:i.x+e,y:i.y+s,opacity:i.opacity*a}:i.op==="DecorationLine"?{...i,from:{x:i.from.x+e,y:i.from.y+s},to:{x:i.to.x+e,y:i.to.y+s},opacity:i.opacity*a}:i})}function OC(t,e,s,a){let i=0;const n=Math.min(1,a/.5);return t.map(o=>{if(o.op==="FillPath"||o.op==="StrokePath"){const l=Math.sin(i/5*Math.PI+a*Math.PI*2),c=e==="left"||e==="right"?l*s*(e==="left"?-1:1):0,f=e==="up"||e==="down"?l*s*(e==="up"?-1:1):0;if(o.op==="FillPath"){Sr(o)||i++;const h={...o,x:o.x+c,y:o.y+f};return h.fill.kind==="solid"?h.fill={...h.fill,opacity:h.fill.opacity*n}:h.fill={...h.fill,opacity:(h.fill.opacity??1)*n},h}return{...o,x:o.x+c,y:o.y+f,opacity:o.opacity*n}}return o})}function MC(t,e,s){const a=t*s;switch(e){case"left":return{dx:-a,dy:0};case"right":return{dx:a,dy:0};case"up":return{dx:0,dy:-a};case"down":return{dx:0,dy:a}}}function uo(t){return t*(2-t)}function Ir(t){return 1-Math.pow(1-t,3)}function Js(t,e=1){const s=/^#?([a-f0-9]{6})$/i.exec(t);if(!s)throw new Error(`Invalid color ${t}`);const a=parseInt(s[1],16),i=a>>16&255,r=a>>8&255,n=a&255;return{r:i,g:r,b:n,a:e}}function RC(t){const e=t.getContext("2d");if(!e)throw new Error("2D context unavailable");return{async render(s){const a=zC(s),i=new Map;for(const r of s){if(r.op==="BeginFrame"){r.pixelRatio;const n=r.width,o=r.height;if("width"in t&&"height"in t&&(t.width=Math.floor(n),t.height=Math.floor(o)),"style"in t&&(t.style.width=`${n}px`,t.style.height=`${o}px`),e.setTransform(1,0,0,1,0,0),r.clear&&e.clearRect(0,0,n,o),r.bg&&r.bg.color){const{color:l,opacity:c,radius:f}=r.bg;if(l){const h=Js(l,c);f&&f>0?(e.fillStyle=`rgba(${h.r},${h.g},${h.b},${h.a})`,v0(e,0,0,n,o,f),e.fill()):(e.fillStyle=`rgba(${h.r},${h.g},${h.b},${h.a})`,e.fillRect(0,0,n,o))}}continue}if(r.op==="FillPath"){const n=r,o=new Path2D(n.path);e.save(),e.translate(n.x,n.y);const l=n.scale??1;e.scale(l,-l);const c=n.gradientBBox??a,f={x:(c.x-n.x)/l,y:-(c.y-n.y)/l,w:c.w/l,h:c.h/l},h=JSON.stringify({fill:n.fill,bbox:f});let d=i.get(h);d||(d=ni(e,n.fill,f),i.set(h,d)),e.fillStyle=d,e.fill(o),e.restore();continue}if(r.op==="StrokePath"){const n=r,o=new Path2D(n.path);e.save(),e.translate(n.x,n.y);const l=n.scale??1;e.scale(l,-l);const c=1/Math.abs(l),f=Js(n.color,n.opacity);e.strokeStyle=`rgba(${f.r},${f.g},${f.b},${f.a})`,e.lineWidth=n.width*c,e.lineJoin="round",e.lineCap="round",e.stroke(o),e.restore();continue}if(r.op==="DecorationLine"){e.save();const n=Js(r.color,r.opacity);e.strokeStyle=`rgba(${n.r},${n.g},${n.b},${n.a})`,e.lineWidth=r.width,e.beginPath(),e.moveTo(r.from.x,r.from.y),e.lineTo(r.to.x,r.to.y),e.stroke(),e.restore();continue}if(r.op==="Rectangle"){e.save();const n=ni(e,r.fill,{x:r.x,y:r.y,w:r.width,h:r.height});e.fillStyle=n,r.borderRadius&&r.borderRadius>0?v0(e,r.x,r.y,r.width,r.height,r.borderRadius):e.fillRect(r.x,r.y,r.width,r.height),e.restore();continue}if(r.op==="RectangleStroke"){e.save();const n=Js(r.stroke.color,r.stroke.opacity);if(e.strokeStyle=`rgba(${n.r},${n.g},${n.b},${n.a})`,e.lineWidth=r.stroke.width,r.borderRadius&&r.borderRadius>0){const o=new Path2D,l=r.x,c=r.y,f=r.width,h=r.height,d=Math.min(f,h)/2,m=Math.min(r.borderRadius,d);o.moveTo(l+m,c),o.arcTo(l+f,c,l+f,c+h,m),o.arcTo(l+f,c+h,l,c+h,m),o.arcTo(l,c+h,l,c,m),o.arcTo(l,c,l+f,c,m),o.closePath(),e.stroke(o)}else e.strokeRect(r.x,r.y,r.width,r.height);e.restore();continue}if(r.op==="DrawColorEmoji"){e.save(),e.font=`${r.fontSize}px "${r.fontFamily}"`,e.textBaseline="alphabetic",e.fillText(r.char,r.x,r.y),e.restore();continue}if(r.op==="Ellipse"){e.save();const n=r.gradientBBox??{x:r.cx-r.rx,y:r.cy-r.ry,w:r.rx*2,h:r.ry*2},o=ni(e,r.fill,n);e.fillStyle=o,e.beginPath();const l=(r.rotation??0)*Math.PI/180;e.ellipse(r.cx,r.cy,r.rx,r.ry,l,0,Math.PI*2),e.fill(),e.restore();continue}if(r.op==="EllipseStroke"){e.save(),ho(e,r.stroke),e.beginPath();const n=(r.rotation??0)*Math.PI/180;e.ellipse(r.cx,r.cy,r.rx,r.ry,n,0,Math.PI*2),e.stroke(),e.restore();continue}if(r.op==="Polygon"){e.save();const n=r.gradientBBox??DC(r.points),o=ni(e,r.fill,n);e.fillStyle=o,e.beginPath(),C0(e,r.points,r.closed??!0),e.fill(),e.restore();continue}if(r.op==="PolygonStroke"){e.save(),ho(e,r.stroke),e.beginPath(),C0(e,r.points,r.closed??!0),e.stroke(),e.restore();continue}if(r.op==="ShapePath"){e.save(),e.translate(r.x,r.y);const n=r.gradientBBox??x0(r.path),o=ni(e,r.fill,n);e.fillStyle=o;const l=new Path2D(r.path);e.fill(l),e.restore();continue}if(r.op==="ShapePathStroke"){e.save(),e.translate(r.x,r.y),ho(e,r.stroke);const n=new Path2D(r.path);e.stroke(n),e.restore();continue}}}}}function v0(t,e,s,a,i,r){const n=Math.min(a,i)/2,o=Math.min(r,n),l=new Path2D;l.moveTo(e+o,s),l.arcTo(e+a,s,e+a,s+i,o),l.arcTo(e+a,s+i,e,s+i,o),l.arcTo(e,s+i,e,s,o),l.arcTo(e,s,e+a,s,o),l.closePath(),t.save(),t.fill(l),t.restore()}function ni(t,e,s){if(e.kind==="solid"){const o=Js(e.color,e.opacity);return`rgba(${o.r},${o.g},${o.b},${o.a})`}const a=s.x+s.w/2,i=s.y+s.h/2,r=Math.max(s.w,s.h)/2,n=o=>{const l=e.kind==="linear"||e.kind==="radial"?e.opacity:1,c=e.kind==="linear"||e.kind==="radial"?e.stops:[];for(const f of c){const h=Js(f.color,l);o.addColorStop(f.offset,`rgba(${h.r},${h.g},${h.b},${h.a})`)}return o};if(e.kind==="linear"){const o=e.angle*Math.PI/180,l=a+Math.cos(o+Math.PI)*r,c=i+Math.sin(o+Math.PI)*r,f=a+Math.cos(o)*r,h=i+Math.sin(o)*r;return n(t.createLinearGradient(l,c,f,h))}else return n(t.createRadialGradient(a,i,0,a,i,r))}function zC(t){let e=1/0,s=1/0,a=-1/0,i=-1/0;for(const r of t){if(r.op!=="FillPath")continue;const n=r;if(n.isShadow)continue;const o=x0(n.path),l=n.scale??1,c=n.x+l*o.x,f=n.x+l*(o.x+o.w),h=n.y-l*(o.y+o.h),d=n.y-l*o.y;c<e&&(e=c),h<s&&(s=h),f>a&&(a=f),d>i&&(i=d)}return e===1/0?{x:0,y:0,w:1,h:1}:{x:e,y:s,w:Math.max(1,a-e),h:Math.max(1,i-s)}}function x0(t){const e=LC(t);let s=0,a=1/0,i=1/0,r=-1/0,n=-1/0;const o=(l,c)=>{l<a&&(a=l),c<i&&(i=c),l>r&&(r=l),c>n&&(n=c)};for(;s<e.length;)switch(e[s++]){case"M":case"L":{const c=parseFloat(e[s++]),f=parseFloat(e[s++]);o(c,f);break}case"C":{const c=parseFloat(e[s++]),f=parseFloat(e[s++]),h=parseFloat(e[s++]),d=parseFloat(e[s++]),m=parseFloat(e[s++]),b=parseFloat(e[s++]);o(c,f),o(h,d),o(m,b);break}case"Q":{const c=parseFloat(e[s++]),f=parseFloat(e[s++]),h=parseFloat(e[s++]),d=parseFloat(e[s++]);o(c,f),o(h,d);break}}return a===1/0?{x:0,y:0,w:0,h:0}:{x:a,y:i,w:r-a,h:n-i}}function LC(t){return t.match(/[MLCQZ]|-?\d*\.?\d+(?:e[-+]?\d+)?/gi)??[]}function ho(t,e){const s=Js(e.color,e.opacity);t.strokeStyle=`rgba(${s.r},${s.g},${s.b},${s.a})`,t.lineWidth=e.width,t.lineCap=e.lineCap??"butt",t.lineJoin=e.lineJoin??"miter",e.dashArray&&e.dashArray.length>0&&t.setLineDash(e.dashArray)}function DC(t){if(t.length===0)return{x:0,y:0,w:0,h:0};let e=t[0].x,s=t[0].y,a=t[0].x,i=t[0].y;for(let r=1;r<t.length;r++){const n=t[r];n.x<e&&(e=n.x),n.y<s&&(s=n.y),n.x>a&&(a=n.x),n.y>i&&(i=n.y)}return{x:e,y:s,w:a-e,h:i-s}}function C0(t,e,s){if(e.length!==0){t.moveTo(e[0].x,e[0].y);for(let a=1;a<e.length;a++)t.lineTo(e[a].x,e[a].y);s&&t.closePath()}}async function oi(t){try{const e=await fetch(t);if(!e.ok)throw new Error(`Failed to fetch ${t}: ${e.status} ${e.statusText}`);try{return await e.arrayBuffer()}catch(s){throw new Error(`Failed to read response body as ArrayBuffer from ${t}: ${s instanceof Error?s.message:String(s)}`)}}catch(e){throw e instanceof Error?e.message.includes("Failed to fetch")||e.message.includes("Failed to read")?e:new Error(`Failed to fetch ${t}: ${e.message}`):new Error(`Failed to fetch ${t}: ${String(e)}`)}}function Tt(t,e){return t===void 0?e:typeof t=="string"?parseFloat(t):t}var Qs=null,li=!1,k0="https://unpkg.com/@resvg/resvg-wasm@2.6.2/index_bg.wasm";async function go(t){try{const e=await fetch(t);if(e.ok){const s=await e.arrayBuffer(),a=new Uint8Array(s);if(a.length>=4&&a[0]===0&&a[1]===97&&a[2]===115&&a[3]===109)return s;console.error(`Invalid WASM magic number from URL: ${t}`)}else console.error(`Failed to fetch resvg WASM from URL: ${t}, status: ${e.status}`);return}catch(e){console.error(`Error fetching resvg WASM from ${t}:`,e);return}}async function N0(t){try{if(t){const e=t.endsWith(".wasm")?t:t.endsWith("/")?`${t}resvg.wasm`:`${t}/resvg.wasm`,s=await go(e);if(s)return s}return}catch(e){console.error("Error in loadResvgWasmWeb:",e);return}}async function BC(t){if(Qs&&li)return Qs;if(Qs=await Promise.resolve().then(()=>Y0),!li){let s=await N0(t);if(s||(s=await go(k0)),!s)throw new Error("Failed to load resvg WASM from any source");const a=await WebAssembly.compile(s);await Qs.initWasm(a),li=!0}return Qs}async function UC(t){if(li)return;Qs=await Promise.resolve().then(()=>Y0);let s;if(t instanceof ArrayBuffer?s=t:(s=await N0(t),s||(s=await go(k0))),!s)throw new Error("Failed to load resvg WASM from any source");const a=await WebAssembly.compile(s);await Qs.initWasm(a),li=!0}async function ZC(t,e={}){const{Resvg:s}=await BC(),a={};e.background&&(a.background=e.background),e.fitTo?a.fitTo=e.fitTo:e.width?a.fitTo={mode:"width",value:e.width}:e.height&&(a.fitTo={mode:"height",value:e.height});const i=new s(t,a);try{const r=i.render();try{return{png:r.asPng(),width:r.width,height:r.height}}finally{r.free()}}finally{i.free()}}function GC(t,e,s){if(!t.shape)throw new Error("Shape is required for shape mode");const a=Tt(t.width,e),i=Tt(t.height,s),r=YC(t.shape),n=sk(r),o=a/2,l=i/2,c=n.x+n.w/2,f=n.y+n.h/2;let h=o-c,d=l-f;t.transform&&(h+=Tt(t.transform.x,0),d+=Tt(t.transform.y,0));const m=[];if(t.shadow){const V=Tt(t.shadow.offsetX,4),M=Tt(t.shadow.offsetY,4),E=t.shadow.color??"#000000",I=Tt(t.shadow.opacity,.5);m.push(`<path d="${r}" transform="translate(${h+V}, ${d+M})" fill="${E}" fill-opacity="${I}"/>`)}const b=[`d="${r}"`,`transform="translate(${h}, ${d})"`];if(t.fill){const V=`fill-${Date.now()}`,M=WC(t.fill,V);M.defs&&m.unshift(M.defs),b.push(`fill="${M.fill}"`),t.fill.opacity!==void 0&&t.fill.opacity!==1&&b.push(`fill-opacity="${t.fill.opacity}"`)}else b.push('fill="none"');return t.stroke&&t.stroke.width&&Tt(t.stroke.width,0)>0&&(b.push(`stroke="${t.stroke.color??"#000000"}"`),b.push(`stroke-width="${t.stroke.width}"`),t.stroke.opacity!==void 0&&t.stroke.opacity!==1&&b.push(`stroke-opacity="${t.stroke.opacity}"`),t.stroke.dashArray&&t.stroke.dashArray.length>0&&b.push(`stroke-dasharray="${t.stroke.dashArray.join(" ")}"`),t.stroke.lineCap&&b.push(`stroke-linecap="${t.stroke.lineCap}"`),t.stroke.lineJoin&&b.push(`stroke-linejoin="${t.stroke.lineJoin}"`)),t.opacity!==void 0&&t.opacity!==1&&b.push(`opacity="${t.opacity}"`),m.push(`<path ${b.join(" ")}/>`),`<svg xmlns="http://www.w3.org/2000/svg" width="${a}" height="${i}" viewBox="0 0 ${a} ${i}">${m.join("")}</svg>`}function WC(t,e,s){if(t.type==="solid")return{fill:t.color};if(t.type==="linear"){const i=Tt(t.angle,0)*Math.PI/180,r=50-Math.cos(i)*50,n=50-Math.sin(i)*50,o=50+Math.cos(i)*50,l=50+Math.sin(i)*50,c=t.stops.map(h=>`<stop offset="${Tt(h.offset,0)*100}%" stop-color="${h.color}"/>`).join(""),f=`<defs><linearGradient id="${e}" x1="${r}%" y1="${n}%" x2="${o}%" y2="${l}%">${c}</linearGradient></defs>`;return{fill:`url(#${e})`,defs:f}}if(t.type==="radial"){const a=t.stops.map(r=>`<stop offset="${Tt(r.offset,0)*100}%" stop-color="${r.color}"/>`).join(""),i=`<defs><radialGradient id="${e}" cx="50%" cy="50%" r="50%">${a}</radialGradient></defs>`;return{fill:`url(#${e})`,defs:i}}return{fill:"#000000"}}function YC(t){const e=t.type;switch(e){case"rectangle":{const s=t;return HC(s.width,s.height,s.cornerRadius??0)}case"circle":return A0(t.radius);case"ellipse":{const s=t;return KC(s.radiusX,s.radiusY)}case"line":{const s=t;return XC(s.length,s.thickness??2)}case"polygon":{const s=t;return qC(s.sides,s.radius)}case"star":{const s=t;return JC(s.points,s.outerRadius,s.innerRadius)}case"arrow":{const s=t;return QC(s.length,s.headWidth??30,s.headLength??25,s.shaftWidth??10)}case"heart":return $C(t.size);case"cross":{const s=t;return ek(s.width,s.height,s.thickness)}case"ring":{const s=t;return tk(s.outerRadius,s.innerRadius)}case"path":return t.d;default:throw new Error(`Unknown shape type: ${e}`)}}var _r=.5522847498307936;function HC(t,e,s){const a=-t/2,i=-e/2,r=Math.min(s,t/2,e/2);return r===0?`M ${a} ${i} L ${a+t} ${i} L ${a+t} ${i+e} L ${a} ${i+e} Z`:[`M ${a+r} ${i}`,`L ${a+t-r} ${i}`,`Q ${a+t} ${i} ${a+t} ${i+r}`,`L ${a+t} ${i+e-r}`,`Q ${a+t} ${i+e} ${a+t-r} ${i+e}`,`L ${a+r} ${i+e}`,`Q ${a} ${i+e} ${a} ${i+e-r}`,`L ${a} ${i+r}`,`Q ${a} ${i} ${a+r} ${i}`,"Z"].join(" ")}function A0(t){const e=t*_r;return[`M ${t} 0`,`C ${t} ${e} ${e} ${t} 0 ${t}`,`C ${-e} ${t} ${-t} ${e} ${-t} 0`,`C ${-t} ${-e} ${-e} ${-t} 0 ${-t}`,`C ${e} ${-t} ${t} ${-e} ${t} 0`,"Z"].join(" ")}function jC(t){const e=t*_r;return[`M ${t} 0`,`C ${t} ${-e} ${e} ${-t} 0 ${-t}`,`C ${-e} ${-t} ${-t} ${-e} ${-t} 0`,`C ${-t} ${e} ${-e} ${t} 0 ${t}`,`C ${e} ${t} ${t} ${e} ${t} 0`,"Z"].join(" ")}function KC(t,e){const s=t*_r,a=e*_r;return[`M ${t} 0`,`C ${t} ${a} ${s} ${e} 0 ${e}`,`C ${-s} ${e} ${-t} ${a} ${-t} 0`,`C ${-t} ${-a} ${-s} ${-e} 0 ${-e}`,`C ${s} ${-e} ${t} ${-a} ${t} 0`,"Z"].join(" ")}function XC(t,e){const s=t/2,a=e/2;return`M ${-s} ${-a} L ${s} ${-a} L ${s} ${a} L ${-s} ${a} Z`}function qC(t,e){const s=2*Math.PI/t,a=-Math.PI/2,i=[];for(let r=0;r<t;r++){const n=a+r*s,o=Math.cos(n)*e,l=Math.sin(n)*e;i.push(r===0?`M ${o} ${l}`:`L ${o} ${l}`)}return i.push("Z"),i.join(" ")}function JC(t,e,s){const a=Math.PI/t,i=-Math.PI/2,r=[];for(let n=0;n<t*2;n++){const o=i+n*a,l=n%2===0?e:s,c=Math.cos(o)*l,f=Math.sin(o)*l;r.push(n===0?`M ${c} ${f}`:`L ${c} ${f}`)}return r.push("Z"),r.join(" ")}function QC(t,e,s,a){const i=a/2,r=e/2,n=t-s,o=-t/2;return[`M ${o} ${-i}`,`L ${o+n} ${-i}`,`L ${o+n} ${-r}`,`L ${o+t} 0`,`L ${o+n} ${r}`,`L ${o+n} ${i}`,`L ${o} ${i}`,"Z"].join(" ")}function $C(t){const e=t/32;return["M 0 6","C -0.5 -3 -12 -3 -12 6","C -12 12 0 18 0 24","C 0 18 12 12 12 6","C 12 -3 0.5 -3 0 6","Z"].map(a=>a.replace(/-?\d+(\.\d+)?/g,i=>String(parseFloat(i)*e))).join(" ")}function ek(t,e,s){const a=t/2,i=e/2,r=s/2;return[`M ${-r} ${-i}`,`L ${r} ${-i}`,`L ${r} ${-r}`,`L ${a} ${-r}`,`L ${a} ${r}`,`L ${r} ${r}`,`L ${r} ${i}`,`L ${-r} ${i}`,`L ${-r} ${r}`,`L ${-a} ${r}`,`L ${-a} ${-r}`,`L ${-r} ${-r}`,"Z"].join(" ")}function tk(t,e){const s=A0(t),a=jC(e);return`${s} ${a}`}function sk(t){const e=/-?(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?/g,s=[];let a;for(;(a=e.exec(t))!==null;){const m=parseFloat(a[0]);!isNaN(m)&&isFinite(m)&&s.push(m)}if(s.length<2)return{x:0,y:0,w:0,h:0};let i=1/0,r=1/0,n=-1/0,o=-1/0,l=0,c=0;const f=t.match(/[MmLlHhVvCcSsQqTtAaZz]/g)||[];let h=0,d=0;for(;h<f.length;){switch(f[h]){case"M":case"L":case"T":d+1<s.length&&(l=s[d++],c=s[d++],i=Math.min(i,l),n=Math.max(n,l),r=Math.min(r,c),o=Math.max(o,c));break;case"m":case"l":case"t":d+1<s.length&&(l+=s[d++],c+=s[d++],i=Math.min(i,l),n=Math.max(n,l),r=Math.min(r,c),o=Math.max(o,c));break;case"H":d<s.length&&(l=s[d++],i=Math.min(i,l),n=Math.max(n,l));break;case"h":d<s.length&&(l+=s[d++],i=Math.min(i,l),n=Math.max(n,l));break;case"V":d<s.length&&(c=s[d++],r=Math.min(r,c),o=Math.max(o,c));break;case"v":d<s.length&&(c+=s[d++],r=Math.min(r,c),o=Math.max(o,c));break;case"C":if(d+5<s.length)for(let b=0;b<3;b++){const V=s[d++],M=s[d++];i=Math.min(i,V),n=Math.max(n,V),r=Math.min(r,M),o=Math.max(o,M),b===2&&(l=V,c=M)}break;case"c":if(d+5<s.length)for(let b=0;b<3;b++){const V=l+s[d++],M=c+s[d++];i=Math.min(i,V),n=Math.max(n,V),r=Math.min(r,M),o=Math.max(o,M),b===2&&(l=V,c=M)}break;case"S":case"Q":if(d+3<s.length)for(let b=0;b<2;b++){const V=s[d++],M=s[d++];i=Math.min(i,V),n=Math.max(n,V),r=Math.min(r,M),o=Math.max(o,M),b===1&&(l=V,c=M)}break;case"s":case"q":if(d+3<s.length)for(let b=0;b<2;b++){const V=l+s[d++],M=c+s[d++];i=Math.min(i,V),n=Math.max(n,V),r=Math.min(r,M),o=Math.max(o,M),b===1&&(l=V,c=M)}break;case"A":d+6<s.length&&(d+=5,l=s[d++],c=s[d++],i=Math.min(i,l),n=Math.max(n,l),r=Math.min(r,c),o=Math.max(o,c));break;case"a":d+6<s.length&&(d+=5,l+=s[d++],c+=s[d++],i=Math.min(i,l),n=Math.max(n,l),r=Math.min(r,c),o=Math.max(o,c));break}h++}return i===1/0?{x:0,y:0,w:0,h:0}:{x:i,y:r,w:n-i,h:o-r}}async function ak(t,e={}){const s=e.defaultWidth??1920,a=e.defaultHeight??1080;let i,r,n;if(t.src){i=t.src;const o=ik(i);r=o.width||s,n=o.height||a}else if(t.shape)r=Tt(t.width,s),n=Tt(t.height,a),i=GC(t,r,n);else throw new Error("Either 'src' or 'shape' must be provided");return ZC(i,{width:r,height:n,background:e.background})}function ik(t){const e=t.match(/width\s*=\s*["']?(\d+(?:\.\d+)?)/i),s=t.match(/height\s*=\s*["']?(\d+(?:\.\d+)?)/i);let a=e?parseFloat(e[1]):0,i=s?parseFloat(s[1]):0;if(!a||!i){const r=t.match(/viewBox\s*=\s*["']([^"']+)["']/i);if(r){const n=r[1].trim().split(/[\s,]+/).map(parseFloat);n.length===4&&(a=a||n[2],i=i||n[3])}}return{width:a,height:i}}var S0="https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu4mxP.ttf";async function rk(t={}){const e=t.width??ct.DEFAULTS.width,s=t.height??ct.DEFAULTS.height,a=t.pixelRatio??ct.DEFAULTS.pixelRatio,i="https://shotstack-ingest-api-dev-sources.s3.ap-southeast-2.amazonaws.com/euo5r93oyr/zzz01k9h-yycyx-2x2y6-qx9bj-7n567b/source.wasm";y0.setFallbackLoader(async l=>{const c=(l.family??"Roboto").toLowerCase(),f=`${l.weight??"400"}`;if(c==="roboto"&&f==="400")return oi(S0)});let r;try{r=await y0.getSharedInstance(i)}catch(l){throw new Error(`Failed to initialize font registry: ${l instanceof Error?l.message:String(l)}`)}const n=new mC(r);async function o(l){try{if(l.customFonts)for(const d of l.customFonts)try{const m=await oi(d.src);await r.registerFromBytes(m,{family:d.family,weight:d.weight??"400"})}catch(m){throw new Error(`Failed to load custom font "${d.family}" from ${d.src}: ${m instanceof Error?m.message:String(m)}`)}const c=l.font??{family:"Roboto",weight:"400",size:48,color:"#000000",opacity:1},f={family:c.family,weight:`${c.weight}`};return await(async()=>{try{await r.getFace(f)}catch{if((c.family||"Roboto").toLowerCase()==="roboto"&&`${c.weight}`=="400"){const m=await oi(S0);await r.registerFromBytes(m,{family:"Roboto",weight:"400"})}else throw new Error(`Font not registered for ${f.family}__${f.weight}`)}})(),c}catch(c){throw c instanceof Error?c:new Error(`Failed to ensure fonts: ${String(c)}`)}}return{validate(l){const c=cC.safeParse(l);if(!c.success){const f=c.error.issues.map(h=>h.message).join(". ");throw new Error(`Validation failed: ${f}`)}return{value:c.data}},async registerFontFromUrl(l,c){try{const f=await oi(l);await r.registerFromBytes(f,c)}catch(f){throw new Error(`Failed to register font "${c.family}" from URL ${l}: ${f instanceof Error?f.message:String(f)}`)}},async registerFontFromFile(l,c){try{let f;if(typeof l=="string")try{f=await oi(l)}catch(h){throw new Error(`Failed to fetch font from ${l}: ${h instanceof Error?h.message:String(h)}`)}else try{f=await l.arrayBuffer()}catch(h){throw new Error(`Failed to read Blob as ArrayBuffer: ${h instanceof Error?h.message:String(h)}`)}await r.registerFromBytes(f,c)}catch(f){throw f instanceof Error?f:new Error(`Failed to register font "${c.family}" from ${typeof l=="string"?l:"Blob"}: ${String(f)}`)}},async renderFrame(l,c,f){try{const h=await o(l),d={family:h.family,weight:`${h.weight}`};let m;try{let P;const B=r.getColorEmojiFontFamilies();if(B.length>0)P={family:B[0],weight:"400"};else{const $={family:"NotoEmoji",weight:"400"};try{await r.getFace($),P=$}catch{}}const J=l.padding?typeof l.padding=="number"?{top:l.padding,right:l.padding,bottom:l.padding,left:l.padding}:l.padding:{top:0,right:0,bottom:0,left:0};m=await n.layout({text:l.text,width:(l.width??e)-J.left-J.right,letterSpacing:l.style?.letterSpacing??0,fontSize:h.size,lineHeight:l.style?.lineHeight??1.2,desc:d,textTransform:l.style?.textTransform??"none",emojiFallback:P})}catch(P){throw new Error(`Failed to layout text: ${P instanceof Error?P.message:String(P)}`)}const b=l.padding?typeof l.padding=="number"?{top:l.padding,right:l.padding,bottom:l.padding,left:l.padding}:l.padding:{top:0,right:0,bottom:0,left:0},V=l.border?.width??0,M=(l.width??e)+V*2,E=(l.height??s)+V*2,I=a,v={x:0,y:0,width:(l.width??e)-b.left-b.right,height:(l.height??s)-b.top-b.bottom},F=l.width??e,y=l.height??s;let Z;try{Z=await vC({canvas:{width:M,height:E,pixelRatio:I},textRect:v,lines:m,contentRect:{width:F,height:y},font:{family:h.family,size:h.size,weight:`${h.weight}`,color:h.color,opacity:h.opacity,background:h.background},style:{lineHeight:l.style?.lineHeight??1.2,textDecoration:l.style?.textDecoration??"none",gradient:l.style?.gradient},stroke:l.stroke,shadow:l.shadow,align:{horizontal:l.align?.horizontal??"center",vertical:l.align?.vertical??"middle"},background:l.background,border:l.border,padding:l.padding,glyphPathProvider:(P,B)=>r.glyphPath(B||d,P),getUnitsPerEm:P=>r.getUnitsPerEm(P||d),isColorEmojiFont:P=>r.isColorEmojiFont(P)})}catch(P){throw new Error(`Failed to build draw operations: ${P instanceof Error?P.message:String(P)}`)}try{return kC(Z,m,{t:c,fontSize:h.size,clipDuration:f,anim:l.animation?{preset:l.animation.preset,speed:l.animation.speed,duration:l.animation.duration,style:l.animation.style,direction:l.animation.direction}:void 0})}catch(P){throw new Error(`Failed to apply animation: ${P instanceof Error?P.message:String(P)}`)}}catch(h){throw h instanceof Error?h:new Error(`Failed to render frame at time ${c}s: ${String(h)}`)}},createRenderer(l){try{return RC(l)}catch(c){throw new Error(`Failed to create renderer: ${c instanceof Error?c.message:String(c)}`)}},destroy(){try{r.release()}catch(l){console.error(`Error during cleanup: ${l instanceof Error?l.message:String(l)}`)}}}}const V0=t=>{const s=(t.split("/").pop()||"").replace(/\.(ttf|otf|woff|woff2)$/i,""),a=s.replace(/-(Bold|Light|Regular|Italic|Medium|SemiBold|Black|Thin|ExtraLight|ExtraBold|Heavy)$/i,"");return{full:s,base:a}},nk=t=>t.includes("fonts.gstatic.com");class Ca extends xt{static PREVIEW_FPS=60;textEngine=null;renderer=null;canvas=null;texture=null;sprite=null;lastRenderedTime=-1;cachedFrames=new Map;isRendering=!1;pendingRenderTime=null;validatedAsset=null;fontSupportsBold=!1;loadComplete=!1;constructor(e,s){const{fit:a,...i}=s;super(e,i,Qe.RichText)}buildCanvasPayload(e,s){const a=this.clipConfiguration.width||this.edit.size.width,i=this.clipConfiguration.height||this.edit.size.height,r=e.font?.family,{baseFontFamily:n,fontWeight:o}=s??(r?Dt(r):{baseFontFamily:r,fontWeight:400}),l=e.font?.weight;let c=o;typeof l=="string"?c=parseInt(l,10)||o:typeof l=="number"&&(c=l);const f=this.edit.getTimelineFonts(),h=r?f.find(m=>{const{full:b,base:V}=V0(m.src),M=r.toLowerCase();return b.toLowerCase()===M||V.toLowerCase()===M}):void 0;let d;if(h&&r)d=[{src:h.src,family:n||r,weight:c.toString()}];else if(r){const m=f.filter(b=>!nk(b.src));m.length>0&&(d=m.map(b=>({src:b.src,family:n||r,weight:c.toString()})))}return{...e,width:a,height:i,font:e.font?{...e.font,family:n||e.font.family,weight:c}:void 0,stroke:e.font?.stroke,...d&&{customFonts:d}}}async registerFont(e,s,a){if(!this.textEngine)return!1;try{const i={family:e,weight:s.toString()};return a.type==="url"?await this.textEngine.registerFontFromUrl(a.path,i):await this.textEngine.registerFontFromFile(a.path,i),!0}catch{return!1}}async checkFontCapabilities(e){try{const a=await(await fetch(e)).arrayBuffer(),r=Xr.parse(a).tables.fvar;if(r?.axes){const n=r.axes.find(o=>o.tag==="wght");this.fontSupportsBold=!!n}else this.fontSupportsBold=!1}catch(s){console.warn("Failed to check font capabilities:",s),this.fontSupportsBold=!1}}supportsBold(){return this.fontSupportsBold}resolveFont(e){const{baseFontFamily:s,fontWeight:a}=Dt(e),i=this.edit.getFontUrlByFamilyAndWeight(s,a);if(i)return{url:i,baseFontFamily:s,fontWeight:a};const o=(this.edit.getEdit()?.timeline?.fonts||[]).find(c=>{const{full:f,base:h}=V0(c.src),d=e.toLowerCase();return f.toLowerCase()===d||h.toLowerCase()===d});if(o)return{url:o.src,baseFontFamily:s,fontWeight:a};const l=qr(e);return l?{url:l,baseFontFamily:s,fontWeight:a}:null}reconfigureAfterRestore(){super.reconfigureAfterRestore(),this.reconfigure(this.clipConfiguration.asset)}async reconfigure(e){const s=await this.ensureFontRegistered(e);s&&(await this.checkFontCapabilities(s),this.edit.events.emit(ot.FontCapabilitiesChanged,{supportsBold:this.fontSupportsBold}));for(const a of this.cachedFrames.values())a.destroy();if(this.cachedFrames.clear(),this.lastRenderedTime=-1,this.textEngine){const a=this.buildCanvasPayload(e),{value:i}=this.textEngine.validate(a);this.validatedAsset=i}this.textEngine&&this.renderer&&this.renderFrameSafe(this.getPlaybackTime())}async ensureFontRegistered(e){if(!this.textEngine)return null;const s=e.font?.family;if(!s)return null;const a=this.resolveFont(s);if(!a)return null;const i=e.font?.weight;let{fontWeight:r}=a;return typeof i=="string"?r=parseInt(i,10)||a.fontWeight:typeof i=="number"&&(r=i),await this.registerFont(a.baseFontFamily,r,{type:"url",path:a.url}),a.url}async load(){await super.load();const e=this.clipConfiguration.asset;try{if(!Kl.safeParse(e).success){this.createFallbackText(e);return}const a=e.font?.family,i=a?Dt(a):void 0,r=this.buildCanvasPayload(e,i);this.textEngine=await rk({width:r.width,height:r.height,fps:Ca.PREVIEW_FPS});const{value:n}=this.textEngine.validate(r);if(this.validatedAsset=n,this.canvas=document.createElement("canvas"),this.canvas.width=r.width,this.canvas.height=r.height,this.renderer=this.textEngine.createRenderer(this.canvas),a){const o=this.resolveFont(a);if(o){const l=e.font?.weight;let{fontWeight:c}=o;typeof l=="string"?c=parseInt(l,10)||o.fontWeight:typeof l=="number"&&(c=l),await this.registerFont(o.baseFontFamily,c,{type:"url",path:o.url}),await this.checkFontCapabilities(o.url)}}await this.renderFrame(0),this.configureKeyframes(),this.loadComplete=!0}catch{this.cleanupResources(),this.createFallbackText(e)}}cleanupResources(){if(this.textEngine){try{this.textEngine.destroy()}catch(e){console.warn("Error destroying text engine:",e)}this.textEngine=null}this.renderer=null,this.canvas=null,this.validatedAsset=null}async renderFrame(e){if(!this.textEngine||!this.renderer||!this.canvas||!this.validatedAsset)return;const s=Math.floor(e*Ca.PREVIEW_FPS);if(this.cachedFrames.has(s)){const a=this.cachedFrames.get(s);this.sprite&&this.sprite.texture!==a&&(this.sprite.texture=a),this.lastRenderedTime=e;return}try{const a=this.getLength(),i=await this.textEngine.renderFrame(this.validatedAsset,e,a),r=this.canvas.getContext("2d");r&&r.clearRect(0,0,this.canvas.width,this.canvas.height),await this.renderer.render(i);const n=X.Texture.from(this.canvas);this.sprite?(this.texture&&!this.cachedFrames.has(s)&&this.texture.destroy(),this.sprite.texture=n):(this.sprite=new X.Sprite(n),this.contentContainer.addChild(this.sprite)),this.texture=n,this.cachedFrames.size<150&&this.cachedFrames.set(s,n),this.lastRenderedTime=e}catch(a){console.error("Failed to render rich text frame:",a)}}createFallbackText(e){const s=this.edit.getEdit(),a=this.clipConfiguration.width||s?.output?.size?.width||this.edit.size.width,i=this.clipConfiguration.height||s?.output?.size?.height||this.edit.size.height,r=new X.TextStyle({fontFamily:e.font?.family||"Arial",fontSize:e.font?.size||48,fill:e.font?.color||"#ffffff",align:e.align?.horizontal||"center",wordWrap:!0,wordWrapWidth:a}),n=new X.Text(e.text,r);switch(e.align?.horizontal){case"left":n.anchor.set(0,.5),n.x=0;break;case"right":n.anchor.set(1,.5),n.x=a;break;default:n.anchor.set(.5,.5),n.x=a/2}switch(e.align?.vertical){case"top":n.anchor.set(n.anchor.x,0),n.y=0;break;case"bottom":n.anchor.set(n.anchor.x,1),n.y=i;break;default:n.anchor.set(n.anchor.x,.5),n.y=i/2}this.contentContainer.addChild(n)}renderFrameSafe(e){if(this.isRendering){this.pendingRenderTime=e;const s=Math.floor(e*Ca.PREVIEW_FPS),a=this.cachedFrames.get(s);a&&this.sprite&&this.sprite.texture!==a&&(this.sprite.texture=a);return}this.isRendering=!0,this.pendingRenderTime=null,this.renderFrame(e).catch(s=>console.error("Failed to render rich text frame:",s)).finally(()=>{if(this.isRendering=!1,this.pendingRenderTime!==null&&this.pendingRenderTime!==e){const s=this.pendingRenderTime;this.pendingRenderTime=null,this.renderFrameSafe(s)}})}update(e,s){if(super.update(e,s),s===Aa.SEEK_ELAPSED_MARKER&&(this.isRendering=!1,this.pendingRenderTime=null,this.lastRenderedTime=-1),!!this.isActive()&&this.loadComplete&&this.textEngine&&this.renderer&&!this.isRendering){const a=this.getPlaybackTime(),i=1/60;Math.abs(a-this.lastRenderedTime)>i&&this.renderFrameSafe(a)}}dispose(){super.dispose(),this.loadComplete=!1;for(const e of this.cachedFrames.values())e.destroy();this.cachedFrames.clear(),this.texture&&!this.cachedFrames.has(Math.floor(this.lastRenderedTime*Ca.PREVIEW_FPS))&&this.texture.destroy(),this.texture=null,this.sprite&&(this.sprite.destroy(),this.sprite=null),this.canvas&&(this.canvas=null),this.textEngine&&(this.textEngine.destroy(),this.textEngine=null),this.renderer=null,this.validatedAsset=null}getSize(){const e=this.edit.getEdit();return{width:this.clipConfiguration.width||e?.output?.size?.width||this.edit.size.width,height:this.clipConfiguration.height||e?.output?.size?.height||this.edit.size.height}}getContentSize(){return{width:this.clipConfiguration.width||this.canvas?.width||this.edit.size.width,height:this.clipConfiguration.height||this.canvas?.height||this.edit.size.height}}getFitScale(){return 1}getContainerScale(){const e=this.getScale();return{x:e,y:e}}supportsEdgeResize(){return!0}onDimensionsChanged(){if(!this.textEngine||!this.renderer||!this.canvas)return;const e=this.clipConfiguration.asset,{width:s,height:a}=this.getSize();this.canvas.width=s,this.canvas.height=a;for(const n of this.cachedFrames.values())n.destroy();this.cachedFrames.clear(),this.lastRenderedTime=-1;const i=this.buildCanvasPayload(e),{value:r}=this.textEngine.validate(i);this.validatedAsset=r,this.renderFrameSafe(this.getPlaybackTime())}updateTextContent(e){const s=this.clipConfiguration.asset;if(s.text=e,this.textEngine){const a=this.buildCanvasPayload(s),{value:i}=this.textEngine.validate(a);this.validatedAsset=i}for(const a of this.cachedFrames.values())a.destroy();this.cachedFrames.clear(),this.lastRenderedTime=-1,this.textEngine&&this.renderer&&this.renderFrameSafe(this.getPlaybackTime())}getCacheSize(){return this.cachedFrames.size}}class ok extends xt{shape;shapeBackground;constructor(e,s){super(e,s,Qe.Shape),this.shape=null,this.shapeBackground=null}async load(){await super.load();const e=this.clipConfiguration.asset,s=new X.Graphics,a=e.width??this.edit.size.width,i=e.height??this.edit.size.height;s.fillStyle={color:"transparent"},s.rect(0,0,a,i),s.fill();const r=new X.Graphics;switch(e.shape){case"rectangle":{const n=e.rectangle,o=a/2-n.width/2,l=i/2-n.height/2;r.rect(o,l,n.width,n.height);break}case"circle":{const n=e.circle,o=a/2,l=i/2;r.circle(o,l,n.radius);break}case"line":{const n=e.line,o=a/2-n.length/2,l=i/2-n.thickness/2;r.rect(o,l,n.length,n.thickness);break}default:console.warn("Unsupported shape asset type.");break}if(r.fillStyle={color:e.fill?.color??"#ffffff",alpha:e.fill?.opacity??1},r.fill(),e.stroke){const n=new Oa({thickness:e.stroke.width,color:e.stroke.color});r.filters=[n]}this.shapeBackground=s,this.shape=r,this.contentContainer.addChild(s),s.addChild(r),this.configureKeyframes()}update(e,s){super.update(e,s)}dispose(){super.dispose(),this.shape?.destroy(),this.shape=null,this.shapeBackground?.destroy(),this.shapeBackground=null}getSize(){const e=this.clipConfiguration.asset;return{width:e.width??this.edit.size.width,height:e.height??this.edit.size.height}}getFitScale(){return 1}}const lk="https://unpkg.com/@resvg/resvg-wasm@2.6.2/index_bg.wasm";class ds extends xt{static resvgInitialized=!1;static resvgInitPromise=null;texture=null;sprite=null;renderedWidth=0;renderedHeight=0;pendingRender=null;constructor(e,s){super(e,s,Qe.Svg)}static async initializeResvg(){if(!ds.resvgInitialized){if(ds.resvgInitPromise){await ds.resvgInitPromise;return}ds.resvgInitPromise=(async()=>{const s=await(await fetch(lk)).arrayBuffer();await UC(s),ds.resvgInitialized=!0})(),await ds.resvgInitPromise}}async load(){await super.load();let e=this.clipConfiguration.asset;if(e.src){const s=this.edit.resolveMergeFields(e.src);s!==e.src&&(e={...e,src:s})}try{if(!_b.safeParse(e).success){this.createFallbackGraphic();return}await ds.initializeResvg(),await this.doRender(),this.configureKeyframes()}catch(s){console.error("Failed to render SVG asset:",s),this.createFallbackGraphic()}}async reloadAsset(){await this.rerenderAtCurrentDimensions()}createFallbackGraphic(){const e=this.clipConfiguration.width||this.edit.size.width,s=this.clipConfiguration.height||this.edit.size.height,a=Do(e,s);this.renderedWidth=e,this.renderedHeight=s,this.contentContainer.addChild(a),this.configureKeyframes()}update(e,s){super.update(e,s)}dispose(){super.dispose(),this.pendingRender=null,this.sprite&&(this.sprite.destroy(),this.sprite=null),this.texture&&(this.texture.destroy(!0),this.texture=null)}getSize(){return this.clipConfiguration.width&&this.clipConfiguration.height?{width:this.clipConfiguration.width,height:this.clipConfiguration.height}:{width:this.renderedWidth||this.edit.size.width,height:this.renderedHeight||this.edit.size.height}}getContentSize(){return{width:this.renderedWidth||this.edit.size.width,height:this.renderedHeight||this.edit.size.height}}getFitScale(){return 1}supportsEdgeResize(){return!0}onDimensionsChanged(){this.rerenderAtCurrentDimensions()}async rerenderAtCurrentDimensions(){this.pendingRender&&await this.pendingRender,this.sprite&&(this.contentContainer.removeChild(this.sprite),this.sprite.destroy(),this.sprite=null),this.texture&&(this.texture.destroy(!0),this.texture=null),this.pendingRender=this.doRender(),await this.pendingRender,this.pendingRender=null}async doRender(){const e=this.clipConfiguration.asset,s=this.clipConfiguration.width||this.edit.size.width,a=this.clipConfiguration.height||this.edit.size.height,i=await ak(e,{defaultWidth:s,defaultHeight:a});this.renderedWidth=i.width,this.renderedHeight=i.height;const r=new Blob([i.png],{type:"image/png"}),n=URL.createObjectURL(r),o=new Image;o.src=n,await new Promise((l,c)=>{o.onload=()=>l(),o.onerror=()=>c(new Error("Failed to load SVG image"))}),URL.revokeObjectURL(n),this.texture=X.Texture.from(o),this.sprite=new X.Sprite(this.texture),this.contentContainer.addChild(this.sprite),this.clipConfiguration.width&&this.clipConfiguration.height&&this.applyFixedDimensions()}}class ci{static DEFAULT_BLINK_INTERVAL_MS=500;static DEFAULT_CURSOR_WIDTH_PX=2;static DEFAULT_CURSOR_COLOR=16777215;cursor=null;parent;textElement;clipConfig;textPosition=0;pixelX=0;pixelY=0;currentLine=0;isBlinking=!1;blinkInterval=null;blinkIntervalMs=500;width=2;color=16777215;isVisible=!0;constructor(e,s,a,i){this.parent=e,this.textElement=s,this.clipConfig=a,this.width=i?.width??ci.DEFAULT_CURSOR_WIDTH_PX,this.color=i?.color??ci.DEFAULT_CURSOR_COLOR,this.blinkIntervalMs=i?.blinkInterval??ci.DEFAULT_BLINK_INTERVAL_MS,this.textPosition=0,this.isBlinking=!1,this.isVisible=!0,this.blinkInterval=null,this.createCursor()}updatePosition(e){if(!this.cursor||!this.textElement){console.warn("TextCursor: Cannot update position, cursor not initialized");return}this.textPosition=this.validateTextPosition(e),this.calculateAndApplyPixelPosition()}setPosition(e,s){if(!this.cursor){console.warn("TextCursor: Cannot set position, cursor not initialized");return}this.pixelX=e,this.pixelY=s,this.updateGraphicsPosition()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}setVisible(e){this.isVisible=e,this.cursor&&!this.isBlinking&&(this.cursor.visible=e)}startBlinking(){if(!this.cursor){console.warn("TextCursor: Cannot start blinking, cursor not initialized");return}this.isBlinking||this.startBlinkingAnimation()}stopBlinking(){this.stopBlinkingAnimation()}setBlinkInterval(e){this.blinkIntervalMs=e,this.isBlinking&&(this.stopBlinking(),this.startBlinking())}dispose(){if(this.stopBlinkingAnimation(),this.cursor&&this.parent)try{this.parent.removeChild(this.cursor)}catch(e){console.warn("TextCursor: Error removing cursor from parent:",e)}if(this.cursor)try{this.cursor.destroy()}catch(e){console.warn("TextCursor: Error destroying cursor graphics:",e)}finally{this.cursor=null}this.textPosition=0,this.pixelX=0,this.pixelY=0,this.currentLine=0,this.isVisible=!0}createCursor(){if(!this.textElement)return;this.cursor=new X.Graphics,this.cursor.fillStyle={color:this.color};const e=this.textElement.style.fontSize;this.cursor.rect(0,0,this.width,e),this.cursor.fill(),this.parent.addChild(this.cursor),this.cursor.visible=this.isVisible}validateTextPosition(e){return this.textElement?Math.max(0,Math.min(e,this.textElement.text.length)):0}calculateAndApplyPixelPosition(){this.calculatePixelPositionFromText(),this.updateGraphicsPosition()}calculatePixelPositionFromText(){if(!this.textElement)return;const{text:e}=this.textElement,s=this.textElement.style,a=e.substring(0,this.textPosition),i=a.match(/\n/g);this.currentLine=i?i.length:0;const r=e.split(`
|
|
271
|
+
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const n of t.seen.entries()){const o=n[1];if(e===n[0]){r(n);continue}if(t.external){const c=t.external.registry.get(n[0])?.id;if(e!==n[0]&&c){r(n);continue}}if(t.metadataRegistry.get(n[0])?.id){r(n);continue}if(o.cycle){r(n);continue}if(o.count>1&&t.reused==="ref"){r(n);continue}}}function Vl(t,e){const s=t.seen.get(e);if(!s)throw new Error("Unprocessed schema. This is a bug in Zod.");const a=n=>{const o=t.seen.get(n);if(o.ref===null)return;const l=o.def??o.schema,c={...l},f=o.ref;if(o.ref=null,f){a(f);const d=t.seen.get(f),m=d.schema;if(m.$ref&&(t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0")?(l.allOf=l.allOf??[],l.allOf.push(m)):Object.assign(l,m),Object.assign(l,c),n._zod.parent===f)for(const I in l)I==="$ref"||I==="allOf"||I in c||delete l[I];if(m.$ref&&d.def)for(const I in l)I==="$ref"||I==="allOf"||I in d.def&&JSON.stringify(l[I])===JSON.stringify(d.def[I])&&delete l[I]}const h=n._zod.parent;if(h&&h!==f){a(h);const d=t.seen.get(h);if(d?.schema.$ref&&(l.$ref=d.schema.$ref,d.def))for(const m in l)m==="$ref"||m==="allOf"||m in d.def&&JSON.stringify(l[m])===JSON.stringify(d.def[m])&&delete l[m]}t.override({zodSchema:n,jsonSchema:l,path:o.path??[]})};for(const n of[...t.seen.entries()].reverse())a(n[0]);const i={};if(t.target==="draft-2020-12"?i.$schema="https://json-schema.org/draft/2020-12/schema":t.target==="draft-07"?i.$schema="http://json-schema.org/draft-07/schema#":t.target==="draft-04"?i.$schema="http://json-schema.org/draft-04/schema#":t.target,t.external?.uri){const n=t.external.registry.get(e)?.id;if(!n)throw new Error("Schema is missing an `id` property");i.$id=t.external.uri(n)}Object.assign(i,s.def??s.schema);const r=t.external?.defs??{};for(const n of t.seen.entries()){const o=n[1];o.def&&o.defId&&(r[o.defId]=o.def)}t.external||Object.keys(r).length>0&&(t.target==="draft-2020-12"?i.$defs=r:i.definitions=r);try{const n=JSON.parse(JSON.stringify(i));return Object.defineProperty(n,"~standard",{value:{...e["~standard"],jsonSchema:{input:Ri(e,"input",t.processors),output:Ri(e,"output",t.processors)}},enumerable:!1,writable:!1}),n}catch{throw new Error("Error converting schema to JSON.")}}function Ct(t,e){const s=e??{seen:new Set};if(s.seen.has(t))return!1;s.seen.add(t);const a=t._zod.def;if(a.type==="transform")return!0;if(a.type==="array")return Ct(a.element,s);if(a.type==="set")return Ct(a.valueType,s);if(a.type==="lazy")return Ct(a.getter(),s);if(a.type==="promise"||a.type==="optional"||a.type==="nonoptional"||a.type==="nullable"||a.type==="readonly"||a.type==="default"||a.type==="prefault")return Ct(a.innerType,s);if(a.type==="intersection")return Ct(a.left,s)||Ct(a.right,s);if(a.type==="record"||a.type==="map")return Ct(a.keyType,s)||Ct(a.valueType,s);if(a.type==="pipe")return Ct(a.in,s)||Ct(a.out,s);if(a.type==="object"){for(const i in a.shape)if(Ct(a.shape[i],s))return!0;return!1}if(a.type==="union"){for(const i of a.options)if(Ct(i,s))return!0;return!1}if(a.type==="tuple"){for(const i of a.items)if(Ct(i,s))return!0;return!!(a.rest&&Ct(a.rest,s))}return!1}const Hg=(t,e={})=>s=>{const a=Al({...s,processors:e});return nt(t,a),Sl(a,t),Vl(a,t)},Ri=(t,e,s={})=>a=>{const{libraryOptions:i,target:r}=a??{},n=Al({...i??{},target:r,io:e,processors:s});return nt(t,n),Sl(n,t),Vl(n,t)},jg={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},Kg=(t,e,s,a)=>{const i=s;i.type="string";const{minimum:r,maximum:n,format:o,patterns:l,contentEncoding:c}=t._zod.bag;if(typeof r=="number"&&(i.minLength=r),typeof n=="number"&&(i.maxLength=n),o&&(i.format=jg[o]??o,i.format===""&&delete i.format,o==="time"&&delete i.format),c&&(i.contentEncoding=c),l&&l.size>0){const f=[...l];f.length===1?i.pattern=f[0].source:f.length>1&&(i.allOf=[...f.map(h=>({...e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0"?{type:"string"}:{},pattern:h.source}))])}},Xg=(t,e,s,a)=>{const i=s,{minimum:r,maximum:n,format:o,multipleOf:l,exclusiveMaximum:c,exclusiveMinimum:f}=t._zod.bag;typeof o=="string"&&o.includes("int")?i.type="integer":i.type="number",typeof f=="number"&&(e.target==="draft-04"||e.target==="openapi-3.0"?(i.minimum=f,i.exclusiveMinimum=!0):i.exclusiveMinimum=f),typeof r=="number"&&(i.minimum=r,typeof f=="number"&&e.target!=="draft-04"&&(f>=r?delete i.minimum:delete i.exclusiveMinimum)),typeof c=="number"&&(e.target==="draft-04"||e.target==="openapi-3.0"?(i.maximum=c,i.exclusiveMaximum=!0):i.exclusiveMaximum=c),typeof n=="number"&&(i.maximum=n,typeof c=="number"&&e.target!=="draft-04"&&(c<=n?delete i.maximum:delete i.exclusiveMaximum)),typeof l=="number"&&(i.multipleOf=l)},qg=(t,e,s,a)=>{s.type="boolean"},Jg=(t,e,s,a)=>{e.target==="openapi-3.0"?(s.type="string",s.nullable=!0,s.enum=[null]):s.type="null"},Qg=(t,e,s,a)=>{s.not={}},$g=(t,e,s,a)=>{},ep=(t,e,s,a)=>{const i=t._zod.def,r=Zo(i.entries);r.every(n=>typeof n=="number")&&(s.type="number"),r.every(n=>typeof n=="string")&&(s.type="string"),s.enum=r},tp=(t,e,s,a)=>{const i=t._zod.def,r=[];for(const n of i.values)if(n===void 0){if(e.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof n=="bigint"){if(e.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");r.push(Number(n))}else r.push(n);if(r.length!==0)if(r.length===1){const n=r[0];s.type=n===null?"null":typeof n,e.target==="draft-04"||e.target==="openapi-3.0"?s.enum=[n]:s.const=n}else r.every(n=>typeof n=="number")&&(s.type="number"),r.every(n=>typeof n=="string")&&(s.type="string"),r.every(n=>typeof n=="boolean")&&(s.type="boolean"),r.every(n=>n===null)&&(s.type="null"),s.enum=r},sp=(t,e,s,a)=>{if(e.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},ap=(t,e,s,a)=>{if(e.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},ip=(t,e,s,a)=>{const i=s,r=t._zod.def,{minimum:n,maximum:o}=t._zod.bag;typeof n=="number"&&(i.minItems=n),typeof o=="number"&&(i.maxItems=o),i.type="array",i.items=nt(r.element,e,{...a,path:[...a.path,"items"]})},rp=(t,e,s,a)=>{const i=s,r=t._zod.def;i.type="object",i.properties={};const n=r.shape;for(const c in n)i.properties[c]=nt(n[c],e,{...a,path:[...a.path,"properties",c]});const o=new Set(Object.keys(n)),l=new Set([...o].filter(c=>{const f=r.shape[c]._zod;return e.io==="input"?f.optin===void 0:f.optout===void 0}));l.size>0&&(i.required=Array.from(l)),r.catchall?._zod.def.type==="never"?i.additionalProperties=!1:r.catchall?r.catchall&&(i.additionalProperties=nt(r.catchall,e,{...a,path:[...a.path,"additionalProperties"]})):e.io==="output"&&(i.additionalProperties=!1)},np=(t,e,s,a)=>{const i=t._zod.def,r=i.inclusive===!1,n=i.options.map((o,l)=>nt(o,e,{...a,path:[...a.path,r?"oneOf":"anyOf",l]}));r?s.oneOf=n:s.anyOf=n},op=(t,e,s,a)=>{const i=t._zod.def,r=nt(i.left,e,{...a,path:[...a.path,"allOf",0]}),n=nt(i.right,e,{...a,path:[...a.path,"allOf",1]}),o=c=>"allOf"in c&&Object.keys(c).length===1,l=[...o(r)?r.allOf:[r],...o(n)?n.allOf:[n]];s.allOf=l},lp=(t,e,s,a)=>{const i=s,r=t._zod.def;i.type="object";const n=r.keyType,l=n._zod.bag?.patterns;if(r.mode==="loose"&&l&&l.size>0){const f=nt(r.valueType,e,{...a,path:[...a.path,"patternProperties","*"]});i.patternProperties={};for(const h of l)i.patternProperties[h.source]=f}else(e.target==="draft-07"||e.target==="draft-2020-12")&&(i.propertyNames=nt(r.keyType,e,{...a,path:[...a.path,"propertyNames"]})),i.additionalProperties=nt(r.valueType,e,{...a,path:[...a.path,"additionalProperties"]});const c=n._zod.values;if(c){const f=[...c].filter(h=>typeof h=="string"||typeof h=="number");f.length>0&&(i.required=f)}},cp=(t,e,s,a)=>{const i=t._zod.def,r=nt(i.innerType,e,a),n=e.seen.get(t);e.target==="openapi-3.0"?(n.ref=i.innerType,s.nullable=!0):s.anyOf=[r,{type:"null"}]},fp=(t,e,s,a)=>{const i=t._zod.def;nt(i.innerType,e,a);const r=e.seen.get(t);r.ref=i.innerType},up=(t,e,s,a)=>{const i=t._zod.def;nt(i.innerType,e,a);const r=e.seen.get(t);r.ref=i.innerType,s.default=JSON.parse(JSON.stringify(i.defaultValue))},hp=(t,e,s,a)=>{const i=t._zod.def;nt(i.innerType,e,a);const r=e.seen.get(t);r.ref=i.innerType,e.io==="input"&&(s._prefault=JSON.parse(JSON.stringify(i.defaultValue)))},dp=(t,e,s,a)=>{const i=t._zod.def;nt(i.innerType,e,a);const r=e.seen.get(t);r.ref=i.innerType;let n;try{n=i.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}s.default=n},gp=(t,e,s,a)=>{const i=t._zod.def,r=e.io==="input"?i.in._zod.def.type==="transform"?i.out:i.in:i.out;nt(r,e,a);const n=e.seen.get(t);n.ref=r},pp=(t,e,s,a)=>{const i=t._zod.def;nt(i.innerType,e,a);const r=e.seen.get(t);r.ref=i.innerType,s.readOnly=!0},Il=(t,e,s,a)=>{const i=t._zod.def;nt(i.innerType,e,a);const r=e.seen.get(t);r.ref=i.innerType},mp=L("ZodISODateTime",(t,e)=>{gd.init(t,e),$e.init(t,e)});function yp(t){return xg(mp,t)}const bp=L("ZodISODate",(t,e)=>{pd.init(t,e),$e.init(t,e)});function wp(t){return Cg(bp,t)}const vp=L("ZodISOTime",(t,e)=>{md.init(t,e),$e.init(t,e)});function xp(t){return kg(vp,t)}const Cp=L("ZodISODuration",(t,e)=>{yd.init(t,e),$e.init(t,e)});function kp(t){return Ng(Cp,t)}const Rt=L("ZodError",(t,e)=>{Ko.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:s=>nh(t,s)},flatten:{value:s=>rh(t,s)},addIssue:{value:s=>{t.issues.push(s),t.message=JSON.stringify(t.issues,en,2)}},addIssues:{value:s=>{t.issues.push(...s),t.message=JSON.stringify(t.issues,en,2)}},isEmpty:{get(){return t.issues.length===0}}})},{Parent:Error}),Np=rn(Rt),Ap=nn(Rt),Sp=Fi(Rt),Vp=Ti(Rt),Ip=ch(Rt),_p=fh(Rt),Fp=uh(Rt),Tp=hh(Rt),Pp=dh(Rt),Ep=gh(Rt),Op=ph(Rt),Mp=mh(Rt),qe=L("ZodType",(t,e)=>(Ke.init(t,e),Object.assign(t["~standard"],{jsonSchema:{input:Ri(t,"input"),output:Ri(t,"output")}}),t.toJSONSchema=Hg(t,{}),t.def=e,t.type=e.type,Object.defineProperty(t,"_def",{value:e}),t.check=(...s)=>t.clone(ws(e,{checks:[...e.checks??[],...s.map(a=>typeof a=="function"?{_zod:{check:a,def:{check:"custom"},onattach:[]}}:a)]}),{parent:!0}),t.with=t.check,t.clone=(s,a)=>vs(t,s,a),t.brand=()=>t,t.register=(s,a)=>(s.add(t,a),t),t.parse=(s,a)=>Np(t,s,a,{callee:t.parse}),t.safeParse=(s,a)=>Sp(t,s,a),t.parseAsync=async(s,a)=>Ap(t,s,a,{callee:t.parseAsync}),t.safeParseAsync=async(s,a)=>Vp(t,s,a),t.spa=t.safeParseAsync,t.encode=(s,a)=>Ip(t,s,a),t.decode=(s,a)=>_p(t,s,a),t.encodeAsync=async(s,a)=>Fp(t,s,a),t.decodeAsync=async(s,a)=>Tp(t,s,a),t.safeEncode=(s,a)=>Pp(t,s,a),t.safeDecode=(s,a)=>Ep(t,s,a),t.safeEncodeAsync=async(s,a)=>Op(t,s,a),t.safeDecodeAsync=async(s,a)=>Mp(t,s,a),t.refine=(s,a)=>t.check(Vm(s,a)),t.superRefine=s=>t.check(Im(s)),t.overwrite=s=>t.check(oa(s)),t.optional=()=>g(t),t.exactOptional=()=>gm(t),t.nullable=()=>zl(t),t.nullish=()=>g(zl(t)),t.nonoptional=s=>vm(t,s),t.array=()=>Ie(t),t.or=s=>x([t,s]),t.and=s=>cm(t,s),t.transform=s=>dn(t,Ml(s)),t.default=s=>ym(t,s),t.prefault=s=>wm(t,s),t.catch=s=>Cm(t,s),t.pipe=s=>dn(t,s),t.readonly=()=>Am(t),t.describe=s=>{const a=t.clone();return La.add(a,{description:s}),a},Object.defineProperty(t,"description",{get(){return La.get(t)?.description},configurable:!0}),t.meta=(...s)=>{if(s.length===0)return La.get(t);const a=t.clone();return La.add(a,s[0]),a},t.isOptional=()=>t.safeParse(void 0).success,t.isNullable=()=>t.safeParse(null).success,t.apply=s=>s(t),t)),_l=L("_ZodString",(t,e)=>{on.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(a,i,r)=>Kg(t,a,i);const s=t._zod.bag;t.format=s.format??null,t.minLength=s.minimum??null,t.maxLength=s.maximum??null,t.regex=(...a)=>t.check(Tg(...a)),t.includes=(...a)=>t.check(Og(...a)),t.startsWith=(...a)=>t.check(Mg(...a)),t.endsWith=(...a)=>t.check(Rg(...a)),t.min=(...a)=>t.check(Mi(...a)),t.max=(...a)=>t.check(kl(...a)),t.length=(...a)=>t.check(Nl(...a)),t.nonempty=(...a)=>t.check(Mi(1,...a)),t.lowercase=a=>t.check(Pg(a)),t.uppercase=a=>t.check(Eg(a)),t.trim=()=>t.check(Lg()),t.normalize=(...a)=>t.check(zg(...a)),t.toLowerCase=()=>t.check(Dg()),t.toUpperCase=()=>t.check(Bg()),t.slugify=()=>t.check(Ug())}),Rp=L("ZodString",(t,e)=>{on.init(t,e),_l.init(t,e),t.email=s=>t.check(eg(zp,s)),t.url=s=>t.check(rg(Lp,s)),t.jwt=s=>t.check(vg($p,s)),t.emoji=s=>t.check(ng(Dp,s)),t.guid=s=>t.check(wl(Fl,s)),t.uuid=s=>t.check(tg(zi,s)),t.uuidv4=s=>t.check(sg(zi,s)),t.uuidv6=s=>t.check(ag(zi,s)),t.uuidv7=s=>t.check(ig(zi,s)),t.nanoid=s=>t.check(og(Bp,s)),t.guid=s=>t.check(wl(Fl,s)),t.cuid=s=>t.check(lg(Up,s)),t.cuid2=s=>t.check(cg(Zp,s)),t.ulid=s=>t.check(fg(Gp,s)),t.base64=s=>t.check(yg(qp,s)),t.base64url=s=>t.check(bg(Jp,s)),t.xid=s=>t.check(ug(Wp,s)),t.ksuid=s=>t.check(hg(Yp,s)),t.ipv4=s=>t.check(dg(Hp,s)),t.ipv6=s=>t.check(gg(jp,s)),t.cidrv4=s=>t.check(pg(Kp,s)),t.cidrv6=s=>t.check(mg(Xp,s)),t.e164=s=>t.check(wg(Qp,s)),t.datetime=s=>t.check(yp(s)),t.date=s=>t.check(wp(s)),t.time=s=>t.check(xp(s)),t.duration=s=>t.check(kp(s))});function p(t){return $d(Rp,t)}const $e=L("ZodStringFormat",(t,e)=>{Xe.init(t,e),_l.init(t,e)}),zp=L("ZodEmail",(t,e)=>{rd.init(t,e),$e.init(t,e)}),Fl=L("ZodGUID",(t,e)=>{ad.init(t,e),$e.init(t,e)}),zi=L("ZodUUID",(t,e)=>{id.init(t,e),$e.init(t,e)}),Lp=L("ZodURL",(t,e)=>{nd.init(t,e),$e.init(t,e)}),Dp=L("ZodEmoji",(t,e)=>{od.init(t,e),$e.init(t,e)}),Bp=L("ZodNanoID",(t,e)=>{ld.init(t,e),$e.init(t,e)}),Up=L("ZodCUID",(t,e)=>{cd.init(t,e),$e.init(t,e)}),Zp=L("ZodCUID2",(t,e)=>{fd.init(t,e),$e.init(t,e)}),Gp=L("ZodULID",(t,e)=>{ud.init(t,e),$e.init(t,e)}),Wp=L("ZodXID",(t,e)=>{hd.init(t,e),$e.init(t,e)}),Yp=L("ZodKSUID",(t,e)=>{dd.init(t,e),$e.init(t,e)}),Hp=L("ZodIPv4",(t,e)=>{bd.init(t,e),$e.init(t,e)}),jp=L("ZodIPv6",(t,e)=>{wd.init(t,e),$e.init(t,e)}),Kp=L("ZodCIDRv4",(t,e)=>{vd.init(t,e),$e.init(t,e)}),Xp=L("ZodCIDRv6",(t,e)=>{xd.init(t,e),$e.init(t,e)}),qp=L("ZodBase64",(t,e)=>{Cd.init(t,e),$e.init(t,e)}),Jp=L("ZodBase64URL",(t,e)=>{Nd.init(t,e),$e.init(t,e)}),Qp=L("ZodE164",(t,e)=>{Ad.init(t,e),$e.init(t,e)}),$p=L("ZodJWT",(t,e)=>{Vd.init(t,e),$e.init(t,e)}),Tl=L("ZodNumber",(t,e)=>{rl.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(a,i,r)=>Xg(t,a,i),t.gt=(a,i)=>t.check(xl(a,i)),t.gte=(a,i)=>t.check(fn(a,i)),t.min=(a,i)=>t.check(fn(a,i)),t.lt=(a,i)=>t.check(vl(a,i)),t.lte=(a,i)=>t.check(cn(a,i)),t.max=(a,i)=>t.check(cn(a,i)),t.int=a=>t.check(Pl(a)),t.safe=a=>t.check(Pl(a)),t.positive=a=>t.check(xl(0,a)),t.nonnegative=a=>t.check(fn(0,a)),t.negative=a=>t.check(vl(0,a)),t.nonpositive=a=>t.check(cn(0,a)),t.multipleOf=(a,i)=>t.check(Cl(a,i)),t.step=(a,i)=>t.check(Cl(a,i)),t.finite=()=>t;const s=t._zod.bag;t.minValue=Math.max(s.minimum??Number.NEGATIVE_INFINITY,s.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,t.maxValue=Math.min(s.maximum??Number.POSITIVE_INFINITY,s.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,t.isInt=(s.format??"").includes("int")||Number.isSafeInteger(s.multipleOf??.5),t.isFinite=!0,t.format=s.format??null});function C(t){return Ag(Tl,t)}const em=L("ZodNumberFormat",(t,e)=>{Id.init(t,e),Tl.init(t,e)});function Pl(t){return Sg(em,t)}const tm=L("ZodBoolean",(t,e)=>{_d.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(s,a,i)=>qg(t,s,a)});function Ge(t){return Vg(tm,t)}const sm=L("ZodNull",(t,e)=>{Fd.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(s,a,i)=>Jg(t,s,a)});function un(t){return Ig(sm,t)}const am=L("ZodUnknown",(t,e)=>{Td.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(s,a,i)=>$g()});function Cs(){return _g(am)}const im=L("ZodNever",(t,e)=>{Pd.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(s,a,i)=>Qg(t,s,a)});function be(t){return Fg(im,t)}const rm=L("ZodArray",(t,e)=>{Ed.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(s,a,i)=>ip(t,s,a,i),t.element=e.element,t.min=(s,a)=>t.check(Mi(s,a)),t.nonempty=s=>t.check(Mi(1,s)),t.max=(s,a)=>t.check(kl(s,a)),t.length=(s,a)=>t.check(Nl(s,a)),t.unwrap=()=>t.element});function Ie(t,e){return Zg(rm,t,e)}const nm=L("ZodObject",(t,e)=>{Md.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(s,a,i)=>rp(t,s,a,i),Me(t,"shape",()=>e.shape),t.keyof=()=>D(Object.keys(t._zod.def.shape)),t.catchall=s=>t.clone({...t._zod.def,catchall:s}),t.passthrough=()=>t.clone({...t._zod.def,catchall:Cs()}),t.loose=()=>t.clone({...t._zod.def,catchall:Cs()}),t.strict=()=>t.clone({...t._zod.def,catchall:be()}),t.strip=()=>t.clone({...t._zod.def,catchall:void 0}),t.extend=s=>eh(t,s),t.safeExtend=s=>th(t,s),t.merge=s=>sh(t,s),t.pick=s=>Qu(t,s),t.omit=s=>$u(t,s),t.partial=(...s)=>ah(Rl,t,s[0]),t.required=(...s)=>ih(Ll,t,s[0])});function w(t,e){const s={type:"object",shape:t??{},...oe(e)};return new nm(s)}const El=L("ZodUnion",(t,e)=>{fl.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(s,a,i)=>np(t,s,a,i),t.options=e.options});function x(t,e){return new El({type:"union",options:t,...oe(e)})}const om=L("ZodDiscriminatedUnion",(t,e)=>{El.init(t,e),Rd.init(t,e)});function Li(t,e,s){return new om({type:"union",options:e,discriminator:t,...oe(s)})}const lm=L("ZodIntersection",(t,e)=>{zd.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(s,a,i)=>op(t,s,a,i)});function cm(t,e){return new lm({type:"intersection",left:t,right:e})}const fm=L("ZodRecord",(t,e)=>{Ld.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(s,a,i)=>lp(t,s,a,i),t.keyType=e.keyType,t.valueType=e.valueType});function Ol(t,e,s){return new fm({type:"record",keyType:t,valueType:e,...oe(s)})}const hn=L("ZodEnum",(t,e)=>{Dd.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(a,i,r)=>ep(t,a,i),t.enum=e.entries,t.options=Object.values(e.entries);const s=new Set(Object.keys(e.entries));t.extract=(a,i)=>{const r={};for(const n of a)if(s.has(n))r[n]=e.entries[n];else throw new Error(`Key ${n} not found in enum`);return new hn({...e,checks:[],...oe(i),entries:r})},t.exclude=(a,i)=>{const r={...e.entries};for(const n of a)if(s.has(n))delete r[n];else throw new Error(`Key ${n} not found in enum`);return new hn({...e,checks:[],...oe(i),entries:r})}});function D(t,e){const s=Array.isArray(t)?Object.fromEntries(t.map(a=>[a,a])):t;return new hn({type:"enum",entries:s,...oe(e)})}const um=L("ZodLiteral",(t,e)=>{Bd.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(s,a,i)=>tp(t,s,a),t.values=new Set(e.values),Object.defineProperty(t,"value",{get(){if(e.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return e.values[0]}})});function he(t,e){return new um({type:"literal",values:Array.isArray(t)?t:[t],...oe(e)})}const hm=L("ZodTransform",(t,e)=>{Ud.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(s,a,i)=>ap(t,s),t._zod.parse=(s,a)=>{if(a.direction==="backward")throw new Bo(t.constructor.name);s.addIssue=r=>{if(typeof r=="string")s.issues.push(za(r,s.value,e));else{const n=r;n.fatal&&(n.continue=!1),n.code??(n.code="custom"),n.input??(n.input=s.value),n.inst??(n.inst=t),s.issues.push(za(n))}};const i=e.transform(s.value,s);return i instanceof Promise?i.then(r=>(s.value=r,s)):(s.value=i,s)}});function Ml(t){return new hm({type:"transform",transform:t})}const Rl=L("ZodOptional",(t,e)=>{dl.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(s,a,i)=>Il(t,s,a,i),t.unwrap=()=>t._zod.def.innerType});function g(t){return new Rl({type:"optional",innerType:t})}const dm=L("ZodExactOptional",(t,e)=>{Zd.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(s,a,i)=>Il(t,s,a,i),t.unwrap=()=>t._zod.def.innerType});function gm(t){return new dm({type:"optional",innerType:t})}const pm=L("ZodNullable",(t,e)=>{Gd.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(s,a,i)=>cp(t,s,a,i),t.unwrap=()=>t._zod.def.innerType});function zl(t){return new pm({type:"nullable",innerType:t})}const mm=L("ZodDefault",(t,e)=>{Wd.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(s,a,i)=>up(t,s,a,i),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function ym(t,e){return new mm({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():Ho(e)}})}const bm=L("ZodPrefault",(t,e)=>{Yd.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(s,a,i)=>hp(t,s,a,i),t.unwrap=()=>t._zod.def.innerType});function wm(t,e){return new bm({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():Ho(e)}})}const Ll=L("ZodNonOptional",(t,e)=>{Hd.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(s,a,i)=>fp(t,s,a,i),t.unwrap=()=>t._zod.def.innerType});function vm(t,e){return new Ll({type:"nonoptional",innerType:t,...oe(e)})}const xm=L("ZodCatch",(t,e)=>{jd.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(s,a,i)=>dp(t,s,a,i),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function Cm(t,e){return new xm({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}const km=L("ZodPipe",(t,e)=>{Kd.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(s,a,i)=>gp(t,s,a,i),t.in=e.in,t.out=e.out});function dn(t,e){return new km({type:"pipe",in:t,out:e})}const Nm=L("ZodReadonly",(t,e)=>{Xd.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(s,a,i)=>pp(t,s,a,i),t.unwrap=()=>t._zod.def.innerType});function Am(t){return new Nm({type:"readonly",innerType:t})}const Sm=L("ZodCustom",(t,e)=>{qd.init(t,e),qe.init(t,e),t._zod.processJSONSchema=(s,a,i)=>sp(t,s)});function Vm(t,e={}){return Gg(Sm,t,e)}function Im(t){return Wg(t)}function _(t,e){return dn(Ml(t),e)}const la={custom:"custom"},_m=w({color:g(p()),opacity:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),padding:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),borderRadius:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]))}),Fm=w({family:g(p()),color:g(p()),opacity:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),size:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),lineHeight:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),stroke:g(p()),strokeWidth:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]))}),Tm=w({top:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),left:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),right:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]))}),Pm=w({type:D(["caption"]),src:p().min(1).regex(/\S/),font:g(Fm),background:g(_m),margin:g(Tm),trim:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),speed:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(10)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]))}),Em=w({color:x([p().regex(/^#[0-9a-fA-F]{6}$/),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),threshold:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int().gte(0).lte(250)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),halo:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int().gte(0).lte(250)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]))}),Om=w({type:D(["text-to-avatar"]),text:p(),avatar:D(["jack","lana","lily","matt","rian"]),background:g(p())}),Mm=w({type:he("didTextToAvatarOptions_DIDTextToAvatarOptions")}).and(Om),Rm=w({provider:D(["d-id"]),options:Mm}),zm=w({type:D(["text-to-speech"]),text:p(),voice:D(["Adam","Antoni","Arnold","Bella","Domi","Elli","Josh","Rachel","Sam"])}),Lm=w({type:he("elevenlabsTextToSpeechOptions_ElevenLabsTextToSpeechOptions")}).and(zm),Dm=w({provider:D(["elevenlabs"]),options:Lm}),Bm=w({type:D(["text-to-avatar"]),text:p(),avatar:D(["Angela","Bill","Daisy","Derek","Eva","Jake","Jeff","Jerome","Joon","Kayla","Kent","Luna","Mark","Matthew","Monica","Peter","Selina","Tanya","Thomas","Tina","Tyler","Vanessa","Vera","Wilson","Zoey"]),voice:D(["Abbi - Natural","Adam - Natural","Aiston - Friendly","Alice - Newscaster","Alison - Cheerful","Amber - Friendly","Amy - Warm","Ana - Cheerful","Antoni - Friendly","Aria - Newscaster","Arnold - Cheerful","Arthur - Natural","Bella - Friendly","Belle - Natural","Brandon - Warm","Brian - Natural","Bruce - Natural","Cerise - Cheerful","Christopher - Calm","Clara - Professional","Connor - Natural","Dahlia - Friendly","Davis - Professional","Dean - Natural","Delbert - Cheerful","Edward - Friendly","Elaine - Calm","Emily - Natural","Emma - Newscaster","Eric - Newscaster","Grace - Natural","Hailey - Calm","Indira - Cheerful","Isabella - Cheerful","Jacob - Natural","Jahmai - Friendly","Jane - Serious","Jason - Serious","Jelle - Friendly","Jen - Natural","Jenny - Professional","Jodi - Cheerful","Joey - Calm","Johan - Friendly","Josie - Cheerful","Keanan - Natural","Keith - Cheerful","Kellie - Friendly","Lauren - Friendly","Leah - Natural","Liam - Professional","Libby - Natural","Lily - Professional","Lucas - Natural","Luke - Professional","Luna - Natural","Marieke - Natural","Matthew - Professional","Michelle - Natural","Mitchell - Natural","Molly - Newscaster","Monica - Calm","Natasha - Professional","Neerja - Newscaster","Noah - Serious","Oliver - Newscaster","Olivia - Calm","Paul - Natural","Prabhat - Natural","Raveena - Natural","Rudi - Friendly","Ryan - Professional","Sam - Natural","Sara - Cheerful","Sherry - Friendly","Sonia - Warm","Thomas - Natural","Todd - Professional","Tony - Professional","Tracy - Cheerful","Wayne - Natural","Wilder - Natural","Wille - Natural","William - Friendly"]),avatarStyle:g(D(["normal","circle"])),background:g(p()),ratio:g(D(["16:9","9:16"])),test:g(Ge())}),Um=w({type:he("heygenTextToAvatarOptions_HeyGenTextToAvatarOptions")}).and(Bm),Zm=w({provider:D(["heygen"]),options:Um}),Gm=w({type:D(["text-generator"]),prompt:p(),model:D(["gpt-3.5-turbo","gpt-4"]),systemPrompt:g(p())}),Wm=w({type:he("openaiTextGeneratorOptions_OpenAiTextGeneratorOptions")}).and(Gm),Ym=w({provider:D(["openai"]),options:Wm}),Hm=w({status:p(),title:p(),detail:p()});w({errors:Ie(Hm)});const jm=w({owner:p(),provider:D(["shotstack","elevenlabs","heygen","d-id"]),type:D(["text-to-speech","text-to-avatar"]),url:g(p()),status:D(["queued","processing","saving","done","failed"]),created:p(),updated:p()}),Km=w({type:p(),id:p(),attributes:jm});w({data:Km});const Xm=w({type:D(["image-to-video"]),imageUrl:p(),guidanceScale:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(1.8),motion:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(127)}),qm=w({type:D(["text-generator"]),prompt:p()}),Jm=w({type:D(["text-to-image"]),prompt:p(),width:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),height:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])}),Qm=w({type:D(["text-to-speech"]),text:p(),voice:D(["Hala","Lisa","Arlet","Hiujin","Zhiyu","Sofie","Laura","Olivia","Amy","Emma","Brian","Arthur","Kajal","Niamh","Aria","Ayanda","Ivy","Joanna","Kendra","Kimberly","Salli","Joey","Justin","Kevin","Matthew","Ruth","Stephen","Suvi","Léa","Rémi","Gabrielle","Liam","Vicki","Daniel","Hannah","Kajal","Bianca","Adriano","Takumi","Kazuha","Tomoko","Seoyeon","Ida","Ola","Camila","Vitória","Vitoria","Thiago","Inês","Ines","Lucia","Sergio","Mia","Andrés","Lupe","Pedro","Elin"]),language:g(D(["cmn-CN","da-DK","de-DE","en-AU","en-GB","en-IN","en-US","es-ES","es-MX","es-US","fr-CA","fr-FR","it-IT","ja-JP","hi-IN","ko-KR","nb-NO","nl-NL","pl-PL","pt-BR","pt-PT","sv-SE","en-NZ","en-ZA","ca-ES","de-AT","yue-CN","ar-AE","fi-FI"])),newscaster:g(Ge()).default(!1)}),$m=x([w({type:he("shotstackTextToSpeechOptions_ShotstackTextToSpeechOptions")}).and(Qm),w({type:he("shotstackTextToImageOptions_ShotstackTextToImageOptions")}).and(Jm),w({type:he("shotstackTextGeneratorOptions_ShotstackTextGeneratorOptions")}).and(qm),w({type:he("shotstackImageToVideoOptions_ShotstackImageToVideoOptions")}).and(Xm)]),ey=w({provider:D(["shotstack"]),options:$m}),ty=w({type:D(["text-to-image"]),prompt:p(),engine:g(D(["stable-diffusion-xl-1024-v0-9","stable-diffusion-xl-1024-v1-0","stable-diffusion-v1-6","stable-diffusion-512-v2-1","stable-diffusion-xl-beta-v2-2-2"])),width:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),height:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),steps:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(30),seed:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0),cfgScale:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(7),stylePreset:g(D(["3d-model","analog-film","anime","cinematic","comic-book","digital-art","enhance","fantasy-art","isometric","line-art","low-poly","modeling-compound","neon-punk","origami","photographic","pixel-art","tile-texture"]))}),sy=w({type:he("stabilityAiTextToImageOptions_StabilityAiTextToImageOptions")}).and(ty),ay=w({provider:D(["stability-ai"]),options:sy}),iy=x([w({provider:he("shotstackGeneratedAsset_ShotstackGeneratedAsset")}).and(ey),w({provider:he("didGeneratedAsset_DIDGeneratedAsset")}).and(Rm),w({provider:he("elevenlabsGeneratedAsset_ElevenLabsGeneratedAsset")}).and(Dm),w({provider:he("heygenGeneratedAsset_HeyGenGeneratedAsset")}).and(Zm),w({provider:he("openaiGeneratedAsset_OpenAiGeneratedAsset")}).and(Ym),w({provider:he("stabilityAiGeneratedAsset_StabilityAiGeneratedAsset")}).and(ay)]),Di=w({top:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),bottom:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),left:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),right:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]))}),ry=w({bucket:p(),prefix:g(p()),filename:g(p())}),ny=w({provider:he("google-cloud-storage"),options:g(ry)}),oy=w({folderId:p(),filename:g(p())}),ly=w({provider:he("google-drive"),options:oy}),cy=w({playbackPolicy:g(Ie(D(["public","signed"]))),passthrough:g(p().max(255))}),fy=w({provider:he("mux"),options:g(cy)}),uy=w({region:p(),bucket:p(),prefix:g(p()),filename:g(p()),acl:g(p())}),hy=w({provider:he("s3"),options:g(uy)}),dy=w({provider:he("shotstack"),exclude:g(Ge())}),gy=w({title:g(p().max(150)),privacyLevel:g(D(["public","friends","private"])),disableDuet:g(Ge()).default(!1),disableStitch:g(Ge()).default(!1),disableComment:g(Ge()).default(!1)}),py=w({provider:he("tiktok"),options:g(gy)}),my=w({view:g(D(["anybody","nobody","contacts","password","unlisted"])),embed:g(D(["public","private","whitelist"])),comments:g(D(["anybody","nobody","contacts"])),download:g(Ge()),add:g(Ge())}),yy=w({name:g(p()),description:g(p()),privacy:g(my),folderUri:g(p())}),by=w({provider:he("vimeo"),options:g(yy)}),Bi=Li("provider",[dy,fy,hy,ny,ly,by,py]),wy=Bi,vy=w({horizontal:g(Ge()),vertical:g(Ge())}),xy=w({src:p()}),Cy=w({type:D(["html"]),html:p(),css:g(p()),width:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),height:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),background:g(p()),position:g(D(["top","topRight","right","bottomRight","bottom","bottomLeft","left","topLeft","center"]))}),ky=w({type:D(["image"]),src:p().min(1).regex(/\S/),crop:g(Di)}),Ny=w({type:D(["image-to-video"]),src:p().min(1),prompt:g(p()),aspectRatio:g(D(["1:1","4:3","16:9","9:16","3:4","21:9","9:21"])),speed:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(10)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),crop:g(Di)}),Ay=w({preset:D(["conference","interview","lecture","meeting","mobile_phone","music","podcast","studio","voice_over"])}),Sy=w({provider:p().default("dolby"),options:Ay}),Vy=w({enhancement:he("dolbyEnhancement_DolbyEnhancement")}).and(Sy),Iy=w({audio:g(Vy)}),_y=w({status:p(),title:p(),detail:p()});w({errors:Ie(_y)});const Fy=w({type:p(),id:p()});w({data:Fy});const Ty=w({id:p(),url:p(),expires:p()}),Py=w({type:p(),id:p(),attributes:Ty});w({data:Py});const Ey=w({speed:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(10)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),preservePitch:g(Ge())}),Oy=w({format:g(D(["srt","vtt"]))}),My=w({type:D(["luma"]),src:p().min(1).regex(/\S/),trim:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]))}),Dl=w({find:p(),replace:x([p(),C(),Ge(),un(),Ol(p(),Cs()),Ie(Cs())])}),Ry=w({capture:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])}),zy=w({start:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),length:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]))}),Ly=w({id:p(),owner:p(),region:g(p()),renderId:g(p()),providerId:g(p()),filename:g(p()),url:g(p()),status:D(["importing","ready","failed","deleted"]),created:g(p()),updated:g(p())}),Bl=w({type:p(),attributes:Ly});w({data:Ie(Bl)}),w({data:Bl}),w({success:Ge(),message:p(),response:Ol(p(),Cs())});const Dy=w({message:p(),id:p()});w({success:Ge(),message:p(),response:Dy});const By=w({id:p(),name:p(),created:g(p()),updated:g(p())}),Uy=w({owner:p(),templates:Ie(By)});w({success:Ge(),message:p(),response:Uy});const Zy=w({message:p(),id:p()});w({success:Ge(),message:p(),response:Zy});const Ul=w({horizontal:g(D(["left","center","right"])),vertical:g(D(["top","middle","bottom"]))}),Gy=Ul,Zl=w({preset:D(["fadeIn","slideIn","typewriter","ascend","shift","movingLetters"]),duration:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(.1).lte(30)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),style:g(D(["character","word"])),direction:g(D(["left","right","up","down"]))}),Wy=Zl,Gl=w({color:g(x([p().regex(/^#[A-Fa-f0-9]{6}$/),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),opacity:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(1),borderRadius:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0)}),Yy=Gl,Hy=w({width:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0),color:g(x([p().regex(/^#[A-Fa-f0-9]{6}$/),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default("#000000"),opacity:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(1),radius:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0)}),jy=w({type:g(D(["linear","radial"])),angle:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(360)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0),stops:Ie(w({offset:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),color:x([p().regex(/^#[A-Fa-f0-9]{6}$/),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])})).min(2)}),Ky=w({top:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0),right:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0),bottom:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0),left:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0)}),Wl=w({offsetX:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0),offsetY:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0),blur:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0),color:g(x([p().regex(/^#[A-Fa-f0-9]{6}$/),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default("#000000"),opacity:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(.5)}),Xy=Wl,gn=w({width:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0),color:g(x([p().regex(/^#[A-Fa-f0-9]{6}$/),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default("#000000"),opacity:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(1)}),qy=gn,Yl=w({family:g(p()).default("Open Sans"),size:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int().gte(1).lte(500)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(24),weight:g(Cs()).default("400"),color:g(x([p().regex(/^#[A-Fa-f0-9]{6}$/),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default("#ffffff"),opacity:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(1),background:g(x([p().regex(/^#[A-Fa-f0-9]{6}$/),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),stroke:g(gn)}),Jy=Yl,Hl=w({letterSpacing:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0),lineHeight:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(10)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(1.2),textTransform:g(D(["none","uppercase","lowercase","capitalize"])),textDecoration:g(D(["none","underline","line-through"])),gradient:g(jy)}),Qy=Hl,jl=w({type:D(["rich-text"]),text:p().max(5e3),font:g(Yl),style:g(Hl),stroke:g(gn),shadow:g(Wl),background:g(Gl),border:g(Hy),padding:g(x([x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),Ky])),align:g(Ul),animation:g(Zl)}),Kl=jl,$y=w({id:g(p()),owner:g(p()),status:g(D(["queued","failed"])),created:g(p())}),eb=w({type:g(p()),attributes:g($y)});w({data:eb});const tb=w({url:p(),id:p(),destinations:Ie(Bi)}),sb=w({type:D(["shape"]),shape:D(["rectangle","circle","line"]),width:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),height:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),fill:g(w({color:g(p()),opacity:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]))})),stroke:g(w({color:g(p()),width:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]))})),rectangle:g(w({width:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),height:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),cornerRadius:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]))})),circle:g(w({radius:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])})),line:g(w({length:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),thickness:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])}))}),pn=w({width:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int().gte(1).lte(4096)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),height:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int().gte(1).lte(4096)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]))}),ab=pn,Xl=w({format:g(D(["mp4","webm","mov","avi","mkv","ogv","wmv","avif","gif","mp3","wav","jpg","png","webp","tif"])),size:g(pn),fit:g(D(["cover","contain","crop"])),resolution:g(D(["preview","mobile","sd","hd","fhd"])),quality:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int().gte(1).lte(100)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),fps:g(x([he(12),he(15),he(23.976),he(24),he(25),he(29.97),he(30),he(48),he(50),he(59.94),he(60)])),speed:g(Ey),keyframeInterval:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int().gte(1).lte(300)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),fixOffset:g(Ge()),fixRotation:g(Ge()),enhance:g(Iy),filename:g(p())}),ib=w({renditions:g(Ie(Xl)),transcription:g(Oy)}),rb=w({id:p(),status:g(D(["queued","importing","ready","failed","deleted","overwritten"])),url:g(p()),executionTime:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),transformation:g(Xl),width:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),height:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),duration:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),fps:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]))}),nb=w({renditions:g(Ie(rb))}),ob=w({id:p(),owner:p(),input:g(p()),source:g(p()),status:g(D(["queued","importing","ready","failed","deleted","overwritten"])),outputs:g(nb),width:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),height:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),duration:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),fps:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),created:g(p()),updated:g(p())}),ql=w({type:p(),id:p(),attributes:ob});w({data:Ie(ql)}),w({data:ql});const lb=w({url:g(p()),outputs:g(ib),destinations:g(Bi),callback:g(p())}),cb=w({src:p().min(1).regex(/\S/),effect:g(D(["fadeIn","fadeOut","fadeInFadeOut"])),volume:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]))}),Jl=w({offset:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),color:x([p().regex(/^#[A-Fa-f0-9]{6}$/),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])}),fb=w({type:D(["linear"]),angle:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(360)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0),stops:Ie(Jl).min(2),opacity:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(1)}),ub=w({type:D(["radial"]),stops:Ie(Jl).min(2),opacity:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(1)}),hb=w({offsetX:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0),offsetY:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0),blur:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0),color:g(x([p().regex(/^#[A-Fa-f0-9]{6}$/),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default("#000000"),opacity:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(.5)}),db=w({type:D(["solid"]),color:p().regex(/^#[A-Fa-f0-9]{6}$/).default("#000000"),opacity:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(1)}),gb=Li("type",[db,fb,ub]),pb=w({color:g(x([p().regex(/^#[A-Fa-f0-9]{6}$/),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default("#000000"),width:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(100)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(1),opacity:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(1),lineCap:g(D(["butt","round","square"])),lineJoin:g(D(["miter","round","bevel"])),dashArray:g(Ie(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]))),dashOffset:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0)}),mb=w({x:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0),y:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0),rotation:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(-360).lte(360)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0),scale:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(.01).lte(100)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(1),originX:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(.5),originY:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(.5)}),yb=w({type:D(["arrow"]),length:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(1).lte(4096)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),headWidth:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(1).lte(1e3)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),headLength:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(1).lte(1e3)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),shaftWidth:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(1).lte(1e3)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])}),bb=w({type:D(["circle"]),radius:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(1).lte(2048)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])}),wb=w({type:D(["cross"]),width:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(1).lte(4096)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),height:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(1).lte(4096)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),thickness:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(1).lte(500)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])}),vb=w({type:D(["ellipse"]),radiusX:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(1).lte(2048)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),radiusY:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(1).lte(2048)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])}),xb=w({type:D(["heart"]),size:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(1).lte(4096)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])}),Cb=w({type:D(["line"]),length:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(1).lte(4096)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),thickness:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(1).lte(500)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])}),kb=w({type:D(["path"]),d:p().min(1).max(1e5)}),Nb=w({type:D(["polygon"]),sides:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int().gte(3).lte(100)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),radius:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(1).lte(2048)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])}),Ab=w({type:D(["rectangle"]),width:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(1).lte(4096)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),height:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(1).lte(4096)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),cornerRadius:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(2048)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(0)}),Sb=w({type:D(["ring"]),outerRadius:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(1).lte(2048)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),innerRadius:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(2048)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])}),Vb=w({type:D(["star"]),points:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int().gte(3).lte(100)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),outerRadius:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(1).lte(2048)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),innerRadius:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(1).lte(2048)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])}),Ib=Li("type",[Ab,bb,vb,Cb,Nb,Vb,yb,xb,wb,Sb,kb]),Ql=w({type:D(["svg"]),src:g(p().min(1).max(5e5)),shape:g(Ib),fill:g(gb),stroke:g(pb),shadow:g(hb),transform:g(mb),opacity:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])).default(1),width:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int().gte(1).lte(4096)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),height:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int().gte(1).lte(4096)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]))}).superRefine((t,e)=>{const s=t.shape!==void 0,a=t.src!==void 0&&t.src.trim()!=="";if(!s&&!a&&e.addIssue({code:la.custom,message:"Either 'src' or 'shape' must be provided",path:[]}),s&&a&&e.addIssue({code:la.custom,message:"Provide either 'src' or 'shape', not both",path:["src"]}),a){const i=["shape","fill","stroke","shadow","transform","width","height"];for(const r of i)t[r]!==void 0&&e.addIssue({code:la.custom,message:`'${r}' is not allowed when using 'src'. Only 'type' and 'src' are allowed in import mode`,path:[r]})}}),_b=Ql,Fb=w({id:p(),merge:g(Ie(Dl))}),Tb=w({horizontal:g(D(["left","center","right"])),vertical:g(D(["top","center","bottom"]))}),Pb=w({preset:D(["typewriter"]),duration:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(.1).lte(30)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]))}),Eb=w({color:g(x([p().regex(/^#[A-Fa-f0-9]{6}$/),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),opacity:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),padding:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(100)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),borderRadius:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]))}),Ob=w({family:g(p()),color:g(p()),opacity:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),size:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),weight:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),lineHeight:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]))}),Mb=w({width:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(10)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),color:g(x([p().regex(/^#[A-Fa-f0-9]{6}$/),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]))}),Rb=w({type:D(["text"]),text:p(),width:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),height:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),font:g(Ob),background:g(Eb),alignment:g(Tb),stroke:g(Mb),animation:g(Pb),ellipsis:g(p())}),zb=w({type:D(["text-to-image"]),prompt:p(),width:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),height:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().int()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),crop:g(Di)}),Lb=w({capture:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),scale:x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])}),$l=w({format:D(["mp4","gif","mp3","jpg","png","bmp"]),resolution:g(D(["preview","mobile","sd","hd","1080","4k"])),aspectRatio:g(D(["16:9","9:16","1:1","4:5","4:3"])),size:g(pn),fps:g(x([he(12),he(15),he(23.976),he(24),he(25),he(29.97),he(30),he(48),he(50),he(59.94),he(60)])),scaleTo:g(D(["preview","mobile","sd","hd","1080","4k"])),quality:g(D(["verylow","low","medium","high","veryhigh"])),repeat:g(Ge()),mute:g(Ge()),range:g(zy),poster:g(Ry),thumbnail:g(Lb),destinations:g(Ie(Bi))}),Ui=$l,Db=w({in:g(D(["none","fade","fadeSlow","fadeFast","reveal","revealSlow","revealFast","wipeLeft","wipeLeftSlow","wipeLeftFast","wipeRight","wipeRightSlow","wipeRightFast","slideLeft","slideLeftSlow","slideLeftFast","slideRight","slideRightSlow","slideRightFast","slideUp","slideUpSlow","slideUpFast","slideDown","slideDownSlow","slideDownFast","carouselLeft","carouselLeftSlow","carouselLeftFast","carouselRight","carouselRightSlow","carouselRightFast","carouselUp","carouselUpSlow","carouselUpFast","carouselDown","carouselDownSlow","carouselDownFast","shuffleTopRight","shuffleTopRightSlow","shuffleTopRightFast","shuffleRightTop","shuffleRightTopSlow","shuffleRightTopFast","shuffleRightBottom","shuffleRightBottomSlow","shuffleRightBottomFast","shuffleBottomRight","shuffleBottomRightSlow","shuffleBottomRightFast","shuffleBottomLeft","shuffleBottomLeftSlow","shuffleBottomLeftFast","shuffleLeftBottom","shuffleLeftBottomSlow","shuffleLeftBottomFast","shuffleLeftTop","shuffleLeftTopSlow","shuffleLeftTopFast","shuffleTopLeft","shuffleTopLeftSlow","shuffleTopLeftFast","zoom"])),out:g(D(["none","fade","fadeSlow","fadeFast","reveal","revealSlow","revealFast","wipeLeft","wipeLeftSlow","wipeLeftFast","wipeRight","wipeRightSlow","wipeRightFast","slideLeft","slideLeftSlow","slideLeftFast","slideRight","slideRightSlow","slideRightFast","slideUp","slideUpSlow","slideUpFast","slideDown","slideDownSlow","slideDownFast","carouselLeft","carouselLeftSlow","carouselLeftFast","carouselRight","carouselRightSlow","carouselRightFast","carouselUp","carouselUpSlow","carouselUpFast","carouselDown","carouselDownSlow","carouselDownFast","shuffleTopRight","shuffleTopRightSlow","shuffleTopRightFast","shuffleRightTop","shuffleRightTopSlow","shuffleRightTopFast","shuffleRightBottom","shuffleRightBottomSlow","shuffleRightBottomFast","shuffleBottomRight","shuffleBottomRightSlow","shuffleBottomRightFast","shuffleBottomLeft","shuffleBottomLeftSlow","shuffleBottomLeftFast","shuffleLeftBottom","shuffleLeftBottomSlow","shuffleLeftBottomFast","shuffleLeftTop","shuffleLeftTopSlow","shuffleLeftTopFast","shuffleTopLeft","shuffleTopLeftSlow","shuffleTopLeftFast","zoom"]))}),qt=w({from:g(Cs()),to:g(Cs()),start:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),length:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),interpolation:g(D(["linear","bezier","constant"])),easing:g(D(["ease","easeIn","easeOut","easeInOut","easeInQuad","easeInCubic","easeInQuart","easeInQuint","easeInSine","easeInExpo","easeInCirc","easeInBack","easeOutQuad","easeOutCubic","easeOutQuart","easeOutQuint","easeOutSine","easeOutExpo","easeOutCirc","easeOutBack","easeInOutQuad","easeInOutCubic","easeInOutQuart","easeInOutQuint","easeInOutSine","easeInOutExpo","easeInOutCirc","easeInOutBack"]))}),Bb=w({type:D(["audio"]),src:p().min(1).regex(/\S/),trim:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),volume:g(x([x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),Ie(qt)])),speed:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(10)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),effect:g(D(["none","fadeIn","fadeOut","fadeInFadeOut"]))}),ec=w({x:g(x([x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(-10).lte(10)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),Ie(qt)])),y:g(x([x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(-10).lte(10)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),Ie(qt)]))}),Ub=w({angle:g(x([x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(-360).lte(360)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),Ie(qt)]))}),Zb=w({x:g(x([x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(-100).lte(100)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),Ie(qt)])),y:g(x([x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(-100).lte(100)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),Ie(qt)]))}),Gb=w({type:D(["text-to-speech"]),text:p(),voice:p(),language:g(p()),newscaster:g(Ge()).default(!1),trim:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),volume:g(x([x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),Ie(qt)])),speed:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(10)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),effect:g(D(["none","fadeIn","fadeOut","fadeInFadeOut"]))}),Wb=w({type:D(["title"]),text:p(),style:g(D(["minimal","blockbuster","vogue","sketchy","skinny","chunk","chunkLight","marker","future","subtitle"])),color:g(p()),size:g(D(["xx-small","x-small","small","medium","large","x-large","xx-large"])),background:g(p()),position:g(D(["top","topRight","right","bottomRight","bottom","bottomLeft","left","topLeft","center"])),offset:g(ec)}),Yb=w({rotate:g(Ub),skew:g(Zb),flip:g(vy)}),Hb=w({type:D(["video"]),src:p().min(1).regex(/\S/),transcode:g(Ge()),trim:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),volume:g(x([x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(1)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),Ie(qt)])),volumeEffect:g(D(["none","fadeIn","fadeOut","fadeInFadeOut"])),speed:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0).lte(10)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),crop:g(Di),chromaKey:g(Em)}),jb=Li("type",[Hb,ky,Rb,jl,Bb,My,Pm,Cy,Wb,sb,Ql,zb,Ny,Gb]),Kb=w({asset:jb,start:x([x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),x([p().regex(/^(auto|alias:\/\/[A-Za-z0-9_-]+)$/),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])]),length:x([x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(0)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),x([p().regex(/^(auto|end|alias:\/\/[A-Za-z0-9_-]+)$/),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])]),fit:g(D(["cover","contain","crop","none"])),scale:g(x([x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),Ie(qt)])),width:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(1).lte(3840)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),height:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C().gte(1).lte(2160)),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),position:g(D(["top","topRight","right","bottomRight","bottom","bottomLeft","left","topLeft","center"])),offset:g(ec),transition:g(Db),effect:g(D(["zoomIn","zoomInSlow","zoomInFast","zoomOut","zoomOutSlow","zoomOutFast","slideLeft","slideLeftSlow","slideLeftFast","slideRight","slideRightSlow","slideRightFast","slideUp","slideUpSlow","slideUpFast","slideDown","slideDownSlow","slideDownFast"])),filter:g(D(["none","blur","boost","contrast","darken","greyscale","lighten","muted","negative"])),opacity:g(x([x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]),Ie(qt)])),transform:g(Yb),alias:g(x([p().regex(/^[A-Za-z0-9_-]+$/),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)]))}).transform(t=>{if(t.asset&&typeof t.asset=="object"&&"type"in t.asset&&t.asset.type==="rich-text"){const{fit:s,...a}=t;return a}return t}),Xb=w({clips:Ie(Kb).min(1)}),qb=w({soundtrack:g(cb),background:g(p()),fonts:g(Ie(xy)),tracks:Ie(Xb).min(1),cache:g(Ge())}),Da=w({timeline:qb,output:$l,merge:g(Ie(Dl)),callback:g(p()),disk:g(D(["local","mount"]))}),tc=Da,Jb=w({id:p(),owner:p(),plan:g(p()),status:D(["queued","fetching","preprocessing","rendering","saving","done","failed"]),error:g(p()),duration:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),renderTime:g(x([_(t=>{if(!(t===""||t===null||t===void 0))return Array.isArray(t)?t:typeof t=="string"?/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/.test(t)?t:Number(t):t},C()),p().regex(/^\{\{\s*[A-Za-z0-9_]+\s*\}\}$/)])),url:g(p()),poster:g(x([p(),un()])),thumbnail:g(x([p(),un()])),data:g(Da),created:g(p()),updated:g(p())});w({success:Ge(),message:p(),response:Jb});const Qb=w({id:p(),name:p(),owner:p(),template:Da});w({success:Ge(),message:p(),response:Qb});const sc=w({name:p(),template:g(Da)});w({body:Da,path:g(be()),query:g(be())}),w({body:g(be()),path:w({id:p().regex(/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/)}),query:g(w({data:g(Ge()),merged:g(Ge())}))}),w({body:g(be()),path:g(be()),query:g(be())}),w({body:sc,path:g(be()),query:g(be())}),w({body:g(be()),path:w({id:p().regex(/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/)}),query:g(be())}),w({body:g(be()),path:w({id:p().regex(/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/)}),query:g(be())}),w({body:sc,path:w({id:p().regex(/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/)}),query:g(be())}),w({body:Fb,path:g(be()),query:g(be())}),w({body:g(be()),path:w({url:p()}),query:g(be())}),w({body:g(be()),path:w({id:p().regex(/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/)}),query:g(be())}),w({body:g(be()),path:w({id:p().regex(/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/)}),query:g(be())}),w({body:g(be()),path:w({id:p().regex(/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/)}),query:g(be())}),w({body:tb,path:g(be()),query:g(be())}),w({body:g(be()),path:g(be()),query:g(be())}),w({body:lb,path:g(be()),query:g(be())}),w({body:g(be()),path:w({id:p().regex(/^[0-9a-zA-Z]{8}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{12}$/)}),query:g(be())}),w({body:g(be()),path:w({id:p().regex(/^[0-9a-zA-Z]{8}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{12}$/)}),query:g(be())}),w({body:g(be()),path:g(be()),query:g(be())}),w({body:iy,path:g(be()),query:g(be())}),w({body:g(be()),path:w({id:p().regex(/^[0-9a-zA-Z]{8}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{12}$/)}),query:g(be())});const $b=wy,ew=ab,tw=Ui.shape.format,sw=Ui.shape.fps.unwrap(),aw=Ui.shape.resolution,iw=Ui.shape.aspectRatio,rw=p().regex(/^#[0-9A-Fa-f]{6}$|^#[0-9A-Fa-f]{8}$/);var nw=Object.defineProperty,ow=Object.getOwnPropertyNames,lw=(t,e,s)=>e in t?nw(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,cw=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,s)=>(typeof require<"u"?require:e)[s]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')}),ac=(t,e)=>function(){return e||(0,t[ow(t)[0]])((e={exports:{}}).exports,e),e.exports},bt=(t,e,s)=>lw(t,typeof e!="symbol"?e+"":e,s);const fw={utf16le:"utf-16le",ucs2:"utf-16le",utf16be:"utf-16be"};class pt{constructor(e){this.buffer=e,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength),this.pos=0,this.length=this.buffer.length}readString(e,s="ascii"){s=fw[s]||s;let a=this.readBuffer(e);try{return new TextDecoder(s).decode(a)}catch{return a}}readBuffer(e){return this.buffer.slice(this.pos,this.pos+=e)}readUInt24BE(){return(this.readUInt16BE()<<8)+this.readUInt8()}readUInt24LE(){return this.readUInt16LE()+(this.readUInt8()<<16)}readInt24BE(){return(this.readInt16BE()<<8)+this.readUInt8()}readInt24LE(){return this.readUInt16LE()+(this.readInt8()<<16)}}pt.TYPES={UInt8:1,UInt16:2,UInt24:3,UInt32:4,Int8:1,Int16:2,Int24:3,Int32:4,Float:4,Double:8};for(let t of Object.getOwnPropertyNames(DataView.prototype))if(t.slice(0,3)==="get"){let e=t.slice(3).replace("Ui","UI");e==="Float32"?e="Float":e==="Float64"&&(e="Double");let s=pt.TYPES[e];pt.prototype["read"+e+(s===1?"":"BE")]=function(){const a=this.view[t](this.pos,!1);return this.pos+=s,a},s!==1&&(pt.prototype["read"+e+"LE"]=function(){const a=this.view[t](this.pos,!0);return this.pos+=s,a})}const uw=new TextEncoder,ic=new Uint8Array(new Uint16Array([4660]).buffer)[0]==18;class Zi{constructor(e){this.buffer=e,this.view=new DataView(this.buffer.buffer,this.buffer.byteOffset,this.buffer.byteLength),this.pos=0}writeBuffer(e){this.buffer.set(e,this.pos),this.pos+=e.length}writeString(e,s="ascii"){let a;switch(s){case"utf16le":case"utf16-le":case"ucs2":a=rc(e,ic);break;case"utf16be":case"utf16-be":a=rc(e,!ic);break;case"utf8":a=uw.encode(e);break;case"ascii":a=hw(e);break;default:throw new Error(`Unsupported encoding: ${s}`)}this.writeBuffer(a)}writeUInt24BE(e){this.buffer[this.pos++]=e>>>16&255,this.buffer[this.pos++]=e>>>8&255,this.buffer[this.pos++]=e&255}writeUInt24LE(e){this.buffer[this.pos++]=e&255,this.buffer[this.pos++]=e>>>8&255,this.buffer[this.pos++]=e>>>16&255}writeInt24BE(e){e>=0?this.writeUInt24BE(e):this.writeUInt24BE(e+16777215+1)}writeInt24LE(e){e>=0?this.writeUInt24LE(e):this.writeUInt24LE(e+16777215+1)}fill(e,s){if(s<this.buffer.length)this.buffer.fill(e,this.pos,this.pos+s),this.pos+=s;else{const a=new Uint8Array(s);a.fill(e),this.writeBuffer(a)}}}function rc(t,e){let s=new Uint16Array(t.length);for(let a=0;a<t.length;a++){let i=t.charCodeAt(a);e&&(i=i>>8|(i&255)<<8),s[a]=i}return new Uint8Array(s.buffer)}function hw(t){let e=new Uint8Array(t.length);for(let s=0;s<t.length;s++)e[s]=t.charCodeAt(s);return e}for(let t of Object.getOwnPropertyNames(DataView.prototype))if(t.slice(0,3)==="set"){let e=t.slice(3).replace("Ui","UI");e==="Float32"?e="Float":e==="Float64"&&(e="Double");let s=pt.TYPES[e];Zi.prototype["write"+e+(s===1?"":"BE")]=function(a){this.view[t](this.pos,a,!1),this.pos+=s},s!==1&&(Zi.prototype["write"+e+"LE"]=function(a){this.view[t](this.pos,a,!0),this.pos+=s})}class cs{fromBuffer(e){let s=new pt(e);return this.decode(s)}toBuffer(e){let s=this.size(e),a=new Uint8Array(s),i=new Zi(a);return this.encode(i,e),a}}class Ee extends cs{constructor(e,s="BE"){super(),this.type=e,this.endian=s,this.fn=this.type,this.type[this.type.length-1]!=="8"&&(this.fn+=this.endian)}size(){return pt.TYPES[this.type]}decode(e){return e[`read${this.fn}`]()}encode(e,s){return e[`write${this.fn}`](s)}}const K=new Ee("UInt8"),u=new Ee("UInt16","BE");new Ee("UInt16","LE");const ks=new Ee("UInt24","BE");new Ee("UInt24","LE");const S=new Ee("UInt32","BE");new Ee("UInt32","LE");const lt=new Ee("Int8"),U=new Ee("Int16","BE");new Ee("Int16","LE"),new Ee("Int24","BE"),new Ee("Int24","LE");const Bs=new Ee("Int32","BE");new Ee("Int32","LE"),new Ee("Float","BE"),new Ee("Float","LE"),new Ee("Double","BE"),new Ee("Double","LE");class Us extends Ee{constructor(e,s,a=e>>1){super(`Int${e}`,s),this._point=1<<a}decode(e){return super.decode(e)/this._point}encode(e,s){return super.encode(e,s*this._point|0)}}const dw=new Us(16,"BE");new Us(16,"LE");const st=new Us(32,"BE");new Us(32,"LE");function Jt(t,e,s){let a;if(typeof t=="number"?a=t:typeof t=="function"?a=t.call(s,s):s&&typeof t=="string"?a=s[t]:e&&t instanceof Ee&&(a=t.decode(e)),isNaN(a))throw new Error("Not a fixed size");return a}class mn{constructor(e={}){this.enumerable=!0,this.configurable=!0;for(let s in e){const a=e[s];this[s]=a}}}class k extends cs{constructor(e,s,a="count"){super(),this.type=e,this.length=s,this.lengthType=a}decode(e,s){let a;const{pos:i}=e,r=[];let n=s;if(this.length!=null&&(a=Jt(this.length,e,s)),this.length instanceof Ee&&(Object.defineProperties(r,{parent:{value:s},_startOffset:{value:i},_currentOffset:{value:0,writable:!0},_length:{value:a}}),n=r),a==null||this.lengthType==="bytes"){const o=a!=null?e.pos+a:s?._length?s._startOffset+s._length:e.length;for(;e.pos<o;)r.push(this.type.decode(e,n))}else for(let o=0,l=a;o<l;o++)r.push(this.type.decode(e,n));return r}size(e,s,a=!0){if(!e)return this.type.size(null,s)*Jt(this.length,null,s);let i=0;this.length instanceof Ee&&(i+=this.length.size(),s={parent:s,pointerSize:0});for(let r of e)i+=this.type.size(r,s);return s&&a&&this.length instanceof Ee&&(i+=s.pointerSize),i}encode(e,s,a){let i=a;this.length instanceof Ee&&(i={pointers:[],startOffset:e.pos,parent:a},i.pointerOffset=e.pos+this.size(s,i,!1),this.length.encode(e,s.length));for(let r of s)this.type.encode(e,r,i);if(this.length instanceof Ee){let r=0;for(;r<i.pointers.length;){const n=i.pointers[r++];n.type.encode(e,n.val,n.parent)}}}}class Be extends k{decode(e,s){const{pos:a}=e,i=Jt(this.length,e,s);this.length instanceof Ee&&(s={parent:s,_startOffset:a,_currentOffset:0,_length:i});const r=new yn(this.type,i,e,s);return e.pos+=i*this.type.size(null,s),r}size(e,s){return e instanceof yn&&(e=e.toArray()),super.size(e,s)}encode(e,s,a){return s instanceof yn&&(s=s.toArray()),super.encode(e,s,a)}}class yn{constructor(e,s,a,i){this.type=e,this.length=s,this.stream=a,this.ctx=i,this.base=this.stream.pos,this.items=[]}get(e){if(!(e<0||e>=this.length)){if(this.items[e]==null){const{pos:s}=this.stream;this.stream.pos=this.base+this.type.size(null,this.ctx)*e,this.items[e]=this.type.decode(this.stream,this.ctx),this.stream.pos=s}return this.items[e]}}toArray(){const e=[];for(let s=0,a=this.length;s<a;s++)e.push(this.get(s));return e}}class Bt extends cs{constructor(e,s=[]){super(),this.type=e,this.flags=s}decode(e){const s=this.type.decode(e),a={};for(let i=0;i<this.flags.length;i++){const r=this.flags[i];r!=null&&(a[r]=!!(s&1<<i))}return a}size(){return this.type.size()}encode(e,s){let a=0;for(let i=0;i<this.flags.length;i++){const r=this.flags[i];r!=null&&s[r]&&(a|=1<<i)}return this.type.encode(e,a)}}class Qt extends cs{constructor(e){super(),this.length=e}decode(e,s){const a=Jt(this.length,e,s);return e.readBuffer(a)}size(e,s){if(!e)return Jt(this.length,null,s);let a=e.length;return this.length instanceof Ee&&(a+=this.length.size()),a}encode(e,s,a){return this.length instanceof Ee&&this.length.encode(e,s.length),e.writeBuffer(s)}}class Gi extends cs{constructor(e,s=!0){super(),this.type=e,this.condition=s}decode(e,s){let{condition:a}=this;if(typeof a=="function"&&(a=a.call(s,s)),a)return this.type.decode(e,s)}size(e,s){let{condition:a}=this;return typeof a=="function"&&(a=a.call(s,s)),a?this.type.size(e,s):0}encode(e,s,a){let{condition:i}=this;if(typeof i=="function"&&(i=i.call(a,a)),i)return this.type.encode(e,s,a)}}class je extends cs{constructor(e,s=1){super(),this.type=e,this.count=s}decode(e,s){e.pos+=this.size(null,s)}size(e,s){const a=Jt(this.count,null,s);return this.type.size()*a}encode(e,s,a){return e.fill(0,this.size(s,a))}}class Re extends cs{constructor(e,s="ascii"){super(),this.length=e,this.encoding=s}decode(e,s){let a,i,{encoding:r}=this;typeof r=="function"&&(r=r.call(s,s)||"ascii");let n=bn(r);if(this.length!=null)a=Jt(this.length,e,s);else{let l;for({buffer:l,length:a,pos:i}=e;i<a-n+1&&(l[i]!==0||n===2&&l[i+1]!==0);)i+=n;a=i-e.pos}const o=e.readString(a,r);return this.length==null&&e.pos<e.length&&(e.pos+=n),o}size(e,s){if(e==null)return Jt(this.length,null,s);let{encoding:a}=this;typeof a=="function"&&(a=a.call(s?.val,s?.val)||"ascii"),a==="utf16be"&&(a="utf16le");let i=nc(e,a);return this.length instanceof Ee&&(i+=this.length.size()),this.length==null&&(i+=bn(a)),i}encode(e,s,a){let{encoding:i}=this;if(typeof i=="function"&&(i=i.call(a?.val,a?.val)||"ascii"),this.length instanceof Ee&&this.length.encode(e,nc(s,i)),e.writeString(s,i),this.length==null)return bn(i)==2?e.writeUInt16LE(0):e.writeUInt8(0)}}function bn(t){switch(t){case"ascii":case"utf8":return 1;case"utf16le":case"utf16-le":case"utf-16be":case"utf-16le":case"utf16be":case"utf16-be":case"ucs2":return 2;default:return 1}}function nc(t,e){switch(e){case"ascii":return t.length;case"utf8":let s=0;for(let a=0;a<t.length;a++){let i=t.charCodeAt(a);if(i>=55296&&i<=56319&&a<t.length-1){let r=t.charCodeAt(++a);(r&64512)===56320?i=((i&1023)<<10)+(r&1023)+65536:a--}i&4294967168?i&4294965248?i&4294901760?i&4292870144||(s+=4):s+=3:s+=2:s++}return s;case"utf16le":case"utf16-le":case"utf16be":case"utf16-be":case"ucs2":return t.length*2;default:throw new Error("Unknown encoding "+e)}}class T extends cs{constructor(e={}){super(),this.fields=e}decode(e,s,a=0){const i=this._setup(e,s,a);return this._parseFields(e,i,this.fields),this.process!=null&&this.process.call(i,e),i}_setup(e,s,a){const i={};return Object.defineProperties(i,{parent:{value:s},_startOffset:{value:e.pos},_currentOffset:{value:0,writable:!0},_length:{value:a}}),i}_parseFields(e,s,a){for(let r in a){var i;const n=a[r];typeof n=="function"?i=n.call(s,s):i=n.decode(e,s),i!==void 0&&(i instanceof mn?Object.defineProperty(s,r,i):s[r]=i),s._currentOffset=e.pos-s._startOffset}}size(e,s,a=!0){e==null&&(e={});const i={parent:s,val:e,pointerSize:0};this.preEncode!=null&&this.preEncode.call(e);let r=0;for(let n in this.fields){const o=this.fields[n];o.size!=null&&(r+=o.size(e[n],i))}return a&&(r+=i.pointerSize),r}encode(e,s,a){let i;this.preEncode!=null&&this.preEncode.call(s,e);const r={pointers:[],startOffset:e.pos,parent:a,val:s,pointerSize:0};r.pointerOffset=e.pos+this.size(s,r,!1);for(let o in this.fields)i=this.fields[o],i.encode!=null&&i.encode(e,s[o],r);let n=0;for(;n<r.pointers.length;){const o=r.pointers[n++];o.type.encode(e,o.val,o.parent)}}}const gw=(t,e)=>e.reduce((s,a)=>s&&s[a],t);class ve extends T{constructor(e,s={}){super(),this.type=e,this.versions=s,typeof e=="string"&&(this.versionPath=e.split("."))}decode(e,s,a=0){const i=this._setup(e,s,a);typeof this.type=="string"?i.version=gw(s,this.versionPath):i.version=this.type.decode(e),this.versions.header&&this._parseFields(e,i,this.versions.header);const r=this.versions[i.version];if(r==null)throw new Error(`Unknown version ${i.version}`);return r instanceof ve?r.decode(e,s):(this._parseFields(e,i,r),this.process!=null&&this.process.call(i,e),i)}size(e,s,a=!0){let i,r;if(!e)throw new Error("Not a fixed size");this.preEncode!=null&&this.preEncode.call(e);const n={parent:s,val:e,pointerSize:0};let o=0;if(typeof this.type!="string"&&(o+=this.type.size(e.version,n)),this.versions.header)for(i in this.versions.header)r=this.versions.header[i],r.size!=null&&(o+=r.size(e[i],n));const l=this.versions[e.version];if(l==null)throw new Error(`Unknown version ${e.version}`);for(i in l)r=l[i],r.size!=null&&(o+=r.size(e[i],n));return a&&(o+=n.pointerSize),o}encode(e,s,a){let i,r;this.preEncode!=null&&this.preEncode.call(s,e);const n={pointers:[],startOffset:e.pos,parent:a,val:s,pointerSize:0};if(n.pointerOffset=e.pos+this.size(s,n,!1),typeof this.type!="string"&&this.type.encode(e,s.version),this.versions.header)for(i in this.versions.header)r=this.versions.header[i],r.encode!=null&&r.encode(e,s[i],n);const o=this.versions[s.version];for(i in o)r=o[i],r.encode!=null&&r.encode(e,s[i],n);let l=0;for(;l<n.pointers.length;){const c=n.pointers[l++];c.type.encode(e,c.val,c.parent)}}}class A extends cs{constructor(e,s,a={}){if(super(),this.offsetType=e,this.type=s,this.options=a,this.type==="void"&&(this.type=null),this.options.type==null&&(this.options.type="local"),this.options.allowNull==null&&(this.options.allowNull=!0),this.options.nullValue==null&&(this.options.nullValue=0),this.options.lazy==null&&(this.options.lazy=!1),this.options.relativeTo){if(typeof this.options.relativeTo!="function")throw new Error("relativeTo option must be a function");this.relativeToGetter=a.relativeTo}}decode(e,s){const a=this.offsetType.decode(e,s);if(a===this.options.nullValue&&this.options.allowNull)return null;let i;switch(this.options.type){case"local":i=s._startOffset;break;case"immediate":i=e.pos-this.offsetType.size();break;case"parent":i=s.parent._startOffset;break;default:for(var r=s;r.parent;)r=r.parent;i=r._startOffset||0}this.options.relativeTo&&(i+=this.relativeToGetter(s));const n=a+i;if(this.type!=null){let o=null;const l=()=>{if(o!=null)return o;const{pos:c}=e;return e.pos=n,o=this.type.decode(e,s),e.pos=c,o};return this.options.lazy?new mn({get:l}):l()}else return n}size(e,s){const a=s;switch(this.options.type){case"local":case"immediate":break;case"parent":s=s.parent;break;default:for(;s.parent;)s=s.parent}let{type:i}=this;if(i==null){if(!(e instanceof wn))throw new Error("Must be a VoidPointer");({type:i}=e),e=e.value}if(e&&s){let r=i.size(e,a);s.pointerSize+=r}return this.offsetType.size()}encode(e,s,a){let i;const r=a;if(s==null){this.offsetType.encode(e,this.options.nullValue);return}switch(this.options.type){case"local":i=a.startOffset;break;case"immediate":i=e.pos+this.offsetType.size(s,r);break;case"parent":a=a.parent,i=a.startOffset;break;default:for(i=0;a.parent;)a=a.parent}this.options.relativeTo&&(i+=this.relativeToGetter(r.val)),this.offsetType.encode(e,a.pointerOffset-i);let{type:n}=this;if(n==null){if(!(s instanceof wn))throw new Error("Must be a VoidPointer");({type:n}=s),s=s.value}return a.pointers.push({type:n,val:s,parent:r}),a.pointerOffset+=n.size(s,r)}}class wn{constructor(e,s){this.type=e,this.value=s}}function St(t,e,s){return e in t?Object.defineProperty(t,e,{value:s,enumerable:!0,configurable:!0,writable:!0}):t[e]=s,t}function mt(t,e,s,a){var i=arguments.length,r=i<3?e:a===null?a=Object.getOwnPropertyDescriptor(e,s):a,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(t,e,s,a);else for(var o=t.length-1;o>=0;o--)(n=t[o])&&(r=(i<3?n(r):i>3?n(e,s,r):n(e,s))||r);return i>3&&r&&Object.defineProperty(e,s,r),r}typeof SuppressedError=="function"&&SuppressedError;function ca(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var pw=function t(e,s){if(e===s)return!0;if(e&&s&&typeof e=="object"&&typeof s=="object"){if(e.constructor!==s.constructor)return!1;var a,i,r;if(Array.isArray(e)){if(a=e.length,a!=s.length)return!1;for(i=a;i--!==0;)if(!t(e[i],s[i]))return!1;return!0}if(e.constructor===RegExp)return e.source===s.source&&e.flags===s.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===s.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===s.toString();if(r=Object.keys(e),a=r.length,a!==Object.keys(s).length)return!1;for(i=a;i--!==0;)if(!Object.prototype.hasOwnProperty.call(s,r[i]))return!1;for(i=a;i--!==0;){var n=r[i];if(!t(e[n],s[n]))return!1}return!0}return e!==e&&s!==s};const oc=ca(pw);var Ba={};Ba.byteLength=bw,Ba.toByteArray=vw,Ba.fromByteArray=kw;for(var $t=[],zt=[],mw=typeof Uint8Array<"u"?Uint8Array:Array,vn="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",fa=0,yw=vn.length;fa<yw;++fa)$t[fa]=vn[fa],zt[vn.charCodeAt(fa)]=fa;zt[45]=62,zt[95]=63;function lc(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var s=t.indexOf("=");s===-1&&(s=e);var a=s===e?0:4-s%4;return[s,a]}function bw(t){var e=lc(t),s=e[0],a=e[1];return(s+a)*3/4-a}function ww(t,e,s){return(e+s)*3/4-s}function vw(t){var e,s=lc(t),a=s[0],i=s[1],r=new mw(ww(t,a,i)),n=0,o=i>0?a-4:a,l;for(l=0;l<o;l+=4)e=zt[t.charCodeAt(l)]<<18|zt[t.charCodeAt(l+1)]<<12|zt[t.charCodeAt(l+2)]<<6|zt[t.charCodeAt(l+3)],r[n++]=e>>16&255,r[n++]=e>>8&255,r[n++]=e&255;return i===2&&(e=zt[t.charCodeAt(l)]<<2|zt[t.charCodeAt(l+1)]>>4,r[n++]=e&255),i===1&&(e=zt[t.charCodeAt(l)]<<10|zt[t.charCodeAt(l+1)]<<4|zt[t.charCodeAt(l+2)]>>2,r[n++]=e>>8&255,r[n++]=e&255),r}function xw(t){return $t[t>>18&63]+$t[t>>12&63]+$t[t>>6&63]+$t[t&63]}function Cw(t,e,s){for(var a,i=[],r=e;r<s;r+=3)a=(t[r]<<16&16711680)+(t[r+1]<<8&65280)+(t[r+2]&255),i.push(xw(a));return i.join("")}function kw(t){for(var e,s=t.length,a=s%3,i=[],r=16383,n=0,o=s-a;n<o;n+=r)i.push(Cw(t,n,n+r>o?o:n+r));return a===1?(e=t[s-1],i.push($t[e>>2]+$t[e<<4&63]+"==")):a===2&&(e=(t[s-2]<<8)+t[s-1],i.push($t[e>>10]+$t[e>>4&63]+$t[e<<2&63]+"=")),i.join("")}var xn=0,cc=-3;function Ua(){this.table=new Uint16Array(16),this.trans=new Uint16Array(288)}function Nw(t,e){this.source=t,this.sourceIndex=0,this.tag=0,this.bitcount=0,this.dest=e,this.destLen=0,this.ltree=new Ua,this.dtree=new Ua}var fc=new Ua,uc=new Ua,Cn=new Uint8Array(30),kn=new Uint16Array(30),hc=new Uint8Array(30),dc=new Uint16Array(30),Aw=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),gc=new Ua,es=new Uint8Array(320);function pc(t,e,s,a){var i,r;for(i=0;i<s;++i)t[i]=0;for(i=0;i<30-s;++i)t[i+s]=i/s|0;for(r=a,i=0;i<30;++i)e[i]=r,r+=1<<t[i]}function Sw(t,e){var s;for(s=0;s<7;++s)t.table[s]=0;for(t.table[7]=24,t.table[8]=152,t.table[9]=112,s=0;s<24;++s)t.trans[s]=256+s;for(s=0;s<144;++s)t.trans[24+s]=s;for(s=0;s<8;++s)t.trans[168+s]=280+s;for(s=0;s<112;++s)t.trans[176+s]=144+s;for(s=0;s<5;++s)e.table[s]=0;for(e.table[5]=32,s=0;s<32;++s)e.trans[s]=s}var mc=new Uint16Array(16);function Nn(t,e,s,a){var i,r;for(i=0;i<16;++i)t.table[i]=0;for(i=0;i<a;++i)t.table[e[s+i]]++;for(t.table[0]=0,r=0,i=0;i<16;++i)mc[i]=r,r+=t.table[i];for(i=0;i<a;++i)e[s+i]&&(t.trans[mc[e[s+i]]++]=i)}function Vw(t){t.bitcount--||(t.tag=t.source[t.sourceIndex++],t.bitcount=7);var e=t.tag&1;return t.tag>>>=1,e}function ts(t,e,s){if(!e)return s;for(;t.bitcount<24;)t.tag|=t.source[t.sourceIndex++]<<t.bitcount,t.bitcount+=8;var a=t.tag&65535>>>16-e;return t.tag>>>=e,t.bitcount-=e,a+s}function An(t,e){for(;t.bitcount<24;)t.tag|=t.source[t.sourceIndex++]<<t.bitcount,t.bitcount+=8;var s=0,a=0,i=0,r=t.tag;do a=2*a+(r&1),r>>>=1,++i,s+=e.table[i],a-=e.table[i];while(a>=0);return t.tag=r,t.bitcount-=i,e.trans[s+a]}function Iw(t,e,s){var a,i,r,n,o,l;for(a=ts(t,5,257),i=ts(t,5,1),r=ts(t,4,4),n=0;n<19;++n)es[n]=0;for(n=0;n<r;++n){var c=ts(t,3,0);es[Aw[n]]=c}for(Nn(gc,es,0,19),o=0;o<a+i;){var f=An(t,gc);switch(f){case 16:var h=es[o-1];for(l=ts(t,2,3);l;--l)es[o++]=h;break;case 17:for(l=ts(t,3,3);l;--l)es[o++]=0;break;case 18:for(l=ts(t,7,11);l;--l)es[o++]=0;break;default:es[o++]=f;break}}Nn(e,es,0,a),Nn(s,es,a,i)}function yc(t,e,s){for(;;){var a=An(t,e);if(a===256)return xn;if(a<256)t.dest[t.destLen++]=a;else{var i,r,n,o;for(a-=257,i=ts(t,Cn[a],kn[a]),r=An(t,s),n=t.destLen-ts(t,hc[r],dc[r]),o=n;o<n+i;++o)t.dest[t.destLen++]=t.dest[o]}}}function _w(t){for(var e,s,a;t.bitcount>8;)t.sourceIndex--,t.bitcount-=8;if(e=t.source[t.sourceIndex+1],e=256*e+t.source[t.sourceIndex],s=t.source[t.sourceIndex+3],s=256*s+t.source[t.sourceIndex+2],e!==(~s&65535))return cc;for(t.sourceIndex+=4,a=e;a;--a)t.dest[t.destLen++]=t.source[t.sourceIndex++];return t.bitcount=0,xn}function Fw(t,e){var s=new Nw(t,e),a,i,r;do{switch(a=Vw(s),i=ts(s,2,0),i){case 0:r=_w(s);break;case 1:r=yc(s,fc,uc);break;case 2:Iw(s,s.ltree,s.dtree),r=yc(s,s.ltree,s.dtree);break;default:r=cc}if(r!==xn)throw new Error("Data error")}while(!a);return s.destLen<s.dest.length?typeof s.dest.slice=="function"?s.dest.slice(0,s.destLen):s.dest.subarray(0,s.destLen):s.dest}Sw(fc,uc),pc(Cn,kn,4,3),pc(hc,dc,2,1),Cn[28]=0,kn[28]=258;var bc=Fw;const Tw=ca(bc),Pw=new Uint8Array(new Uint32Array([305419896]).buffer)[0]===18,wc=(t,e,s)=>{let a=t[e];t[e]=t[s],t[s]=a},Ew=t=>{const e=t.length;for(let s=0;s<e;s+=4)wc(t,s,s+3),wc(t,s+1,s+2)};var Ow={swap32LE:t=>{Pw&&Ew(t)}};const vc=bc,{swap32LE:Mw}=Ow,Sn=11,Zs=5,Rw=Sn-Zs,zw=65536>>Sn,Lw=(1<<Rw)-1,Wi=2,Vn=(1<<Zs)-1,xc=65536>>Zs,Dw=1024>>Zs,Bw=xc+Dw+32,Uw=1<<Wi;class Zw{constructor(e){const s=typeof e.readUInt32BE=="function"&&typeof e.slice=="function";if(s||e instanceof Uint8Array){let a;if(s)this.highStart=e.readUInt32LE(0),this.errorValue=e.readUInt32LE(4),a=e.readUInt32LE(8),e=e.slice(12);else{const i=new DataView(e.buffer);this.highStart=i.getUint32(0,!0),this.errorValue=i.getUint32(4,!0),a=i.getUint32(8,!0),e=e.subarray(12)}e=vc(e,new Uint8Array(a)),e=vc(e,new Uint8Array(a)),Mw(e),this.data=new Uint32Array(e.buffer)}else({data:this.data,highStart:this.highStart,errorValue:this.errorValue}=e)}get(e){let s;return e<0||e>1114111?this.errorValue:e<55296||e>56319&&e<=65535?(s=(this.data[e>>Zs]<<Wi)+(e&Vn),this.data[s]):e<=65535?(s=(this.data[xc+(e-55296>>Zs)]<<Wi)+(e&Vn),this.data[s]):e<this.highStart?(s=this.data[Bw-zw+(e>>Sn)],s=this.data[s+(e>>Zs&Lw)],s=(s<<Wi)+(e&Vn),this.data[s]):this.data[this.data.length-Uw]}}var Gw=Zw;const Yi=ca(Gw);function Gs(t){return t&&t.__esModule?t.default:t}var Ns={};Ns=JSON.parse('{"categories":["Cc","Zs","Po","Sc","Ps","Pe","Sm","Pd","Nd","Lu","Sk","Pc","Ll","So","Lo","Pi","Cf","No","Pf","Lt","Lm","Mn","Me","Mc","Nl","Zl","Zp","Cs","Co"],"combiningClasses":["Not_Reordered","Above","Above_Right","Below","Attached_Above_Right","Attached_Below","Overlay","Iota_Subscript","Double_Below","Double_Above","Below_Right","Above_Left","CCC10","CCC11","CCC12","CCC13","CCC14","CCC15","CCC16","CCC17","CCC18","CCC19","CCC20","CCC21","CCC22","CCC23","CCC24","CCC25","CCC30","CCC31","CCC32","CCC27","CCC28","CCC29","CCC33","CCC34","CCC35","CCC36","Nukta","Virama","CCC84","CCC91","CCC103","CCC107","CCC118","CCC122","CCC129","CCC130","CCC132","Attached_Above","Below_Left","Left","Kana_Voicing","CCC26","Right"],"scripts":["Common","Latin","Bopomofo","Inherited","Greek","Coptic","Cyrillic","Armenian","Hebrew","Arabic","Syriac","Thaana","Nko","Samaritan","Mandaic","Devanagari","Bengali","Gurmukhi","Gujarati","Oriya","Tamil","Telugu","Kannada","Malayalam","Sinhala","Thai","Lao","Tibetan","Myanmar","Georgian","Hangul","Ethiopic","Cherokee","Canadian_Aboriginal","Ogham","Runic","Tagalog","Hanunoo","Buhid","Tagbanwa","Khmer","Mongolian","Limbu","Tai_Le","New_Tai_Lue","Buginese","Tai_Tham","Balinese","Sundanese","Batak","Lepcha","Ol_Chiki","Braille","Glagolitic","Tifinagh","Han","Hiragana","Katakana","Yi","Lisu","Vai","Bamum","Syloti_Nagri","Phags_Pa","Saurashtra","Kayah_Li","Rejang","Javanese","Cham","Tai_Viet","Meetei_Mayek","null","Linear_B","Lycian","Carian","Old_Italic","Gothic","Old_Permic","Ugaritic","Old_Persian","Deseret","Shavian","Osmanya","Osage","Elbasan","Caucasian_Albanian","Linear_A","Cypriot","Imperial_Aramaic","Palmyrene","Nabataean","Hatran","Phoenician","Lydian","Meroitic_Hieroglyphs","Meroitic_Cursive","Kharoshthi","Old_South_Arabian","Old_North_Arabian","Manichaean","Avestan","Inscriptional_Parthian","Inscriptional_Pahlavi","Psalter_Pahlavi","Old_Turkic","Old_Hungarian","Hanifi_Rohingya","Old_Sogdian","Sogdian","Elymaic","Brahmi","Kaithi","Sora_Sompeng","Chakma","Mahajani","Sharada","Khojki","Multani","Khudawadi","Grantha","Newa","Tirhuta","Siddham","Modi","Takri","Ahom","Dogra","Warang_Citi","Nandinagari","Zanabazar_Square","Soyombo","Pau_Cin_Hau","Bhaiksuki","Marchen","Masaram_Gondi","Gunjala_Gondi","Makasar","Cuneiform","Egyptian_Hieroglyphs","Anatolian_Hieroglyphs","Mro","Bassa_Vah","Pahawh_Hmong","Medefaidrin","Miao","Tangut","Nushu","Duployan","SignWriting","Nyiakeng_Puachue_Hmong","Wancho","Mende_Kikakui","Adlam"],"eaw":["N","Na","A","W","H","F"]}');const In=new Yi(Ba.toByteArray("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")),Ww=Math.log2||(t=>Math.log(t)/Math.LN2),Hi=t=>Ww(t)+1|0,Yw=Hi(Gs(Ns).categories.length-1),Cc=Hi(Gs(Ns).combiningClasses.length-1),_n=Hi(Gs(Ns).scripts.length-1),Fn=Hi(Gs(Ns).eaw.length-1),Tn=10,Hw=Cc+_n+Fn+Tn,jw=_n+Fn+Tn,Kw=Fn+Tn,Xw=(1<<Yw)-1,qw=(1<<Cc)-1,Jw=(1<<_n)-1;function ji(t){const e=In.get(t);return Gs(Ns).categories[e>>Hw&Xw]}function Qw(t){const e=In.get(t);return Gs(Ns).combiningClasses[e>>jw&qw]}function kc(t){const e=In.get(t);return Gs(Ns).scripts[e>>Kw&Jw]}function Nc(t){return ji(t)==="Nd"}function Ac(t){const e=ji(t);return e==="Mn"||e==="Me"||e==="Mc"}var Pn=1,En=0;class $w{constructor(e){this.stateTable=e.stateTable,this.accepting=e.accepting,this.tags=e.tags}match(e){var s=this;return{*[Symbol.iterator](){for(var a=Pn,i=null,r=null,n=null,o=0;o<e.length;o++){var l=e[o];n=a,a=s.stateTable[a][l],a===En&&(i!=null&&r!=null&&r>=i&&(yield[i,r,s.tags[n]]),a=s.stateTable[Pn][l],i=null),a!==En&&i==null&&(i=o),s.accepting[a]&&(r=o),a===En&&(a=Pn)}i!=null&&r!=null&&r>=i&&(yield[i,r,s.tags[a]])}}}apply(e,s){for(var[a,i,r]of this.match(e))for(var n of r)typeof s[n]=="function"&&s[n](a,i,e.slice(a,i+1))}}var e1=$w;const Sc=ca(e1);var Vc={exports:{}};(function(t){var e=function(){function s(d,m){return m!=null&&d instanceof m}var a;try{a=Map}catch{a=function(){}}var i;try{i=Set}catch{i=function(){}}var r;try{r=Promise}catch{r=function(){}}function n(d,m,b,I,M){typeof m=="object"&&(b=m.depth,I=m.prototype,M=m.includeNonEnumerable,m=m.circular);var E=[],V=[],v=typeof Buffer<"u";typeof m>"u"&&(m=!0),typeof b>"u"&&(b=1/0);function F(y,Z){if(y===null)return null;if(Z===0)return y;var P,B;if(typeof y!="object")return y;if(s(y,a))P=new a;else if(s(y,i))P=new i;else if(s(y,r))P=new r(function(ye,G){y.then(function(Y){ye(F(Y,Z-1))},function(Y){G(F(Y,Z-1))})});else if(n.__isArray(y))P=[];else if(n.__isRegExp(y))P=new RegExp(y.source,h(y)),y.lastIndex&&(P.lastIndex=y.lastIndex);else if(n.__isDate(y))P=new Date(y.getTime());else{if(v&&Buffer.isBuffer(y))return Buffer.allocUnsafe?P=Buffer.allocUnsafe(y.length):P=new Buffer(y.length),y.copy(P),P;s(y,Error)?P=Object.create(y):typeof I>"u"?(B=Object.getPrototypeOf(y),P=Object.create(B)):(P=Object.create(I),B=I)}if(m){var J=E.indexOf(y);if(J!=-1)return V[J];E.push(y),V.push(P)}s(y,a)&&y.forEach(function(ye,G){var Y=F(G,Z-1),W=F(ye,Z-1);P.set(Y,W)}),s(y,i)&&y.forEach(function(ye){var G=F(ye,Z-1);P.add(G)});for(var $ in y){var se;B&&(se=Object.getOwnPropertyDescriptor(B,$)),!(se&&se.set==null)&&(P[$]=F(y[$],Z-1))}if(Object.getOwnPropertySymbols)for(var ue=Object.getOwnPropertySymbols(y),$=0;$<ue.length;$++){var Ce=ue[$],Te=Object.getOwnPropertyDescriptor(y,Ce);Te&&!Te.enumerable&&!M||(P[Ce]=F(y[Ce],Z-1),Te.enumerable||Object.defineProperty(P,Ce,{enumerable:!1}))}if(M)for(var Ae=Object.getOwnPropertyNames(y),$=0;$<Ae.length;$++){var Le=Ae[$],Te=Object.getOwnPropertyDescriptor(y,Le);Te&&Te.enumerable||(P[Le]=F(y[Le],Z-1),Object.defineProperty(P,Le,{enumerable:!1}))}return P}return F(d,b)}n.clonePrototype=function(m){if(m===null)return null;var b=function(){};return b.prototype=m,new b};function o(d){return Object.prototype.toString.call(d)}n.__objToStr=o;function l(d){return typeof d=="object"&&o(d)==="[object Date]"}n.__isDate=l;function c(d){return typeof d=="object"&&o(d)==="[object Array]"}n.__isArray=c;function f(d){return typeof d=="object"&&o(d)==="[object RegExp]"}n.__isRegExp=f;function h(d){var m="";return d.global&&(m+="g"),d.ignoreCase&&(m+="i"),d.multiline&&(m+="m"),m}return n.__getRegExpFlags=h,n}();t.exports&&(t.exports=e)})(Vc);var t1=Vc.exports;const On=ca(t1);var Za={},Ki={};function Ic(t){this.buffer=t,this.pos=0}Ic.prototype.read=function(t,e,s){this.pos+s>this.buffer.length&&(s=this.buffer.length-this.pos);for(var a=0;a<s;a++)t[e+a]=this.buffer[this.pos+a];return this.pos+=s,s},Ki.BrotliInput=Ic;function _c(t){this.buffer=t,this.pos=0}_c.prototype.write=function(t,e){if(this.pos+e>this.buffer.length)throw new Error("Output buffer is not large enough");return this.buffer.set(t.subarray(0,e),this.pos),this.pos+=e,e},Ki.BrotliOutput=_c;var Ws=4096,s1=2*Ws+32,Fc=2*Ws-1,a1=new Uint32Array([0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535,131071,262143,524287,1048575,2097151,4194303,8388607,16777215]);function Ys(t){this.buf_=new Uint8Array(s1),this.input_=t,this.reset()}Ys.READ_SIZE=Ws,Ys.IBUF_MASK=Fc,Ys.prototype.reset=function(){this.buf_ptr_=0,this.val_=0,this.pos_=0,this.bit_pos_=0,this.bit_end_pos_=0,this.eos_=0,this.readMoreInput();for(var t=0;t<4;t++)this.val_|=this.buf_[this.pos_]<<8*t,++this.pos_;return this.bit_end_pos_>0},Ys.prototype.readMoreInput=function(){if(!(this.bit_end_pos_>256))if(this.eos_){if(this.bit_pos_>this.bit_end_pos_)throw new Error("Unexpected end of input "+this.bit_pos_+" "+this.bit_end_pos_)}else{var t=this.buf_ptr_,e=this.input_.read(this.buf_,t,Ws);if(e<0)throw new Error("Unexpected end of input");if(e<Ws){this.eos_=1;for(var s=0;s<32;s++)this.buf_[t+e+s]=0}if(t===0){for(var s=0;s<32;s++)this.buf_[(Ws<<1)+s]=this.buf_[s];this.buf_ptr_=Ws}else this.buf_ptr_=0;this.bit_end_pos_+=e<<3}},Ys.prototype.fillBitWindow=function(){for(;this.bit_pos_>=8;)this.val_>>>=8,this.val_|=this.buf_[this.pos_&Fc]<<24,++this.pos_,this.bit_pos_=this.bit_pos_-8>>>0,this.bit_end_pos_=this.bit_end_pos_-8>>>0},Ys.prototype.readBits=function(t){32-this.bit_pos_<t&&this.fillBitWindow();var e=this.val_>>>this.bit_pos_&a1[t];return this.bit_pos_+=t,e};var i1=Ys,As={},Mn={},Rn,Tc;function r1(){return Tc||(Tc=1,Rn="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"),Rn}var Pc;function n1(){if(Pc)return Mn;Pc=1;var t=Ba;return Mn.init=function(){var e=Dc().BrotliDecompressBuffer,s=t.toByteArray(r1());return e(s)},Mn}var Ec;function Oc(){if(Ec)return As;Ec=1;var t=n1();return As.init=function(){As.dictionary=t.init()},As.offsetsByLength=new Uint32Array([0,0,0,0,0,4096,9216,21504,35840,44032,53248,63488,74752,87040,93696,100864,104704,106752,108928,113536,115968,118528,119872,121280,122016]),As.sizeBitsByLength=new Uint8Array([0,0,0,0,10,10,11,11,10,10,10,10,10,9,9,8,7,7,8,7,7,6,6,5,5]),As.minDictionaryWordLength=4,As.maxDictionaryWordLength=24,As}var Xi={};function ua(t,e){this.bits=t,this.value=e}Xi.HuffmanCode=ua;var ha=15;function Mc(t,e){for(var s=1<<e-1;t&s;)s>>=1;return(t&s-1)+s}function Rc(t,e,s,a,i){do a-=s,t[e+a]=new ua(i.bits,i.value);while(a>0)}function o1(t,e,s){for(var a=1<<e-s;e<ha&&(a-=t[e],!(a<=0));)++e,a<<=1;return e-s}Xi.BrotliBuildHuffmanTable=function(t,e,s,a,i){var r=e,n,o,l,c,f,h,d,m,b,I,M,E=new Int32Array(ha+1),V=new Int32Array(ha+1);for(M=new Int32Array(i),l=0;l<i;l++)E[a[l]]++;for(V[1]=0,o=1;o<ha;o++)V[o+1]=V[o]+E[o];for(l=0;l<i;l++)a[l]!==0&&(M[V[a[l]]++]=l);if(m=s,b=1<<m,I=b,V[ha]===1){for(c=0;c<I;++c)t[e+c]=new ua(0,M[0]&65535);return I}for(c=0,l=0,o=1,f=2;o<=s;++o,f<<=1)for(;E[o]>0;--E[o])n=new ua(o&255,M[l++]&65535),Rc(t,e+c,f,b,n),c=Mc(c,o);for(d=I-1,h=-1,o=s+1,f=2;o<=ha;++o,f<<=1)for(;E[o]>0;--E[o])(c&d)!==h&&(e+=b,m=o1(E,o,s),b=1<<m,I+=b,h=c&d,t[r+h]=new ua(m+s&255,e-r-h&65535)),n=new ua(o-s&255,M[l++]&65535),Rc(t,e+(c>>s),f,b,n),c=Mc(c,o);return I};var zn={};zn.lookup=new Uint8Array([0,0,0,0,0,0,0,0,0,4,4,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,12,16,12,12,20,12,16,24,28,12,12,32,12,36,12,44,44,44,44,44,44,44,44,44,44,32,32,24,40,28,12,12,48,52,52,52,48,52,52,52,48,52,52,52,52,52,48,52,52,52,52,52,48,52,52,52,52,52,24,12,28,12,12,12,56,60,60,60,56,60,60,60,56,60,60,60,60,60,56,60,60,60,60,60,56,60,60,60,60,60,24,12,28,12,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,56,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,43,43,43,43,44,44,44,44,45,45,45,45,46,46,46,46,47,47,47,47,48,48,48,48,49,49,49,49,50,50,50,50,51,51,51,51,52,52,52,52,53,53,53,53,54,54,54,54,55,55,55,55,56,56,56,56,57,57,57,57,58,58,58,58,59,59,59,59,60,60,60,60,61,61,61,61,62,62,62,62,63,63,63,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),zn.lookupOffsets=new Uint16Array([1024,1536,1280,1536,0,256,768,512]);var da={};function Q(t,e){this.offset=t,this.nbits=e}da.kBlockLengthPrefixCode=[new Q(1,2),new Q(5,2),new Q(9,2),new Q(13,2),new Q(17,3),new Q(25,3),new Q(33,3),new Q(41,3),new Q(49,4),new Q(65,4),new Q(81,4),new Q(97,4),new Q(113,5),new Q(145,5),new Q(177,5),new Q(209,5),new Q(241,6),new Q(305,6),new Q(369,7),new Q(497,8),new Q(753,9),new Q(1265,10),new Q(2289,11),new Q(4337,12),new Q(8433,13),new Q(16625,24)],da.kInsertLengthPrefixCode=[new Q(0,0),new Q(1,0),new Q(2,0),new Q(3,0),new Q(4,0),new Q(5,0),new Q(6,1),new Q(8,1),new Q(10,2),new Q(14,2),new Q(18,3),new Q(26,3),new Q(34,4),new Q(50,4),new Q(66,5),new Q(98,5),new Q(130,6),new Q(194,7),new Q(322,8),new Q(578,9),new Q(1090,10),new Q(2114,12),new Q(6210,14),new Q(22594,24)],da.kCopyLengthPrefixCode=[new Q(2,0),new Q(3,0),new Q(4,0),new Q(5,0),new Q(6,0),new Q(7,0),new Q(8,0),new Q(9,0),new Q(10,1),new Q(12,1),new Q(14,2),new Q(18,2),new Q(22,3),new Q(30,3),new Q(38,4),new Q(54,4),new Q(70,5),new Q(102,5),new Q(134,6),new Q(198,7),new Q(326,8),new Q(582,9),new Q(1094,10),new Q(2118,24)],da.kInsertRangeLut=[0,0,8,8,0,16,8,16,16],da.kCopyRangeLut=[0,8,0,8,16,0,16,8,16];var Ga={},zc;function l1(){if(zc)return Ga;zc=1;var t=Oc(),e=0,s=1,a=2,i=3,r=4,n=5,o=6,l=7,c=8,f=9,h=10,d=11,m=12,b=13,I=14,M=15,E=16,V=17,v=18,F=20;function y(B,J,$){this.prefix=new Uint8Array(B.length),this.transform=J,this.suffix=new Uint8Array($.length);for(var se=0;se<B.length;se++)this.prefix[se]=B.charCodeAt(se);for(var se=0;se<$.length;se++)this.suffix[se]=$.charCodeAt(se)}var Z=[new y("",e,""),new y("",e," "),new y(" ",e," "),new y("",m,""),new y("",h," "),new y("",e," the "),new y(" ",e,""),new y("s ",e," "),new y("",e," of "),new y("",h,""),new y("",e," and "),new y("",b,""),new y("",s,""),new y(", ",e," "),new y("",e,", "),new y(" ",h," "),new y("",e," in "),new y("",e," to "),new y("e ",e," "),new y("",e,'"'),new y("",e,"."),new y("",e,'">'),new y("",e,`
|
|
272
|
+
`),new y("",i,""),new y("",e,"]"),new y("",e," for "),new y("",I,""),new y("",a,""),new y("",e," a "),new y("",e," that "),new y(" ",h,""),new y("",e,". "),new y(".",e,""),new y(" ",e,", "),new y("",M,""),new y("",e," with "),new y("",e,"'"),new y("",e," from "),new y("",e," by "),new y("",E,""),new y("",V,""),new y(" the ",e,""),new y("",r,""),new y("",e,". The "),new y("",d,""),new y("",e," on "),new y("",e," as "),new y("",e," is "),new y("",l,""),new y("",s,"ing "),new y("",e,`
|
|
273
|
+
`),new y("",e,":"),new y(" ",e,". "),new y("",e,"ed "),new y("",F,""),new y("",v,""),new y("",o,""),new y("",e,"("),new y("",h,", "),new y("",c,""),new y("",e," at "),new y("",e,"ly "),new y(" the ",e," of "),new y("",n,""),new y("",f,""),new y(" ",h,", "),new y("",h,'"'),new y(".",e,"("),new y("",d," "),new y("",h,'">'),new y("",e,'="'),new y(" ",e,"."),new y(".com/",e,""),new y(" the ",e," of the "),new y("",h,"'"),new y("",e,". This "),new y("",e,","),new y(".",e," "),new y("",h,"("),new y("",h,"."),new y("",e," not "),new y(" ",e,'="'),new y("",e,"er "),new y(" ",d," "),new y("",e,"al "),new y(" ",d,""),new y("",e,"='"),new y("",d,'"'),new y("",h,". "),new y(" ",e,"("),new y("",e,"ful "),new y(" ",h,". "),new y("",e,"ive "),new y("",e,"less "),new y("",d,"'"),new y("",e,"est "),new y(" ",h,"."),new y("",d,'">'),new y(" ",e,"='"),new y("",h,","),new y("",e,"ize "),new y("",d,"."),new y(" ",e,""),new y(" ",e,","),new y("",h,'="'),new y("",d,'="'),new y("",e,"ous "),new y("",d,", "),new y("",h,"='"),new y(" ",h,","),new y(" ",d,'="'),new y(" ",d,", "),new y("",d,","),new y("",d,"("),new y("",d,". "),new y(" ",d,"."),new y("",d,"='"),new y(" ",d,". "),new y(" ",h,'="'),new y(" ",d,"='"),new y(" ",h,"='")];Ga.kTransforms=Z,Ga.kNumTransforms=Z.length;function P(B,J){return B[J]<192?(B[J]>=97&&B[J]<=122&&(B[J]^=32),1):B[J]<224?(B[J+1]^=32,2):(B[J+2]^=5,3)}return Ga.transformDictionaryWord=function(B,J,$,se,ue){var Ce=Z[ue].prefix,Te=Z[ue].suffix,Ae=Z[ue].transform,Le=Ae<m?0:Ae-(m-1),ye=0,G=J,Y;Le>se&&(Le=se);for(var W=0;W<Ce.length;)B[J++]=Ce[W++];for($+=Le,se-=Le,Ae<=f&&(se-=Ae),ye=0;ye<se;ye++)B[J++]=t.dictionary[$+ye];if(Y=J-se,Ae===h)P(B,Y);else if(Ae===d)for(;se>0;){var pe=P(B,Y);Y+=pe,se-=pe}for(var ge=0;ge<Te.length;)B[J++]=Te[ge++];return J-G},Ga}var Lc;function Dc(){if(Lc)return Za;Lc=1;var t=Ki.BrotliInput,e=Ki.BrotliOutput,s=i1,a=Oc(),i=Xi.HuffmanCode,r=Xi.BrotliBuildHuffmanTable,n=zn,o=da,l=l1(),c=8,f=16,h=256,d=704,m=26,b=6,I=2,M=8,E=255,V=1080,v=18,F=new Uint8Array([1,2,3,4,0,5,17,6,16,7,8,9,10,11,12,13,14,15]),y=16,Z=new Uint8Array([3,2,1,0,3,3,3,3,3,3,2,2,2,2,2,2]),P=new Int8Array([0,0,0,0,-1,1,-2,2,-3,3,-1,1,-2,2,-3,3]),B=new Uint16Array([256,402,436,468,500,534,566,598,630,662,694,726,758,790,822,854,886,920,952,984,1016,1048,1080]);function J(H){var z;return H.readBits(1)===0?16:(z=H.readBits(3),z>0?17+z:(z=H.readBits(3),z>0?8+z:17))}function $(H){if(H.readBits(1)){var z=H.readBits(3);return z===0?1:H.readBits(z)+(1<<z)}return 0}function se(){this.meta_block_length=0,this.input_end=0,this.is_uncompressed=0,this.is_metadata=!1}function ue(H){var z=new se,R,O,ee;if(z.input_end=H.readBits(1),z.input_end&&H.readBits(1))return z;if(R=H.readBits(2)+4,R===7){if(z.is_metadata=!0,H.readBits(1)!==0)throw new Error("Invalid reserved bit");if(O=H.readBits(2),O===0)return z;for(ee=0;ee<O;ee++){var ne=H.readBits(8);if(ee+1===O&&O>1&&ne===0)throw new Error("Invalid size byte");z.meta_block_length|=ne<<ee*8}}else for(ee=0;ee<R;++ee){var ae=H.readBits(4);if(ee+1===R&&R>4&&ae===0)throw new Error("Invalid size nibble");z.meta_block_length|=ae<<ee*4}return++z.meta_block_length,!z.input_end&&!z.is_metadata&&(z.is_uncompressed=H.readBits(1)),z}function Ce(H,z,R){var O;return R.fillBitWindow(),z+=R.val_>>>R.bit_pos_&E,O=H[z].bits-M,O>0&&(R.bit_pos_+=M,z+=H[z].value,z+=R.val_>>>R.bit_pos_&(1<<O)-1),R.bit_pos_+=H[z].bits,H[z].value}function Te(H,z,R,O){for(var ee=0,ne=c,ae=0,re=0,me=32768,ie=[],q=0;q<32;q++)ie.push(new i(0,0));for(r(ie,0,5,H,v);ee<z&&me>0;){var we=0,Je;if(O.readMoreInput(),O.fillBitWindow(),we+=O.val_>>>O.bit_pos_&31,O.bit_pos_+=ie[we].bits,Je=ie[we].value&255,Je<f)ae=0,R[ee++]=Je,Je!==0&&(ne=Je,me-=32768>>Je);else{var gt=Je-14,Ye,it,rt=0;if(Je===f&&(rt=ne),re!==rt&&(ae=0,re=rt),Ye=ae,ae>0&&(ae-=2,ae<<=gt),ae+=O.readBits(gt)+3,it=ae-Ye,ee+it>z)throw new Error("[ReadHuffmanCodeLengths] symbol + repeat_delta > num_symbols");for(var vt=0;vt<it;vt++)R[ee+vt]=re;ee+=it,re!==0&&(me-=it<<15-re)}}if(me!==0)throw new Error("[ReadHuffmanCodeLengths] space = "+me);for(;ee<z;ee++)R[ee]=0}function Ae(H,z,R,O){var ee=0,ne,ae=new Uint8Array(H);if(O.readMoreInput(),ne=O.readBits(2),ne===1){for(var re,me=H-1,ie=0,q=new Int32Array(4),we=O.readBits(2)+1;me;)me>>=1,++ie;for(re=0;re<we;++re)q[re]=O.readBits(ie)%H,ae[q[re]]=2;switch(ae[q[0]]=1,we){case 1:break;case 3:if(q[0]===q[1]||q[0]===q[2]||q[1]===q[2])throw new Error("[ReadHuffmanCode] invalid symbols");break;case 2:if(q[0]===q[1])throw new Error("[ReadHuffmanCode] invalid symbols");ae[q[1]]=1;break;case 4:if(q[0]===q[1]||q[0]===q[2]||q[0]===q[3]||q[1]===q[2]||q[1]===q[3]||q[2]===q[3])throw new Error("[ReadHuffmanCode] invalid symbols");O.readBits(1)?(ae[q[2]]=3,ae[q[3]]=3):ae[q[0]]=2;break}}else{var re,Je=new Uint8Array(v),gt=32,Ye=0,it=[new i(2,0),new i(2,4),new i(2,3),new i(3,2),new i(2,0),new i(2,4),new i(2,3),new i(4,1),new i(2,0),new i(2,4),new i(2,3),new i(3,2),new i(2,0),new i(2,4),new i(2,3),new i(4,5)];for(re=ne;re<v&>>0;++re){var rt=F[re],vt=0,_t;O.fillBitWindow(),vt+=O.val_>>>O.bit_pos_&15,O.bit_pos_+=it[vt].bits,_t=it[vt].value,Je[rt]=_t,_t!==0&&(gt-=32>>_t,++Ye)}if(!(Ye===1||gt===0))throw new Error("[ReadHuffmanCode] invalid num_codes or space");Te(Je,H,ae,O)}if(ee=r(z,R,M,ae,H),ee===0)throw new Error("[ReadHuffmanCode] BuildHuffmanTable failed: ");return ee}function Le(H,z,R){var O,ee;return O=Ce(H,z,R),ee=o.kBlockLengthPrefixCode[O].nbits,o.kBlockLengthPrefixCode[O].offset+R.readBits(ee)}function ye(H,z,R){var O;return H<y?(R+=Z[H],R&=3,O=z[R]+P[H]):O=H-y+1,O}function G(H,z){for(var R=H[z],O=z;O;--O)H[O]=H[O-1];H[0]=R}function Y(H,z){var R=new Uint8Array(256),O;for(O=0;O<256;++O)R[O]=O;for(O=0;O<z;++O){var ee=H[O];H[O]=R[ee],ee&&G(R,ee)}}function W(H,z){this.alphabet_size=H,this.num_htrees=z,this.codes=new Array(z+z*B[H+31>>>5]),this.htrees=new Uint32Array(z)}W.prototype.decode=function(H){var z,R,O=0;for(z=0;z<this.num_htrees;++z)this.htrees[z]=O,R=Ae(this.alphabet_size,this.codes,O,H),O+=R};function pe(H,z){var R={num_htrees:null,context_map:null},O,ee=0,ne,ae;z.readMoreInput();var re=R.num_htrees=$(z)+1,me=R.context_map=new Uint8Array(H);if(re<=1)return R;for(O=z.readBits(1),O&&(ee=z.readBits(4)+1),ne=[],ae=0;ae<V;ae++)ne[ae]=new i(0,0);for(Ae(re+ee,ne,0,z),ae=0;ae<H;){var ie;if(z.readMoreInput(),ie=Ce(ne,0,z),ie===0)me[ae]=0,++ae;else if(ie<=ee)for(var q=1+(1<<ie)+z.readBits(ie);--q;){if(ae>=H)throw new Error("[DecodeContextMap] i >= context_map_size");me[ae]=0,++ae}else me[ae]=ie-ee,++ae}return z.readBits(1)&&Y(me,H),R}function ge(H,z,R,O,ee,ne,ae){var re=R*2,me=R,ie=Ce(z,R*V,ae),q;ie===0?q=ee[re+(ne[me]&1)]:ie===1?q=ee[re+(ne[me]-1&1)]+1:q=ie-2,q>=H&&(q-=H),O[R]=q,ee[re+(ne[me]&1)]=q,++ne[me]}function Pe(H,z,R,O,ee,ne){var ae=ee+1,re=R&ee,me=ne.pos_&s.IBUF_MASK,ie;if(z<8||ne.bit_pos_+(z<<3)<ne.bit_end_pos_){for(;z-- >0;)ne.readMoreInput(),O[re++]=ne.readBits(8),re===ae&&(H.write(O,ae),re=0);return}if(ne.bit_end_pos_<32)throw new Error("[CopyUncompressedBlockToOutput] br.bit_end_pos_ < 32");for(;ne.bit_pos_<32;)O[re]=ne.val_>>>ne.bit_pos_,ne.bit_pos_+=8,++re,--z;if(ie=ne.bit_end_pos_-ne.bit_pos_>>3,me+ie>s.IBUF_MASK){for(var q=s.IBUF_MASK+1-me,we=0;we<q;we++)O[re+we]=ne.buf_[me+we];ie-=q,re+=q,z-=q,me=0}for(var we=0;we<ie;we++)O[re+we]=ne.buf_[me+we];if(re+=ie,z-=ie,re>=ae){H.write(O,ae),re-=ae;for(var we=0;we<re;we++)O[we]=O[ae+we]}for(;re+z>=ae;){if(ie=ae-re,ne.input_.read(O,re,ie)<ie)throw new Error("[CopyUncompressedBlockToOutput] not enough bytes");H.write(O,ae),z-=ie,re=0}if(ne.input_.read(O,re,z)<z)throw new Error("[CopyUncompressedBlockToOutput] not enough bytes");ne.reset()}function Ue(H){var z=H.bit_pos_+7&-8,R=H.readBits(z-H.bit_pos_);return R==0}function Oe(H){var z=new t(H),R=new s(z);J(R);var O=ue(R);return O.meta_block_length}Za.BrotliDecompressedSize=Oe;function _e(H,z){var R=new t(H);z==null&&(z=Oe(H));var O=new Uint8Array(z),ee=new e(O);return ft(R,ee),ee.pos<ee.buffer.length&&(ee.buffer=ee.buffer.subarray(0,ee.pos)),ee.buffer}Za.BrotliDecompressBuffer=_e;function ft(H,z){var R,O=0,ee=0,ne=0,ae,re=0,me,ie,q,we,Je=[16,15,11,4],gt=0,Ye=0,it=0,rt=[new W(0,0),new W(0,0),new W(0,0)],vt,_t,ke,Vo=128+s.READ_SIZE;ke=new s(H),ne=J(ke),ae=(1<<ne)-16,me=1<<ne,ie=me-1,q=new Uint8Array(me+Vo+a.maxDictionaryWordLength),we=me,vt=[],_t=[];for(var Sa=0;Sa<3*V;Sa++)vt[Sa]=new i(0,0),_t[Sa]=new i(0,0);for(;!ee;){var ut=0,pi,Lt=[1<<28,1<<28,1<<28],Wt=[0],Et=[1,1,1],ms=[0,1,0,1,0,1],ea=[0],Os,Ot,Br,Va,Ur=null,Ms=null,Zr,Gr=null,mi,Wr=0,Ia=null,Yt=0,_a=0,yi=null,N=0,te=0,Ve=0,De,Ze;for(R=0;R<3;++R)rt[R].codes=null,rt[R].htrees=null;ke.readMoreInput();var ht=ue(ke);if(ut=ht.meta_block_length,O+ut>z.buffer.length){var Fa=new Uint8Array(O+ut);Fa.set(z.buffer),z.buffer=Fa}if(ee=ht.input_end,pi=ht.is_uncompressed,ht.is_metadata){for(Ue(ke);ut>0;--ut)ke.readMoreInput(),ke.readBits(8);continue}if(ut!==0){if(pi){ke.bit_pos_=ke.bit_pos_+7&-8,Pe(z,ut,O,q,ie,ke),O+=ut;continue}for(R=0;R<3;++R)Et[R]=$(ke)+1,Et[R]>=2&&(Ae(Et[R]+2,vt,R*V,ke),Ae(m,_t,R*V,ke),Lt[R]=Le(_t,R*V,ke),ea[R]=1);for(ke.readMoreInput(),Os=ke.readBits(2),Ot=y+(ke.readBits(4)<<Os),Br=(1<<Os)-1,Va=Ot+(48<<Os),Ms=new Uint8Array(Et[0]),R=0;R<Et[0];++R)ke.readMoreInput(),Ms[R]=ke.readBits(2)<<1;var Yr=pe(Et[0]<<b,ke);Zr=Yr.num_htrees,Ur=Yr.context_map;var Io=pe(Et[2]<<I,ke);for(mi=Io.num_htrees,Gr=Io.context_map,rt[0]=new W(h,Zr),rt[1]=new W(d,Et[1]),rt[2]=new W(Va,mi),R=0;R<3;++R)rt[R].decode(ke);for(Ia=0,yi=0,De=Ms[Wt[0]],te=n.lookupOffsets[De],Ve=n.lookupOffsets[De+1],Ze=rt[1].htrees[0];ut>0;){var Hr,bi,_o,Fo,To,Ft,Mt,ys,wi,Ta,vi;for(ke.readMoreInput(),Lt[1]===0&&(ge(Et[1],vt,1,Wt,ms,ea,ke),Lt[1]=Le(_t,V,ke),Ze=rt[1].htrees[Wt[1]]),--Lt[1],Hr=Ce(rt[1].codes,Ze,ke),bi=Hr>>6,bi>=2?(bi-=2,Mt=-1):Mt=0,_o=o.kInsertRangeLut[bi]+(Hr>>3&7),Fo=o.kCopyRangeLut[bi]+(Hr&7),To=o.kInsertLengthPrefixCode[_o].offset+ke.readBits(o.kInsertLengthPrefixCode[_o].nbits),Ft=o.kCopyLengthPrefixCode[Fo].offset+ke.readBits(o.kCopyLengthPrefixCode[Fo].nbits),Ye=q[O-1&ie],it=q[O-2&ie],Ta=0;Ta<To;++Ta)ke.readMoreInput(),Lt[0]===0&&(ge(Et[0],vt,0,Wt,ms,ea,ke),Lt[0]=Le(_t,0,ke),Wr=Wt[0]<<b,Ia=Wr,De=Ms[Wt[0]],te=n.lookupOffsets[De],Ve=n.lookupOffsets[De+1]),wi=n.lookup[te+Ye]|n.lookup[Ve+it],Yt=Ur[Ia+wi],--Lt[0],it=Ye,Ye=Ce(rt[0].codes,rt[0].htrees[Yt],ke),q[O&ie]=Ye,(O&ie)===ie&&z.write(q,me),++O;if(ut-=To,ut<=0)break;if(Mt<0){var wi;if(ke.readMoreInput(),Lt[2]===0&&(ge(Et[2],vt,2,Wt,ms,ea,ke),Lt[2]=Le(_t,2*V,ke),_a=Wt[2]<<I,yi=_a),--Lt[2],wi=(Ft>4?3:Ft-2)&255,N=Gr[yi+wi],Mt=Ce(rt[2].codes,rt[2].htrees[N],ke),Mt>=Ot){var Po,H0,xi;Mt-=Ot,H0=Mt&Br,Mt>>=Os,Po=(Mt>>1)+1,xi=(2+(Mt&1)<<Po)-4,Mt=Ot+(xi+ke.readBits(Po)<<Os)+H0}}if(ys=ye(Mt,Je,gt),ys<0)throw new Error("[BrotliDecompress] invalid distance");if(O<ae&&re!==ae?re=O:re=ae,vi=O&ie,ys>re)if(Ft>=a.minDictionaryWordLength&&Ft<=a.maxDictionaryWordLength){var xi=a.offsetsByLength[Ft],j0=ys-re-1,K0=a.sizeBitsByLength[Ft],bN=(1<<K0)-1,wN=j0&bN,X0=j0>>K0;if(xi+=wN*Ft,X0<l.kNumTransforms){var Eo=l.transformDictionaryWord(q,vi,xi,Ft,X0);if(vi+=Eo,O+=Eo,ut-=Eo,vi>=we){z.write(q,me);for(var jr=0;jr<vi-we;jr++)q[jr]=q[we+jr]}}else throw new Error("Invalid backward reference. pos: "+O+" distance: "+ys+" len: "+Ft+" bytes left: "+ut)}else throw new Error("Invalid backward reference. pos: "+O+" distance: "+ys+" len: "+Ft+" bytes left: "+ut);else{if(Mt>0&&(Je[gt&3]=ys,++gt),Ft>ut)throw new Error("Invalid backward reference. pos: "+O+" distance: "+ys+" len: "+Ft+" bytes left: "+ut);for(Ta=0;Ta<Ft;++Ta)q[O&ie]=q[O-ys&ie],(O&ie)===ie&&z.write(q,me),++O,--ut}Ye=q[O-1&ie],it=q[O-2&ie]}O&=1073741823}}z.write(q,O&ie)}return Za.BrotliDecompress=ft,a.init(),Za}var c1=Dc().BrotliDecompressBuffer;const f1=ca(c1);function Wa(t,e,s,a){Object.defineProperty(t,e,{get:s,set:a,enumerable:!0,configurable:!0})}function qi(t){return t&&t.__esModule?t.default:t}var Ya={};Wa(Ya,"logErrors",()=>u1),Wa(Ya,"registerFormat",()=>ga),Wa(Ya,"create",()=>Bc),Wa(Ya,"defaultLanguage",()=>Ji),Wa(Ya,"setDefaultLanguage",()=>h1);let u1=!1,Ln=[];function ga(t){Ln.push(t)}function Bc(t,e){for(let s=0;s<Ln.length;s++){let a=Ln[s];if(a.probe(t)){let i=new a(new pt(t));return e?i.getFont(e):i}}throw new Error("Unknown font format")}let Ji="en";function h1(t="en"){Ji=t}function yt(t,e,s){if(s.get){let a=s.get;s.get=function(){let i=a.call(this);return Object.defineProperty(this,e,{value:i}),i}}else if(typeof s.value=="function"){let a=s.value;return{get(){let i=new Map;function r(...n){let o=n.length>0?n[0]:"value";if(i.has(o))return i.get(o);let l=a.apply(this,n);return i.set(o,l),l}return Object.defineProperty(this,e,{value:r}),r}}}}let d1=new T({firstCode:u,entryCount:u,idDelta:U,idRangeOffset:u}),Dn=new T({startCharCode:S,endCharCode:S,glyphID:S}),g1=new T({startUnicodeValue:ks,additionalCount:K}),p1=new T({unicodeValue:ks,glyphID:u}),m1=new k(g1,S),y1=new k(p1,S),b1=new T({varSelector:ks,defaultUVS:new A(S,m1,{type:"parent"}),nonDefaultUVS:new A(S,y1,{type:"parent"})}),w1=new ve(u,{0:{length:u,language:u,codeMap:new Be(K,256)},2:{length:u,language:u,subHeaderKeys:new k(u,256),subHeaderCount:t=>Math.max.apply(Math,t.subHeaderKeys),subHeaders:new Be(d1,"subHeaderCount"),glyphIndexArray:new Be(u,"subHeaderCount")},4:{length:u,language:u,segCountX2:u,segCount:t=>t.segCountX2>>1,searchRange:u,entrySelector:u,rangeShift:u,endCode:new Be(u,"segCount"),reservedPad:new je(u),startCode:new Be(u,"segCount"),idDelta:new Be(U,"segCount"),idRangeOffset:new Be(u,"segCount"),glyphIndexArray:new Be(u,t=>(t.length-t._currentOffset)/2)},6:{length:u,language:u,firstCode:u,entryCount:u,glyphIndices:new Be(u,"entryCount")},8:{reserved:new je(u),length:S,language:u,is32:new Be(K,8192),nGroups:S,groups:new Be(Dn,"nGroups")},10:{reserved:new je(u),length:S,language:S,firstCode:S,entryCount:S,glyphIndices:new Be(u,"numChars")},12:{reserved:new je(u),length:S,language:S,nGroups:S,groups:new Be(Dn,"nGroups")},13:{reserved:new je(u),length:S,language:S,nGroups:S,groups:new Be(Dn,"nGroups")},14:{length:S,numRecords:S,varSelectors:new Be(b1,"numRecords")}}),v1=new T({platformID:u,encodingID:u,table:new A(S,w1,{type:"parent",lazy:!0})});var x1=new T({version:u,numSubtables:u,tables:new k(v1,"numSubtables")}),C1=new T({version:Bs,revision:Bs,checkSumAdjustment:S,magicNumber:S,flags:u,unitsPerEm:u,created:new k(Bs,2),modified:new k(Bs,2),xMin:U,yMin:U,xMax:U,yMax:U,macStyle:new Bt(u,["bold","italic","underline","outline","shadow","condensed","extended"]),lowestRecPPEM:u,fontDirectionHint:U,indexToLocFormat:U,glyphDataFormat:U}),k1=new T({version:Bs,ascent:U,descent:U,lineGap:U,advanceWidthMax:u,minLeftSideBearing:U,minRightSideBearing:U,xMaxExtent:U,caretSlopeRise:U,caretSlopeRun:U,caretOffset:U,reserved:new je(U,4),metricDataFormat:U,numberOfMetrics:u});let N1=new T({advance:u,bearing:U});var A1=new T({metrics:new Be(N1,t=>t.parent.hhea.numberOfMetrics),bearings:new Be(U,t=>t.parent.maxp.numGlyphs-t.parent.hhea.numberOfMetrics)}),S1=new T({version:Bs,numGlyphs:u,maxPoints:u,maxContours:u,maxComponentPoints:u,maxComponentContours:u,maxZones:u,maxTwilightPoints:u,maxStorage:u,maxFunctionDefs:u,maxInstructionDefs:u,maxStackElements:u,maxSizeOfInstructions:u,maxComponentElements:u,maxComponentDepth:u});function Uc(t,e,s=0){return t===1&&Zc[s]?Zc[s]:F1[t][e]}const V1=new Set(["x-mac-roman","x-mac-cyrillic","iso-8859-6","iso-8859-8"]),I1={"x-mac-croatian":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®Š™´¨≠ŽØ∞±≤≥∆µ∂∑∏š∫ªºΩžø¿¡¬√ƒ≈ƫȅ ÀÃÕŒœĐ—“”‘’÷◊©⁄€‹›Æ»–·‚„‰ÂćÁčÈÍÎÏÌÓÔđÒÚÛÙıˆ˜¯πË˚¸Êæˇ","x-mac-gaelic":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØḂ±≤≥ḃĊċḊḋḞḟĠġṀæøṁṖṗɼƒſṠ«»… ÀÃÕŒœ–—“”‘’ṡẛÿŸṪ€‹›Ŷŷṫ·Ỳỳ⁊ÂÊÁËÈÍÎÏÌÓÔ♣ÒÚÛÙıÝýŴŵẄẅẀẁẂẃ","x-mac-greek":"Ĺ²É³ÖÜ΅àâä΄¨çéèê룙î‰ôö¦€ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ","x-mac-icelandic":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüݰ¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄€ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ","x-mac-inuit":"ᐃᐄᐅᐆᐊᐋᐱᐲᐳᐴᐸᐹᑉᑎᑏᑐᑑᑕᑖᑦᑭᑮᑯᑰᑲᑳᒃᒋᒌᒍᒎᒐᒑ°ᒡᒥᒦ•¶ᒧ®©™ᒨᒪᒫᒻᓂᓃᓄᓅᓇᓈᓐᓯᓰᓱᓲᓴᓵᔅᓕᓖᓗᓘᓚᓛᓪᔨᔩᔪᔫᔭ… ᔮᔾᕕᕖᕗ–—“”‘’ᕘᕙᕚᕝᕆᕇᕈᕉᕋᕌᕐᕿᖀᖁᖂᖃᖄᖅᖏᖐᖑᖒᖓᖔᖕᙱᙲᙳᙴᙵᙶᖖᖠᖡᖢᖣᖤᖥᖦᕼŁł","x-mac-ce":"ÄĀāÉĄÖÜáąČäčĆć鏟ĎíďĒēĖóėôöõúĚěü†°Ę£§•¶ß®©™ę¨≠ģĮįĪ≤≥īĶ∂∑łĻļĽľĹĺŅņѬ√ńŇ∆«»… ňŐÕőŌ–—“”‘’÷◊ōŔŕŘ‹›řŖŗŠ‚„šŚśÁŤťÍŽžŪÓÔūŮÚůŰűŲųÝýķŻŁżĢˇ","x-mac-romanian":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ĂȘ∞±≤≥¥µ∂∑∏π∫ªºΩăș¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄€‹›Țț‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ","x-mac-turkish":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙˆ˜¯˘˙˚¸˝˛ˇ"},Bn=new Map;function _1(t){let e=Bn.get(t);if(e)return e;let s=I1[t];if(s){let a=new Map;for(let i=0;i<s.length;i++)a.set(s.charCodeAt(i),128+i);return Bn.set(t,a),a}if(V1.has(t)){let a=new TextDecoder(t),i=new Uint8Array(128);for(let o=0;o<128;o++)i[o]=128+o;let r=new Map,n=a.decode(i);for(let o=0;o<128;o++)r.set(n.charCodeAt(o),128+o);return Bn.set(t,r),r}}const F1=[["utf-16be","utf-16be","utf-16be","utf-16be","utf-16be","utf-16be","utf-16be"],["x-mac-roman","shift-jis","big5","euc-kr","iso-8859-6","iso-8859-8","x-mac-greek","x-mac-cyrillic","x-mac-symbol","x-mac-devanagari","x-mac-gurmukhi","x-mac-gujarati","Oriya","Bengali","Tamil","Telugu","Kannada","Malayalam","Sinhalese","Burmese","Khmer","iso-8859-11","Laotian","Georgian","Armenian","gbk","Tibetan","Mongolian","Geez","x-mac-ce","Vietnamese","Sindhi"],["ascii",null,"iso-8859-1"],["symbol","utf-16be","shift-jis","gb18030","big5","euc-kr","johab",null,null,null,"utf-16be"]],Zc={15:"x-mac-icelandic",17:"x-mac-turkish",18:"x-mac-croatian",24:"x-mac-ce",25:"x-mac-ce",26:"x-mac-ce",27:"x-mac-ce",28:"x-mac-ce",30:"x-mac-icelandic",37:"x-mac-romanian",38:"x-mac-ce",39:"x-mac-ce",40:"x-mac-ce",143:"x-mac-inuit",146:"x-mac-gaelic"},T1=[[],{0:"en",30:"fo",60:"ks",90:"rw",1:"fr",31:"fa",61:"ku",91:"rn",2:"de",32:"ru",62:"sd",92:"ny",3:"it",33:"zh",63:"bo",93:"mg",4:"nl",34:"nl-BE",64:"ne",94:"eo",5:"sv",35:"ga",65:"sa",128:"cy",6:"es",36:"sq",66:"mr",129:"eu",7:"da",37:"ro",67:"bn",130:"ca",8:"pt",38:"cz",68:"as",131:"la",9:"no",39:"sk",69:"gu",132:"qu",10:"he",40:"si",70:"pa",133:"gn",11:"ja",41:"yi",71:"or",134:"ay",12:"ar",42:"sr",72:"ml",135:"tt",13:"fi",43:"mk",73:"kn",136:"ug",14:"el",44:"bg",74:"ta",137:"dz",15:"is",45:"uk",75:"te",138:"jv",16:"mt",46:"be",76:"si",139:"su",17:"tr",47:"uz",77:"my",140:"gl",18:"hr",48:"kk",78:"km",141:"af",19:"zh-Hant",49:"az-Cyrl",79:"lo",142:"br",20:"ur",50:"az-Arab",80:"vi",143:"iu",21:"hi",51:"hy",81:"id",144:"gd",22:"th",52:"ka",82:"tl",145:"gv",23:"ko",53:"mo",83:"ms",146:"ga",24:"lt",54:"ky",84:"ms-Arab",147:"to",25:"pl",55:"tg",85:"am",148:"el-polyton",26:"hu",56:"tk",86:"ti",149:"kl",27:"es",57:"mn-CN",87:"om",150:"az",28:"lv",58:"mn",88:"so",151:"nn",29:"se",59:"ps",89:"sw"},[],{1078:"af",16393:"en-IN",1159:"rw",1074:"tn",1052:"sq",6153:"en-IE",1089:"sw",1115:"si",1156:"gsw",8201:"en-JM",1111:"kok",1051:"sk",1118:"am",17417:"en-MY",1042:"ko",1060:"sl",5121:"ar-DZ",5129:"en-NZ",1088:"ky",11274:"es-AR",15361:"ar-BH",13321:"en-PH",1108:"lo",16394:"es-BO",3073:"ar",18441:"en-SG",1062:"lv",13322:"es-CL",2049:"ar-IQ",7177:"en-ZA",1063:"lt",9226:"es-CO",11265:"ar-JO",11273:"en-TT",2094:"dsb",5130:"es-CR",13313:"ar-KW",2057:"en-GB",1134:"lb",7178:"es-DO",12289:"ar-LB",1033:"en",1071:"mk",12298:"es-EC",4097:"ar-LY",12297:"en-ZW",2110:"ms-BN",17418:"es-SV",6145:"ary",1061:"et",1086:"ms",4106:"es-GT",8193:"ar-OM",1080:"fo",1100:"ml",18442:"es-HN",16385:"ar-QA",1124:"fil",1082:"mt",2058:"es-MX",1025:"ar-SA",1035:"fi",1153:"mi",19466:"es-NI",10241:"ar-SY",2060:"fr-BE",1146:"arn",6154:"es-PA",7169:"aeb",3084:"fr-CA",1102:"mr",15370:"es-PY",14337:"ar-AE",1036:"fr",1148:"moh",10250:"es-PE",9217:"ar-YE",5132:"fr-LU",1104:"mn",20490:"es-PR",1067:"hy",6156:"fr-MC",2128:"mn-CN",3082:"es",1101:"as",4108:"fr-CH",1121:"ne",1034:"es",2092:"az-Cyrl",1122:"fy",1044:"nb",21514:"es-US",1068:"az",1110:"gl",2068:"nn",14346:"es-UY",1133:"ba",1079:"ka",1154:"oc",8202:"es-VE",1069:"eu",3079:"de-AT",1096:"or",2077:"sv-FI",1059:"be",1031:"de",1123:"ps",1053:"sv",2117:"bn",5127:"de-LI",1045:"pl",1114:"syr",1093:"bn-IN",4103:"de-LU",1046:"pt",1064:"tg",8218:"bs-Cyrl",2055:"de-CH",2070:"pt-PT",2143:"tzm",5146:"bs",1032:"el",1094:"pa",1097:"ta",1150:"br",1135:"kl",1131:"qu-BO",1092:"tt",1026:"bg",1095:"gu",2155:"qu-EC",1098:"te",1027:"ca",1128:"ha",3179:"qu",1054:"th",3076:"zh-HK",1037:"he",1048:"ro",1105:"bo",5124:"zh-MO",1081:"hi",1047:"rm",1055:"tr",2052:"zh",1038:"hu",1049:"ru",1090:"tk",4100:"zh-SG",1039:"is",9275:"smn",1152:"ug",1028:"zh-TW",1136:"ig",4155:"smj-NO",1058:"uk",1155:"co",1057:"id",5179:"smj",1070:"hsb",1050:"hr",1117:"iu",3131:"se-FI",1056:"ur",4122:"hr-BA",2141:"iu-Latn",1083:"se",2115:"uz-Cyrl",1029:"cs",2108:"ga",2107:"se-SE",1091:"uz",1030:"da",1076:"xh",8251:"sms",1066:"vi",1164:"prs",1077:"zu",6203:"sma-NO",1106:"cy",1125:"dv",1040:"it",7227:"sms",1160:"wo",2067:"nl-BE",2064:"it-CH",1103:"sa",1157:"sah",1043:"nl",1041:"ja",7194:"sr-Cyrl-BA",1144:"ii",3081:"en-AU",1099:"kn",3098:"sr",1130:"yo",10249:"en-BZ",1087:"kk",6170:"sr-Latn-BA",4105:"en-CA",1107:"km",2074:"sr-Latn",9225:"en-029",1158:"quc",1132:"nso"}];let Gc=new T({platformID:u,encodingID:u,languageID:u,nameID:u,length:u,string:new A(u,new Re("length",t=>Uc(t.platformID,t.encodingID,t.languageID)),{type:"parent",relativeTo:t=>t.parent.stringOffset,allowNull:!1})}),P1=new T({length:u,tag:new A(u,new Re("length","utf16be"),{type:"parent",relativeTo:t=>t.stringOffset})});var Qi=new ve(u,{0:{count:u,stringOffset:u,records:new k(Gc,"count")},1:{count:u,stringOffset:u,records:new k(Gc,"count"),langTagCount:u,langTags:new k(P1,"langTagCount")}}),E1=Qi;const Un=["copyright","fontFamily","fontSubfamily","uniqueSubfamily","fullName","version","postscriptName","trademark","manufacturer","designer","description","vendorURL","designerURL","license","licenseURL",null,"preferredFamily","preferredSubfamily","compatibleFull","sampleText","postscriptCIDFontName","wwsFamilyName","wwsSubfamilyName"];Qi.process=function(t){var e={};for(let s of this.records){let a=T1[s.platformID][s.languageID];a==null&&this.langTags!=null&&s.languageID>=32768&&(a=this.langTags[s.languageID-32768].tag),a==null&&(a=s.platformID+"-"+s.languageID);let i=s.nameID>=256?"fontFeatures":Un[s.nameID]||s.nameID;e[i]==null&&(e[i]={});let r=e[i];s.nameID>=256&&(r=r[s.nameID]||(r[s.nameID]={})),(typeof s.string=="string"||typeof r[a]!="string")&&(r[a]=s.string)}this.records=e},Qi.preEncode=function(){if(Array.isArray(this.records))return;this.version=0;let t=[];for(let e in this.records){let s=this.records[e];e!=="fontFeatures"&&(t.push({platformID:3,encodingID:1,languageID:1033,nameID:Un.indexOf(e),length:s.en.length*2,string:s.en}),e==="postscriptName"&&t.push({platformID:1,encodingID:0,languageID:0,nameID:Un.indexOf(e),length:s.en.length,string:s.en}))}this.records=t,this.count=t.length,this.stringOffset=Qi.size(this,null,!1)};var Wc=new ve(u,{header:{xAvgCharWidth:U,usWeightClass:u,usWidthClass:u,fsType:new Bt(u,[null,"noEmbedding","viewOnly","editable",null,null,null,null,"noSubsetting","bitmapOnly"]),ySubscriptXSize:U,ySubscriptYSize:U,ySubscriptXOffset:U,ySubscriptYOffset:U,ySuperscriptXSize:U,ySuperscriptYSize:U,ySuperscriptXOffset:U,ySuperscriptYOffset:U,yStrikeoutSize:U,yStrikeoutPosition:U,sFamilyClass:U,panose:new k(K,10),ulCharRange:new k(S,4),vendorID:new Re(4),fsSelection:new Bt(u,["italic","underscore","negative","outlined","strikeout","bold","regular","useTypoMetrics","wws","oblique"]),usFirstCharIndex:u,usLastCharIndex:u},0:{},1:{typoAscender:U,typoDescender:U,typoLineGap:U,winAscent:u,winDescent:u,codePageRange:new k(S,2)},2:{typoAscender:U,typoDescender:U,typoLineGap:U,winAscent:u,winDescent:u,codePageRange:new k(S,2),xHeight:U,capHeight:U,defaultChar:u,breakChar:u,maxContent:u},5:{typoAscender:U,typoDescender:U,typoLineGap:U,winAscent:u,winDescent:u,codePageRange:new k(S,2),xHeight:U,capHeight:U,defaultChar:u,breakChar:u,maxContent:u,usLowerOpticalPointSize:u,usUpperOpticalPointSize:u}});let Zn=Wc.versions;Zn[3]=Zn[4]=Zn[2];var O1=Wc,M1=new ve(st,{header:{italicAngle:st,underlinePosition:U,underlineThickness:U,isFixedPitch:S,minMemType42:S,maxMemType42:S,minMemType1:S,maxMemType1:S},1:{},2:{numberOfGlyphs:u,glyphNameIndex:new k(u,"numberOfGlyphs"),names:new k(new Re(K))},2.5:{numberOfGlyphs:u,offsets:new k(K,"numberOfGlyphs")},3:{},4:{map:new k(S,t=>t.parent.maxp.numGlyphs)}}),R1=new T({controlValues:new k(U)}),z1=new T({instructions:new k(K)});let Gn=new ve("head.indexToLocFormat",{0:{offsets:new k(u)},1:{offsets:new k(S)}});Gn.process=function(){if(this.version===0&&!this._processed){for(let t=0;t<this.offsets.length;t++)this.offsets[t]<<=1;this._processed=!0}},Gn.preEncode=function(){if(this.version===0&&this._processed!==!1){for(let t=0;t<this.offsets.length;t++)this.offsets[t]>>>=1;this._processed=!1}};var L1=Gn,D1=new T({controlValueProgram:new k(K)}),B1=new k(new Qt);class ss{getCFFVersion(e){for(;e&&!e.hdrSize;)e=e.parent;return e?e.version:-1}decode(e,s){let i=this.getCFFVersion(s)>=2?e.readUInt32BE():e.readUInt16BE();if(i===0)return[];let r=e.readUInt8(),n;if(r===1)n=K;else if(r===2)n=u;else if(r===3)n=ks;else if(r===4)n=S;else throw new Error(`Bad offset size in CFFIndex: ${r} ${e.pos}`);let o=[],l=e.pos+(i+1)*r-1,c=n.decode(e);for(let f=0;f<i;f++){let h=n.decode(e);if(this.type!=null){let d=e.pos;e.pos=l+c,s.length=h-c,o.push(this.type.decode(e,s)),e.pos=d}else o.push({offset:l+c,length:h-c});c=h}return e.pos=l+c,o}size(e,s){let a=2;if(e.length===0)return a;let i=this.type||new Qt,r=1;for(let o=0;o<e.length;o++){let l=e[o];r+=i.size(l,s)}let n;if(r<=255)n=K;else if(r<=65535)n=u;else if(r<=16777215)n=ks;else if(r<=4294967295)n=S;else throw new Error("Bad offset in CFFIndex");return a+=1+n.size()*(e.length+1),a+=r-1,a}encode(e,s,a){if(e.writeUInt16BE(s.length),s.length===0)return;let i=this.type||new Qt,r=[],n=1;for(let l of s){let c=i.size(l,a);r.push(c),n+=c}let o;if(n<=255)o=K;else if(n<=65535)o=u;else if(n<=16777215)o=ks;else if(n<=4294967295)o=S;else throw new Error("Bad offset in CFFIndex");e.writeUInt8(o.size()),n=1,o.encode(e,n);for(let l of r)n+=l,o.encode(e,n);for(let l of s)i.encode(e,l,a)}constructor(e){this.type=e}}const Ha=15,Yc=["0","1","2","3","4","5","6","7","8","9",".","E","E-",null,"-"],Hc={".":10,E:11,"E-":12,"-":14};class Wn{static decode(e,s){if(32<=s&&s<=246)return s-139;if(247<=s&&s<=250)return(s-247)*256+e.readUInt8()+108;if(251<=s&&s<=254)return-(s-251)*256-e.readUInt8()-108;if(s===28)return e.readInt16BE();if(s===29)return e.readInt32BE();if(s===30){let a="";for(;;){let i=e.readUInt8(),r=i>>4;if(r===Ha)break;a+=Yc[r];let n=i&15;if(n===Ha)break;a+=Yc[n]}return parseFloat(a)}return null}static size(e){if(e.forceLarge&&(e=32768),(e|0)!==e){let s=""+e;return 1+Math.ceil((s.length+1)/2)}else return-107<=e&&e<=107?1:108<=e&&e<=1131||-1131<=e&&e<=-108?2:-32768<=e&&e<=32767?3:5}static encode(e,s){let a=Number(s);if(s.forceLarge)return e.writeUInt8(29),e.writeInt32BE(a);if((a|0)!==a){e.writeUInt8(30);let r=""+a;for(let n=0;n<r.length;n+=2){let o=r[n],l=Hc[o]||+o;if(n===r.length-1)var i=Ha;else{let c=r[n+1];var i=Hc[c]||+c}e.writeUInt8(l<<4|i&15)}if(i!==Ha)return e.writeUInt8(Ha<<4)}else return-107<=a&&a<=107?e.writeUInt8(a+139):108<=a&&a<=1131?(a-=108,e.writeUInt8((a>>8)+247),e.writeUInt8(a&255)):-1131<=a&&a<=-108?(a=-a-108,e.writeUInt8((a>>8)+251),e.writeUInt8(a&255)):-32768<=a&&a<=32767?(e.writeUInt8(28),e.writeInt16BE(a)):(e.writeUInt8(29),e.writeInt32BE(a))}}class $i{decodeOperands(e,s,a,i){if(Array.isArray(e))return i.map((r,n)=>this.decodeOperands(e[n],s,a,[r]));if(e.decode!=null)return e.decode(s,a,i);switch(e){case"number":case"offset":case"sid":return i[0];case"boolean":return!!i[0];default:return i}}encodeOperands(e,s,a,i){return Array.isArray(e)?i.map((r,n)=>this.encodeOperands(e[n],s,a,r)[0]):e.encode!=null?e.encode(s,i,a):typeof i=="number"?[i]:typeof i=="boolean"?[+i]:Array.isArray(i)?i:[i]}decode(e,s){let a=e.pos+s.length,i={},r=[];Object.defineProperties(i,{parent:{value:s},_startOffset:{value:e.pos}});for(let n in this.fields){let o=this.fields[n];i[o[1]]=o[3]}for(;e.pos<a;){let n=e.readUInt8();if(n<28){n===12&&(n=n<<8|e.readUInt8());let o=this.fields[n];if(!o)throw new Error(`Unknown operator ${n}`);let l=this.decodeOperands(o[2],e,i,r);l!=null&&(l instanceof mn?Object.defineProperty(i,o[1],l):i[o[1]]=l),r=[]}else r.push(Wn.decode(e,n))}return i}size(e,s,a=!0){let i={parent:s,val:e,pointerSize:0,startOffset:s.startOffset||0},r=0;for(let n in this.fields){let o=this.fields[n],l=e[o[1]];if(l==null||oc(l,o[3]))continue;let c=this.encodeOperands(o[2],null,i,l);for(let h of c)r+=Wn.size(h);let f=Array.isArray(o[0])?o[0]:[o[0]];r+=f.length}return a&&(r+=i.pointerSize),r}encode(e,s,a){let i={pointers:[],startOffset:e.pos,parent:a,val:s,pointerSize:0};i.pointerOffset=e.pos+this.size(s,i,!1);for(let n of this.ops){let o=s[n[1]];if(o==null||oc(o,n[3]))continue;let l=this.encodeOperands(n[2],e,i,o);for(let f of l)Wn.encode(e,f);let c=Array.isArray(n[0])?n[0]:[n[0]];for(let f of c)e.writeUInt8(f)}let r=0;for(;r<i.pointers.length;){let n=i.pointers[r++];n.type.encode(e,n.val,n.parent)}}constructor(e=[]){this.ops=e,this.fields={};for(let s of e){let a=Array.isArray(s[0])?s[0][0]<<8|s[0][1]:s[0];this.fields[a]=s}}}class Ut extends A{decode(e,s,a){return this.offsetType={decode:()=>a[0]},super.decode(e,s,a)}encode(e,s,a){if(!e)return this.offsetType={size:()=>0},this.size(s,a),[new jc(0)];let i=null;return this.offsetType={encode:(r,n)=>i=n},super.encode(e,s,a),[new jc(i)]}constructor(e,s={}){s.type==null&&(s.type="global"),super(null,e,s)}}class jc{valueOf(){return this.val}constructor(e){this.val=e,this.forceLarge=!0}}class U1{static decode(e,s,a){let i=a.pop();for(;a.length>i;)a.pop()}}var Yn=new $i([[6,"BlueValues","delta",null],[7,"OtherBlues","delta",null],[8,"FamilyBlues","delta",null],[9,"FamilyOtherBlues","delta",null],[[12,9],"BlueScale","number",.039625],[[12,10],"BlueShift","number",7],[[12,11],"BlueFuzz","number",1],[10,"StdHW","number",null],[11,"StdVW","number",null],[[12,12],"StemSnapH","delta",null],[[12,13],"StemSnapV","delta",null],[[12,14],"ForceBold","boolean",!1],[[12,17],"LanguageGroup","number",0],[[12,18],"ExpansionFactor","number",.06],[[12,19],"initialRandomSeed","number",0],[20,"defaultWidthX","number",0],[21,"nominalWidthX","number",0],[22,"vsindex","number",0],[23,"blend",U1,null],[19,"Subrs",new Ut(new ss,{type:"local"}),null]]),er=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall","001.000","001.001","001.002","001.003","Black","Bold","Book","Light","Medium","Regular","Roman","Semibold"];let Kc=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","","endash","dagger","daggerdbl","periodcentered","","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","","questiondown","","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","","ring","cedilla","","hungarumlaut","ogonek","caron","emdash","","","","","","","","","","","","","","","","","AE","","ordfeminine","","","","","Lslash","Oslash","OE","ordmasculine","","","","","","ae","","","","dotlessi","","","lslash","oslash","oe","germandbls"],Z1=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclamsmall","Hungarumlautsmall","","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","","asuperior","bsuperior","centsuperior","dsuperior","esuperior","","","isuperior","","","lsuperior","msuperior","nsuperior","osuperior","","","rsuperior","ssuperior","tsuperior","","ff","fi","fl","ffi","ffl","parenleftinferior","","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdownsmall","centoldstyle","Lslashsmall","","","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","","Dotaccentsmall","","","Macronsmall","","","figuredash","hypheninferior","","","Ogoneksmall","Ringsmall","Cedillasmall","","","","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","","","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"],Xc=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron"],G1=[".notdef","space","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","fi","fl","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"],W1=[".notdef","space","dollaroldstyle","dollarsuperior","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","fi","fl","ffi","ffl","parenleftinferior","parenrightinferior","hyphensuperior","colonmonetary","onefitted","rupiah","centoldstyle","figuredash","hypheninferior","onequarter","onehalf","threequarters","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior"],qc=new T({reserved:new je(u),reqFeatureIndex:u,featureCount:u,featureIndexes:new k(u,"featureCount")}),Y1=new T({tag:new Re(4),langSys:new A(u,qc,{type:"parent"})}),H1=new T({defaultLangSys:new A(u,qc),count:u,langSysRecords:new k(Y1,"count")}),j1=new T({tag:new Re(4),script:new A(u,H1,{type:"parent"})}),Jc=new k(j1,u),K1=new T({version:u,nameID:u}),Qc=new T({featureParams:new A(u,K1),lookupCount:u,lookupListIndexes:new k(u,"lookupCount")}),X1=new T({tag:new Re(4),feature:new A(u,Qc,{type:"parent"})}),$c=new k(X1,u),q1=new T({markAttachmentType:K,flags:new Bt(K,["rightToLeft","ignoreBaseGlyphs","ignoreLigatures","ignoreMarks","useMarkFilteringSet"])});function tr(t){let e=new T({lookupType:u,flags:q1,subTableCount:u,subTables:new k(new A(u,t),"subTableCount"),markFilteringSet:new Gi(u,s=>s.flags.flags.useMarkFilteringSet)});return new Be(new A(u,e),u)}let J1=new T({start:u,end:u,startCoverageIndex:u}),ze=new ve(u,{1:{glyphCount:u,glyphs:new k(u,"glyphCount")},2:{rangeCount:u,rangeRecords:new k(J1,"rangeCount")}}),Q1=new T({start:u,end:u,class:u}),Ss=new ve(u,{1:{startGlyph:u,glyphCount:u,classValueArray:new k(u,"glyphCount")},2:{classRangeCount:u,classRangeRecord:new k(Q1,"classRangeCount")}}),Vs=new T({a:u,b:u,deltaFormat:u}),ja=new T({sequenceIndex:u,lookupListIndex:u}),$1=new T({glyphCount:u,lookupCount:u,input:new k(u,t=>t.glyphCount-1),lookupRecords:new k(ja,"lookupCount")}),e4=new k(new A(u,$1),u),t4=new T({glyphCount:u,lookupCount:u,classes:new k(u,t=>t.glyphCount-1),lookupRecords:new k(ja,"lookupCount")}),s4=new k(new A(u,t4),u),ef=new ve(u,{1:{coverage:new A(u,ze),ruleSetCount:u,ruleSets:new k(new A(u,e4),"ruleSetCount")},2:{coverage:new A(u,ze),classDef:new A(u,Ss),classSetCnt:u,classSet:new k(new A(u,s4),"classSetCnt")},3:{glyphCount:u,lookupCount:u,coverages:new k(new A(u,ze),"glyphCount"),lookupRecords:new k(ja,"lookupCount")}}),a4=new T({backtrackGlyphCount:u,backtrack:new k(u,"backtrackGlyphCount"),inputGlyphCount:u,input:new k(u,t=>t.inputGlyphCount-1),lookaheadGlyphCount:u,lookahead:new k(u,"lookaheadGlyphCount"),lookupCount:u,lookupRecords:new k(ja,"lookupCount")}),tf=new k(new A(u,a4),u),sf=new ve(u,{1:{coverage:new A(u,ze),chainCount:u,chainRuleSets:new k(new A(u,tf),"chainCount")},2:{coverage:new A(u,ze),backtrackClassDef:new A(u,Ss),inputClassDef:new A(u,Ss),lookaheadClassDef:new A(u,Ss),chainCount:u,chainClassSet:new k(new A(u,tf),"chainCount")},3:{backtrackGlyphCount:u,backtrackCoverage:new k(new A(u,ze),"backtrackGlyphCount"),inputGlyphCount:u,inputCoverage:new k(new A(u,ze),"inputGlyphCount"),lookaheadGlyphCount:u,lookaheadCoverage:new k(new A(u,ze),"lookaheadGlyphCount"),lookupCount:u,lookupRecords:new k(ja,"lookupCount")}}),Ka=new Us(16,"BE",14),i4=new T({startCoord:Ka,peakCoord:Ka,endCoord:Ka}),r4=new T({axisCount:u,regionCount:u,variationRegions:new k(new k(i4,"axisCount"),"regionCount")}),n4=new T({shortDeltas:new k(U,t=>t.parent.shortDeltaCount),regionDeltas:new k(lt,t=>t.parent.regionIndexCount-t.parent.shortDeltaCount),deltas:t=>t.shortDeltas.concat(t.regionDeltas)}),o4=new T({itemCount:u,shortDeltaCount:u,regionIndexCount:u,regionIndexes:new k(u,"regionIndexCount"),deltaSets:new k(n4,"itemCount")}),sr=new T({format:u,variationRegionList:new A(S,r4),variationDataCount:u,itemVariationData:new k(new A(S,o4),"variationDataCount")}),l4=new ve(u,{1:{axisIndex:u,axisIndex:u,filterRangeMinValue:Ka,filterRangeMaxValue:Ka}}),c4=new T({conditionCount:u,conditionTable:new k(new A(S,l4),"conditionCount")}),f4=new T({featureIndex:u,alternateFeatureTable:new A(S,Qc,{type:"parent"})}),u4=new T({version:st,substitutionCount:u,substitutions:new k(f4,"substitutionCount")}),h4=new T({conditionSet:new A(S,c4,{type:"parent"}),featureTableSubstitution:new A(S,u4,{type:"parent"})}),af=new T({majorVersion:u,minorVersion:u,featureVariationRecordCount:S,featureVariationRecords:new k(h4,"featureVariationRecordCount")});class rf{decode(e,s,a){return this.predefinedOps[a[0]]?this.predefinedOps[a[0]]:this.type.decode(e,s,a)}size(e,s){return this.type.size(e,s)}encode(e,s,a){let i=this.predefinedOps.indexOf(s);return i!==-1?i:this.type.encode(e,s,a)}constructor(e,s){this.predefinedOps=e,this.type=s}}class d4 extends Ee{decode(e){return K.decode(e)&127}constructor(){super("UInt8")}}let nf=new T({first:u,nLeft:K}),g4=new T({first:u,nLeft:u}),p4=new ve(new d4,{0:{nCodes:K,codes:new k(K,"nCodes")},1:{nRanges:K,ranges:new k(nf,"nRanges")}}),m4=new rf([Kc,Z1],new Ut(p4,{lazy:!0}));class of extends k{decode(e,s){let a=Jt(this.length,e,s),i=0,r=[];for(;i<a;){let n=this.type.decode(e,s);n.offset=i,i+=n.nLeft+1,r.push(n)}return r}}let y4=new ve(K,{0:{glyphs:new k(u,t=>t.parent.CharStrings.length-1)},1:{ranges:new of(nf,t=>t.parent.CharStrings.length-1)},2:{ranges:new of(g4,t=>t.parent.CharStrings.length-1)}}),b4=new rf([Xc,G1,W1],new Ut(y4,{lazy:!0})),w4=new T({first:u,fd:K}),v4=new T({first:S,fd:u}),lf=new ve(K,{0:{fds:new k(K,t=>t.parent.CharStrings.length)},3:{nRanges:u,ranges:new k(w4,"nRanges"),sentinel:u},4:{nRanges:S,ranges:new k(v4,"nRanges"),sentinel:S}}),Hn=new Ut(Yn);class cf{decode(e,s,a){return s.length=a[0],Hn.decode(e,s,[a[1]])}size(e,s){return[Yn.size(e,s,!1),Hn.size(e,s)[0]]}encode(e,s,a){return[Yn.size(s,a,!1),Hn.encode(e,s,a)[0]]}}let ff=new $i([[18,"Private",new cf,null],[[12,38],"FontName","sid",null],[[12,7],"FontMatrix","array",[.001,0,0,.001,0,0]],[[12,5],"PaintType","number",0]]),x4=new $i([[[12,30],"ROS",["sid","sid","number"],null],[0,"version","sid",null],[1,"Notice","sid",null],[[12,0],"Copyright","sid",null],[2,"FullName","sid",null],[3,"FamilyName","sid",null],[4,"Weight","sid",null],[[12,1],"isFixedPitch","boolean",!1],[[12,2],"ItalicAngle","number",0],[[12,3],"UnderlinePosition","number",-100],[[12,4],"UnderlineThickness","number",50],[[12,5],"PaintType","number",0],[[12,6],"CharstringType","number",2],[[12,7],"FontMatrix","array",[.001,0,0,.001,0,0]],[13,"UniqueID","number",null],[5,"FontBBox","array",[0,0,0,0]],[[12,8],"StrokeWidth","number",0],[14,"XUID","array",null],[15,"charset",b4,Xc],[16,"Encoding",m4,Kc],[17,"CharStrings",new Ut(new ss),null],[18,"Private",new cf,null],[[12,20],"SyntheticBase","number",null],[[12,21],"PostScript","sid",null],[[12,22],"BaseFontName","sid",null],[[12,23],"BaseFontBlend","delta",null],[[12,31],"CIDFontVersion","number",0],[[12,32],"CIDFontRevision","number",0],[[12,33],"CIDFontType","number",0],[[12,34],"CIDCount","number",8720],[[12,35],"UIDBase","number",null],[[12,37],"FDSelect",new Ut(lf),null],[[12,36],"FDArray",new Ut(new ss(ff)),null],[[12,38],"FontName","sid",null]]),C4=new T({length:u,itemVariationStore:sr}),k4=new $i([[[12,7],"FontMatrix","array",[.001,0,0,.001,0,0]],[17,"CharStrings",new Ut(new ss),null],[[12,37],"FDSelect",new Ut(lf),null],[[12,36],"FDArray",new Ut(new ss(ff)),null],[24,"vstore",new Ut(C4),null],[25,"maxstack","number",193]]);var uf=new ve(dw,{1:{hdrSize:K,offSize:K,nameIndex:new ss(new Re("length")),topDictIndex:new ss(x4),stringIndex:new ss(new Re("length")),globalSubrIndex:new ss},2:{hdrSize:K,length:u,topDict:k4,globalSubrIndex:new ss}});class jn{static decode(e){return new jn(e)}decode(){this.stream.pos;let e=uf.decode(this.stream);for(let s in e){let a=e[s];this[s]=a}if(this.version<2){if(this.topDictIndex.length!==1)throw new Error("Only a single font is allowed in CFF");this.topDict=this.topDictIndex[0]}return this.isCIDFont=this.topDict.ROS!=null,this}string(e){return this.version>=2?null:e<er.length?er[e]:this.stringIndex[e-er.length]}get postscriptName(){return this.version<2?this.nameIndex[0]:null}get fullName(){return this.string(this.topDict.FullName)}get familyName(){return this.string(this.topDict.FamilyName)}getCharString(e){return this.stream.pos=this.topDict.CharStrings[e].offset,this.stream.readBuffer(this.topDict.CharStrings[e].length)}getGlyphName(e){if(this.version>=2||this.isCIDFont)return null;let{charset:s}=this.topDict;if(Array.isArray(s))return s[e];if(e===0)return".notdef";switch(e-=1,s.version){case 0:return this.string(s.glyphs[e]);case 1:case 2:for(let a=0;a<s.ranges.length;a++){let i=s.ranges[a];if(i.offset<=e&&e<=i.offset+i.nLeft)return this.string(i.first+(e-i.offset))}break}return null}fdForGlyph(e){if(!this.topDict.FDSelect)return null;switch(this.topDict.FDSelect.version){case 0:return this.topDict.FDSelect.fds[e];case 3:case 4:let{ranges:s}=this.topDict.FDSelect,a=0,i=s.length-1;for(;a<=i;){let r=a+i>>1;if(e<s[r].first)i=r-1;else if(r<i&&e>=s[r+1].first)a=r+1;else return s[r].fd}default:throw new Error(`Unknown FDSelect version: ${this.topDict.FDSelect.version}`)}}privateDictForGlyph(e){if(this.topDict.FDSelect){let s=this.fdForGlyph(e);return this.topDict.FDArray[s]?this.topDict.FDArray[s].Private:null}return this.version<2?this.topDict.Private:this.topDict.FDArray[0].Private}constructor(e){this.stream=e,this.decode()}}var hf=jn;let N4=new T({glyphIndex:u,vertOriginY:U});var A4=new T({majorVersion:u,minorVersion:u,defaultVertOriginY:U,numVertOriginYMetrics:u,metrics:new k(N4,"numVertOriginYMetrics")});let pa=new T({height:K,width:K,horiBearingX:lt,horiBearingY:lt,horiAdvance:K,vertBearingX:lt,vertBearingY:lt,vertAdvance:K}),ar=new T({height:K,width:K,bearingX:lt,bearingY:lt,advance:K}),df=new T({glyph:u,xOffset:lt,yOffset:lt});class gf{}class Kn{}new ve("version",{1:{metrics:ar,data:gf},2:{metrics:ar,data:Kn},5:{data:Kn},6:{metrics:pa,data:gf},7:{metrics:pa,data:Kn},8:{metrics:ar,pad:new je(K),numComponents:u,components:new k(df,"numComponents")},9:{metrics:pa,pad:new je(K),numComponents:u,components:new k(df,"numComponents")},17:{metrics:ar,dataLen:S,data:new Qt("dataLen")},18:{metrics:pa,dataLen:S,data:new Qt("dataLen")},19:{dataLen:S,data:new Qt("dataLen")}});let pf=new T({ascender:lt,descender:lt,widthMax:K,caretSlopeNumerator:lt,caretSlopeDenominator:lt,caretOffset:lt,minOriginSB:lt,minAdvanceSB:lt,maxBeforeBL:lt,minAfterBL:lt,pad:new je(lt,2)}),S4=new T({glyphCode:u,offset:u}),V4=new ve(u,{header:{imageFormat:u,imageDataOffset:S},1:{offsetArray:new k(S,t=>t.parent.lastGlyphIndex-t.parent.firstGlyphIndex+1)},2:{imageSize:S,bigMetrics:pa},3:{offsetArray:new k(u,t=>t.parent.lastGlyphIndex-t.parent.firstGlyphIndex+1)},4:{numGlyphs:S,glyphArray:new k(S4,t=>t.numGlyphs+1)},5:{imageSize:S,bigMetrics:pa,numGlyphs:S,glyphCodeArray:new k(u,"numGlyphs")}}),I4=new T({firstGlyphIndex:u,lastGlyphIndex:u,subtable:new A(S,V4)}),_4=new T({indexSubTableArray:new A(S,new k(I4,1),{type:"parent"}),indexTablesSize:S,numberOfIndexSubTables:S,colorRef:S,hori:pf,vert:pf,startGlyphIndex:u,endGlyphIndex:u,ppemX:K,ppemY:K,bitDepth:K,flags:new Bt(K,["horizontal","vertical"])});var F4=new T({version:S,numSizes:S,sizes:new k(_4,"numSizes")});let T4=new T({ppem:u,resolution:u,imageOffsets:new k(new A(S,"void"),t=>t.parent.parent.maxp.numGlyphs+1)});var P4=new T({version:u,flags:new Bt(u,["renderOutlines"]),numImgTables:S,imageTables:new k(new A(S,T4),"numImgTables")});let E4=new T({gid:u,paletteIndex:u}),O4=new T({gid:u,firstLayerIndex:u,numLayers:u});var M4=new T({version:u,numBaseGlyphRecords:u,baseGlyphRecord:new A(S,new k(O4,"numBaseGlyphRecords")),layerRecords:new A(S,new k(E4,"numLayerRecords"),{lazy:!0}),numLayerRecords:u});let R4=new T({blue:K,green:K,red:K,alpha:K});var z4=new ve(u,{header:{numPaletteEntries:u,numPalettes:u,numColorRecords:u,colorRecords:new A(S,new k(R4,"numColorRecords")),colorRecordIndices:new k(u,"numPalettes")},0:{},1:{offsetPaletteTypeArray:new A(S,new k(S,"numPalettes")),offsetPaletteLabelArray:new A(S,new k(u,"numPalettes")),offsetPaletteEntryLabelArray:new A(S,new k(u,"numPaletteEntries"))}});let Xa=new ve(u,{1:{coordinate:U},2:{coordinate:U,referenceGlyph:u,baseCoordPoint:u},3:{coordinate:U,deviceTable:new A(u,Vs)}}),L4=new T({defaultIndex:u,baseCoordCount:u,baseCoords:new k(new A(u,Xa),"baseCoordCount")}),D4=new T({tag:new Re(4),minCoord:new A(u,Xa,{type:"parent"}),maxCoord:new A(u,Xa,{type:"parent"})}),mf=new T({minCoord:new A(u,Xa),maxCoord:new A(u,Xa),featMinMaxCount:u,featMinMaxRecords:new k(D4,"featMinMaxCount")}),B4=new T({tag:new Re(4),minMax:new A(u,mf,{type:"parent"})}),U4=new T({baseValues:new A(u,L4),defaultMinMax:new A(u,mf),baseLangSysCount:u,baseLangSysRecords:new k(B4,"baseLangSysCount")}),Z4=new T({tag:new Re(4),script:new A(u,U4,{type:"parent"})}),G4=new k(Z4,u),W4=new k(new Re(4),u),yf=new T({baseTagList:new A(u,W4),baseScriptList:new A(u,G4)});var Y4=new ve(S,{header:{horizAxis:new A(u,yf),vertAxis:new A(u,yf)},65536:{},65537:{itemVariationStore:new A(S,sr)}});let H4=new k(u,u),j4=new T({coverage:new A(u,ze),glyphCount:u,attachPoints:new k(new A(u,H4),"glyphCount")}),K4=new ve(u,{1:{coordinate:U},2:{caretValuePoint:u},3:{coordinate:U,deviceTable:new A(u,Vs)}}),X4=new k(new A(u,K4),u),q4=new T({coverage:new A(u,ze),ligGlyphCount:u,ligGlyphs:new k(new A(u,X4),"ligGlyphCount")}),bf=new T({markSetTableFormat:u,markSetCount:u,coverage:new k(new A(S,ze),"markSetCount")});var J4=new ve(S,{header:{glyphClassDef:new A(u,Ss),attachList:new A(u,j4),ligCaretList:new A(u,q4),markAttachClassDef:new A(u,Ss)},65536:{},65538:{markGlyphSetsDef:new A(u,bf)},65539:{markGlyphSetsDef:new A(u,bf),itemVariationStore:new A(S,sr)}});let ma=new Bt(u,["xPlacement","yPlacement","xAdvance","yAdvance","xPlaDevice","yPlaDevice","xAdvDevice","yAdvDevice"]),Q4={xPlacement:U,yPlacement:U,xAdvance:U,yAdvance:U,xPlaDevice:new A(u,Vs,{type:"global",relativeTo:t=>t.rel}),yPlaDevice:new A(u,Vs,{type:"global",relativeTo:t=>t.rel}),xAdvDevice:new A(u,Vs,{type:"global",relativeTo:t=>t.rel}),yAdvDevice:new A(u,Vs,{type:"global",relativeTo:t=>t.rel})};class ya{buildStruct(e){let s=e;for(;!s[this.key]&&s.parent;)s=s.parent;if(!s[this.key])return;let a={};a.rel=()=>s._startOffset;let i=s[this.key];for(let r in i)i[r]&&(a[r]=Q4[r]);return new T(a)}size(e,s){return this.buildStruct(s).size(e,s)}decode(e,s){let a=this.buildStruct(s).decode(e,s);return delete a.rel,a}constructor(e="valueFormat"){this.key=e}}let $4=new T({secondGlyph:u,value1:new ya("valueFormat1"),value2:new ya("valueFormat2")}),e2=new k($4,u),t2=new T({value1:new ya("valueFormat1"),value2:new ya("valueFormat2")}),qa=new ve(u,{1:{xCoordinate:U,yCoordinate:U},2:{xCoordinate:U,yCoordinate:U,anchorPoint:u},3:{xCoordinate:U,yCoordinate:U,xDeviceTable:new A(u,Vs),yDeviceTable:new A(u,Vs)}}),s2=new T({entryAnchor:new A(u,qa,{type:"parent"}),exitAnchor:new A(u,qa,{type:"parent"})}),a2=new T({class:u,markAnchor:new A(u,qa,{type:"parent"})}),Xn=new k(a2,u),i2=new k(new A(u,qa),t=>t.parent.classCount),wf=new k(i2,u),r2=new k(new A(u,qa),t=>t.parent.parent.classCount),n2=new k(r2,u),o2=new k(new A(u,n2),u),Ja=new ve("lookupType",{1:new ve(u,{1:{coverage:new A(u,ze),valueFormat:ma,value:new ya},2:{coverage:new A(u,ze),valueFormat:ma,valueCount:u,values:new Be(new ya,"valueCount")}}),2:new ve(u,{1:{coverage:new A(u,ze),valueFormat1:ma,valueFormat2:ma,pairSetCount:u,pairSets:new Be(new A(u,e2),"pairSetCount")},2:{coverage:new A(u,ze),valueFormat1:ma,valueFormat2:ma,classDef1:new A(u,Ss),classDef2:new A(u,Ss),class1Count:u,class2Count:u,classRecords:new Be(new Be(t2,"class2Count"),"class1Count")}}),3:{format:u,coverage:new A(u,ze),entryExitCount:u,entryExitRecords:new k(s2,"entryExitCount")},4:{format:u,markCoverage:new A(u,ze),baseCoverage:new A(u,ze),classCount:u,markArray:new A(u,Xn),baseArray:new A(u,wf)},5:{format:u,markCoverage:new A(u,ze),ligatureCoverage:new A(u,ze),classCount:u,markArray:new A(u,Xn),ligatureArray:new A(u,o2)},6:{format:u,mark1Coverage:new A(u,ze),mark2Coverage:new A(u,ze),classCount:u,mark1Array:new A(u,Xn),mark2Array:new A(u,wf)},7:ef,8:sf,9:{posFormat:u,lookupType:u,extension:new A(S,null)}});Ja.versions[9].extension.type=Ja;var l2=new ve(S,{header:{scriptList:new A(u,Jc),featureList:new A(u,$c),lookupList:new A(u,new tr(Ja))},65536:{},65537:{featureVariations:new A(S,af)}});let vf=new k(u,u),c2=vf,f2=new T({glyph:u,compCount:u,components:new k(u,t=>t.compCount-1)}),u2=new k(new A(u,f2),u),qn=new ve("lookupType",{1:new ve(u,{1:{coverage:new A(u,ze),deltaGlyphID:U},2:{coverage:new A(u,ze),glyphCount:u,substitute:new Be(u,"glyphCount")}}),2:{substFormat:u,coverage:new A(u,ze),count:u,sequences:new Be(new A(u,vf),"count")},3:{substFormat:u,coverage:new A(u,ze),count:u,alternateSet:new Be(new A(u,c2),"count")},4:{substFormat:u,coverage:new A(u,ze),count:u,ligatureSets:new Be(new A(u,u2),"count")},5:ef,6:sf,7:{substFormat:u,lookupType:u,extension:new A(S,null)},8:{substFormat:u,coverage:new A(u,ze),backtrackCoverage:new k(new A(u,ze),"backtrackGlyphCount"),lookaheadGlyphCount:u,lookaheadCoverage:new k(new A(u,ze),"lookaheadGlyphCount"),glyphCount:u,substitutes:new k(u,"glyphCount")}});qn.versions[7].extension.type=qn;var h2=new ve(S,{header:{scriptList:new A(u,Jc),featureList:new A(u,$c),lookupList:new A(u,new tr(qn))},65536:{},65537:{featureVariations:new A(S,af)}});let Is=new k(u,u),d2=new T({shrinkageEnableGSUB:new A(u,Is),shrinkageDisableGSUB:new A(u,Is),shrinkageEnableGPOS:new A(u,Is),shrinkageDisableGPOS:new A(u,Is),shrinkageJstfMax:new A(u,new tr(Ja)),extensionEnableGSUB:new A(u,Is),extensionDisableGSUB:new A(u,Is),extensionEnableGPOS:new A(u,Is),extensionDisableGPOS:new A(u,Is),extensionJstfMax:new A(u,new tr(Ja))}),xf=new k(new A(u,d2),u),g2=new T({tag:new Re(4),jstfLangSys:new A(u,xf)}),p2=new T({extenderGlyphs:new A(u,new k(u,u)),defaultLangSys:new A(u,xf),langSysCount:u,langSysRecords:new k(g2,"langSysCount")}),m2=new T({tag:new Re(4),script:new A(u,p2,{type:"parent"})});var y2=new T({version:S,scriptCount:u,scriptList:new k(m2,"scriptCount")});class b2{decode(e,s){switch(this.size(0,s)){case 1:return e.readUInt8();case 2:return e.readUInt16BE();case 3:return e.readUInt24BE();case 4:return e.readUInt32BE()}}size(e,s){return Jt(this._size,null,s)}constructor(e){this._size=e}}let w2=new T({entry:new b2(t=>((t.parent.entryFormat&48)>>4)+1),outerIndex:t=>t.entry>>(t.parent.entryFormat&15)+1,innerIndex:t=>t.entry&(1<<(t.parent.entryFormat&15)+1)-1}),Jn=new T({entryFormat:u,mapCount:u,mapData:new k(w2,"mapCount")});var v2=new T({majorVersion:u,minorVersion:u,itemVariationStore:new A(S,sr),advanceWidthMapping:new A(S,Jn),LSBMapping:new A(S,Jn),RSBMapping:new A(S,Jn)});let x2=new T({format:S,length:S,offset:S}),C2=new T({reserved:new je(u,2),cbSignature:S,signature:new Qt("cbSignature")});var k2=new T({ulVersion:S,usNumSigs:u,usFlag:u,signatures:new k(x2,"usNumSigs"),signatureBlocks:new k(C2,"usNumSigs")});let N2=new T({rangeMaxPPEM:u,rangeGaspBehavior:new Bt(u,["grayscale","gridfit","symmetricSmoothing","symmetricGridfit"])});var A2=new T({version:u,numRanges:u,gaspRanges:new k(N2,"numRanges")});let S2=new T({pixelSize:K,maximumWidth:K,widths:new k(K,t=>t.parent.parent.maxp.numGlyphs)});var V2=new T({version:u,numRecords:U,sizeDeviceRecord:Bs,records:new k(S2,"numRecords")});let I2=new T({left:u,right:u,value:U}),Cf=new T({firstGlyph:u,nGlyphs:u,offsets:new k(u,"nGlyphs"),max:t=>t.offsets.length&&Math.max.apply(Math,t.offsets)}),_2=new T({off:t=>t._startOffset-t.parent.parent._startOffset,len:t=>((t.parent.leftTable.max-t.off)/t.parent.rowWidth+1)*(t.parent.rowWidth/2),values:new Be(U,"len")}),kf=new ve("format",{0:{nPairs:u,searchRange:u,entrySelector:u,rangeShift:u,pairs:new k(I2,"nPairs")},2:{rowWidth:u,leftTable:new A(u,Cf,{type:"parent"}),rightTable:new A(u,Cf,{type:"parent"}),array:new A(u,_2,{type:"parent"})},3:{glyphCount:u,kernValueCount:K,leftClassCount:K,rightClassCount:K,flags:K,kernValue:new k(U,"kernValueCount"),leftClass:new k(K,"glyphCount"),rightClass:new k(K,"glyphCount"),kernIndex:new k(K,t=>t.leftClassCount*t.rightClassCount)}}),Nf=new ve("version",{0:{subVersion:u,length:u,format:K,coverage:new Bt(K,["horizontal","minimum","crossStream","override"]),subtable:kf,padding:new je(K,t=>t.length-t._currentOffset)},1:{length:S,coverage:new Bt(K,[null,null,null,null,null,"variation","crossStream","vertical"]),format:K,tupleIndex:u,subtable:kf,padding:new je(K,t=>t.length-t._currentOffset)}});var F2=new ve(u,{0:{nTables:u,tables:new k(Nf,"nTables")},1:{reserved:new je(u),nTables:S,tables:new k(Nf,"nTables")}}),T2=new T({version:u,numGlyphs:u,yPels:new k(K,"numGlyphs")}),P2=new T({version:u,fontNumber:S,pitch:u,xHeight:u,style:u,typeFamily:u,capHeight:u,symbolSet:u,typeface:new Re(16),characterComplement:new Re(8),fileName:new Re(6),strokeWeight:new Re(1),widthType:new Re(1),serifStyle:K,reserved:new je(K)});let E2=new T({bCharSet:K,xRatio:K,yStartRatio:K,yEndRatio:K}),O2=new T({yPelHeight:u,yMax:U,yMin:U}),M2=new T({recs:u,startsz:K,endsz:K,entries:new k(O2,"recs")});var R2=new T({version:u,numRecs:u,numRatios:u,ratioRanges:new k(E2,"numRatios"),offsets:new k(u,"numRatios"),groups:new k(M2,"numRecs")}),z2=new T({version:u,ascent:U,descent:U,lineGap:U,advanceHeightMax:U,minTopSideBearing:U,minBottomSideBearing:U,yMaxExtent:U,caretSlopeRise:U,caretSlopeRun:U,caretOffset:U,reserved:new je(U,4),metricDataFormat:U,numberOfMetrics:u});let L2=new T({advance:u,bearing:U});var D2=new T({metrics:new Be(L2,t=>t.parent.vhea.numberOfMetrics),bearings:new Be(U,t=>t.parent.maxp.numGlyphs-t.parent.vhea.numberOfMetrics)});let Af=new Us(16,"BE",14),B2=new T({fromCoord:Af,toCoord:Af}),U2=new T({pairCount:u,correspondence:new k(B2,"pairCount")});var Z2=new T({version:st,axisCount:S,segment:new k(U2,"axisCount")});class G2{getItem(e){if(this._items[e]==null){let s=this.stream.pos;this.stream.pos=this.base+this.type.size(null,this.parent)*e,this._items[e]=this.type.decode(this.stream,this.parent),this.stream.pos=s}return this._items[e]}inspect(){return`[UnboundedArray ${this.type.constructor.name}]`}constructor(e,s,a){this.type=e,this.stream=s,this.parent=a,this.base=this.stream.pos,this._items=[]}}class as extends k{decode(e,s){return new G2(this.type,e,s)}constructor(e){super(e,0)}}let _s=function(t=u){class e{decode(o,l){return l=l.parent.parent,this.type.decode(o,l)}size(o,l){return l=l.parent.parent,this.type.size(o,l)}encode(o,l,c){return c=c.parent.parent,this.type.encode(o,l,c)}constructor(o){this.type=o}}t=new e(t);let s=new T({unitSize:u,nUnits:u,searchRange:u,entrySelector:u,rangeShift:u}),a=new T({lastGlyph:u,firstGlyph:u,value:t}),i=new T({lastGlyph:u,firstGlyph:u,values:new A(u,new k(t,n=>n.lastGlyph-n.firstGlyph+1),{type:"parent"})}),r=new T({glyph:u,value:t});return new ve(u,{0:{values:new as(t)},2:{binarySearchHeader:s,segments:new k(a,n=>n.binarySearchHeader.nUnits)},4:{binarySearchHeader:s,segments:new k(i,n=>n.binarySearchHeader.nUnits)},6:{binarySearchHeader:s,segments:new k(r,n=>n.binarySearchHeader.nUnits)},8:{firstGlyph:u,count:u,values:new k(t,"count")}})};function ir(t={},e=u){let s=Object.assign({newState:u,flags:u},t),a=new T(s),i=new as(new k(u,n=>n.nClasses));return new T({nClasses:S,classTable:new A(S,new _s(e)),stateArray:new A(S,i),entryTable:new A(S,new as(a))})}function W2(t={},e=u){let s=new T({version(){return 8},firstGlyph:u,values:new k(K,u)}),a=Object.assign({newStateOffset:u,newState:o=>(o.newStateOffset-(o.parent.stateArray.base-o.parent._startOffset))/o.parent.nClasses,flags:u},t),i=new T(a),r=new as(new k(K,o=>o.nClasses));return new T({nClasses:u,classTable:new A(u,s),stateArray:new A(u,r),entryTable:new A(u,new as(i))})}let Y2=new ve("format",{0:{deltas:new k(U,32)},1:{deltas:new k(U,32),mappingData:new _s(u)},2:{standardGlyph:u,controlPoints:new k(u,32)},3:{standardGlyph:u,controlPoints:new k(u,32),mappingData:new _s(u)}});var H2=new T({version:st,format:u,defaultBaseline:u,subtable:Y2});let j2=new T({setting:u,nameIndex:U,name:t=>t.parent.parent.parent.name.records.fontFeatures[t.nameIndex]}),K2=new T({feature:u,nSettings:u,settingTable:new A(S,new k(j2,"nSettings"),{type:"parent"}),featureFlags:new Bt(K,[null,null,null,null,null,null,"hasDefault","exclusive"]),defaultSetting:K,nameIndex:U,name:t=>t.parent.parent.name.records.fontFeatures[t.nameIndex]});var X2=new T({version:st,featureNameCount:u,reserved1:new je(u),reserved2:new je(S),featureNames:new k(K2,"featureNameCount")});let q2=new T({axisTag:new Re(4),minValue:st,defaultValue:st,maxValue:st,flags:u,nameID:u,name:t=>t.parent.parent.name.records.fontFeatures[t.nameID]}),J2=new T({nameID:u,name:t=>t.parent.parent.name.records.fontFeatures[t.nameID],flags:u,coord:new k(st,t=>t.parent.axisCount),postscriptNameID:new Gi(u,t=>t.parent.instanceSize-t._currentOffset>0)});var Q2=new T({version:st,offsetToData:u,countSizePairs:u,axisCount:u,axisSize:u,instanceCount:u,instanceSize:u,axis:new k(q2,"axisCount"),instance:new k(J2,"instanceCount")});let $2=new Us(16,"BE",14);class ev{static decode(e,s){return s.flags?e.readUInt32BE():e.readUInt16BE()*2}}var tv=new T({version:u,reserved:new je(u),axisCount:u,globalCoordCount:u,globalCoords:new A(S,new k(new k($2,"axisCount"),"globalCoordCount")),glyphCount:u,flags:u,offsetToData:S,offsets:new k(new A(ev,"void",{relativeTo:t=>t.offsetToData,allowNull:!1}),t=>t.glyphCount+1)});let sv=new T({length:u,coverage:u,subFeatureFlags:S,stateTable:new W2}),av=new T({justClass:S,beforeGrowLimit:st,beforeShrinkLimit:st,afterGrowLimit:st,afterShrinkLimit:st,growFlags:u,shrinkFlags:u}),iv=new k(av,S),rv=new ve("actionType",{0:{lowerLimit:st,upperLimit:st,order:u,glyphs:new k(u,u)},1:{addGlyph:u},2:{substThreshold:st,addGlyph:u,substGlyph:u},3:{},4:{variationAxis:S,minimumLimit:st,noStretchValue:st,maximumLimit:st},5:{flags:u,glyph:u}}),nv=new T({actionClass:u,actionType:u,actionLength:S,actionData:rv,padding:new je(K,t=>t.actionLength-t._currentOffset)}),ov=new k(nv,S),lv=new T({lookupTable:new _s(new A(u,ov))}),Sf=new T({classTable:new A(u,sv,{type:"parent"}),wdcOffset:u,postCompensationTable:new A(u,lv,{type:"parent"}),widthDeltaClusters:new _s(new A(u,iv,{type:"parent",relativeTo:t=>t.wdcOffset}))});var cv=new T({version:S,format:u,horizontal:new A(u,Sf),vertical:new A(u,Sf)});let fv={action:u},uv={markIndex:u,currentIndex:u},hv={currentInsertIndex:u,markedInsertIndex:u},dv=new T({items:new as(new A(S,new _s))}),gv=new ve("type",{0:{stateTable:new ir},1:{stateTable:new ir(uv),substitutionTable:new A(S,dv)},2:{stateTable:new ir(fv),ligatureActions:new A(S,new as(S)),components:new A(S,new as(u)),ligatureList:new A(S,new as(u))},4:{lookupTable:new _s},5:{stateTable:new ir(hv),insertionActions:new A(S,new as(u))}}),pv=new T({length:S,coverage:ks,type:K,subFeatureFlags:S,table:gv,padding:new je(K,t=>t.length-t._currentOffset)}),mv=new T({featureType:u,featureSetting:u,enableFlags:S,disableFlags:S}),yv=new T({defaultFlags:S,chainLength:S,nFeatureEntries:S,nSubtables:S,features:new k(mv,"nFeatureEntries"),subtables:new k(pv,"nSubtables")});var bv=new T({version:u,unused:new je(u),nChains:S,chains:new k(yv,"nChains")});let wv=new T({left:U,top:U,right:U,bottom:U});var vv=new T({version:st,format:u,lookupTable:new _s(wv)});let de={};var rr=de;de.cmap=x1,de.head=C1,de.hhea=k1,de.hmtx=A1,de.maxp=S1,de.name=E1,de["OS/2"]=O1,de.post=M1,de.fpgm=z1,de.loca=L1,de.prep=D1,de["cvt "]=R1,de.glyf=B1,de["CFF "]=hf,de.CFF2=hf,de.VORG=A4,de.EBLC=F4,de.CBLC=de.EBLC,de.sbix=P4,de.COLR=M4,de.CPAL=z4,de.BASE=Y4,de.GDEF=J4,de.GPOS=l2,de.GSUB=h2,de.JSTF=y2,de.HVAR=v2,de.DSIG=k2,de.gasp=A2,de.hdmx=V2,de.kern=F2,de.LTSH=T2,de.PCLT=P2,de.VDMX=R2,de.vhea=z2,de.vmtx=D2,de.avar=Z2,de.bsln=H2,de.feat=X2,de.fvar=Q2,de.gvar=tv,de.just=cv,de.morx=bv,de.opbd=vv;let xv=new T({tag:new Re(4),checkSum:S,offset:new A(S,"void",{type:"global"}),length:S}),Qn=new T({tag:new Re(4),numTables:u,searchRange:u,entrySelector:u,rangeShift:u,tables:new k(xv,"numTables")});Qn.process=function(){let t={};for(let e of this.tables)t[e.tag]=e;this.tables=t},Qn.preEncode=function(){if(!Array.isArray(this.tables)){let s=[];for(let a in this.tables){let i=this.tables[a];i&&s.push({tag:a,checkSum:0,offset:new wn(rr[a],i),length:rr[a].size(i)})}this.tables=s}this.tag="true",this.numTables=this.tables.length;let t=Math.floor(Math.log(this.numTables)/Math.LN2),e=Math.pow(2,t);this.searchRange=e*16,this.entrySelector=Math.log(e)/Math.LN2,this.rangeShift=this.numTables*16-this.searchRange};var Vf=Qn;function nr(t,e){let s=0,a=t.length-1;for(;s<=a;){let i=s+a>>1,r=e(t[i]);if(r<0)a=i-1;else if(r>0)s=i+1;else return i}return-1}function ba(t,e){let s=[];for(;t<e;)s.push(t++);return s}const or=new TextDecoder("ascii"),If="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Qa=new Uint8Array(256);for(let t=0;t<If.length;t++)Qa[If.charCodeAt(t)]=t;function $n(t){let e=t.length*.75;t[t.length-1]==="="&&(e--,t[t.length-2]==="="&&e--);let s=new Uint8Array(e),a=0;for(let i=0,r=t.length;i<r;i+=4){let n=Qa[t.charCodeAt(i)],o=Qa[t.charCodeAt(i+1)],l=Qa[t.charCodeAt(i+2)],c=Qa[t.charCodeAt(i+3)];s[a++]=n<<2|o>>4,s[a++]=(o&15)<<4|l>>2,s[a++]=(l&3)<<6|c&63}return s}class eo{findSubtable(e,s){for(let[a,i]of s)for(let r of e.tables)if(r.platformID===a&&r.encodingID===i)return r.table;return null}lookup(e,s){if(this.encoding)e=this.encoding.get(e)||e;else if(s){let i=this.getVariationSelector(e,s);if(i)return i}let a=this.cmap;switch(a.version){case 0:return a.codeMap.get(e)||0;case 4:{let i=0,r=a.segCount-1;for(;i<=r;){let n=i+r>>1;if(e<a.startCode.get(n))r=n-1;else if(e>a.endCode.get(n))i=n+1;else{let o=a.idRangeOffset.get(n),l;if(o===0)l=e+a.idDelta.get(n);else{let c=o/2+(e-a.startCode.get(n))-(a.segCount-n);l=a.glyphIndexArray.get(c)||0,l!==0&&(l+=a.idDelta.get(n))}return l&65535}}return 0}case 8:throw new Error("TODO: cmap format 8");case 6:case 10:return a.glyphIndices.get(e-a.firstCode)||0;case 12:case 13:{let i=0,r=a.nGroups-1;for(;i<=r;){let n=i+r>>1,o=a.groups.get(n);if(e<o.startCharCode)r=n-1;else if(e>o.endCharCode)i=n+1;else return a.version===12?o.glyphID+(e-o.startCharCode):o.glyphID}return 0}case 14:throw new Error("TODO: cmap format 14");default:throw new Error(`Unknown cmap format ${a.version}`)}}getVariationSelector(e,s){if(!this.uvs)return 0;let a=this.uvs.varSelectors.toArray(),i=nr(a,n=>s-n.varSelector),r=a[i];return i!==-1&&r.defaultUVS&&(i=nr(r.defaultUVS,n=>e<n.startUnicodeValue?-1:e>n.startUnicodeValue+n.additionalCount?1:0)),i!==-1&&r.nonDefaultUVS&&(i=nr(r.nonDefaultUVS,n=>e-n.unicodeValue),i!==-1)?r.nonDefaultUVS[i].glyphID:0}getCharacterSet(){let e=this.cmap;switch(e.version){case 0:return ba(0,e.codeMap.length);case 4:{let s=[],a=e.endCode.toArray();for(let i=0;i<a.length;i++){let r=a[i]+1,n=e.startCode.get(i);s.push(...ba(n,r))}return s}case 8:throw new Error("TODO: cmap format 8");case 6:case 10:return ba(e.firstCode,e.firstCode+e.glyphIndices.length);case 12:case 13:{let s=[];for(let a of e.groups.toArray())s.push(...ba(a.startCharCode,a.endCharCode+1));return s}case 14:throw new Error("TODO: cmap format 14");default:throw new Error(`Unknown cmap format ${e.version}`)}}codePointsForGlyph(e){let s=this.cmap;switch(s.version){case 0:{let i=[];for(let r=0;r<256;r++)s.codeMap.get(r)===e&&i.push(r);return i}case 4:{let i=[];for(let r=0;r<s.segCount;r++){let n=s.endCode.get(r),o=s.startCode.get(r),l=s.idRangeOffset.get(r),c=s.idDelta.get(r);for(var a=o;a<=n;a++){let f=0;if(l===0)f=a+c;else{let h=l/2+(a-o)-(s.segCount-r);f=s.glyphIndexArray.get(h)||0,f!==0&&(f+=c)}f===e&&i.push(a)}}return i}case 12:{let i=[];for(let r of s.groups.toArray())e>=r.glyphID&&e<=r.glyphID+(r.endCharCode-r.startCharCode)&&i.push(r.startCharCode+(e-r.glyphID));return i}case 13:{let i=[];for(let r of s.groups.toArray())e===r.glyphID&&i.push(...ba(r.startCharCode,r.endCharCode+1));return i}default:throw new Error(`Unknown cmap format ${s.version}`)}}constructor(e){if(this.encoding=null,this.cmap=this.findSubtable(e,[[3,10],[0,6],[0,4],[3,1],[0,3],[0,2],[0,1],[0,0]]),!this.cmap)for(let s of e.tables){let a=Uc(s.platformID,s.encodingID,s.table.language-1),i=_1(a);i&&(this.cmap=s.table,this.encoding=i)}if(!this.cmap)throw new Error("Could not find a supported cmap table");this.uvs=this.findSubtable(e,[[0,5]]),this.uvs&&this.uvs.version!==14&&(this.uvs=null)}}mt([yt],eo.prototype,"getCharacterSet",null),mt([yt],eo.prototype,"codePointsForGlyph",null);class Cv{process(e,s){for(let a=0;a<e.length-1;a++){let i=e[a].id,r=e[a+1].id;s[a].xAdvance+=this.getKerning(i,r)}}getKerning(e,s){let a=0;for(let i of this.kern.tables){if(i.coverage.crossStream)continue;switch(i.version){case 0:if(!i.coverage.horizontal)continue;break;case 1:if(i.coverage.vertical||i.coverage.variation)continue;break;default:throw new Error(`Unsupported kerning table version ${i.version}`)}let r=0,n=i.subtable;switch(i.format){case 0:let o=nr(n.pairs,function(h){return e-h.left||s-h.right});o>=0&&(r=n.pairs[o].value);break;case 2:let l=0,c=0;e>=n.leftTable.firstGlyph&&e<n.leftTable.firstGlyph+n.leftTable.nGlyphs?l=n.leftTable.offsets[e-n.leftTable.firstGlyph]:l=n.array.off,s>=n.rightTable.firstGlyph&&s<n.rightTable.firstGlyph+n.rightTable.nGlyphs&&(c=n.rightTable.offsets[s-n.rightTable.firstGlyph]);let f=(l+c-n.array.off)/2;r=n.array.values.get(f);break;case 3:if(e>=n.glyphCount||s>=n.glyphCount)return 0;r=n.kernValue[n.kernIndex[n.leftClass[e]*n.rightClassCount+n.rightClass[s]]];break;default:throw new Error(`Unsupported kerning sub-table format ${i.format}`)}i.coverage.override?a=r:a+=r}return a}constructor(e){this.kern=e.kern}}class kv{positionGlyphs(e,s){let a=0,i=0;for(let r=0;r<e.length;r++)e[r].isMark?i=r:(a!==i&&this.positionCluster(e,s,a,i),a=i=r);return a!==i&&this.positionCluster(e,s,a,i),s}positionCluster(e,s,a,i){let r=e[a],n=r.cbox.copy();r.codePoints.length>1&&(n.minX+=(r.codePoints.length-1)*n.width/r.codePoints.length);let o=-s[a].xAdvance,l=0,c=this.font.unitsPerEm/16;for(let f=a+1;f<=i;f++){let h=e[f],d=h.cbox,m=s[f],b=this.getCombiningClass(h.codePoints[0]);if(b!=="Not_Reordered"){switch(m.xOffset=m.yOffset=0,b){case"Double_Above":case"Double_Below":m.xOffset+=n.minX-d.width/2-d.minX;break;case"Attached_Below_Left":case"Below_Left":case"Above_Left":m.xOffset+=n.minX-d.minX;break;case"Attached_Above_Right":case"Below_Right":case"Above_Right":m.xOffset+=n.maxX-d.width-d.minX;break;default:m.xOffset+=n.minX+(n.width-d.width)/2-d.minX}switch(b){case"Double_Below":case"Below_Left":case"Below":case"Below_Right":case"Attached_Below_Left":case"Attached_Below":(b==="Attached_Below_Left"||b==="Attached_Below")&&(n.minY+=c),m.yOffset=-n.minY-d.maxY,n.minY+=d.height;break;case"Double_Above":case"Above_Left":case"Above":case"Above_Right":case"Attached_Above":case"Attached_Above_Right":(b==="Attached_Above"||b==="Attached_Above_Right")&&(n.maxY+=c),m.yOffset=n.maxY-d.minY,n.maxY+=d.height;break}m.xAdvance=m.yAdvance=0,m.xOffset+=o,m.yOffset+=l}else o-=m.xAdvance,l-=m.yAdvance}}getCombiningClass(e){let s=Qw(e);if((e&-256)===3584){if(s==="Not_Reordered")switch(e){case 3633:case 3636:case 3637:case 3638:case 3639:case 3655:case 3660:case 3645:case 3662:return"Above_Right";case 3761:case 3764:case 3765:case 3766:case 3767:case 3771:case 3788:case 3789:return"Above";case 3772:return"Below"}else if(e===3642)return"Below_Right"}switch(s){case"CCC10":case"CCC11":case"CCC12":case"CCC13":case"CCC14":case"CCC15":case"CCC16":case"CCC17":case"CCC18":case"CCC20":case"CCC22":return"Below";case"CCC23":return"Attached_Above";case"CCC24":return"Above_Right";case"CCC25":case"CCC19":return"Above_Left";case"CCC26":return"Above";case"CCC21":break;case"CCC27":case"CCC28":case"CCC30":case"CCC31":case"CCC33":case"CCC34":case"CCC35":case"CCC36":return"Above";case"CCC29":case"CCC32":return"Below";case"CCC103":return"Below_Right";case"CCC107":return"Above_Right";case"CCC118":return"Below";case"CCC122":return"Above";case"CCC129":case"CCC132":return"Below";case"CCC130":return"Above"}return s}constructor(e){this.font=e}}class Fs{get width(){return this.maxX-this.minX}get height(){return this.maxY-this.minY}addPoint(e,s){Math.abs(e)!==1/0&&(e<this.minX&&(this.minX=e),e>this.maxX&&(this.maxX=e)),Math.abs(s)!==1/0&&(s<this.minY&&(this.minY=s),s>this.maxY&&(this.maxY=s))}copy(){return new Fs(this.minX,this.minY,this.maxX,this.maxY)}constructor(e=1/0,s=1/0,a=-1/0,i=-1/0){this.minX=e,this.minY=s,this.maxX=a,this.maxY=i}}const wa={Caucasian_Albanian:"aghb",Arabic:"arab",Imperial_Aramaic:"armi",Armenian:"armn",Avestan:"avst",Balinese:"bali",Bamum:"bamu",Bassa_Vah:"bass",Batak:"batk",Bengali:["bng2","beng"],Bopomofo:"bopo",Brahmi:"brah",Braille:"brai",Buginese:"bugi",Buhid:"buhd",Chakma:"cakm",Canadian_Aboriginal:"cans",Carian:"cari",Cham:"cham",Cherokee:"cher",Coptic:"copt",Cypriot:"cprt",Cyrillic:"cyrl",Devanagari:["dev2","deva"],Deseret:"dsrt",Duployan:"dupl",Egyptian_Hieroglyphs:"egyp",Elbasan:"elba",Ethiopic:"ethi",Georgian:"geor",Glagolitic:"glag",Gothic:"goth",Grantha:"gran",Greek:"grek",Gujarati:["gjr2","gujr"],Gurmukhi:["gur2","guru"],Hangul:"hang",Han:"hani",Hanunoo:"hano",Hebrew:"hebr",Hiragana:"hira",Pahawh_Hmong:"hmng",Katakana_Or_Hiragana:"hrkt",Old_Italic:"ital",Javanese:"java",Kayah_Li:"kali",Katakana:"kana",Kharoshthi:"khar",Khmer:"khmr",Khojki:"khoj",Kannada:["knd2","knda"],Kaithi:"kthi",Tai_Tham:"lana",Lao:"lao ",Latin:"latn",Lepcha:"lepc",Limbu:"limb",Linear_A:"lina",Linear_B:"linb",Lisu:"lisu",Lycian:"lyci",Lydian:"lydi",Mahajani:"mahj",Mandaic:"mand",Manichaean:"mani",Mende_Kikakui:"mend",Meroitic_Cursive:"merc",Meroitic_Hieroglyphs:"mero",Malayalam:["mlm2","mlym"],Modi:"modi",Mongolian:"mong",Mro:"mroo",Meetei_Mayek:"mtei",Myanmar:["mym2","mymr"],Old_North_Arabian:"narb",Nabataean:"nbat",Nko:"nko ",Ogham:"ogam",Ol_Chiki:"olck",Old_Turkic:"orkh",Oriya:["ory2","orya"],Osmanya:"osma",Palmyrene:"palm",Pau_Cin_Hau:"pauc",Old_Permic:"perm",Phags_Pa:"phag",Inscriptional_Pahlavi:"phli",Psalter_Pahlavi:"phlp",Phoenician:"phnx",Miao:"plrd",Inscriptional_Parthian:"prti",Rejang:"rjng",Runic:"runr",Samaritan:"samr",Old_South_Arabian:"sarb",Saurashtra:"saur",Shavian:"shaw",Sharada:"shrd",Siddham:"sidd",Khudawadi:"sind",Sinhala:"sinh",Sora_Sompeng:"sora",Sundanese:"sund",Syloti_Nagri:"sylo",Syriac:"syrc",Tagbanwa:"tagb",Takri:"takr",Tai_Le:"tale",New_Tai_Lue:"talu",Tamil:["tml2","taml"],Tai_Viet:"tavt",Telugu:["tel2","telu"],Tifinagh:"tfng",Tagalog:"tglg",Thaana:"thaa",Thai:"thai",Tibetan:"tibt",Tirhuta:"tirh",Ugaritic:"ugar",Vai:"vai ",Warang_Citi:"wara",Old_Persian:"xpeo",Cuneiform:"xsux",Yi:"yi ",Inherited:"zinh",Common:"zyyy",Unknown:"zzzz"},to={};for(let t in wa){let e=wa[t];if(Array.isArray(e))for(let s of e)to[s]=t;else to[e]=t}function Nv(t){return to[t]}function Av(t){let e=t.length,s=0;for(;s<e;){let a=t.charCodeAt(s++);if(55296<=a&&a<=56319&&s<e){let r=t.charCodeAt(s);56320<=r&&r<=57343&&(s++,a=((a&1023)<<10)+(r&1023)+65536)}let i=kc(a);if(i!=="Common"&&i!=="Inherited"&&i!=="Unknown")return wa[i]}return wa.Unknown}function Sv(t){for(let e=0;e<t.length;e++){let s=t[e],a=kc(s);if(a!=="Common"&&a!=="Inherited"&&a!=="Unknown")return wa[a]}return wa.Unknown}const Vv={arab:!0,hebr:!0,syrc:!0,thaa:!0,cprt:!0,khar:!0,phnx:!0,"nko ":!0,lydi:!0,avst:!0,armi:!0,phli:!0,prti:!0,sarb:!0,orkh:!0,samr:!0,mand:!0,merc:!0,mero:!0,mani:!0,mend:!0,nbat:!0,narb:!0,palm:!0,phlp:!0};function _f(t){return Vv[t]?"rtl":"ltr"}class Iv{get advanceWidth(){let e=0;for(let s of this.positions)e+=s.xAdvance;return e}get advanceHeight(){let e=0;for(let s of this.positions)e+=s.yAdvance;return e}get bbox(){let e=new Fs,s=0,a=0;for(let i=0;i<this.glyphs.length;i++){let r=this.glyphs[i],n=this.positions[i],o=r.bbox;e.addPoint(o.minX+s+n.xOffset,o.minY+a+n.yOffset),e.addPoint(o.maxX+s+n.xOffset,o.maxY+a+n.yOffset),s+=n.xAdvance,a+=n.yAdvance}return e}constructor(e,s,a,i,r){if(this.glyphs=e,this.positions=null,this.script=a,this.language=i||null,this.direction=r||_f(a),this.features={},Array.isArray(s))for(let n of s)this.features[n]=!0;else typeof s=="object"&&(this.features=s)}}class _v{constructor(e=0,s=0,a=0,i=0){this.xAdvance=e,this.yAdvance=s,this.xOffset=a,this.yOffset=i}}const Hs={allTypographicFeatures:{code:0,exclusive:!1,allTypeFeatures:0},ligatures:{code:1,exclusive:!1,requiredLigatures:0,commonLigatures:2,rareLigatures:4,rebusPictures:8,diphthongLigatures:10,squaredLigatures:12,abbrevSquaredLigatures:14,symbolLigatures:16,contextualLigatures:18,historicalLigatures:20},cursiveConnection:{code:2,exclusive:!0,unconnected:0,partiallyConnected:1,cursive:2},letterCase:{code:3,exclusive:!0},verticalSubstitution:{code:4,exclusive:!1,substituteVerticalForms:0},linguisticRearrangement:{code:5,exclusive:!1,linguisticRearrangement:0},numberSpacing:{code:6,exclusive:!0,monospacedNumbers:0,proportionalNumbers:1,thirdWidthNumbers:2,quarterWidthNumbers:3},smartSwash:{code:8,exclusive:!1,wordInitialSwashes:0,wordFinalSwashes:2,nonFinalSwashes:8},diacritics:{code:9,exclusive:!0,showDiacritics:0,hideDiacritics:1,decomposeDiacritics:2},verticalPosition:{code:10,exclusive:!0,normalPosition:0,superiors:1,inferiors:2,ordinals:3,scientificInferiors:4},fractions:{code:11,exclusive:!0,noFractions:0,verticalFractions:1,diagonalFractions:2},overlappingCharacters:{code:13,exclusive:!1,preventOverlap:0},typographicExtras:{code:14,exclusive:!1,slashedZero:4},mathematicalExtras:{code:15,exclusive:!1,mathematicalGreek:10},ornamentSets:{code:16,exclusive:!0,noOrnaments:0,dingbats:1,piCharacters:2,fleurons:3,decorativeBorders:4,internationalSymbols:5,mathSymbols:6},characterAlternatives:{code:17,exclusive:!0,noAlternates:0},designComplexity:{code:18,exclusive:!0,designLevel1:0,designLevel2:1,designLevel3:2,designLevel4:3,designLevel5:4},styleOptions:{code:19,exclusive:!0,noStyleOptions:0,displayText:1,engravedText:2,illuminatedCaps:3,titlingCaps:4,tallCaps:5},characterShape:{code:20,exclusive:!0,traditionalCharacters:0,simplifiedCharacters:1,JIS1978Characters:2,JIS1983Characters:3,JIS1990Characters:4,traditionalAltOne:5,traditionalAltTwo:6,traditionalAltThree:7,traditionalAltFour:8,traditionalAltFive:9,expertCharacters:10,JIS2004Characters:11,hojoCharacters:12,NLCCharacters:13,traditionalNamesCharacters:14},numberCase:{code:21,exclusive:!0,lowerCaseNumbers:0,upperCaseNumbers:1},textSpacing:{code:22,exclusive:!0,proportionalText:0,monospacedText:1,halfWidthText:2,thirdWidthText:3,quarterWidthText:4,altProportionalText:5,altHalfWidthText:6},transliteration:{code:23,exclusive:!0,noTransliteration:0},annotation:{code:24,exclusive:!0,noAnnotation:0,boxAnnotation:1,roundedBoxAnnotation:2,circleAnnotation:3,invertedCircleAnnotation:4,parenthesisAnnotation:5,periodAnnotation:6,romanNumeralAnnotation:7,diamondAnnotation:8,invertedBoxAnnotation:9,invertedRoundedBoxAnnotation:10},kanaSpacing:{code:25,exclusive:!0,fullWidthKana:0,proportionalKana:1},ideographicSpacing:{code:26,exclusive:!0,fullWidthIdeographs:0,proportionalIdeographs:1,halfWidthIdeographs:2},unicodeDecomposition:{code:27,exclusive:!1,canonicalComposition:0,compatibilityComposition:2,transcodingComposition:4},rubyKana:{code:28,exclusive:!1,rubyKana:2},CJKSymbolAlternatives:{code:29,exclusive:!0,noCJKSymbolAlternatives:0,CJKSymbolAltOne:1,CJKSymbolAltTwo:2,CJKSymbolAltThree:3,CJKSymbolAltFour:4,CJKSymbolAltFive:5},ideographicAlternatives:{code:30,exclusive:!0,noIdeographicAlternatives:0,ideographicAltOne:1,ideographicAltTwo:2,ideographicAltThree:3,ideographicAltFour:4,ideographicAltFive:5},CJKVerticalRomanPlacement:{code:31,exclusive:!0,CJKVerticalRomanCentered:0,CJKVerticalRomanHBaseline:1},italicCJKRoman:{code:32,exclusive:!1,CJKItalicRoman:2},caseSensitiveLayout:{code:33,exclusive:!1,caseSensitiveLayout:0,caseSensitiveSpacing:2},alternateKana:{code:34,exclusive:!1,alternateHorizKana:0,alternateVertKana:2},stylisticAlternatives:{code:35,exclusive:!1,noStylisticAlternates:0,stylisticAltOne:2,stylisticAltTwo:4,stylisticAltThree:6,stylisticAltFour:8,stylisticAltFive:10,stylisticAltSix:12,stylisticAltSeven:14,stylisticAltEight:16,stylisticAltNine:18,stylisticAltTen:20,stylisticAltEleven:22,stylisticAltTwelve:24,stylisticAltThirteen:26,stylisticAltFourteen:28,stylisticAltFifteen:30,stylisticAltSixteen:32,stylisticAltSeventeen:34,stylisticAltEighteen:36,stylisticAltNineteen:38,stylisticAltTwenty:40},contextualAlternates:{code:36,exclusive:!1,contextualAlternates:0,swashAlternates:2,contextualSwashAlternates:4},lowerCase:{code:37,exclusive:!0,defaultLowerCase:0,lowerCaseSmallCaps:1,lowerCasePetiteCaps:2},upperCase:{code:38,exclusive:!0,defaultUpperCase:0,upperCaseSmallCaps:1,upperCasePetiteCaps:2},languageTag:{code:39,exclusive:!0},CJKRomanSpacing:{code:103,exclusive:!0,halfWidthCJKRoman:0,proportionalCJKRoman:1,defaultCJKRoman:2,fullWidthCJKRoman:3}},j=(t,e)=>[Hs[t].code,Hs[t][e]],lr={rlig:j("ligatures","requiredLigatures"),clig:j("ligatures","contextualLigatures"),dlig:j("ligatures","rareLigatures"),hlig:j("ligatures","historicalLigatures"),liga:j("ligatures","commonLigatures"),hist:j("ligatures","historicalLigatures"),smcp:j("lowerCase","lowerCaseSmallCaps"),pcap:j("lowerCase","lowerCasePetiteCaps"),frac:j("fractions","diagonalFractions"),dnom:j("fractions","diagonalFractions"),numr:j("fractions","diagonalFractions"),afrc:j("fractions","verticalFractions"),case:j("caseSensitiveLayout","caseSensitiveLayout"),ccmp:j("unicodeDecomposition","canonicalComposition"),cpct:j("CJKVerticalRomanPlacement","CJKVerticalRomanCentered"),valt:j("CJKVerticalRomanPlacement","CJKVerticalRomanCentered"),swsh:j("contextualAlternates","swashAlternates"),cswh:j("contextualAlternates","contextualSwashAlternates"),curs:j("cursiveConnection","cursive"),c2pc:j("upperCase","upperCasePetiteCaps"),c2sc:j("upperCase","upperCaseSmallCaps"),init:j("smartSwash","wordInitialSwashes"),fin2:j("smartSwash","wordFinalSwashes"),medi:j("smartSwash","nonFinalSwashes"),med2:j("smartSwash","nonFinalSwashes"),fin3:j("smartSwash","wordFinalSwashes"),fina:j("smartSwash","wordFinalSwashes"),pkna:j("kanaSpacing","proportionalKana"),half:j("textSpacing","halfWidthText"),halt:j("textSpacing","altHalfWidthText"),hkna:j("alternateKana","alternateHorizKana"),vkna:j("alternateKana","alternateVertKana"),ital:j("italicCJKRoman","CJKItalicRoman"),lnum:j("numberCase","upperCaseNumbers"),onum:j("numberCase","lowerCaseNumbers"),mgrk:j("mathematicalExtras","mathematicalGreek"),calt:j("contextualAlternates","contextualAlternates"),vrt2:j("verticalSubstitution","substituteVerticalForms"),vert:j("verticalSubstitution","substituteVerticalForms"),tnum:j("numberSpacing","monospacedNumbers"),pnum:j("numberSpacing","proportionalNumbers"),sups:j("verticalPosition","superiors"),subs:j("verticalPosition","inferiors"),ordn:j("verticalPosition","ordinals"),pwid:j("textSpacing","proportionalText"),hwid:j("textSpacing","halfWidthText"),qwid:j("textSpacing","quarterWidthText"),twid:j("textSpacing","thirdWidthText"),fwid:j("textSpacing","proportionalText"),palt:j("textSpacing","altProportionalText"),trad:j("characterShape","traditionalCharacters"),smpl:j("characterShape","simplifiedCharacters"),jp78:j("characterShape","JIS1978Characters"),jp83:j("characterShape","JIS1983Characters"),jp90:j("characterShape","JIS1990Characters"),jp04:j("characterShape","JIS2004Characters"),expt:j("characterShape","expertCharacters"),hojo:j("characterShape","hojoCharacters"),nlck:j("characterShape","NLCCharacters"),tnam:j("characterShape","traditionalNamesCharacters"),ruby:j("rubyKana","rubyKana"),titl:j("styleOptions","titlingCaps"),zero:j("typographicExtras","slashedZero"),ss01:j("stylisticAlternatives","stylisticAltOne"),ss02:j("stylisticAlternatives","stylisticAltTwo"),ss03:j("stylisticAlternatives","stylisticAltThree"),ss04:j("stylisticAlternatives","stylisticAltFour"),ss05:j("stylisticAlternatives","stylisticAltFive"),ss06:j("stylisticAlternatives","stylisticAltSix"),ss07:j("stylisticAlternatives","stylisticAltSeven"),ss08:j("stylisticAlternatives","stylisticAltEight"),ss09:j("stylisticAlternatives","stylisticAltNine"),ss10:j("stylisticAlternatives","stylisticAltTen"),ss11:j("stylisticAlternatives","stylisticAltEleven"),ss12:j("stylisticAlternatives","stylisticAltTwelve"),ss13:j("stylisticAlternatives","stylisticAltThirteen"),ss14:j("stylisticAlternatives","stylisticAltFourteen"),ss15:j("stylisticAlternatives","stylisticAltFifteen"),ss16:j("stylisticAlternatives","stylisticAltSixteen"),ss17:j("stylisticAlternatives","stylisticAltSeventeen"),ss18:j("stylisticAlternatives","stylisticAltEighteen"),ss19:j("stylisticAlternatives","stylisticAltNineteen"),ss20:j("stylisticAlternatives","stylisticAltTwenty")};for(let t=1;t<=99;t++)lr[`cv${`00${t}`.slice(-2)}`]=[Hs.characterAlternatives.code,t];let js={};for(let t in lr){let e=lr[t];js[e[0]]==null&&(js[e[0]]={}),js[e[0]][e[1]]=t}function Fv(t){let e={};for(let s in t){let a;(a=lr[s])&&(e[a[0]]==null&&(e[a[0]]={}),e[a[0]][a[1]]=t[s])}return e}function Ff(t){let[e,s]=t;if(isNaN(e))var a=Hs[e]&&Hs[e].code;else var a=e;if(isNaN(s))var i=Hs[e]&&Hs[e][s];else var i=s;return[a,i]}function Tv(t){let e={};if(Array.isArray(t))for(let s=0;s<t.length;s++){let a,i=Ff(t[s]);(a=js[i[0]]&&js[i[0]][i[1]])&&(e[a]=!0)}else if(typeof t=="object")for(let s in t){let a=t[s];for(let i in a){let r,n=Ff([s,i]);a[i]&&(r=js[n[0]]&&js[n[0]][n[1]])&&(e[r]=!0)}}return Object.keys(e)}class $a{lookup(e){switch(this.table.version){case 0:return this.table.values.getItem(e);case 2:case 4:{let i=0,r=this.table.binarySearchHeader.nUnits-1;for(;i<=r;){var s=i+r>>1,a=this.table.segments[s];if(a.firstGlyph===65535)return null;if(e<a.firstGlyph)r=s-1;else if(e>a.lastGlyph)i=s+1;else return this.table.version===2?a.value:a.values[e-a.firstGlyph]}return null}case 6:{let i=0,r=this.table.binarySearchHeader.nUnits-1;for(;i<=r;){var s=i+r>>1,a=this.table.segments[s];if(a.glyph===65535)return null;if(e<a.glyph)r=s-1;else if(e>a.glyph)i=s+1;else return a.value}return null}case 8:return this.table.values[e-this.table.firstGlyph];default:throw new Error(`Unknown lookup table format: ${this.table.version}`)}}glyphsForValue(e){let s=[];switch(this.table.version){case 2:case 4:for(let a of this.table.segments)if(this.table.version===2&&a.value===e)s.push(...ba(a.firstGlyph,a.lastGlyph+1));else for(let i=0;i<a.values.length;i++)a.values[i]===e&&s.push(a.firstGlyph+i);break;case 6:for(let a of this.table.segments)a.value===e&&s.push(a.glyph);break;case 8:for(let a=0;a<this.table.values.length;a++)this.table.values[a]===e&&s.push(this.table.firstGlyph+a);break;default:throw new Error(`Unknown lookup table format: ${this.table.version}`)}return s}constructor(e){this.table=e}}mt([yt],$a.prototype,"glyphsForValue",null);const Pv=0,Tf=0,Pf=1,Ef=2,Ev=16384;class Ov{process(e,s,a){let i=Pv,r=s?e.length-1:0,n=s?-1:1;for(;n===1&&r<=e.length||n===-1&&r>=-1;){let o=null,l=Pf,c=!0;r===e.length||r===-1?l=Tf:(o=e[r],o.id===65535?l=Ef:(l=this.lookupTable.lookup(o.id),l==null&&(l=Pf)));let h=this.stateTable.stateArray.getItem(i)[l],d=this.stateTable.entryTable.getItem(h);l!==Tf&&l!==Ef&&(a(o,d,r),c=!(d.flags&Ev)),i=d.newState,c&&(r+=n)}return e}traverse(e,s=0,a=new Set){if(a.has(s))return;a.add(s);let{nClasses:i,stateArray:r,entryTable:n}=this.stateTable,o=r.getItem(s);for(let l=4;l<i;l++){let c=o[l],f=n.getItem(c);for(let h of this.lookupTable.glyphsForValue(l))e.enter&&e.enter(h,f),f.newState!==0&&this.traverse(e,f.newState,a),e.exit&&e.exit(h,f)}}constructor(e){this.stateTable=e,this.lookupTable=new $a(e.classTable)}}const Mv=32768,Rv=8192,zv=15,Of=32768,Lv=32768,Dv=8192,Bv=2147483648,Uv=1073741824,Zv=1073741823,Mf=4194304,Gv=2048,Wv=1024,Yv=992,Hv=31;class Rf{process(e,s={}){for(let i of this.morx.chains){let r=i.defaultFlags;for(let n of i.features){let o;(o=s[n.featureType])&&(o[n.featureSetting]?(r&=n.disableFlags,r|=n.enableFlags):o[n.featureSetting]===!1&&(r|=~n.disableFlags,r&=~n.enableFlags))}for(let n of i.subtables)n.subFeatureFlags&r&&this.processSubtable(n,e)}let a=e.length-1;for(;a>=0;)e[a].id===65535&&e.splice(a,1),a--;return e}processSubtable(e,s){if(this.subtable=e,this.glyphs=s,this.subtable.type===4){this.processNoncontextualSubstitutions(this.subtable,this.glyphs);return}this.ligatureStack=[],this.markedGlyph=null,this.firstGlyph=null,this.lastGlyph=null,this.markedIndex=null;let a=this.getStateMachine(e),i=this.getProcessor(),r=!!(this.subtable.coverage&Mf);return a.process(this.glyphs,r,i)}getStateMachine(e){return new Ov(e.table.stateTable)}getProcessor(){switch(this.subtable.type){case 0:return this.processIndicRearragement;case 1:return this.processContextualSubstitution;case 2:return this.processLigature;case 4:return this.processNoncontextualSubstitutions;case 5:return this.processGlyphInsertion;default:throw new Error(`Invalid morx subtable type: ${this.subtable.type}`)}}processIndicRearragement(e,s,a){s.flags&Mv&&(this.firstGlyph=a),s.flags&Rv&&(this.lastGlyph=a),jv(this.glyphs,s.flags&zv,this.firstGlyph,this.lastGlyph)}processContextualSubstitution(e,s,a){let i=this.subtable.table.substitutionTable.items;if(s.markIndex!==65535){let n=i.getItem(s.markIndex),o=new $a(n);e=this.glyphs[this.markedGlyph];var r=o.lookup(e.id);r&&(this.glyphs[this.markedGlyph]=this.font.getGlyph(r,e.codePoints))}if(s.currentIndex!==65535){let n=i.getItem(s.currentIndex),o=new $a(n);e=this.glyphs[a];var r=o.lookup(e.id);r&&(this.glyphs[a]=this.font.getGlyph(r,e.codePoints))}s.flags&Of&&(this.markedGlyph=a)}processLigature(e,s,a){if(s.flags&Lv&&this.ligatureStack.push(a),s.flags&Dv){let i=this.subtable.table.ligatureActions,r=this.subtable.table.components,n=this.subtable.table.ligatureList,o=s.action,l=!1,c=0,f=[],h=[];for(;!l;){let d=this.ligatureStack.pop();f.unshift(...this.glyphs[d].codePoints);let m=i.getItem(o++);l=!!(m&Bv);let b=!!(m&Uv),I=(m&Zv)<<2>>2;I+=this.glyphs[d].id;let M=r.getItem(I);if(c+=M,l||b){let E=n.getItem(c);this.glyphs[d]=this.font.getGlyph(E,f),h.push(d),c=0,f=[]}else this.glyphs[d]=this.font.getGlyph(65535)}this.ligatureStack.push(...h)}}processNoncontextualSubstitutions(e,s,a){let i=new $a(e.table.lookupTable);for(a=0;a<s.length;a++){let r=s[a];if(r.id!==65535){let n=i.lookup(r.id);n&&(s[a]=this.font.getGlyph(n,r.codePoints))}}}_insertGlyphs(e,s,a,i){let r=[];for(;a--;){let n=this.subtable.table.insertionActions.getItem(s++);r.push(this.font.getGlyph(n))}i||e++,this.glyphs.splice(e,0,...r)}processGlyphInsertion(e,s,a){if(s.flags&Of&&(this.markedIndex=a),s.markedInsertIndex!==65535){let i=(s.flags&Hv)>>>5,r=!!(s.flags&Wv);this._insertGlyphs(this.markedIndex,s.markedInsertIndex,i,r)}if(s.currentInsertIndex!==65535){let i=(s.flags&Yv)>>>5,r=!!(s.flags&Gv);this._insertGlyphs(a,s.currentInsertIndex,i,r)}}getSupportedFeatures(){let e=[];for(let s of this.morx.chains)for(let a of s.features)e.push([a.featureType,a.featureSetting]);return e}generateInputs(e){return this.inputCache||this.generateInputCache(),this.inputCache[e]||[]}generateInputCache(){this.inputCache={};for(let e of this.morx.chains){let s=e.defaultFlags;for(let a of e.subtables)a.subFeatureFlags&s&&this.generateInputsForSubtable(a)}}generateInputsForSubtable(e){if(e.type!==2)return;if(!!(e.coverage&Mf))throw new Error("Reverse subtable, not supported.");this.subtable=e,this.ligatureStack=[];let a=this.getStateMachine(e),i=this.getProcessor(),r=[],n=[];this.glyphs=[],a.traverse({enter:(o,l)=>{let c=this.glyphs;n.push({glyphs:c.slice(),ligatureStack:this.ligatureStack.slice()});let f=this.font.getGlyph(o);r.push(f),c.push(r[r.length-1]),i(c[c.length-1],l,c.length-1);let h=0,d=0;for(let m=0;m<c.length&&h<=1;m++)c[m].id!==65535&&(h++,d=c[m].id);if(h===1){let m=r.map(I=>I.id),b=this.inputCache[d];b?b.push(m):this.inputCache[d]=[m]}},exit:()=>{({glyphs:this.glyphs,ligatureStack:this.ligatureStack}=n.pop()),r.pop()}})}constructor(e){this.processIndicRearragement=this.processIndicRearragement.bind(this),this.processContextualSubstitution=this.processContextualSubstitution.bind(this),this.processLigature=this.processLigature.bind(this),this.processNoncontextualSubstitutions=this.processNoncontextualSubstitutions.bind(this),this.processGlyphInsertion=this.processGlyphInsertion.bind(this),this.font=e,this.morx=e.morx,this.inputCache=null}}mt([yt],Rf.prototype,"getStateMachine",null);function kt(t,e,s,a=!1,i=!1){let r=t.splice(s[0]-(s[1]-1),s[1]);i&&r.reverse();let n=t.splice(e[0],e[1],...r);return a&&n.reverse(),t.splice(s[0]-(e[1]-1),0,...n),t}function jv(t,e,s,a){switch(e){case 0:return t;case 1:return kt(t,[s,1],[a,0]);case 2:return kt(t,[s,0],[a,1]);case 3:return kt(t,[s,1],[a,1]);case 4:return kt(t,[s,2],[a,0]);case 5:return kt(t,[s,2],[a,0],!0,!1);case 6:return kt(t,[s,0],[a,2]);case 7:return kt(t,[s,0],[a,2],!1,!0);case 8:return kt(t,[s,1],[a,2]);case 9:return kt(t,[s,1],[a,2],!1,!0);case 10:return kt(t,[s,2],[a,1]);case 11:return kt(t,[s,2],[a,1],!0,!1);case 12:return kt(t,[s,2],[a,2]);case 13:return kt(t,[s,2],[a,2],!0,!1);case 14:return kt(t,[s,2],[a,2],!1,!0);case 15:return kt(t,[s,2],[a,2],!0,!0);default:throw new Error(`Unknown verb: ${e}`)}}class Kv{substitute(e){e.direction==="rtl"&&e.glyphs.reverse(),this.morxProcessor.process(e.glyphs,Fv(e.features))}getAvailableFeatures(e,s){return Tv(this.morxProcessor.getSupportedFeatures())}stringsForGlyph(e){let s=this.morxProcessor.generateInputs(e),a=new Set;for(let i of s)this._addStrings(i,0,a,"");return a}_addStrings(e,s,a,i){let r=this.font._cmapProcessor.codePointsForGlyph(e[s]);for(let n of r){let o=i+String.fromCodePoint(n);s<e.length-1?this._addStrings(e,s+1,a,o):a.add(o)}}constructor(e){this.font=e,this.morxProcessor=new Rf(e),this.fallbackPosition=!1}}class Xv{_addFeatures(e,s){let a=this.stages.length-1,i=this.stages[a];for(let r of e)this.allFeatures[r]==null&&(i.push(r),this.allFeatures[r]=a,s&&(this.globalFeatures[r]=!0))}add(e,s=!0){if(this.stages.length===0&&this.stages.push([]),typeof e=="string"&&(e=[e]),Array.isArray(e))this._addFeatures(e,s);else if(typeof e=="object")this._addFeatures(e.global||[],!0),this._addFeatures(e.local||[],!1);else throw new Error("Unsupported argument to ShapingPlan#add")}addStage(e,s){typeof e=="function"?this.stages.push(e,[]):(this.stages.push([]),this.add(e,s))}setFeatureOverrides(e){if(Array.isArray(e))this.add(e);else if(typeof e=="object"){for(let s in e)if(e[s])this.add(s);else if(this.allFeatures[s]!=null){let a=this.stages[this.allFeatures[s]];a.splice(a.indexOf(s),1),delete this.allFeatures[s],delete this.globalFeatures[s]}}}assignGlobalFeatures(e){for(let s of e)for(let a in this.globalFeatures)s.features[a]=!0}process(e,s,a){for(let i of this.stages)typeof i=="function"?a||i(this.font,s,this):i.length>0&&e.applyFeatures(i,s,a)}constructor(e,s,a){this.font=e,this.script=s,this.direction=a,this.stages=[],this.globalFeatures={},this.allFeatures={}}}const qv=["rvrn"],Jv=["ccmp","locl","rlig","mark","mkmk"],Qv=["frac","numr","dnom"],$v=["calt","clig","liga","rclt","curs","kern"],e3={ltr:["ltra","ltrm"],rtl:["rtla","rtlm"]};class Ts{static plan(e,s,a){this.planPreprocessing(e),this.planFeatures(e),this.planPostprocessing(e,a),e.assignGlobalFeatures(s),this.assignFeatures(e,s)}static planPreprocessing(e){e.add({global:[...qv,...e3[e.direction]],local:Qv})}static planFeatures(e){}static planPostprocessing(e,s){e.add([...Jv,...$v]),e.setFeatureOverrides(s)}static assignFeatures(e,s){for(let a=0;a<s.length;a++){let i=s[a];if(i.codePoints[0]===8260){let r=a,n=a+1;for(;r>0&&Nc(s[r-1].codePoints[0]);)s[r-1].features.numr=!0,s[r-1].features.frac=!0,r--;for(;n<s.length&&Nc(s[n].codePoints[0]);)s[n].features.dnom=!0,s[n].features.frac=!0,n++;i.features.frac=!0,a=n-1}}}}St(Ts,"zeroMarkWidths","AFTER_GPOS");const t3=new Yi($n("APABAAAAAAAAOAAAAf0BAv7tmi1MxDAUx7vtvjhAgcDgkEgEAnmXEBIMCYaEcygEiqBQ4FAkCE4ikUgMiiBJSAgSiUQSDMn9L9eSl6bddddug9t7yS/trevre+3r27pcNxZiG+yCfdCVv/9LeQxOwRm4AJegD27ALbgD9+ABPJF+z+BN/h7yDj5k/VOWX6SdmU5+wLWknggxDxaS8u0qiiX4uiz9XamQ3wzDMAzDMAzDMAzDVI/h959V/v7BMAzDMAzDMLlyNTNiMSdewVxbiA44B4/guz1qW58VYlMI0WsJ0W+N6kXw0spvPtdwhtkwnGM6uLaV4Xyzg3v3PM9DPfQ/sOg4xPWjipy31P8LTqbU304c/cLCUmWJLNB2Uz2U1KTeRKNmKHVMfbJC+/0loTZRH/W5cvEvBJPMbREkWt3FD1NcqXZBSpuE2Ad0PBehPtNrPtIEdYP+hiRt/V1jIiE69X4NT/uVZI3PUHE9bm5M7ePGdZWy951v7Nn6j8v1WWKP3mt6ttnsigx6VN7Vc0VomSSGqW2mGNP1muZPl7LfjNUaKNFtDGVf2fvE9O7VlBS5j333c5p/eeoOqcs1R/hIqDWLJ7TTlksirVT1SI7l8k4Yp+g3jafGcrU1RM6l9th80XOpnlN97bDNY4i4s61B0Si/ipa0uHMl6zqEjlFfCZm/TM8KmzQDjmuTAQ==")),zf=["isol","fina","fin2","fin3","medi","med2","init"],so={Non_Joining:0,Transparent:6},We="isol",Ps="fina",ao="fin2",s3="fin3",cr="medi",fr="med2",ur="init",Se=null,a3=[[[Se,Se,0],[Se,We,2],[Se,We,1],[Se,We,2],[Se,We,1],[Se,We,6]],[[Se,Se,0],[Se,We,2],[Se,We,1],[Se,We,2],[Se,ao,5],[Se,We,6]],[[Se,Se,0],[Se,We,2],[ur,Ps,1],[ur,Ps,3],[ur,Ps,4],[ur,Ps,6]],[[Se,Se,0],[Se,We,2],[cr,Ps,1],[cr,Ps,3],[cr,Ps,4],[cr,Ps,6]],[[Se,Se,0],[Se,We,2],[fr,We,1],[fr,We,2],[fr,ao,5],[fr,We,6]],[[Se,Se,0],[Se,We,2],[We,We,1],[We,We,2],[We,ao,5],[We,We,6]],[[Se,Se,0],[Se,We,2],[Se,We,1],[Se,We,2],[Se,s3,5],[Se,We,6]]];class Es extends Ts{static planFeatures(e){e.add(["ccmp","locl"]);for(let s=0;s<zf.length;s++){let a=zf[s];e.addStage(a,!1)}e.addStage("mset")}static assignFeatures(e,s){super.assignFeatures(e,s);let a=-1,i=0,r=[];for(let o=0;o<s.length;o++){let l,c;var n=s[o];let f=i3(n.codePoints[0]);if(f===so.Transparent){r[o]=Se;continue}[c,l,i]=a3[i][f],c!==Se&&a!==-1&&(r[a]=c),r[o]=l,a=o}for(let o=0;o<s.length;o++){let l;var n=s[o];(l=r[o])&&(n.features[l]=!0)}}}function i3(t){let e=t3.get(t);if(e)return e-1;let s=ji(t);return s==="Mn"||s==="Me"||s==="Cf"?so.Transparent:so.Non_Joining}class r3{reset(e={},s=0){this.options=e,this.flags=e.flags||{},this.markAttachmentType=e.markAttachmentType||0,this.index=s}get cur(){return this.glyphs[this.index]||null}shouldIgnore(e){return this.flags.ignoreMarks&&e.isMark||this.flags.ignoreBaseGlyphs&&e.isBase||this.flags.ignoreLigatures&&e.isLigature||this.markAttachmentType&&e.isMark&&e.markAttachmentType!==this.markAttachmentType}move(e){for(this.index+=e;0<=this.index&&this.index<this.glyphs.length&&this.shouldIgnore(this.glyphs[this.index]);)this.index+=e;return 0>this.index||this.index>=this.glyphs.length?null:this.glyphs[this.index]}next(){return this.move(1)}prev(){return this.move(-1)}peek(e=1){let s=this.index,a=this.increment(e);return this.index=s,a}peekIndex(e=1){let s=this.index;this.increment(e);let a=this.index;return this.index=s,a}increment(e=1){let s=e<0?-1:1;for(e=Math.abs(e);e--;)this.move(s);return this.glyphs[this.index]}constructor(e,s){this.glyphs=e,this.reset(s)}}const n3=["DFLT","dflt","latn"];class hr{findScript(e){if(this.table.scriptList==null)return null;Array.isArray(e)||(e=[e]);for(let s of e)for(let a of this.table.scriptList)if(a.tag===s)return a;return null}selectScript(e,s,a){let i=!1,r;if(!this.script||e!==this.scriptTag){if(r=this.findScript(e),r||(r=this.findScript(n3)),!r)return this.scriptTag;this.scriptTag=r.tag,this.script=r.script,this.language=null,this.languageTag=null,i=!0}if((!a||a!==this.direction)&&(this.direction=a||_f(e)),s&&s.length<4&&(s+=" ".repeat(4-s.length)),!s||s!==this.languageTag){this.language=null;for(let n of this.script.langSysRecords)if(n.tag===s){this.language=n.langSys,this.languageTag=n.tag;break}this.language||(this.language=this.script.defaultLangSys,this.languageTag=null),i=!0}if(i&&(this.features={},this.language))for(let n of this.language.featureIndexes){let o=this.table.featureList[n],l=this.substituteFeatureForVariations(n);this.features[o.tag]=l||o.feature}return this.scriptTag}lookupsForFeatures(e=[],s){let a=[];for(let i of e){let r=this.features[i];if(r)for(let n of r.lookupListIndexes)s&&s.indexOf(n)!==-1||a.push({feature:i,index:n,lookup:this.table.lookupList.get(n)})}return a.sort((i,r)=>i.index-r.index),a}substituteFeatureForVariations(e){if(this.variationsIndex===-1)return null;let a=this.table.featureVariations.featureVariationRecords[this.variationsIndex].featureTableSubstitution.substitutions;for(let i of a)if(i.featureIndex===e)return i.alternateFeatureTable;return null}findVariationsIndex(e){let s=this.table.featureVariations;if(!s)return-1;let a=s.featureVariationRecords;for(let i=0;i<a.length;i++){let r=a[i].conditionSet.conditionTable;if(this.variationConditionsMatch(r,e))return i}return-1}variationConditionsMatch(e,s){return e.every(a=>{let i=a.axisIndex<s.length?s[a.axisIndex]:0;return a.filterRangeMinValue<=i&&i<=a.filterRangeMaxValue})}applyFeatures(e,s,a){let i=this.lookupsForFeatures(e);this.applyLookups(i,s,a)}applyLookups(e,s,a){this.glyphs=s,this.positions=a,this.glyphIterator=new r3(s);for(let{feature:i,lookup:r}of e)for(this.currentFeature=i,this.glyphIterator.reset(r.flags);this.glyphIterator.index<s.length;){if(!(i in this.glyphIterator.cur.features)){this.glyphIterator.next();continue}for(let n of r.subTables)if(this.applyLookup(r.lookupType,n))break;this.glyphIterator.next()}}applyLookup(e,s){throw new Error("applyLookup must be implemented by subclasses")}applyLookupList(e){let s=this.glyphIterator.options,a=this.glyphIterator.index;for(let i of e){this.glyphIterator.reset(s,a),this.glyphIterator.increment(i.sequenceIndex);let r=this.table.lookupList.get(i.lookupListIndex);this.glyphIterator.reset(r.flags,this.glyphIterator.index);for(let n of r.subTables)if(this.applyLookup(r.lookupType,n))break}return this.glyphIterator.reset(s,a),!0}coverageIndex(e,s){switch(s==null&&(s=this.glyphIterator.cur.id),e.version){case 1:return e.glyphs.indexOf(s);case 2:for(let a of e.rangeRecords)if(a.start<=s&&s<=a.end)return a.startCoverageIndex+s-a.start;break}return-1}match(e,s,a,i){let r=this.glyphIterator.index,n=this.glyphIterator.increment(e),o=0;for(;o<s.length&&n&&a(s[o],n);)i&&i.push(this.glyphIterator.index),o++,n=this.glyphIterator.next();return this.glyphIterator.index=r,o<s.length?!1:i||!0}sequenceMatches(e,s){return this.match(e,s,(a,i)=>a===i.id)}sequenceMatchIndices(e,s){return this.match(e,s,(a,i)=>this.currentFeature in i.features?a===i.id:!1,[])}coverageSequenceMatches(e,s){return this.match(e,s,(a,i)=>this.coverageIndex(a,i.id)>=0)}getClassID(e,s){switch(s.version){case 1:let a=e-s.startGlyph;if(a>=0&&a<s.classValueArray.length)return s.classValueArray[a];break;case 2:for(let i of s.classRangeRecord)if(i.start<=e&&e<=i.end)return i.class;break}return 0}classSequenceMatches(e,s,a){return this.match(e,s,(i,r)=>i===this.getClassID(r.id,a))}applyContext(e){let s,a;switch(e.version){case 1:if(s=this.coverageIndex(e.coverage),s===-1)return!1;a=e.ruleSets[s];for(let i of a)if(this.sequenceMatches(1,i.input))return this.applyLookupList(i.lookupRecords);break;case 2:if(this.coverageIndex(e.coverage)===-1||(s=this.getClassID(this.glyphIterator.cur.id,e.classDef),s===-1))return!1;a=e.classSet[s];for(let i of a)if(this.classSequenceMatches(1,i.classes,e.classDef))return this.applyLookupList(i.lookupRecords);break;case 3:if(this.coverageSequenceMatches(0,e.coverages))return this.applyLookupList(e.lookupRecords);break}return!1}applyChainingContext(e){let s;switch(e.version){case 1:if(s=this.coverageIndex(e.coverage),s===-1)return!1;let a=e.chainRuleSets[s];for(let r of a)if(this.sequenceMatches(-r.backtrack.length,r.backtrack)&&this.sequenceMatches(1,r.input)&&this.sequenceMatches(1+r.input.length,r.lookahead))return this.applyLookupList(r.lookupRecords);break;case 2:if(this.coverageIndex(e.coverage)===-1)return!1;s=this.getClassID(this.glyphIterator.cur.id,e.inputClassDef);let i=e.chainClassSet[s];if(!i)return!1;for(let r of i)if(this.classSequenceMatches(-r.backtrack.length,r.backtrack,e.backtrackClassDef)&&this.classSequenceMatches(1,r.input,e.inputClassDef)&&this.classSequenceMatches(1+r.input.length,r.lookahead,e.lookaheadClassDef))return this.applyLookupList(r.lookupRecords);break;case 3:if(this.coverageSequenceMatches(-e.backtrackGlyphCount,e.backtrackCoverage)&&this.coverageSequenceMatches(0,e.inputCoverage)&&this.coverageSequenceMatches(e.inputGlyphCount,e.lookaheadCoverage))return this.applyLookupList(e.lookupRecords);break}return!1}constructor(e,s){this.font=e,this.table=s,this.script=null,this.scriptTag=null,this.language=null,this.languageTag=null,this.features={},this.lookups={},this.variationsIndex=e._variationProcessor?this.findVariationsIndex(e._variationProcessor.normalizedCoords):-1,this.selectScript(),this.glyphs=[],this.positions=[],this.ligatureID=1,this.currentFeature=null}}class Zt{get id(){return this._id}set id(e){this._id=e,this.substituted=!0;let s=this._font.GDEF;if(s&&s.glyphClassDef){let a=hr.prototype.getClassID(e,s.glyphClassDef);this.isBase=a===1,this.isLigature=a===2,this.isMark=a===3,this.markAttachmentType=s.markAttachClassDef?hr.prototype.getClassID(e,s.markAttachClassDef):0}else this.isMark=this.codePoints.length>0&&this.codePoints.every(Ac),this.isBase=!this.isMark,this.isLigature=this.codePoints.length>1,this.markAttachmentType=0}copy(){return new Zt(this._font,this.id,this.codePoints,this.features)}constructor(e,s,a=[],i){if(this._font=e,this.codePoints=a,this.id=s,this.features={},Array.isArray(i))for(let r=0;r<i.length;r++){let n=i[r];this.features[n]=!0}else typeof i=="object"&&Object.assign(this.features,i);this.ligatureID=null,this.ligatureComponent=null,this.isLigated=!1,this.cursiveAttachment=null,this.markAttachment=null,this.shaperInfo=null,this.substituted=!1,this.isMultiplied=!1}}class Lf extends Ts{static planFeatures(e){e.add(["ljmo","vjmo","tjmo"],!1)}static assignFeatures(e,s){let a=0,i=0;for(;i<s.length;){let r,o=s[i].codePoints[0],l=br(o);switch([r,a]=N3[a][l],r){case fs:e.font.hasGlyphForCodePoint(o)||(i=Zf(s,i,e.font));break;case ro:i=A3(s,i,e.font);break;case no:V3(s,i,e.font);break;case oo:i=I3(s,i,e.font);break}i++}}}St(Lf,"zeroMarkWidths","NONE");const va=44032,Df=55204,o3=Df-va+1,dr=4352,gr=4449,Ks=4519,l3=19,pr=21,ei=28,c3=dr+l3-1,f3=gr+pr-1,u3=Ks+ei-1,Bf=9676,h3=t=>4352<=t&&t<=4447||43360<=t&&t<=43388,d3=t=>4448<=t&&t<=4519||55216<=t&&t<=55238,g3=t=>4520<=t&&t<=4607||55243<=t&&t<=55291,p3=t=>12334<=t&&t<=12335,m3=t=>va<=t&&t<=Df,y3=t=>t-va<o3&&(t-va)%ei===0,b3=t=>dr<=t&&t<=c3,w3=t=>gr<=t&&t<=f3,v3=t=>1<=t&&t<=u3,x3=0,C3=1,mr=2,io=3,yr=4,Uf=5,k3=6;function br(t){return h3(t)?C3:d3(t)?mr:g3(t)?io:y3(t)?yr:m3(t)?Uf:p3(t)?k3:x3}const Vt=0,fs=1,ro=2,no=4,oo=5,N3=[[[Vt,0],[Vt,1],[Vt,0],[Vt,0],[fs,2],[fs,3],[oo,0]],[[Vt,0],[Vt,1],[ro,2],[Vt,0],[fs,2],[fs,3],[oo,0]],[[Vt,0],[Vt,1],[Vt,0],[ro,3],[fs,2],[fs,3],[no,0]],[[Vt,0],[Vt,1],[Vt,0],[Vt,0],[fs,2],[fs,3],[no,0]]];function ti(t,e,s){return new Zt(t,t.glyphForCodePoint(e).id,[e],s)}function Zf(t,e,s){let a=t[e],r=a.codePoints[0]-va,n=Ks+r%ei;r=r/ei|0;let o=dr+r/pr|0,l=gr+r%pr;if(!s.hasGlyphForCodePoint(o)||!s.hasGlyphForCodePoint(l)||n!==Ks&&!s.hasGlyphForCodePoint(n))return e;let c=ti(s,o,a.features);c.features.ljmo=!0;let f=ti(s,l,a.features);f.features.vjmo=!0;let h=[c,f];if(n>Ks){let d=ti(s,n,a.features);d.features.tjmo=!0,h.push(d)}return t.splice(e,1,...h),e+h.length-1}function A3(t,e,s){let a=t[e],i=t[e].codePoints[0],r=br(i),n=t[e-1].codePoints[0],o=br(n),l,c,f,h;if(o===yr&&r===io)l=n,h=a;else{r===mr?(c=t[e-1],f=a):(c=t[e-2],f=t[e-1],h=a);let m=c.codePoints[0],b=f.codePoints[0];b3(m)&&w3(b)&&(l=va+((m-dr)*pr+(b-gr))*ei)}let d=h&&h.codePoints[0]||Ks;if(l!=null&&(d===Ks||v3(d))){let m=l+(d-Ks);if(s.hasGlyphForCodePoint(m)){let b=o===mr?3:2;return t.splice(e-b+1,b,ti(s,m,a.features)),e-b+1}}return c&&(c.features.ljmo=!0),f&&(f.features.vjmo=!0),h&&(h.features.tjmo=!0),o===yr?(Zf(t,e-1,s),e+1):e}function S3(t){switch(br(t)){case yr:case Uf:return 1;case mr:return 2;case io:return 3}}function V3(t,e,s){let a=t[e],i=t[e].codePoints[0];if(s.glyphForCodePoint(i).advanceWidth===0)return;let r=t[e-1].codePoints[0],n=S3(r);return t.splice(e,1),t.splice(e-n,0,a)}function I3(t,e,s){let a=t[e],i=t[e].codePoints[0];if(s.hasGlyphForCodePoint(Bf)){let r=ti(s,Bf,a.features),n=s.glyphForCodePoint(i).advanceWidth===0?e:e+1;t.splice(n,0,r),e++}return e}var Gf={};Gf=JSON.parse('{"stateTable":[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,2,3,4,5,6,7,8,9,0,10,11,11,12,13,14,15,16,17],[0,0,0,18,19,20,21,22,23,0,24,0,0,25,26,0,0,27,0],[0,0,0,28,29,30,31,32,33,0,34,0,0,35,36,0,0,37,0],[0,0,0,38,5,7,7,8,9,0,10,0,0,0,13,0,0,16,0],[0,39,0,0,0,40,41,0,9,0,10,0,0,0,42,0,39,0,0],[0,0,0,0,43,44,44,8,9,0,0,0,0,12,43,0,0,0,0],[0,0,0,0,43,44,44,8,9,0,0,0,0,0,43,0,0,0,0],[0,0,0,45,46,47,48,49,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,50,0,0,51,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,52,0,0,0,0,0,0,0,0],[0,0,0,53,54,55,56,57,58,0,59,0,0,60,61,0,0,62,0],[0,0,0,4,5,7,7,8,9,0,10,0,0,0,13,0,0,16,0],[0,63,64,0,0,40,41,0,9,0,10,0,0,0,42,0,63,0,0],[0,2,3,4,5,6,7,8,9,0,10,11,11,12,13,0,2,16,0],[0,0,0,18,65,20,21,22,23,0,24,0,0,25,26,0,0,27,0],[0,0,0,0,66,67,67,8,9,0,10,0,0,0,68,0,0,0,0],[0,0,0,69,0,70,70,0,71,0,72,0,0,0,0,0,0,0,0],[0,0,0,73,19,74,74,22,23,0,24,0,0,0,26,0,0,27,0],[0,75,0,0,0,76,77,0,23,0,24,0,0,0,78,0,75,0,0],[0,0,0,0,79,80,80,22,23,0,0,0,0,25,79,0,0,0,0],[0,0,0,18,19,20,74,22,23,0,24,0,0,25,26,0,0,27,0],[0,0,0,81,82,83,84,85,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,86,0,0,87,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,88,0,0,0,0,0,0,0,0],[0,0,0,18,19,74,74,22,23,0,24,0,0,0,26,0,0,27,0],[0,89,90,0,0,76,77,0,23,0,24,0,0,0,78,0,89,0,0],[0,0,0,0,91,92,92,22,23,0,24,0,0,0,93,0,0,0,0],[0,0,0,94,29,95,31,32,33,0,34,0,0,0,36,0,0,37,0],[0,96,0,0,0,97,98,0,33,0,34,0,0,0,99,0,96,0,0],[0,0,0,0,100,101,101,32,33,0,0,0,0,35,100,0,0,0,0],[0,0,0,0,100,101,101,32,33,0,0,0,0,0,100,0,0,0,0],[0,0,0,102,103,104,105,106,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,107,0,0,108,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,109,0,0,0,0,0,0,0,0],[0,0,0,28,29,95,31,32,33,0,34,0,0,0,36,0,0,37,0],[0,110,111,0,0,97,98,0,33,0,34,0,0,0,99,0,110,0,0],[0,0,0,0,112,113,113,32,33,0,34,0,0,0,114,0,0,0,0],[0,0,0,0,5,7,7,8,9,0,10,0,0,0,13,0,0,16,0],[0,0,0,115,116,117,118,8,9,0,10,0,0,119,120,0,0,16,0],[0,0,0,0,0,121,121,0,9,0,10,0,0,0,42,0,0,0,0],[0,39,0,122,0,123,123,8,9,0,10,0,0,0,42,0,39,0,0],[0,124,64,0,0,0,0,0,0,0,0,0,0,0,0,0,124,0,0],[0,39,0,0,0,121,125,0,9,0,10,0,0,0,42,0,39,0,0],[0,0,0,0,0,126,126,8,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,46,47,48,49,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,47,47,49,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,127,127,49,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,128,127,127,49,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,129,130,131,132,133,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,50,0,0,0,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,134,0,0,0,0,0,0,0,0],[0,0,0,135,54,56,56,57,58,0,59,0,0,0,61,0,0,62,0],[0,136,0,0,0,137,138,0,58,0,59,0,0,0,139,0,136,0,0],[0,0,0,0,140,141,141,57,58,0,0,0,0,60,140,0,0,0,0],[0,0,0,0,140,141,141,57,58,0,0,0,0,0,140,0,0,0,0],[0,0,0,142,143,144,145,146,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,147,0,0,148,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,149,0,0,0,0,0,0,0,0],[0,0,0,53,54,56,56,57,58,0,59,0,0,0,61,0,0,62,0],[0,150,151,0,0,137,138,0,58,0,59,0,0,0,139,0,150,0,0],[0,0,0,0,152,153,153,57,58,0,59,0,0,0,154,0,0,0,0],[0,0,0,155,116,156,157,8,9,0,10,0,0,158,120,0,0,16,0],[0,0,0,0,0,121,121,0,9,0,10,0,0,0,0,0,0,0,0],[0,75,3,4,5,159,160,8,161,0,162,0,11,12,163,0,75,16,0],[0,0,0,0,0,40,164,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,165,44,44,8,9,0,0,0,0,0,165,0,0,0,0],[0,124,64,0,0,40,164,0,9,0,10,0,0,0,42,0,124,0,0],[0,0,0,0,0,70,70,0,71,0,72,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,71,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,166,0,0,167,0,72,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,168,0,0,0,0,0,0,0,0],[0,0,0,0,19,74,74,22,23,0,24,0,0,0,26,0,0,27,0],[0,0,0,0,79,80,80,22,23,0,0,0,0,0,79,0,0,0,0],[0,0,0,169,170,171,172,22,23,0,24,0,0,173,174,0,0,27,0],[0,0,0,0,0,175,175,0,23,0,24,0,0,0,78,0,0,0,0],[0,75,0,176,0,177,177,22,23,0,24,0,0,0,78,0,75,0,0],[0,178,90,0,0,0,0,0,0,0,0,0,0,0,0,0,178,0,0],[0,75,0,0,0,175,179,0,23,0,24,0,0,0,78,0,75,0,0],[0,0,0,0,0,180,180,22,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,82,83,84,85,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,83,83,85,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,181,181,85,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,182,181,181,85,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,183,184,185,186,187,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,86,0,0,0,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,188,0,0,0,0,0,0,0,0],[0,0,0,189,170,190,191,22,23,0,24,0,0,192,174,0,0,27,0],[0,0,0,0,0,175,175,0,23,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,76,193,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,194,80,80,22,23,0,0,0,0,0,194,0,0,0,0],[0,178,90,0,0,76,193,0,23,0,24,0,0,0,78,0,178,0,0],[0,0,0,0,29,95,31,32,33,0,34,0,0,0,36,0,0,37,0],[0,0,0,0,100,101,101,32,33,0,0,0,0,0,100,0,0,0,0],[0,0,0,195,196,197,198,32,33,0,34,0,0,199,200,0,0,37,0],[0,0,0,0,0,201,201,0,33,0,34,0,0,0,99,0,0,0,0],[0,96,0,202,0,203,203,32,33,0,34,0,0,0,99,0,96,0,0],[0,204,111,0,0,0,0,0,0,0,0,0,0,0,0,0,204,0,0],[0,96,0,0,0,201,205,0,33,0,34,0,0,0,99,0,96,0,0],[0,0,0,0,0,206,206,32,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,103,104,105,106,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,104,104,106,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,207,207,106,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,208,207,207,106,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,209,210,211,212,213,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,107,0,0,0,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,214,0,0,0,0,0,0,0,0],[0,0,0,215,196,216,217,32,33,0,34,0,0,218,200,0,0,37,0],[0,0,0,0,0,201,201,0,33,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,97,219,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,220,101,101,32,33,0,0,0,0,0,220,0,0,0,0],[0,204,111,0,0,97,219,0,33,0,34,0,0,0,99,0,204,0,0],[0,0,0,221,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,223,0,0,0,40,224,0,9,0,10,0,0,0,42,0,223,0,0],[0,0,0,0,225,44,44,8,9,0,0,0,0,119,225,0,0,0,0],[0,0,0,115,116,117,222,8,9,0,10,0,0,119,120,0,0,16,0],[0,0,0,115,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,226,64,0,0,40,224,0,9,0,10,0,0,0,42,0,226,0,0],[0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0],[0,39,0,0,0,121,121,0,9,0,10,0,0,0,42,0,39,0,0],[0,0,0,0,0,44,44,8,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,227,0,228,229,0,9,0,10,0,0,230,0,0,0,0,0],[0,39,0,122,0,121,121,0,9,0,10,0,0,0,42,0,39,0,0],[0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,231,231,49,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,232,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,130,131,132,133,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,131,131,133,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,233,233,133,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,234,233,233,133,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,235,236,237,238,239,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,54,56,56,57,58,0,59,0,0,0,61,0,0,62,0],[0,0,0,240,241,242,243,57,58,0,59,0,0,244,245,0,0,62,0],[0,0,0,0,0,246,246,0,58,0,59,0,0,0,139,0,0,0,0],[0,136,0,247,0,248,248,57,58,0,59,0,0,0,139,0,136,0,0],[0,249,151,0,0,0,0,0,0,0,0,0,0,0,0,0,249,0,0],[0,136,0,0,0,246,250,0,58,0,59,0,0,0,139,0,136,0,0],[0,0,0,0,0,251,251,57,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,143,144,145,146,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,144,144,146,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,252,252,146,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,253,252,252,146,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,254,255,256,257,258,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,147,0,0,0,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,259,0,0,0,0,0,0,0,0],[0,0,0,260,241,261,262,57,58,0,59,0,0,263,245,0,0,62,0],[0,0,0,0,0,246,246,0,58,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,137,264,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,265,141,141,57,58,0,0,0,0,0,265,0,0,0,0],[0,249,151,0,0,137,264,0,58,0,59,0,0,0,139,0,249,0,0],[0,0,0,221,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,9,0,0,0,0,158,225,0,0,0,0],[0,0,0,155,116,156,222,8,9,0,10,0,0,158,120,0,0,16,0],[0,0,0,155,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,0,0,0,43,266,266,8,161,0,24,0,0,12,267,0,0,0,0],[0,75,0,176,43,268,268,269,161,0,24,0,0,0,267,0,75,0,0],[0,0,0,0,0,270,0,0,271,0,162,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,272,0,0,0,0,0,0,0,0],[0,273,274,0,0,40,41,0,9,0,10,0,0,0,42,0,273,0,0],[0,0,0,40,0,123,123,8,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,121,275,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,72,0,0,0,0,0,0,0,0],[0,0,0,0,0,166,0,0,0,0,72,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,276,0,0,0,0,0,0,0,0],[0,0,0,277,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,279,0,0,0,76,280,0,23,0,24,0,0,0,78,0,279,0,0],[0,0,0,0,281,80,80,22,23,0,0,0,0,173,281,0,0,0,0],[0,0,0,169,170,171,278,22,23,0,24,0,0,173,174,0,0,27,0],[0,0,0,169,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,282,90,0,0,76,280,0,23,0,24,0,0,0,78,0,282,0,0],[0,0,0,0,0,0,0,0,23,0,0,0,0,0,0,0,0,0,0],[0,75,0,0,0,175,175,0,23,0,24,0,0,0,78,0,75,0,0],[0,0,0,0,0,80,80,22,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,283,0,284,285,0,23,0,24,0,0,286,0,0,0,0,0],[0,75,0,176,0,175,175,0,23,0,24,0,0,0,78,0,75,0,0],[0,0,0,0,0,0,0,22,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,287,287,85,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,288,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,184,185,186,187,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,185,185,187,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,289,289,187,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,290,289,289,187,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,291,292,293,294,295,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,277,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,0,0,0,281,80,80,22,23,0,0,0,0,192,281,0,0,0,0],[0,0,0,189,170,190,278,22,23,0,24,0,0,192,174,0,0,27,0],[0,0,0,189,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,0,0,76,0,177,177,22,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,175,296,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,297,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,299,0,0,0,97,300,0,33,0,34,0,0,0,99,0,299,0,0],[0,0,0,0,301,101,101,32,33,0,0,0,0,199,301,0,0,0,0],[0,0,0,195,196,197,298,32,33,0,34,0,0,199,200,0,0,37,0],[0,0,0,195,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,302,111,0,0,97,300,0,33,0,34,0,0,0,99,0,302,0,0],[0,0,0,0,0,0,0,0,33,0,0,0,0,0,0,0,0,0,0],[0,96,0,0,0,201,201,0,33,0,34,0,0,0,99,0,96,0,0],[0,0,0,0,0,101,101,32,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,303,0,304,305,0,33,0,34,0,0,306,0,0,0,0,0],[0,96,0,202,0,201,201,0,33,0,34,0,0,0,99,0,96,0,0],[0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,307,307,106,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,308,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,210,211,212,213,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,211,211,213,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,309,309,213,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,310,309,309,213,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,311,312,313,314,315,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,297,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,0,0,0,301,101,101,32,33,0,0,0,0,218,301,0,0,0,0],[0,0,0,215,196,216,298,32,33,0,34,0,0,218,200,0,0,37,0],[0,0,0,215,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,0,0,97,0,203,203,32,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,201,316,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,9,0,0,0,0,0,225,0,0,0,0],[0,0,0,317,318,319,320,8,9,0,10,0,0,321,322,0,0,16,0],[0,223,0,323,0,123,123,8,9,0,10,0,0,0,42,0,223,0,0],[0,223,0,0,0,121,324,0,9,0,10,0,0,0,42,0,223,0,0],[0,0,0,325,318,326,327,8,9,0,10,0,0,328,322,0,0,16,0],[0,0,0,64,0,121,121,0,9,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,9,0,0,0,0,230,0,0,0,0,0],[0,0,0,227,0,228,121,0,9,0,10,0,0,230,0,0,0,0,0],[0,0,0,227,0,121,121,0,9,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46,0,0],[0,0,0,0,0,329,329,133,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,330,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,236,237,238,239,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,237,237,239,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,331,331,239,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,332,331,331,239,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,333,40,121,334,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,335,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,337,0,0,0,137,338,0,58,0,59,0,0,0,139,0,337,0,0],[0,0,0,0,339,141,141,57,58,0,0,0,0,244,339,0,0,0,0],[0,0,0,240,241,242,336,57,58,0,59,0,0,244,245,0,0,62,0],[0,0,0,240,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,340,151,0,0,137,338,0,58,0,59,0,0,0,139,0,340,0,0],[0,0,0,0,0,0,0,0,58,0,0,0,0,0,0,0,0,0,0],[0,136,0,0,0,246,246,0,58,0,59,0,0,0,139,0,136,0,0],[0,0,0,0,0,141,141,57,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,341,0,342,343,0,58,0,59,0,0,344,0,0,0,0,0],[0,136,0,247,0,246,246,0,58,0,59,0,0,0,139,0,136,0,0],[0,0,0,0,0,0,0,57,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,345,345,146,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,346,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,255,256,257,258,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,256,256,258,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,347,347,258,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,348,347,347,258,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,349,350,351,352,353,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,335,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,0,0,0,339,141,141,57,58,0,0,0,0,263,339,0,0,0,0],[0,0,0,260,241,261,336,57,58,0,59,0,0,263,245,0,0,62,0],[0,0,0,260,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,0,0,137,0,248,248,57,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,246,354,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,126,126,8,23,0,0,0,0,0,0,0,0,0,0],[0,355,90,0,0,121,125,0,9,0,10,0,0,0,42,0,355,0,0],[0,0,0,0,0,356,356,269,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,357,358,359,360,361,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,162,0,0,0,0,0,0,0,0],[0,0,0,0,0,270,0,0,0,0,162,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,363,0,0,0,0,0,0,0,0],[0,0,0,364,116,365,366,8,161,0,162,0,0,367,120,0,0,16,0],[0,0,0,0,0,368,368,0,161,0,162,0,0,0,0,0,0,0,0],[0,0,0,40,0,121,121,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,0,0,0,281,80,80,22,23,0,0,0,0,0,281,0,0,0,0],[0,0,0,369,370,371,372,22,23,0,24,0,0,373,374,0,0,27,0],[0,279,0,375,0,177,177,22,23,0,24,0,0,0,78,0,279,0,0],[0,279,0,0,0,175,376,0,23,0,24,0,0,0,78,0,279,0,0],[0,0,0,377,370,378,379,22,23,0,24,0,0,380,374,0,0,27,0],[0,0,0,90,0,175,175,0,23,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,23,0,0,0,0,286,0,0,0,0,0],[0,0,0,283,0,284,175,0,23,0,24,0,0,286,0,0,0,0,0],[0,0,0,283,0,175,175,0,23,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,85,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,0,0],[0,0,0,0,0,381,381,187,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,382,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,292,293,294,295,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,293,293,295,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,383,383,295,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,384,383,383,295,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,385,76,175,386,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,76,0,175,175,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,0,0,0,301,101,101,32,33,0,0,0,0,0,301,0,0,0,0],[0,0,0,387,388,389,390,32,33,0,34,0,0,391,392,0,0,37,0],[0,299,0,393,0,203,203,32,33,0,34,0,0,0,99,0,299,0,0],[0,299,0,0,0,201,394,0,33,0,34,0,0,0,99,0,299,0,0],[0,0,0,395,388,396,397,32,33,0,34,0,0,398,392,0,0,37,0],[0,0,0,111,0,201,201,0,33,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,33,0,0,0,0,306,0,0,0,0,0],[0,0,0,303,0,304,201,0,33,0,34,0,0,306,0,0,0,0,0],[0,0,0,303,0,201,201,0,33,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,106,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,103,0,0],[0,0,0,0,0,399,399,213,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,400,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,312,313,314,315,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,313,313,315,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,401,401,315,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,402,401,401,315,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,403,97,201,404,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,97,0,201,201,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,405,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,407,0,0,0,40,408,0,9,0,10,0,0,0,42,0,407,0,0],[0,0,0,0,409,44,44,8,9,0,0,0,0,321,409,0,0,0,0],[0,0,0,317,318,319,406,8,9,0,10,0,0,321,322,0,0,16,0],[0,0,0,317,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,410,64,0,0,40,408,0,9,0,10,0,0,0,42,0,410,0,0],[0,223,0,0,0,121,121,0,9,0,10,0,0,0,42,0,223,0,0],[0,223,0,323,0,121,121,0,9,0,10,0,0,0,42,0,223,0,0],[0,0,0,405,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,0,0,0,409,44,44,8,9,0,0,0,0,328,409,0,0,0,0],[0,0,0,325,318,326,406,8,9,0,10,0,0,328,322,0,0,16,0],[0,0,0,325,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,0,0,0,0,0,0,133,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,130,0,0],[0,0,0,0,0,411,411,239,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,412,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,40,121,334,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,413,0,0,0,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,0,0,0,339,141,141,57,58,0,0,0,0,0,339,0,0,0,0],[0,0,0,414,415,416,417,57,58,0,59,0,0,418,419,0,0,62,0],[0,337,0,420,0,248,248,57,58,0,59,0,0,0,139,0,337,0,0],[0,337,0,0,0,246,421,0,58,0,59,0,0,0,139,0,337,0,0],[0,0,0,422,415,423,424,57,58,0,59,0,0,425,419,0,0,62,0],[0,0,0,151,0,246,246,0,58,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,58,0,0,0,0,344,0,0,0,0,0],[0,0,0,341,0,342,246,0,58,0,59,0,0,344,0,0,0,0,0],[0,0,0,341,0,246,246,0,58,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,146,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,143,0,0],[0,0,0,0,0,426,426,258,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,427,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,350,351,352,353,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,351,351,353,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,428,428,353,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,429,428,428,353,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,430,137,246,431,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,137,0,246,246,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,432,116,433,434,8,161,0,162,0,0,435,120,0,0,16,0],[0,0,0,0,0,180,180,269,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,358,359,360,361,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,359,359,361,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,436,436,361,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,437,436,436,361,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,438,439,440,441,442,161,0,162,0,0,0,362,0,0,0,0],[0,443,274,0,0,0,0,0,0,0,0,0,0,0,0,0,443,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,444,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,161,0,0,0,0,367,225,0,0,0,0],[0,0,0,364,116,365,445,8,161,0,162,0,0,367,120,0,0,16,0],[0,0,0,364,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,0,0,0,0,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,446,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,448,0,0,0,76,449,0,23,0,24,0,0,0,78,0,448,0,0],[0,0,0,0,450,80,80,22,23,0,0,0,0,373,450,0,0,0,0],[0,0,0,369,370,371,447,22,23,0,24,0,0,373,374,0,0,27,0],[0,0,0,369,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,451,90,0,0,76,449,0,23,0,24,0,0,0,78,0,451,0,0],[0,279,0,0,0,175,175,0,23,0,24,0,0,0,78,0,279,0,0],[0,279,0,375,0,175,175,0,23,0,24,0,0,0,78,0,279,0,0],[0,0,0,446,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,0,0,0,450,80,80,22,23,0,0,0,0,380,450,0,0,0,0],[0,0,0,377,370,378,447,22,23,0,24,0,0,380,374,0,0,27,0],[0,0,0,377,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,0,0,0,0,0,0,187,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,184,0,0],[0,0,0,0,0,452,452,295,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,453,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,76,175,386,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,454,0,0,0,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,455,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,457,0,0,0,97,458,0,33,0,34,0,0,0,99,0,457,0,0],[0,0,0,0,459,101,101,32,33,0,0,0,0,391,459,0,0,0,0],[0,0,0,387,388,389,456,32,33,0,34,0,0,391,392,0,0,37,0],[0,0,0,387,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,460,111,0,0,97,458,0,33,0,34,0,0,0,99,0,460,0,0],[0,299,0,0,0,201,201,0,33,0,34,0,0,0,99,0,299,0,0],[0,299,0,393,0,201,201,0,33,0,34,0,0,0,99,0,299,0,0],[0,0,0,455,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,0,0,0,459,101,101,32,33,0,0,0,0,398,459,0,0,0,0],[0,0,0,395,388,396,456,32,33,0,34,0,0,398,392,0,0,37,0],[0,0,0,395,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,0,0,0,0,0,0,213,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,210,0,0],[0,0,0,0,0,461,461,315,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,462,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,97,201,404,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,463,0,0,0,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,0,0,0,409,44,44,8,9,0,0,0,0,0,409,0,0,0,0],[0,0,0,464,465,466,467,8,9,0,10,0,0,468,469,0,0,16,0],[0,407,0,470,0,123,123,8,9,0,10,0,0,0,42,0,407,0,0],[0,407,0,0,0,121,471,0,9,0,10,0,0,0,42,0,407,0,0],[0,0,0,472,465,473,474,8,9,0,10,0,0,475,469,0,0,16,0],[0,0,0,0,0,0,0,239,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,236,0,0],[0,0,0,0,0,0,476,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,477,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,479,0,0,0,137,480,0,58,0,59,0,0,0,139,0,479,0,0],[0,0,0,0,481,141,141,57,58,0,0,0,0,418,481,0,0,0,0],[0,0,0,414,415,416,478,57,58,0,59,0,0,418,419,0,0,62,0],[0,0,0,414,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,482,151,0,0,137,480,0,58,0,59,0,0,0,139,0,482,0,0],[0,337,0,0,0,246,246,0,58,0,59,0,0,0,139,0,337,0,0],[0,337,0,420,0,246,246,0,58,0,59,0,0,0,139,0,337,0,0],[0,0,0,477,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,0,0,0,481,141,141,57,58,0,0,0,0,425,481,0,0,0,0],[0,0,0,422,415,423,478,57,58,0,59,0,0,425,419,0,0,62,0],[0,0,0,422,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,0,0,0,0,0,0,258,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0],[0,0,0,0,0,483,483,353,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,484,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,137,246,431,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,485,0,0,0,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,444,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,161,0,0,0,0,435,225,0,0,0,0],[0,0,0,432,116,433,445,8,161,0,162,0,0,435,120,0,0,16,0],[0,0,0,432,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,0,486,486,361,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,487,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,439,440,441,442,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,440,440,442,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,488,488,442,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,489,488,488,442,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,490,491,492,493,494,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,495,0,496,497,0,161,0,162,0,0,498,0,0,0,0,0],[0,0,0,0,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,161,0,0,0,0,0,225,0,0,0,0],[0,0,0,0,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,0,0,0,450,80,80,22,23,0,0,0,0,0,450,0,0,0,0],[0,0,0,499,500,501,502,22,23,0,24,0,0,503,504,0,0,27,0],[0,448,0,505,0,177,177,22,23,0,24,0,0,0,78,0,448,0,0],[0,448,0,0,0,175,506,0,23,0,24,0,0,0,78,0,448,0,0],[0,0,0,507,500,508,509,22,23,0,24,0,0,510,504,0,0,27,0],[0,0,0,0,0,0,0,295,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,292,0,0],[0,0,0,0,0,0,511,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,0,0,0,459,101,101,32,33,0,0,0,0,0,459,0,0,0,0],[0,0,0,512,513,514,515,32,33,0,34,0,0,516,517,0,0,37,0],[0,457,0,518,0,203,203,32,33,0,34,0,0,0,99,0,457,0,0],[0,457,0,0,0,201,519,0,33,0,34,0,0,0,99,0,457,0,0],[0,0,0,520,513,521,522,32,33,0,34,0,0,523,517,0,0,37,0],[0,0,0,0,0,0,0,315,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,312,0,0],[0,0,0,0,0,0,524,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,525,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,527,0,0,0,40,528,0,9,0,10,0,0,0,42,0,527,0,0],[0,0,0,0,529,44,44,8,9,0,0,0,0,468,529,0,0,0,0],[0,0,0,464,465,466,526,8,9,0,10,0,0,468,469,0,0,16,0],[0,0,0,464,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,530,64,0,0,40,528,0,9,0,10,0,0,0,42,0,530,0,0],[0,407,0,0,0,121,121,0,9,0,10,0,0,0,42,0,407,0,0],[0,407,0,470,0,121,121,0,9,0,10,0,0,0,42,0,407,0,0],[0,0,0,525,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,0,0,0,529,44,44,8,9,0,0,0,0,475,529,0,0,0,0],[0,0,0,472,465,473,526,8,9,0,10,0,0,475,469,0,0,16,0],[0,0,0,472,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,0,0],[0,0,0,0,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,0,0,0,481,141,141,57,58,0,0,0,0,0,481,0,0,0,0],[0,0,0,531,532,533,534,57,58,0,59,0,0,535,536,0,0,62,0],[0,479,0,537,0,248,248,57,58,0,59,0,0,0,139,0,479,0,0],[0,479,0,0,0,246,538,0,58,0,59,0,0,0,139,0,479,0,0],[0,0,0,539,532,540,541,57,58,0,59,0,0,542,536,0,0,62,0],[0,0,0,0,0,0,0,353,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,350,0,0],[0,0,0,0,0,0,543,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,361,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,358,0,0],[0,0,0,0,0,544,544,442,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,545,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,491,492,493,494,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,492,492,494,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,546,546,494,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,547,546,546,494,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,548,549,368,550,0,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,274,0,368,368,0,161,0,162,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,161,0,0,0,0,498,0,0,0,0,0],[0,0,0,495,0,496,368,0,161,0,162,0,0,498,0,0,0,0,0],[0,0,0,495,0,368,368,0,161,0,162,0,0,0,0,0,0,0,0],[0,0,0,551,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,553,0,0,0,76,554,0,23,0,24,0,0,0,78,0,553,0,0],[0,0,0,0,555,80,80,22,23,0,0,0,0,503,555,0,0,0,0],[0,0,0,499,500,501,552,22,23,0,24,0,0,503,504,0,0,27,0],[0,0,0,499,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,556,90,0,0,76,554,0,23,0,24,0,0,0,78,0,556,0,0],[0,448,0,0,0,175,175,0,23,0,24,0,0,0,78,0,448,0,0],[0,448,0,505,0,175,175,0,23,0,24,0,0,0,78,0,448,0,0],[0,0,0,551,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,0,0,0,555,80,80,22,23,0,0,0,0,510,555,0,0,0,0],[0,0,0,507,500,508,552,22,23,0,24,0,0,510,504,0,0,27,0],[0,0,0,507,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,76,0,0],[0,0,0,557,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,559,0,0,0,97,560,0,33,0,34,0,0,0,99,0,559,0,0],[0,0,0,0,561,101,101,32,33,0,0,0,0,516,561,0,0,0,0],[0,0,0,512,513,514,558,32,33,0,34,0,0,516,517,0,0,37,0],[0,0,0,512,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,562,111,0,0,97,560,0,33,0,34,0,0,0,99,0,562,0,0],[0,457,0,0,0,201,201,0,33,0,34,0,0,0,99,0,457,0,0],[0,457,0,518,0,201,201,0,33,0,34,0,0,0,99,0,457,0,0],[0,0,0,557,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,0,0,0,561,101,101,32,33,0,0,0,0,523,561,0,0,0,0],[0,0,0,520,513,521,558,32,33,0,34,0,0,523,517,0,0,37,0],[0,0,0,520,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,0,0],[0,0,0,0,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,0,0,0,529,44,44,8,9,0,0,0,0,0,529,0,0,0,0],[0,0,0,563,66,564,565,8,9,0,10,0,0,566,68,0,0,16,0],[0,527,0,567,0,123,123,8,9,0,10,0,0,0,42,0,527,0,0],[0,527,0,0,0,121,568,0,9,0,10,0,0,0,42,0,527,0,0],[0,0,0,569,66,570,571,8,9,0,10,0,0,572,68,0,0,16,0],[0,0,0,573,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,575,0,0,0,137,576,0,58,0,59,0,0,0,139,0,575,0,0],[0,0,0,0,577,141,141,57,58,0,0,0,0,535,577,0,0,0,0],[0,0,0,531,532,533,574,57,58,0,59,0,0,535,536,0,0,62,0],[0,0,0,531,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,578,151,0,0,137,576,0,58,0,59,0,0,0,139,0,578,0,0],[0,479,0,0,0,246,246,0,58,0,59,0,0,0,139,0,479,0,0],[0,479,0,537,0,246,246,0,58,0,59,0,0,0,139,0,479,0,0],[0,0,0,573,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,0,0,0,577,141,141,57,58,0,0,0,0,542,577,0,0,0,0],[0,0,0,539,532,540,574,57,58,0,59,0,0,542,536,0,0,62,0],[0,0,0,539,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,137,0,0],[0,0,0,0,0,0,0,442,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,439,0,0],[0,0,0,0,0,579,579,494,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,580,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,549,368,550,0,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,368,368,0,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,581,0,0,0,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,0,0,0,555,80,80,22,23,0,0,0,0,0,555,0,0,0,0],[0,0,0,582,91,583,584,22,23,0,24,0,0,585,93,0,0,27,0],[0,553,0,586,0,177,177,22,23,0,24,0,0,0,78,0,553,0,0],[0,553,0,0,0,175,587,0,23,0,24,0,0,0,78,0,553,0,0],[0,0,0,588,91,589,590,22,23,0,24,0,0,591,93,0,0,27,0],[0,0,0,0,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,0,0,0,561,101,101,32,33,0,0,0,0,0,561,0,0,0,0],[0,0,0,592,112,593,594,32,33,0,34,0,0,595,114,0,0,37,0],[0,559,0,596,0,203,203,32,33,0,34,0,0,0,99,0,559,0,0],[0,559,0,0,0,201,597,0,33,0,34,0,0,0,99,0,559,0,0],[0,0,0,598,112,599,600,32,33,0,34,0,0,601,114,0,0,37,0],[0,0,0,602,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,0,0,0,165,44,44,8,9,0,0,0,0,566,165,0,0,0,0],[0,0,0,563,66,564,67,8,9,0,10,0,0,566,68,0,0,16,0],[0,0,0,563,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,527,0,0,0,121,121,0,9,0,10,0,0,0,42,0,527,0,0],[0,527,0,567,0,121,121,0,9,0,10,0,0,0,42,0,527,0,0],[0,0,0,602,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,0,0,0,165,44,44,8,9,0,0,0,0,572,165,0,0,0,0],[0,0,0,569,66,570,67,8,9,0,10,0,0,572,68,0,0,16,0],[0,0,0,569,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,0,0,0,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,0,0,0,577,141,141,57,58,0,0,0,0,0,577,0,0,0,0],[0,0,0,603,152,604,605,57,58,0,59,0,0,606,154,0,0,62,0],[0,575,0,607,0,248,248,57,58,0,59,0,0,0,139,0,575,0,0],[0,575,0,0,0,246,608,0,58,0,59,0,0,0,139,0,575,0,0],[0,0,0,609,152,610,611,57,58,0,59,0,0,612,154,0,0,62,0],[0,0,0,0,0,0,0,494,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,491,0,0],[0,0,0,0,0,0,613,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,614,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,0,0,0,194,80,80,22,23,0,0,0,0,585,194,0,0,0,0],[0,0,0,582,91,583,92,22,23,0,24,0,0,585,93,0,0,27,0],[0,0,0,582,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,553,0,0,0,175,175,0,23,0,24,0,0,0,78,0,553,0,0],[0,553,0,586,0,175,175,0,23,0,24,0,0,0,78,0,553,0,0],[0,0,0,614,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,0,0,0,194,80,80,22,23,0,0,0,0,591,194,0,0,0,0],[0,0,0,588,91,589,92,22,23,0,24,0,0,591,93,0,0,27,0],[0,0,0,588,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,0,0,615,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,0,0,0,220,101,101,32,33,0,0,0,0,595,220,0,0,0,0],[0,0,0,592,112,593,113,32,33,0,34,0,0,595,114,0,0,37,0],[0,0,0,592,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,559,0,0,0,201,201,0,33,0,34,0,0,0,99,0,559,0,0],[0,559,0,596,0,201,201,0,33,0,34,0,0,0,99,0,559,0,0],[0,0,0,615,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,0,0,0,220,101,101,32,33,0,0,0,0,601,220,0,0,0,0],[0,0,0,598,112,599,113,32,33,0,34,0,0,601,114,0,0,37,0],[0,0,0,598,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,0,0,0,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,0,0,616,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0],[0,0,0,0,265,141,141,57,58,0,0,0,0,606,265,0,0,0,0],[0,0,0,603,152,604,153,57,58,0,59,0,0,606,154,0,0,62,0],[0,0,0,603,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0],[0,575,0,0,0,246,246,0,58,0,59,0,0,0,139,0,575,0,0],[0,575,0,607,0,246,246,0,58,0,59,0,0,0,139,0,575,0,0],[0,0,0,616,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0],[0,0,0,0,265,141,141,57,58,0,0,0,0,612,265,0,0,0,0],[0,0,0,609,152,610,153,57,58,0,59,0,0,612,154,0,0,62,0],[0,0,0,609,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,549,0,0],[0,0,0,0,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,0,0,0,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,0,0,0,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0]],"accepting":[false,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,false,true,false,true,true,false,false,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,false,true,true,false,true,true,true,false,true,true,true,false,true,false,true,true,false,false,true,true,true,true,true,true,true,false,true,true,false,true,true,true,false,true,false,true,true,false,false,true,true,true,true,true,true,true,false,true,true,true,false,true,true,true,false,true,false,true,true,false,false,false,true,true,false,false,true,true,true,true,true,true,false,true,false,true,true,false,false,true,true,true,true,true,true,true,false,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,false,true,false,true,true,false,false,false,true,true,false,false,true,true,true,false,true,true,true,true,true,true,false,true,true,true,false,true,false,true,true,false,false,false,true,true,false,false,true,true,true,false,true,true,true,true,true,false,true,true,true,true,true,false,true,true,false,false,false,false,true,true,false,false,true,true,true,false,true,true,true,false,true,false,true,true,false,false,false,true,true,false,false,true,true,true,false,true,true,true,true,false,true,false,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,false,true,true,false,false,false,false,true,true,false,false,true,true,true,false,true,true,true,true,true,false,true,true,false,false,false,false,true,true,false,false,true,true,true,true,false,true,true,true,true,true,true,false,true,true,false,false,false,false,true,false,true,false,true,true,true,true,true,false,true,true,false,false,false,false,true,true,false,false,true,true,true,false,true,true,false,false,true,false,true,true,false,true,true,false,true,true,false,true,true,true,true,true,true,false,true,true,false,false,false,false,true,false,true,true,false,true,true,true,true,true,true,false,true,true,false,false,false,false,true,false,true,false,true,true,true,true,false,false,false,true,true,false,true,true,true,true,true,true,false,true,true,false,false,false,false,true,false,true,false,true,true,false,false,true,true,false,false,true,true,true,false,true,false,true,true,true,true,false,false,false,true,false,true,true,true,true,false,false,false,true,true,false,true,true,true,true,true,true,false,true,true,false,true,false,true,true,true,true,false,false,false,false,false,false,false,true,true,false,false,true,true,false,true,true,true,true,false,true,true,true,true,true,true,false,true,true,false,true,true,false,true,true,true,true,true,true,false,true,true,false,true,false,true,true,true,true,true,true,false,true,true,true,true,true,true,false,true,true,false,false,false,false,false,true,true,false,true,false,true,true,true,true,true,false,true,true,true,true,true,false,true,true,true,true,true,false,true,true,true,false,true,true,true,true,false,false,false,true,false,true,true,true,true,true,false,true,true,true,false,true,true,true,true,true,false,true,true,true,true,false,true,true,true,true,true,false,true,true,false,true,true,true],"tags":[[],["broken_cluster"],["consonant_syllable"],["vowel_syllable"],["broken_cluster"],["broken_cluster"],[],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["standalone_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["consonant_syllable"],["broken_cluster"],["symbol_cluster"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],[],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["standalone_cluster"],["standalone_cluster"],[],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["broken_cluster"],["broken_cluster"],["consonant_syllable","broken_cluster"],["broken_cluster"],[],["broken_cluster"],["symbol_cluster"],[],["symbol_cluster"],["symbol_cluster"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],[],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],[],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],[],[],[],["broken_cluster"],["broken_cluster"],[],[],["broken_cluster"],["broken_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],[],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["symbol_cluster"],["symbol_cluster"],["symbol_cluster"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],[],[],[],["consonant_syllable"],["consonant_syllable"],[],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],[],[],[],["vowel_syllable"],["vowel_syllable"],[],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],[],[],[],[],["broken_cluster"],["broken_cluster"],[],[],["broken_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],[],[],[],["standalone_cluster"],["standalone_cluster"],[],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["broken_cluster"],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["broken_cluster"],["symbol_cluster"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],[],[],[],[],["consonant_syllable"],["consonant_syllable"],[],[],["consonant_syllable"],["consonant_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],[],[],[],[],["vowel_syllable"],["vowel_syllable"],[],[],["vowel_syllable"],["vowel_syllable"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],[],[],[],[],["broken_cluster"],[],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],[],[],[],[],["standalone_cluster"],["standalone_cluster"],[],[],["standalone_cluster"],["standalone_cluster"],["consonant_syllable","broken_cluster"],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],[],["consonant_syllable","broken_cluster"],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],[],[],[],[],["consonant_syllable"],[],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],[],[],[],[],["vowel_syllable"],[],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],[],[],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],[],[],[],[],["standalone_cluster"],[],["consonant_syllable","broken_cluster"],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],[],[],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],[],[],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],[],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],[],[],[],[],[],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],[],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],[],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],[],[],[],[],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],[],[],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["broken_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],[],["consonant_syllable"],["vowel_syllable"],["standalone_cluster"]]}');var wr={};wr=JSON.parse('{"categories":["O","IND","S","GB","B","FM","CGJ","VMAbv","VMPst","VAbv","VPst","CMBlw","VPre","VBlw","H","VMBlw","CMAbv","MBlw","CS","R","SUB","MPst","MPre","FAbv","FPst","FBlw","null","SMAbv","SMBlw","VMPre","ZWNJ","ZWJ","WJ","M","VS","N","HN","MAbv"],"decompositions":{"2507":[2503,2494],"2508":[2503,2519],"2888":[2887,2902],"2891":[2887,2878],"2892":[2887,2903],"3018":[3014,3006],"3019":[3015,3006],"3020":[3014,3031],"3144":[3142,3158],"3264":[3263,3285],"3271":[3270,3285],"3272":[3270,3286],"3274":[3270,3266],"3275":[3270,3266,3285],"3402":[3398,3390],"3403":[3399,3390],"3404":[3398,3415],"3546":[3545,3530],"3548":[3545,3535],"3549":[3545,3535,3530],"3550":[3545,3551],"3635":[3661,3634],"3763":[3789,3762],"3955":[3953,3954],"3957":[3953,3956],"3958":[4018,3968],"3959":[4018,3953,3968],"3960":[4019,3968],"3961":[4019,3953,3968],"3969":[3953,3968],"6971":[6970,6965],"6973":[6972,6965],"6976":[6974,6965],"6977":[6975,6965],"6979":[6978,6965],"69934":[69937,69927],"69935":[69938,69927],"70475":[70471,70462],"70476":[70471,70487],"70843":[70841,70842],"70844":[70841,70832],"70846":[70841,70845],"71098":[71096,71087],"71099":[71097,71087]},"stateTable":[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[2,2,3,4,4,5,0,6,7,8,9,10,11,12,13,14,15,16,0,17,18,11,19,20,21,22,0,0,0,23,0,0,2,0,0,24,0,25],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,28,0,0,0,0,0,27,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,34,35,36,37,38,39,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,39,0,0,47],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,0,0,0,0,0,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,8,9,0,0,12,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,0,9,0,0,0,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,8,9,10,11,12,13,14,0,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,0,11,12,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,0,9,0,0,12,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,0,7,0,0,0,0,0,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,8,9,10,11,12,13,14,15,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,0,11,12,0,14,0,0,0,0,0,11,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,4,4,5,0,6,7,8,9,10,11,12,13,14,15,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,48,11,12,13,14,48,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,49,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,0,11,12,0,14,0,16,0,0,0,11,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,0,0,0,0,0,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,0,51,0],[0,0,0,0,0,5,0,6,7,8,9,0,11,12,0,14,0,16,0,0,0,11,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,28,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,0,0,0,0,0,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,43,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,0,0,36,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,0,33,0,0,0,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,34,35,36,37,38,0,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,29,0,30,31,32,33,0,35,36,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,0,33,0,0,36,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,0,31,0,0,0,0,0,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,34,35,36,37,38,39,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,29,0,30,31,32,33,0,35,36,0,38,0,0,0,0,0,35,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,52,35,36,37,38,52,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,53,0,0,47],[0,0,0,0,0,29,0,30,31,32,33,0,35,36,0,38,0,40,0,0,0,35,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,43,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,0,0,0,0,0,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,0,35,36,0,38,0,40,0,0,0,35,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,8,9,48,11,12,13,14,0,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,48,11,12,13,14,48,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,51,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,54,0,0],[0,0,0,0,0,29,0,30,31,32,33,52,35,36,37,38,0,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,29,0,30,31,32,33,52,35,36,37,38,52,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,0,51,0]],"accepting":[false,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],"tags":[[],["broken_cluster"],["independent_cluster"],["symbol_cluster"],["standard_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["numeral_cluster"],["broken_cluster"],["independent_cluster"],["symbol_cluster"],["symbol_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["virama_terminated_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["broken_cluster"],["broken_cluster"],["numeral_cluster"],["number_joiner_terminated_cluster"],["standard_cluster"],["standard_cluster"],["numeral_cluster"]]}');const Ne={X:1,C:2,V:4,N:8,H:16,ZWNJ:32,ZWJ:64,M:128,Placeholder:2048,Dotted_Circle:4096,RS:8192,Coeng:16384,Repha:32768,Ra:65536,CM:131072},fe={Start:1,Ra_To_Become_Reph:2,Pre_M:4,Pre_C:8,Base_C:16,After_Main:32,Before_Sub:128,Below_C:256,After_Sub:512,Before_Post:1024,Post_C:2048,After_Post:4096,Final_C:8192,SMVD:16384,End:32768},_3=Ne.C|Ne.Ra|Ne.CM|Ne.V|Ne.Placeholder|Ne.Dotted_Circle,Wf=Ne.ZWJ|Ne.ZWNJ,si=Ne.H|Ne.Coeng,Yf={Default:{hasOldSpec:!1,virama:0,basePos:"Last",rephPos:fe.Before_Post,rephMode:"Implicit",blwfMode:"Pre_And_Post"},Devanagari:{hasOldSpec:!0,virama:2381,basePos:"Last",rephPos:fe.Before_Post,rephMode:"Implicit",blwfMode:"Pre_And_Post"},Bengali:{hasOldSpec:!0,virama:2509,basePos:"Last",rephPos:fe.After_Sub,rephMode:"Implicit",blwfMode:"Pre_And_Post"},Gurmukhi:{hasOldSpec:!0,virama:2637,basePos:"Last",rephPos:fe.Before_Sub,rephMode:"Implicit",blwfMode:"Pre_And_Post"},Gujarati:{hasOldSpec:!0,virama:2765,basePos:"Last",rephPos:fe.Before_Post,rephMode:"Implicit",blwfMode:"Pre_And_Post"},Oriya:{hasOldSpec:!0,virama:2893,basePos:"Last",rephPos:fe.After_Main,rephMode:"Implicit",blwfMode:"Pre_And_Post"},Tamil:{hasOldSpec:!0,virama:3021,basePos:"Last",rephPos:fe.After_Post,rephMode:"Implicit",blwfMode:"Pre_And_Post"},Telugu:{hasOldSpec:!0,virama:3149,basePos:"Last",rephPos:fe.After_Post,rephMode:"Explicit",blwfMode:"Post_Only"},Kannada:{hasOldSpec:!0,virama:3277,basePos:"Last",rephPos:fe.After_Post,rephMode:"Implicit",blwfMode:"Post_Only"},Malayalam:{hasOldSpec:!0,virama:3405,basePos:"Last",rephPos:fe.After_Main,rephMode:"Log_Repha",blwfMode:"Pre_And_Post"},Khmer:{hasOldSpec:!1,virama:6098,basePos:"First",rephPos:fe.Ra_To_Become_Reph,rephMode:"Vis_Repha",blwfMode:"Pre_And_Post"}},F3={6078:[6081,6078],6079:[6081,6079],6080:[6081,6080],6084:[6081,6084],6085:[6081,6085]},{decompositions:T3}=qi(wr),Hf=new Yi($n("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")),P3=new Sc(qi(Gf));class at extends Ts{static planFeatures(e){e.addStage(E3),e.addStage(["locl","ccmp"]),e.addStage(M3),e.addStage("nukt"),e.addStage("akhn"),e.addStage("rphf",!1),e.addStage("rkrf"),e.addStage("pref",!1),e.addStage("blwf",!1),e.addStage("abvf",!1),e.addStage("half",!1),e.addStage("pstf",!1),e.addStage("vatu"),e.addStage("cjct"),e.addStage("cfar",!1),e.addStage(R3),e.addStage({local:["init"],global:["pres","abvs","blws","psts","haln","dist","abvm","blwm","calt","clig"]}),e.unicodeScript=Nv(e.script),e.indicConfig=Yf[e.unicodeScript]||Yf.Default,e.isOldSpec=e.indicConfig.hasOldSpec&&e.script[e.script.length-1]!=="2"}static assignFeatures(e,s){for(let a=s.length-1;a>=0;a--){let i=s[a].codePoints[0],r=F3[i]||T3[i];if(r){let n=r.map(o=>{let l=e.font.glyphForCodePoint(o);return new Zt(e.font,l.id,[o],s[a].features)});s.splice(a,1,...n)}}}}St(at,"zeroMarkWidths","NONE");function lo(t){return Hf.get(t.codePoints[0])>>8}function jf(t){return 1<<(Hf.get(t.codePoints[0])&255)}class vr{constructor(e,s,a,i){this.category=e,this.position=s,this.syllableType=a,this.syllable=i}}function E3(t,e){let s=0,a=0;for(let[i,r,n]of P3.match(e.map(lo))){if(i>a){++s;for(let o=a;o<i;o++)e[o].shaperInfo=new vr(Ne.X,fe.End,"non_indic_cluster",s)}++s;for(let o=i;o<=r;o++)e[o].shaperInfo=new vr(1<<lo(e[o]),jf(e[o]),n[0],s);a=r+1}if(a<e.length){++s;for(let i=a;i<e.length;i++)e[i].shaperInfo=new vr(Ne.X,fe.End,"non_indic_cluster",s)}}function Xs(t){return t.shaperInfo.category&_3}function is(t){return t.shaperInfo.category&Wf}function us(t){return t.shaperInfo.category&si}function hs(t,e){for(let a of t)a.features={[e]:!0};return t[0]._font._layoutEngine.engine.GSUBProcessor.applyFeatures([e],t),t.length===1}function O3(t,e,s){let a=[s,e,s];return hs(a.slice(0,2),"blwf")||hs(a.slice(1,3),"blwf")?fe.Below_C:hs(a.slice(0,2),"pstf")||hs(a.slice(1,3),"pstf")||hs(a.slice(0,2),"pref")||hs(a.slice(1,3),"pref")?fe.Post_C:fe.Base_C}function M3(t,e,s){let a=s.indicConfig,i=t._layoutEngine.engine.GSUBProcessor.features,r=t.glyphForCodePoint(9676).id,n=t.glyphForCodePoint(a.virama).id;if(n){let o=new Zt(t,n,[a.virama]);for(let l=0;l<e.length;l++)e[l].shaperInfo.position===fe.Base_C&&(e[l].shaperInfo.position=O3(t,e[l].copy(),o))}for(let o=0,l=xr(e,0);o<e.length;o=l,l=xr(e,o)){let{category:c,syllableType:f}=e[o].shaperInfo;if(f==="symbol_cluster"||f==="non_indic_cluster")continue;if(f==="broken_cluster"&&r){let v=new Zt(t,r,[9676]);v.shaperInfo=new vr(1<<lo(v),jf(v),e[o].shaperInfo.syllableType,e[o].shaperInfo.syllable);let F=o;for(;F<l&&e[F].shaperInfo.category===Ne.Repha;)F++;e.splice(F++,0,v),l++}let h=l,d=o,m=!1;if(a.rephPos!==fe.Ra_To_Become_Reph&&i.rphf&&o+3<=l&&(a.rephMode==="Implicit"&&!is(e[o+2])||a.rephMode==="Explicit"&&e[o+2].shaperInfo.category===Ne.ZWJ)){let v=[e[o].copy(),e[o+1].copy(),e[o+2].copy()];if(hs(v.slice(0,2),"rphf")||a.rephMode==="Explicit"&&hs(v,"rphf")){for(d+=2;d<l&&is(e[d]);)d++;h=o,m=!0}}else if(a.rephMode==="Log_Repha"&&e[o].shaperInfo.category===Ne.Repha){for(d++;d<l&&is(e[d]);)d++;h=o,m=!0}switch(a.basePos){case"Last":{let v=l,F=!1;do{let y=e[--v].shaperInfo;if(Xs(e[v])){if(y.position!==fe.Below_C&&(y.position!==fe.Post_C||F)){h=v;break}y.position===fe.Below_C&&(F=!0),h=v}else if(o<v&&y.category===Ne.ZWJ&&e[v-1].shaperInfo.category===Ne.H)break}while(v>d);break}case"First":h=o;for(let v=h+1;v<l;v++)Xs(e[v])&&(e[v].shaperInfo.position=fe.Below_C)}m&&h===o&&d-h<=2&&(m=!1);for(let v=o;v<h;v++){let F=e[v].shaperInfo;F.position=Math.min(fe.Pre_C,F.position)}h<l&&(e[h].shaperInfo.position=fe.Base_C);for(let v=h+1;v<l;v++)if(e[v].shaperInfo.category===Ne.M){for(let F=v+1;F<l;F++)if(Xs(e[F])){e[F].shaperInfo.position=fe.Final_C;break}break}if(m&&(e[o].shaperInfo.position=fe.Ra_To_Become_Reph),s.isOldSpec){let v=s.unicodeScript!=="Malayalam";for(let F=h+1;F<l;F++)if(e[F].shaperInfo.category===Ne.H){let y;for(y=l-1;y>F&&!(Xs(e[y])||v&&e[y].shaperInfo.category===Ne.H);y--);if(e[y].shaperInfo.category!==Ne.H&&y>F){let Z=e[F];e.splice(F,0,...e.splice(F+1,y-F)),e[y]=Z}break}}let b=fe.Start;for(let v=o;v<l;v++){let F=e[v].shaperInfo;if(F.category&(Wf|Ne.N|Ne.RS|Ne.CM|si&F.category)){if(F.position=b,F.category===Ne.H&&F.position===fe.Pre_M){for(let y=v;y>o;y--)if(e[y-1].shaperInfo.position!==fe.Pre_M){F.position=e[y-1].shaperInfo.position;break}}}else F.position!==fe.SMVD&&(b=F.position)}let I=h;for(let v=h+1;v<l;v++)if(Xs(e[v])){for(let F=I+1;F<v;F++)e[F].shaperInfo.position<fe.SMVD&&(e[F].shaperInfo.position=e[v].shaperInfo.position);I=v}else e[v].shaperInfo.category===Ne.M&&(I=v);let M=e.slice(o,l);M.sort((v,F)=>v.shaperInfo.position-F.shaperInfo.position),e.splice(o,M.length,...M);for(let v=o;v<l;v++)if(e[v].shaperInfo.position===fe.Base_C){h=v;break}for(let v=o;v<l&&e[v].shaperInfo.position===fe.Ra_To_Become_Reph;v++)e[v].features.rphf=!0;let E=!s.isOldSpec&&a.blwfMode==="Pre_And_Post";for(let v=o;v<h;v++)e[v].features.half=!0,E&&(e[v].features.blwf=!0);for(let v=h+1;v<l;v++)e[v].features.abvf=!0,e[v].features.pstf=!0,e[v].features.blwf=!0;if(s.isOldSpec&&s.unicodeScript==="Devanagari")for(let v=o;v+1<h;v++)e[v].shaperInfo.category===Ne.Ra&&e[v+1].shaperInfo.category===Ne.H&&(v+1===h||e[v+2].shaperInfo.category===Ne.ZWJ)&&(e[v].features.blwf=!0,e[v+1].features.blwf=!0);let V=2;if(i.pref&&h+V<l)for(let v=h+1;v+V-1<l;v++){let F=[e[v].copy(),e[v+1].copy()];if(hs(F,"pref")){for(let y=0;y<V;y++)e[v++].features.pref=!0;if(i.cfar)for(;v<l;v++)e[v].features.cfar=!0;break}}for(let v=o+1;v<l;v++)if(is(e[v])){let F=e[v].shaperInfo.category===Ne.ZWNJ,y=v;do y--,F&&delete e[y].features.half;while(y>o&&!Xs(e[y]))}}}function R3(t,e,s){let a=s.indicConfig,i=t._layoutEngine.engine.GSUBProcessor.features;for(let r=0,n=xr(e,0);r<e.length;r=n,n=xr(e,r)){let o=!!i.pref,l=r;for(;l<n;l++)if(e[l].shaperInfo.position>=fe.Base_C){if(o&&l+1<n){for(let c=l+1;c<n;c++)if(e[c].features.pref){if(!(e[c].substituted&&e[c].isLigated&&!e[c].isMultiplied)){for(l=c;l<n&&us(e[l]);)l++;e[l].shaperInfo.position=fe.BASE_C,o=!1}break}}if(s.unicodeScript==="Malayalam")for(let c=l+1;c<n;c++){for(;c<n&&is(e[c]);)c++;if(c===n||!us(e[c]))break;for(c++;c<n&&is(e[c]);)c++;c<n&&Xs(e[c])&&e[c].shaperInfo.position===fe.Below_C&&(l=c,e[l].shaperInfo.position=fe.Base_C)}r<l&&e[l].shaperInfo.position>fe.Base_C&&l--;break}if(l===n&&r<l&&e[l-1].shaperInfo.category===Ne.ZWJ&&l--,l<n)for(;r<l&&e[l].shaperInfo.category&(Ne.N|si);)l--;if(r+1<n&&r<l){let c=l===n?l-2:l-1;if(s.unicodeScript!=="Malayalam"&&s.unicodeScript!=="Tamil"){for(;c>r&&!(e[c].shaperInfo.category&(Ne.M|si));)c--;us(e[c])&&e[c].shaperInfo.position!==fe.Pre_M?c+1<n&&is(e[c+1])&&c++:c=r}if(r<c&&e[c].shaperInfo.position!==fe.Pre_M){for(let f=c;f>r;f--)if(e[f-1].shaperInfo.position===fe.Pre_M){let h=f-1;h<l&&l<=c&&l--;let d=e[h];e.splice(h,0,...e.splice(h+1,c-h)),e[c]=d,c--}}}if(r+1<n&&e[r].shaperInfo.position===fe.Ra_To_Become_Reph&&e[r].shaperInfo.category===Ne.Repha!==(e[r].isLigated&&!e[r].isMultiplied)){let c,f=a.rephPos,h=!1;if(f!==fe.After_Post){for(c=r+1;c<l&&!us(e[c]);)c++;if(c<l&&us(e[c])&&(c+1<l&&is(e[c+1])&&c++,h=!0),!h&&f===fe.After_Main){for(c=l;c+1<n&&e[c+1].shaperInfo.position<=fe.After_Main;)c++;h=c<n}if(!h&&f===fe.After_Sub){for(c=l;c+1<n&&!(e[c+1].shaperInfo.position&(fe.Post_C|fe.After_Post|fe.SMVD));)c++;h=c<n}}if(!h){for(c=r+1;c<l&&!us(e[c]);)c++;c<l&&us(e[c])&&(c+1<l&&is(e[c+1])&&c++,h=!0)}if(!h){for(c=n-1;c>r&&e[c].shaperInfo.position===fe.SMVD;)c--;if(us(e[c]))for(let m=l+1;m<c;m++)e[m].shaperInfo.category===Ne.M&&c--}let d=e[r];e.splice(r,0,...e.splice(r+1,c-r)),e[c]=d,r<l&&l<=c&&l--}if(o&&l+1<n){for(let c=l+1;c<n;c++)if(e[c].features.pref){if(e[c].isLigated&&!e[c].isMultiplied){let f=l;if(s.unicodeScript!=="Malayalam"&&s.unicodeScript!=="Tamil"){for(;f>r&&!(e[f-1].shaperInfo.category&(Ne.M|si));)f--;if(f>r&&e[f-1].shaperInfo.category===Ne.M){let m=c;for(let b=l+1;b<m;b++)if(e[b].shaperInfo.category===Ne.M){f--;break}}}f>r&&us(e[f-1])&&f<n&&is(e[f])&&f++;let h=c,d=e[h];e.splice(f+1,0,...e.splice(f,h-f)),e[f]=d,f<=l&&l<h&&l++}break}}e[r].shaperInfo.position===fe.Pre_M&&(!r||!/Cf|Mn/.test(ji(e[r-1].codePoints[0])))&&(e[r].features.init=!0)}}function xr(t,e){if(e>=t.length)return e;let s=t[e].shaperInfo.syllable;for(;++e<t.length&&t[e].shaperInfo.syllable===s;);return e}const{categories:z3,decompositions:Kf}=qi(wr),L3=new Yi($n("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")),D3=new Sc(qi(wr));class xe extends Ts{static planFeatures(e){e.addStage(U3),e.addStage(["locl","ccmp","nukt","akhn"]),e.addStage(qf),e.addStage(["rphf"],!1),e.addStage(Z3),e.addStage(qf),e.addStage(["pref"]),e.addStage(G3),e.addStage(["rkrf","abvf","blwf","half","pstf","vatu","cjct"]),e.addStage(W3),e.addStage(["abvs","blws","pres","psts","dist","abvm","blwm"])}static assignFeatures(e,s){for(let a=s.length-1;a>=0;a--){let i=s[a].codePoints[0];if(Kf[i]){let r=Kf[i].map(n=>{let o=e.font.glyphForCodePoint(n);return new Zt(e.font,o.id,[n],s[a].features)});s.splice(a,1,...r)}}}}St(xe,"zeroMarkWidths","BEFORE_GPOS");function Xf(t){return L3.get(t.codePoints[0])}class B3{constructor(e,s,a){this.category=e,this.syllableType=s,this.syllable=a}}function U3(t,e){let s=0;for(let[a,i,r]of D3.match(e.map(Xf))){++s;for(let o=a;o<=i;o++)e[o].shaperInfo=new B3(z3[Xf(e[o])],r[0],s);let n=e[a].shaperInfo.category==="R"?1:Math.min(3,i-a);for(let o=a;o<a+n;o++)e[o].features.rphf=!0}}function qf(t,e){for(let s of e)s.substituted=!1}function Z3(t,e){for(let s of e)s.substituted&&s.features.rphf&&(s.shaperInfo.category="R")}function G3(t,e){for(let s of e)s.substituted&&(s.shaperInfo.category="VPre")}function W3(t,e){let s=t.glyphForCodePoint(9676).id;for(let a=0,i=Jf(e,0);a<e.length;a=i,i=Jf(e,a)){let r,n,o=e[a].shaperInfo,l=o.syllableType;if(!(l!=="virama_terminated_cluster"&&l!=="standard_cluster"&&l!=="broken_cluster")){if(l==="broken_cluster"&&s){let c=new Zt(t,s,[9676]);for(c.shaperInfo=o,r=a;r<i&&e[r].shaperInfo.category==="R";r++);e.splice(++r,0,c),i++}if(o.category==="R"&&i-a>1){for(r=a+1;r<i;r++)if(o=e[r].shaperInfo,Qf(o)||Cr(e[r])){Cr(e[r])&&r--,e.splice(a,0,...e.splice(a+1,r-a),e[r]);break}}for(r=a,n=i;r<i;r++)o=e[r].shaperInfo,Qf(o)||Cr(e[r])?n=Cr(e[r])?r+1:r:(o.category==="VPre"||o.category==="VMPre")&&n<r&&e.splice(n,1,e[r],...e.splice(n,r-n))}}}function Jf(t,e){if(e>=t.length)return e;let s=t[e].shaperInfo.syllable;for(;++e<t.length&&t[e].shaperInfo.syllable===s;);return e}function Cr(t){return t.shaperInfo.category==="H"&&!t.isLigated}function Qf(t){return t.category==="B"||t.category==="GB"}const Y3={arab:Es,mong:Es,syrc:Es,"nko ":Es,phag:Es,mand:Es,mani:Es,phlp:Es,hang:Lf,bng2:at,beng:at,dev2:at,deva:at,gjr2:at,gujr:at,guru:at,gur2:at,knda:at,knd2:at,mlm2:at,mlym:at,ory2:at,orya:at,taml:at,tml2:at,telu:at,tel2:at,khmr:at,bali:xe,batk:xe,brah:xe,bugi:xe,buhd:xe,cakm:xe,cham:xe,dupl:xe,egyp:xe,gran:xe,hano:xe,java:xe,kthi:xe,kali:xe,khar:xe,khoj:xe,sind:xe,lepc:xe,limb:xe,mahj:xe,mtei:xe,modi:xe,hmng:xe,rjng:xe,saur:xe,shrd:xe,sidd:xe,sinh:at,sund:xe,sylo:xe,tglg:xe,tagb:xe,tale:xe,lana:xe,tavt:xe,takr:xe,tibt:xe,tfng:xe,tirh:xe,latn:Ts,DFLT:Ts};function H3(t){Array.isArray(t)||(t=[t]);for(let e of t){let s=Y3[e];if(s)return s}return Ts}class j3 extends hr{applyLookup(e,s){switch(e){case 1:{let i=this.coverageIndex(s.coverage);if(i===-1)return!1;let r=this.glyphIterator.cur;switch(s.version){case 1:r.id=r.id+s.deltaGlyphID&65535;break;case 2:r.id=s.substitute.get(i);break}return!0}case 2:{let i=this.coverageIndex(s.coverage);if(i!==-1){let r=s.sequences.get(i);if(r.length===0)return this.glyphs.splice(this.glyphIterator.index,1),!0;this.glyphIterator.cur.id=r[0],this.glyphIterator.cur.ligatureComponent=0;let n=this.glyphIterator.cur.features,o=this.glyphIterator.cur,l=r.slice(1).map((c,f)=>{let h=new Zt(this.font,c,void 0,n);return h.shaperInfo=o.shaperInfo,h.isLigated=o.isLigated,h.ligatureComponent=f+1,h.substituted=!0,h.isMultiplied=!0,h});return this.glyphs.splice(this.glyphIterator.index+1,0,...l),!0}return!1}case 3:{let i=this.coverageIndex(s.coverage);if(i!==-1){let r=0;return this.glyphIterator.cur.id=s.alternateSet.get(i)[r],!0}return!1}case 4:{let i=this.coverageIndex(s.coverage);if(i===-1)return!1;for(let r of s.ligatureSets.get(i)){let n=this.sequenceMatchIndices(1,r.components);if(!n)continue;let o=this.glyphIterator.cur,l=o.codePoints.slice();for(let I of n)l.push(...this.glyphs[I].codePoints);let c=new Zt(this.font,r.glyph,l,o.features);c.shaperInfo=o.shaperInfo,c.isLigated=!0,c.substituted=!0;let f=o.isMark;for(let I=0;I<n.length&&f;I++)f=this.glyphs[n[I]].isMark;c.ligatureID=f?null:this.ligatureID++;let h=o.ligatureID,d=o.codePoints.length,m=d,b=this.glyphIterator.index+1;for(let I of n){if(f)b=I;else for(;b<I;){var a=m-d+Math.min(this.glyphs[b].ligatureComponent||1,d);this.glyphs[b].ligatureID=c.ligatureID,this.glyphs[b].ligatureComponent=a,b++}h=this.glyphs[b].ligatureID,d=this.glyphs[b].codePoints.length,m+=d,b++}if(h&&!f)for(let I=b;I<this.glyphs.length&&this.glyphs[I].ligatureID===h;I++){var a=m-d+Math.min(this.glyphs[I].ligatureComponent||1,d);this.glyphs[I].ligatureComponent=a}for(let I=n.length-1;I>=0;I--)this.glyphs.splice(n[I],1);return this.glyphs[this.glyphIterator.index]=c,!0}return!1}case 5:return this.applyContext(s);case 6:return this.applyChainingContext(s);case 7:return this.applyLookup(s.lookupType,s.extension);default:throw new Error(`GSUB lookupType ${e} is not supported`)}}}class K3 extends hr{applyPositionValue(e,s){let a=this.positions[this.glyphIterator.peekIndex(e)];s.xAdvance!=null&&(a.xAdvance+=s.xAdvance),s.yAdvance!=null&&(a.yAdvance+=s.yAdvance),s.xPlacement!=null&&(a.xOffset+=s.xPlacement),s.yPlacement!=null&&(a.yOffset+=s.yPlacement);let i=this.font._variationProcessor,r=this.font.GDEF&&this.font.GDEF.itemVariationStore;i&&r&&(s.xPlaDevice&&(a.xOffset+=i.getDelta(r,s.xPlaDevice.a,s.xPlaDevice.b)),s.yPlaDevice&&(a.yOffset+=i.getDelta(r,s.yPlaDevice.a,s.yPlaDevice.b)),s.xAdvDevice&&(a.xAdvance+=i.getDelta(r,s.xAdvDevice.a,s.xAdvDevice.b)),s.yAdvDevice&&(a.yAdvance+=i.getDelta(r,s.yAdvDevice.a,s.yAdvDevice.b)))}applyLookup(e,s){switch(e){case 1:{let i=this.coverageIndex(s.coverage);if(i===-1)return!1;switch(s.version){case 1:this.applyPositionValue(0,s.value);break;case 2:this.applyPositionValue(0,s.values.get(i));break}return!0}case 2:{let i=this.glyphIterator.peek();if(!i)return!1;let r=this.coverageIndex(s.coverage);if(r===-1)return!1;switch(s.version){case 1:let n=s.pairSets.get(r);for(let c of n)if(c.secondGlyph===i.id)return this.applyPositionValue(0,c.value1),this.applyPositionValue(1,c.value2),!0;return!1;case 2:let o=this.getClassID(this.glyphIterator.cur.id,s.classDef1),l=this.getClassID(i.id,s.classDef2);if(o===-1||l===-1)return!1;var a=s.classRecords.get(o).get(l);return this.applyPositionValue(0,a.value1),this.applyPositionValue(1,a.value2),!0}}case 3:{let i=this.glyphIterator.peekIndex(),r=this.glyphs[i];if(!r)return!1;let n=s.entryExitRecords[this.coverageIndex(s.coverage)];if(!n||!n.exitAnchor)return!1;let o=s.entryExitRecords[this.coverageIndex(s.coverage,r.id)];if(!o||!o.entryAnchor)return!1;let l=this.getAnchor(o.entryAnchor),c=this.getAnchor(n.exitAnchor),f=this.positions[this.glyphIterator.index],h=this.positions[i],d;switch(this.direction){case"ltr":f.xAdvance=c.x+f.xOffset,d=l.x+h.xOffset,h.xAdvance-=d,h.xOffset-=d;break;case"rtl":d=c.x+f.xOffset,f.xAdvance-=d,f.xOffset-=d,h.xAdvance=l.x+h.xOffset;break}return this.glyphIterator.flags.rightToLeft?(this.glyphIterator.cur.cursiveAttachment=i,f.yOffset=l.y-c.y):(r.cursiveAttachment=this.glyphIterator.index,f.yOffset=c.y-l.y),!0}case 4:{let i=this.coverageIndex(s.markCoverage);if(i===-1)return!1;let r=this.glyphIterator.index;for(;--r>=0&&(this.glyphs[r].isMark||this.glyphs[r].ligatureComponent>0););if(r<0)return!1;let n=this.coverageIndex(s.baseCoverage,this.glyphs[r].id);if(n===-1)return!1;let o=s.markArray[i],l=s.baseArray[n][o.class];return this.applyAnchor(o,l,r),!0}case 5:{let i=this.coverageIndex(s.markCoverage);if(i===-1)return!1;let r=this.glyphIterator.index;for(;--r>=0&&this.glyphs[r].isMark;);if(r<0)return!1;let n=this.coverageIndex(s.ligatureCoverage,this.glyphs[r].id);if(n===-1)return!1;let o=s.ligatureArray[n],l=this.glyphIterator.cur,c=this.glyphs[r],f=c.ligatureID&&c.ligatureID===l.ligatureID&&l.ligatureComponent>0?Math.min(l.ligatureComponent,c.codePoints.length)-1:c.codePoints.length-1,h=s.markArray[i],d=o[f][h.class];return this.applyAnchor(h,d,r),!0}case 6:{let i=this.coverageIndex(s.mark1Coverage);if(i===-1)return!1;let r=this.glyphIterator.peekIndex(-1),n=this.glyphs[r];if(!n||!n.isMark)return!1;let o=this.glyphIterator.cur,l=!1;if(o.ligatureID===n.ligatureID?o.ligatureID?o.ligatureComponent===n.ligatureComponent&&(l=!0):l=!0:(o.ligatureID&&!o.ligatureComponent||n.ligatureID&&!n.ligatureComponent)&&(l=!0),!l)return!1;let c=this.coverageIndex(s.mark2Coverage,n.id);if(c===-1)return!1;let f=s.mark1Array[i],h=s.mark2Array[c][f.class];return this.applyAnchor(f,h,r),!0}case 7:return this.applyContext(s);case 8:return this.applyChainingContext(s);case 9:return this.applyLookup(s.lookupType,s.extension);default:throw new Error(`Unsupported GPOS table: ${e}`)}}applyAnchor(e,s,a){let i=this.getAnchor(s),r=this.getAnchor(e.markAnchor);this.positions[a];let n=this.positions[this.glyphIterator.index];n.xOffset=i.x-r.x,n.yOffset=i.y-r.y,this.glyphIterator.cur.markAttachment=a}getAnchor(e){let s=e.xCoordinate,a=e.yCoordinate,i=this.font._variationProcessor,r=this.font.GDEF&&this.font.GDEF.itemVariationStore;return i&&r&&(e.xDeviceTable&&(s+=i.getDelta(r,e.xDeviceTable.a,e.xDeviceTable.b)),e.yDeviceTable&&(a+=i.getDelta(r,e.yDeviceTable.a,e.yDeviceTable.b))),{x:s,y:a}}applyFeatures(e,s,a){super.applyFeatures(e,s,a);for(var i=0;i<this.glyphs.length;i++)this.fixCursiveAttachment(i);this.fixMarkAttachment()}fixCursiveAttachment(e){let s=this.glyphs[e];if(s.cursiveAttachment!=null){let a=s.cursiveAttachment;s.cursiveAttachment=null,this.fixCursiveAttachment(a),this.positions[e].yOffset+=this.positions[a].yOffset}}fixMarkAttachment(){for(let e=0;e<this.glyphs.length;e++){let s=this.glyphs[e];if(s.markAttachment!=null){let a=s.markAttachment;if(this.positions[e].xOffset+=this.positions[a].xOffset,this.positions[e].yOffset+=this.positions[a].yOffset,this.direction==="ltr")for(let i=a;i<e;i++)this.positions[e].xOffset-=this.positions[i].xAdvance,this.positions[e].yOffset-=this.positions[i].yAdvance;else for(let i=a+1;i<e+1;i++)this.positions[e].xOffset+=this.positions[i].xAdvance,this.positions[e].yOffset+=this.positions[i].yAdvance}}}}class X3{setup(e){this.glyphInfos=e.glyphs.map(a=>new Zt(this.font,a.id,[...a.codePoints]));let s=null;this.GPOSProcessor&&(s=this.GPOSProcessor.selectScript(e.script,e.language,e.direction)),this.GSUBProcessor&&(s=this.GSUBProcessor.selectScript(e.script,e.language,e.direction)),this.shaper=H3(s),this.plan=new Xv(this.font,s,e.direction),this.shaper.plan(this.plan,this.glyphInfos,e.features);for(let a in this.plan.allFeatures)e.features[a]=!0}substitute(e){this.GSUBProcessor&&(this.plan.process(this.GSUBProcessor,this.glyphInfos),e.glyphs=this.glyphInfos.map(s=>this.font.getGlyph(s.id,s.codePoints)))}position(e){return this.shaper.zeroMarkWidths==="BEFORE_GPOS"&&this.zeroMarkAdvances(e.positions),this.GPOSProcessor&&this.plan.process(this.GPOSProcessor,this.glyphInfos,e.positions),this.shaper.zeroMarkWidths==="AFTER_GPOS"&&this.zeroMarkAdvances(e.positions),e.direction==="rtl"&&(e.glyphs.reverse(),e.positions.reverse()),this.GPOSProcessor&&this.GPOSProcessor.features}zeroMarkAdvances(e){for(let s=0;s<this.glyphInfos.length;s++)this.glyphInfos[s].isMark&&(e[s].xAdvance=0,e[s].yAdvance=0)}cleanup(){this.glyphInfos=null,this.plan=null,this.shaper=null}getAvailableFeatures(e,s){let a=[];return this.GSUBProcessor&&(this.GSUBProcessor.selectScript(e,s),a.push(...Object.keys(this.GSUBProcessor.features))),this.GPOSProcessor&&(this.GPOSProcessor.selectScript(e,s),a.push(...Object.keys(this.GPOSProcessor.features))),a}constructor(e){this.font=e,this.glyphInfos=null,this.plan=null,this.GSUBProcessor=null,this.GPOSProcessor=null,this.fallbackPosition=!0,e.GSUB&&(this.GSUBProcessor=new j3(e,e.GSUB)),e.GPOS&&(this.GPOSProcessor=new K3(e,e.GPOS))}}class q3{layout(e,s,a,i,r){if(typeof s=="string"&&(r=i,i=a,a=s,s=[]),typeof e=="string"){a==null&&(a=Av(e));var n=this.font.glyphsForString(e)}else{if(a==null){let c=[];for(let f of e)c.push(...f.codePoints);a=Sv(c)}var n=e}let o=new Iv(n,s,a,i,r);return n.length===0?(o.positions=[],o):(this.engine&&this.engine.setup&&this.engine.setup(o),this.substitute(o),this.position(o),this.hideDefaultIgnorables(o.glyphs,o.positions),this.engine&&this.engine.cleanup&&this.engine.cleanup(),o)}substitute(e){this.engine&&this.engine.substitute&&this.engine.substitute(e)}position(e){e.positions=e.glyphs.map(a=>new _v(a.advanceWidth));let s=null;this.engine&&this.engine.position&&(s=this.engine.position(e)),!s&&(!this.engine||this.engine.fallbackPosition)&&(this.unicodeLayoutEngine||(this.unicodeLayoutEngine=new kv(this.font)),this.unicodeLayoutEngine.positionGlyphs(e.glyphs,e.positions)),(!s||!s.kern)&&e.features.kern!==!1&&this.font.kern&&(this.kernProcessor||(this.kernProcessor=new Cv(this.font)),this.kernProcessor.process(e.glyphs,e.positions),e.features.kern=!0)}hideDefaultIgnorables(e,s){let a=this.font.glyphForCodePoint(32);for(let i=0;i<e.length;i++)this.isDefaultIgnorable(e[i].codePoints[0])&&(e[i]=a,s[i].xAdvance=0,s[i].yAdvance=0)}isDefaultIgnorable(e){let s=e>>16;if(s===0)switch(e>>8){case 0:return e===173;case 3:return e===847;case 6:return e===1564;case 23:return 6068<=e&&e<=6069;case 24:return 6155<=e&&e<=6158;case 32:return 8203<=e&&e<=8207||8234<=e&&e<=8238||8288<=e&&e<=8303;case 254:return 65024<=e&&e<=65039||e===65279;case 255:return 65520<=e&&e<=65528;default:return!1}else switch(s){case 1:return 113824<=e&&e<=113827||119155<=e&&e<=119162;case 14:return 917504<=e&&e<=921599;default:return!1}}getAvailableFeatures(e,s){let a=[];return this.engine&&a.push(...this.engine.getAvailableFeatures(e,s)),this.font.kern&&a.indexOf("kern")===-1&&a.push("kern"),a}stringsForGlyph(e){let s=new Set,a=this.font._cmapProcessor.codePointsForGlyph(e);for(let i of a)s.add(String.fromCodePoint(i));if(this.engine&&this.engine.stringsForGlyph)for(let i of this.engine.stringsForGlyph(e))s.add(i);return Array.from(s)}constructor(e){this.font=e,this.unicodeLayoutEngine=null,this.kernProcessor=null,this.font.morx?this.engine=new Kv(this.font):(this.font.GSUB||this.font.GPOS)&&(this.engine=new X3(this.font))}}const J3={moveTo:"M",lineTo:"L",quadraticCurveTo:"Q",bezierCurveTo:"C",closePath:"Z"};class xa{toFunction(){return e=>{this.commands.forEach(s=>e[s.command].apply(e,s.args))}}toSVG(){return this.commands.map(s=>{let a=s.args.map(i=>Math.round(i*100)/100);return`${J3[s.command]}${a.join(" ")}`}).join("")}get cbox(){if(!this._cbox){let e=new Fs;for(let s of this.commands)for(let a=0;a<s.args.length;a+=2)e.addPoint(s.args[a],s.args[a+1]);this._cbox=Object.freeze(e)}return this._cbox}get bbox(){if(this._bbox)return this._bbox;let e=new Fs,s=0,a=0,i=V=>Math.pow(1-V,3)*m[E]+3*Math.pow(1-V,2)*V*b[E]+3*(1-V)*Math.pow(V,2)*I[E]+Math.pow(V,3)*M[E];for(let V of this.commands)switch(V.command){case"moveTo":case"lineTo":let[v,F]=V.args;e.addPoint(v,F),s=v,a=F;break;case"quadraticCurveTo":case"bezierCurveTo":if(V.command==="quadraticCurveTo")var[r,n,h,d]=V.args,o=s+2/3*(r-s),l=a+2/3*(n-a),c=h+2/3*(r-h),f=d+2/3*(n-d);else var[o,l,c,f,h,d]=V.args;e.addPoint(h,d);for(var m=[s,a],b=[o,l],I=[c,f],M=[h,d],E=0;E<=1;E++){let y=6*m[E]-12*b[E]+6*I[E],Z=-3*m[E]+9*b[E]-9*I[E]+3*M[E];if(V=3*b[E]-3*m[E],Z===0){if(y===0)continue;let $=-V/y;0<$&&$<1&&(E===0?e.addPoint(i($),e.maxY):E===1&&e.addPoint(e.maxX,i($)));continue}let P=Math.pow(y,2)-4*V*Z;if(P<0)continue;let B=(-y+Math.sqrt(P))/(2*Z);0<B&&B<1&&(E===0?e.addPoint(i(B),e.maxY):E===1&&e.addPoint(e.maxX,i(B)));let J=(-y-Math.sqrt(P))/(2*Z);0<J&&J<1&&(E===0?e.addPoint(i(J),e.maxY):E===1&&e.addPoint(e.maxX,i(J)))}s=h,a=d;break}return this._bbox=Object.freeze(e)}mapPoints(e){let s=new xa;for(let a of this.commands){let i=[];for(let r=0;r<a.args.length;r+=2){let[n,o]=e(a.args[r],a.args[r+1]);i.push(n,o)}s[a.command](...i)}return s}transform(e,s,a,i,r,n){return this.mapPoints((o,l)=>{const c=e*o+a*l+r,f=s*o+i*l+n;return[c,f]})}translate(e,s){return this.transform(1,0,0,1,e,s)}rotate(e){let s=Math.cos(e),a=Math.sin(e);return this.transform(s,a,-a,s,0,0)}scale(e,s=e){return this.transform(e,0,0,s,0,0)}constructor(){this.commands=[],this._bbox=null,this._cbox=null}}for(let t of["moveTo","lineTo","quadraticCurveTo","bezierCurveTo","closePath"])xa.prototype[t]=function(...e){return this._bbox=this._cbox=null,this.commands.push({command:t,args:e}),this};var ai=[".notdef",".null","nonmarkingreturn","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","Adieresis","Aring","Ccedilla","Eacute","Ntilde","Odieresis","Udieresis","aacute","agrave","acircumflex","adieresis","atilde","aring","ccedilla","eacute","egrave","ecircumflex","edieresis","iacute","igrave","icircumflex","idieresis","ntilde","oacute","ograve","ocircumflex","odieresis","otilde","uacute","ugrave","ucircumflex","udieresis","dagger","degree","cent","sterling","section","bullet","paragraph","germandbls","registered","copyright","trademark","acute","dieresis","notequal","AE","Oslash","infinity","plusminus","lessequal","greaterequal","yen","mu","partialdiff","summation","product","pi","integral","ordfeminine","ordmasculine","Omega","ae","oslash","questiondown","exclamdown","logicalnot","radical","florin","approxequal","Delta","guillemotleft","guillemotright","ellipsis","nonbreakingspace","Agrave","Atilde","Otilde","OE","oe","endash","emdash","quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge","ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright","fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase","perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple","Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde","macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron","Lslash","lslash","Scaron","scaron","Zcaron","zcaron","brokenbar","Eth","eth","Yacute","yacute","Thorn","thorn","minus","multiply","onesuperior","twosuperior","threesuperior","onehalf","onequarter","threequarters","franc","Gbreve","gbreve","Idotaccent","Scedilla","scedilla","Cacute","cacute","Ccaron","ccaron","dcroat"];class rs{_getPath(){return new xa}_getCBox(){return this.path.cbox}_getBBox(){return this.path.bbox}_getTableMetrics(e){if(this.id<e.metrics.length)return e.metrics.get(this.id);let s=e.metrics.get(e.metrics.length-1);return{advance:s?s.advance:0,bearing:e.bearings.get(this.id-e.metrics.length)||0}}_getMetrics(e){if(this._metrics)return this._metrics;let{advance:s,bearing:a}=this._getTableMetrics(this._font.hmtx);if(this._font.vmtx)var{advance:i,bearing:r}=this._getTableMetrics(this._font.vmtx);else{let n;if((typeof e>"u"||e===null)&&({cbox:e}=this),(n=this._font["OS/2"])&&n.version>0)var i=Math.abs(n.typoAscender-n.typoDescender),r=n.typoAscender-e.maxY;else{let{hhea:o}=this._font;var i=Math.abs(o.ascent-o.descent),r=o.ascent-e.maxY}}return this._font._variationProcessor&&this._font.HVAR&&(s+=this._font._variationProcessor.getAdvanceAdjustment(this.id,this._font.HVAR)),this._metrics={advanceWidth:s,advanceHeight:i,leftBearing:a,topBearing:r}}get cbox(){return this._getCBox()}get bbox(){return this._getBBox()}get path(){return this._getPath()}getScaledPath(e){let s=1/this._font.unitsPerEm*e;return this.path.scale(s)}get advanceWidth(){return this._getMetrics().advanceWidth}get advanceHeight(){return this._getMetrics().advanceHeight}get ligatureCaretPositions(){}_getName(){let{post:e}=this._font;if(!e)return null;switch(e.version){case 1:return ai[this.id];case 2:let s=e.glyphNameIndex[this.id];return s<ai.length?ai[s]:e.names[s-ai.length];case 2.5:return ai[this.id+e.offsets[this.id]];case 4:return String.fromCharCode(e.map[this.id])}}get name(){return this._getName()}render(e,s){e.save();let a=1/this._font.head.unitsPerEm*s;e.scale(a,a),this.path.toFunction()(e),e.fill(),e.restore()}constructor(e,s,a){this.id=e,this.codePoints=s,this._font=a,this.isMark=this.codePoints.length>0&&this.codePoints.every(Ac),this.isLigature=this.codePoints.length>1}}mt([yt],rs.prototype,"cbox",null),mt([yt],rs.prototype,"bbox",null),mt([yt],rs.prototype,"path",null),mt([yt],rs.prototype,"advanceWidth",null),mt([yt],rs.prototype,"advanceHeight",null),mt([yt],rs.prototype,"name",null);let $f=new T({numberOfContours:U,xMin:U,yMin:U,xMax:U,yMax:U});const Q3=1,$3=2,ex=4,tx=8,sx=16,ax=32,ix=1,rx=8,e0=32,nx=64,ox=128,lx=256;class Gt{copy(){return new Gt(this.onCurve,this.endContour,this.x,this.y)}constructor(e,s,a=0,i=0){this.onCurve=e,this.endContour=s,this.x=a,this.y=i}}class cx{constructor(e,s,a){this.glyphID=e,this.dx=s,this.dy=a,this.pos=0,this.scaleX=this.scaleY=1,this.scale01=this.scale10=0}}class kr extends rs{_getCBox(e){if(this._font._variationProcessor&&!e)return this.path.cbox;let s=this._font._getTableStream("glyf");s.pos+=this._font.loca.offsets[this.id];let a=$f.decode(s),i=new Fs(a.xMin,a.yMin,a.xMax,a.yMax);return Object.freeze(i)}_parseGlyphCoord(e,s,a,i){if(a){var r=e.readUInt8();i||(r=-r),r+=s}else if(i)var r=s;else var r=s+e.readInt16BE();return r}_decode(){let e=this._font.loca.offsets[this.id],s=this._font.loca.offsets[this.id+1];if(e===s)return null;let a=this._font._getTableStream("glyf");a.pos+=e;let i=a.pos,r=$f.decode(a);return r.numberOfContours>0?this._decodeSimple(r,a):r.numberOfContours<0&&this._decodeComposite(r,a,i),r}_decodeSimple(e,s){e.points=[];let a=new k(u,e.numberOfContours).decode(s);e.instructions=new k(K,u).decode(s);let i=[],r=a[a.length-1]+1;for(;i.length<r;){var n=s.readUInt8();if(i.push(n),n&tx){let f=s.readUInt8();for(let h=0;h<f;h++)i.push(n)}}for(var o=0;o<i.length;o++){var n=i[o];let h=new Gt(!!(n&Q3),a.indexOf(o)>=0,0,0);e.points.push(h)}let l=0;for(var o=0;o<i.length;o++){var n=i[o];e.points[o].x=l=this._parseGlyphCoord(s,l,n&$3,n&sx)}let c=0;for(var o=0;o<i.length;o++){var n=i[o];e.points[o].y=c=this._parseGlyphCoord(s,c,n&ex,n&ax)}if(this._font._variationProcessor){let f=e.points.slice();f.push(...this._getPhantomPoints(e)),this._font._variationProcessor.transformPoints(this.id,f),e.phantomPoints=f.slice(-4)}}_decodeComposite(e,s,a=0){e.components=[];let i=!1,r=e0;for(;r&e0;){r=s.readUInt16BE();let c=s.pos-a,f=s.readUInt16BE();if(i||(i=(r&lx)!==0),r&ix)var n=s.readInt16BE(),o=s.readInt16BE();else var n=s.readInt8(),o=s.readInt8();var l=new cx(f,n,o);l.pos=c,r&rx?l.scaleX=l.scaleY=(s.readUInt8()<<24|s.readUInt8()<<16)/1073741824:r&nx?(l.scaleX=(s.readUInt8()<<24|s.readUInt8()<<16)/1073741824,l.scaleY=(s.readUInt8()<<24|s.readUInt8()<<16)/1073741824):r&ox&&(l.scaleX=(s.readUInt8()<<24|s.readUInt8()<<16)/1073741824,l.scale01=(s.readUInt8()<<24|s.readUInt8()<<16)/1073741824,l.scale10=(s.readUInt8()<<24|s.readUInt8()<<16)/1073741824,l.scaleY=(s.readUInt8()<<24|s.readUInt8()<<16)/1073741824),e.components.push(l)}if(this._font._variationProcessor){let c=[];for(let f=0;f<e.components.length;f++){var l=e.components[f];c.push(new Gt(!0,!0,l.dx,l.dy))}c.push(...this._getPhantomPoints(e)),this._font._variationProcessor.transformPoints(this.id,c),e.phantomPoints=c.splice(-4,4);for(let f=0;f<c.length;f++){let h=c[f];e.components[f].dx=h.x,e.components[f].dy=h.y}}return i}_getPhantomPoints(e){let s=this._getCBox(!0);this._metrics==null&&(this._metrics=rs.prototype._getMetrics.call(this,s));let{advanceWidth:a,advanceHeight:i,leftBearing:r,topBearing:n}=this._metrics;return[new Gt(!1,!0,e.xMin-r,0),new Gt(!1,!0,e.xMin-r+a,0),new Gt(!1,!0,0,e.yMax+n),new Gt(!1,!0,0,e.yMax+n+i)]}_getContours(){let e=this._decode();if(!e)return[];let s=[];if(e.numberOfContours<0)for(let n of e.components){let o=this._font.getGlyph(n.glyphID)._getContours();for(let l=0;l<o.length;l++){let c=o[l];for(let f=0;f<c.length;f++){let h=c[f],d=h.x*n.scaleX+h.y*n.scale01+n.dx,m=h.y*n.scaleY+h.x*n.scale10+n.dy;s.push(new Gt(h.onCurve,h.endContour,d,m))}}}else s=e.points||[];e.phantomPoints&&!this._font.directory.tables.HVAR&&(this._metrics.advanceWidth=e.phantomPoints[1].x-e.phantomPoints[0].x,this._metrics.advanceHeight=e.phantomPoints[3].y-e.phantomPoints[2].y,this._metrics.leftBearing=e.xMin-e.phantomPoints[0].x,this._metrics.topBearing=e.phantomPoints[2].y-e.yMax);let a=[],i=[];for(let n=0;n<s.length;n++){var r=s[n];i.push(r),r.endContour&&(a.push(i),i=[])}return a}_getMetrics(){if(this._metrics)return this._metrics;let e=this._getCBox(!0);return super._getMetrics(e),this._font._variationProcessor&&!this._font.HVAR&&this.path,this._metrics}_getPath(){let e=this._getContours(),s=new xa;for(let i=0;i<e.length;i++){let r=e[i],n=r[0],o=r[r.length-1],l=0;if(n.onCurve){var a=null;l=1}else{o.onCurve?n=o:n=new Gt(!1,!1,(n.x+o.x)/2,(n.y+o.y)/2);var a=n}s.moveTo(n.x,n.y);for(let c=l;c<r.length;c++){let f=r[c],h=c===0?n:r[c-1];if(h.onCurve&&f.onCurve)s.lineTo(f.x,f.y);else if(h.onCurve&&!f.onCurve)var a=f;else if(!h.onCurve&&!f.onCurve){let m=(h.x+f.x)/2,b=(h.y+f.y)/2;s.quadraticCurveTo(h.x,h.y,m,b);var a=f}else if(!h.onCurve&&f.onCurve){s.quadraticCurveTo(a.x,a.y,f.x,f.y);var a=null}else throw new Error("Unknown TTF path state")}a&&s.quadraticCurveTo(a.x,a.y,n.x,n.y),s.closePath()}return s}constructor(...e){super(...e),St(this,"type","TTF")}}class fx extends rs{_getName(){return this._font.CFF2?super._getName():this._font["CFF "].getGlyphName(this.id)}bias(e){return e.length<1240?107:e.length<33900?1131:32768}_getPath(){let e=this._font.CFF2||this._font["CFF "],{stream:s}=e,a=e.topDict.CharStrings[this.id],i=a.offset+a.length;s.pos=a.offset;let r=new xa,n=[],o=[],l=null,c=0,f=0,h=0,d,m,b=!1;this._usedGsubrs=d={},this._usedSubrs=m={};let I=e.globalSubrIndex||[],M=this.bias(I),E=e.privateDictForGlyph(this.id)||{},V=E.Subrs||[],v=this.bias(V),F=e.topDict.vstore&&e.topDict.vstore.itemVariationStore,y=E.vsindex,Z=this._font._variationProcessor;function P(){l==null&&(l=n.shift()+E.nominalWidthX)}function B(){return n.length%2!==0&&P(),c+=n.length>>1,n.length=0}function J(se,ue){b&&r.closePath(),r.moveTo(se,ue),b=!0}let $=function(){for(;s.pos<i;){let Ce=s.readUInt8();if(Ce<32){let Te,Ae,Le,ye,G,Y,W,pe,ge,Pe,Ue,Oe,_e,ft,H,z;switch(Ce){case 1:case 3:case 18:case 23:B();break;case 4:n.length>1&&P(),h+=n.shift(),J(f,h);break;case 5:for(;n.length>=2;)f+=n.shift(),h+=n.shift(),r.lineTo(f,h);break;case 6:case 7:for(Le=Ce===6;n.length>=1;)Le?f+=n.shift():h+=n.shift(),r.lineTo(f,h),Le=!Le;break;case 8:for(;n.length>0;)ye=f+n.shift(),G=h+n.shift(),Y=ye+n.shift(),W=G+n.shift(),f=Y+n.shift(),h=W+n.shift(),r.bezierCurveTo(ye,G,Y,W,f,h);break;case 10:if(Te=n.pop()+v,Ae=V[Te],Ae){m[Te]=!0;let R=s.pos,O=i;s.pos=Ae.offset,i=Ae.offset+Ae.length,$(),s.pos=R,i=O}break;case 11:if(e.version>=2)break;return;case 14:if(e.version>=2)break;n.length>0&&P(),b&&(r.closePath(),b=!1);break;case 15:if(e.version<2)throw new Error("vsindex operator not supported in CFF v1");y=n.pop();break;case 16:{if(e.version<2)throw new Error("blend operator not supported in CFF v1");if(!Z)throw new Error("blend operator in non-variation font");let R=Z.getBlendVector(F,y),O=n.pop(),ee=O*R.length,ne=n.length-ee,ae=ne-O;for(let re=0;re<O;re++){let me=n[ae+re];for(let ie=0;ie<R.length;ie++)me+=R[ie]*n[ne++];n[ae+re]=me}for(;ee--;)n.pop();break}case 19:case 20:B(),s.pos+=c+7>>3;break;case 21:n.length>2&&P(),f+=n.shift(),h+=n.shift(),J(f,h);break;case 22:n.length>1&&P(),f+=n.shift(),J(f,h);break;case 24:for(;n.length>=8;)ye=f+n.shift(),G=h+n.shift(),Y=ye+n.shift(),W=G+n.shift(),f=Y+n.shift(),h=W+n.shift(),r.bezierCurveTo(ye,G,Y,W,f,h);f+=n.shift(),h+=n.shift(),r.lineTo(f,h);break;case 25:for(;n.length>=8;)f+=n.shift(),h+=n.shift(),r.lineTo(f,h);ye=f+n.shift(),G=h+n.shift(),Y=ye+n.shift(),W=G+n.shift(),f=Y+n.shift(),h=W+n.shift(),r.bezierCurveTo(ye,G,Y,W,f,h);break;case 26:for(n.length%2&&(f+=n.shift());n.length>=4;)ye=f,G=h+n.shift(),Y=ye+n.shift(),W=G+n.shift(),f=Y,h=W+n.shift(),r.bezierCurveTo(ye,G,Y,W,f,h);break;case 27:for(n.length%2&&(h+=n.shift());n.length>=4;)ye=f+n.shift(),G=h,Y=ye+n.shift(),W=G+n.shift(),f=Y+n.shift(),h=W,r.bezierCurveTo(ye,G,Y,W,f,h);break;case 28:n.push(s.readInt16BE());break;case 29:if(Te=n.pop()+M,Ae=I[Te],Ae){d[Te]=!0;let R=s.pos,O=i;s.pos=Ae.offset,i=Ae.offset+Ae.length,$(),s.pos=R,i=O}break;case 30:case 31:for(Le=Ce===31;n.length>=4;)Le?(ye=f+n.shift(),G=h,Y=ye+n.shift(),W=G+n.shift(),h=W+n.shift(),f=Y+(n.length===1?n.shift():0)):(ye=f,G=h+n.shift(),Y=ye+n.shift(),W=G+n.shift(),f=Y+n.shift(),h=W+(n.length===1?n.shift():0)),r.bezierCurveTo(ye,G,Y,W,f,h),Le=!Le;break;case 12:switch(Ce=s.readUInt8(),Ce){case 3:let R=n.pop(),O=n.pop();n.push(R&&O?1:0);break;case 4:R=n.pop(),O=n.pop(),n.push(R||O?1:0);break;case 5:R=n.pop(),n.push(R?0:1);break;case 9:R=n.pop(),n.push(Math.abs(R));break;case 10:R=n.pop(),O=n.pop(),n.push(R+O);break;case 11:R=n.pop(),O=n.pop(),n.push(R-O);break;case 12:R=n.pop(),O=n.pop(),n.push(R/O);break;case 14:R=n.pop(),n.push(-R);break;case 15:R=n.pop(),O=n.pop(),n.push(R===O?1:0);break;case 18:n.pop();break;case 20:let ee=n.pop(),ne=n.pop();o[ne]=ee;break;case 21:ne=n.pop(),n.push(o[ne]||0);break;case 22:let ae=n.pop(),re=n.pop(),me=n.pop(),ie=n.pop();n.push(me<=ie?ae:re);break;case 23:n.push(Math.random());break;case 24:R=n.pop(),O=n.pop(),n.push(R*O);break;case 26:R=n.pop(),n.push(Math.sqrt(R));break;case 27:R=n.pop(),n.push(R,R);break;case 28:R=n.pop(),O=n.pop(),n.push(O,R);break;case 29:ne=n.pop(),ne<0?ne=0:ne>n.length-1&&(ne=n.length-1),n.push(n[ne]);break;case 30:let q=n.pop(),we=n.pop();if(we>=0)for(;we>0;){var se=n[q-1];for(let Ye=q-2;Ye>=0;Ye--)n[Ye+1]=n[Ye];n[0]=se,we--}else for(;we<0;){var se=n[0];for(let it=0;it<=q;it++)n[it]=n[it+1];n[q-1]=se,we++}break;case 34:ye=f+n.shift(),G=h,Y=ye+n.shift(),W=G+n.shift(),pe=Y+n.shift(),ge=W,Pe=pe+n.shift(),Ue=ge,Oe=Pe+n.shift(),_e=Ue,ft=Oe+n.shift(),H=_e,f=ft,h=H,r.bezierCurveTo(ye,G,Y,W,pe,ge),r.bezierCurveTo(Pe,Ue,Oe,_e,ft,H);break;case 35:z=[];for(let Ye=0;Ye<=5;Ye++)f+=n.shift(),h+=n.shift(),z.push(f,h);r.bezierCurveTo(...z.slice(0,6)),r.bezierCurveTo(...z.slice(6)),n.shift();break;case 36:ye=f+n.shift(),G=h+n.shift(),Y=ye+n.shift(),W=G+n.shift(),pe=Y+n.shift(),ge=W,Pe=pe+n.shift(),Ue=ge,Oe=Pe+n.shift(),_e=Ue+n.shift(),ft=Oe+n.shift(),H=_e,f=ft,h=H,r.bezierCurveTo(ye,G,Y,W,pe,ge),r.bezierCurveTo(Pe,Ue,Oe,_e,ft,H);break;case 37:let Je=f,gt=h;z=[];for(let Ye=0;Ye<=4;Ye++)f+=n.shift(),h+=n.shift(),z.push(f,h);Math.abs(f-Je)>Math.abs(h-gt)?(f+=n.shift(),h=gt):(f=Je,h+=n.shift()),z.push(f,h),r.bezierCurveTo(...z.slice(0,6)),r.bezierCurveTo(...z.slice(6));break;default:throw new Error(`Unknown op: 12 ${Ce}`)}break;default:throw new Error(`Unknown op: ${Ce}`)}}else if(Ce<247)n.push(Ce-139);else if(Ce<251){var ue=s.readUInt8();n.push((Ce-247)*256+ue+108)}else if(Ce<255){var ue=s.readUInt8();n.push(-(Ce-251)*256-ue-108)}else n.push(s.readInt32BE()/65536)}};return $(),b&&r.closePath(),r}constructor(...e){super(...e),St(this,"type","CFF")}}let ux=new T({originX:u,originY:u,type:new Re(4),data:new Qt(t=>t.parent.buflen-t._currentOffset)});class hx extends kr{getImageForSize(e){for(let n=0;n<this._font.sbix.imageTables.length;n++){var s=this._font.sbix.imageTables[n];if(s.ppem>=e)break}let a=s.imageOffsets,i=a[this.id],r=a[this.id+1];return i===r?null:(this._font.stream.pos=i,ux.decode(this._font.stream,{buflen:r-i}))}render(e,s){let a=this.getImageForSize(s);if(a!=null){let i=s/this._font.unitsPerEm;e.image(a.data,{height:s,x:a.originX,y:(this.bbox.minY-a.originY)*i})}this._font.sbix.flags.renderOutlines&&super.render(e,s)}constructor(...e){super(...e),St(this,"type","SBIX")}}class t0{constructor(e,s){this.glyph=e,this.color=s}}class dx extends rs{_getBBox(){let e=new Fs;for(let s=0;s<this.layers.length;s++){let i=this.layers[s].glyph.bbox;e.addPoint(i.minX,i.minY),e.addPoint(i.maxX,i.maxY)}return e}get layers(){let e=this._font.CPAL,s=this._font.COLR,a=0,i=s.baseGlyphRecord.length-1;for(;a<=i;){let f=a+i>>1;var r=s.baseGlyphRecord[f];if(this.id<r.gid)i=f-1;else if(this.id>r.gid)a=f+1;else{var n=r;break}}if(n==null){var o=this._font._getBaseGlyph(this.id),l={red:0,green:0,blue:0,alpha:255};return[new t0(o,l)]}let c=[];for(let f=n.firstLayerIndex;f<n.firstLayerIndex+n.numLayers;f++){var r=s.layerRecords[f],l=e.colorRecords[r.paletteIndex],o=this._font._getBaseGlyph(r.gid);c.push(new t0(o,l))}return c}render(e,s){for(let{glyph:a,color:i}of this.layers)e.fillColor([i.red,i.green,i.blue],i.alpha/255*100),a.render(e,s)}constructor(...e){super(...e),St(this,"type","COLR")}}const gx=32768,px=4095,mx=32768,s0=16384,yx=8192,a0=4095,i0=128,r0=127,bx=128,wx=64,vx=63;class xx{normalizeCoords(e){let s=[];for(var a=0;a<this.font.fvar.axis.length;a++){let i=this.font.fvar.axis[a];e[a]<i.defaultValue?s.push((e[a]-i.defaultValue+Number.EPSILON)/(i.defaultValue-i.minValue+Number.EPSILON)):s.push((e[a]-i.defaultValue+Number.EPSILON)/(i.maxValue-i.defaultValue+Number.EPSILON))}if(this.font.avar)for(var a=0;a<this.font.avar.segment.length;a++){let r=this.font.avar.segment[a];for(let n=0;n<r.correspondence.length;n++){let o=r.correspondence[n];if(n>=1&&s[a]<o.fromCoord){let l=r.correspondence[n-1];s[a]=((s[a]-l.fromCoord)*(o.toCoord-l.toCoord)+Number.EPSILON)/(o.fromCoord-l.fromCoord+Number.EPSILON)+l.toCoord;break}}}return s}transformPoints(e,s){if(!this.font.fvar||!this.font.gvar)return;let{gvar:a}=this.font;if(e>=a.glyphCount)return;let i=a.offsets[e];if(i===a.offsets[e+1])return;let{stream:r}=this.font;if(r.pos=i,r.pos>=r.length)return;let n=r.readUInt16BE(),o=i+r.readUInt16BE();if(n&gx){var l=r.pos;r.pos=o;var c=this.decodePoints();o=r.pos,r.pos=l}let f=s.map(M=>M.copy());n&=px;for(let M=0;M<n;M++){let E=r.readUInt16BE(),V=r.readUInt16BE();if(V&mx){var h=[];for(let B=0;B<a.axisCount;B++)h.push(r.readInt16BE()/16384)}else{if((V&a0)>=a.globalCoordCount)throw new Error("Invalid gvar table");var h=a.globalCoords[V&a0]}if(V&s0){var d=[];for(let B=0;B<a.axisCount;B++)d.push(r.readInt16BE()/16384);var m=[];for(let B=0;B<a.axisCount;B++)m.push(r.readInt16BE()/16384)}let v=this.tupleFactor(V,h,d,m);if(v===0){o+=E;continue}var l=r.pos;if(r.pos=o,V&yx)var b=this.decodePoints();else var b=c;let y=b.length===0?s.length:b.length,Z=this.decodeDeltas(y),P=this.decodeDeltas(y);if(b.length===0)for(let B=0;B<s.length;B++){var I=s[B];I.x+=Math.round(Z[B]*v),I.y+=Math.round(P[B]*v)}else{let B=f.map($=>$.copy()),J=s.map(()=>!1);for(let $=0;$<b.length;$++){let se=b[$];if(se<s.length){let ue=B[se];J[se]=!0,ue.x+=Z[$]*v,ue.y+=P[$]*v}}this.interpolateMissingDeltas(B,f,J);for(let $=0;$<s.length;$++){let se=B[$].x-f[$].x,ue=B[$].y-f[$].y;s[$].x=Math.round(s[$].x+se),s[$].y=Math.round(s[$].y+ue)}}o+=E,r.pos=l}}decodePoints(){let e=this.font.stream,s=e.readUInt8();s&i0&&(s=(s&r0)<<8|e.readUInt8());let a=new Uint16Array(s),i=0,r=0;for(;i<s;){let n=e.readUInt8(),o=(n&r0)+1,l=n&i0?e.readUInt16:e.readUInt8;for(let c=0;c<o&&i<s;c++)r+=l.call(e),a[i++]=r}return a}decodeDeltas(e){let s=this.font.stream,a=0,i=new Int16Array(e);for(;a<e;){let r=s.readUInt8(),n=(r&vx)+1;if(r&bx)a+=n;else{let o=r&wx?s.readInt16BE:s.readInt8;for(let l=0;l<n&&a<e;l++)i[a++]=o.call(s)}}return i}tupleFactor(e,s,a,i){let r=this.normalizedCoords,{gvar:n}=this.font,o=1;for(let l=0;l<n.axisCount;l++)if(s[l]!==0){if(r[l]===0)return 0;if(e&s0){if(r[l]<a[l]||r[l]>i[l])return 0;r[l]<s[l]?o=o*(r[l]-a[l]+Number.EPSILON)/(s[l]-a[l]+Number.EPSILON):o=o*(i[l]-r[l]+Number.EPSILON)/(i[l]-s[l]+Number.EPSILON)}else{if(r[l]<Math.min(0,s[l])||r[l]>Math.max(0,s[l]))return 0;o=(o*r[l]+Number.EPSILON)/(s[l]+Number.EPSILON)}}return o}interpolateMissingDeltas(e,s,a){if(e.length===0)return;let i=0;for(;i<e.length;){let r=i,n=i,o=e[n];for(;!o.endContour;)o=e[++n];for(;i<=n&&!a[i];)i++;if(i>n)continue;let l=i,c=i;for(i++;i<=n;)a[i]&&(this.deltaInterpolate(c+1,i-1,c,i,s,e),c=i),i++;c===l?this.deltaShift(r,n,c,s,e):(this.deltaInterpolate(c+1,n,c,l,s,e),l>0&&this.deltaInterpolate(r,l-1,c,l,s,e)),i=n+1}}deltaInterpolate(e,s,a,i,r,n){if(e>s)return;let o=["x","y"];for(let c=0;c<o.length;c++){let f=o[c];if(r[a][f]>r[i][f]){var l=a;a=i,i=l}let h=r[a][f],d=r[i][f],m=n[a][f],b=n[i][f];if(h!==d||m===b){let I=h===d?0:(b-m)/(d-h);for(let M=e;M<=s;M++){let E=r[M][f];E<=h?E+=m-h:E>=d?E+=b-d:E=m+(E-h)*I,n[M][f]=E}}}}deltaShift(e,s,a,i,r){let n=r[a].x-i[a].x,o=r[a].y-i[a].y;if(!(n===0&&o===0))for(let l=e;l<=s;l++)l!==a&&(r[l].x+=n,r[l].y+=o)}getAdvanceAdjustment(e,s){let a,i;if(s.advanceWidthMapping){let r=e;r>=s.advanceWidthMapping.mapCount&&(r=s.advanceWidthMapping.mapCount-1),s.advanceWidthMapping.entryFormat,{outerIndex:a,innerIndex:i}=s.advanceWidthMapping.mapData[r]}else a=0,i=e;return this.getDelta(s.itemVariationStore,a,i)}getDelta(e,s,a){if(s>=e.itemVariationData.length)return 0;let i=e.itemVariationData[s];if(a>=i.deltaSets.length)return 0;let r=i.deltaSets[a],n=this.getBlendVector(e,s),o=0;for(let l=0;l<i.regionIndexCount;l++)o+=r.deltas[l]*n[l];return o}getBlendVector(e,s){let a=e.itemVariationData[s];if(this.blendVectors.has(a))return this.blendVectors.get(a);let i=this.normalizedCoords,r=[];for(let n=0;n<a.regionIndexCount;n++){let o=1,l=a.regionIndexes[n],c=e.variationRegionList.variationRegions[l];for(let f=0;f<c.length;f++){let h=c[f],d;h.startCoord>h.peakCoord||h.peakCoord>h.endCoord||h.startCoord<0&&h.endCoord>0&&h.peakCoord!==0||h.peakCoord===0?d=1:i[f]<h.startCoord||i[f]>h.endCoord?d=0:i[f]===h.peakCoord?d=1:i[f]<h.peakCoord?d=(i[f]-h.startCoord+Number.EPSILON)/(h.peakCoord-h.startCoord+Number.EPSILON):d=(h.endCoord-i[f]+Number.EPSILON)/(h.endCoord-h.peakCoord+Number.EPSILON),o*=d}r[n]=o}return this.blendVectors.set(a,r),r}constructor(e,s){this.font=e,this.normalizedCoords=this.normalizeCoords(s),this.blendVectors=new Map}}Promise.resolve();class n0{includeGlyph(e){return typeof e=="object"&&(e=e.id),this.mapping[e]==null&&(this.glyphs.push(e),this.mapping[e]=this.glyphs.length-1),this.mapping[e]}constructor(e){this.font=e,this.glyphs=[],this.mapping={},this.includeGlyph(0)}}const Cx=1,kx=2,Nx=4,Ax=8,Sx=16,Vx=32;class o0{static size(e){return e>=0&&e<=255?1:2}static encode(e,s){s>=0&&s<=255?e.writeUInt8(s):e.writeInt16BE(s)}}let l0=new T({numberOfContours:U,xMin:U,yMin:U,xMax:U,yMax:U,endPtsOfContours:new k(u,"numberOfContours"),instructions:new k(K,u),flags:new k(K,0),xPoints:new k(o0,0),yPoints:new k(o0,0)});class Ix{encodeSimple(e,s=[]){let a=[],i=[],r=[],n=[],o=0,l=0,c=0,f=0,h=0;for(let E=0;E<e.commands.length;E++){let V=e.commands[E];for(let v=0;v<V.args.length;v+=2){let F=V.args[v],y=V.args[v+1],Z=0;if(V.command==="quadraticCurveTo"&&v===2){let P=e.commands[E+1];if(P&&P.command==="quadraticCurveTo"){let B=(l+P.args[0])/2,J=(c+P.args[1])/2;if(F===B&&y===J)continue}}V.command==="quadraticCurveTo"&&v===0||(Z|=Cx),Z=this._encodePoint(F,l,i,Z,kx,Sx),Z=this._encodePoint(y,c,r,Z,Nx,Vx),Z===f&&o<255?(n[n.length-1]|=Ax,o++):(o>0&&(n.push(o),o=0),n.push(Z),f=Z),l=F,c=y,h++}V.command==="closePath"&&a.push(h-1)}e.commands.length>1&&e.commands[e.commands.length-1].command!=="closePath"&&a.push(h-1);let d=e.bbox,m={numberOfContours:a.length,xMin:d.minX,yMin:d.minY,xMax:d.maxX,yMax:d.maxY,endPtsOfContours:a,instructions:s,flags:n,xPoints:i,yPoints:r},b=l0.size(m),I=4-b%4,M=new Zi(b+I);return l0.encode(M,m),I!==0&&M.fill(0,I),M.buffer}_encodePoint(e,s,a,i,r,n){let o=e-s;return e===s?i|=n:(-255<=o&&o<=255&&(i|=r,o<0?o=-o:i|=n),a.push(o)),i}}class _x extends n0{_addGlyph(e){let s=this.font.getGlyph(e),a=s._decode(),i=this.font.loca.offsets[e],r=this.font.loca.offsets[e+1],n=this.font._getTableStream("glyf");n.pos+=i;let o=n.readBuffer(r-i);if(a&&a.numberOfContours<0){o=new Uint8Array(o);let l=new DataView(o.buffer);for(let c of a.components)e=this.includeGlyph(c.glyphID),l.setUint16(c.pos,e)}else a&&this.font._variationProcessor&&(o=this.glyphEncoder.encodeSimple(s.path,a.instructions));return this.glyf.push(o),this.loca.offsets.push(this.offset),this.hmtx.metrics.push({advance:s.advanceWidth,bearing:s._getMetrics().leftBearing}),this.offset+=o.length,this.glyf.length-1}encode(){this.glyf=[],this.offset=0,this.loca={offsets:[],version:this.font.loca.version},this.hmtx={metrics:[],bearings:[]};let e=0;for(;e<this.glyphs.length;)this._addGlyph(this.glyphs[e++]);let s=On(this.font.maxp);s.numGlyphs=this.glyf.length,this.loca.offsets.push(this.offset);let a=On(this.font.head);a.indexToLocFormat=this.loca.version;let i=On(this.font.hhea);return i.numberOfMetrics=this.hmtx.metrics.length,Vf.toBuffer({tables:{head:a,hhea:i,loca:this.loca,maxp:s,"cvt ":this.font["cvt "],prep:this.font.prep,glyf:this.glyf,hmtx:this.hmtx,fpgm:this.font.fpgm}})}constructor(e){super(e),this.glyphEncoder=new Ix}}class Fx extends n0{subsetCharstrings(){this.charstrings=[];let e={};for(let s of this.glyphs){this.charstrings.push(this.cff.getCharString(s));let a=this.font.getGlyph(s);a.path;for(let i in a._usedGsubrs)e[i]=!0}this.gsubrs=this.subsetSubrs(this.cff.globalSubrIndex,e)}subsetSubrs(e,s){let a=[];for(let i=0;i<e.length;i++){let r=e[i];s[i]?(this.cff.stream.pos=r.offset,a.push(this.cff.stream.readBuffer(r.length))):a.push(new Uint8Array([11]))}return a}subsetFontdict(e){e.FDArray=[],e.FDSelect={version:0,fds:[]};let s={},a=[],i={};for(let r of this.glyphs){let n=this.cff.fdForGlyph(r);if(n==null)continue;s[n]||(e.FDArray.push(Object.assign({},this.cff.topDict.FDArray[n])),a.push({}),i[n]=e.FDArray.length-1),s[n]=!0,e.FDSelect.fds.push(i[n]);let o=this.font.getGlyph(r);o.path;for(let l in o._usedSubrs)a[i[n]][l]=!0}for(let r=0;r<e.FDArray.length;r++){let n=e.FDArray[r];delete n.FontName,n.Private&&n.Private.Subrs&&(n.Private=Object.assign({},n.Private),n.Private.Subrs=this.subsetSubrs(n.Private.Subrs,a[r]))}}createCIDFontdict(e){let s={};for(let i of this.glyphs){let r=this.font.getGlyph(i);r.path;for(let n in r._usedSubrs)s[n]=!0}let a=Object.assign({},this.cff.topDict.Private);return this.cff.topDict.Private&&this.cff.topDict.Private.Subrs&&(a.Subrs=this.subsetSubrs(this.cff.topDict.Private.Subrs,s)),e.FDArray=[{Private:a}],e.FDSelect={version:3,nRanges:1,ranges:[{first:0,fd:0}],sentinel:this.charstrings.length}}addString(e){return e?(this.strings||(this.strings=[]),this.strings.push(e),er.length+this.strings.length-1):null}encode(){this.subsetCharstrings();let e={version:this.charstrings.length>255?2:1,ranges:[{first:1,nLeft:this.charstrings.length-2}]},s=Object.assign({},this.cff.topDict);s.Private=null,s.charset=e,s.Encoding=null,s.CharStrings=this.charstrings;for(let i of["version","Notice","Copyright","FullName","FamilyName","Weight","PostScript","BaseFontName","FontName"])s[i]=this.addString(this.cff.string(s[i]));s.ROS=[this.addString("Adobe"),this.addString("Identity"),0],s.CIDCount=this.charstrings.length,this.cff.isCIDFont?this.subsetFontdict(s):this.createCIDFontdict(s);let a={version:1,hdrSize:this.cff.hdrSize,offSize:4,header:this.cff.header,nameIndex:[this.cff.postscriptName],topDictIndex:[s],stringIndex:this.strings,globalSubrIndex:this.gsubrs};return uf.toBuffer(a)}constructor(e){if(super(e),this.cff=this.font["CFF "],!this.cff)throw new Error("Not a CFF Font")}}class wt{static probe(e){let s=or.decode(e.slice(0,4));return s==="true"||s==="OTTO"||s==="\0\0\0"}setDefaultLanguage(e=null){this.defaultLanguage=e}_getTable(e){if(!(e.tag in this._tables))try{this._tables[e.tag]=this._decodeTable(e)}catch{}return this._tables[e.tag]}_getTableStream(e){let s=this.directory.tables[e];return s?(this.stream.pos=s.offset,this.stream):null}_decodeDirectory(){return this.directory=Vf.decode(this.stream,{_startOffset:0})}_decodeTable(e){let s=this.stream.pos,a=this._getTableStream(e.tag),i=rr[e.tag].decode(a,this,e.length);return this.stream.pos=s,i}getName(e,s=this.defaultLanguage||Ji){let a=this.name&&this.name.records[e];return a&&(a[s]||a[this.defaultLanguage]||a[Ji]||a.en||a[Object.keys(a)[0]])||null}get postscriptName(){return this.getName("postscriptName")}get fullName(){return this.getName("fullName")}get familyName(){return this.getName("fontFamily")}get subfamilyName(){return this.getName("fontSubfamily")}get copyright(){return this.getName("copyright")}get version(){return this.getName("version")}get ascent(){return this.hhea.ascent}get descent(){return this.hhea.descent}get lineGap(){return this.hhea.lineGap}get underlinePosition(){return this.post.underlinePosition}get underlineThickness(){return this.post.underlineThickness}get italicAngle(){return this.post.italicAngle}get capHeight(){let e=this["OS/2"];return e?e.capHeight:this.ascent}get xHeight(){let e=this["OS/2"];return e?e.xHeight:0}get numGlyphs(){return this.maxp.numGlyphs}get unitsPerEm(){return this.head.unitsPerEm}get bbox(){return Object.freeze(new Fs(this.head.xMin,this.head.yMin,this.head.xMax,this.head.yMax))}get _cmapProcessor(){return new eo(this.cmap)}get characterSet(){return this._cmapProcessor.getCharacterSet()}hasGlyphForCodePoint(e){return!!this._cmapProcessor.lookup(e)}glyphForCodePoint(e){return this.getGlyph(this._cmapProcessor.lookup(e),[e])}glyphsForString(e){let s=[],a=e.length,i=0,r=-1,n=-1;for(;i<=a;){let o=0,l=0;if(i<a){if(o=e.charCodeAt(i++),55296<=o&&o<=56319&&i<a){let c=e.charCodeAt(i);56320<=c&&c<=57343&&(i++,o=((o&1023)<<10)+(c&1023)+65536)}l=65024<=o&&o<=65039||917760<=o&&o<=917999?1:0}else i++;n===0&&l===1?s.push(this.getGlyph(this._cmapProcessor.lookup(r,o),[r,o])):n===0&&l===0&&s.push(this.glyphForCodePoint(r)),r=o,n=l}return s}get _layoutEngine(){return new q3(this)}layout(e,s,a,i,r){return this._layoutEngine.layout(e,s,a,i,r)}stringsForGlyph(e){return this._layoutEngine.stringsForGlyph(e)}get availableFeatures(){return this._layoutEngine.getAvailableFeatures()}getAvailableFeatures(e,s){return this._layoutEngine.getAvailableFeatures(e,s)}_getBaseGlyph(e,s=[]){return this._glyphs[e]||(this.directory.tables.glyf?this._glyphs[e]=new kr(e,s,this):(this.directory.tables["CFF "]||this.directory.tables.CFF2)&&(this._glyphs[e]=new fx(e,s,this))),this._glyphs[e]||null}getGlyph(e,s=[]){return this._glyphs[e]||(this.directory.tables.sbix?this._glyphs[e]=new hx(e,s,this):this.directory.tables.COLR&&this.directory.tables.CPAL?this._glyphs[e]=new dx(e,s,this):this._getBaseGlyph(e,s)),this._glyphs[e]||null}createSubset(){return this.directory.tables["CFF "]?new Fx(this):new _x(this)}get variationAxes(){let e={};if(!this.fvar)return e;for(let s of this.fvar.axis)e[s.axisTag.trim()]={name:s.name.en,min:s.minValue,default:s.defaultValue,max:s.maxValue};return e}get namedVariations(){let e={};if(!this.fvar)return e;for(let s of this.fvar.instance){let a={};for(let i=0;i<this.fvar.axis.length;i++){let r=this.fvar.axis[i];a[r.axisTag.trim()]=s.coord[i]}e[s.name.en]=a}return e}getVariation(e){if(!(this.directory.tables.fvar&&(this.directory.tables.gvar&&this.directory.tables.glyf||this.directory.tables.CFF2)))throw new Error("Variations require a font with the fvar, gvar and glyf, or CFF2 tables.");if(typeof e=="string"&&(e=this.namedVariations[e]),typeof e!="object")throw new Error("Variation settings must be either a variation name or settings object.");let s=this.fvar.axis.map((r,n)=>{let o=r.axisTag.trim();return o in e?Math.max(r.minValue,Math.min(r.maxValue,e[o])):r.defaultValue}),a=new pt(this.stream.buffer);a.pos=this._directoryPos;let i=new wt(a,s);return i._tables=this._tables,i}get _variationProcessor(){if(!this.fvar)return null;let e=this.variationCoords;return!e&&!this.CFF2?null:(e||(e=this.fvar.axis.map(s=>s.defaultValue)),new xx(this,e))}getFont(e){return this.getVariation(e)}constructor(e,s=null){St(this,"type","TTF"),this.defaultLanguage=null,this.stream=e,this.variationCoords=s,this._directoryPos=this.stream.pos,this._tables={},this._glyphs={},this._decodeDirectory();for(let a in this.directory.tables){let i=this.directory.tables[a];rr[a]&&i.length>0&&Object.defineProperty(this,a,{get:this._getTable.bind(this,i)})}}}mt([yt],wt.prototype,"bbox",null),mt([yt],wt.prototype,"_cmapProcessor",null),mt([yt],wt.prototype,"characterSet",null),mt([yt],wt.prototype,"_layoutEngine",null),mt([yt],wt.prototype,"variationAxes",null),mt([yt],wt.prototype,"namedVariations",null),mt([yt],wt.prototype,"_variationProcessor",null);let Tx=new T({tag:new Re(4),offset:new A(S,"void",{type:"global"}),compLength:S,length:S,origChecksum:S}),c0=new T({tag:new Re(4),flavor:S,length:S,numTables:u,reserved:new je(u),totalSfntSize:S,majorVersion:u,minorVersion:u,metaOffset:S,metaLength:S,metaOrigLength:S,privOffset:S,privLength:S,tables:new k(Tx,"numTables")});c0.process=function(){let t={};for(let e of this.tables)t[e.tag]=e;this.tables=t};var Px=c0;class Ex extends wt{static probe(e){return or.decode(e.slice(0,4))==="wOFF"}_decodeDirectory(){this.directory=Px.decode(this.stream,{_startOffset:0})}_getTableStream(e){let s=this.directory.tables[e];if(s)if(this.stream.pos=s.offset,s.compLength<s.length){this.stream.pos+=2;let a=new Uint8Array(s.length),i=Tw(this.stream.readBuffer(s.compLength-2),a);return new pt(i)}else return this.stream;return null}constructor(...e){super(...e),St(this,"type","WOFF")}}class Ox extends kr{_decode(){return this._font._transformedGlyphs[this.id]}_getCBox(){return this.path.bbox}constructor(...e){super(...e),St(this,"type","WOFF2")}}const f0={decode(t){let e=0,s=[0,1,2,3,4];for(let a=0;a<s.length;a++){let i=t.readUInt8();if(e&3758096384)throw new Error("Overflow");if(e=e<<7|i&127,!(i&128))return e}throw new Error("Bad base 128 number")}};let Mx=["cmap","head","hhea","hmtx","maxp","name","OS/2","post","cvt ","fpgm","glyf","loca","prep","CFF ","VORG","EBDT","EBLC","gasp","hdmx","kern","LTSH","PCLT","VDMX","vhea","vmtx","BASE","GDEF","GPOS","GSUB","EBSC","JSTF","MATH","CBDT","CBLC","COLR","CPAL","SVG ","sbix","acnt","avar","bdat","bloc","bsln","cvar","fdsc","feat","fmtx","fvar","gvar","hsty","just","lcar","mort","morx","opbd","prop","trak","Zapf","Silf","Glat","Gloc","Feat","Sill"],Rx=new T({flags:K,customTag:new Gi(new Re(4),t=>(t.flags&63)===63),tag:t=>t.customTag||Mx[t.flags&63],length:f0,transformVersion:t=>t.flags>>>6&3,transformed:t=>t.tag==="glyf"||t.tag==="loca"?t.transformVersion===0:t.transformVersion!==0,transformLength:new Gi(f0,t=>t.transformed)}),u0=new T({tag:new Re(4),flavor:S,length:S,numTables:u,reserved:new je(u),totalSfntSize:S,totalCompressedSize:S,majorVersion:u,minorVersion:u,metaOffset:S,metaLength:S,metaOrigLength:S,privOffset:S,privLength:S,tables:new k(Rx,"numTables")});u0.process=function(){let t={};for(let e=0;e<this.tables.length;e++){let s=this.tables[e];t[s.tag]=s}return this.tables=t};var zx=u0;class Lx extends wt{static probe(e){return or.decode(e.slice(0,4))==="wOF2"}_decodeDirectory(){this.directory=zx.decode(this.stream),this._dataPos=this.stream.pos}_decompress(){if(!this._decompressed){this.stream.pos=this._dataPos;let e=this.stream.readBuffer(this.directory.totalCompressedSize),s=0;for(let i in this.directory.tables){let r=this.directory.tables[i];r.offset=s,s+=r.transformLength!=null?r.transformLength:r.length}let a=f1(e,s);if(!a)throw new Error("Error decoding compressed data in WOFF2");this.stream=new pt(a),this._decompressed=!0}}_decodeTable(e){return this._decompress(),super._decodeTable(e)}_getBaseGlyph(e,s=[]){if(!this._glyphs[e])return this.directory.tables.glyf&&this.directory.tables.glyf.transformed?(this._transformedGlyphs||this._transformGlyfTable(),this._glyphs[e]=new Ox(e,s,this)):super._getBaseGlyph(e,s)}_transformGlyfTable(){this._decompress(),this.stream.pos=this.directory.tables.glyf.offset;let e=Dx.decode(this.stream),s=[];for(let i=0;i<e.numGlyphs;i++){let r={},n=e.nContours.readInt16BE();if(r.numberOfContours=n,n>0){let o=[],l=0;for(let c=0;c<n;c++){let f=co(e.nPoints);l+=f,o.push(l)}r.points=Gx(e.flags,e.glyphs,l);for(let c=0;c<n;c++)r.points[o[c]-1].endContour=!0;var a=co(e.glyphs)}else if(n<0&&kr.prototype._decodeComposite.call({_font:this},r,e.composites))var a=co(e.glyphs);s.push(r)}this._transformedGlyphs=s}constructor(...e){super(...e),St(this,"type","WOFF2")}}class qs{decode(e,s){return new pt(this._buf.decode(e,s))}constructor(e){this.length=e,this._buf=new Qt(e)}}let Dx=new T({version:S,numGlyphs:u,indexFormat:u,nContourStreamSize:S,nPointsStreamSize:S,flagStreamSize:S,glyphStreamSize:S,compositeStreamSize:S,bboxStreamSize:S,instructionStreamSize:S,nContours:new qs("nContourStreamSize"),nPoints:new qs("nPointsStreamSize"),flags:new qs("flagStreamSize"),glyphs:new qs("glyphStreamSize"),composites:new qs("compositeStreamSize"),bboxes:new qs("bboxStreamSize"),instructions:new qs("instructionStreamSize")});const Bx=253,Ux=254,Zx=255,h0=253;function co(t){let e=t.readUInt8();return e===Bx?t.readUInt16BE():e===Zx?t.readUInt8()+h0:e===Ux?t.readUInt8()+h0*2:e}function ns(t,e){return t&1?e:-e}function Gx(t,e,s){let a,i=a=0,r=[];for(let l=0;l<s;l++){let c=0,f=0,h=t.readUInt8(),d=!(h>>7);if(h&=127,h<10)c=0,f=ns(h,((h&14)<<7)+e.readUInt8());else if(h<20)c=ns(h,((h-10&14)<<7)+e.readUInt8()),f=0;else if(h<84){var n=h-20,o=e.readUInt8();c=ns(h,1+(n&48)+(o>>4)),f=ns(h>>1,1+((n&12)<<2)+(o&15))}else if(h<120){var n=h-84;c=ns(h,1+(n/12<<8)+e.readUInt8()),f=ns(h>>1,1+(n%12>>2<<8)+e.readUInt8())}else if(h<124){var o=e.readUInt8();let b=e.readUInt8();c=ns(h,(o<<4)+(b>>4)),f=ns(h>>1,((b&15)<<8)+e.readUInt8())}else c=ns(h,e.readUInt16BE()),f=ns(h>>1,e.readUInt16BE());i+=c,a+=f,r.push(new Gt(d,!1,i,a))}return r}let Wx=new ve(S,{65536:{numFonts:S,offsets:new k(S,"numFonts")},131072:{numFonts:S,offsets:new k(S,"numFonts"),dsigTag:S,dsigLength:S,dsigOffset:S}});class Yx{static probe(e){return or.decode(e.slice(0,4))==="ttcf"}getFont(e){for(let s of this.header.offsets){let a=new pt(this.stream.buffer);a.pos=s;let i=new wt(a);if(i.postscriptName===e||i.postscriptName instanceof Uint8Array&&e instanceof Uint8Array&&i.postscriptName.every((r,n)=>e[n]===r))return i}return null}get fonts(){let e=[];for(let s of this.header.offsets){let a=new pt(this.stream.buffer);a.pos=s,e.push(new wt(a))}return e}constructor(e){if(St(this,"type","TTC"),this.stream=e,e.readString(4)!=="ttcf")throw new Error("Not a TrueType collection");this.header=Wx.decode(e)}}let Hx=new Re(K);new T({len:S,buf:new Qt("len")});let jx=new T({id:u,nameOffset:U,attr:K,dataOffset:ks,handle:S}),Kx=new T({name:new Re(4),maxTypeIndex:u,refList:new A(u,new k(jx,t=>t.maxTypeIndex+1),{type:"parent"})}),Xx=new T({length:u,types:new k(Kx,t=>t.length+1)}),qx=new T({reserved:new je(K,24),typeList:new A(u,Xx),nameListOffset:new A(u,"void")}),d0=new T({dataOffset:S,map:new A(S,qx),dataLength:S,mapLength:S});class Jx{static probe(e){let s=new pt(e);try{var a=d0.decode(s)}catch{return!1}for(let i of a.map.typeList.types)if(i.name==="sfnt")return!0;return!1}getFont(e){if(!this.sfnt)return null;for(let s of this.sfnt.refList){let a=this.header.dataOffset+s.dataOffset+4,i=new pt(this.stream.buffer.slice(a)),r=new wt(i);if(r.postscriptName===e||r.postscriptName instanceof Uint8Array&&e instanceof Uint8Array&&r.postscriptName.every((n,o)=>e[o]===n))return r}return null}get fonts(){let e=[];for(let s of this.sfnt.refList){let a=this.header.dataOffset+s.dataOffset+4,i=new pt(this.stream.buffer.slice(a));e.push(new wt(i))}return e}constructor(e){St(this,"type","DFont"),this.stream=e,this.header=d0.decode(this.stream);for(let s of this.header.map.typeList.types){for(let a of s.refList)a.nameOffset>=0?(this.stream.pos=a.nameOffset+this.header.map.nameListOffset,a.name=Hx.decode(this.stream)):a.name=null;s.name==="sfnt"&&(this.sfnt=s)}}}ga(wt),ga(Ex),ga(Lx),ga(Yx),ga(Jx);var ct={DEFAULTS:{width:800,height:400,pixelRatio:2,fontFamily:"Roboto",fontSize:48,color:"#000000",textAlign:"center"},LIMITS:{minWidth:1,maxWidth:4096,minHeight:1,maxHeight:4096,minFontSize:1,maxFontSize:512,minDuration:.1,maxDuration:120,maxTextLength:1e4},ANIMATION_TYPES:["typewriter","fadeIn","slideIn","shift","ascend","movingLetters"]},Js=/^#[A-Fa-f0-9]{6}$/,Qx=w({src:p().url(),family:p(),weight:x([p(),C()]).optional(),style:p().optional(),originalFamily:p().optional()}),$x=w({width:C().min(0).default(0),color:p().regex(Js).default("#000000"),opacity:C().min(0).max(1).default(1),radius:C().min(0).default(0)}),eC=x([C().min(0),w({top:C().min(0).default(0),right:C().min(0).default(0),bottom:C().min(0).default(0),left:C().min(0).default(0)})]),tC=Jy.extend({family:p().default(ct.DEFAULTS.fontFamily),size:C().int().min(ct.LIMITS.minFontSize).max(ct.LIMITS.maxFontSize).default(ct.DEFAULTS.fontSize),weight:x([p(),C()]).default("400"),color:p().regex(Js).default(ct.DEFAULTS.color),opacity:C().min(0).max(1).default(1),background:p().regex(Js).optional()}),sC=w({type:D(["linear","radial"]).default("linear"),angle:C().min(0).max(360).default(0),stops:Ie(w({offset:C().min(0).max(1),color:p().regex(Js)})).min(2)}),aC=Qy.extend({letterSpacing:C().default(0),lineHeight:C().min(0).max(10).default(1.2),textTransform:D(["none","uppercase","lowercase","capitalize"]).default("none"),textDecoration:D(["none","underline","line-through"]).default("none"),gradient:sC.optional()}),iC=qy.extend({width:C().min(0).default(0),color:p().regex(Js).default("#000000"),opacity:C().min(0).max(1).default(1)}),rC=Xy.extend({offsetX:C().default(0),offsetY:C().default(0),blur:C().min(0).default(0),color:p().regex(Js).default("#000000"),opacity:C().min(0).max(1).default(.5)}),nC=Yy.extend({color:p().regex(Js).optional(),opacity:C().min(0).max(1).default(1)}),oC=Gy.extend({horizontal:D(["left","center","right"]).default(ct.DEFAULTS.textAlign),vertical:D(["top","middle","bottom"]).default("middle")}),lC=Wy.extend({preset:D(ct.ANIMATION_TYPES),speed:C().min(.1).max(10).default(1),duration:C().min(ct.LIMITS.minDuration).max(ct.LIMITS.maxDuration).optional(),style:D(["character","word"]).optional(),direction:D(["left","right","up","down"]).optional()}).superRefine((t,e)=>{const s=["typewriter","shift","fadeIn","slideIn"];t.style&&!s.includes(t.preset)&&e.addIssue({code:la.custom,message:`style is not allowed for preset "${t.preset}"`,path:["style"]});const a={ascend:["up","down"],shift:["left","right","up","down"],slideIn:["left","right","up","down"],movingLetters:["left","right","up","down"]};if(t.direction){const i=a[t.preset];i?i.includes(t.direction)||e.addIssue({code:la.custom,message:`direction "${t.direction}" is not valid for preset "${t.preset}"`,path:["direction"]}):e.addIssue({code:la.custom,message:`direction is not allowed for preset "${t.preset}"`,path:["direction"]})}}),cC=Kl.extend({type:he("rich-text"),text:p().max(ct.LIMITS.maxTextLength).default(""),width:C().int().min(ct.LIMITS.minWidth).max(ct.LIMITS.maxWidth).default(ct.DEFAULTS.width).optional(),height:C().int().min(ct.LIMITS.minHeight).max(ct.LIMITS.maxHeight).default(ct.DEFAULTS.height).optional(),font:tC.optional(),style:aC.optional(),stroke:iC.optional(),shadow:rC.optional(),background:nC.optional(),border:$x.optional(),padding:eC.optional(),align:oC.optional(),animation:lC.optional(),customFonts:Ie(Qx).optional()}).strict(),Nr=null;function g0(){return typeof process<"u"&&process.versions!=null&&process.versions.node!=null}function fC(t){if(t.buffer instanceof ArrayBuffer)return t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength);const e=new ArrayBuffer(t.byteLength),s=new Uint8Array(e);for(let a=0;a<t.byteLength;a++)s[a]=t[a];return e}var p0="https://shotstack-ingest-api-dev-sources.s3.ap-southeast-2.amazonaws.com/euo5r93oyr/zzz01k9h-yycyx-2x2y6-qx9bj-7n567b/source.wasm";async function m0(t){try{const e=await fetch(t);if(e.ok){const s=await e.arrayBuffer(),a=new Uint8Array(s);if(a.length>=4&&a[0]===0&&a[1]===97&&a[2]===115&&a[3]===109)return s;console.error(`❌ Invalid WASM magic number from URL: ${t}`)}else console.error(`❌ Failed to fetch WASM from URL: ${t}, status: ${e.status}`);return}catch(e){console.error(`❌ Error fetching WASM from ${t}:`,e);return}}async function uC(){try{const{readFile:t}=await Promise.resolve().then(()=>Rr),e=await Promise.resolve().then(()=>Rr),s=[];try{const{createRequire:i}=await Promise.resolve().then(()=>Rr),n=i((typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__filename).href:typeof document>"u"?location.href:ls&&ls.tagName.toUpperCase()==="SCRIPT"&&ls.src||new URL("internal.umd.js",document.baseURI).href)||`file://${process.cwd()}/`).resolve("harfbuzzjs/package.json"),o=e.dirname(n);s.push(e.join(o,"hb.wasm"))}catch{}let a;try{if(typeof(typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__filename).href:typeof document>"u"?location.href:ls&&ls.tagName.toUpperCase()==="SCRIPT"&&ls.src||new URL("internal.umd.js",document.baseURI).href)=="string"){const{fileURLToPath:i}=await Promise.resolve().then(()=>Rr);a=e.dirname(i(typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__filename).href:typeof document>"u"?location.href:ls&&ls.tagName.toUpperCase()==="SCRIPT"&&ls.src||new URL("internal.umd.js",document.baseURI).href))}}catch{}a||(a=process.cwd()),s.push(e.join(a,"dist/hb.wasm"),e.join(a,"assets/wasm/hb.wasm"),e.join(a,"node_modules/harfbuzzjs/hb.wasm"),e.join(a,"node_modules/@shotstack/shotstack-canvas/assets/wasm/hb.wasm")),s.push("/var/task/node_modules/harfbuzzjs/hb.wasm","/var/task/node_modules/@shotstack/shotstack-canvas/assets/wasm/hb.wasm");for(const i of s)try{const r=await t(i);return fC(r)}catch{continue}return await m0(p0)}catch(t){return console.error("Error in loadWasmNode:",t),await m0(p0)}}async function hC(t){try{if(t){const e=t.endsWith(".wasm")?t:t.endsWith("/")?`${t}hb.wasm`:`${t}/hb.wasm`,s=await fetch(e);if(s.ok){const a=await s.arrayBuffer(),i=new Uint8Array(a);if(i.length>=4&&i[0]===0&&i[1]===97&&i[2]===115&&i[3]===109)return a}}return}catch(e){console.error("Error in loadWasmWeb:",e);return}}function dC(t){const e=window.fetch;window.fetch=function(i,r){return(typeof i=="string"?i:i instanceof URL?i.href:i.url).includes("hb.wasm")?Promise.resolve(new Response(t.slice(0),{status:200,statusText:"OK",headers:{"Content-Type":"application/wasm","Content-Length":t.byteLength.toString()}})):e.apply(this,[i,r])};const s=WebAssembly.instantiate;WebAssembly.instantiate=async function(i,r){if(i instanceof WebAssembly.Module||(i instanceof ArrayBuffer,i.byteLength)!==t.byteLength)return s.call(WebAssembly,i,r);const o=await WebAssembly.compile(t),l=await s.call(WebAssembly,o,r);return{module:o,instance:l}};const a=WebAssembly.instantiateStreaming;a&&(WebAssembly.instantiateStreaming=async function(i,r){try{const n=await i;if((n.url||"").includes("hb.wasm")){const l=await WebAssembly.compile(t),c=await WebAssembly.instantiate(l,r);return{module:l,instance:c}}return a.call(WebAssembly,n,r)}catch(n){throw n}})}async function gC(t){if(Nr)return Nr;try{let e;if(g0()?e=await uC():e=await hC(t),!e)throw new Error("Failed to load WASM binary from any source");g0()||(dC(e),window.Module={wasmBinary:e,locateFile:l=>l});const s=await Promise.resolve().then(()=>eN),i=await(s.default||s)({wasmBinary:e}),r=await Promise.resolve().then(()=>aN),o=(r.default||r)(i);if(!o||typeof o.createBuffer!="function"||typeof o.createFont!="function")throw new Error("Failed to initialize HarfBuzz: unexpected export shape from 'harfbuzzjs'.");return Nr=o,Nr}catch(e){throw console.error("Failed to initialize HarfBuzz:",e),new Error(`Failed to initialize HarfBuzz: ${e instanceof Error?e.message:String(e)}`)}}function Ar(t){if(t==null)return"400";if(typeof t=="number")return String(t);const e=String(t).toLowerCase().trim(),s={thin:"100",hairline:"100",extralight:"200",ultralight:"200",light:"300",normal:"400",regular:"400",medium:"500",semibold:"600",demibold:"600",bold:"700",extrabold:"800",ultrabold:"800",black:"900",heavy:"900"};if(s[e])return s[e];const a=parseInt(String(t),10);return!isNaN(a)&&a>=100&&a<=900?String(a):(console.warn(`Invalid font weight "${t}", defaulting to 400`),"400")}var ii=class He{constructor(e){bt(this,"hb"),bt(this,"faces",new Map),bt(this,"fonts",new Map),bt(this,"blobs",new Map),bt(this,"fontkitFonts",new Map),bt(this,"fontkitBaseFonts",new Map),bt(this,"colorEmojiFonts",new Set),bt(this,"colorEmojiFontBytes",new Map),bt(this,"wasmBaseURL"),bt(this,"initPromise"),bt(this,"emojiFallbackDesc"),this.wasmBaseURL=e}static setFallbackLoader(e){He.fallbackLoader=e}static async getSharedInstance(e){if(He.sharedInitPromise){const s=await He.sharedInitPromise;return He.refCount++,s}if(He.sharedInstance)return He.refCount++,He.sharedInstance;He.sharedInitPromise=(async()=>{const s=new He(e);return await s.init(),He.sharedInstance=s,He.refCount=1,s})();try{return await He.sharedInitPromise}finally{He.sharedInitPromise=null}}static getRefCount(){return He.refCount}static hasSharedInstance(){return He.sharedInstance!==null}release(){if(this!==He.sharedInstance){this.destroy();return}He.refCount--,He.refCount<=0&&(this.destroy(),He.sharedInstance=null,He.refCount=0)}static resetSharedInstance(){He.sharedInstance&&(He.sharedInstance.destroy(),He.sharedInstance=null),He.refCount=0,He.sharedInitPromise=null}setEmojiFallback(e){this.emojiFallbackDesc=e}isColorEmojiFont(e){return this.colorEmojiFonts.has(e)}getColorEmojiFontBytes(e){return this.colorEmojiFontBytes.get(e)}getColorEmojiFontFamilies(){return Array.from(this.colorEmojiFonts)}detectColorEmojiFont(e){try{if(e.directory&&e.directory.tables){const s=e.directory.tables;if(s.CBDT||s.CBLC||s.sbix||s.COLR&&s.CPAL||s.SVG)return!0}if(e.availableTables){const s=e.availableTables;if(s.includes("CBDT")||s.includes("CBLC")||s.includes("sbix")||s.includes("COLR")&&s.includes("CPAL")||s.includes("SVG"))return!0}if(e._tables){const s=Object.keys(e._tables);if(s.includes("CBDT")||s.includes("CBLC")||s.includes("sbix")||s.includes("COLR")&&s.includes("CPAL")||s.includes("SVG"))return!0}return!1}catch{return!1}}async init(){if(this.initPromise){await this.initPromise;return}if(!this.hb){this.initPromise=this._doInit();try{await this.initPromise}catch(e){throw new Error(`Failed to initialize FontRegistry: ${e instanceof Error?e.message:String(e)}`)}}}async _doInit(){try{this.hb=await gC("https://shotstack-ingest-api-dev-sources.s3.ap-southeast-2.amazonaws.com/euo5r93oyr/zzz01k9h-yycyx-2x2y6-qx9bj-7n567b/source.wasm")}catch(e){throw this.initPromise=void 0,e}}async getHB(){if(!this.hb)try{await this.init()}catch(e){throw new Error(`Failed to get HarfBuzz instance: ${e instanceof Error?e.message:String(e)}`)}return this.hb}key(e){const s=Ar(e.weight);return`${e.family}__${s}`}async registerFromBytes(e,s){try{this.hb||await this.init();const a=this.key(s);if(this.fonts.has(a))return;const i=this.hb.createBlob(e),r=this.hb.createFace(i,0),n=this.hb.createFont(r),o=r.upem||1e3;n.setScale(o,o);const l=Ar(s.weight),c=parseInt(l,10);if(c!==400&&typeof n.setVariations=="function")try{n.setVariations(`wght=${c}`)}catch{}this.blobs.set(a,i),this.faces.set(a,r),this.fonts.set(a,n);try{const f=typeof Buffer<"u"?Buffer.from(e):new Uint8Array(e),h=Bc(f),d=s.family;if(this.fontkitBaseFonts.has(d)||this.fontkitBaseFonts.set(d,h),this.detectColorEmojiFont(h)&&(this.colorEmojiFonts.add(s.family),this.colorEmojiFontBytes.has(s.family)||this.colorEmojiFontBytes.set(s.family,e.slice(0))),h.variationAxes&&Object.keys(h.variationAxes).length>0){const b=h.getVariation({wght:c});this.fontkitFonts.set(a,b)}else this.fontkitFonts.set(a,h)}catch(f){console.warn(`⚠️ Fontkit failed for ${s.family}:`,f)}}catch(a){throw new Error(`Failed to register font "${s.family}": ${a instanceof Error?a.message:String(a)}`)}}async tryFallbackInstall(e){const s=He.fallbackLoader;if(!s)return!1;try{const a=Ar(e.weight),i=await s({family:e.family,weight:a});return i?(await this.registerFromBytes(i,{family:e.family,weight:a}),!0):!1}catch{return!1}}async getFont(e){try{this.hb||await this.init();const s=this.key(e);let a=this.fonts.get(s);if(a||(a=await this.tryFallbackInstall(e)?this.fonts.get(s):void 0),a||(a=await this.tryDeriveFromExistingFont(e)),!a)throw new Error(`Font not registered for ${s}`);return a}catch(s){throw s instanceof Error&&s.message.includes("Font not registered")?s:new Error(`Failed to get font "${e.family}": ${s instanceof Error?s.message:String(s)}`)}}async tryDeriveFromExistingFont(e){const s=e.family,a=Ar(e.weight),i=parseInt(a,10);let r;for(const[d,m]of this.blobs)if(d.startsWith(`${s}__`)){r=m;break}const n=this.fontkitBaseFonts.get(s);if(!r||!n)return;if(!(n.variationAxes&&n.variationAxes.wght!==void 0)){console.warn(`Font ${s} is not a variable font, cannot derive weight ${a}`);return}const l=this.key(e),c=this.hb.createFace(r,0),f=this.hb.createFont(c),h=c.upem||1e3;if(f.setScale(h,h),typeof f.setVariations=="function")try{f.setVariations(`wght=${i}`)}catch{}this.faces.set(l,c),this.fonts.set(l,f);try{const d=n.getVariation({wght:i});this.fontkitFonts.set(l,d)}catch{this.fontkitFonts.set(l,n),console.warn(`⚠️ Could not apply weight variation, using base font for ${s}`)}return f}async getFace(e){try{this.hb||await this.init();const s=this.key(e);let a=this.faces.get(s);return a||(a=await this.tryFallbackInstall(e)?this.faces.get(s):void 0),a||(await this.tryDeriveFromExistingFont(e),a=this.faces.get(s)),a}catch(s){throw new Error(`Failed to get face for "${e.family}": ${s instanceof Error?s.message:String(s)}`)}}async getUnitsPerEm(e){try{return(await this.getFace(e))?.upem||1e3}catch(s){throw new Error(`Failed to get units per em for "${e.family}": ${s instanceof Error?s.message:String(s)}`)}}async glyphPath(e,s){const a=this.key(e);try{const i=this.fontkitFonts.get(a);if(i){const o=i.getGlyph(s);if(o&&o.path){const l=o.path.toSVG();return l&&l!==""?l:"M 0 0"}}const n=(await this.getFont(e)).glyphToPath(s);return n&&n!==""?n:"M 0 0"}catch(i){throw new Error(`Failed to get glyph path for glyph ${s} in font "${e.family}": ${i instanceof Error?i.message:String(i)}`)}}destroy(){try{for(const[,e]of this.fonts)try{e.destroy()}catch(s){console.error(`Error destroying font: ${s instanceof Error?s.message:String(s)}`)}for(const[,e]of this.faces)try{e.destroy()}catch(s){console.error(`Error destroying face: ${s instanceof Error?s.message:String(s)}`)}for(const[,e]of this.blobs)try{e.destroy()}catch(s){console.error(`Error destroying blob: ${s instanceof Error?s.message:String(s)}`)}this.fonts.clear(),this.faces.clear(),this.blobs.clear(),this.fontkitFonts.clear(),this.fontkitBaseFonts.clear(),this.colorEmojiFonts.clear(),this.colorEmojiFontBytes.clear(),this.hb=void 0,this.initPromise=void 0}catch(e){console.error(`Error during FontRegistry cleanup: ${e instanceof Error?e.message:String(e)}`)}}};bt(ii,"sharedInstance",null),bt(ii,"refCount",0),bt(ii,"sharedInitPromise",null),bt(ii,"fallbackLoader");var y0=ii;function pC(t){const e=t.codePointAt(0);return e?e>=127744&&e<=129535||e>=9728&&e<=9983||e>=9984&&e<=10175||e>=65024&&e<=65039||e>=128512&&e<=128591||e>=128640&&e<=128767||e>=129280&&e<=129535||e>=129648&&e<=129791:!1}var mC=class{constructor(t){this.fonts=t}transformText(t,e){switch(e){case"uppercase":return t.toUpperCase();case"lowercase":return t.toLowerCase();case"capitalize":return t.replace(/\b\w/g,s=>s.toUpperCase());default:return t}}async shapeFull(t,e){try{const s=await this.fonts.getHB(),a=s.createBuffer();try{a.addText(t),a.guessSegmentProperties();const i=await this.fonts.getFont(e),n=(await this.fonts.getFace(e))?.upem||1e3;return i.setScale(n,n),s.shape(i,a),a.json()}finally{try{a.destroy()}catch(i){console.error(`Error destroying HarfBuzz buffer: ${i instanceof Error?i.message:String(i)}`)}}}catch(s){throw new Error(`Failed to shape text with font "${e.family}": ${s instanceof Error?s.message:String(s)}`)}}async layout(t){try{const{textTransform:e,desc:s,fontSize:a,letterSpacing:i,width:r,emojiFallback:n}=t,o=this.transformText(t.text,e);if(!o||o.length===0)return[];let l;try{if(!n)l=await this.shapeFull(o,s);else{const V=Array.from(o),v=[];let F={text:"",startIndex:0,isEmoji:!1};for(let y=0;y<V.length;y++){const Z=V[y],P=pC(Z);y===0?F={text:Z,startIndex:0,isEmoji:P}:F.isEmoji===P?F.text+=Z:(v.push(F),F={text:Z,startIndex:F.startIndex+F.text.length,isEmoji:P})}F.text&&v.push(F),l=[];for(const y of v){const Z=y.isEmoji?n:s,P=await this.shapeFull(y.text,Z);for(const B of P)B.cl+=y.startIndex,B.fontDesc=Z;l.push(...P)}}}catch(V){throw new Error(`Text shaping failed: ${V instanceof Error?V.message:String(V)}`)}let c;try{c=(await this.fonts.getFace(s))?.upem||1e3}catch(V){throw new Error(`Failed to get font metrics: ${V instanceof Error?V.message:String(V)}`)}const f=a/c,h=l.map(V=>{const v=V.cl;let F;if(v>=0&&v<o.length){const y=o.codePointAt(v);y!==void 0&&(F=String.fromCodePoint(y))}return{id:V.g,xAdvance:V.ax*f+i,xOffset:V.dx*f,yOffset:-V.dy*f,cluster:V.cl,char:F,fontDesc:V.fontDesc}}),d=[];let m=[],b=0;const I=new Set;for(let V=0;V<o.length;V++)o[V]===" "&&I.add(V);let M=-1;for(let V=0;V<h.length;V++){const v=h[V],F=v.xAdvance;if(v.char===`
|
|
274
|
+
`){d.push({glyphs:m,width:b,y:0}),m=[],b=0,M=V;continue}if(b+F>r&&m.length>0){if(M>-1){const y=M-(V-m.length)+1,Z=m.splice(y),P=m.reduce((B,J)=>B+J.xAdvance,0);d.push({glyphs:m,width:P,y:0}),m=Z,b=Z.reduce((B,J)=>B+J.xAdvance,0)}else d.push({glyphs:m,width:b,y:0}),m=[],b=0;M=-1}m.push(v),b+=F,I.has(v.cluster)&&(M=V)}m.length>0&&d.push({glyphs:m,width:b,y:0});const E=t.lineHeight*a;for(let V=0;V<d.length;V++)d[V].y=(V+1)*E;return d}catch(e){throw e instanceof Error?e:new Error(`Layout failed: ${String(e)}`)}}};function yC(t,e){return t.type==="linear"?{kind:"linear",angle:t.angle,stops:t.stops,opacity:e}:{kind:"radial",stops:t.stops,opacity:e}}function bC(t,e){const s=Math.max(1,Math.round(e.fontSize*.05));let a=e.baselineY+Math.round(e.fontSize*.1);return t==="line-through"&&(a=e.baselineY-Math.round(e.fontSize*.3)),{x1:e.xStart,x2:e.xStart+e.lineWidth,y:a,width:s}}function wC(t){return t==null?{top:0,right:0,bottom:0,left:0}:typeof t=="number"?{top:t,right:t,bottom:t,left:t}:t}async function vC(t){const e=[],s=wC(t.padding),a=t.border?.width??0;if(e.push({op:"BeginFrame",width:t.canvas.width,height:t.canvas.height,pixelRatio:t.canvas.pixelRatio,clear:!0,bg:void 0}),t.lines.length===0)return e;const i=Math.max(1,await t.getUnitsPerEm()),r=t.font.size/i,n=t.lines.length,o=t.font.size*t.style.lineHeight;let l;switch(t.align.vertical){case"top":l=t.font.size;break;case"bottom":l=t.textRect.height-(n-1)*o;break;case"middle":default:const V=t.font.size*.35;l=(t.textRect.height-(n-1)*o)/2+V;break}l+=a+s.top;const c=t.style.gradient?yC(t.style.gradient,1):{kind:"solid",color:t.font.color,opacity:t.font.opacity},f=t.style.gradient?t.style.gradient.stops[t.style.gradient.stops.length-1]?.color??t.font.color:t.font.color,h=[],d=[];let m=1/0,b=1/0,I=-1/0,M=-1/0;for(const E of t.lines){let V;switch(t.align.horizontal){case"left":V=0;break;case"right":V=t.textRect.width-E.width;break;case"center":default:V=(t.textRect.width-E.width)/2;break}V+=a+s.left;let v=V;const F=t.lines.indexOf(E),y=l+F*o;if(t.font.background){const Z=t.font.size*.15,P=t.font.size*.12,B=t.font.size*.92+P*2,J=y-t.font.size*.78-P;d.push({op:"Rectangle",x:V-Z,y:J,width:E.width+Z*2,height:B,fill:{kind:"solid",color:t.font.background,opacity:1}})}for(const Z of E.glyphs){const P=v+Z.xOffset,B=y+Z.yOffset,J=Z.fontDesc?.family;if((Z.isColorEmoji||J&&t.isColorEmojiFont&&t.isColorEmojiFont(J))&&Z.char){h.push({op:"DrawColorEmoji",char:Z.char,x:P,y:B,fontSize:t.font.size,fontFamily:J||"NotoColorEmoji"}),v+=Z.xAdvance;continue}const se=await t.glyphPathProvider(Z.id,Z.fontDesc);if(!se||se==="M 0 0"){v+=Z.xAdvance;continue}const ue=CC(se),Ce=P+r*ue.x,Te=P+r*(ue.x+ue.w),Ae=B-r*(ue.y+ue.h),Le=B-r*ue.y;Ce<m&&(m=Ce),Ae<b&&(b=Ae),Te>I&&(I=Te),Le>M&&(M=Le),t.shadow&&t.shadow.blur>0&&h.push({isShadow:!0,op:"FillPath",path:se,x:P+t.shadow.offsetX,y:B+t.shadow.offsetY,scale:r,fill:{kind:"solid",color:t.shadow.color,opacity:t.shadow.opacity}}),t.stroke&&t.stroke.width>0&&h.push({op:"StrokePath",path:se,x:P,y:B,scale:r,width:t.stroke.width,color:t.stroke.color,opacity:t.stroke.opacity}),h.push({op:"FillPath",path:se,x:P,y:B,scale:r,fill:c}),v+=Z.xAdvance}if(t.style.textDecoration!=="none"){const Z=bC(t.style.textDecoration,{baselineY:y,fontSize:t.font.size,lineWidth:E.width,xStart:V});h.push({op:"DecorationLine",from:{x:Z.x1,y:Z.y},to:{x:Z.x2,y:Z.y},width:Z.width,color:f,opacity:t.font.opacity})}}if(m!==1/0){const E={x:m,y:b,w:Math.max(1,I-m),h:Math.max(1,M-b)};for(const V of h)V.op==="FillPath"&&!V.isShadow&&(V.gradientBBox=E)}if(t.background||t.border){const E=t.contentRect?.width??t.canvas.width,V=t.contentRect?.height??t.canvas.height,v=t.border?.width??0,F=t.border?.radius??0,y=v/2,Z=t.canvas.width/2,P=t.canvas.height/2,B=Z-E/2,J=P-V/2,$=Math.min(E-v,V-v)/2,se=Math.min(F,$),ue=Math.max(0,se-y);t.background?.color&&e.push({op:"Rectangle",x:B+v,y:J+v,width:E-v*2,height:V-v*2,fill:{kind:"solid",color:t.background.color,opacity:t.background.opacity},borderRadius:ue}),t.border&&t.border.width>0&&e.push({op:"RectangleStroke",x:B+y,y:J+y,width:E-v,height:V-v,stroke:{width:t.border.width,color:t.border.color,opacity:t.border.opacity},borderRadius:se})}return e.push(...d),e.push(...h),e}function xC(t){return t.match(/[MLCQZ]|-?\d*\.?\d+(?:e[-+]?\d+)?/gi)??[]}function CC(t){const e=xC(t);let s=0,a=1/0,i=1/0,r=-1/0,n=-1/0;const o=(l,c)=>{l<a&&(a=l),c<i&&(i=c),l>r&&(r=l),c>n&&(n=c)};for(;s<e.length;)switch(e[s++]){case"M":case"L":{const c=parseFloat(e[s++]),f=parseFloat(e[s++]);o(c,f);break}case"C":{const c=parseFloat(e[s++]),f=parseFloat(e[s++]),h=parseFloat(e[s++]),d=parseFloat(e[s++]),m=parseFloat(e[s++]),b=parseFloat(e[s++]);o(c,f),o(h,d),o(m,b);break}case"Q":{const c=parseFloat(e[s++]),f=parseFloat(e[s++]),h=parseFloat(e[s++]),d=parseFloat(e[s++]);o(c,f),o(h,d);break}}return a===1/0?{x:0,y:0,w:0,h:0}:{x:a,y:i,w:r-a,h:n-i}}var fo=.999;function kC(t,e,s){if(!s.anim||!s.anim.preset)return t;const{preset:a}=s.anim,i=e.reduce((l,c)=>l+c.glyphs.length,0);let r=Math.max(.3,i/(30*s.anim.speed));s.clipDuration&&!s.anim.duration&&(r=Math.min(r,s.clipDuration*.9));const n=s.anim.duration??r,o=Math.max(0,Math.min(1,s.t/n));switch(a){case"typewriter":return AC(t,e,o,s.anim.style,s.fontSize,s.t);case"fadeIn":return IC(t,e,o,s.anim.style,s.fontSize,n);case"slideIn":return _C(t,e,o,s.anim.direction??"left",s.fontSize,s.anim.style,n);case"shift":return VC(t,e,o,s.anim.direction??"left",s.fontSize,s.anim.style,n);case"ascend":return SC(t,e,o,s.anim.direction??"up",s.fontSize,n);case"movingLetters":return FC(t,s.t,s.anim.direction??"up",s.fontSize);default:return t}}var Sr=t=>t.op==="FillPath"&&t.isShadow===!0,Vr=t=>t.op==="FillPath"&&!t.isShadow;function NC(t){for(const e of t)if(e.op==="FillPath"){const s=e.fill;if(s?.kind==="solid")return s.color;if((s?.kind==="linear"||s?.kind==="radial")&&Array.isArray(s.stops)&&s.stops.length)return s.stops[s.stops.length-1].color||"#000000"}return"#000000"}function AC(t,e,s,a,i,r,n){if(a==="word"){const l=ri(e),c=l.length,f=Math.floor(s*c);if(f===0)return t.filter(b=>b.op==="BeginFrame"||b.op==="Rectangle"||b.op==="RectangleStroke");let h=0;for(let b=0;b<Math.min(f,l.length);b++)h+=l[b].glyphCount;const d=b0(t,h),m=s>=fo?d:d.filter(b=>b.op!=="DecorationLine");return s<1&&h>0?w0(m,h,i):m}else{const l=e.reduce((d,m)=>d+m.glyphs.length,0),c=Math.floor(s*l);if(c===0)return t.filter(d=>d.op==="BeginFrame"||d.op==="Rectangle"||d.op==="RectangleStroke");const f=b0(t,c),h=s>=fo?f:f.filter(d=>d.op!=="DecorationLine");return s<1&&c>0?w0(h,c,i):h}}function SC(t,e,s,a,i,r){const n=ri(e),o=n.length;if(o===0)return t;const l=[];let c=0;for(const f of t)if((f.op==="BeginFrame"||f.op==="Rectangle"||f.op==="RectangleStroke")&&l.push(f),f.op==="FillPath"||f.op==="StrokePath")break;for(const f of t)if(f.op==="FillPath"||f.op==="StrokePath"){let h=-1,d=0;for(let m=0;m<n.length;m++){const b=n[m].glyphCount;if(c>=d&&c<d+b){h=m;break}d+=b}if(h>=0){const m=h/Math.max(1,o)*(r/r),b=Math.min(1,m+.3);if(s>=b)l.push(f);else if(s>m){const I=(s-m)/Math.max(1e-6,b-m),M=Ir(Math.min(1,I)),E=a==="up"?i*.4:-i*.4,V={...f,y:f.y+E*(1-M)};f.op==="FillPath"?V.fill.kind==="solid"?V.fill={...V.fill,opacity:V.fill.opacity*M}:V.fill={...V.fill,opacity:(V.fill.opacity??1)*M}:V.opacity=V.opacity*M,l.push(V)}}Vr(f)&&c++}else f.op==="DecorationLine"&&s>=fo&&l.push(f);return l}function VC(t,e,s,a,i,r,n){const o=r==="word",c={left:{x:i*.6,y:0},right:{x:-i*.6,y:0},up:{x:0,y:i*.6},down:{x:0,y:-i*.6}}[a],f=o?ri(e):[],h=e.reduce((v,F)=>v+F.glyphs.length,0),d=o?f.length:h;if(d===0)return t;const m=[];for(const v of t)if((v.op==="BeginFrame"||v.op==="Rectangle"||v.op==="RectangleStroke")&&m.push(v),v.op==="FillPath"||v.op==="StrokePath")break;const b=.3,M=n*.7/Math.max(1,d-1),E=v=>{const F=v*M,y=F/n,Z=Math.min(1,(F+b)/n);return{startF:y,endF:Z}};let V=0;for(const v of t){if(v.op!=="FillPath"&&v.op!=="StrokePath"){v.op==="DecorationLine"&&s>.8&&m.push(v);continue}let F;if(!o)F=V;else{let P=-1,B=0;for(let J=0;J<f.length;J++){const $=f[J].glyphCount;if(V>=B&&V<B+$){P=J;break}B+=$}F=Math.max(0,P)}const{startF:y,endF:Z}=E(F);if(s<=y){const P={...v,x:v.x+c.x,y:v.y+c.y};v.op==="FillPath"?P.fill.kind==="solid"?P.fill={...P.fill,opacity:0}:P.fill={...P.fill,opacity:0}:P.opacity=0,m.push(P)}else if(s>=Z)m.push(v);else{const P=(s-y)/Math.max(1e-6,Z-y),B=Ir(Math.min(1,P)),J=c.x*(1-B),$=c.y*(1-B),se={...v,x:v.x+J,y:v.y+$};if(v.op==="FillPath"){const ue=se.fill.kind==="solid"?se.fill.opacity:se.fill.opacity??1;se.fill.kind==="solid"?se.fill={...se.fill,opacity:ue*B}:se.fill={...se.fill,opacity:ue*B}}else se.opacity=se.opacity*B;m.push(se)}Vr(v)&&V++}return m}function IC(t,e,s,a,i,r){const n=a==="word";if(!n&&!(a==="character")){const E=uo(s),V=.95+.05*E;return PC(t,E,V)}const l=n?ri(e):[],c=e.reduce((E,V)=>E+V.glyphs.length,0),f=n?l.length:c;if(f===0)return t;const h=[];for(const E of t)if(E.op==="BeginFrame"){h.push(E);break}const d=.3,b=r*.7/Math.max(1,f-1),I=E=>{const V=E*b,v=V/r,F=Math.min(1,(V+d)/r);return{startF:v,endF:F}};let M=0;for(const E of t){if(E.op!=="FillPath"&&E.op!=="StrokePath"){E.op==="DecorationLine"&&s>.8&&h.push(E);continue}let V;if(!n)V=M;else{let y=-1,Z=0;for(let P=0;P<l.length;P++){const B=l[P].glyphCount;if(M>=Z&&M<Z+B){y=P;break}Z+=B}V=Math.max(0,y)}const{startF:v,endF:F}=I(V);if(s<=v){const y={...E};E.op==="FillPath"?y.fill.kind==="solid"?y.fill={...y.fill,opacity:0}:y.fill={...y.fill,opacity:0}:y.opacity=0,h.push(y)}else if(s>=F)h.push(E);else{const y=(s-v)/Math.max(1e-6,F-v),Z=uo(Math.min(1,y)),P={...E};if(E.op==="FillPath"){const B=P.fill.kind==="solid"?P.fill.opacity:P.fill.opacity??1;P.fill.kind==="solid"?P.fill={...P.fill,opacity:B*Z}:P.fill={...P.fill,opacity:B*Z}}else P.opacity=P.opacity*Z;h.push(P)}Vr(E)&&M++}return h}function _C(t,e,s,a,i,r,n){const o=r==="word";if(!o&&!(r==="character")){const F=Ir(s),y=MC(1-F,a,i*2),Z=uo(s);return EC(t,y.dx,y.dy,Z)}const f={left:{x:i*2,y:0},right:{x:-i*2,y:0},up:{x:0,y:i*2},down:{x:0,y:-i*2}}[a],h=o?ri(e):[],d=e.reduce((F,y)=>F+y.glyphs.length,0),m=o?h.length:d;if(m===0)return t;const b=[];for(const F of t)if(F.op==="BeginFrame"){b.push(F);break}const I=.3,E=n*.7/Math.max(1,m-1),V=F=>{const y=F*E,Z=y/n,P=Math.min(1,(y+I)/n);return{startF:Z,endF:P}};let v=0;for(const F of t){if(F.op!=="FillPath"&&F.op!=="StrokePath"){F.op==="DecorationLine"&&s>.8&&b.push(F);continue}let y;if(!o)y=v;else{let B=-1,J=0;for(let $=0;$<h.length;$++){const se=h[$].glyphCount;if(v>=J&&v<J+se){B=$;break}J+=se}y=Math.max(0,B)}const{startF:Z,endF:P}=V(y);if(s<=Z){const B={...F,x:F.x+f.x,y:F.y+f.y};F.op==="FillPath"?B.fill.kind==="solid"?B.fill={...B.fill,opacity:0}:B.fill={...B.fill,opacity:0}:B.opacity=0,b.push(B)}else if(s>=P)b.push(F);else{const B=(s-Z)/Math.max(1e-6,P-Z),J=Ir(Math.min(1,B)),$=f.x*(1-J),se=f.y*(1-J),ue={...F,x:F.x+$,y:F.y+se};if(F.op==="FillPath"){const Ce=ue.fill.kind==="solid"?ue.fill.opacity:ue.fill.opacity??1;ue.fill.kind==="solid"?ue.fill={...ue.fill,opacity:Ce*J}:ue.fill={...ue.fill,opacity:Ce*J}}else ue.opacity=ue.opacity*J;b.push(ue)}Vr(F)&&v++}return b}function FC(t,e,s,a){const i=a*.3;return OC(t,s,i,e)}function ri(t){const e=[];let s=0;for(let a=0;a<t.length;a++){const i=t[a],r=TC(i);for(const n of r)n.length>0&&e.push({startGlyph:s,glyphCount:n.length,lineIndex:a}),s+=n.length}return e}function TC(t){const e=[];let s=[];for(const a of t.glyphs)a.char===" "||a.char===" "||a.char===`
|
|
275
|
+
`?s.length&&(e.push([...s]),s=[]):s.push(a);return s.length&&e.push(s),e}function b0(t,e){const s=[];let a=0,i=!1;for(const r of t){if(r.op==="BeginFrame"||r.op==="Rectangle"||r.op==="RectangleStroke"){s.push(r);continue}if(r.op==="FillPath"&&!Sr(r)){a<e&&(s.push(r),i=!0),a++;continue}if(r.op==="StrokePath"){a<e&&s.push(r);continue}if(r.op==="FillPath"&&Sr(r)){a<e&&s.push(r);continue}if(r.op==="DecorationLine"&&i){s.push(r);continue}}return s}function w0(t,e,s,a){if(e===0)return t;let i=null,r=0;for(const n of t)if(n.op==="FillPath"&&!Sr(n)&&(r++,r===e)){i=n;break}if(i&&i.op==="FillPath"){const n=NC(t),o=i.x+s*.5,l=i.y,c=Math.max(3,s/15),f={op:"DecorationLine",from:{x:o,y:l-s*.75},to:{x:o,y:l+s*.15},width:c,color:n,opacity:1};return[...t,f]}return t}function PC(t,e,s){let a=0,i=0,r=0;return t.forEach(n=>{n.op==="FillPath"&&(a+=n.x,i+=n.y,r++)}),r>0&&(a/=r,i/=r),t.map(n=>{if(n.op==="FillPath"){const o={...n};if(o.fill.kind==="solid"?o.fill={...o.fill,opacity:o.fill.opacity*e}:o.fill={...o.fill,opacity:(o.fill.opacity??1)*e},s!==1&&r>0){const l=n.x-a,c=n.y-i;o.x=a+l*s,o.y=i+c*s}return o}if(n.op==="StrokePath"){const o={...n,opacity:n.opacity*e};if(s!==1&&r>0){const l=n.x-a,c=n.y-i;o.x=a+l*s,o.y=i+c*s}return o}return n.op==="DecorationLine"?{...n,opacity:n.opacity*e}:n})}function EC(t,e,s,a=1){return t.map(i=>{if(i.op==="FillPath"){const r={...i,x:i.x+e,y:i.y+s};return a<1&&(r.fill.kind==="solid"?r.fill={...r.fill,opacity:r.fill.opacity*a}:r.fill={...r.fill,opacity:(r.fill.opacity??1)*a}),r}return i.op==="StrokePath"?{...i,x:i.x+e,y:i.y+s,opacity:i.opacity*a}:i.op==="DecorationLine"?{...i,from:{x:i.from.x+e,y:i.from.y+s},to:{x:i.to.x+e,y:i.to.y+s},opacity:i.opacity*a}:i})}function OC(t,e,s,a){let i=0;const n=Math.min(1,a/.5);return t.map(o=>{if(o.op==="FillPath"||o.op==="StrokePath"){const l=Math.sin(i/5*Math.PI+a*Math.PI*2),c=e==="left"||e==="right"?l*s*(e==="left"?-1:1):0,f=e==="up"||e==="down"?l*s*(e==="up"?-1:1):0;if(o.op==="FillPath"){Sr(o)||i++;const h={...o,x:o.x+c,y:o.y+f};return h.fill.kind==="solid"?h.fill={...h.fill,opacity:h.fill.opacity*n}:h.fill={...h.fill,opacity:(h.fill.opacity??1)*n},h}return{...o,x:o.x+c,y:o.y+f,opacity:o.opacity*n}}return o})}function MC(t,e,s){const a=t*s;switch(e){case"left":return{dx:-a,dy:0};case"right":return{dx:a,dy:0};case"up":return{dx:0,dy:-a};case"down":return{dx:0,dy:a}}}function uo(t){return t*(2-t)}function Ir(t){return 1-Math.pow(1-t,3)}function Qs(t,e=1){const s=/^#?([a-f0-9]{6})$/i.exec(t);if(!s)throw new Error(`Invalid color ${t}`);const a=parseInt(s[1],16),i=a>>16&255,r=a>>8&255,n=a&255;return{r:i,g:r,b:n,a:e}}function RC(t){const e=t.getContext("2d");if(!e)throw new Error("2D context unavailable");return{async render(s){const a=zC(s),i=new Map;for(const r of s){if(r.op==="BeginFrame"){r.pixelRatio;const n=r.width,o=r.height;if("width"in t&&"height"in t&&(t.width=Math.floor(n),t.height=Math.floor(o)),"style"in t&&(t.style.width=`${n}px`,t.style.height=`${o}px`),e.setTransform(1,0,0,1,0,0),r.clear&&e.clearRect(0,0,n,o),r.bg&&r.bg.color){const{color:l,opacity:c,radius:f}=r.bg;if(l){const h=Qs(l,c);f&&f>0?(e.fillStyle=`rgba(${h.r},${h.g},${h.b},${h.a})`,v0(e,0,0,n,o,f),e.fill()):(e.fillStyle=`rgba(${h.r},${h.g},${h.b},${h.a})`,e.fillRect(0,0,n,o))}}continue}if(r.op==="FillPath"){const n=r,o=new Path2D(n.path);e.save(),e.translate(n.x,n.y);const l=n.scale??1;e.scale(l,-l);const c=n.gradientBBox??a,f={x:(c.x-n.x)/l,y:-(c.y-n.y)/l,w:c.w/l,h:c.h/l},h=JSON.stringify({fill:n.fill,bbox:f});let d=i.get(h);d||(d=ni(e,n.fill,f),i.set(h,d)),e.fillStyle=d,e.fill(o),e.restore();continue}if(r.op==="StrokePath"){const n=r,o=new Path2D(n.path);e.save(),e.translate(n.x,n.y);const l=n.scale??1;e.scale(l,-l);const c=1/Math.abs(l),f=Qs(n.color,n.opacity);e.strokeStyle=`rgba(${f.r},${f.g},${f.b},${f.a})`,e.lineWidth=n.width*c,e.lineJoin="round",e.lineCap="round",e.stroke(o),e.restore();continue}if(r.op==="DecorationLine"){e.save();const n=Qs(r.color,r.opacity);e.strokeStyle=`rgba(${n.r},${n.g},${n.b},${n.a})`,e.lineWidth=r.width,e.beginPath(),e.moveTo(r.from.x,r.from.y),e.lineTo(r.to.x,r.to.y),e.stroke(),e.restore();continue}if(r.op==="Rectangle"){e.save();const n=ni(e,r.fill,{x:r.x,y:r.y,w:r.width,h:r.height});e.fillStyle=n,r.borderRadius&&r.borderRadius>0?v0(e,r.x,r.y,r.width,r.height,r.borderRadius):e.fillRect(r.x,r.y,r.width,r.height),e.restore();continue}if(r.op==="RectangleStroke"){e.save();const n=Qs(r.stroke.color,r.stroke.opacity);if(e.strokeStyle=`rgba(${n.r},${n.g},${n.b},${n.a})`,e.lineWidth=r.stroke.width,r.borderRadius&&r.borderRadius>0){const o=new Path2D,l=r.x,c=r.y,f=r.width,h=r.height,d=Math.min(f,h)/2,m=Math.min(r.borderRadius,d);o.moveTo(l+m,c),o.arcTo(l+f,c,l+f,c+h,m),o.arcTo(l+f,c+h,l,c+h,m),o.arcTo(l,c+h,l,c,m),o.arcTo(l,c,l+f,c,m),o.closePath(),e.stroke(o)}else e.strokeRect(r.x,r.y,r.width,r.height);e.restore();continue}if(r.op==="DrawColorEmoji"){e.save(),e.font=`${r.fontSize}px "${r.fontFamily}"`,e.textBaseline="alphabetic",e.fillText(r.char,r.x,r.y),e.restore();continue}if(r.op==="Ellipse"){e.save();const n=r.gradientBBox??{x:r.cx-r.rx,y:r.cy-r.ry,w:r.rx*2,h:r.ry*2},o=ni(e,r.fill,n);e.fillStyle=o,e.beginPath();const l=(r.rotation??0)*Math.PI/180;e.ellipse(r.cx,r.cy,r.rx,r.ry,l,0,Math.PI*2),e.fill(),e.restore();continue}if(r.op==="EllipseStroke"){e.save(),ho(e,r.stroke),e.beginPath();const n=(r.rotation??0)*Math.PI/180;e.ellipse(r.cx,r.cy,r.rx,r.ry,n,0,Math.PI*2),e.stroke(),e.restore();continue}if(r.op==="Polygon"){e.save();const n=r.gradientBBox??DC(r.points),o=ni(e,r.fill,n);e.fillStyle=o,e.beginPath(),C0(e,r.points,r.closed??!0),e.fill(),e.restore();continue}if(r.op==="PolygonStroke"){e.save(),ho(e,r.stroke),e.beginPath(),C0(e,r.points,r.closed??!0),e.stroke(),e.restore();continue}if(r.op==="ShapePath"){e.save(),e.translate(r.x,r.y);const n=r.gradientBBox??x0(r.path),o=ni(e,r.fill,n);e.fillStyle=o;const l=new Path2D(r.path);e.fill(l),e.restore();continue}if(r.op==="ShapePathStroke"){e.save(),e.translate(r.x,r.y),ho(e,r.stroke);const n=new Path2D(r.path);e.stroke(n),e.restore();continue}}}}}function v0(t,e,s,a,i,r){const n=Math.min(a,i)/2,o=Math.min(r,n),l=new Path2D;l.moveTo(e+o,s),l.arcTo(e+a,s,e+a,s+i,o),l.arcTo(e+a,s+i,e,s+i,o),l.arcTo(e,s+i,e,s,o),l.arcTo(e,s,e+a,s,o),l.closePath(),t.save(),t.fill(l),t.restore()}function ni(t,e,s){if(e.kind==="solid"){const o=Qs(e.color,e.opacity);return`rgba(${o.r},${o.g},${o.b},${o.a})`}const a=s.x+s.w/2,i=s.y+s.h/2,r=Math.max(s.w,s.h)/2,n=o=>{const l=e.kind==="linear"||e.kind==="radial"?e.opacity:1,c=e.kind==="linear"||e.kind==="radial"?e.stops:[];for(const f of c){const h=Qs(f.color,l);o.addColorStop(f.offset,`rgba(${h.r},${h.g},${h.b},${h.a})`)}return o};if(e.kind==="linear"){const o=e.angle*Math.PI/180,l=a+Math.cos(o+Math.PI)*r,c=i+Math.sin(o+Math.PI)*r,f=a+Math.cos(o)*r,h=i+Math.sin(o)*r;return n(t.createLinearGradient(l,c,f,h))}else return n(t.createRadialGradient(a,i,0,a,i,r))}function zC(t){let e=1/0,s=1/0,a=-1/0,i=-1/0;for(const r of t){if(r.op!=="FillPath")continue;const n=r;if(n.isShadow)continue;const o=x0(n.path),l=n.scale??1,c=n.x+l*o.x,f=n.x+l*(o.x+o.w),h=n.y-l*(o.y+o.h),d=n.y-l*o.y;c<e&&(e=c),h<s&&(s=h),f>a&&(a=f),d>i&&(i=d)}return e===1/0?{x:0,y:0,w:1,h:1}:{x:e,y:s,w:Math.max(1,a-e),h:Math.max(1,i-s)}}function x0(t){const e=LC(t);let s=0,a=1/0,i=1/0,r=-1/0,n=-1/0;const o=(l,c)=>{l<a&&(a=l),c<i&&(i=c),l>r&&(r=l),c>n&&(n=c)};for(;s<e.length;)switch(e[s++]){case"M":case"L":{const c=parseFloat(e[s++]),f=parseFloat(e[s++]);o(c,f);break}case"C":{const c=parseFloat(e[s++]),f=parseFloat(e[s++]),h=parseFloat(e[s++]),d=parseFloat(e[s++]),m=parseFloat(e[s++]),b=parseFloat(e[s++]);o(c,f),o(h,d),o(m,b);break}case"Q":{const c=parseFloat(e[s++]),f=parseFloat(e[s++]),h=parseFloat(e[s++]),d=parseFloat(e[s++]);o(c,f),o(h,d);break}}return a===1/0?{x:0,y:0,w:0,h:0}:{x:a,y:i,w:r-a,h:n-i}}function LC(t){return t.match(/[MLCQZ]|-?\d*\.?\d+(?:e[-+]?\d+)?/gi)??[]}function ho(t,e){const s=Qs(e.color,e.opacity);t.strokeStyle=`rgba(${s.r},${s.g},${s.b},${s.a})`,t.lineWidth=e.width,t.lineCap=e.lineCap??"butt",t.lineJoin=e.lineJoin??"miter",e.dashArray&&e.dashArray.length>0&&t.setLineDash(e.dashArray)}function DC(t){if(t.length===0)return{x:0,y:0,w:0,h:0};let e=t[0].x,s=t[0].y,a=t[0].x,i=t[0].y;for(let r=1;r<t.length;r++){const n=t[r];n.x<e&&(e=n.x),n.y<s&&(s=n.y),n.x>a&&(a=n.x),n.y>i&&(i=n.y)}return{x:e,y:s,w:a-e,h:i-s}}function C0(t,e,s){if(e.length!==0){t.moveTo(e[0].x,e[0].y);for(let a=1;a<e.length;a++)t.lineTo(e[a].x,e[a].y);s&&t.closePath()}}async function oi(t){try{const e=await fetch(t);if(!e.ok)throw new Error(`Failed to fetch ${t}: ${e.status} ${e.statusText}`);try{return await e.arrayBuffer()}catch(s){throw new Error(`Failed to read response body as ArrayBuffer from ${t}: ${s instanceof Error?s.message:String(s)}`)}}catch(e){throw e instanceof Error?e.message.includes("Failed to fetch")||e.message.includes("Failed to read")?e:new Error(`Failed to fetch ${t}: ${e.message}`):new Error(`Failed to fetch ${t}: ${String(e)}`)}}function Tt(t,e){return t===void 0?e:typeof t=="string"?parseFloat(t):t}var $s=null,li=!1,k0="https://unpkg.com/@resvg/resvg-wasm@2.6.2/index_bg.wasm";async function go(t){try{const e=await fetch(t);if(e.ok){const s=await e.arrayBuffer(),a=new Uint8Array(s);if(a.length>=4&&a[0]===0&&a[1]===97&&a[2]===115&&a[3]===109)return s;console.error(`Invalid WASM magic number from URL: ${t}`)}else console.error(`Failed to fetch resvg WASM from URL: ${t}, status: ${e.status}`);return}catch(e){console.error(`Error fetching resvg WASM from ${t}:`,e);return}}async function N0(t){try{if(t){const e=t.endsWith(".wasm")?t:t.endsWith("/")?`${t}resvg.wasm`:`${t}/resvg.wasm`,s=await go(e);if(s)return s}return}catch(e){console.error("Error in loadResvgWasmWeb:",e);return}}async function BC(t){if($s&&li)return $s;if($s=await Promise.resolve().then(()=>Y0),!li){let s=await N0(t);if(s||(s=await go(k0)),!s)throw new Error("Failed to load resvg WASM from any source");const a=await WebAssembly.compile(s);await $s.initWasm(a),li=!0}return $s}async function UC(t){if(li)return;$s=await Promise.resolve().then(()=>Y0);let s;if(t instanceof ArrayBuffer?s=t:(s=await N0(t),s||(s=await go(k0))),!s)throw new Error("Failed to load resvg WASM from any source");const a=await WebAssembly.compile(s);await $s.initWasm(a),li=!0}async function ZC(t,e={}){const{Resvg:s}=await BC(),a={};e.background&&(a.background=e.background),e.fitTo?a.fitTo=e.fitTo:e.width?a.fitTo={mode:"width",value:e.width}:e.height&&(a.fitTo={mode:"height",value:e.height});const i=new s(t,a);try{const r=i.render();try{return{png:r.asPng(),width:r.width,height:r.height}}finally{r.free()}}finally{i.free()}}function GC(t,e,s){if(!t.shape)throw new Error("Shape is required for shape mode");const a=Tt(t.width,e),i=Tt(t.height,s),r=YC(t.shape),n=sk(r),o=a/2,l=i/2,c=n.x+n.w/2,f=n.y+n.h/2;let h=o-c,d=l-f;t.transform&&(h+=Tt(t.transform.x,0),d+=Tt(t.transform.y,0));const m=[];if(t.shadow){const I=Tt(t.shadow.offsetX,4),M=Tt(t.shadow.offsetY,4),E=t.shadow.color??"#000000",V=Tt(t.shadow.opacity,.5);m.push(`<path d="${r}" transform="translate(${h+I}, ${d+M})" fill="${E}" fill-opacity="${V}"/>`)}const b=[`d="${r}"`,`transform="translate(${h}, ${d})"`];if(t.fill){const I=`fill-${Date.now()}`,M=WC(t.fill,I);M.defs&&m.unshift(M.defs),b.push(`fill="${M.fill}"`),t.fill.opacity!==void 0&&t.fill.opacity!==1&&b.push(`fill-opacity="${t.fill.opacity}"`)}else b.push('fill="none"');return t.stroke&&t.stroke.width&&Tt(t.stroke.width,0)>0&&(b.push(`stroke="${t.stroke.color??"#000000"}"`),b.push(`stroke-width="${t.stroke.width}"`),t.stroke.opacity!==void 0&&t.stroke.opacity!==1&&b.push(`stroke-opacity="${t.stroke.opacity}"`),t.stroke.dashArray&&t.stroke.dashArray.length>0&&b.push(`stroke-dasharray="${t.stroke.dashArray.join(" ")}"`),t.stroke.lineCap&&b.push(`stroke-linecap="${t.stroke.lineCap}"`),t.stroke.lineJoin&&b.push(`stroke-linejoin="${t.stroke.lineJoin}"`)),t.opacity!==void 0&&t.opacity!==1&&b.push(`opacity="${t.opacity}"`),m.push(`<path ${b.join(" ")}/>`),`<svg xmlns="http://www.w3.org/2000/svg" width="${a}" height="${i}" viewBox="0 0 ${a} ${i}">${m.join("")}</svg>`}function WC(t,e,s){if(t.type==="solid")return{fill:t.color};if(t.type==="linear"){const i=Tt(t.angle,0)*Math.PI/180,r=50-Math.cos(i)*50,n=50-Math.sin(i)*50,o=50+Math.cos(i)*50,l=50+Math.sin(i)*50,c=t.stops.map(h=>`<stop offset="${Tt(h.offset,0)*100}%" stop-color="${h.color}"/>`).join(""),f=`<defs><linearGradient id="${e}" x1="${r}%" y1="${n}%" x2="${o}%" y2="${l}%">${c}</linearGradient></defs>`;return{fill:`url(#${e})`,defs:f}}if(t.type==="radial"){const a=t.stops.map(r=>`<stop offset="${Tt(r.offset,0)*100}%" stop-color="${r.color}"/>`).join(""),i=`<defs><radialGradient id="${e}" cx="50%" cy="50%" r="50%">${a}</radialGradient></defs>`;return{fill:`url(#${e})`,defs:i}}return{fill:"#000000"}}function YC(t){const e=t.type;switch(e){case"rectangle":{const s=t;return HC(s.width,s.height,s.cornerRadius??0)}case"circle":return A0(t.radius);case"ellipse":{const s=t;return KC(s.radiusX,s.radiusY)}case"line":{const s=t;return XC(s.length,s.thickness??2)}case"polygon":{const s=t;return qC(s.sides,s.radius)}case"star":{const s=t;return JC(s.points,s.outerRadius,s.innerRadius)}case"arrow":{const s=t;return QC(s.length,s.headWidth??30,s.headLength??25,s.shaftWidth??10)}case"heart":return $C(t.size);case"cross":{const s=t;return ek(s.width,s.height,s.thickness)}case"ring":{const s=t;return tk(s.outerRadius,s.innerRadius)}case"path":return t.d;default:throw new Error(`Unknown shape type: ${e}`)}}var _r=.5522847498307936;function HC(t,e,s){const a=-t/2,i=-e/2,r=Math.min(s,t/2,e/2);return r===0?`M ${a} ${i} L ${a+t} ${i} L ${a+t} ${i+e} L ${a} ${i+e} Z`:[`M ${a+r} ${i}`,`L ${a+t-r} ${i}`,`Q ${a+t} ${i} ${a+t} ${i+r}`,`L ${a+t} ${i+e-r}`,`Q ${a+t} ${i+e} ${a+t-r} ${i+e}`,`L ${a+r} ${i+e}`,`Q ${a} ${i+e} ${a} ${i+e-r}`,`L ${a} ${i+r}`,`Q ${a} ${i} ${a+r} ${i}`,"Z"].join(" ")}function A0(t){const e=t*_r;return[`M ${t} 0`,`C ${t} ${e} ${e} ${t} 0 ${t}`,`C ${-e} ${t} ${-t} ${e} ${-t} 0`,`C ${-t} ${-e} ${-e} ${-t} 0 ${-t}`,`C ${e} ${-t} ${t} ${-e} ${t} 0`,"Z"].join(" ")}function jC(t){const e=t*_r;return[`M ${t} 0`,`C ${t} ${-e} ${e} ${-t} 0 ${-t}`,`C ${-e} ${-t} ${-t} ${-e} ${-t} 0`,`C ${-t} ${e} ${-e} ${t} 0 ${t}`,`C ${e} ${t} ${t} ${e} ${t} 0`,"Z"].join(" ")}function KC(t,e){const s=t*_r,a=e*_r;return[`M ${t} 0`,`C ${t} ${a} ${s} ${e} 0 ${e}`,`C ${-s} ${e} ${-t} ${a} ${-t} 0`,`C ${-t} ${-a} ${-s} ${-e} 0 ${-e}`,`C ${s} ${-e} ${t} ${-a} ${t} 0`,"Z"].join(" ")}function XC(t,e){const s=t/2,a=e/2;return`M ${-s} ${-a} L ${s} ${-a} L ${s} ${a} L ${-s} ${a} Z`}function qC(t,e){const s=2*Math.PI/t,a=-Math.PI/2,i=[];for(let r=0;r<t;r++){const n=a+r*s,o=Math.cos(n)*e,l=Math.sin(n)*e;i.push(r===0?`M ${o} ${l}`:`L ${o} ${l}`)}return i.push("Z"),i.join(" ")}function JC(t,e,s){const a=Math.PI/t,i=-Math.PI/2,r=[];for(let n=0;n<t*2;n++){const o=i+n*a,l=n%2===0?e:s,c=Math.cos(o)*l,f=Math.sin(o)*l;r.push(n===0?`M ${c} ${f}`:`L ${c} ${f}`)}return r.push("Z"),r.join(" ")}function QC(t,e,s,a){const i=a/2,r=e/2,n=t-s,o=-t/2;return[`M ${o} ${-i}`,`L ${o+n} ${-i}`,`L ${o+n} ${-r}`,`L ${o+t} 0`,`L ${o+n} ${r}`,`L ${o+n} ${i}`,`L ${o} ${i}`,"Z"].join(" ")}function $C(t){const e=t/32;return["M 0 6","C -0.5 -3 -12 -3 -12 6","C -12 12 0 18 0 24","C 0 18 12 12 12 6","C 12 -3 0.5 -3 0 6","Z"].map(a=>a.replace(/-?\d+(\.\d+)?/g,i=>String(parseFloat(i)*e))).join(" ")}function ek(t,e,s){const a=t/2,i=e/2,r=s/2;return[`M ${-r} ${-i}`,`L ${r} ${-i}`,`L ${r} ${-r}`,`L ${a} ${-r}`,`L ${a} ${r}`,`L ${r} ${r}`,`L ${r} ${i}`,`L ${-r} ${i}`,`L ${-r} ${r}`,`L ${-a} ${r}`,`L ${-a} ${-r}`,`L ${-r} ${-r}`,"Z"].join(" ")}function tk(t,e){const s=A0(t),a=jC(e);return`${s} ${a}`}function sk(t){const e=/-?(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?/g,s=[];let a;for(;(a=e.exec(t))!==null;){const m=parseFloat(a[0]);!isNaN(m)&&isFinite(m)&&s.push(m)}if(s.length<2)return{x:0,y:0,w:0,h:0};let i=1/0,r=1/0,n=-1/0,o=-1/0,l=0,c=0;const f=t.match(/[MmLlHhVvCcSsQqTtAaZz]/g)||[];let h=0,d=0;for(;h<f.length;){switch(f[h]){case"M":case"L":case"T":d+1<s.length&&(l=s[d++],c=s[d++],i=Math.min(i,l),n=Math.max(n,l),r=Math.min(r,c),o=Math.max(o,c));break;case"m":case"l":case"t":d+1<s.length&&(l+=s[d++],c+=s[d++],i=Math.min(i,l),n=Math.max(n,l),r=Math.min(r,c),o=Math.max(o,c));break;case"H":d<s.length&&(l=s[d++],i=Math.min(i,l),n=Math.max(n,l));break;case"h":d<s.length&&(l+=s[d++],i=Math.min(i,l),n=Math.max(n,l));break;case"V":d<s.length&&(c=s[d++],r=Math.min(r,c),o=Math.max(o,c));break;case"v":d<s.length&&(c+=s[d++],r=Math.min(r,c),o=Math.max(o,c));break;case"C":if(d+5<s.length)for(let b=0;b<3;b++){const I=s[d++],M=s[d++];i=Math.min(i,I),n=Math.max(n,I),r=Math.min(r,M),o=Math.max(o,M),b===2&&(l=I,c=M)}break;case"c":if(d+5<s.length)for(let b=0;b<3;b++){const I=l+s[d++],M=c+s[d++];i=Math.min(i,I),n=Math.max(n,I),r=Math.min(r,M),o=Math.max(o,M),b===2&&(l=I,c=M)}break;case"S":case"Q":if(d+3<s.length)for(let b=0;b<2;b++){const I=s[d++],M=s[d++];i=Math.min(i,I),n=Math.max(n,I),r=Math.min(r,M),o=Math.max(o,M),b===1&&(l=I,c=M)}break;case"s":case"q":if(d+3<s.length)for(let b=0;b<2;b++){const I=l+s[d++],M=c+s[d++];i=Math.min(i,I),n=Math.max(n,I),r=Math.min(r,M),o=Math.max(o,M),b===1&&(l=I,c=M)}break;case"A":d+6<s.length&&(d+=5,l=s[d++],c=s[d++],i=Math.min(i,l),n=Math.max(n,l),r=Math.min(r,c),o=Math.max(o,c));break;case"a":d+6<s.length&&(d+=5,l+=s[d++],c+=s[d++],i=Math.min(i,l),n=Math.max(n,l),r=Math.min(r,c),o=Math.max(o,c));break}h++}return i===1/0?{x:0,y:0,w:0,h:0}:{x:i,y:r,w:n-i,h:o-r}}async function ak(t,e={}){const s=e.defaultWidth??1920,a=e.defaultHeight??1080;let i,r,n;if(t.src){i=t.src;const o=ik(i);r=o.width||s,n=o.height||a}else if(t.shape)r=Tt(t.width,s),n=Tt(t.height,a),i=GC(t,r,n);else throw new Error("Either 'src' or 'shape' must be provided");return ZC(i,{width:r,height:n,background:e.background})}function ik(t){const e=t.match(/width\s*=\s*["']?(\d+(?:\.\d+)?)/i),s=t.match(/height\s*=\s*["']?(\d+(?:\.\d+)?)/i);let a=e?parseFloat(e[1]):0,i=s?parseFloat(s[1]):0;if(!a||!i){const r=t.match(/viewBox\s*=\s*["']([^"']+)["']/i);if(r){const n=r[1].trim().split(/[\s,]+/).map(parseFloat);n.length===4&&(a=a||n[2],i=i||n[3])}}return{width:a,height:i}}var S0="https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu4mxP.ttf";async function rk(t={}){const e=t.width??ct.DEFAULTS.width,s=t.height??ct.DEFAULTS.height,a=t.pixelRatio??ct.DEFAULTS.pixelRatio,i="https://shotstack-ingest-api-dev-sources.s3.ap-southeast-2.amazonaws.com/euo5r93oyr/zzz01k9h-yycyx-2x2y6-qx9bj-7n567b/source.wasm";y0.setFallbackLoader(async l=>{const c=(l.family??"Roboto").toLowerCase(),f=`${l.weight??"400"}`;if(c==="roboto"&&f==="400")return oi(S0)});let r;try{r=await y0.getSharedInstance(i)}catch(l){throw new Error(`Failed to initialize font registry: ${l instanceof Error?l.message:String(l)}`)}const n=new mC(r);async function o(l){try{if(l.customFonts)for(const d of l.customFonts)try{const m=await oi(d.src);await r.registerFromBytes(m,{family:d.family,weight:d.weight??"400"})}catch(m){throw new Error(`Failed to load custom font "${d.family}" from ${d.src}: ${m instanceof Error?m.message:String(m)}`)}const c=l.font??{family:"Roboto",weight:"400",size:48,color:"#000000",opacity:1},f={family:c.family,weight:`${c.weight}`};return await(async()=>{try{await r.getFace(f)}catch{if((c.family||"Roboto").toLowerCase()==="roboto"&&`${c.weight}`=="400"){const m=await oi(S0);await r.registerFromBytes(m,{family:"Roboto",weight:"400"})}else throw new Error(`Font not registered for ${f.family}__${f.weight}`)}})(),c}catch(c){throw c instanceof Error?c:new Error(`Failed to ensure fonts: ${String(c)}`)}}return{validate(l){const c=cC.safeParse(l);if(!c.success){const f=c.error.issues.map(h=>h.message).join(". ");throw new Error(`Validation failed: ${f}`)}return{value:c.data}},async registerFontFromUrl(l,c){try{const f=await oi(l);await r.registerFromBytes(f,c)}catch(f){throw new Error(`Failed to register font "${c.family}" from URL ${l}: ${f instanceof Error?f.message:String(f)}`)}},async registerFontFromFile(l,c){try{let f;if(typeof l=="string")try{f=await oi(l)}catch(h){throw new Error(`Failed to fetch font from ${l}: ${h instanceof Error?h.message:String(h)}`)}else try{f=await l.arrayBuffer()}catch(h){throw new Error(`Failed to read Blob as ArrayBuffer: ${h instanceof Error?h.message:String(h)}`)}await r.registerFromBytes(f,c)}catch(f){throw f instanceof Error?f:new Error(`Failed to register font "${c.family}" from ${typeof l=="string"?l:"Blob"}: ${String(f)}`)}},async renderFrame(l,c,f){try{const h=await o(l),d={family:h.family,weight:`${h.weight}`};let m;try{let P;const B=r.getColorEmojiFontFamilies();if(B.length>0)P={family:B[0],weight:"400"};else{const $={family:"NotoEmoji",weight:"400"};try{await r.getFace($),P=$}catch{}}const J=l.padding?typeof l.padding=="number"?{top:l.padding,right:l.padding,bottom:l.padding,left:l.padding}:l.padding:{top:0,right:0,bottom:0,left:0};m=await n.layout({text:l.text,width:(l.width??e)-J.left-J.right,letterSpacing:l.style?.letterSpacing??0,fontSize:h.size,lineHeight:l.style?.lineHeight??1.2,desc:d,textTransform:l.style?.textTransform??"none",emojiFallback:P})}catch(P){throw new Error(`Failed to layout text: ${P instanceof Error?P.message:String(P)}`)}const b=l.padding?typeof l.padding=="number"?{top:l.padding,right:l.padding,bottom:l.padding,left:l.padding}:l.padding:{top:0,right:0,bottom:0,left:0},I=l.border?.width??0,M=(l.width??e)+I*2,E=(l.height??s)+I*2,V=a,v={x:0,y:0,width:(l.width??e)-b.left-b.right,height:(l.height??s)-b.top-b.bottom},F=l.width??e,y=l.height??s;let Z;try{Z=await vC({canvas:{width:M,height:E,pixelRatio:V},textRect:v,lines:m,contentRect:{width:F,height:y},font:{family:h.family,size:h.size,weight:`${h.weight}`,color:h.color,opacity:h.opacity,background:h.background},style:{lineHeight:l.style?.lineHeight??1.2,textDecoration:l.style?.textDecoration??"none",gradient:l.style?.gradient},stroke:l.stroke,shadow:l.shadow,align:{horizontal:l.align?.horizontal??"center",vertical:l.align?.vertical??"middle"},background:l.background,border:l.border,padding:l.padding,glyphPathProvider:(P,B)=>r.glyphPath(B||d,P),getUnitsPerEm:P=>r.getUnitsPerEm(P||d),isColorEmojiFont:P=>r.isColorEmojiFont(P)})}catch(P){throw new Error(`Failed to build draw operations: ${P instanceof Error?P.message:String(P)}`)}try{return kC(Z,m,{t:c,fontSize:h.size,clipDuration:f,anim:l.animation?{preset:l.animation.preset,speed:l.animation.speed,duration:l.animation.duration,style:l.animation.style,direction:l.animation.direction}:void 0})}catch(P){throw new Error(`Failed to apply animation: ${P instanceof Error?P.message:String(P)}`)}}catch(h){throw h instanceof Error?h:new Error(`Failed to render frame at time ${c}s: ${String(h)}`)}},createRenderer(l){try{return RC(l)}catch(c){throw new Error(`Failed to create renderer: ${c instanceof Error?c.message:String(c)}`)}},destroy(){try{r.release()}catch(l){console.error(`Error during cleanup: ${l instanceof Error?l.message:String(l)}`)}}}}const V0=t=>{const s=(t.split("/").pop()||"").replace(/\.(ttf|otf|woff|woff2)$/i,""),a=s.replace(/-(Bold|Light|Regular|Italic|Medium|SemiBold|Black|Thin|ExtraLight|ExtraBold|Heavy)$/i,"");return{full:s,base:a}},nk=t=>t.includes("fonts.gstatic.com");class Ca extends xt{static PREVIEW_FPS=60;textEngine=null;renderer=null;canvas=null;texture=null;sprite=null;lastRenderedTime=-1;cachedFrames=new Map;isRendering=!1;pendingRenderTime=null;validatedAsset=null;fontSupportsBold=!1;loadComplete=!1;constructor(e,s){const{fit:a,...i}=s;super(e,i,Qe.RichText)}buildCanvasPayload(e,s){const a=this.clipConfiguration.width||this.edit.size.width,i=this.clipConfiguration.height||this.edit.size.height,r=e.font?.family,{baseFontFamily:n,fontWeight:o}=s??(r?Dt(r):{baseFontFamily:r,fontWeight:400}),l=e.font?.weight;let c=o;typeof l=="string"?c=parseInt(l,10)||o:typeof l=="number"&&(c=l);const f=this.edit.getTimelineFonts(),h=r?f.find(m=>{const{full:b,base:I}=V0(m.src),M=r.toLowerCase();return b.toLowerCase()===M||I.toLowerCase()===M}):void 0;let d;if(h&&r)d=[{src:h.src,family:n||r,weight:c.toString()}];else if(r){const m=f.filter(b=>!nk(b.src));m.length>0&&(d=m.map(b=>({src:b.src,family:n||r,weight:c.toString()})))}return{...e,width:a,height:i,font:e.font?{...e.font,family:n||e.font.family,weight:c}:void 0,stroke:e.font?.stroke,...d&&{customFonts:d}}}async registerFont(e,s,a){if(!this.textEngine)return!1;try{const i={family:e,weight:s.toString()};return a.type==="url"?await this.textEngine.registerFontFromUrl(a.path,i):await this.textEngine.registerFontFromFile(a.path,i),!0}catch{return!1}}async checkFontCapabilities(e){try{const a=await(await fetch(e)).arrayBuffer(),r=Xr.parse(a).tables.fvar;if(r?.axes){const n=r.axes.find(o=>o.tag==="wght");this.fontSupportsBold=!!n}else this.fontSupportsBold=!1}catch(s){console.warn("Failed to check font capabilities:",s),this.fontSupportsBold=!1}}supportsBold(){return this.fontSupportsBold}resolveFont(e){const{baseFontFamily:s,fontWeight:a}=Dt(e),i=this.edit.getFontUrlByFamilyAndWeight(s,a);if(i)return{url:i,baseFontFamily:s,fontWeight:a};const o=(this.edit.getEdit()?.timeline?.fonts||[]).find(c=>{const{full:f,base:h}=V0(c.src),d=e.toLowerCase();return f.toLowerCase()===d||h.toLowerCase()===d});if(o)return{url:o.src,baseFontFamily:s,fontWeight:a};const l=qr(e);return l?{url:l,baseFontFamily:s,fontWeight:a}:null}reconfigureAfterRestore(){super.reconfigureAfterRestore(),this.reconfigure(this.clipConfiguration.asset)}async reconfigure(e){const s=await this.ensureFontRegistered(e);s&&(await this.checkFontCapabilities(s),this.edit.events.emit(ot.FontCapabilitiesChanged,{supportsBold:this.fontSupportsBold}));for(const a of this.cachedFrames.values())a.destroy();if(this.cachedFrames.clear(),this.lastRenderedTime=-1,this.textEngine){const a=this.buildCanvasPayload(e),{value:i}=this.textEngine.validate(a);this.validatedAsset=i}this.textEngine&&this.renderer&&this.renderFrameSafe(this.getPlaybackTime())}async ensureFontRegistered(e){if(!this.textEngine)return null;const s=e.font?.family;if(!s)return null;const a=this.resolveFont(s);if(!a)return null;const i=e.font?.weight;let{fontWeight:r}=a;return typeof i=="string"?r=parseInt(i,10)||a.fontWeight:typeof i=="number"&&(r=i),await this.registerFont(a.baseFontFamily,r,{type:"url",path:a.url}),a.url}async load(){await super.load();const e=this.clipConfiguration.asset;try{if(!Kl.safeParse(e).success){this.createFallbackText(e);return}const a=e.font?.family,i=a?Dt(a):void 0,r=this.buildCanvasPayload(e,i);this.textEngine=await rk({width:r.width,height:r.height,fps:Ca.PREVIEW_FPS});const{value:n}=this.textEngine.validate(r);if(this.validatedAsset=n,this.canvas=document.createElement("canvas"),this.canvas.width=r.width,this.canvas.height=r.height,this.renderer=this.textEngine.createRenderer(this.canvas),a){const o=this.resolveFont(a);if(o){const l=e.font?.weight;let{fontWeight:c}=o;typeof l=="string"?c=parseInt(l,10)||o.fontWeight:typeof l=="number"&&(c=l),await this.registerFont(o.baseFontFamily,c,{type:"url",path:o.url}),await this.checkFontCapabilities(o.url)}}await this.renderFrame(0),this.configureKeyframes(),this.loadComplete=!0}catch{this.cleanupResources(),this.createFallbackText(e)}}cleanupResources(){if(this.textEngine){try{this.textEngine.destroy()}catch(e){console.warn("Error destroying text engine:",e)}this.textEngine=null}this.renderer=null,this.canvas=null,this.validatedAsset=null}async renderFrame(e){if(!this.textEngine||!this.renderer||!this.canvas||!this.validatedAsset)return;const s=Math.floor(e*Ca.PREVIEW_FPS);if(this.cachedFrames.has(s)){const a=this.cachedFrames.get(s);this.sprite&&this.sprite.texture!==a&&(this.sprite.texture=a),this.lastRenderedTime=e;return}try{const a=this.getLength(),i=await this.textEngine.renderFrame(this.validatedAsset,e,a),r=this.canvas.getContext("2d");r&&r.clearRect(0,0,this.canvas.width,this.canvas.height),await this.renderer.render(i);const n=X.Texture.from(this.canvas);this.sprite?(this.texture&&!this.cachedFrames.has(s)&&this.texture.destroy(),this.sprite.texture=n):(this.sprite=new X.Sprite(n),this.contentContainer.addChild(this.sprite)),this.texture=n,this.cachedFrames.size<150&&this.cachedFrames.set(s,n),this.lastRenderedTime=e}catch(a){console.error("Failed to render rich text frame:",a)}}createFallbackText(e){const s=this.edit.getEdit(),a=this.clipConfiguration.width||s?.output?.size?.width||this.edit.size.width,i=this.clipConfiguration.height||s?.output?.size?.height||this.edit.size.height,r=new X.TextStyle({fontFamily:e.font?.family||"Arial",fontSize:e.font?.size||48,fill:e.font?.color||"#ffffff",align:e.align?.horizontal||"center",wordWrap:!0,wordWrapWidth:a}),n=new X.Text(e.text,r);switch(e.align?.horizontal){case"left":n.anchor.set(0,.5),n.x=0;break;case"right":n.anchor.set(1,.5),n.x=a;break;default:n.anchor.set(.5,.5),n.x=a/2}switch(e.align?.vertical){case"top":n.anchor.set(n.anchor.x,0),n.y=0;break;case"bottom":n.anchor.set(n.anchor.x,1),n.y=i;break;default:n.anchor.set(n.anchor.x,.5),n.y=i/2}this.contentContainer.addChild(n)}renderFrameSafe(e){if(this.isRendering){this.pendingRenderTime=e;const s=Math.floor(e*Ca.PREVIEW_FPS),a=this.cachedFrames.get(s);a&&this.sprite&&this.sprite.texture!==a&&(this.sprite.texture=a);return}this.isRendering=!0,this.pendingRenderTime=null,this.renderFrame(e).catch(s=>console.error("Failed to render rich text frame:",s)).finally(()=>{if(this.isRendering=!1,this.pendingRenderTime!==null&&this.pendingRenderTime!==e){const s=this.pendingRenderTime;this.pendingRenderTime=null,this.renderFrameSafe(s)}})}update(e,s){if(super.update(e,s),s===Aa.SEEK_ELAPSED_MARKER&&(this.isRendering=!1,this.pendingRenderTime=null,this.lastRenderedTime=-1),!!this.isActive()&&this.loadComplete&&this.textEngine&&this.renderer&&!this.isRendering){const a=this.getPlaybackTime(),i=1/60;Math.abs(a-this.lastRenderedTime)>i&&this.renderFrameSafe(a)}}dispose(){super.dispose(),this.loadComplete=!1;for(const e of this.cachedFrames.values())e.destroy();this.cachedFrames.clear(),this.texture&&!this.cachedFrames.has(Math.floor(this.lastRenderedTime*Ca.PREVIEW_FPS))&&this.texture.destroy(),this.texture=null,this.sprite&&(this.sprite.destroy(),this.sprite=null),this.canvas&&(this.canvas=null),this.textEngine&&(this.textEngine.destroy(),this.textEngine=null),this.renderer=null,this.validatedAsset=null}getSize(){const e=this.edit.getEdit();return{width:this.clipConfiguration.width||e?.output?.size?.width||this.edit.size.width,height:this.clipConfiguration.height||e?.output?.size?.height||this.edit.size.height}}getContentSize(){return{width:this.clipConfiguration.width||this.canvas?.width||this.edit.size.width,height:this.clipConfiguration.height||this.canvas?.height||this.edit.size.height}}getFitScale(){return 1}getContainerScale(){const e=this.getScale();return{x:e,y:e}}supportsEdgeResize(){return!0}onDimensionsChanged(){if(!this.textEngine||!this.renderer||!this.canvas)return;const e=this.clipConfiguration.asset,{width:s,height:a}=this.getSize();this.canvas.width=s,this.canvas.height=a;for(const n of this.cachedFrames.values())n.destroy();this.cachedFrames.clear(),this.lastRenderedTime=-1;const i=this.buildCanvasPayload(e),{value:r}=this.textEngine.validate(i);this.validatedAsset=r,this.renderFrameSafe(this.getPlaybackTime())}updateTextContent(e){const s=this.clipConfiguration.asset;if(s.text=e,this.textEngine){const a=this.buildCanvasPayload(s),{value:i}=this.textEngine.validate(a);this.validatedAsset=i}for(const a of this.cachedFrames.values())a.destroy();this.cachedFrames.clear(),this.lastRenderedTime=-1,this.textEngine&&this.renderer&&this.renderFrameSafe(this.getPlaybackTime())}getCacheSize(){return this.cachedFrames.size}}class ok extends xt{shape;shapeBackground;constructor(e,s){super(e,s,Qe.Shape),this.shape=null,this.shapeBackground=null}async load(){await super.load();const e=this.clipConfiguration.asset,s=new X.Graphics,a=e.width??this.edit.size.width,i=e.height??this.edit.size.height;s.fillStyle={color:"transparent"},s.rect(0,0,a,i),s.fill();const r=new X.Graphics;switch(e.shape){case"rectangle":{const n=e.rectangle,o=a/2-n.width/2,l=i/2-n.height/2;r.rect(o,l,n.width,n.height);break}case"circle":{const n=e.circle,o=a/2,l=i/2;r.circle(o,l,n.radius);break}case"line":{const n=e.line,o=a/2-n.length/2,l=i/2-n.thickness/2;r.rect(o,l,n.length,n.thickness);break}default:console.warn("Unsupported shape asset type.");break}if(r.fillStyle={color:e.fill?.color??"#ffffff",alpha:e.fill?.opacity??1},r.fill(),e.stroke){const n=new Oa({thickness:e.stroke.width,color:e.stroke.color});r.filters=[n]}this.shapeBackground=s,this.shape=r,this.contentContainer.addChild(s),s.addChild(r),this.configureKeyframes()}update(e,s){super.update(e,s)}dispose(){super.dispose(),this.shape?.destroy(),this.shape=null,this.shapeBackground?.destroy(),this.shapeBackground=null}getSize(){const e=this.clipConfiguration.asset;return{width:e.width??this.edit.size.width,height:e.height??this.edit.size.height}}getFitScale(){return 1}}const lk="https://unpkg.com/@resvg/resvg-wasm@2.6.2/index_bg.wasm";class ds extends xt{static resvgInitialized=!1;static resvgInitPromise=null;texture=null;sprite=null;renderedWidth=0;renderedHeight=0;pendingRender=null;constructor(e,s){super(e,s,Qe.Svg)}static async initializeResvg(){if(!ds.resvgInitialized){if(ds.resvgInitPromise){await ds.resvgInitPromise;return}ds.resvgInitPromise=(async()=>{const s=await(await fetch(lk)).arrayBuffer();await UC(s),ds.resvgInitialized=!0})(),await ds.resvgInitPromise}}async load(){await super.load();let e=this.clipConfiguration.asset;if(e.src){const s=this.edit.resolveMergeFields(e.src);s!==e.src&&(e={...e,src:s})}try{if(!_b.safeParse(e).success){this.createFallbackGraphic();return}await ds.initializeResvg(),await this.doRender(),this.configureKeyframes()}catch(s){console.error("Failed to render SVG asset:",s),this.createFallbackGraphic()}}async reloadAsset(){await this.rerenderAtCurrentDimensions()}createFallbackGraphic(){const e=this.clipConfiguration.width||this.edit.size.width,s=this.clipConfiguration.height||this.edit.size.height,a=Do(e,s);this.renderedWidth=e,this.renderedHeight=s,this.contentContainer.addChild(a),this.configureKeyframes()}update(e,s){super.update(e,s)}dispose(){super.dispose(),this.pendingRender=null,this.sprite&&(this.sprite.destroy(),this.sprite=null),this.texture&&(this.texture.destroy(!0),this.texture=null)}getSize(){return this.clipConfiguration.width&&this.clipConfiguration.height?{width:this.clipConfiguration.width,height:this.clipConfiguration.height}:{width:this.renderedWidth||this.edit.size.width,height:this.renderedHeight||this.edit.size.height}}getContentSize(){return{width:this.renderedWidth||this.edit.size.width,height:this.renderedHeight||this.edit.size.height}}getFitScale(){return 1}supportsEdgeResize(){return!0}onDimensionsChanged(){this.rerenderAtCurrentDimensions()}async rerenderAtCurrentDimensions(){this.pendingRender&&await this.pendingRender,this.sprite&&(this.contentContainer.removeChild(this.sprite),this.sprite.destroy(),this.sprite=null),this.texture&&(this.texture.destroy(!0),this.texture=null),this.pendingRender=this.doRender(),await this.pendingRender,this.pendingRender=null}async doRender(){const e=this.clipConfiguration.asset,s=this.clipConfiguration.width||this.edit.size.width,a=this.clipConfiguration.height||this.edit.size.height,i=await ak(e,{defaultWidth:s,defaultHeight:a});this.renderedWidth=i.width,this.renderedHeight=i.height;const r=new Blob([i.png],{type:"image/png"}),n=URL.createObjectURL(r),o=new Image;o.src=n,await new Promise((l,c)=>{o.onload=()=>l(),o.onerror=()=>c(new Error("Failed to load SVG image"))}),URL.revokeObjectURL(n),this.texture=X.Texture.from(o),this.sprite=new X.Sprite(this.texture),this.contentContainer.addChild(this.sprite),this.clipConfiguration.width&&this.clipConfiguration.height&&this.applyFixedDimensions()}}class ci{static DEFAULT_BLINK_INTERVAL_MS=500;static DEFAULT_CURSOR_WIDTH_PX=2;static DEFAULT_CURSOR_COLOR=16777215;cursor=null;parent;textElement;clipConfig;textPosition=0;pixelX=0;pixelY=0;currentLine=0;isBlinking=!1;blinkInterval=null;blinkIntervalMs=500;width=2;color=16777215;isVisible=!0;constructor(e,s,a,i){this.parent=e,this.textElement=s,this.clipConfig=a,this.width=i?.width??ci.DEFAULT_CURSOR_WIDTH_PX,this.color=i?.color??ci.DEFAULT_CURSOR_COLOR,this.blinkIntervalMs=i?.blinkInterval??ci.DEFAULT_BLINK_INTERVAL_MS,this.textPosition=0,this.isBlinking=!1,this.isVisible=!0,this.blinkInterval=null,this.createCursor()}updatePosition(e){if(!this.cursor||!this.textElement){console.warn("TextCursor: Cannot update position, cursor not initialized");return}this.textPosition=this.validateTextPosition(e),this.calculateAndApplyPixelPosition()}setPosition(e,s){if(!this.cursor){console.warn("TextCursor: Cannot set position, cursor not initialized");return}this.pixelX=e,this.pixelY=s,this.updateGraphicsPosition()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}setVisible(e){this.isVisible=e,this.cursor&&!this.isBlinking&&(this.cursor.visible=e)}startBlinking(){if(!this.cursor){console.warn("TextCursor: Cannot start blinking, cursor not initialized");return}this.isBlinking||this.startBlinkingAnimation()}stopBlinking(){this.stopBlinkingAnimation()}setBlinkInterval(e){this.blinkIntervalMs=e,this.isBlinking&&(this.stopBlinking(),this.startBlinking())}dispose(){if(this.stopBlinkingAnimation(),this.cursor&&this.parent)try{this.parent.removeChild(this.cursor)}catch(e){console.warn("TextCursor: Error removing cursor from parent:",e)}if(this.cursor)try{this.cursor.destroy()}catch(e){console.warn("TextCursor: Error destroying cursor graphics:",e)}finally{this.cursor=null}this.textPosition=0,this.pixelX=0,this.pixelY=0,this.currentLine=0,this.isVisible=!0}createCursor(){if(!this.textElement)return;this.cursor=new X.Graphics,this.cursor.fillStyle={color:this.color};const e=this.textElement.style.fontSize;this.cursor.rect(0,0,this.width,e),this.cursor.fill(),this.parent.addChild(this.cursor),this.cursor.visible=this.isVisible}validateTextPosition(e){return this.textElement?Math.max(0,Math.min(e,this.textElement.text.length)):0}calculateAndApplyPixelPosition(){this.calculatePixelPositionFromText(),this.updateGraphicsPosition()}calculatePixelPositionFromText(){if(!this.textElement)return;const{text:e}=this.textElement,s=this.textElement.style,a=e.substring(0,this.textPosition),i=a.match(/\n/g);this.currentLine=i?i.length:0;const r=e.split(`
|
|
276
276
|
`),n=this.currentLine<r.length?r[this.currentLine]:"",o=a.lastIndexOf(`
|
|
277
|
-
`),l=o===-1?this.textPosition:this.textPosition-o-1,c=n.substring(0,l);let f;c.length>0&&c.endsWith(" ")?f=this.measureText(`${c}x`,s)-this.measureText("x",s):f=this.measureText(c,s);const h=s.lineHeight;this.pixelY=this.currentLine*h;const m=this.clipConfig.asset.alignment?.horizontal??"center";let b=f;if(m!=="left"){const V=this.measureText(n,s),M=this.textElement.width;let E=0;m==="center"?E=(M-V)/2:m==="right"&&(E=M-V),b=E+f}this.pixelX=b}updateGraphicsPosition(){this.cursor&&this.cursor.position.set(this.pixelX,this.pixelY)}startBlinkingAnimation(){!this.cursor||this.isBlinking||(this.isBlinking=!0,this.blinkInterval=window.setInterval(()=>{this.cursor&&this.isBlinking&&(this.cursor.visible=!this.cursor.visible)},this.blinkIntervalMs))}stopBlinkingAnimation(){this.blinkInterval!==null&&(window.clearInterval(this.blinkInterval),this.blinkInterval=null),this.isBlinking=!1,this.cursor&&(this.cursor.visible=this.isVisible)}measureText(e,s){const a=new X.Text(e,s),{width:i}=a;return a.destroy(),i}isInitialized(){return this.cursor!==null}getState(){return{isInitialized:this.isInitialized(),isBlinking:this.isBlinking,isVisible:this.isVisible,textPosition:this.textPosition,pixelPosition:{x:this.pixelX,y:this.pixelY},currentLine:this.currentLine}}}class Fr{static DEFAULT_FOCUS_DELAY_MS=50;hiddenInput=null;isFocused=!1;focusRetryCount=0;maxFocusRetries=3;focusDelay=Fr.DEFAULT_FOCUS_DELAY_MS;eventHandlers={};abortController=null;textChangeCallback=null;lastSyncedText="";isComposing=!1;setupInput(e,s){this.focusDelay=s?.focusDelay??Fr.DEFAULT_FOCUS_DELAY_MS,this.createHiddenTextarea(),this.hiddenInput&&(this.hiddenInput.value=e,this.lastSyncedText=e),this.setupEventListeners(),s?.autoFocus!==!1&&this.focusInput()}updateInputValue(e){this.hiddenInput&&(this.hiddenInput.value=e,this.lastSyncedText=e)}focusInput(){this.hiddenInput&&setTimeout(()=>{this.hiddenInput&&!this.isFocused&&(this.hiddenInput.focus(),setTimeout(()=>{!this.isFocused&&this.focusRetryCount<this.maxFocusRetries&&(this.focusRetryCount+=1,this.focusInput())},10))},this.focusDelay)}blurInput(){this.hiddenInput&&this.hiddenInput.blur()}setSelectionRange(e,s){if(!this.hiddenInput)return;const a=this.hiddenInput.value.length,i=Math.max(0,Math.min(e,a)),r=Math.max(i,Math.min(s,a));this.hiddenInput.setSelectionRange(i,r)}getCursorPosition(){return this.hiddenInput?.selectionStart||0}getValue(){return this.hiddenInput?.value||""}setTextInputHandler(e){this.textChangeCallback=e}setEventHandlers(e){this.eventHandlers={...this.eventHandlers,...e}}isFocusedInput(){return this.isFocused}dispose(){this.removeAllEventListeners(),this.hiddenInput&&this.hiddenInput.parentNode&&this.hiddenInput.parentNode.removeChild(this.hiddenInput),this.hiddenInput=null,this.isFocused=!1,this.focusRetryCount=0,this.textChangeCallback=null,this.eventHandlers={}}createHiddenTextarea(){this.hiddenInput=document.createElement("textarea");const e={position:"absolute",opacity:"0.01",pointerEvents:"none",zIndex:"18",left:"0px",top:"0px",width:"1px",height:"1px",border:"none",outline:"none",resize:"none",backgroundColor:"transparent"};Object.assign(this.hiddenInput.style,e),this.hiddenInput.tabIndex=0,document.body.appendChild(this.hiddenInput)}setupEventListeners(){if(!this.hiddenInput)return;this.abortController=new AbortController;const{signal:e}=this.abortController;this.hiddenInput.addEventListener("input",this.handleTextInput,{signal:e}),this.hiddenInput.addEventListener("keydown",this.handleKeyDown,{signal:e}),this.hiddenInput.addEventListener("compositionstart",this.handleCompositionStart,{signal:e}),this.hiddenInput.addEventListener("compositionend",this.handleCompositionEnd,{signal:e}),this.hiddenInput.addEventListener("focus",this.handleFocus,{signal:e}),this.hiddenInput.addEventListener("blur",this.handleBlur,{signal:e}),this.hiddenInput.addEventListener("paste",this.handlePaste,{signal:e})}removeAllEventListeners(){this.abortController?.abort(),this.abortController=null}handleTextInput=e=>{if(!this.hiddenInput||this.isComposing)return;const s=this.hiddenInput.value,a=this.hiddenInput.selectionStart||0;this.lastSyncedText=s,this.textChangeCallback?.(s,a)};handleKeyDown=e=>{if(document.activeElement!==this.hiddenInput)return;let s=!1;if((e.ctrlKey||e.metaKey)&&(s=this.handleKeyboardShortcuts(e),s)){e.preventDefault();return}if(e.key==="Tab"){const a=e.shiftKey?"backward":"forward";this.eventHandlers.onTabNavigation?.(a),e.preventDefault();return}switch(e.key){case"Escape":this.eventHandlers.onEscape?.(e),s=!0;break;case"Enter":s=!1;break;case"ArrowLeft":case"ArrowRight":case"ArrowUp":case"ArrowDown":setTimeout(()=>{if(this.hiddenInput){const a=this.hiddenInput.value,i=this.hiddenInput.selectionStart||0;this.textChangeCallback?.(a,i)}},0),s=!1;break;case"Backspace":case"Delete":s=!1;break;default:s=this.eventHandlers.onCustomKey?.(e.key,e)||!1;break}s&&e.preventDefault()};handleKeyboardShortcuts(e){const{key:s}=e;switch(s.toLowerCase()){case"a":return this.selectAll(),!0;case"c":case"v":return!1;case"z":return this.eventHandlers.onCustomKey?.("undo",e),!0;case"y":return this.eventHandlers.onCustomKey?.("redo",e),!0;default:return!1}}handleCompositionStart=e=>{this.isComposing=!0};handleCompositionEnd=e=>{if(this.isComposing=!1,this.hiddenInput){const s=this.hiddenInput.value,a=this.hiddenInput.selectionStart||0;this.textChangeCallback?.(s,a)}};handleFocus=e=>{this.isFocused=!0,this.focusRetryCount=0,this.eventHandlers.onFocus?.(e)};handleBlur=e=>{this.isFocused=!1,this.eventHandlers.onBlur?.(e)};handlePaste=e=>{setTimeout(()=>{this.handleTextInput(e)},0)};selectAll(){this.hiddenInput&&this.hiddenInput.select()}}class os{static DOUBLE_CLICK_THRESHOLD_MS=300;static EDITING_BG_PADDING_PX=5;static EDITING_BG_ALPHA=.2;static CLICK_HANDLER_DELAY_MS=100;parent;targetText;clipConfig;isEditing=!1;lastClickTime=0;editingContainer=null;editableText=null;textCursor=null;textInputHandler=null;outsideClickHandler=null;constructor(e,s,a){this.parent=e,this.targetText=s,this.clipConfig=a,this.parent.getContainer().eventMode="static",this.parent.getContainer().on("click",this.checkForDoubleClick)}dispose(){this.parent.getContainer().off("click",this.checkForDoubleClick),this.stopEditing(),this.outsideClickHandler&&(window.removeEventListener("click",this.outsideClickHandler),this.outsideClickHandler=null)}startEditing(){if(this.isEditing||!this.targetText)return;const e=structuredClone(this.clipConfig);this.targetText.visible=!1,this.createEditingEnvironment(),this.setupOutsideClickHandler(e),this.isEditing=!0}stopEditing(e=!1,s){if(!this.isEditing)return;let a="";this.editableText&&(a=this.editableText.text),this.editingContainer&&(this.parent.getContainer().removeChild(this.editingContainer),this.editingContainer.destroy(),this.editingContainer=null),this.editableText=null,this.textCursor&&(this.textCursor.dispose(),this.textCursor=null),this.textInputHandler&&(this.textInputHandler.dispose(),this.textInputHandler=null),this.targetText.visible=!0,e&&s&&a!==""&&this.parent.updateTextContent(a,s),this.isEditing=!1}checkForDoubleClick=e=>{const s=Date.now();s-this.lastClickTime<os.DOUBLE_CLICK_THRESHOLD_MS&&this.startEditing(),this.lastClickTime=s};setupOutsideClickHandler(e){this.outsideClickHandler=s=>{const i=this.parent.getContainer().getBounds(),r=s.clientX,n=s.clientY;(r<i.x||r>i.x+i.width||n<i.y||n>i.y+i.height)&&(this.stopEditing(!0,e),this.outsideClickHandler&&(window.removeEventListener("click",this.outsideClickHandler),this.outsideClickHandler=null))},setTimeout(()=>{this.outsideClickHandler&&window.addEventListener("click",this.outsideClickHandler)},os.CLICK_HANDLER_DELAY_MS)}createEditingEnvironment(){this.setupEditingContainer(),this.editingContainer&&this.editableText&&(this.textCursor=new ci(this.editingContainer,this.editableText,this.clipConfig),this.textCursor.updatePosition(this.targetText.text.length),this.textCursor.startBlinking()),this.setupTextInputHandler(),this.updateTextAlignment()}setupEditingContainer(){this.editingContainer=new X.Container,this.parent.getContainer().addChild(this.editingContainer);const e=new X.Graphics;e.fillStyle={color:0,alpha:os.EDITING_BG_ALPHA},e.rect(-5,-5,this.targetText.width+2*os.EDITING_BG_PADDING_PX,this.targetText.height+2*os.EDITING_BG_PADDING_PX),e.fill(),this.editingContainer.addChild(e),this.editableText=new X.Text(this.targetText.text,this.targetText.style),this.editableText.eventMode="static",this.editableText.cursor="text",this.editingContainer.addChild(this.editableText)}setupTextInputHandler(){this.textInputHandler=new Fr,this.textInputHandler.setTextInputHandler((e,s)=>{this.editableText&&(this.editableText.text=e,this.updateTextAlignment()),this.textCursor?.updatePosition(s)}),this.textInputHandler.setEventHandlers({onEscape:e=>this.stopEditing(!1),onTabNavigation:e=>this.stopEditing(!0)}),this.textInputHandler.setupInput(this.targetText.text,{autoFocus:!0})}updateTextAlignment(){if(!this.editableText||!this.editingContainer)return;const e=this.getContainerDimensions(),s=this.getAlignmentSettings(),a=this.calculateHorizontalPosition({width:this.editableText.width},e,s.horizontal),i=this.calculateVerticalPosition({height:this.editableText.height},e,s.vertical);if(this.editingContainer.position.set(a,i),this.editingContainer.children.length>0){const r=this.editingContainer.getChildAt(0);r instanceof X.Graphics&&(r.clear(),r.fillStyle={color:0,alpha:os.EDITING_BG_ALPHA},r.rect(-5,-5,this.editableText.width+2*os.EDITING_BG_PADDING_PX,this.editableText.height+2*os.EDITING_BG_PADDING_PX),r.fill())}}calculateHorizontalPosition(e,s,a="center"){switch(a){case"center":return s.width/2-e.width/2;case"right":return s.width-e.width;case"left":default:return 0}}calculateVerticalPosition(e,s,a="center"){switch(a){case"center":return s.height/2-e.height/2;case"bottom":return s.height-e.height;case"top":default:return 0}}getContainerDimensions(){const e=this.clipConfig.asset;return{width:e.width??this.parent.getSize().width,height:e.height??this.parent.getSize().height}}getAlignmentSettings(){const e=this.clipConfig.asset;return{horizontal:e.alignment?.horizontal??"center",vertical:e.alignment?.vertical??"center"}}}class ka extends xt{static loadedFonts=new Set;background=null;text=null;textEditor=null;constructor(e,s){super(e,s,Qe.Text)}async load(){await super.load();const e=this.clipConfiguration.asset,s=e.font?.family??"Open Sans";if(await this.loadFont(s),this.background=new X.Graphics,this.drawBackground(),this.text=new X.Text({text:e.text??"",style:this.createTextStyle(e)}),this.positionText(e),e.stroke?.width&&e.stroke.width>0&&e.stroke.color){const a=new Oa({thickness:e.stroke.width,color:e.stroke.color});this.text.filters=[a]}this.contentContainer.addChild(this.background),this.contentContainer.addChild(this.text),this.configureKeyframes(),this.textEditor=new os(this,this.text,this.clipConfiguration)}update(e,s){super.update(e,s)}reconfigureAfterRestore(){super.reconfigureAfterRestore(),this.reconfigure()}async reconfigure(){const e=this.clipConfiguration.asset,s=e.font?.family??"Open Sans";if(await this.loadFont(s),this.drawBackground(),this.text){if(this.text.text=e.text??"",this.text.style=this.createTextStyle(e),e.stroke?.width&&e.stroke.width>0&&e.stroke.color){const a=new Oa({thickness:e.stroke.width,color:e.stroke.color});this.text.filters=[a]}else this.text.filters=[];this.positionText(e)}}dispose(){super.dispose(),this.background?.destroy(),this.background=null,this.text?.destroy(),this.text=null,this.textEditor?.dispose(),this.textEditor=null}getSize(){const e=this.clipConfiguration.asset;return{width:this.clipConfiguration.width??e.width??this.edit.size.width,height:this.clipConfiguration.height??e.height??this.edit.size.height}}getFitScale(){return 1}getContainerScale(){const e=this.getScale();return{x:e,y:e}}supportsEdgeResize(){return!0}onDimensionsChanged(){if(this.drawBackground(),this.text){const e=this.clipConfiguration.asset;this.text.style.wordWrapWidth=this.getSize().width,this.positionText(e)}}applyFixedDimensions(){}createTextStyle(e){const s=e.font?.family??"Open Sans",{baseFontFamily:a,fontWeight:i}=Dt(s),{width:r}=this.getSize();return new X.TextStyle({fontFamily:a,fontSize:e.font?.size??32,fill:e.font?.color??"#ffffff",fontWeight:i.toString(),wordWrap:!0,wordWrapWidth:r,lineHeight:(e.font?.lineHeight??1)*(e.font?.size??32),align:e.alignment?.horizontal??"center"})}positionText(e){if(!this.text)return;const s=e.alignment?.horizontal??"center",a=e.alignment?.vertical??"center",{width:i,height:r}=this.getSize();let n=i/2-this.text.width/2,o=r/2-this.text.height/2;s==="left"?n=0:s==="right"&&(n=i-this.text.width),a==="top"?o=0:a==="bottom"&&(o=r-this.text.height),this.text.position.set(n,o)}drawBackground(){const e=this.clipConfiguration.asset;if(!this.background||!e.background||!e.background.color)return;const{width:s,height:a}=this.getSize();this.background.clear(),this.background.fillStyle={color:e.background.color,alpha:e.background.opacity??1},this.background.rect(0,0,s,a),this.background.fill()}updateTextContent(e,s){this.edit.updateTextContent(this,e,s)}async loadFont(e){const{baseFontFamily:s,fontWeight:a}=Dt(e),i=`${s}-${a}`;if(ka.loadedFonts.has(i))return;const r=qr(e);if(r){const n=new FontFace(s,`url(${r})`,{weight:a.toString()});await n.load(),document.fonts.add(n),ka.loadedFonts.add(i)}}static resetFontCache(){ka.loadedFonts.clear()}}class ck extends xt{aiOverlay=null;constructor(e,s){super(e,s,Qe.TextToImage)}async load(){await super.load();const{width:e,height:s}=this.getSize(),a=this.edit.getResolvedEdit()?.timeline.tracks.flatMap(l=>l.clips)??[],i=zo(a,this.clipId??""),{asset:r}=this.clipConfiguration,n=ta(r)&&r.prompt||"",o=ta(r)?r.type:"text-to-image";this.aiOverlay=new $r({mode:"panel",icon:"image",width:e,height:s,assetNumber:i??void 0,prompt:n,assetType:o}),this.contentContainer.addChild(this.aiOverlay.getContainer()),this.configureKeyframes()}update(e,s){super.update(e,s);const{width:a,height:i}=this.getSize();this.aiOverlay?.resize(a,i)}getSize(){const e=this.clipConfiguration.asset;return{width:this.clipConfiguration.width??e.width??this.edit.size.width,height:this.clipConfiguration.height??e.height??this.edit.size.height}}dispose(){this.aiOverlay?.dispose(),this.aiOverlay=null,super.dispose()}}class fk extends xt{constructor(e,s){super(e,s,Qe.TextToSpeech)}async load(){await super.load(),this.configureKeyframes()}update(e,s){super.update(e,s),this.getContainer().alpha=0}getSize(){return{width:0,height:0}}}class uk extends xt{texture;sprite;isPlaying;volumeKeyframeBuilder;syncTimer;activeSyncTimer;skipVideoUpdate;constructor(e,s){super(e,s,Qe.Video),this.texture=null,this.sprite=null,this.isPlaying=!1;const a=this.clipConfiguration.asset;this.volumeKeyframeBuilder=new Pa(a.volume??1,this.getLength()),this.syncTimer=0,this.activeSyncTimer=0,this.skipVideoUpdate=!1}async load(){await super.load(),await this.loadVideo(),this.configureKeyframes()}update(e,s){if(super.update(e,s),this.skipVideoUpdate)return;const{trim:a=0}=this.clipConfiguration.asset;if(this.syncTimer+=s,!this.texture)return;const i=this.getPlaybackTime(),r=this.edit.isPlaying&&this.isActive();r&&(this.isPlaying||(this.isPlaying=!0,this.activeSyncTimer=0,this.texture.source.resource.currentTime=i+a,this.texture.source.resource.play().catch(console.error)),this.texture.source.resource.volume!==this.getVolume()&&(this.texture.source.resource.volume=this.getVolume()),this.activeSyncTimer+=s,this.activeSyncTimer>1e3&&(this.activeSyncTimer=0,Math.abs(this.texture.source.resource.currentTime-a-i)>.3&&(this.texture.source.resource.currentTime=i+a,this.edit.recordSyncCorrection()))),!r&&this.isPlaying&&(this.isPlaying=!1,this.texture.source.resource.pause());const n=this.syncTimer>100;!this.edit.isPlaying&&this.isActive()&&n&&(this.syncTimer=0,this.texture.source.resource.currentTime=i+a)}dispose(){super.dispose(),this.disposeVideo()}getSize(){return this.clipConfiguration.width&&this.clipConfiguration.height?{width:this.clipConfiguration.width,height:this.clipConfiguration.height}:{width:this.sprite?.width??0,height:this.sprite?.height??0}}supportsEdgeResize(){return!0}async reloadAsset(){this.skipVideoUpdate=!0,this.disposeVideo(),await this.loadVideo(),this.isPlaying=!1,this.syncTimer=0,this.activeSyncTimer=0,this.skipVideoUpdate=!1}async loadVideo(){const e=this.clipConfiguration.asset,{src:s}=e;if(s.endsWith(".mov"))throw new Error(`Video source '${s}' is not supported. .mov files cannot be played in the browser. Please convert to .webm or .mp4 first.`);const a=`${s}${s.includes("?")?"&":"?"}x-cors=1`,i={src:a,data:{autoPlay:!1,muted:!1}},r=await this.edit.assetLoader.loadVideoUnique(a,i);if(!r||!(r.source instanceof X.VideoSource))throw new Error(`Invalid video source '${s}'.`);r.source.alphaMode="no-premultiply-alpha",this.texture=this.createCroppedTexture(r);const n=this.texture.source.resource;n instanceof HTMLVideoElement&&n.readyState<2&&await new Promise(o=>{const l=()=>{n.removeEventListener("loadeddata",l),o()};n.addEventListener("loadeddata",l),n.readyState>=2&&o()}),this.sprite=new X.Sprite(this.texture),this.contentContainer.addChild(this.sprite)}disposeVideo(){this.texture?.source?.resource&&(this.texture.source.resource.pause(),this.texture.source.resource.src="",this.texture.source.resource.load()),this.sprite&&(this.contentContainer.removeChild(this.sprite),this.sprite.destroy(),this.sprite=null),this.texture&&(this.texture.destroy(!0),this.texture=null)}getVolume(){return this.volumeKeyframeBuilder.getValue(this.getPlaybackTime())}getCurrentDrift(){if(!this.texture?.source?.resource)return 0;const{trim:e=0}=this.clipConfiguration.asset,s=this.texture.source.resource.currentTime,a=this.getPlaybackTime();return Math.abs(s-e-a)}createCroppedTexture(e){const s=this.clipConfiguration.asset;if(!s.crop)return e;const a=e.width,i=e.height;if(a<=0||i<=0)return e;const r=Math.floor((s.crop?.left??0)*a),n=Math.floor((s.crop?.right??0)*a),o=Math.floor((s.crop?.top??0)*i),l=Math.floor((s.crop?.bottom??0)*i),c=r,f=o,h=a-r-n,d=i-o-l,m=new X.Rectangle(c,f,h,d);return new X.Texture({source:e.source,frame:m})}}class I0{static create(e,s){if(!s.asset?.type)throw new Error("Invalid clip configuration: missing asset type");switch(s.asset.type){case"text":return new ka(e,s);case"rich-text":return new Ca(e,s);case"shape":return new ok(e,s);case"html":return new Ou(e,s);case"image":return new Mu(e,s);case"video":return new uk(e,s);case"audio":return new uu(e,s);case"luma":return new Yu(e,s);case"caption":return new Vi(e,s);case"svg":return new ds(e,s);case"text-to-image":return new ck(e,s);case"image-to-video":return new Wu(e,s);case"text-to-speech":return new fk(e,s);default:throw new Error(`Unsupported asset type: ${s.asset.type}`)}}static cleanup(){ka.resetFontCache()}}function po(t,e,s,a){const i=new Map,r=`alias://${s}`;for(let n=0;n<t.getTrackCount();n+=1){const o=t.getClipsInTrack(n);for(let l=0;l<o.length;l+=1)if(!a?.has(`${n}:${l}`)){const c=o[l],f=c.id,h=e.timeline.tracks[n]?.clips[l];let d=!1;const m={};if(c.start===r&&(m.start=c.start,d=!0),c.length===r&&(m.length=c.length,d=!0),d&&f&&h){i.set(f,m);const b={};m.start&&(b.start=h.start),m.length&&(b.length=h.length),t.updateClip(n,l,b)}}}return i}function hk(t,e,s,a){const i=new Map;for(const r of s){const n=po(t,e,r,a);for(const[o,l]of n){const c=i.get(o);c?i.set(o,{...c,...l}):i.set(o,l)}}return i}function mo(t,e){for(const[s,a]of e){const i=t.getClipById(s);if(i){const r={};a.start&&(r.start=a.start),a.length&&(r.length=a.length),t.updateClip(i.trackIndex,i.clipIndex,r)}}}function dk(t){const e=[];for(const s of t){const{alias:a}=s;a&&e.push(a)}return e}const Fe=()=>({status:"success"}),et=t=>({status:"noop",message:t});class gk{constructor(e,s){this.trackIdx=e,this.clip=s}name="addClip";addedClipId;convertedReferences;execute(e){if(!e)throw new Error("AddClipCommand.execute: context is required");const s=e.getDocument();if(!s)throw new Error("AddClipCommand.execute: no document");const a=e.documentAddClip(this.trackIdx,this.clip);this.addedClipId=a.id,this.convertedReferences&&this.convertedReferences.size>0&&mo(s,this.convertedReferences),e.resolve(),e.updateDuration();const n=e.getDocumentTrack(this.trackIdx)?.clips?.findIndex(o=>o.id===this.addedClipId)??-1;return e.emitEvent(ce.ClipAdded,{trackIndex:this.trackIdx,clipIndex:n}),Fe()}undo(e){if(!e)throw new Error("AddClipCommand.undo: context is required");if(!this.addedClipId)return et("No clip ID stored");const s=e.getDocument();if(!s)throw new Error("AddClipCommand.undo: no document");const i=e.getDocumentTrack(this.trackIdx)?.clips,r=i?.findIndex(o=>o.id===this.addedClipId)??-1;if(r===-1)return et(`Clip ${this.addedClipId} not found in track ${this.trackIdx}`);const n=i?.[r]?.alias;if(n){const o=new Set([`${this.trackIdx}:${r}`]);this.convertedReferences=po(s,e.getEditState(),n,o)}return e.documentRemoveClip(this.trackIdx,r),e.resolve(),e.updateDuration(),e.emitEvent(ce.ClipDeleted,{trackIndex:this.trackIdx,clipIndex:r}),Fe()}dispose(){this.addedClipId=void 0,this.convertedReferences=void 0}}class pk{constructor(e){this.trackIdx=e}name="addTrack";execute(e){if(!e)throw new Error("AddTrackCommand.execute: context is required");const s=e.getDocument();if(!s)throw new Error("AddTrackCommand.execute: document is required");return s.addTrack(this.trackIdx),e.resolve(),e.updateDuration(),e.emitEvent(ce.TrackAdded,{trackIndex:this.trackIdx,totalTracks:s.getTrackCount()}),Fe()}undo(e){if(!e)throw new Error("AddTrackCommand.undo: context is required");const s=e.getDocument();if(!s)throw new Error("AddTrackCommand.undo: document is required");return s.removeTrack(this.trackIdx),e.resolve(),e.updateDuration(),Fe()}dispose(){}}class _0{constructor(e){this.trackIdx=e}name="deleteTrack";deletedClips=[];convertedReferences;execute(e){if(!e)throw new Error("DeleteTrackCommand.execute: context is required");const s=e.getDocument();if(!s)throw new Error("DeleteTrackCommand: no document");if(s.getTrackCount()<=1)return et("Cannot delete the last track");const a=s.getTrack(this.trackIdx);a&&(this.deletedClips=a.clips.map(r=>structuredClone(r)));const i=dk(this.deletedClips);if(i.length>0){const r=new Set;for(let n=0;n<this.deletedClips.length;n+=1)r.add(`${this.trackIdx}:${n}`);this.convertedReferences=hk(s,e.getEditState(),i,r)}return s.removeTrack(this.trackIdx),e.resolve(),e.updateDuration(),e.emitEvent(ce.TrackRemoved,{trackIndex:this.trackIdx}),Fe()}undo(e){if(!e)throw new Error("DeleteTrackCommand.undo: context is required");const s=e.getDocument();if(!s)throw new Error("DeleteTrackCommand.undo: no document");s.addTrack(this.trackIdx);for(let a=0;a<this.deletedClips.length;a+=1)s.addClip(this.trackIdx,this.deletedClips[a],a);return this.convertedReferences&&this.convertedReferences.size>0&&mo(s,this.convertedReferences),e.resolve(),e.updateDuration(),e.emitEvent(ce.TrackAdded,{trackIndex:this.trackIdx,totalTracks:s.getTrackCount()}),Fe()}dispose(){this.deletedClips=[],this.convertedReferences=void 0}}class yo{constructor(e,s){this.trackIdx=e,this.clipIdx=s}name="deleteClip";deletedClipConfig;deletedClipId;deleteTrackCommand;trackWasDeleted=!1;storedBindings;convertedReferences;execute(e){if(!e)throw new Error("DeleteClipCommand.execute: context is required");const s=e.getDocument();if(!s)throw new Error("DeleteClipCommand: no document");const a=s.getClip(this.trackIdx,this.clipIdx);if(!a)return et(`No clip at track ${this.trackIdx}, index ${this.clipIdx}`);if(this.deletedClipConfig=structuredClone(a),this.deletedClipId=a.id,this.deletedClipId){const o=e.getClipBindings(this.deletedClipId);this.storedBindings=o?new Map(o):void 0,s.clearClipBindings(this.deletedClipId)}const i=a.alias;if(i){const o=new Set([`${this.trackIdx}:${this.clipIdx}`]);this.convertedReferences=po(s,e.getEditState(),i,o)}e.clearClipError(this.trackIdx,this.clipIdx);const r=e.getSelectedClip();r&&this.deletedClipId&&r.clipId===this.deletedClipId&&(e.setSelectedClip(null),e.emitEvent(ce.SelectionCleared)),e.documentRemoveClip(this.trackIdx,this.clipIdx);const n=s.getTrack(this.trackIdx);return n&&n.clips.length===0&&(this.deleteTrackCommand=new _0(this.trackIdx),this.deleteTrackCommand.execute(e).status==="success"&&(this.trackWasDeleted=!0)),e.resolve(),e.updateDuration(),e.emitEvent(ce.ClipDeleted,{trackIndex:this.trackIdx,clipIndex:this.clipIdx}),Fe()}undo(e){if(!e)throw new Error("DeleteClipCommand.undo: context is required");if(!this.deletedClipConfig)return et("No deleted clip config");const s=e.getDocument();if(!s)throw new Error("DeleteClipCommand.undo: no document");this.trackWasDeleted&&s.addTrack(this.trackIdx);const i=e.documentAddClip(this.trackIdx,this.deletedClipConfig,this.clipIdx).id;return i&&this.storedBindings&&this.storedBindings.size>0&&s.setClipBindingsForClip(i,this.storedBindings),this.convertedReferences&&this.convertedReferences.size>0&&mo(s,this.convertedReferences),e.resolve(),e.updateDuration(),this.trackWasDeleted&&(e.emitEvent(ce.TrackAdded,{trackIndex:this.trackIdx,totalTracks:s.getTrackCount()}),this.trackWasDeleted=!1),e.emitEvent(ce.ClipRestored,{trackIndex:this.trackIdx,clipIndex:this.clipIdx}),Fe()}dispose(){this.deletedClipConfig=void 0,this.deletedClipId=void 0,this.deleteTrackCommand=void 0,this.storedBindings=void 0,this.convertedReferences=void 0}}class mk{constructor(e){this.aspectRatio=e}name="setOutputAspectRatio";previousAspectRatio;execute(e){if(!e)throw new Error("SetOutputAspectRatioCommand requires context");return this.previousAspectRatio=e.getOutputAspectRatio(),e.setOutputAspectRatio(this.aspectRatio),Fe()}undo(e){if(!e)throw new Error("SetOutputAspectRatioCommand requires context");return this.previousAspectRatio===void 0?et("No previous aspect ratio stored"):(e.setOutputAspectRatio(this.previousAspectRatio),Fe())}dispose(){this.previousAspectRatio=void 0}}class yk{constructor(e){this.destinations=e}name="setOutputDestinations";previousDestinations;execute(e){if(!e)throw new Error("SetOutputDestinationsCommand requires context");return this.previousDestinations=e.getOutputDestinations(),e.setOutputDestinations(this.destinations),Fe()}undo(e){if(!e)throw new Error("SetOutputDestinationsCommand requires context");return this.previousDestinations===void 0?et("No previous destinations stored"):(e.setOutputDestinations(this.previousDestinations),Fe())}dispose(){this.previousDestinations=void 0}}class bk{constructor(e){this.format=e}name="setOutputFormat";previousFormat;execute(e){if(!e)throw new Error("SetOutputFormatCommand requires context");return this.previousFormat=e.getOutputFormat(),e.setOutputFormat(this.format),Fe()}undo(e){if(!e)throw new Error("SetOutputFormatCommand requires context");return this.previousFormat===void 0?et("No previous format stored"):(e.setOutputFormat(this.previousFormat),Fe())}dispose(){this.previousFormat=void 0}}class wk{constructor(e){this.fps=e}name="setOutputFps";previousFps;execute(e){if(!e)throw new Error("SetOutputFpsCommand requires context");return this.previousFps=e.getOutputFps(),e.setOutputFps(this.fps),Fe()}undo(e){if(!e)throw new Error("SetOutputFpsCommand requires context");return this.previousFps===void 0?et("No previous FPS stored"):(e.setOutputFps(this.previousFps),Fe())}dispose(){this.previousFps=void 0}}class vk{constructor(e){this.resolution=e}name="setOutputResolution";previousResolution;execute(e){if(!e)throw new Error("SetOutputResolutionCommand requires context");return this.previousResolution=e.getOutputResolution(),e.setOutputResolution(this.resolution),Fe()}undo(e){if(!e)throw new Error("SetOutputResolutionCommand requires context");return this.previousResolution===void 0?et("No previous resolution stored"):(e.setOutputResolution(this.previousResolution),Fe())}dispose(){this.previousResolution=void 0}}class xk{constructor(e,s){this.width=e,this.height=s}name="setOutputSize";previousSize;execute(e){if(!e)throw new Error("SetOutputSizeCommand requires context");return this.previousSize=e.getOutputSize(),e.setOutputSize(this.width,this.height),Fe()}undo(e){if(!e)throw new Error("SetOutputSizeCommand requires context");return this.previousSize?(e.setOutputSize(this.previousSize.width,this.previousSize.height),Fe()):et("No previous size stored")}dispose(){this.previousSize=void 0}}class Ck{constructor(e){this.color=e}name="setTimelineBackground";previousColor;execute(e){if(!e)throw new Error("SetTimelineBackgroundCommand requires context");return this.previousColor=e.getTimelineBackground(),e.setTimelineBackground(this.color),Fe()}undo(e){if(!e)throw new Error("SetTimelineBackgroundCommand requires context");return this.previousColor===void 0?et("No previous color stored"):(e.setTimelineBackground(this.previousColor),Fe())}dispose(){this.previousColor=void 0}}function Pt(t){const{id:e,...s}=t;return s}function Tr(t){return!!(t&&typeof t=="object"&&!Array.isArray(t))}function Pr(t,e){const s={...t};return Tr(t)&&Tr(e)&&Object.keys(e).forEach(a=>{if(a==="__proto__"||a==="constructor"||a==="prototype")return;const i=e[a],r=t[a];Tr(i)?a in t&&Tr(r)?s[a]=Pr(r,i):s[a]=Pr({},i):s[a]=i}),s}function Er(t,e,s){const a=e.split(".");let i=t;for(let r=0;r<a.length-1;r+=1){if(i==null||typeof i!="object")return;i=i[a[r]]}i!=null&&typeof i=="object"&&(i[a[a.length-1]]=s)}function fi(t,e){const s=e.split(".");let a=t;for(const i of s){if(a==null||typeof a!="object")return;a=a[i]}return a}class bo{constructor(e,s,a){this.initialClipConfig=e,this.finalClipConfig=s,this.trackIndex=a?.trackIndex??-1,this.clipIndex=a?.clipIndex??-1}name="setUpdatedClip";clipId=null;storedInitialConfig=null;storedFinalConfig=null;storedInitialBindings=new Map;previousDocClip=null;trackIndex;clipIndex;async execute(e){if(!e)throw new Error("SetUpdatedClipCommand.execute: context is required");const s=e.getDocument();if(!s)throw new Error("SetUpdatedClipCommand.execute: document is required");const a=e.getClipAt(this.trackIndex,this.clipIndex);if(!a)return et(`Invalid clip at ${this.trackIndex}/${this.clipIndex}`);this.clipId=a.clipId,this.storedInitialConfig||(this.storedInitialConfig=this.initialClipConfig?structuredClone(this.initialClipConfig):structuredClone(a.clipConfiguration)),this.storedFinalConfig||(this.storedFinalConfig=this.finalClipConfig?structuredClone(this.finalClipConfig):structuredClone(a.clipConfiguration));const i=e.getDocumentClip(this.trackIndex>=0?this.trackIndex:a.layer-1,this.clipIndex>=0?this.clipIndex:e.getTracks()[a.layer-1]?.indexOf(a)??-1);this.previousDocClip=i?structuredClone(i):null;const r=this.clipId?e.getClipBindings(this.clipId):void 0;this.storedInitialBindings=r?new Map(r):new Map;const n=this.trackIndex>=0?this.trackIndex:a.layer-1,o=this.clipIndex>=0?this.clipIndex:e.getTracks()[n]?.indexOf(a)??-1,l=this.storedFinalConfig??this.finalClipConfig;if(l){const{id:V,...M}=l;s.updateClip(n,o,M)}e.resolve();const c=e.getClipAt(n,o);for(const[V,{resolvedValue:M}]of this.storedInitialBindings)(c?fi(c.clipConfiguration,V):void 0)!==M&&this.clipId&&e.removeClipBinding(this.clipId,V);const f=this.storedInitialConfig??this.initialClipConfig,h=this.storedFinalConfig??this.finalClipConfig,d=f?.asset,m=h?.asset;if(d?.src!==m?.src){const V=e.getClipAt(n,o);V&&V.getTimingIntent().length==="auto"&&await e.resolveClipAutoLength(V)}const b=e.getDocumentClip(n,o);if(!this.previousDocClip||!b)throw new Error(`SetUpdatedClipCommand: document clip not found after mutation at ${n}/${o}`);return e.emitEvent(ce.ClipUpdated,{previous:{clip:Pt(this.previousDocClip),trackIndex:n,clipIndex:o},current:{clip:Pt(b),trackIndex:n,clipIndex:o}}),Fe()}async undo(e){if(!e)throw new Error("SetUpdatedClipCommand.undo: context is required");const s=this.storedInitialConfig??this.initialClipConfig;if(!s)return et("No stored initial config");const a=e.getDocument();if(!a)throw new Error("SetUpdatedClipCommand.undo: document is required");const i=this.clipId?e.getPlayerByClipId(this.clipId):e.getClipAt(this.trackIndex,this.clipIndex);if(!i)return et("Clip not found for undo");const r=this.trackIndex>=0?this.trackIndex:i.layer-1,n=this.clipIndex>=0?this.clipIndex:e.getTracks()[r]?.indexOf(i)??-1,o=structuredClone(e.getDocumentClip(r,n)),{id:l,...c}=s;if(a.updateClip(r,n,c),e.resolve(),this.clipId){const b=new Map(this.storedInitialBindings);b.size>0?e.getDocument()?.setClipBindingsForClip(this.clipId,b):e.getDocument()?.clearClipBindings(this.clipId)}const h=(this.storedFinalConfig??this.finalClipConfig)?.asset,d=s?.asset;if(h?.src!==d?.src){const b=e.getClipAt(r,n);b&&b.getTimingIntent().length==="auto"&&await e.resolveClipAutoLength(b)}const m=e.getDocumentClip(r,n);if(!o||!m)throw new Error(`SetUpdatedClipCommand: document clip not found after undo at ${r}/${n}`);return e.emitEvent(ce.ClipUpdated,{previous:{clip:Pt(o),trackIndex:r,clipIndex:n},current:{clip:Pt(m),trackIndex:r,clipIndex:n}}),Fe()}dispose(){this.clipId=null,this.storedInitialConfig=null,this.storedFinalConfig=null,this.storedInitialBindings.clear(),this.previousDocClip=null}}class kk{constructor(e,s,a){this.trackIndex=e,this.clipIndex=s,this.splitTime=a}name="SplitClip";originalClipConfig=null;rightClipId=null;execute(e){const s=e.getDocument();if(!s)throw new Error("Cannot split clip: no document");const a=s.getClip(this.trackIndex,this.clipIndex);if(!a)return et(`No clip at ${this.trackIndex}/${this.clipIndex}`);const i=e.getClipAt(this.trackIndex,this.clipIndex),r=i?.clipConfiguration.start??0,n=i?.clipConfiguration.length??0,o=.1,l=this.splitTime-r;if(l<=o||l>=n-o)return et("Split point too close to clip boundaries");this.originalClipConfig=structuredClone(a);const c=l,f=structuredClone(a);if(a.start==="auto"?f.start="auto":f.start=r+l,f.length=n-l,a.asset&&(a.asset.type==="video"||a.asset.type==="audio")){const d=a.asset.trim||0;f.asset&&(f.asset.type==="video"||f.asset.type==="audio")&&(f.asset.trim=d+l)}e.documentUpdateClip(this.trackIndex,this.clipIndex,{length:c});const h=e.documentAddClip(this.trackIndex,f,this.clipIndex+1);return this.rightClipId=h.id??null,e.resolve(),e.updateDuration(),e.emitEvent(ce.ClipSplit,{trackIndex:this.trackIndex,originalClipIndex:this.clipIndex,newClipIndex:this.clipIndex+1}),Fe()}undo(e){return this.originalClipConfig?(e.documentRemoveClip(this.trackIndex,this.clipIndex+1),e.documentUpdateClip(this.trackIndex,this.clipIndex,this.originalClipConfig),e.resolve(),e.updateDuration(),e.emitEvent(ce.ClipDeleted,{trackIndex:this.trackIndex,clipIndex:this.clipIndex+1}),Fe()):et("No original clip config stored")}dispose(){this.originalClipConfig=null,this.rightClipId=null}}class Nk{constructor(e,s,a){this.trackIndex=e,this.clipIndex=s,this.params=a}name="UpdateClipTiming";originalStart;originalLength;clipId;execute(e){if(!e)throw new Error("UpdateClipTimingCommand.execute: context is required");const s=e.getDocument();if(!s)throw new Error("UpdateClipTimingCommand.execute: document is required");const i=e.getDocumentTrack(this.trackIndex)?.clips[this.clipIndex];if(!i)return et(`Invalid clip at ${this.trackIndex}/${this.clipIndex}`);const r=e.getClipAt(this.trackIndex,this.clipIndex);if(!r)return et(`Player not found at ${this.trackIndex}/${this.clipIndex}`);this.originalStart=i.start,this.originalLength=i.length,this.clipId=r.clipId??void 0;const n=structuredClone(i),o={};this.params.start!==void 0&&(o.start=this.params.start),this.params.length!==void 0&&(o.length=this.params.length),s.updateClip(this.trackIndex,this.clipIndex,o),this.clipId?e.resolveClip(this.clipId):e.resolve(),o.length==="auto"&&e.resolveClipAutoLength(r).then(()=>{e.updateDuration(),e.propagateTimingChanges(this.trackIndex,this.clipIndex)}),e.updateDuration();const l=e.getDocumentClip(this.trackIndex,this.clipIndex);if(!l)throw new Error(`UpdateClipTimingCommand: document clip not found after mutation at ${this.trackIndex}/${this.clipIndex}`);return e.emitEvent(ce.ClipUpdated,{previous:{trackIndex:this.trackIndex,clipIndex:this.clipIndex,clip:Pt(n)},current:{trackIndex:this.trackIndex,clipIndex:this.clipIndex,clip:Pt(l)}}),e.propagateTimingChanges(this.trackIndex,this.clipIndex),Fe()}undo(e){if(!e)throw new Error("UpdateClipTimingCommand.undo: context is required");if(this.originalStart===void 0&&this.originalLength===void 0)throw new Error("UpdateClipTimingCommand.undo: no original values");const s=e.getDocument();if(!s)throw new Error("UpdateClipTimingCommand.undo: document is required");const a=e.getClipAt(this.trackIndex,this.clipIndex);if(!a)throw new Error("UpdateClipTimingCommand.undo: player not found");const i=structuredClone(e.getDocumentClip(this.trackIndex,this.clipIndex)),r={};this.originalStart!==void 0&&(r.start=this.originalStart),this.originalLength!==void 0&&(r.length=this.originalLength),s.updateClip(this.trackIndex,this.clipIndex,r),this.clipId?e.resolveClip(this.clipId):e.resolve(),this.originalLength==="auto"&&e.resolveClipAutoLength(a).then(()=>{e.updateDuration(),e.propagateTimingChanges(this.trackIndex,this.clipIndex)}),e.updateDuration();const n=e.getDocumentClip(this.trackIndex,this.clipIndex);if(!i||!n)throw new Error(`UpdateClipTimingCommand: document clip not found after undo at ${this.trackIndex}/${this.clipIndex}`);return e.emitEvent(ce.ClipUpdated,{previous:{trackIndex:this.trackIndex,clipIndex:this.clipIndex,clip:Pt(i)},current:{trackIndex:this.trackIndex,clipIndex:this.clipIndex,clip:Pt(n)}}),e.propagateTimingChanges(this.trackIndex,this.clipIndex),Fe()}}class Ak{constructor(e,s,a){this.trackIndex=e,this.clipIndex=s,this.newText=a}name="updateTextContent";clipId=null;previousText="";previousDocClip;execute(e){if(!e)throw new Error("UpdateTextContentCommand.execute: context is required");const s=e.getDocument();if(!s)throw new Error("UpdateTextContentCommand.execute: document is required");const a=e.getClipAt(this.trackIndex,this.clipIndex);if(!a)return et(`Invalid clip at ${this.trackIndex}/${this.clipIndex}`);const i=s.getClip(this.trackIndex,this.clipIndex);if(!i)return et("Clip not found in document");this.clipId=a.clipId,this.previousDocClip=structuredClone(i);const r=i.asset;this.previousText=r&&"text"in r?r.text??"":"";const o={...i.asset,text:this.newText};s.updateClip(this.trackIndex,this.clipIndex,{asset:o}),this.clipId?e.resolveClip(this.clipId):e.resolve();const l=e.getDocumentClip(this.trackIndex,this.clipIndex);if(!this.previousDocClip||!l)throw new Error(`UpdateTextContentCommand: document clip not found after mutation at ${this.trackIndex}/${this.clipIndex}`);return e.emitEvent(ce.ClipUpdated,{previous:{clip:Pt(this.previousDocClip),trackIndex:this.trackIndex,clipIndex:this.clipIndex},current:{clip:Pt(l),trackIndex:this.trackIndex,clipIndex:this.clipIndex}}),Fe()}undo(e){if(!e)throw new Error("UpdateTextContentCommand.undo: context is required");const s=e.getDocument();if(!s)throw new Error("UpdateTextContentCommand.undo: document is required");const a=structuredClone(e.getDocumentClip(this.trackIndex,this.clipIndex)),i=s.getClip(this.trackIndex,this.clipIndex);if(!i)return et("Clip not found for undo");const n={...i.asset,text:this.previousText};s.updateClip(this.trackIndex,this.clipIndex,{asset:n}),this.clipId?e.resolveClip(this.clipId):e.resolve();const o=e.getDocumentClip(this.trackIndex,this.clipIndex);if(this.previousDocClip){if(!a||!o)throw new Error(`UpdateTextContentCommand: document clip not found after undo at ${this.trackIndex}/${this.clipIndex}`);e.emitEvent(ce.ClipUpdated,{previous:{clip:Pt(a),trackIndex:this.trackIndex,clipIndex:this.clipIndex},current:{clip:Pt(o),trackIndex:this.trackIndex,clipIndex:this.clipIndex}})}return Fe()}dispose(){this.clipId=null,this.previousDocClip=void 0}}class F0{events;constructor(){this.events={}}on(e,s){return this.events[e]||(this.events[e]=new Set),this.events[e].add(s),()=>this.off(e,s)}once(e,s){const a=i=>{this.off(e,a),s(i)};return this.on(e,a)}off(e,s){this.events[e]&&(this.events[e].delete(s),!(this.events[e].size>0)&&delete this.events[e])}clear(e){delete this.events[e]}emit(e,...s){if(!this.events[e])return;const a=s[0];for(const i of this.events[e])i(a)}}const T0=.5,Sk=1/30;class Vk{constructor(e,s,a){this.getCanvas=e,this.getTracks=s,this.events=a,this.onClipChangedBound=()=>this.rebuildLumaMasksIfNeeded(),this.onPlayerLoadedBound=i=>this.onPlayerLoaded(i)}activeLumaMasks=[];pendingMaskCleanup=[];onClipChangedBound;onPlayerLoadedBound;initialize(){this.setupEventListeners()}update(){this.updateLumaMasks(),this.processPendingMaskCleanup()}getActiveMaskCount(){return this.activeLumaMasks.length}dispose(){this.removeEventListeners();for(const e of this.activeLumaMasks)e.tempContainer.destroy({children:!0}),e.maskSprite.destroy({texture:!0});this.activeLumaMasks=[];for(const e of this.pendingMaskCleanup)try{e.maskSprite.parent?.removeChild(e.maskSprite),e.maskSprite.destroy({texture:!0})}catch{}this.pendingMaskCleanup=[]}cleanupForPlayer(e){const s=this.activeLumaMasks.findIndex(i=>i.lumaPlayer===e);if(s===-1)return;const a=this.activeLumaMasks[s];a.contentClip&&(a.contentClip.getContentContainer().mask=null),a.maskSprite.parent?.removeChild(a.maskSprite),a.tempContainer.destroy({children:!0}),this.activeLumaMasks.splice(s,1),this.pendingMaskCleanup.push({maskSprite:a.maskSprite,frameCount:0})}onPlayerLoaded(e){const{player:s,trackIndex:a}=e;if(s.playerType!==Qe.Luma)return;const i=s,r=i.getSprite();if(!r?.texture){console.warn("PlayerLoaded fired for luma player before texture ready");return}const n=this.getTracks();if(a>=n.length)return;const l=n[a].filter(f=>f.playerType!==Qe.Luma);l.length===0||this.activeLumaMasks.find(f=>f.lumaPlayer===i)||(this.setupLumaMask(i,r.texture,l[0]),i.getContainer().parent?.removeChild(i.getContainer()))}setupLumaMask(e,s,a){const i=this.getCanvas();if(!i)return;const{renderer:r}=i.application,{width:n,height:o}=a.getSize(),l=new X.Container,c=new X.Sprite(s);c.width=n,c.height=o;const f=new X.ColorMatrixFilter;f.negative(!1),c.filters=[f],l.addChild(c);const h=r.generateTexture({target:l,resolution:T0}),d=new X.Sprite(h);a.getContainer().addChild(d);const m=a.getContentContainer();m.mask=d,this.activeLumaMasks.push({lumaPlayer:e,maskSprite:d,tempContainer:l,contentClip:a,lastVideoTime:-1})}updateLumaMasks(){const e=this.getCanvas();if(!e)return;const{renderer:s}=e.application;for(const a of this.activeLumaMasks)if(a.lumaPlayer.isVideoSource()){const i=a.lumaPlayer.getVideoCurrentTime();if(Math.abs(i-a.lastVideoTime)>=Sk){a.lastVideoTime=i;const n=a.maskSprite.texture;a.maskSprite.texture=s.generateTexture({target:a.tempContainer,resolution:T0}),n.destroy(!0)}}}setupEventListeners(){this.events.on(ot.PlayerLoaded,this.onPlayerLoadedBound),this.events.on(ce.ClipUpdated,this.onClipChangedBound)}removeEventListeners(){this.events.off(ot.PlayerLoaded,this.onPlayerLoadedBound),this.events.off(ce.ClipUpdated,this.onClipChangedBound)}processPendingMaskCleanup(){for(let e=this.pendingMaskCleanup.length-1;e>=0;e-=1){const s=this.pendingMaskCleanup[e];if(s.frameCount+=1,s.frameCount>=3){try{s.maskSprite.parent?.removeChild(s.maskSprite),s.maskSprite.destroy({texture:!0})}catch{}this.pendingMaskCleanup.splice(e,1)}}}rebuildLumaMasksIfNeeded(){if(!this.getCanvas())return;const s=this.getTracks();for(let a=0;a<s.length;a+=1){const i=s[a],r=i.find(l=>l.playerType===Qe.Luma),n=i.filter(l=>l.playerType!==Qe.Luma);r&&r.getContainer().parent?.removeChild(r.getContainer());const o=r&&this.activeLumaMasks.find(l=>l.lumaPlayer===r);if(r&&!o&&n.length>0){const l=r.getSprite();l?.texture&&this.setupLumaMask(r,l.texture,n[0])}}}}function Ik(t){return{find:t.name,replace:t.defaultValue}}function _k(t){const e=typeof t.replace=="string"?t.replace:JSON.stringify(t.replace);return{name:t.find,defaultValue:e}}const Fk=/\{\{\s*([A-Z_0-9]+)\s*\}\}/gi,wo=/\{\{\s*[A-Z_0-9]+\s*\}\}/i;class Tk{fields=new Map;events;constructor(e){this.events=e}register(e,s){const a=!this.fields.has(e.name);this.fields.set(e.name,e),s?.silent||(this.events.emit(a?ce.MergeFieldRegistered:ce.MergeFieldUpdated,{field:e}),this.events.emit(ce.MergeFieldChanged,{fields:this.getAll()}))}remove(e,s){const a=this.fields.delete(e);return a&&!s?.silent&&(this.events.emit(ce.MergeFieldRemoved,{name:e}),this.events.emit(ce.MergeFieldChanged,{fields:this.getAll()})),a}get(e){return this.fields.get(e)}getAll(){return Array.from(this.fields.values())}clear(){this.fields.clear()}resolve(e){return!e||this.fields.size===0?e:e.replace(Fk,(s,a)=>this.fields.get(a)?.defaultValue??s)}resolveToNumber(e){if(!this.isMergeFieldTemplate(e))return null;const s=this.resolve(e),a=parseFloat(s);return Number.isFinite(a)?a:null}hasUnresolved(e){if(!e)return!1;const s=this.resolve(e);return wo.test(s)}extractFieldName(e){if(!e)return null;const s=wo.exec(e);if(!s)return null;const a=s[0].match(/\{\{\s*([A-Z_0-9]+)\s*\}\}/i);return a?a[1]:null}isMergeFieldTemplate(e){return wo.test(e)}createTemplate(e){return`{{ ${e} }}`}toSerializedArray(){return this.getAll().map(Ik)}loadFromSerialized(e){this.fields.clear();for(const s of e){const a=_k(s);this.fields.set(s.find,a)}}generateUniqueName(e){const s=new Set(this.fields.keys());let a=1;for(;s.has(`${e}_${a}`);)a+=1;return`${e}_${a}`}}const Pk={preview:{width:512,height:288},mobile:{width:640,height:360},sd:{width:1024,height:576},hd:{width:1280,height:720},1080:{width:1920,height:1080},"4k":{width:3840,height:2160}};function vo(t,e="16:9"){const s=Pk[t];if(!s)throw new Error(`Unknown resolution: ${t}`);switch(e){case"16:9":return{width:s.width,height:s.height};case"9:16":return{width:s.height,height:s.width};case"1:1":return{width:s.height,height:s.height};case"4:5":return{width:Math.round(s.height*4/5),height:s.height};case"4:3":return{width:Math.round(s.height*4/3),height:s.height};default:throw new Error(`Unknown aspectRatio: ${e}`)}}class Ek{constructor(e){this.edit=e}setSize(e,s){const a=ew.safeParse({width:e,height:s});if(!a.success)throw new Error(`Invalid size: ${a.error.issues[0]?.message}`);const i={width:e,height:s};this.edit.size=i;const r=this.edit.getResolvedEdit();r&&(r.output={...r.output,size:i},delete r.output.resolution,delete r.output.aspectRatio);const n=this.edit.getDocument();n?.setSize(i),n?.clearResolution(),n?.clearAspectRatio(),this.edit.updateCanvasForSize(),this.edit.events.emit(ce.OutputResized,i)}getSize(){return this.edit.size}setFps(e){const s=sw.safeParse(e);if(!s.success)throw new Error(`Invalid fps: ${s.error.issues[0]?.message}`);const a=this.edit.getResolvedEdit();a&&(a.output={...a.output,fps:s.data}),this.edit.getDocument()?.setFps(s.data),this.edit.events.emit(ce.OutputFpsChanged,{fps:e})}getFps(){return this.edit.getResolvedEdit()?.output?.fps??30}setFormat(e){const s=tw.safeParse(e);if(!s.success)throw new Error(`Invalid format: ${s.error.issues[0]?.message}`);const a=this.edit.getResolvedEdit();a&&(a.output={...a.output,format:s.data}),this.edit.getDocument()?.setFormat(s.data),this.edit.events.emit(ce.OutputFormatChanged,{format:s.data})}getFormat(){return this.edit.getResolvedEdit()?.output?.format??"mp4"}setDestinations(e){const s=$b.array().safeParse(e);if(!s.success)throw new Error(`Invalid destinations: ${s.error.message}`);const a=this.edit.getResolvedEdit();a&&(a.output={...a.output,destinations:s.data}),this.edit.events.emit(ce.OutputDestinationsChanged,{destinations:s.data})}getDestinations(){return this.edit.getResolvedEdit()?.output?.destinations??[]}setResolution(e){const s=aw.safeParse(e);if(!s.success||!s.data)throw new Error(`Invalid resolution: ${s.success?"resolution is required":s.error.issues[0]?.message}`);const a=s.data,i=this.edit.getResolvedEdit(),r=i?.output?.aspectRatio??"16:9",n=vo(a,r);this.edit.size=n,i&&(i.output={...i.output,resolution:a},delete i.output.size);const o=this.edit.getDocument();o?.setResolution(a),o?.clearSize(),this.edit.updateCanvasForSize(),this.edit.events.emit(ce.OutputResolutionChanged,{resolution:a}),this.edit.events.emit(ce.OutputResized,{width:n.width,height:n.height})}getResolution(){return this.edit.getResolvedEdit()?.output?.resolution}setAspectRatio(e){const s=iw.safeParse(e);if(!s.success||!s.data)throw new Error(`Invalid aspectRatio: ${s.success?"aspectRatio is required":s.error.issues[0]?.message}`);const a=s.data,i=this.edit.getResolvedEdit(),r=i?.output?.resolution;if(!r){i&&(i.output={...i.output,aspectRatio:a}),this.edit.getDocument()?.setAspectRatio(a),this.edit.events.emit(ce.OutputAspectRatioChanged,{aspectRatio:a});return}const n=vo(r,a);this.edit.size=n,i&&(i.output={...i.output,aspectRatio:a},delete i.output.size);const o=this.edit.getDocument();o?.setAspectRatio(a),o?.clearSize(),this.edit.updateCanvasForSize(),this.edit.events.emit(ce.OutputAspectRatioChanged,{aspectRatio:a}),this.edit.events.emit(ce.OutputResized,{width:n.width,height:n.height})}getAspectRatio(){return this.edit.getResolvedEdit()?.output?.aspectRatio}}class Ok{constructor(e){this.edit=e}selectedClip=null;copiedClip=null;selectClip(e,s){const a=this.edit.getPlayerClip(e,s);if(a){this.selectedClip=a;const i=this.edit.getDocumentClip(e,s);i&&this.edit.events.emit(ce.ClipSelected,{clip:Pt(i),trackIndex:e,clipIndex:s})}}selectPlayer(e){const s=this.findClipIndices(e);s&&this.selectClip(s.trackIndex,s.clipIndex)}clearSelection(){this.selectedClip=null,this.edit.events.emit(ce.SelectionCleared)}isClipSelected(e,s){if(!this.selectedClip)return!1;const a=this.selectedClip.layer-1,r=this.edit.getTracks()[a];if(!r)return!1;const n=r.indexOf(this.selectedClip);return e===a&&s===n}isPlayerSelected(e){return this.edit.isInExportMode()?!1:this.selectedClip===e}getSelectedClipInfo(){if(!this.selectedClip)return null;const e=this.selectedClip.layer-1,a=this.edit.getTracks()[e];if(!a)return null;const i=a.indexOf(this.selectedClip);return{trackIndex:e,clipIndex:i,player:this.selectedClip}}getSelectedClip(){return this.selectedClip}setSelectedClip(e){this.selectedClip=e}copyClip(e,s){const a=this.edit.getResolvedClip(e,s);a&&(this.copiedClip={trackIndex:e,clipConfiguration:structuredClone(a)},this.edit.events.emit(ce.ClipCopied,{trackIndex:e,clipIndex:s}))}pasteClip(){if(!this.copiedClip)return;const e=structuredClone(this.copiedClip.clipConfiguration);e.start=this.edit.playbackTime,delete e.id,this.edit.addClip(this.copiedClip.trackIndex,e)}hasCopiedClip(){return this.copiedClip!==null}findClipIndices(e){const s=this.edit.getTracks();for(let a=0;a<s.length;a+=1){const i=s[a].indexOf(e);if(i!==-1)return{trackIndex:a,clipIndex:i}}return null}}const Mk=3;function Rk(t){return new Promise(e=>{const s=document.createElement("video");s.preload="metadata",s.crossOrigin="anonymous",s.onloadedmetadata=()=>e(s.duration),s.onerror=()=>e(null),s.src=t})}async function P0(t){const e=t;if(["video","audio","luma"].includes(e.type)&&e.src){const s=await Rk(e.src);if(s!==null&&!Number.isNaN(s)){const a=e.trim??0;return s-a}}return Mk}function E0(t,e,s){return e===0?0:s[t][e-1].getEnd()}function O0(t,e){return Math.max(0,e-t)}function xo(t){let e=0;for(const s of t)for(const a of s)a.getTimingIntent().length!=="end"&&(e=Math.max(e,a.getEnd()));return e}class zk{constructor(e){this.edit=e}cachedTimelineEnd=0;getTimelineEnd(){return this.cachedTimelineEnd}invalidateTimelineEndCache(){this.cachedTimelineEnd=0}async resolveAllTiming(){const e=this.edit.getTracks(),s=this.edit.getResolvedEdit();for(let r=0;r<e.length;r+=1){const n=e[r],o=s.timeline.tracks[r];for(let l=0;l<n.length;l+=1){const c=n[l],f=o?.clips[l];if(f){const h=c.getTimingIntent(),d=f.start;let m=f.length;h.length==="auto"&&(m=await P0(c.clipConfiguration.asset)),c.setResolvedTiming({start:d,length:m})}}}const a=xo(e);this.cachedTimelineEnd=a;const i=this.getEndLengthClips();for(const r of i){const n=r.getResolvedTiming();r.setResolvedTiming({start:n.start,length:O0(n.start,a)})}for(const r of i)r.reconfigureAfterRestore()}propagateTimingChanges(e,s){const a=this.edit.getTracks(),i=a[e];if(!i)return;for(let n=Math.max(0,s);n<i.length;n+=1){const o=i[n];if(o.getTimingIntent().start==="auto"){const l=E0(e,n,a);o.setResolvedTiming({start:l,length:o.getLength()}),o.reconfigureAfterRestore()}}this.propagateAliasChanges();const r=xo(a);if(r!==this.cachedTimelineEnd){this.cachedTimelineEnd=r;const n=this.getEndLengthClips();for(const o of n){const l=O0(o.getStart(),r),c=o.getLength();Math.abs(l-c)>.001&&(o.setResolvedTiming({start:o.getStart(),length:l}),o.reconfigureAfterRestore())}}this.edit.updateTotalDuration(),this.edit.events.emit(ce.TimelineUpdated,{current:this.edit.getEdit()})}propagateAliasChanges(){const e=this.edit.getTracks(),s=this.edit.getResolvedEdit();for(let a=0;a<e.length;a+=1){const i=e[a],r=s.timeline.tracks[a];for(let n=0;n<i.length;n+=1){const o=i[n],l=r?.clips[n],c=o.getTimingIntent(),f=Kt(c.start),h=Kt(c.length);if((f||h)&&l){const d=o.getStart(),m=o.getLength(),b=Math.abs(l.start-d)>.001,V=Math.abs(l.length-m)>.001;(b||V)&&(o.setResolvedTiming({start:l.start,length:l.length}),o.reconfigureAfterRestore())}}}}getEndLengthClips(){const e=this.edit.getTracks(),s=[];for(const a of e)for(const i of a)i.getTimingIntent().length==="end"&&s.push(i);return s}}class Lk extends F0{registry;constructor(){super(),this.registry={}}}class Or{static VIDEO_EXTENSIONS=[".mp4",".m4v",".webm",".ogg",".ogv"];static VIDEO_MIME={".mp4":"video/mp4",".m4v":"video/mp4",".webm":"video/webm",".ogg":"video/ogg",".ogv":"video/ogg"};loadTracker=new Lk;refCounts=new Map;incrementRef(e){this.refCounts.set(e,(this.refCounts.get(e)??0)+1)}decrementRef(e){const s=this.refCounts.get(e)??0;return s<=1?(this.refCounts.delete(e),!0):(this.refCounts.set(e,s-1),!1)}constructor(){X.Assets.setPreferences({crossOrigin:"anonymous"})}async load(e,s){this.updateAssetLoadMetadata(e,"pending",0),this.incrementRef(e);try{if(await this.shouldUseSafariVideoLoader(s))return await this.loadVideoForSafari(e,s);const i=await X.Assets.load(s,r=>{this.updateAssetLoadMetadata(e,"loading",r)});return this.updateAssetLoadMetadata(e,"success",1),i}catch(a){return console.warn(`[AssetLoader] Failed to load asset "${e}":`,a),this.updateAssetLoadMetadata(e,"failed",1),this.decrementRef(e),null}}async loadVideoUnique(e,s){this.updateAssetLoadMetadata(e,"pending",0);try{const a=this.extractUrl(s);if(!a)throw new Error("No URL provided for video loading");const i=typeof s=="object"?s.data??{}:{},r=await new Promise((n,o)=>{const l=document.createElement("video");l.crossOrigin="anonymous",l.playsInline=!0,l.muted=i.muted??!1,l.preload="auto",l.addEventListener("loadedmetadata",()=>{try{const c=new X.VideoSource({resource:l,autoPlay:i.autoPlay??!1,...i});n(new X.Texture({source:c}))}catch(c){o(c)}},{once:!0}),l.addEventListener("error",()=>o(new Error("Video loading failed")),{once:!0}),this.updateAssetLoadMetadata(e,"loading",.5),l.src=a});return this.updateAssetLoadMetadata(e,"success",1),r}catch{return this.updateAssetLoadMetadata(e,"failed",1),null}}getProgress(){const e=Object.keys(this.loadTracker.registry);return e.length===0?0:e.reduce((a,i)=>a+this.loadTracker.registry[i].progress,0)/e.length}extractUrl(e){if(typeof e=="string")return e;const s=Array.isArray(e.src)?e.src[0]:e.src;return typeof s=="string"?s:s?.src}hasVideoExtension(e){const s=new URL(e,window.location.origin).pathname.toLowerCase();return Or.VIDEO_EXTENSIONS.some(a=>s.endsWith(a))}async getContentType(e){try{return(await fetch(e,{method:"HEAD"})).headers.get("content-type")}catch{return null}}canPlayVideo(e){const s=new URL(e,window.location.origin).pathname.toLowerCase(),a=s.slice(s.lastIndexOf(".")),i=Or.VIDEO_MIME[a];return i?document.createElement("video").canPlayType(i)!=="":!1}async isPlayableVideo(e){if(this.hasVideoExtension(e))return this.canPlayVideo(e);const s=await this.getContentType(e);return s?.startsWith("video/")?document.createElement("video").canPlayType(s)!=="":!1}async shouldUseSafariVideoLoader(e){const s=/^((?!chrome|android).)*safari/i.test(navigator.userAgent),a=this.extractUrl(e);return s&&a!==void 0&&await this.isPlayableVideo(a)}async loadVideoForSafari(e,s){const a=this.extractUrl(s),i=typeof s=="object"?s.data??{}:{},r=await new Promise((n,o)=>{const l=document.createElement("video");l.crossOrigin="anonymous",l.playsInline=!0,l.muted=!0,l.preload="metadata",l.addEventListener("loadedmetadata",()=>{try{const c=new X.VideoSource({resource:l,autoPlay:i.autoPlay??!1,...i});n(new X.Texture({source:c}))}catch(c){o(c)}},{once:!0}),l.addEventListener("error",()=>o(new Error("Video loading failed")),{once:!0}),this.updateAssetLoadMetadata(e,"loading",.5),l.src=a});return this.updateAssetLoadMetadata(e,"success",1),r}updateAssetLoadMetadata(e,s,a){this.loadTracker.registry[e]?(this.loadTracker.registry[e].progress=a,this.loadTracker.registry[e].status=s):this.loadTracker.registry[e]={progress:a,status:s};const i={...this.loadTracker.registry};this.loadTracker.emit("onAssetLoadInfoUpdated",{registry:i})}}class Mr{static Name="FontLoadParser";id;name;extension;validFontExtensions;woff2Decompressor;constructor(){this.id=Mr.Name,this.name=Mr.Name,this.extension={type:[X.ExtensionType.LoadParser],priority:X.LoaderParserPriority.High,ref:null},this.validFontExtensions=["ttf","otf","woff","woff2"],this.woff2Decompressor=null}test(e){const s=e.split("?")[0]?.split(".").pop()?.toLowerCase()??"";return this.validFontExtensions.includes(s)}async load(e,s,a){const i=e.split("?")[0]?.split(".").pop()?.toLowerCase()??"",r=await fetch(e).then(d=>d.arrayBuffer());if(i!=="woff2"){const d=Xr.parse(new Uint8Array(r).buffer),m=d.names.fontFamily.en||d.names.fontFamily[Object.keys(d.names.fontFamily)[0]],b=new FontFace(m,`url(${e})`);return await b.load(),document.fonts.add(b),b}if(await this.loadWoff2Decompressor(),!this.woff2Decompressor)throw new Error("Cannot initialize Woff2 decompressor.");const n=this.woff2Decompressor.decompress(r),o=Xr.parse(new Uint8Array(n).buffer),l=o.names.fontFamily.en||o.names.fontFamily[Object.keys(o.names.fontFamily)[0]],c=new Blob([n],{type:"font/ttf"}),f=URL.createObjectURL(c),h=new FontFace(l,`url(${f})`);return await h.load(),document.fonts.add(h),h}async loadWoff2Decompressor(){if(this.woff2Decompressor)return;const s=`${await fetch("https://unpkg.com/wawoff2@2.0.1/build/decompress_binding.js").then(a=>a.text())}; return Module`;this.woff2Decompressor=new Function(s)(),await new Promise(a=>{this.woff2Decompressor.onRuntimeInitialized=a})}unload(e){e&&document.fonts.delete(e)}}function Dk(t,e,s,a){const i=Math.max(t,s),r=Math.min(e,a);return Math.max(0,r-i)}class Bk{queue=[];isProcessing=!1;async enqueue(e){return new Promise((s,a)=>{this.queue.push(async()=>{try{const i=await e();s(i)}catch(i){a(i)}}),this.processQueue()})}async processQueue(){if(!this.isProcessing){for(this.isProcessing=!0;this.queue.length>0;){const e=this.queue.shift();if(e)try{await e()}catch{}}this.isProcessing=!1}}}class Na{data;clipBindings=new Map;constructor(e){this.data=structuredClone(e),this.hydrateIds()}hydrateIds(){const e=new Set;for(const s of this.data.timeline.tracks)for(let a=0;a<s.clips.length;a+=1){const i=s.clips[a];if(e.has(i)){const r=structuredClone(i);r.id=crypto.randomUUID(),s.clips[a]=r}else e.add(i),i.id||(i.id=crypto.randomUUID())}}getTimeline(){return this.data.timeline}getBackground(){return this.data.timeline.background}getTracks(){return this.data.timeline.tracks}getTrack(e){return this.data.timeline.tracks[e]??null}getTrackCount(){return this.data.timeline.tracks.length}getSoundtrack(){return this.data.timeline.soundtrack}getClip(e,s){const a=this.data.timeline.tracks[e];return a?a.clips[s]??null:null}getClipsInTrack(e){return this.data.timeline.tracks[e]?.clips??[]}getClipCount(){return this.data.timeline.tracks.reduce((e,s)=>e+s.clips.length,0)}getClipCountInTrack(e){return this.data.timeline.tracks[e]?.clips.length??0}getClipById(e){for(let s=0;s<this.data.timeline.tracks.length;s+=1){const a=this.data.timeline.tracks[s].clips;for(let i=0;i<a.length;i+=1)if(a[i].id===e)return{clip:a[i],trackIndex:s,clipIndex:i}}return null}updateClipById(e,s){const a=this.getClipById(e);a&&Object.assign(a.clip,s)}removeClipById(e){const s=this.getClipById(e);return s?this.removeClip(s.trackIndex,s.clipIndex):null}getClipId(e,s){return this.getClip(e,s)?.id??null}getOutput(){return this.data.output}getSize(){const{size:e}=this.data.output;if(!e?.width||!e?.height)throw new Error("Output size is not defined");return{width:e.width,height:e.height}}getFormat(){return this.data.output.format}getFps(){return this.data.output.fps}getResolution(){return this.data.output.resolution}getAspectRatio(){return this.data.output.aspectRatio}getMergeFields(){return this.data.merge}addTrack(e,s){const a=s??{clips:[]};return this.data.timeline.tracks.splice(e,0,a),a}removeTrack(e){if(e<0||e>=this.data.timeline.tracks.length)return null;if(this.data.timeline.tracks.length<=1)return console.warn("Cannot remove the last track"),null;const[s]=this.data.timeline.tracks.splice(e,1);return s??null}addClip(e,s,a){const i=this.data.timeline.tracks[e];if(!i)throw new Error(`Track ${e} does not exist`);const r=s;r.id||(r.id=crypto.randomUUID());const n=a??i.clips.length;return i.clips.splice(n,0,s),s}removeClip(e,s){const a=this.data.timeline.tracks[e];if(!a||s<0||s>=a.clips.length)return null;const[i]=a.clips.splice(s,1);return i??null}updateClip(e,s,a){const i=this.getClip(e,s);if(!i)throw new Error(`Clip at track ${e}, index ${s} does not exist`);Object.assign(i,a)}replaceClip(e,s,a){const i=this.data.timeline.tracks[e];if(!i||s<0||s>=i.clips.length)return null;const r=i.clips[s];return i.clips[s]=a,r}moveClip(e,s,a,i){const r=this.data.timeline.tracks[e];if(!r||s<0||s>=r.clips.length)return null;const n=this.data.timeline.tracks[a];if(!n)return null;const[o]=r.clips.splice(s,1);if(!o)return null;i&&Object.assign(o,i);const l=typeof o.start=="number"?o.start:0;let c=0;for(let f=0;f<n.clips.length;f+=1){const h=n.clips[f].start;if(l<(typeof h=="number"?h:0))break;c+=1}return n.clips.splice(c,0,o),o}setBackground(e){this.data.timeline.background=e}setSoundtrack(e){this.data.timeline.soundtrack=e}getFonts(){return this.data.timeline.fonts??[]}addFont(e){this.data.timeline.fonts||(this.data.timeline.fonts=[]),this.data.timeline.fonts.some(s=>s.src===e)||this.data.timeline.fonts.push({src:e})}removeFont(e){this.data.timeline.fonts&&(this.data.timeline.fonts=this.data.timeline.fonts.filter(s=>s.src!==e))}setFonts(e){this.data.timeline.fonts=e}setSize(e){this.data.output.size={width:e.width,height:e.height}}setFormat(e){this.data.output.format=e}setFps(e){this.data.output.fps=e}setResolution(e){this.data.output.resolution=e}clearResolution(){delete this.data.output.resolution}setAspectRatio(e){this.data.output.aspectRatio=e}clearAspectRatio(){delete this.data.output.aspectRatio}clearSize(){delete this.data.output.size}setMergeFields(e){this.data.merge=e}setClipBinding(e,s,a){let i=this.clipBindings.get(e);i||(i=new Map,this.clipBindings.set(e,i)),i.set(s,a)}getClipBinding(e,s){return this.clipBindings.get(e)?.get(s)}removeClipBinding(e,s){const a=this.clipBindings.get(e);a&&(a.delete(s),a.size===0&&this.clipBindings.delete(e))}getClipBindings(e){return this.clipBindings.get(e)}setClipBindingsForClip(e,s){s.size===0?this.clipBindings.delete(e):this.clipBindings.set(e,new Map(s))}clearClipBindings(e){this.clipBindings.delete(e)}getClipIdsWithBindings(){return Array.from(this.clipBindings.keys())}toJSON(){const e=structuredClone(this.data);for(const s of e.timeline.tracks)for(const a of s.clips){const i=a.id;if(i){const r=this.clipBindings.get(i);if(r)for(const[n,{placeholder:o}]of r)Er(a,n,o)}delete a.id}return e.merge?.length===0&&delete e.merge,e}static fromJSON(e){return new Na(e)}clone(){return new Na(this.data)}}const M0=new Set(["asset","start","length","id"]),Uk=new Set(["text-to-image","image-to-video","text-to-speech"]);class Zk{constructor(e){this.edit=e,this.edit.events.on(ot.Resolved,this.onResolved)}isReconciling=!1;enableCreation=!0;onResolved=({edit:e})=>{this.reconcile(e)};async reconcileInitial(e){const s=this.reconcile(e);return await Promise.all(s.pendingLoads),s}reconcile(e){if(this.isReconciling)return{created:[],updated:[],disposed:[],pendingLoads:[]};this.isReconciling=!0;try{const s=[],a={created:[],updated:[],disposed:[],pendingLoads:s},i=new Set;for(let n=0;n<e.timeline.tracks.length;n+=1){const o=e.timeline.tracks[n];for(let l=0;l<o.clips.length;l+=1){const c=o.clips[l],f=c.id;if(f){i.add(f);const h=this.edit.getPlayerByClipId(f);if(h){const d=this.updatePlayer(h,c,n);d==="recreate"?(this.disposePlayer(f),s.push(this.createPlayer(c,f,n,l)),a.disposed.push(f),a.created.push(f)):d&&a.updated.push(f)}else this.enableCreation&&(this.createPlayer(c,f,n,l),a.created.push(f))}}}const r=this.findOrphanedPlayers(i);for(const n of r)this.disposePlayer(n),a.disposed.push(n);return(a.created.length>0||a.disposed.length>0||a.updated.length>0)&&this.rebuildTracksOrdering(e),this.syncTrackContainers(e.timeline.tracks.length),a}finally{this.isReconciling=!1}}updateSinglePlayer(e,s,a,i=0){const r=this.updatePlayer(e,s,a);if(r==="recreate"){const{clipId:n}=e;return n&&(this.disposePlayer(n),this.createPlayer(s,n,a,i)),"recreate"}return r}createPlayer(e,s,a,i){const r=this.edit.createPlayerFromAssetType(e);r.layer=a+1,r.clipId=s,this.edit.registerPlayerByClipId(s,r),this.edit.addPlayerToTracksArray(a,r),this.edit.addPlayerToContainer(a,r);const n=e.asset?.type??"unknown";return r.load().then(()=>{this.edit.events.emit(ot.PlayerLoaded,{player:r,trackIndex:a,clipIndex:i}),Uk.has(n)&&this.edit.events.emit(ce.ClipUnresolved,{trackIndex:a,clipIndex:i,assetType:n,clipId:s})}).catch(l=>{const c=l instanceof Error?l.message:String(l);this.edit.events.emit(ce.ClipLoadFailed,{trackIndex:a,clipIndex:i,error:c,assetType:n})})}updatePlayer(e,s,a){const i=e.clipConfiguration.asset?.type,r=s.asset?.type;if(i!==r)return"recreate";let n=!1;const o=e.layer-1,l=e.clipConfiguration.start,c=e.clipConfiguration.length;return(l!==s.start||c!==s.length)&&(e.setResolvedTiming({start:s.start,length:s.length}),e.reconfigureAfterRestore(),n=!0),o!==a&&(e.layer=a+1,this.edit.movePlayerBetweenTracks(e,o,a),n=!0),this.assetChanged(e.clipConfiguration.asset,s.asset)&&(this.updateAsset(e,s.asset),n=!0),this.clipPropertiesChanged(e.clipConfiguration,s)&&(this.updateClipProperties(e,s),n=!0),n}clipPropertiesChanged(e,s){const a=e,i=s,r=new Set([...Object.keys(a),...Object.keys(i)]);for(const n of r)if(!M0.has(n)&&JSON.stringify(a[n])!==JSON.stringify(i[n]))return!0;return!1}updateClipProperties(e,s){const a=e.clipConfiguration,i=s,r=new Set([...Object.keys(a),...Object.keys(i)]);for(const n of r)M0.has(n)||(i[n]!==void 0?a[n]=i[n]:delete a[n]);e.reconfigureAfterRestore()}assetChanged(e,s){return JSON.stringify(e)!==JSON.stringify(s)}updateAsset(e,s){const a=e.clipConfiguration.asset?.src,i=s?.src;e.clipConfiguration.asset=s,a!==i&&e.reloadAsset?e.reloadAsset().then(()=>{e.reconfigureAfterRestore()}).catch(r=>{console.error("Failed to reload asset:",r)}):e.reconfigureAfterRestore()}syncTrackContainers(e){const s=this.edit.getTracks().length;if(e>s)for(let a=s;a<e;a+=1)this.edit.ensureTrackExists(a);else if(e<s)for(let a=s-1;a>=e;a-=1)this.edit.removeEmptyTrack(a)}findOrphanedPlayers(e){const s=[];for(const[a]of this.edit.getPlayerMap())e.has(a)||s.push(a);return s}disposePlayer(e){const s=this.edit.getPlayerByClipId(e);s&&(this.edit.unregisterPlayerByClipId(e),this.edit.queuePlayerForDisposal(s))}rebuildTracksOrdering(e){const s=this.edit.getTracks();for(let a=0;a<s.length;a+=1)s[a]=[];for(let a=0;a<e.timeline.tracks.length;a+=1){for(;s.length<=a;)s.push([]);for(const i of e.timeline.tracks[a].clips){const r=i.id;if(r){const n=this.edit.getPlayerByClipId(r);n&&s[a].push(n)}}}}dispose(){this.edit.events.off(ot.Resolved,this.onResolved)}}function R0(t,e){function s(a){if(typeof a=="string"&&e.isMergeFieldTemplate(a)){const i=e.resolveToNumber(a);return i!==null?i:e.resolve(a)}if(Array.isArray(a))return a.map(s);if(a!==null&&typeof a=="object"){const i={};for(const[r,n]of Object.entries(a))i[r]=s(n);return i}return a}return s(structuredClone(t))}function Gk(t){const e=new Map,s=new Map,a=[];for(let i=0;i<t.getTrackCount();i+=1){const r=t.getClipsInTrack(i);for(let n=0;n<r.length;n+=1){const o=r[n];if(!o.id)throw new Error(`Clip at track ${i}, index ${n} is missing an ID. EditDocument hydration may have been skipped.`);const l=o.alias??o.id,c={clip:o,trackIndex:i,clipIndex:n};if(a.push({...c,id:l}),o.alias){if(s.has(o.alias))throw new Error(`Duplicate alias "${o.alias}" found. Each alias must be unique.`);s.set(o.alias,c)}}}for(let i=0;i<t.getTrackCount();i+=1){const r=t.getClipsInTrack(i);for(let n=0;n<r.length;n+=1){const o=r[n],l=o.alias??o.id,c=new Set;if(Kt(o.start)){const f=Ci(o.start);if(!s.has(f))throw new Error(`Alias reference "alias://${f}" not found. No clip defines alias "${f}".`);c.add(f)}if(Kt(o.length)){const f=Ci(o.length);if(!s.has(f))throw new Error(`Alias reference "alias://${f}" not found. No clip defines alias "${f}".`);c.add(f)}if(o.start==="auto"&&n>0){const f=r[n-1],h=f.alias??f.id;c.add(h)}c.size>0&&e.set(l,c)}}return{dependencies:e,clipsByAlias:s,allClips:a}}function Wk(t){const e=new Set,s=new Set;function a(i,r){e.add(i),s.add(i);const n=t.get(i);if(n)for(const o of n){if(s.has(o))return[...r,o];if(!e.has(o)){const l=a(o,[...r,o]);if(l)return l}}return s.delete(i),null}for(const i of t.keys())if(!e.has(i)){const r=a(i,[i]);if(r)return r}return null}function Yk(t,e){const s=[],a=new Set;function i(r){if(a.has(r))return;a.add(r);const n=t.get(r);if(n)for(const o of n)i(o);s.push(r)}for(const r of t.keys())i(r);for(const r of e)i(r);return s}function z0(t,e,s){let a;if(t.start==="auto")a=e;else if(Kt(t.start)){const n=Ci(t.start),o=s.get(n);if(!o)throw new Error(`Internal error: Alias "${n}" not resolved.`);a=o.start}else a=t.start;let i,r=!1;if(t.length==="end")i=1,r=!0;else if(t.length==="auto")i=3;else if(Kt(t.length)){const n=Ci(t.length),o=s.get(n);if(!o)throw new Error(`Internal error: Alias "${n}" not resolved.`);i=o.length}else i=t.length;return{...t,id:t.id??crypto.randomUUID(),start:a,length:i,pendingEndLength:r||void 0}}function Hk(t){let e=0;for(const s of t)for(const a of s.clips)if(!a.pendingEndLength){const i=a.start+a.length;i>e&&(e=i)}return e}function Co(t){const{pendingEndLength:e,...s}=t;return s}function jk(t,e,s){const a=t.getClipById(e);if(!a)return null;const{clip:i,trackIndex:r,clipIndex:n}=a,l=R0(i,s.mergeFields),c=s.resolvedAliases??new Map,f=z0(l,s.previousClipEnd,c);return f.pendingEndLength&&s.cachedTimelineEnd!==void 0&&(f.length=Math.max(s.cachedTimelineEnd-f.start,.1)),{resolved:Co(f),trackIndex:r,clipIndex:n}}function L0(t,e){const{dependencies:s,allClips:a}=Gk(t);if(s.size>0){const m=Wk(s);if(m)throw new Error(`Circular alias reference detected: ${m.join(" -> ")}`)}const i=a.map(m=>m.id),r=Yk(s,i),n=new Map;for(const m of a)n.set(m.id,m);const o=new Map,l=new Map,c=new Map;for(const m of r){const b=n.get(m);if(b){const{clip:V,trackIndex:M,clipIndex:E}=b,I=R0(V,e.mergeFields),v=c.get(M)??0,F=z0(I,v,l);o.set(`${M}-${E}`,F);const y=F.start+F.length,Z=c.get(M)??0;y>Z&&c.set(M,y),V.alias&&l.set(V.alias,{start:F.start,length:F.length})}}const f=[];for(let m=0;m<t.getTrackCount();m+=1){const b=t.getClipsInTrack(m).length,V=[];for(let M=0;M<b;M+=1){const E=o.get(`${m}-${M}`);if(!E)throw new Error(`Internal error: Clip at track ${m}, index ${M} was not resolved.`);V.push(E)}f.push({clips:V})}const h=Hk(f),d=f.map(m=>({clips:m.clips.map(b=>{if(b.pendingEndLength){const V=Math.max(h-b.start,.1);return Co({...b,length:V})}return Co(b)})}));return{timeline:{background:t.getBackground(),tracks:d,fonts:t.getFonts()},output:t.getOutput()}}class Aa{static MAX_HISTORY_SIZE=100;static SEEK_ELAPSED_MARKER=101;document;size;backgroundColor;tracks;playbackTime;totalDuration;isPlaying;get clips(){return this.tracks.flat()}assetLoader;events;canvas=null;timingManager;lumaMaskController;playerReconciler;outputSettings;selectionManager;mergeFieldService;commandHistory=[];commandIndex=-1;commandQueue=new Bk;clipsToDispose=new Set;clipErrors=new Map;playerByClipId=new Map;lumaContentRelations=new Map;fontMetadata=new Map;isBatchingEvents=!1;syncCorrectionCount=0;isExporting=!1;lastResolved=null;constructor(e){this.tracks=[],this.playbackTime=0,this.totalDuration=0,this.isPlaying=!1,this.document=new Na(e);const s=this.document.getResolution(),a=this.document.getAspectRatio();this.backgroundColor=this.document.getBackground()??"#000000",this.size=s?vo(s,a):this.document.getSize(),this.assetLoader=new Or,this.events=new F0,this.lumaMaskController=new Vk(()=>this.canvas,()=>this.tracks,this.events),this.playerReconciler=new Zk(this),this.mergeFieldService=new Tk(this.events),this.outputSettings=new Ek(this),this.selectionManager=new Ok(this),this.timingManager=new zk(this),this.setupIntentListeners()}async load(){await this.initializeFromDocument()}async initializeFromDocument(e="load"){const s=this.document.toJSON(),a=s.merge??[];this.mergeFieldService.loadFromSerialized(a),this.lastResolved=null;const i=this.detectMergeFieldBindings(a),r=tc.parse(s);await Promise.all((r.timeline.fonts??[]).map(async o=>{const l=o.src,c={src:l,parser:Mr.Name},f=await this.assetLoader.load(l,c);if(f?.family){const{baseFontFamily:h,fontWeight:d}=Dt(f.family);this.fontMetadata.set(l,{baseFamilyName:h,weight:d})}return f}));const n=this.getResolvedEdit();this.lumaMaskController.initialize(),await this.playerReconciler.reconcileInitial(n),this.normalizeLumaAttachments();for(const[o,l]of i)l.size>0&&this.document.setClipBindingsForClip(o,l);await this.timingManager.resolveAllTiming(),this.updateTotalDuration(),r.timeline.soundtrack&&await this.loadSoundtrack(r.timeline.soundtrack),this.events.emit(ce.TimelineUpdated,{current:this.getEdit()}),this.emitEditChanged(e)}update(e,s){for(const a of this.clips)a.shouldDispose&&this.queueDisposeClip(a),a.update(e,s);this.disposeClips(),this.lumaMaskController.update(),this.isPlaying&&(this.playbackTime=Math.max(0,Math.min(this.playbackTime+ou(s),this.totalDuration)),this.playbackTime===this.totalDuration&&this.pause())}dispose(){this.clearClips(),this.lumaMaskController.dispose(),this.playerReconciler.dispose();for(const e of this.commandHistory)e.dispose?.();this.commandHistory=[],this.commandIndex=-1,this.lumaContentRelations.clear(),I0.cleanup()}updateCanvasForSize(){this.events.emit(ot.ViewportSizeChanged,{width:this.size.width,height:this.size.height,backgroundColor:this.backgroundColor}),this.events.emit(ot.ViewportNeedsZoomToFit)}play(){this.isPlaying=!0,this.events.emit(ce.PlaybackPlay)}pause(){this.isPlaying=!1,this.events.emit(ce.PlaybackPause)}seek(e){this.playbackTime=Math.max(0,Math.min(e,this.totalDuration)),this.pause(),this.update(0,Aa.SEEK_ELAPSED_MARKER)}stop(){this.seek(0)}async loadEdit(e){if(this.lastResolved=null,this.tracks.length>0&&!this.hasStructuralChanges(e)){this.preserveClipIdsForGranularUpdate(e);const a=this.document.getTracks(),i=this.document.getOutput();this.document=new Na(e),this.isBatchingEvents=!0,await this.applyGranularChanges(e,a,i),this.isBatchingEvents=!1,this.emitEditChanged("loadEdit:granular");return}this.document=new Na(e);const s=this.document.getSize();this.size=s,this.backgroundColor=this.document.getBackground()??"#000000",this.events.emit(ot.ViewportSizeChanged,{width:this.size.width,height:this.size.height,backgroundColor:this.backgroundColor}),this.events.emit(ot.ViewportNeedsZoomToFit),this.clearClips(),await this.initializeFromDocument("loadEdit")}async loadSoundtrack(e){const s={id:crypto.randomUUID(),asset:{type:"audio",src:e.src,effect:e.effect,volume:e.volume??1},fit:"crop",start:0,length:this.totalDuration},a=this.createPlayerFromAssetType(s);a.layer=this.tracks.length+1,await this.addPlayer(this.tracks.length,a)}getEdit(){const e=this.document.toJSON(),s=this.mergeFieldService.toSerializedArray();return s.length>0&&(e.merge=s),e}validateEdit(e){const s=tc.safeParse(e);return s.success?{valid:!0,errors:[]}:{valid:!1,errors:s.error.issues.map(a=>({path:a.path.join("."),message:a.message}))}}getResolvedEdit(){return this.lastResolved||(this.lastResolved=L0(this.document,{mergeFields:this.mergeFieldService})),this.lastResolved}getResolvedClip(e,s){return this.getResolvedEdit()?.timeline?.tracks?.[e]?.clips?.[s]??null}getClipId(e,s){return this.document?.getClipId(e,s)??null}getDocumentClip(e,s){return this.document?.getClip(e,s)??null}getDocument(){return this.document}resolve(){return this.lastResolved=L0(this.document,{mergeFields:this.mergeFieldService}),this.events.emit(ot.Resolved,{edit:this.lastResolved}),this.lastResolved}resolveClip(e){const s=this.getPlayerByClipId(e);if(!s)return!1;const a=this.document.getClipById(e);if(a?.clip.alias)return this.resolve(),!0;const i=a?.clip;if(i&&(Kt(i.start)||Kt(i.length)))return this.resolve(),!0;const r=s.layer-1,n=this.tracks[r],o=n?n.indexOf(s):-1;if(o<0)return!1;const l=o>0?n[o-1]:null,c=l?l.getEnd():0,f={mergeFields:this.mergeFieldService,previousClipEnd:c,cachedTimelineEnd:this.timingManager.getTimelineEnd()},h=jk(this.document,e,f);if(!h)return!1;if(this.lastResolved){const m=this.lastResolved.timeline.tracks[h.trackIndex];m&&m.clips[h.clipIndex]&&(m.clips[h.clipIndex]=h.resolved)}return this.playerReconciler.updateSinglePlayer(s,h.resolved,h.trackIndex,h.clipIndex)!==!1}addClip(e,s){const a=new gk(e,s);return this.executeCommand(a)}getClip(e,s){const a=this.tracks[e];return!a||s<0||s>=a.length?null:a[s].clipConfiguration}getClipError(e,s){return this.clipErrors.get(`${e}-${s}`)??null}clearClipErrorAndShift(e,s){this.clipErrors.delete(`${e}-${s}`);const a=[];for(const[i,r]of this.clipErrors){const[n,o]=i.split("-").map(Number);n===e&&o>s&&a.push({oldKey:i,newKey:`${n}-${o-1}`,value:r})}for(const{oldKey:i,newKey:r,value:n}of a)this.clipErrors.delete(i),this.clipErrors.set(r,n)}getPlayerClip(e,s){const a=this.tracks[e];return!a||s<0||s>=a.length?null:a[s]}getPlayerByClipId(e){return this.playerByClipId.get(e)??null}getDocumentClipById(e){return this.document?.getClipById(e)?.clip??null}registerPlayerByClipId(e,s){this.playerByClipId.set(e,s)}unregisterPlayerByClipId(e){this.playerByClipId.delete(e)}getPlayerMap(){return this.playerByClipId}addPlayerToTracksArray(e,s){for(;this.tracks.length<=e;)this.tracks.push([]);this.tracks[e].push(s)}movePlayerBetweenTracks(e,s,a){const i=this.tracks[s];if(i){const r=i.indexOf(e);r!==-1&&i.splice(r,1)}for(;this.tracks.length<=a;)this.tracks.push([]);this.tracks[a].push(e),this.movePlayerToTrackContainer(e,s,a)}queuePlayerForDisposal(e){this.queueDisposeClip(e),this.disposeClips()}ensureTrackExists(e){for(;this.tracks.length<=e;)this.tracks.push([])}removeEmptyTrack(e){if(e<0||e>=this.tracks.length)return;const s=this.tracks[e];if(s&&s.length>0){console.warn(`Cannot remove non-empty track ${e}`);return}this.tracks.splice(e,1),this.events.emit(ot.TrackContainerRemoved,{trackIndex:e});for(let a=e;a<this.tracks.length;a+=1)for(const i of this.tracks[a])i.layer=a+1}getOriginalAsset(e,s){const a=this.getPlayerClip(e,s);if(!a)return;const i=a.getExportableClip();if(!i)return;const{clipId:r}=a;if(r&&this.document){const n=this.document.getClipBindings(r);if(n){for(const[o,{placeholder:l}]of n)if(o.startsWith("asset.")){const c=o.slice(6);Er(i.asset,c,l)}}}return i.asset}async deleteClip(e,s){const a=this.tracks[e];if(!a)return;const i=a[s];if(!i)return;if(i.playerType!==Qe.Luma){const o=a.findIndex(l=>l.playerType===Qe.Luma);if(o!==-1){const l=o<s?s-1:s,c=new yo(e,o);await this.executeCommand(c);const f=new yo(e,l);await this.executeCommand(f);return}}const n=new yo(e,s);await this.executeCommand(n)}splitClip(e,s,a){const i=new kk(e,s,a);return this.executeCommand(i)}async addTrack(e,s){if(!s?.clips?.length)throw new Error("Cannot add empty track - at least one clip required");const a=new pk(e);await this.executeCommand(a);for(const i of s.clips)await this.addClip(e,i)}getTrack(e){const s=this.clips.filter(a=>a.layer===e+1);return s.length===0?null:{clips:s.map(a=>a.clipConfiguration)}}deleteTrack(e){const s=new _0(e);this.executeCommand(s)}recordSyncCorrection(){this.syncCorrectionCount+=1}undo(){return this.commandQueue.enqueue(async()=>{if(this.commandIndex>=0){const e=this.commandHistory[this.commandIndex];if(e.undo){const s=this.createCommandContext();await Promise.resolve(e.undo(s)),this.commandIndex-=1,this.events.emit(ce.EditUndo,{command:e.name}),this.emitEditChanged(`undo:${e.name}`)}}})}redo(){return this.commandQueue.enqueue(async()=>{if(this.commandIndex<this.commandHistory.length-1){const e=this.commandIndex+1,s=this.commandHistory[e],a=this.createCommandContext();await Promise.resolve(s.execute(a)),this.commandIndex=e,this.events.emit(ce.EditRedo,{command:s.name}),this.emitEditChanged(`redo:${s.name}`)}})}setUpdatedClip(e,s=null,a=null){const i=e.layer-1,r=this.tracks[i],n=r?r.indexOf(e):-1,o=new bo(s,a,{trackIndex:i,clipIndex:n});this.executeCommand(o)}updateClipInDocument(e,s){const a=this.document.getClipById(e);a&&this.document.updateClip(a.trackIndex,a.clipIndex,s)}commitClipUpdate(e,s,a){const i=this.document.getClipById(e);if(!i){console.warn(`commitClipUpdate: clip ${e} not found in document`);return}const r=new bo(s,structuredClone(a),{trackIndex:i.trackIndex,clipIndex:i.clipIndex});this.addCommandToHistory(r)}pushCommandToHistory(e){const s=this.commandHistory.slice(this.commandIndex+1);for(const a of s)a.dispose?.();for(this.commandHistory=this.commandHistory.slice(0,this.commandIndex+1),this.commandHistory.push(e),this.commandIndex+=1;this.commandHistory.length>Aa.MAX_HISTORY_SIZE;)this.commandHistory.shift()?.dispose?.(),this.commandIndex-=1}addCommandToHistory(e){this.pushCommandToHistory(e),this.emitEditChanged(`commit:${e.name}`)}updateClip(e,s,a){const i=this.getPlayerClip(e,s);if(!i)return console.warn(`Clip not found at track ${e}, index ${s}`),Promise.resolve();const r=this.document?.getClip(e,s),n=structuredClone(r??i.clipConfiguration),o=structuredClone(r??i.clipConfiguration),l=Pr(o,a),c=new bo(n,l,{trackIndex:e,clipIndex:s});return this.executeCommand(c)}updateClipTiming(e,s,a){if(!this.getPlayerClip(e,s)){console.warn(`Clip not found at track ${e}, index ${s}`);return}const r=new Nk(e,s,a);this.executeCommand(r)}updateTextContent(e,s,a){const i=e.layer-1,r=this.tracks[i]?.indexOf(e)??-1;if(r<0){console.warn("UpdateTextContent: clip not found in track");return}const n=new Ak(i,r,s);this.executeCommand(n)}executeEditCommand(e){return this.executeCommand(e)}executeCommand(e){return this.commandQueue.enqueue(async()=>{const s=this.createCommandContext(),a=await Promise.resolve(e.execute(s));this.handleCommandResult(e,a)})}handleCommandResult(e,s){s.status==="success"&&(this.pushCommandToHistory(e),this.emitEditChanged(e.name))}emitEditChanged(e){this.isBatchingEvents||this.events.emit(ce.EditChanged,{source:e,timestamp:Date.now()})}detectMergeFieldBindings(e){const s=new Map;if(!e.length)return s;const a=new Map;for(const{find:i,replace:r}of e){const n=typeof r=="string"?r:JSON.stringify(r);a.set(i.toUpperCase(),n)}for(let i=0;i<this.document.getTrackCount();i+=1){const r=this.document.getClipsInTrack(i);for(let n=0;n<r.length;n+=1){const o=this.document.getClipId(i,n);if(o){const l=this.detectBindingsInObject(r[n],"",a);l.size>0&&s.set(o,l)}}}return s}detectBindingsInObject(e,s,a){const i=new Map;if(typeof e=="string"){if(/\{\{\s*([A-Z_0-9]+)\s*\}\}/gi.test(e)){const o=e.replace(/\{\{\s*([A-Z_0-9]+)\s*\}\}/gi,(l,c)=>a.get(c.toUpperCase())??l);i.set(s,{placeholder:e,resolvedValue:o})}return i}if(Array.isArray(e)){for(let r=0;r<e.length;r+=1){const n=s?`${s}[${r}]`:`[${r}]`,o=this.detectBindingsInObject(e[r],n,a);for(const[l,c]of o)i.set(l,c)}return i}if(e!==null&&typeof e=="object")for(const[r,n]of Object.entries(e)){const o=s?`${s}.${r}`:r,l=this.detectBindingsInObject(n,o,a);for(const[c,f]of l)i.set(c,f)}return i}hasStructuralChanges(e){if(!this.document)return!0;const s=this.document.getTracks(),a=e.timeline.tracks;if(s.length!==a.length)return!0;for(let i=0;i<s.length;i+=1){if(s[i].clips.length!==a[i].clips.length)return!0;for(let r=0;r<s[i].clips.length;r+=1){const n=s[i].clips[r]?.asset?.type,o=a[i].clips[r]?.asset?.type;if(n!==o)return!0}}return JSON.stringify(this.document.getMergeFields()??[])!==JSON.stringify(e.merge??[])||JSON.stringify(this.document.getFonts())!==JSON.stringify(e.timeline.fonts??[])||JSON.stringify(this.document.getSoundtrack())!==JSON.stringify(e.timeline.soundtrack)}preserveClipIdsForGranularUpdate(e){if(!this.document)return;const s=this.document.getTracks();for(let a=0;a<e.timeline.tracks.length;a+=1){const i=s[a],r=e.timeline.tracks[a];if(i&&r)for(let n=0;n<r.clips.length;n+=1){const o=this.document.getClipId(a,n);o&&(r.clips[n].id=o)}}}async applyGranularChanges(e,s,a){const i=e.output;if(i?.size&&(a?.size?.width!==i.size.width||a?.size?.height!==i.size.height)){const o=i.size.width??this.size.width,l=i.size.height??this.size.height;await this.setOutputSize(o,l)}i?.fps!==void 0&&a?.fps!==i.fps&&await this.setOutputFps(i.fps),i?.format!==void 0&&a?.format!==i.format&&await this.setOutputFormat(i.format),i?.destinations&&JSON.stringify(a?.destinations)!==JSON.stringify(i.destinations)&&await this.setOutputDestinations(i.destinations),i?.resolution!==void 0&&a?.resolution!==i.resolution&&await this.setOutputResolution(i.resolution),i?.aspectRatio!==void 0&&a?.aspectRatio!==i.aspectRatio&&await this.setOutputAspectRatio(i.aspectRatio);const r=e.timeline?.background;r&&this.backgroundColor!==r&&await this.setTimelineBackground(r);const n=e.timeline.tracks;for(let o=0;o<n.length;o+=1){const l=s[o].clips,c=n[o].clips;for(let f=0;f<c.length;f+=1){const h=l[f],d=c[f];JSON.stringify(h)!==JSON.stringify(d)&&await this.updateClip(o,f,d)}}}createCommandContext(){return{getClips:()=>this.clips,getTracks:()=>this.tracks,getTrack:e=>e>=0&&e<this.tracks.length?this.tracks[e]:null,getContainer:()=>this.getViewportContainer(),addPlayer:(e,s)=>this.addPlayer(e,s),addPlayerToContainer:(e,s)=>{this.addPlayerToContainer(e,s)},createPlayerFromAssetType:e=>this.createPlayerFromAssetType(e),queueDisposeClip:e=>this.queueDisposeClip(e),disposeClips:()=>this.disposeClips(),clearClipError:(e,s)=>this.clearClipErrorAndShift(e,s),undeleteClip:(e,s)=>{let a=0;if(e>=0&&e<this.tracks.length){const i=this.tracks[e];a=i.length;for(let r=0;r<i.length;r+=1)if(i[r].getStart()>s.getStart()){a=r;break}i.splice(a,0,s)}if(this.document){const i=s.getExportableClip();this.document.addClip(e,i,a);const r=this.document.getClipId(e,a);r&&(s.clipId=r,this.playerByClipId.set(r,s))}this.addPlayerToContainer(e,s),s.load().catch(i=>{const r=s.clipConfiguration?.asset?.type??"unknown",n=i instanceof Error?i.message:String(i);this.clipErrors.set(`${e}-${a}`,{error:n,assetType:r}),this.events.emit(ce.ClipLoadFailed,{trackIndex:e,clipIndex:a,error:n,assetType:r})}),this.updateTotalDuration()},setUpdatedClip:()=>{},restoreClipConfiguration:(e,s)=>{const a=structuredClone(s),i=e.clipConfiguration;for(const r of Object.keys(i))delete i[r];if(Object.assign(i,a),e.reconfigureAfterRestore(),this.document){const r=this.findClipIndices(e);if(r){const n=e.getExportableClip();this.document.replaceClip(r.trackIndex,r.clipIndex,n)}}},updateDuration:()=>this.updateTotalDuration(),emitEvent:(e,...s)=>this.events.emit(e,...s),findClipIndices:e=>this.selectionManager.findClipIndices(e),getClipAt:(e,s)=>this.getClipAt(e,s),getSelectedClip:()=>this.selectionManager.getSelectedClip(),setSelectedClip:e=>{this.selectionManager.setSelectedClip(e)},movePlayerToTrackContainer:(e,s,a)=>this.movePlayerToTrackContainer(e,s,a),getEditState:()=>this.getResolvedEdit(),propagateTimingChanges:(e,s)=>this.propagateTimingChanges(e,s),resolveClipAutoLength:e=>this.resolveClipAutoLength(e),getMergeFields:()=>this.mergeFieldService,getOutputSize:()=>this.outputSettings.getSize(),setOutputSize:(e,s)=>this.outputSettings.setSize(e,s),getOutputFps:()=>this.outputSettings.getFps(),setOutputFps:e=>this.outputSettings.setFps(e),getOutputFormat:()=>this.outputSettings.getFormat(),setOutputFormat:e=>this.outputSettings.setFormat(e),getOutputResolution:()=>this.outputSettings.getResolution(),setOutputResolution:e=>this.outputSettings.setResolution(e),getOutputAspectRatio:()=>this.outputSettings.getAspectRatio(),setOutputAspectRatio:e=>this.outputSettings.setAspectRatio(e),getOutputDestinations:()=>this.outputSettings.getDestinations(),setOutputDestinations:e=>this.outputSettings.setDestinations(e),getTimelineBackground:()=>this.getTimelineBackground(),setTimelineBackground:e=>this.setTimelineBackgroundInternal(e),getDocument:()=>this.document,getDocumentTrack:e=>this.document?.getTrack(e)??null,getDocumentClip:(e,s)=>this.document?.getClip(e,s)??null,documentUpdateClip:(e,s,a)=>{if(!this.document)throw new Error("Document not initialized - cannot update clip");this.document.updateClip(e,s,a)},documentAddClip:(e,s,a)=>{if(!this.document)throw new Error("Document not initialized - cannot add clip");for(;this.document.getTrackCount()<=e;)this.document.addTrack(this.document.getTrackCount());return this.document.addClip(e,s,a)},documentRemoveClip:(e,s)=>{if(!this.document)throw new Error("Document not initialized - cannot remove clip");return this.document.removeClip(e,s)},derivePlayerFromDocument:(e,s)=>{const a=this.document?.getClip(e,s);if(!a)throw new Error(`derivePlayerFromDocument: No document clip at ${e}/${s} - state desync`);const i=this.getClipAt(e,s);if(!i)throw new Error(`derivePlayerFromDocument: No player at ${e}/${s} - state desync`);const{asset:r,...n}=a;Object.assign(i.clipConfiguration,n),i.reconfigureAfterRestore()},buildResolutionContext:(e,s)=>{let a=0;if(s>0){const o=this.tracks[e];o&&o[s-1]&&(a=o[s-1].getEnd())}const i=xo(this.tracks);let r=null;const n=this.getClipAt(e,s);return n&&n.getTimingIntent().length==="auto"&&(r=n.getLength()),{previousClipEnd:a,timelineEnd:i,intrinsicDuration:r}},resolve:()=>this.resolve(),resolveClip:e=>this.resolveClip(e),getPlayerByClipId:e=>this.playerByClipId.get(e)??null,registerPlayerByClipId:(e,s)=>{this.playerByClipId.set(e,s)},unregisterPlayerByClipId:e=>{this.playerByClipId.delete(e)},setClipBinding:(e,s,a)=>{this.document?.setClipBinding(e,s,a)},getClipBinding:(e,s)=>this.document?.getClipBinding(e,s),removeClipBinding:(e,s)=>{this.document?.removeClipBinding(e,s)},getClipBindings:e=>this.document?.getClipBindings(e),getEditSession:()=>this}}queueDisposeClip(e){this.clipsToDispose.add(e)}disposeClips(){if(this.clipsToDispose.size!==0){for(const e of this.clipsToDispose)e.playerType===Qe.Luma&&(this.lumaMaskController.cleanupForPlayer(e),e.clipId&&this.lumaContentRelations.delete(e.clipId));for(const e of this.clipsToDispose)e.clipId&&this.playerByClipId.delete(e.clipId);for(const e of this.clipsToDispose)this.disposeClip(e);for(const e of this.clipsToDispose){const s=e.layer-1;if(s>=0&&s<this.tracks.length){const a=this.tracks[s].indexOf(e);a!==-1&&this.tracks[s].splice(a,1)}}this.clipsToDispose.clear(),this.updateTotalDuration(),this.cleanupUnusedFonts()}}cleanupUnusedFonts(){if(!this.document)return;const e=this.document.getFonts();if(e.length===0)return;const s=new Set;for(const a of this.clips){const{asset:i}=a.clipConfiguration;i&&i.type==="rich-text"&&i.font?.family&&s.add(i.font.family)}for(const a of e)if(a.src.includes("fonts.gstatic.com")){const r=this.extractFilenameFromUrl(a.src);r&&!s.has(r)&&this.document.removeFont(a.src)}}extractFilenameFromUrl(e){try{const{pathname:s}=new URL(e),a=s.split("/").pop();return a?a.replace(/\.[^.]+$/,""):null}catch{return null}}disposeClip(e){try{const s=this.canvas?.getViewportContainer();if(s){for(const a of s.children)if(a instanceof X.Container&&a.label?.toString().startsWith("shotstack-track-")&&a.children.includes(e.getContainer())){a.removeChild(e.getContainer());break}}}catch(s){console.warn(`Attempting to unmount an unmounted clip: ${s}`)}this.unloadClipAssets(e),this.timingManager.invalidateTimelineEndCache(),e.dispose()}unloadClipAssets(e){const{asset:s}=e.clipConfiguration;s&&"src"in s&&typeof s.src=="string"&&this.assetLoader.decrementRef(s.src)&&X.Assets.cache.has(s.src)&&X.Assets.unload(s.src)}clearClips(){for(const e of this.clips)this.disposeClip(e);this.tracks=[],this.clipsToDispose.clear(),this.clipErrors.clear(),this.lumaContentRelations.clear(),this.updateTotalDuration()}updateTotalDuration(){let e=0;for(const a of this.tracks)for(const i of a)e=Math.max(e,i.getEnd());const s=this.totalDuration;this.totalDuration=e,s!==this.totalDuration&&this.events.emit(ce.DurationChanged,{duration:this.totalDuration})}propagateTimingChanges(e,s){this.timingManager.propagateTimingChanges(e,s)}async resolveClipAutoLength(e){const s=e.getTimingIntent();if(s.length!=="auto")return;const a=this.findClipIndices(e);let i=e.getStart();s.start==="auto"&&a&&(i=E0(a.trackIndex,a.clipIndex,this.tracks));const r=await P0(e.clipConfiguration.asset);e.setResolvedTiming({start:i,length:r}),e.reconfigureAfterRestore(),a&&this.propagateTimingChanges(a.trackIndex,a.clipIndex)}addPlayerToContainer(e,s){this.events.emit(ot.PlayerAddedToTrack,{player:s,trackIndex:e})}movePlayerToTrackContainer(e,s,a){this.events.emit(ot.PlayerMovedBetweenTracks,{player:e,fromTrackIndex:s,toTrackIndex:a})}createPlayerFromAssetType(e){return I0.create(this,e)}async addPlayer(e,s){for(;this.tracks.length<=e;)this.tracks.push([]);this.tracks[e].push(s),this.events.emit(ot.PlayerAddedToTrack,{player:s,trackIndex:e}),await s.load(),this.updateTotalDuration()}selectClip(e,s){this.selectionManager.selectClip(e,s)}clearSelection(){this.selectionManager.clearSelection()}isClipSelected(e,s){return this.selectionManager.isClipSelected(e,s)}getSelectedClipInfo(){return this.selectionManager.getSelectedClipInfo()}copyClip(e,s){this.selectionManager.copyClip(e,s)}pasteClip(){this.selectionManager.pasteClip()}hasCopiedClip(){return this.selectionManager.hasCopiedClip()}findClipIndices(e){return this.selectionManager.findClipIndices(e)}getClipAt(e,s){return e>=0&&e<this.tracks.length&&s>=0&&s<this.tracks[e].length?this.tracks[e][s]:null}selectPlayer(e){this.selectionManager.selectPlayer(e)}isPlayerSelected(e){return this.selectionManager.isPlayerSelected(e)}getActivePlayersExcept(e){const s=[];for(const a of this.tracks)for(const i of a)i!==e&&i.isActive()&&s.push(i);return s}showAlignmentGuide(e,s,a,i){this.canvas?.showAlignmentGuide(e,s,a,i)}clearAlignmentGuides(){this.canvas?.clearAlignmentGuides()}moveSelectedClip(e,s){const a=this.getSelectedClipInfo();if(!a)return;const{player:i,trackIndex:r,clipIndex:n}=a,o=this.getResolvedClip(r,n);if(!o)return;const l=structuredClone(o),c=i.calculateMoveOffset(e,s),f=structuredClone(l);f.offset=c,this.setUpdatedClip(i,l,f)}setExportMode(e){this.isExporting=e}isInExportMode(){return this.isExporting}setCanvas(e){this.canvas=e}getCanvas(){return this.canvas}getCanvasZoom(){return this.canvas?.getZoom()??1}getViewportContainer(){if(!this.canvas)throw new Error("Canvas not attached. Viewport container requires Canvas.");return this.canvas.getViewportContainer()}setOutputSize(e,s){const a=new xk(e,s);return this.executeCommand(a)}setOutputFps(e){const s=new wk(e);return this.executeCommand(s)}getOutputFps(){return this.outputSettings.getFps()}setOutputFormat(e){const s=new bk(e);return this.executeCommand(s)}getOutputFormat(){return this.outputSettings.getFormat()}setOutputDestinations(e){const s=new yk(e);return this.executeCommand(s)}getOutputDestinations(){return this.outputSettings.getDestinations()}setOutputResolution(e){const s=new vk(e);return this.executeCommand(s)}getOutputResolution(){return this.outputSettings.getResolution()}setOutputAspectRatio(e){const s=new mk(e);return this.executeCommand(s)}getOutputAspectRatio(){return this.outputSettings.getAspectRatio()}getTimelineFonts(){return this.document.getFonts()}getFontUrlByFamilyAndWeight(e,s){const{baseFontFamily:a}=Dt(e),i=a.toLowerCase();for(const[r,n]of this.fontMetadata)if(n.baseFamilyName.toLowerCase()===i&&n.weight===s)return r;for(const[r,n]of this.fontMetadata)if(n.baseFamilyName.toLowerCase()===i)return r;return null}pruneUnusedFonts(){this.cleanupUnusedFonts()}setTimelineBackground(e){const s=new Ck(e);return this.executeCommand(s)}setTimelineBackgroundInternal(e){const s=rw.safeParse(e);if(!s.success)throw new Error(`Invalid color: ${s.error.issues[0]?.message}`);this.backgroundColor=s.data,this.document.setBackground(s.data),this.events.emit(ot.ViewportSizeChanged,{width:this.size.width,height:this.size.height,backgroundColor:this.backgroundColor}),this.events.emit(ce.TimelineBackgroundChanged,{color:s.data})}getTimelineBackground(){return this.backgroundColor}resolveMergeFields(e){return this.mergeFieldService.resolve(e)}getTemplateClip(e,s){const a=this.getPlayerClip(e,s);if(!a)return null;const i=a.getExportableClip();if(!i)return null;const{clipId:r}=a;if(r&&this.document){const n=this.document.getClipBindings(r);if(n)for(const[o,{placeholder:l}]of n)Er(i,o,l)}return i}getTemplateClipText(e,s){const a=this.getTemplateClip(e,s);return a?a.asset?.text??null:null}getLumaClipIdForContent(e){for(const[s,a]of this.lumaContentRelations)if(a===e)return s;return null}getContentClipIdForLuma(e){return this.lumaContentRelations.get(e)??null}setLumaContentRelationship(e,s){this.lumaContentRelations.set(e,s)}clearLumaContentRelationship(e){this.lumaContentRelations.delete(e)}getLumaContentRelationship(e){return this.lumaContentRelations.get(e)}normalizeLumaAttachments(){let e=!1;for(let s=0;s<this.tracks.length;s+=1){const a=this.tracks[s];for(const i of a)if(i.playerType===Qe.Luma){const r=this.findBestContentMatch(s,i);if(r){i.clipId&&r.clipId&&this.lumaContentRelations.set(i.clipId,r.clipId);const n=a.indexOf(i);this.document.updateClip(s,n,{start:r.getStart(),length:r.getLength()}),e=!0}}}e&&this.resolve()}findBestContentMatch(e,s){const a=this.tracks[e],i=s.getStart(),r=i+s.getLength();let n=null,o=0;for(const l of a)if(l.playerType!==Qe.Luma){const c=l.getStart(),f=c+l.getLength(),h=Dk(i,r,c,f);h>o&&(o=h,n=l)}return n}setupIntentListeners(){this.events.on(ot.CanvasClipClicked,e=>{this.selectPlayer(e.player)}),this.events.on(ot.CanvasBackgroundClicked,()=>{this.clearSelection()})}getTracks(){return this.tracks}getTrackCount(){return this.document.getTrackCount()}getClipCountInTrack(e){return this.document.getClipCountInTrack(e)}}class D0{constructor(e,s,a,i,r,n,o,l){this.clipId=e,this.propertyPath=s,this.fieldName=a,this.previousFieldName=i,this.trackIndex=o,this.clipIndex=l,this.storedPreviousValue=r,this.storedNewValue=n}name="setMergeField";storedPreviousValue;storedNewValue;storedPreviousBinding;buildPartialAssetUpdate(e,s){if(!e.startsWith("asset."))return{};const i=e.slice(6).split(".");if(i.length===1)return{[i[0]]:s};let r={[i[i.length-1]]:s};for(let n=i.length-2;n>=0;n-=1)r={[i[n]]:r};return r}getMergedAsset(e,s){const r=e.getDocument()?.getClip(this.trackIndex,this.clipIndex)?.asset??{};return Pr(r,s)}async execute(e){if(!e)throw new Error("SetMergeFieldCommand.execute: context is required");const s=e.getMergeFields();if(this.storedPreviousBinding=e.getClipBinding(this.clipId,this.propertyPath),this.fieldName){const r={placeholder:s.createTemplate(this.fieldName),resolvedValue:this.storedNewValue};e.setClipBinding(this.clipId,this.propertyPath,r)}else e.removeClipBinding(this.clipId,this.propertyPath);this.fieldName?s.register({name:this.fieldName,defaultValue:this.storedNewValue},{silent:!0}):this.previousFieldName&&s.remove(this.previousFieldName,{silent:!0});const a=this.buildPartialAssetUpdate(this.propertyPath,this.storedNewValue),i=this.getMergedAsset(e,a);return e.documentUpdateClip(this.trackIndex,this.clipIndex,{asset:i}),e.resolve(),e.emitEvent(ce.MergeFieldApplied,{propertyPath:this.propertyPath,fieldName:this.fieldName??"",trackIndex:this.trackIndex,clipIndex:this.clipIndex}),Fe()}async undo(e){if(!e)throw new Error("SetMergeFieldCommand.undo: context is required");const s=e.getMergeFields();this.storedPreviousBinding?e.setClipBinding(this.clipId,this.propertyPath,this.storedPreviousBinding):e.removeClipBinding(this.clipId,this.propertyPath),this.previousFieldName&&s.register({name:this.previousFieldName,defaultValue:this.storedPreviousValue},{silent:!0});const a=this.buildPartialAssetUpdate(this.propertyPath,this.storedPreviousValue),i=this.getMergedAsset(e,a);return e.documentUpdateClip(this.trackIndex,this.clipIndex,{asset:i}),e.resolve(),e.emitEvent(ce.MergeFieldRemoved,{propertyPath:this.propertyPath,fieldName:this.previousFieldName,trackIndex:this.trackIndex,clipIndex:this.clipIndex}),Fe()}dispose(){this.storedPreviousBinding=void 0}}function Kk(t){if(typeof t!="object"||t===null)return!1;const e=t;return e.type==="text"&&(!e.text||e.text.trim()==="")}function B0(t){return t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function Xk(t){const e=t.width??100,s=t.height??100,a=B0(t.background?.color??"#000000"),i=t.background?.opacity??1,r=t.background?.borderRadius??0,n=[`width="${e}"`,`height="${s}"`,`fill="${a}"`];if(i!==1&&n.push(`fill-opacity="${i}"`),r>0&&n.push(`rx="${r}"`,`ry="${r}"`),t.stroke?.width&&t.stroke.width>0){const o=B0(t.stroke.color??"#000000");n.push(`stroke="${o}"`),n.push(`stroke-width="${t.stroke.width}"`)}return`<svg viewBox="0 0 ${e} ${s}" xmlns="http://www.w3.org/2000/svg"><rect ${n.join(" ")}/></svg>`}function qk(t){const e=t.asset,s=Xk(e),a={...t,asset:{type:"svg",src:s,opacity:1}};return e.width!==void 0&&a.width===void 0&&(a.width=e.width),e.height!==void 0&&a.height===void 0&&(a.height=e.height),a}class Jk extends Aa{isUpdatingMergeFields=!1;get mergeFields(){return this.mergeFieldService}applyMergeField(e,s,a,i,r,n){const o=this.getClipId(e,s);if(!o)return Promise.resolve();const l=this.getResolvedClip(e,s),c=l?fi(l,a):null,f=n??(typeof c=="string"?c:""),h=this.getTemplateClip(e,s),d=h?fi(h,a):null,m=typeof d=="string"?this.mergeFieldService.extractFieldName(d):null,b=new D0(o,a,i,m,f,r,e,s);return this.executeCommand(b)}removeMergeField(e,s,a,i){const r=this.getClipId(e,s);if(!r)return Promise.resolve();const n=this.getTemplateClip(e,s),o=n?fi(n,a):null,l=typeof o=="string"?this.mergeFieldService.extractFieldName(o):null;if(!l)return Promise.resolve();const c=new D0(r,a,null,l,i,i,e,s);return this.executeCommand(c)}getMergeFieldForProperty(e,s,a){const i=this.getTemplateClip(e,s);if(!i)return null;const r=fi(i,a);return typeof r=="string"?this.mergeFieldService.extractFieldName(r):null}updateMergeFieldValueLive(e,s){if(!this.isUpdatingMergeFields){this.isUpdatingMergeFields=!0;try{const a=this.mergeFieldService.get(e);if(!a)return;this.mergeFieldService.register({...a,defaultValue:s},{silent:!0});const i=this.getTracks();for(let r=0;r<i.length;r+=1)for(let n=0;n<i[r].length;n+=1){const o=i[r][n];this.updateMergeFieldBindings(o,e,s)}this.resolve()}finally{this.isUpdatingMergeFields=!1}}}isSrcMergeField(e){const s=this.getTracks();for(const a of s)for(const i of a){const r=this.findClipIndices(i);if(r){const n=this.getTemplateClip(r.trackIndex,r.clipIndex);if(n){const o=n.asset?.type;if(o==="image"||o==="video"||o==="audio"){const c=this.getMergeFieldUsage(n,e);if(c.used&&c.isSrcField)return!0}}}}return!1}async deleteMergeFieldGlobally(e){const s=this.mergeFieldService.get(e);if(!s)return;const a=this.mergeFieldService.createTemplate(e),i=s.defaultValue,r=this.getTracks();for(let n=0;n<r.length;n+=1)for(let o=0;o<r[n].length;o+=1){const l=this.getTemplateClip(n,o);l&&await this.restoreMergeFieldInClip(n,o,l,a,i)}this.mergeFieldService.remove(e)}async convertAllTextAssets(){const e=this.getDocument();if(!e)return console.error("No document available for conversion"),{richText:0,svg:0};const s=JSON.parse(JSON.stringify(e.toJSON()));let a=0,i=0;const r=s.timeline?.tracks;if(r){for(const n of r)if(n.clips)for(let o=0;o<n.clips.length;o+=1){const l=n.clips[o],c=l.asset;c?.type==="text"&&(Kk(c)?(n.clips[o]=qk(l),i+=1):(n.clips[o]=this.convertTextClipToRichText(l),a+=1))}}return console.log("CONVERTED TEMPLATE - Copy the JSON below:"),console.log(JSON.stringify(s,null," ")),{richText:a,svg:i}}mapVerticalAlign(e){return e==="center"?"middle":e==="top"||e==="bottom"?e:"middle"}convertTextClipToRichText(e){const s=e.asset,a=s.font?.family??"Open Sans",{fontWeight:i}=Dt(a),r={family:a,size:typeof s.font?.size=="string"?Number(s.font.size):s.font?.size??32,weight:s.font?.weight??i,color:s.font?.color??"#ffffff",opacity:s.font?.opacity??1};s.stroke?.width&&s.stroke.width>0&&(r.stroke={width:s.stroke.width,color:s.stroke.color??"#000000",opacity:1});const n={letterSpacing:0,lineHeight:s.font?.lineHeight??1.2,textTransform:"none",textDecoration:"none"},o={type:"rich-text",text:s.text??"",font:r,style:n,align:{horizontal:s.alignment?.horizontal??"center",vertical:this.mapVerticalAlign(s.alignment?.vertical)}};s.background&&(o.background={color:s.background.color,opacity:s.background.opacity??1,borderRadius:s.background.borderRadius??0},s.background.padding&&(o.padding=s.background.padding)),s.animation&&(o.animation={preset:s.animation.preset,duration:s.animation.duration}),s.ellipsis!==void 0&&console.warn("TextAsset ellipsis property not supported in RichTextAsset, value dropped");const l={...e,asset:o};return s.width!==void 0&&l.width===void 0&&(l.width=s.width),s.height!==void 0&&l.height===void 0&&(l.height=s.height),l}updateMergeFieldBindings(e,s,a){if(!e)return;const{clipId:i}=e;if(!i)return;const r=this.getDocument();if(!r)return;const n=this.findClipIndices(e);if(!n)return;const o=r.getClipBindings(i);if(o){for(const[l,c]of o)if(this.mergeFieldService.extractFieldName(c.placeholder)===s){const h=this.mergeFieldService.resolve(c.placeholder),d={placeholder:c.placeholder,resolvedValue:h};r.setClipBinding(i,l,d);const m=r.getClip(n.trackIndex,n.clipIndex);m&&Er(m,l,h)}}}getMergeFieldUsage(e,s,a=""){if(!e||typeof e!="object")return{used:!1,isSrcField:!1};for(const[i,r]of Object.entries(e)){const n=a?`${a}.${i}`:i;if(typeof r=="string"){if(this.mergeFieldService.extractFieldName(r)===s)return{used:!0,isSrcField:n==="asset.src"||n.endsWith(".src")}}else if(typeof r=="object"&&r!==null){const o=this.getMergeFieldUsage(r,s,n);if(o.used)return o}}return{used:!1,isSrcField:!1}}async restoreMergeFieldInClip(e,s,a,i,r,n=""){if(!(!a||typeof a!="object"))for(const o of Object.keys(a)){const l=a[o],c=n?`${n}.${o}`:o;if(typeof l=="string"){const f=this.mergeFieldService.extractFieldName(l),h=this.mergeFieldService.extractFieldName(i);if(f&&h&&f===h){const d=l.replace(new RegExp(`\\{\\{\\s*${f}\\s*\\}\\}`,"gi"),r);await this.removeMergeField(e,s,c,d)}}else typeof l=="object"&&l!==null&&await this.restoreMergeFieldInClip(e,s,l,i,r,c)}}}const Rr=Object.freeze(Object.defineProperty({__proto__:null,default:{}},Symbol.toStringTag,{value:"Module"}));var Qk=ac({"node_modules/.pnpm/harfbuzzjs@0.4.12/node_modules/harfbuzzjs/hb.js"(t,e){var s=(()=>{var a=typeof document<"u"?document.currentScript?.src:void 0;return async function(i={}){var r,n=i,o=typeof window=="object",l=typeof WorkerGlobalScope<"u",c=typeof process=="object"&&process.versions?.node&&process.type!="renderer",f=(N,te)=>{throw te};typeof __filename<"u"?a=__filename:l&&(a=self.location.href);var h="";function d(N){return n.locateFile?n.locateFile(N,h):h+N}var m,b;if(c){var V=cw("fs");h=__dirname+"/",b=N=>{N=F(N)?new URL(N):N;var te=V.readFileSync(N);return te},m=async(N,te=!0)=>{N=F(N)?new URL(N):N;var Ve=V.readFileSync(N,te?void 0:"utf8");return Ve},process.argv.length>1&&process.argv[1].replace(/\\/g,"/"),process.argv.slice(2),f=(N,te)=>{throw process.exitCode=N,te}}else if(o||l){try{h=new URL(".",a).href}catch{}l&&(b=N=>{var te=new XMLHttpRequest;return te.open("GET",N,!1),te.responseType="arraybuffer",te.send(null),new Uint8Array(te.response)}),m=async N=>{if(F(N))return new Promise((Ve,De)=>{var Ze=new XMLHttpRequest;Ze.open("GET",N,!0),Ze.responseType="arraybuffer",Ze.onload=()=>{if(Ze.status==200||Ze.status==0&&Ze.response){Ve(Ze.response);return}De(Ze.status)},Ze.onerror=De,Ze.send(null)});var te=await fetch(N,{credentials:"same-origin"});if(te.ok)return te.arrayBuffer();throw new Error(te.status+" : "+te.url)}}console.log.bind(console);var M=console.error.bind(console),E,I=!1,v,F=N=>N.startsWith("file://"),y,Z,P,B,J=!1;function $(){var N=P.buffer;n.HEAP8=new Int8Array(N),n.HEAPU8=B=new Uint8Array(N),n.HEAP32=new Int32Array(N),n.HEAPU32=new Uint32Array(N),n.HEAPF32=new Float32Array(N),new BigInt64Array(N),new BigUint64Array(N)}function se(){if(n.preRun)for(typeof n.preRun=="function"&&(n.preRun=[n.preRun]);n.preRun.length;)ee(n.preRun.shift());H(O)}function ue(){J=!0,Yt.__wasm_call_ctors()}function Ce(){if(n.postRun)for(typeof n.postRun=="function"&&(n.postRun=[n.postRun]);n.postRun.length;)R(n.postRun.shift());H(z)}var Te=0,Ae=null;function Le(N){Te++,n.monitorRunDependencies?.(Te)}function ye(N){if(Te--,n.monitorRunDependencies?.(Te),Te==0&&Ae){var te=Ae;Ae=null,te()}}function G(N){n.onAbort?.(N),N="Aborted("+N+")",M(N),I=!0,N+=". Build with -sASSERTIONS for more info.";var te=new WebAssembly.RuntimeError(N);throw Z?.(te),te}var Y;function W(){return d("hb.wasm")}function pe(N){if(N==Y&&E)return new Uint8Array(E);if(b)return b(N);throw"both async and sync fetching of the wasm failed"}async function ge(N){if(!E)try{var te=await m(N);return new Uint8Array(te)}catch{}return pe(N)}async function Pe(N,te){try{var Ve=await ge(N),De=await WebAssembly.instantiate(Ve,te);return De}catch(Ze){M(`failed to asynchronously prepare wasm: ${Ze}`),G(Ze)}}async function Ue(N,te,Ve){if(!N&&!F(te)&&!c)try{var De=fetch(te,{credentials:"same-origin"}),Ze=await WebAssembly.instantiateStreaming(De,Ve);return Ze}catch(ht){M(`wasm streaming compile failed: ${ht}`),M("falling back to ArrayBuffer instantiation")}return Pe(te,Ve)}function Oe(){return{env:Ia,wasi_snapshot_preview1:Ia}}async function _e(){function N(ht,Fa){return Yt=ht.exports,n.wasmExports=Yt,P=Yt.memory,n.wasmMemory=P,$(),ms=Yt.__indirect_function_table,Wr(Yt),ye(),Yt}Le();function te(ht){return N(ht.instance)}var Ve=Oe();if(n.instantiateWasm)return new Promise((ht,Fa)=>{n.instantiateWasm(Ve,(Yr,Io)=>{ht(N(Yr))})});Y??(Y=W());var De=await Ue(E,Y,Ve),Ze=te(De);return Ze}class ft{constructor(te){bt(this,"name","ExitStatus"),this.message=`Program terminated with exit(${te})`,this.status=te}}var H=N=>{for(;N.length>0;)N.shift()(n)},z=[],R=N=>z.push(N),O=[],ee=N=>O.push(N),ne=!0,ae=()=>G(""),re=0,me=()=>{ne=!1,re=0},ie={},q=N=>{if(N instanceof ft||N=="unwind")return v;f(1,N)},we=()=>ne||re>0,Je=N=>{v=N,we()||(n.onExit?.(N),I=!0),f(N,new ft(N))},gt=(N,te)=>{v=N,Je(N)},Ye=gt,it=()=>{if(!we())try{Ye(v)}catch(N){q(N)}},rt=N=>{if(!I)try{N(),it()}catch(te){q(te)}},vt=()=>performance.now(),_t=(N,te)=>{if(ie[N]&&(clearTimeout(ie[N].id),delete ie[N]),!te)return 0;var Ve=setTimeout(()=>{delete ie[N],rt(()=>mi(N,vt()))},te);return ie[N]={id:Ve,timeout_ms:te},0},ke=()=>2147483648,Vo=(N,te)=>Math.ceil(N/te)*te,Sa=N=>{var te=P.buffer.byteLength,Ve=(N-te+65535)/65536|0;try{return P.grow(Ve),$(),1}catch{}},ut=N=>{var te=B.length;N>>>=0;var Ve=ke();if(N>Ve)return!1;for(var De=1;De<=4;De*=2){var Ze=te*(1+.2/De);Ze=Math.min(Ze,N+100663296);var ht=Math.min(Ve,Vo(Math.max(N,Ze),65536)),Fa=Sa(ht);if(Fa)return!0}return!1},pi=N=>{const te=N.length;return[te%128|128,te>>7,...N]},Lt={i:127,p:127,j:126,f:125,d:124,e:111},Wt=N=>pi(Array.from(N,te=>{var Ve=Lt[te];return Ve})),Et=(N,te)=>{var Ve=Uint8Array.of(0,97,115,109,1,0,0,0,1,...pi([1,96,...Wt(te.slice(1)),...Wt(te[0]==="v"?"":te[0])]),2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0),De=new WebAssembly.Module(Ve),Ze=new WebAssembly.Instance(De,{e:{f:N}}),ht=Ze.exports.f;return ht},ms,$s=N=>ms.get(N),Os=(N,te)=>{if(Ot)for(var Ve=N;Ve<N+te;Ve++){var De=$s(Ve);De&&Ot.set(De,Ve)}},Ot,Br=N=>(Ot||(Ot=new WeakMap,Os(0,ms.length)),Ot.get(N)||0),Va=[],Ur=()=>Va.length?Va.pop():ms.grow(1),Ms=(N,te)=>ms.set(N,te),Zr=(N,te)=>{var Ve=Br(N);if(Ve)return Ve;var De=Ur();try{Ms(De,N)}catch(ht){if(!(ht instanceof TypeError))throw ht;var Ze=Et(N,te);Ms(De,Ze)}return Ot.set(N,De),De},Gr=N=>{Ot.delete($s(N)),Ms(N,null),Va.push(N)};n.noExitRuntime&&(ne=n.noExitRuntime),n.print&&n.print,n.printErr&&(M=n.printErr),n.wasmBinary&&(E=n.wasmBinary),n.arguments&&n.arguments,n.thisProgram&&n.thisProgram,n.wasmMemory=P,n.wasmExports=Yt,n.addFunction=Zr,n.removeFunction=Gr;var mi;function Wr(N){n._hb_blob_create=N.hb_blob_create,n._hb_blob_destroy=N.hb_blob_destroy,n._hb_blob_get_length=N.hb_blob_get_length,n._hb_blob_get_data=N.hb_blob_get_data,n._hb_buffer_serialize_glyphs=N.hb_buffer_serialize_glyphs,n._hb_buffer_create=N.hb_buffer_create,n._hb_buffer_destroy=N.hb_buffer_destroy,n._hb_buffer_get_content_type=N.hb_buffer_get_content_type,n._hb_buffer_set_direction=N.hb_buffer_set_direction,n._hb_buffer_set_script=N.hb_buffer_set_script,n._hb_buffer_set_language=N.hb_buffer_set_language,n._hb_buffer_set_flags=N.hb_buffer_set_flags,n._hb_buffer_set_cluster_level=N.hb_buffer_set_cluster_level,n._hb_buffer_get_length=N.hb_buffer_get_length,n._hb_buffer_get_glyph_infos=N.hb_buffer_get_glyph_infos,n._hb_buffer_get_glyph_positions=N.hb_buffer_get_glyph_positions,n._hb_glyph_info_get_glyph_flags=N.hb_glyph_info_get_glyph_flags,n._hb_buffer_guess_segment_properties=N.hb_buffer_guess_segment_properties,n._hb_buffer_add_utf8=N.hb_buffer_add_utf8,n._hb_buffer_add_utf16=N.hb_buffer_add_utf16,n._hb_buffer_set_message_func=N.hb_buffer_set_message_func,n._hb_language_from_string=N.hb_language_from_string,n._hb_script_from_string=N.hb_script_from_string,n._hb_version=N.hb_version,n._hb_version_string=N.hb_version_string,n._hb_feature_from_string=N.hb_feature_from_string,n._malloc=N.malloc,n._free=N.free,n._hb_draw_funcs_set_move_to_func=N.hb_draw_funcs_set_move_to_func,n._hb_draw_funcs_set_line_to_func=N.hb_draw_funcs_set_line_to_func,n._hb_draw_funcs_set_quadratic_to_func=N.hb_draw_funcs_set_quadratic_to_func,n._hb_draw_funcs_set_cubic_to_func=N.hb_draw_funcs_set_cubic_to_func,n._hb_draw_funcs_set_close_path_func=N.hb_draw_funcs_set_close_path_func,n._hb_draw_funcs_create=N.hb_draw_funcs_create,n._hb_draw_funcs_destroy=N.hb_draw_funcs_destroy,n._hb_face_create=N.hb_face_create,n._hb_face_destroy=N.hb_face_destroy,n._hb_face_reference_table=N.hb_face_reference_table,n._hb_face_get_upem=N.hb_face_get_upem,n._hb_face_collect_unicodes=N.hb_face_collect_unicodes,n._hb_font_draw_glyph=N.hb_font_draw_glyph,n._hb_font_glyph_to_string=N.hb_font_glyph_to_string,n._hb_font_create=N.hb_font_create,n._hb_font_set_variations=N.hb_font_set_variations,n._hb_font_destroy=N.hb_font_destroy,n._hb_font_set_scale=N.hb_font_set_scale,n._hb_set_create=N.hb_set_create,n._hb_set_destroy=N.hb_set_destroy,n._hb_ot_var_get_axis_infos=N.hb_ot_var_get_axis_infos,n._hb_set_get_population=N.hb_set_get_population,n._hb_set_next_many=N.hb_set_next_many,n._hb_shape=N.hb_shape,mi=N._emscripten_timeout}var Ia={_abort_js:ae,_emscripten_runtime_keepalive_clear:me,_setitimer_js:_t,emscripten_resize_heap:ut,proc_exit:Je},Yt=await _e();function _a(){if(Te>0){Ae=_a;return}if(se(),Te>0){Ae=_a;return}function N(){n.calledRun=!0,!I&&(ue(),y?.(n),n.onRuntimeInitialized?.(),Ce())}n.setStatus?(n.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>n.setStatus(""),1),N()},1)):N()}function yi(){if(n.preInit)for(typeof n.preInit=="function"&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.shift()()}return yi(),_a(),J?r=n:r=new Promise((N,te)=>{y=N,Z=te}),r}})();typeof t=="object"&&typeof e=="object"?(e.exports=s,e.exports.default=s):typeof define=="function"&&define.amd&&define([],()=>s)}});const $k=Qk(),eN=Object.freeze(Object.defineProperty({__proto__:null,default:$k},Symbol.toStringTag,{value:"Module"}));var tN=ac({"node_modules/.pnpm/harfbuzzjs@0.4.12/node_modules/harfbuzzjs/hbjs.js"(t,e){function s(a){var i=a.wasmExports,r=new TextDecoder("utf8");let n=a.addFunction,o=a.removeFunction;var l=n(function(G){i.free(G)},"vi"),c=2,f=-1,h=2,d=0,m=1,b=2;function V(G){return(G.charCodeAt(0)&255)<<24|(G.charCodeAt(1)&255)<<16|(G.charCodeAt(2)&255)<<8|(G.charCodeAt(3)&255)<<0}var M=V("JSON"),E=4;function I(G){return[String.fromCharCode(G>>24&255),String.fromCharCode(G>>16&255),String.fromCharCode(G>>8&255),String.fromCharCode(G>>0&255)].join("")}function v(G){return G=="BOT"?1:G=="EOT"?2:G=="PRESERVE_DEFAULT_IGNORABLES"?4:G=="REMOVE_DEFAULT_IGNORABLES"?8:G=="DO_NOT_INSERT_DOTTED_CIRCLE"?16:G=="PRODUCE_UNSAFE_TO_CONCAT"?64:0}function F(G){var Y=i.malloc(G.byteLength);a.HEAPU8.set(new Uint8Array(G),Y);var W=i.hb_blob_create(Y,G.byteLength,c,Y,l);return{ptr:W,destroy:function(){i.hb_blob_destroy(W)}}}function y(G){const Y=i.hb_set_get_population(G),W=i.malloc(Y<<2),pe=W>>2,ge=a.HEAPU32.subarray(pe,pe+Y);return a.HEAPU32.set(ge,pe),i.hb_set_next_many(G,f,W,Y),ge}function Z(G,Y){var W=i.hb_face_create(G.ptr,Y);const pe=i.hb_face_get_upem(W);return{ptr:W,upem:pe,reference_table:function(ge){var Pe=i.hb_face_reference_table(W,V(ge)),Ue=i.hb_blob_get_length(Pe);if(Ue){var Oe=i.hb_blob_get_data(Pe,null),_e=a.HEAPU8.subarray(Oe,Oe+Ue);return _e}},getAxisInfos:function(){var ge=i.malloc(2048),Pe=i.malloc(4);a.HEAPU32[Pe/4]=64,i.hb_ot_var_get_axis_infos(W,0,Pe,ge);var Ue={};return Array.from({length:a.HEAPU32[Pe/4]}).forEach(function(Oe,_e){Ue[I(a.HEAPU32[ge/4+_e*8+1])]={min:a.HEAPF32[ge/4+_e*8+4],default:a.HEAPF32[ge/4+_e*8+5],max:a.HEAPF32[ge/4+_e*8+6]}}),i.free(Pe),i.free(ge),Ue},collectUnicodes:function(){var ge=i.hb_set_create();i.hb_face_collect_unicodes(W,ge);var Pe=y(ge);return i.hb_set_destroy(ge),Pe},destroy:function(){i.hb_face_destroy(W)}}}var P="",B=256,J=i.malloc(B);function $(G){var Y=i.hb_font_create(G.ptr),W=null,pe=null,ge=null,Pe=null,Ue=null,Oe=null;function _e(H){if(!W){var z=function(ae,re,me,ie,q,we){P+=`M${ie},${q}`},R=function(ae,re,me,ie,q,we){P+=`L${ie},${q}`},O=function(ae,re,me,ie,q,we,Je,gt,Ye,it){P+=`C${ie},${q} ${we},${Je} ${gt},${Ye}`},ee=function(ae,re,me,ie,q,we,Je,gt){P+=`Q${ie},${q} ${we},${Je}`},ne=function(ae,re,me,ie){P+="Z"};pe=n(z,"viiiffi"),ge=n(R,"viiiffi"),Pe=n(O,"viiiffffffi"),Ue=n(ee,"viiiffffi"),Oe=n(ne,"viiii"),W=i.hb_draw_funcs_create(),i.hb_draw_funcs_set_move_to_func(W,pe,0,0),i.hb_draw_funcs_set_line_to_func(W,ge,0,0),i.hb_draw_funcs_set_cubic_to_func(W,Pe,0,0),i.hb_draw_funcs_set_quadratic_to_func(W,Ue,0,0),i.hb_draw_funcs_set_close_path_func(W,Oe,0,0)}return P="",i.hb_font_draw_glyph(Y,H,W,0),P}function ft(H){i.hb_font_glyph_to_string(Y,H,J,B);var z=a.HEAPU8.subarray(J,J+B);return r.decode(z.slice(0,z.indexOf(0)))}return{ptr:Y,glyphName:ft,glyphToPath:_e,glyphToJson:function(H){var z=_e(H);return z.replace(/([MLQCZ])/g,"|$1 ").split("|").filter(function(R){return R.length}).map(function(R){var O=R.split(/[ ,]/g);return{type:O[0],values:O.slice(1).filter(function(ee){return ee.length}).map(function(ee){return+ee})}})},setScale:function(H,z){i.hb_font_set_scale(Y,H,z)},setVariations:function(H){var z=Object.entries(H),R=i.malloc(8*z.length);z.forEach(function(O,ee){a.HEAPU32[R/4+ee*2+0]=V(O[0]),a.HEAPF32[R/4+ee*2+1]=O[1]}),i.hb_font_set_variations(Y,R,z.length),i.free(R)},destroy:function(){i.hb_font_destroy(Y),W&&(i.hb_draw_funcs_destroy(W),W=null,o(pe),o(ge),o(Pe),o(Ue),o(Oe))}}}function se(G){var Y=i.malloc(G.length+1);for(let W=0;W<G.length;++W){const pe=G.charCodeAt(W);if(pe>127)throw new Error("Expected ASCII text");a.HEAPU8[Y+W]=pe}return a.HEAPU8[Y+G.length]=0,{ptr:Y,length:G.length,free:function(){i.free(Y)}}}function ue(G){const Y=i.malloc(G.length*2),W=new Uint16Array(a.wasmMemory.buffer,Y,G.length);for(let pe=0;pe<W.length;++pe)W[pe]=G.charCodeAt(pe);return{ptr:Y,length:W.length,free:function(){i.free(Y)}}}function Ce(){var G=i.hb_buffer_create();return{ptr:G,addText:function(Y){const W=ue(Y);i.hb_buffer_add_utf16(G,W.ptr,W.length,0,W.length),W.free()},guessSegmentProperties:function(){return i.hb_buffer_guess_segment_properties(G)},setDirection:function(Y){i.hb_buffer_set_direction(G,{ltr:4,rtl:5,ttb:6,btt:7}[Y]||0)},setFlags:function(Y){var W=0;Y.forEach(function(pe){W|=v(pe)}),i.hb_buffer_set_flags(G,W)},setLanguage:function(Y){var W=se(Y);i.hb_buffer_set_language(G,i.hb_language_from_string(W.ptr,-1)),W.free()},setScript:function(Y){var W=se(Y);i.hb_buffer_set_script(G,i.hb_script_from_string(W.ptr,-1)),W.free()},setClusterLevel:function(Y){i.hb_buffer_set_cluster_level(G,Y)},json:function(){for(var Y=i.hb_buffer_get_length(G),W=[],pe=i.hb_buffer_get_glyph_infos(G,0),ge=pe/4,Pe=i.hb_buffer_get_glyph_positions(G,0)/4,Ue=a.HEAPU32.subarray(ge,ge+5*Y),Oe=a.HEAP32.subarray(Pe,Pe+5*Y),_e=0;_e<Y;++_e)W.push({g:Ue[_e*5+0],cl:Ue[_e*5+2],ax:Oe[_e*5+0],ay:Oe[_e*5+1],dx:Oe[_e*5+2],dy:Oe[_e*5+3],flags:i.hb_glyph_info_get_glyph_flags(pe+_e*20)});return W},destroy:function(){i.hb_buffer_destroy(G)}}}function Te(G,Y,W){var pe=0,ge=0;W&&(W=W.split(","),pe=i.malloc(16*W.length),W.forEach(function(Pe,Ue){var Oe=se(Pe);i.hb_feature_from_string(Oe.ptr,-1,pe+ge*16)&&ge++,Oe.free()})),i.hb_shape(G.ptr,Y.ptr,pe,ge),pe&&i.free(pe)}function Ae(G,Y,W,pe,ge){var Pe=[],Ue=d,Oe=!1,_e=1024*1024,ft=i.malloc(_e),H=function(R,O,ee,ne){var ae=r.decode(a.HEAPU8.subarray(ee,a.HEAPU8.indexOf(0,ee)));return ae.startsWith("start table GSUB")?Ue=m:ae.startsWith("start table GPOS")&&(Ue=b),Ue!=ge&&(Oe=!1),ge!=d&&Ue==ge&&ae.startsWith("end lookup "+pe)&&(Oe=!0),Oe?0:(i.hb_buffer_serialize_glyphs(R,0,i.hb_buffer_get_length(R),ft,_e,0,O,M,E),Pe.push({m:ae,t:JSON.parse(r.decode(a.HEAPU8.subarray(ft,a.HEAPU8.indexOf(0,ft)))),glyphs:i.hb_buffer_get_content_type(R)==h}),1)},z=n(H,"iiiii");return i.hb_buffer_set_message_func(Y.ptr,z,0,0),Te(G,Y,W),i.free(ft),o(z),Pe}function Le(){var G=i.malloc(12);i.hb_version(G,G+4,G+8);var Y={major:a.HEAPU32[G/4],minor:a.HEAPU32[(G+4)/4],micro:a.HEAPU32[(G+8)/4]};return i.free(G),Y}function ye(){var G=i.hb_version_string(),Y=r.decode(a.HEAPU8.subarray(G,a.HEAPU8.indexOf(0,G)));return Y}return{createBlob:F,createFace:Z,createFont:$,createBuffer:Ce,shape:Te,shapeWithTrace:Ae,version:Le,version_string:ye}}try{e.exports=s}catch{}}});const sN=tN(),aN=Object.freeze(Object.defineProperty({__proto__:null,default:sN},Symbol.toStringTag,{value:"Module"}));var le,gs=new Array(128).fill(void 0);gs.push(void 0,null,!0,!1);var ui=gs.length;function It(t){ui===gs.length&&gs.push(gs.length+1);const e=ui;return ui=gs[e],gs[e]=t,e}function Nt(t){return gs[t]}function iN(t){t<132||(gs[t]=ui,ui=t)}function ps(t){const e=Nt(t);return iN(t),e}var hi=0,di=null;function zr(){return(di===null||di.byteLength===0)&&(di=new Uint8Array(le.memory.buffer)),di}var Lr=typeof TextEncoder<"u"?new TextEncoder("utf-8"):{encode:()=>{throw Error("TextEncoder not available")}},rN=typeof Lr.encodeInto=="function"?function(t,e){return Lr.encodeInto(t,e)}:function(t,e){const s=Lr.encode(t);return e.set(s),{read:t.length,written:s.length}};function ko(t,e,s){if(s===void 0){const o=Lr.encode(t),l=e(o.length,1)>>>0;return zr().subarray(l,l+o.length).set(o),hi=o.length,l}let a=t.length,i=e(a,1)>>>0;const r=zr();let n=0;for(;n<a;n++){const o=t.charCodeAt(n);if(o>127)break;r[i+n]=o}if(n!==a){n!==0&&(t=t.slice(n)),i=s(i,a,a=n+t.length*3,1)>>>0;const o=zr().subarray(i+n,i+a),l=rN(t,o);n+=l.written,i=s(i,a,n,1)>>>0}return hi=n,i}function No(t){return t==null}var gi=null;function dt(){return(gi===null||gi.byteLength===0)&&(gi=new Int32Array(le.memory.buffer)),gi}var U0=typeof TextDecoder<"u"?new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}):{decode:()=>{throw Error("TextDecoder not available")}};typeof TextDecoder<"u"&&U0.decode();function Dr(t,e){return t=t>>>0,U0.decode(zr().subarray(t,t+e))}function nN(t,e){if(!(t instanceof e))throw new Error(`expected instance of ${e.name}`);return t.ptr}function oN(t,e){try{return t.apply(this,e)}catch(s){le.__wbindgen_exn_store(It(s))}}var Z0=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(t=>le.__wbg_bbox_free(t>>>0)),Ao=class q0{static __wrap(e){e=e>>>0;const s=Object.create(q0.prototype);return s.__wbg_ptr=e,Z0.register(s,s.__wbg_ptr,s),s}__destroy_into_raw(){const e=this.__wbg_ptr;return this.__wbg_ptr=0,Z0.unregister(this),e}free(){const e=this.__destroy_into_raw();le.__wbg_bbox_free(e)}get x(){return le.__wbg_get_bbox_x(this.__wbg_ptr)}set x(e){le.__wbg_set_bbox_x(this.__wbg_ptr,e)}get y(){return le.__wbg_get_bbox_y(this.__wbg_ptr)}set y(e){le.__wbg_set_bbox_y(this.__wbg_ptr,e)}get width(){return le.__wbg_get_bbox_width(this.__wbg_ptr)}set width(e){le.__wbg_set_bbox_width(this.__wbg_ptr,e)}get height(){return le.__wbg_get_bbox_height(this.__wbg_ptr)}set height(e){le.__wbg_set_bbox_height(this.__wbg_ptr,e)}},G0=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(t=>le.__wbg_renderedimage_free(t>>>0)),lN=class J0{static __wrap(e){e=e>>>0;const s=Object.create(J0.prototype);return s.__wbg_ptr=e,G0.register(s,s.__wbg_ptr,s),s}__destroy_into_raw(){const e=this.__wbg_ptr;return this.__wbg_ptr=0,G0.unregister(this),e}free(){const e=this.__destroy_into_raw();le.__wbg_renderedimage_free(e)}get width(){return le.renderedimage_width(this.__wbg_ptr)>>>0}get height(){return le.renderedimage_height(this.__wbg_ptr)>>>0}asPng(){try{const i=le.__wbindgen_add_to_stack_pointer(-16);le.renderedimage_asPng(i,this.__wbg_ptr);var e=dt()[i/4+0],s=dt()[i/4+1],a=dt()[i/4+2];if(a)throw ps(s);return ps(e)}finally{le.__wbindgen_add_to_stack_pointer(16)}}get pixels(){const e=le.renderedimage_pixels(this.__wbg_ptr);return ps(e)}},cN=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(t=>le.__wbg_resvg_free(t>>>0)),fN=class{__destroy_into_raw(){const t=this.__wbg_ptr;return this.__wbg_ptr=0,cN.unregister(this),t}free(){const t=this.__destroy_into_raw();le.__wbg_resvg_free(t)}constructor(t,e,s){try{const l=le.__wbindgen_add_to_stack_pointer(-16);var a=No(e)?0:ko(e,le.__wbindgen_malloc,le.__wbindgen_realloc),i=hi;le.resvg_new(l,It(t),a,i,No(s)?0:It(s));var r=dt()[l/4+0],n=dt()[l/4+1],o=dt()[l/4+2];if(o)throw ps(n);return this.__wbg_ptr=r>>>0,this}finally{le.__wbindgen_add_to_stack_pointer(16)}}get width(){return le.resvg_width(this.__wbg_ptr)}get height(){return le.resvg_height(this.__wbg_ptr)}render(){try{const a=le.__wbindgen_add_to_stack_pointer(-16);le.resvg_render(a,this.__wbg_ptr);var t=dt()[a/4+0],e=dt()[a/4+1],s=dt()[a/4+2];if(s)throw ps(e);return lN.__wrap(t)}finally{le.__wbindgen_add_to_stack_pointer(16)}}toString(){let t,e;try{const i=le.__wbindgen_add_to_stack_pointer(-16);le.resvg_toString(i,this.__wbg_ptr);var s=dt()[i/4+0],a=dt()[i/4+1];return t=s,e=a,Dr(s,a)}finally{le.__wbindgen_add_to_stack_pointer(16),le.__wbindgen_free(t,e,1)}}innerBBox(){const t=le.resvg_innerBBox(this.__wbg_ptr);return t===0?void 0:Ao.__wrap(t)}getBBox(){const t=le.resvg_getBBox(this.__wbg_ptr);return t===0?void 0:Ao.__wrap(t)}cropByBBox(t){nN(t,Ao),le.resvg_cropByBBox(this.__wbg_ptr,t.__wbg_ptr)}imagesToResolve(){try{const a=le.__wbindgen_add_to_stack_pointer(-16);le.resvg_imagesToResolve(a,this.__wbg_ptr);var t=dt()[a/4+0],e=dt()[a/4+1],s=dt()[a/4+2];if(s)throw ps(e);return ps(t)}finally{le.__wbindgen_add_to_stack_pointer(16)}}resolveImage(t,e){try{const i=le.__wbindgen_add_to_stack_pointer(-16),r=ko(t,le.__wbindgen_malloc,le.__wbindgen_realloc),n=hi;le.resvg_resolveImage(i,this.__wbg_ptr,r,n,It(e));var s=dt()[i/4+0],a=dt()[i/4+1];if(a)throw ps(s)}finally{le.__wbindgen_add_to_stack_pointer(16)}}};async function uN(t,e){if(typeof Response=="function"&&t instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(t,e)}catch(a){if(t.headers.get("Content-Type")!="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",a);else throw a}const s=await t.arrayBuffer();return await WebAssembly.instantiate(s,e)}else{const s=await WebAssembly.instantiate(t,e);return s instanceof WebAssembly.Instance?{instance:s,module:t}:s}}function hN(){const t={};return t.wbg={},t.wbg.__wbg_new_28c511d9baebfa89=function(e,s){const a=new Error(Dr(e,s));return It(a)},t.wbg.__wbindgen_memory=function(){const e=le.memory;return It(e)},t.wbg.__wbg_buffer_12d079cc21e14bdb=function(e){const s=Nt(e).buffer;return It(s)},t.wbg.__wbg_newwithbyteoffsetandlength_aa4a17c33a06e5cb=function(e,s,a){const i=new Uint8Array(Nt(e),s>>>0,a>>>0);return It(i)},t.wbg.__wbindgen_object_drop_ref=function(e){ps(e)},t.wbg.__wbg_new_63b92bc8671ed464=function(e){const s=new Uint8Array(Nt(e));return It(s)},t.wbg.__wbg_values_839f3396d5aac002=function(e){const s=Nt(e).values();return It(s)},t.wbg.__wbg_next_196c84450b364254=function(){return oN(function(e){const s=Nt(e).next();return It(s)},arguments)},t.wbg.__wbg_done_298b57d23c0fc80c=function(e){return Nt(e).done},t.wbg.__wbg_value_d93c65011f51a456=function(e){const s=Nt(e).value;return It(s)},t.wbg.__wbg_instanceof_Uint8Array_2b3bbecd033d19f6=function(e){let s;try{s=Nt(e)instanceof Uint8Array}catch{s=!1}return s},t.wbg.__wbindgen_string_get=function(e,s){const a=Nt(s),i=typeof a=="string"?a:void 0;var r=No(i)?0:ko(i,le.__wbindgen_malloc,le.__wbindgen_realloc),n=hi;dt()[e/4+1]=n,dt()[e/4+0]=r},t.wbg.__wbg_new_16b304a2cfa7ff4a=function(){const e=new Array;return It(e)},t.wbg.__wbindgen_string_new=function(e,s){const a=Dr(e,s);return It(a)},t.wbg.__wbg_push_a5b05aedc7234f9f=function(e,s){return Nt(e).push(Nt(s))},t.wbg.__wbg_length_c20a40f15020d68a=function(e){return Nt(e).length},t.wbg.__wbg_set_a47bac70306a19a7=function(e,s,a){Nt(e).set(Nt(s),a>>>0)},t.wbg.__wbindgen_throw=function(e,s){throw new Error(Dr(e,s))},t}function dN(t,e){return le=t.exports,W0.__wbindgen_wasm_module=e,gi=null,di=null,le}async function W0(t){if(le!==void 0)return le;typeof t>"u"&&(t=new URL("index_bg.wasm",void 0));const e=hN();(typeof t=="string"||typeof Request=="function"&&t instanceof Request||typeof URL=="function"&&t instanceof URL)&&(t=fetch(t));const{instance:s,module:a}=await uN(await t,e);return dN(s,a)}var gN=W0,So=!1,pN=async t=>{if(So)throw new Error("Already initialized. The `initWasm()` function can be used only once.");await gN(await t),So=!0},mN=class extends fN{constructor(t,e){if(!So)throw new Error("Wasm has not been initialized. Call `initWasm()` function.");const s=e?.font;if(s&&yN(s)){const a={...e,font:{...s,fontBuffers:void 0}};super(t,JSON.stringify(a),s.fontBuffers)}else super(t,JSON.stringify(e))}};function yN(t){return Object.prototype.hasOwnProperty.call(t,"fontBuffers")}const Y0=Object.freeze(Object.defineProperty({__proto__:null,Resvg:mN,initWasm:pN},Symbol.toStringTag,{value:"Module"}));Ht.Edit=Aa,Ht.ShotstackEdit=Jk,Object.defineProperty(Ht,Symbol.toStringTag,{value:"Module"})});
|
|
277
|
+
`),l=o===-1?this.textPosition:this.textPosition-o-1,c=n.substring(0,l);let f;c.length>0&&c.endsWith(" ")?f=this.measureText(`${c}x`,s)-this.measureText("x",s):f=this.measureText(c,s);const h=s.lineHeight;this.pixelY=this.currentLine*h;const m=this.clipConfig.asset.alignment?.horizontal??"center";let b=f;if(m!=="left"){const I=this.measureText(n,s),M=this.textElement.width;let E=0;m==="center"?E=(M-I)/2:m==="right"&&(E=M-I),b=E+f}this.pixelX=b}updateGraphicsPosition(){this.cursor&&this.cursor.position.set(this.pixelX,this.pixelY)}startBlinkingAnimation(){!this.cursor||this.isBlinking||(this.isBlinking=!0,this.blinkInterval=window.setInterval(()=>{this.cursor&&this.isBlinking&&(this.cursor.visible=!this.cursor.visible)},this.blinkIntervalMs))}stopBlinkingAnimation(){this.blinkInterval!==null&&(window.clearInterval(this.blinkInterval),this.blinkInterval=null),this.isBlinking=!1,this.cursor&&(this.cursor.visible=this.isVisible)}measureText(e,s){const a=new X.Text(e,s),{width:i}=a;return a.destroy(),i}isInitialized(){return this.cursor!==null}getState(){return{isInitialized:this.isInitialized(),isBlinking:this.isBlinking,isVisible:this.isVisible,textPosition:this.textPosition,pixelPosition:{x:this.pixelX,y:this.pixelY},currentLine:this.currentLine}}}class Fr{static DEFAULT_FOCUS_DELAY_MS=50;hiddenInput=null;isFocused=!1;focusRetryCount=0;maxFocusRetries=3;focusDelay=Fr.DEFAULT_FOCUS_DELAY_MS;eventHandlers={};abortController=null;textChangeCallback=null;lastSyncedText="";isComposing=!1;setupInput(e,s){this.focusDelay=s?.focusDelay??Fr.DEFAULT_FOCUS_DELAY_MS,this.createHiddenTextarea(),this.hiddenInput&&(this.hiddenInput.value=e,this.lastSyncedText=e),this.setupEventListeners(),s?.autoFocus!==!1&&this.focusInput()}updateInputValue(e){this.hiddenInput&&(this.hiddenInput.value=e,this.lastSyncedText=e)}focusInput(){this.hiddenInput&&setTimeout(()=>{this.hiddenInput&&!this.isFocused&&(this.hiddenInput.focus(),setTimeout(()=>{!this.isFocused&&this.focusRetryCount<this.maxFocusRetries&&(this.focusRetryCount+=1,this.focusInput())},10))},this.focusDelay)}blurInput(){this.hiddenInput&&this.hiddenInput.blur()}setSelectionRange(e,s){if(!this.hiddenInput)return;const a=this.hiddenInput.value.length,i=Math.max(0,Math.min(e,a)),r=Math.max(i,Math.min(s,a));this.hiddenInput.setSelectionRange(i,r)}getCursorPosition(){return this.hiddenInput?.selectionStart||0}getValue(){return this.hiddenInput?.value||""}setTextInputHandler(e){this.textChangeCallback=e}setEventHandlers(e){this.eventHandlers={...this.eventHandlers,...e}}isFocusedInput(){return this.isFocused}dispose(){this.removeAllEventListeners(),this.hiddenInput&&this.hiddenInput.parentNode&&this.hiddenInput.parentNode.removeChild(this.hiddenInput),this.hiddenInput=null,this.isFocused=!1,this.focusRetryCount=0,this.textChangeCallback=null,this.eventHandlers={}}createHiddenTextarea(){this.hiddenInput=document.createElement("textarea");const e={position:"absolute",opacity:"0.01",pointerEvents:"none",zIndex:"18",left:"0px",top:"0px",width:"1px",height:"1px",border:"none",outline:"none",resize:"none",backgroundColor:"transparent"};Object.assign(this.hiddenInput.style,e),this.hiddenInput.tabIndex=0,document.body.appendChild(this.hiddenInput)}setupEventListeners(){if(!this.hiddenInput)return;this.abortController=new AbortController;const{signal:e}=this.abortController;this.hiddenInput.addEventListener("input",this.handleTextInput,{signal:e}),this.hiddenInput.addEventListener("keydown",this.handleKeyDown,{signal:e}),this.hiddenInput.addEventListener("compositionstart",this.handleCompositionStart,{signal:e}),this.hiddenInput.addEventListener("compositionend",this.handleCompositionEnd,{signal:e}),this.hiddenInput.addEventListener("focus",this.handleFocus,{signal:e}),this.hiddenInput.addEventListener("blur",this.handleBlur,{signal:e}),this.hiddenInput.addEventListener("paste",this.handlePaste,{signal:e})}removeAllEventListeners(){this.abortController?.abort(),this.abortController=null}handleTextInput=e=>{if(!this.hiddenInput||this.isComposing)return;const s=this.hiddenInput.value,a=this.hiddenInput.selectionStart||0;this.lastSyncedText=s,this.textChangeCallback?.(s,a)};handleKeyDown=e=>{if(document.activeElement!==this.hiddenInput)return;let s=!1;if((e.ctrlKey||e.metaKey)&&(s=this.handleKeyboardShortcuts(e),s)){e.preventDefault();return}if(e.key==="Tab"){const a=e.shiftKey?"backward":"forward";this.eventHandlers.onTabNavigation?.(a),e.preventDefault();return}switch(e.key){case"Escape":this.eventHandlers.onEscape?.(e),s=!0;break;case"Enter":s=!1;break;case"ArrowLeft":case"ArrowRight":case"ArrowUp":case"ArrowDown":setTimeout(()=>{if(this.hiddenInput){const a=this.hiddenInput.value,i=this.hiddenInput.selectionStart||0;this.textChangeCallback?.(a,i)}},0),s=!1;break;case"Backspace":case"Delete":s=!1;break;default:s=this.eventHandlers.onCustomKey?.(e.key,e)||!1;break}s&&e.preventDefault()};handleKeyboardShortcuts(e){const{key:s}=e;switch(s.toLowerCase()){case"a":return this.selectAll(),!0;case"c":case"v":return!1;case"z":return this.eventHandlers.onCustomKey?.("undo",e),!0;case"y":return this.eventHandlers.onCustomKey?.("redo",e),!0;default:return!1}}handleCompositionStart=e=>{this.isComposing=!0};handleCompositionEnd=e=>{if(this.isComposing=!1,this.hiddenInput){const s=this.hiddenInput.value,a=this.hiddenInput.selectionStart||0;this.textChangeCallback?.(s,a)}};handleFocus=e=>{this.isFocused=!0,this.focusRetryCount=0,this.eventHandlers.onFocus?.(e)};handleBlur=e=>{this.isFocused=!1,this.eventHandlers.onBlur?.(e)};handlePaste=e=>{setTimeout(()=>{this.handleTextInput(e)},0)};selectAll(){this.hiddenInput&&this.hiddenInput.select()}}class os{static DOUBLE_CLICK_THRESHOLD_MS=300;static EDITING_BG_PADDING_PX=5;static EDITING_BG_ALPHA=.2;static CLICK_HANDLER_DELAY_MS=100;parent;targetText;clipConfig;isEditing=!1;lastClickTime=0;editingContainer=null;editableText=null;textCursor=null;textInputHandler=null;outsideClickHandler=null;constructor(e,s,a){this.parent=e,this.targetText=s,this.clipConfig=a,this.parent.getContainer().eventMode="static",this.parent.getContainer().on("click",this.checkForDoubleClick)}dispose(){this.parent.getContainer().off("click",this.checkForDoubleClick),this.stopEditing(),this.outsideClickHandler&&(window.removeEventListener("click",this.outsideClickHandler),this.outsideClickHandler=null)}startEditing(){if(this.isEditing||!this.targetText)return;const e=structuredClone(this.clipConfig);this.targetText.visible=!1,this.createEditingEnvironment(),this.setupOutsideClickHandler(e),this.isEditing=!0}stopEditing(e=!1,s){if(!this.isEditing)return;let a="";this.editableText&&(a=this.editableText.text),this.editingContainer&&(this.parent.getContainer().removeChild(this.editingContainer),this.editingContainer.destroy(),this.editingContainer=null),this.editableText=null,this.textCursor&&(this.textCursor.dispose(),this.textCursor=null),this.textInputHandler&&(this.textInputHandler.dispose(),this.textInputHandler=null),this.targetText.visible=!0,e&&s&&a!==""&&this.parent.updateTextContent(a,s),this.isEditing=!1}checkForDoubleClick=e=>{const s=Date.now();s-this.lastClickTime<os.DOUBLE_CLICK_THRESHOLD_MS&&this.startEditing(),this.lastClickTime=s};setupOutsideClickHandler(e){this.outsideClickHandler=s=>{const i=this.parent.getContainer().getBounds(),r=s.clientX,n=s.clientY;(r<i.x||r>i.x+i.width||n<i.y||n>i.y+i.height)&&(this.stopEditing(!0,e),this.outsideClickHandler&&(window.removeEventListener("click",this.outsideClickHandler),this.outsideClickHandler=null))},setTimeout(()=>{this.outsideClickHandler&&window.addEventListener("click",this.outsideClickHandler)},os.CLICK_HANDLER_DELAY_MS)}createEditingEnvironment(){this.setupEditingContainer(),this.editingContainer&&this.editableText&&(this.textCursor=new ci(this.editingContainer,this.editableText,this.clipConfig),this.textCursor.updatePosition(this.targetText.text.length),this.textCursor.startBlinking()),this.setupTextInputHandler(),this.updateTextAlignment()}setupEditingContainer(){this.editingContainer=new X.Container,this.parent.getContainer().addChild(this.editingContainer);const e=new X.Graphics;e.fillStyle={color:0,alpha:os.EDITING_BG_ALPHA},e.rect(-5,-5,this.targetText.width+2*os.EDITING_BG_PADDING_PX,this.targetText.height+2*os.EDITING_BG_PADDING_PX),e.fill(),this.editingContainer.addChild(e),this.editableText=new X.Text(this.targetText.text,this.targetText.style),this.editableText.eventMode="static",this.editableText.cursor="text",this.editingContainer.addChild(this.editableText)}setupTextInputHandler(){this.textInputHandler=new Fr,this.textInputHandler.setTextInputHandler((e,s)=>{this.editableText&&(this.editableText.text=e,this.updateTextAlignment()),this.textCursor?.updatePosition(s)}),this.textInputHandler.setEventHandlers({onEscape:e=>this.stopEditing(!1),onTabNavigation:e=>this.stopEditing(!0)}),this.textInputHandler.setupInput(this.targetText.text,{autoFocus:!0})}updateTextAlignment(){if(!this.editableText||!this.editingContainer)return;const e=this.getContainerDimensions(),s=this.getAlignmentSettings(),a=this.calculateHorizontalPosition({width:this.editableText.width},e,s.horizontal),i=this.calculateVerticalPosition({height:this.editableText.height},e,s.vertical);if(this.editingContainer.position.set(a,i),this.editingContainer.children.length>0){const r=this.editingContainer.getChildAt(0);r instanceof X.Graphics&&(r.clear(),r.fillStyle={color:0,alpha:os.EDITING_BG_ALPHA},r.rect(-5,-5,this.editableText.width+2*os.EDITING_BG_PADDING_PX,this.editableText.height+2*os.EDITING_BG_PADDING_PX),r.fill())}}calculateHorizontalPosition(e,s,a="center"){switch(a){case"center":return s.width/2-e.width/2;case"right":return s.width-e.width;case"left":default:return 0}}calculateVerticalPosition(e,s,a="center"){switch(a){case"center":return s.height/2-e.height/2;case"bottom":return s.height-e.height;case"top":default:return 0}}getContainerDimensions(){const e=this.clipConfig.asset;return{width:e.width??this.parent.getSize().width,height:e.height??this.parent.getSize().height}}getAlignmentSettings(){const e=this.clipConfig.asset;return{horizontal:e.alignment?.horizontal??"center",vertical:e.alignment?.vertical??"center"}}}class ka extends xt{static loadedFonts=new Set;background=null;text=null;textEditor=null;constructor(e,s){super(e,s,Qe.Text)}async load(){await super.load();const e=this.clipConfiguration.asset,s=e.font?.family??"Open Sans";if(await this.loadFont(s),this.background=new X.Graphics,this.drawBackground(),this.text=new X.Text({text:e.text??"",style:this.createTextStyle(e)}),this.positionText(e),e.stroke?.width&&e.stroke.width>0&&e.stroke.color){const a=new Oa({thickness:e.stroke.width,color:e.stroke.color});this.text.filters=[a]}this.contentContainer.addChild(this.background),this.contentContainer.addChild(this.text),this.configureKeyframes(),this.textEditor=new os(this,this.text,this.clipConfiguration)}update(e,s){super.update(e,s)}reconfigureAfterRestore(){super.reconfigureAfterRestore(),this.reconfigure()}async reconfigure(){const e=this.clipConfiguration.asset,s=e.font?.family??"Open Sans";if(await this.loadFont(s),this.drawBackground(),this.text){if(this.text.text=e.text??"",this.text.style=this.createTextStyle(e),e.stroke?.width&&e.stroke.width>0&&e.stroke.color){const a=new Oa({thickness:e.stroke.width,color:e.stroke.color});this.text.filters=[a]}else this.text.filters=[];this.positionText(e)}}dispose(){super.dispose(),this.background?.destroy(),this.background=null,this.text?.destroy(),this.text=null,this.textEditor?.dispose(),this.textEditor=null}getSize(){const e=this.clipConfiguration.asset;return{width:this.clipConfiguration.width??e.width??this.edit.size.width,height:this.clipConfiguration.height??e.height??this.edit.size.height}}getFitScale(){return 1}getContainerScale(){const e=this.getScale();return{x:e,y:e}}supportsEdgeResize(){return!0}onDimensionsChanged(){if(this.drawBackground(),this.text){const e=this.clipConfiguration.asset;this.text.style.wordWrapWidth=this.getSize().width,this.positionText(e)}}applyFixedDimensions(){}createTextStyle(e){const s=e.font?.family??"Open Sans",{baseFontFamily:a,fontWeight:i}=Dt(s),{width:r}=this.getSize();return new X.TextStyle({fontFamily:a,fontSize:e.font?.size??32,fill:e.font?.color??"#ffffff",fontWeight:i.toString(),wordWrap:!0,wordWrapWidth:r,lineHeight:(e.font?.lineHeight??1)*(e.font?.size??32),align:e.alignment?.horizontal??"center"})}positionText(e){if(!this.text)return;const s=e.alignment?.horizontal??"center",a=e.alignment?.vertical??"center",{width:i,height:r}=this.getSize();let n=i/2-this.text.width/2,o=r/2-this.text.height/2;s==="left"?n=0:s==="right"&&(n=i-this.text.width),a==="top"?o=0:a==="bottom"&&(o=r-this.text.height),this.text.position.set(n,o)}drawBackground(){const e=this.clipConfiguration.asset;if(!this.background||!e.background||!e.background.color)return;const{width:s,height:a}=this.getSize();this.background.clear(),this.background.fillStyle={color:e.background.color,alpha:e.background.opacity??1},this.background.rect(0,0,s,a),this.background.fill()}updateTextContent(e,s){this.edit.updateTextContent(this,e,s)}async loadFont(e){const{baseFontFamily:s,fontWeight:a}=Dt(e),i=`${s}-${a}`;if(ka.loadedFonts.has(i))return;const r=qr(e);if(r){const n=new FontFace(s,`url(${r})`,{weight:a.toString()});await n.load(),document.fonts.add(n),ka.loadedFonts.add(i)}}static resetFontCache(){ka.loadedFonts.clear()}}class ck extends xt{aiOverlay=null;lastPrompt="";constructor(e,s){super(e,s,Qe.TextToImage)}async load(){await super.load();const{width:e,height:s}=this.getSize(),a=this.edit.getResolvedEdit()?.timeline.tracks.flatMap(l=>l.clips)??[],i=zo(a,this.clipId??""),{asset:r}=this.clipConfiguration,n=Ls(r)&&r.prompt||"",o=Ls(r)?r.type:"text-to-image";this.aiOverlay=new $r({mode:"panel",icon:"image",width:e,height:s,assetNumber:i??void 0,prompt:n,assetType:o}),this.contentContainer.addChild(this.aiOverlay.getContainer()),this.configureKeyframes()}update(e,s){super.update(e,s);const{width:a,height:i}=this.getSize();this.aiOverlay?.resize(a,i);const{asset:r}=this.clipConfiguration,n=Ls(r)&&r.prompt||"";n!==this.lastPrompt&&(this.aiOverlay?.updatePrompt(n),this.lastPrompt=n)}getSize(){const e=this.clipConfiguration.asset;return{width:this.clipConfiguration.width??e.width??this.edit.size.width,height:this.clipConfiguration.height??e.height??this.edit.size.height}}dispose(){this.aiOverlay?.dispose(),this.aiOverlay=null,super.dispose()}}class fk extends xt{constructor(e,s){super(e,s,Qe.TextToSpeech)}async load(){await super.load(),this.configureKeyframes()}update(e,s){super.update(e,s),this.getContainer().alpha=0}getSize(){return{width:0,height:0}}}class uk extends xt{texture;sprite;isPlaying;volumeKeyframeBuilder;syncTimer;activeSyncTimer;skipVideoUpdate;constructor(e,s){super(e,s,Qe.Video),this.texture=null,this.sprite=null,this.isPlaying=!1;const a=this.clipConfiguration.asset;this.volumeKeyframeBuilder=new Pa(a.volume??1,this.getLength()),this.syncTimer=0,this.activeSyncTimer=0,this.skipVideoUpdate=!1}async load(){await super.load(),await this.loadVideo(),this.configureKeyframes()}update(e,s){if(super.update(e,s),this.skipVideoUpdate)return;const{trim:a=0}=this.clipConfiguration.asset;if(this.syncTimer+=s,!this.texture)return;const i=this.getPlaybackTime(),r=this.edit.isPlaying&&this.isActive();r&&(this.isPlaying||(this.isPlaying=!0,this.activeSyncTimer=0,this.texture.source.resource.currentTime=i+a,this.texture.source.resource.play().catch(console.error)),this.texture.source.resource.volume!==this.getVolume()&&(this.texture.source.resource.volume=this.getVolume()),this.activeSyncTimer+=s,this.activeSyncTimer>1e3&&(this.activeSyncTimer=0,Math.abs(this.texture.source.resource.currentTime-a-i)>.3&&(this.texture.source.resource.currentTime=i+a,this.edit.recordSyncCorrection()))),!r&&this.isPlaying&&(this.isPlaying=!1,this.texture.source.resource.pause());const n=this.syncTimer>100;!this.edit.isPlaying&&this.isActive()&&n&&(this.syncTimer=0,this.texture.source.resource.currentTime=i+a)}dispose(){super.dispose(),this.disposeVideo()}getSize(){return this.clipConfiguration.width&&this.clipConfiguration.height?{width:this.clipConfiguration.width,height:this.clipConfiguration.height}:{width:this.sprite?.width??0,height:this.sprite?.height??0}}supportsEdgeResize(){return!0}async reloadAsset(){this.skipVideoUpdate=!0,this.disposeVideo(),await this.loadVideo(),this.isPlaying=!1,this.syncTimer=0,this.activeSyncTimer=0,this.skipVideoUpdate=!1}async loadVideo(){const e=this.clipConfiguration.asset,{src:s}=e;if(s.endsWith(".mov"))throw new Error(`Video source '${s}' is not supported. .mov files cannot be played in the browser. Please convert to .webm or .mp4 first.`);const a=`${s}${s.includes("?")?"&":"?"}x-cors=1`,i={src:a,data:{autoPlay:!1,muted:!1}},r=await this.edit.assetLoader.loadVideoUnique(a,i);if(!r||!(r.source instanceof X.VideoSource))throw new Error(`Invalid video source '${s}'.`);r.source.alphaMode="no-premultiply-alpha",this.texture=this.createCroppedTexture(r);const n=this.texture.source.resource;n instanceof HTMLVideoElement&&n.readyState<2&&await new Promise(o=>{const l=()=>{n.removeEventListener("loadeddata",l),o()};n.addEventListener("loadeddata",l),n.readyState>=2&&o()}),this.sprite=new X.Sprite(this.texture),this.contentContainer.addChild(this.sprite)}disposeVideo(){this.texture?.source?.resource&&(this.texture.source.resource.pause(),this.texture.source.resource.src="",this.texture.source.resource.load()),this.sprite&&(this.contentContainer.removeChild(this.sprite),this.sprite.destroy(),this.sprite=null),this.texture&&(this.texture.destroy(!0),this.texture=null)}getVolume(){return this.volumeKeyframeBuilder.getValue(this.getPlaybackTime())}getCurrentDrift(){if(!this.texture?.source?.resource)return 0;const{trim:e=0}=this.clipConfiguration.asset,s=this.texture.source.resource.currentTime,a=this.getPlaybackTime();return Math.abs(s-e-a)}createCroppedTexture(e){const s=this.clipConfiguration.asset;if(!s.crop)return e;const a=e.width,i=e.height;if(a<=0||i<=0)return e;const r=Math.floor((s.crop?.left??0)*a),n=Math.floor((s.crop?.right??0)*a),o=Math.floor((s.crop?.top??0)*i),l=Math.floor((s.crop?.bottom??0)*i),c=r,f=o,h=a-r-n,d=i-o-l,m=new X.Rectangle(c,f,h,d);return new X.Texture({source:e.source,frame:m})}}class I0{static create(e,s){if(!s.asset?.type)throw new Error("Invalid clip configuration: missing asset type");switch(s.asset.type){case"text":return new ka(e,s);case"rich-text":return new Ca(e,s);case"shape":return new ok(e,s);case"html":return new Ou(e,s);case"image":return new Mu(e,s);case"video":return new uk(e,s);case"audio":return new uu(e,s);case"luma":return new Yu(e,s);case"caption":return new Vi(e,s);case"svg":return new ds(e,s);case"text-to-image":return new ck(e,s);case"image-to-video":return new Wu(e,s);case"text-to-speech":return new fk(e,s);default:throw new Error(`Unsupported asset type: ${s.asset.type}`)}}static cleanup(){ka.resetFontCache()}}function po(t,e,s,a){const i=new Map,r=`alias://${s}`;for(let n=0;n<t.getTrackCount();n+=1){const o=t.getClipsInTrack(n);for(let l=0;l<o.length;l+=1)if(!a?.has(`${n}:${l}`)){const c=o[l],f=c.id,h=e.timeline.tracks[n]?.clips[l];let d=!1;const m={};if(c.start===r&&(m.start=c.start,d=!0),c.length===r&&(m.length=c.length,d=!0),d&&f&&h){i.set(f,m);const b={};m.start&&(b.start=h.start),m.length&&(b.length=h.length),t.updateClip(n,l,b)}}}return i}function hk(t,e,s,a){const i=new Map;for(const r of s){const n=po(t,e,r,a);for(const[o,l]of n){const c=i.get(o);c?i.set(o,{...c,...l}):i.set(o,l)}}return i}function mo(t,e){for(const[s,a]of e){const i=t.getClipById(s);if(i){const r={};a.start&&(r.start=a.start),a.length&&(r.length=a.length),t.updateClip(i.trackIndex,i.clipIndex,r)}}}function dk(t){const e=[];for(const s of t){const{alias:a}=s;a&&e.push(a)}return e}const Fe=()=>({status:"success"}),et=t=>({status:"noop",message:t});class gk{constructor(e,s){this.trackIdx=e,this.clip=s}name="addClip";addedClipId;convertedReferences;execute(e){if(!e)throw new Error("AddClipCommand.execute: context is required");const s=e.getDocument();if(!s)throw new Error("AddClipCommand.execute: no document");const a=e.documentAddClip(this.trackIdx,this.clip);this.addedClipId=a.id,this.convertedReferences&&this.convertedReferences.size>0&&mo(s,this.convertedReferences),e.resolve(),e.updateDuration();const n=e.getDocumentTrack(this.trackIdx)?.clips?.findIndex(o=>o.id===this.addedClipId)??-1;return e.emitEvent(ce.ClipAdded,{trackIndex:this.trackIdx,clipIndex:n}),Fe()}undo(e){if(!e)throw new Error("AddClipCommand.undo: context is required");if(!this.addedClipId)return et("No clip ID stored");const s=e.getDocument();if(!s)throw new Error("AddClipCommand.undo: no document");const i=e.getDocumentTrack(this.trackIdx)?.clips,r=i?.findIndex(o=>o.id===this.addedClipId)??-1;if(r===-1)return et(`Clip ${this.addedClipId} not found in track ${this.trackIdx}`);const n=i?.[r]?.alias;if(n){const o=new Set([`${this.trackIdx}:${r}`]);this.convertedReferences=po(s,e.getEditState(),n,o)}return e.documentRemoveClip(this.trackIdx,r),e.resolve(),e.updateDuration(),e.emitEvent(ce.ClipDeleted,{trackIndex:this.trackIdx,clipIndex:r}),Fe()}dispose(){this.addedClipId=void 0,this.convertedReferences=void 0}}class pk{constructor(e){this.trackIdx=e}name="addTrack";execute(e){if(!e)throw new Error("AddTrackCommand.execute: context is required");const s=e.getDocument();if(!s)throw new Error("AddTrackCommand.execute: document is required");return s.addTrack(this.trackIdx),e.resolve(),e.updateDuration(),e.emitEvent(ce.TrackAdded,{trackIndex:this.trackIdx,totalTracks:s.getTrackCount()}),Fe()}undo(e){if(!e)throw new Error("AddTrackCommand.undo: context is required");const s=e.getDocument();if(!s)throw new Error("AddTrackCommand.undo: document is required");return s.removeTrack(this.trackIdx),e.resolve(),e.updateDuration(),Fe()}dispose(){}}class _0{constructor(e){this.trackIdx=e}name="deleteTrack";deletedClips=[];convertedReferences;execute(e){if(!e)throw new Error("DeleteTrackCommand.execute: context is required");const s=e.getDocument();if(!s)throw new Error("DeleteTrackCommand: no document");if(s.getTrackCount()<=1)return et("Cannot delete the last track");const a=s.getTrack(this.trackIdx);a&&(this.deletedClips=a.clips.map(r=>structuredClone(r)));const i=dk(this.deletedClips);if(i.length>0){const r=new Set;for(let n=0;n<this.deletedClips.length;n+=1)r.add(`${this.trackIdx}:${n}`);this.convertedReferences=hk(s,e.getEditState(),i,r)}return s.removeTrack(this.trackIdx),e.resolve(),e.updateDuration(),e.emitEvent(ce.TrackRemoved,{trackIndex:this.trackIdx}),Fe()}undo(e){if(!e)throw new Error("DeleteTrackCommand.undo: context is required");const s=e.getDocument();if(!s)throw new Error("DeleteTrackCommand.undo: no document");s.addTrack(this.trackIdx);for(let a=0;a<this.deletedClips.length;a+=1)s.addClip(this.trackIdx,this.deletedClips[a],a);return this.convertedReferences&&this.convertedReferences.size>0&&mo(s,this.convertedReferences),e.resolve(),e.updateDuration(),e.emitEvent(ce.TrackAdded,{trackIndex:this.trackIdx,totalTracks:s.getTrackCount()}),Fe()}dispose(){this.deletedClips=[],this.convertedReferences=void 0}}class yo{constructor(e,s){this.trackIdx=e,this.clipIdx=s}name="deleteClip";deletedClipConfig;deletedClipId;deleteTrackCommand;trackWasDeleted=!1;storedBindings;convertedReferences;execute(e){if(!e)throw new Error("DeleteClipCommand.execute: context is required");const s=e.getDocument();if(!s)throw new Error("DeleteClipCommand: no document");const a=s.getClip(this.trackIdx,this.clipIdx);if(!a)return et(`No clip at track ${this.trackIdx}, index ${this.clipIdx}`);if(this.deletedClipConfig=structuredClone(a),this.deletedClipId=a.id,this.deletedClipId){const o=e.getClipBindings(this.deletedClipId);this.storedBindings=o?new Map(o):void 0,s.clearClipBindings(this.deletedClipId)}const i=a.alias;if(i){const o=new Set([`${this.trackIdx}:${this.clipIdx}`]);this.convertedReferences=po(s,e.getEditState(),i,o)}e.clearClipError(this.trackIdx,this.clipIdx);const r=e.getSelectedClip();r&&this.deletedClipId&&r.clipId===this.deletedClipId&&(e.setSelectedClip(null),e.emitEvent(ce.SelectionCleared)),e.documentRemoveClip(this.trackIdx,this.clipIdx);const n=s.getTrack(this.trackIdx);return n&&n.clips.length===0&&(this.deleteTrackCommand=new _0(this.trackIdx),this.deleteTrackCommand.execute(e).status==="success"&&(this.trackWasDeleted=!0)),e.resolve(),e.updateDuration(),e.emitEvent(ce.ClipDeleted,{trackIndex:this.trackIdx,clipIndex:this.clipIdx}),Fe()}undo(e){if(!e)throw new Error("DeleteClipCommand.undo: context is required");if(!this.deletedClipConfig)return et("No deleted clip config");const s=e.getDocument();if(!s)throw new Error("DeleteClipCommand.undo: no document");this.trackWasDeleted&&s.addTrack(this.trackIdx);const i=e.documentAddClip(this.trackIdx,this.deletedClipConfig,this.clipIdx).id;return i&&this.storedBindings&&this.storedBindings.size>0&&s.setClipBindingsForClip(i,this.storedBindings),this.convertedReferences&&this.convertedReferences.size>0&&mo(s,this.convertedReferences),e.resolve(),e.updateDuration(),this.trackWasDeleted&&(e.emitEvent(ce.TrackAdded,{trackIndex:this.trackIdx,totalTracks:s.getTrackCount()}),this.trackWasDeleted=!1),e.emitEvent(ce.ClipRestored,{trackIndex:this.trackIdx,clipIndex:this.clipIdx}),Fe()}dispose(){this.deletedClipConfig=void 0,this.deletedClipId=void 0,this.deleteTrackCommand=void 0,this.storedBindings=void 0,this.convertedReferences=void 0}}class mk{constructor(e){this.aspectRatio=e}name="setOutputAspectRatio";previousAspectRatio;execute(e){if(!e)throw new Error("SetOutputAspectRatioCommand requires context");return this.previousAspectRatio=e.getOutputAspectRatio(),e.setOutputAspectRatio(this.aspectRatio),Fe()}undo(e){if(!e)throw new Error("SetOutputAspectRatioCommand requires context");return this.previousAspectRatio===void 0?et("No previous aspect ratio stored"):(e.setOutputAspectRatio(this.previousAspectRatio),Fe())}dispose(){this.previousAspectRatio=void 0}}class yk{constructor(e){this.destinations=e}name="setOutputDestinations";previousDestinations;execute(e){if(!e)throw new Error("SetOutputDestinationsCommand requires context");return this.previousDestinations=e.getOutputDestinations(),e.setOutputDestinations(this.destinations),Fe()}undo(e){if(!e)throw new Error("SetOutputDestinationsCommand requires context");return this.previousDestinations===void 0?et("No previous destinations stored"):(e.setOutputDestinations(this.previousDestinations),Fe())}dispose(){this.previousDestinations=void 0}}class bk{constructor(e){this.format=e}name="setOutputFormat";previousFormat;execute(e){if(!e)throw new Error("SetOutputFormatCommand requires context");return this.previousFormat=e.getOutputFormat(),e.setOutputFormat(this.format),Fe()}undo(e){if(!e)throw new Error("SetOutputFormatCommand requires context");return this.previousFormat===void 0?et("No previous format stored"):(e.setOutputFormat(this.previousFormat),Fe())}dispose(){this.previousFormat=void 0}}class wk{constructor(e){this.fps=e}name="setOutputFps";previousFps;execute(e){if(!e)throw new Error("SetOutputFpsCommand requires context");return this.previousFps=e.getOutputFps(),e.setOutputFps(this.fps),Fe()}undo(e){if(!e)throw new Error("SetOutputFpsCommand requires context");return this.previousFps===void 0?et("No previous FPS stored"):(e.setOutputFps(this.previousFps),Fe())}dispose(){this.previousFps=void 0}}class vk{constructor(e){this.resolution=e}name="setOutputResolution";previousResolution;execute(e){if(!e)throw new Error("SetOutputResolutionCommand requires context");return this.previousResolution=e.getOutputResolution(),e.setOutputResolution(this.resolution),Fe()}undo(e){if(!e)throw new Error("SetOutputResolutionCommand requires context");return this.previousResolution===void 0?et("No previous resolution stored"):(e.setOutputResolution(this.previousResolution),Fe())}dispose(){this.previousResolution=void 0}}class xk{constructor(e,s){this.width=e,this.height=s}name="setOutputSize";previousSize;execute(e){if(!e)throw new Error("SetOutputSizeCommand requires context");return this.previousSize=e.getOutputSize(),e.setOutputSize(this.width,this.height),Fe()}undo(e){if(!e)throw new Error("SetOutputSizeCommand requires context");return this.previousSize?(e.setOutputSize(this.previousSize.width,this.previousSize.height),Fe()):et("No previous size stored")}dispose(){this.previousSize=void 0}}class Ck{constructor(e){this.color=e}name="setTimelineBackground";previousColor;execute(e){if(!e)throw new Error("SetTimelineBackgroundCommand requires context");return this.previousColor=e.getTimelineBackground(),e.setTimelineBackground(this.color),Fe()}undo(e){if(!e)throw new Error("SetTimelineBackgroundCommand requires context");return this.previousColor===void 0?et("No previous color stored"):(e.setTimelineBackground(this.previousColor),Fe())}dispose(){this.previousColor=void 0}}function Pt(t){const{id:e,...s}=t;return s}function Tr(t){return!!(t&&typeof t=="object"&&!Array.isArray(t))}function Pr(t,e){const s={...t};return Tr(t)&&Tr(e)&&Object.keys(e).forEach(a=>{if(a==="__proto__"||a==="constructor"||a==="prototype")return;const i=e[a],r=t[a];Tr(i)?a in t&&Tr(r)?s[a]=Pr(r,i):s[a]=Pr({},i):s[a]=i}),s}function Er(t,e,s){const a=e.split(".");let i=t;for(let r=0;r<a.length-1;r+=1){if(i==null||typeof i!="object")return;i=i[a[r]]}i!=null&&typeof i=="object"&&(i[a[a.length-1]]=s)}function fi(t,e){const s=e.split(".");let a=t;for(const i of s){if(a==null||typeof a!="object")return;a=a[i]}return a}class bo{constructor(e,s,a){this.initialClipConfig=e,this.finalClipConfig=s,this.trackIndex=a?.trackIndex??-1,this.clipIndex=a?.clipIndex??-1}name="setUpdatedClip";clipId=null;storedInitialConfig=null;storedFinalConfig=null;storedInitialBindings=new Map;previousDocClip=null;trackIndex;clipIndex;async execute(e){if(!e)throw new Error("SetUpdatedClipCommand.execute: context is required");const s=e.getDocument();if(!s)throw new Error("SetUpdatedClipCommand.execute: document is required");const a=e.getClipAt(this.trackIndex,this.clipIndex);if(!a)return et(`Invalid clip at ${this.trackIndex}/${this.clipIndex}`);this.clipId=a.clipId,this.storedInitialConfig||(this.storedInitialConfig=this.initialClipConfig?structuredClone(this.initialClipConfig):structuredClone(a.clipConfiguration)),this.storedFinalConfig||(this.storedFinalConfig=this.finalClipConfig?structuredClone(this.finalClipConfig):structuredClone(a.clipConfiguration));const i=e.getDocumentClip(this.trackIndex>=0?this.trackIndex:a.layer-1,this.clipIndex>=0?this.clipIndex:e.getTracks()[a.layer-1]?.indexOf(a)??-1);this.previousDocClip=i?structuredClone(i):null;const r=this.clipId?e.getClipBindings(this.clipId):void 0;this.storedInitialBindings=r?new Map(r):new Map;const n=this.trackIndex>=0?this.trackIndex:a.layer-1,o=this.clipIndex>=0?this.clipIndex:e.getTracks()[n]?.indexOf(a)??-1,l=this.storedFinalConfig??this.finalClipConfig;l&&s.replaceClipProperties(n,o,l),e.resolve();const c=e.getClipAt(n,o);for(const[I,{resolvedValue:M}]of this.storedInitialBindings)(c?fi(c.clipConfiguration,I):void 0)!==M&&this.clipId&&e.removeClipBinding(this.clipId,I);const f=this.storedInitialConfig??this.initialClipConfig,h=this.storedFinalConfig??this.finalClipConfig,d=f?.asset,m=h?.asset;if(d?.src!==m?.src){const I=e.getClipAt(n,o);I&&I.getTimingIntent().length==="auto"&&await e.resolveClipAutoLength(I)}const b=e.getDocumentClip(n,o);if(!this.previousDocClip||!b)throw new Error(`SetUpdatedClipCommand: document clip not found after mutation at ${n}/${o}`);return e.emitEvent(ce.ClipUpdated,{previous:{clip:Pt(this.previousDocClip),trackIndex:n,clipIndex:o},current:{clip:Pt(b),trackIndex:n,clipIndex:o}}),Fe()}async undo(e){if(!e)throw new Error("SetUpdatedClipCommand.undo: context is required");const s=this.storedInitialConfig??this.initialClipConfig;if(!s)return et("No stored initial config");const a=e.getDocument();if(!a)throw new Error("SetUpdatedClipCommand.undo: document is required");const i=this.clipId?e.getPlayerByClipId(this.clipId):e.getClipAt(this.trackIndex,this.clipIndex);if(!i)return et("Clip not found for undo");const r=this.trackIndex>=0?this.trackIndex:i.layer-1,n=this.clipIndex>=0?this.clipIndex:e.getTracks()[r]?.indexOf(i)??-1,o=structuredClone(e.getDocumentClip(r,n));if(a.replaceClipProperties(r,n,s),e.resolve(),this.clipId){const d=new Map(this.storedInitialBindings);d.size>0?e.getDocument()?.setClipBindingsForClip(this.clipId,d):e.getDocument()?.clearClipBindings(this.clipId)}const c=(this.storedFinalConfig??this.finalClipConfig)?.asset,f=s?.asset;if(c?.src!==f?.src){const d=e.getClipAt(r,n);d&&d.getTimingIntent().length==="auto"&&await e.resolveClipAutoLength(d)}const h=e.getDocumentClip(r,n);if(!o||!h)throw new Error(`SetUpdatedClipCommand: document clip not found after undo at ${r}/${n}`);return e.emitEvent(ce.ClipUpdated,{previous:{clip:Pt(o),trackIndex:r,clipIndex:n},current:{clip:Pt(h),trackIndex:r,clipIndex:n}}),Fe()}dispose(){this.clipId=null,this.storedInitialConfig=null,this.storedFinalConfig=null,this.storedInitialBindings.clear(),this.previousDocClip=null}}class kk{constructor(e,s,a){this.trackIndex=e,this.clipIndex=s,this.splitTime=a}name="SplitClip";originalClipConfig=null;rightClipId=null;execute(e){const s=e.getDocument();if(!s)throw new Error("Cannot split clip: no document");const a=s.getClip(this.trackIndex,this.clipIndex);if(!a)return et(`No clip at ${this.trackIndex}/${this.clipIndex}`);const i=e.getClipAt(this.trackIndex,this.clipIndex),r=i?.clipConfiguration.start??0,n=i?.clipConfiguration.length??0,o=.1,l=this.splitTime-r;if(l<=o||l>=n-o)return et("Split point too close to clip boundaries");this.originalClipConfig=structuredClone(a);const c=l,f=structuredClone(a);if(a.start==="auto"?f.start="auto":f.start=r+l,f.length=n-l,a.asset&&(a.asset.type==="video"||a.asset.type==="audio")){const d=a.asset.trim||0;f.asset&&(f.asset.type==="video"||f.asset.type==="audio")&&(f.asset.trim=d+l)}e.documentUpdateClip(this.trackIndex,this.clipIndex,{length:c});const h=e.documentAddClip(this.trackIndex,f,this.clipIndex+1);return this.rightClipId=h.id??null,e.resolve(),e.updateDuration(),e.emitEvent(ce.ClipSplit,{trackIndex:this.trackIndex,originalClipIndex:this.clipIndex,newClipIndex:this.clipIndex+1}),Fe()}undo(e){return this.originalClipConfig?(e.documentRemoveClip(this.trackIndex,this.clipIndex+1),e.documentUpdateClip(this.trackIndex,this.clipIndex,this.originalClipConfig),e.resolve(),e.updateDuration(),e.emitEvent(ce.ClipDeleted,{trackIndex:this.trackIndex,clipIndex:this.clipIndex+1}),Fe()):et("No original clip config stored")}dispose(){this.originalClipConfig=null,this.rightClipId=null}}class Nk{constructor(e,s,a){this.trackIndex=e,this.clipIndex=s,this.params=a}name="UpdateClipTiming";originalStart;originalLength;clipId;execute(e){if(!e)throw new Error("UpdateClipTimingCommand.execute: context is required");const s=e.getDocument();if(!s)throw new Error("UpdateClipTimingCommand.execute: document is required");const i=e.getDocumentTrack(this.trackIndex)?.clips[this.clipIndex];if(!i)return et(`Invalid clip at ${this.trackIndex}/${this.clipIndex}`);const r=e.getClipAt(this.trackIndex,this.clipIndex);if(!r)return et(`Player not found at ${this.trackIndex}/${this.clipIndex}`);this.originalStart=i.start,this.originalLength=i.length,this.clipId=r.clipId??void 0;const n=structuredClone(i),o={};this.params.start!==void 0&&(o.start=this.params.start),this.params.length!==void 0&&(o.length=this.params.length),s.updateClip(this.trackIndex,this.clipIndex,o),this.clipId?e.resolveClip(this.clipId):e.resolve(),o.length==="auto"&&e.resolveClipAutoLength(r).then(()=>{e.updateDuration(),e.propagateTimingChanges(this.trackIndex,this.clipIndex)}),e.updateDuration();const l=e.getDocumentClip(this.trackIndex,this.clipIndex);if(!l)throw new Error(`UpdateClipTimingCommand: document clip not found after mutation at ${this.trackIndex}/${this.clipIndex}`);return e.emitEvent(ce.ClipUpdated,{previous:{trackIndex:this.trackIndex,clipIndex:this.clipIndex,clip:Pt(n)},current:{trackIndex:this.trackIndex,clipIndex:this.clipIndex,clip:Pt(l)}}),e.propagateTimingChanges(this.trackIndex,this.clipIndex),Fe()}undo(e){if(!e)throw new Error("UpdateClipTimingCommand.undo: context is required");if(this.originalStart===void 0&&this.originalLength===void 0)throw new Error("UpdateClipTimingCommand.undo: no original values");const s=e.getDocument();if(!s)throw new Error("UpdateClipTimingCommand.undo: document is required");const a=e.getClipAt(this.trackIndex,this.clipIndex);if(!a)throw new Error("UpdateClipTimingCommand.undo: player not found");const i=structuredClone(e.getDocumentClip(this.trackIndex,this.clipIndex)),r={};this.originalStart!==void 0&&(r.start=this.originalStart),this.originalLength!==void 0&&(r.length=this.originalLength),s.updateClip(this.trackIndex,this.clipIndex,r),this.clipId?e.resolveClip(this.clipId):e.resolve(),this.originalLength==="auto"&&e.resolveClipAutoLength(a).then(()=>{e.updateDuration(),e.propagateTimingChanges(this.trackIndex,this.clipIndex)}),e.updateDuration();const n=e.getDocumentClip(this.trackIndex,this.clipIndex);if(!i||!n)throw new Error(`UpdateClipTimingCommand: document clip not found after undo at ${this.trackIndex}/${this.clipIndex}`);return e.emitEvent(ce.ClipUpdated,{previous:{trackIndex:this.trackIndex,clipIndex:this.clipIndex,clip:Pt(i)},current:{trackIndex:this.trackIndex,clipIndex:this.clipIndex,clip:Pt(n)}}),e.propagateTimingChanges(this.trackIndex,this.clipIndex),Fe()}}class Ak{constructor(e,s,a){this.trackIndex=e,this.clipIndex=s,this.newText=a}name="updateTextContent";clipId=null;previousText="";previousDocClip;execute(e){if(!e)throw new Error("UpdateTextContentCommand.execute: context is required");const s=e.getDocument();if(!s)throw new Error("UpdateTextContentCommand.execute: document is required");const a=e.getClipAt(this.trackIndex,this.clipIndex);if(!a)return et(`Invalid clip at ${this.trackIndex}/${this.clipIndex}`);const i=s.getClip(this.trackIndex,this.clipIndex);if(!i)return et("Clip not found in document");this.clipId=a.clipId,this.previousDocClip=structuredClone(i);const r=i.asset;this.previousText=r&&"text"in r?r.text??"":"";const o={...i.asset,text:this.newText};s.updateClip(this.trackIndex,this.clipIndex,{asset:o}),this.clipId?e.resolveClip(this.clipId):e.resolve();const l=e.getDocumentClip(this.trackIndex,this.clipIndex);if(!this.previousDocClip||!l)throw new Error(`UpdateTextContentCommand: document clip not found after mutation at ${this.trackIndex}/${this.clipIndex}`);return e.emitEvent(ce.ClipUpdated,{previous:{clip:Pt(this.previousDocClip),trackIndex:this.trackIndex,clipIndex:this.clipIndex},current:{clip:Pt(l),trackIndex:this.trackIndex,clipIndex:this.clipIndex}}),Fe()}undo(e){if(!e)throw new Error("UpdateTextContentCommand.undo: context is required");const s=e.getDocument();if(!s)throw new Error("UpdateTextContentCommand.undo: document is required");const a=structuredClone(e.getDocumentClip(this.trackIndex,this.clipIndex)),i=s.getClip(this.trackIndex,this.clipIndex);if(!i)return et("Clip not found for undo");const n={...i.asset,text:this.previousText};s.updateClip(this.trackIndex,this.clipIndex,{asset:n}),this.clipId?e.resolveClip(this.clipId):e.resolve();const o=e.getDocumentClip(this.trackIndex,this.clipIndex);if(this.previousDocClip){if(!a||!o)throw new Error(`UpdateTextContentCommand: document clip not found after undo at ${this.trackIndex}/${this.clipIndex}`);e.emitEvent(ce.ClipUpdated,{previous:{clip:Pt(a),trackIndex:this.trackIndex,clipIndex:this.clipIndex},current:{clip:Pt(o),trackIndex:this.trackIndex,clipIndex:this.clipIndex}})}return Fe()}dispose(){this.clipId=null,this.previousDocClip=void 0}}class F0{events;constructor(){this.events={}}on(e,s){return this.events[e]||(this.events[e]=new Set),this.events[e].add(s),()=>this.off(e,s)}once(e,s){const a=i=>{this.off(e,a),s(i)};return this.on(e,a)}off(e,s){this.events[e]&&(this.events[e].delete(s),!(this.events[e].size>0)&&delete this.events[e])}clear(e){delete this.events[e]}emit(e,...s){if(!this.events[e])return;const a=s[0];for(const i of this.events[e])i(a)}}const T0=.5,Sk=1/30;class Vk{constructor(e,s,a){this.getCanvas=e,this.getTracks=s,this.events=a,this.onClipChangedBound=()=>this.rebuildLumaMasksIfNeeded(),this.onPlayerLoadedBound=i=>this.onPlayerLoaded(i)}activeLumaMasks=[];pendingMaskCleanup=[];onClipChangedBound;onPlayerLoadedBound;initialize(){this.setupEventListeners()}update(){this.updateLumaMasks(),this.processPendingMaskCleanup()}getActiveMaskCount(){return this.activeLumaMasks.length}dispose(){this.removeEventListeners();for(const e of this.activeLumaMasks)e.tempContainer.destroy({children:!0}),e.maskSprite.destroy({texture:!0});this.activeLumaMasks=[];for(const e of this.pendingMaskCleanup)try{e.maskSprite.parent?.removeChild(e.maskSprite),e.maskSprite.destroy({texture:!0})}catch{}this.pendingMaskCleanup=[]}cleanupForPlayer(e){const s=this.activeLumaMasks.findIndex(i=>i.lumaPlayer===e);if(s===-1)return;const a=this.activeLumaMasks[s];a.contentClip&&(a.contentClip.getContentContainer().mask=null),a.maskSprite.parent?.removeChild(a.maskSprite),a.tempContainer.destroy({children:!0}),this.activeLumaMasks.splice(s,1),this.pendingMaskCleanup.push({maskSprite:a.maskSprite,frameCount:0})}onPlayerLoaded(e){const{player:s,trackIndex:a}=e;if(s.playerType!==Qe.Luma)return;const i=s,r=i.getSprite();if(!r?.texture){console.warn("PlayerLoaded fired for luma player before texture ready");return}const n=this.getTracks();if(a>=n.length)return;const l=n[a].filter(f=>f.playerType!==Qe.Luma);l.length===0||this.activeLumaMasks.find(f=>f.lumaPlayer===i)||(this.setupLumaMask(i,r.texture,l[0]),i.getContainer().parent?.removeChild(i.getContainer()))}setupLumaMask(e,s,a){const i=this.getCanvas();if(!i)return;const{renderer:r}=i.application,{width:n,height:o}=a.getSize(),l=new X.Container,c=new X.Sprite(s);c.width=n,c.height=o;const f=new X.ColorMatrixFilter;f.negative(!1),c.filters=[f],l.addChild(c);const h=r.generateTexture({target:l,resolution:T0}),d=new X.Sprite(h);a.getContainer().addChild(d);const m=a.getContentContainer();m.mask=d,this.activeLumaMasks.push({lumaPlayer:e,maskSprite:d,tempContainer:l,contentClip:a,lastVideoTime:-1})}updateLumaMasks(){const e=this.getCanvas();if(!e)return;const{renderer:s}=e.application;for(const a of this.activeLumaMasks)if(a.lumaPlayer.isVideoSource()){const i=a.lumaPlayer.getVideoCurrentTime();if(Math.abs(i-a.lastVideoTime)>=Sk){a.lastVideoTime=i;const n=a.maskSprite.texture;a.maskSprite.texture=s.generateTexture({target:a.tempContainer,resolution:T0}),n.destroy(!0)}}}setupEventListeners(){this.events.on(ot.PlayerLoaded,this.onPlayerLoadedBound),this.events.on(ce.ClipUpdated,this.onClipChangedBound)}removeEventListeners(){this.events.off(ot.PlayerLoaded,this.onPlayerLoadedBound),this.events.off(ce.ClipUpdated,this.onClipChangedBound)}processPendingMaskCleanup(){for(let e=this.pendingMaskCleanup.length-1;e>=0;e-=1){const s=this.pendingMaskCleanup[e];if(s.frameCount+=1,s.frameCount>=3){try{s.maskSprite.parent?.removeChild(s.maskSprite),s.maskSprite.destroy({texture:!0})}catch{}this.pendingMaskCleanup.splice(e,1)}}}rebuildLumaMasksIfNeeded(){if(!this.getCanvas())return;const s=this.getTracks();for(let a=0;a<s.length;a+=1){const i=s[a],r=i.find(l=>l.playerType===Qe.Luma),n=i.filter(l=>l.playerType!==Qe.Luma);r&&r.getContainer().parent?.removeChild(r.getContainer());const o=r&&this.activeLumaMasks.find(l=>l.lumaPlayer===r);if(r&&!o&&n.length>0){const l=r.getSprite();l?.texture&&this.setupLumaMask(r,l.texture,n[0])}}}}function Ik(t){return{find:t.name,replace:t.defaultValue}}function _k(t){const e=typeof t.replace=="string"?t.replace:JSON.stringify(t.replace);return{name:t.find,defaultValue:e}}const Fk=/\{\{\s*([A-Z_0-9]+)\s*\}\}/gi,wo=/\{\{\s*[A-Z_0-9]+\s*\}\}/i;class Tk{fields=new Map;events;constructor(e){this.events=e}register(e,s){const a=!this.fields.has(e.name);this.fields.set(e.name,e),s?.silent||(this.events.emit(a?ce.MergeFieldRegistered:ce.MergeFieldUpdated,{field:e}),this.events.emit(ce.MergeFieldChanged,{fields:this.getAll()}))}remove(e,s){const a=this.fields.delete(e);return a&&!s?.silent&&(this.events.emit(ce.MergeFieldRemoved,{name:e}),this.events.emit(ce.MergeFieldChanged,{fields:this.getAll()})),a}get(e){return this.fields.get(e)}getAll(){return Array.from(this.fields.values())}clear(){this.fields.clear()}resolve(e){return!e||this.fields.size===0?e:e.replace(Fk,(s,a)=>this.fields.get(a)?.defaultValue??s)}resolveToNumber(e){if(!this.isMergeFieldTemplate(e))return null;const s=this.resolve(e),a=parseFloat(s);return Number.isFinite(a)?a:null}hasUnresolved(e){if(!e)return!1;const s=this.resolve(e);return wo.test(s)}extractFieldName(e){if(!e)return null;const s=wo.exec(e);if(!s)return null;const a=s[0].match(/\{\{\s*([A-Z_0-9]+)\s*\}\}/i);return a?a[1]:null}isMergeFieldTemplate(e){return wo.test(e)}createTemplate(e){return`{{ ${e} }}`}toSerializedArray(){return this.getAll().map(Ik)}loadFromSerialized(e){this.fields.clear();for(const s of e){const a=_k(s);this.fields.set(s.find,a)}}generateUniqueName(e){const s=new Set(this.fields.keys());let a=1;for(;s.has(`${e}_${a}`);)a+=1;return`${e}_${a}`}}const Pk={preview:{width:512,height:288},mobile:{width:640,height:360},sd:{width:1024,height:576},hd:{width:1280,height:720},1080:{width:1920,height:1080},"4k":{width:3840,height:2160}};function vo(t,e="16:9"){const s=Pk[t];if(!s)throw new Error(`Unknown resolution: ${t}`);switch(e){case"16:9":return{width:s.width,height:s.height};case"9:16":return{width:s.height,height:s.width};case"1:1":return{width:s.height,height:s.height};case"4:5":return{width:Math.round(s.height*4/5),height:s.height};case"4:3":return{width:Math.round(s.height*4/3),height:s.height};default:throw new Error(`Unknown aspectRatio: ${e}`)}}class Ek{constructor(e){this.edit=e}setSize(e,s){const a=ew.safeParse({width:e,height:s});if(!a.success)throw new Error(`Invalid size: ${a.error.issues[0]?.message}`);const i={width:e,height:s};this.edit.size=i;const r=this.edit.getResolvedEdit();r&&(r.output={...r.output,size:i},delete r.output.resolution,delete r.output.aspectRatio);const n=this.edit.getDocument();n?.setSize(i),n?.clearResolution(),n?.clearAspectRatio(),this.edit.updateCanvasForSize(),this.edit.events.emit(ce.OutputResized,i)}getSize(){return this.edit.size}setFps(e){const s=sw.safeParse(e);if(!s.success)throw new Error(`Invalid fps: ${s.error.issues[0]?.message}`);const a=this.edit.getResolvedEdit();a&&(a.output={...a.output,fps:s.data}),this.edit.getDocument()?.setFps(s.data),this.edit.events.emit(ce.OutputFpsChanged,{fps:e})}getFps(){return this.edit.getResolvedEdit()?.output?.fps??30}setFormat(e){const s=tw.safeParse(e);if(!s.success)throw new Error(`Invalid format: ${s.error.issues[0]?.message}`);const a=this.edit.getResolvedEdit();a&&(a.output={...a.output,format:s.data}),this.edit.getDocument()?.setFormat(s.data),this.edit.events.emit(ce.OutputFormatChanged,{format:s.data})}getFormat(){return this.edit.getResolvedEdit()?.output?.format??"mp4"}setDestinations(e){const s=$b.array().safeParse(e);if(!s.success)throw new Error(`Invalid destinations: ${s.error.message}`);const a=this.edit.getResolvedEdit();a&&(a.output={...a.output,destinations:s.data}),this.edit.events.emit(ce.OutputDestinationsChanged,{destinations:s.data})}getDestinations(){return this.edit.getResolvedEdit()?.output?.destinations??[]}setResolution(e){const s=aw.safeParse(e);if(!s.success||!s.data)throw new Error(`Invalid resolution: ${s.success?"resolution is required":s.error.issues[0]?.message}`);const a=s.data,i=this.edit.getResolvedEdit(),r=i?.output?.aspectRatio??"16:9",n=vo(a,r);this.edit.size=n,i&&(i.output={...i.output,resolution:a},delete i.output.size);const o=this.edit.getDocument();o?.setResolution(a),o?.clearSize(),this.edit.updateCanvasForSize(),this.edit.events.emit(ce.OutputResolutionChanged,{resolution:a}),this.edit.events.emit(ce.OutputResized,{width:n.width,height:n.height})}getResolution(){return this.edit.getResolvedEdit()?.output?.resolution}setAspectRatio(e){const s=iw.safeParse(e);if(!s.success||!s.data)throw new Error(`Invalid aspectRatio: ${s.success?"aspectRatio is required":s.error.issues[0]?.message}`);const a=s.data,i=this.edit.getResolvedEdit(),r=i?.output?.resolution;if(!r){i&&(i.output={...i.output,aspectRatio:a}),this.edit.getDocument()?.setAspectRatio(a),this.edit.events.emit(ce.OutputAspectRatioChanged,{aspectRatio:a});return}const n=vo(r,a);this.edit.size=n,i&&(i.output={...i.output,aspectRatio:a},delete i.output.size);const o=this.edit.getDocument();o?.setAspectRatio(a),o?.clearSize(),this.edit.updateCanvasForSize(),this.edit.events.emit(ce.OutputAspectRatioChanged,{aspectRatio:a}),this.edit.events.emit(ce.OutputResized,{width:n.width,height:n.height})}getAspectRatio(){return this.edit.getResolvedEdit()?.output?.aspectRatio}}class Ok{constructor(e){this.edit=e}selectedClip=null;copiedClip=null;selectClip(e,s){const a=this.edit.getPlayerClip(e,s);if(a){this.selectedClip=a;const i=this.edit.getDocumentClip(e,s);i&&this.edit.events.emit(ce.ClipSelected,{clip:Pt(i),trackIndex:e,clipIndex:s})}}selectPlayer(e){const s=this.findClipIndices(e);s&&this.selectClip(s.trackIndex,s.clipIndex)}clearSelection(){this.selectedClip=null,this.edit.events.emit(ce.SelectionCleared)}isClipSelected(e,s){if(!this.selectedClip)return!1;const a=this.selectedClip.layer-1,r=this.edit.getTracks()[a];if(!r)return!1;const n=r.indexOf(this.selectedClip);return e===a&&s===n}isPlayerSelected(e){return this.edit.isInExportMode()?!1:this.selectedClip===e}getSelectedClipInfo(){if(!this.selectedClip)return null;const e=this.selectedClip.layer-1,a=this.edit.getTracks()[e];if(!a)return null;const i=a.indexOf(this.selectedClip);return{trackIndex:e,clipIndex:i,player:this.selectedClip}}getSelectedClip(){return this.selectedClip}setSelectedClip(e){this.selectedClip=e}copyClip(e,s){const a=this.edit.getResolvedClip(e,s);a&&(this.copiedClip={trackIndex:e,clipConfiguration:structuredClone(a)},this.edit.events.emit(ce.ClipCopied,{trackIndex:e,clipIndex:s}))}pasteClip(){if(!this.copiedClip)return;const e=structuredClone(this.copiedClip.clipConfiguration);e.start=this.edit.playbackTime,delete e.id,this.edit.addClip(this.copiedClip.trackIndex,e)}hasCopiedClip(){return this.copiedClip!==null}findClipIndices(e){const s=this.edit.getTracks();for(let a=0;a<s.length;a+=1){const i=s[a].indexOf(e);if(i!==-1)return{trackIndex:a,clipIndex:i}}return null}}const Mk=3;function Rk(t){return new Promise(e=>{const s=document.createElement("video");s.preload="metadata",s.crossOrigin="anonymous",s.onloadedmetadata=()=>e(s.duration),s.onerror=()=>e(null),s.src=t})}async function P0(t){const e=t;if(["video","audio","luma"].includes(e.type)&&e.src){const s=await Rk(e.src);if(s!==null&&!Number.isNaN(s)){const a=e.trim??0;return s-a}}return Mk}function E0(t,e,s){return e===0?0:s[t][e-1].getEnd()}function O0(t,e){return Math.max(0,e-t)}function xo(t){let e=0;for(const s of t)for(const a of s)a.getTimingIntent().length!=="end"&&(e=Math.max(e,a.getEnd()));return e}class zk{constructor(e){this.edit=e}cachedTimelineEnd=0;getTimelineEnd(){return this.cachedTimelineEnd}invalidateTimelineEndCache(){this.cachedTimelineEnd=0}async resolveAllTiming(){const e=this.edit.getTracks(),s=this.edit.getResolvedEdit();for(let r=0;r<e.length;r+=1){const n=e[r],o=s.timeline.tracks[r];for(let l=0;l<n.length;l+=1){const c=n[l],f=o?.clips[l];if(f){const h=c.getTimingIntent(),d=f.start;let m=f.length;h.length==="auto"&&(m=await P0(c.clipConfiguration.asset)),c.setResolvedTiming({start:d,length:m})}}}const a=xo(e);this.cachedTimelineEnd=a;const i=this.getEndLengthClips();for(const r of i){const n=r.getResolvedTiming();r.setResolvedTiming({start:n.start,length:O0(n.start,a)})}for(const r of i)r.reconfigureAfterRestore()}propagateTimingChanges(e,s){const a=this.edit.getTracks(),i=a[e];if(!i)return;for(let n=Math.max(0,s);n<i.length;n+=1){const o=i[n];if(o.getTimingIntent().start==="auto"){const l=E0(e,n,a);o.setResolvedTiming({start:l,length:o.getLength()}),o.reconfigureAfterRestore()}}this.propagateAliasChanges();const r=xo(a);if(r!==this.cachedTimelineEnd){this.cachedTimelineEnd=r;const n=this.getEndLengthClips();for(const o of n){const l=O0(o.getStart(),r),c=o.getLength();Math.abs(l-c)>.001&&(o.setResolvedTiming({start:o.getStart(),length:l}),o.reconfigureAfterRestore())}}this.edit.updateTotalDuration(),this.edit.events.emit(ce.TimelineUpdated,{current:this.edit.getEdit()})}propagateAliasChanges(){const e=this.edit.getTracks(),s=this.edit.getResolvedEdit();for(let a=0;a<e.length;a+=1){const i=e[a],r=s.timeline.tracks[a];for(let n=0;n<i.length;n+=1){const o=i[n],l=r?.clips[n],c=o.getTimingIntent(),f=Kt(c.start),h=Kt(c.length);if((f||h)&&l){const d=o.getStart(),m=o.getLength(),b=Math.abs(l.start-d)>.001,I=Math.abs(l.length-m)>.001;(b||I)&&(o.setResolvedTiming({start:l.start,length:l.length}),o.reconfigureAfterRestore())}}}}getEndLengthClips(){const e=this.edit.getTracks(),s=[];for(const a of e)for(const i of a)i.getTimingIntent().length==="end"&&s.push(i);return s}}class Lk extends F0{registry;constructor(){super(),this.registry={}}}class Or{static VIDEO_EXTENSIONS=[".mp4",".m4v",".webm",".ogg",".ogv"];static VIDEO_MIME={".mp4":"video/mp4",".m4v":"video/mp4",".webm":"video/webm",".ogg":"video/ogg",".ogv":"video/ogg"};loadTracker=new Lk;refCounts=new Map;incrementRef(e){this.refCounts.set(e,(this.refCounts.get(e)??0)+1)}decrementRef(e){const s=this.refCounts.get(e)??0;return s<=1?(this.refCounts.delete(e),!0):(this.refCounts.set(e,s-1),!1)}constructor(){X.Assets.setPreferences({crossOrigin:"anonymous"})}async load(e,s){this.updateAssetLoadMetadata(e,"pending",0),this.incrementRef(e);try{if(await this.shouldUseSafariVideoLoader(s))return await this.loadVideoForSafari(e,s);const i=await X.Assets.load(s,r=>{this.updateAssetLoadMetadata(e,"loading",r)});return this.updateAssetLoadMetadata(e,"success",1),i}catch(a){return console.warn(`[AssetLoader] Failed to load asset "${e}":`,a),this.updateAssetLoadMetadata(e,"failed",1),this.decrementRef(e),null}}async loadVideoUnique(e,s){this.updateAssetLoadMetadata(e,"pending",0);try{const a=this.extractUrl(s);if(!a)throw new Error("No URL provided for video loading");const i=typeof s=="object"?s.data??{}:{},r=await new Promise((n,o)=>{const l=document.createElement("video");l.crossOrigin="anonymous",l.playsInline=!0,l.muted=i.muted??!1,l.preload="auto",l.addEventListener("loadedmetadata",()=>{try{const c=new X.VideoSource({resource:l,autoPlay:i.autoPlay??!1,...i});n(new X.Texture({source:c}))}catch(c){o(c)}},{once:!0}),l.addEventListener("error",()=>o(new Error("Video loading failed")),{once:!0}),this.updateAssetLoadMetadata(e,"loading",.5),l.src=a});return this.updateAssetLoadMetadata(e,"success",1),r}catch{return this.updateAssetLoadMetadata(e,"failed",1),null}}getProgress(){const e=Object.keys(this.loadTracker.registry);return e.length===0?0:e.reduce((a,i)=>a+this.loadTracker.registry[i].progress,0)/e.length}extractUrl(e){if(typeof e=="string")return e;const s=Array.isArray(e.src)?e.src[0]:e.src;return typeof s=="string"?s:s?.src}hasVideoExtension(e){const s=new URL(e,window.location.origin).pathname.toLowerCase();return Or.VIDEO_EXTENSIONS.some(a=>s.endsWith(a))}async getContentType(e){try{return(await fetch(e,{method:"HEAD"})).headers.get("content-type")}catch{return null}}canPlayVideo(e){const s=new URL(e,window.location.origin).pathname.toLowerCase(),a=s.slice(s.lastIndexOf(".")),i=Or.VIDEO_MIME[a];return i?document.createElement("video").canPlayType(i)!=="":!1}async isPlayableVideo(e){if(this.hasVideoExtension(e))return this.canPlayVideo(e);const s=await this.getContentType(e);return s?.startsWith("video/")?document.createElement("video").canPlayType(s)!=="":!1}async shouldUseSafariVideoLoader(e){const s=/^((?!chrome|android).)*safari/i.test(navigator.userAgent),a=this.extractUrl(e);return s&&a!==void 0&&await this.isPlayableVideo(a)}async loadVideoForSafari(e,s){const a=this.extractUrl(s),i=typeof s=="object"?s.data??{}:{},r=await new Promise((n,o)=>{const l=document.createElement("video");l.crossOrigin="anonymous",l.playsInline=!0,l.muted=!0,l.preload="metadata",l.addEventListener("loadedmetadata",()=>{try{const c=new X.VideoSource({resource:l,autoPlay:i.autoPlay??!1,...i});n(new X.Texture({source:c}))}catch(c){o(c)}},{once:!0}),l.addEventListener("error",()=>o(new Error("Video loading failed")),{once:!0}),this.updateAssetLoadMetadata(e,"loading",.5),l.src=a});return this.updateAssetLoadMetadata(e,"success",1),r}updateAssetLoadMetadata(e,s,a){this.loadTracker.registry[e]?(this.loadTracker.registry[e].progress=a,this.loadTracker.registry[e].status=s):this.loadTracker.registry[e]={progress:a,status:s};const i={...this.loadTracker.registry};this.loadTracker.emit("onAssetLoadInfoUpdated",{registry:i})}}class Mr{static Name="FontLoadParser";id;name;extension;validFontExtensions;woff2Decompressor;constructor(){this.id=Mr.Name,this.name=Mr.Name,this.extension={type:[X.ExtensionType.LoadParser],priority:X.LoaderParserPriority.High,ref:null},this.validFontExtensions=["ttf","otf","woff","woff2"],this.woff2Decompressor=null}test(e){const s=e.split("?")[0]?.split(".").pop()?.toLowerCase()??"";return this.validFontExtensions.includes(s)}async load(e,s,a){const i=e.split("?")[0]?.split(".").pop()?.toLowerCase()??"",r=await fetch(e).then(d=>d.arrayBuffer());if(i!=="woff2"){const d=Xr.parse(new Uint8Array(r).buffer),m=d.names.fontFamily.en||d.names.fontFamily[Object.keys(d.names.fontFamily)[0]],b=new FontFace(m,`url(${e})`);return await b.load(),document.fonts.add(b),b}if(await this.loadWoff2Decompressor(),!this.woff2Decompressor)throw new Error("Cannot initialize Woff2 decompressor.");const n=this.woff2Decompressor.decompress(r),o=Xr.parse(new Uint8Array(n).buffer),l=o.names.fontFamily.en||o.names.fontFamily[Object.keys(o.names.fontFamily)[0]],c=new Blob([n],{type:"font/ttf"}),f=URL.createObjectURL(c),h=new FontFace(l,`url(${f})`);return await h.load(),document.fonts.add(h),h}async loadWoff2Decompressor(){if(this.woff2Decompressor)return;const s=`${await fetch("https://unpkg.com/wawoff2@2.0.1/build/decompress_binding.js").then(a=>a.text())}; return Module`;this.woff2Decompressor=new Function(s)(),await new Promise(a=>{this.woff2Decompressor.onRuntimeInitialized=a})}unload(e){e&&document.fonts.delete(e)}}function Dk(t,e,s,a){const i=Math.max(t,s),r=Math.min(e,a);return Math.max(0,r-i)}class Bk{queue=[];isProcessing=!1;async enqueue(e){return new Promise((s,a)=>{this.queue.push(async()=>{try{const i=await e();s(i)}catch(i){a(i)}}),this.processQueue()})}async processQueue(){if(!this.isProcessing){for(this.isProcessing=!0;this.queue.length>0;){const e=this.queue.shift();if(e)try{await e()}catch{}}this.isProcessing=!1}}}class Na{data;clipBindings=new Map;constructor(e){this.data=structuredClone(e),this.hydrateIds()}hydrateIds(){const e=new Set;for(const s of this.data.timeline.tracks)for(let a=0;a<s.clips.length;a+=1){const i=s.clips[a];if(e.has(i)){const r=structuredClone(i);r.id=crypto.randomUUID(),s.clips[a]=r}else e.add(i),i.id||(i.id=crypto.randomUUID())}}getTimeline(){return this.data.timeline}getBackground(){return this.data.timeline.background}getTracks(){return this.data.timeline.tracks}getTrack(e){return this.data.timeline.tracks[e]??null}getTrackCount(){return this.data.timeline.tracks.length}getSoundtrack(){return this.data.timeline.soundtrack}getClip(e,s){const a=this.data.timeline.tracks[e];return a?a.clips[s]??null:null}getClipsInTrack(e){return this.data.timeline.tracks[e]?.clips??[]}getClipCount(){return this.data.timeline.tracks.reduce((e,s)=>e+s.clips.length,0)}getClipCountInTrack(e){return this.data.timeline.tracks[e]?.clips.length??0}getClipById(e){for(let s=0;s<this.data.timeline.tracks.length;s+=1){const a=this.data.timeline.tracks[s].clips;for(let i=0;i<a.length;i+=1)if(a[i].id===e)return{clip:a[i],trackIndex:s,clipIndex:i}}return null}updateClipById(e,s){const a=this.getClipById(e);a&&Object.assign(a.clip,s)}removeClipById(e){const s=this.getClipById(e);return s?this.removeClip(s.trackIndex,s.clipIndex):null}getClipId(e,s){return this.getClip(e,s)?.id??null}getOutput(){return this.data.output}getSize(){const{size:e}=this.data.output;if(!e?.width||!e?.height)throw new Error("Output size is not defined");return{width:e.width,height:e.height}}getFormat(){return this.data.output.format}getFps(){return this.data.output.fps}getResolution(){return this.data.output.resolution}getAspectRatio(){return this.data.output.aspectRatio}getMergeFields(){return this.data.merge}addTrack(e,s){const a=s??{clips:[]};return this.data.timeline.tracks.splice(e,0,a),a}removeTrack(e){if(e<0||e>=this.data.timeline.tracks.length)return null;if(this.data.timeline.tracks.length<=1)return console.warn("Cannot remove the last track"),null;const[s]=this.data.timeline.tracks.splice(e,1);return s??null}addClip(e,s,a){const i=this.data.timeline.tracks[e];if(!i)throw new Error(`Track ${e} does not exist`);const r=s;r.id||(r.id=crypto.randomUUID());const n=a??i.clips.length;return i.clips.splice(n,0,s),s}removeClip(e,s){const a=this.data.timeline.tracks[e];if(!a||s<0||s>=a.clips.length)return null;const[i]=a.clips.splice(s,1);return i??null}updateClip(e,s,a){const i=this.getClip(e,s);if(!i)throw new Error(`Clip at track ${e}, index ${s} does not exist`);Object.assign(i,a)}replaceClipProperties(e,s,a){const i=this.getClip(e,s);if(!i)throw new Error(`Clip at track ${e}, index ${s} does not exist`);const{id:r}=i;for(const n of Object.keys(i))n!=="id"&&delete i[n];Object.assign(i,a),r&&(i.id=r)}replaceClip(e,s,a){const i=this.data.timeline.tracks[e];if(!i||s<0||s>=i.clips.length)return null;const r=i.clips[s];return i.clips[s]=a,r}moveClip(e,s,a,i){const r=this.data.timeline.tracks[e];if(!r||s<0||s>=r.clips.length)return null;const n=this.data.timeline.tracks[a];if(!n)return null;const[o]=r.clips.splice(s,1);if(!o)return null;i&&Object.assign(o,i);const l=typeof o.start=="number"?o.start:0;let c=0;for(let f=0;f<n.clips.length;f+=1){const h=n.clips[f].start;if(l<(typeof h=="number"?h:0))break;c+=1}return n.clips.splice(c,0,o),o}setBackground(e){this.data.timeline.background=e}setSoundtrack(e){this.data.timeline.soundtrack=e}getFonts(){return this.data.timeline.fonts??[]}addFont(e){this.data.timeline.fonts||(this.data.timeline.fonts=[]),this.data.timeline.fonts.some(s=>s.src===e)||this.data.timeline.fonts.push({src:e})}removeFont(e){this.data.timeline.fonts&&(this.data.timeline.fonts=this.data.timeline.fonts.filter(s=>s.src!==e))}setFonts(e){this.data.timeline.fonts=e}setSize(e){this.data.output.size={width:e.width,height:e.height}}setFormat(e){this.data.output.format=e}setFps(e){this.data.output.fps=e}setResolution(e){this.data.output.resolution=e}clearResolution(){delete this.data.output.resolution}setAspectRatio(e){this.data.output.aspectRatio=e}clearAspectRatio(){delete this.data.output.aspectRatio}clearSize(){delete this.data.output.size}setMergeFields(e){this.data.merge=e}setClipBinding(e,s,a){let i=this.clipBindings.get(e);i||(i=new Map,this.clipBindings.set(e,i)),i.set(s,a)}getClipBinding(e,s){return this.clipBindings.get(e)?.get(s)}removeClipBinding(e,s){const a=this.clipBindings.get(e);a&&(a.delete(s),a.size===0&&this.clipBindings.delete(e))}getClipBindings(e){return this.clipBindings.get(e)}setClipBindingsForClip(e,s){s.size===0?this.clipBindings.delete(e):this.clipBindings.set(e,new Map(s))}clearClipBindings(e){this.clipBindings.delete(e)}getClipIdsWithBindings(){return Array.from(this.clipBindings.keys())}toJSON(){const e=structuredClone(this.data);for(const s of e.timeline.tracks)for(const a of s.clips){const i=a.id;if(i){const r=this.clipBindings.get(i);if(r)for(const[n,{placeholder:o}]of r)Er(a,n,o)}delete a.id}return e.merge?.length===0&&delete e.merge,e}static fromJSON(e){return new Na(e)}clone(){return new Na(this.data)}}const M0=new Set(["asset","start","length","id"]),Uk=new Set(["text-to-image","image-to-video","text-to-speech"]);class Zk{constructor(e){this.edit=e,this.edit.events.on(ot.Resolved,this.onResolved)}isReconciling=!1;enableCreation=!0;onResolved=({edit:e})=>{this.reconcile(e)};async reconcileInitial(e){const s=this.reconcile(e);return await Promise.all(s.pendingLoads),s}reconcile(e){if(this.isReconciling)return{created:[],updated:[],disposed:[],pendingLoads:[]};this.isReconciling=!0;try{const s=[],a={created:[],updated:[],disposed:[],pendingLoads:s},i=new Set;for(let n=0;n<e.timeline.tracks.length;n+=1){const o=e.timeline.tracks[n];for(let l=0;l<o.clips.length;l+=1){const c=o.clips[l],f=c.id;if(f){i.add(f);const h=this.edit.getPlayerByClipId(f);if(h){const d=this.updatePlayer(h,c,n);d==="recreate"?(this.disposePlayer(f),s.push(this.createPlayer(c,f,n,l)),a.disposed.push(f),a.created.push(f)):d&&a.updated.push(f)}else this.enableCreation&&(this.createPlayer(c,f,n,l),a.created.push(f))}}}const r=this.findOrphanedPlayers(i);for(const n of r)this.disposePlayer(n),a.disposed.push(n);return(a.created.length>0||a.disposed.length>0||a.updated.length>0)&&this.rebuildTracksOrdering(e),this.syncTrackContainers(e.timeline.tracks.length),a}finally{this.isReconciling=!1}}updateSinglePlayer(e,s,a,i=0){const r=this.updatePlayer(e,s,a);if(r==="recreate"){const{clipId:n}=e;return n&&(this.disposePlayer(n),this.createPlayer(s,n,a,i)),"recreate"}return r}createPlayer(e,s,a,i){const r=this.edit.createPlayerFromAssetType(e);r.layer=a+1,r.clipId=s,this.edit.registerPlayerByClipId(s,r),this.edit.addPlayerToTracksArray(a,r),this.edit.addPlayerToContainer(a,r);const n=e.asset?.type??"unknown";return r.load().then(()=>{this.edit.events.emit(ot.PlayerLoaded,{player:r,trackIndex:a,clipIndex:i}),Uk.has(n)&&this.edit.events.emit(ce.ClipUnresolved,{trackIndex:a,clipIndex:i,assetType:n,clipId:s})}).catch(l=>{const c=l instanceof Error?l.message:String(l);this.edit.events.emit(ce.ClipLoadFailed,{trackIndex:a,clipIndex:i,error:c,assetType:n})})}updatePlayer(e,s,a){const i=e.clipConfiguration.asset?.type,r=s.asset?.type;if(i!==r)return"recreate";let n=!1;const o=e.layer-1,l=e.clipConfiguration.start,c=e.clipConfiguration.length;return(l!==s.start||c!==s.length)&&(e.setResolvedTiming({start:s.start,length:s.length}),e.reconfigureAfterRestore(),n=!0),o!==a&&(e.layer=a+1,this.edit.movePlayerBetweenTracks(e,o,a),n=!0),this.assetChanged(e.clipConfiguration.asset,s.asset)&&(this.updateAsset(e,s.asset),n=!0),this.clipPropertiesChanged(e.clipConfiguration,s)&&(this.updateClipProperties(e,s),n=!0),n}clipPropertiesChanged(e,s){const a=e,i=s,r=new Set([...Object.keys(a),...Object.keys(i)]);for(const n of r)if(!M0.has(n)&&JSON.stringify(a[n])!==JSON.stringify(i[n]))return!0;return!1}updateClipProperties(e,s){const a=e.clipConfiguration,i=s,r=new Set([...Object.keys(a),...Object.keys(i)]);for(const n of r)M0.has(n)||(i[n]!==void 0?a[n]=i[n]:delete a[n]);e.reconfigureAfterRestore()}assetChanged(e,s){return JSON.stringify(e)!==JSON.stringify(s)}updateAsset(e,s){const a=e.clipConfiguration.asset?.src,i=s?.src;e.clipConfiguration.asset=s,a!==i&&e.reloadAsset?e.reloadAsset().then(()=>{e.reconfigureAfterRestore()}).catch(r=>{console.error("Failed to reload asset:",r)}):e.reconfigureAfterRestore()}syncTrackContainers(e){const s=this.edit.getTracks().length;if(e>s)for(let a=s;a<e;a+=1)this.edit.ensureTrackExists(a);else if(e<s)for(let a=s-1;a>=e;a-=1)this.edit.removeEmptyTrack(a)}findOrphanedPlayers(e){const s=[];for(const[a]of this.edit.getPlayerMap())e.has(a)||s.push(a);return s}disposePlayer(e){const s=this.edit.getPlayerByClipId(e);s&&(this.edit.unregisterPlayerByClipId(e),this.edit.queuePlayerForDisposal(s))}rebuildTracksOrdering(e){const s=this.edit.getTracks();for(let a=0;a<s.length;a+=1)s[a]=[];for(let a=0;a<e.timeline.tracks.length;a+=1){for(;s.length<=a;)s.push([]);for(const i of e.timeline.tracks[a].clips){const r=i.id;if(r){const n=this.edit.getPlayerByClipId(r);n&&s[a].push(n)}}}}dispose(){this.edit.events.off(ot.Resolved,this.onResolved)}}function R0(t,e){function s(a){if(typeof a=="string"&&e.isMergeFieldTemplate(a)){const i=e.resolveToNumber(a);return i!==null?i:e.resolve(a)}if(Array.isArray(a))return a.map(s);if(a!==null&&typeof a=="object"){const i={};for(const[r,n]of Object.entries(a))i[r]=s(n);return i}return a}return s(structuredClone(t))}function Gk(t){const e=new Map,s=new Map,a=[];for(let i=0;i<t.getTrackCount();i+=1){const r=t.getClipsInTrack(i);for(let n=0;n<r.length;n+=1){const o=r[n];if(!o.id)throw new Error(`Clip at track ${i}, index ${n} is missing an ID. EditDocument hydration may have been skipped.`);const l=o.alias??o.id,c={clip:o,trackIndex:i,clipIndex:n};if(a.push({...c,id:l}),o.alias){if(s.has(o.alias))throw new Error(`Duplicate alias "${o.alias}" found. Each alias must be unique.`);s.set(o.alias,c)}}}for(let i=0;i<t.getTrackCount();i+=1){const r=t.getClipsInTrack(i);for(let n=0;n<r.length;n+=1){const o=r[n],l=o.alias??o.id,c=new Set;if(Kt(o.start)){const f=Ci(o.start);if(!s.has(f))throw new Error(`Alias reference "alias://${f}" not found. No clip defines alias "${f}".`);c.add(f)}if(Kt(o.length)){const f=Ci(o.length);if(!s.has(f))throw new Error(`Alias reference "alias://${f}" not found. No clip defines alias "${f}".`);c.add(f)}if(o.start==="auto"&&n>0){const f=r[n-1],h=f.alias??f.id;c.add(h)}c.size>0&&e.set(l,c)}}return{dependencies:e,clipsByAlias:s,allClips:a}}function Wk(t){const e=new Set,s=new Set;function a(i,r){e.add(i),s.add(i);const n=t.get(i);if(n)for(const o of n){if(s.has(o))return[...r,o];if(!e.has(o)){const l=a(o,[...r,o]);if(l)return l}}return s.delete(i),null}for(const i of t.keys())if(!e.has(i)){const r=a(i,[i]);if(r)return r}return null}function Yk(t,e){const s=[],a=new Set;function i(r){if(a.has(r))return;a.add(r);const n=t.get(r);if(n)for(const o of n)i(o);s.push(r)}for(const r of t.keys())i(r);for(const r of e)i(r);return s}function z0(t,e,s){let a;if(t.start==="auto")a=e;else if(Kt(t.start)){const n=Ci(t.start),o=s.get(n);if(!o)throw new Error(`Internal error: Alias "${n}" not resolved.`);a=o.start}else a=t.start;let i,r=!1;if(t.length==="end")i=1,r=!0;else if(t.length==="auto")i=3;else if(Kt(t.length)){const n=Ci(t.length),o=s.get(n);if(!o)throw new Error(`Internal error: Alias "${n}" not resolved.`);i=o.length}else i=t.length;return{...t,id:t.id??crypto.randomUUID(),start:a,length:i,pendingEndLength:r||void 0}}function Hk(t){let e=0;for(const s of t)for(const a of s.clips)if(!a.pendingEndLength){const i=a.start+a.length;i>e&&(e=i)}return e}function Co(t){const{pendingEndLength:e,...s}=t;return s}function jk(t,e,s){const a=t.getClipById(e);if(!a)return null;const{clip:i,trackIndex:r,clipIndex:n}=a,l=R0(i,s.mergeFields),c=s.resolvedAliases??new Map,f=z0(l,s.previousClipEnd,c);return f.pendingEndLength&&s.cachedTimelineEnd!==void 0&&(f.length=Math.max(s.cachedTimelineEnd-f.start,.1)),{resolved:Co(f),trackIndex:r,clipIndex:n}}function L0(t,e){const{dependencies:s,allClips:a}=Gk(t);if(s.size>0){const m=Wk(s);if(m)throw new Error(`Circular alias reference detected: ${m.join(" -> ")}`)}const i=a.map(m=>m.id),r=Yk(s,i),n=new Map;for(const m of a)n.set(m.id,m);const o=new Map,l=new Map,c=new Map;for(const m of r){const b=n.get(m);if(b){const{clip:I,trackIndex:M,clipIndex:E}=b,V=R0(I,e.mergeFields),v=c.get(M)??0,F=z0(V,v,l);o.set(`${M}-${E}`,F);const y=F.start+F.length,Z=c.get(M)??0;y>Z&&c.set(M,y),I.alias&&l.set(I.alias,{start:F.start,length:F.length})}}const f=[];for(let m=0;m<t.getTrackCount();m+=1){const b=t.getClipsInTrack(m).length,I=[];for(let M=0;M<b;M+=1){const E=o.get(`${m}-${M}`);if(!E)throw new Error(`Internal error: Clip at track ${m}, index ${M} was not resolved.`);I.push(E)}f.push({clips:I})}const h=Hk(f),d=f.map(m=>({clips:m.clips.map(b=>{if(b.pendingEndLength){const I=Math.max(h-b.start,.1);return Co({...b,length:I})}return Co(b)})}));return{timeline:{background:t.getBackground(),tracks:d,fonts:t.getFonts()},output:t.getOutput()}}class Aa{static MAX_HISTORY_SIZE=100;static SEEK_ELAPSED_MARKER=101;document;size;backgroundColor;tracks;playbackTime;totalDuration;isPlaying;get clips(){return this.tracks.flat()}assetLoader;events;canvas=null;timingManager;lumaMaskController;playerReconciler;outputSettings;selectionManager;mergeFieldService;commandHistory=[];commandIndex=-1;commandQueue=new Bk;clipsToDispose=new Set;clipErrors=new Map;playerByClipId=new Map;lumaContentRelations=new Map;fontMetadata=new Map;isBatchingEvents=!1;syncCorrectionCount=0;isExporting=!1;lastResolved=null;constructor(e){this.tracks=[],this.playbackTime=0,this.totalDuration=0,this.isPlaying=!1,this.document=new Na(e);const s=this.document.getResolution(),a=this.document.getAspectRatio();this.backgroundColor=this.document.getBackground()??"#000000",this.size=s?vo(s,a):this.document.getSize(),this.assetLoader=new Or,this.events=new F0,this.lumaMaskController=new Vk(()=>this.canvas,()=>this.tracks,this.events),this.playerReconciler=new Zk(this),this.mergeFieldService=new Tk(this.events),this.outputSettings=new Ek(this),this.selectionManager=new Ok(this),this.timingManager=new zk(this),this.setupIntentListeners()}async load(){await this.initializeFromDocument()}async initializeFromDocument(e="load"){const s=this.document.toJSON(),a=s.merge??[];this.mergeFieldService.loadFromSerialized(a),this.lastResolved=null;const i=this.detectMergeFieldBindings(a),r=tc.parse(s);await Promise.all((r.timeline.fonts??[]).map(async o=>{const l=o.src,c={src:l,parser:Mr.Name},f=await this.assetLoader.load(l,c);if(f?.family){const{baseFontFamily:h,fontWeight:d}=Dt(f.family);this.fontMetadata.set(l,{baseFamilyName:h,weight:d})}return f}));const n=this.getResolvedEdit();this.lumaMaskController.initialize(),await this.playerReconciler.reconcileInitial(n),this.normalizeLumaAttachments();for(const[o,l]of i)l.size>0&&this.document.setClipBindingsForClip(o,l);await this.timingManager.resolveAllTiming(),this.updateTotalDuration(),r.timeline.soundtrack&&await this.loadSoundtrack(r.timeline.soundtrack),this.events.emit(ce.TimelineUpdated,{current:this.getEdit()}),this.emitEditChanged(e)}update(e,s){for(const a of this.clips)a.shouldDispose&&this.queueDisposeClip(a),a.update(e,s);this.disposeClips(),this.lumaMaskController.update(),this.isPlaying&&(this.playbackTime=Math.max(0,Math.min(this.playbackTime+ou(s),this.totalDuration)),this.playbackTime===this.totalDuration&&this.pause())}dispose(){this.clearClips(),this.lumaMaskController.dispose(),this.playerReconciler.dispose();for(const e of this.commandHistory)e.dispose?.();this.commandHistory=[],this.commandIndex=-1,this.lumaContentRelations.clear(),I0.cleanup()}updateCanvasForSize(){this.events.emit(ot.ViewportSizeChanged,{width:this.size.width,height:this.size.height,backgroundColor:this.backgroundColor}),this.events.emit(ot.ViewportNeedsZoomToFit)}play(){this.isPlaying=!0,this.events.emit(ce.PlaybackPlay)}pause(){this.isPlaying=!1,this.events.emit(ce.PlaybackPause)}seek(e){this.playbackTime=Math.max(0,Math.min(e,this.totalDuration)),this.pause(),this.update(0,Aa.SEEK_ELAPSED_MARKER)}stop(){this.seek(0)}async loadEdit(e){if(this.lastResolved=null,this.tracks.length>0&&!this.hasStructuralChanges(e)){this.preserveClipIdsForGranularUpdate(e);const a=this.document.getTracks(),i=this.document.getOutput();this.document=new Na(e),this.isBatchingEvents=!0,await this.applyGranularChanges(e,a,i),this.isBatchingEvents=!1,this.emitEditChanged("loadEdit:granular");return}this.document=new Na(e);const s=this.document.getSize();this.size=s,this.backgroundColor=this.document.getBackground()??"#000000",this.events.emit(ot.ViewportSizeChanged,{width:this.size.width,height:this.size.height,backgroundColor:this.backgroundColor}),this.events.emit(ot.ViewportNeedsZoomToFit),this.clearClips(),await this.initializeFromDocument("loadEdit")}async loadSoundtrack(e){const s={id:crypto.randomUUID(),asset:{type:"audio",src:e.src,effect:e.effect,volume:e.volume??1},fit:"crop",start:0,length:this.totalDuration},a=this.createPlayerFromAssetType(s);a.layer=this.tracks.length+1,await this.addPlayer(this.tracks.length,a)}getEdit(){const e=this.document.toJSON(),s=this.mergeFieldService.toSerializedArray();return s.length>0&&(e.merge=s),e}validateEdit(e){const s=tc.safeParse(e);return s.success?{valid:!0,errors:[]}:{valid:!1,errors:s.error.issues.map(a=>({path:a.path.join("."),message:a.message}))}}getResolvedEdit(){return this.lastResolved||(this.lastResolved=L0(this.document,{mergeFields:this.mergeFieldService})),this.lastResolved}getResolvedClip(e,s){return this.getResolvedEdit()?.timeline?.tracks?.[e]?.clips?.[s]??null}getClipId(e,s){return this.document?.getClipId(e,s)??null}getDocumentClip(e,s){return this.document?.getClip(e,s)??null}getDocument(){return this.document}resolve(){return this.lastResolved=L0(this.document,{mergeFields:this.mergeFieldService}),this.events.emit(ot.Resolved,{edit:this.lastResolved}),this.lastResolved}resolveClip(e){const s=this.getPlayerByClipId(e);if(!s)return!1;const a=this.document.getClipById(e);if(a?.clip.alias)return this.resolve(),!0;const i=a?.clip;if(i&&(Kt(i.start)||Kt(i.length)))return this.resolve(),!0;const r=s.layer-1,n=this.tracks[r],o=n?n.indexOf(s):-1;if(o<0)return!1;const l=o>0?n[o-1]:null,c=l?l.getEnd():0,f={mergeFields:this.mergeFieldService,previousClipEnd:c,cachedTimelineEnd:this.timingManager.getTimelineEnd()},h=jk(this.document,e,f);if(!h)return!1;if(this.lastResolved){const m=this.lastResolved.timeline.tracks[h.trackIndex];m&&m.clips[h.clipIndex]&&(m.clips[h.clipIndex]=h.resolved)}return this.playerReconciler.updateSinglePlayer(s,h.resolved,h.trackIndex,h.clipIndex)!==!1}addClip(e,s){const a=new gk(e,s);return this.executeCommand(a)}getClip(e,s){const a=this.tracks[e];return!a||s<0||s>=a.length?null:a[s].clipConfiguration}getClipError(e,s){return this.clipErrors.get(`${e}-${s}`)??null}clearClipErrorAndShift(e,s){this.clipErrors.delete(`${e}-${s}`);const a=[];for(const[i,r]of this.clipErrors){const[n,o]=i.split("-").map(Number);n===e&&o>s&&a.push({oldKey:i,newKey:`${n}-${o-1}`,value:r})}for(const{oldKey:i,newKey:r,value:n}of a)this.clipErrors.delete(i),this.clipErrors.set(r,n)}getPlayerClip(e,s){const a=this.tracks[e];return!a||s<0||s>=a.length?null:a[s]}getPlayerByClipId(e){return this.playerByClipId.get(e)??null}getDocumentClipById(e){return this.document?.getClipById(e)?.clip??null}registerPlayerByClipId(e,s){this.playerByClipId.set(e,s)}unregisterPlayerByClipId(e){this.playerByClipId.delete(e)}getPlayerMap(){return this.playerByClipId}addPlayerToTracksArray(e,s){for(;this.tracks.length<=e;)this.tracks.push([]);this.tracks[e].push(s)}movePlayerBetweenTracks(e,s,a){const i=this.tracks[s];if(i){const r=i.indexOf(e);r!==-1&&i.splice(r,1)}for(;this.tracks.length<=a;)this.tracks.push([]);this.tracks[a].push(e),this.movePlayerToTrackContainer(e,s,a)}queuePlayerForDisposal(e){this.queueDisposeClip(e),this.disposeClips()}ensureTrackExists(e){for(;this.tracks.length<=e;)this.tracks.push([])}removeEmptyTrack(e){if(e<0||e>=this.tracks.length)return;const s=this.tracks[e];if(s&&s.length>0){console.warn(`Cannot remove non-empty track ${e}`);return}this.tracks.splice(e,1),this.events.emit(ot.TrackContainerRemoved,{trackIndex:e});for(let a=e;a<this.tracks.length;a+=1)for(const i of this.tracks[a])i.layer=a+1}getOriginalAsset(e,s){const a=this.getPlayerClip(e,s);if(!a)return;const i=a.getExportableClip();if(!i)return;const{clipId:r}=a;if(r&&this.document){const n=this.document.getClipBindings(r);if(n){for(const[o,{placeholder:l}]of n)if(o.startsWith("asset.")){const c=o.slice(6);Er(i.asset,c,l)}}}return i.asset}async deleteClip(e,s){const a=this.tracks[e];if(!a)return;const i=a[s];if(!i)return;if(i.playerType!==Qe.Luma){const o=a.findIndex(l=>l.playerType===Qe.Luma);if(o!==-1){const l=o<s?s-1:s,c=new yo(e,o);await this.executeCommand(c);const f=new yo(e,l);await this.executeCommand(f);return}}const n=new yo(e,s);await this.executeCommand(n)}splitClip(e,s,a){const i=new kk(e,s,a);return this.executeCommand(i)}async addTrack(e,s){if(!s?.clips?.length)throw new Error("Cannot add empty track - at least one clip required");const a=new pk(e);await this.executeCommand(a);for(const i of s.clips)await this.addClip(e,i)}getTrack(e){const s=this.clips.filter(a=>a.layer===e+1);return s.length===0?null:{clips:s.map(a=>a.clipConfiguration)}}deleteTrack(e){const s=new _0(e);this.executeCommand(s)}recordSyncCorrection(){this.syncCorrectionCount+=1}undo(){return this.commandQueue.enqueue(async()=>{if(this.commandIndex>=0){const e=this.commandHistory[this.commandIndex];if(e.undo){const s=this.createCommandContext();await Promise.resolve(e.undo(s)),this.commandIndex-=1,this.events.emit(ce.EditUndo,{command:e.name}),this.emitEditChanged(`undo:${e.name}`)}}})}redo(){return this.commandQueue.enqueue(async()=>{if(this.commandIndex<this.commandHistory.length-1){const e=this.commandIndex+1,s=this.commandHistory[e],a=this.createCommandContext();await Promise.resolve(s.execute(a)),this.commandIndex=e,this.events.emit(ce.EditRedo,{command:s.name}),this.emitEditChanged(`redo:${s.name}`)}})}setUpdatedClip(e,s=null,a=null){const i=e.layer-1,r=this.tracks[i],n=r?r.indexOf(e):-1,o=new bo(s,a,{trackIndex:i,clipIndex:n});this.executeCommand(o)}updateClipInDocument(e,s){const a=this.document.getClipById(e);a&&this.document.updateClip(a.trackIndex,a.clipIndex,s)}commitClipUpdate(e,s,a){const i=this.document.getClipById(e);if(!i){console.warn(`commitClipUpdate: clip ${e} not found in document`);return}const r=new bo(s,structuredClone(a),{trackIndex:i.trackIndex,clipIndex:i.clipIndex});this.addCommandToHistory(r)}pushCommandToHistory(e){const s=this.commandHistory.slice(this.commandIndex+1);for(const a of s)a.dispose?.();for(this.commandHistory=this.commandHistory.slice(0,this.commandIndex+1),this.commandHistory.push(e),this.commandIndex+=1;this.commandHistory.length>Aa.MAX_HISTORY_SIZE;)this.commandHistory.shift()?.dispose?.(),this.commandIndex-=1}addCommandToHistory(e){this.pushCommandToHistory(e),this.emitEditChanged(`commit:${e.name}`)}updateClip(e,s,a){const i=this.getPlayerClip(e,s);if(!i)return console.warn(`Clip not found at track ${e}, index ${s}`),Promise.resolve();const r=this.document?.getClip(e,s),n=structuredClone(r??i.clipConfiguration),o=structuredClone(r??i.clipConfiguration),l=Pr(o,a),c=new bo(n,l,{trackIndex:e,clipIndex:s});return this.executeCommand(c)}updateClipTiming(e,s,a){if(!this.getPlayerClip(e,s)){console.warn(`Clip not found at track ${e}, index ${s}`);return}const r=new Nk(e,s,a);this.executeCommand(r)}updateTextContent(e,s,a){const i=e.layer-1,r=this.tracks[i]?.indexOf(e)??-1;if(r<0){console.warn("UpdateTextContent: clip not found in track");return}const n=new Ak(i,r,s);this.executeCommand(n)}executeEditCommand(e){return this.executeCommand(e)}executeCommand(e){return this.commandQueue.enqueue(async()=>{const s=this.createCommandContext(),a=await Promise.resolve(e.execute(s));this.handleCommandResult(e,a)})}handleCommandResult(e,s){s.status==="success"&&(this.pushCommandToHistory(e),this.emitEditChanged(e.name))}emitEditChanged(e){this.isBatchingEvents||this.events.emit(ce.EditChanged,{source:e,timestamp:Date.now()})}detectMergeFieldBindings(e){const s=new Map;if(!e.length)return s;const a=new Map;for(const{find:i,replace:r}of e){const n=typeof r=="string"?r:JSON.stringify(r);a.set(i.toUpperCase(),n)}for(let i=0;i<this.document.getTrackCount();i+=1){const r=this.document.getClipsInTrack(i);for(let n=0;n<r.length;n+=1){const o=this.document.getClipId(i,n);if(o){const l=this.detectBindingsInObject(r[n],"",a);l.size>0&&s.set(o,l)}}}return s}detectBindingsInObject(e,s,a){const i=new Map;if(typeof e=="string"){if(/\{\{\s*([A-Z_0-9]+)\s*\}\}/gi.test(e)){const o=e.replace(/\{\{\s*([A-Z_0-9]+)\s*\}\}/gi,(l,c)=>a.get(c.toUpperCase())??l);i.set(s,{placeholder:e,resolvedValue:o})}return i}if(Array.isArray(e)){for(let r=0;r<e.length;r+=1){const n=s?`${s}[${r}]`:`[${r}]`,o=this.detectBindingsInObject(e[r],n,a);for(const[l,c]of o)i.set(l,c)}return i}if(e!==null&&typeof e=="object")for(const[r,n]of Object.entries(e)){const o=s?`${s}.${r}`:r,l=this.detectBindingsInObject(n,o,a);for(const[c,f]of l)i.set(c,f)}return i}hasStructuralChanges(e){if(!this.document)return!0;const s=this.document.getTracks(),a=e.timeline.tracks;if(s.length!==a.length)return!0;for(let i=0;i<s.length;i+=1){if(s[i].clips.length!==a[i].clips.length)return!0;for(let r=0;r<s[i].clips.length;r+=1){const n=s[i].clips[r]?.asset?.type,o=a[i].clips[r]?.asset?.type;if(n!==o)return!0}}return JSON.stringify(this.document.getMergeFields()??[])!==JSON.stringify(e.merge??[])||JSON.stringify(this.document.getFonts())!==JSON.stringify(e.timeline.fonts??[])||JSON.stringify(this.document.getSoundtrack())!==JSON.stringify(e.timeline.soundtrack)}preserveClipIdsForGranularUpdate(e){if(!this.document)return;const s=this.document.getTracks();for(let a=0;a<e.timeline.tracks.length;a+=1){const i=s[a],r=e.timeline.tracks[a];if(i&&r)for(let n=0;n<r.clips.length;n+=1){const o=this.document.getClipId(a,n);o&&(r.clips[n].id=o)}}}async applyGranularChanges(e,s,a){const i=e.output;if(i?.size&&(a?.size?.width!==i.size.width||a?.size?.height!==i.size.height)){const o=i.size.width??this.size.width,l=i.size.height??this.size.height;await this.setOutputSize(o,l)}i?.fps!==void 0&&a?.fps!==i.fps&&await this.setOutputFps(i.fps),i?.format!==void 0&&a?.format!==i.format&&await this.setOutputFormat(i.format),i?.destinations&&JSON.stringify(a?.destinations)!==JSON.stringify(i.destinations)&&await this.setOutputDestinations(i.destinations),i?.resolution!==void 0&&a?.resolution!==i.resolution&&await this.setOutputResolution(i.resolution),i?.aspectRatio!==void 0&&a?.aspectRatio!==i.aspectRatio&&await this.setOutputAspectRatio(i.aspectRatio);const r=e.timeline?.background;r&&this.backgroundColor!==r&&await this.setTimelineBackground(r);const n=e.timeline.tracks;for(let o=0;o<n.length;o+=1){const l=s[o].clips,c=n[o].clips;for(let f=0;f<c.length;f+=1){const h=l[f],d=c[f];JSON.stringify(h)!==JSON.stringify(d)&&await this.updateClip(o,f,d)}}}createCommandContext(){return{getClips:()=>this.clips,getTracks:()=>this.tracks,getTrack:e=>e>=0&&e<this.tracks.length?this.tracks[e]:null,getContainer:()=>this.getViewportContainer(),addPlayer:(e,s)=>this.addPlayer(e,s),addPlayerToContainer:(e,s)=>{this.addPlayerToContainer(e,s)},createPlayerFromAssetType:e=>this.createPlayerFromAssetType(e),queueDisposeClip:e=>this.queueDisposeClip(e),disposeClips:()=>this.disposeClips(),clearClipError:(e,s)=>this.clearClipErrorAndShift(e,s),undeleteClip:(e,s)=>{let a=0;if(e>=0&&e<this.tracks.length){const i=this.tracks[e];a=i.length;for(let r=0;r<i.length;r+=1)if(i[r].getStart()>s.getStart()){a=r;break}i.splice(a,0,s)}if(this.document){const i=s.getExportableClip();this.document.addClip(e,i,a);const r=this.document.getClipId(e,a);r&&(s.clipId=r,this.playerByClipId.set(r,s))}this.addPlayerToContainer(e,s),s.load().catch(i=>{const r=s.clipConfiguration?.asset?.type??"unknown",n=i instanceof Error?i.message:String(i);this.clipErrors.set(`${e}-${a}`,{error:n,assetType:r}),this.events.emit(ce.ClipLoadFailed,{trackIndex:e,clipIndex:a,error:n,assetType:r})}),this.updateTotalDuration()},setUpdatedClip:()=>{},restoreClipConfiguration:(e,s)=>{const a=structuredClone(s),i=e.clipConfiguration;for(const r of Object.keys(i))delete i[r];if(Object.assign(i,a),e.reconfigureAfterRestore(),this.document){const r=this.findClipIndices(e);if(r){const n=e.getExportableClip();this.document.replaceClip(r.trackIndex,r.clipIndex,n)}}},updateDuration:()=>this.updateTotalDuration(),emitEvent:(e,...s)=>this.events.emit(e,...s),findClipIndices:e=>this.selectionManager.findClipIndices(e),getClipAt:(e,s)=>this.getClipAt(e,s),getSelectedClip:()=>this.selectionManager.getSelectedClip(),setSelectedClip:e=>{this.selectionManager.setSelectedClip(e)},movePlayerToTrackContainer:(e,s,a)=>this.movePlayerToTrackContainer(e,s,a),getEditState:()=>this.getResolvedEdit(),propagateTimingChanges:(e,s)=>this.propagateTimingChanges(e,s),resolveClipAutoLength:e=>this.resolveClipAutoLength(e),getMergeFields:()=>this.mergeFieldService,getOutputSize:()=>this.outputSettings.getSize(),setOutputSize:(e,s)=>this.outputSettings.setSize(e,s),getOutputFps:()=>this.outputSettings.getFps(),setOutputFps:e=>this.outputSettings.setFps(e),getOutputFormat:()=>this.outputSettings.getFormat(),setOutputFormat:e=>this.outputSettings.setFormat(e),getOutputResolution:()=>this.outputSettings.getResolution(),setOutputResolution:e=>this.outputSettings.setResolution(e),getOutputAspectRatio:()=>this.outputSettings.getAspectRatio(),setOutputAspectRatio:e=>this.outputSettings.setAspectRatio(e),getOutputDestinations:()=>this.outputSettings.getDestinations(),setOutputDestinations:e=>this.outputSettings.setDestinations(e),getTimelineBackground:()=>this.getTimelineBackground(),setTimelineBackground:e=>this.setTimelineBackgroundInternal(e),getDocument:()=>this.document,getDocumentTrack:e=>this.document?.getTrack(e)??null,getDocumentClip:(e,s)=>this.document?.getClip(e,s)??null,documentUpdateClip:(e,s,a)=>{if(!this.document)throw new Error("Document not initialized - cannot update clip");this.document.updateClip(e,s,a)},documentAddClip:(e,s,a)=>{if(!this.document)throw new Error("Document not initialized - cannot add clip");for(;this.document.getTrackCount()<=e;)this.document.addTrack(this.document.getTrackCount());return this.document.addClip(e,s,a)},documentRemoveClip:(e,s)=>{if(!this.document)throw new Error("Document not initialized - cannot remove clip");return this.document.removeClip(e,s)},derivePlayerFromDocument:(e,s)=>{const a=this.document?.getClip(e,s);if(!a)throw new Error(`derivePlayerFromDocument: No document clip at ${e}/${s} - state desync`);const i=this.getClipAt(e,s);if(!i)throw new Error(`derivePlayerFromDocument: No player at ${e}/${s} - state desync`);const{asset:r,...n}=a;Object.assign(i.clipConfiguration,n),i.reconfigureAfterRestore()},buildResolutionContext:(e,s)=>{let a=0;if(s>0){const o=this.tracks[e];o&&o[s-1]&&(a=o[s-1].getEnd())}const i=xo(this.tracks);let r=null;const n=this.getClipAt(e,s);return n&&n.getTimingIntent().length==="auto"&&(r=n.getLength()),{previousClipEnd:a,timelineEnd:i,intrinsicDuration:r}},resolve:()=>this.resolve(),resolveClip:e=>this.resolveClip(e),getPlayerByClipId:e=>this.playerByClipId.get(e)??null,registerPlayerByClipId:(e,s)=>{this.playerByClipId.set(e,s)},unregisterPlayerByClipId:e=>{this.playerByClipId.delete(e)},setClipBinding:(e,s,a)=>{this.document?.setClipBinding(e,s,a)},getClipBinding:(e,s)=>this.document?.getClipBinding(e,s),removeClipBinding:(e,s)=>{this.document?.removeClipBinding(e,s)},getClipBindings:e=>this.document?.getClipBindings(e),getEditSession:()=>this}}queueDisposeClip(e){this.clipsToDispose.add(e)}disposeClips(){if(this.clipsToDispose.size!==0){for(const e of this.clipsToDispose)e.playerType===Qe.Luma&&(this.lumaMaskController.cleanupForPlayer(e),e.clipId&&this.lumaContentRelations.delete(e.clipId));for(const e of this.clipsToDispose)e.clipId&&this.playerByClipId.delete(e.clipId);for(const e of this.clipsToDispose)this.disposeClip(e);for(const e of this.clipsToDispose){const s=e.layer-1;if(s>=0&&s<this.tracks.length){const a=this.tracks[s].indexOf(e);a!==-1&&this.tracks[s].splice(a,1)}}this.clipsToDispose.clear(),this.updateTotalDuration(),this.cleanupUnusedFonts()}}cleanupUnusedFonts(){if(!this.document)return;const e=this.document.getFonts();if(e.length===0)return;const s=new Set;for(const a of this.clips){const{asset:i}=a.clipConfiguration;i&&i.type==="rich-text"&&i.font?.family&&s.add(i.font.family)}for(const a of e)if(a.src.includes("fonts.gstatic.com")){const r=this.extractFilenameFromUrl(a.src);r&&!s.has(r)&&this.document.removeFont(a.src)}}extractFilenameFromUrl(e){try{const{pathname:s}=new URL(e),a=s.split("/").pop();return a?a.replace(/\.[^.]+$/,""):null}catch{return null}}disposeClip(e){try{const s=this.canvas?.getViewportContainer();if(s){for(const a of s.children)if(a instanceof X.Container&&a.label?.toString().startsWith("shotstack-track-")&&a.children.includes(e.getContainer())){a.removeChild(e.getContainer());break}}}catch(s){console.warn(`Attempting to unmount an unmounted clip: ${s}`)}this.unloadClipAssets(e),this.timingManager.invalidateTimelineEndCache(),e.dispose()}unloadClipAssets(e){const{asset:s}=e.clipConfiguration;s&&"src"in s&&typeof s.src=="string"&&this.assetLoader.decrementRef(s.src)&&X.Assets.cache.has(s.src)&&X.Assets.unload(s.src)}clearClips(){for(const e of this.clips)this.disposeClip(e);this.tracks=[],this.clipsToDispose.clear(),this.clipErrors.clear(),this.lumaContentRelations.clear(),this.updateTotalDuration()}updateTotalDuration(){let e=0;for(const a of this.tracks)for(const i of a)e=Math.max(e,i.getEnd());const s=this.totalDuration;this.totalDuration=e,s!==this.totalDuration&&this.events.emit(ce.DurationChanged,{duration:this.totalDuration})}propagateTimingChanges(e,s){this.timingManager.propagateTimingChanges(e,s)}async resolveClipAutoLength(e){const s=e.getTimingIntent();if(s.length!=="auto")return;const a=this.findClipIndices(e);let i=e.getStart();s.start==="auto"&&a&&(i=E0(a.trackIndex,a.clipIndex,this.tracks));const r=await P0(e.clipConfiguration.asset);e.setResolvedTiming({start:i,length:r}),e.reconfigureAfterRestore(),a&&this.propagateTimingChanges(a.trackIndex,a.clipIndex)}addPlayerToContainer(e,s){this.events.emit(ot.PlayerAddedToTrack,{player:s,trackIndex:e})}movePlayerToTrackContainer(e,s,a){this.events.emit(ot.PlayerMovedBetweenTracks,{player:e,fromTrackIndex:s,toTrackIndex:a})}createPlayerFromAssetType(e){return I0.create(this,e)}async addPlayer(e,s){for(;this.tracks.length<=e;)this.tracks.push([]);this.tracks[e].push(s),this.events.emit(ot.PlayerAddedToTrack,{player:s,trackIndex:e}),await s.load(),this.updateTotalDuration()}selectClip(e,s){this.selectionManager.selectClip(e,s)}clearSelection(){this.selectionManager.clearSelection()}isClipSelected(e,s){return this.selectionManager.isClipSelected(e,s)}getSelectedClipInfo(){return this.selectionManager.getSelectedClipInfo()}copyClip(e,s){this.selectionManager.copyClip(e,s)}pasteClip(){this.selectionManager.pasteClip()}hasCopiedClip(){return this.selectionManager.hasCopiedClip()}findClipIndices(e){return this.selectionManager.findClipIndices(e)}getClipAt(e,s){return e>=0&&e<this.tracks.length&&s>=0&&s<this.tracks[e].length?this.tracks[e][s]:null}selectPlayer(e){this.selectionManager.selectPlayer(e)}isPlayerSelected(e){return this.selectionManager.isPlayerSelected(e)}getActivePlayersExcept(e){const s=[];for(const a of this.tracks)for(const i of a)i!==e&&i.isActive()&&s.push(i);return s}showAlignmentGuide(e,s,a,i){this.canvas?.showAlignmentGuide(e,s,a,i)}clearAlignmentGuides(){this.canvas?.clearAlignmentGuides()}moveSelectedClip(e,s){const a=this.getSelectedClipInfo();if(!a)return;const{player:i,trackIndex:r,clipIndex:n}=a,o=this.getResolvedClip(r,n);if(!o)return;const l=structuredClone(o),c=i.calculateMoveOffset(e,s),f=structuredClone(l);f.offset=c,this.setUpdatedClip(i,l,f)}setExportMode(e){this.isExporting=e}isInExportMode(){return this.isExporting}setCanvas(e){this.canvas=e}getCanvas(){return this.canvas}getCanvasZoom(){return this.canvas?.getZoom()??1}getViewportContainer(){if(!this.canvas)throw new Error("Canvas not attached. Viewport container requires Canvas.");return this.canvas.getViewportContainer()}setOutputSize(e,s){const a=new xk(e,s);return this.executeCommand(a)}setOutputFps(e){const s=new wk(e);return this.executeCommand(s)}getOutputFps(){return this.outputSettings.getFps()}setOutputFormat(e){const s=new bk(e);return this.executeCommand(s)}getOutputFormat(){return this.outputSettings.getFormat()}setOutputDestinations(e){const s=new yk(e);return this.executeCommand(s)}getOutputDestinations(){return this.outputSettings.getDestinations()}setOutputResolution(e){const s=new vk(e);return this.executeCommand(s)}getOutputResolution(){return this.outputSettings.getResolution()}setOutputAspectRatio(e){const s=new mk(e);return this.executeCommand(s)}getOutputAspectRatio(){return this.outputSettings.getAspectRatio()}getTimelineFonts(){return this.document.getFonts()}getFontUrlByFamilyAndWeight(e,s){const{baseFontFamily:a}=Dt(e),i=a.toLowerCase();for(const[r,n]of this.fontMetadata)if(n.baseFamilyName.toLowerCase()===i&&n.weight===s)return r;for(const[r,n]of this.fontMetadata)if(n.baseFamilyName.toLowerCase()===i)return r;return null}pruneUnusedFonts(){this.cleanupUnusedFonts()}setTimelineBackground(e){const s=new Ck(e);return this.executeCommand(s)}setTimelineBackgroundInternal(e){const s=rw.safeParse(e);if(!s.success)throw new Error(`Invalid color: ${s.error.issues[0]?.message}`);this.backgroundColor=s.data,this.document.setBackground(s.data),this.events.emit(ot.ViewportSizeChanged,{width:this.size.width,height:this.size.height,backgroundColor:this.backgroundColor}),this.events.emit(ce.TimelineBackgroundChanged,{color:s.data})}getTimelineBackground(){return this.backgroundColor}resolveMergeFields(e){return this.mergeFieldService.resolve(e)}getTemplateClip(e,s){const a=this.getPlayerClip(e,s);if(!a)return null;const i=a.getExportableClip();if(!i)return null;const{clipId:r}=a;if(r&&this.document){const n=this.document.getClipBindings(r);if(n)for(const[o,{placeholder:l}]of n)Er(i,o,l)}return i}getTemplateClipText(e,s){const a=this.getTemplateClip(e,s);return a?a.asset?.text??null:null}getLumaClipIdForContent(e){for(const[s,a]of this.lumaContentRelations)if(a===e)return s;return null}getContentClipIdForLuma(e){return this.lumaContentRelations.get(e)??null}setLumaContentRelationship(e,s){this.lumaContentRelations.set(e,s)}clearLumaContentRelationship(e){this.lumaContentRelations.delete(e)}getLumaContentRelationship(e){return this.lumaContentRelations.get(e)}normalizeLumaAttachments(){let e=!1;for(let s=0;s<this.tracks.length;s+=1){const a=this.tracks[s];for(const i of a)if(i.playerType===Qe.Luma){const r=this.findBestContentMatch(s,i);if(r){i.clipId&&r.clipId&&this.lumaContentRelations.set(i.clipId,r.clipId);const n=a.indexOf(i);this.document.updateClip(s,n,{start:r.getStart(),length:r.getLength()}),e=!0}}}e&&this.resolve()}findBestContentMatch(e,s){const a=this.tracks[e],i=s.getStart(),r=i+s.getLength();let n=null,o=0;for(const l of a)if(l.playerType!==Qe.Luma){const c=l.getStart(),f=c+l.getLength(),h=Dk(i,r,c,f);h>o&&(o=h,n=l)}return n}setupIntentListeners(){this.events.on(ot.CanvasClipClicked,e=>{this.selectPlayer(e.player)}),this.events.on(ot.CanvasBackgroundClicked,()=>{this.clearSelection()})}getTracks(){return this.tracks}getTrackCount(){return this.document.getTrackCount()}getClipCountInTrack(e){return this.document.getClipCountInTrack(e)}}class D0{constructor(e,s,a,i,r,n,o,l){this.clipId=e,this.propertyPath=s,this.fieldName=a,this.previousFieldName=i,this.trackIndex=o,this.clipIndex=l,this.storedPreviousValue=r,this.storedNewValue=n}name="setMergeField";storedPreviousValue;storedNewValue;storedPreviousBinding;buildPartialAssetUpdate(e,s){if(!e.startsWith("asset."))return{};const i=e.slice(6).split(".");if(i.length===1)return{[i[0]]:s};let r={[i[i.length-1]]:s};for(let n=i.length-2;n>=0;n-=1)r={[i[n]]:r};return r}getMergedAsset(e,s){const r=e.getDocument()?.getClip(this.trackIndex,this.clipIndex)?.asset??{};return Pr(r,s)}async execute(e){if(!e)throw new Error("SetMergeFieldCommand.execute: context is required");const s=e.getMergeFields();if(this.storedPreviousBinding=e.getClipBinding(this.clipId,this.propertyPath),this.fieldName){const r={placeholder:s.createTemplate(this.fieldName),resolvedValue:this.storedNewValue};e.setClipBinding(this.clipId,this.propertyPath,r)}else e.removeClipBinding(this.clipId,this.propertyPath);this.fieldName?s.register({name:this.fieldName,defaultValue:this.storedNewValue},{silent:!0}):this.previousFieldName&&s.remove(this.previousFieldName,{silent:!0});const a=this.buildPartialAssetUpdate(this.propertyPath,this.storedNewValue),i=this.getMergedAsset(e,a);return e.documentUpdateClip(this.trackIndex,this.clipIndex,{asset:i}),e.resolve(),e.emitEvent(ce.MergeFieldApplied,{propertyPath:this.propertyPath,fieldName:this.fieldName??"",trackIndex:this.trackIndex,clipIndex:this.clipIndex}),Fe()}async undo(e){if(!e)throw new Error("SetMergeFieldCommand.undo: context is required");const s=e.getMergeFields();this.storedPreviousBinding?e.setClipBinding(this.clipId,this.propertyPath,this.storedPreviousBinding):e.removeClipBinding(this.clipId,this.propertyPath),this.previousFieldName&&s.register({name:this.previousFieldName,defaultValue:this.storedPreviousValue},{silent:!0});const a=this.buildPartialAssetUpdate(this.propertyPath,this.storedPreviousValue),i=this.getMergedAsset(e,a);return e.documentUpdateClip(this.trackIndex,this.clipIndex,{asset:i}),e.resolve(),e.emitEvent(ce.MergeFieldRemoved,{propertyPath:this.propertyPath,fieldName:this.previousFieldName,trackIndex:this.trackIndex,clipIndex:this.clipIndex}),Fe()}dispose(){this.storedPreviousBinding=void 0}}function Kk(t){if(typeof t!="object"||t===null)return!1;const e=t;return e.type==="text"&&(!e.text||e.text.trim()==="")}function B0(t){return t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function Xk(t){const e=t.width??100,s=t.height??100,a=B0(t.background?.color??"#000000"),i=t.background?.opacity??1,r=t.background?.borderRadius??0,n=[`width="${e}"`,`height="${s}"`,`fill="${a}"`];if(i!==1&&n.push(`fill-opacity="${i}"`),r>0&&n.push(`rx="${r}"`,`ry="${r}"`),t.stroke?.width&&t.stroke.width>0){const o=B0(t.stroke.color??"#000000");n.push(`stroke="${o}"`),n.push(`stroke-width="${t.stroke.width}"`)}return`<svg viewBox="0 0 ${e} ${s}" xmlns="http://www.w3.org/2000/svg"><rect ${n.join(" ")}/></svg>`}function qk(t){const e=t.asset,s=Xk(e),a={...t,asset:{type:"svg",src:s,opacity:1}};return e.width!==void 0&&a.width===void 0&&(a.width=e.width),e.height!==void 0&&a.height===void 0&&(a.height=e.height),a}class Jk extends Aa{isUpdatingMergeFields=!1;get mergeFields(){return this.mergeFieldService}applyMergeField(e,s,a,i,r,n){const o=this.getClipId(e,s);if(!o)return Promise.resolve();const l=this.getResolvedClip(e,s),c=l?fi(l,a):null,f=n??(typeof c=="string"?c:""),h=this.getTemplateClip(e,s),d=h?fi(h,a):null,m=typeof d=="string"?this.mergeFieldService.extractFieldName(d):null,b=new D0(o,a,i,m,f,r,e,s);return this.executeCommand(b)}removeMergeField(e,s,a,i){const r=this.getClipId(e,s);if(!r)return Promise.resolve();const n=this.getTemplateClip(e,s),o=n?fi(n,a):null,l=typeof o=="string"?this.mergeFieldService.extractFieldName(o):null;if(!l)return Promise.resolve();const c=new D0(r,a,null,l,i,i,e,s);return this.executeCommand(c)}getMergeFieldForProperty(e,s,a){const i=this.getTemplateClip(e,s);if(!i)return null;const r=fi(i,a);return typeof r=="string"?this.mergeFieldService.extractFieldName(r):null}updateMergeFieldValueLive(e,s){if(!this.isUpdatingMergeFields){this.isUpdatingMergeFields=!0;try{const a=this.mergeFieldService.get(e);if(!a)return;this.mergeFieldService.register({...a,defaultValue:s},{silent:!0});const i=this.getTracks();for(let r=0;r<i.length;r+=1)for(let n=0;n<i[r].length;n+=1){const o=i[r][n];this.updateMergeFieldBindings(o,e,s)}this.resolve()}finally{this.isUpdatingMergeFields=!1}}}isSrcMergeField(e){const s=this.getTracks();for(const a of s)for(const i of a){const r=this.findClipIndices(i);if(r){const n=this.getTemplateClip(r.trackIndex,r.clipIndex);if(n){const o=n.asset?.type;if(o==="image"||o==="video"||o==="audio"){const c=this.getMergeFieldUsage(n,e);if(c.used&&c.isSrcField)return!0}}}}return!1}async deleteMergeFieldGlobally(e){const s=this.mergeFieldService.get(e);if(!s)return;const a=this.mergeFieldService.createTemplate(e),i=s.defaultValue,r=this.getTracks();for(let n=0;n<r.length;n+=1)for(let o=0;o<r[n].length;o+=1){const l=this.getTemplateClip(n,o);l&&await this.restoreMergeFieldInClip(n,o,l,a,i)}this.mergeFieldService.remove(e)}async convertAllTextAssets(){const e=this.getDocument();if(!e)return console.error("No document available for conversion"),{richText:0,svg:0};const s=JSON.parse(JSON.stringify(e.toJSON()));let a=0,i=0;const r=s.timeline?.tracks;if(r){for(const n of r)if(n.clips)for(let o=0;o<n.clips.length;o+=1){const l=n.clips[o],c=l.asset;c?.type==="text"&&(Kk(c)?(n.clips[o]=qk(l),i+=1):(n.clips[o]=this.convertTextClipToRichText(l),a+=1))}}return console.log("CONVERTED TEMPLATE - Copy the JSON below:"),console.log(JSON.stringify(s,null," ")),{richText:a,svg:i}}mapVerticalAlign(e){return e==="center"?"middle":e==="top"||e==="bottom"?e:"middle"}convertTextClipToRichText(e){const s=e.asset,a=s.font?.family??"Open Sans",{fontWeight:i}=Dt(a),r={family:a,size:typeof s.font?.size=="string"?Number(s.font.size):s.font?.size??32,weight:s.font?.weight??i,color:s.font?.color??"#ffffff",opacity:s.font?.opacity??1};s.stroke?.width&&s.stroke.width>0&&(r.stroke={width:s.stroke.width,color:s.stroke.color??"#000000",opacity:1});const n={letterSpacing:0,lineHeight:s.font?.lineHeight??1.2,textTransform:"none",textDecoration:"none"},o={type:"rich-text",text:s.text??"",font:r,style:n,align:{horizontal:s.alignment?.horizontal??"center",vertical:this.mapVerticalAlign(s.alignment?.vertical)}};s.background&&(o.background={color:s.background.color,opacity:s.background.opacity??1,borderRadius:s.background.borderRadius??0},s.background.padding&&(o.padding=s.background.padding)),s.animation&&(o.animation={preset:s.animation.preset,duration:s.animation.duration}),s.ellipsis!==void 0&&console.warn("TextAsset ellipsis property not supported in RichTextAsset, value dropped");const l={...e,asset:o};return s.width!==void 0&&l.width===void 0&&(l.width=s.width),s.height!==void 0&&l.height===void 0&&(l.height=s.height),l}updateMergeFieldBindings(e,s,a){if(!e)return;const{clipId:i}=e;if(!i)return;const r=this.getDocument();if(!r)return;const n=this.findClipIndices(e);if(!n)return;const o=r.getClipBindings(i);if(o){for(const[l,c]of o)if(this.mergeFieldService.extractFieldName(c.placeholder)===s){const h=this.mergeFieldService.resolve(c.placeholder),d={placeholder:c.placeholder,resolvedValue:h};r.setClipBinding(i,l,d);const m=r.getClip(n.trackIndex,n.clipIndex);m&&Er(m,l,h)}}}getMergeFieldUsage(e,s,a=""){if(!e||typeof e!="object")return{used:!1,isSrcField:!1};for(const[i,r]of Object.entries(e)){const n=a?`${a}.${i}`:i;if(typeof r=="string"){if(this.mergeFieldService.extractFieldName(r)===s)return{used:!0,isSrcField:n==="asset.src"||n.endsWith(".src")}}else if(typeof r=="object"&&r!==null){const o=this.getMergeFieldUsage(r,s,n);if(o.used)return o}}return{used:!1,isSrcField:!1}}async restoreMergeFieldInClip(e,s,a,i,r,n=""){if(!(!a||typeof a!="object"))for(const o of Object.keys(a)){const l=a[o],c=n?`${n}.${o}`:o;if(typeof l=="string"){const f=this.mergeFieldService.extractFieldName(l),h=this.mergeFieldService.extractFieldName(i);if(f&&h&&f===h){const d=l.replace(new RegExp(`\\{\\{\\s*${f}\\s*\\}\\}`,"gi"),r);await this.removeMergeField(e,s,c,d)}}else typeof l=="object"&&l!==null&&await this.restoreMergeFieldInClip(e,s,l,i,r,c)}}}const Rr=Object.freeze(Object.defineProperty({__proto__:null,default:{}},Symbol.toStringTag,{value:"Module"}));var Qk=ac({"node_modules/.pnpm/harfbuzzjs@0.4.12/node_modules/harfbuzzjs/hb.js"(t,e){var s=(()=>{var a=typeof document<"u"?document.currentScript?.src:void 0;return async function(i={}){var r,n=i,o=typeof window=="object",l=typeof WorkerGlobalScope<"u",c=typeof process=="object"&&process.versions?.node&&process.type!="renderer",f=(N,te)=>{throw te};typeof __filename<"u"?a=__filename:l&&(a=self.location.href);var h="";function d(N){return n.locateFile?n.locateFile(N,h):h+N}var m,b;if(c){var I=cw("fs");h=__dirname+"/",b=N=>{N=F(N)?new URL(N):N;var te=I.readFileSync(N);return te},m=async(N,te=!0)=>{N=F(N)?new URL(N):N;var Ve=I.readFileSync(N,te?void 0:"utf8");return Ve},process.argv.length>1&&process.argv[1].replace(/\\/g,"/"),process.argv.slice(2),f=(N,te)=>{throw process.exitCode=N,te}}else if(o||l){try{h=new URL(".",a).href}catch{}l&&(b=N=>{var te=new XMLHttpRequest;return te.open("GET",N,!1),te.responseType="arraybuffer",te.send(null),new Uint8Array(te.response)}),m=async N=>{if(F(N))return new Promise((Ve,De)=>{var Ze=new XMLHttpRequest;Ze.open("GET",N,!0),Ze.responseType="arraybuffer",Ze.onload=()=>{if(Ze.status==200||Ze.status==0&&Ze.response){Ve(Ze.response);return}De(Ze.status)},Ze.onerror=De,Ze.send(null)});var te=await fetch(N,{credentials:"same-origin"});if(te.ok)return te.arrayBuffer();throw new Error(te.status+" : "+te.url)}}console.log.bind(console);var M=console.error.bind(console),E,V=!1,v,F=N=>N.startsWith("file://"),y,Z,P,B,J=!1;function $(){var N=P.buffer;n.HEAP8=new Int8Array(N),n.HEAPU8=B=new Uint8Array(N),n.HEAP32=new Int32Array(N),n.HEAPU32=new Uint32Array(N),n.HEAPF32=new Float32Array(N),new BigInt64Array(N),new BigUint64Array(N)}function se(){if(n.preRun)for(typeof n.preRun=="function"&&(n.preRun=[n.preRun]);n.preRun.length;)ee(n.preRun.shift());H(O)}function ue(){J=!0,Yt.__wasm_call_ctors()}function Ce(){if(n.postRun)for(typeof n.postRun=="function"&&(n.postRun=[n.postRun]);n.postRun.length;)R(n.postRun.shift());H(z)}var Te=0,Ae=null;function Le(N){Te++,n.monitorRunDependencies?.(Te)}function ye(N){if(Te--,n.monitorRunDependencies?.(Te),Te==0&&Ae){var te=Ae;Ae=null,te()}}function G(N){n.onAbort?.(N),N="Aborted("+N+")",M(N),V=!0,N+=". Build with -sASSERTIONS for more info.";var te=new WebAssembly.RuntimeError(N);throw Z?.(te),te}var Y;function W(){return d("hb.wasm")}function pe(N){if(N==Y&&E)return new Uint8Array(E);if(b)return b(N);throw"both async and sync fetching of the wasm failed"}async function ge(N){if(!E)try{var te=await m(N);return new Uint8Array(te)}catch{}return pe(N)}async function Pe(N,te){try{var Ve=await ge(N),De=await WebAssembly.instantiate(Ve,te);return De}catch(Ze){M(`failed to asynchronously prepare wasm: ${Ze}`),G(Ze)}}async function Ue(N,te,Ve){if(!N&&!F(te)&&!c)try{var De=fetch(te,{credentials:"same-origin"}),Ze=await WebAssembly.instantiateStreaming(De,Ve);return Ze}catch(ht){M(`wasm streaming compile failed: ${ht}`),M("falling back to ArrayBuffer instantiation")}return Pe(te,Ve)}function Oe(){return{env:Ia,wasi_snapshot_preview1:Ia}}async function _e(){function N(ht,Fa){return Yt=ht.exports,n.wasmExports=Yt,P=Yt.memory,n.wasmMemory=P,$(),ms=Yt.__indirect_function_table,Wr(Yt),ye(),Yt}Le();function te(ht){return N(ht.instance)}var Ve=Oe();if(n.instantiateWasm)return new Promise((ht,Fa)=>{n.instantiateWasm(Ve,(Yr,Io)=>{ht(N(Yr))})});Y??(Y=W());var De=await Ue(E,Y,Ve),Ze=te(De);return Ze}class ft{constructor(te){bt(this,"name","ExitStatus"),this.message=`Program terminated with exit(${te})`,this.status=te}}var H=N=>{for(;N.length>0;)N.shift()(n)},z=[],R=N=>z.push(N),O=[],ee=N=>O.push(N),ne=!0,ae=()=>G(""),re=0,me=()=>{ne=!1,re=0},ie={},q=N=>{if(N instanceof ft||N=="unwind")return v;f(1,N)},we=()=>ne||re>0,Je=N=>{v=N,we()||(n.onExit?.(N),V=!0),f(N,new ft(N))},gt=(N,te)=>{v=N,Je(N)},Ye=gt,it=()=>{if(!we())try{Ye(v)}catch(N){q(N)}},rt=N=>{if(!V)try{N(),it()}catch(te){q(te)}},vt=()=>performance.now(),_t=(N,te)=>{if(ie[N]&&(clearTimeout(ie[N].id),delete ie[N]),!te)return 0;var Ve=setTimeout(()=>{delete ie[N],rt(()=>mi(N,vt()))},te);return ie[N]={id:Ve,timeout_ms:te},0},ke=()=>2147483648,Vo=(N,te)=>Math.ceil(N/te)*te,Sa=N=>{var te=P.buffer.byteLength,Ve=(N-te+65535)/65536|0;try{return P.grow(Ve),$(),1}catch{}},ut=N=>{var te=B.length;N>>>=0;var Ve=ke();if(N>Ve)return!1;for(var De=1;De<=4;De*=2){var Ze=te*(1+.2/De);Ze=Math.min(Ze,N+100663296);var ht=Math.min(Ve,Vo(Math.max(N,Ze),65536)),Fa=Sa(ht);if(Fa)return!0}return!1},pi=N=>{const te=N.length;return[te%128|128,te>>7,...N]},Lt={i:127,p:127,j:126,f:125,d:124,e:111},Wt=N=>pi(Array.from(N,te=>{var Ve=Lt[te];return Ve})),Et=(N,te)=>{var Ve=Uint8Array.of(0,97,115,109,1,0,0,0,1,...pi([1,96,...Wt(te.slice(1)),...Wt(te[0]==="v"?"":te[0])]),2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0),De=new WebAssembly.Module(Ve),Ze=new WebAssembly.Instance(De,{e:{f:N}}),ht=Ze.exports.f;return ht},ms,ea=N=>ms.get(N),Os=(N,te)=>{if(Ot)for(var Ve=N;Ve<N+te;Ve++){var De=ea(Ve);De&&Ot.set(De,Ve)}},Ot,Br=N=>(Ot||(Ot=new WeakMap,Os(0,ms.length)),Ot.get(N)||0),Va=[],Ur=()=>Va.length?Va.pop():ms.grow(1),Ms=(N,te)=>ms.set(N,te),Zr=(N,te)=>{var Ve=Br(N);if(Ve)return Ve;var De=Ur();try{Ms(De,N)}catch(ht){if(!(ht instanceof TypeError))throw ht;var Ze=Et(N,te);Ms(De,Ze)}return Ot.set(N,De),De},Gr=N=>{Ot.delete(ea(N)),Ms(N,null),Va.push(N)};n.noExitRuntime&&(ne=n.noExitRuntime),n.print&&n.print,n.printErr&&(M=n.printErr),n.wasmBinary&&(E=n.wasmBinary),n.arguments&&n.arguments,n.thisProgram&&n.thisProgram,n.wasmMemory=P,n.wasmExports=Yt,n.addFunction=Zr,n.removeFunction=Gr;var mi;function Wr(N){n._hb_blob_create=N.hb_blob_create,n._hb_blob_destroy=N.hb_blob_destroy,n._hb_blob_get_length=N.hb_blob_get_length,n._hb_blob_get_data=N.hb_blob_get_data,n._hb_buffer_serialize_glyphs=N.hb_buffer_serialize_glyphs,n._hb_buffer_create=N.hb_buffer_create,n._hb_buffer_destroy=N.hb_buffer_destroy,n._hb_buffer_get_content_type=N.hb_buffer_get_content_type,n._hb_buffer_set_direction=N.hb_buffer_set_direction,n._hb_buffer_set_script=N.hb_buffer_set_script,n._hb_buffer_set_language=N.hb_buffer_set_language,n._hb_buffer_set_flags=N.hb_buffer_set_flags,n._hb_buffer_set_cluster_level=N.hb_buffer_set_cluster_level,n._hb_buffer_get_length=N.hb_buffer_get_length,n._hb_buffer_get_glyph_infos=N.hb_buffer_get_glyph_infos,n._hb_buffer_get_glyph_positions=N.hb_buffer_get_glyph_positions,n._hb_glyph_info_get_glyph_flags=N.hb_glyph_info_get_glyph_flags,n._hb_buffer_guess_segment_properties=N.hb_buffer_guess_segment_properties,n._hb_buffer_add_utf8=N.hb_buffer_add_utf8,n._hb_buffer_add_utf16=N.hb_buffer_add_utf16,n._hb_buffer_set_message_func=N.hb_buffer_set_message_func,n._hb_language_from_string=N.hb_language_from_string,n._hb_script_from_string=N.hb_script_from_string,n._hb_version=N.hb_version,n._hb_version_string=N.hb_version_string,n._hb_feature_from_string=N.hb_feature_from_string,n._malloc=N.malloc,n._free=N.free,n._hb_draw_funcs_set_move_to_func=N.hb_draw_funcs_set_move_to_func,n._hb_draw_funcs_set_line_to_func=N.hb_draw_funcs_set_line_to_func,n._hb_draw_funcs_set_quadratic_to_func=N.hb_draw_funcs_set_quadratic_to_func,n._hb_draw_funcs_set_cubic_to_func=N.hb_draw_funcs_set_cubic_to_func,n._hb_draw_funcs_set_close_path_func=N.hb_draw_funcs_set_close_path_func,n._hb_draw_funcs_create=N.hb_draw_funcs_create,n._hb_draw_funcs_destroy=N.hb_draw_funcs_destroy,n._hb_face_create=N.hb_face_create,n._hb_face_destroy=N.hb_face_destroy,n._hb_face_reference_table=N.hb_face_reference_table,n._hb_face_get_upem=N.hb_face_get_upem,n._hb_face_collect_unicodes=N.hb_face_collect_unicodes,n._hb_font_draw_glyph=N.hb_font_draw_glyph,n._hb_font_glyph_to_string=N.hb_font_glyph_to_string,n._hb_font_create=N.hb_font_create,n._hb_font_set_variations=N.hb_font_set_variations,n._hb_font_destroy=N.hb_font_destroy,n._hb_font_set_scale=N.hb_font_set_scale,n._hb_set_create=N.hb_set_create,n._hb_set_destroy=N.hb_set_destroy,n._hb_ot_var_get_axis_infos=N.hb_ot_var_get_axis_infos,n._hb_set_get_population=N.hb_set_get_population,n._hb_set_next_many=N.hb_set_next_many,n._hb_shape=N.hb_shape,mi=N._emscripten_timeout}var Ia={_abort_js:ae,_emscripten_runtime_keepalive_clear:me,_setitimer_js:_t,emscripten_resize_heap:ut,proc_exit:Je},Yt=await _e();function _a(){if(Te>0){Ae=_a;return}if(se(),Te>0){Ae=_a;return}function N(){n.calledRun=!0,!V&&(ue(),y?.(n),n.onRuntimeInitialized?.(),Ce())}n.setStatus?(n.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>n.setStatus(""),1),N()},1)):N()}function yi(){if(n.preInit)for(typeof n.preInit=="function"&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.shift()()}return yi(),_a(),J?r=n:r=new Promise((N,te)=>{y=N,Z=te}),r}})();typeof t=="object"&&typeof e=="object"?(e.exports=s,e.exports.default=s):typeof define=="function"&&define.amd&&define([],()=>s)}});const $k=Qk(),eN=Object.freeze(Object.defineProperty({__proto__:null,default:$k},Symbol.toStringTag,{value:"Module"}));var tN=ac({"node_modules/.pnpm/harfbuzzjs@0.4.12/node_modules/harfbuzzjs/hbjs.js"(t,e){function s(a){var i=a.wasmExports,r=new TextDecoder("utf8");let n=a.addFunction,o=a.removeFunction;var l=n(function(G){i.free(G)},"vi"),c=2,f=-1,h=2,d=0,m=1,b=2;function I(G){return(G.charCodeAt(0)&255)<<24|(G.charCodeAt(1)&255)<<16|(G.charCodeAt(2)&255)<<8|(G.charCodeAt(3)&255)<<0}var M=I("JSON"),E=4;function V(G){return[String.fromCharCode(G>>24&255),String.fromCharCode(G>>16&255),String.fromCharCode(G>>8&255),String.fromCharCode(G>>0&255)].join("")}function v(G){return G=="BOT"?1:G=="EOT"?2:G=="PRESERVE_DEFAULT_IGNORABLES"?4:G=="REMOVE_DEFAULT_IGNORABLES"?8:G=="DO_NOT_INSERT_DOTTED_CIRCLE"?16:G=="PRODUCE_UNSAFE_TO_CONCAT"?64:0}function F(G){var Y=i.malloc(G.byteLength);a.HEAPU8.set(new Uint8Array(G),Y);var W=i.hb_blob_create(Y,G.byteLength,c,Y,l);return{ptr:W,destroy:function(){i.hb_blob_destroy(W)}}}function y(G){const Y=i.hb_set_get_population(G),W=i.malloc(Y<<2),pe=W>>2,ge=a.HEAPU32.subarray(pe,pe+Y);return a.HEAPU32.set(ge,pe),i.hb_set_next_many(G,f,W,Y),ge}function Z(G,Y){var W=i.hb_face_create(G.ptr,Y);const pe=i.hb_face_get_upem(W);return{ptr:W,upem:pe,reference_table:function(ge){var Pe=i.hb_face_reference_table(W,I(ge)),Ue=i.hb_blob_get_length(Pe);if(Ue){var Oe=i.hb_blob_get_data(Pe,null),_e=a.HEAPU8.subarray(Oe,Oe+Ue);return _e}},getAxisInfos:function(){var ge=i.malloc(2048),Pe=i.malloc(4);a.HEAPU32[Pe/4]=64,i.hb_ot_var_get_axis_infos(W,0,Pe,ge);var Ue={};return Array.from({length:a.HEAPU32[Pe/4]}).forEach(function(Oe,_e){Ue[V(a.HEAPU32[ge/4+_e*8+1])]={min:a.HEAPF32[ge/4+_e*8+4],default:a.HEAPF32[ge/4+_e*8+5],max:a.HEAPF32[ge/4+_e*8+6]}}),i.free(Pe),i.free(ge),Ue},collectUnicodes:function(){var ge=i.hb_set_create();i.hb_face_collect_unicodes(W,ge);var Pe=y(ge);return i.hb_set_destroy(ge),Pe},destroy:function(){i.hb_face_destroy(W)}}}var P="",B=256,J=i.malloc(B);function $(G){var Y=i.hb_font_create(G.ptr),W=null,pe=null,ge=null,Pe=null,Ue=null,Oe=null;function _e(H){if(!W){var z=function(ae,re,me,ie,q,we){P+=`M${ie},${q}`},R=function(ae,re,me,ie,q,we){P+=`L${ie},${q}`},O=function(ae,re,me,ie,q,we,Je,gt,Ye,it){P+=`C${ie},${q} ${we},${Je} ${gt},${Ye}`},ee=function(ae,re,me,ie,q,we,Je,gt){P+=`Q${ie},${q} ${we},${Je}`},ne=function(ae,re,me,ie){P+="Z"};pe=n(z,"viiiffi"),ge=n(R,"viiiffi"),Pe=n(O,"viiiffffffi"),Ue=n(ee,"viiiffffi"),Oe=n(ne,"viiii"),W=i.hb_draw_funcs_create(),i.hb_draw_funcs_set_move_to_func(W,pe,0,0),i.hb_draw_funcs_set_line_to_func(W,ge,0,0),i.hb_draw_funcs_set_cubic_to_func(W,Pe,0,0),i.hb_draw_funcs_set_quadratic_to_func(W,Ue,0,0),i.hb_draw_funcs_set_close_path_func(W,Oe,0,0)}return P="",i.hb_font_draw_glyph(Y,H,W,0),P}function ft(H){i.hb_font_glyph_to_string(Y,H,J,B);var z=a.HEAPU8.subarray(J,J+B);return r.decode(z.slice(0,z.indexOf(0)))}return{ptr:Y,glyphName:ft,glyphToPath:_e,glyphToJson:function(H){var z=_e(H);return z.replace(/([MLQCZ])/g,"|$1 ").split("|").filter(function(R){return R.length}).map(function(R){var O=R.split(/[ ,]/g);return{type:O[0],values:O.slice(1).filter(function(ee){return ee.length}).map(function(ee){return+ee})}})},setScale:function(H,z){i.hb_font_set_scale(Y,H,z)},setVariations:function(H){var z=Object.entries(H),R=i.malloc(8*z.length);z.forEach(function(O,ee){a.HEAPU32[R/4+ee*2+0]=I(O[0]),a.HEAPF32[R/4+ee*2+1]=O[1]}),i.hb_font_set_variations(Y,R,z.length),i.free(R)},destroy:function(){i.hb_font_destroy(Y),W&&(i.hb_draw_funcs_destroy(W),W=null,o(pe),o(ge),o(Pe),o(Ue),o(Oe))}}}function se(G){var Y=i.malloc(G.length+1);for(let W=0;W<G.length;++W){const pe=G.charCodeAt(W);if(pe>127)throw new Error("Expected ASCII text");a.HEAPU8[Y+W]=pe}return a.HEAPU8[Y+G.length]=0,{ptr:Y,length:G.length,free:function(){i.free(Y)}}}function ue(G){const Y=i.malloc(G.length*2),W=new Uint16Array(a.wasmMemory.buffer,Y,G.length);for(let pe=0;pe<W.length;++pe)W[pe]=G.charCodeAt(pe);return{ptr:Y,length:W.length,free:function(){i.free(Y)}}}function Ce(){var G=i.hb_buffer_create();return{ptr:G,addText:function(Y){const W=ue(Y);i.hb_buffer_add_utf16(G,W.ptr,W.length,0,W.length),W.free()},guessSegmentProperties:function(){return i.hb_buffer_guess_segment_properties(G)},setDirection:function(Y){i.hb_buffer_set_direction(G,{ltr:4,rtl:5,ttb:6,btt:7}[Y]||0)},setFlags:function(Y){var W=0;Y.forEach(function(pe){W|=v(pe)}),i.hb_buffer_set_flags(G,W)},setLanguage:function(Y){var W=se(Y);i.hb_buffer_set_language(G,i.hb_language_from_string(W.ptr,-1)),W.free()},setScript:function(Y){var W=se(Y);i.hb_buffer_set_script(G,i.hb_script_from_string(W.ptr,-1)),W.free()},setClusterLevel:function(Y){i.hb_buffer_set_cluster_level(G,Y)},json:function(){for(var Y=i.hb_buffer_get_length(G),W=[],pe=i.hb_buffer_get_glyph_infos(G,0),ge=pe/4,Pe=i.hb_buffer_get_glyph_positions(G,0)/4,Ue=a.HEAPU32.subarray(ge,ge+5*Y),Oe=a.HEAP32.subarray(Pe,Pe+5*Y),_e=0;_e<Y;++_e)W.push({g:Ue[_e*5+0],cl:Ue[_e*5+2],ax:Oe[_e*5+0],ay:Oe[_e*5+1],dx:Oe[_e*5+2],dy:Oe[_e*5+3],flags:i.hb_glyph_info_get_glyph_flags(pe+_e*20)});return W},destroy:function(){i.hb_buffer_destroy(G)}}}function Te(G,Y,W){var pe=0,ge=0;W&&(W=W.split(","),pe=i.malloc(16*W.length),W.forEach(function(Pe,Ue){var Oe=se(Pe);i.hb_feature_from_string(Oe.ptr,-1,pe+ge*16)&&ge++,Oe.free()})),i.hb_shape(G.ptr,Y.ptr,pe,ge),pe&&i.free(pe)}function Ae(G,Y,W,pe,ge){var Pe=[],Ue=d,Oe=!1,_e=1024*1024,ft=i.malloc(_e),H=function(R,O,ee,ne){var ae=r.decode(a.HEAPU8.subarray(ee,a.HEAPU8.indexOf(0,ee)));return ae.startsWith("start table GSUB")?Ue=m:ae.startsWith("start table GPOS")&&(Ue=b),Ue!=ge&&(Oe=!1),ge!=d&&Ue==ge&&ae.startsWith("end lookup "+pe)&&(Oe=!0),Oe?0:(i.hb_buffer_serialize_glyphs(R,0,i.hb_buffer_get_length(R),ft,_e,0,O,M,E),Pe.push({m:ae,t:JSON.parse(r.decode(a.HEAPU8.subarray(ft,a.HEAPU8.indexOf(0,ft)))),glyphs:i.hb_buffer_get_content_type(R)==h}),1)},z=n(H,"iiiii");return i.hb_buffer_set_message_func(Y.ptr,z,0,0),Te(G,Y,W),i.free(ft),o(z),Pe}function Le(){var G=i.malloc(12);i.hb_version(G,G+4,G+8);var Y={major:a.HEAPU32[G/4],minor:a.HEAPU32[(G+4)/4],micro:a.HEAPU32[(G+8)/4]};return i.free(G),Y}function ye(){var G=i.hb_version_string(),Y=r.decode(a.HEAPU8.subarray(G,a.HEAPU8.indexOf(0,G)));return Y}return{createBlob:F,createFace:Z,createFont:$,createBuffer:Ce,shape:Te,shapeWithTrace:Ae,version:Le,version_string:ye}}try{e.exports=s}catch{}}});const sN=tN(),aN=Object.freeze(Object.defineProperty({__proto__:null,default:sN},Symbol.toStringTag,{value:"Module"}));var le,gs=new Array(128).fill(void 0);gs.push(void 0,null,!0,!1);var ui=gs.length;function It(t){ui===gs.length&&gs.push(gs.length+1);const e=ui;return ui=gs[e],gs[e]=t,e}function Nt(t){return gs[t]}function iN(t){t<132||(gs[t]=ui,ui=t)}function ps(t){const e=Nt(t);return iN(t),e}var hi=0,di=null;function zr(){return(di===null||di.byteLength===0)&&(di=new Uint8Array(le.memory.buffer)),di}var Lr=typeof TextEncoder<"u"?new TextEncoder("utf-8"):{encode:()=>{throw Error("TextEncoder not available")}},rN=typeof Lr.encodeInto=="function"?function(t,e){return Lr.encodeInto(t,e)}:function(t,e){const s=Lr.encode(t);return e.set(s),{read:t.length,written:s.length}};function ko(t,e,s){if(s===void 0){const o=Lr.encode(t),l=e(o.length,1)>>>0;return zr().subarray(l,l+o.length).set(o),hi=o.length,l}let a=t.length,i=e(a,1)>>>0;const r=zr();let n=0;for(;n<a;n++){const o=t.charCodeAt(n);if(o>127)break;r[i+n]=o}if(n!==a){n!==0&&(t=t.slice(n)),i=s(i,a,a=n+t.length*3,1)>>>0;const o=zr().subarray(i+n,i+a),l=rN(t,o);n+=l.written,i=s(i,a,n,1)>>>0}return hi=n,i}function No(t){return t==null}var gi=null;function dt(){return(gi===null||gi.byteLength===0)&&(gi=new Int32Array(le.memory.buffer)),gi}var U0=typeof TextDecoder<"u"?new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}):{decode:()=>{throw Error("TextDecoder not available")}};typeof TextDecoder<"u"&&U0.decode();function Dr(t,e){return t=t>>>0,U0.decode(zr().subarray(t,t+e))}function nN(t,e){if(!(t instanceof e))throw new Error(`expected instance of ${e.name}`);return t.ptr}function oN(t,e){try{return t.apply(this,e)}catch(s){le.__wbindgen_exn_store(It(s))}}var Z0=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(t=>le.__wbg_bbox_free(t>>>0)),Ao=class q0{static __wrap(e){e=e>>>0;const s=Object.create(q0.prototype);return s.__wbg_ptr=e,Z0.register(s,s.__wbg_ptr,s),s}__destroy_into_raw(){const e=this.__wbg_ptr;return this.__wbg_ptr=0,Z0.unregister(this),e}free(){const e=this.__destroy_into_raw();le.__wbg_bbox_free(e)}get x(){return le.__wbg_get_bbox_x(this.__wbg_ptr)}set x(e){le.__wbg_set_bbox_x(this.__wbg_ptr,e)}get y(){return le.__wbg_get_bbox_y(this.__wbg_ptr)}set y(e){le.__wbg_set_bbox_y(this.__wbg_ptr,e)}get width(){return le.__wbg_get_bbox_width(this.__wbg_ptr)}set width(e){le.__wbg_set_bbox_width(this.__wbg_ptr,e)}get height(){return le.__wbg_get_bbox_height(this.__wbg_ptr)}set height(e){le.__wbg_set_bbox_height(this.__wbg_ptr,e)}},G0=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(t=>le.__wbg_renderedimage_free(t>>>0)),lN=class J0{static __wrap(e){e=e>>>0;const s=Object.create(J0.prototype);return s.__wbg_ptr=e,G0.register(s,s.__wbg_ptr,s),s}__destroy_into_raw(){const e=this.__wbg_ptr;return this.__wbg_ptr=0,G0.unregister(this),e}free(){const e=this.__destroy_into_raw();le.__wbg_renderedimage_free(e)}get width(){return le.renderedimage_width(this.__wbg_ptr)>>>0}get height(){return le.renderedimage_height(this.__wbg_ptr)>>>0}asPng(){try{const i=le.__wbindgen_add_to_stack_pointer(-16);le.renderedimage_asPng(i,this.__wbg_ptr);var e=dt()[i/4+0],s=dt()[i/4+1],a=dt()[i/4+2];if(a)throw ps(s);return ps(e)}finally{le.__wbindgen_add_to_stack_pointer(16)}}get pixels(){const e=le.renderedimage_pixels(this.__wbg_ptr);return ps(e)}},cN=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(t=>le.__wbg_resvg_free(t>>>0)),fN=class{__destroy_into_raw(){const t=this.__wbg_ptr;return this.__wbg_ptr=0,cN.unregister(this),t}free(){const t=this.__destroy_into_raw();le.__wbg_resvg_free(t)}constructor(t,e,s){try{const l=le.__wbindgen_add_to_stack_pointer(-16);var a=No(e)?0:ko(e,le.__wbindgen_malloc,le.__wbindgen_realloc),i=hi;le.resvg_new(l,It(t),a,i,No(s)?0:It(s));var r=dt()[l/4+0],n=dt()[l/4+1],o=dt()[l/4+2];if(o)throw ps(n);return this.__wbg_ptr=r>>>0,this}finally{le.__wbindgen_add_to_stack_pointer(16)}}get width(){return le.resvg_width(this.__wbg_ptr)}get height(){return le.resvg_height(this.__wbg_ptr)}render(){try{const a=le.__wbindgen_add_to_stack_pointer(-16);le.resvg_render(a,this.__wbg_ptr);var t=dt()[a/4+0],e=dt()[a/4+1],s=dt()[a/4+2];if(s)throw ps(e);return lN.__wrap(t)}finally{le.__wbindgen_add_to_stack_pointer(16)}}toString(){let t,e;try{const i=le.__wbindgen_add_to_stack_pointer(-16);le.resvg_toString(i,this.__wbg_ptr);var s=dt()[i/4+0],a=dt()[i/4+1];return t=s,e=a,Dr(s,a)}finally{le.__wbindgen_add_to_stack_pointer(16),le.__wbindgen_free(t,e,1)}}innerBBox(){const t=le.resvg_innerBBox(this.__wbg_ptr);return t===0?void 0:Ao.__wrap(t)}getBBox(){const t=le.resvg_getBBox(this.__wbg_ptr);return t===0?void 0:Ao.__wrap(t)}cropByBBox(t){nN(t,Ao),le.resvg_cropByBBox(this.__wbg_ptr,t.__wbg_ptr)}imagesToResolve(){try{const a=le.__wbindgen_add_to_stack_pointer(-16);le.resvg_imagesToResolve(a,this.__wbg_ptr);var t=dt()[a/4+0],e=dt()[a/4+1],s=dt()[a/4+2];if(s)throw ps(e);return ps(t)}finally{le.__wbindgen_add_to_stack_pointer(16)}}resolveImage(t,e){try{const i=le.__wbindgen_add_to_stack_pointer(-16),r=ko(t,le.__wbindgen_malloc,le.__wbindgen_realloc),n=hi;le.resvg_resolveImage(i,this.__wbg_ptr,r,n,It(e));var s=dt()[i/4+0],a=dt()[i/4+1];if(a)throw ps(s)}finally{le.__wbindgen_add_to_stack_pointer(16)}}};async function uN(t,e){if(typeof Response=="function"&&t instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(t,e)}catch(a){if(t.headers.get("Content-Type")!="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",a);else throw a}const s=await t.arrayBuffer();return await WebAssembly.instantiate(s,e)}else{const s=await WebAssembly.instantiate(t,e);return s instanceof WebAssembly.Instance?{instance:s,module:t}:s}}function hN(){const t={};return t.wbg={},t.wbg.__wbg_new_28c511d9baebfa89=function(e,s){const a=new Error(Dr(e,s));return It(a)},t.wbg.__wbindgen_memory=function(){const e=le.memory;return It(e)},t.wbg.__wbg_buffer_12d079cc21e14bdb=function(e){const s=Nt(e).buffer;return It(s)},t.wbg.__wbg_newwithbyteoffsetandlength_aa4a17c33a06e5cb=function(e,s,a){const i=new Uint8Array(Nt(e),s>>>0,a>>>0);return It(i)},t.wbg.__wbindgen_object_drop_ref=function(e){ps(e)},t.wbg.__wbg_new_63b92bc8671ed464=function(e){const s=new Uint8Array(Nt(e));return It(s)},t.wbg.__wbg_values_839f3396d5aac002=function(e){const s=Nt(e).values();return It(s)},t.wbg.__wbg_next_196c84450b364254=function(){return oN(function(e){const s=Nt(e).next();return It(s)},arguments)},t.wbg.__wbg_done_298b57d23c0fc80c=function(e){return Nt(e).done},t.wbg.__wbg_value_d93c65011f51a456=function(e){const s=Nt(e).value;return It(s)},t.wbg.__wbg_instanceof_Uint8Array_2b3bbecd033d19f6=function(e){let s;try{s=Nt(e)instanceof Uint8Array}catch{s=!1}return s},t.wbg.__wbindgen_string_get=function(e,s){const a=Nt(s),i=typeof a=="string"?a:void 0;var r=No(i)?0:ko(i,le.__wbindgen_malloc,le.__wbindgen_realloc),n=hi;dt()[e/4+1]=n,dt()[e/4+0]=r},t.wbg.__wbg_new_16b304a2cfa7ff4a=function(){const e=new Array;return It(e)},t.wbg.__wbindgen_string_new=function(e,s){const a=Dr(e,s);return It(a)},t.wbg.__wbg_push_a5b05aedc7234f9f=function(e,s){return Nt(e).push(Nt(s))},t.wbg.__wbg_length_c20a40f15020d68a=function(e){return Nt(e).length},t.wbg.__wbg_set_a47bac70306a19a7=function(e,s,a){Nt(e).set(Nt(s),a>>>0)},t.wbg.__wbindgen_throw=function(e,s){throw new Error(Dr(e,s))},t}function dN(t,e){return le=t.exports,W0.__wbindgen_wasm_module=e,gi=null,di=null,le}async function W0(t){if(le!==void 0)return le;typeof t>"u"&&(t=new URL("index_bg.wasm",void 0));const e=hN();(typeof t=="string"||typeof Request=="function"&&t instanceof Request||typeof URL=="function"&&t instanceof URL)&&(t=fetch(t));const{instance:s,module:a}=await uN(await t,e);return dN(s,a)}var gN=W0,So=!1,pN=async t=>{if(So)throw new Error("Already initialized. The `initWasm()` function can be used only once.");await gN(await t),So=!0},mN=class extends fN{constructor(t,e){if(!So)throw new Error("Wasm has not been initialized. Call `initWasm()` function.");const s=e?.font;if(s&&yN(s)){const a={...e,font:{...s,fontBuffers:void 0}};super(t,JSON.stringify(a),s.fontBuffers)}else super(t,JSON.stringify(e))}};function yN(t){return Object.prototype.hasOwnProperty.call(t,"fontBuffers")}const Y0=Object.freeze(Object.defineProperty({__proto__:null,Resvg:mN,initWasm:pN},Symbol.toStringTag,{value:"Module"}));Ht.Edit=Aa,Ht.ShotstackEdit=Jk,Object.defineProperty(Ht,Symbol.toStringTag,{value:"Module"})});
|