var __glob_0_2=Object.freeze(Object.defineProperty({__proto__:null,get getImage(){return getImage}},Symbol.toStringTag,{value:"Module"}));const p$3=function(){const R=document.createElement("link").relList;if(R&&R.supports&&R.supports("modulepreload"))return;for(const G of document.querySelectorAll('link[rel="modulepreload"]'))D(G);new MutationObserver(G=>{for(const U of G)if(U.type==="childList")for(const W of U.addedNodes)W.tagName==="LINK"&&W.rel==="modulepreload"&&D(W)}).observe(document,{childList:!0,subtree:!0});function F(G){const U={};return G.integrity&&(U.integrity=G.integrity),G.referrerpolicy&&(U.referrerPolicy=G.referrerpolicy),G.crossorigin==="use-credentials"?U.credentials="include":G.crossorigin==="anonymous"?U.credentials="omit":U.credentials="same-origin",U}function D(G){if(G.ep)return;G.ep=!0;const U=F(G);fetch(G.href,U)}};p$3();function makeMap(B,R){const F=Object.create(null),D=B.split(",");for(let G=0;G!!F[G.toLowerCase()]:G=>!!F[G]}const specialBooleanAttrs="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",isSpecialBooleanAttr=makeMap(specialBooleanAttrs);function includeBooleanAttr(B){return!!B||B===""}function normalizeStyle(B){if(isArray$5(B)){const R={};for(let F=0;F{if(F){const D=F.split(propertyDelimiterRE);D.length>1&&(R[D[0].trim()]=D[1].trim())}}),R}function normalizeClass(B){let R="";if(isString(B))R=B;else if(isArray$5(B))for(let F=0;F{},NO=()=>!1,onRE=/^on[^a-z]/,isOn=B=>onRE.test(B),isModelListener=B=>B.startsWith("onUpdate:"),extend$3=Object.assign,remove$7=(B,R)=>{const F=B.indexOf(R);F>-1&&B.splice(F,1)},hasOwnProperty$2=Object.prototype.hasOwnProperty,hasOwn=(B,R)=>hasOwnProperty$2.call(B,R),isArray$5=Array.isArray,isMap=B=>toTypeString(B)==="[object Map]",isSet=B=>toTypeString(B)==="[object Set]",isFunction$4=B=>typeof B=="function",isString=B=>typeof B=="string",isSymbol=B=>typeof B=="symbol",isObject$4=B=>B!==null&&typeof B=="object",isPromise$1=B=>isObject$4(B)&&isFunction$4(B.then)&&isFunction$4(B.catch),objectToString$1=Object.prototype.toString,toTypeString=B=>objectToString$1.call(B),toRawType=B=>toTypeString(B).slice(8,-1),isPlainObject$2=B=>toTypeString(B)==="[object Object]",isIntegerKey=B=>isString(B)&&B!=="NaN"&&B[0]!=="-"&&""+parseInt(B,10)===B,isReservedProp=makeMap(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),cacheStringFunction=B=>{const R=Object.create(null);return F=>R[F]||(R[F]=B(F))},camelizeRE$1=/-(\w)/g,camelize$1=cacheStringFunction(B=>B.replace(camelizeRE$1,(R,F)=>F?F.toUpperCase():"")),hyphenateRE=/\B([A-Z])/g,hyphenate=cacheStringFunction(B=>B.replace(hyphenateRE,"-$1").toLowerCase()),capitalize=cacheStringFunction(B=>B.charAt(0).toUpperCase()+B.slice(1)),toHandlerKey=cacheStringFunction(B=>B?`on${capitalize(B)}`:""),hasChanged=(B,R)=>!Object.is(B,R),invokeArrayFns=(B,R)=>{for(let F=0;F{Object.defineProperty(B,R,{configurable:!0,enumerable:!1,value:F})},toNumber=B=>{const R=parseFloat(B);return isNaN(R)?B:R};let _globalThis;const getGlobalThis=()=>_globalThis||(_globalThis=typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:typeof window!="undefined"?window:typeof global!="undefined"?global:{});let activeEffectScope;class EffectScope{constructor(R=!1){this.active=!0,this.effects=[],this.cleanups=[],!R&&activeEffectScope&&(this.parent=activeEffectScope,this.index=(activeEffectScope.scopes||(activeEffectScope.scopes=[])).push(this)-1)}run(R){if(this.active){const F=activeEffectScope;try{return activeEffectScope=this,R()}finally{activeEffectScope=F}}}on(){activeEffectScope=this}off(){activeEffectScope=this.parent}stop(R){if(this.active){let F,D;for(F=0,D=this.effects.length;F{const R=new Set(B);return R.w=0,R.n=0,R},wasTracked=B=>(B.w&trackOpBit)>0,newTracked=B=>(B.n&trackOpBit)>0,initDepMarkers=({deps:B})=>{if(B.length)for(let R=0;R{const{deps:R}=B;if(R.length){let F=0;for(let D=0;D{(Q==="length"||Q>=D)&&q.push(Y)});else switch(F!==void 0&&q.push(W.get(F)),R){case"add":isArray$5(B)?isIntegerKey(F)&&q.push(W.get("length")):(q.push(W.get(ITERATE_KEY)),isMap(B)&&q.push(W.get(MAP_KEY_ITERATE_KEY)));break;case"delete":isArray$5(B)||(q.push(W.get(ITERATE_KEY)),isMap(B)&&q.push(W.get(MAP_KEY_ITERATE_KEY)));break;case"set":isMap(B)&&q.push(W.get(ITERATE_KEY));break}if(q.length===1)q[0]&&triggerEffects(q[0]);else{const Y=[];for(const Q of q)Q&&Y.push(...Q);triggerEffects(createDep(Y))}}function triggerEffects(B,R){for(const F of isArray$5(B)?B:[...B])(F!==activeEffect||F.allowRecurse)&&(F.scheduler?F.scheduler():F.run())}const isNonTrackableKeys=makeMap("__proto__,__v_isRef,__isVue"),builtInSymbols=new Set(Object.getOwnPropertyNames(Symbol).map(B=>Symbol[B]).filter(isSymbol)),get$1=createGetter(),shallowGet=createGetter(!1,!0),readonlyGet=createGetter(!0),arrayInstrumentations=createArrayInstrumentations();function createArrayInstrumentations(){const B={};return["includes","indexOf","lastIndexOf"].forEach(R=>{B[R]=function(...F){const D=toRaw(this);for(let U=0,W=this.length;U{B[R]=function(...F){pauseTracking();const D=toRaw(this)[R].apply(this,F);return resetTracking(),D}}),B}function createGetter(B=!1,R=!1){return function(D,G,U){if(G==="__v_isReactive")return!B;if(G==="__v_isReadonly")return B;if(G==="__v_isShallow")return R;if(G==="__v_raw"&&U===(B?R?shallowReadonlyMap:readonlyMap:R?shallowReactiveMap:reactiveMap).get(D))return D;const W=isArray$5(D);if(!B&&W&&hasOwn(arrayInstrumentations,G))return Reflect.get(arrayInstrumentations,G,U);const q=Reflect.get(D,G,U);return(isSymbol(G)?builtInSymbols.has(G):isNonTrackableKeys(G))||(B||track(D,"get",G),R)?q:isRef(q)?!W||!isIntegerKey(G)?q.value:q:isObject$4(q)?B?readonly(q):reactive(q):q}}const set=createSetter(),shallowSet=createSetter(!0);function createSetter(B=!1){return function(F,D,G,U){let W=F[D];if(isReadonly(W)&&isRef(W)&&!isRef(G))return!1;if(!B&&!isReadonly(G)&&(isShallow(G)||(G=toRaw(G),W=toRaw(W)),!isArray$5(F)&&isRef(W)&&!isRef(G)))return W.value=G,!0;const q=isArray$5(F)&&isIntegerKey(D)?Number(D)B,getProto=B=>Reflect.getPrototypeOf(B);function get$1$1(B,R,F=!1,D=!1){B=B.__v_raw;const G=toRaw(B),U=toRaw(R);R!==U&&!F&&track(G,"get",R),!F&&track(G,"get",U);const{has:W}=getProto(G),q=D?toShallow:F?toReadonly:toReactive;if(W.call(G,R))return q(B.get(R));if(W.call(G,U))return q(B.get(U));B!==G&&B.get(R)}function has$1$1(B,R=!1){const F=this.__v_raw,D=toRaw(F),G=toRaw(B);return B!==G&&!R&&track(D,"has",B),!R&&track(D,"has",G),B===G?F.has(B):F.has(B)||F.has(G)}function size(B,R=!1){return B=B.__v_raw,!R&&track(toRaw(B),"iterate",ITERATE_KEY),Reflect.get(B,"size",B)}function add(B){B=toRaw(B);const R=toRaw(this);return getProto(R).has.call(R,B)||(R.add(B),trigger$1(R,"add",B,B)),this}function set$1(B,R){R=toRaw(R);const F=toRaw(this),{has:D,get:G}=getProto(F);let U=D.call(F,B);U||(B=toRaw(B),U=D.call(F,B));const W=G.call(F,B);return F.set(B,R),U?hasChanged(R,W)&&trigger$1(F,"set",B,R):trigger$1(F,"add",B,R),this}function deleteEntry(B){const R=toRaw(this),{has:F,get:D}=getProto(R);let G=F.call(R,B);G||(B=toRaw(B),G=F.call(R,B)),D&&D.call(R,B);const U=R.delete(B);return G&&trigger$1(R,"delete",B,void 0),U}function clear(){const B=toRaw(this),R=B.size!==0,F=B.clear();return R&&trigger$1(B,"clear",void 0,void 0),F}function createForEach(B,R){return function(D,G){const U=this,W=U.__v_raw,q=toRaw(W),Y=R?toShallow:B?toReadonly:toReactive;return!B&&track(q,"iterate",ITERATE_KEY),W.forEach((Q,Z)=>D.call(G,Y(Q),Y(Z),U))}}function createIterableMethod(B,R,F){return function(...D){const G=this.__v_raw,U=toRaw(G),W=isMap(U),q=B==="entries"||B===Symbol.iterator&&W,Y=B==="keys"&&W,Q=G[B](...D),Z=F?toShallow:R?toReadonly:toReactive;return!R&&track(U,"iterate",Y?MAP_KEY_ITERATE_KEY:ITERATE_KEY),{next(){const{value:K,done:J}=Q.next();return J?{value:K,done:J}:{value:q?[Z(K[0]),Z(K[1])]:Z(K),done:J}},[Symbol.iterator](){return this}}}}function createReadonlyMethod(B){return function(...R){return B==="delete"?!1:this}}function createInstrumentations(){const B={get(U){return get$1$1(this,U)},get size(){return size(this)},has:has$1$1,add,set:set$1,delete:deleteEntry,clear,forEach:createForEach(!1,!1)},R={get(U){return get$1$1(this,U,!1,!0)},get size(){return size(this)},has:has$1$1,add,set:set$1,delete:deleteEntry,clear,forEach:createForEach(!1,!0)},F={get(U){return get$1$1(this,U,!0)},get size(){return size(this,!0)},has(U){return has$1$1.call(this,U,!0)},add:createReadonlyMethod("add"),set:createReadonlyMethod("set"),delete:createReadonlyMethod("delete"),clear:createReadonlyMethod("clear"),forEach:createForEach(!0,!1)},D={get(U){return get$1$1(this,U,!0,!0)},get size(){return size(this,!0)},has(U){return has$1$1.call(this,U,!0)},add:createReadonlyMethod("add"),set:createReadonlyMethod("set"),delete:createReadonlyMethod("delete"),clear:createReadonlyMethod("clear"),forEach:createForEach(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(U=>{B[U]=createIterableMethod(U,!1,!1),F[U]=createIterableMethod(U,!0,!1),R[U]=createIterableMethod(U,!1,!0),D[U]=createIterableMethod(U,!0,!0)}),[B,F,R,D]}const[mutableInstrumentations,readonlyInstrumentations,shallowInstrumentations,shallowReadonlyInstrumentations]=createInstrumentations();function createInstrumentationGetter(B,R){const F=R?B?shallowReadonlyInstrumentations:shallowInstrumentations:B?readonlyInstrumentations:mutableInstrumentations;return(D,G,U)=>G==="__v_isReactive"?!B:G==="__v_isReadonly"?B:G==="__v_raw"?D:Reflect.get(hasOwn(F,G)&&G in D?F:D,G,U)}const mutableCollectionHandlers={get:createInstrumentationGetter(!1,!1)},shallowCollectionHandlers={get:createInstrumentationGetter(!1,!0)},readonlyCollectionHandlers={get:createInstrumentationGetter(!0,!1)},reactiveMap=new WeakMap,shallowReactiveMap=new WeakMap,readonlyMap=new WeakMap,shallowReadonlyMap=new WeakMap;function targetTypeMap(B){switch(B){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function getTargetType(B){return B.__v_skip||!Object.isExtensible(B)?0:targetTypeMap(toRawType(B))}function reactive(B){return isReadonly(B)?B:createReactiveObject(B,!1,mutableHandlers,mutableCollectionHandlers,reactiveMap)}function shallowReactive(B){return createReactiveObject(B,!1,shallowReactiveHandlers,shallowCollectionHandlers,shallowReactiveMap)}function readonly(B){return createReactiveObject(B,!0,readonlyHandlers,readonlyCollectionHandlers,readonlyMap)}function createReactiveObject(B,R,F,D,G){if(!isObject$4(B)||B.__v_raw&&!(R&&B.__v_isReactive))return B;const U=G.get(B);if(U)return U;const W=getTargetType(B);if(W===0)return B;const q=new Proxy(B,W===2?D:F);return G.set(B,q),q}function isReactive(B){return isReadonly(B)?isReactive(B.__v_raw):!!(B&&B.__v_isReactive)}function isReadonly(B){return!!(B&&B.__v_isReadonly)}function isShallow(B){return!!(B&&B.__v_isShallow)}function isProxy(B){return isReactive(B)||isReadonly(B)}function toRaw(B){const R=B&&B.__v_raw;return R?toRaw(R):B}function markRaw(B){return def(B,"__v_skip",!0),B}const toReactive=B=>isObject$4(B)?reactive(B):B,toReadonly=B=>isObject$4(B)?readonly(B):B;function trackRefValue(B){shouldTrack&&activeEffect&&(B=toRaw(B),trackEffects(B.dep||(B.dep=createDep())))}function triggerRefValue(B,R){B=toRaw(B),B.dep&&triggerEffects(B.dep)}function isRef(B){return!!(B&&B.__v_isRef===!0)}function ref(B){return createRef(B,!1)}function shallowRef(B){return createRef(B,!0)}function createRef(B,R){return isRef(B)?B:new RefImpl(B,R)}class RefImpl{constructor(R,F){this.__v_isShallow=F,this.dep=void 0,this.__v_isRef=!0,this._rawValue=F?R:toRaw(R),this._value=F?R:toReactive(R)}get value(){return trackRefValue(this),this._value}set value(R){R=this.__v_isShallow?R:toRaw(R),hasChanged(R,this._rawValue)&&(this._rawValue=R,this._value=this.__v_isShallow?R:toReactive(R),triggerRefValue(this))}}function unref(B){return isRef(B)?B.value:B}const shallowUnwrapHandlers={get:(B,R,F)=>unref(Reflect.get(B,R,F)),set:(B,R,F,D)=>{const G=B[R];return isRef(G)&&!isRef(F)?(G.value=F,!0):Reflect.set(B,R,F,D)}};function proxyRefs(B){return isReactive(B)?B:new Proxy(B,shallowUnwrapHandlers)}function toRefs(B){const R=isArray$5(B)?new Array(B.length):{};for(const F in B)R[F]=toRef(B,F);return R}class ObjectRefImpl{constructor(R,F,D){this._object=R,this._key=F,this._defaultValue=D,this.__v_isRef=!0}get value(){const R=this._object[this._key];return R===void 0?this._defaultValue:R}set value(R){this._object[this._key]=R}}function toRef(B,R,F){const D=B[R];return isRef(D)?D:new ObjectRefImpl(B,R,F)}class ComputedRefImpl{constructor(R,F,D,G){this._setter=F,this.dep=void 0,this.__v_isRef=!0,this._dirty=!0,this.effect=new ReactiveEffect(R,()=>{this._dirty||(this._dirty=!0,triggerRefValue(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!G,this.__v_isReadonly=D}get value(){const R=toRaw(this);return trackRefValue(R),(R._dirty||!R._cacheable)&&(R._dirty=!1,R._value=R.effect.run()),R._value}set value(R){this._setter(R)}}function computed$1(B,R,F=!1){let D,G;const U=isFunction$4(B);return U?(D=B,G=NOOP):(D=B.get,G=B.set),new ComputedRefImpl(D,G,U||!G,F)}function callWithErrorHandling(B,R,F,D){let G;try{G=D?B(...D):B()}catch(U){handleError(U,R,F)}return G}function callWithAsyncErrorHandling(B,R,F,D){if(isFunction$4(B)){const U=callWithErrorHandling(B,R,F,D);return U&&isPromise$1(U)&&U.catch(W=>{handleError(W,R,F)}),U}const G=[];for(let U=0;U>>1;getId(queue$2[D])flushIndex&&queue$2.splice(R,1)}function queueCb(B,R,F,D){isArray$5(B)?F.push(...B):(!R||!R.includes(B,B.allowRecurse?D+1:D))&&F.push(B),queueFlush()}function queuePreFlushCb(B){queueCb(B,activePreFlushCbs,pendingPreFlushCbs,preFlushIndex)}function queuePostFlushCb(B){queueCb(B,activePostFlushCbs,pendingPostFlushCbs,postFlushIndex)}function flushPreFlushCbs(B,R=null){if(pendingPreFlushCbs.length){for(currentPreFlushParentJob=R,activePreFlushCbs=[...new Set(pendingPreFlushCbs)],pendingPreFlushCbs.length=0,preFlushIndex=0;preFlushIndexgetId(F)-getId(D)),postFlushIndex=0;postFlushIndexB.id==null?1/0:B.id;function flushJobs(B){isFlushPending=!1,isFlushing=!0,flushPreFlushCbs(B),queue$2.sort((F,D)=>getId(F)-getId(D));const R=NOOP;try{for(flushIndex=0;flushIndexie.trim()):K&&(G=F.map(toNumber))}let q,Y=D[q=toHandlerKey(R)]||D[q=toHandlerKey(camelize$1(R))];!Y&&U&&(Y=D[q=toHandlerKey(hyphenate(R))]),Y&&callWithAsyncErrorHandling(Y,B,6,G);const Q=D[q+"Once"];if(Q){if(!B.emitted)B.emitted={};else if(B.emitted[q])return;B.emitted[q]=!0,callWithAsyncErrorHandling(Q,B,6,G)}}function normalizeEmitsOptions(B,R,F=!1){const D=R.emitsCache,G=D.get(B);if(G!==void 0)return G;const U=B.emits;let W={},q=!1;if(!isFunction$4(B)){const Y=Q=>{const Z=normalizeEmitsOptions(Q,R,!0);Z&&(q=!0,extend$3(W,Z))};!F&&R.mixins.length&&R.mixins.forEach(Y),B.extends&&Y(B.extends),B.mixins&&B.mixins.forEach(Y)}return!U&&!q?(D.set(B,null),null):(isArray$5(U)?U.forEach(Y=>W[Y]=null):extend$3(W,U),D.set(B,W),W)}function isEmitListener(B,R){return!B||!isOn(R)?!1:(R=R.slice(2).replace(/Once$/,""),hasOwn(B,R[0].toLowerCase()+R.slice(1))||hasOwn(B,hyphenate(R))||hasOwn(B,R))}let currentRenderingInstance=null,currentScopeId=null;function setCurrentRenderingInstance(B){const R=currentRenderingInstance;return currentRenderingInstance=B,currentScopeId=B&&B.type.__scopeId||null,R}function withCtx(B,R=currentRenderingInstance,F){if(!R||B._n)return B;const D=(...G)=>{D._d&&setBlockTracking(-1);const U=setCurrentRenderingInstance(R),W=B(...G);return setCurrentRenderingInstance(U),D._d&&setBlockTracking(1),W};return D._n=!0,D._c=!0,D._d=!0,D}function markAttrsAccessed(){}function renderComponentRoot(B){const{type:R,vnode:F,proxy:D,withProxy:G,props:U,propsOptions:[W],slots:q,attrs:Y,emit:Q,render:Z,renderCache:K,data:J,setupState:ie,ctx:ne,inheritAttrs:se}=B;let re,ae;const le=setCurrentRenderingInstance(B);try{if(F.shapeFlag&4){const he=G||D;re=normalizeVNode(Z.call(he,he,K,U,ie,J,ne)),ae=Y}else{const he=R;re=normalizeVNode(he.length>1?he(U,{attrs:Y,slots:q,emit:Q}):he(U,null)),ae=R.props?Y:getFunctionalFallthrough(Y)}}catch(he){blockStack.length=0,handleError(he,B,1),re=createVNode(Comment)}let ce=re;if(ae&&se!==!1){const he=Object.keys(ae),{shapeFlag:de}=ce;he.length&&de&7&&(W&&he.some(isModelListener)&&(ae=filterModelListeners(ae,W)),ce=cloneVNode(ce,ae))}return F.dirs&&(ce.dirs=ce.dirs?ce.dirs.concat(F.dirs):F.dirs),F.transition&&(ce.transition=F.transition),re=ce,setCurrentRenderingInstance(le),re}const getFunctionalFallthrough=B=>{let R;for(const F in B)(F==="class"||F==="style"||isOn(F))&&((R||(R={}))[F]=B[F]);return R},filterModelListeners=(B,R)=>{const F={};for(const D in B)(!isModelListener(D)||!(D.slice(9)in R))&&(F[D]=B[D]);return F};function shouldUpdateComponent(B,R,F){const{props:D,children:G,component:U}=B,{props:W,children:q,patchFlag:Y}=R,Q=U.emitsOptions;if(R.dirs||R.transition)return!0;if(F&&Y>=0){if(Y&1024)return!0;if(Y&16)return D?hasPropsChanged(D,W,Q):!!W;if(Y&8){const Z=R.dynamicProps;for(let K=0;KB.__isSuspense;function queueEffectWithSuspense(B,R){R&&R.pendingBranch?isArray$5(B)?R.effects.push(...B):R.effects.push(B):queuePostFlushCb(B)}function provide(B,R){if(currentInstance){let F=currentInstance.provides;const D=currentInstance.parent&¤tInstance.parent.provides;D===F&&(F=currentInstance.provides=Object.create(D)),F[B]=R}}function inject(B,R,F=!1){const D=currentInstance||currentRenderingInstance;if(D){const G=D.parent==null?D.vnode.appContext&&D.vnode.appContext.provides:D.parent.provides;if(G&&B in G)return G[B];if(arguments.length>1)return F&&isFunction$4(R)?R.call(D.proxy):R}}function watchEffect(B,R){return doWatch(B,null,R)}const INITIAL_WATCHER_VALUE={};function watch(B,R,F){return doWatch(B,R,F)}function doWatch(B,R,{immediate:F,deep:D,flush:G,onTrack:U,onTrigger:W}=EMPTY_OBJ){const q=currentInstance;let Y,Q=!1,Z=!1;if(isRef(B)?(Y=()=>B.value,Q=isShallow(B)):isReactive(B)?(Y=()=>B,D=!0):isArray$5(B)?(Z=!0,Q=B.some(isReactive),Y=()=>B.map(ae=>{if(isRef(ae))return ae.value;if(isReactive(ae))return traverse(ae);if(isFunction$4(ae))return callWithErrorHandling(ae,q,2)})):isFunction$4(B)?R?Y=()=>callWithErrorHandling(B,q,2):Y=()=>{if(!(q&&q.isUnmounted))return K&&K(),callWithAsyncErrorHandling(B,q,3,[J])}:Y=NOOP,R&&D){const ae=Y;Y=()=>traverse(ae())}let K,J=ae=>{K=re.onStop=()=>{callWithErrorHandling(ae,q,4)}};if(isInSSRComponentSetup)return J=NOOP,R?F&&callWithAsyncErrorHandling(R,q,3,[Y(),Z?[]:void 0,J]):Y(),NOOP;let ie=Z?[]:INITIAL_WATCHER_VALUE;const ne=()=>{if(!!re.active)if(R){const ae=re.run();(D||Q||(Z?ae.some((le,ce)=>hasChanged(le,ie[ce])):hasChanged(ae,ie)))&&(K&&K(),callWithAsyncErrorHandling(R,q,3,[ae,ie===INITIAL_WATCHER_VALUE?void 0:ie,J]),ie=ae)}else re.run()};ne.allowRecurse=!!R;let se;G==="sync"?se=ne:G==="post"?se=()=>queuePostRenderEffect(ne,q&&q.suspense):se=()=>{!q||q.isMounted?queuePreFlushCb(ne):ne()};const re=new ReactiveEffect(Y,se);return R?F?ne():ie=re.run():G==="post"?queuePostRenderEffect(re.run.bind(re),q&&q.suspense):re.run(),()=>{re.stop(),q&&q.scope&&remove$7(q.scope.effects,re)}}function instanceWatch(B,R,F){const D=this.proxy,G=isString(B)?B.includes(".")?createPathGetter(D,B):()=>D[B]:B.bind(D,D);let U;isFunction$4(R)?U=R:(U=R.handler,F=R);const W=currentInstance;setCurrentInstance(this);const q=doWatch(G,U.bind(D),F);return W?setCurrentInstance(W):unsetCurrentInstance(),q}function createPathGetter(B,R){const F=R.split(".");return()=>{let D=B;for(let G=0;G{traverse(F,R)});else if(isPlainObject$2(B))for(const F in B)traverse(B[F],R);return B}function useTransitionState(){const B={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return onMounted(()=>{B.isMounted=!0}),onBeforeUnmount(()=>{B.isUnmounting=!0}),B}const TransitionHookValidator=[Function,Array],BaseTransitionImpl={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:TransitionHookValidator,onEnter:TransitionHookValidator,onAfterEnter:TransitionHookValidator,onEnterCancelled:TransitionHookValidator,onBeforeLeave:TransitionHookValidator,onLeave:TransitionHookValidator,onAfterLeave:TransitionHookValidator,onLeaveCancelled:TransitionHookValidator,onBeforeAppear:TransitionHookValidator,onAppear:TransitionHookValidator,onAfterAppear:TransitionHookValidator,onAppearCancelled:TransitionHookValidator},setup(B,{slots:R}){const F=getCurrentInstance(),D=useTransitionState();let G;return()=>{const U=R.default&&getTransitionRawChildren(R.default(),!0);if(!U||!U.length)return;let W=U[0];if(U.length>1){for(const se of U)if(se.type!==Comment){W=se;break}}const q=toRaw(B),{mode:Y}=q;if(D.isLeaving)return emptyPlaceholder(W);const Q=getKeepAliveChild(W);if(!Q)return emptyPlaceholder(W);const Z=resolveTransitionHooks(Q,q,D,F);setTransitionHooks(Q,Z);const K=F.subTree,J=K&&getKeepAliveChild(K);let ie=!1;const{getTransitionKey:ne}=Q.type;if(ne){const se=ne();G===void 0?G=se:se!==G&&(G=se,ie=!0)}if(J&&J.type!==Comment&&(!isSameVNodeType(Q,J)||ie)){const se=resolveTransitionHooks(J,q,D,F);if(setTransitionHooks(J,se),Y==="out-in")return D.isLeaving=!0,se.afterLeave=()=>{D.isLeaving=!1,F.update()},emptyPlaceholder(W);Y==="in-out"&&Q.type!==Comment&&(se.delayLeave=(re,ae,le)=>{const ce=getLeavingNodesForType(D,J);ce[String(J.key)]=J,re._leaveCb=()=>{ae(),re._leaveCb=void 0,delete Z.delayedLeave},Z.delayedLeave=le})}return W}}},BaseTransition=BaseTransitionImpl;function getLeavingNodesForType(B,R){const{leavingVNodes:F}=B;let D=F.get(R.type);return D||(D=Object.create(null),F.set(R.type,D)),D}function resolveTransitionHooks(B,R,F,D){const{appear:G,mode:U,persisted:W=!1,onBeforeEnter:q,onEnter:Y,onAfterEnter:Q,onEnterCancelled:Z,onBeforeLeave:K,onLeave:J,onAfterLeave:ie,onLeaveCancelled:ne,onBeforeAppear:se,onAppear:re,onAfterAppear:ae,onAppearCancelled:le}=R,ce=String(B.key),he=getLeavingNodesForType(F,B),de=(fe,ge)=>{fe&&callWithAsyncErrorHandling(fe,D,9,ge)},me={mode:U,persisted:W,beforeEnter(fe){let ge=q;if(!F.isMounted)if(G)ge=se||q;else return;fe._leaveCb&&fe._leaveCb(!0);const Se=he[ce];Se&&isSameVNodeType(B,Se)&&Se.el._leaveCb&&Se.el._leaveCb(),de(ge,[fe])},enter(fe){let ge=Y,Se=Q,Ee=Z;if(!F.isMounted)if(G)ge=re||Y,Se=ae||Q,Ee=le||Z;else return;let ve=!1;const xe=fe._enterCb=Pe=>{ve||(ve=!0,Pe?de(Ee,[fe]):de(Se,[fe]),me.delayedLeave&&me.delayedLeave(),fe._enterCb=void 0)};ge?(ge(fe,xe),ge.length<=1&&xe()):xe()},leave(fe,ge){const Se=String(B.key);if(fe._enterCb&&fe._enterCb(!0),F.isUnmounting)return ge();de(K,[fe]);let Ee=!1;const ve=fe._leaveCb=xe=>{Ee||(Ee=!0,ge(),xe?de(ne,[fe]):de(ie,[fe]),fe._leaveCb=void 0,he[Se]===B&&delete he[Se])};he[Se]=B,J?(J(fe,ve),J.length<=1&&ve()):ve()},clone(fe){return resolveTransitionHooks(fe,R,F,D)}};return me}function emptyPlaceholder(B){if(isKeepAlive(B))return B=cloneVNode(B),B.children=null,B}function getKeepAliveChild(B){return isKeepAlive(B)?B.children?B.children[0]:void 0:B}function setTransitionHooks(B,R){B.shapeFlag&6&&B.component?setTransitionHooks(B.component.subTree,R):B.shapeFlag&128?(B.ssContent.transition=R.clone(B.ssContent),B.ssFallback.transition=R.clone(B.ssFallback)):B.transition=R}function getTransitionRawChildren(B,R=!1,F){let D=[],G=0;for(let U=0;U1)for(let U=0;U!!B.type.__asyncLoader,isKeepAlive=B=>B.type.__isKeepAlive;function onActivated(B,R){registerKeepAliveHook(B,"a",R)}function onDeactivated(B,R){registerKeepAliveHook(B,"da",R)}function registerKeepAliveHook(B,R,F=currentInstance){const D=B.__wdc||(B.__wdc=()=>{let G=F;for(;G;){if(G.isDeactivated)return;G=G.parent}return B()});if(injectHook(R,D,F),F){let G=F.parent;for(;G&&G.parent;)isKeepAlive(G.parent.vnode)&&injectToKeepAliveRoot(D,R,F,G),G=G.parent}}function injectToKeepAliveRoot(B,R,F,D){const G=injectHook(R,B,D,!0);onUnmounted(()=>{remove$7(D[R],G)},F)}function injectHook(B,R,F=currentInstance,D=!1){if(F){const G=F[B]||(F[B]=[]),U=R.__weh||(R.__weh=(...W)=>{if(F.isUnmounted)return;pauseTracking(),setCurrentInstance(F);const q=callWithAsyncErrorHandling(R,F,B,W);return unsetCurrentInstance(),resetTracking(),q});return D?G.unshift(U):G.push(U),U}}const createHook=B=>(R,F=currentInstance)=>(!isInSSRComponentSetup||B==="sp")&&injectHook(B,R,F),onBeforeMount=createHook("bm"),onMounted=createHook("m"),onBeforeUpdate=createHook("bu"),onUpdated=createHook("u"),onBeforeUnmount=createHook("bum"),onUnmounted=createHook("um"),onServerPrefetch=createHook("sp"),onRenderTriggered=createHook("rtg"),onRenderTracked=createHook("rtc");function onErrorCaptured(B,R=currentInstance){injectHook("ec",B,R)}let shouldCacheAccess=!0;function applyOptions(B){const R=resolveMergedOptions(B),F=B.proxy,D=B.ctx;shouldCacheAccess=!1,R.beforeCreate&&callHook$1(R.beforeCreate,B,"bc");const{data:G,computed:U,methods:W,watch:q,provide:Y,inject:Q,created:Z,beforeMount:K,mounted:J,beforeUpdate:ie,updated:ne,activated:se,deactivated:re,beforeDestroy:ae,beforeUnmount:le,destroyed:ce,unmounted:he,render:de,renderTracked:me,renderTriggered:fe,errorCaptured:ge,serverPrefetch:Se,expose:Ee,inheritAttrs:ve,components:xe,directives:Pe,filters:ye}=R;if(Q&&resolveInjections(Q,D,null,B.appContext.config.unwrapInjectedRef),W)for(const we in W){const Ae=W[we];isFunction$4(Ae)&&(D[we]=Ae.bind(F))}if(G){const we=G.call(F,F);isObject$4(we)&&(B.data=reactive(we))}if(shouldCacheAccess=!0,U)for(const we in U){const Ae=U[we],Me=isFunction$4(Ae)?Ae.bind(F,F):isFunction$4(Ae.get)?Ae.get.bind(F,F):NOOP,ke=!isFunction$4(Ae)&&isFunction$4(Ae.set)?Ae.set.bind(F):NOOP,Ne=computed({get:Me,set:ke});Object.defineProperty(D,we,{enumerable:!0,configurable:!0,get:()=>Ne.value,set:Ie=>Ne.value=Ie})}if(q)for(const we in q)createWatcher(q[we],D,F,we);if(Y){const we=isFunction$4(Y)?Y.call(F):Y;Reflect.ownKeys(we).forEach(Ae=>{provide(Ae,we[Ae])})}Z&&callHook$1(Z,B,"c");function Le(we,Ae){isArray$5(Ae)?Ae.forEach(Me=>we(Me.bind(F))):Ae&&we(Ae.bind(F))}if(Le(onBeforeMount,K),Le(onMounted,J),Le(onBeforeUpdate,ie),Le(onUpdated,ne),Le(onActivated,se),Le(onDeactivated,re),Le(onErrorCaptured,ge),Le(onRenderTracked,me),Le(onRenderTriggered,fe),Le(onBeforeUnmount,le),Le(onUnmounted,he),Le(onServerPrefetch,Se),isArray$5(Ee))if(Ee.length){const we=B.exposed||(B.exposed={});Ee.forEach(Ae=>{Object.defineProperty(we,Ae,{get:()=>F[Ae],set:Me=>F[Ae]=Me})})}else B.exposed||(B.exposed={});de&&B.render===NOOP&&(B.render=de),ve!=null&&(B.inheritAttrs=ve),xe&&(B.components=xe),Pe&&(B.directives=Pe)}function resolveInjections(B,R,F=NOOP,D=!1){isArray$5(B)&&(B=normalizeInject(B));for(const G in B){const U=B[G];let W;isObject$4(U)?"default"in U?W=inject(U.from||G,U.default,!0):W=inject(U.from||G):W=inject(U),isRef(W)&&D?Object.defineProperty(R,G,{enumerable:!0,configurable:!0,get:()=>W.value,set:q=>W.value=q}):R[G]=W}}function callHook$1(B,R,F){callWithAsyncErrorHandling(isArray$5(B)?B.map(D=>D.bind(R.proxy)):B.bind(R.proxy),R,F)}function createWatcher(B,R,F,D){const G=D.includes(".")?createPathGetter(F,D):()=>F[D];if(isString(B)){const U=R[B];isFunction$4(U)&&watch(G,U)}else if(isFunction$4(B))watch(G,B.bind(F));else if(isObject$4(B))if(isArray$5(B))B.forEach(U=>createWatcher(U,R,F,D));else{const U=isFunction$4(B.handler)?B.handler.bind(F):R[B.handler];isFunction$4(U)&&watch(G,U,B)}}function resolveMergedOptions(B){const R=B.type,{mixins:F,extends:D}=R,{mixins:G,optionsCache:U,config:{optionMergeStrategies:W}}=B.appContext,q=U.get(R);let Y;return q?Y=q:!G.length&&!F&&!D?Y=R:(Y={},G.length&&G.forEach(Q=>mergeOptions$1(Y,Q,W,!0)),mergeOptions$1(Y,R,W)),U.set(R,Y),Y}function mergeOptions$1(B,R,F,D=!1){const{mixins:G,extends:U}=R;U&&mergeOptions$1(B,U,F,!0),G&&G.forEach(W=>mergeOptions$1(B,W,F,!0));for(const W in R)if(!(D&&W==="expose")){const q=internalOptionMergeStrats[W]||F&&F[W];B[W]=q?q(B[W],R[W]):R[W]}return B}const internalOptionMergeStrats={data:mergeDataFn,props:mergeObjectOptions,emits:mergeObjectOptions,methods:mergeObjectOptions,computed:mergeObjectOptions,beforeCreate:mergeAsArray,created:mergeAsArray,beforeMount:mergeAsArray,mounted:mergeAsArray,beforeUpdate:mergeAsArray,updated:mergeAsArray,beforeDestroy:mergeAsArray,beforeUnmount:mergeAsArray,destroyed:mergeAsArray,unmounted:mergeAsArray,activated:mergeAsArray,deactivated:mergeAsArray,errorCaptured:mergeAsArray,serverPrefetch:mergeAsArray,components:mergeObjectOptions,directives:mergeObjectOptions,watch:mergeWatchOptions,provide:mergeDataFn,inject:mergeInject};function mergeDataFn(B,R){return R?B?function(){return extend$3(isFunction$4(B)?B.call(this,this):B,isFunction$4(R)?R.call(this,this):R)}:R:B}function mergeInject(B,R){return mergeObjectOptions(normalizeInject(B),normalizeInject(R))}function normalizeInject(B){if(isArray$5(B)){const R={};for(let F=0;F0)&&!(W&16)){if(W&8){const Z=B.vnode.dynamicProps;for(let K=0;K{Y=!0;const[J,ie]=normalizePropsOptions(K,R,!0);extend$3(W,J),ie&&q.push(...ie)};!F&&R.mixins.length&&R.mixins.forEach(Z),B.extends&&Z(B.extends),B.mixins&&B.mixins.forEach(Z)}if(!U&&!Y)return D.set(B,EMPTY_ARR),EMPTY_ARR;if(isArray$5(U))for(let Z=0;Z-1,ie[1]=se<0||ne-1||hasOwn(ie,"default"))&&q.push(K)}}}const Q=[W,q];return D.set(B,Q),Q}function validatePropName(B){return B[0]!=="$"}function getType(B){const R=B&&B.toString().match(/^\s*function (\w+)/);return R?R[1]:B===null?"null":""}function isSameType(B,R){return getType(B)===getType(R)}function getTypeIndex(B,R){return isArray$5(R)?R.findIndex(F=>isSameType(F,B)):isFunction$4(R)&&isSameType(R,B)?0:-1}const isInternalKey=B=>B[0]==="_"||B==="$stable",normalizeSlotValue=B=>isArray$5(B)?B.map(normalizeVNode):[normalizeVNode(B)],normalizeSlot$1=(B,R,F)=>{const D=withCtx((...G)=>normalizeSlotValue(R(...G)),F);return D._c=!1,D},normalizeObjectSlots=(B,R,F)=>{const D=B._ctx;for(const G in B){if(isInternalKey(G))continue;const U=B[G];if(isFunction$4(U))R[G]=normalizeSlot$1(G,U,D);else if(U!=null){const W=normalizeSlotValue(U);R[G]=()=>W}}},normalizeVNodeSlots=(B,R)=>{const F=normalizeSlotValue(R);B.slots.default=()=>F},initSlots=(B,R)=>{if(B.vnode.shapeFlag&32){const F=R._;F?(B.slots=toRaw(R),def(R,"_",F)):normalizeObjectSlots(R,B.slots={})}else B.slots={},R&&normalizeVNodeSlots(B,R);def(B.slots,InternalObjectKey,1)},updateSlots=(B,R,F)=>{const{vnode:D,slots:G}=B;let U=!0,W=EMPTY_OBJ;if(D.shapeFlag&32){const q=R._;q?F&&q===1?U=!1:(extend$3(G,R),!F&&q===1&&delete G._):(U=!R.$stable,normalizeObjectSlots(R,G)),W=R}else R&&(normalizeVNodeSlots(B,R),W={default:1});if(U)for(const q in G)!isInternalKey(q)&&!(q in W)&&delete G[q]};function withDirectives(B,R){const F=currentRenderingInstance;if(F===null)return B;const D=getExposeProxy(F)||F.proxy,G=B.dirs||(B.dirs=[]);for(let U=0;UsetRef(J,R&&(isArray$5(R)?R[ie]:R),F,D,G));return}if(isAsyncWrapper(D)&&!G)return;const U=D.shapeFlag&4?getExposeProxy(D.component)||D.component.proxy:D.el,W=G?null:U,{i:q,r:Y}=B,Q=R&&R.r,Z=q.refs===EMPTY_OBJ?q.refs={}:q.refs,K=q.setupState;if(Q!=null&&Q!==Y&&(isString(Q)?(Z[Q]=null,hasOwn(K,Q)&&(K[Q]=null)):isRef(Q)&&(Q.value=null)),isFunction$4(Y))callWithErrorHandling(Y,q,12,[W,Z]);else{const J=isString(Y),ie=isRef(Y);if(J||ie){const ne=()=>{if(B.f){const se=J?Z[Y]:Y.value;G?isArray$5(se)&&remove$7(se,U):isArray$5(se)?se.includes(U)||se.push(U):J?(Z[Y]=[U],hasOwn(K,Y)&&(K[Y]=Z[Y])):(Y.value=[U],B.k&&(Z[B.k]=Y.value))}else J?(Z[Y]=W,hasOwn(K,Y)&&(K[Y]=W)):isRef(Y)&&(Y.value=W,B.k&&(Z[B.k]=W))};W?(ne.id=-1,queuePostRenderEffect(ne,F)):ne()}}}const queuePostRenderEffect=queueEffectWithSuspense;function createRenderer(B){return baseCreateRenderer(B)}function baseCreateRenderer(B,R){const F=getGlobalThis();F.__VUE__=!0;const{insert:D,remove:G,patchProp:U,createElement:W,createText:q,createComment:Y,setText:Q,setElementText:Z,parentNode:K,nextSibling:J,setScopeId:ie=NOOP,cloneNode:ne,insertStaticContent:se}=B,re=(Fe,_e,je,Ze=null,De=null,Oe=null,Xe=!1,tt=null,nt=!!_e.dynamicChildren)=>{if(Fe===_e)return;Fe&&!isSameVNodeType(Fe,_e)&&(Ze=Je(Fe),Ge(Fe,De,Oe,!0),Fe=null),_e.patchFlag===-2&&(nt=!1,_e.dynamicChildren=null);const{type:Ke,ref:ct,shapeFlag:ut}=_e;switch(Ke){case Text:ae(Fe,_e,je,Ze);break;case Comment:le(Fe,_e,je,Ze);break;case Static:Fe==null&&ce(_e,je,Ze,Xe);break;case Fragment:Pe(Fe,_e,je,Ze,De,Oe,Xe,tt,nt);break;default:ut&1?me(Fe,_e,je,Ze,De,Oe,Xe,tt,nt):ut&6?ye(Fe,_e,je,Ze,De,Oe,Xe,tt,nt):(ut&64||ut&128)&&Ke.process(Fe,_e,je,Ze,De,Oe,Xe,tt,nt,pt)}ct!=null&&De&&setRef(ct,Fe&&Fe.ref,Oe,_e||Fe,!_e)},ae=(Fe,_e,je,Ze)=>{if(Fe==null)D(_e.el=q(_e.children),je,Ze);else{const De=_e.el=Fe.el;_e.children!==Fe.children&&Q(De,_e.children)}},le=(Fe,_e,je,Ze)=>{Fe==null?D(_e.el=Y(_e.children||""),je,Ze):_e.el=Fe.el},ce=(Fe,_e,je,Ze)=>{[Fe.el,Fe.anchor]=se(Fe.children,_e,je,Ze,Fe.el,Fe.anchor)},he=({el:Fe,anchor:_e},je,Ze)=>{let De;for(;Fe&&Fe!==_e;)De=J(Fe),D(Fe,je,Ze),Fe=De;D(_e,je,Ze)},de=({el:Fe,anchor:_e})=>{let je;for(;Fe&&Fe!==_e;)je=J(Fe),G(Fe),Fe=je;G(_e)},me=(Fe,_e,je,Ze,De,Oe,Xe,tt,nt)=>{Xe=Xe||_e.type==="svg",Fe==null?fe(_e,je,Ze,De,Oe,Xe,tt,nt):Ee(Fe,_e,De,Oe,Xe,tt,nt)},fe=(Fe,_e,je,Ze,De,Oe,Xe,tt)=>{let nt,Ke;const{type:ct,props:ut,shapeFlag:ht,transition:vt,patchFlag:xt,dirs:gt}=Fe;if(Fe.el&&ne!==void 0&&xt===-1)nt=Fe.el=ne(Fe.el);else{if(nt=Fe.el=W(Fe.type,Oe,ut&&ut.is,ut),ht&8?Z(nt,Fe.children):ht&16&&Se(Fe.children,nt,null,Ze,De,Oe&&ct!=="foreignObject",Xe,tt),gt&&invokeDirectiveHook(Fe,null,Ze,"created"),ut){for(const kt in ut)kt!=="value"&&!isReservedProp(kt)&&U(nt,kt,null,ut[kt],Oe,Fe.children,Ze,De,et);"value"in ut&&U(nt,"value",null,ut.value),(Ke=ut.onVnodeBeforeMount)&&invokeVNodeHook(Ke,Ze,Fe)}ge(nt,Fe,Fe.scopeId,Xe,Ze)}gt&&invokeDirectiveHook(Fe,null,Ze,"beforeMount");const Pt=(!De||De&&!De.pendingBranch)&&vt&&!vt.persisted;Pt&&vt.beforeEnter(nt),D(nt,_e,je),((Ke=ut&&ut.onVnodeMounted)||Pt||gt)&&queuePostRenderEffect(()=>{Ke&&invokeVNodeHook(Ke,Ze,Fe),Pt&&vt.enter(nt),gt&&invokeDirectiveHook(Fe,null,Ze,"mounted")},De)},ge=(Fe,_e,je,Ze,De)=>{if(je&&ie(Fe,je),Ze)for(let Oe=0;Oe{for(let Ke=nt;Ke{const tt=_e.el=Fe.el;let{patchFlag:nt,dynamicChildren:Ke,dirs:ct}=_e;nt|=Fe.patchFlag&16;const ut=Fe.props||EMPTY_OBJ,ht=_e.props||EMPTY_OBJ;let vt;je&&toggleRecurse(je,!1),(vt=ht.onVnodeBeforeUpdate)&&invokeVNodeHook(vt,je,_e,Fe),ct&&invokeDirectiveHook(_e,Fe,je,"beforeUpdate"),je&&toggleRecurse(je,!0);const xt=De&&_e.type!=="foreignObject";if(Ke?ve(Fe.dynamicChildren,Ke,tt,je,Ze,xt,Oe):Xe||Me(Fe,_e,tt,null,je,Ze,xt,Oe,!1),nt>0){if(nt&16)xe(tt,_e,ut,ht,je,Ze,De);else if(nt&2&&ut.class!==ht.class&&U(tt,"class",null,ht.class,De),nt&4&&U(tt,"style",ut.style,ht.style,De),nt&8){const gt=_e.dynamicProps;for(let Pt=0;Pt{vt&&invokeVNodeHook(vt,je,_e,Fe),ct&&invokeDirectiveHook(_e,Fe,je,"updated")},Ze)},ve=(Fe,_e,je,Ze,De,Oe,Xe)=>{for(let tt=0;tt<_e.length;tt++){const nt=Fe[tt],Ke=_e[tt],ct=nt.el&&(nt.type===Fragment||!isSameVNodeType(nt,Ke)||nt.shapeFlag&70)?K(nt.el):je;re(nt,Ke,ct,null,Ze,De,Oe,Xe,!0)}},xe=(Fe,_e,je,Ze,De,Oe,Xe)=>{if(je!==Ze){for(const tt in Ze){if(isReservedProp(tt))continue;const nt=Ze[tt],Ke=je[tt];nt!==Ke&&tt!=="value"&&U(Fe,tt,Ke,nt,Xe,_e.children,De,Oe,et)}if(je!==EMPTY_OBJ)for(const tt in je)!isReservedProp(tt)&&!(tt in Ze)&&U(Fe,tt,je[tt],null,Xe,_e.children,De,Oe,et);"value"in Ze&&U(Fe,"value",je.value,Ze.value)}},Pe=(Fe,_e,je,Ze,De,Oe,Xe,tt,nt)=>{const Ke=_e.el=Fe?Fe.el:q(""),ct=_e.anchor=Fe?Fe.anchor:q("");let{patchFlag:ut,dynamicChildren:ht,slotScopeIds:vt}=_e;vt&&(tt=tt?tt.concat(vt):vt),Fe==null?(D(Ke,je,Ze),D(ct,je,Ze),Se(_e.children,je,ct,De,Oe,Xe,tt,nt)):ut>0&&ut&64&&ht&&Fe.dynamicChildren?(ve(Fe.dynamicChildren,ht,je,De,Oe,Xe,tt),(_e.key!=null||De&&_e===De.subTree)&&traverseStaticChildren(Fe,_e,!0)):Me(Fe,_e,je,ct,De,Oe,Xe,tt,nt)},ye=(Fe,_e,je,Ze,De,Oe,Xe,tt,nt)=>{_e.slotScopeIds=tt,Fe==null?_e.shapeFlag&512?De.ctx.activate(_e,je,Ze,Xe,nt):Te(_e,je,Ze,De,Oe,Xe,nt):Le(Fe,_e,nt)},Te=(Fe,_e,je,Ze,De,Oe,Xe)=>{const tt=Fe.component=createComponentInstance(Fe,Ze,De);if(isKeepAlive(Fe)&&(tt.ctx.renderer=pt),setupComponent(tt),tt.asyncDep){if(De&&De.registerDep(tt,we),!Fe.el){const nt=tt.subTree=createVNode(Comment);le(null,nt,_e,je)}return}we(tt,Fe,_e,je,De,Oe,Xe)},Le=(Fe,_e,je)=>{const Ze=_e.component=Fe.component;if(shouldUpdateComponent(Fe,_e,je))if(Ze.asyncDep&&!Ze.asyncResolved){Ae(Ze,_e,je);return}else Ze.next=_e,invalidateJob(Ze.update),Ze.update();else _e.component=Fe.component,_e.el=Fe.el,Ze.vnode=_e},we=(Fe,_e,je,Ze,De,Oe,Xe)=>{const tt=()=>{if(Fe.isMounted){let{next:ct,bu:ut,u:ht,parent:vt,vnode:xt}=Fe,gt=ct,Pt;toggleRecurse(Fe,!1),ct?(ct.el=xt.el,Ae(Fe,ct,Xe)):ct=xt,ut&&invokeArrayFns(ut),(Pt=ct.props&&ct.props.onVnodeBeforeUpdate)&&invokeVNodeHook(Pt,vt,ct,xt),toggleRecurse(Fe,!0);const kt=renderComponentRoot(Fe),Yt=Fe.subTree;Fe.subTree=kt,re(Yt,kt,K(Yt.el),Je(Yt),Fe,De,Oe),ct.el=kt.el,gt===null&&updateHOCHostEl(Fe,kt.el),ht&&queuePostRenderEffect(ht,De),(Pt=ct.props&&ct.props.onVnodeUpdated)&&queuePostRenderEffect(()=>invokeVNodeHook(Pt,vt,ct,xt),De)}else{let ct;const{el:ut,props:ht}=_e,{bm:vt,m:xt,parent:gt}=Fe,Pt=isAsyncWrapper(_e);if(toggleRecurse(Fe,!1),vt&&invokeArrayFns(vt),!Pt&&(ct=ht&&ht.onVnodeBeforeMount)&&invokeVNodeHook(ct,gt,_e),toggleRecurse(Fe,!0),ut&&yt){const kt=()=>{Fe.subTree=renderComponentRoot(Fe),yt(ut,Fe.subTree,Fe,De,null)};Pt?_e.type.__asyncLoader().then(()=>!Fe.isUnmounted&&kt()):kt()}else{const kt=Fe.subTree=renderComponentRoot(Fe);re(null,kt,je,Ze,Fe,De,Oe),_e.el=kt.el}if(xt&&queuePostRenderEffect(xt,De),!Pt&&(ct=ht&&ht.onVnodeMounted)){const kt=_e;queuePostRenderEffect(()=>invokeVNodeHook(ct,gt,kt),De)}_e.shapeFlag&256&&Fe.a&&queuePostRenderEffect(Fe.a,De),Fe.isMounted=!0,_e=je=Ze=null}},nt=Fe.effect=new ReactiveEffect(tt,()=>queueJob(Fe.update),Fe.scope),Ke=Fe.update=nt.run.bind(nt);Ke.id=Fe.uid,toggleRecurse(Fe,!0),Ke()},Ae=(Fe,_e,je)=>{_e.component=Fe;const Ze=Fe.vnode.props;Fe.vnode=_e,Fe.next=null,updateProps(Fe,_e.props,Ze,je),updateSlots(Fe,_e.children,je),pauseTracking(),flushPreFlushCbs(void 0,Fe.update),resetTracking()},Me=(Fe,_e,je,Ze,De,Oe,Xe,tt,nt=!1)=>{const Ke=Fe&&Fe.children,ct=Fe?Fe.shapeFlag:0,ut=_e.children,{patchFlag:ht,shapeFlag:vt}=_e;if(ht>0){if(ht&128){Ne(Ke,ut,je,Ze,De,Oe,Xe,tt,nt);return}else if(ht&256){ke(Ke,ut,je,Ze,De,Oe,Xe,tt,nt);return}}vt&8?(ct&16&&et(Ke,De,Oe),ut!==Ke&&Z(je,ut)):ct&16?vt&16?Ne(Ke,ut,je,Ze,De,Oe,Xe,tt,nt):et(Ke,De,Oe,!0):(ct&8&&Z(je,""),vt&16&&Se(ut,je,Ze,De,Oe,Xe,tt,nt))},ke=(Fe,_e,je,Ze,De,Oe,Xe,tt,nt)=>{Fe=Fe||EMPTY_ARR,_e=_e||EMPTY_ARR;const Ke=Fe.length,ct=_e.length,ut=Math.min(Ke,ct);let ht;for(ht=0;htct?et(Fe,De,Oe,!0,!1,ut):Se(_e,je,Ze,De,Oe,Xe,tt,nt,ut)},Ne=(Fe,_e,je,Ze,De,Oe,Xe,tt,nt)=>{let Ke=0;const ct=_e.length;let ut=Fe.length-1,ht=ct-1;for(;Ke<=ut&&Ke<=ht;){const vt=Fe[Ke],xt=_e[Ke]=nt?cloneIfMounted(_e[Ke]):normalizeVNode(_e[Ke]);if(isSameVNodeType(vt,xt))re(vt,xt,je,null,De,Oe,Xe,tt,nt);else break;Ke++}for(;Ke<=ut&&Ke<=ht;){const vt=Fe[ut],xt=_e[ht]=nt?cloneIfMounted(_e[ht]):normalizeVNode(_e[ht]);if(isSameVNodeType(vt,xt))re(vt,xt,je,null,De,Oe,Xe,tt,nt);else break;ut--,ht--}if(Ke>ut){if(Ke<=ht){const vt=ht+1,xt=vtht)for(;Ke<=ut;)Ge(Fe[Ke],De,Oe,!0),Ke++;else{const vt=Ke,xt=Ke,gt=new Map;for(Ke=xt;Ke<=ht;Ke++){const Qt=_e[Ke]=nt?cloneIfMounted(_e[Ke]):normalizeVNode(_e[Ke]);Qt.key!=null&>.set(Qt.key,Ke)}let Pt,kt=0;const Yt=ht-xt+1;let fi=!1,Jt=0;const ii=new Array(Yt);for(Ke=0;Ke=Yt){Ge(Qt,De,Oe,!0);continue}let Ai;if(Qt.key!=null)Ai=gt.get(Qt.key);else for(Pt=xt;Pt<=ht;Pt++)if(ii[Pt-xt]===0&&isSameVNodeType(Qt,_e[Pt])){Ai=Pt;break}Ai===void 0?Ge(Qt,De,Oe,!0):(ii[Ai-xt]=Ke+1,Ai>=Jt?Jt=Ai:fi=!0,re(Qt,_e[Ai],je,null,De,Oe,Xe,tt,nt),kt++)}const ui=fi?getSequence(ii):EMPTY_ARR;for(Pt=ui.length-1,Ke=Yt-1;Ke>=0;Ke--){const Qt=xt+Ke,Ai=_e[Qt],Qi=Qt+1{const{el:Oe,type:Xe,transition:tt,children:nt,shapeFlag:Ke}=Fe;if(Ke&6){Ie(Fe.component.subTree,_e,je,Ze);return}if(Ke&128){Fe.suspense.move(_e,je,Ze);return}if(Ke&64){Xe.move(Fe,_e,je,pt);return}if(Xe===Fragment){D(Oe,_e,je);for(let ut=0;uttt.enter(Oe),De);else{const{leave:ut,delayLeave:ht,afterLeave:vt}=tt,xt=()=>D(Oe,_e,je),gt=()=>{ut(Oe,()=>{xt(),vt&&vt()})};ht?ht(Oe,xt,gt):gt()}else D(Oe,_e,je)},Ge=(Fe,_e,je,Ze=!1,De=!1)=>{const{type:Oe,props:Xe,ref:tt,children:nt,dynamicChildren:Ke,shapeFlag:ct,patchFlag:ut,dirs:ht}=Fe;if(tt!=null&&setRef(tt,null,je,Fe,!0),ct&256){_e.ctx.deactivate(Fe);return}const vt=ct&1&&ht,xt=!isAsyncWrapper(Fe);let gt;if(xt&&(gt=Xe&&Xe.onVnodeBeforeUnmount)&&invokeVNodeHook(gt,_e,Fe),ct&6)Ye(Fe.component,je,Ze);else{if(ct&128){Fe.suspense.unmount(je,Ze);return}vt&&invokeDirectiveHook(Fe,null,_e,"beforeUnmount"),ct&64?Fe.type.remove(Fe,_e,je,De,pt,Ze):Ke&&(Oe!==Fragment||ut>0&&ut&64)?et(Ke,_e,je,!1,!0):(Oe===Fragment&&ut&384||!De&&ct&16)&&et(nt,_e,je),Ze&&ze(Fe)}(xt&&(gt=Xe&&Xe.onVnodeUnmounted)||vt)&&queuePostRenderEffect(()=>{gt&&invokeVNodeHook(gt,_e,Fe),vt&&invokeDirectiveHook(Fe,null,_e,"unmounted")},je)},ze=Fe=>{const{type:_e,el:je,anchor:Ze,transition:De}=Fe;if(_e===Fragment){Ve(je,Ze);return}if(_e===Static){de(Fe);return}const Oe=()=>{G(je),De&&!De.persisted&&De.afterLeave&&De.afterLeave()};if(Fe.shapeFlag&1&&De&&!De.persisted){const{leave:Xe,delayLeave:tt}=De,nt=()=>Xe(je,Oe);tt?tt(Fe.el,Oe,nt):nt()}else Oe()},Ve=(Fe,_e)=>{let je;for(;Fe!==_e;)je=J(Fe),G(Fe),Fe=je;G(_e)},Ye=(Fe,_e,je)=>{const{bum:Ze,scope:De,update:Oe,subTree:Xe,um:tt}=Fe;Ze&&invokeArrayFns(Ze),De.stop(),Oe&&(Oe.active=!1,Ge(Xe,Fe,_e,je)),tt&&queuePostRenderEffect(tt,_e),queuePostRenderEffect(()=>{Fe.isUnmounted=!0},_e),_e&&_e.pendingBranch&&!_e.isUnmounted&&Fe.asyncDep&&!Fe.asyncResolved&&Fe.suspenseId===_e.pendingId&&(_e.deps--,_e.deps===0&&_e.resolve())},et=(Fe,_e,je,Ze=!1,De=!1,Oe=0)=>{for(let Xe=Oe;XeFe.shapeFlag&6?Je(Fe.component.subTree):Fe.shapeFlag&128?Fe.suspense.next():J(Fe.anchor||Fe.el),st=(Fe,_e,je)=>{Fe==null?_e._vnode&&Ge(_e._vnode,null,null,!0):re(_e._vnode||null,Fe,_e,null,null,null,je),flushPostFlushCbs(),_e._vnode=Fe},pt={p:re,um:Ge,m:Ie,r:ze,mt:Te,mc:Se,pc:Me,pbc:ve,n:Je,o:B};let dt,yt;return R&&([dt,yt]=R(pt)),{render:st,hydrate:dt,createApp:createAppAPI(st,dt)}}function toggleRecurse({effect:B,update:R},F){B.allowRecurse=R.allowRecurse=F}function traverseStaticChildren(B,R,F=!1){const D=B.children,G=R.children;if(isArray$5(D)&&isArray$5(G))for(let U=0;U>1,B[F[q]]0&&(R[D]=F[U-1]),F[U]=D)}}for(U=F.length,W=F[U-1];U-- >0;)F[U]=W,W=R[W];return F}const isTeleport=B=>B.__isTeleport,isTeleportDisabled=B=>B&&(B.disabled||B.disabled===""),isTargetSVG=B=>typeof SVGElement!="undefined"&&B instanceof SVGElement,resolveTarget=(B,R)=>{const F=B&&B.to;return isString(F)?R?R(F):null:F},TeleportImpl={__isTeleport:!0,process(B,R,F,D,G,U,W,q,Y,Q){const{mc:Z,pc:K,pbc:J,o:{insert:ie,querySelector:ne,createText:se,createComment:re}}=Q,ae=isTeleportDisabled(R.props);let{shapeFlag:le,children:ce,dynamicChildren:he}=R;if(B==null){const de=R.el=se(""),me=R.anchor=se("");ie(de,F,D),ie(me,F,D);const fe=R.target=resolveTarget(R.props,ne),ge=R.targetAnchor=se("");fe&&(ie(ge,fe),W=W||isTargetSVG(fe));const Se=(Ee,ve)=>{le&16&&Z(ce,Ee,ve,G,U,W,q,Y)};ae?Se(F,me):fe&&Se(fe,ge)}else{R.el=B.el;const de=R.anchor=B.anchor,me=R.target=B.target,fe=R.targetAnchor=B.targetAnchor,ge=isTeleportDisabled(B.props),Se=ge?F:me,Ee=ge?de:fe;if(W=W||isTargetSVG(me),he?(J(B.dynamicChildren,he,Se,G,U,W,q),traverseStaticChildren(B,R,!0)):Y||K(B,R,Se,Ee,G,U,W,q,!1),ae)ge||moveTeleport(R,F,de,Q,1);else if((R.props&&R.props.to)!==(B.props&&B.props.to)){const ve=R.target=resolveTarget(R.props,ne);ve&&moveTeleport(R,ve,null,Q,0)}else ge&&moveTeleport(R,me,fe,Q,1)}},remove(B,R,F,D,{um:G,o:{remove:U}},W){const{shapeFlag:q,children:Y,anchor:Q,targetAnchor:Z,target:K,props:J}=B;if(K&&U(Z),(W||!isTeleportDisabled(J))&&(U(Q),q&16))for(let ie=0;ie0?currentBlock||EMPTY_ARR:null,closeBlock(),isBlockTreeEnabled>0&¤tBlock&¤tBlock.push(B),B}function createElementBlock(B,R,F,D,G,U){return setupBlock(createBaseVNode(B,R,F,D,G,U,!0))}function isVNode(B){return B?B.__v_isVNode===!0:!1}function isSameVNodeType(B,R){return B.type===R.type&&B.key===R.key}const InternalObjectKey="__vInternal",normalizeKey=({key:B})=>B!=null?B:null,normalizeRef=({ref:B,ref_key:R,ref_for:F})=>B!=null?isString(B)||isRef(B)||isFunction$4(B)?{i:currentRenderingInstance,r:B,k:R,f:!!F}:B:null;function createBaseVNode(B,R=null,F=null,D=0,G=null,U=B===Fragment?0:1,W=!1,q=!1){const Y={__v_isVNode:!0,__v_skip:!0,type:B,props:R,key:R&&normalizeKey(R),ref:R&&normalizeRef(R),scopeId:currentScopeId,slotScopeIds:null,children:F,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:U,patchFlag:D,dynamicProps:G,dynamicChildren:null,appContext:null};return q?(normalizeChildren(Y,F),U&128&&B.normalize(Y)):F&&(Y.shapeFlag|=isString(F)?8:16),isBlockTreeEnabled>0&&!W&¤tBlock&&(Y.patchFlag>0||U&6)&&Y.patchFlag!==32&¤tBlock.push(Y),Y}const createVNode=_createVNode;function _createVNode(B,R=null,F=null,D=0,G=null,U=!1){if((!B||B===NULL_DYNAMIC_COMPONENT)&&(B=Comment),isVNode(B)){const q=cloneVNode(B,R,!0);return F&&normalizeChildren(q,F),q}if(isClassComponent(B)&&(B=B.__vccOpts),R){R=guardReactiveProps(R);let{class:q,style:Y}=R;q&&!isString(q)&&(R.class=normalizeClass(q)),isObject$4(Y)&&(isProxy(Y)&&!isArray$5(Y)&&(Y=extend$3({},Y)),R.style=normalizeStyle(Y))}const W=isString(B)?1:isSuspense(B)?128:isTeleport(B)?64:isObject$4(B)?4:isFunction$4(B)?2:0;return createBaseVNode(B,R,F,D,G,W,U,!0)}function guardReactiveProps(B){return B?isProxy(B)||InternalObjectKey in B?extend$3({},B):B:null}function cloneVNode(B,R,F=!1){const{props:D,ref:G,patchFlag:U,children:W}=B,q=R?mergeProps(D||{},R):D;return{__v_isVNode:!0,__v_skip:!0,type:B.type,props:q,key:q&&normalizeKey(q),ref:R&&R.ref?F&&G?isArray$5(G)?G.concat(normalizeRef(R)):[G,normalizeRef(R)]:normalizeRef(R):G,scopeId:B.scopeId,slotScopeIds:B.slotScopeIds,children:W,target:B.target,targetAnchor:B.targetAnchor,staticCount:B.staticCount,shapeFlag:B.shapeFlag,patchFlag:R&&B.type!==Fragment?U===-1?16:U|16:U,dynamicProps:B.dynamicProps,dynamicChildren:B.dynamicChildren,appContext:B.appContext,dirs:B.dirs,transition:B.transition,component:B.component,suspense:B.suspense,ssContent:B.ssContent&&cloneVNode(B.ssContent),ssFallback:B.ssFallback&&cloneVNode(B.ssFallback),el:B.el,anchor:B.anchor}}function createTextVNode(B=" ",R=0){return createVNode(Text,null,B,R)}function normalizeVNode(B){return B==null||typeof B=="boolean"?createVNode(Comment):isArray$5(B)?createVNode(Fragment,null,B.slice()):typeof B=="object"?cloneIfMounted(B):createVNode(Text,null,String(B))}function cloneIfMounted(B){return B.el===null||B.memo?B:cloneVNode(B)}function normalizeChildren(B,R){let F=0;const{shapeFlag:D}=B;if(R==null)R=null;else if(isArray$5(R))F=16;else if(typeof R=="object")if(D&65){const G=R.default;G&&(G._c&&(G._d=!1),normalizeChildren(B,G()),G._c&&(G._d=!0));return}else{F=32;const G=R._;!G&&!(InternalObjectKey in R)?R._ctx=currentRenderingInstance:G===3&¤tRenderingInstance&&(currentRenderingInstance.slots._===1?R._=1:(R._=2,B.patchFlag|=1024))}else isFunction$4(R)?(R={default:R,_ctx:currentRenderingInstance},F=32):(R=String(R),D&64?(F=16,R=[createTextVNode(R)]):F=8);B.children=R,B.shapeFlag|=F}function mergeProps(...B){const R={};for(let F=0;FB?isStatefulComponent(B)?getExposeProxy(B)||B.proxy:getPublicInstance(B.parent):null,publicPropertiesMap=extend$3(Object.create(null),{$:B=>B,$el:B=>B.vnode.el,$data:B=>B.data,$props:B=>B.props,$attrs:B=>B.attrs,$slots:B=>B.slots,$refs:B=>B.refs,$parent:B=>getPublicInstance(B.parent),$root:B=>getPublicInstance(B.root),$emit:B=>B.emit,$options:B=>resolveMergedOptions(B),$forceUpdate:B=>()=>queueJob(B.update),$nextTick:B=>nextTick.bind(B.proxy),$watch:B=>instanceWatch.bind(B)}),PublicInstanceProxyHandlers={get({_:B},R){const{ctx:F,setupState:D,data:G,props:U,accessCache:W,type:q,appContext:Y}=B;let Q;if(R[0]!=="$"){const ie=W[R];if(ie!==void 0)switch(ie){case 1:return D[R];case 2:return G[R];case 4:return F[R];case 3:return U[R]}else{if(D!==EMPTY_OBJ&&hasOwn(D,R))return W[R]=1,D[R];if(G!==EMPTY_OBJ&&hasOwn(G,R))return W[R]=2,G[R];if((Q=B.propsOptions[0])&&hasOwn(Q,R))return W[R]=3,U[R];if(F!==EMPTY_OBJ&&hasOwn(F,R))return W[R]=4,F[R];shouldCacheAccess&&(W[R]=0)}}const Z=publicPropertiesMap[R];let K,J;if(Z)return R==="$attrs"&&track(B,"get",R),Z(B);if((K=q.__cssModules)&&(K=K[R]))return K;if(F!==EMPTY_OBJ&&hasOwn(F,R))return W[R]=4,F[R];if(J=Y.config.globalProperties,hasOwn(J,R))return J[R]},set({_:B},R,F){const{data:D,setupState:G,ctx:U}=B;return G!==EMPTY_OBJ&&hasOwn(G,R)?(G[R]=F,!0):D!==EMPTY_OBJ&&hasOwn(D,R)?(D[R]=F,!0):hasOwn(B.props,R)||R[0]==="$"&&R.slice(1)in B?!1:(U[R]=F,!0)},has({_:{data:B,setupState:R,accessCache:F,ctx:D,appContext:G,propsOptions:U}},W){let q;return!!F[W]||B!==EMPTY_OBJ&&hasOwn(B,W)||R!==EMPTY_OBJ&&hasOwn(R,W)||(q=U[0])&&hasOwn(q,W)||hasOwn(D,W)||hasOwn(publicPropertiesMap,W)||hasOwn(G.config.globalProperties,W)},defineProperty(B,R,F){return F.get!=null?B._.accessCache[R]=0:hasOwn(F,"value")&&this.set(B,R,F.value,null),Reflect.defineProperty(B,R,F)}},emptyAppContext=createAppContext();let uid$1=0;function createComponentInstance(B,R,F){const D=B.type,G=(R?R.appContext:B.appContext)||emptyAppContext,U={uid:uid$1++,vnode:B,type:D,parent:R,appContext:G,root:null,next:null,subTree:null,effect:null,update:null,scope:new EffectScope(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:R?R.provides:Object.create(G.provides),accessCache:null,renderCache:[],components:null,directives:null,propsOptions:normalizePropsOptions(D,G),emitsOptions:normalizeEmitsOptions(D,G),emit:null,emitted:null,propsDefaults:EMPTY_OBJ,inheritAttrs:D.inheritAttrs,ctx:EMPTY_OBJ,data:EMPTY_OBJ,props:EMPTY_OBJ,attrs:EMPTY_OBJ,slots:EMPTY_OBJ,refs:EMPTY_OBJ,setupState:EMPTY_OBJ,setupContext:null,suspense:F,suspenseId:F?F.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return U.ctx={_:U},U.root=R?R.root:U,U.emit=emit$1.bind(null,U),B.ce&&B.ce(U),U}let currentInstance=null;const getCurrentInstance=()=>currentInstance||currentRenderingInstance,setCurrentInstance=B=>{currentInstance=B,B.scope.on()},unsetCurrentInstance=()=>{currentInstance&¤tInstance.scope.off(),currentInstance=null};function isStatefulComponent(B){return B.vnode.shapeFlag&4}let isInSSRComponentSetup=!1;function setupComponent(B,R=!1){isInSSRComponentSetup=R;const{props:F,children:D}=B.vnode,G=isStatefulComponent(B);initProps(B,F,G,R),initSlots(B,D);const U=G?setupStatefulComponent(B,R):void 0;return isInSSRComponentSetup=!1,U}function setupStatefulComponent(B,R){const F=B.type;B.accessCache=Object.create(null),B.proxy=markRaw(new Proxy(B.ctx,PublicInstanceProxyHandlers));const{setup:D}=F;if(D){const G=B.setupContext=D.length>1?createSetupContext(B):null;setCurrentInstance(B),pauseTracking();const U=callWithErrorHandling(D,B,0,[B.props,G]);if(resetTracking(),unsetCurrentInstance(),isPromise$1(U)){if(U.then(unsetCurrentInstance,unsetCurrentInstance),R)return U.then(W=>{handleSetupResult(B,W,R)}).catch(W=>{handleError(W,B,0)});B.asyncDep=U}else handleSetupResult(B,U,R)}else finishComponentSetup(B,R)}function handleSetupResult(B,R,F){isFunction$4(R)?B.type.__ssrInlineRender?B.ssrRender=R:B.render=R:isObject$4(R)&&(B.setupState=proxyRefs(R)),finishComponentSetup(B,F)}let compile$1;function finishComponentSetup(B,R,F){const D=B.type;if(!B.render){if(!R&&compile$1&&!D.render){const G=D.template;if(G){const{isCustomElement:U,compilerOptions:W}=B.appContext.config,{delimiters:q,compilerOptions:Y}=D,Q=extend$3(extend$3({isCustomElement:U,delimiters:q},W),Y);D.render=compile$1(G,Q)}}B.render=D.render||NOOP}setCurrentInstance(B),pauseTracking(),applyOptions(B),resetTracking(),unsetCurrentInstance()}function createAttrsProxy(B){return new Proxy(B.attrs,{get(R,F){return track(B,"get","$attrs"),R[F]}})}function createSetupContext(B){const R=D=>{B.exposed=D||{}};let F;return{get attrs(){return F||(F=createAttrsProxy(B))},slots:B.slots,emit:B.emit,expose:R}}function getExposeProxy(B){if(B.exposed)return B.exposeProxy||(B.exposeProxy=new Proxy(proxyRefs(markRaw(B.exposed)),{get(R,F){if(F in R)return R[F];if(F in publicPropertiesMap)return publicPropertiesMap[F](B)}}))}function getComponentName(B){return isFunction$4(B)&&B.displayName||B.name}function isClassComponent(B){return isFunction$4(B)&&"__vccOpts"in B}const computed=(B,R)=>computed$1(B,R,isInSSRComponentSetup);function h$3(B,R,F){const D=arguments.length;return D===2?isObject$4(R)&&!isArray$5(R)?isVNode(R)?createVNode(B,null,[R]):createVNode(B,R):createVNode(B,null,R):(D>3?F=Array.prototype.slice.call(arguments,2):D===3&&isVNode(F)&&(F=[F]),createVNode(B,R,F))}const version="3.2.33",svgNS="http://www.w3.org/2000/svg",doc$2=typeof document!="undefined"?document:null,templateContainer=doc$2&&doc$2.createElement("template"),nodeOps={insert:(B,R,F)=>{R.insertBefore(B,F||null)},remove:B=>{const R=B.parentNode;R&&R.removeChild(B)},createElement:(B,R,F,D)=>{const G=R?doc$2.createElementNS(svgNS,B):doc$2.createElement(B,F?{is:F}:void 0);return B==="select"&&D&&D.multiple!=null&&G.setAttribute("multiple",D.multiple),G},createText:B=>doc$2.createTextNode(B),createComment:B=>doc$2.createComment(B),setText:(B,R)=>{B.nodeValue=R},setElementText:(B,R)=>{B.textContent=R},parentNode:B=>B.parentNode,nextSibling:B=>B.nextSibling,querySelector:B=>doc$2.querySelector(B),setScopeId(B,R){B.setAttribute(R,"")},cloneNode(B){const R=B.cloneNode(!0);return"_value"in B&&(R._value=B._value),R},insertStaticContent(B,R,F,D,G,U){const W=F?F.previousSibling:R.lastChild;if(G&&(G===U||G.nextSibling))for(;R.insertBefore(G.cloneNode(!0),F),!(G===U||!(G=G.nextSibling)););else{templateContainer.innerHTML=D?`${B}`:B;const q=templateContainer.content;if(D){const Y=q.firstChild;for(;Y.firstChild;)q.appendChild(Y.firstChild);q.removeChild(Y)}R.insertBefore(q,F)}return[W?W.nextSibling:R.firstChild,F?F.previousSibling:R.lastChild]}};function patchClass(B,R,F){const D=B._vtc;D&&(R=(R?[R,...D]:[...D]).join(" ")),R==null?B.removeAttribute("class"):F?B.setAttribute("class",R):B.className=R}function patchStyle(B,R,F){const D=B.style,G=isString(F);if(F&&!G){for(const U in F)setStyle(D,U,F[U]);if(R&&!isString(R))for(const U in R)F[U]==null&&setStyle(D,U,"")}else{const U=D.display;G?R!==F&&(D.cssText=F):R&&B.removeAttribute("style"),"_vod"in B&&(D.display=U)}}const importantRE=/\s*!important$/;function setStyle(B,R,F){if(isArray$5(F))F.forEach(D=>setStyle(B,R,D));else if(F==null&&(F=""),R.startsWith("--"))B.setProperty(R,F);else{const D=autoPrefix(B,R);importantRE.test(F)?B.setProperty(hyphenate(D),F.replace(importantRE,""),"important"):B[D]=F}}const prefixes=["Webkit","Moz","ms"],prefixCache={};function autoPrefix(B,R){const F=prefixCache[R];if(F)return F;let D=camelize$1(R);if(D!=="filter"&&D in B)return prefixCache[R]=D;D=capitalize(D);for(let G=0;G{let B=Date.now,R=!1;if(typeof window!="undefined"){Date.now()>document.createEvent("Event").timeStamp&&(B=()=>performance.now());const F=navigator.userAgent.match(/firefox\/(\d+)/i);R=!!(F&&Number(F[1])<=53)}return[B,R]})();let cachedNow=0;const p$2=Promise.resolve(),reset$1=()=>{cachedNow=0},getNow=()=>cachedNow||(p$2.then(reset$1),cachedNow=_getNow());function addEventListener(B,R,F,D){B.addEventListener(R,F,D)}function removeEventListener(B,R,F,D){B.removeEventListener(R,F,D)}function patchEvent(B,R,F,D,G=null){const U=B._vei||(B._vei={}),W=U[R];if(D&&W)W.value=D;else{const[q,Y]=parseName(R);if(D){const Q=U[R]=createInvoker(D,G);addEventListener(B,q,Q,Y)}else W&&(removeEventListener(B,q,W,Y),U[R]=void 0)}}const optionsModifierRE=/(?:Once|Passive|Capture)$/;function parseName(B){let R;if(optionsModifierRE.test(B)){R={};let F;for(;F=B.match(optionsModifierRE);)B=B.slice(0,B.length-F[0].length),R[F[0].toLowerCase()]=!0}return[hyphenate(B.slice(2)),R]}function createInvoker(B,R){const F=D=>{const G=D.timeStamp||_getNow();(skipTimestampCheck||G>=F.attached-1)&&callWithAsyncErrorHandling(patchStopImmediatePropagation(D,F.value),R,5,[D])};return F.value=B,F.attached=getNow(),F}function patchStopImmediatePropagation(B,R){if(isArray$5(R)){const F=B.stopImmediatePropagation;return B.stopImmediatePropagation=()=>{F.call(B),B._stopped=!0},R.map(D=>G=>!G._stopped&&D&&D(G))}else return R}const nativeOnRE=/^on[a-z]/,patchProp=(B,R,F,D,G=!1,U,W,q,Y)=>{R==="class"?patchClass(B,D,G):R==="style"?patchStyle(B,F,D):isOn(R)?isModelListener(R)||patchEvent(B,R,F,D,W):(R[0]==="."?(R=R.slice(1),!0):R[0]==="^"?(R=R.slice(1),!1):shouldSetAsProp(B,R,D,G))?patchDOMProp(B,R,D,U,W,q,Y):(R==="true-value"?B._trueValue=D:R==="false-value"&&(B._falseValue=D),patchAttr(B,R,D,G))};function shouldSetAsProp(B,R,F,D){return D?!!(R==="innerHTML"||R==="textContent"||R in B&&nativeOnRE.test(R)&&isFunction$4(F)):R==="spellcheck"||R==="draggable"||R==="translate"||R==="form"||R==="list"&&B.tagName==="INPUT"||R==="type"&&B.tagName==="TEXTAREA"||nativeOnRE.test(R)&&isString(F)?!1:R in B}const TRANSITION="transition",ANIMATION="animation",Transition=(B,{slots:R})=>h$3(BaseTransition,resolveTransitionProps(B),R);Transition.displayName="Transition";const DOMTransitionPropsValidators={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},TransitionPropsValidators=Transition.props=extend$3({},BaseTransition.props,DOMTransitionPropsValidators),callHook=(B,R=[])=>{isArray$5(B)?B.forEach(F=>F(...R)):B&&B(...R)},hasExplicitCallback=B=>B?isArray$5(B)?B.some(R=>R.length>1):B.length>1:!1;function resolveTransitionProps(B){const R={};for(const xe in B)xe in DOMTransitionPropsValidators||(R[xe]=B[xe]);if(B.css===!1)return R;const{name:F="v",type:D,duration:G,enterFromClass:U=`${F}-enter-from`,enterActiveClass:W=`${F}-enter-active`,enterToClass:q=`${F}-enter-to`,appearFromClass:Y=U,appearActiveClass:Q=W,appearToClass:Z=q,leaveFromClass:K=`${F}-leave-from`,leaveActiveClass:J=`${F}-leave-active`,leaveToClass:ie=`${F}-leave-to`}=B,ne=normalizeDuration(G),se=ne&&ne[0],re=ne&&ne[1],{onBeforeEnter:ae,onEnter:le,onEnterCancelled:ce,onLeave:he,onLeaveCancelled:de,onBeforeAppear:me=ae,onAppear:fe=le,onAppearCancelled:ge=ce}=R,Se=(xe,Pe,ye)=>{removeTransitionClass(xe,Pe?Z:q),removeTransitionClass(xe,Pe?Q:W),ye&&ye()},Ee=(xe,Pe)=>{removeTransitionClass(xe,ie),removeTransitionClass(xe,J),Pe&&Pe()},ve=xe=>(Pe,ye)=>{const Te=xe?fe:le,Le=()=>Se(Pe,xe,ye);callHook(Te,[Pe,Le]),nextFrame(()=>{removeTransitionClass(Pe,xe?Y:U),addTransitionClass(Pe,xe?Z:q),hasExplicitCallback(Te)||whenTransitionEnds(Pe,D,se,Le)})};return extend$3(R,{onBeforeEnter(xe){callHook(ae,[xe]),addTransitionClass(xe,U),addTransitionClass(xe,W)},onBeforeAppear(xe){callHook(me,[xe]),addTransitionClass(xe,Y),addTransitionClass(xe,Q)},onEnter:ve(!1),onAppear:ve(!0),onLeave(xe,Pe){const ye=()=>Ee(xe,Pe);addTransitionClass(xe,K),forceReflow(),addTransitionClass(xe,J),nextFrame(()=>{removeTransitionClass(xe,K),addTransitionClass(xe,ie),hasExplicitCallback(he)||whenTransitionEnds(xe,D,re,ye)}),callHook(he,[xe,ye])},onEnterCancelled(xe){Se(xe,!1),callHook(ce,[xe])},onAppearCancelled(xe){Se(xe,!0),callHook(ge,[xe])},onLeaveCancelled(xe){Ee(xe),callHook(de,[xe])}})}function normalizeDuration(B){if(B==null)return null;if(isObject$4(B))return[NumberOf(B.enter),NumberOf(B.leave)];{const R=NumberOf(B);return[R,R]}}function NumberOf(B){return toNumber(B)}function addTransitionClass(B,R){R.split(/\s+/).forEach(F=>F&&B.classList.add(F)),(B._vtc||(B._vtc=new Set)).add(R)}function removeTransitionClass(B,R){R.split(/\s+/).forEach(D=>D&&B.classList.remove(D));const{_vtc:F}=B;F&&(F.delete(R),F.size||(B._vtc=void 0))}function nextFrame(B){requestAnimationFrame(()=>{requestAnimationFrame(B)})}let endId=0;function whenTransitionEnds(B,R,F,D){const G=B._endId=++endId,U=()=>{G===B._endId&&D()};if(F)return setTimeout(U,F);const{type:W,timeout:q,propCount:Y}=getTransitionInfo(B,R);if(!W)return D();const Q=W+"end";let Z=0;const K=()=>{B.removeEventListener(Q,J),U()},J=ie=>{ie.target===B&&++Z>=Y&&K()};setTimeout(()=>{Z(F[ne]||"").split(", "),G=D(TRANSITION+"Delay"),U=D(TRANSITION+"Duration"),W=getTimeout(G,U),q=D(ANIMATION+"Delay"),Y=D(ANIMATION+"Duration"),Q=getTimeout(q,Y);let Z=null,K=0,J=0;R===TRANSITION?W>0&&(Z=TRANSITION,K=W,J=U.length):R===ANIMATION?Q>0&&(Z=ANIMATION,K=Q,J=Y.length):(K=Math.max(W,Q),Z=K>0?W>Q?TRANSITION:ANIMATION:null,J=Z?Z===TRANSITION?U.length:Y.length:0);const ie=Z===TRANSITION&&/\b(transform|all)(,|$)/.test(F[TRANSITION+"Property"]);return{type:Z,timeout:K,propCount:J,hasTransform:ie}}function getTimeout(B,R){for(;B.lengthtoMs(F)+toMs(B[D])))}function toMs(B){return Number(B.slice(0,-1).replace(",","."))*1e3}function forceReflow(){return document.body.offsetHeight}const positionMap=new WeakMap,newPositionMap=new WeakMap,TransitionGroupImpl={name:"TransitionGroup",props:extend$3({},TransitionPropsValidators,{tag:String,moveClass:String}),setup(B,{slots:R}){const F=getCurrentInstance(),D=useTransitionState();let G,U;return onUpdated(()=>{if(!G.length)return;const W=B.moveClass||`${B.name||"v"}-move`;if(!hasCSSTransform(G[0].el,F.vnode.el,W))return;G.forEach(callPendingCbs),G.forEach(recordPosition);const q=G.filter(applyTranslation);forceReflow(),q.forEach(Y=>{const Q=Y.el,Z=Q.style;addTransitionClass(Q,W),Z.transform=Z.webkitTransform=Z.transitionDuration="";const K=Q._moveCb=J=>{J&&J.target!==Q||(!J||/transform$/.test(J.propertyName))&&(Q.removeEventListener("transitionend",K),Q._moveCb=null,removeTransitionClass(Q,W))};Q.addEventListener("transitionend",K)})}),()=>{const W=toRaw(B),q=resolveTransitionProps(W);let Y=W.tag||Fragment;G=U,U=R.default?getTransitionRawChildren(R.default()):[];for(let Q=0;Q{W.split(/\s+/).forEach(q=>q&&D.classList.remove(q))}),F.split(/\s+/).forEach(W=>W&&D.classList.add(W)),D.style.display="none";const G=R.nodeType===1?R:R.parentNode;G.appendChild(D);const{hasTransform:U}=getTransitionInfo(D);return G.removeChild(D),U}const vShow={beforeMount(B,{value:R},{transition:F}){B._vod=B.style.display==="none"?"":B.style.display,F&&R?F.beforeEnter(B):setDisplay(B,R)},mounted(B,{value:R},{transition:F}){F&&R&&F.enter(B)},updated(B,{value:R,oldValue:F},{transition:D}){!R!=!F&&(D?R?(D.beforeEnter(B),setDisplay(B,!0),D.enter(B)):D.leave(B,()=>{setDisplay(B,!1)}):setDisplay(B,R))},beforeUnmount(B,{value:R}){setDisplay(B,R)}};function setDisplay(B,R){B.style.display=R?B._vod:"none"}const rendererOptions=extend$3({patchProp},nodeOps);let renderer;function ensureRenderer(){return renderer||(renderer=createRenderer(rendererOptions))}const createApp=(...B)=>{const R=ensureRenderer().createApp(...B),{mount:F}=R;return R.mount=D=>{const G=normalizeContainer(D);if(!G)return;const U=R._component;!isFunction$4(U)&&!U.render&&!U.template&&(U.template=G.innerHTML),G.innerHTML="";const W=F(G,!1,G instanceof SVGElement);return G instanceof Element&&(G.removeAttribute("v-cloak"),G.setAttribute("data-v-app","")),W},R};function normalizeContainer(B){return isString(B)?document.querySelector(B):B}var commonjsGlobal$2=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function getAugmentedNamespace(B){if(B.__esModule)return B;var R=Object.defineProperty({},"__esModule",{value:!0});return Object.keys(B).forEach(function(F){var D=Object.getOwnPropertyDescriptor(B,F);Object.defineProperty(R,F,D.get?D:{enumerable:!0,get:function(){return B[F]}})}),R}function commonjsRequire$1(B){throw new Error('Could not dynamically require "'+B+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var queryString={},strictUriEncode=B=>encodeURIComponent(B).replace(/[!'()*]/g,R=>`%${R.charCodeAt(0).toString(16).toUpperCase()}`),token="%[a-f0-9]{2}",singleMatcher=new RegExp(token,"gi"),multiMatcher=new RegExp("("+token+")+","gi");function decodeComponents(B,R){try{return decodeURIComponent(B.join(""))}catch{}if(B.length===1)return B;R=R||1;var F=B.slice(0,R),D=B.slice(R);return Array.prototype.concat.call([],decodeComponents(F),decodeComponents(D))}function decode$4(B){try{return decodeURIComponent(B)}catch{for(var R=B.match(singleMatcher),F=1;F{if(!(typeof B=="string"&&typeof R=="string"))throw new TypeError("Expected the arguments to be of type `string`");if(R==="")return[B];const F=B.indexOf(R);return F===-1?[B]:[B.slice(0,F),B.slice(F+R.length)]},filterObj=function(B,R){for(var F={},D=Object.keys(B),G=Array.isArray(R),U=0;Uae==null;function W(ae){switch(ae.arrayFormat){case"index":return le=>(ce,he)=>{const de=ce.length;return he===void 0||ae.skipNull&&he===null||ae.skipEmptyString&&he===""?ce:he===null?[...ce,[Q(le,ae),"[",de,"]"].join("")]:[...ce,[Q(le,ae),"[",Q(de,ae),"]=",Q(he,ae)].join("")]};case"bracket":return le=>(ce,he)=>he===void 0||ae.skipNull&&he===null||ae.skipEmptyString&&he===""?ce:he===null?[...ce,[Q(le,ae),"[]"].join("")]:[...ce,[Q(le,ae),"[]=",Q(he,ae)].join("")];case"comma":case"separator":return le=>(ce,he)=>he==null||he.length===0?ce:ce.length===0?[[Q(le,ae),"=",Q(he,ae)].join("")]:[[ce,Q(he,ae)].join(ae.arrayFormatSeparator)];default:return le=>(ce,he)=>he===void 0||ae.skipNull&&he===null||ae.skipEmptyString&&he===""?ce:he===null?[...ce,Q(le,ae)]:[...ce,[Q(le,ae),"=",Q(he,ae)].join("")]}}function q(ae){let le;switch(ae.arrayFormat){case"index":return(ce,he,de)=>{if(le=/\[(\d*)\]$/.exec(ce),ce=ce.replace(/\[\d*\]$/,""),!le){de[ce]=he;return}de[ce]===void 0&&(de[ce]={}),de[ce][le[1]]=he};case"bracket":return(ce,he,de)=>{if(le=/(\[\])$/.exec(ce),ce=ce.replace(/\[\]$/,""),!le){de[ce]=he;return}if(de[ce]===void 0){de[ce]=[he];return}de[ce]=[].concat(de[ce],he)};case"comma":case"separator":return(ce,he,de)=>{const me=typeof he=="string"&&he.includes(ae.arrayFormatSeparator),fe=typeof he=="string"&&!me&&Z(he,ae).includes(ae.arrayFormatSeparator);he=fe?Z(he,ae):he;const ge=me||fe?he.split(ae.arrayFormatSeparator).map(Se=>Z(Se,ae)):he===null?he:Z(he,ae);de[ce]=ge};default:return(ce,he,de)=>{if(de[ce]===void 0){de[ce]=he;return}de[ce]=[].concat(de[ce],he)}}}function Y(ae){if(typeof ae!="string"||ae.length!==1)throw new TypeError("arrayFormatSeparator must be single character string")}function Q(ae,le){return le.encode?le.strict?R(ae):encodeURIComponent(ae):ae}function Z(ae,le){return le.decode?F(ae):ae}function K(ae){return Array.isArray(ae)?ae.sort():typeof ae=="object"?K(Object.keys(ae)).sort((le,ce)=>Number(le)-Number(ce)).map(le=>ae[le]):ae}function J(ae){const le=ae.indexOf("#");return le!==-1&&(ae=ae.slice(0,le)),ae}function ie(ae){let le="";const ce=ae.indexOf("#");return ce!==-1&&(le=ae.slice(ce)),le}function ne(ae){ae=J(ae);const le=ae.indexOf("?");return le===-1?"":ae.slice(le+1)}function se(ae,le){return le.parseNumbers&&!Number.isNaN(Number(ae))&&typeof ae=="string"&&ae.trim()!==""?ae=Number(ae):le.parseBooleans&&ae!==null&&(ae.toLowerCase()==="true"||ae.toLowerCase()==="false")&&(ae=ae.toLowerCase()==="true"),ae}function re(ae,le){le=Object.assign({decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1},le),Y(le.arrayFormatSeparator);const ce=q(le),he=Object.create(null);if(typeof ae!="string"||(ae=ae.trim().replace(/^[?#&]/,""),!ae))return he;for(const de of ae.split("&")){if(de==="")continue;let[me,fe]=D(le.decode?de.replace(/\+/g," "):de,"=");fe=fe===void 0?null:["comma","separator"].includes(le.arrayFormat)?fe:Z(fe,le),ce(Z(me,le),fe,he)}for(const de of Object.keys(he)){const me=he[de];if(typeof me=="object"&&me!==null)for(const fe of Object.keys(me))me[fe]=se(me[fe],le);else he[de]=se(me,le)}return le.sort===!1?he:(le.sort===!0?Object.keys(he).sort():Object.keys(he).sort(le.sort)).reduce((de,me)=>{const fe=he[me];return Boolean(fe)&&typeof fe=="object"&&!Array.isArray(fe)?de[me]=K(fe):de[me]=fe,de},Object.create(null))}B.extract=ne,B.parse=re,B.stringify=(ae,le)=>{if(!ae)return"";le=Object.assign({encode:!0,strict:!0,arrayFormat:"none",arrayFormatSeparator:","},le),Y(le.arrayFormatSeparator);const ce=fe=>le.skipNull&&U(ae[fe])||le.skipEmptyString&&ae[fe]==="",he=W(le),de={};for(const fe of Object.keys(ae))ce(fe)||(de[fe]=ae[fe]);const me=Object.keys(de);return le.sort!==!1&&me.sort(le.sort),me.map(fe=>{const ge=ae[fe];return ge===void 0?"":ge===null?Q(fe,le):Array.isArray(ge)?ge.reduce(he(fe),[]).join("&"):Q(fe,le)+"="+Q(ge,le)}).filter(fe=>fe.length>0).join("&")},B.parseUrl=(ae,le)=>{le=Object.assign({decode:!0},le);const[ce,he]=D(ae,"#");return Object.assign({url:ce.split("?")[0]||"",query:re(ne(ae),le)},le&&le.parseFragmentIdentifier&&he?{fragmentIdentifier:Z(he,le)}:{})},B.stringifyUrl=(ae,le)=>{le=Object.assign({encode:!0,strict:!0},le);const ce=J(ae.url).split("?")[0]||"",he=B.extract(ae.url),de=B.parse(he,{sort:!1}),me=Object.assign(de,ae.query);let fe=B.stringify(me,le);fe&&(fe=`?${fe}`);let ge=ie(ae.url);return ae.fragmentIdentifier&&(ge=`#${Q(ae.fragmentIdentifier,le)}`),`${ce}${fe}${ge}`},B.pick=(ae,le,ce)=>{ce=Object.assign({parseFragmentIdentifier:!0},ce);const{url:he,query:de,fragmentIdentifier:me}=B.parseUrl(ae,ce);return B.stringifyUrl({url:he,query:G(de,le),fragmentIdentifier:me},ce)},B.exclude=(ae,le,ce)=>{const he=Array.isArray(le)?de=>!le.includes(de):(de,me)=>!le(de,me);return B.pick(ae,he,ce)}})(queryString);const state$4=reactive({modular:{teaching:!1,follow:!1,fingering:!1,switch:!1,speed:!1,evaluating:!1,excerpts:!1,recording:!1},modularDetail:{teaching:{name:"\u5927\u96C5\u91D1\u5510\u6559\u6750",desc:"\u540C\u6B65\u4E50\u56E2\u5B66\u4E60\u6559\u6750\uFF0C\u8BA9\u5B69\u5B50\u5728\u4E13\u4E1A\u7CFB\u7EDF\u7684\u8BAD\u7EC3\u4E0B\u63D0\u5347\u6F14\u594F\u6C34\u5E73",images:["./static/teaching/1.jpg","./static/teaching/2.jpg","./static/teaching/3.jpg"]},follow:{name:"\u4E94\u7EBF\u8C31\u8DDF\u64AD",desc:"\u5C06\u6559\u6750\u8F6C\u5316\u6210\u4E94\u7EBF\u8C31\uFF0C\u5E76\u652F\u6301\u97F3\u7B26\u6839\u636E\u64AD\u653E\u8FDB\u5EA6\u9AD8\u4EAE\u663E\u793A\uFF0C\u589E\u5F3A\u5B69\u5B50\u6F14\u594F\u4E50\u611F",images:["./static/follow/1.jpg"]},fingering:{name:"\u6F14\u594F\u6307\u6CD5\u8DDF\u64AD",desc:"\u6839\u636E\u97F3\u7B26\u65F6\u503C\u5C55\u73B0\u6F14\u594F\u6307\u6CD5\uFF0C\u57F9\u517B\u5B69\u5B50\u826F\u597D\u7684\u6F14\u594F\u4E60\u60EF",images:["./static/fingering/1.jpg","./static/fingering/2.jpg","./static/fingering/3.jpg"]},switch:{name:"\u539F\u58F0/\u4F34\u594F\u5207\u6362",desc:"\u4E3A\u4E0D\u540C\u58F0\u90E8\u5B66\u5458\u63D0\u4F9B\u4E13\u4E1A\u4F34\u594F\uFF0C\u652F\u6301\u4F34\u594F\u4E0E\u539F\u97F3\u5207\u6362\uFF0C\u58F0\u4E34\u5176\u5883\u7684\u611F\u53D7\u4E50\u66F2",images:["./static/switch/1.jpg","./static/switch/2.jpg"]},speed:{name:"\u64AD\u653E\u901F\u5EA6\u8C03\u6574",desc:"\u64AD\u653E\u901F\u5EA6\u8BFE\u6839\u636E\u4E2A\u4EBA\u7EC3\u4E60\u60C5\u51B5\u8C03\u6574\uFF0C\u5FAA\u5E8F\u6E10\u8FDB\u7684\u638C\u63E1\u6BCF\u9996\u66F2\u76EE\u7684\u6F14\u594F",images:["./static/speed/1.jpg","./static/speed/2.jpg"]},evaluating:{name:"\u667A\u80FD\u8BC4\u6D4B",desc:"\u4E3A\u5B69\u5B50\u7684\u6F14\u594F\u63D0\u4F9B\u4E13\u4E1A\u3001\u6807\u51C6\u7684\u70B9\u8BC4",images:["./static/evaluating/1.jpg","./static/evaluating/2.jpg","./static/evaluating/3.jpg"]},excerpts:{name:"\u4E94\u7EBF\u8C31\u9009\u6BB5\u64AD\u653E",desc:"\u6839\u636E\u7EC3\u4E60\u60C5\u51B5\u9009\u62E9\u91CD\u96BE\u70B9\u5C0F\u8282\u5FAA\u73AF\u7EC3\u4E60\uFF0C\u5E2E\u52A9\u5B69\u5B50\u7A81\u7834\u96BE\u5173",images:["./static/excerpts/1.jpg"]},recording:{name:"\u8FB9\u5F55\u8FB9\u64AD",desc:"\u6253\u5F00\u6444\u50CF\u5934\uFF0C\u53EF\u4EE5\u5728\u7EC3\u4E60\u65F6\u770B\u5230\u81EA\u5DF1\u7684\u6F14\u594F\u72B6\u6001\uFF0C\u8FD8\u53EF\u4EE5\u5F55\u5236\u6F14\u594F\u7684\u89C6\u9891\u6216\u97F3\u9891",images:[]}},openKey:"",user:null,subjectId:0,subjectLoading:!1,origanSubjectId:0,subjectOptions:[{value:0,text:"\u5168\u90E8\u58F0\u90E8"}],chinesePartName:{},MusicalInstrumentClassification:{},tenantId:null,organId:null,extSubjectIds:[],clintNmae:"orchestra"});var assign$2=make_assign(),create$1=make_create(),trim$1=make_trim(),Global$5=typeof window!="undefined"?window:commonjsGlobal$2,util$h={assign:assign$2,create:create$1,trim:trim$1,bind:bind$1,slice:slice$2,each:each$8,map,pluck:pluck$1,isList:isList$1,isFunction:isFunction$3,isObject:isObject$3,Global:Global$5};function make_assign(){return Object.assign?Object.assign:function(R,F,D,G){for(var U=1;U=0;R--){var F=localStorage$1().key(R);B(read$6(F),F)}}function remove$6(B){return localStorage$1().removeItem(B)}function clearAll$5(){return localStorage$1().clear()}var util$e=util$h,Global$3=util$e.Global,oldFFGlobalStorage={name:"oldFF-globalStorage",read:read$5,write:write$5,each:each$5,remove:remove$5,clearAll:clearAll$4},globalStorage=Global$3.globalStorage;function read$5(B){return globalStorage[B]}function write$5(B,R){globalStorage[B]=R}function each$5(B){for(var R=globalStorage.length-1;R>=0;R--){var F=globalStorage.key(R);B(globalStorage[F],F)}}function remove$5(B){return globalStorage.removeItem(B)}function clearAll$4(){each$5(function(B,R){delete globalStorage[B]})}var util$d=util$h,Global$2=util$d.Global,oldIEUserDataStorage={name:"oldIE-userDataStorage",write:write$4,read:read$4,each:each$4,remove:remove$4,clearAll:clearAll$3},storageName="storejs",doc$1=Global$2.document,_withStorageEl=_makeIEStorageElFunction(),disable=(Global$2.navigator?Global$2.navigator.userAgent:"").match(/ (MSIE 8|MSIE 9|MSIE 10)\./);function write$4(B,R){if(!disable){var F=fixKey(B);_withStorageEl(function(D){D.setAttribute(F,R),D.save(storageName)})}}function read$4(B){if(!disable){var R=fixKey(B),F=null;return _withStorageEl(function(D){F=D.getAttribute(R)}),F}}function each$4(B){_withStorageEl(function(R){for(var F=R.XMLDocument.documentElement.attributes,D=F.length-1;D>=0;D--){var G=F[D];B(R.getAttribute(G.name),G.name)}})}function remove$4(B){var R=fixKey(B);_withStorageEl(function(F){F.removeAttribute(R),F.save(storageName)})}function clearAll$3(){_withStorageEl(function(B){var R=B.XMLDocument.documentElement.attributes;B.load(storageName);for(var F=R.length-1;F>=0;F--)B.removeAttribute(R[F].name);B.save(storageName)})}var forbiddenCharsRegex=new RegExp("[!\"#$%&'()*+,/\\\\:;<=>?@[\\]^`{|}~]","g");function fixKey(B){return B.replace(/^\d/,"___$&").replace(forbiddenCharsRegex,"___")}function _makeIEStorageElFunction(){if(!doc$1||!doc$1.documentElement||!doc$1.documentElement.addBehavior)return null;var B="script",R,F,D;try{F=new ActiveXObject("htmlfile"),F.open(),F.write("<"+B+">document.w=window'),F.close(),R=F.w.frames[0].document,D=R.createElement("div")}catch{D=doc$1.createElement("div"),R=doc$1.body}return function(G){var U=[].slice.call(arguments,0);U.unshift(D),R.appendChild(D),D.addBehavior("#default#userData"),D.load(storageName),G.apply(this,U),R.removeChild(D)}}var util$c=util$h,Global$1=util$c.Global,trim=util$c.trim,cookieStorage={name:"cookieStorage",read:read$3,write:write$3,each:each$3,remove:remove$3,clearAll:clearAll$2},doc=Global$1.document;function read$3(B){if(!B||!_has(B))return null;var R="(?:^|.*;\\s*)"+escape(B).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=\\s*((?:[^;](?!;))*[^;]?).*";return unescape(doc.cookie.replace(new RegExp(R),"$1"))}function each$3(B){for(var R=doc.cookie.split(/; ?/g),F=R.length-1;F>=0;F--)if(!!trim(R[F])){var D=R[F].split("="),G=unescape(D[0]),U=unescape(D[1]);B(U,G)}}function write$3(B,R){!B||(doc.cookie=escape(B)+"="+escape(R)+"; expires=Tue, 19 Jan 2038 03:14:07 GMT; path=/")}function remove$3(B){!B||!_has(B)||(doc.cookie=escape(B)+"=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/")}function clearAll$2(){each$3(function(B,R){remove$3(R)})}function _has(B){return new RegExp("(?:^|;\\s*)"+escape(B).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=").test(doc.cookie)}var util$b=util$h,Global=util$b.Global,sessionStorage_1={name:"sessionStorage",read:read$2,write:write$2,each:each$2,remove:remove$2,clearAll:clearAll$1};function sessionStorage$1(){return Global.sessionStorage}function read$2(B){return sessionStorage$1().getItem(B)}function write$2(B,R){return sessionStorage$1().setItem(B,R)}function each$2(B){for(var R=sessionStorage$1().length-1;R>=0;R--){var F=sessionStorage$1().key(R);B(read$2(F),F)}}function remove$2(B){return sessionStorage$1().removeItem(B)}function clearAll$1(){return sessionStorage$1().clear()}var memoryStorage_1={name:"memoryStorage",read:read$1,write:write$1,each:each$1,remove:remove$1,clearAll},memoryStorage={};function read$1(B){return memoryStorage[B]}function write$1(B,R){memoryStorage[B]=R}function each$1(B){for(var R in memoryStorage)memoryStorage.hasOwnProperty(R)&&B(memoryStorage[R],R)}function remove$1(B){delete memoryStorage[B]}function clearAll(B){memoryStorage={}}var all=[localStorage_1,oldFFGlobalStorage,oldIEUserDataStorage,cookieStorage,sessionStorage_1,memoryStorage_1];typeof JSON!="object"&&(JSON={});(function(){var rx_one=/^[\],:{}\s]*$/,rx_two=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,rx_three=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,rx_four=/(?:^|:|,)(?:\s*\[)+/g,rx_escapable=/[\\"\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,rx_dangerous=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;function f(B){return B<10?"0"+B:B}function this_value(){return this.valueOf()}typeof Date.prototype.toJSON!="function"&&(Date.prototype.toJSON=function(){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null},Boolean.prototype.toJSON=this_value,Number.prototype.toJSON=this_value,String.prototype.toJSON=this_value);var gap,indent,meta,rep;function quote(B){return rx_escapable.lastIndex=0,rx_escapable.test(B)?'"'+B.replace(rx_escapable,function(R){var F=meta[R];return typeof F=="string"?F:"\\u"+("0000"+R.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+B+'"'}function str(B,R){var F,D,G,U,W=gap,q,Y=R[B];switch(Y&&typeof Y=="object"&&typeof Y.toJSON=="function"&&(Y=Y.toJSON(B)),typeof rep=="function"&&(Y=rep.call(R,B,Y)),typeof Y){case"string":return quote(Y);case"number":return isFinite(Y)?String(Y):"null";case"boolean":case"null":return String(Y);case"object":if(!Y)return"null";if(gap+=indent,q=[],Object.prototype.toString.apply(Y)==="[object Array]"){for(U=Y.length,F=0;F{store_legacy.set("setting",state$3)});const getDevelopment=function(){return/(192\.168|localhost)/ig.test(location.host)},addZero=B=>B<10?"0"+B:B,formatTime=B=>{const R=B%60,F=B/60;return addZero(Math.floor(F))+":"+addZero(Math.floor(R))},browser=()=>{var B=navigator.userAgent;return{trident:B.indexOf("Trident")>-1,presto:B.indexOf("Presto")>-1,webKit:B.indexOf("AppleWebKit")>-1,gecko:B.indexOf("Gecko")>-1&&B.indexOf("KHTML")==-1,mobile:!!B.match(/AppleWebKit.*Mobile.*/),ios:!!B.match(/Mac OS X/),android:B.indexOf("ORCHESTRAAPPA")>-1||B.indexOf("Adr")>-1,iPhone:B.indexOf("ORCHESTRAAPPI")>-1,isApp:B.indexOf("ORCHESTRAAPPI")>-1||B.indexOf("ORCHESTRAAPPA")>-1,isTeacher:B.indexOf("ORCHESTRATEACHER")>-1,isStudent:B.indexOf("ORCHESTRASTUDENT")>-1,isSchool:B.indexOf("ORCHESTRASCHOOL")>-1,iPad:B.indexOf("iPad")>-1,webApp:B.indexOf("Safari")==-1,weixin:B.indexOf("MicroMessenger")>-1,huawei:!!B.match(/huawei/i)||!!B.match(/honor/i),xiaomi:!!B.match(/mi\s/i)||!!B.match(/redmi/i)||!!B.match(/mix/i)}},getRequestHostname=()=>{let B="";try{B=queryString.parse(location.search)}catch{}if(B!=null&&B.client)return B.client==="student"?"/api-student":B.client==="teacher"?"/api-teacher":"/api-backend";const R=browser();return R.isStudent?"/api-student":R.isTeacher?"/api-teacher":"/api-backend"},getRandomKey=()=>""+new Date().getTime()+Math.floor(Math.random()*1e6),toNext=(B,R)=>{const F=W=>W?"?"+W:"",D=queryString.stringify({...queryString.parse(location.search),_t:new Date().getTime()}),G=queryString.stringify(R);return location.origin+location.pathname+F(D)+B+F(G)},noop$4=()=>{},setTongjiTag=B=>{window._czc&&window._czc.push(B)},getPlatform=()=>{const B=browser();return B.ios?"IOS":B.android?"ANDROID":"WEB"},formatZoom=(B=1)=>{const F={small:.5,middle:.7,large:1}[state$3.sett.scoreSize];return B*F},getVoiceChinesName=B=>{let R=B||"";if(B){const F=state$4.chinesePartName[B];if(F)R=F;else{const D=Object.keys(state$4.chinesePartName);for(const G of D)if(B.match(G)){R=B.replace(G,state$4.chinesePartName[G]);break}}}return R?B+(B!==R?" ("+R+")":""):""};var animate="",app="",base$3="";const state$2=reactive({sectionStatus:!1,maskStatus:!1,section:[],times:[],sectionBoundingBoxs:[],activeTick:-1,activeTickRepeat:1,showTick:!1,isSpecialShapedScreen:!1,notchHeight:0,fixedKey:0,renderLoading:!1,evaluatings:{},isPauseRecording:!1,feeShow:!1,vipShow:!1,mode:"contact",subjectId:0,activeSpeed:90,baseSpeed:90,activeDetail:null,needTick:!1,skipTick:!1,repeatedBeats:!1,sectionFlash:!1,befireSection:null,isPercussion:!1,enableEvaluation:!0,isAppPlay:!1,partListNames:[],partIndex:0,partName:"",midiPlayIniting:!1,isSpecialBookCategory:!1,code:"",frozenMode:!1,initRendered:!1,setting:null,activeNote:"",freeRate:.1,zoom:1,renderType:"native",gradual:[],gradualTimes:null,chenkuang:!1});function noop$3(){}var extend$2=Object.assign,inBrowser$1=typeof window!="undefined",unknownProp=null,truthProp={type:Boolean,default:!0};function get(B,R){var F=R.split("."),D=B;return F.forEach(G=>{var U;D=(U=D[G])!=null?U:""}),D}function pick(B,R,F){return R.reduce((D,G)=>((!F||B[G]!==void 0)&&(D[G]=B[G]),D),{})}function gen(B,R){return R?typeof R=="string"?" "+B+"--"+R:Array.isArray(R)?R.reduce((F,D)=>F+gen(B,D),""):Object.keys(R).reduce((F,D)=>F+(R[D]?gen(B,D):""),""):""}function createBEM(B){return function(R,F){return R&&typeof R!="string"&&(F=R,R=""),R=R?B+"__"+R:B,""+R+gen(R,F)}}var camelizeRE=/-(\w)/g;function camelize(B){return B.replace(camelizeRE,(R,F)=>F.toUpperCase())}function isDef$1(B){return B!=null}function isFunction$1(B){return typeof B=="function"}function isObject$1(B){return B!==null&&typeof B=="object"}function isPromise(B){return isObject$1(B)&&isFunction$1(B.then)&&isFunction$1(B.catch)}function isNumeric(B){return typeof B=="number"||/^\d+(\.\d+)?$/.test(B)}function isIOS$1(){return inBrowser$1?/ios|iphone|ipad|ipod/.test(navigator.userAgent.toLowerCase()):!1}var{hasOwnProperty:hasOwnProperty$1}=Object.prototype;function assignKey(B,R,F){var D=R[F];!isDef$1(D)||(!hasOwnProperty$1.call(B,F)||!isObject$1(D)?B[F]=D:B[F]=deepAssign(Object(B[F]),R[F]))}function deepAssign(B,R){return Object.keys(R).forEach(F=>{assignKey(B,R,F)}),B}var defaultMessages={name:"\u59D3\u540D",tel:"\u7535\u8BDD",save:"\u4FDD\u5B58",confirm:"\u786E\u8BA4",cancel:"\u53D6\u6D88",delete:"\u5220\u9664",complete:"\u5B8C\u6210",loading:"\u52A0\u8F7D\u4E2D...",telEmpty:"\u8BF7\u586B\u5199\u7535\u8BDD",nameEmpty:"\u8BF7\u586B\u5199\u59D3\u540D",nameInvalid:"\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u59D3\u540D",confirmDelete:"\u786E\u5B9A\u8981\u5220\u9664\u5417",telInvalid:"\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u624B\u673A\u53F7",vanCalendar:{end:"\u7ED3\u675F",start:"\u5F00\u59CB",title:"\u65E5\u671F\u9009\u62E9",confirm:"\u786E\u5B9A",startEnd:"\u5F00\u59CB/\u7ED3\u675F",weekdays:["\u65E5","\u4E00","\u4E8C","\u4E09","\u56DB","\u4E94","\u516D"],monthTitle:(B,R)=>B+"\u5E74"+R+"\u6708",rangePrompt:B=>"\u9009\u62E9\u5929\u6570\u4E0D\u80FD\u8D85\u8FC7 "+B+" \u5929"},vanCascader:{select:"\u8BF7\u9009\u62E9"},vanContactCard:{addText:"\u6DFB\u52A0\u8054\u7CFB\u4EBA"},vanContactList:{addText:"\u65B0\u5EFA\u8054\u7CFB\u4EBA"},vanPagination:{prev:"\u4E0A\u4E00\u9875",next:"\u4E0B\u4E00\u9875"},vanPullRefresh:{pulling:"\u4E0B\u62C9\u5373\u53EF\u5237\u65B0...",loosing:"\u91CA\u653E\u5373\u53EF\u5237\u65B0..."},vanSubmitBar:{label:"\u5408\u8BA1\uFF1A"},vanCoupon:{unlimited:"\u65E0\u4F7F\u7528\u95E8\u69DB",discount:B=>B+"\u6298",condition:B=>"\u6EE1"+B+"\u5143\u53EF\u7528"},vanCouponCell:{title:"\u4F18\u60E0\u5238",tips:"\u6682\u65E0\u53EF\u7528",count:B=>B+"\u5F20\u53EF\u7528"},vanCouponList:{empty:"\u6682\u65E0\u4F18\u60E0\u5238",exchange:"\u5151\u6362",close:"\u4E0D\u4F7F\u7528\u4F18\u60E0\u5238",enable:"\u53EF\u7528",disabled:"\u4E0D\u53EF\u7528",placeholder:"\u8BF7\u8F93\u5165\u4F18\u60E0\u7801"},vanAddressEdit:{area:"\u5730\u533A",postal:"\u90AE\u653F\u7F16\u7801",areaEmpty:"\u8BF7\u9009\u62E9\u5730\u533A",addressEmpty:"\u8BF7\u586B\u5199\u8BE6\u7EC6\u5730\u5740",postalEmpty:"\u90AE\u653F\u7F16\u7801\u683C\u5F0F\u4E0D\u6B63\u786E",defaultAddress:"\u8BBE\u4E3A\u9ED8\u8BA4\u6536\u8D27\u5730\u5740",telPlaceholder:"\u6536\u8D27\u4EBA\u624B\u673A\u53F7",namePlaceholder:"\u6536\u8D27\u4EBA\u59D3\u540D",areaPlaceholder:"\u9009\u62E9\u7701 / \u5E02 / \u533A"},vanAddressEditDetail:{label:"\u8BE6\u7EC6\u5730\u5740",placeholder:"\u8857\u9053\u95E8\u724C\u3001\u697C\u5C42\u623F\u95F4\u53F7\u7B49\u4FE1\u606F"},vanAddressList:{add:"\u65B0\u589E\u5730\u5740"}},lang=ref("zh-CN"),messages=reactive({"zh-CN":defaultMessages}),Locale={messages(){return messages[lang.value]},use(B,R){lang.value=B,this.add({[B]:R})},add(B={}){deepAssign(messages,B)}},locale=Locale;function createTranslate(B){var R=camelize(B)+".";return function(F,...D){var G=locale.messages(),U=get(G,R+F)||get(G,F);return isFunction$1(U)?U(...D):U}}function createNamespace(B){var R="van-"+B;return[R,createBEM(R),createTranslate(R)]}function withInstall(B){return B.install=R=>{var{name:F}=B;R.component(F,B),R.component(camelize("-"+F),B)},B}function addUnit(B){if(!!isDef$1(B))return isNumeric(B)?B+"px":String(B)}function getSizeStyle(B){if(isDef$1(B)){var R=addUnit(B);return{width:R,height:R}}}function getZIndexStyle(B){var R={};return B!==void 0&&(R.zIndex=+B),R}var rootFontSize;function getRootFontSize(){if(!rootFontSize){var B=document.documentElement,R=B.style.fontSize||window.getComputedStyle(B).fontSize;rootFontSize=parseFloat(R)}return rootFontSize}function convertRem(B){return B=B.replace(/rem/g,""),+B*getRootFontSize()}function convertVw(B){return B=B.replace(/vw/g,""),+B*window.innerWidth/100}function convertVh(B){return B=B.replace(/vh/g,""),+B*window.innerHeight/100}function unitToPx(B){if(typeof B=="number")return B;if(inBrowser$1){if(B.includes("rem"))return convertRem(B);if(B.includes("vw"))return convertVw(B);if(B.includes("vh"))return convertVh(B)}return parseFloat(B)}function clamp(B,R,F){return Math.min(Math.max(B,R),F)}function trimExtraChar(B,R,F){var D=B.indexOf(R);return D===-1?B:R==="-"&&D!==0?B.slice(0,D):B.slice(0,D+1)+B.slice(D).replace(F,"")}function formatNumber(B,R=!0,F=!0){R?B=trimExtraChar(B,".",/\./g):B=B.split(".")[0],F?B=trimExtraChar(B,"-",/-/g):B=B.replace(/-/,"");var D=R?/[^-0-9.]/g:/[^-0-9]/g;return B.replace(D,"")}function addNumber(B,R){var F=Math.pow(10,10);return Math.round((B+R)*F)/F}function isHidden(B){var R=unref(B);if(!R)return!1;var F=window.getComputedStyle(R),D=F.display==="none",G=R.offsetParent===null&&F.position!=="fixed";return D||G}function stopPropagation(B){B.stopPropagation()}function preventDefault(B,R){(typeof B.cancelable!="boolean"||B.cancelable)&&B.preventDefault(),R&&stopPropagation(B)}function trigger(B,R){var F=document.createEvent("HTMLEvents");F.initEvent(R,!0,!0),B.dispatchEvent(F)}function isWindow$1(B){return B===window}function getScrollTop(B){var R="scrollTop"in B?B.scrollTop:B.pageYOffset;return Math.max(R,0)}function setScrollTop(B,R){"scrollTop"in B?B.scrollTop=R:B.scrollTo(B.scrollX,R)}function getRootScrollTop(){return window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0}function setRootScrollTop(B){setScrollTop(window,B),setScrollTop(document.body,B)}function getElementTop(B,R){if(isWindow$1(B))return 0;var F=R?getScrollTop(R):getRootScrollTop();return B.getBoundingClientRect().top+F}function getVisibleHeight(B){return isWindow$1(B)?B.innerHeight:B.getBoundingClientRect().height}function getVisibleTop(B){return isWindow$1(B)?0:B.getBoundingClientRect().top}var isIOS=isIOS$1();function resetScroll(){isIOS&&setRootScrollTop(getRootScrollTop())}const inBrowser=typeof window!="undefined";function raf$2(B){return inBrowser?requestAnimationFrame(B):-1}function cancelRaf(B){inBrowser&&cancelAnimationFrame(B)}function doubleRaf(B){raf$2(()=>raf$2(B))}const isWindow=B=>B===window,makeDOMRect=(B,R)=>({top:0,left:0,right:B,bottom:R,width:B,height:R}),useRect=B=>{const R=unref(B);if(isWindow(R)){const F=R.innerWidth,D=R.innerHeight;return makeDOMRect(F,D)}return R!=null&&R.getBoundingClientRect?R.getBoundingClientRect():makeDOMRect(0,0)};function useToggle(B=!1){const R=ref(B);return[R,(D=!R.value)=>{R.value=D}]}function useParent(B){const R=inject(B,null);if(R){const F=getCurrentInstance(),{link:D,unlink:G,internalChildren:U}=R;D(F),onUnmounted(()=>G(F));const W=computed(()=>U.indexOf(F));return{parent:R,index:W}}return{parent:null,index:ref(-1)}}function flattenVNodes(B){const R=[],F=D=>{Array.isArray(D)&&D.forEach(G=>{var U;isVNode(G)&&(R.push(G),(U=G.component)!=null&&U.subTree&&F(G.component.subTree.children),G.children&&F(G.children))})};return F(B),R}function sortChildren(B,R,F){const D=flattenVNodes(B.subTree.children);F.sort((U,W)=>D.indexOf(U.vnode)-D.indexOf(W.vnode));const G=F.map(U=>U.proxy);R.sort((U,W)=>{const q=G.indexOf(U),Y=G.indexOf(W);return q-Y})}function useChildren(B){const R=reactive([]),F=reactive([]),D=getCurrentInstance();return{children:R,linkChildren:U=>{provide(B,Object.assign({link:Y=>{Y.proxy&&(F.push(Y),R.push(Y.proxy),sortChildren(D,R,F))},unlink:Y=>{const Q=F.indexOf(Y);R.splice(Q,1),F.splice(Q,1)},children:R,internalChildren:F},U))}}}function onMountedOrActivated(B){let R;onMounted(()=>{B(),nextTick(()=>{R=!0})}),onActivated(()=>{R&&B()})}function useEventListener(B,R,F={}){if(!inBrowser)return;const{target:D=window,passive:G=!1,capture:U=!1}=F;let W;const q=Q=>{const Z=unref(Q);Z&&!W&&(Z.addEventListener(B,R,{capture:U,passive:G}),W=!0)},Y=Q=>{const Z=unref(Q);Z&&W&&(Z.removeEventListener(B,R,U),W=!1)};onUnmounted(()=>Y(D)),onDeactivated(()=>Y(D)),onMountedOrActivated(()=>q(D)),isRef(D)&&watch(D,(Q,Z)=>{Y(Z),q(Q)})}function useClickAway(B,R,F={}){if(!inBrowser)return;const{eventName:D="click"}=F;useEventListener(D,U=>{const W=unref(B);W&&!W.contains(U.target)&&R(U)},{target:document})}let width,height;function useWindowSize(){if(!width&&(width=ref(0),height=ref(0),inBrowser)){const B=()=>{width.value=window.innerWidth,height.value=window.innerHeight};B(),window.addEventListener("resize",B,{passive:!0}),window.addEventListener("orientationchange",B,{passive:!0})}return{width,height}}const overflowScrollReg=/scroll|auto/i,defaultRoot=inBrowser?window:void 0;function isElement$1(B){return B.tagName!=="HTML"&&B.tagName!=="BODY"&&B.nodeType===1}function getScrollParent$1(B,R=defaultRoot){let F=B;for(;F&&F!==R&&isElement$1(F);){const{overflowY:D}=window.getComputedStyle(F);if(overflowScrollReg.test(D))return F;F=F.parentNode}return R}function useScrollParent(B,R=defaultRoot){const F=ref();return onMounted(()=>{B.value&&(F.value=getScrollParent$1(B.value,R))}),F}let visibility;function usePageVisibility(){if(!visibility&&(visibility=ref("visible"),inBrowser)){const B=()=>{visibility.value=document.hidden?"hidden":"visible"};B(),window.addEventListener("visibilitychange",B)}return visibility}var[name$A,bem$A]=createNamespace("action-bar"),ACTION_BAR_KEY=Symbol(name$A),_ActionBar=defineComponent({name:name$A,props:{safeAreaInsetBottom:truthProp},setup(B,{slots:R}){var{linkChildren:F}=useChildren(ACTION_BAR_KEY);return F(),()=>createVNode("div",{class:bem$A({unfit:!B.safeAreaInsetBottom})},[R.default==null?void 0:R.default()])}}),ActionBar=withInstall(_ActionBar);function useExpose(B){var R=getCurrentInstance();R&&extend$2(R.proxy,B)}var routeProps={to:[String,Object],url:String,replace:Boolean};function route(B){var R=B.$router,{to:F,url:D,replace:G}=B;F&&R?R[G?"replace":"push"](F):D&&(G?location.replace(D):location.href=D)}function useRoute(){var B=getCurrentInstance().proxy;return()=>route(B)}var BORDER="van-hairline",BORDER_TOP=BORDER+"--top",BORDER_LEFT=BORDER+"--left",BORDER_BOTTOM=BORDER+"--bottom",BORDER_SURROUND=BORDER+"--surround",BORDER_TOP_BOTTOM=BORDER+"--top-bottom",BORDER_UNSET_TOP_BOTTOM=BORDER+"-unset--top-bottom",[name$z,bem$z]=createNamespace("badge"),_Badge=defineComponent({name:name$z,props:{dot:Boolean,max:[Number,String],color:String,offset:Array,content:[Number,String],showZero:truthProp,tag:{type:String,default:"div"}},setup(B,{slots:R}){var F=()=>{if(R.content)return!0;var{content:U,showZero:W}=B;return isDef$1(U)&&U!==""&&(W||U!==0)},D=()=>{var{dot:U,max:W,content:q}=B;if(!U&&F())return R.content?R.content():isDef$1(W)&&isNumeric(q)&&+q>W?W+"+":q},G=()=>{if(F()||B.dot){var U={background:B.color};if(B.offset){var[W,q]=B.offset;R.default?(U.top=addUnit(q),U.right="-"+addUnit(W)):(U.marginTop=addUnit(q),U.marginLeft=addUnit(W))}return createVNode("div",{class:bem$z({dot:B.dot,fixed:!!R.default}),style:U},[D()])}};return()=>{if(R.default){var{tag:U}=B;return createVNode(U,{class:bem$z("wrapper")},{default:()=>[R.default(),G()]})}return G()}}}),Badge=withInstall(_Badge),[name$y,bem$y]=createNamespace("icon");function isImage(B){return B?B.includes("/"):!1}var _Icon=defineComponent({name:name$y,props:{dot:Boolean,name:String,size:[Number,String],badge:[Number,String],color:String,tag:{type:String,default:"i"},classPrefix:{type:String,default:bem$y()}},setup(B,{slots:R}){return()=>{var{tag:F,dot:D,name:G,size:U,badge:W,color:q,classPrefix:Y}=B,Q=isImage(G);return createVNode(Badge,{dot:D,tag:F,content:W,class:[Y,Q?"":Y+"-"+G],style:{color:q,fontSize:addUnit(U)}},{default:()=>[R.default==null?void 0:R.default(),Q&&createVNode("img",{class:bem$y("image"),src:G},null)]})}}}),Icon=withInstall(_Icon),[name$x,bem$x]=createNamespace("loading"),SpinIcon=Array(12).fill(createVNode("i",null,null)),CircularIcon=createVNode("svg",{class:bem$x("circular"),viewBox:"25 25 50 50"},[createVNode("circle",{cx:"50",cy:"50",r:"20",fill:"none"},null)]),_Loading=defineComponent({name:name$x,props:{size:[Number,String],color:String,vertical:Boolean,textSize:[Number,String],textColor:String,type:{type:String,default:"circular"}},setup(B,{slots:R}){var F=computed(()=>extend$2({color:B.color},getSizeStyle(B.size))),D=()=>{if(R.default){var G;return createVNode("span",{class:bem$x("text"),style:{fontSize:addUnit(B.textSize),color:(G=B.textColor)!=null?G:B.color}},[R.default()])}};return()=>{var{type:G,vertical:U}=B;return createVNode("div",{class:bem$x([G,{vertical:U}])},[createVNode("span",{class:bem$x("spinner",G),style:F.value},[G==="spinner"?SpinIcon:CircularIcon]),D()])}}}),Loading=withInstall(_Loading),[name$w,bem$w]=createNamespace("button"),_Button=defineComponent({name:name$w,props:extend$2({},routeProps,{text:String,icon:String,color:String,block:Boolean,plain:Boolean,round:Boolean,square:Boolean,loading:Boolean,hairline:Boolean,disabled:Boolean,iconPrefix:String,loadingSize:String,loadingText:String,loadingType:String,tag:{type:String,default:"button"},type:{type:String,default:"default"},size:{type:String,default:"normal"},nativeType:{type:String,default:"button"},iconPosition:{type:String,default:"left"}}),emits:["click"],setup(B,{emit:R,slots:F}){var D=useRoute(),G=()=>F.loading?F.loading():createVNode(Loading,{size:B.loadingSize,type:B.loadingType,class:bem$w("loading")},null),U=()=>{if(B.loading)return G();if(F.icon)return createVNode("div",{class:bem$w("icon")},[F.icon()]);if(B.icon)return createVNode(Icon,{name:B.icon,class:bem$w("icon"),classPrefix:B.iconPrefix},null)},W=()=>{var Q;if(B.loading?Q=B.loadingText:Q=F.default?F.default():B.text,Q)return createVNode("span",{class:bem$w("text")},[Q])},q=()=>{var{color:Q,plain:Z}=B;if(Q){var K={color:Z?Q:"white"};return Z||(K.background=Q),Q.includes("gradient")?K.border=0:K.borderColor=Q,K}},Y=Q=>{B.loading?Q.preventDefault():B.disabled||(R("click",Q),D())};return()=>{var{tag:Q,type:Z,size:K,block:J,round:ie,plain:ne,square:se,loading:re,disabled:ae,hairline:le,nativeType:ce,iconPosition:he}=B,de=[bem$w([Z,K,{plain:ne,block:J,round:ie,square:se,loading:re,disabled:ae,hairline:le}]),{[BORDER_SURROUND]:le}];return createVNode(Q,{type:ce,class:de,style:q(),disabled:ae,onClick:Y},{default:()=>[createVNode("div",{class:bem$w("content")},[he==="left"&&U(),W(),he==="right"&&U()])]})}}}),Button=withInstall(_Button),[name$v,bem$v]=createNamespace("action-bar-button"),_ActionBarButton=defineComponent({name:name$v,props:extend$2({},routeProps,{type:String,text:String,icon:String,color:String,loading:Boolean,disabled:Boolean}),setup(B,{slots:R}){var F=useRoute(),{parent:D,index:G}=useParent(ACTION_BAR_KEY),U=computed(()=>{if(D){var q=D.children[G.value-1];return!(q&&"isButton"in q)}}),W=computed(()=>{if(D){var q=D.children[G.value+1];return!(q&&"isButton"in q)}});return useExpose({isButton:!0}),()=>{var{type:q,icon:Y,text:Q,color:Z,loading:K,disabled:J}=B;return createVNode(Button,{class:bem$v([q,{last:W.value,first:U.value}]),size:"large",type:q,icon:Y,color:Z,loading:K,disabled:J,onClick:F},{default:()=>[R.default?R.default():Q]})}}}),ActionBarButton=withInstall(_ActionBarButton),popupSharedProps={show:Boolean,zIndex:[Number,String],overlay:truthProp,duration:[Number,String],teleport:[String,Object],lockScroll:truthProp,lazyRender:truthProp,overlayStyle:Object,overlayClass:unknownProp,transitionAppear:Boolean,closeOnClickOverlay:truthProp},popupSharedPropKeys=Object.keys(popupSharedProps),MIN_DISTANCE=10;function getDirection(B,R){return B>R&&B>MIN_DISTANCE?"horizontal":R>B&&R>MIN_DISTANCE?"vertical":""}function useTouch(){var B=ref(0),R=ref(0),F=ref(0),D=ref(0),G=ref(0),U=ref(0),W=ref(""),q=()=>W.value==="vertical",Y=()=>W.value==="horizontal",Q=()=>{F.value=0,D.value=0,G.value=0,U.value=0,W.value=""},Z=J=>{Q(),B.value=J.touches[0].clientX,R.value=J.touches[0].clientY},K=J=>{var ie=J.touches[0];F.value=ie.clientX<0?0:ie.clientX-B.value,D.value=ie.clientY-R.value,G.value=Math.abs(F.value),U.value=Math.abs(D.value),W.value||(W.value=getDirection(G.value,U.value))};return{move:K,start:Z,reset:Q,startX:B,startY:R,deltaX:F,deltaY:D,offsetX:G,offsetY:U,direction:W,isVertical:q,isHorizontal:Y}}var totalLockCount=0,BODY_LOCK_CLASS="van-overflow-hidden";function useLockScroll(B,R){var F=useTouch(),D=Y=>{F.move(Y);var Q=F.deltaY.value>0?"10":"01",Z=getScrollParent$1(Y.target,B.value),{scrollHeight:K,offsetHeight:J,scrollTop:ie}=Z,ne="11";ie===0?ne=J>=K?"00":"01":ie+J>=K&&(ne="10"),ne!=="11"&&F.isVertical()&&!(parseInt(ne,2)&parseInt(Q,2))&&preventDefault(Y,!0)},G=()=>{document.addEventListener("touchstart",F.start),document.addEventListener("touchmove",D,{passive:!1}),totalLockCount||document.body.classList.add(BODY_LOCK_CLASS),totalLockCount++},U=()=>{totalLockCount&&(document.removeEventListener("touchstart",F.start),document.removeEventListener("touchmove",D),totalLockCount--,totalLockCount||document.body.classList.remove(BODY_LOCK_CLASS))},W=()=>{R()&&G()},q=()=>{R()&&U()};onMountedOrActivated(W),onDeactivated(q),onBeforeUnmount(q),watch(R,Y=>{Y?G():U()})}function useLazyRender(B){var R=ref(!1);return watch(B,F=>{F&&(R.value=F)},{immediate:!0}),F=>()=>R.value?F():null}var POPUP_TOGGLE_KEY=Symbol();function onPopupReopen(B){var R=inject(POPUP_TOGGLE_KEY,null);R&&watch(R,F=>{F&&B()})}var[name$u,bem$u]=createNamespace("overlay"),_Overlay=defineComponent({name:name$u,props:{show:Boolean,zIndex:[Number,String],duration:[Number,String],className:unknownProp,lockScroll:truthProp,customStyle:Object},setup(B,{slots:R}){var F=useLazyRender(()=>B.show),D=U=>{preventDefault(U,!0)},G=F(()=>{var U=extend$2(getZIndexStyle(B.zIndex),B.customStyle);return isDef$1(B.duration)&&(U.animationDuration=B.duration+"s"),withDirectives(createVNode("div",{style:U,class:[bem$u(),B.className],onTouchmove:B.lockScroll?D:noop$3},[R.default==null?void 0:R.default()]),[[vShow,B.show]])});return()=>createVNode(Transition,{name:"van-fade"},{default:()=>[G()]})}}),Overlay=withInstall(_Overlay),[name$t,bem$t]=createNamespace("popup"),globalZIndex=2e3,_Popup=defineComponent({name:name$t,inheritAttrs:!1,props:extend$2({},popupSharedProps,{round:Boolean,closeable:Boolean,transition:String,iconPrefix:String,closeOnPopstate:Boolean,safeAreaInsetBottom:Boolean,position:{type:String,default:"center"},closeIcon:{type:String,default:"cross"},closeIconPosition:{type:String,default:"top-right"}}),emits:["open","close","click","opened","closed","update:show","click-overlay","click-close-icon"],setup(B,{emit:R,attrs:F,slots:D}){var G,U,W=ref(),q=ref(),Y=useLazyRender(()=>B.show||!B.lazyRender),Q=computed(()=>{var de={zIndex:W.value};if(isDef$1(B.duration)){var me=B.position==="center"?"animationDuration":"transitionDuration";de[me]=B.duration+"s"}return de}),Z=()=>{G||(B.zIndex!==void 0&&(globalZIndex=+B.zIndex),G=!0,W.value=++globalZIndex)},K=()=>{G&&(G=!1,R("update:show",!1))},J=de=>{R("click-overlay",de),B.closeOnClickOverlay&&K()},ie=()=>{if(B.overlay)return createVNode(Overlay,{show:B.show,class:B.overlayClass,zIndex:W.value,duration:B.duration,customStyle:B.overlayStyle,onClick:J},{default:D["overlay-content"]})},ne=de=>{R("click-close-icon",de),K()},se=()=>{if(B.closeable)return createVNode(Icon,{role:"button",tabindex:0,name:B.closeIcon,class:bem$t("close-icon",B.closeIconPosition),classPrefix:B.iconPrefix,onClick:ne},null)},re=de=>R("click",de),ae=()=>R("opened"),le=()=>R("closed"),ce=Y(()=>{var{round:de,position:me,safeAreaInsetBottom:fe}=B;return withDirectives(createVNode("div",mergeProps({ref:q,style:Q.value,class:bem$t({round:de,[me]:me,"safe-area-inset-bottom":fe}),onClick:re},F),[D.default==null?void 0:D.default(),se()]),[[vShow,B.show]])}),he=()=>{var{position:de,transition:me,transitionAppear:fe}=B,ge=de==="center"?"van-fade":"van-popup-slide-"+de;return createVNode(Transition,{name:me||ge,appear:fe,onAfterEnter:ae,onAfterLeave:le},{default:()=>[ce()]})};return watch(()=>B.show,de=>{de?(Z(),R("open")):(K(),R("close"))}),useExpose({popupRef:q}),useLockScroll(q,()=>B.show&&B.lockScroll),useEventListener("popstate",()=>{B.closeOnPopstate&&(K(),U=!1)}),onMounted(()=>{B.show&&Z()}),onActivated(()=>{U&&(R("update:show",!0),U=!1)}),onDeactivated(()=>{B.show&&(K(),U=!0)}),provide(POPUP_TOGGLE_KEY,()=>B.show),()=>B.teleport?createVNode(Teleport,{to:B.teleport},{default:()=>[ie(),he()]}):createVNode(Fragment,null,[ie(),he()])}}),Popup=withInstall(_Popup);function deepClone(B){if(!isDef$1(B))return B;if(Array.isArray(B))return B.map(F=>deepClone(F));if(typeof B=="object"){var R={};return Object.keys(B).forEach(F=>{R[F]=deepClone(B[F])}),R}return B}var DEFAULT_DURATION=200,MOMENTUM_LIMIT_TIME=300,MOMENTUM_LIMIT_DISTANCE=15,[name$s,bem$s]=createNamespace("picker-column");function getElementTranslateY(B){var R=window.getComputedStyle(B),F=R.transform||R.webkitTransform,D=F.slice(7,F.length-1).split(", ")[5];return Number(D)}var PICKER_KEY=Symbol(name$s);function isOptionDisabled(B){return isObject$1(B)&&B.disabled}var Column=defineComponent({name:name$s,props:{readonly:Boolean,allowHtml:Boolean,className:unknownProp,textKey:{type:String,required:!0},itemHeight:{type:Number,required:!0},swipeDuration:{type:[Number,String],required:!0},visibleItemCount:{type:[Number,String],required:!0},defaultIndex:{type:Number,default:0},initialOptions:{type:Array,default:()=>[]}},emits:["change"],setup(B,{emit:R,slots:F}){var D,G,U,W,q,Y=ref(),Q=reactive({index:B.defaultIndex,offset:0,duration:0,options:deepClone(B.initialOptions)}),Z=useTouch(),K=()=>Q.options.length,J=()=>B.itemHeight*(+B.visibleItemCount-1)/2,ie=ve=>{ve=clamp(ve,0,K());for(var xe=ve;xe=0;Pe--)if(!isOptionDisabled(Q.options[Pe]))return Pe},ne=(ve,xe)=>{ve=ie(ve)||0;var Pe=-ve*B.itemHeight,ye=()=>{ve!==Q.index&&(Q.index=ve,xe&&R("change",ve))};D&&Pe!==Q.offset?q=ye:ye(),Q.offset=Pe},se=ve=>{JSON.stringify(ve)!==JSON.stringify(Q.options)&&(Q.options=deepClone(ve),ne(B.defaultIndex))},re=ve=>{D||B.readonly||(q=null,Q.duration=DEFAULT_DURATION,ne(ve,!0))},ae=ve=>isObject$1(ve)&&B.textKey in ve?ve[B.textKey]:ve,le=ve=>clamp(Math.round(-ve/B.itemHeight),0,K()-1),ce=(ve,xe)=>{var Pe=Math.abs(ve/xe);ve=Q.offset+Pe/.003*(ve<0?-1:1);var ye=le(ve);Q.duration=+B.swipeDuration,ne(ye,!0)},he=()=>{D=!1,Q.duration=0,q&&(q(),q=null)},de=ve=>{if(!B.readonly){if(Z.start(ve),D){var xe=getElementTranslateY(Y.value);Q.offset=Math.min(0,xe-J()),G=Q.offset}else G=Q.offset;Q.duration=0,U=Date.now(),W=G,q=null}},me=ve=>{if(!B.readonly){Z.move(ve),Z.isVertical()&&(D=!0,preventDefault(ve,!0)),Q.offset=clamp(G+Z.deltaY.value,-(K()*B.itemHeight),B.itemHeight);var xe=Date.now();xe-U>MOMENTUM_LIMIT_TIME&&(U=xe,W=Q.offset)}},fe=()=>{if(!B.readonly){var ve=Q.offset-W,xe=Date.now()-U,Pe=xeMOMENTUM_LIMIT_DISTANCE;if(Pe){ce(ve,xe);return}var ye=le(Q.offset);Q.duration=DEFAULT_DURATION,ne(ye,!0),setTimeout(()=>{D=!1},0)}},ge=()=>{var ve={height:B.itemHeight+"px"};return Q.options.map((xe,Pe)=>{var ye=ae(xe),Te=isOptionDisabled(xe),Le={role:"button",style:ve,tabindex:Te?-1:0,class:bem$s("item",{disabled:Te,selected:Pe===Q.index}),onClick:()=>re(Pe)},we={class:"van-ellipsis",[B.allowHtml?"innerHTML":"textContent"]:ye};return createVNode("li",Le,[F.option?F.option(xe):createVNode("div",we,null)])})},Se=ve=>{for(var{options:xe}=Q,Pe=0;PeQ.options[Q.index];return ne(Q.index),useParent(PICKER_KEY),useExpose({state:Q,setIndex:ne,getValue:Ee,setValue:Se,setOptions:se,stopMomentum:he}),watch(()=>B.initialOptions,se),watch(()=>B.defaultIndex,ve=>{ne(ve)}),()=>{var ve={transform:"translate3d(0, "+(Q.offset+J())+"px, 0)",transitionDuration:Q.duration+"ms",transitionProperty:Q.duration?"all":"none"};return createVNode("div",{class:[bem$s(),B.className],onTouchstart:de,onTouchmove:me,onTouchend:fe,onTouchcancel:fe},[createVNode("ul",{ref:Y,style:ve,class:bem$s("wrapper"),onTransitionend:he},[ge()])])}}}),[name$r,bem$r,t$5]=createNamespace("picker"),pickerProps={title:String,loading:Boolean,readonly:Boolean,allowHtml:Boolean,showToolbar:truthProp,cancelButtonText:String,confirmButtonText:String,itemHeight:{type:[Number,String],default:44},visibleItemCount:{type:[Number,String],default:6},swipeDuration:{type:[Number,String],default:1e3}},_Picker=defineComponent({name:name$r,props:extend$2({},pickerProps,{columnsFieldNames:Object,columns:{type:Array,default:()=>[]},defaultIndex:{type:[Number,String],default:0},toolbarPosition:{type:String,default:"top"},valueKey:{type:String,default:"text"}}),emits:["confirm","cancel","change"],setup(B,{emit:R,slots:F}){var D=ref([]),{text:G,values:U,children:W}=extend$2({text:B.valueKey,values:"values",children:"children"},B.columnsFieldNames),{children:q,linkChildren:Y}=useChildren(PICKER_KEY);Y();var Q=computed(()=>unitToPx(B.itemHeight)),Z=computed(()=>{var Me=B.columns[0];if(Me&&typeof Me!="string"){if(W in Me)return"cascade";if(U in Me)return"object"}return"plain"}),K=()=>{for(var Me=[],ke={[W]:B.columns};ke&&ke[W];){for(var Ne,Ie=ke[W],Ge=(Ne=ke.defaultIndex)!=null?Ne:+B.defaultIndex;Ie[Ge]&&Ie[Ge].disabled;)if(Ge{var{columns:Me}=B;Z.value==="plain"?D.value=[{[U]:Me}]:Z.value==="cascade"?K():D.value=Me},ie=()=>q.map(Me=>Me.state.index),ne=(Me,ke)=>{var Ne=q[Me];Ne&&Ne.setOptions(ke)},se=Me=>{for(var ke={[W]:B.columns},Ne=ie(),Ie=0;Ie<=Me;Ie++)ke=ke[W][Ne[Ie]];for(;ke&&ke[W];)Me++,ne(Me,ke[W]),ke=ke[W][ke.defaultIndex||0]},re=Me=>q[Me],ae=Me=>{var ke=re(Me);if(ke)return ke.getValue()},le=(Me,ke)=>{var Ne=re(Me);Ne&&(Ne.setValue(ke),Z.value==="cascade"&&se(Me))},ce=Me=>{var ke=re(Me);if(ke)return ke.state.index},he=(Me,ke)=>{var Ne=re(Me);Ne&&(Ne.setIndex(ke),Z.value==="cascade"&&se(Me))},de=Me=>{var ke=re(Me);if(ke)return ke.state.options},me=()=>q.map(Me=>Me.getValue()),fe=Me=>{Me.forEach((ke,Ne)=>{le(Ne,ke)})},ge=Me=>{Me.forEach((ke,Ne)=>{he(Ne,ke)})},Se=Me=>{Z.value==="plain"?R(Me,ae(0),ce(0)):R(Me,me(),ie())},Ee=Me=>{Z.value==="cascade"&&se(Me),Z.value==="plain"?R("change",ae(0),ce(0)):R("change",me(),Me)},ve=()=>{q.forEach(Me=>Me.stopMomentum()),Se("confirm")},xe=()=>Se("cancel"),Pe=()=>{if(F.title)return F.title();if(B.title)return createVNode("div",{class:[bem$r("title"),"van-ellipsis"]},[B.title])},ye=()=>{var Me=B.cancelButtonText||t$5("cancel");return createVNode("button",{type:"button",class:bem$r("cancel"),onClick:xe},[F.cancel?F.cancel():Me])},Te=()=>{var Me=B.confirmButtonText||t$5("confirm");return createVNode("button",{type:"button",class:bem$r("confirm"),onClick:ve},[F.confirm?F.confirm():Me])},Le=()=>{if(B.showToolbar)return createVNode("div",{class:bem$r("toolbar")},[F.default?F.default():[ye(),Pe(),Te()]])},we=()=>D.value.map((Me,ke)=>{var Ne;return createVNode(Column,{textKey:G,readonly:B.readonly,allowHtml:B.allowHtml,className:Me.className,itemHeight:Q.value,defaultIndex:(Ne=Me.defaultIndex)!=null?Ne:+B.defaultIndex,swipeDuration:B.swipeDuration,initialOptions:Me[U],visibleItemCount:B.visibleItemCount,onChange:()=>Ee(ke)},{option:F.option})}),Ae=()=>{var Me=Q.value*+B.visibleItemCount,ke={height:Q.value+"px"},Ne={height:Me+"px"},Ie={backgroundSize:"100% "+(Me-Q.value)/2+"px"};return createVNode("div",{class:bem$r("columns"),style:Ne,onTouchmove:preventDefault},[we(),createVNode("div",{class:bem$r("mask"),style:Ie},null),createVNode("div",{class:[BORDER_UNSET_TOP_BOTTOM,bem$r("frame")],style:ke},null)])};return watch(()=>B.columns,J,{immediate:!0}),useExpose({confirm:ve,getValues:me,setValues:fe,getIndexes:ie,setIndexes:ge,getColumnIndex:ce,setColumnIndex:he,getColumnValue:ae,setColumnValue:le,getColumnValues:de,setColumnValues:ne}),()=>{var Me,ke;return createVNode("div",{class:bem$r()},[B.toolbarPosition==="top"?Le():null,B.loading?createVNode(Loading,{class:bem$r("loading")},null):null,(Me=F["columns-top"])==null?void 0:Me.call(F),Ae(),(ke=F["columns-bottom"])==null?void 0:ke.call(F),B.toolbarPosition==="bottom"?Le():null])}}}),Picker=withInstall(_Picker),[name$q,bem$q]=createNamespace("cell"),cellProps={icon:String,size:String,title:[Number,String],value:[Number,String],label:[Number,String],center:Boolean,isLink:Boolean,border:truthProp,required:Boolean,iconPrefix:String,valueClass:unknownProp,labelClass:unknownProp,titleClass:unknownProp,titleStyle:null,arrowDirection:String,clickable:{type:Boolean,default:null}},_Cell=defineComponent({name:name$q,props:extend$2({},cellProps,routeProps),setup(B,{slots:R}){var F=useRoute(),D=()=>{var Y=R.label||isDef$1(B.label);if(Y)return createVNode("div",{class:[bem$q("label"),B.labelClass]},[R.label?R.label():B.label])},G=()=>{if(R.title||isDef$1(B.title))return createVNode("div",{class:[bem$q("title"),B.titleClass],style:B.titleStyle},[R.title?R.title():createVNode("span",null,[B.title]),D()])},U=()=>{var Y=R.default||isDef$1(B.value);if(Y){var Q=R.title||isDef$1(B.title);return createVNode("div",{class:[bem$q("value",{alone:!Q}),B.valueClass]},[R.default?R.default():createVNode("span",null,[B.value])])}},W=()=>{if(R.icon)return R.icon();if(B.icon)return createVNode(Icon,{name:B.icon,class:bem$q("left-icon"),classPrefix:B.iconPrefix},null)},q=()=>{if(R["right-icon"])return R["right-icon"]();if(B.isLink){var Y=B.arrowDirection?"arrow-"+B.arrowDirection:"arrow";return createVNode(Icon,{name:Y,class:bem$q("right-icon")},null)}};return()=>{var Y,{size:Q,center:Z,border:K,isLink:J,required:ie}=B,ne=(Y=B.clickable)!=null?Y:J,se={center:Z,required:ie,clickable:ne,borderless:!K};return Q&&(se[Q]=!!Q),createVNode("div",{class:bem$q(se),role:ne?"button":void 0,tabindex:ne?0:void 0,onClick:F},[W(),G(),U(),q(),R.extra==null?void 0:R.extra()])}}}),Cell=withInstall(_Cell);function isEmptyValue(B){return Array.isArray(B)?!B.length:B===0?!1:!B}function runSyncRule(B,R){return!(R.required&&isEmptyValue(B)||R.pattern&&!R.pattern.test(String(B)))}function runRuleValidator(B,R){return new Promise(F=>{var D=R.validator(B,R);if(isPromise(D))return D.then(F);F(D)})}function getRuleMessage(B,R){var{message:F}=R;return isFunction$1(F)?F(B,R):F||""}function startComposing(B){B.target.composing=!0}function endComposing(B){var{target:R}=B;R.composing&&(R.composing=!1,trigger(R,"input"))}function resizeTextarea(B,R){B.style.height="auto";var F=B.scrollHeight;if(isObject$1(R)){var{maxHeight:D,minHeight:G}=R;D!==void 0&&(F=Math.min(F,D)),G!==void 0&&(F=Math.max(F,G))}F&&(B.style.height=F+"px")}function mapInputType(B){return B==="number"?{type:"text",inputmode:"decimal"}:B==="digit"?{type:"tel",inputmode:"numeric"}:{type:B}}var FORM_KEY=Symbol("van-form"),FIELD_KEY=Symbol("van-field");function useLinkField(B){var R=inject(FIELD_KEY,null);R&&!R.childFieldValue.value&&(R.childFieldValue.value=B,watch(B,()=>{R.resetValidation(),R.validateWithTrigger("onChange")}))}var[name$p,bem$p]=createNamespace("field"),fieldProps={formatter:Function,leftIcon:String,rightIcon:String,autofocus:Boolean,clearable:Boolean,maxlength:[Number,String],inputAlign:String,placeholder:String,errorMessage:String,error:{type:Boolean,default:null},disabled:{type:Boolean,default:null},readonly:{type:Boolean,default:null},clearIcon:{type:String,default:"clear"},modelValue:{type:[Number,String],default:""},clearTrigger:{type:String,default:"focus"},formatTrigger:{type:String,default:"onChange"}},_Field=defineComponent({name:name$p,props:extend$2({},cellProps,fieldProps,{rows:[Number,String],name:String,rules:Array,autosize:[Boolean,Object],labelWidth:[Number,String],labelClass:unknownProp,labelAlign:String,autocomplete:String,showWordLimit:Boolean,errorMessageAlign:String,type:{type:String,default:"text"},colon:{type:Boolean,default:null}}),emits:["blur","focus","clear","keypress","click-input","click-left-icon","click-right-icon","update:modelValue"],setup(B,{emit:R,slots:F}){var D=reactive({focused:!1,validateFailed:!1,validateMessage:""}),G=ref(),U=ref(),{parent:W}=useParent(FORM_KEY),q=()=>{var ke;return String((ke=B.modelValue)!=null?ke:"")},Y=ke=>{if(isDef$1(B[ke]))return B[ke];if(W&&isDef$1(W.props[ke]))return W.props[ke]},Q=computed(()=>{var ke=Y("readonly");if(B.clearable&&!ke){var Ne=q()!=="",Ie=B.clearTrigger==="always"||B.clearTrigger==="focus"&&D.focused;return Ne&&Ie}return!1}),Z=computed(()=>U.value&&F.input?U.value():B.modelValue),K=ke=>ke.reduce((Ne,Ie)=>Ne.then(()=>{if(!D.validateFailed){var{value:Ge}=Z;if(Ie.formatter&&(Ge=Ie.formatter(Ge,Ie)),!runSyncRule(Ge,Ie)){D.validateFailed=!0,D.validateMessage=getRuleMessage(Ge,Ie);return}if(Ie.validator)return runRuleValidator(Ge,Ie).then(ze=>{ze&&typeof ze=="string"?(D.validateFailed=!0,D.validateMessage=ze):ze===!1&&(D.validateFailed=!0,D.validateMessage=getRuleMessage(Ge,Ie))})}}),Promise.resolve()),J=()=>{D.validateFailed&&(D.validateFailed=!1,D.validateMessage="")},ie=(ke=B.rules)=>new Promise(Ne=>{J(),ke?K(ke).then(()=>{D.validateFailed?Ne({name:B.name,message:D.validateMessage}):Ne()}):Ne()}),ne=ke=>{if(W&&B.rules){var Ne=W.props.validateTrigger===ke,Ie=B.rules.filter(Ge=>Ge.trigger?Ge.trigger===ke:Ne);Ie.length&&ie(Ie)}},se=ke=>{var{maxlength:Ne}=B;if(isDef$1(Ne)&&ke.length>Ne){var Ie=q();return Ie&&Ie.length===+Ne?Ie:ke.slice(0,+Ne)}return ke},re=(ke,Ne="onChange")=>{if(ke=se(ke),B.type==="number"||B.type==="digit"){var Ie=B.type==="number";ke=formatNumber(ke,Ie,Ie)}B.formatter&&Ne===B.formatTrigger&&(ke=B.formatter(ke)),G.value&&G.value.value!==ke&&(G.value.value=ke),ke!==B.modelValue&&R("update:modelValue",ke)},ae=ke=>{ke.target.composing||re(ke.target.value)},le=()=>{var ke;return(ke=G.value)==null?void 0:ke.blur()},ce=()=>{var ke;return(ke=G.value)==null?void 0:ke.focus()},he=ke=>{D.focused=!0,R("focus",ke);var Ne=Y("readonly");Ne&&le()},de=ke=>{D.focused=!1,re(q(),"onBlur"),R("blur",ke),ne("onBlur"),resetScroll()},me=ke=>R("click-input",ke),fe=ke=>R("click-left-icon",ke),ge=ke=>R("click-right-icon",ke),Se=ke=>{preventDefault(ke),R("update:modelValue",""),R("clear",ke)},Ee=computed(()=>{if(typeof B.error=="boolean")return B.error;if(W&&W.props.showError&&D.validateFailed)return!0}),ve=computed(()=>{var ke=Y("labelWidth");if(ke)return{width:addUnit(ke)}}),xe=ke=>{var Ne=13;if(ke.keyCode===Ne){var Ie=W&&W.props.submitOnEnter;!Ie&&B.type!=="textarea"&&preventDefault(ke),B.type==="search"&&le()}R("keypress",ke)},Pe=()=>{var ke=G.value;B.type==="textarea"&&B.autosize&&ke&&resizeTextarea(ke,B.autosize)},ye=()=>{var ke=Y("inputAlign");if(F.input)return createVNode("div",{class:bem$p("control",[ke,"custom"]),onClick:me},[F.input()]);var Ne={ref:G,name:B.name,rows:B.rows!==void 0?+B.rows:void 0,class:bem$p("control",ke),value:B.modelValue,disabled:Y("disabled"),readonly:Y("readonly"),autofocus:B.autofocus,placeholder:B.placeholder,autocomplete:B.autocomplete,onBlur:de,onFocus:he,onInput:ae,onClick:me,onChange:endComposing,onKeypress:xe,onCompositionend:endComposing,onCompositionstart:startComposing};return B.type==="textarea"?createVNode("textarea",Ne,null):createVNode("input",mergeProps(mapInputType(B.type),Ne),null)},Te=()=>{var ke=F["left-icon"];if(B.leftIcon||ke)return createVNode("div",{class:bem$p("left-icon"),onClick:fe},[ke?ke():createVNode(Icon,{name:B.leftIcon,classPrefix:B.iconPrefix},null)])},Le=()=>{var ke=F["right-icon"];if(B.rightIcon||ke)return createVNode("div",{class:bem$p("right-icon"),onClick:ge},[ke?ke():createVNode(Icon,{name:B.rightIcon,classPrefix:B.iconPrefix},null)])},we=()=>{if(B.showWordLimit&&B.maxlength){var ke=q().length;return createVNode("div",{class:bem$p("word-limit")},[createVNode("span",{class:bem$p("word-num")},[ke]),createTextVNode("/"),B.maxlength])}},Ae=()=>{if(!(W&&W.props.showErrorMessage===!1)){var ke=B.errorMessage||D.validateMessage;if(ke){var Ne=Y("errorMessageAlign");return createVNode("div",{class:bem$p("error-message",Ne)},[ke])}}},Me=()=>{var ke=Y("colon")?":":"";if(F.label)return[F.label(),ke];if(B.label)return createVNode("span",null,[B.label+ke])};return useExpose({blur:le,focus:ce,validate:ie,formValue:Z,resetValidation:J}),provide(FIELD_KEY,{childFieldValue:U,resetValidation:J,validateWithTrigger:ne}),watch(()=>B.modelValue,()=>{re(q()),J(),ne("onChange"),nextTick(Pe)}),onMounted(()=>{re(q(),B.formatTrigger),nextTick(Pe)}),()=>{var ke=Y("disabled"),Ne=Y("labelAlign"),Ie=Me(),Ge=Te();return createVNode(Cell,{size:B.size,icon:B.leftIcon,class:bem$p({error:Ee.value,disabled:ke,["label-"+Ne]:Ne,"min-height":B.type==="textarea"&&!B.autosize}),center:B.center,border:B.border,isLink:B.isLink,required:B.required,clickable:B.clickable,titleStyle:ve.value,valueClass:bem$p("value"),titleClass:[bem$p("label",Ne),B.labelClass],arrowDirection:B.arrowDirection},{default:()=>[createVNode("div",{class:bem$p("body")},[ye(),Q.value&&createVNode(Icon,{name:B.clearIcon,class:bem$p("clear"),onTouchstart:Se},null),Le(),F.button&&createVNode("div",{class:bem$p("button")},[F.button()])]),we(),Ae()],icon:Ge?()=>Ge:null,title:Ie?()=>Ie:null,extra:F.extra})}}}),Field=withInstall(_Field);function usePopupState(){var B=reactive({show:!1}),R=G=>{B.show=G},F=G=>{extend$2(B,G),nextTick(()=>R(!0))},D=()=>R(!1);return useExpose({open:F,close:D,toggle:R}),{open:F,close:D,state:B,toggle:R}}function mountComponent(B){var R=createApp(B),F=document.createElement("div");return document.body.appendChild(F),{instance:R.mount(F),unmount(){R.unmount(),document.body.removeChild(F)}}}var lockCount=0;function lockClick(B){B?(lockCount||document.body.classList.add("van-toast--unclickable"),lockCount++):lockCount&&(lockCount--,lockCount||document.body.classList.remove("van-toast--unclickable"))}var[name$o,bem$o]=createNamespace("toast"),VanToast=defineComponent({name:name$o,props:{icon:String,show:Boolean,overlay:Boolean,message:[Number,String],iconSize:[Number,String],className:unknownProp,iconPrefix:String,loadingType:String,forbidClick:Boolean,overlayClass:unknownProp,overlayStyle:Object,closeOnClick:Boolean,closeOnClickOverlay:Boolean,type:{type:String,default:"text"},duration:{type:Number,default:2e3},position:{type:String,default:"middle"},transition:{type:String,default:"van-fade"}},emits:["update:show"],setup(B,{emit:R}){var F,D=!1,G=()=>{var Z=B.show&&B.forbidClick;D!==Z&&(D=Z,lockClick(D))},U=Z=>R("update:show",Z),W=()=>{B.closeOnClick&&U(!1)},q=()=>{clearTimeout(F)},Y=()=>{var{icon:Z,type:K,iconSize:J,iconPrefix:ie,loadingType:ne}=B,se=Z||K==="success"||K==="fail";if(se)return createVNode(Icon,{name:Z||K,size:J,class:bem$o("icon"),classPrefix:ie},null);if(K==="loading")return createVNode(Loading,{class:bem$o("loading"),size:J,type:ne},null)},Q=()=>{var{type:Z,message:K}=B;if(isDef$1(K)&&K!=="")return Z==="html"?createVNode("div",{class:bem$o("text"),innerHTML:String(K)},null):createVNode("div",{class:bem$o("text")},[K])};return watch(()=>[B.show,B.forbidClick],G),watch(()=>[B.show,B.type,B.message,B.duration],()=>{q(),B.show&&B.duration>0&&(F=setTimeout(()=>{U(!1)},B.duration))}),onMounted(G),onUnmounted(G),()=>createVNode(Popup,mergeProps({show:B.show,class:[bem$o([B.position,{[B.type]:!B.icon}]),B.className],overlay:B.overlay,lockScroll:!1,transition:B.transition,overlayClass:B.overlayClass,overlayStyle:B.overlayStyle,closeOnClickOverlay:B.closeOnClickOverlay,onClick:W,onClosed:q},{"onUpdate:show":U}),{default:()=>[Y(),Q()]})}}),defaultOptions={icon:"",type:"text",message:"",className:"",overlay:!1,onClose:void 0,onOpened:void 0,duration:2e3,teleport:"body",iconSize:void 0,iconPrefix:void 0,position:"middle",transition:"van-fade",forbidClick:!1,loadingType:void 0,overlayClass:"",overlayStyle:void 0,closeOnClick:!1,closeOnClickOverlay:!1},queue$1=[],allowMultiple=!1,currentOptions=extend$2({},defaultOptions),defaultOptionsMap={};function parseOptions(B){return isObject$1(B)?B:{message:B}}function createInstance(){var{instance:B,unmount:R}=mountComponent({setup(){var F=ref(""),{open:D,state:G,close:U,toggle:W}=usePopupState(),q=()=>{allowMultiple&&(queue$1=queue$1.filter(Q=>Q!==B),R())},Y=()=>{var Q={onClosed:q,"onUpdate:show":W};return F.value&&(Q.message=F.value),createVNode(VanToast,mergeProps(G,Q),null)};return getCurrentInstance().render=Y,{open:D,clear:U,message:F}}});return B}function getInstance(){if(!queue$1.length||allowMultiple){var B=createInstance();queue$1.push(B)}return queue$1[queue$1.length-1]}function Toast(B={}){if(!inBrowser$1)return{};var R=getInstance(),F=parseOptions(B);return R.open(extend$2({},currentOptions,defaultOptionsMap[F.type||currentOptions.type],F)),R}var createMethod=B=>R=>Toast(extend$2({type:B},parseOptions(R)));Toast.loading=createMethod("loading");Toast.success=createMethod("success");Toast.fail=createMethod("fail");Toast.clear=B=>{queue$1.length&&(B?(queue$1.forEach(R=>{R.clear()}),queue$1=[]):allowMultiple?queue$1.shift().clear():queue$1[0].clear())};function setDefaultOptions(B,R){typeof B=="string"?defaultOptionsMap[B]=R:extend$2(currentOptions,B)}Toast.setDefaultOptions=setDefaultOptions;Toast.resetDefaultOptions=B=>{typeof B=="string"?defaultOptionsMap[B]=null:(currentOptions=extend$2({},defaultOptions),defaultOptionsMap={})};Toast.allowMultiple=(B=!0)=>{allowMultiple=B};Toast.install=B=>{B.use(withInstall(VanToast)),B.config.globalProperties.$toast=Toast};function callInterceptor(B){var{interceptor:R,args:F,done:D,canceled:G}=B;if(R){var U=R.apply(null,F||[]);isPromise(U)?U.then(W=>{W?D():G&&G()}).catch(noop$3):U?D():G&&G()}else D()}var[name$n,bem$n,t$4]=createNamespace("dialog"),popupKeys=[...popupSharedPropKeys,"transition","closeOnPopstate"],VanDialog=defineComponent({name:name$n,props:extend$2({},popupSharedProps,{title:String,theme:String,width:[Number,String],message:[String,Function],callback:Function,allowHtml:Boolean,className:unknownProp,beforeClose:Function,messageAlign:String,closeOnPopstate:truthProp,showCancelButton:Boolean,cancelButtonText:String,cancelButtonColor:String,confirmButtonText:String,confirmButtonColor:String,showConfirmButton:truthProp,closeOnClickOverlay:Boolean,transition:{type:String,default:"van-dialog-bounce"}}),emits:["confirm","cancel","update:show"],setup(B,{emit:R,slots:F}){var D=reactive({confirm:!1,cancel:!1}),G=se=>R("update:show",se),U=se=>{G(!1),B.callback&&B.callback(se)},W=se=>()=>{!B.show||(R(se),B.beforeClose?(D[se]=!0,callInterceptor({interceptor:B.beforeClose,args:[se],done(){U(se),D[se]=!1},canceled(){D[se]=!1}})):U(se))},q=W("cancel"),Y=W("confirm"),Q=()=>{var se=F.title?F.title():B.title;if(se)return createVNode("div",{class:bem$n("header",{isolated:!B.message&&!F.default})},[se])},Z=se=>{var{message:re,allowHtml:ae,messageAlign:le}=B,ce=bem$n("message",{"has-title":se,[le]:le}),he=isFunction$1(re)?re():re;return ae&&typeof he=="string"?createVNode("div",{class:ce,innerHTML:he},null):createVNode("div",{class:ce},[he])},K=()=>{if(F.default)return createVNode("div",{class:bem$n("content")},[F.default()]);var{title:se,message:re,allowHtml:ae}=B;if(re){var le=!!(se||F.title);return createVNode("div",{key:ae?1:0,class:bem$n("content",{isolated:!le})},[Z(le)])}},J=()=>createVNode("div",{class:[BORDER_TOP,bem$n("footer")]},[B.showCancelButton&&createVNode(Button,{size:"large",text:B.cancelButtonText||t$4("cancel"),class:bem$n("cancel"),style:{color:B.cancelButtonColor},loading:D.cancel,onClick:q},null),B.showConfirmButton&&createVNode(Button,{size:"large",text:B.confirmButtonText||t$4("confirm"),class:[bem$n("confirm"),{[BORDER_LEFT]:B.showCancelButton}],style:{color:B.confirmButtonColor},loading:D.confirm,onClick:Y},null)]),ie=()=>createVNode(ActionBar,{class:bem$n("footer")},{default:()=>[B.showCancelButton&&createVNode(ActionBarButton,{type:"warning",text:B.cancelButtonText||t$4("cancel"),class:bem$n("cancel"),color:B.cancelButtonColor,loading:D.cancel,onClick:q},null),B.showConfirmButton&&createVNode(ActionBarButton,{type:"danger",text:B.confirmButtonText||t$4("confirm"),class:bem$n("confirm"),color:B.confirmButtonColor,loading:D.confirm,onClick:Y},null)]}),ne=()=>F.footer?F.footer():B.theme==="round-button"?ie():J();return()=>{var{width:se,title:re,theme:ae,message:le,className:ce}=B;return createVNode(Popup,mergeProps({role:"dialog",class:[bem$n([ae]),ce],style:{width:addUnit(se)},"aria-labelledby":re||le},pick(B,popupKeys),{"onUpdate:show":G}),{default:()=>[Q(),K(),ne()]})}}}),instance$1;function initInstance(){var B={setup(){var{state:R,toggle:F}=usePopupState();return()=>createVNode(VanDialog,mergeProps(R,{"onUpdate:show":F}),null)}};({instance:instance$1}=mountComponent(B))}function Dialog(B){return inBrowser$1?new Promise((R,F)=>{instance$1||initInstance(),instance$1.open(extend$2({},Dialog.currentOptions,B,{callback:D=>{(D==="confirm"?R:F)(D)}}))}):Promise.resolve()}Dialog.defaultOptions={title:"",width:"",theme:null,message:"",overlay:!0,callback:null,teleport:"body",className:"",allowHtml:!1,lockScroll:!0,transition:"van-dialog-bounce",beforeClose:null,overlayClass:"",overlayStyle:void 0,messageAlign:"",cancelButtonText:"",cancelButtonColor:null,confirmButtonText:"",confirmButtonColor:null,showConfirmButton:!0,showCancelButton:!1,closeOnPopstate:!0,closeOnClickOverlay:!1};Dialog.currentOptions=extend$2({},Dialog.defaultOptions);Dialog.alert=Dialog;Dialog.confirm=B=>Dialog(extend$2({showCancelButton:!0},B));Dialog.close=()=>{instance$1&&instance$1.toggle(!1)};Dialog.setDefaultOptions=B=>{extend$2(Dialog.currentOptions,B)};Dialog.resetDefaultOptions=()=>{Dialog.currentOptions=extend$2({},Dialog.defaultOptions)};Dialog.install=B=>{B.use(withInstall(VanDialog)),B.config.globalProperties.$dialog=Dialog};Dialog.Component=withInstall(VanDialog);var[name$m,bem$m]=createNamespace("switch"),_Switch=defineComponent({name:name$m,props:{size:[Number,String],loading:Boolean,disabled:Boolean,modelValue:unknownProp,activeColor:String,inactiveColor:String,activeValue:{type:unknownProp,default:!0},inactiveValue:{type:unknownProp,default:!1}},emits:["change","update:modelValue"],setup(B,{emit:R}){var F=()=>B.modelValue===B.activeValue,D=()=>{if(!B.disabled&&!B.loading){var U=F()?B.inactiveValue:B.activeValue;R("update:modelValue",U),R("change",U)}},G=()=>{if(B.loading){var U=F()?B.activeColor:B.inactiveColor;return createVNode(Loading,{class:bem$m("loading"),color:U},null)}};return useLinkField(()=>B.modelValue),()=>{var{size:U,loading:W,disabled:q,activeColor:Y,inactiveColor:Q}=B,Z=F(),K={fontSize:addUnit(U),backgroundColor:Z?Y:Q};return createVNode("div",{role:"switch",class:bem$m({on:Z,loading:W,disabled:q}),style:K,"aria-checked":Z,onClick:D},[createVNode("div",{class:bem$m("node")},[G()])])}}}),Switch=withInstall(_Switch),[name$l,bem$l]=createNamespace("radio-group"),RADIO_KEY=Symbol(name$l),props$4={disabled:Boolean,iconSize:[Number,String],direction:String,modelValue:unknownProp,checkedColor:String},_RadioGroup=defineComponent({name:name$l,props:props$4,emits:["change","update:modelValue"],setup(B,{emit:R,slots:F}){var{linkChildren:D}=useChildren(RADIO_KEY),G=U=>R("update:modelValue",U);return watch(()=>B.modelValue,U=>R("change",U)),D({props:B,updateValue:G}),useLinkField(()=>B.modelValue),()=>createVNode("div",{class:bem$l([B.direction]),role:"radiogroup"},[F.default==null?void 0:F.default()])}}),RadioGroup=withInstall(_RadioGroup),[name$k,bem$k]=createNamespace("tag"),_Tag=defineComponent({name:name$k,props:{size:String,mark:Boolean,show:truthProp,color:String,plain:Boolean,round:Boolean,textColor:String,closeable:Boolean,type:{type:String,default:"default"}},emits:["close"],setup(B,{slots:R,emit:F}){var D=W=>{W.stopPropagation(),F("close",W)},G=()=>B.plain?{color:B.textColor||B.color,borderColor:B.color}:{color:B.textColor,background:B.color},U=()=>{var{type:W,mark:q,plain:Y,round:Q,size:Z,closeable:K}=B,J={mark:q,plain:Y,round:Q};Z&&(J[Z]=Z);var ie=K&&createVNode(Icon,{name:"cross",class:bem$k("close"),onClick:D},null);return createVNode("span",{style:G(),class:bem$k([J,W])},[R.default==null?void 0:R.default(),ie])};return()=>createVNode(Transition,{name:B.closeable?"van-fade":void 0},{default:()=>[B.show?U():null]})}}),Tag=withInstall(_Tag),checkerProps={name:unknownProp,disabled:Boolean,iconSize:[Number,String],modelValue:unknownProp,checkedColor:String,labelPosition:String,labelDisabled:Boolean,shape:{type:String,default:"round"}},Checker=defineComponent({props:extend$2({},checkerProps,{role:String,parent:Object,checked:Boolean,bindGroup:truthProp,bem:{type:Function,required:!0}}),emits:["click","toggle"],setup(B,{emit:R,slots:F}){var D=ref(),G=K=>{if(B.parent&&B.bindGroup)return B.parent.props[K]},U=computed(()=>G("disabled")||B.disabled),W=computed(()=>G("direction")),q=computed(()=>{var K=B.checkedColor||G("checkedColor");if(K&&B.checked&&!U.value)return{borderColor:K,backgroundColor:K}}),Y=K=>{var{target:J}=K,ie=D.value,ne=ie===J||ie.contains(J);!U.value&&(ne||!B.labelDisabled)&&R("toggle"),R("click",K)},Q=()=>{var{bem:K,shape:J,checked:ie}=B,ne=B.iconSize||G("iconSize");return createVNode("div",{ref:D,class:K("icon",[J,{disabled:U.value,checked:ie}]),style:{fontSize:addUnit(ne)}},[F.icon?F.icon({checked:ie,disabled:U.value}):createVNode(Icon,{name:"success",style:q.value},null)])},Z=()=>{if(F.default)return createVNode("span",{class:B.bem("label",[B.labelPosition,{disabled:U.value}])},[F.default()])};return()=>{var K=[Q()];return B.labelPosition==="left"?K.unshift(Z()):K.push(Z()),createVNode("div",{role:B.role,class:B.bem([{disabled:U.value,"label-disabled":B.labelDisabled},W.value]),tabindex:U.value?-1:0,"aria-checked":B.checked,onClick:Y},[K])}}}),[name$j,bem$j]=createNamespace("radio"),_Radio=defineComponent({name:name$j,props:checkerProps,emits:["update:modelValue"],setup(B,{emit:R,slots:F}){var{parent:D}=useParent(RADIO_KEY),G=()=>{var W=D?D.props.modelValue:B.modelValue;return W===B.name},U=()=>{D?D.updateValue(B.name):R("update:modelValue",B.name)};return()=>createVNode(Checker,mergeProps({bem:bem$j,role:"radio",parent:D,checked:G(),onToggle:U},B),pick(F,["default","icon"]))}}),Radio=withInstall(_Radio);function useRefs(){var B=ref([]);onBeforeUpdate(()=>{B.value=[]});var R=F=>D=>{B.value[F]=D};return[B,R]}var rafId;function scrollLeftTo(B,R,F){cancelRaf(rafId);var D=0,G=B.scrollLeft,U=F===0?1:Math.round(F*1e3/16);function W(){B.scrollLeft+=(R-G)/U,++DR||!U&&GR?raf$2(Y):D&&raf$2(D)}Y()}function useVisibilityChange(B,R){if(!(!inBrowser$1||!window.IntersectionObserver)){var F=new IntersectionObserver(U=>{R(U[0].intersectionRatio>0)},{root:document.body}),D=()=>{B.value&&F.observe(B.value)},G=()=>{B.value&&F.unobserve(B.value)};onDeactivated(G),onBeforeUnmount(G),onMountedOrActivated(D)}}var[name$i,bem$i]=createNamespace("sticky"),_Sticky=defineComponent({name:name$i,props:{zIndex:[Number,String],container:Object,offsetTop:{type:[Number,String],default:0},offsetBottom:{type:[Number,String],default:0},position:{type:String,default:"top"}},emits:["scroll","change"],setup(B,{emit:R,slots:F}){var D=ref(),G=useScrollParent(D),U=reactive({fixed:!1,width:0,height:0,transform:0}),W=computed(()=>unitToPx(B.position==="top"?B.offsetTop:B.offsetBottom)),q=computed(()=>{var{fixed:K,height:J,width:ie}=U;if(K)return{width:ie+"px",height:J+"px"}}),Y=computed(()=>{if(!!U.fixed){var K=extend$2(getZIndexStyle(B.zIndex),{width:U.width+"px",height:U.height+"px",[B.position]:W.value+"px"});return U.transform&&(K.transform="translate3d(0, "+U.transform+"px, 0)"),K}}),Q=K=>R("scroll",{scrollTop:K,isFixed:U.fixed}),Z=()=>{if(!(!D.value||isHidden(D))){var{container:K,position:J}=B,ie=useRect(D),ne=getScrollTop(window);if(U.width=ie.width,U.height=ie.height,J==="top")if(K){var se=useRect(K),re=se.bottom-W.value-U.height;U.fixed=W.value>ie.top&&se.bottom>0,U.transform=re<0?re:0}else U.fixed=W.value>ie.top;else{var{clientHeight:ae}=document.documentElement;if(K){var le=useRect(K),ce=ae-le.top-W.value-U.height;U.fixed=ae-W.valuele.top,U.transform=ce<0?-ce:0}else U.fixed=ae-W.valueU.fixed,K=>R("change",K)),useEventListener("scroll",Z,{target:G}),useVisibilityChange(D,Z),()=>createVNode("div",{ref:D,style:q.value},[createVNode("div",{class:bem$i({fixed:U.fixed}),style:Y.value},[F.default==null?void 0:F.default()])])}}),Sticky=withInstall(_Sticky),[name$h,bem$h]=createNamespace("tab"),TabsTitle=defineComponent({name:name$h,props:{dot:Boolean,type:String,color:String,title:String,badge:[Number,String],isActive:Boolean,disabled:Boolean,scrollable:Boolean,activeColor:String,renderTitle:Function,inactiveColor:String},setup(B){var R=computed(()=>{var D={},{type:G,color:U,disabled:W,isActive:q,activeColor:Y,inactiveColor:Q}=B,Z=G==="card";U&&Z&&(D.borderColor=U,W||(q?D.backgroundColor=U:D.color=U));var K=q?Y:Q;return K&&(D.color=K),D}),F=()=>{var D=createVNode("span",{class:bem$h("text",{ellipsis:!B.scrollable})},[B.renderTitle?B.renderTitle():B.title]);return B.dot||isDef$1(B.badge)&&B.badge!==""?createVNode(Badge,{dot:B.dot,content:B.badge},{default:()=>[D]}):D};return()=>createVNode("div",{role:"tab",class:[bem$h({active:B.isActive,disabled:B.disabled})],style:R.value,"aria-selected":B.isActive},[F()])}}),[name$g,bem$g]=createNamespace("swipe"),SWIPE_KEY=Symbol(name$g),props$3={loop:truthProp,width:[Number,String],height:[Number,String],vertical:Boolean,touchable:truthProp,lazyRender:Boolean,indicatorColor:String,showIndicators:truthProp,stopPropagation:truthProp,autoplay:{type:[Number,String],default:0},duration:{type:[Number,String],default:500},initialSwipe:{type:[Number,String],default:0}},_Swipe=defineComponent({name:name$g,props:props$3,emits:["change"],setup(B,{emit:R,slots:F}){var D=ref(),G=reactive({rect:null,width:0,height:0,offset:0,active:0,swiping:!1}),U=useTouch(),W=useWindowSize(),{children:q,linkChildren:Y}=useChildren(SWIPE_KEY),Q=computed(()=>q.length),Z=computed(()=>G[B.vertical?"height":"width"]),K=computed(()=>B.vertical?U.deltaY.value:U.deltaX.value),J=computed(()=>{if(G.rect){var ke=B.vertical?G.rect.height:G.rect.width;return ke-Z.value*Q.value}return 0}),ie=computed(()=>Math.ceil(Math.abs(J.value)/Z.value)),ne=computed(()=>Q.value*Z.value),se=computed(()=>(G.active+Q.value)%Q.value),re=computed(()=>{var ke=B.vertical?"vertical":"horizontal";return U.direction.value===ke}),ae=computed(()=>{var ke={transitionDuration:(G.swiping?0:B.duration)+"ms",transform:"translate"+(B.vertical?"Y":"X")+"("+G.offset+"px)"};if(Z.value){var Ne=B.vertical?"height":"width",Ie=B.vertical?"width":"height";ke[Ne]=ne.value+"px",ke[Ie]=B[Ie]?B[Ie]+"px":""}return ke}),le=ke=>{var{active:Ne}=G;return ke?B.loop?clamp(Ne+ke,-1,Q.value):clamp(Ne+ke,0,ie.value):Ne},ce=(ke,Ne=0)=>{var Ie=ke*Z.value;B.loop||(Ie=Math.min(Ie,-J.value));var Ge=Ne-Ie;return B.loop||(Ge=clamp(Ge,J.value,0)),Ge},he=({pace:ke=0,offset:Ne=0,emitChange:Ie})=>{if(!(Q.value<=1)){var{active:Ge}=G,ze=le(ke),Ve=ce(ze,Ne);if(B.loop){if(q[0]&&Ve!==J.value){var Ye=Ve0;q[Q.value-1].setOffset(et?-ne.value:0)}}G.active=ze,G.offset=Ve,Ie&&ze!==Ge&&R("change",se.value)}},de=()=>{G.swiping=!0,G.active<=-1?he({pace:Q.value}):G.active>=Q.value&&he({pace:-Q.value})},me=()=>{de(),U.reset(),doubleRaf(()=>{G.swiping=!1,he({pace:-1,emitChange:!0})})},fe=()=>{de(),U.reset(),doubleRaf(()=>{G.swiping=!1,he({pace:1,emitChange:!0})})},ge,Se=()=>clearTimeout(ge),Ee=()=>{Se(),B.autoplay>0&&Q.value>1&&(ge=setTimeout(()=>{fe(),Ee()},+B.autoplay))},ve=(ke=+B.initialSwipe)=>{if(!!D.value){if(!isHidden(D)){var Ne,Ie,Ge={width:D.value.offsetWidth,height:D.value.offsetHeight};G.rect=Ge,G.width=+((Ne=B.width)!=null?Ne:Ge.width),G.height=+((Ie=B.height)!=null?Ie:Ge.height)}Q.value&&(ke=Math.min(Q.value-1,ke)),G.active=ke,G.swiping=!0,G.offset=ce(ke),q.forEach(ze=>{ze.setOffset(0)})}},xe=()=>ve(G.active),Pe,ye=ke=>{!B.touchable||(U.start(ke),Pe=Date.now(),Se(),de())},Te=ke=>{B.touchable&&G.swiping&&(U.move(ke),re.value&&(preventDefault(ke,B.stopPropagation),he({offset:K.value})))},Le=()=>{if(!(!B.touchable||!G.swiping)){var ke=Date.now()-Pe,Ne=K.value/ke,Ie=Math.abs(Ne)>.25||Math.abs(K.value)>Z.value/2;if(Ie&&re.value){var Ge=B.vertical?U.offsetY.value:U.offsetX.value,ze=0;B.loop?ze=Ge>0?K.value>0?-1:1:0:ze=-Math[K.value>0?"ceil":"floor"](K.value/Z.value),he({pace:ze,emitChange:!0})}else K.value&&he({pace:0});G.swiping=!1,Ee()}},we=(ke,Ne={})=>{de(),U.reset(),doubleRaf(()=>{var Ie;B.loop&&ke===Q.value?Ie=G.active===0?0:ke:Ie=ke%Q.value,Ne.immediate?doubleRaf(()=>{G.swiping=!1}):G.swiping=!1,he({pace:Ie-G.active,emitChange:!0})})},Ae=(ke,Ne)=>{var Ie=Ne===se.value,Ge=Ie?{backgroundColor:B.indicatorColor}:void 0;return createVNode("i",{style:Ge,class:bem$g("indicator",{active:Ie})},null)},Me=()=>{if(F.indicator)return F.indicator({active:se.value});if(B.showIndicators&&Q.value>1)return createVNode("div",{class:bem$g("indicators",{vertical:B.vertical})},[Array(Q.value).fill("").map(Ae)])};return useExpose({prev:me,next:fe,state:G,resize:xe,swipeTo:we}),Y({size:Z,props:B,count:Q,activeIndicator:se}),watch(()=>B.initialSwipe,ke=>ve(+ke)),watch(Q,()=>ve(G.active)),watch([Q,()=>B.autoplay],Ee),watch([W.width,W.height],xe),watch(usePageVisibility(),ke=>{ke==="visible"?Ee():Se()}),onMounted(ve),onActivated(()=>ve(G.active)),onPopupReopen(()=>ve(G.active)),onDeactivated(Se),onBeforeUnmount(Se),()=>createVNode("div",{ref:D,class:bem$g()},[createVNode("div",{style:ae.value,class:bem$g("track",{vertical:B.vertical}),onTouchstart:ye,onTouchmove:Te,onTouchend:Le,onTouchcancel:Le},[F.default==null?void 0:F.default()]),Me()])}}),Swipe=withInstall(_Swipe),[name$f,bem$f]=createNamespace("tabs"),TabsContent=defineComponent({name:name$f,props:{inited:Boolean,animated:Boolean,swipeable:Boolean,lazyRender:Boolean,count:{type:Number,required:!0},duration:{type:[Number,String],required:!0},currentIndex:{type:Number,required:!0}},emits:["change"],setup(B,{emit:R,slots:F}){var D=ref(),G=q=>R("change",q),U=()=>{var q=F.default==null?void 0:F.default();return B.animated||B.swipeable?createVNode(Swipe,{ref:D,loop:!1,class:bem$f("track"),duration:+B.duration*1e3,touchable:B.swipeable,lazyRender:B.lazyRender,showIndicators:!1,onChange:G},{default:()=>[q]}):q},W=q=>{var Y=D.value;Y&&Y.state.active!==q&&Y.swipeTo(q,{immediate:!B.inited})};return watch(()=>B.currentIndex,W),onMounted(()=>{W(B.currentIndex)}),()=>createVNode("div",{class:bem$f("content",{animated:B.animated||B.swipeable})},[U()])}}),[name$e,bem$e]=createNamespace("tabs"),TABS_KEY=Symbol(name$e),props$2={color:String,border:Boolean,sticky:Boolean,animated:Boolean,ellipsis:truthProp,swipeable:Boolean,scrollspy:Boolean,background:String,lazyRender:truthProp,lineWidth:[Number,String],lineHeight:[Number,String],beforeChange:Function,titleActiveColor:String,titleInactiveColor:String,type:{type:String,default:"line"},active:{type:[Number,String],default:0},duration:{type:[Number,String],default:.3},offsetTop:{type:[Number,String],default:0},swipeThreshold:{type:[Number,String],default:5}},_Tabs=defineComponent({name:name$e,props:props$2,emits:["click","change","scroll","disabled","rendered","update:active"],setup(B,{emit:R,slots:F}){var D,G,U,W=ref(),q=ref(),Y=ref(),Q=useWindowSize(),Z=useScrollParent(W),[K,J]=useRefs(),{children:ie,linkChildren:ne}=useChildren(TABS_KEY),se=reactive({inited:!1,position:"",lineStyle:{},currentIndex:-1}),re=computed(()=>ie.length>B.swipeThreshold||!B.ellipsis),ae=computed(()=>({borderColor:B.color,background:B.background})),le=(Ne,Ie)=>{var Ge;return(Ge=Ne.name)!=null?Ge:Ie},ce=computed(()=>{var Ne=ie[se.currentIndex];if(Ne)return le(Ne,se.currentIndex)}),he=computed(()=>unitToPx(B.offsetTop)),de=computed(()=>B.sticky?he.value+D:0),me=Ne=>{var Ie=q.value,Ge=K.value;if(!(!re.value||!Ie||!Ge||!Ge[se.currentIndex])){var ze=Ge[se.currentIndex].$el,Ve=ze.offsetLeft-(Ie.offsetWidth-ze.offsetWidth)/2;scrollLeftTo(Ie,Ve,Ne?0:+B.duration)}},fe=()=>{var Ne=se.inited;nextTick(()=>{var Ie=K.value;if(!(!Ie||!Ie[se.currentIndex]||B.type!=="line"||isHidden(W.value))){var Ge=Ie[se.currentIndex].$el,{lineWidth:ze,lineHeight:Ve}=B,Ye=Ge.offsetLeft+Ge.offsetWidth/2,et={width:addUnit(ze),backgroundColor:B.color,transform:"translateX("+Ye+"px) translateX(-50%)"};if(Ne&&(et.transitionDuration=B.duration+"s"),isDef$1(Ve)){var Je=addUnit(Ve);et.height=Je,et.borderRadius=Je}se.lineStyle=et}})},ge=Ne=>{for(var Ie=Ne=0&&Ne{var Ie=ge(Ne);if(!!isDef$1(Ie)){var Ge=ie[Ie],ze=le(Ge,Ie),Ve=se.currentIndex!==null;se.currentIndex=Ie,ze!==B.active&&(R("update:active",ze),Ve&&R("change",ze,Ge.title))}},Ee=Ne=>{var Ie=ie.find((ze,Ve)=>le(ze,Ve)===Ne),Ge=Ie?ie.indexOf(Ie):0;Se(Ge)},ve=(Ne=!1)=>{if(B.scrollspy){var Ie=ie[se.currentIndex].$el;if(Ie&&Z.value){var Ge=getElementTop(Ie,Z.value)-de.value;G=!0,scrollTopTo(Z.value,Ge,Ne?0:+B.duration,()=>{G=!1})}}},xe=(Ne,Ie)=>{var{title:Ge,disabled:ze}=ie[Ie],Ve=le(ie[Ie],Ie);ze?R("disabled",Ve,Ge):(callInterceptor({interceptor:B.beforeChange,args:[Ve],done:()=>{Se(Ie),ve()}}),R("click",Ve,Ge),route(Ne))},Pe=Ne=>{U=Ne.isFixed,R("scroll",Ne)},ye=Ne=>{nextTick(()=>{Ee(Ne),ve(!0)})},Te=()=>{for(var Ne=0;Nede.value)return Ne===0?0:Ne-1}return ie.length-1},Le=()=>{if(B.scrollspy&&!G){var Ne=Te();Se(Ne)}},we=()=>ie.map((Ne,Ie)=>createVNode(TabsTitle,{ref:J(Ie),dot:Ne.dot,type:B.type,badge:Ne.badge,title:Ne.title,color:B.color,style:Ne.titleStyle,class:Ne.titleClass,isActive:Ie===se.currentIndex,disabled:Ne.disabled,scrollable:re.value,renderTitle:Ne.$slots.title,activeColor:B.titleActiveColor,inactiveColor:B.titleInactiveColor,onClick:()=>{xe(Ne,Ie)}},null)),Ae=()=>{var Ne,Ie,{type:Ge,border:ze}=B;return createVNode("div",{ref:Y,class:[bem$e("wrap",{scrollable:re.value}),{[BORDER_TOP_BOTTOM]:Ge==="line"&&ze}]},[createVNode("div",{ref:q,role:"tablist",class:bem$e("nav",[Ge,{complete:re.value}]),style:ae.value},[(Ne=F["nav-left"])==null?void 0:Ne.call(F),we(),Ge==="line"&&createVNode("div",{class:bem$e("line"),style:se.lineStyle},null),(Ie=F["nav-right"])==null?void 0:Ie.call(F)])])};watch([()=>B.color,Q.width],fe),watch(()=>B.active,Ne=>{Ne!==ce.value&&Ee(Ne)}),watch(()=>ie.length,()=>{se.inited&&(Ee(B.active),fe(),nextTick(()=>{me(!0)}))}),watch(()=>se.currentIndex,()=>{me(),fe(),U&&!B.scrollspy&&setRootScrollTop(Math.ceil(getElementTop(W.value)-he.value))});var Me=()=>{Ee(B.active),nextTick(()=>{se.inited=!0,D=getVisibleHeight(Y.value),me(!0)})},ke=(Ne,Ie)=>R("rendered",Ne,Ie);return useExpose({resize:fe,scrollTo:ye}),onActivated(fe),onPopupReopen(fe),onMountedOrActivated(Me),useEventListener("scroll",Le,{target:Z}),ne({props:B,setLine:fe,onRendered:ke,currentName:ce,scrollIntoView:me}),()=>createVNode("div",{ref:W,class:bem$e([B.type])},[B.sticky?createVNode(Sticky,{container:W.value,offsetTop:he.value,onScroll:Pe},{default:()=>[Ae()]}):Ae(),createVNode(TabsContent,{count:ie.length,inited:se.inited,animated:B.animated,duration:B.duration,swipeable:B.swipeable,lazyRender:B.lazyRender,currentIndex:se.currentIndex,onChange:Se},{default:()=>[F.default==null?void 0:F.default()]})])}}),TAB_STATUS_KEY=Symbol();function useTabStatus(){return inject(TAB_STATUS_KEY,null)}var[name$d,bem$d]=createNamespace("swipe-item"),_SwipeItem=defineComponent({name:name$d,setup(B,{slots:R}){var F,D=reactive({offset:0,inited:!1,mounted:!1}),{parent:G,index:U}=useParent(SWIPE_KEY);if(!!G){var W=computed(()=>{var Q={},{vertical:Z}=G.props;return G.size.value&&(Q[Z?"height":"width"]=G.size.value+"px"),D.offset&&(Q.transform="translate"+(Z?"Y":"X")+"("+D.offset+"px)"),Q}),q=computed(()=>{var{loop:Q,lazyRender:Z}=G.props;if(!Z||F)return!0;if(!D.mounted)return!1;var K=G.activeIndicator.value,J=G.count.value-1,ie=K===0&&Q?J:K-1,ne=K===J&&Q?0:K+1;return F=U.value===K||U.value===ie||U.value===ne,F}),Y=Q=>{D.offset=Q};return onMounted(()=>{nextTick(()=>{D.mounted=!0})}),useExpose({setOffset:Y}),()=>createVNode("div",{class:bem$d(),style:W.value},[q.value?R.default==null?void 0:R.default():null])}}}),SwipeItem=withInstall(_SwipeItem),[name$c,bem$c]=createNamespace("tab"),_Tab=defineComponent({name:name$c,props:extend$2({},routeProps,{dot:Boolean,name:[Number,String],badge:[Number,String],title:String,disabled:Boolean,titleClass:unknownProp,titleStyle:[String,Object]}),setup(B,{slots:R}){var F=ref(!1),{parent:D,index:G}=useParent(TABS_KEY);if(!!D){var U=()=>{var Y;return(Y=B.name)!=null?Y:G.value},W=()=>{F.value=!0,D.props.lazyRender&&nextTick(()=>{D.onRendered(U(),B.title)})},q=computed(()=>{var Y=U()===D.currentName.value;return Y&&!F.value&&W(),Y});return watch(()=>B.title,()=>{D.setLine(),D.scrollIntoView()}),provide(TAB_STATUS_KEY,q),()=>{var{animated:Y,swipeable:Q,scrollspy:Z,lazyRender:K}=D.props;if(!(!R.default&&!Y)){var J=Z||q.value;if(Y||Q)return createVNode(SwipeItem,{role:"tabpanel","aria-hidden":!q.value,class:bem$c("pane-wrapper",{inactive:!q.value})},{default:()=>[createVNode("div",{class:bem$c("pane")},[R.default==null?void 0:R.default()])]});var ie=F.value||Z||!K,ne=ie?R.default==null?void 0:R.default():null;return withDirectives(createVNode("div",{role:"tabpanel",class:bem$c("pane")},[ne]),[[vShow,J]])}}}}}),Tab=withInstall(_Tab),Tabs=withInstall(_Tabs),[name$b,bem$b]=createNamespace("cell-group"),_CellGroup=defineComponent({name:name$b,inheritAttrs:!1,props:{title:String,inset:Boolean,border:truthProp},setup(B,{slots:R,attrs:F}){var D=()=>createVNode("div",mergeProps({class:[bem$b({inset:B.inset}),{[BORDER_TOP_BOTTOM]:B.border&&!B.inset}]},F),[R.default==null?void 0:R.default()]),G=()=>createVNode("div",{class:bem$b("title",{inset:B.inset})},[R.title?R.title():B.title]);return()=>B.title||R.title?createVNode(Fragment,null,[G(),D()]):D()}}),CellGroup=withInstall(_CellGroup),[name$a,bem$a]=createNamespace("row"),ROW_KEY=Symbol(name$a),_Row=defineComponent({name:name$a,props:{wrap:truthProp,align:String,justify:String,tag:{type:String,default:"div"},gutter:{type:[Number,String],default:0}},setup(B,{slots:R}){var{children:F,linkChildren:D}=useChildren(ROW_KEY),G=computed(()=>{var W=[[]],q=0;return F.forEach((Y,Q)=>{q+=Number(Y.span),q>24?(W.push([Q]),q-=24):W[W.length-1].push(Q)}),W}),U=computed(()=>{var W=Number(B.gutter),q=[];return W&&G.value.forEach(Y=>{var Q=W*(Y.length-1)/Y.length;Y.forEach((Z,K)=>{if(K===0)q.push({right:Q});else{var J=W-q[Z-1].right,ie=Q-J;q.push({left:J,right:ie})}})}),q});return D({spaces:U}),()=>{var{tag:W,wrap:q,align:Y,justify:Q}=B;return createVNode(W,{class:bem$a({["align-"+Y]:Y,["justify-"+Q]:Q,nowrap:!q})},{default:()=>[R.default==null?void 0:R.default()]})}}}),[name$9,bem$9]=createNamespace("col"),_Col=defineComponent({name:name$9,props:{offset:[Number,String],tag:{type:String,default:"div"},span:{type:[Number,String],default:0}},setup(B,{slots:R}){var{parent:F,index:D}=useParent(ROW_KEY),G=computed(()=>{if(!!F){var{spaces:U}=F;if(U&&U.value&&U.value[D.value]){var{left:W,right:q}=U.value[D.value];return{paddingLeft:W?W+"px":null,paddingRight:q?q+"px":null}}}});return()=>{var{tag:U,span:W,offset:q}=B;return createVNode(U,{style:G.value,class:bem$9({[W]:W,["offset-"+q]:q})},{default:()=>[R.default==null?void 0:R.default()]})}}}),Col=withInstall(_Col),[name$8,bem$8]=createNamespace("divider"),_Divider=defineComponent({name:name$8,props:{dashed:Boolean,hairline:truthProp,contentPosition:{type:String,default:"center"}},setup(B,{slots:R}){return()=>createVNode("div",{role:"separator",class:bem$8({dashed:B.dashed,hairline:B.hairline,["content-"+B.contentPosition]:!!R.default})},[R.default==null?void 0:R.default()])}}),Divider=withInstall(_Divider),prefix="van-empty-network-",renderStop=(B,R,F)=>createVNode("stop",{"stop-color":B,offset:R+"%","stop-opacity":F},null),Network=createVNode("svg",{viewBox:"0 0 160 160"},[createVNode("defs",null,[createVNode("linearGradient",{id:prefix+"1",x1:"64.022%",y1:"100%",x2:"64.022%",y2:"0%"},[renderStop("#FFF",0,.5),renderStop("#F2F3F5",100)]),createVNode("linearGradient",{id:prefix+"2",x1:"50%",y1:"0%",x2:"50%",y2:"84.459%"},[renderStop("#EBEDF0",0),renderStop("#DCDEE0",100,0)]),createVNode("linearGradient",{id:prefix+"3",x1:"100%",y1:"0%",x2:"100%",y2:"100%"},[renderStop("#EAEDF0",0),renderStop("#DCDEE0",100)]),createVNode("linearGradient",{id:prefix+"4",x1:"100%",y1:"100%",x2:"100%",y2:"0%"},[renderStop("#EAEDF0",0),renderStop("#DCDEE0",100)]),createVNode("linearGradient",{id:prefix+"5",x1:"0%",y1:"43.982%",x2:"100%",y2:"54.703%"},[renderStop("#EAEDF0",0),renderStop("#DCDEE0",100)]),createVNode("linearGradient",{id:prefix+"6",x1:"94.535%",y1:"43.837%",x2:"5.465%",y2:"54.948%"},[renderStop("#EAEDF0",0),renderStop("#DCDEE0",100)]),createVNode("radialGradient",{id:prefix+"7",cx:"50%",cy:"0%",fx:"50%",fy:"0%",r:"100%",gradientTransform:"matrix(0 1 -.54835 0 .5 -.5)"},[renderStop("#EBEDF0",0),renderStop("#FFF",100,0)])]),createVNode("g",{fill:"none","fill-rule":"evenodd"},[createVNode("g",{opacity:".8"},[createVNode("path",{d:"M0 124V46h20v20h14v58H0z",fill:"url(#"+prefix+"1)",transform:"matrix(-1 0 0 1 36 7)"},null),createVNode("path",{d:"M121 8h22.231v14H152v77.37h-31V8z",fill:"url(#"+prefix+"1)",transform:"translate(2 7)"},null)]),createVNode("path",{fill:"url(#"+prefix+"7)",d:"M0 139h160v21H0z"},null),createVNode("path",{d:"M37 18a7 7 0 013 13.326v26.742c0 1.23-.997 2.227-2.227 2.227h-1.546A2.227 2.227 0 0134 58.068V31.326A7 7 0 0137 18z",fill:"url(#"+prefix+"2)","fill-rule":"nonzero",transform:"translate(43 36)"},null),createVNode("g",{opacity:".6","stroke-linecap":"round","stroke-width":"7"},[createVNode("path",{d:"M20.875 11.136a18.868 18.868 0 00-5.284 13.121c0 5.094 2.012 9.718 5.284 13.12",stroke:"url(#"+prefix+"3)",transform:"translate(43 36)"},null),createVNode("path",{d:"M9.849 0C3.756 6.225 0 14.747 0 24.146c0 9.398 3.756 17.92 9.849 24.145",stroke:"url(#"+prefix+"3)",transform:"translate(43 36)"},null),createVNode("path",{d:"M57.625 11.136a18.868 18.868 0 00-5.284 13.121c0 5.094 2.012 9.718 5.284 13.12",stroke:"url(#"+prefix+"4)",transform:"rotate(-180 76.483 42.257)"},null),createVNode("path",{d:"M73.216 0c-6.093 6.225-9.849 14.747-9.849 24.146 0 9.398 3.756 17.92 9.849 24.145",stroke:"url(#"+prefix+"4)",transform:"rotate(-180 89.791 42.146)"},null)]),createVNode("g",{transform:"translate(31 105)","fill-rule":"nonzero"},[createVNode("rect",{fill:"url(#"+prefix+"5)",width:"98",height:"34",rx:"2"},null),createVNode("rect",{fill:"#FFF",x:"9",y:"8",width:"80",height:"18",rx:"1.114"},null),createVNode("rect",{fill:"url(#"+prefix+"6)",x:"15",y:"12",width:"18",height:"6",rx:"1.114"},null)])])]),[name$7,bem$7]=createNamespace("empty"),PRESET_IMAGES=["error","search","default"],_Empty=defineComponent({name:name$7,props:{imageSize:[Number,String],description:String,image:{type:String,default:"default"}},setup(B,{slots:R}){var F=()=>{if(R.image)return R.image();var{image:U}=B;return U==="network"?Network:(PRESET_IMAGES.includes(U)&&(U="https://img.yzcdn.cn/vant/empty-image-"+U+".png"),createVNode("img",{src:U},null))},D=()=>{var U=R.description?R.description():B.description;if(U)return createVNode("p",{class:bem$7("description")},[U])},G=()=>{if(R.default)return createVNode("div",{class:bem$7("bottom")},[R.default()])};return()=>createVNode("div",{class:bem$7()},[createVNode("div",{class:bem$7("image"),style:getSizeStyle(B.imageSize)},[F()]),D(),G()])}}),Empty$1=withInstall(_Empty),[name$6,bem$6]=createNamespace("grid"),GRID_KEY=Symbol(name$6),props$1={square:Boolean,center:truthProp,border:truthProp,gutter:[Number,String],reverse:Boolean,iconSize:[Number,String],direction:String,clickable:Boolean,columnNum:{type:[Number,String],default:4}},_Grid=defineComponent({name:name$6,props:props$1,setup(B,{slots:R}){var{linkChildren:F}=useChildren(GRID_KEY);return F({props:B}),()=>createVNode("div",{style:{paddingLeft:addUnit(B.gutter)},class:[bem$6(),{[BORDER_TOP]:B.border&&!B.gutter}]},[R.default==null?void 0:R.default()])}}),Grid=withInstall(_Grid),[name$5,bem$5]=createNamespace("grid-item"),_GridItem=defineComponent({name:name$5,props:extend$2({},routeProps,{dot:Boolean,text:String,icon:String,badge:[Number,String],iconPrefix:String,iconColor:String}),setup(B,{slots:R}){var{parent:F,index:D}=useParent(GRID_KEY),G=useRoute();if(!!F){var U=computed(()=>{var{square:Z,gutter:K,columnNum:J}=F.props,ie=100/+J+"%",ne={flexBasis:ie};if(Z)ne.paddingTop=ie;else if(K){var se=addUnit(K);ne.paddingRight=se,D.value>=J&&(ne.marginTop=se)}return ne}),W=computed(()=>{var{square:Z,gutter:K}=F.props;if(Z&&K){var J=addUnit(K);return{right:J,bottom:J,height:"auto"}}}),q=()=>{if(R.icon)return createVNode(Badge,{dot:B.dot,content:B.badge},{default:()=>[R.icon()]});if(B.icon)return createVNode(Icon,{dot:B.dot,name:B.icon,size:F.props.iconSize,badge:B.badge,class:bem$5("icon"),classPrefix:B.iconPrefix,color:B.iconColor},null)},Y=()=>{if(R.text)return R.text();if(B.text)return createVNode("span",{class:bem$5("text")},[B.text])},Q=()=>R.default?R.default():[q(),Y()];return()=>{var{center:Z,border:K,square:J,gutter:ie,reverse:ne,direction:se,clickable:re}=F.props,ae=[bem$5("content",[se,{center:Z,square:J,reverse:ne,clickable:re,surround:K&&ie}]),{[BORDER]:K}];return createVNode("div",{class:[bem$5({square:J})],style:U.value},[createVNode("div",{role:re?"button":void 0,class:ae,style:W.value,tabindex:re?0:void 0,onClick:G},[Q()])])}}}}),GridItem=withInstall(_GridItem),[name$4,bem$4,t$1]=createNamespace("list"),_List=defineComponent({name:name$4,props:{error:Boolean,loading:Boolean,finished:Boolean,errorText:String,loadingText:String,finishedText:String,immediateCheck:truthProp,offset:{type:[Number,String],default:300},direction:{type:String,default:"down"}},emits:["load","update:error","update:loading"],setup(B,{emit:R,slots:F}){var D=ref(!1),G=ref(),U=ref(),W=useTabStatus(),q=useScrollParent(G),Y=()=>{nextTick(()=>{if(!(D.value||B.finished||B.error||(W==null?void 0:W.value)===!1)){var{offset:ie,direction:ne}=B,se=useRect(q);if(!(!se.height||isHidden(G))){var re=!1,ae=useRect(U);ne==="up"?re=se.top-ae.top<=ie:re=ae.bottom-se.bottom<=ie,re&&(D.value=!0,R("update:loading",!0),R("load"))}}})},Q=()=>{if(B.finished){var ie=F.finished?F.finished():B.finishedText;if(ie)return createVNode("div",{class:bem$4("finished-text")},[ie])}},Z=()=>{R("update:error",!1),Y()},K=()=>{if(B.error){var ie=F.error?F.error():B.errorText;if(ie)return createVNode("div",{class:bem$4("error-text"),onClick:Z},[ie])}},J=()=>{if(D.value&&!B.finished)return createVNode("div",{class:bem$4("loading")},[F.loading?F.loading():createVNode(Loading,{class:bem$4("loading-icon")},{default:()=>[B.loadingText||t$1("loading")]})])};return watch([()=>B.loading,()=>B.finished,()=>B.error],Y),onUpdated(()=>{D.value=B.loading}),onMounted(()=>{B.immediateCheck&&Y()}),useExpose({check:Y}),useEventListener("scroll",Y,{target:q}),()=>{var ie=F.default==null?void 0:F.default(),ne=createVNode("div",{ref:U,class:bem$4("placeholder")},null);return createVNode("div",{ref:G,role:"feed",class:bem$4(),"aria-busy":D.value},[B.direction==="down"?ie:ne,J(),Q(),K(),B.direction==="up"?ie:ne])}}}),List$1=withInstall(_List),[name$3,bem$3]=createNamespace("notice-bar"),_NoticeBar=defineComponent({name:name$3,props:{text:String,mode:String,color:String,leftIcon:String,wrapable:Boolean,background:String,scrollable:{type:Boolean,default:null},delay:{type:[Number,String],default:1},speed:{type:[Number,String],default:60}},emits:["close","replay"],setup(B,{emit:R,slots:F}){var D=0,G=0,U,W=ref(),q=ref(),Y=reactive({show:!0,offset:0,duration:0}),Q=()=>{if(F["left-icon"])return F["left-icon"]();if(B.leftIcon)return createVNode(Icon,{class:bem$3("left-icon"),name:B.leftIcon},null)},Z=()=>{if(B.mode==="closeable")return"cross";if(B.mode==="link")return"arrow"},K=ae=>{B.mode==="closeable"&&(Y.show=!1,R("close",ae))},J=()=>{if(F["right-icon"])return F["right-icon"]();var ae=Z();if(ae)return createVNode(Icon,{name:ae,class:bem$3("right-icon"),onClick:K},null)},ie=()=>{Y.offset=D,Y.duration=0,raf$2(()=>{doubleRaf(()=>{Y.offset=-G,Y.duration=(G+D)/+B.speed,R("replay")})})},ne=()=>{var ae=B.scrollable===!1&&!B.wrapable,le={transform:Y.offset?"translateX("+Y.offset+"px)":"",transitionDuration:Y.duration+"s"};return createVNode("div",{ref:W,role:"marquee",class:bem$3("wrap")},[createVNode("div",{ref:q,style:le,class:[bem$3("content"),{"van-ellipsis":ae}],onTransitionend:ie},[F.default?F.default():B.text])])},se=()=>{D=0,G=0,Y.offset=0,Y.duration=0},re=()=>{var{delay:ae,speed:le,scrollable:ce}=B,he=isDef$1(ae)?+ae*1e3:0;se(),clearTimeout(U),U=setTimeout(()=>{if(!(!W.value||!q.value||ce===!1)){var de=useRect(W).width,me=useRect(q).width;(ce||me>de)&&doubleRaf(()=>{D=de,G=me,Y.offset=-G,Y.duration=G/+le})}},he)};return onPopupReopen(re),onMountedOrActivated(re),useEventListener("pageshow",re),watch(()=>[B.text,B.scrollable],re),()=>{var{color:ae,wrapable:le,background:ce}=B;return withDirectives(createVNode("div",{role:"alert",class:bem$3({wrapable:le}),style:{color:ae,background:ce}},[Q(),ne(),J()]),[[vShow,Y.show]])}}}),NoticeBar=withInstall(_NoticeBar);function getBoundingClientRect(B){var R=B.getBoundingClientRect();return{width:R.width,height:R.height,top:R.top,right:R.right,bottom:R.bottom,left:R.left,x:R.left,y:R.top}}function getWindow(B){if(B==null)return window;if(B.toString()!=="[object Window]"){var R=B.ownerDocument;return R&&R.defaultView||window}return B}function getWindowScroll(B){var R=getWindow(B),F=R.pageXOffset,D=R.pageYOffset;return{scrollLeft:F,scrollTop:D}}function isElement(B){var R=getWindow(B).Element;return B instanceof R||B instanceof Element}function isHTMLElement(B){var R=getWindow(B).HTMLElement;return B instanceof R||B instanceof HTMLElement}function isShadowRoot(B){if(typeof ShadowRoot=="undefined")return!1;var R=getWindow(B).ShadowRoot;return B instanceof R||B instanceof ShadowRoot}function getHTMLElementScroll(B){return{scrollLeft:B.scrollLeft,scrollTop:B.scrollTop}}function getNodeScroll(B){return B===getWindow(B)||!isHTMLElement(B)?getWindowScroll(B):getHTMLElementScroll(B)}function getNodeName(B){return B?(B.nodeName||"").toLowerCase():null}function getDocumentElement(B){return((isElement(B)?B.ownerDocument:B.document)||window.document).documentElement}function getWindowScrollBarX(B){return getBoundingClientRect(getDocumentElement(B)).left+getWindowScroll(B).scrollLeft}function getComputedStyle(B){return getWindow(B).getComputedStyle(B)}function isScrollParent(B){var R=getComputedStyle(B),F=R.overflow,D=R.overflowX,G=R.overflowY;return/auto|scroll|overlay|hidden/.test(F+G+D)}function getCompositeRect(B,R,F){F===void 0&&(F=!1);var D=getDocumentElement(R),G=getBoundingClientRect(B),U=isHTMLElement(R),W={scrollLeft:0,scrollTop:0},q={x:0,y:0};return(U||!U&&!F)&&((getNodeName(R)!=="body"||isScrollParent(D))&&(W=getNodeScroll(R)),isHTMLElement(R)?(q=getBoundingClientRect(R),q.x+=R.clientLeft,q.y+=R.clientTop):D&&(q.x=getWindowScrollBarX(D))),{x:G.left+W.scrollLeft-q.x,y:G.top+W.scrollTop-q.y,width:G.width,height:G.height}}function getLayoutRect(B){var R=getBoundingClientRect(B),F=B.offsetWidth,D=B.offsetHeight;return Math.abs(R.width-F)<=1&&(F=R.width),Math.abs(R.height-D)<=1&&(D=R.height),{x:B.offsetLeft,y:B.offsetTop,width:F,height:D}}function getParentNode(B){return getNodeName(B)==="html"?B:B.assignedSlot||B.parentNode||(isShadowRoot(B)?B.host:null)||getDocumentElement(B)}function getScrollParent(B){return["html","body","#document"].indexOf(getNodeName(B))>=0?B.ownerDocument.body:isHTMLElement(B)&&isScrollParent(B)?B:getScrollParent(getParentNode(B))}function listScrollParents(B,R){var F;R===void 0&&(R=[]);var D=getScrollParent(B),G=D===((F=B.ownerDocument)==null?void 0:F.body),U=getWindow(D),W=G?[U].concat(U.visualViewport||[],isScrollParent(D)?D:[]):D,q=R.concat(W);return G?q:q.concat(listScrollParents(getParentNode(W)))}function isTableElement(B){return["table","td","th"].indexOf(getNodeName(B))>=0}function getTrueOffsetParent(B){return!isHTMLElement(B)||getComputedStyle(B).position==="fixed"?null:B.offsetParent}function getContainingBlock(B){var R=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,F=navigator.userAgent.indexOf("Trident")!==-1;if(F&&isHTMLElement(B)){var D=getComputedStyle(B);if(D.position==="fixed")return null}for(var G=getParentNode(B);isHTMLElement(G)&&["html","body"].indexOf(getNodeName(G))<0;){var U=getComputedStyle(G);if(U.transform!=="none"||U.perspective!=="none"||U.contain==="paint"||["transform","perspective"].indexOf(U.willChange)!==-1||R&&U.willChange==="filter"||R&&U.filter&&U.filter!=="none")return G;G=G.parentNode}return null}function getOffsetParent(B){for(var R=getWindow(B),F=getTrueOffsetParent(B);F&&isTableElement(F)&&getComputedStyle(F).position==="static";)F=getTrueOffsetParent(F);return F&&(getNodeName(F)==="html"||getNodeName(F)==="body"&&getComputedStyle(F).position==="static")?R:F||getContainingBlock(B)||R}var top$2="top",bottom$1="bottom",right="right",left="left",auto="auto",basePlacements=[top$2,bottom$1,right,left],start$3="start",end="end",placements=[].concat(basePlacements,[auto]).reduce(function(B,R){return B.concat([R,R+"-"+start$3,R+"-"+end])},[]),beforeRead="beforeRead",read="read",afterRead="afterRead",beforeMain="beforeMain",main="main",afterMain="afterMain",beforeWrite="beforeWrite",write="write",afterWrite="afterWrite",modifierPhases=[beforeRead,read,afterRead,beforeMain,main,afterMain,beforeWrite,write,afterWrite];function order(B){var R=new Map,F=new Set,D=[];B.forEach(function(U){R.set(U.name,U)});function G(U){F.add(U.name);var W=[].concat(U.requires||[],U.requiresIfExists||[]);W.forEach(function(q){if(!F.has(q)){var Y=R.get(q);Y&&G(Y)}}),D.push(U)}return B.forEach(function(U){F.has(U.name)||G(U)}),D}function orderModifiers(B){var R=order(B);return modifierPhases.reduce(function(F,D){return F.concat(R.filter(function(G){return G.phase===D}))},[])}function debounce(B){var R;return function(){return R||(R=new Promise(function(F){Promise.resolve().then(function(){R=void 0,F(B())})})),R}}function getBasePlacement(B){return B.split("-")[0]}function mergeByName(B){var R=B.reduce(function(F,D){var G=F[D.name];return F[D.name]=G?Object.assign({},G,D,{options:Object.assign({},G.options,D.options),data:Object.assign({},G.data,D.data)}):D,F},{});return Object.keys(R).map(function(F){return R[F]})}var round=Math.round;function getVariation(B){return B.split("-")[1]}function getMainAxisFromPlacement(B){return["top","bottom"].indexOf(B)>=0?"x":"y"}function computeOffsets(B){var R=B.reference,F=B.element,D=B.placement,G=D?getBasePlacement(D):null,U=D?getVariation(D):null,W=R.x+R.width/2-F.width/2,q=R.y+R.height/2-F.height/2,Y;switch(G){case top$2:Y={x:W,y:R.y-F.height};break;case bottom$1:Y={x:W,y:R.y+R.height};break;case right:Y={x:R.x+R.width,y:q};break;case left:Y={x:R.x-F.width,y:q};break;default:Y={x:R.x,y:R.y}}var Q=G?getMainAxisFromPlacement(G):null;if(Q!=null){var Z=Q==="y"?"height":"width";switch(U){case start$3:Y[Q]=Y[Q]-(R[Z]/2-F[Z]/2);break;case end:Y[Q]=Y[Q]+(R[Z]/2-F[Z]/2);break}}return Y}var DEFAULT_OPTIONS={placement:"bottom",modifiers:[],strategy:"absolute"};function areValidElements(){for(var B=arguments.length,R=new Array(B),F=0;F=0?-1:1,U=typeof F=="function"?F(Object.assign({},R,{placement:B})):F,W=U[0],q=U[1];return W=W||0,q=(q||0)*G,[left,right].indexOf(D)>=0?{x:q,y:W}:{x:W,y:q}}function offset(B){var R=B.state,F=B.options,D=B.name,G=F.offset,U=G===void 0?[0,0]:G,W=placements.reduce(function(Z,K){return Z[K]=distanceAndSkiddingToXY(K,R.rects,U),Z},{}),q=W[R.placement],Y=q.x,Q=q.y;R.modifiersData.popperOffsets!=null&&(R.modifiersData.popperOffsets.x+=Y,R.modifiersData.popperOffsets.y+=Q),R.modifiersData[D]=W}var offset$1={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:offset},[name$2,bem$2]=createNamespace("popover"),popupProps=["show","overlay","duration","teleport","overlayStyle","overlayClass","closeOnClickOverlay"],_Popover=defineComponent({name:name$2,props:{show:Boolean,overlay:Boolean,duration:[Number,String],iconPrefix:String,overlayClass:unknownProp,overlayStyle:Object,closeOnClickAction:truthProp,closeOnClickOverlay:truthProp,closeOnClickOutside:truthProp,offset:{type:Array,default:()=>[0,8]},theme:{type:String,default:"light"},trigger:{type:String,default:"click"},actions:{type:Array,default:()=>[]},placement:{type:String,default:"bottom"},teleport:{type:[String,Object],default:"body"}},emits:["select","touchstart","update:show"],setup(B,{emit:R,slots:F,attrs:D}){var G,U=ref(),W=ref(),q=()=>createPopper(U.value,W.value.popupRef.value,{placement:B.placement,modifiers:[{name:"computeStyles",options:{adaptive:!1,gpuAcceleration:!1}},extend$2({},offset$1,{options:{offset:B.offset}})]}),Y=()=>{nextTick(()=>{!B.show||(G?G.setOptions({placement:B.placement}):G=q())})},Q=se=>R("update:show",se),Z=()=>{B.trigger==="click"&&Q(!B.show)},K=se=>{se.stopPropagation(),R("touchstart",se)},J=(se,re)=>{se.disabled||(R("select",se,re),B.closeOnClickAction&&Q(!1))},ie=()=>{B.closeOnClickOutside&&(!B.overlay||B.closeOnClickOverlay)&&Q(!1)},ne=(se,re)=>{var{icon:ae,text:le,color:ce,disabled:he,className:de}=se;return createVNode("div",{role:"menuitem",class:[bem$2("action",{disabled:he,"with-icon":ae}),de],style:{color:ce},onClick:()=>J(se,re)},[ae&&createVNode(Icon,{name:ae,classPrefix:B.iconPrefix,class:bem$2("action-icon")},null),createVNode("div",{class:[bem$2("action-text"),BORDER_BOTTOM]},[le])])};return onMounted(Y),onBeforeUnmount(()=>{G&&(G.destroy(),G=null)}),watch(()=>[B.show,B.placement],Y),useClickAway(U,ie,{eventName:"touchstart"}),()=>createVNode(Fragment,null,[createVNode("span",{ref:U,class:bem$2("wrapper"),onClick:Z},[F.reference==null?void 0:F.reference()]),createVNode(Popup,mergeProps({ref:W,class:bem$2([B.theme]),position:"",transition:"van-popover-zoom",lockScroll:!1,onTouchstart:K},D,pick(B,popupProps),{"onUpdate:show":Q}),{default:()=>[createVNode("div",{class:bem$2("arrow")},null),createVNode("div",{role:"menu",class:bem$2("content")},[F.default?F.default():B.actions.map(ne)])]})])}}),Popover=withInstall(_Popover),Row=withInstall(_Row),[name$1,bem$1]=createNamespace("skeleton"),DEFAULT_ROW_WIDTH="100%",DEFAULT_LAST_ROW_WIDTH="60%",_Skeleton=defineComponent({name:name$1,props:{title:Boolean,round:Boolean,avatar:Boolean,loading:truthProp,animate:truthProp,avatarSize:[Number,String],titleWidth:[Number,String],row:{type:[Number,String],default:0},avatarShape:{type:String,default:"round"},rowWidth:{type:[Number,String,Array],default:DEFAULT_ROW_WIDTH}},setup(B,{slots:R}){var F=()=>{if(B.avatar)return createVNode("div",{class:bem$1("avatar",B.avatarShape),style:getSizeStyle(B.avatarSize)},null)},D=()=>{if(B.title)return createVNode("h3",{class:bem$1("title"),style:{width:addUnit(B.titleWidth)}},null)},G=W=>{var{rowWidth:q}=B;return q===DEFAULT_ROW_WIDTH&&W===+B.row-1?DEFAULT_LAST_ROW_WIDTH:Array.isArray(q)?q[W]:q},U=()=>Array(B.row).fill("").map((W,q)=>createVNode("div",{class:bem$1("row"),style:{width:addUnit(G(q))}},null));return()=>B.loading?createVNode("div",{class:bem$1({animate:B.animate,round:B.round})},[F(),createVNode("div",{class:bem$1("content")},[D(),U()])]):R.default==null?void 0:R.default()}}),Skeleton=withInstall(_Skeleton),[name,bem]=createNamespace("slider"),_Slider=defineComponent({name,props:{range:Boolean,disabled:Boolean,readonly:Boolean,vertical:Boolean,barHeight:[Number,String],buttonSize:[Number,String],activeColor:String,inactiveColor:String,min:{type:[Number,String],default:0},max:{type:[Number,String],default:100},step:{type:[Number,String],default:1},modelValue:{type:[Number,Array],default:0}},emits:["change","drag-end","drag-start","update:modelValue"],setup(B,{emit:R,slots:F}){var D,G,U,W=ref(),q=ref(),Y=useTouch(),Q=computed(()=>Number(B.max)-Number(B.min)),Z=computed(()=>{var ge=B.vertical?"width":"height";return{background:B.inactiveColor,[ge]:addUnit(B.barHeight)}}),K=ge=>!!B.range&&Array.isArray(ge),J=()=>{var{modelValue:ge,min:Se}=B;return K(ge)?(ge[1]-ge[0])*100/Q.value+"%":(ge-Number(Se))*100/Q.value+"%"},ie=()=>{var{modelValue:ge,min:Se}=B;return K(ge)?(ge[0]-Number(Se))*100/Q.value+"%":"0%"},ne=computed(()=>{var ge=B.vertical?"height":"width";return{[ge]:J(),left:B.vertical?void 0:ie(),top:B.vertical?ie():void 0,background:B.activeColor,transition:q.value?"none":void 0}}),se=ge=>{var Se=+B.min,Ee=+B.max,ve=+B.step;ge=clamp(ge,Se,Ee);var xe=Math.round((ge-Se)/ve)*ve;return addNumber(Se,xe)},re=(ge,Se)=>JSON.stringify(ge)===JSON.stringify(Se),ae=ge=>ge[0]>ge[1]?ge.slice(0).reverse():ge,le=(ge,Se)=>{K(ge)?ge=ae(ge).map(se):ge=se(ge),re(ge,B.modelValue)||R("update:modelValue",ge),Se&&!re(ge,G)&&R("change",ge)},ce=ge=>{if(ge.stopPropagation(),!(B.disabled||B.readonly)){var{min:Se,vertical:Ee,modelValue:ve}=B,xe=useRect(W),Pe=Ee?ge.clientY-xe.top:ge.clientX-xe.left,ye=Ee?xe.height:xe.width,Te=Number(Se)+Pe/ye*Q.value;if(K(ve)){var[Le,we]=ve,Ae=(Le+we)/2;Te<=Ae?le([Te,we],!0):le([Le,Te],!0)}else le(Te,!0)}},he=ge=>{B.disabled||B.readonly||(Y.start(ge),U=B.modelValue,K(U)?G=U.map(se):G=se(U),q.value="start")},de=ge=>{if(!(B.disabled||B.readonly)){q.value==="start"&&R("drag-start"),preventDefault(ge,!0),Y.move(ge),q.value="draging";var Se=useRect(W),Ee=B.vertical?Y.deltaY.value:Y.deltaX.value,ve=B.vertical?Se.height:Se.width,xe=Ee/ve*Q.value;K(G)?U[D]=G[D]+xe:U=G+xe,le(U)}},me=()=>{B.disabled||B.readonly||(q.value==="draging"&&(le(U,!0),R("drag-end")),q.value="")},fe=ge=>{var Se=()=>{if(typeof ge=="number"){var ve=["left","right"];return"button-wrapper-"+ve[ge]}return"button-wrapper"},Ee=typeof ge=="number"?B.modelValue[ge]:B.modelValue;return createVNode("div",{role:"slider",class:bem(Se()),tabindex:B.disabled||B.readonly?-1:0,"aria-valuemin":+B.min,"aria-valuenow":Ee,"aria-valuemax":+B.max,"aria-orientation":B.vertical?"vertical":"horizontal",onTouchstart:ve=>{typeof ge=="number"&&(D=ge),he(ve)},onTouchmove:de,onTouchend:me,onTouchcancel:me,onClick:stopPropagation},[F.button?F.button():createVNode("div",{class:bem("button"),style:getSizeStyle(B.buttonSize)},null)])};return le(B.modelValue),useLinkField(()=>B.modelValue),()=>createVNode("div",{ref:W,style:Z.value,class:bem({vertical:B.vertical,disabled:B.disabled}),onClick:ce},[createVNode("div",{class:bem("bar"),style:ne.value},[B.range?[fe(0),fe(1)]:fe()])])}}),Slider=withInstall(_Slider),lodash$1={exports:{}};/** * @license * Lodash * Copyright OpenJS Foundation and other contributors * Released under MIT license * Based on Underscore.js 1.8.3 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors */(function(B,R){(function(){var F,D="4.17.21",G=200,U="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",W="Expected a function",q="Invalid `variable` option passed into `_.template`",Y="__lodash_hash_undefined__",Q=500,Z="__lodash_placeholder__",K=1,J=2,ie=4,ne=1,se=2,re=1,ae=2,le=4,ce=8,he=16,de=32,me=64,fe=128,ge=256,Se=512,Ee=30,ve="...",xe=800,Pe=16,ye=1,Te=2,Le=3,we=1/0,Ae=9007199254740991,Me=17976931348623157e292,ke=0/0,Ne=4294967295,Ie=Ne-1,Ge=Ne>>>1,ze=[["ary",fe],["bind",re],["bindKey",ae],["curry",ce],["curryRight",he],["flip",Se],["partial",de],["partialRight",me],["rearg",ge]],Ve="[object Arguments]",Ye="[object Array]",et="[object AsyncFunction]",Je="[object Boolean]",st="[object Date]",pt="[object DOMException]",dt="[object Error]",yt="[object Function]",Fe="[object GeneratorFunction]",_e="[object Map]",je="[object Number]",Ze="[object Null]",De="[object Object]",Oe="[object Promise]",Xe="[object Proxy]",tt="[object RegExp]",nt="[object Set]",Ke="[object String]",ct="[object Symbol]",ut="[object Undefined]",ht="[object WeakMap]",vt="[object WeakSet]",xt="[object ArrayBuffer]",gt="[object DataView]",Pt="[object Float32Array]",kt="[object Float64Array]",Yt="[object Int8Array]",fi="[object Int16Array]",Jt="[object Int32Array]",ii="[object Uint8Array]",ui="[object Uint8ClampedArray]",Qt="[object Uint16Array]",Ai="[object Uint32Array]",Qi=/\b__p \+= '';/g,In=/\b(__p \+=) '' \+/g,cn=/(__e\(.*?\)|\b__t\)) \+\n'';/g,_t=/&(?:amp|lt|gt|quot|#39);/g,oi=/[&<>"']/g,$i=RegExp(_t.source),Ui=RegExp(oi.source),Nr=/<%-([\s\S]+?)%>/g,On=/<%([\s\S]+?)%>/g,Jn=/<%=([\s\S]+?)%>/g,Lr=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Vn=/^\w*$/,kr=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,rs=/[\\^$.*+?()[\]{}|]/g,mr=RegExp(rs.source),Gn=/^\s+/,$n=/\s/,er=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Nn=/\{\n\/\* \[wrapped with (.+)\] \*/,hn=/,? & /,Sn=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Aa=/[()=,{}\[\]\/\s]/,Us=/\\(\\)?/g,ys=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,xn=/\w*$/,Ln=/^[-+]0x[0-9a-f]+$/i,kn=/^0b[01]+$/i,Hs=/^\[object .+?Constructor\]$/,ei=/^0o[0-7]+$/i,Fi=/^(?:0|[1-9]\d*)$/,Ei=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Ni=/($^)/,mi=/['\n\r\u2028\u2029\\]/g,Li="\\ud800-\\udfff",fn="\\u0300-\\u036f",Rn="\\ufe20-\\ufe2f",zn="\\u20d0-\\u20ff",Rr=fn+Rn+zn,gr="\\u2700-\\u27bf",yo="a-z\\xdf-\\xf6\\xf8-\\xff",xl="\\xac\\xb1\\xd7\\xf7",tr="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Al="\\u2000-\\u206f",vo=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Ea="A-Z\\xc0-\\xd6\\xd8-\\xde",wa="\\ufe0e\\ufe0f",Ws=xl+tr+Al+vo,Pa="['\u2019]",vs="["+Li+"]",bs="["+Ws+"]",Ss="["+Rr+"]",bo="\\d+",Ta="["+gr+"]",Ca="["+yo+"]",qs="[^"+Li+Ws+bo+gr+yo+Ea+"]",xs="\\ud83c[\\udffb-\\udfff]",So="(?:"+Ss+"|"+xs+")",Xs="[^"+Li+"]",As="(?:\\ud83c[\\udde6-\\uddff]){2}",yr="[\\ud800-\\udbff][\\udc00-\\udfff]",Fr="["+Ea+"]",Ma="\\u200d",xo="(?:"+Ca+"|"+qs+")",Ao="(?:"+Fr+"|"+qs+")",_a="(?:"+Pa+"(?:d|ll|m|re|s|t|ve))?",Ia="(?:"+Pa+"(?:D|LL|M|RE|S|T|VE))?",Ys=So+"?",Eo="["+wa+"]?",wo="(?:"+Ma+"(?:"+[Xs,As,yr].join("|")+")"+Eo+Ys+")*",El="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Po="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Es=Eo+Ys+wo,wl="(?:"+[Ta,As,yr].join("|")+")"+Es,ss="(?:"+[Xs+Ss+"?",Ss,As,yr,vs].join("|")+")",vr=RegExp(Pa,"g"),Na=RegExp(Ss,"g"),js=RegExp(xs+"(?="+xs+")|"+ss+Es,"g"),Qs=RegExp([Fr+"?"+Ca+"+"+_a+"(?="+[bs,Fr,"$"].join("|")+")",Ao+"+"+Ia+"(?="+[bs,Fr+xo,"$"].join("|")+")",Fr+"?"+xo+"+"+_a,Fr+"+"+Ia,Po,El,bo,wl].join("|"),"g"),Pl=RegExp("["+Ma+Li+Rr+wa+"]"),Tl=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Cl=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],vi=-1,Vt={};Vt[Pt]=Vt[kt]=Vt[Yt]=Vt[fi]=Vt[Jt]=Vt[ii]=Vt[ui]=Vt[Qt]=Vt[Ai]=!0,Vt[Ve]=Vt[Ye]=Vt[xt]=Vt[Je]=Vt[gt]=Vt[st]=Vt[dt]=Vt[yt]=Vt[_e]=Vt[je]=Vt[De]=Vt[tt]=Vt[nt]=Vt[Ke]=Vt[ht]=!1;var bi={};bi[Ve]=bi[Ye]=bi[xt]=bi[gt]=bi[Je]=bi[st]=bi[Pt]=bi[kt]=bi[Yt]=bi[fi]=bi[Jt]=bi[_e]=bi[je]=bi[De]=bi[tt]=bi[nt]=bi[Ke]=bi[ct]=bi[ii]=bi[ui]=bi[Qt]=bi[Ai]=!0,bi[dt]=bi[yt]=bi[ht]=!1;var Ks={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},Br={"&":"&","<":"<",">":">",'"':""","'":"'"},La={"&":"&","<":"<",">":">",""":'"',"'":"'"},To={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Co=parseFloat,Un=parseInt,ka=typeof commonjsGlobal$2=="object"&&commonjsGlobal$2&&commonjsGlobal$2.Object===Object&&commonjsGlobal$2,Bi=typeof self=="object"&&self&&self.Object===Object&&self,Pi=ka||Bi||Function("return this")(),Fn=R&&!R.nodeType&&R,dn=Fn&&!0&&B&&!B.nodeType&&B,Dr=dn&&dn.exports===Fn,Hi=Dr&&ka.process,en=function(){try{var Qe=dn&&dn.require&&dn.require("util").types;return Qe||Hi&&Hi.binding&&Hi.binding("util")}catch{}}(),Ra=en&&en.isArrayBuffer,Fa=en&&en.isDate,Ba=en&&en.isMap,as=en&&en.isRegExp,Da=en&&en.isSet,tn=en&&en.isTypedArray;function pn(Qe,it,lt){switch(lt.length){case 0:return Qe.call(it);case 1:return Qe.call(it,lt[0]);case 2:return Qe.call(it,lt[0],lt[1]);case 3:return Qe.call(it,lt[0],lt[1],lt[2])}return Qe.apply(it,lt)}function He(Qe,it,lt,At){for(var It=-1,Gt=Qe==null?0:Qe.length;++It-1}function Ft(Qe,it,lt){for(var At=-1,It=Qe==null?0:Qe.length;++At-1;);return lt}function Yu(Qe,it){for(var lt=Qe.length;lt--&&wn(it,Qe[lt],0)>-1;);return lt}function dh(Qe,it){for(var lt=Qe.length,At=0;lt--;)Qe[lt]===it&&++At;return At}var ph=Mo(Ks),mh=Mo(Br);function gh(Qe){return"\\"+To[Qe]}function Js(Qe,it){return Qe==null?F:Qe[it]}function $s(Qe){return Pl.test(Qe)}function yh(Qe){return Tl.test(Qe)}function Nl(Qe){for(var it,lt=[];!(it=Qe.next()).done;)lt.push(it.value);return lt}function _o(Qe){var it=-1,lt=Array(Qe.size);return Qe.forEach(function(At,It){lt[++it]=[It,At]}),lt}function Vr(Qe,it){return function(lt){return Qe(it(lt))}}function ir(Qe,it){for(var lt=-1,At=Qe.length,It=0,Gt=[];++lt-1}function Xr(te,oe){var pe=this.__data__,be=Do(pe,te);return be<0?(++this.size,pe.push([te,oe])):pe[be][1]=oe,this}qr.prototype.clear=Gh,qr.prototype.delete=zh,qr.prototype.get=Uh,qr.prototype.has=Hh,qr.prototype.set=Xr;function Yr(te){var oe=-1,pe=te==null?0:te.length;for(this.clear();++oe=oe?te:oe)),te}function qn(te,oe,pe,be,Ce,Re){var Be,Ue=oe&K,$e=oe&J,at=oe&ie;if(pe&&(Be=Ce?pe(te,be,Ce,Re):pe(te)),Be!==F)return Be;if(!Xt(te))return te;var ot=jt(te);if(ot){if(Be=_c(te),!Ue)return Ti(te,Be)}else{var mt=an(te),St=mt==yt||mt==Fe;if(gs(te))return $o(te,Ue);if(mt==De||mt==Ve||St&&!Ce){if(Be=$e||St?{}:Ic(te),!Ue)return $e?tl(te,jr(Be,te)):hf(te,nc(Be,te))}else{if(!bi[mt])return Ce?te:{};Be=pf(te,mt,Ue)}}Re||(Re=new or);var Et=Re.get(te);if(Et)return Et;Re.set(te,Be),po(te)?te.forEach(function(Mt){Be.add(qn(Mt,oe,pe,Mt,te,Re))}):Kc(te)&&te.forEach(function(Mt,Nt){Be.set(Nt,qn(Mt,oe,pe,Nt,te,Re))});var Tt=at?$e?lo:oo:$e?Mn:ci,Ct=ot?F:Tt(te);return rt(Ct||te,function(Mt,Nt){Ct&&(Nt=Mt,Mt=te[Nt]),hs(Be,Nt,qn(Mt,oe,pe,Nt,te,Re))}),Be}function rc(te){var oe=ci(te);return function(pe){return Ol(pe,te,oe)}}function Ol(te,oe,pe){var be=pe.length;if(te==null)return!be;for(te=gi(te);be--;){var Ce=pe[be],Re=oe[Ce],Be=te[Ce];if(Be===F&&!(Ce in te)||!Re(Be))return!1}return!0}function oa(te,oe,pe){if(typeof te!="function")throw new yn(W);return Ds(function(){te.apply(F,pe)},oe)}function Xn(te,oe,pe,be){var Ce=-1,Re=Lt,Be=!0,Ue=te.length,$e=[],at=oe.length;if(!Ue)return $e;pe&&(oe=Rt(oe,gn(pe))),be?(Re=Ft,Be=!1):oe.length>=G&&(Re=Zs,Be=!1,oe=new Ls(oe));e:for(;++CeCe?0:Ce+pe),be=be===F||be>Ce?Ce:Kt(be),be<0&&(be+=Ce),be=pe>be?0:Bn(be);pe0&&pe(Ue)?oe>1?Gi(Ue,oe-1,pe,be,Ce):ni(Ce,Ue):be||(Ce[Ce.length]=Ue)}return Ce}var Go=bc(),ur=bc(!0);function Yn(te,oe){return te&&Go(te,oe,ci)}function la(te,oe){return te&&ur(te,oe,ci)}function xr(te,oe){return Bt(oe,function(pe){return Mr(te[pe])})}function fs(te,oe){oe=ds(oe,te);for(var pe=0,be=oe.length;te!=null&&peoe}function ef(te,oe){return te!=null&&yi.call(te,oe)}function tf(te,oe){return te!=null&&oe in gi(te)}function Gl(te,oe,pe){return te>=rn(oe,pe)&&te=120&&ot.length>=120)?new Ls(Be&&ot):F}ot=te[0];var mt=-1,St=Ue[0];e:for(;++mt-1;)Ue!==te&&Xa.call(Ue,$e,1),Xa.call(te,$e,1);return te}function Xo(te,oe){for(var pe=te?oe.length:0,be=pe-1;pe--;){var Ce=oe[pe];if(pe==be||Ce!==Re){var Re=Ce;Ci(Ce)?Xa.call(te,Ce,1):Qo(te,Ce)}}return te}function Ql(te,oe){return te+ra($u()*(oe-te+1))}function Kl(te,oe,pe,be){for(var Ce=-1,Re=ri(Ts((oe-te)/(pe||1)),0),Be=lt(Re);Re--;)Be[be?Re:++Ce]=te,te+=pe;return Be}function Zt(te,oe){var pe="";if(!te||oe<1||oe>Ae)return pe;do oe%2&&(pe+=te),oe=ra(oe/2),oe&&(te+=te);while(oe);return pe}function $t(te,oe){return al(hu(te,oe,un),te+"")}function of(te){return tc(xa(te))}function Za(te,oe){var pe=xa(te);return ho(pe,qi(oe,0,pe.length))}function ca(te,oe,pe,be){if(!Xt(te))return te;oe=ds(oe,te);for(var Ce=-1,Re=oe.length,Be=Re-1,Ue=te;Ue!=null&&++CeCe?0:Ce+oe),pe=pe>Ce?Ce:pe,pe<0&&(pe+=Ce),Ce=oe>pe?0:pe-oe>>>0,oe>>>=0;for(var Re=lt(Ce);++be>>1,Be=te[Re];Be!==null&&!Yi(Be)&&(pe?Be<=oe:Be=G){var at=oe?null:Ec(te);if(at)return Io(at);Be=!1,Ce=Zs,$e=new Ls}else $e=oe?[]:Ue;e:for(;++be=be?te:Qn(te,oe,pe)}var Jl=Th||function(te){return Pi.clearTimeout(te)};function $o(te,oe){if(oe)return te.slice();var pe=te.length,be=Ha?Ha(pe):new te.constructor(pe);return te.copy(be),be}function $l(te){var oe=new te.constructor(te.byteLength);return new Ua(oe).set(new Ua(te)),oe}function uf(te,oe){var pe=oe?$l(te.buffer):te.buffer;return new te.constructor(pe,te.byteOffset,te.byteLength)}function cf(te){var oe=new te.constructor(te.source,xn.exec(te));return oe.lastIndex=te.lastIndex,oe}function gc(te){return aa?gi(aa.call(te)):{}}function eu(te,oe){var pe=oe?$l(te.buffer):te.buffer;return new te.constructor(pe,te.byteOffset,te.length)}function yc(te,oe){if(te!==oe){var pe=te!==F,be=te===null,Ce=te===te,Re=Yi(te),Be=oe!==F,Ue=oe===null,$e=oe===oe,at=Yi(oe);if(!Ue&&!at&&!Re&&te>oe||Re&&Be&&$e&&!Ue&&!at||be&&Be&&$e||!pe&&$e||!Ce)return 1;if(!be&&!Re&&!at&&te=Ue)return $e;var at=pe[be];return $e*(at=="desc"?-1:1)}}return te.index-oe.index}function tu(te,oe,pe,be){for(var Ce=-1,Re=te.length,Be=pe.length,Ue=-1,$e=oe.length,at=ri(Re-Be,0),ot=lt($e+at),mt=!be;++Ue<$e;)ot[Ue]=oe[Ue];for(;++Ce1?pe[Ce-1]:F,Be=Ce>2?pe[2]:F;for(Re=te.length>3&&typeof Re=="function"?(Ce--,Re):F,Be&&Ji(pe[0],pe[1],Be)&&(Re=Ce<3?F:Re,Ce=1),oe=gi(oe);++be-1?Ce[Re?oe[Be]:Be]:F}}function io(te){return cr(function(oe){var pe=oe.length,be=pe,Ce=Ht.prototype.thru;for(te&&oe.reverse();be--;){var Re=oe[be];if(typeof Re!="function")throw new yn(W);if(Ce&&!Be&&es(Re)=="wrapper")var Be=new Ht([],!0)}for(be=Be?be:pe;++be1&&Wt.reverse(),ot&&$eUe))return!1;var at=Re.get(te),ot=Re.get(oe);if(at&&ot)return at==oe&&ot==te;var mt=-1,St=!0,Et=pe&se?new Ls:F;for(Re.set(te,oe),Re.set(oe,te);++mt1?"& ":"")+oe[be],oe=oe.join(pe>2?", ":" "),te.replace(er,`{ /* [wrapped with `+oe+`] */ `)}function is(te){return jt(te)||zt(te)||!!(na&&te&&te[na])}function Ci(te,oe){var pe=typeof te;return oe=oe==null?Ae:oe,!!oe&&(pe=="number"||pe!="symbol"&&Fi.test(te))&&te>-1&&te%1==0&&te0){if(++oe>=xe)return arguments[0]}else oe=0;return te.apply(F,arguments)}}function ho(te,oe){var pe=-1,be=te.length,Ce=be-1;for(oe=oe===F?be:oe;++pe1?te[oe-1]:F;return pe=typeof pe=="function"?(te.pop(),pe):F,Uc(te,pe)});function Wc(te){var oe=We(te);return oe.__chain__=!0,oe}function ll(te,oe){return oe(te),te}function ul(te,oe){return oe(te)}var md=cr(function(te){var oe=te.length,pe=oe?te[0]:0,be=this.__wrapped__,Ce=function(Re){return Qr(Re,te)};return oe>1||this.__actions__.length||!(be instanceof ti)||!Ci(pe)?this.thru(Ce):(be=be.slice(pe,+pe+(oe?1:0)),be.__actions__.push({func:ul,args:[Ce],thisArg:F}),new Ht(be,this.__chain__).thru(function(Re){return oe&&!Re.length&&Re.push(F),Re}))});function gd(){return Wc(this)}function yd(){return new Ht(this.value(),this.__chain__)}function vd(){this.__values__===F&&(this.__values__=_r(this.value()));var te=this.__index__>=this.__values__.length,oe=te?F:this.__values__[this.__index__++];return{done:te,value:oe}}function bd(){return this}function Sd(te){for(var oe,pe=this;pe instanceof vn;){var be=Fc(pe);be.__index__=0,be.__values__=F,oe?Ce.__wrapped__=be:oe=be;var Ce=be;pe=pe.__wrapped__}return Ce.__wrapped__=te,oe}function xd(){var te=this.__wrapped__;if(te instanceof ti){var oe=te;return this.__actions__.length&&(oe=new ti(this)),oe=oe.reverse(),oe.__actions__.push({func:ul,args:[yu],thisArg:F}),new Ht(oe,this.__chain__)}return this.thru(yu)}function Ad(){return Ko(this.__wrapped__,this.__actions__)}var Ed=Jr(function(te,oe,pe){yi.call(te,pe)?++te[pe]:lr(te,pe,1)});function wd(te,oe,pe){var be=jt(te)?wt:Oo;return pe&&Ji(te,oe,pe)&&(oe=F),be(te,Ot(oe,3))}function Pd(te,oe){var pe=jt(te)?Bt:Xi;return pe(te,Ot(oe,3))}var Td=nu(pu),Cd=nu(mu);function Md(te,oe){return Gi(hl(te,oe),1)}function _d(te,oe){return Gi(hl(te,oe),we)}function qc(te,oe,pe){return pe=pe===F?1:Kt(pe),Gi(hl(te,oe),pe)}function bu(te,oe){var pe=jt(te)?rt:Kr;return pe(te,Ot(oe,3))}function Xc(te,oe){var pe=jt(te)?bt:sc;return pe(te,Ot(oe,3))}var Id=Jr(function(te,oe,pe){yi.call(te,pe)?te[pe].push(oe):lr(te,pe,[oe])});function Nd(te,oe,pe,be){te=si(te)?te:xa(te),pe=pe&&!be?Kt(pe):0;var Ce=te.length;return pe<0&&(pe=ri(Ce+pe,0)),ln(te)?pe<=Ce&&te.indexOf(oe,pe)>-1:!!Ce&&wn(te,oe,pe)>-1}var Ld=$t(function(te,oe,pe){var be=-1,Ce=typeof oe=="function",Re=si(te)?lt(te.length):[];return Kr(te,function(Be){Re[++be]=Ce?pn(oe,Be,pe):ua(Be,oe,pe)}),Re}),cl=Jr(function(te,oe,pe){lr(te,pe,oe)});function hl(te,oe){var pe=jt(te)?Rt:ql;return pe(te,Ot(oe,3))}function kd(te,oe,pe,be){return te==null?[]:(jt(oe)||(oe=oe==null?[]:[oe]),pe=be?F:pe,jt(pe)||(pe=pe==null?[]:[pe]),hc(te,oe,pe))}var Rd=Jr(function(te,oe,pe){te[pe?0:1].push(oe)},function(){return[[],[]]});function Fd(te,oe,pe){var be=jt(te)?_i:qu,Ce=arguments.length<3;return be(te,Ot(oe,4),pe,Ce,Kr)}function Bd(te,oe,pe){var be=jt(te)?Di:qu,Ce=arguments.length<3;return be(te,Ot(oe,4),pe,Ce,sc)}function Dd(te,oe){var pe=jt(te)?Bt:Xi;return pe(te,yl(Ot(oe,3)))}function Od(te){var oe=jt(te)?tc:of;return oe(te)}function Vd(te,oe,pe){(pe?Ji(te,oe,pe):oe===F)?oe=1:oe=Kt(oe);var be=jt(te)?$h:Za;return be(te,oe)}function Gd(te){var oe=jt(te)?Dl:jn;return oe(te)}function zd(te){if(te==null)return 0;if(si(te))return ln(te)?nn(te):te.length;var oe=an(te);return oe==_e||oe==nt?te.size:Hl(te).length}function Ud(te,oe,pe){var be=jt(te)?Wi:Yo;return pe&&Ji(te,oe,pe)&&(oe=F),be(te,Ot(oe,3))}var fl=$t(function(te,oe){if(te==null)return[];var pe=oe.length;return pe>1&&Ji(te,oe[0],oe[1])?oe=[]:pe>2&&Ji(oe[0],oe[1],oe[2])&&(oe=[oe[0]]),hc(te,Gi(oe,1),[])}),dl=Ch||function(){return Pi.Date.now()};function Yc(te,oe){if(typeof oe!="function")throw new yn(W);return te=Kt(te),function(){if(--te<1)return oe.apply(this,arguments)}}function Su(te,oe,pe){return oe=pe?F:oe,oe=te&&oe==null?te.length:oe,Cr(te,fe,F,F,F,F,oe)}function pl(te,oe){var pe;if(typeof oe!="function")throw new yn(W);return te=Kt(te),function(){return--te>0&&(pe=oe.apply(this,arguments)),te<=1&&(oe=F),pe}}var ml=$t(function(te,oe,pe){var be=re;if(pe.length){var Ce=ir(pe,Dt(ml));be|=de}return Cr(te,be,oe,pe,Ce)}),xu=$t(function(te,oe,pe){var be=re|ae;if(pe.length){var Ce=ir(pe,Dt(xu));be|=de}return Cr(oe,be,te,pe,Ce)});function Au(te,oe,pe){oe=pe?F:oe;var be=Cr(te,ce,F,F,F,F,F,oe);return be.placeholder=Au.placeholder,be}function Eu(te,oe,pe){oe=pe?F:oe;var be=Cr(te,he,F,F,F,F,F,oe);return be.placeholder=Eu.placeholder,be}function jc(te,oe,pe){var be,Ce,Re,Be,Ue,$e,at=0,ot=!1,mt=!1,St=!0;if(typeof te!="function")throw new yn(W);oe=Dn(oe)||0,Xt(pe)&&(ot=!!pe.leading,mt="maxWait"in pe,Re=mt?ri(Dn(pe.maxWait)||0,oe):Re,St="trailing"in pe?!!pe.trailing:St);function Et(hi){var zi=be,Ir=Ce;return be=Ce=F,at=hi,Be=te.apply(Ir,zi),Be}function Tt(hi){return at=hi,Ue=Ds(Nt,oe),ot?Et(hi):Be}function Ct(hi){var zi=hi-$e,Ir=hi-at,Qm=oe-zi;return mt?rn(Qm,Re-Ir):Qm}function Mt(hi){var zi=hi-$e,Ir=hi-at;return $e===F||zi>=oe||zi<0||mt&&Ir>=Re}function Nt(){var hi=dl();if(Mt(hi))return Wt(hi);Ue=Ds(Nt,Ct(hi))}function Wt(hi){return Ue=F,St&&be?Et(hi):(be=Ce=F,Be)}function Si(){Ue!==F&&Jl(Ue),at=0,be=$e=Ce=Ue=F}function xi(){return Ue===F?Be:Wt(dl())}function ai(){var hi=dl(),zi=Mt(hi);if(be=arguments,Ce=this,$e=hi,zi){if(Ue===F)return Tt($e);if(mt)return Jl(Ue),Ue=Ds(Nt,oe),Et($e)}return Ue===F&&(Ue=Ds(Nt,oe)),Be}return ai.cancel=Si,ai.flush=xi,ai}var Hd=$t(function(te,oe){return oa(te,1,oe)}),Wd=$t(function(te,oe,pe){return oa(te,Dn(oe)||0,pe)});function gl(te){return Cr(te,Se)}function Vs(te,oe){if(typeof te!="function"||oe!=null&&typeof oe!="function")throw new yn(W);var pe=function(){var be=arguments,Ce=oe?oe.apply(this,be):be[0],Re=pe.cache;if(Re.has(Ce))return Re.get(Ce);var Be=te.apply(this,be);return pe.cache=Re.set(Ce,Be)||Re,Be};return pe.cache=new(Vs.Cache||Yr),pe}Vs.Cache=Yr;function yl(te){if(typeof te!="function")throw new yn(W);return function(){var oe=arguments;switch(oe.length){case 0:return!te.call(this);case 1:return!te.call(this,oe[0]);case 2:return!te.call(this,oe[0],oe[1]);case 3:return!te.call(this,oe[0],oe[1],oe[2])}return!te.apply(this,oe)}}function qd(te){return pl(2,te)}var wu=ps(function(te,oe){oe=oe.length==1&&jt(oe[0])?Rt(oe[0],gn(Ot())):Rt(Gi(oe,1),gn(Ot()));var pe=oe.length;return $t(function(be){for(var Ce=-1,Re=rn(be.length,pe);++Ce=oe}),zt=oc(function(){return arguments}())?oc:function(te){return Mi(te)&&yi.call(te,"callee")&&!qa.call(te,"callee")},jt=lt.isArray,Cn=Ra?gn(Ra):nf;function si(te){return te!=null&&wi(te.length)&&!Mr(te)}function Ii(te){return Mi(te)&&si(te)}function ms(te){return te===!0||te===!1||Mi(te)&&Ki(te)==Je}var gs=Ku||Wu,sp=Fa?gn(Fa):ja;function ap(te){return Mi(te)&&te.nodeType===1&&!zs(te)}function lp(te){if(te==null)return!0;if(si(te)&&(jt(te)||typeof te=="string"||typeof te.splice=="function"||gs(te)||ba(te)||zt(te)))return!te.length;var oe=an(te);if(oe==_e||oe==nt)return!te.size;if(ga(te))return!Hl(te).length;for(var pe in te)if(yi.call(te,pe))return!1;return!0}function up(te,oe){return Qa(te,oe)}function Pu(te,oe,pe){pe=typeof pe=="function"?pe:F;var be=pe?pe(te,oe):F;return be===F?Qa(te,oe,F,pe):!!be}function Tu(te){if(!Mi(te))return!1;var oe=Ki(te);return oe==dt||oe==pt||typeof te.message=="string"&&typeof te.name=="string"&&!zs(te)}function ns(te){return typeof te=="number"&&Zu(te)}function Mr(te){if(!Xt(te))return!1;var oe=Ki(te);return oe==yt||oe==Fe||oe==et||oe==Xe}function fo(te){return typeof te=="number"&&te==Kt(te)}function wi(te){return typeof te=="number"&&te>-1&&te%1==0&&te<=Ae}function Xt(te){var oe=typeof te;return te!=null&&(oe=="object"||oe=="function")}function Mi(te){return te!=null&&typeof te=="object"}var Kc=Ba?gn(Ba):Ul;function cp(te,oe){return te===oe||zo(te,oe,ts(oe))}function hp(te,oe,pe){return pe=typeof pe=="function"?pe:F,zo(te,oe,ts(oe),pe)}function fp(te){return va(te)&&te!=+te}function dp(te){if(uo(te))throw new It(U);return lc(te)}function pp(te){return te===null}function Zc(te){return te==null}function va(te){return typeof te=="number"||Mi(te)&&Ki(te)==je}function zs(te){if(!Mi(te)||Ki(te)!=De)return!1;var oe=Wa(te);if(oe===null)return!0;var pe=yi.call(oe,"constructor")&&oe.constructor;return typeof pe=="function"&&pe instanceof pe&&li.call(pe)==wh}var Cu=as?gn(as):sf;function Jc(te){return fo(te)&&te>=-Ae&&te<=Ae}var po=Da?gn(Da):af;function ln(te){return typeof te=="string"||!jt(te)&&Mi(te)&&Ki(te)==Ke}function Yi(te){return typeof te=="symbol"||Mi(te)&&Ki(te)==ct}var ba=tn?gn(tn):uc;function mp(te){return te===F}function gp(te){return Mi(te)&&an(te)==ht}function yp(te){return Mi(te)&&Ki(te)==vt}var vp=ao(Ho),$c=ao(function(te,oe){return te<=oe});function _r(te){if(!te)return[];if(si(te))return ln(te)?Hn(te):Ti(te);if(sr&&te[sr])return Nl(te[sr]());var oe=an(te),pe=oe==_e?_o:oe==nt?Io:xa;return pe(te)}function Ut(te){if(!te)return te===0?te:0;if(te=Dn(te),te===we||te===-we){var oe=te<0?-1:1;return oe*Me}return te===te?te:0}function Kt(te){var oe=Ut(te),pe=oe%1;return oe===oe?pe?oe-pe:oe:0}function Bn(te){return te?qi(Kt(te),0,Ne):0}function Dn(te){if(typeof te=="number")return te;if(Yi(te))return ke;if(Xt(te)){var oe=typeof te.valueOf=="function"?te.valueOf():te;te=Xt(oe)?oe+"":oe}if(typeof te!="string")return te===0?te:+te;te=Pn(te);var pe=kn.test(te);return pe||ei.test(te)?Un(te.slice(2),pe?2:8):Ln.test(te)?ke:+te}function eh(te){return wr(te,Mn(te))}function di(te){return te?qi(Kt(te),-Ae,Ae):te===0?te:0}function pi(te){return te==null?"":Ri(te)}var th=Rs(function(te,oe){if(ga(oe)||si(oe)){wr(oe,ci(oe),te);return}for(var pe in oe)yi.call(oe,pe)&&hs(te,pe,oe[pe])}),mo=Rs(function(te,oe){wr(oe,Mn(oe),te)}),bl=Rs(function(te,oe,pe,be){wr(oe,Mn(oe),te,be)}),bp=Rs(function(te,oe,pe,be){wr(oe,ci(oe),te,be)}),Sp=cr(Qr);function xp(te,oe){var pe=Hr(te);return oe==null?pe:nc(pe,oe)}var Ap=$t(function(te,oe){te=gi(te);var pe=-1,be=oe.length,Ce=be>2?oe[2]:F;for(Ce&&Ji(oe[0],oe[1],Ce)&&(be=1);++pe1),Re}),wr(te,lo(te),pe),be&&(pe=qn(pe,K|J|ie,Pc));for(var Ce=oe.length;Ce--;)Qo(pe,oe[Ce]);return pe});function Bp(te,oe){return sh(te,yl(Ot(oe)))}var rh=cr(function(te,oe){return te==null?{}:fc(te,oe)});function sh(te,oe){if(te==null)return{};var pe=Rt(lo(te),function(be){return[be]});return oe=Ot(oe),dc(te,pe,function(be,Ce){return oe(be,Ce[0])})}function Dp(te,oe,pe){oe=ds(oe,te);var be=-1,Ce=oe.length;for(Ce||(Ce=1,te=F);++beoe){var be=te;te=oe,oe=be}if(pe||te%1||oe%1){var Ce=$u();return rn(te+Ce*(oe-te+Co("1e-"+((Ce+"").length-1))),oe)}return Ql(te,oe)}var lh=Pr(function(te,oe,pe){return oe=oe.toLowerCase(),te+(pe?ku(oe):oe)});function ku(te){return Sl(pi(te).toLowerCase())}function uh(te){return te=pi(te),te&&te.replace(Ei,ph).replace(Na,"")}function Xp(te,oe,pe){te=pi(te),oe=Ri(oe);var be=te.length;pe=pe===F?be:qi(Kt(pe),0,be);var Ce=pe;return pe-=oe.length,pe>=0&&te.slice(pe,Ce)==oe}function Yp(te){return te=pi(te),te&&Ui.test(te)?te.replace(oi,mh):te}function jp(te){return te=pi(te),te&&mr.test(te)?te.replace(rs,"\\$&"):te}var Qp=Pr(function(te,oe,pe){return te+(pe?"-":"")+oe.toLowerCase()}),Kp=Pr(function(te,oe,pe){return te+(pe?" ":"")+oe.toLowerCase()}),Zp=Fs("toLowerCase");function Jp(te,oe,pe){te=pi(te),oe=Kt(oe);var be=oe?nn(te):0;if(!oe||be>=oe)return te;var Ce=(oe-be)/2;return il(ra(Ce),pe)+te+il(Ts(Ce),pe)}function $p(te,oe,pe){te=pi(te),oe=Kt(oe);var be=oe?nn(te):0;return oe&&be>>0,pe?(te=pi(te),te&&(typeof oe=="string"||oe!=null&&!Cu(oe))&&(oe=Ri(oe),!oe&&$s(te))?Zr(Hn(te),0,pe):te.split(oe,pe)):[]}var om=Pr(function(te,oe,pe){return te+(pe?" ":"")+Sl(oe)});function lm(te,oe,pe){return te=pi(te),pe=pe==null?0:qi(Kt(pe),0,te.length),oe=Ri(oe),te.slice(pe,pe+oe.length)==oe}function um(te,oe,pe){var be=We.templateSettings;pe&&Ji(te,oe,pe)&&(oe=F),te=pi(te),oe=bl({},oe,be,su);var Ce=bl({},oe.imports,be.imports,su),Re=ci(Ce),Be=ws(Ce,Re),Ue,$e,at=0,ot=oe.interpolate||Ni,mt="__p += '",St=Ll((oe.escape||Ni).source+"|"+ot.source+"|"+(ot===Jn?ys:Ni).source+"|"+(oe.evaluate||Ni).source+"|$","g"),Et="//# sourceURL="+(yi.call(oe,"sourceURL")?(oe.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++vi+"]")+` `;te.replace(St,function(Mt,Nt,Wt,Si,xi,ai){return Wt||(Wt=Si),mt+=te.slice(at,ai).replace(mi,gh),Nt&&(Ue=!0,mt+=`' + __e(`+Nt+`) + '`),xi&&($e=!0,mt+=`'; `+xi+`; __p += '`),Wt&&(mt+=`' + ((__t = (`+Wt+`)) == null ? '' : __t) + '`),at=ai+Mt.length,Mt}),mt+=`'; `;var Tt=yi.call(oe,"variable")&&oe.variable;if(!Tt)mt=`with (obj) { `+mt+` } `;else if(Aa.test(Tt))throw new It(q);mt=($e?mt.replace(Qi,""):mt).replace(In,"$1").replace(cn,"$1;"),mt="function("+(Tt||"obj")+`) { `+(Tt?"":`obj || (obj = {}); `)+"var __t, __p = ''"+(Ue?", __e = _.escape":"")+($e?`, __j = Array.prototype.join; function print() { __p += __j.call(arguments, '') } `:`; `)+mt+`return __p }`;var Ct=ch(function(){return Gt(Re,Et+"return "+mt).apply(F,Be)});if(Ct.source=mt,Tu(Ct))throw Ct;return Ct}function cm(te){return pi(te).toLowerCase()}function hm(te){return pi(te).toUpperCase()}function fm(te,oe,pe){if(te=pi(te),te&&(pe||oe===F))return Pn(te);if(!te||!(oe=Ri(oe)))return te;var be=Hn(te),Ce=Hn(oe),Re=Il(be,Ce),Be=Yu(be,Ce)+1;return Zr(be,Re,Be).join("")}function dm(te,oe,pe){if(te=pi(te),te&&(pe||oe===F))return te.slice(0,ju(te)+1);if(!te||!(oe=Ri(oe)))return te;var be=Hn(te),Ce=Yu(be,Hn(oe))+1;return Zr(be,0,Ce).join("")}function pm(te,oe,pe){if(te=pi(te),te&&(pe||oe===F))return te.replace(Gn,"");if(!te||!(oe=Ri(oe)))return te;var be=Hn(te),Ce=Il(be,Hn(oe));return Zr(be,Ce).join("")}function mm(te,oe){var pe=Ee,be=ve;if(Xt(oe)){var Ce="separator"in oe?oe.separator:Ce;pe="length"in oe?Kt(oe.length):pe,be="omission"in oe?Ri(oe.omission):be}te=pi(te);var Re=te.length;if($s(te)){var Be=Hn(te);Re=Be.length}if(pe>=Re)return te;var Ue=pe-nn(be);if(Ue<1)return be;var $e=Be?Zr(Be,0,Ue).join(""):te.slice(0,Ue);if(Ce===F)return $e+be;if(Be&&(Ue+=$e.length-Ue),Cu(Ce)){if(te.slice(Ue).search(Ce)){var at,ot=$e;for(Ce.global||(Ce=Ll(Ce.source,pi(xn.exec(Ce))+"g")),Ce.lastIndex=0;at=Ce.exec(ot);)var mt=at.index;$e=$e.slice(0,mt===F?Ue:mt)}}else if(te.indexOf(Ri(Ce),Ue)!=Ue){var St=$e.lastIndexOf(Ce);St>-1&&($e=$e.slice(0,St))}return $e+be}function gm(te){return te=pi(te),te&&$i.test(te)?te.replace(_t,Sh):te}var Ru=Pr(function(te,oe,pe){return te+(pe?" ":"")+oe.toUpperCase()}),Sl=Fs("toUpperCase");function Fu(te,oe,pe){return te=pi(te),oe=pe?F:oe,oe===F?yh(te)?Eh(te):mn(te):te.match(oe)||[]}var ch=$t(function(te,oe){try{return pn(te,F,oe)}catch(pe){return Tu(pe)?pe:new It(pe)}}),ym=cr(function(te,oe){return rt(oe,function(pe){pe=on(pe),lr(te,pe,ml(te[pe],te))}),te});function vm(te){var oe=te==null?0:te.length,pe=Ot();return te=oe?Rt(te,function(be){if(typeof be[1]!="function")throw new yn(W);return[pe(be[0]),be[1]]}):[],$t(function(be){for(var Ce=-1;++CeAe)return[];var pe=Ne,be=rn(te,Ne);oe=Ot(oe),te-=Ne;for(var Ce=_l(be,oe);++pe0||oe<0)?new ti(pe):(te<0?pe=pe.takeRight(-te):te&&(pe=pe.drop(te)),oe!==F&&(oe=Kt(oe),pe=oe<0?pe.dropRight(-oe):pe.take(oe-te)),pe)},ti.prototype.takeRightWhile=function(te){return this.reverse().takeWhile(te).reverse()},ti.prototype.toArray=function(){return this.take(Ne)},Yn(ti.prototype,function(te,oe){var pe=/^(?:filter|find|map|reject)|While$/.test(oe),be=/^(?:head|last)$/.test(oe),Ce=We[be?"take"+(oe=="last"?"Right":""):oe],Re=be||/^find/.test(oe);!Ce||(We.prototype[oe]=function(){var Be=this.__wrapped__,Ue=be?[1]:arguments,$e=Be instanceof ti,at=Ue[0],ot=$e||jt(Be),mt=function(Nt){var Wt=Ce.apply(We,ni([Nt],Ue));return be&&St?Wt[0]:Wt};ot&&pe&&typeof at=="function"&&at.length!=1&&($e=ot=!1);var St=this.__chain__,Et=!!this.__actions__.length,Tt=Re&&!St,Ct=$e&&!Et;if(!Re&&ot){Be=Ct?Be:new ti(this);var Mt=te.apply(Be,Ue);return Mt.__actions__.push({func:ul,args:[mt],thisArg:F}),new Ht(Mt,St)}return Tt&&Ct?te.apply(this,Ue):(Mt=this.thru(mt),Tt?be?Mt.value()[0]:Mt.value():Mt)})}),rt(["pop","push","shift","sort","splice","unshift"],function(te){var oe=No[te],pe=/^(?:push|sort|unshift)$/.test(te)?"tap":"thru",be=/^(?:pop|shift)$/.test(te);We.prototype[te]=function(){var Ce=arguments;if(be&&!this.__chain__){var Re=this.value();return oe.apply(jt(Re)?Re:[],Ce)}return this[pe](function(Be){return oe.apply(jt(Be)?Be:[],Ce)})}}),Yn(ti.prototype,function(te,oe){var pe=We[oe];if(pe){var be=pe.name+"";yi.call(sa,be)||(sa[be]=[]),sa[be].push({name:oe,func:pe})}}),sa[no(F,ae).name]=[{name:"wrapper",func:F}],ti.prototype.clone=Rh,ti.prototype.reverse=Fh,ti.prototype.value=_s,We.prototype.at=md,We.prototype.chain=gd,We.prototype.commit=yd,We.prototype.next=vd,We.prototype.plant=Sd,We.prototype.reverse=xd,We.prototype.toJSON=We.prototype.valueOf=We.prototype.value=Ad,We.prototype.first=We.prototype.head,sr&&(We.prototype[sr]=bd),We},ft=ta();dn?((dn.exports=ft)._=ft,Fn._=ft):Pi._=ft}).call(commonjsGlobal$2)})(lodash$1,lodash$1.exports);class SectionHint{constructor(){this.currentNote=null,this.el=document.createElement("div"),this.span=document.createElement("span"),this.init()}init(){this.el.id="section-hint"+Math.floor(Math.random()*1e5),this.hide()}showForElement(R){var G;if(this.currentNote===R)return;this.el||(this.el=document.createElement("div"),this.init(),this.show()),this.currentNote=R;const F=getBoundingBoxByverticalNote(R),D=document.querySelector("#osmdSvgPage1");if(F){const{x:U,y:W,width:q,height:Y}=F;this.el.id="custom-cursor-bg-hint",this.el.style.position="absolute",this.el.style.top=formatZoom(W)+"px",this.el.style.left=formatZoom(U)+"px",this.el.style.width=formatZoom(q)+"px",this.el.style.height=formatZoom(Y)+"px",this.el.style.zIndex="-1",(G=D==null?void 0:D.parentNode)==null||G.appendChild(this.el)}}hide(){this.el.style.display="none"}show(){this.el.style.display=""}destroy(){this.currentNote=null,this.hide()}}/*! * vue-router v4.0.4 * (c) 2021 Eduardo San Martin Morote * @license MIT */const hasSymbol=typeof Symbol=="function"&&typeof Symbol.toStringTag=="symbol",PolySymbol=B=>hasSymbol?Symbol(B):"_vr_"+B,matchedRouteKey=PolySymbol("rvlm"),viewDepthKey=PolySymbol("rvd"),routerKey=PolySymbol("r"),routeLocationKey=PolySymbol("rl"),routerViewLocationKey=PolySymbol("rvl"),isBrowser=typeof window!="undefined";function isESModule(B){return B.__esModule||hasSymbol&&B[Symbol.toStringTag]==="Module"}const assign$1=Object.assign;function applyToParams(B,R){const F={};for(const D in R){const G=R[D];F[D]=Array.isArray(G)?G.map(B):B(G)}return F}let noop$2=()=>{};const TRAILING_SLASH_RE=/\/$/,removeTrailingSlash=B=>B.replace(TRAILING_SLASH_RE,"");function parseURL(B,R,F="/"){let D,G={},U="",W="";const q=R.indexOf("?"),Y=R.indexOf("#",q>-1?q:0);return q>-1&&(D=R.slice(0,q),U=R.slice(q+1,Y>-1?Y:R.length),G=B(U)),Y>-1&&(D=D||R.slice(0,Y),W=R.slice(Y,R.length)),D=resolveRelativePath(D!=null?D:R,F),{fullPath:D+(U&&"?")+U+W,path:D,query:G,hash:W}}function stringifyURL(B,R){let F=R.query?B(R.query):"";return R.path+(F&&"?")+F+(R.hash||"")}function stripBase(B,R){return!R||B.toLowerCase().indexOf(R.toLowerCase())?B:B.slice(R.length)||"/"}function isSameRouteLocation(B,R,F){let D=R.matched.length-1,G=F.matched.length-1;return D>-1&&D===G&&isSameRouteRecord(R.matched[D],F.matched[G])&&isSameRouteLocationParams(R.params,F.params)&&B(R.query)===B(F.query)&&R.hash===F.hash}function isSameRouteRecord(B,R){return(B.aliasOf||B)===(R.aliasOf||R)}function isSameRouteLocationParams(B,R){if(Object.keys(B).length!==Object.keys(R).length)return!1;for(let F in B)if(!isSameRouteLocationParamsValue(B[F],R[F]))return!1;return!0}function isSameRouteLocationParamsValue(B,R){return Array.isArray(B)?isEquivalentArray(B,R):Array.isArray(R)?isEquivalentArray(R,B):B===R}function isEquivalentArray(B,R){return Array.isArray(R)?B.length===R.length&&B.every((F,D)=>F===R[D]):B.length===1&&B[0]===R}function resolveRelativePath(B,R){if(B.startsWith("/"))return B;if(!B)return R;const F=R.split("/"),D=B.split("/");let G=F.length-1,U,W;for(U=0;U({left:window.pageXOffset,top:window.pageYOffset});function scrollToPosition(B){let R;if("el"in B){let F=B.el;const D=typeof F=="string"&&F.startsWith("#"),G=typeof F=="string"?D?document.getElementById(F.slice(1)):document.querySelector(F):F;if(!G)return;R=getElementPosition(G,B)}else R=B;"scrollBehavior"in document.documentElement.style?window.scrollTo(R):window.scrollTo(R.left!=null?R.left:window.pageXOffset,R.top!=null?R.top:window.pageYOffset)}function getScrollKey(B,R){return(history.state?history.state.position-R:-1)+B}const scrollPositions=new Map;function saveScrollPosition(B,R){scrollPositions.set(B,R)}function getSavedScrollPosition(B){const R=scrollPositions.get(B);return scrollPositions.delete(B),R}let createBaseLocation=()=>location.protocol+"//"+location.host;function createCurrentLocation(B,R){const{pathname:F,search:D,hash:G}=R;if(B.indexOf("#")>-1){let q=G.slice(1);return q[0]!=="/"&&(q="/"+q),stripBase(q,"")}return stripBase(F,B)+D+G}function useHistoryListeners(B,R,F,D){let G=[],U=[],W=null;const q=({state:J})=>{const ie=createCurrentLocation(B,location),ne=F.value,se=R.value;let re=0;if(J){if(F.value=ie,R.value=J,W&&W===ne){W=null;return}re=se?J.position-se.position:0}else D(ie);G.forEach(ae=>{ae(F.value,ne,{delta:re,type:NavigationType.pop,direction:re?re>0?NavigationDirection.forward:NavigationDirection.back:NavigationDirection.unknown})})};function Y(){W=F.value}function Q(J){G.push(J);const ie=()=>{const ne=G.indexOf(J);ne>-1&&G.splice(ne,1)};return U.push(ie),ie}function Z(){const{history:J}=window;!J.state||J.replaceState(assign$1({},J.state,{scroll:computeScrollPosition()}),"")}function K(){for(const J of U)J();U=[],window.removeEventListener("popstate",q),window.removeEventListener("beforeunload",Z)}return window.addEventListener("popstate",q),window.addEventListener("beforeunload",Z),{pauseListeners:Y,listen:Q,destroy:K}}function buildState(B,R,F,D=!1,G=!1){return{back:B,current:R,forward:F,replaced:D,position:window.history.length,scroll:G?computeScrollPosition():null}}function useHistoryStateNavigation(B){const{history:R,location:F}=window;let D={value:createCurrentLocation(B,F)},G={value:R.state};G.value||U(D.value,{back:null,current:D.value,forward:null,position:R.length-1,replaced:!0,scroll:null},!0);function U(Y,Q,Z){const K=B.indexOf("#"),J=K>-1?(F.host&&document.querySelector("base")?B:B.slice(K))+Y:createBaseLocation()+B+Y;try{R[Z?"replaceState":"pushState"](Q,"",J),G.value=Q}catch(ie){console.error(ie),F[Z?"replace":"assign"](J)}}function W(Y,Q){const Z=assign$1({},R.state,buildState(G.value.back,Y,G.value.forward,!0),Q,{position:G.value.position});U(Y,Z,!0),D.value=Y}function q(Y,Q){const Z=assign$1({},G.value,R.state,{forward:Y,scroll:computeScrollPosition()});U(Z.current,Z,!0);const K=assign$1({},buildState(D.value,Y,null),{position:Z.position+1},Q);U(Y,K,!1),D.value=Y}return{location:D,state:G,push:q,replace:W}}function createWebHistory(B){B=normalizeBase(B);const R=useHistoryStateNavigation(B),F=useHistoryListeners(B,R.state,R.location,R.replace);function D(U,W=!0){W||F.pauseListeners(),history.go(U)}const G=assign$1({location:"",base:B,go:D,createHref:createHref.bind(null,B)},R,F);return Object.defineProperty(G,"location",{get:()=>R.location.value}),Object.defineProperty(G,"state",{get:()=>R.state.value}),G}function createWebHashHistory(B){return B=location.host?B||location.pathname+location.search:"",B.indexOf("#")<0&&(B+="#"),createWebHistory(B)}function isRouteLocation(B){return typeof B=="string"||B&&typeof B=="object"}function isRouteName(B){return typeof B=="string"||typeof B=="symbol"}const START_LOCATION_NORMALIZED={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},NavigationFailureSymbol=PolySymbol("nf");var NavigationFailureType;(function(B){B[B.aborted=4]="aborted",B[B.cancelled=8]="cancelled",B[B.duplicated=16]="duplicated"})(NavigationFailureType||(NavigationFailureType={}));function createRouterError(B,R){return assign$1(new Error,{type:B,[NavigationFailureSymbol]:!0},R)}function isNavigationFailure(B,R){return B instanceof Error&&NavigationFailureSymbol in B&&(R==null||!!(B.type&R))}const BASE_PARAM_PATTERN="[^/]+?",BASE_PATH_PARSER_OPTIONS={sensitive:!1,strict:!1,start:!0,end:!0},REGEX_CHARS_RE=/[.+*?^${}()[\]/\\]/g;function tokensToParser(B,R){const F=assign$1({},BASE_PATH_PARSER_OPTIONS,R);let D=[],G=F.start?"^":"";const U=[];for(const Q of B){const Z=Q.length?[]:[90];F.strict&&!Q.length&&(G+="/");for(let K=0;KR.length?R.length===1&&R[0]===40+40?1:-1:0}function comparePathParserScore(B,R){let F=0;const D=B.score,G=R.score;for(;F1&&(Y==="*"||Y==="+")&&R(`A repeatable param (${Q}) must be alone in its segment. eg: '/:ids+.`),U.push({type:1,value:Q,regexp:Z,repeatable:Y==="*"||Y==="+",optional:Y==="*"||Y==="?"})):R("Invalid state to consume buffer"),Q="")}function J(){Q+=Y}for(;q{W(le)}:noop$2}function W(Z){if(isRouteName(Z)){const K=D.get(Z);K&&(D.delete(Z),F.splice(F.indexOf(K),1),K.children.forEach(W),K.alias.forEach(W))}else{let K=F.indexOf(Z);K>-1&&(F.splice(K,1),Z.record.name&&D.delete(Z.record.name),Z.children.forEach(W),Z.alias.forEach(W))}}function q(){return F}function Y(Z){let K=0;for(;K=0;)K++;F.splice(K,0,Z),Z.record.name&&!isAliasRecord(Z)&&D.set(Z.record.name,Z)}function Q(Z,K){let J,ie={},ne,se;if("name"in Z&&Z.name){if(J=D.get(Z.name),!J)throw createRouterError(1,{location:Z});se=J.record.name,ie=assign$1(paramsFromLocation(K.params,J.keys.filter(le=>!le.optional).map(le=>le.name)),Z.params),ne=J.stringify(ie)}else if("path"in Z)ne=Z.path,J=F.find(le=>le.re.test(ne)),J&&(ie=J.parse(ne),se=J.record.name);else{if(J=K.name?D.get(K.name):F.find(le=>le.re.test(K.path)),!J)throw createRouterError(1,{location:Z,currentLocation:K});se=J.record.name,ie=assign$1({},K.params,Z.params),ne=J.stringify(ie)}const re=[];let ae=J;for(;ae;)re.unshift(ae.record),ae=ae.parent;return{name:se,path:ne,params:ie,matched:re,meta:mergeMetaFields(re)}}return B.forEach(Z=>U(Z)),{addRoute:U,resolve:Q,removeRoute:W,getRoutes:q,getRecordMatcher:G}}function paramsFromLocation(B,R){let F={};for(let D of R)D in B&&(F[D]=B[D]);return F}function normalizeRouteRecord(B){return{path:B.path,redirect:B.redirect,name:B.name,meta:B.meta||{},aliasOf:void 0,beforeEnter:B.beforeEnter,props:normalizeRecordProps(B),children:B.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in B?B.components||{}:{default:B.component}}}function normalizeRecordProps(B){const R={},F=B.props||!1;if("component"in B)R.default=F;else for(let D in B.components)R[D]=typeof F=="boolean"?F:F[D];return R}function isAliasRecord(B){for(;B;){if(B.record.aliasOf)return!0;B=B.parent}return!1}function mergeMetaFields(B){return B.reduce((R,F)=>assign$1(R,F.meta),{})}function mergeOptions(B,R){let F={};for(let D in B)F[D]=D in R?R[D]:B[D];return F}const HASH_RE=/#/g,AMPERSAND_RE=/&/g,SLASH_RE=/\//g,EQUAL_RE=/=/g,IM_RE=/\?/g,PLUS_RE=/\+/g,ENC_BRACKET_OPEN_RE=/%5B/g,ENC_BRACKET_CLOSE_RE=/%5D/g,ENC_CARET_RE=/%5E/g,ENC_BACKTICK_RE=/%60/g,ENC_CURLY_OPEN_RE=/%7B/g,ENC_PIPE_RE=/%7C/g,ENC_CURLY_CLOSE_RE=/%7D/g,ENC_SPACE_RE=/%20/g;function commonEncode(B){return encodeURI(""+B).replace(ENC_PIPE_RE,"|").replace(ENC_BRACKET_OPEN_RE,"[").replace(ENC_BRACKET_CLOSE_RE,"]")}function encodeHash(B){return commonEncode(B).replace(ENC_CURLY_OPEN_RE,"{").replace(ENC_CURLY_CLOSE_RE,"}").replace(ENC_CARET_RE,"^")}function encodeQueryValue(B){return commonEncode(B).replace(PLUS_RE,"%2B").replace(ENC_SPACE_RE,"+").replace(HASH_RE,"%23").replace(AMPERSAND_RE,"%26").replace(ENC_BACKTICK_RE,"`").replace(ENC_CURLY_OPEN_RE,"{").replace(ENC_CURLY_CLOSE_RE,"}").replace(ENC_CARET_RE,"^")}function encodeQueryKey(B){return encodeQueryValue(B).replace(EQUAL_RE,"%3D")}function encodePath(B){return commonEncode(B).replace(HASH_RE,"%23").replace(IM_RE,"%3F")}function encodeParam(B){return encodePath(B).replace(SLASH_RE,"%2F")}function decode$3(B){try{return decodeURIComponent(""+B)}catch{}return""+B}function parseQuery(B){const R={};if(B===""||B==="?")return R;const D=(B[0]==="?"?B.slice(1):B).split("&");for(let G=0;GU&&encodeQueryValue(U)):[D&&encodeQueryValue(D)];for(let U=0;UG==null?null:""+G):D==null?D:""+D)}return R}function useCallbacks(){let B=[];function R(D){return B.push(D),()=>{const G=B.indexOf(D);G>-1&&B.splice(G,1)}}function F(){B=[]}return{add:R,list:()=>B,reset:F}}function guardToPromiseFn(B,R,F,D,G){const U=D&&(D.enterCallbacks[G]=D.enterCallbacks[G]||[]);return()=>new Promise((W,q)=>{const Y=K=>{K===!1?q(createRouterError(4,{from:F,to:R})):K instanceof Error?q(K):isRouteLocation(K)?q(createRouterError(2,{from:R,to:K})):(U&&D.enterCallbacks[G]===U&&typeof K=="function"&&U.push(K),W())},Q=B.call(D&&D.instances[G],R,F,Y);let Z=Promise.resolve(Q);B.length<3&&(Z=Z.then(Y)),Z.catch(K=>q(K))})}function extractComponentsGuards(B,R,F,D){const G=[];for(const U of B)for(const W in U.components){let q=U.components[W];if(!(R!=="beforeRouteEnter"&&!U.instances[W]))if(isRouteComponent(q)){const Q=(q.__vccOpts||q)[R];Q&&G.push(guardToPromiseFn(Q,F,D,U,W))}else{let Y=q();Y=Y.catch(console.error),G.push(()=>Y.then(Q=>{if(!Q)return Promise.reject(new Error(`Couldn't resolve component "${W}" at "${U.path}"`));const Z=isESModule(Q)?Q.default:Q;U.components[W]=Z;const J=(Z.__vccOpts||Z)[R];return J&&guardToPromiseFn(J,F,D,U,W)()}))}}return G}function isRouteComponent(B){return typeof B=="object"||"displayName"in B||"props"in B||"__vccOpts"in B}function useLink(B){const R=inject(routerKey),F=inject(routeLocationKey),D=computed(()=>R.resolve(unref(B.to))),G=computed(()=>{let{matched:Y}=D.value,{length:Q}=Y;const Z=Y[Q-1];let K=F.matched;if(!Z||!K.length)return-1;let J=K.findIndex(isSameRouteRecord.bind(null,Z));if(J>-1)return J;let ie=getOriginalPath(Y[Q-2]);return Q>1&&getOriginalPath(Z)===ie&&K[K.length-1].path!==ie?K.findIndex(isSameRouteRecord.bind(null,Y[Q-2])):J}),U=computed(()=>G.value>-1&&includesParams(F.params,D.value.params)),W=computed(()=>G.value>-1&&G.value===F.matched.length-1&&isSameRouteLocationParams(F.params,D.value.params));function q(Y={}){return guardEvent(Y)?R[unref(B.replace)?"replace":"push"](unref(B.to)):Promise.resolve()}return{route:D,href:computed(()=>D.value.href),isActive:U,isExactActive:W,navigate:q}}const RouterLinkImpl=defineComponent({name:"RouterLink",props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},setup(B,{slots:R,attrs:F}){const D=reactive(useLink(B)),{options:G}=inject(routerKey),U=computed(()=>({[getLinkClass(B.activeClass,G.linkActiveClass,"router-link-active")]:D.isActive,[getLinkClass(B.exactActiveClass,G.linkExactActiveClass,"router-link-exact-active")]:D.isExactActive}));return()=>{const W=R.default&&R.default(D);return B.custom?W:h$3("a",assign$1({"aria-current":D.isExactActive?B.ariaCurrentValue:null,onClick:D.navigate,href:D.href},F,{class:U.value}),W)}}}),RouterLink=RouterLinkImpl;function guardEvent(B){if(!(B.metaKey||B.altKey||B.ctrlKey||B.shiftKey)&&!B.defaultPrevented&&!(B.button!==void 0&&B.button!==0)){if(B.currentTarget&&B.currentTarget.getAttribute){const R=B.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(R))return}return B.preventDefault&&B.preventDefault(),!0}}function includesParams(B,R){for(let F in R){let D=R[F],G=B[F];if(typeof D=="string"){if(D!==G)return!1}else if(!Array.isArray(G)||G.length!==D.length||D.some((U,W)=>U!==G[W]))return!1}return!0}function getOriginalPath(B){return B?B.aliasOf?B.aliasOf.path:B.path:""}const getLinkClass=(B,R,F)=>B!=null?B:R!=null?R:F,RouterViewImpl=defineComponent({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},setup(B,{attrs:R,slots:F}){const D=inject(routerViewLocationKey),G=computed(()=>B.route||D.value),U=inject(viewDepthKey,0),W=computed(()=>G.value.matched[U]);provide(viewDepthKey,U+1),provide(matchedRouteKey,W),provide(routerViewLocationKey,G);const q=ref();return watch(()=>[q.value,W.value,B.name],([Y,Q,Z],[K,J,ie])=>{Q&&(Q.instances[Z]=Y,J&&J!==Q&&Y&&Y===K&&(Q.leaveGuards=J.leaveGuards,Q.updateGuards=J.updateGuards)),Y&&Q&&(!J||!isSameRouteRecord(Q,J)||!K)&&(Q.enterCallbacks[Z]||[]).forEach(ne=>ne(Y))},{flush:"post"}),()=>{const Y=G.value,Q=W.value,Z=Q&&Q.components[B.name],K=B.name;if(!Z)return normalizeSlot(F.default,{Component:Z,route:Y});const J=Q.props[B.name],ie=J?J===!0?Y.params:typeof J=="function"?J(Y):J:null,se=h$3(Z,assign$1({},ie,R,{onVnodeUnmounted:re=>{re.component.isUnmounted&&(Q.instances[K]=null)},ref:q}));return normalizeSlot(F.default,{Component:se,route:Y})||se}}});function normalizeSlot(B,R){if(!B)return null;const F=B(R);return F.length===1?F[0]:F}const RouterView=RouterViewImpl;function createRouter(B){const R=createRouterMatcher(B.routes,B);let F=B.parseQuery||parseQuery,D=B.stringifyQuery||stringifyQuery,G=B.history;const U=useCallbacks(),W=useCallbacks(),q=useCallbacks(),Y=shallowRef(START_LOCATION_NORMALIZED);let Q=START_LOCATION_NORMALIZED;isBrowser&&B.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const Z=applyToParams.bind(null,Ve=>""+Ve),K=applyToParams.bind(null,encodeParam),J=applyToParams.bind(null,decode$3);function ie(Ve,Ye){let et,Je;return isRouteName(Ve)?(et=R.getRecordMatcher(Ve),Je=Ye):Je=Ve,R.addRoute(Je,et)}function ne(Ve){let Ye=R.getRecordMatcher(Ve);Ye&&R.removeRoute(Ye)}function se(){return R.getRoutes().map(Ve=>Ve.record)}function re(Ve){return!!R.getRecordMatcher(Ve)}function ae(Ve,Ye){if(Ye=assign$1({},Ye||Y.value),typeof Ve=="string"){let yt=parseURL(F,Ve,Ye.path),Fe=R.resolve({path:yt.path},Ye),_e=G.createHref(yt.fullPath);return assign$1(yt,Fe,{params:J(Fe.params),hash:decode$3(yt.hash),redirectedFrom:void 0,href:_e})}let et;"path"in Ve?et=assign$1({},Ve,{path:parseURL(F,Ve.path,Ye.path).path}):(et=assign$1({},Ve,{params:K(Ve.params)}),Ye.params=K(Ye.params));let Je=R.resolve(et,Ye);const st=Ve.hash||"";Je.params=Z(J(Je.params));const pt=stringifyURL(D,assign$1({},Ve,{hash:encodeHash(st),path:Je.path}));let dt=G.createHref(pt);return assign$1({fullPath:pt,hash:st,query:D===stringifyQuery?normalizeQuery(Ve.query):Ve.query},Je,{redirectedFrom:void 0,href:dt})}function le(Ve){return typeof Ve=="string"?parseURL(F,Ve,Y.value.path):assign$1({},Ve)}function ce(Ve,Ye){if(Q!==Ve)return createRouterError(8,{from:Ye,to:Ve})}function he(Ve){return fe(Ve)}function de(Ve){return he(assign$1(le(Ve),{replace:!0}))}function me(Ve){const Ye=Ve.matched[Ve.matched.length-1];if(Ye&&Ye.redirect){const{redirect:et}=Ye;let Je=typeof et=="function"?et(Ve):et;return typeof Je=="string"&&(Je=Je.indexOf("?")>-1||Je.indexOf("#")>-1?Je=le(Je):{path:Je}),assign$1({query:Ve.query,hash:Ve.hash,params:Ve.params},Je)}}function fe(Ve,Ye){const et=Q=ae(Ve),Je=Y.value,st=Ve.state,pt=Ve.force,dt=Ve.replace===!0,yt=me(et);if(yt)return fe(assign$1(le(yt),{state:st,force:pt,replace:dt}),Ye||et);const Fe=et;Fe.redirectedFrom=Ye;let _e;return!pt&&isSameRouteLocation(D,Je,et)&&(_e=createRouterError(16,{to:Fe,from:Je}),ke(Je,Je,!0,!1)),(_e?Promise.resolve(_e):Se(Fe,Je)).catch(je=>isNavigationFailure(je)?je:we(je)).then(je=>{if(je){if(isNavigationFailure(je,2))return fe(assign$1(le(je.to),{state:st,force:pt,replace:dt}),Ye||Fe)}else je=ve(Fe,Je,!0,dt,st);return Ee(Fe,Je,je),je})}function ge(Ve,Ye){const et=ce(Ve,Ye);return et?Promise.reject(et):Promise.resolve()}function Se(Ve,Ye){let et;const[Je,st,pt]=extractChangingRecords(Ve,Ye);et=extractComponentsGuards(Je.reverse(),"beforeRouteLeave",Ve,Ye);for(const yt of Je)yt.leaveGuards.forEach(Fe=>{et.push(guardToPromiseFn(Fe,Ve,Ye))});const dt=ge.bind(null,Ve,Ye);return et.push(dt),runGuardQueue(et).then(()=>{et=[];for(const yt of U.list())et.push(guardToPromiseFn(yt,Ve,Ye));return et.push(dt),runGuardQueue(et)}).then(()=>{et=extractComponentsGuards(st,"beforeRouteUpdate",Ve,Ye);for(const yt of st)yt.updateGuards.forEach(Fe=>{et.push(guardToPromiseFn(Fe,Ve,Ye))});return et.push(dt),runGuardQueue(et)}).then(()=>{et=[];for(const yt of Ve.matched)if(yt.beforeEnter&&Ye.matched.indexOf(yt)<0)if(Array.isArray(yt.beforeEnter))for(const Fe of yt.beforeEnter)et.push(guardToPromiseFn(Fe,Ve,Ye));else et.push(guardToPromiseFn(yt.beforeEnter,Ve,Ye));return et.push(dt),runGuardQueue(et)}).then(()=>(Ve.matched.forEach(yt=>yt.enterCallbacks={}),et=extractComponentsGuards(pt,"beforeRouteEnter",Ve,Ye),et.push(dt),runGuardQueue(et))).then(()=>{et=[];for(const yt of W.list())et.push(guardToPromiseFn(yt,Ve,Ye));return et.push(dt),runGuardQueue(et)}).catch(yt=>isNavigationFailure(yt,8)?yt:Promise.reject(yt))}function Ee(Ve,Ye,et){for(const Je of q.list())Je(Ve,Ye,et)}function ve(Ve,Ye,et,Je,st){const pt=ce(Ve,Ye);if(pt)return pt;const dt=Ye===START_LOCATION_NORMALIZED,yt=isBrowser?history.state:{};et&&(Je||dt?G.replace(Ve.fullPath,assign$1({scroll:dt&&yt&&yt.scroll},st)):G.push(Ve.fullPath,st)),Y.value=Ve,ke(Ve,Ye,et,dt),Me()}let xe;function Pe(){xe=G.listen((Ve,Ye,et)=>{let Je=ae(Ve);const st=me(Je);if(st){fe(assign$1(st,{replace:!0}),Je).catch(noop$2);return}Q=Je;const pt=Y.value;isBrowser&&saveScrollPosition(getScrollKey(pt.fullPath,et.delta),computeScrollPosition()),Se(Je,pt).catch(dt=>isNavigationFailure(dt,12)?dt:isNavigationFailure(dt,2)?(fe(dt.to,Je).catch(noop$2),Promise.reject()):(et.delta&&G.go(-et.delta,!1),we(dt))).then(dt=>{dt=dt||ve(Je,pt,!1),dt&&et.delta&&G.go(-et.delta,!1),Ee(Je,pt,dt)}).catch(noop$2)})}let ye=useCallbacks(),Te=useCallbacks(),Le;function we(Ve){return Me(Ve),Te.list().forEach(Ye=>Ye(Ve)),Promise.reject(Ve)}function Ae(){return Le&&Y.value!==START_LOCATION_NORMALIZED?Promise.resolve():new Promise((Ve,Ye)=>{ye.add([Ve,Ye])})}function Me(Ve){Le||(Le=!0,Pe(),ye.list().forEach(([Ye,et])=>Ve?et(Ve):Ye()),ye.reset())}function ke(Ve,Ye,et,Je){const{scrollBehavior:st}=B;if(!isBrowser||!st)return Promise.resolve();let pt=!et&&getSavedScrollPosition(getScrollKey(Ve.fullPath,0))||(Je||!et)&&history.state&&history.state.scroll||null;return nextTick().then(()=>st(Ve,Ye,pt)).then(dt=>dt&&scrollToPosition(dt)).catch(we)}const Ne=Ve=>G.go(Ve);let Ie;const Ge=new Set;return{currentRoute:Y,addRoute:ie,removeRoute:ne,hasRoute:re,getRoutes:se,resolve:ae,options:B,push:he,replace:de,go:Ne,back:()=>Ne(-1),forward:()=>Ne(1),beforeEach:U.add,beforeResolve:W.add,afterEach:q.add,onError:Te.add,isReady:Ae,install(Ve){const Ye=this;Ve.component("RouterLink",RouterLink),Ve.component("RouterView",RouterView),Ve.config.globalProperties.$router=Ye,Object.defineProperty(Ve.config.globalProperties,"$route",{get:()=>unref(Y)}),isBrowser&&!Ie&&Y.value===START_LOCATION_NORMALIZED&&(Ie=!0,he(G.location).catch(st=>{}));const et={};for(let st in START_LOCATION_NORMALIZED)et[st]=computed(()=>Y.value[st]);Ve.provide(routerKey,Ye),Ve.provide(routeLocationKey,reactive(et)),Ve.provide(routerViewLocationKey,Y);let Je=Ve.unmount;Ge.add(Ve),Ve.unmount=function(){Ge.delete(Ve),Ge.size<1&&(xe(),Y.value=START_LOCATION_NORMALIZED,Ie=!1,Le=!1),Je.call(this,arguments)}}}}function runGuardQueue(B){return B.reduce((R,F)=>R.then(()=>F()),Promise.resolve())}function extractChangingRecords(B,R){const F=[],D=[],G=[],U=Math.max(R.matched.length,B.matched.length);for(let W=0;W{if(D=`${base$2}${D}`,D in seen)return;seen[D]=!0;const G=D.endsWith(".css"),U=G?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${D}"]${U}`))return;const W=document.createElement("link");if(W.rel=G?"stylesheet":scriptRel,G||(W.as="script",W.crossOrigin=""),W.href=D,document.head.appendChild(W),G)return new Promise((q,Y)=>{W.addEventListener("load",q),W.addEventListener("error",()=>Y(new Error(`Unable to preload CSS for ${D}`)))})})).then(()=>R())};var pMinDelay$2={exports:{}},yoctodelay=B=>new Promise(R=>setTimeout(R,B));const delay=yoctodelay,pMinDelay=async(B,R,F)=>{F={delayRejection:!0,...F};let D;F.delayRejection&&(B=B.catch(U=>{D=U}));const[G]=await Promise.all([B,delay(R)]);return D?Promise.reject(D):G};pMinDelay$2.exports=pMinDelay;pMinDelay$2.exports.default=pMinDelay;var pMinDelay$1=pMinDelay$2.exports;const el=document.getElementById("loading"),close$2=async()=>{var B;await pMinDelay$1(Promise.resolve(),300),el==null||el.classList.remove("show"),(B=document.getElementById("update"))==null||B.classList.remove("show")},open$1=()=>{el==null||el.classList.add("show")};function __variableDynamicImportRuntime0__(B){switch(B){case"../src/pages/baseClass/index.tsx":return __vitePreload(()=>import("./index.7263b250.js"),["assets/index.7263b250.js","assets/index.4b7cbd62.css","assets/index.9b042762.js"]);case"../src/pages/classify/index.tsx":return __vitePreload(()=>import("./index.3827ec2d.js"),["assets/index.3827ec2d.js","assets/index.f442919d.css","assets/index.9b042762.js"]);case"../src/pages/detail/index.tsx":return __vitePreload(()=>import("./index.50f7d48d.js"),["assets/index.50f7d48d.js","assets/index.b8ab8b80.css","assets/index.270b5f1c.js","assets/index.9b042762.js","assets/index.04ceacbb.js","assets/index.06f6a16d.css","assets/music.b35eb5be.js","assets/state.731c32e9.js","assets/vip.af07eab2.js","assets/vip.838f4afe.css"]);case"../src/pages/list/index.tsx":return __vitePreload(()=>import("./index.c3a1fa86.js"),["assets/index.c3a1fa86.js","assets/index.be7ceb5d.css","assets/state.731c32e9.js","assets/vip.af07eab2.js","assets/vip.838f4afe.css","assets/music.b35eb5be.js"]);case"../src/pages/notfund/index.tsx":return __vitePreload(()=>import("./index.c41b38b5.js"),[]);case"../src/pages/render-test/index.tsx":return __vitePreload(()=>import("./index.9578c538.js"),[]);case"../src/pages/report/index.tsx":return __vitePreload(()=>import("./index.aaeaa9d5.js").then(function(R){return R.i}),["assets/index.aaeaa9d5.js","assets/index.007e2b62.css","assets/index.04ceacbb.js","assets/index.06f6a16d.css","assets/music.b35eb5be.js","assets/index.a0d4ab04.js","assets/index.6e0505d3.css","assets/index.270b5f1c.js"]);default:return new Promise(function(R,F){(typeof queueMicrotask=="function"?queueMicrotask:setTimeout)(F.bind(null,new Error("Unknown variable dynamic import: "+B)))})}}const getRouterComponent=B=>async()=>{const R=setTimeout(()=>{open$1()},300);let F=Promise.resolve(null);try{F=await __variableDynamicImportRuntime0__(`../src/pages/${B}/index.tsx`)}catch{F=Promise.reject()}return clearTimeout(R),close$2(),F};var routes=[{path:"/",component:getRouterComponent("baseClass")},{path:"/classify",component:getRouterComponent("classify")},{path:"/list/:id",component:getRouterComponent("list"),meta:{keepAlive:!0}},{path:"/detail/:id",component:getRouterComponent("detail")},{path:"/evaluating/:id",component:getRouterComponent("detail")},{path:"/report",component:getRouterComponent("report")},{path:"/report/:id",component:getRouterComponent("report")},{path:"/render-test",component:getRouterComponent("render-test")},{path:"/vexflow-test",component:__vitePreload(()=>import("./index.943af03c.js"),[])},{path:"/:pathMatch(.*)*",component:getRouterComponent("notfund"),meta:{title:"404 Not Fund"}}];createRouter({history:createWebHashHistory(),routes});const tock="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",tick="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",b64toBlob=(B,R="",F=512)=>{const D=atob(B),G=[];for(let W=0;W=0&&K<=1){if(J._volume=K,J._muted)return J;J.usingWebAudio&&J.masterGain.gain.setValueAtTime(K,F.ctx.currentTime);for(var ie=0;ie=0;J--)K._howls[J].unload();return K.usingWebAudio&&K.ctx&&typeof K.ctx.close!="undefined"&&(K.ctx.close(),K.ctx=null,Z()),K},codecs:function(K){return(this||F)._codecs[K.replace(/^x-/,"")]},_setup:function(){var K=this||F;if(K.state=K.ctx&&K.ctx.state||"suspended",K._autoSuspend(),!K.usingWebAudio)if(typeof Audio!="undefined")try{var J=new Audio;typeof J.oncanplaythrough=="undefined"&&(K._canPlayEvent="canplay")}catch{K.noAudio=!0}else K.noAudio=!0;try{var J=new Audio;J.muted&&(K.noAudio=!0)}catch{}return K.noAudio||K._setupCodecs(),K},_setupCodecs:function(){var K=this||F,J=null;try{J=typeof Audio!="undefined"?new Audio:null}catch{return K}if(!J||typeof J.canPlayType!="function")return K;var ie=J.canPlayType("audio/mpeg;").replace(/^no$/,""),ne=K._navigator?K._navigator.userAgent:"",se=ne.match(/OPR\/([0-6].)/g),re=se&&parseInt(se[0].split("/")[1],10)<33,ae=ne.indexOf("Safari")!==-1&&ne.indexOf("Chrome")===-1,le=ne.match(/Version\/(.*?) /),ce=ae&&le&&parseInt(le[1],10)<15;return K._codecs={mp3:!!(!re&&(ie||J.canPlayType("audio/mp3;").replace(/^no$/,""))),mpeg:!!ie,opus:!!J.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!J.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!J.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!(J.canPlayType('audio/wav; codecs="1"')||J.canPlayType("audio/wav")).replace(/^no$/,""),aac:!!J.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!J.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(J.canPlayType("audio/x-m4a;")||J.canPlayType("audio/m4a;")||J.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(J.canPlayType("audio/x-m4b;")||J.canPlayType("audio/m4b;")||J.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(J.canPlayType("audio/x-mp4;")||J.canPlayType("audio/mp4;")||J.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!!(!ce&&J.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),webm:!!(!ce&&J.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),dolby:!!J.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(J.canPlayType("audio/x-flac;")||J.canPlayType("audio/flac;")).replace(/^no$/,"")},K},_unlockAudio:function(){var K=this||F;if(!(K._audioUnlocked||!K.ctx)){K._audioUnlocked=!1,K.autoUnlock=!1,!K._mobileUnloaded&&K.ctx.sampleRate!==44100&&(K._mobileUnloaded=!0,K.unload()),K._scratchBuffer=K.ctx.createBuffer(1,1,22050);var J=function(ie){for(;K._html5AudioPool.length0?ae._seek:ie._sprite[K][0]/1e3),he=Math.max(0,(ie._sprite[K][0]+ie._sprite[K][1])/1e3-ce),de=he*1e3/Math.abs(ae._rate),me=ie._sprite[K][0]/1e3,fe=(ie._sprite[K][0]+ie._sprite[K][1])/1e3;ae._sprite=K,ae._ended=!1;var ge=function(){ae._paused=!1,ae._seek=ce,ae._start=me,ae._stop=fe,ae._loop=!!(ae._loop||ie._sprite[K][2])};if(ce>=fe){ie._ended(ae);return}var Se=ae._node;if(ie._webAudio){var Ee=function(){ie._playLock=!1,ge(),ie._refreshBuffer(ae);var ye=ae._muted||ie._muted?0:ae._volume;Se.gain.setValueAtTime(ye,F.ctx.currentTime),ae._playStart=F.ctx.currentTime,typeof Se.bufferSource.start=="undefined"?ae._loop?Se.bufferSource.noteGrainOn(0,ce,86400):Se.bufferSource.noteGrainOn(0,ce,he):ae._loop?Se.bufferSource.start(0,ce,86400):Se.bufferSource.start(0,ce,he),de!==1/0&&(ie._endTimers[ae._id]=setTimeout(ie._ended.bind(ie,ae),de)),J||setTimeout(function(){ie._emit("play",ae._id),ie._loadQueue()},0)};F.state==="running"&&F.ctx.state!=="interrupted"?Ee():(ie._playLock=!0,ie.once("resume",Ee),ie._clearTimer(ae._id))}else{var ve=function(){Se.currentTime=ce,Se.muted=ae._muted||ie._muted||F._muted||Se.muted,Se.volume=ae._volume*F.volume(),Se.playbackRate=ae._rate;try{var ye=Se.play();if(ye&&typeof Promise!="undefined"&&(ye instanceof Promise||typeof ye.then=="function")?(ie._playLock=!0,ge(),ye.then(function(){ie._playLock=!1,Se._unlocked=!0,J?ie._loadQueue():ie._emit("play",ae._id)}).catch(function(){ie._playLock=!1,ie._emit("playerror",ae._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."),ae._ended=!0,ae._paused=!0})):J||(ie._playLock=!1,ge(),ie._emit("play",ae._id)),Se.playbackRate=ae._rate,Se.paused){ie._emit("playerror",ae._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.");return}K!=="__default"||ae._loop?ie._endTimers[ae._id]=setTimeout(ie._ended.bind(ie,ae),de):(ie._endTimers[ae._id]=function(){ie._ended(ae),Se.removeEventListener("ended",ie._endTimers[ae._id],!1)},Se.addEventListener("ended",ie._endTimers[ae._id],!1))}catch(Te){ie._emit("playerror",ae._id,Te)}};Se.src==="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"&&(Se.src=ie._src,Se.load());var xe=window&&window.ejecta||!Se.readyState&&F._navigator.isCocoonJS;if(Se.readyState>=3||xe)ve();else{ie._playLock=!0,ie._state="loading";var Pe=function(){ie._state="loaded",ve(),Se.removeEventListener(F._canPlayEvent,Pe,!1)};Se.addEventListener(F._canPlayEvent,Pe,!1),ie._clearTimer(ae._id)}}return ae._id},pause:function(K){var J=this;if(J._state!=="loaded"||J._playLock)return J._queue.push({event:"pause",action:function(){J.pause(K)}}),J;for(var ie=J._getSoundIds(K),ne=0;ne=0?ne=parseInt(J[0],10):ie=parseFloat(J[0])}else J.length>=2&&(ie=parseFloat(J[0]),ne=parseInt(J[1],10));var ae;if(typeof ie!="undefined"&&ie>=0&&ie<=1){if(K._state!=="loaded"||K._playLock)return K._queue.push({event:"volume",action:function(){K.volume.apply(K,J)}}),K;typeof ne=="undefined"&&(K._volume=ie),ne=K._getSoundIds(ne);for(var le=0;le0?ne/he:ne),me=Date.now();K._fadeTo=ie,K._interval=setInterval(function(){var fe=(Date.now()-me)/ne;me=Date.now(),le+=ce*fe,le=Math.round(le*100)/100,ce<0?le=Math.max(ie,le):le=Math.min(ie,le),ae._webAudio?K._volume=le:ae.volume(le,K._id,!0),re&&(ae._volume=le),(ieJ&&le>=ie)&&(clearInterval(K._interval),K._interval=null,K._fadeTo=null,ae.volume(ie,K._id),ae._emit("fade",K._id))},de)},_stopFade:function(K){var J=this,ie=J._soundById(K);return ie&&ie._interval&&(J._webAudio&&ie._node.gain.cancelScheduledValues(F.ctx.currentTime),clearInterval(ie._interval),ie._interval=null,J.volume(ie._fadeTo,K),ie._fadeTo=null,J._emit("fade",K)),J},loop:function(){var K=this,J=arguments,ie,ne,se;if(J.length===0)return K._loop;if(J.length===1)if(typeof J[0]=="boolean")ie=J[0],K._loop=ie;else return se=K._soundById(parseInt(J[0],10)),se?se._loop:!1;else J.length===2&&(ie=J[0],ne=parseInt(J[1],10));for(var re=K._getSoundIds(ne),ae=0;ae=0?ne=parseInt(J[0],10):ie=parseFloat(J[0])}else J.length===2&&(ie=parseFloat(J[0]),ne=parseInt(J[1],10));var ae;if(typeof ie=="number"){if(K._state!=="loaded"||K._playLock)return K._queue.push({event:"rate",action:function(){K.rate.apply(K,J)}}),K;typeof ne=="undefined"&&(K._rate=ie),ne=K._getSoundIds(ne);for(var le=0;le=0?ne=parseInt(J[0],10):K._sounds.length&&(ne=K._sounds[0]._id,ie=parseFloat(J[0]))}else J.length===2&&(ie=parseFloat(J[0]),ne=parseInt(J[1],10));if(typeof ne=="undefined")return 0;if(typeof ie=="number"&&(K._state!=="loaded"||K._playLock))return K._queue.push({event:"seek",action:function(){K.seek.apply(K,J)}}),K;var ae=K._soundById(ne);if(ae)if(typeof ie=="number"&&ie>=0){var le=K.playing(ne);le&&K.pause(ne,!0),ae._seek=ie,ae._ended=!1,K._clearTimer(ne),!K._webAudio&&ae._node&&!isNaN(ae._node.duration)&&(ae._node.currentTime=ie);var ce=function(){le&&K.play(ne,!0),K._emit("seek",ne)};if(le&&!K._webAudio){var he=function(){K._playLock?setTimeout(he,0):ce()};setTimeout(he,0)}else ce()}else if(K._webAudio){var de=K.playing(ne)?F.ctx.currentTime-ae._playStart:0,me=ae._rateSeek?ae._rateSeek-ae._seek:0;return ae._seek+(me+de*Math.abs(ae._rate))}else return ae._node.currentTime;return K},playing:function(K){var J=this;if(typeof K=="number"){var ie=J._soundById(K);return ie?!ie._paused:!1}for(var ne=0;ne=0&&F._howls.splice(ne,1);var se=!0;for(ie=0;ie=0){se=!1;break}return U&&se&&delete U[K._src],F.noAudio=!1,K._state="unloaded",K._sounds=[],K=null,null},on:function(K,J,ie,ne){var se=this,re=se["_on"+K];return typeof J=="function"&&re.push(ne?{id:ie,fn:J,once:ne}:{id:ie,fn:J}),se},off:function(K,J,ie){var ne=this,se=ne["_on"+K],re=0;if(typeof J=="number"&&(ie=J,J=null),J||ie)for(re=0;re=0;re--)(!se[re].id||se[re].id===J||K==="load")&&(setTimeout(function(ae){ae.call(this,J,ie)}.bind(ne,se[re].fn),0),se[re].once&&ne.off(K,se[re].fn,se[re].id));return ne._loadQueue(K),ne},_loadQueue:function(K){var J=this;if(J._queue.length>0){var ie=J._queue[0];ie.event===K&&(J._queue.shift(),J._loadQueue()),K||ie.action()}return J},_ended:function(K){var J=this,ie=K._sprite;if(!J._webAudio&&K._node&&!K._node.paused&&!K._node.ended&&K._node.currentTime=0;ne--){if(ie<=J)return;K._sounds[ne]._ended&&(K._webAudio&&K._sounds[ne]._node&&K._sounds[ne]._node.disconnect(0),K._sounds.splice(ne,1),ie--)}}},_getSoundIds:function(K){var J=this;if(typeof K=="undefined"){for(var ie=[],ne=0;ne=0;if(F._scratchBuffer&&K.bufferSource&&(K.bufferSource.onended=null,K.bufferSource.disconnect(0),ie))try{K.bufferSource.buffer=F._scratchBuffer}catch{}return K.bufferSource=null,J},_clearSound:function(K){var J=/MSIE |Trident\//.test(F._navigator&&F._navigator.userAgent);J||(K.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var G=function(K){this._parent=K,this.init()};G.prototype={init:function(){var K=this,J=K._parent;return K._muted=J._muted,K._loop=J._loop,K._volume=J._volume,K._rate=J._rate,K._seek=0,K._paused=!0,K._ended=!0,K._sprite="__default",K._id=++F._counter,J._sounds.push(K),K.create(),K},create:function(){var K=this,J=K._parent,ie=F._muted||K._muted||K._parent._muted?0:K._volume;return J._webAudio?(K._node=typeof F.ctx.createGain=="undefined"?F.ctx.createGainNode():F.ctx.createGain(),K._node.gain.setValueAtTime(ie,F.ctx.currentTime),K._node.paused=!0,K._node.connect(F.masterGain)):F.noAudio||(K._node=F._obtainHtml5Audio(),K._errorFn=K._errorListener.bind(K),K._node.addEventListener("error",K._errorFn,!1),K._loadFn=K._loadListener.bind(K),K._node.addEventListener(F._canPlayEvent,K._loadFn,!1),K._endFn=K._endListener.bind(K),K._node.addEventListener("ended",K._endFn,!1),K._node.src=J._src,K._node.preload=J._preload===!0?"auto":J._preload,K._node.volume=ie*F.volume(),K._node.load()),K},reset:function(){var K=this,J=K._parent;return K._muted=J._muted,K._loop=J._loop,K._volume=J._volume,K._rate=J._rate,K._seek=0,K._rateSeek=0,K._paused=!0,K._ended=!0,K._sprite="__default",K._id=++F._counter,K},_errorListener:function(){var K=this;K._parent._emit("loaderror",K._id,K._node.error?K._node.error.code:0),K._node.removeEventListener("error",K._errorFn,!1)},_loadListener:function(){var K=this,J=K._parent;J._duration=Math.ceil(K._node.duration*10)/10,Object.keys(J._sprite).length===0&&(J._sprite={__default:[0,J._duration*1e3]}),J._state!=="loaded"&&(J._state="loaded",J._emit("load"),J._loadQueue()),K._node.removeEventListener(F._canPlayEvent,K._loadFn,!1)},_endListener:function(){var K=this,J=K._parent;J._duration===1/0&&(J._duration=Math.ceil(K._node.duration*10)/10,J._sprite.__default[1]===1/0&&(J._sprite.__default[1]=J._duration*1e3),J._ended(K)),K._node.removeEventListener("ended",K._endFn,!1)}};var U={},W=function(K){var J=K._src;if(U[J]){K._duration=U[J].duration,Q(K);return}if(/^data:[^;]+;base64,/.test(J)){for(var ie=atob(J.split(",")[1]),ne=new Uint8Array(ie.length),se=0;se0?(U[J._src]=se,Q(J,se)):ie()};typeof Promise!="undefined"&&F.ctx.decodeAudioData.length===1?F.ctx.decodeAudioData(K).then(ne).catch(ie):F.ctx.decodeAudioData(K,ne,ie)},Q=function(K,J){J&&!K._duration&&(K._duration=J.duration),Object.keys(K._sprite).length===0&&(K._sprite={__default:[0,K._duration*1e3]}),K._state!=="loaded"&&(K._state="loaded",K._emit("load"),K._loadQueue())},Z=function(){if(!!F.usingWebAudio){try{typeof AudioContext!="undefined"?F.ctx=new AudioContext:typeof webkitAudioContext!="undefined"?F.ctx=new webkitAudioContext:F.usingWebAudio=!1}catch{F.usingWebAudio=!1}F.ctx||(F.usingWebAudio=!1);var K=/iP(hone|od|ad)/.test(F._navigator&&F._navigator.platform),J=F._navigator&&F._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),ie=J?parseInt(J[1],10):null;if(K&&ie&&ie<9){var ne=/safari/.test(F._navigator&&F._navigator.userAgent.toLowerCase());F._navigator&&!ne&&(F.usingWebAudio=!1)}F.usingWebAudio&&(F.masterGain=typeof F.ctx.createGain=="undefined"?F.ctx.createGainNode():F.ctx.createGain(),F.masterGain.gain.setValueAtTime(F._muted?0:F._volume,F.ctx.currentTime),F.masterGain.connect(F.ctx.destination)),F._setup()}};B.Howler=F,B.Howl=D,typeof commonjsGlobal$2!="undefined"?(commonjsGlobal$2.HowlerGlobal=R,commonjsGlobal$2.Howler=F,commonjsGlobal$2.Howl=D,commonjsGlobal$2.Sound=G):typeof window!="undefined"&&(window.HowlerGlobal=R,window.Howler=F,window.Howl=D,window.Sound=G)})();/*! * Spatial Plugin - Adds support for stereo and 3D audio where Web Audio is supported. * * howler.js v2.2.3 * howlerjs.com * * (c) 2013-2020, James Simpson of GoldFire Studios * goldfirestudios.com * * MIT License */(function(){HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(F){var D=this;if(!D.ctx||!D.ctx.listener)return D;for(var G=D._howls.length-1;G>=0;G--)D._howls[G].stereo(F);return D},HowlerGlobal.prototype.pos=function(F,D,G){var U=this;if(!U.ctx||!U.ctx.listener)return U;if(D=typeof D!="number"?U._pos[1]:D,G=typeof G!="number"?U._pos[2]:G,typeof F=="number")U._pos=[F,D,G],typeof U.ctx.listener.positionX!="undefined"?(U.ctx.listener.positionX.setTargetAtTime(U._pos[0],Howler.ctx.currentTime,.1),U.ctx.listener.positionY.setTargetAtTime(U._pos[1],Howler.ctx.currentTime,.1),U.ctx.listener.positionZ.setTargetAtTime(U._pos[2],Howler.ctx.currentTime,.1)):U.ctx.listener.setPosition(U._pos[0],U._pos[1],U._pos[2]);else return U._pos;return U},HowlerGlobal.prototype.orientation=function(F,D,G,U,W,q){var Y=this;if(!Y.ctx||!Y.ctx.listener)return Y;var Q=Y._orientation;if(D=typeof D!="number"?Q[1]:D,G=typeof G!="number"?Q[2]:G,U=typeof U!="number"?Q[3]:U,W=typeof W!="number"?Q[4]:W,q=typeof q!="number"?Q[5]:q,typeof F=="number")Y._orientation=[F,D,G,U,W,q],typeof Y.ctx.listener.forwardX!="undefined"?(Y.ctx.listener.forwardX.setTargetAtTime(F,Howler.ctx.currentTime,.1),Y.ctx.listener.forwardY.setTargetAtTime(D,Howler.ctx.currentTime,.1),Y.ctx.listener.forwardZ.setTargetAtTime(G,Howler.ctx.currentTime,.1),Y.ctx.listener.upX.setTargetAtTime(U,Howler.ctx.currentTime,.1),Y.ctx.listener.upY.setTargetAtTime(W,Howler.ctx.currentTime,.1),Y.ctx.listener.upZ.setTargetAtTime(q,Howler.ctx.currentTime,.1)):Y.ctx.listener.setOrientation(F,D,G,U,W,q);else return Q;return Y},Howl.prototype.init=function(F){return function(D){var G=this;return G._orientation=D.orientation||[1,0,0],G._stereo=D.stereo||null,G._pos=D.pos||null,G._pannerAttr={coneInnerAngle:typeof D.coneInnerAngle!="undefined"?D.coneInnerAngle:360,coneOuterAngle:typeof D.coneOuterAngle!="undefined"?D.coneOuterAngle:360,coneOuterGain:typeof D.coneOuterGain!="undefined"?D.coneOuterGain:0,distanceModel:typeof D.distanceModel!="undefined"?D.distanceModel:"inverse",maxDistance:typeof D.maxDistance!="undefined"?D.maxDistance:1e4,panningModel:typeof D.panningModel!="undefined"?D.panningModel:"HRTF",refDistance:typeof D.refDistance!="undefined"?D.refDistance:1,rolloffFactor:typeof D.rolloffFactor!="undefined"?D.rolloffFactor:1},G._onstereo=D.onstereo?[{fn:D.onstereo}]:[],G._onpos=D.onpos?[{fn:D.onpos}]:[],G._onorientation=D.onorientation?[{fn:D.onorientation}]:[],F.call(this,D)}}(Howl.prototype.init),Howl.prototype.stereo=function(F,D){var G=this;if(!G._webAudio)return G;if(G._state!=="loaded")return G._queue.push({event:"stereo",action:function(){G.stereo(F,D)}}),G;var U=typeof Howler.ctx.createStereoPanner=="undefined"?"spatial":"stereo";if(typeof D=="undefined")if(typeof F=="number")G._stereo=F,G._pos=[F,0,0];else return G._stereo;for(var W=G._getSoundIds(D),q=0;q(browserInfo$5.huawei?.2:.1)/B*1e3;let htick=new howler.Howl({src:tickUrl,format:["mp3"]}),htock=new howler.Howl({src:tockUrl,format:["mp3"]});class Player{constructor(R,F){this.ticks=[],this.event=new EventEmitter,this.isRuning=!1,this.isNeedStop=!1,this.getTickByDots=(D,G)=>Array.from(Array(D)).map((U,W)=>({time:`0:${(G+W)*1.4}`,note:W===0?"C5":"c4",velocity:1,index:W+G})),this.formatTick=(D,G)=>{const U=[];for(let W=0;W{const Y=U%R.length===0?htick:htock;this.isNeedStop||(Y.play(),console.log(Y)),U{var Q;this.isRuning=!1,this.event.emit("stop"),console.log("tick stop"),(Q=this.part)==null||Q.clear()},450/F),U++},q=()=>{this.isNeedStop||setTimeout(()=>{try{W()}catch(Y){console.log("timeTickError",Y)}},700/F)};W()}async setAudioMode(R,F,D=1){if(await nextTick(),this.isRuning)return;this.isRuning=!0;const G=this.formatTick(R,D);this.startTick(G,F,R,D)}async start(R,F,D=1){this.isNeedStop=!1,this.setAudioMode(R,F,D)}destroy(){this.ticks=[],this.event.emit("destroy"),console.log("destroy"),state$2.activeTick=-1,state$2.activeTickRepeat=1,this.event.removeAllListeners(),this.isRuning=!1,this.isNeedStop=!0,this.part&&(this.part.clear(),this.part=null)}}const loop=()=>{},calls={},browserInfo$4=browser();browserInfo$4.isApp&&window.addEventListener("message",B=>{var R,F;console.log("app\u56DE\u8C03",B==null?void 0:B.data);try{const D=B.data?typeof B.data=="object"?B.data:JSON.parse(B.data):{},G=((R=D.content)==null?void 0:R.uuid)||D.uuid;try{D.content&&(D.content=typeof D.content=="object"?D.content:JSON.parse(D.content))}catch{}if(!G){const q=Object.keys(calls).filter(Y=>Y.indexOf(D.api)===0);for(const Y of q){const Q=calls[Y]||loop;typeof Q=="function"&&Q(D),Array.isArray(Q)&&Q.forEach(Z=>{typeof Z=="function"&&Z(D)})}return}const U=((F=D.content)==null?void 0:F.uuid)||D.uuid||D.api+D.uuid,W=calls[U]||loop;typeof W=="function"&&W(D)}catch(D){console.error("\u901A\u4FE1\u6D88\u606F\u89E3\u6790\u9519\u8BEF",D)}});var Km,Zm;const instance=window.ORCHESTRA||((Zm=(Km=window.webkit)==null?void 0:Km.messageHandlers)==null?void 0:Zm.ORCHESTRA),postMessage$1=(B,R)=>{if(browserInfo$4.isApp){const F=getRandomKey();calls[F]=R||loop,B.content=B.content?{...B.content,uuid:F}:{uuid:F},console.log("h5\u53D1\u9001:",JSON.stringify(B)),instance.postMessage(JSON.stringify(B))}},listenerMessage=(B,R)=>{if(browserInfo$4.isApp){const F=B;calls[F]||(calls[F]=[]),calls[F].push(R||loop)}},removeListenerMessage=(B,R)=>{if(browserInfo$4.isApp){const F=B;if(Array.isArray(calls[F])){const D=calls[F].indexOf(R);calls[F].splice(D,1)}}},promisefiyPostMessage=B=>new Promise(R=>{postMessage$1(B,F=>R(F))});var replace=String.prototype.replace,percentTwenties=/%20/g,Format={RFC1738:"RFC1738",RFC3986:"RFC3986"},formats$3={default:Format.RFC3986,formatters:{RFC1738:function(B){return replace.call(B,percentTwenties,"+")},RFC3986:function(B){return String(B)}},RFC1738:Format.RFC1738,RFC3986:Format.RFC3986},formats$2=formats$3,has$2=Object.prototype.hasOwnProperty,isArray$4=Array.isArray,hexTable=function(){for(var B=[],R=0;R<256;++R)B.push("%"+((R<16?"0":"")+R.toString(16)).toUpperCase());return B}(),compactQueue=function B(R){for(;R.length>1;){var F=R.pop(),D=F.obj[F.prop];if(isArray$4(D)){for(var G=[],U=0;U=48&&Q<=57||Q>=65&&Q<=90||Q>=97&&Q<=122||U===formats$2.RFC1738&&(Q===40||Q===41)){q+=W.charAt(Y);continue}if(Q<128){q=q+hexTable[Q];continue}if(Q<2048){q=q+(hexTable[192|Q>>6]+hexTable[128|Q&63]);continue}if(Q<55296||Q>=57344){q=q+(hexTable[224|Q>>12]+hexTable[128|Q>>6&63]+hexTable[128|Q&63]);continue}Y+=1,Q=65536+((Q&1023)<<10|W.charCodeAt(Y)&1023),q+=hexTable[240|Q>>18]+hexTable[128|Q>>12&63]+hexTable[128|Q>>6&63]+hexTable[128|Q&63]}return q},compact=function B(R){for(var F=[{obj:{o:R},prop:"o"}],D=[],G=0;G0?se.join(",")||null:void 0}];else if(isArray$3(q))le=q;else{var ce=Object.keys(se);le=Y?ce.sort(Y):ce}for(var he=0;he0?J+K:""},utils$1=utils$3,has=Object.prototype.hasOwnProperty,isArray$2=Array.isArray,defaults={allowDots:!1,allowPrototypes:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decoder:utils$1.decode,delimiter:"&",depth:5,ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictNullHandling:!1},interpretNumericEntities=function(B){return B.replace(/&#(\d+);/g,function(R,F){return String.fromCharCode(parseInt(F,10))})},parseArrayValue=function(B,R){return B&&typeof B=="string"&&R.comma&&B.indexOf(",")>-1?B.split(","):B},isoSentinel="utf8=%26%2310003%3B",charsetSentinel="utf8=%E2%9C%93",parseValues=function B(R,F){var D={},G=F.ignoreQueryPrefix?R.replace(/^\?/,""):R,U=F.parameterLimit===1/0?void 0:F.parameterLimit,W=G.split(F.delimiter,U),q=-1,Y,Q=F.charset;if(F.charsetSentinel)for(Y=0;Y-1&&(ne=isArray$2(ne)?[ne]:ne),has.call(D,ie)?D[ie]=utils$1.combine(D[ie],ne):D[ie]=ne}return D},parseObject=function(B,R,F,D){for(var G=D?R:parseArrayValue(R,F),U=B.length-1;U>=0;--U){var W,q=B[U];if(q==="[]"&&F.parseArrays)W=[].concat(G);else{W=F.plainObjects?Object.create(null):{};var Y=q.charAt(0)==="["&&q.charAt(q.length-1)==="]"?q.slice(1,-1):q,Q=parseInt(Y,10);!F.parseArrays&&Y===""?W={0:G}:!isNaN(Q)&&q!==Y&&String(Q)===Y&&Q>=0&&F.parseArrays&&Q<=F.arrayLimit?(W=[],W[Q]=G):W[Y]=G}G=W}return G},parseKeys=function B(R,F,D,G){if(!!R){var U=D.allowDots?R.replace(/\.([^.[]+)/g,"[$1]"):R,W=/(\[[^[\]]*])/,q=/(\[[^[\]]*])/g,Y=D.depth>0&&W.exec(U),Q=Y?U.slice(0,Y.index):U,Z=[];if(Q){if(!D.plainObjects&&has.call(Object.prototype,Q)&&!D.allowPrototypes)return;Z.push(Q)}for(var K=0;D.depth>0&&(Y=q.exec(U))!==null&&K-1};function normalizeName(B){if(typeof B!="string"&&(B=String(B)),/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(B)||B==="")throw new TypeError('Invalid character in header field name: "'+B+'"');return B.toLowerCase()}function normalizeValue(B){return typeof B!="string"&&(B=String(B)),B}function iteratorFor(B){var R={next:function(){var F=B.shift();return{done:F===void 0,value:F}}};return support.iterable&&(R[Symbol.iterator]=function(){return R}),R}function Headers(B){this.map={},B instanceof Headers?B.forEach(function(R,F){this.append(F,R)},this):Array.isArray(B)?B.forEach(function(R){this.append(R[0],R[1])},this):B&&Object.getOwnPropertyNames(B).forEach(function(R){this.append(R,B[R])},this)}Headers.prototype.append=function(B,R){B=normalizeName(B),R=normalizeValue(R);var F=this.map[B];this.map[B]=F?F+", "+R:R};Headers.prototype.delete=function(B){delete this.map[normalizeName(B)]};Headers.prototype.get=function(B){return B=normalizeName(B),this.has(B)?this.map[B]:null};Headers.prototype.has=function(B){return this.map.hasOwnProperty(normalizeName(B))};Headers.prototype.set=function(B,R){this.map[normalizeName(B)]=normalizeValue(R)};Headers.prototype.forEach=function(B,R){for(var F in this.map)this.map.hasOwnProperty(F)&&B.call(R,this.map[F],F,this)};Headers.prototype.keys=function(){var B=[];return this.forEach(function(R,F){B.push(F)}),iteratorFor(B)};Headers.prototype.values=function(){var B=[];return this.forEach(function(R){B.push(R)}),iteratorFor(B)};Headers.prototype.entries=function(){var B=[];return this.forEach(function(R,F){B.push([F,R])}),iteratorFor(B)};support.iterable&&(Headers.prototype[Symbol.iterator]=Headers.prototype.entries);function consumed(B){if(B.bodyUsed)return Promise.reject(new TypeError("Already read"));B.bodyUsed=!0}function fileReaderReady(B){return new Promise(function(R,F){B.onload=function(){R(B.result)},B.onerror=function(){F(B.error)}})}function readBlobAsArrayBuffer(B){var R=new FileReader,F=fileReaderReady(R);return R.readAsArrayBuffer(B),F}function readBlobAsText(B){var R=new FileReader,F=fileReaderReady(R);return R.readAsText(B),F}function readArrayBufferAsText(B){for(var R=new Uint8Array(B),F=new Array(R.length),D=0;D=0&&typeof this._bodyInit!="string"&&(this._bodyInit=this._bodyText):typeof B=="string"?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):support.searchParams&&URLSearchParams.prototype.isPrototypeOf(B)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8")},support.blob&&(this.blob=function(){var B=consumed(this);if(B)return B;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){if(this._bodyArrayBuffer){var B=consumed(this);return B||(ArrayBuffer.isView(this._bodyArrayBuffer)?Promise.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset,this._bodyArrayBuffer.byteOffset+this._bodyArrayBuffer.byteLength)):Promise.resolve(this._bodyArrayBuffer))}else return this.blob().then(readBlobAsArrayBuffer)}),this.text=function(){var B=consumed(this);if(B)return B;if(this._bodyBlob)return readBlobAsText(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},support.formData&&(this.formData=function(){return this.text().then(decode$1)}),this.json=function(){return this.text().then(JSON.parse)},this}var methods=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function normalizeMethod(B){var R=B.toUpperCase();return methods.indexOf(R)>-1?R:B}function Request(B,R){if(!(this instanceof Request))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');R=R||{};var F=R.body;if(B instanceof Request){if(B.bodyUsed)throw new TypeError("Already read");this.url=B.url,this.credentials=B.credentials,R.headers||(this.headers=new Headers(B.headers)),this.method=B.method,this.mode=B.mode,this.signal=B.signal,!F&&B._bodyInit!=null&&(F=B._bodyInit,B.bodyUsed=!0)}else this.url=String(B);if(this.credentials=R.credentials||this.credentials||"same-origin",(R.headers||!this.headers)&&(this.headers=new Headers(R.headers)),this.method=normalizeMethod(R.method||this.method||"GET"),this.mode=R.mode||this.mode||null,this.signal=R.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&F)throw new TypeError("Body not allowed for GET or HEAD requests");if(this._initBody(F),(this.method==="GET"||this.method==="HEAD")&&(R.cache==="no-store"||R.cache==="no-cache")){var D=/([?&])_=[^&]*/;if(D.test(this.url))this.url=this.url.replace(D,"$1_="+new Date().getTime());else{var G=/\?/;this.url+=(G.test(this.url)?"&":"?")+"_="+new Date().getTime()}}}Request.prototype.clone=function(){return new Request(this,{body:this._bodyInit})};function decode$1(B){var R=new FormData;return B.trim().split("&").forEach(function(F){if(F){var D=F.split("="),G=D.shift().replace(/\+/g," "),U=D.join("=").replace(/\+/g," ");R.append(decodeURIComponent(G),decodeURIComponent(U))}}),R}function parseHeaders(B){var R=new Headers,F=B.replace(/\r?\n[\t ]+/g," ");return F.split("\r").map(function(D){return D.indexOf(` `)===0?D.substr(1,D.length):D}).forEach(function(D){var G=D.split(":"),U=G.shift().trim();if(U){var W=G.join(":").trim();R.append(U,W)}}),R}Body.call(Request.prototype);function Response(B,R){if(!(this instanceof Response))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');R||(R={}),this.type="default",this.status=R.status===void 0?200:R.status,this.ok=this.status>=200&&this.status<300,this.statusText=R.statusText===void 0?"":""+R.statusText,this.headers=new Headers(R.headers),this.url=R.url||"",this._initBody(B)}Body.call(Response.prototype);Response.prototype.clone=function(){return new Response(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new Headers(this.headers),url:this.url})};Response.error=function(){var B=new Response(null,{status:0,statusText:""});return B.type="error",B};var redirectStatuses=[301,302,303,307,308];Response.redirect=function(B,R){if(redirectStatuses.indexOf(R)===-1)throw new RangeError("Invalid status code");return new Response(null,{status:R,headers:{location:B}})};var DOMException=global$1.DOMException;try{new DOMException}catch(B){DOMException=function(R,F){this.message=R,this.name=F;var D=Error(R);this.stack=D.stack},DOMException.prototype=Object.create(Error.prototype),DOMException.prototype.constructor=DOMException}function fetch$2(B,R){return new Promise(function(F,D){var G=new Request(B,R);if(G.signal&&G.signal.aborted)return D(new DOMException("Aborted","AbortError"));var U=new XMLHttpRequest;function W(){U.abort()}U.onload=function(){var Y={status:U.status,statusText:U.statusText,headers:parseHeaders(U.getAllResponseHeaders()||"")};Y.url="responseURL"in U?U.responseURL:Y.headers.get("X-Request-URL");var Q="response"in U?U.response:U.responseText;setTimeout(function(){F(new Response(Q,Y))},0)},U.onerror=function(){setTimeout(function(){D(new TypeError("Network request failed"))},0)},U.ontimeout=function(){setTimeout(function(){D(new TypeError("Network request failed"))},0)},U.onabort=function(){setTimeout(function(){D(new DOMException("Aborted","AbortError"))},0)};function q(Y){try{return Y===""&&global$1.location.href?global$1.location.href:Y}catch{return Y}}U.open(G.method,q(G.url),!0),G.credentials==="include"?U.withCredentials=!0:G.credentials==="omit"&&(U.withCredentials=!1),"responseType"in U&&(support.blob?U.responseType="blob":support.arrayBuffer&&G.headers.get("Content-Type")&&G.headers.get("Content-Type").indexOf("application/octet-stream")!==-1&&(U.responseType="arraybuffer")),R&&typeof R.headers=="object"&&!(R.headers instanceof Headers)?Object.getOwnPropertyNames(R.headers).forEach(function(Y){U.setRequestHeader(Y,normalizeValue(R.headers[Y]))}):G.headers.forEach(function(Y,Q){U.setRequestHeader(Q,Y)}),G.signal&&(G.signal.addEventListener("abort",W),U.onreadystatechange=function(){U.readyState===4&&G.signal.removeEventListener("abort",W)}),U.send(typeof G._bodyInit=="undefined"?null:G._bodyInit)})}fetch$2.polyfill=!0;global$1.fetch||(global$1.fetch=fetch$2,global$1.Headers=Headers,global$1.Request=Request,global$1.Response=Response);self.fetch.bind(self);function _defineProperty(B,R,F){return R in B?Object.defineProperty(B,R,{value:F,enumerable:!0,configurable:!0,writable:!0}):B[R]=F,B}var defineProperty=_defineProperty;function _objectSpread(B){for(var R=1;R1&&arguments[1]!==void 0?arguments[1]:{global:!1,core:!1,defaultInstance:!1},G=!1,U=!1,W=!1;if(typeof D=="number"?(process&&process.env,G=!0,U=!1):_typeof_1(D)==="object"&&D&&(U=D.global||!1,G=D.core||!1,W=D.defaultInstance||!1),U){B.globalMiddlewares.splice(B.globalMiddlewares.length-B.defaultGlobalMiddlewaresLength,0,F);return}if(G){B.coreMiddlewares.splice(B.coreMiddlewares.length-B.defaultCoreMiddlewaresLength,0,F);return}if(W){this.defaultMiddlewares.push(F);return}this.middlewares.push(F)}},{key:"execute",value:function(){var F=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,D=compose([].concat(toConsumableArray(this.middlewares),toConsumableArray(this.defaultMiddlewares),toConsumableArray(B.globalMiddlewares),toConsumableArray(B.coreMiddlewares)));return D(F)}}]),B}();Onion.globalMiddlewares=[];Onion.defaultGlobalMiddlewaresLength=0;Onion.coreMiddlewares=[];Onion.defaultCoreMiddlewaresLength=0;function _assertThisInitialized(B){if(B===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return B}var assertThisInitialized=_assertThisInitialized;function _possibleConstructorReturn(B,R){return R&&(_typeof_1(R)==="object"||typeof R=="function")?R:assertThisInitialized(B)}var possibleConstructorReturn=_possibleConstructorReturn,getPrototypeOf=createCommonjsModule$1(function(B){function R(F){return B.exports=R=Object.setPrototypeOf?Object.getPrototypeOf:function(G){return G.__proto__||Object.getPrototypeOf(G)},R(F)}B.exports=R}),setPrototypeOf=createCommonjsModule$1(function(B){function R(F,D){return B.exports=R=Object.setPrototypeOf||function(U,W){return U.__proto__=W,U},R(F,D)}B.exports=R});function _inherits(B,R){if(typeof R!="function"&&R!==null)throw new TypeError("Super expression must either be null or a function");B.prototype=Object.create(R&&R.prototype,{constructor:{value:B,writable:!0,configurable:!0}}),R&&setPrototypeOf(B,R)}var inherits=_inherits;function _isNativeFunction(B){return Function.toString.call(B).indexOf("[native code]")!==-1}var isNativeFunction=_isNativeFunction,construct=createCommonjsModule$1(function(B){function R(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function F(D,G,U){return R()?B.exports=F=Reflect.construct:B.exports=F=function(q,Y,Q){var Z=[null];Z.push.apply(Z,Y);var K=Function.bind.apply(q,Z),J=new K;return Q&&setPrototypeOf(J,Q.prototype),J},F.apply(null,arguments)}B.exports=F}),wrapNativeSuper=createCommonjsModule$1(function(B){function R(F){var D=typeof Map=="function"?new Map:void 0;return B.exports=R=function(U){if(U===null||!isNativeFunction(U))return U;if(typeof U!="function")throw new TypeError("Super expression must either be null or a function");if(typeof D!="undefined"){if(D.has(U))return D.get(U);D.set(U,W)}function W(){return construct(U,arguments,getPrototypeOf(this).constructor)}return W.prototype=Object.create(U.prototype,{constructor:{value:W,enumerable:!1,writable:!0,configurable:!0}}),setPrototypeOf(W,U)},R(F)}B.exports=R}),MapCache=function(){function B(R){classCallCheck(this,B),this.cache=new Map,this.timer={},this.extendOptions(R)}return createClass(B,[{key:"extendOptions",value:function(F){this.maxCache=F.maxCache||0}},{key:"get",value:function(F){return this.cache.get(JSON.stringify(F))}},{key:"set",value:function(F,D){var G=this,U=arguments.length>2&&arguments[2]!==void 0?arguments[2]:6e4;if(this.maxCache>0&&this.cache.size>=this.maxCache){var W=toConsumableArray(this.cache.keys())[0];this.cache.delete(W),this.timer[W]&&clearTimeout(this.timer[W])}var q=JSON.stringify(F);this.cache.set(q,D),U>0&&(this.timer[q]=setTimeout(function(){G.cache.delete(q),delete G.timer[q]},U))}},{key:"delete",value:function(F){var D=JSON.stringify(F);return delete this.timer[D],this.cache.delete(D)}},{key:"clear",value:function(){return this.timer={},this.cache.clear()}}]),B}(),RequestError=function(B){inherits(R,B);function R(F,D){var G,U=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"RequestError";return classCallCheck(this,R),G=possibleConstructorReturn(this,getPrototypeOf(R).call(this,F)),G.name="RequestError",G.request=D,G.type=U,G}return R}(wrapNativeSuper(Error)),ResponseError=function(B){inherits(R,B);function R(F,D,G,U){var W,q=arguments.length>4&&arguments[4]!==void 0?arguments[4]:"ResponseError";return classCallCheck(this,R),W=possibleConstructorReturn(this,getPrototypeOf(R).call(this,D||F.statusText)),W.name="ResponseError",W.data=G,W.response=F,W.request=U,W.type=q,W}return R}(wrapNativeSuper(Error));function readerGBK(B){return new Promise(function(R,F){var D=new FileReader;D.onload=function(){R(D.result)},D.onerror=F,D.readAsText(B,"GBK")})}function safeJsonParse(B){var R=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,F=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null,D=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null;try{return JSON.parse(B)}catch{if(R)throw new ResponseError(F,"JSON.parse fail",B,D,"ParseError")}return B}function timeout2Throw(B,R){return new Promise(function(F,D){setTimeout(function(){D(new RequestError("timeout of ".concat(B,"ms exceeded"),R,"Timeout"))},B)})}function cancel2Throw(B){return new Promise(function(R,F){B.cancelToken&&B.cancelToken.promise.then(function(D){F(D)})})}var toString$2=Object.prototype.toString;function getEnv(){var B;return typeof process!="undefined"&&toString$2.call(process)==="[object process]"&&(B="NODE"),typeof XMLHttpRequest!="undefined"&&(B="BROWSER"),B}function isArray$1(B){return _typeof_1(B)==="object"&&Object.prototype.toString.call(B)==="[object Array]"}function isURLSearchParams(B){return typeof URLSearchParams!="undefined"&&B instanceof URLSearchParams}function isDate(B){return _typeof_1(B)==="object"&&Object.prototype.toString.call(B)==="[object Date]"}function isObject(B){return B!==null&&_typeof_1(B)==="object"}function forEach2ObjArr(B,R){if(!!B)if(_typeof_1(B)!=="object"&&(B=[B]),isArray$1(B))for(var F=0;F1&&arguments[1]!==void 0?arguments[1]:{},D=F.prefix,G=F.suffix;return D&&(R="".concat(D).concat(R)),G&&(R="".concat(R).concat(G)),{url:R,options:F}},warnedCoreType=!1;function __defaultValidateCache(B,R){var F=R.method,D=F===void 0?"get":F;return D.toLowerCase()==="get"}function fetchMiddleware(B,R){if(!B)return R();var F=B.req;F=F===void 0?{}:F;var D=F.options,G=D===void 0?{}:D,U=F.url,W=U===void 0?"":U,q=B.cache,Y=B.responseInterceptors,Q=G.timeout,Z=Q===void 0?0:Q,K=G.__umiRequestCoreType__,J=K===void 0?"normal":K,ie=G.useCache,ne=ie===void 0?!1:ie,se=G.method,re=se===void 0?"get":se,ae=G.params,le=G.ttl,ce=G.validateCache,he=ce===void 0?__defaultValidateCache:ce;if(J!=="normal")return process&&process.env,R();var de=fetch;if(!de)throw new Error("Global fetch not exist!");var me=getEnv()==="BROWSER",fe=he(W,G)&&ne&&me;if(fe){var ge=q.get({url:W,params:ae,method:re});if(ge)return ge=ge.clone(),ge.useCache=!0,B.res=ge,R()}var Se;return Z>0?Se=Promise.race([cancel2Throw(G),de(W,G),timeout2Throw(Z,B.req)]):Se=Promise.race([cancel2Throw(G),de(W,G)]),Y.forEach(function(Ee){Se=Se.then(function(ve){var xe=typeof ve.clone=="function"?ve.clone():ve;return Ee(xe,G)})}),Se.then(function(Ee){if(fe&&Ee.status===200){var ve=Ee.clone();ve.useCache=!0,q.set({url:W,params:ae,method:re},ve,le)}return B.res=Ee,R()})}function parseResponseMiddleware(B,R){var F;return R().then(function(){if(!!B){var D=B.res,G=D===void 0?{}:D,U=B.req,W=U===void 0?{}:U,q=W||{},Y=q.options;Y=Y===void 0?{}:Y;var Q=Y.responseType,Z=Q===void 0?"json":Q,K=Y.charset,J=K===void 0?"utf8":K;Y.getResponse;var ie=Y.throwErrIfParseFail,ne=ie===void 0?!1:ie,se=Y.parseResponse,re=se===void 0?!0:se;if(!!re&&!(!G||!G.clone)){if(F=getEnv()==="BROWSER"?G.clone():G,F.useCache=G.useCache||!1,J==="gbk")try{return G.blob().then(readerGBK).then(function(ae){return safeJsonParse(ae,!1,F,W)})}catch(ae){throw new ResponseError(F,ae.message,null,W,"ParseError")}else if(Z==="json")return G.text().then(function(ae){return safeJsonParse(ae,ne,F,W)});try{return G[Z]()}catch{throw new ResponseError(F,"responseType not support",null,W,"ParseError")}}}}).then(function(D){if(!!B){B.res;var G=B.req,U=G===void 0?{}:G,W=U||{},q=W.options;q=q===void 0?{}:q;var Y=q.getResponse,Q=Y===void 0?!1:Y;if(!!F){if(F.status>=200&&F.status<300){if(Q){B.res={data:D,response:F};return}B.res=D;return}throw new ResponseError(F,"http error",D,U,"HttpError")}}}).catch(function(D){if(D instanceof RequestError||D instanceof ResponseError)throw D;var G=B.req,U=B.res;throw D.request=D.request||G,D.response=D.response||U,D.type=D.type||D.name,D.data=D.data||void 0,D})}function simplePostMiddleware(B,R){if(!B)return R();var F=B.req;F=F===void 0?{}:F;var D=F.options,G=D===void 0?{}:D,U=G.method,W=U===void 0?"get":U;if(["post","put","patch","delete"].indexOf(W.toLowerCase())===-1)return R();var q=G.requestType,Y=q===void 0?"json":q,Q=G.data;if(Q){var Z=Object.prototype.toString.call(Q);Z==="[object Object]"||Z==="[object Array]"?Y==="json"?(G.headers=objectSpread({Accept:"application/json","Content-Type":"application/json;charset=UTF-8"},G.headers),G.body=JSON.stringify(Q)):Y==="form"&&(G.headers=objectSpread({Accept:"application/json","Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"},G.headers),G.body=reqStringify(Q)):(G.headers=objectSpread({Accept:"application/json"},G.headers),G.body=Q)}return B.req.options=G,R()}function paramsSerialize(B,R){var F,D;if(B)if(R)F=R(B);else if(isURLSearchParams(B))F=B.toString();else if(isArray$1(B))D=[],forEach2ObjArr(B,function(U){U===null||typeof U=="undefined"?D.push(U):D.push(isObject(U)?JSON.stringify(U):U)}),F=reqStringify(D);else{D={},forEach2ObjArr(B,function(U,W){var q=U;U===null||typeof U=="undefined"?D[W]=U:isDate(U)?q=U.toISOString():isArray$1(U)?q=U:isObject(U)&&(q=JSON.stringify(U)),D[W]=q});var G=reqStringify(D);F=G}return F}function simpleGetMiddleware(B,R){if(!B)return R();var F=B.req;F=F===void 0?{}:F;var D=F.options,G=D===void 0?{}:D,U=G.paramsSerializer,W=G.params,q=B.req;q=q===void 0?{}:q;var Y=q.url,Q=Y===void 0?"":Y;G.method=G.method?G.method.toUpperCase():"GET",G.credentials=G.credentials||"same-origin";var Z=paramsSerialize(W,U);if(B.req.originUrl=Q,Z){var K=Q.indexOf("?")!==-1?"&":"?";B.req.url="".concat(Q).concat(K).concat(Z)}return B.req.options=G,R()}var globalMiddlewares=[simplePostMiddleware,simpleGetMiddleware,parseResponseMiddleware],coreMiddlewares=[fetchMiddleware];Onion.globalMiddlewares=globalMiddlewares;Onion.defaultGlobalMiddlewaresLength=globalMiddlewares.length;Onion.coreMiddlewares=coreMiddlewares;Onion.defaultCoreMiddlewaresLength=coreMiddlewares.length;var Core=function(){function B(R){classCallCheck(this,B),this.onion=new Onion([]),this.fetchIndex=0,this.mapCache=new MapCache(R),this.initOptions=R,this.instanceRequestInterceptors=[],this.instanceResponseInterceptors=[]}return createClass(B,[{key:"use",value:function(F){var D=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{global:!1,core:!1};return this.onion.use(F,D),this}},{key:"extendOptions",value:function(F){this.initOptions=mergeRequestOptions(this.initOptions,F),this.mapCache.extendOptions(F)}},{key:"dealRequestInterceptors",value:function(F){var D=function(W,q){return W.then(function(){var Y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return F.req.url=Y.url||F.req.url,F.req.options=Y.options||F.req.options,q(F.req.url,F.req.options)})},G=[].concat(toConsumableArray(B.requestInterceptors),toConsumableArray(this.instanceRequestInterceptors));return G.reduce(D,Promise.resolve()).then(function(){var U=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return F.req.url=U.url||F.req.url,F.req.options=U.options||F.req.options,Promise.resolve()})}},{key:"request",value:function(F,D){var G=this,U=this.onion,W={req:{url:F,options:D},res:null,cache:this.mapCache,responseInterceptors:[].concat(toConsumableArray(B.responseInterceptors),toConsumableArray(this.instanceResponseInterceptors))};if(typeof F!="string")throw new Error("url MUST be a string");return new Promise(function(q,Y){G.dealRequestInterceptors(W).then(function(){return U.execute(W)}).then(function(){q(W.res)}).catch(function(Q){var Z=W.req.options.errorHandler;if(Z)try{var K=Z(Q);q(K)}catch(J){Y(J)}else Y(Q)})})}}],[{key:"requestUse",value:function(F){var D=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{global:!0};if(typeof F!="function")throw new TypeError("Interceptor must be function!");D.global?B.requestInterceptors.push(F):this.instanceRequestInterceptors.push(F)}},{key:"responseUse",value:function(F){var D=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{global:!0};if(typeof F!="function")throw new TypeError("Interceptor must be function!");D.global?B.responseInterceptors.push(F):this.instanceResponseInterceptors.push(F)}}]),B}();Core.requestInterceptors=[addfix];Core.responseInterceptors=[];function Cancel(B){this.message=B}Cancel.prototype.toString=function B(){return this.message?"Cancel: ".concat(this.message):"Cancel"};Cancel.prototype.__CANCEL__=!0;function CancelToken(B){if(typeof B!="function")throw new TypeError("executor must be a function.");var R;this.promise=new Promise(function(G){R=G});var F=this;B(function(G){F.reason||(F.reason=new Cancel(G),R(F.reason))})}CancelToken.prototype.throwIfRequested=function B(){if(this.reason)throw this.reason};CancelToken.source=function B(){var R,F=new CancelToken(function(G){R=G});return{token:F,cancel:R}};function isCancel(B){return!!(B&&B.__CANCEL__)}var request$1=function B(){var R=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},F=new Core(R),D=function(W){var q=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Y=mergeRequestOptions(F.initOptions,q);return F.request(W,Y)};D.use=F.use.bind(F),D.fetchIndex=F.fetchIndex,D.interceptors={request:{use:Core.requestUse.bind(F)},response:{use:Core.responseUse.bind(F)}};var G=["get","post","delete","put","patch","head","options","rpc"];return G.forEach(function(U){D[U]=function(W,q){return D(W,objectSpread({},q,{method:U}))}}),D.Cancel=Cancel,D.CancelToken=CancelToken,D.isCancel=isCancel,D.extendOptions=F.extendOptions.bind(F),D.middlewares={instance:F.onion.middlewares,defaultInstance:F.onion.defaultMiddlewares,global:Onion.globalMiddlewares,core:Onion.coreMiddlewares},D},extend$1=function B(R){return request$1(R)};request$1({parseResponse:!1});var request$1$1=request$1({}),lodash_isempty={exports:{}};(function(B,R){var F=9007199254740991,D="[object Arguments]",G="[object Function]",U="[object GeneratorFunction]",W="[object Map]",q="[object Object]",Y="[object Promise]",Q="[object Set]",Z="[object WeakMap]",K="[object DataView]",J=/[\\^$.*+?()[\]{}|]/g,ie=/^\[object .+?Constructor\]$/,ne=typeof commonjsGlobal$2=="object"&&commonjsGlobal$2&&commonjsGlobal$2.Object===Object&&commonjsGlobal$2,se=typeof self=="object"&&self&&self.Object===Object&&self,re=ne||se||Function("return this")(),ae=R&&!R.nodeType&&R,le=ae&&!0&&B&&!B.nodeType&&B,ce=le&&le.exports===ae;function he(gt,Pt){return gt==null?void 0:gt[Pt]}function de(gt){var Pt=!1;if(gt!=null&&typeof gt.toString!="function")try{Pt=!!(gt+"")}catch{}return Pt}function me(gt,Pt){return function(kt){return gt(Pt(kt))}}var fe=Function.prototype,ge=Object.prototype,Se=re["__core-js_shared__"],Ee=function(){var gt=/[^.]+$/.exec(Se&&Se.keys&&Se.keys.IE_PROTO||"");return gt?"Symbol(src)_1."+gt:""}(),ve=fe.toString,xe=ge.hasOwnProperty,Pe=ge.toString,ye=RegExp("^"+ve.call(xe).replace(J,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Te=ce?re.Buffer:void 0,Le=ge.propertyIsEnumerable,we=Te?Te.isBuffer:void 0,Ae=me(Object.keys,Object),Me=yt(re,"DataView"),ke=yt(re,"Map"),Ne=yt(re,"Promise"),Ie=yt(re,"Set"),Ge=yt(re,"WeakMap"),ze=!Le.call({valueOf:1},"valueOf"),Ve=Ze(Me),Ye=Ze(ke),et=Ze(Ne),Je=Ze(Ie),st=Ze(Ge);function pt(gt){return Pe.call(gt)}function dt(gt){if(!ht(gt)||_e(gt))return!1;var Pt=ct(gt)||de(gt)?ye:ie;return Pt.test(Ze(gt))}function yt(gt,Pt){var kt=he(gt,Pt);return dt(kt)?kt:void 0}var Fe=pt;(Me&&Fe(new Me(new ArrayBuffer(1)))!=K||ke&&Fe(new ke)!=W||Ne&&Fe(Ne.resolve())!=Y||Ie&&Fe(new Ie)!=Q||Ge&&Fe(new Ge)!=Z)&&(Fe=function(gt){var Pt=Pe.call(gt),kt=Pt==q?gt.constructor:void 0,Yt=kt?Ze(kt):void 0;if(Yt)switch(Yt){case Ve:return K;case Ye:return W;case et:return Y;case Je:return Q;case st:return Z}return Pt});function _e(gt){return!!Ee&&Ee in gt}function je(gt){var Pt=gt&>.constructor,kt=typeof Pt=="function"&&Pt.prototype||ge;return gt===kt}function Ze(gt){if(gt!=null){try{return ve.call(gt)}catch{}try{return gt+""}catch{}}return""}function De(gt){return tt(gt)&&xe.call(gt,"callee")&&(!Le.call(gt,"callee")||Pe.call(gt)==D)}var Oe=Array.isArray;function Xe(gt){return gt!=null&&ut(gt.length)&&!ct(gt)}function tt(gt){return vt(gt)&&Xe(gt)}var nt=we||xt;function Ke(gt){if(Xe(gt)&&(Oe(gt)||typeof gt=="string"||typeof gt.splice=="function"||nt(gt)||De(gt)))return!gt.length;var Pt=Fe(gt);if(Pt==W||Pt==Q)return!gt.size;if(ze||je(gt))return!Ae(gt).length;for(var kt in gt)if(xe.call(gt,kt))return!1;return!0}function ct(gt){var Pt=ht(gt)?Pe.call(gt):"";return Pt==G||Pt==U}function ut(gt){return typeof gt=="number"&>>-1&>%1==0&><=F}function ht(gt){var Pt=typeof gt;return!!gt&&(Pt=="object"||Pt=="function")}function vt(gt){return!!gt&&typeof gt=="object"}function xt(){return!1}B.exports=Ke})(lodash_isempty,lodash_isempty.exports);var objectTag="[object Object]";function isHostObject(B){var R=!1;if(B!=null&&typeof B.toString!="function")try{R=!!(B+"")}catch{}return R}function overArg(B,R){return function(F){return B(R(F))}}var funcProto=Function.prototype,objectProto=Object.prototype,funcToString=funcProto.toString,hasOwnProperty=objectProto.hasOwnProperty,objectCtorString=funcToString.call(Object),objectToString=objectProto.toString,getPrototype=overArg(Object.getPrototypeOf,Object);function isObjectLike(B){return!!B&&typeof B=="object"}function isPlainObject$1(B){if(!isObjectLike(B)||objectToString.call(B)!=objectTag||isHostObject(B))return!1;var R=getPrototype(B);if(R===null)return!0;var F=hasOwnProperty.call(R,"constructor")&&R.constructor;return typeof F=="function"&&F instanceof F&&funcToString.call(F)==objectCtorString}var lodash_isplainobject=isPlainObject$1,lodash_transform={exports:{}};(function(B,R){var F=200,D="Expected a function",G="__lodash_hash_undefined__",U=1,W=2,q=1/0,Y=9007199254740991,Q="[object Arguments]",Z="[object Array]",K="[object Boolean]",J="[object Date]",ie="[object Error]",ne="[object Function]",se="[object GeneratorFunction]",re="[object Map]",ae="[object Number]",le="[object Object]",ce="[object Promise]",he="[object RegExp]",de="[object Set]",me="[object String]",fe="[object Symbol]",ge="[object WeakMap]",Se="[object ArrayBuffer]",Ee="[object DataView]",ve="[object Float32Array]",xe="[object Float64Array]",Pe="[object Int8Array]",ye="[object Int16Array]",Te="[object Int32Array]",Le="[object Uint8Array]",we="[object Uint8ClampedArray]",Ae="[object Uint16Array]",Me="[object Uint32Array]",ke=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ne=/^\w*$/,Ie=/^\./,Ge=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ze=/[\\^$.*+?()[\]{}|]/g,Ve=/\\(\\)?/g,Ye=/^\[object .+?Constructor\]$/,et=/^(?:0|[1-9]\d*)$/,Je={};Je[ve]=Je[xe]=Je[Pe]=Je[ye]=Je[Te]=Je[Le]=Je[we]=Je[Ae]=Je[Me]=!0,Je[Q]=Je[Z]=Je[Se]=Je[K]=Je[Ee]=Je[J]=Je[ie]=Je[ne]=Je[re]=Je[ae]=Je[le]=Je[he]=Je[de]=Je[me]=Je[ge]=!1;var st=typeof commonjsGlobal$2=="object"&&commonjsGlobal$2&&commonjsGlobal$2.Object===Object&&commonjsGlobal$2,pt=typeof self=="object"&&self&&self.Object===Object&&self,dt=st||pt||Function("return this")(),yt=R&&!R.nodeType&&R,Fe=yt&&!0&&B&&!B.nodeType&&B,_e=Fe&&Fe.exports===yt,je=_e&&st.process,Ze=function(){try{return je&&je.binding("util")}catch{}}(),De=Ze&&Ze.isTypedArray;function Oe(He,rt){for(var bt=-1,wt=He?He.length:0;++bt-1}function Ni(He,rt){var bt=this.__data__,wt=vs(bt,He);return wt<0?bt.push([He,rt]):bt[wt][1]=rt,this}kn.prototype.clear=Hs,kn.prototype.delete=ei,kn.prototype.get=Fi,kn.prototype.has=Ei,kn.prototype.set=Ni;function mi(He){var rt=-1,bt=He?He.length:0;for(this.clear();++rtRt))return!1;var _i=Lt.get(He);if(_i&&Lt.get(rt))return _i==rt;var Di=-1,Wi=!0,ki=Bt&U?new gr:void 0;for(Lt.set(He,rt),Lt.set(rt,He);++Di-1&&He%1==0&&He-1&&He%1==0&&He<=Y}function dn(He){var rt=typeof He;return!!He&&(rt=="object"||rt=="function")}function Dr(He){return!!He&&typeof He=="object"}function Hi(He){return typeof He=="symbol"||Dr(He)&&ui.call(He)==fe}var en=De?Ke(De):yr;function Ra(He){return He==null?"":Ia(He)}function Fa(He,rt,bt){var wt=He==null?void 0:Ta(He,rt);return wt===void 0?bt:wt}function Ba(He,rt){return He!=null&&Na(He,rt,qs)}function as(He){return ka(He)?Pa(He):Ma(He)}function Da(He,rt,bt){var wt=Un(He)||en(He);if(rt=Fr(rt),bt==null)if(wt||dn(He)){var Bt=He.constructor;wt?bt=Un(He)?new Bt:[]:bt=Pi(Bt)?bs(In(He)):{}}else bt={};return(wt?Oe:bo)(He,function(Lt,Ft,Rt){return rt(bt,Lt,Ft,Rt)}),bt}function tn(He){return He}function pn(He){return Qs(He)?tt(Ks(He)):_a(He)}B.exports=Da})(lodash_transform,lodash_transform.exports);const isEmpty$1=lodash_isempty.exports,isPlainObject=lodash_isplainobject,transform=lodash_transform.exports;var src=function B(R,{cleanKeys:F=[],cleanValues:D=[],emptyArrays:G=!0,emptyObjects:U=!0,emptyStrings:W=!0,NaNValues:q=!1,nullValues:Y=!0,undefinedValues:Q=!0}={}){return transform(R,(Z,K,J)=>{if(!F.includes(J)&&((Array.isArray(K)||isPlainObject(K))&&(K=B(K,{NaNValues:q,cleanKeys:F,cleanValues:D,emptyArrays:G,emptyObjects:U,emptyStrings:W,nullValues:Y,undefinedValues:Q})),!D.includes(K)&&!(U&&isPlainObject(K)&&isEmpty$1(K))&&!(G&&Array.isArray(K)&&!K.length)&&!(W&&K==="")&&!(q&&Number.isNaN(K))&&!(Y&&K===null)&&!(Q&&K===void 0))){if(Array.isArray(Z))return Z.push(K);Z[J]=K}})};let isOpenLogin=!1;const request=extend$1({requestType:"json",timeout:1e4,prefix:getRequestHostname()});request.use(async(B,R)=>{B.req,await R()});request.interceptors.request.use((B,R)=>{const F=sessionStorage.getItem("Authorization")||"";return{url:B,options:{...R,params:src(R.params),headers:{...R.headers,Authorization:F}}}},{global:!1});request.interceptors.response.use(async(B,R)=>{if(new URL(B.url),B.status>299||B.status<200){const D="\u670D\u52A1\u5668\u9519\u8BEF\uFF0C\u72B6\u6001\u7801"+B.status;throw Toast(D),new Error(D)}const F=await B.clone().json();if(F.code!==200&&F.errCode!==0){const D=F.msg||F.message||"\u5904\u7406\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5";F.code===403||F.code===401||Toast(D);const G=browser();throw F.code===403&&G.isApp&&!isOpenLogin&&(G.android?(postMessage$1({api:"login"}),window.DAYA.postMessage(JSON.stringify({api:"login"}))):G.iPhone&&window.webkit.messageHandlers.DAYA.postMessage(JSON.stringify({api:"login"}))),new Error(D)}return B},{global:!1});const difficultyData={ONE:"BEGINNER",TWO:"ADVANCED",THREE:"PERFORMER",1:"BEGINNER",2:"ADVANCED",3:"PERFORMER"},unitTestData=reactive({isSelectMeasureMode:!1});var UnitTest=defineComponent({name:"unitTest",setup(){const B=ref({difficulty:""}),R=async()=>{var U;const G=useOriginSearch();if(!G.questionId)return"";try{const W=await request.get(`/examinationQuestion/detail?examinationQuestionId=${G.questionId}`);B.value=JSON.parse((U=W==null?void 0:W.data)==null?void 0:U.questionExtendsInfo)||{},B.value.start=Number(B.value.start),B.value.end=Number(B.value.end)}catch(W){console.error("\u89E3\u6790\u5355\u5143\u6D4B\u9A8C\u66F2\u8C31\u9898\u76EE\u5931\u8D25",W)}D()},F=async()=>{var U;const G=useOriginSearch();if(!!G.lessonTrainingId){try{const W=await request.post(`/studentLessonTraining/trainingRecord/${G.courseScheduleId}?userId=${userInfo.id}`);if(Array.isArray((U=W==null?void 0:W.data)==null?void 0:U.trainings)){const q=W.data.trainings.find(Q=>Q.materialId==G.materialId),Y=JSON.parse(q.trainingContent);B.value.start=Number(Y.startSection),B.value.end=Number(Y.endSection),B.value.speed=isNaN(Y.speed)?0:Number(Y.speed)}}catch(W){console.error("\u89E3\u6790\u8BFE\u540E\u8BAD\u7EC3\u66F2\u8C31\u9898\u76EE\u5931\u8D25",W)}D()}},D=()=>{const G=state$2.times.filter(Y=>Y.noteElement.sourceMeasure.MeasureNumberXML==B.value.start),U=state$2.times.filter(Y=>Y.noteElement.sourceMeasure.MeasureNumberXML==B.value.end),W=G[0],q=U[U.length-1];W&&q&&(unitTestData.isSelectMeasureMode=!0,state$2.sectionStatus=!0,state$2.section=[W,q],difficultyData[B.value.difficulty]&&(state$3.eva.difficulty=difficultyData[B.value.difficulty]),B.value.speed&&changeSpeed(B.value.speed))};return onMounted(()=>{!browser().isStudent||(R(),F())}),()=>""}}),accompaniment="/orchestra-music-score/assets/accompaniment.b83f0e6e.svg",__glob_2_0=Object.freeze(Object.defineProperty({__proto__:null,default:accompaniment},Symbol.toStringTag,{value:"Module"})),back$1="/orchestra-music-score/assets/back.0e8784e6.svg",__glob_2_1=Object.freeze(Object.defineProperty({__proto__:null,default:back$1},Symbol.toStringTag,{value:"Module"})),backgroundClose="/orchestra-music-score/assets/background-close.292949ba.svg",__glob_2_2=Object.freeze(Object.defineProperty({__proto__:null,default:backgroundClose},Symbol.toStringTag,{value:"Module"})),background$1="/orchestra-music-score/assets/background.66e3a94f.svg",__glob_2_3=Object.freeze(Object.defineProperty({__proto__:null,default:background$1},Symbol.toStringTag,{value:"Module"})),camera="/orchestra-music-score/assets/camera.6735691d.svg",__glob_2_4=Object.freeze(Object.defineProperty({__proto__:null,default:camera},Symbol.toStringTag,{value:"Module"})),equilibrium="/orchestra-music-score/assets/equilibrium.f9043cf5.svg",__glob_2_5=Object.freeze(Object.defineProperty({__proto__:null,default:equilibrium},Symbol.toStringTag,{value:"Module"})),evaluating$1="/orchestra-music-score/assets/evaluating.9eb5cfac.svg",__glob_2_6=Object.freeze(Object.defineProperty({__proto__:null,default:evaluating$1},Symbol.toStringTag,{value:"Module"})),fingeringOff="/orchestra-music-score/assets/fingeringOff.356cc412.svg",__glob_2_7=Object.freeze(Object.defineProperty({__proto__:null,default:fingeringOff},Symbol.toStringTag,{value:"Module"})),fingeringOn="/orchestra-music-score/assets/fingeringOn.32644085.svg",__glob_2_8=Object.freeze(Object.defineProperty({__proto__:null,default:fingeringOn},Symbol.toStringTag,{value:"Module"})),gudingActive="/orchestra-music-score/assets/guding-active.ffb42216.svg",__glob_2_9=Object.freeze(Object.defineProperty({__proto__:null,default:gudingActive},Symbol.toStringTag,{value:"Module"})),guding="/orchestra-music-score/assets/guding.a3ea7233.svg",__glob_2_10=Object.freeze(Object.defineProperty({__proto__:null,default:guding},Symbol.toStringTag,{value:"Module"})),iconBack$1="/orchestra-music-score/assets/icon-back.c23f1b59.svg",__glob_2_11=Object.freeze(Object.defineProperty({__proto__:null,default:iconBack$1},Symbol.toStringTag,{value:"Module"})),iconStaffActive="/orchestra-music-score/assets/icon-staff-active.c1d6b682.svg",__glob_2_12=Object.freeze(Object.defineProperty({__proto__:null,default:iconStaffActive},Symbol.toStringTag,{value:"Module"})),iconStaff="/orchestra-music-score/assets/icon-staff.5a2b7c94.svg",__glob_2_13=Object.freeze(Object.defineProperty({__proto__:null,default:iconStaff},Symbol.toStringTag,{value:"Module"})),iconZhuanpu="/orchestra-music-score/assets/icon-zhuanpu.035ed1c0.svg",__glob_2_14=Object.freeze(Object.defineProperty({__proto__:null,default:iconZhuanpu},Symbol.toStringTag,{value:"Module"})),jia="/orchestra-music-score/assets/jia.362e133d.svg",__glob_2_15=Object.freeze(Object.defineProperty({__proto__:null,default:jia},Symbol.toStringTag,{value:"Module"})),jian="/orchestra-music-score/assets/jian.ce0820a8.svg",__glob_2_16=Object.freeze(Object.defineProperty({__proto__:null,default:jian},Symbol.toStringTag,{value:"Module"})),jianpu="/orchestra-music-score/assets/jianpu.70310e35.svg",__glob_2_17=Object.freeze(Object.defineProperty({__proto__:null,default:jianpu},Symbol.toStringTag,{value:"Module"})),model1$1="/orchestra-music-score/assets/model-1.5cdc3b59.svg",__glob_2_18=Object.freeze(Object.defineProperty({__proto__:null,default:model1$1},Symbol.toStringTag,{value:"Module"})),model2$1="/orchestra-music-score/assets/model-2.aedda1e7.svg",__glob_2_19=Object.freeze(Object.defineProperty({__proto__:null,default:model2$1},Symbol.toStringTag,{value:"Module"})),model3$1="/orchestra-music-score/assets/model-3.f6cc2e96.svg",__glob_2_20=Object.freeze(Object.defineProperty({__proto__:null,default:model3$1},Symbol.toStringTag,{value:"Module"})),modelType$1="/orchestra-music-score/assets/modelType.7dff5016.svg",__glob_2_21=Object.freeze(Object.defineProperty({__proto__:null,default:modelType$1},Symbol.toStringTag,{value:"Module"})),modelType1="/orchestra-music-score/assets/modelType1.e616d5d5.svg",__glob_2_22=Object.freeze(Object.defineProperty({__proto__:null,default:modelType1},Symbol.toStringTag,{value:"Module"})),modelType2="/orchestra-music-score/assets/modelType2.4364a0ba.svg",__glob_2_23=Object.freeze(Object.defineProperty({__proto__:null,default:modelType2},Symbol.toStringTag,{value:"Module"})),musicList="/orchestra-music-score/assets/music-list.8ad9f128.svg",__glob_2_24=Object.freeze(Object.defineProperty({__proto__:null,default:musicList},Symbol.toStringTag,{value:"Module"})),musicList1="/orchestra-music-score/assets/music-list1.16180b5c.svg",__glob_2_25=Object.freeze(Object.defineProperty({__proto__:null,default:musicList1},Symbol.toStringTag,{value:"Module"})),music="/orchestra-music-score/assets/music.855d26de.svg",__glob_2_26=Object.freeze(Object.defineProperty({__proto__:null,default:music},Symbol.toStringTag,{value:"Module"})),part="/orchestra-music-score/assets/part.7184ecd4.svg",__glob_2_27=Object.freeze(Object.defineProperty({__proto__:null,default:part},Symbol.toStringTag,{value:"Module"})),pause$1="/orchestra-music-score/assets/pause.1f3a158e.svg",__glob_2_28=Object.freeze(Object.defineProperty({__proto__:null,default:pause$1},Symbol.toStringTag,{value:"Module"})),play$1="/orchestra-music-score/assets/play.4cb46bbb.svg",__glob_2_29=Object.freeze(Object.defineProperty({__proto__:null,default:play$1},Symbol.toStringTag,{value:"Module"})),practice="/orchestra-music-score/assets/practice.a1fec217.svg",__glob_2_30=Object.freeze(Object.defineProperty({__proto__:null,default:practice},Symbol.toStringTag,{value:"Module"})),practise="/orchestra-music-score/assets/practise.cdd135b3.svg",__glob_2_31=Object.freeze(Object.defineProperty({__proto__:null,default:practise},Symbol.toStringTag,{value:"Module"})),record="/orchestra-music-score/assets/record.214e6a6d.svg",__glob_2_32=Object.freeze(Object.defineProperty({__proto__:null,default:record},Symbol.toStringTag,{value:"Module"})),resetShengyin="/orchestra-music-score/assets/reset-shengyin.af688c9a.svg",__glob_2_33=Object.freeze(Object.defineProperty({__proto__:null,default:resetShengyin},Symbol.toStringTag,{value:"Module"})),reset="/orchestra-music-score/assets/reset.c00c8122.svg",__glob_2_34=Object.freeze(Object.defineProperty({__proto__:null,default:reset},Symbol.toStringTag,{value:"Module"})),restore="/orchestra-music-score/assets/restore.3a4a6db3.svg",__glob_2_35=Object.freeze(Object.defineProperty({__proto__:null,default:restore},Symbol.toStringTag,{value:"Module"})),section$1="/orchestra-music-score/assets/section.e6286364.svg",__glob_2_36=Object.freeze(Object.defineProperty({__proto__:null,default:section$1},Symbol.toStringTag,{value:"Module"})),section1="/orchestra-music-score/assets/section1.fc48e73d.svg",__glob_2_37=Object.freeze(Object.defineProperty({__proto__:null,default:section1},Symbol.toStringTag,{value:"Module"})),section2="/orchestra-music-score/assets/section2.2194307f.svg",__glob_2_38=Object.freeze(Object.defineProperty({__proto__:null,default:section2},Symbol.toStringTag,{value:"Module"})),setting$1="/orchestra-music-score/assets/setting.d2c48eac.svg",__glob_2_39=Object.freeze(Object.defineProperty({__proto__:null,default:setting$1},Symbol.toStringTag,{value:"Module"})),shuodiaoActive="/orchestra-music-score/assets/shuodiao-active.6b157b93.svg",__glob_2_40=Object.freeze(Object.defineProperty({__proto__:null,default:shuodiaoActive},Symbol.toStringTag,{value:"Module"})),shuodiao="/orchestra-music-score/assets/shuodiao.da855d30.svg",__glob_2_41=Object.freeze(Object.defineProperty({__proto__:null,default:shuodiao},Symbol.toStringTag,{value:"Module"})),speed$2="/orchestra-music-score/assets/speed.256b84ef.svg",__glob_2_42=Object.freeze(Object.defineProperty({__proto__:null,default:speed$2},Symbol.toStringTag,{value:"Module"})),staff$1="/orchestra-music-score/assets/staff.f226ff22.svg",__glob_2_43=Object.freeze(Object.defineProperty({__proto__:null,default:staff$1},Symbol.toStringTag,{value:"Module"})),start$2="/orchestra-music-score/assets/start.7b27072b.svg",__glob_2_44=Object.freeze(Object.defineProperty({__proto__:null,default:start$2},Symbol.toStringTag,{value:"Module"})),stop="/orchestra-music-score/assets/stop.e36ceb44.svg",__glob_2_45=Object.freeze(Object.defineProperty({__proto__:null,default:stop},Symbol.toStringTag,{value:"Module"})),taskBg="/orchestra-music-score/assets/task-bg.9304b5bf.svg",__glob_2_46=Object.freeze(Object.defineProperty({__proto__:null,default:taskBg},Symbol.toStringTag,{value:"Module"})),tuning="/orchestra-music-score/assets/tuning.4b86afaf.svg",__glob_2_47=Object.freeze(Object.defineProperty({__proto__:null,default:tuning},Symbol.toStringTag,{value:"Module"})),volPlus="/orchestra-music-score/assets/vol-plus.8301fc70.svg",__glob_2_48=Object.freeze(Object.defineProperty({__proto__:null,default:volPlus},Symbol.toStringTag,{value:"Module"})),vol="/orchestra-music-score/assets/vol.4b3b0407.svg",__glob_2_49=Object.freeze(Object.defineProperty({__proto__:null,default:vol},Symbol.toStringTag,{value:"Module"})),____="/orchestra-music-score/assets/\u8BC4\u6D4B\u8BB0\u5F55.5949e468.svg",__glob_2_50=Object.freeze(Object.defineProperty({__proto__:null,default:____},Symbol.toStringTag,{value:"Module"}));const getAssetsHomeFile=B=>{var D;const R=`./icons/${B}.svg`;return(D={"./icons/accompaniment.svg":__glob_2_0,"./icons/back.svg":__glob_2_1,"./icons/background-close.svg":__glob_2_2,"./icons/background.svg":__glob_2_3,"./icons/camera.svg":__glob_2_4,"./icons/equilibrium.svg":__glob_2_5,"./icons/evaluating.svg":__glob_2_6,"./icons/fingeringOff.svg":__glob_2_7,"./icons/fingeringOn.svg":__glob_2_8,"./icons/guding-active.svg":__glob_2_9,"./icons/guding.svg":__glob_2_10,"./icons/icon-back.svg":__glob_2_11,"./icons/icon-staff-active.svg":__glob_2_12,"./icons/icon-staff.svg":__glob_2_13,"./icons/icon-zhuanpu.svg":__glob_2_14,"./icons/jia.svg":__glob_2_15,"./icons/jian.svg":__glob_2_16,"./icons/jianpu.svg":__glob_2_17,"./icons/model-1.svg":__glob_2_18,"./icons/model-2.svg":__glob_2_19,"./icons/model-3.svg":__glob_2_20,"./icons/modelType.svg":__glob_2_21,"./icons/modelType1.svg":__glob_2_22,"./icons/modelType2.svg":__glob_2_23,"./icons/music-list.svg":__glob_2_24,"./icons/music-list1.svg":__glob_2_25,"./icons/music.svg":__glob_2_26,"./icons/part.svg":__glob_2_27,"./icons/pause.svg":__glob_2_28,"./icons/play.svg":__glob_2_29,"./icons/practice.svg":__glob_2_30,"./icons/practise.svg":__glob_2_31,"./icons/record.svg":__glob_2_32,"./icons/reset-shengyin.svg":__glob_2_33,"./icons/reset.svg":__glob_2_34,"./icons/restore.svg":__glob_2_35,"./icons/section.svg":__glob_2_36,"./icons/section1.svg":__glob_2_37,"./icons/section2.svg":__glob_2_38,"./icons/setting.svg":__glob_2_39,"./icons/shuodiao-active.svg":__glob_2_40,"./icons/shuodiao.svg":__glob_2_41,"./icons/speed.svg":__glob_2_42,"./icons/staff.svg":__glob_2_43,"./icons/start.svg":__glob_2_44,"./icons/stop.svg":__glob_2_45,"./icons/task-bg.svg":__glob_2_46,"./icons/tuning.svg":__glob_2_47,"./icons/vol-plus.svg":__glob_2_48,"./icons/vol.svg":__glob_2_49,"./icons/\u8BC4\u6D4B\u8BB0\u5F55.svg":__glob_2_50}[R])==null?void 0:D.default};var ButtonIcon=defineComponent({name:"ButtonIcon",props:{name:{type:String}},setup(B){return()=>B.name?createVNode("img",{src:getAssetsHomeFile(B.name)},null):null}}),classnames$1={exports:{}};/*! Copyright (c) 2017 Jed Watson. Licensed under the MIT License (MIT), see http://jedwatson.github.io/classnames */(function(B){(function(){var R={}.hasOwnProperty;function F(){for(var D=[],G=0;G{}},updateSpeed:{type:Function,default:B=>{}},mode:{type:String},changeMode:{type:Function,default:B=>{}},lib:{type:Object}},setup(B){var Y;const{lib:R}=toRefs(B);state$1.speed=(Y=R.value)==null?void 0:Y.speed;const F=()=>{state$1.showHint=!0},D=()=>{state$1.showHint=!1},G=Q=>{state$1.speed=Q,B.changed(state$1.speed)},U=Q=>{state$1.speed=Q,B.updateSpeed(state$1.speed)},W=()=>{state$1.speed=Math.max(state$1.speed-1,45),B.changed(state$1.speed)},q=()=>{state$1.speed=Math.min(state$1.speed+1,270),B.changed(state$1.speed)};return()=>createVNode("div",{class:styles$p["speed-change"]},[createVNode("div",{class:styles$p.speed},[createVNode("div",null,[createVNode(Button,{color:"#01C1B5",icon:iconPlus,type:"primary",size:"mini",round:!0,disabled:state$1.speed==270,onClick:q},null),createVNode(Slider,{class:styles$p.slider,max:270,min:45,barHeight:"3px",buttonSize:"18px",modelValue:315-state$1.speed,"onUpdate:modelValue":Q=>U(315-Q),step:"1",vertical:!0,activeColor:"#ebedf0",onChange:Q=>G(315-Q),onDragStart:F,onDragEnd:D},{button:()=>createVNode("div",{class:styles$p["custom-button"]},[createVNode("span",null,[state$1.speed]),createVNode("div",{class:classnames(styles$p.title)},[createVNode("span",{class:styles$p.strong},[state$1.speed])])])}),createVNode(Button,{class:styles$p.min,color:"#01C1B5",icon:iconMinus,type:"primary",size:"mini",round:!0,disabled:state$1.speed==45,onClick:W},null),createVNode(Button,{class:styles$p.reset,color:"#01C1B5",icon:iconresetMinus,type:"primary",size:"mini",round:!0,onClick:()=>{var Q;state$2.activeDetail&&G((Q=state$2.activeDetail)==null?void 0:Q.originalSpeed)}},null)])])])},methods:{resetSpeed(){var B,R;state$1.speed=(B=this.lib)==null?void 0:B.speed,this.changed((R=this.lib)==null?void 0:R.speed)},refUpdateSpeed(B){state$1.speed=B,this.updateSpeed(state$1.speed)}}});const close$1="_close_1xean_1",bg$2="_bg_1xean_12";var styles$o={close:close$1,bg:bg$2},iconColse="/orchestra-music-score/assets/close.c15efc4b.svg",Popups=defineComponent({name:"ColexiuPopup",props:{data:{type:Object,default:()=>null},zIndex:{type:Number,default:void 0},closeable:{type:Boolean,default:!0},overlay:{type:Boolean,default:!0},style:{type:Object}},setup(B,{slots:R,expose:F}){const D=ref(!1),G=ref(!1),U=()=>{D.value=!0,G.value=!0},W=()=>{D.value=!1},q=()=>{G.value=!1};return F({show:D,close:()=>{D.value=!1},onShow:U,onClose:W,onClosed:q}),()=>createVNode(Popup,{show:D.value,zIndex:B.zIndex,onClose:W,onClosed:q,teleport:"body",onClickOverlay:W,overlay:B.overlay,round:!0,closeable:!1,style:{...B.style},class:styles$o.bg,lockScroll:!0},{default:()=>[G.value&&R.default&&R.default(B),B.closeable&&createVNode(Icon,{class:styles$o.close,name:iconColse,onClick:W},null)]})}});const title$6="_title_184ej_1",wrap$7="_wrap_184ej_8",item$2="_item_184ej_14",label$1="_label_184ej_18";var styles$n={title:title$6,wrap:wrap$7,item:item$2,label:label$1};const sliderClass={"active-color":"#FFB871","inactive-color":"#EAEAEA","button-size":"14"};var Equalizer=defineComponent({name:"ColexiuEqualizer",setup(){const B=ref(10);return()=>createVNode("div",{class:"containerPopups"},[createVNode("div",{class:styles$n.title},[createTextVNode("\u5747\u8861\u5668")]),createVNode("div",{class:styles$n.wrap},[createVNode("div",{class:styles$n.item},[createVNode("span",{class:styles$n.label},[createTextVNode("\u8282\u62CD\u5668")]),createVNode(Slider,mergeProps({modelValue:B.value,"onUpdate:modelValue":R=>B.value=R},sliderClass),null)]),createVNode(Divider,null,null),createVNode("div",{class:styles$n.item},[createVNode("span",{class:styles$n.label},[createTextVNode("\u4F34\u594F")]),createVNode(Slider,mergeProps({modelValue:B.value,"onUpdate:modelValue":R=>B.value=R},sliderClass),null)]),createVNode(Divider,null,null),createVNode("div",{class:styles$n.item},[createVNode("span",{class:styles$n.label},[createTextVNode("\u957F\u7B1B")]),createVNode(Slider,mergeProps({modelValue:B.value,"onUpdate:modelValue":R=>B.value=R},sliderClass),null)]),createVNode(Divider,null,null),createVNode("div",{class:styles$n.item},[createVNode("span",{class:styles$n.label},[createTextVNode("\u8428\u514B\u65AF")]),createVNode(Slider,mergeProps({modelValue:B.value,"onUpdate:modelValue":R=>B.value=R},sliderClass),null)]),createVNode(Divider,null,null),createVNode("div",{class:styles$n.item},[createVNode("span",{class:styles$n.label},[createTextVNode("\u5355\u7C27\u7BA1")]),createVNode(Slider,mergeProps({modelValue:B.value,"onUpdate:modelValue":R=>B.value=R},sliderClass),null)]),createVNode(Divider,null,null),createVNode("div",{class:styles$n.item},[createVNode("span",{class:styles$n.label},[createTextVNode("\u957F\u53F7")]),createVNode(Slider,mergeProps({modelValue:B.value,"onUpdate:modelValue":R=>B.value=R},sliderClass),null)])])])}});const container$7="_container_la5im_1",title$5="_title_la5im_5",practiseBtn="_practiseBtn_la5im_12",wrap$6="_wrap_la5im_21";var styles$m={container:container$7,title:title$5,practiseBtn,wrap:wrap$6};function _isSlot$3(B){return typeof B=="function"||Object.prototype.toString.call(B)==="[object Object]"&&!isVNode(B)}var Part=defineComponent({name:"ColexiuPart",setup(){const B=useOriginSearch(),R=Number(B["part-index"])||0,F=ref(state$2.partListNames[R]),D=()=>{const G=state$2.partListNames.indexOf(F.value);F.value=state$2.partListNames[G];const U=queryString.stringify({...B,"part-index":G});location.search=U};return()=>{let G;return createVNode("div",{class:["containerPopups",styles$m.container]},[createVNode("div",{class:styles$m.title},[createTextVNode("\u58F0\u90E8\u9009\u62E9")]),createVNode("div",{class:styles$m.wrap},[createVNode(RadioGroup,{modelValue:F.value,"onUpdate:modelValue":U=>F.value=U},_isSlot$3(G=state$2.partListNames.map(U=>createVNode(Radio,{name:U},_isSlot$3(U)?U:{default:()=>[U]})))?G:{default:()=>[G]})]),createVNode("div",{style:{display:"flex",justifyContent:"center"}},[createVNode(Button,{class:styles$m.practiseBtn,onClick:D},null)])])}}});const partPopup=ref(null),equalizerPopup=ref(null);var FloatWraper=defineComponent({name:"ColuxiuFloatWraper",setup(){return()=>createVNode(Fragment,null,[createVNode(Popups,{ref:partPopup,style:{borderRadius:"8px"}},{default:()=>[createVNode(Part,null,null)]}),createVNode(Popups,{ref:equalizerPopup,style:{borderRadius:"8px"}},{default:()=>[createVNode(Equalizer,null,null)]})])}});function _taggedTemplateLiteral(B,R){return R||(R=B.slice(0)),Object.freeze(Object.defineProperties(B,{raw:{value:Object.freeze(R)}}))}function __decorate(B,R,F,D){var G,U=arguments.length,W=U<3?R:D===null?D=Object.getOwnPropertyDescriptor(R,F):D;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")W=Reflect.decorate(B,R,F,D);else for(var q=B.length-1;q>=0;q--)(G=B[q])&&(W=(U<3?G(W):U>3?G(R,F,W):G(R,F))||W);return U>3&&W&&Object.defineProperty(R,F,W),W}/** * @license * Copyright 2019 Google LLC * SPDX-License-Identifier: BSD-3-Clause */const t$3=window.ShadowRoot&&(window.ShadyCSS===void 0||window.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,e$8=Symbol(),n$5=new Map;class s$3{constructor(R,F){if(this._$cssResult$=!0,F!==e$8)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=R}get styleSheet(){let R=n$5.get(this.cssText);return t$3&&R===void 0&&(n$5.set(this.cssText,R=new CSSStyleSheet),R.replaceSync(this.cssText)),R}toString(){return this.cssText}}const o$5=B=>new s$3(typeof B=="string"?B:B+"",e$8),r$3=(B,...R)=>{const F=B.length===1?B[0]:R.reduce((D,G,U)=>D+(W=>{if(W._$cssResult$===!0)return W.cssText;if(typeof W=="number")return W;throw Error("Value passed to 'css' function must be a 'css' function result: "+W+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(G)+B[U+1],B[0]);return new s$3(F,e$8)},i$3=(B,R)=>{t$3?B.adoptedStyleSheets=R.map(F=>F instanceof CSSStyleSheet?F:F.styleSheet):R.forEach(F=>{const D=document.createElement("style"),G=window.litNonce;G!==void 0&&D.setAttribute("nonce",G),D.textContent=F.cssText,B.appendChild(D)})},S$1=t$3?B=>B:B=>B instanceof CSSStyleSheet?(R=>{let F="";for(const D of R.cssRules)F+=D.cssText;return o$5(F)})(B):B;var s$2;const e$7=window.trustedTypes,r$2=e$7?e$7.emptyScript:"",h$2$1=window.reactiveElementPolyfillSupport,o$4={toAttribute(B,R){switch(R){case Boolean:B=B?r$2:null;break;case Object:case Array:B=B==null?B:JSON.stringify(B)}return B},fromAttribute(B,R){let F=B;switch(R){case Boolean:F=B!==null;break;case Number:F=B===null?null:Number(B);break;case Object:case Array:try{F=JSON.parse(B)}catch{F=null}}return F}},n$4=(B,R)=>R!==B&&(R==R||B==B),l$3={attribute:!0,type:String,converter:o$4,reflect:!1,hasChanged:n$4};class a$1 extends HTMLElement{constructor(){super(),this._$Et=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Ei=null,this.o()}static addInitializer(R){var F;(F=this.l)!==null&&F!==void 0||(this.l=[]),this.l.push(R)}static get observedAttributes(){this.finalize();const R=[];return this.elementProperties.forEach((F,D)=>{const G=this._$Eh(D,F);G!==void 0&&(this._$Eu.set(G,D),R.push(G))}),R}static createProperty(R,F=l$3){if(F.state&&(F.attribute=!1),this.finalize(),this.elementProperties.set(R,F),!F.noAccessor&&!this.prototype.hasOwnProperty(R)){const D=typeof R=="symbol"?Symbol():"__"+R,G=this.getPropertyDescriptor(R,D,F);G!==void 0&&Object.defineProperty(this.prototype,R,G)}}static getPropertyDescriptor(R,F,D){return{get(){return this[F]},set(G){const U=this[R];this[F]=G,this.requestUpdate(R,U,D)},configurable:!0,enumerable:!0}}static getPropertyOptions(R){return this.elementProperties.get(R)||l$3}static finalize(){if(this.hasOwnProperty("finalized"))return!1;this.finalized=!0;const R=Object.getPrototypeOf(this);if(R.finalize(),this.elementProperties=new Map(R.elementProperties),this._$Eu=new Map,this.hasOwnProperty("properties")){const F=this.properties,D=[...Object.getOwnPropertyNames(F),...Object.getOwnPropertySymbols(F)];for(const G of D)this.createProperty(G,F[G])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(R){const F=[];if(Array.isArray(R)){const D=new Set(R.flat(1/0).reverse());for(const G of D)F.unshift(S$1(G))}else R!==void 0&&F.push(S$1(R));return F}static _$Eh(R,F){const D=F.attribute;return D===!1?void 0:typeof D=="string"?D:typeof R=="string"?R.toLowerCase():void 0}o(){var R;this._$Ep=new Promise(F=>this.enableUpdating=F),this._$AL=new Map,this._$Em(),this.requestUpdate(),(R=this.constructor.l)===null||R===void 0||R.forEach(F=>F(this))}addController(R){var F,D;((F=this._$Eg)!==null&&F!==void 0?F:this._$Eg=[]).push(R),this.renderRoot!==void 0&&this.isConnected&&((D=R.hostConnected)===null||D===void 0||D.call(R))}removeController(R){var F;(F=this._$Eg)===null||F===void 0||F.splice(this._$Eg.indexOf(R)>>>0,1)}_$Em(){this.constructor.elementProperties.forEach((R,F)=>{this.hasOwnProperty(F)&&(this._$Et.set(F,this[F]),delete this[F])})}createRenderRoot(){var R;const F=(R=this.shadowRoot)!==null&&R!==void 0?R:this.attachShadow(this.constructor.shadowRootOptions);return i$3(F,this.constructor.elementStyles),F}connectedCallback(){var R;this.renderRoot===void 0&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),(R=this._$Eg)===null||R===void 0||R.forEach(F=>{var D;return(D=F.hostConnected)===null||D===void 0?void 0:D.call(F)})}enableUpdating(R){}disconnectedCallback(){var R;(R=this._$Eg)===null||R===void 0||R.forEach(F=>{var D;return(D=F.hostDisconnected)===null||D===void 0?void 0:D.call(F)})}attributeChangedCallback(R,F,D){this._$AK(R,D)}_$ES(R,F,D=l$3){var G,U;const W=this.constructor._$Eh(R,D);if(W!==void 0&&D.reflect===!0){const q=((U=(G=D.converter)===null||G===void 0?void 0:G.toAttribute)!==null&&U!==void 0?U:o$4.toAttribute)(F,D.type);this._$Ei=R,q==null?this.removeAttribute(W):this.setAttribute(W,q),this._$Ei=null}}_$AK(R,F){var D,G,U;const W=this.constructor,q=W._$Eu.get(R);if(q!==void 0&&this._$Ei!==q){const Y=W.getPropertyOptions(q),Q=Y.converter,Z=(U=(G=(D=Q)===null||D===void 0?void 0:D.fromAttribute)!==null&&G!==void 0?G:typeof Q=="function"?Q:null)!==null&&U!==void 0?U:o$4.fromAttribute;this._$Ei=q,this[q]=Z(F,Y.type),this._$Ei=null}}requestUpdate(R,F,D){let G=!0;R!==void 0&&(((D=D||this.constructor.getPropertyOptions(R)).hasChanged||n$4)(this[R],F)?(this._$AL.has(R)||this._$AL.set(R,F),D.reflect===!0&&this._$Ei!==R&&(this._$EC===void 0&&(this._$EC=new Map),this._$EC.set(R,D))):G=!1),!this.isUpdatePending&&G&&(this._$Ep=this._$E_())}async _$E_(){this.isUpdatePending=!0;try{await this._$Ep}catch(F){Promise.reject(F)}const R=this.scheduleUpdate();return R!=null&&await R,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var R;if(!this.isUpdatePending)return;this.hasUpdated,this._$Et&&(this._$Et.forEach((G,U)=>this[U]=G),this._$Et=void 0);let F=!1;const D=this._$AL;try{F=this.shouldUpdate(D),F?(this.willUpdate(D),(R=this._$Eg)===null||R===void 0||R.forEach(G=>{var U;return(U=G.hostUpdate)===null||U===void 0?void 0:U.call(G)}),this.update(D)):this._$EU()}catch(G){throw F=!1,this._$EU(),G}F&&this._$AE(D)}willUpdate(R){}_$AE(R){var F;(F=this._$Eg)===null||F===void 0||F.forEach(D=>{var G;return(G=D.hostUpdated)===null||G===void 0?void 0:G.call(D)}),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(R)),this.updated(R)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$Ep}shouldUpdate(R){return!0}update(R){this._$EC!==void 0&&(this._$EC.forEach((F,D)=>this._$ES(D,this[D],F)),this._$EC=void 0),this._$EU()}updated(R){}firstUpdated(R){}}/** * @license * Copyright 2017 Google LLC * SPDX-License-Identifier: BSD-3-Clause */var t$2;a$1.finalized=!0,a$1.elementProperties=new Map,a$1.elementStyles=[],a$1.shadowRootOptions={mode:"open"},h$2$1==null||h$2$1({ReactiveElement:a$1}),((s$2=globalThis.reactiveElementVersions)!==null&&s$2!==void 0?s$2:globalThis.reactiveElementVersions=[]).push("1.3.1");const i$2=globalThis.trustedTypes,s$1=i$2?i$2.createPolicy("lit-html",{createHTML:B=>B}):void 0,e$6=`lit$${(Math.random()+"").slice(9)}$`,o$3="?"+e$6,n$3=`<${o$3}>`,l$2=document,h$1$1=(B="")=>l$2.createComment(B),r$1=B=>B===null||typeof B!="object"&&typeof B!="function",d=Array.isArray,u$1=B=>{var R;return d(B)||typeof((R=B)===null||R===void 0?void 0:R[Symbol.iterator])=="function"},c$2=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,v$3=/-->/g,a$2=/>/g,f$1=/>|[ \n \r](?:([^\s"'>=/]+)([ \n \r]*=[ \n \r]*(?:[^ \n \r"'`<>=]|("|')|))|$)/g,_$1=/'/g,m$2=/"/g,g=/^(?:script|style|textarea|title)$/i,p$1=B=>(R,...F)=>({_$litType$:B,strings:R,values:F}),$=p$1(1),b=Symbol.for("lit-noChange"),w$2=Symbol.for("lit-nothing"),T$1=new WeakMap,x=(B,R,F)=>{var D,G;const U=(D=F==null?void 0:F.renderBefore)!==null&&D!==void 0?D:R;let W=U._$litPart$;if(W===void 0){const q=(G=F==null?void 0:F.renderBefore)!==null&&G!==void 0?G:null;U._$litPart$=W=new N$1(R.insertBefore(h$1$1(),q),q,void 0,F!=null?F:{})}return W._$AI(B),W},A=l$2.createTreeWalker(l$2,129,null,!1),C=(B,R)=>{const F=B.length-1,D=[];let G,U=R===2?"":"",W=c$2;for(let Y=0;Y"?(W=G!=null?G:c$2,J=-1):K[1]===void 0?J=-2:(J=W.lastIndex-K[2].length,Z=K[1],W=K[3]===void 0?f$1:K[3]==='"'?m$2:_$1):W===m$2||W===_$1?W=f$1:W===v$3||W===a$2?W=c$2:(W=f$1,G=void 0);const ne=W===f$1&&B[Y+1].startsWith("/>")?" ":"";U+=W===c$2?Q+n$3:J>=0?(D.push(Z),Q.slice(0,J)+"$lit$"+Q.slice(J)+e$6+ne):Q+e$6+(J===-2?(D.push(void 0),Y):ne)}const q=U+(B[F]||"")+(R===2?"":"");if(!Array.isArray(B)||!B.hasOwnProperty("raw"))throw Error("invalid template strings array");return[s$1!==void 0?s$1.createHTML(q):q,D]};class E{constructor({strings:R,_$litType$:F},D){let G;this.parts=[];let U=0,W=0;const q=R.length-1,Y=this.parts,[Q,Z]=C(R,F);if(this.el=E.createElement(Q,D),A.currentNode=this.el.content,F===2){const K=this.el.content,J=K.firstChild;J.remove(),K.append(...J.childNodes)}for(;(G=A.nextNode())!==null&&Y.length0){G.textContent=i$2?i$2.emptyScript:"";for(let ie=0;ie2||D[0]!==""||D[1]!==""?(this._$AH=Array(D.length-1).fill(new String),this.strings=D):this._$AH=w$2}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(R,F=this,D,G){const U=this.strings;let W=!1;if(U===void 0)R=P(this,R,F,0),W=!r$1(R)||R!==this._$AH&&R!==b,W&&(this._$AH=R);else{const q=R;let Y,Q;for(R=U[0],Y=0;YR=>typeof R=="function"?((F,D)=>(window.customElements.define(F,D),D))(B,R):((F,D)=>{const{kind:G,elements:U}=D;return{kind:G,elements:U,finisher(W){window.customElements.define(F,W)}}})(B,R),i$1$1=(B,R)=>R.kind==="method"&&R.descriptor&&!("value"in R.descriptor)?{...R,finisher(F){F.createProperty(R.key,B)}}:{kind:"field",key:Symbol(),placement:"own",descriptor:{},originalKey:R.key,initializer(){typeof R.initializer=="function"&&(this[R.key]=R.initializer.call(this))},finisher(F){F.createProperty(R.key,B)}};function e$5(B){return(R,F)=>F!==void 0?((D,G,U)=>{G.constructor.createProperty(U,D)})(B,R,F):i$1$1(B,R);/** * @license * Copyright 2017 Google LLC * SPDX-License-Identifier: BSD-3-Clause */}/** * @license * Copyright 2017 Google LLC * SPDX-License-Identifier: BSD-3-Clause */const o$1=({finisher:B,descriptor:R})=>(F,D)=>{var G;if(D===void 0){const U=(G=F.originalKey)!==null&&G!==void 0?G:F.key,W=R!=null?{kind:"method",placement:"prototype",key:U,descriptor:R(F.key)}:{...F,key:U};return B!=null&&(W.finisher=function(q){B(q,U)}),W}{const U=F.constructor;R!==void 0&&Object.defineProperty(F,D,R(D)),B==null||B(U,D)}};/** * @license * Copyright 2017 Google LLC * SPDX-License-Identifier: BSD-3-Clause */function i$4(B,R){return o$1({descriptor:F=>{const D={get(){var G,U;return(U=(G=this.renderRoot)===null||G===void 0?void 0:G.querySelector(B))!==null&&U!==void 0?U:null},enumerable:!0,configurable:!0};if(R){const G=typeof F=="symbol"?Symbol():"__"+F;D.get=function(){var U,W;return this[G]===void 0&&(this[G]=(W=(U=this.renderRoot)===null||U===void 0?void 0:U.querySelector(B))!==null&&W!==void 0?W:null),this[G]}}return D}})}/** * @license * Copyright 2021 Google LLC * SPDX-License-Identifier: BSD-3-Clause */var n$6;((n$6=window.HTMLSlotElement)===null||n$6===void 0?void 0:n$6.prototype.assignedElements)!=null;var commonjsGlobal$1=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function createCommonjsModule(B,R,F){return B(F={path:R,exports:{},require:function(D,G){return commonjsRequire(D,G==null?F.path:G)}},F.exports),F.exports}function commonjsRequire(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}var lottie_svg=createCommonjsModule(function(module,exports){typeof navigator!="undefined"&&function(B,R){module.exports=R()}(0,function(){var svgNS="http://www.w3.org/2000/svg",locationHref="",_useWebWorker=!1,initialDefaultFrame=-999999,setWebWorker=function(B){_useWebWorker=!!B},getWebWorker=function(){return _useWebWorker},setLocationHref=function(B){locationHref=B},getLocationHref=function(){return locationHref};function createTag(B){return document.createElement(B)}function extendPrototype(B,R){var F,D,G=B.length;for(F=0;F1?F[1]=1:F[1]<=0&&(F[1]=0),HSVtoRGB(F[0],F[1],F[2])}function addBrightnessToRGB(B,R){var F=RGBtoHSV(255*B[0],255*B[1],255*B[2]);return F[2]+=R,F[2]>1?F[2]=1:F[2]<0&&(F[2]=0),HSVtoRGB(F[0],F[1],F[2])}function addHueToRGB(B,R){var F=RGBtoHSV(255*B[0],255*B[1],255*B[2]);return F[0]+=R/360,F[0]>1?F[0]-=1:F[0]<0&&(F[0]+=1),HSVtoRGB(F[0],F[1],F[2])}var rgbToHex=function(){var B,R,F=[];for(B=0;B<256;B+=1)R=B.toString(16),F[B]=R.length===1?"0"+R:R;return function(D,G,U){return D<0&&(D=0),G<0&&(G=0),U<0&&(U=0),"#"+F[D]+F[G]+F[U]}}(),setSubframeEnabled=function(B){subframeEnabled=!!B},getSubframeEnabled=function(){return subframeEnabled},setExpressionsPlugin=function(B){expressionsPlugin=B},getExpressionsPlugin=function(){return expressionsPlugin},setDefaultCurveSegments=function(B){defaultCurveSegments=B},getDefaultCurveSegments=function(){return defaultCurveSegments},setIdPrefix=function(B){idPrefix=B};function createNS(B){return document.createElementNS(svgNS,B)}function _typeof$5(B){return(_typeof$5=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(R){return typeof R}:function(R){return R&&typeof Symbol=="function"&&R.constructor===Symbol&&R!==Symbol.prototype?"symbol":typeof R})(B)}var dataManager=function(){var B,R,F=1,D=[],G={onmessage:function(){},postMessage:function(Y){B({data:Y})}},U={postMessage:function(Y){G.onmessage({data:Y})}};function W(){R||((R=function(Y){if(window.Worker&&window.Blob&&getWebWorker()){var Q=new Blob(["var _workerSelf = self; self.onmessage = ",Y.toString()],{type:"text/javascript"}),Z=URL.createObjectURL(Q);return new Worker(Z)}return B=Y,G}(function(Y){if(U.dataManager||(U.dataManager=function(){function Z(fe,ge){var Se,Ee,ve,xe,Pe,ye,Te=fe.length;for(Ee=0;Ee=0;ge-=1)if(fe[ge].ty==="sh")if(fe[ge].ks.k.i)ie(fe[ge].ks.k);else for(Ee=fe[ge].ks.k.length,Se=0;SeSe[0]||!(Se[0]>fe[0])&&(fe[1]>Se[1]||!(Se[1]>fe[1])&&(fe[2]>Se[2]||!(Se[2]>fe[2])&&null))}var se,re=function(){var fe=[4,4,14];function ge(Se){var Ee,ve,xe,Pe=Se.length;for(Ee=0;Ee=0;ve-=1)if(Ee[ve].ty==="sh")if(Ee[ve].ks.k.i)Ee[ve].ks.k.c=Ee[ve].closed;else for(Pe=Ee[ve].ks.k.length,xe=0;xe500)&&(this._imageLoaded(),clearInterval(Q)),Y+=1}.bind(this),50)}function U(q){var Y={assetData:q},Q=D(q,this.assetsPath,this.path);return dataManager.loadData(Q,function(Z){Y.img=Z,this._footageLoaded()}.bind(this),function(){Y.img={},this._footageLoaded()}.bind(this)),Y}function W(){this._imageLoaded=R.bind(this),this._footageLoaded=F.bind(this),this.testImageLoaded=G.bind(this),this.createFootageData=U.bind(this),this.assetsPath="",this.path="",this.totalImages=0,this.totalFootages=0,this.loadedAssets=0,this.loadedFootagesCount=0,this.imagesLoadedCb=null,this.images=[]}return W.prototype={loadAssets:function(q,Y){var Q;this.imagesLoadedCb=Y;var Z=q.length;for(Q=0;Qthis.animationData.op&&(this.animationData.op=B.op,this.totalFrames=Math.floor(B.op-this.animationData.ip));var R,F,D=this.animationData.layers,G=D.length,U=B.layers,W=U.length;for(F=0;Fthis.timeCompleted&&(this.currentFrame=this.timeCompleted),this.trigger("enterFrame"),this.renderFrame(),this.trigger("drawnFrame")},AnimationItem.prototype.renderFrame=function(){if(this.isLoaded!==!1&&this.renderer)try{this.renderer.renderFrame(this.currentFrame+this.firstFrame)}catch(B){this.triggerRenderFrameError(B)}},AnimationItem.prototype.play=function(B){B&&this.name!==B||this.isPaused===!0&&(this.isPaused=!1,this.audioController.resume(),this._idle&&(this._idle=!1,this.trigger("_active")))},AnimationItem.prototype.pause=function(B){B&&this.name!==B||this.isPaused===!1&&(this.isPaused=!0,this._idle=!0,this.trigger("_idle"),this.audioController.pause())},AnimationItem.prototype.togglePause=function(B){B&&this.name!==B||(this.isPaused===!0?this.play():this.pause())},AnimationItem.prototype.stop=function(B){B&&this.name!==B||(this.pause(),this.playCount=0,this._completedLoop=!1,this.setCurrentRawFrameValue(0))},AnimationItem.prototype.getMarkerData=function(B){for(var R,F=0;F=this.totalFrames-1&&this.frameModifier>0?this.loop&&this.playCount!==this.loop?R>=this.totalFrames?(this.playCount+=1,this.checkSegments(R%this.totalFrames)||(this.setCurrentRawFrameValue(R%this.totalFrames),this._completedLoop=!0,this.trigger("loopComplete"))):this.setCurrentRawFrameValue(R):this.checkSegments(R>this.totalFrames?R%this.totalFrames:0)||(F=!0,R=this.totalFrames-1):R<0?this.checkSegments(R%this.totalFrames)||(!this.loop||this.playCount--<=0&&this.loop!==!0?(F=!0,R=0):(this.setCurrentRawFrameValue(this.totalFrames+R%this.totalFrames),this._completedLoop?this.trigger("loopComplete"):this._completedLoop=!0)):this.setCurrentRawFrameValue(R),F&&(this.setCurrentRawFrameValue(R),this.pause(),this.trigger("complete"))}},AnimationItem.prototype.adjustSegment=function(B,R){this.playCount=0,B[1]0&&(this.playSpeed<0?this.setSpeed(-this.playSpeed):this.setDirection(-1)),this.totalFrames=B[0]-B[1],this.timeCompleted=this.totalFrames,this.firstFrame=B[1],this.setCurrentRawFrameValue(this.totalFrames-.001-R)):B[1]>B[0]&&(this.frameModifier<0&&(this.playSpeed<0?this.setSpeed(-this.playSpeed):this.setDirection(1)),this.totalFrames=B[1]-B[0],this.timeCompleted=this.totalFrames,this.firstFrame=B[0],this.setCurrentRawFrameValue(.001+R)),this.trigger("segmentStart")},AnimationItem.prototype.setSegment=function(B,R){var F=-1;this.isPaused&&(this.currentRawFrame+this.firstFrameR&&(F=R-B)),this.firstFrame=B,this.totalFrames=R-B,this.timeCompleted=this.totalFrames,F!==-1&&this.goToAndStop(F,!0)},AnimationItem.prototype.playSegments=function(B,R){if(R&&(this.segments.length=0),_typeof$4(B[0])==="object"){var F,D=B.length;for(F=0;F=0;re-=1)R[re].animation.destroy(se)},B.freeze=function(){W=!0},B.unfreeze=function(){W=!1,ne()},B.setVolume=function(se,re){var ae;for(ae=0;ae=.001?function(ae,le,ce,he){for(var de=0;de<4;++de){var me=q(le,ce,he);if(me===0)return le;le-=(W(le,ce,he)-ae)/me}return le}(Q,se,Z,K):re===0?se:function(ae,le,ce,he,de){var me,fe,ge=0;do(me=W(fe=le+(ce-le)/2,he,de)-ae)>0?ce=fe:le=fe;while(Math.abs(me)>1e-7&&++ge<10);return fe}(Q,ie,ie+.1,Z,K)}},B}(),pooling={double:function(B){return B.concat(createSizedArray(B.length))}},poolFactory=function(B,R,F){var D=0,G=B,U=createSizedArray(G);return{newElement:function(){return D?U[D-=1]:R()},release:function(W){D===G&&(U=pooling.double(U),G*=2),F&&F(W),U[D]=W,D+=1}}},bezierLengthPool=poolFactory(8,function(){return{addedLength:0,percents:createTypedArray("float32",getDefaultCurveSegments()),lengths:createTypedArray("float32",getDefaultCurveSegments())}}),segmentsLengthPool=poolFactory(8,function(){return{lengths:[],totalLength:0}},function(B){var R,F=B.lengths.length;for(R=0;R-.001&&se<.001}var F=function(Q,Z,K,J){var ie,ne,se,re,ae,le,ce=getDefaultCurveSegments(),he=0,de=[],me=[],fe=bezierLengthPool.newElement();for(se=K.length,ie=0;iese?-1:1,le=!0;le;)if(J[ne]<=se&&J[ne+1]>se?(re=(se-J[ne])/(J[ne+1]-J[ne]),le=!1):ne+=ae,ne<0||ne>=ie-1){if(ne===ie-1)return K[ne];le=!1}return K[ne]+(K[ne+1]-K[ne])*re}var Y=createTypedArray("float32",8);return{getSegmentsLength:function(Q){var Z,K=segmentsLengthPool.newElement(),J=Q.c,ie=Q.v,ne=Q.o,se=Q.i,re=Q._length,ae=K.lengths,le=0;for(Z=0;Z1&&(ie=1);var re,ae=q(ie,se),le=q(ne=ne>1?1:ne,se),ce=Q.length,he=1-ae,de=1-le,me=he*he*he,fe=ae*he*he*3,ge=ae*ae*he*3,Se=ae*ae*ae,Ee=he*he*de,ve=ae*he*de+he*ae*de+he*he*le,xe=ae*ae*de+he*ae*le+ae*he*le,Pe=ae*ae*le,ye=he*de*de,Te=ae*de*de+he*le*de+he*de*le,Le=ae*le*de+he*le*le+ae*de*le,we=ae*le*le,Ae=de*de*de,Me=le*de*de+de*le*de+de*de*le,ke=le*le*de+de*le*le+le*de*le,Ne=le*le*le;for(re=0;rehe?ce>de?ce-he-de:de-he-ce:de>he?de-he-ce:he-ce-de)>-1e-4&&le<1e-4}}}var bez=bezFunction(),PropertyFactory=function(){var B=initialDefaultFrame,R=Math.abs;function F(J,ie){var ne,se=this.offsetTime;this.propType==="multidimensional"&&(ne=createTypedArray("float32",this.pv.length));for(var re,ae,le,ce,he,de,me,fe,ge,Se=ie.lastIndex,Ee=Se,ve=this.keyframes.length-1,xe=!0;xe;){if(re=this.keyframes[Ee],ae=this.keyframes[Ee+1],Ee===ve-1&&J>=ae.t-se){re.h&&(re=ae),Se=0;break}if(ae.t-se>J){Se=Ee;break}Ee=ye||J=ye?Le.points.length-1:0;for(he=Le.points[we].point.length,ce=0;ce=ke&&Me=ye?(ne[0]=Pe[0],ne[1]=Pe[1],ne[2]=Pe[2]):J<=Te?(ne[0]=re.s[0],ne[1]=re.s[1],ne[2]=re.s[2]):function(Ye,et){var Je=et[0],st=et[1],pt=et[2],dt=et[3],yt=Math.atan2(2*st*dt-2*Je*pt,1-2*st*st-2*pt*pt),Fe=Math.asin(2*Je*st+2*pt*dt),_e=Math.atan2(2*Je*dt-2*st*pt,1-2*Je*Je-2*pt*pt);Ye[0]=yt/degToRads,Ye[1]=Fe/degToRads,Ye[2]=_e/degToRads}(ne,function(Ye,et,Je){var st,pt,dt,yt,Fe,_e=[],je=Ye[0],Ze=Ye[1],De=Ye[2],Oe=Ye[3],Xe=et[0],tt=et[1],nt=et[2],Ke=et[3];return(pt=je*Xe+Ze*tt+De*nt+Oe*Ke)<0&&(pt=-pt,Xe=-Xe,tt=-tt,nt=-nt,Ke=-Ke),1-pt>1e-6?(st=Math.acos(pt),dt=Math.sin(st),yt=Math.sin((1-Je)*st)/dt,Fe=Math.sin(Je*st)/dt):(yt=1-Je,Fe=Je),_e[0]=yt*je+Fe*Xe,_e[1]=yt*Ze+Fe*tt,_e[2]=yt*De+Fe*nt,_e[3]=yt*Oe+Fe*Ke,_e}(D(re.s),D(Pe),(J-Te)/(ye-Te)));else for(Ee=0;Ee=ye?de=1:J=ne&&J>=ne||this._caching.lastFrame=J&&(this._caching._lastKeyframeIndex=-1,this._caching.lastIndex=0);var se=this.interpolateValue(J,this._caching);this.pv=se}return this._caching.lastFrame=J,this.pv}function U(J){var ie;if(this.propType==="unidimensional")ie=J*this.mult,R(this.v-ie)>1e-5&&(this.v=ie,this._mdf=!0);else for(var ne=0,se=this.v.length;ne1e-5&&(this.v[ne]=ie,this._mdf=!0),ne+=1}function W(){if(this.elem.globalData.frameId!==this.frameId&&this.effectsSequence.length)if(this.lock)this.setVValue(this.pv);else{var J;this.lock=!0,this._mdf=this._isFirstFrame;var ie=this.effectsSequence.length,ne=this.kf?this.pv:this.data.k;for(J=0;J=this._maxLength&&this.doubleArrayLength(),F){case"v":U=this.v;break;case"i":U=this.i;break;case"o":U=this.o;break;default:U=[]}(!U[D]||U[D]&&!G)&&(U[D]=pointPool.newElement()),U[D][0]=B,U[D][1]=R},ShapePath.prototype.setTripleAt=function(B,R,F,D,G,U,W,q){this.setXYAt(B,R,"v",W,q),this.setXYAt(F,D,"o",W,q),this.setXYAt(G,U,"i",W,q)},ShapePath.prototype.reverse=function(){var B=new ShapePath;B.setPathData(this.c,this._length);var R=this.v,F=this.o,D=this.i,G=0;this.c&&(B.setTripleAt(R[0][0],R[0][1],D[0][0],D[0][1],F[0][0],F[0][1],0,!1),G=1);var U,W=this._length-1,q=this._length;for(U=G;U=Se[Se.length-1].t-this.offsetTime)se=Se[Se.length-1].s?Se[Se.length-1].s[0]:Se[Se.length-2].e[0],ae=!0;else{for(var Ee,ve,xe,Pe=ge,ye=Se.length-1,Te=!0;Te&&(Ee=Se[Pe],!((ve=Se[Pe+1]).t-this.offsetTime>J));)Pe=ve.t-this.offsetTime)me=1;else if(Jne&&J>ne)||(this._caching.lastIndex=se0||we>-1e-6&&we<0?D(1e4*we)/1e4:we}function Le(){var we=this.props;return"matrix("+Te(we[0])+","+Te(we[1])+","+Te(we[4])+","+Te(we[5])+","+Te(we[12])+","+Te(we[13])+")"}return function(){this.reset=G,this.rotate=U,this.rotateX=W,this.rotateY=q,this.rotateZ=Y,this.skew=Z,this.skewFromAxis=K,this.shear=Q,this.scale=J,this.setTransform=ie,this.translate=ne,this.transform=se,this.applyToPoint=he,this.applyToX=de,this.applyToY=me,this.applyToZ=fe,this.applyToPointArray=xe,this.applyToTriplePoints=ve,this.applyToPointStringified=Pe,this.toCSS=ye,this.to2dCSS=Le,this.clone=le,this.cloneFromProps=ce,this.equals=ae,this.inversePoints=Ee,this.inversePoint=Se,this.getInverseMatrix=ge,this._t=this.transform,this.isIdentity=re,this._identity=!0,this._identityCalculated=!1,this.props=createTypedArray("float32",16),this.reset()}}();function _typeof$3(B){return(_typeof$3=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(R){return typeof R}:function(R){return R&&typeof Symbol=="function"&&R.constructor===Symbol&&R!==Symbol.prototype?"symbol":typeof R})(B)}var lottie={},standalone="__[STANDALONE]__",queryString;function setLocation(B){setLocationHref(B)}function searchAnimations(){animationManager.searchAnimations()}function setSubframeRendering(B){setSubframeEnabled(B)}function setPrefix(B){setIdPrefix(B)}function loadAnimation(B){return animationManager.loadAnimation(B)}function setQuality(B){if(typeof B=="string")switch(B){case"high":setDefaultCurveSegments(200);break;default:case"medium":setDefaultCurveSegments(50);break;case"low":setDefaultCurveSegments(10)}else!isNaN(B)&&B>1&&setDefaultCurveSegments(B)}function inBrowser(){return typeof navigator!="undefined"}function installPlugin(B,R){B==="expressions"&&setExpressionsPlugin(R)}function getFactory(B){switch(B){case"propertyFactory":return PropertyFactory;case"shapePropertyFactory":return ShapePropertyFactory;case"matrix":return Matrix;default:return null}}function checkReady(){document.readyState==="complete"&&(clearInterval(readyStateCheckInterval),searchAnimations())}function getQueryVariable(B){for(var R=queryString.split("&"),F=0;F=1?U.push({s:B-1,e:R-1}):(U.push({s:B,e:1}),U.push({s:0,e:R-1}));var W,q,Y=[],Q=U.length;for(W=0;WD+F||(Z=q.s*G<=D?0:(q.s*G-D)/F,K=q.e*G>=D+F?1:(q.e*G-D)/F,Y.push([Z,K]))}return Y.length||Y.push([0,0]),Y},TrimModifier.prototype.releasePathsData=function(B){var R,F=B.length;for(R=0;R1?1+U:this.s.v<0?0+U:this.s.v+U)>(F=this.e.v>1?1+U:this.e.v<0?0+U:this.e.v+U)){var W=R;R=F,F=W}R=1e-4*Math.round(1e4*R),F=1e-4*Math.round(1e4*F),this.sValue=R,this.eValue=F}else R=this.sValue,F=this.eValue;var q,Y,Q,Z,K,J=this.shapes.length,ie=0;if(F===R)for(G=0;G=0;G-=1)if((ne=this.shapes[G]).shape._mdf){for((se=ne.localShapeCollection).releaseShapes(),this.m===2&&J>1?(ae=this.calculateShapeEdges(R,F,ne.totalShapeLength,he,ie),he+=ne.totalShapeLength):ae=[[le,ce]],Y=ae.length,q=0;q=1?re.push({s:ne.totalShapeLength*(le-1),e:ne.totalShapeLength*(ce-1)}):(re.push({s:ne.totalShapeLength*le,e:ne.totalShapeLength}),re.push({s:0,e:ne.totalShapeLength*(ce-1)}));var de=this.addShapes(ne,re[0]);if(re[0].s!==re[0].e){if(re.length>1)if(ne.shape.paths.shapes[ne.shape.paths._length-1].c){var me=de.pop();this.addPaths(de,se),de=this.addShapes(ne,re[1],me)}else this.addPaths(de,se),de=this.addShapes(ne,re[1]);this.addPaths(de,se)}}ne.shape.paths=se}}},TrimModifier.prototype.addPaths=function(B,R){var F,D=B.length;for(F=0;FR.e){F.c=!1;break}R.s<=ne&&R.e>=ne+W.addedLength?(this.addSegment(J[D].v[G-1],J[D].o[G-1],J[D].i[G],J[D].v[G],F,q,re),re=!1):(Q=bez.getNewSegment(J[D].v[G-1],J[D].v[G],J[D].o[G-1],J[D].i[G],(R.s-ne)/W.addedLength,(R.e-ne)/W.addedLength,Y[G-1]),this.addSegmentFromArray(Q,F,q,re),re=!1,F.c=!1),ne+=W.addedLength,q+=1}if(J[D].c&&Y.length){if(W=Y[G-1],ne<=R.e){var ae=Y[G-1].addedLength;R.s<=ne&&R.e>=ne+ae?(this.addSegment(J[D].v[G-1],J[D].o[G-1],J[D].i[0],J[D].v[0],F,q,re),re=!1):(Q=bez.getNewSegment(J[D].v[G-1],J[D].v[0],J[D].o[G-1],J[D].i[0],(R.s-ne)/ae,(R.e-ne)/ae,Y[G-1]),this.addSegmentFromArray(Q,F,q,re),re=!1,F.c=!1)}else F.c=!1;ne+=W.addedLength,q+=1}if(F._length&&(F.setXYAt(F.v[Z][0],F.v[Z][1],"i",Z),F.setXYAt(F.v[F._length-1][0],F.v[F._length-1][1],"o",F._length-1)),ne>R.e)break;D=this.p.keyframes[this.p.keyframes.length-1].t?(G=this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length-1].t/D,0),U=this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length-1].t-.05)/D,0)):(G=this.p.pv,U=this.p.getValueAtTime((this.p._caching.lastFrame+this.p.offsetTime-.01)/D,this.p.offsetTime));else if(this.px&&this.px.keyframes&&this.py.keyframes&&this.px.getValueAtTime&&this.py.getValueAtTime){G=[],U=[];var W=this.px,q=this.py;W._caching.lastFrame+W.offsetTime<=W.keyframes[0].t?(G[0]=W.getValueAtTime((W.keyframes[0].t+.01)/D,0),G[1]=q.getValueAtTime((q.keyframes[0].t+.01)/D,0),U[0]=W.getValueAtTime(W.keyframes[0].t/D,0),U[1]=q.getValueAtTime(q.keyframes[0].t/D,0)):W._caching.lastFrame+W.offsetTime>=W.keyframes[W.keyframes.length-1].t?(G[0]=W.getValueAtTime(W.keyframes[W.keyframes.length-1].t/D,0),G[1]=q.getValueAtTime(q.keyframes[q.keyframes.length-1].t/D,0),U[0]=W.getValueAtTime((W.keyframes[W.keyframes.length-1].t-.01)/D,0),U[1]=q.getValueAtTime((q.keyframes[q.keyframes.length-1].t-.01)/D,0)):(G=[W.pv,q.pv],U[0]=W.getValueAtTime((W._caching.lastFrame+W.offsetTime-.01)/D,W.offsetTime),U[1]=q.getValueAtTime((q._caching.lastFrame+q.offsetTime-.01)/D,q.offsetTime))}else G=U=B;this.v.rotate(-Math.atan2(G[1]-U[1],G[0]-U[0]))}this.data.p&&this.data.p.s?this.data.p.z?this.v.translate(this.px.v,this.py.v,-this.pz.v):this.v.translate(this.px.v,this.py.v,0):this.v.translate(this.p.v[0],this.p.v[1],-this.p.v[2])}this.frameId=this.elem.globalData.frameId}},precalculateMatrix:function(){if(!this.a.k&&(this.pre.translate(-this.a.v[0],-this.a.v[1],this.a.v[2]),this.appliedTransformations=1,!this.s.effectsSequence.length)){if(this.pre.scale(this.s.v[0],this.s.v[1],this.s.v[2]),this.appliedTransformations=2,this.sk){if(this.sk.effectsSequence.length||this.sa.effectsSequence.length)return;this.pre.skewFromAxis(-this.sk.v,this.sa.v),this.appliedTransformations=3}this.r?this.r.effectsSequence.length||(this.pre.rotate(-this.r.v),this.appliedTransformations=4):this.rz.effectsSequence.length||this.ry.effectsSequence.length||this.rx.effectsSequence.length||this.or.effectsSequence.length||(this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]),this.appliedTransformations=4)}},autoOrient:function(){}},extendPrototype([DynamicPropertyContainer],R),R.prototype.addDynamicProperty=function(F){this._addDynamicProperty(F),this.elem.addDynamicProperty(F),this._isDirty=!0},R.prototype._addDynamicProperty=DynamicPropertyContainer.prototype.addDynamicProperty,{getTransformProperty:function(F,D,G){return new R(F,D,G)}}}();function RepeaterModifier(){}function RoundCornersModifier(){}function getFontProperties(B){for(var R=B.fStyle?B.fStyle.split(" "):[],F="normal",D="normal",G=R.length,U=0;U0;)F-=1,this._elements.unshift(R[F]);this.dynamicProperties.length?this.k=!0:this.getValue(!0)},RepeaterModifier.prototype.resetElements=function(B){var R,F=B.length;for(R=0;R0?Math.floor(J):Math.ceil(J),se=this.pMatrix.props,re=this.rMatrix.props,ae=this.sMatrix.props;this.pMatrix.reset(),this.rMatrix.reset(),this.sMatrix.reset(),this.tMatrix.reset(),this.matrix.reset();var le,ce,he=0;if(J>0){for(;hene;)this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,1,!0),he-=1;ie&&(this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,-ie,!0),he-=ie)}for(D=this.data.m===1?0:this._currentCopies-1,G=this.data.m===1?1:-1,U=this._currentCopies;U;){if(ce=(F=(R=this.elemsData[D].it)[R.length-1].transform.mProps.v.props).length,R[R.length-1].transform.mProps._mdf=!0,R[R.length-1].transform.op._mdf=!0,R[R.length-1].transform.op.v=this._currentCopies===1?this.so.v:this.so.v+(this.eo.v-this.so.v)*(D/(this._currentCopies-1)),he!==0){for((D!==0&&G===1||D!==this._currentCopies-1&&G===-1)&&this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,1,!1),this.matrix.transform(re[0],re[1],re[2],re[3],re[4],re[5],re[6],re[7],re[8],re[9],re[10],re[11],re[12],re[13],re[14],re[15]),this.matrix.transform(ae[0],ae[1],ae[2],ae[3],ae[4],ae[5],ae[6],ae[7],ae[8],ae[9],ae[10],ae[11],ae[12],ae[13],ae[14],ae[15]),this.matrix.transform(se[0],se[1],se[2],se[3],se[4],se[5],se[6],se[7],se[8],se[9],se[10],se[11],se[12],se[13],se[14],se[15]),le=0;le0&&(se=!1),se){var re=createTag("style");re.setAttribute("f-forigin",Z[Q].fOrigin),re.setAttribute("f-origin",Z[Q].origin),re.setAttribute("f-family",Z[Q].fFamily),re.type="text/css",re.innerText="@font-face {font-family: "+Z[Q].fFamily+"; font-style: normal; src: url('"+Z[Q].fPath+"');}",Y.appendChild(re)}}else if(Z[Q].fOrigin==="g"||Z[Q].origin===1){for(ie=document.querySelectorAll('link[f-forigin="g"], link[f-origin="1"]'),ne=0;neB?this.isInRange!==!0&&(this.globalData._mdf=!0,this._mdf=!0,this.isInRange=!0,this.show()):this.isInRange!==!1&&(this.globalData._mdf=!0,this.isInRange=!1,this.hide())},renderRenderable:function(){var B,R=this.renderableComponents.length;for(B=0;B0&&(this.maskElement.setAttribute("id",re),this.element.maskedElement.setAttribute(le,"url("+getLocationHref()+"#"+re+")"),U.appendChild(this.maskElement)),this.viewData.length&&this.element.addRenderableComponent(this)}FootageElement.prototype.prepareFrame=function(){},extendPrototype([RenderableElement,BaseElement,FrameElement],FootageElement),FootageElement.prototype.getBaseElement=function(){return null},FootageElement.prototype.renderFrame=function(){},FootageElement.prototype.destroy=function(){},FootageElement.prototype.initExpressions=function(){this.layerInterface=FootageInterface(this)},FootageElement.prototype.getFootageData=function(){return this.footageData},AudioElement.prototype.prepareFrame=function(B){if(this.prepareRenderableFrame(B,!0),this.prepareProperties(B,!0),this.tm._placeholder)this._currentTime=B/this.data.sr;else{var R=this.tm.v;this._currentTime=R}},extendPrototype([RenderableElement,BaseElement,FrameElement],AudioElement),AudioElement.prototype.renderFrame=function(){this.isInRange&&this._canPlay&&(this._isPlaying?(!this.audio.playing()||Math.abs(this._currentTime/this.globalData.frameRate-this.audio.seek())>.1)&&this.audio.seek(this._currentTime/this.globalData.frameRate):(this.audio.play(),this.audio.seek(this._currentTime/this.globalData.frameRate),this._isPlaying=!0))},AudioElement.prototype.show=function(){},AudioElement.prototype.hide=function(){this.audio.pause(),this._isPlaying=!1},AudioElement.prototype.pause=function(){this.audio.pause(),this._isPlaying=!1,this._canPlay=!1},AudioElement.prototype.resume=function(){this._canPlay=!0},AudioElement.prototype.setRate=function(B){this.audio.rate(B)},AudioElement.prototype.volume=function(B){this.audio.volume(B)},AudioElement.prototype.getBaseElement=function(){return null},AudioElement.prototype.destroy=function(){},AudioElement.prototype.sourceRectAtTime=function(){},AudioElement.prototype.initExpressions=function(){},BaseRenderer.prototype.checkLayers=function(B){var R,F,D=this.layers.length;for(this.completeLayers=!0,R=D-1;R>=0;R-=1)this.elements[R]||(F=this.layers[R]).ip-F.st<=B-this.layers[R].st&&F.op-F.st>B-this.layers[R].st&&this.buildItem(R),this.completeLayers=!!this.elements[R]&&this.completeLayers;this.checkPendingElements()},BaseRenderer.prototype.createItem=function(B){switch(B.ty){case 2:return this.createImage(B);case 0:return this.createComp(B);case 1:return this.createSolid(B);case 3:return this.createNull(B);case 4:return this.createShape(B);case 5:return this.createText(B);case 6:return this.createAudio(B);case 13:return this.createCamera(B);case 15:return this.createFootage(B);default:return this.createNull(B)}},BaseRenderer.prototype.createCamera=function(){throw new Error("You're using a 3d camera. Try the html renderer.")},BaseRenderer.prototype.createAudio=function(B){return new AudioElement(B,this.globalData,this)},BaseRenderer.prototype.createFootage=function(B){return new FootageElement(B,this.globalData,this)},BaseRenderer.prototype.buildAllItems=function(){var B,R=this.layers.length;for(B=0;B1&&(U+=" C"+R.o[D-1][0]+","+R.o[D-1][1]+" "+R.i[0][0]+","+R.i[0][1]+" "+R.v[0][0]+","+R.v[0][1]),F.lastPath!==U){var W="";F.elem&&(R.c&&(W=B.inv?this.solidPath+U:U),F.elem.setAttribute("d",W)),F.lastPath=U}},MaskElement.prototype.destroy=function(){this.element=null,this.globalData=null,this.maskElement=null,this.data=null,this.masksProperties=null};var filtersFactory=function(){var B={};return B.createFilter=function(R,F){var D=createNS("filter");return D.setAttribute("id",R),F!==!0&&(D.setAttribute("filterUnits","objectBoundingBox"),D.setAttribute("x","0%"),D.setAttribute("y","0%"),D.setAttribute("width","100%"),D.setAttribute("height","100%")),D},B.createAlphaToLuminanceFilter=function(){var R=createNS("feColorMatrix");return R.setAttribute("type","matrix"),R.setAttribute("color-interpolation-filters","sRGB"),R.setAttribute("values","0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1"),R},B}(),featureSupport=function(){var B={maskType:!0};return(/MSIE 10/i.test(navigator.userAgent)||/MSIE 9/i.test(navigator.userAgent)||/rv:11.0/i.test(navigator.userAgent)||/Edge\/\d./i.test(navigator.userAgent))&&(B.maskType=!1),B}();function SVGTintFilter(B,R){this.filterManager=R;var F=createNS("feColorMatrix");if(F.setAttribute("type","matrix"),F.setAttribute("color-interpolation-filters","linearRGB"),F.setAttribute("values","0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0"),F.setAttribute("result","f1"),B.appendChild(F),(F=createNS("feColorMatrix")).setAttribute("type","matrix"),F.setAttribute("color-interpolation-filters","sRGB"),F.setAttribute("values","1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0"),F.setAttribute("result","f2"),B.appendChild(F),this.matrixFilter=F,R.effectElements[2].p.v!==100||R.effectElements[2].p.k){var D,G=createNS("feMerge");B.appendChild(G),(D=createNS("feMergeNode")).setAttribute("in","SourceGraphic"),G.appendChild(D),(D=createNS("feMergeNode")).setAttribute("in","f2"),G.appendChild(D)}}function SVGFillFilter(B,R){this.filterManager=R;var F=createNS("feColorMatrix");F.setAttribute("type","matrix"),F.setAttribute("color-interpolation-filters","sRGB"),F.setAttribute("values","1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0"),B.appendChild(F),this.matrixFilter=F}function SVGStrokeEffect(B,R){this.initialized=!1,this.filterManager=R,this.elem=B,this.paths=[]}function SVGTritoneFilter(B,R){this.filterManager=R;var F=createNS("feColorMatrix");F.setAttribute("type","matrix"),F.setAttribute("color-interpolation-filters","linearRGB"),F.setAttribute("values","0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0"),F.setAttribute("result","f1"),B.appendChild(F);var D=createNS("feComponentTransfer");D.setAttribute("color-interpolation-filters","sRGB"),B.appendChild(D),this.matrixFilter=D;var G=createNS("feFuncR");G.setAttribute("type","table"),D.appendChild(G),this.feFuncR=G;var U=createNS("feFuncG");U.setAttribute("type","table"),D.appendChild(U),this.feFuncG=U;var W=createNS("feFuncB");W.setAttribute("type","table"),D.appendChild(W),this.feFuncB=W}function SVGProLevelsFilter(B,R){this.filterManager=R;var F=this.filterManager.effectElements,D=createNS("feComponentTransfer");(F[10].p.k||F[10].p.v!==0||F[11].p.k||F[11].p.v!==1||F[12].p.k||F[12].p.v!==1||F[13].p.k||F[13].p.v!==0||F[14].p.k||F[14].p.v!==1)&&(this.feFuncR=this.createFeFunc("feFuncR",D)),(F[17].p.k||F[17].p.v!==0||F[18].p.k||F[18].p.v!==1||F[19].p.k||F[19].p.v!==1||F[20].p.k||F[20].p.v!==0||F[21].p.k||F[21].p.v!==1)&&(this.feFuncG=this.createFeFunc("feFuncG",D)),(F[24].p.k||F[24].p.v!==0||F[25].p.k||F[25].p.v!==1||F[26].p.k||F[26].p.v!==1||F[27].p.k||F[27].p.v!==0||F[28].p.k||F[28].p.v!==1)&&(this.feFuncB=this.createFeFunc("feFuncB",D)),(F[31].p.k||F[31].p.v!==0||F[32].p.k||F[32].p.v!==1||F[33].p.k||F[33].p.v!==1||F[34].p.k||F[34].p.v!==0||F[35].p.k||F[35].p.v!==1)&&(this.feFuncA=this.createFeFunc("feFuncA",D)),(this.feFuncR||this.feFuncG||this.feFuncB||this.feFuncA)&&(D.setAttribute("color-interpolation-filters","sRGB"),B.appendChild(D),D=createNS("feComponentTransfer")),(F[3].p.k||F[3].p.v!==0||F[4].p.k||F[4].p.v!==1||F[5].p.k||F[5].p.v!==1||F[6].p.k||F[6].p.v!==0||F[7].p.k||F[7].p.v!==1)&&(D.setAttribute("color-interpolation-filters","sRGB"),B.appendChild(D),this.feFuncRComposed=this.createFeFunc("feFuncR",D),this.feFuncGComposed=this.createFeFunc("feFuncG",D),this.feFuncBComposed=this.createFeFunc("feFuncB",D))}function SVGDropShadowEffect(B,R){var F=R.container.globalData.renderConfig.filterSize;B.setAttribute("x",F.x),B.setAttribute("y",F.y),B.setAttribute("width",F.width),B.setAttribute("height",F.height),this.filterManager=R;var D=createNS("feGaussianBlur");D.setAttribute("in","SourceAlpha"),D.setAttribute("result","drop_shadow_1"),D.setAttribute("stdDeviation","0"),this.feGaussianBlur=D,B.appendChild(D);var G=createNS("feOffset");G.setAttribute("dx","25"),G.setAttribute("dy","0"),G.setAttribute("in","drop_shadow_1"),G.setAttribute("result","drop_shadow_2"),this.feOffset=G,B.appendChild(G);var U=createNS("feFlood");U.setAttribute("flood-color","#00ff00"),U.setAttribute("flood-opacity","1"),U.setAttribute("result","drop_shadow_3"),this.feFlood=U,B.appendChild(U);var W=createNS("feComposite");W.setAttribute("in","drop_shadow_3"),W.setAttribute("in2","drop_shadow_2"),W.setAttribute("operator","in"),W.setAttribute("result","drop_shadow_4"),B.appendChild(W);var q,Y=createNS("feMerge");B.appendChild(Y),q=createNS("feMergeNode"),Y.appendChild(q),(q=createNS("feMergeNode")).setAttribute("in","SourceGraphic"),this.feMergeNode=q,this.feMerge=Y,this.originalNodeAdded=!1,Y.appendChild(q)}SVGTintFilter.prototype.renderFrame=function(B){if(B||this.filterManager._mdf){var R=this.filterManager.effectElements[0].p.v,F=this.filterManager.effectElements[1].p.v,D=this.filterManager.effectElements[2].p.v/100;this.matrixFilter.setAttribute("values",F[0]-R[0]+" 0 0 0 "+R[0]+" "+(F[1]-R[1])+" 0 0 0 "+R[1]+" "+(F[2]-R[2])+" 0 0 0 "+R[2]+" 0 0 0 "+D+" 0")}},SVGFillFilter.prototype.renderFrame=function(B){if(B||this.filterManager._mdf){var R=this.filterManager.effectElements[2].p.v,F=this.filterManager.effectElements[6].p.v;this.matrixFilter.setAttribute("values","0 0 0 0 "+R[0]+" 0 0 0 0 "+R[1]+" 0 0 0 0 "+R[2]+" 0 0 0 "+F+" 0")}},SVGStrokeEffect.prototype.initialize=function(){var B,R,F,D,G=this.elem.layerElement.children||this.elem.layerElement.childNodes;for(this.filterManager.effectElements[1].p.v===1?(D=this.elem.maskManager.masksProperties.length,F=0):D=(F=this.filterManager.effectElements[0].p.v-1)+1,(R=createNS("g")).setAttribute("fill","none"),R.setAttribute("stroke-linecap","round"),R.setAttribute("stroke-dashoffset",1);F=Q?ie<0?D:G:D+J*Math.pow((U-B)/ie,1/F),Z[K]=W,K+=1,q+=256/255;return Z.join(" ")},SVGProLevelsFilter.prototype.renderFrame=function(B){if(B||this.filterManager._mdf){var R,F=this.filterManager.effectElements;this.feFuncRComposed&&(B||F[3].p._mdf||F[4].p._mdf||F[5].p._mdf||F[6].p._mdf||F[7].p._mdf)&&(R=this.getTableValue(F[3].p.v,F[4].p.v,F[5].p.v,F[6].p.v,F[7].p.v),this.feFuncRComposed.setAttribute("tableValues",R),this.feFuncGComposed.setAttribute("tableValues",R),this.feFuncBComposed.setAttribute("tableValues",R)),this.feFuncR&&(B||F[10].p._mdf||F[11].p._mdf||F[12].p._mdf||F[13].p._mdf||F[14].p._mdf)&&(R=this.getTableValue(F[10].p.v,F[11].p.v,F[12].p.v,F[13].p.v,F[14].p.v),this.feFuncR.setAttribute("tableValues",R)),this.feFuncG&&(B||F[17].p._mdf||F[18].p._mdf||F[19].p._mdf||F[20].p._mdf||F[21].p._mdf)&&(R=this.getTableValue(F[17].p.v,F[18].p.v,F[19].p.v,F[20].p.v,F[21].p.v),this.feFuncG.setAttribute("tableValues",R)),this.feFuncB&&(B||F[24].p._mdf||F[25].p._mdf||F[26].p._mdf||F[27].p._mdf||F[28].p._mdf)&&(R=this.getTableValue(F[24].p.v,F[25].p.v,F[26].p.v,F[27].p.v,F[28].p.v),this.feFuncB.setAttribute("tableValues",R)),this.feFuncA&&(B||F[31].p._mdf||F[32].p._mdf||F[33].p._mdf||F[34].p._mdf||F[35].p._mdf)&&(R=this.getTableValue(F[31].p.v,F[32].p.v,F[33].p.v,F[34].p.v,F[35].p.v),this.feFuncA.setAttribute("tableValues",R))}},SVGDropShadowEffect.prototype.renderFrame=function(B){if(B||this.filterManager._mdf){if((B||this.filterManager.effectElements[4].p._mdf)&&this.feGaussianBlur.setAttribute("stdDeviation",this.filterManager.effectElements[4].p.v/4),B||this.filterManager.effectElements[0].p._mdf){var R=this.filterManager.effectElements[0].p.v;this.feFlood.setAttribute("flood-color",rgbToHex(Math.round(255*R[0]),Math.round(255*R[1]),Math.round(255*R[2])))}if((B||this.filterManager.effectElements[1].p._mdf)&&this.feFlood.setAttribute("flood-opacity",this.filterManager.effectElements[1].p.v/255),B||this.filterManager.effectElements[2].p._mdf||this.filterManager.effectElements[3].p._mdf){var F=this.filterManager.effectElements[3].p.v,D=(this.filterManager.effectElements[2].p.v-90)*degToRads,G=F*Math.cos(D),U=F*Math.sin(D);this.feOffset.setAttribute("dx",G),this.feOffset.setAttribute("dy",U)}}};var _svgMatteSymbols=[];function SVGMatte3Effect(B,R,F){this.initialized=!1,this.filterManager=R,this.filterElem=B,this.elem=F,F.matteElement=createNS("g"),F.matteElement.appendChild(F.layerElement),F.matteElement.appendChild(F.transformedElement),F.baseElement=F.matteElement}function SVGGaussianBlurEffect(B,R){B.setAttribute("x","-100%"),B.setAttribute("y","-100%"),B.setAttribute("width","300%"),B.setAttribute("height","300%"),this.filterManager=R;var F=createNS("feGaussianBlur");B.appendChild(F),this.feGaussianBlur=F}SVGMatte3Effect.prototype.findSymbol=function(B){for(var R=0,F=_svgMatteSymbols.length;R=0&&!this.shapeModifiers[B].processShapes(this._isFirstFrame);B-=1);}},searchProcessedElement:function(B){for(var R=this.processedElements,F=0,D=R.length;F.01)return!1;F+=1}return!0},GradientProperty.prototype.checkCollapsable=function(){if(this.o.length/2!=this.c.length/4)return!1;if(this.data.k.k[0].s)for(var B=0,R=this.data.k.k.length;B0;)se=Z.transformers[me].mProps._mdf||se,de-=1,me-=1;if(se)for(de=ge-Z.styles[ae].lvl,me=Z.transformers.length-1;de>0;)he=Z.transformers[me].mProps.v.props,ce.transform(he[0],he[1],he[2],he[3],he[4],he[5],he[6],he[7],he[8],he[9],he[10],he[11],he[12],he[13],he[14],he[15]),de-=1,me-=1}else ce=B;if(ie=(le=Z.sh.paths)._length,se){for(ne="",J=0;J=1?ve=.99:ve<=-1&&(ve=-.99);var xe=re*ve,Pe=Math.cos(Ee+Z.a.v)*xe+ce[0],ye=Math.sin(Ee+Z.a.v)*xe+ce[1];ae.setAttribute("fx",Pe),ae.setAttribute("fy",ye),le&&!Z.g._collapsable&&(Z.of.setAttribute("fx",Pe),Z.of.setAttribute("fy",ye))}}function Y(Q,Z,K){var J=Z.style,ie=Z.d;ie&&(ie._mdf||K)&&ie.dashStr&&(J.pElem.setAttribute("stroke-dasharray",ie.dashStr),J.pElem.setAttribute("stroke-dashoffset",ie.dashoffset[0])),Z.c&&(Z.c._mdf||K)&&J.pElem.setAttribute("stroke","rgb("+bmFloor(Z.c.v[0])+","+bmFloor(Z.c.v[1])+","+bmFloor(Z.c.v[2])+")"),(Z.o._mdf||K)&&J.pElem.setAttribute("stroke-opacity",Z.o.v),(Z.w._mdf||K)&&(J.pElem.setAttribute("stroke-width",Z.w.v),J.msElem&&J.msElem.setAttribute("stroke-width",Z.w.v))}return{createRenderFunction:function(Q){switch(Q.ty){case"fl":return U;case"gf":return q;case"gs":return W;case"st":return Y;case"sh":case"el":case"rc":case"sr":return G;case"tr":return F;case"no":return D;default:return null}}}}();function SVGShapeElement(B,R,F){this.shapes=[],this.shapesData=B.shapes,this.stylesList=[],this.shapeModifiers=[],this.itemsData=[],this.processedElements=[],this.animatedContents=[],this.initElement(B,R,F),this.prevViewData=[]}function LetterProps(B,R,F,D,G,U){this.o=B,this.sw=R,this.sc=F,this.fc=D,this.m=G,this.p=U,this._mdf={o:!0,sw:!!R,sc:!!F,fc:!!D,m:!0,p:!0}}function TextProperty(B,R){this._frameId=initialDefaultFrame,this.pv="",this.v="",this.kf=!1,this._isFirstFrame=!0,this._mdf=!1,this.data=R,this.elem=B,this.comp=this.elem.comp,this.keysIndex=0,this.canResize=!1,this.minimumFontSize=1,this.effectsSequence=[],this.currentData={ascent:0,boxWidth:this.defaultBoxWidth,f:"",fStyle:"",fWeight:"",fc:"",j:"",justifyOffset:"",l:[],lh:0,lineWidths:[],ls:"",of:"",s:"",sc:"",sw:0,t:0,tr:0,sz:0,ps:null,fillColorAnim:!1,strokeColorAnim:!1,strokeWidthAnim:!1,yOffset:0,finalSize:0,finalText:[],finalLineHeight:0,__complete:!1},this.copyData(this.currentData,this.data.d.k[0].s),this.searchProperty()||this.completeTextData(this.currentData)}extendPrototype([BaseElement,TransformElement,SVGBaseElement,IShapeElement,HierarchyElement,FrameElement,RenderableDOMElement],SVGShapeElement),SVGShapeElement.prototype.initSecondaryElement=function(){},SVGShapeElement.prototype.identityMatrix=new Matrix,SVGShapeElement.prototype.buildExpressionInterface=function(){},SVGShapeElement.prototype.createContent=function(){this.searchShapes(this.shapesData,this.itemsData,this.prevViewData,this.layerElement,0,[],!0),this.filterUniqueShapes()},SVGShapeElement.prototype.filterUniqueShapes=function(){var B,R,F,D,G=this.shapes.length,U=this.stylesList.length,W=[],q=!1;for(F=0;F1&&q&&this.setShapesAsAnimated(W)}},SVGShapeElement.prototype.setShapesAsAnimated=function(B){var R,F=B.length;for(R=0;R=0;q-=1){if((J=this.searchProcessedElement(B[q]))?R[q]=F[J-1]:B[q]._render=W,B[q].ty==="fl"||B[q].ty==="st"||B[q].ty==="gf"||B[q].ty==="gs"||B[q].ty==="no")J?R[q].style.closed=!1:R[q]=this.createStyleElement(B[q],G),B[q]._render&&R[q].style.pElem.parentNode!==D&&D.appendChild(R[q].style.pElem),se.push(R[q].style);else if(B[q].ty==="gr"){if(J)for(Q=R[q].it.length,Y=0;Y1,this.kf&&this.addEffect(this.getKeyframeValue.bind(this)),this.kf},TextProperty.prototype.addEffect=function(B){this.effectsSequence.push(B),this.elem.addDynamicProperty(this)},TextProperty.prototype.getValue=function(B){if(this.elem.globalData.frameId!==this.frameId&&this.effectsSequence.length||B){this.currentData.t=this.data.d.k[this.keysIndex].s.t;var R=this.currentData,F=this.keysIndex;if(this.lock)this.setCurrentData(this.currentData);else{var D;this.lock=!0,this._mdf=!1;var G=this.effectsSequence.length,U=B||this.data.d.k[this.keysIndex].s;for(D=0;DR);)F+=1;return this.keysIndex!==F&&(this.keysIndex=F),this.data.d.k[this.keysIndex].s},TextProperty.prototype.buildFinalText=function(B){for(var R,F,D=[],G=0,U=B.length,W=!1;G=55296&&R<=56319?(F=B.charCodeAt(G+1))>=56320&&F<=57343?(W||FontManager.isModifier(R,F)?(D[D.length-1]+=B.substr(G,2),W=!1):D.push(B.substr(G,2)),G+=1):D.push(B.charAt(G)):R>56319?(F=B.charCodeAt(G+1),FontManager.isZeroWidthJoiner(R,F)?(W=!0,D[D.length-1]+=B.substr(G,2),G+=1):D.push(B.charAt(G))):FontManager.isZeroWidthJoiner(R)?(D[D.length-1]+=B.charAt(G),W=!0):D.push(B.charAt(G)),G+=1;return D},TextProperty.prototype.completeTextData=function(B){B.__complete=!0;var R,F,D,G,U,W,q,Y=this.elem.globalData.fontManager,Q=this.data,Z=[],K=0,J=Q.m.g,ie=0,ne=0,se=0,re=[],ae=0,le=0,ce=Y.getFontByName(B.f),he=0,de=getFontProperties(ce);B.fWeight=de.weight,B.fStyle=de.style,B.finalSize=B.s,B.finalText=this.buildFinalText(B.t),F=B.finalText.length,B.finalLineHeight=B.lh;var me,fe=B.tr/1e3*B.finalSize;if(B.sz)for(var ge,Se,Ee=!0,ve=B.sz[0],xe=B.sz[1];Ee;){ge=0,ae=0,F=(Se=this.buildFinalText(B.t)).length,fe=B.tr/1e3*B.finalSize;var Pe=-1;for(R=0;Rve&&Se[R]!==" "?(Pe===-1?F+=1:R=Pe,ge+=B.finalLineHeight||1.2*B.finalSize,Se.splice(R,Pe===R?1:0,"\r"),Pe=-1,ae=0):(ae+=he,ae+=fe);ge+=ce.ascent*B.finalSize/100,this.canResize&&B.finalSize>this.minimumFontSize&&xele?ae:le,ae=-2*fe,G="",D=!0,se+=1):G=ye,Y.chars?(q=Y.getCharData(ye,ce.fStyle,Y.getFontByName(B.f).fFamily),he=D?0:q.w*B.finalSize/100):he=Y.measureText(G,B.f,B.finalSize),ye===" "?Te+=he+fe:(ae+=he+fe+Te,Te=0),Z.push({l:he,an:he,add:ie,n:D,anIndexes:[],val:G,line:se,animatorJustifyOffset:0}),J==2){if(ie+=he,G===""||G===" "||R===F-1){for(G!==""&&G!==" "||(ie-=he);ne<=R;)Z[ne].an=ie,Z[ne].ind=K,Z[ne].extra=he,ne+=1;K+=1,ie=0}}else if(J==3){if(ie+=he,G===""||R===F-1){for(G===""&&(ie-=he);ne<=R;)Z[ne].an=ie,Z[ne].ind=K,Z[ne].extra=he,ne+=1;ie=0,K+=1}}else Z[K].ind=K,Z[K].extra=0,K+=1;if(B.l=Z,le=ae>le?ae:le,re.push(ae),B.sz)B.boxWidth=B.sz[0],B.justifyOffset=0;else switch(B.boxWidth=le,B.j){case 1:B.justifyOffset=-B.boxWidth;break;case 2:B.justifyOffset=-B.boxWidth/2;break;default:B.justifyOffset=0}B.lineWidths=re;var Le,we,Ae,Me,ke=Q.a;W=ke.length;var Ne=[];for(U=0;U0?U=this.ne.v/100:W=-this.ne.v/100,this.xe.v>0?q=1-this.xe.v/100:Y=1+this.xe.v/100;var Q=BezierFactory.getBezierEasing(U,W,q,Y).get,Z=0,K=this.finalS,J=this.finalE,ie=this.data.sh;if(ie===2)Z=Q(Z=J===K?G>=J?1:0:B(0,R(.5/(J-K)+(G-K)/(J-K),1)));else if(ie===3)Z=Q(Z=J===K?G>=J?0:1:1-B(0,R(.5/(J-K)+(G-K)/(J-K),1)));else if(ie===4)J===K?Z=0:(Z=B(0,R(.5/(J-K)+(G-K)/(J-K),1)))<.5?Z*=2:Z=1-2*(Z-.5),Z=Q(Z);else if(ie===5){if(J===K)Z=0;else{var ne=J-K,se=-ne/2+(G=R(B(0,G+.5-K),J-K)),re=ne/2;Z=Math.sqrt(1-se*se/(re*re))}Z=Q(Z)}else ie===6?(J===K?Z=0:(G=R(B(0,G+.5-K),J-K),Z=(1+Math.cos(Math.PI+2*Math.PI*G/(J-K)))/2),Z=Q(Z)):(G>=F(K)&&(Z=B(0,R(G-K<0?R(J,1)-(K-G):J-G,1))),Z=Q(Z));if(this.sm.v!==100){var ae=.01*this.sm.v;ae===0&&(ae=1e-8);var le=.5-.5*ae;Z1&&(Z=1)}return Z*this.a.v},getValue:function(G){this.iterateDynamicProperties(),this._mdf=G||this._mdf,this._currentTextLength=this.elem.textProperty.currentData.l.length||0,G&&this.data.r===2&&(this.e.v=this._currentTextLength);var U=this.data.r===2?1:100/this.data.totalChars,W=this.o.v/U,q=this.s.v/U+W,Y=this.e.v/U+W;if(q>Y){var Q=q;q=Y,Y=Q}this.finalS=q,this.finalE=Y}},extendPrototype([DynamicPropertyContainer],D),{getTextSelectorProp:function(G,U,W){return new D(G,U)}}}();function TextAnimatorDataProperty(B,R,F){var D={propType:!1},G=PropertyFactory.getProp,U=R.a;this.a={r:U.r?G(B,U.r,0,degToRads,F):D,rx:U.rx?G(B,U.rx,0,degToRads,F):D,ry:U.ry?G(B,U.ry,0,degToRads,F):D,sk:U.sk?G(B,U.sk,0,degToRads,F):D,sa:U.sa?G(B,U.sa,0,degToRads,F):D,s:U.s?G(B,U.s,1,.01,F):D,a:U.a?G(B,U.a,1,0,F):D,o:U.o?G(B,U.o,0,.01,F):D,p:U.p?G(B,U.p,1,0,F):D,sw:U.sw?G(B,U.sw,0,0,F):D,sc:U.sc?G(B,U.sc,1,0,F):D,fc:U.fc?G(B,U.fc,1,0,F):D,fh:U.fh?G(B,U.fh,0,0,F):D,fs:U.fs?G(B,U.fs,0,.01,F):D,fb:U.fb?G(B,U.fb,0,.01,F):D,t:U.t?G(B,U.t,0,0,F):D},this.s=TextSelectorProp.getTextSelectorProp(B,R.s,F),this.s.t=R.s.t}function TextAnimatorProperty(B,R,F){this._isFirstFrame=!0,this._hasMaskedPath=!1,this._frameId=-1,this._textData=B,this._renderType=R,this._elem=F,this._animatorsData=createSizedArray(this._textData.a.length),this._pathData={},this._moreOptions={alignment:{}},this.renderedLetters=[],this.lettersChangedFlag=!1,this.initDynamicPropertyContainer(F)}function ITextElement(){}TextAnimatorProperty.prototype.searchProperties=function(){var B,R,F=this._textData.a.length,D=PropertyFactory.getProp;for(B=0;B=q+ht||!ne?(le=(q+ht-Q)/Y.partialLength,Ie=ie.point[0]+(Y.point[0]-ie.point[0])*le,Ge=ie.point[1]+(Y.point[1]-ie.point[1])*le,ge.translate(-de[0]*ve[G].an*.005,-de[1]*Me*.01),Z=!1):ne&&(Q+=Y.partialLength,(K+=1)>=ne.length&&(K=0,se[J+=1]?ne=se[J].points:he.v.c?(K=0,ne=se[J=0].points):(Q-=Y.partialLength,ne=null)),ne&&(ie=Y,re=(Y=ne[K]).partialLength));Ne=ve[G].an/2-ve[G].add,ge.translate(-Ne,0,0)}else Ne=ve[G].an/2-ve[G].add,ge.translate(-Ne,0,0),ge.translate(-de[0]*ve[G].an*.005,-de[1]*Me*.01,0);for(Te=0;TeB?this.textSpans[B].span:createNS(Y?"g":"text"),re<=B){if(W.setAttribute("stroke-linecap","butt"),W.setAttribute("stroke-linejoin","round"),W.setAttribute("stroke-miterlimit","4"),this.textSpans[B].span=W,Y){var ae=createNS("g");W.appendChild(ae),this.textSpans[B].childSpan=ae}this.textSpans[B].span=W,this.layerElement.appendChild(W)}W.style.display="inherit"}if(Q.reset(),Q.scale(F.finalSize/100,F.finalSize/100),Z&&(q[B].n&&(K=-ne,J+=F.yOffset,J+=ie?1:0,ie=!1),this.applyTextPropertiesToMatrix(F,Q,q[B].line,K,J),K+=q[B].l||0,K+=ne),Y){var le;if((se=this.globalData.fontManager.getCharData(F.finalText[B],D.fStyle,this.globalData.fontManager.getFontByName(F.f).fFamily)).t===1)le=new SVGCompElement(se.data,this.globalData,this);else{var ce=emptyShapeData;se.data&&se.data.shapes&&(ce=se.data),le=new SVGShapeElement(ce,this.globalData,this)}this.textSpans[B].glyph=le,le._debug=!0,le.prepareFrame(0),le.renderFrame(),this.textSpans[B].childSpan.appendChild(le.layerElement),this.textSpans[B].childSpan.setAttribute("transform","scale("+F.finalSize/100+","+F.finalSize/100+")")}else Z&&W.setAttribute("transform","translate("+Q.props[12]+","+Q.props[13]+")"),W.textContent=q[B].val,W.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve")}Z&&W&&W.setAttribute("d","")}else{var he=this.textContainer,de="start";switch(F.j){case 1:de="end";break;case 2:de="middle";break;default:de="start"}he.setAttribute("text-anchor",de),he.setAttribute("letter-spacing",ne);var me=this.buildTextContents(F.finalText);for(R=me.length,J=F.ps?F.ps[1]+F.ascent:0,B=0;B=0;R-=1)(this.completeLayers||this.elements[R])&&this.elements[R].prepareFrame(B-this.layers[R].st);if(this.globalData._mdf)for(R=0;R=0;F-=1)(this.completeLayers||this.elements[F])&&(this.elements[F].prepareFrame(this.renderedFrame-this.layers[F].st),this.elements[F]._mdf&&(this._mdf=!0))}},ICompElement.prototype.renderInnerContent=function(){var B,R=this.layers.length;for(B=0;B=U;)ae/=2,le/=2,ce>>>=1;return(ae+ce)/le};return re.int32=function(){return 0|se.g(4)},re.quick=function(){return se.g(4)/4294967296},re.double=re,Y(Q(se.S),B),(K.pass||J||function(ae,le,ce,he){return he&&(he.S&&q(he,se),ae.state=function(){return q(se,{})}),ce?(R.random=ae,le):ae})(re,ne,"global"in K?K.global:this==R,K.state)},Y(R.random(),B)}function initialize$2(B){seedRandom([],B)}var propTypes={SHAPE:"shape"};function _typeof(B){return(_typeof=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(R){return typeof R}:function(R){return R&&typeof Symbol=="function"&&R.constructor===Symbol&&R!==Symbol.prototype?"symbol":typeof R})(B)}var ExpressionManager=function(){var ob={},Math=BMMath,window=null,document=null,XMLHttpRequest=null,fetch=null,frames=null;function $bm_isInstanceOfArray(B){return B.constructor===Array||B.constructor===Float32Array}function isNumerable(B,R){return B==="number"||B==="boolean"||B==="string"||R instanceof Number}function $bm_neg(B){var R=_typeof(B);if(R==="number"||R==="boolean"||B instanceof Number)return-B;if($bm_isInstanceOfArray(B)){var F,D=B.length,G=[];for(F=0;FF){var D=F;F=R,R=D}return Math.min(Math.max(B,R),F)}function radiansToDegrees(B){return B/degToRads}var radians_to_degrees=radiansToDegrees;function degreesToRadians(B){return B*degToRads}var degrees_to_radians=radiansToDegrees,helperLengthArray=[0,0,0,0,0,0];function length(B,R){if(typeof B=="number"||B instanceof Number)return R=R||0,Math.abs(B-R);var F;R||(R=helperLengthArray);var D=Math.min(B.length,R.length),G=0;for(F=0;F.5?Q/(2-W-q):Q/(W+q),W){case D:R=(G-U)/Q+(G1&&(F-=1),F<1/6?B+6*(R-B)*F:F<.5?R:F<2/3?B+(R-B)*(2/3-F)*6:B}function hslToRgb(B){var R,F,D,G=B[0],U=B[1],W=B[2];if(U===0)R=W,D=W,F=W;else{var q=W<.5?W*(1+U):W+U-W*U,Y=2*W-q;R=hue2rgb(Y,q,G+1/3),F=hue2rgb(Y,q,G),D=hue2rgb(Y,q,G-1/3)}return[R,F,D,B[3]]}function linear(B,R,F,D,G){if(D!==void 0&&G!==void 0||(D=R,G=F,R=0,F=1),F=F)return G;var W,q=F===R?0:(B-R)/(F-R);if(!D.length)return D+(G-D)*q;var Y=D.length,Q=createTypedArray("float32",Y);for(W=0;W1){for(D=0;D1?R=1:R<0&&(R=0);var W=B(R);if($bm_isInstanceOfArray(G)){var q,Y=G.length,Q=createTypedArray("float32",Y);for(q=0;qdata.k[R].t&&Bdata.k[R+1].t-B?(F=R+2,D=data.k[R+1].t):(F=R+1,D=data.k[R].t);break}}F===-1&&(F=R+1,D=data.k[R].t)}else F=0,D=0;var U={};return U.index=F,U.time=D/elem.comp.globalData.frameRate,U}function key(B){var R,F,D;if(!data.k.length||typeof data.k[0]=="number")throw new Error("The property has no keyframe at index "+B);B-=1,R={time:data.k[B].t/elem.comp.globalData.frameRate,value:[]};var G=Object.prototype.hasOwnProperty.call(data.k[B],"s")?data.k[B].s:data.k[B-1].e;for(D=G.length,F=0;Fhe.length-1)&&(J=he.length-1),ne=de-(se=he[he.length-1-J].t)),K==="pingpong"){if(Math.floor((ce-se)/ne)%2!=0)return this.getValueAtTime((ne-(ce-se)%ne+se)/this.comp.globalData.frameRate,0)}else{if(K==="offset"){var me=this.getValueAtTime(se/this.comp.globalData.frameRate,0),fe=this.getValueAtTime(de/this.comp.globalData.frameRate,0),ge=this.getValueAtTime(((ce-se)%ne+se)/this.comp.globalData.frameRate,0),Se=Math.floor((ce-se)/ne);if(this.pv.length){for(ae=(le=new Array(me.length)).length,re=0;re=de)return this.pv;if(ie?se=de+(ne=J?Math.abs(this.elem.comp.globalData.frameRate*J):Math.max(0,this.elem.data.op-de)):((!J||J>he.length-1)&&(J=he.length-1),ne=(se=he[J].t)-de),K==="pingpong"){if(Math.floor((de-ce)/ne)%2==0)return this.getValueAtTime(((de-ce)%ne+de)/this.comp.globalData.frameRate,0)}else{if(K==="offset"){var me=this.getValueAtTime(de/this.comp.globalData.frameRate,0),fe=this.getValueAtTime(se/this.comp.globalData.frameRate,0),ge=this.getValueAtTime((ne-(de-ce)%ne+de)/this.comp.globalData.frameRate,0),Se=Math.floor((de-ce)/ne)+1;if(this.pv.length){for(ae=(le=new Array(me.length)).length,re=0;re1?(se+K-re)/(J-1):1,le=0,ce=0;for(ie=this.pv.length?createTypedArray("float32",this.pv.length):0;leae){var de=le,me=ie.c&&le===ce-1?0:le+1,fe=(ae-he)/re[le].addedLength;ne=bez.getPointInSegment(ie.v[de],ie.v[me],ie.o[de],ie.i[me],fe,re[le]);break}he+=re[le].addedLength,le+=1}return ne||(ne=ie.c?[ie.v[0][0],ie.v[0][1]]:[ie.v[ie._length-1][0],ie.v[ie._length-1][1]]),ne},vectorOnPath:function(K,J,ie){K==1?K=this.v.c:K==0&&(K=.999);var ne=this.pointOnPath(K,J),se=this.pointOnPath(K+.001,J),re=se[0]-ne[0],ae=se[1]-ne[1],le=Math.sqrt(Math.pow(re,2)+Math.pow(ae,2));return le===0?[0,0]:ie==="tangent"?[re/le,ae/le]:[-ae/le,re/le]},tangentOnPath:function(K,J){return this.vectorOnPath(K,J,"tangent")},normalOnPath:function(K,J){return this.vectorOnPath(K,J,"normal")},setGroupProperty:expressionHelpers.setGroupProperty,getValueAtTime:expressionHelpers.getStaticValueAtTime},extendPrototype([Q],q),extendPrototype([Q],Y),Y.prototype.getValueAtTime=function(K){return this._cachingAtTime||(this._cachingAtTime={shapeValue:shapePool.clone(this.pv),lastIndex:0,lastTime:initialDefaultFrame}),K*=this.elem.globalData.frameRate,(K-=this.offsetTime)!==this._cachingAtTime.lastTime&&(this._cachingAtTime.lastIndex=this._cachingAtTime.lastTime (c) 2009-2016 Stuart Knightley Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown. JSZip uses the library pako released under the MIT license : https://github.com/nodeca/pako/blob/main/LICENSE */(function(F){B.exports=F()})(function(){return function F(D,G,U){function W(Q,Z){if(!G[Q]){if(!D[Q]){var K=typeof commonjsRequire=="function"&&commonjsRequire;if(!Z&&K)return K(Q,!0);if(q)return q(Q,!0);var J=new Error("Cannot find module '"+Q+"'");throw J.code="MODULE_NOT_FOUND",J}var ie=G[Q]={exports:{}};D[Q][0].call(ie.exports,function(ne){var se=D[Q][1][ne];return W(se||ne)},ie,ie.exports,F,D,G,U)}return G[Q].exports}for(var q=typeof commonjsRequire=="function"&&commonjsRequire,Y=0;Y>2,ie=(3&Q)<<4|Z>>4,ne=ce>1?(15&Z)<<2|K>>6:64,se=ce>2?63&K:64,re.push(q.charAt(J)+q.charAt(ie)+q.charAt(ne)+q.charAt(se));return re.join("")},G.decode=function(Y){var Q,Z,K,J,ie,ne,se=0,re=0;if(Y.substr(0,5)==="data:")throw new Error("Invalid base64 input, it looks like a data url.");var ae,le=3*(Y=Y.replace(/[^A-Za-z0-9\+\/\=]/g,"")).length/4;if(Y.charAt(Y.length-1)===q.charAt(64)&&le--,Y.charAt(Y.length-2)===q.charAt(64)&&le--,le%1!=0)throw new Error("Invalid base64 input, bad content length.");for(ae=W.uint8array?new Uint8Array(0|le):new Array(0|le);se>4,Z=(15&J)<<4|(ie=q.indexOf(Y.charAt(se++)))>>2,K=(3&ie)<<6|(ne=q.indexOf(Y.charAt(se++))),ae[re++]=Q,ie!==64&&(ae[re++]=Z),ne!==64&&(ae[re++]=K);return ae}},{"./support":30,"./utils":32}],2:[function(F,D,G){var U=F("./external"),W=F("./stream/DataWorker"),q=F("./stream/Crc32Probe"),Y=F("./stream/DataLengthProbe");function Q(Z,K,J,ie,ne){this.compressedSize=Z,this.uncompressedSize=K,this.crc32=J,this.compression=ie,this.compressedContent=ne}Q.prototype={getContentWorker:function(){var Z=new W(U.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new Y("data_length")),K=this;return Z.on("end",function(){if(this.streamInfo.data_length!==K.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),Z},getCompressedWorker:function(){return new W(U.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},Q.createWorkerFrom=function(Z,K,J){return Z.pipe(new q).pipe(new Y("uncompressedSize")).pipe(K.compressWorker(J)).pipe(new Y("compressedSize")).withStreamInfo("compression",K)},D.exports=Q},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(F,D,G){var U=F("./stream/GenericWorker");G.STORE={magic:"\0\0",compressWorker:function(W){return new U("STORE compression")},uncompressWorker:function(){return new U("STORE decompression")}},G.DEFLATE=F("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(F,D,G){var U=F("./utils"),W=function(){for(var q,Y=[],Q=0;Q<256;Q++){q=Q;for(var Z=0;Z<8;Z++)q=1&q?3988292384^q>>>1:q>>>1;Y[Q]=q}return Y}();D.exports=function(q,Y){return q!==void 0&&q.length?U.getTypeOf(q)!=="string"?function(Q,Z,K,J){var ie=W,ne=J+K;Q^=-1;for(var se=J;se>>8^ie[255&(Q^Z[se])];return-1^Q}(0|Y,q,q.length,0):function(Q,Z,K,J){var ie=W,ne=J+K;Q^=-1;for(var se=J;se>>8^ie[255&(Q^Z.charCodeAt(se))];return-1^Q}(0|Y,q,q.length,0):0}},{"./utils":32}],5:[function(F,D,G){G.base64=!1,G.binary=!1,G.dir=!1,G.createFolders=!0,G.date=null,G.compression=null,G.compressionOptions=null,G.comment=null,G.unixPermissions=null,G.dosPermissions=null},{}],6:[function(F,D,G){var U=null;U=typeof Promise!="undefined"?Promise:F("lie"),D.exports={Promise:U}},{lie:37}],7:[function(F,D,G){var U=typeof Uint8Array!="undefined"&&typeof Uint16Array!="undefined"&&typeof Uint32Array!="undefined",W=F("pako"),q=F("./utils"),Y=F("./stream/GenericWorker"),Q=U?"uint8array":"array";function Z(K,J){Y.call(this,"FlateWorker/"+K),this._pako=null,this._pakoAction=K,this._pakoOptions=J,this.meta={}}G.magic="\b\0",q.inherits(Z,Y),Z.prototype.processChunk=function(K){this.meta=K.meta,this._pako===null&&this._createPako(),this._pako.push(q.transformTo(Q,K.data),!1)},Z.prototype.flush=function(){Y.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],!0)},Z.prototype.cleanUp=function(){Y.prototype.cleanUp.call(this),this._pako=null},Z.prototype._createPako=function(){this._pako=new W[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var K=this;this._pako.onData=function(J){K.push({data:J,meta:K.meta})}},G.compressWorker=function(K){return new Z("Deflate",K)},G.uncompressWorker=function(){return new Z("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(F,D,G){var U=F("../utils"),W=F("../stream/GenericWorker"),q=F("../utf8"),Y=F("../crc32"),Q=F("../signature"),Z=function(ne,se){var re,ae="";for(re=0;re>>=8;return ae},K=function(ne,se,re,ae,le,ce){var he,de,me=ne.file,fe=ne.compression,ge=ce!==q.utf8encode,Se=U.transformTo("string",ce(me.name)),Ee=U.transformTo("string",q.utf8encode(me.name)),ve=me.comment,xe=U.transformTo("string",ce(ve)),Pe=U.transformTo("string",q.utf8encode(ve)),ye=Ee.length!==me.name.length,Te=Pe.length!==ve.length,Le="",we="",Ae="",Me=me.dir,ke=me.date,Ne={crc32:0,compressedSize:0,uncompressedSize:0};se&&!re||(Ne.crc32=ne.crc32,Ne.compressedSize=ne.compressedSize,Ne.uncompressedSize=ne.uncompressedSize);var Ie=0;se&&(Ie|=8),ge||!ye&&!Te||(Ie|=2048);var Ge,ze,Ve,Ye=0,et=0;Me&&(Ye|=16),le==="UNIX"?(et=798,Ye|=(Ge=me.unixPermissions,ze=Me,Ve=Ge,Ge||(Ve=ze?16893:33204),(65535&Ve)<<16)):(et=20,Ye|=63&(me.dosPermissions||0)),he=ke.getUTCHours(),he<<=6,he|=ke.getUTCMinutes(),he<<=5,he|=ke.getUTCSeconds()/2,de=ke.getUTCFullYear()-1980,de<<=4,de|=ke.getUTCMonth()+1,de<<=5,de|=ke.getUTCDate(),ye&&(we=Z(1,1)+Z(Y(Se),4)+Ee,Le+="up"+Z(we.length,2)+we),Te&&(Ae=Z(1,1)+Z(Y(xe),4)+Pe,Le+="uc"+Z(Ae.length,2)+Ae);var Je="";return Je+=` \0`,Je+=Z(Ie,2),Je+=fe.magic,Je+=Z(he,2),Je+=Z(de,2),Je+=Z(Ne.crc32,4),Je+=Z(Ne.compressedSize,4),Je+=Z(Ne.uncompressedSize,4),Je+=Z(Se.length,2),Je+=Z(Le.length,2),{fileRecord:Q.LOCAL_FILE_HEADER+Je+Se+Le,dirRecord:Q.CENTRAL_FILE_HEADER+Z(et,2)+Je+Z(xe.length,2)+"\0\0\0\0"+Z(Ye,4)+Z(ae,4)+Se+Le+xe}},J=function(ne){return Q.DATA_DESCRIPTOR+Z(ne.crc32,4)+Z(ne.compressedSize,4)+Z(ne.uncompressedSize,4)};function ie(ne,se,re,ae){W.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=se,this.zipPlatform=re,this.encodeFileName=ae,this.streamFiles=ne,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}U.inherits(ie,W),ie.prototype.push=function(ne){var se=ne.meta.percent||0,re=this.entriesCount,ae=this._sources.length;this.accumulate?this.contentBuffer.push(ne):(this.bytesWritten+=ne.data.length,W.prototype.push.call(this,{data:ne.data,meta:{currentFile:this.currentFile,percent:re?(se+100*(re-ae-1))/re:100}}))},ie.prototype.openedSource=function(ne){this.currentSourceOffset=this.bytesWritten,this.currentFile=ne.file.name;var se=this.streamFiles&&!ne.file.dir;if(se){var re=K(ne,se,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:re.fileRecord,meta:{percent:0}})}else this.accumulate=!0},ie.prototype.closedSource=function(ne){this.accumulate=!1;var se=this.streamFiles&&!ne.file.dir,re=K(ne,se,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(re.dirRecord),se)this.push({data:J(ne),meta:{percent:100}});else for(this.push({data:re.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},ie.prototype.flush=function(){for(var ne=this.bytesWritten,se=0;se0?de.substring(0,me):""},ae=function(de){return de.slice(-1)!=="/"&&(de+="/"),de},le=function(de,me){return me=me!==void 0?me:Q.createFolders,de=ae(de),this.files[de]||se.call(this,de,null,{dir:!0,createFolders:me}),this.files[de]};function ce(de){return Object.prototype.toString.call(de)==="[object RegExp]"}var he={load:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},forEach:function(de){var me,fe,ge;for(me in this.files)ge=this.files[me],(fe=me.slice(this.root.length,me.length))&&me.slice(0,this.root.length)===this.root&&de(fe,ge)},filter:function(de){var me=[];return this.forEach(function(fe,ge){de(fe,ge)&&me.push(ge)}),me},file:function(de,me,fe){if(arguments.length===1){if(ce(de)){var ge=de;return this.filter(function(Ee,ve){return!ve.dir&&ge.test(Ee)})}var Se=this.files[this.root+de];return Se&&!Se.dir?Se:null}return de=this.root+de,se.call(this,de,me,fe),this},folder:function(de){if(!de)return this;if(ce(de))return this.filter(function(Se,Ee){return Ee.dir&&de.test(Se)});var me=this.root+de,fe=le.call(this,me),ge=this.clone();return ge.root=fe.name,ge},remove:function(de){de=this.root+de;var me=this.files[de];if(me||(de.slice(-1)!=="/"&&(de+="/"),me=this.files[de]),me&&!me.dir)delete this.files[de];else for(var fe=this.filter(function(Se,Ee){return Ee.name.slice(0,de.length)===de}),ge=0;ge=0;--J)if(this.data[J]===Y&&this.data[J+1]===Q&&this.data[J+2]===Z&&this.data[J+3]===K)return J-this.zero;return-1},W.prototype.readAndCheckSignature=function(q){var Y=q.charCodeAt(0),Q=q.charCodeAt(1),Z=q.charCodeAt(2),K=q.charCodeAt(3),J=this.readData(4);return Y===J[0]&&Q===J[1]&&Z===J[2]&&K===J[3]},W.prototype.readData=function(q){if(this.checkOffset(q),q===0)return[];var Y=this.data.slice(this.zero+this.index,this.zero+this.index+q);return this.index+=q,Y},D.exports=W},{"../utils":32,"./DataReader":18}],18:[function(F,D,G){var U=F("../utils");function W(q){this.data=q,this.length=q.length,this.index=0,this.zero=0}W.prototype={checkOffset:function(q){this.checkIndex(this.index+q)},checkIndex:function(q){if(this.length=this.index;Y--)Q=(Q<<8)+this.byteAt(Y);return this.index+=q,Q},readString:function(q){return U.transformTo("string",this.readData(q))},readData:function(q){},lastIndexOfSignature:function(q){},readAndCheckSignature:function(q){},readDate:function(){var q=this.readInt(4);return new Date(Date.UTC(1980+(q>>25&127),(q>>21&15)-1,q>>16&31,q>>11&31,q>>5&63,(31&q)<<1))}},D.exports=W},{"../utils":32}],19:[function(F,D,G){var U=F("./Uint8ArrayReader");function W(q){U.call(this,q)}F("../utils").inherits(W,U),W.prototype.readData=function(q){this.checkOffset(q);var Y=this.data.slice(this.zero+this.index,this.zero+this.index+q);return this.index+=q,Y},D.exports=W},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(F,D,G){var U=F("./DataReader");function W(q){U.call(this,q)}F("../utils").inherits(W,U),W.prototype.byteAt=function(q){return this.data.charCodeAt(this.zero+q)},W.prototype.lastIndexOfSignature=function(q){return this.data.lastIndexOf(q)-this.zero},W.prototype.readAndCheckSignature=function(q){return q===this.readData(4)},W.prototype.readData=function(q){this.checkOffset(q);var Y=this.data.slice(this.zero+this.index,this.zero+this.index+q);return this.index+=q,Y},D.exports=W},{"../utils":32,"./DataReader":18}],21:[function(F,D,G){var U=F("./ArrayReader");function W(q){U.call(this,q)}F("../utils").inherits(W,U),W.prototype.readData=function(q){if(this.checkOffset(q),q===0)return new Uint8Array(0);var Y=this.data.subarray(this.zero+this.index,this.zero+this.index+q);return this.index+=q,Y},D.exports=W},{"../utils":32,"./ArrayReader":17}],22:[function(F,D,G){var U=F("../utils"),W=F("../support"),q=F("./ArrayReader"),Y=F("./StringReader"),Q=F("./NodeBufferReader"),Z=F("./Uint8ArrayReader");D.exports=function(K){var J=U.getTypeOf(K);return U.checkSupport(J),J!=="string"||W.uint8array?J==="nodebuffer"?new Q(K):W.uint8array?new Z(U.transformTo("uint8array",K)):new q(U.transformTo("array",K)):new Y(K)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(F,D,G){G.LOCAL_FILE_HEADER="PK",G.CENTRAL_FILE_HEADER="PK",G.CENTRAL_DIRECTORY_END="PK",G.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x07",G.ZIP64_CENTRAL_DIRECTORY_END="PK",G.DATA_DESCRIPTOR="PK\x07\b"},{}],24:[function(F,D,G){var U=F("./GenericWorker"),W=F("../utils");function q(Y){U.call(this,"ConvertWorker to "+Y),this.destType=Y}W.inherits(q,U),q.prototype.processChunk=function(Y){this.push({data:W.transformTo(this.destType,Y.data),meta:Y.meta})},D.exports=q},{"../utils":32,"./GenericWorker":28}],25:[function(F,D,G){var U=F("./GenericWorker"),W=F("../crc32");function q(){U.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}F("../utils").inherits(q,U),q.prototype.processChunk=function(Y){this.streamInfo.crc32=W(Y.data,this.streamInfo.crc32||0),this.push(Y)},D.exports=q},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(F,D,G){var U=F("../utils"),W=F("./GenericWorker");function q(Y){W.call(this,"DataLengthProbe for "+Y),this.propName=Y,this.withStreamInfo(Y,0)}U.inherits(q,W),q.prototype.processChunk=function(Y){if(Y){var Q=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=Q+Y.data.length}W.prototype.processChunk.call(this,Y)},D.exports=q},{"../utils":32,"./GenericWorker":28}],27:[function(F,D,G){var U=F("../utils"),W=F("./GenericWorker");function q(Y){W.call(this,"DataWorker");var Q=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,Y.then(function(Z){Q.dataIsReady=!0,Q.data=Z,Q.max=Z&&Z.length||0,Q.type=U.getTypeOf(Z),Q.isPaused||Q._tickAndRepeat()},function(Z){Q.error(Z)})}U.inherits(q,W),q.prototype.cleanUp=function(){W.prototype.cleanUp.call(this),this.data=null},q.prototype.resume=function(){return!!W.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,U.delay(this._tickAndRepeat,[],this)),!0)},q.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(U.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},q.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var Y=null,Q=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":Y=this.data.substring(this.index,Q);break;case"uint8array":Y=this.data.subarray(this.index,Q);break;case"array":case"nodebuffer":Y=this.data.slice(this.index,Q)}return this.index=Q,this.push({data:Y,meta:{percent:this.max?this.index/this.max*100:0}})},D.exports=q},{"../utils":32,"./GenericWorker":28}],28:[function(F,D,G){function U(W){this.name=W||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}U.prototype={push:function(W){this.emit("data",W)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(W){this.emit("error",W)}return!0},error:function(W){return!this.isFinished&&(this.isPaused?this.generatedError=W:(this.isFinished=!0,this.emit("error",W),this.previous&&this.previous.error(W),this.cleanUp()),!0)},on:function(W,q){return this._listeners[W].push(q),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(W,q){if(this._listeners[W])for(var Y=0;Y "+W:W}},D.exports=U},{}],29:[function(F,D,G){var U=F("../utils"),W=F("./ConvertWorker"),q=F("./GenericWorker"),Y=F("../base64"),Q=F("../support"),Z=F("../external"),K=null;if(Q.nodestream)try{K=F("../nodejs/NodejsStreamOutputAdapter")}catch{}function J(ne,se){return new Z.Promise(function(re,ae){var le=[],ce=ne._internalType,he=ne._outputType,de=ne._mimeType;ne.on("data",function(me,fe){le.push(me),se&&se(fe)}).on("error",function(me){le=[],ae(me)}).on("end",function(){try{var me=function(fe,ge,Se){switch(fe){case"blob":return U.newBlob(U.transformTo("arraybuffer",ge),Se);case"base64":return Y.encode(ge);default:return U.transformTo(fe,ge)}}(he,function(fe,ge){var Se,Ee=0,ve=null,xe=0;for(Se=0;Se=252?6:Z>=248?5:Z>=240?4:Z>=224?3:Z>=192?2:1;Q[254]=Q[254]=1;function K(){Y.call(this,"utf-8 decode"),this.leftOver=null}function J(){Y.call(this,"utf-8 encode")}G.utf8encode=function(ie){return W.nodebuffer?q.newBufferFrom(ie,"utf-8"):function(ne){var se,re,ae,le,ce,he=ne.length,de=0;for(le=0;le>>6,se[ce++]=128|63&re):re<65536?(se[ce++]=224|re>>>12,se[ce++]=128|re>>>6&63,se[ce++]=128|63&re):(se[ce++]=240|re>>>18,se[ce++]=128|re>>>12&63,se[ce++]=128|re>>>6&63,se[ce++]=128|63&re);return se}(ie)},G.utf8decode=function(ie){return W.nodebuffer?U.transformTo("nodebuffer",ie).toString("utf-8"):function(ne){var se,re,ae,le,ce=ne.length,he=new Array(2*ce);for(re=0,se=0;se4)he[re++]=65533,se+=le-1;else{for(ae&=le===2?31:le===3?15:7;le>1&&se1?he[re++]=65533:ae<65536?he[re++]=ae:(ae-=65536,he[re++]=55296|ae>>10&1023,he[re++]=56320|1023&ae)}return he.length!==re&&(he.subarray?he=he.subarray(0,re):he.length=re),U.applyFromCharCode(he)}(ie=U.transformTo(W.uint8array?"uint8array":"array",ie))},U.inherits(K,Y),K.prototype.processChunk=function(ie){var ne=U.transformTo(W.uint8array?"uint8array":"array",ie.data);if(this.leftOver&&this.leftOver.length){if(W.uint8array){var se=ne;(ne=new Uint8Array(se.length+this.leftOver.length)).set(this.leftOver,0),ne.set(se,this.leftOver.length)}else ne=this.leftOver.concat(ne);this.leftOver=null}var re=function(le,ce){var he;for((ce=ce||le.length)>le.length&&(ce=le.length),he=ce-1;he>=0&&(192&le[he])==128;)he--;return he<0||he===0?ce:he+Q[le[he]]>ce?he:ce}(ne),ae=ne;re!==ne.length&&(W.uint8array?(ae=ne.subarray(0,re),this.leftOver=ne.subarray(re,ne.length)):(ae=ne.slice(0,re),this.leftOver=ne.slice(re,ne.length))),this.push({data:G.utf8decode(ae),meta:ie.meta})},K.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:G.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},G.Utf8DecodeWorker=K,U.inherits(J,Y),J.prototype.processChunk=function(ie){this.push({data:G.utf8encode(ie.data),meta:ie.meta})},G.Utf8EncodeWorker=J},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(F,D,G){var U=F("./support"),W=F("./base64"),q=F("./nodejsUtils"),Y=F("./external");function Q(se){return se}function Z(se,re){for(var ae=0;ae1;)try{return K.stringifyByChunk(se,ae,re)}catch{re=Math.floor(re/2)}return K.stringifyByChar(se)}function ie(se,re){for(var ae=0;ae1)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var K,J;for(K=0;K0)this.isSignature(J,q.CENTRAL_FILE_HEADER)||(this.reader.zero=ne);else if(ne<0)throw new Error("Corrupted zip: missing "+Math.abs(ne)+" bytes.")},prepareReader:function(K){this.reader=U(K)},load:function(K){this.prepareReader(K),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},D.exports=Z},{"./reader/readerFor":22,"./signature":23,"./support":30,"./utf8":31,"./utils":32,"./zipEntry":34}],34:[function(F,D,G){var U=F("./reader/readerFor"),W=F("./utils"),q=F("./compressedObject"),Y=F("./crc32"),Q=F("./utf8"),Z=F("./compressions"),K=F("./support");function J(ie,ne){this.options=ie,this.loadOptions=ne}J.prototype={isEncrypted:function(){return(1&this.bitFlag)==1},useUTF8:function(){return(2048&this.bitFlag)==2048},readLocalPart:function(ie){var ne,se;if(ie.skip(22),this.fileNameLength=ie.readInt(2),se=ie.readInt(2),this.fileName=ie.readData(this.fileNameLength),ie.skip(se),this.compressedSize===-1||this.uncompressedSize===-1)throw new Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)");if((ne=function(re){for(var ae in Z)if(Z.hasOwnProperty(ae)&&Z[ae].magic===re)return Z[ae];return null}(this.compressionMethod))===null)throw new Error("Corrupted zip : compression "+W.pretty(this.compressionMethod)+" unknown (inner file : "+W.transformTo("string",this.fileName)+")");this.decompressed=new q(this.compressedSize,this.uncompressedSize,this.crc32,ne,ie.readData(this.compressedSize))},readCentralPart:function(ie){this.versionMadeBy=ie.readInt(2),ie.skip(2),this.bitFlag=ie.readInt(2),this.compressionMethod=ie.readString(2),this.date=ie.readDate(),this.crc32=ie.readInt(4),this.compressedSize=ie.readInt(4),this.uncompressedSize=ie.readInt(4);var ne=ie.readInt(2);if(this.extraFieldsLength=ie.readInt(2),this.fileCommentLength=ie.readInt(2),this.diskNumberStart=ie.readInt(2),this.internalFileAttributes=ie.readInt(2),this.externalFileAttributes=ie.readInt(4),this.localHeaderOffset=ie.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");ie.skip(ne),this.readExtraFields(ie),this.parseZIP64ExtraField(ie),this.fileComment=ie.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var ie=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),ie===0&&(this.dosPermissions=63&this.externalFileAttributes),ie===3&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||this.fileNameStr.slice(-1)!=="/"||(this.dir=!0)},parseZIP64ExtraField:function(ie){if(this.extraFields[1]){var ne=U(this.extraFields[1].value);this.uncompressedSize===W.MAX_VALUE_32BITS&&(this.uncompressedSize=ne.readInt(8)),this.compressedSize===W.MAX_VALUE_32BITS&&(this.compressedSize=ne.readInt(8)),this.localHeaderOffset===W.MAX_VALUE_32BITS&&(this.localHeaderOffset=ne.readInt(8)),this.diskNumberStart===W.MAX_VALUE_32BITS&&(this.diskNumberStart=ne.readInt(4))}},readExtraFields:function(ie){var ne,se,re,ae=ie.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});ie.index+40?ne.windowBits=-ne.windowBits:ne.gzip&&ne.windowBits>0&&ne.windowBits<16&&(ne.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Q,this.strm.avail_out=0;var se=U.deflateInit2(this.strm,ne.level,ne.method,ne.windowBits,ne.memLevel,ne.strategy);if(se!==0)throw new Error(Y[se]);if(ne.header&&U.deflateSetHeader(this.strm,ne.header),ne.dictionary){var re;if(re=typeof ne.dictionary=="string"?q.string2buf(ne.dictionary):Z.call(ne.dictionary)==="[object ArrayBuffer]"?new Uint8Array(ne.dictionary):ne.dictionary,(se=U.deflateSetDictionary(this.strm,re))!==0)throw new Error(Y[se]);this._dict_set=!0}}function J(ie,ne){var se=new K(ne);if(se.push(ie,!0),se.err)throw se.msg||Y[se.err];return se.result}K.prototype.push=function(ie,ne){var se,re,ae=this.strm,le=this.options.chunkSize;if(this.ended)return!1;re=ne===~~ne?ne:ne===!0?4:0,typeof ie=="string"?ae.input=q.string2buf(ie):Z.call(ie)==="[object ArrayBuffer]"?ae.input=new Uint8Array(ie):ae.input=ie,ae.next_in=0,ae.avail_in=ae.input.length;do{if(ae.avail_out===0&&(ae.output=new W.Buf8(le),ae.next_out=0,ae.avail_out=le),(se=U.deflate(ae,re))!==1&&se!==0)return this.onEnd(se),this.ended=!0,!1;ae.avail_out!==0&&(ae.avail_in!==0||re!==4&&re!==2)||(this.options.to==="string"?this.onData(q.buf2binstring(W.shrinkBuf(ae.output,ae.next_out))):this.onData(W.shrinkBuf(ae.output,ae.next_out)))}while((ae.avail_in>0||ae.avail_out===0)&&se!==1);return re===4?(se=U.deflateEnd(this.strm),this.onEnd(se),this.ended=!0,se===0):re!==2||(this.onEnd(0),ae.avail_out=0,!0)},K.prototype.onData=function(ie){this.chunks.push(ie)},K.prototype.onEnd=function(ie){ie===0&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=W.flattenChunks(this.chunks)),this.chunks=[],this.err=ie,this.msg=this.strm.msg},G.Deflate=K,G.deflate=J,G.deflateRaw=function(ie,ne){return(ne=ne||{}).raw=!0,J(ie,ne)},G.gzip=function(ie,ne){return(ne=ne||{}).gzip=!0,J(ie,ne)}},{"./utils/common":41,"./utils/strings":42,"./zlib/deflate":46,"./zlib/messages":51,"./zlib/zstream":53}],40:[function(F,D,G){var U=F("./zlib/inflate"),W=F("./utils/common"),q=F("./utils/strings"),Y=F("./zlib/constants"),Q=F("./zlib/messages"),Z=F("./zlib/zstream"),K=F("./zlib/gzheader"),J=Object.prototype.toString;function ie(se){if(!(this instanceof ie))return new ie(se);this.options=W.assign({chunkSize:16384,windowBits:0,to:""},se||{});var re=this.options;re.raw&&re.windowBits>=0&&re.windowBits<16&&(re.windowBits=-re.windowBits,re.windowBits===0&&(re.windowBits=-15)),!(re.windowBits>=0&&re.windowBits<16)||se&&se.windowBits||(re.windowBits+=32),re.windowBits>15&&re.windowBits<48&&(15&re.windowBits)==0&&(re.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Z,this.strm.avail_out=0;var ae=U.inflateInit2(this.strm,re.windowBits);if(ae!==Y.Z_OK)throw new Error(Q[ae]);this.header=new K,U.inflateGetHeader(this.strm,this.header)}function ne(se,re){var ae=new ie(re);if(ae.push(se,!0),ae.err)throw ae.msg||Q[ae.err];return ae.result}ie.prototype.push=function(se,re){var ae,le,ce,he,de,me,fe=this.strm,ge=this.options.chunkSize,Se=this.options.dictionary,Ee=!1;if(this.ended)return!1;le=re===~~re?re:re===!0?Y.Z_FINISH:Y.Z_NO_FLUSH,typeof se=="string"?fe.input=q.binstring2buf(se):J.call(se)==="[object ArrayBuffer]"?fe.input=new Uint8Array(se):fe.input=se,fe.next_in=0,fe.avail_in=fe.input.length;do{if(fe.avail_out===0&&(fe.output=new W.Buf8(ge),fe.next_out=0,fe.avail_out=ge),(ae=U.inflate(fe,Y.Z_NO_FLUSH))===Y.Z_NEED_DICT&&Se&&(me=typeof Se=="string"?q.string2buf(Se):J.call(Se)==="[object ArrayBuffer]"?new Uint8Array(Se):Se,ae=U.inflateSetDictionary(this.strm,me)),ae===Y.Z_BUF_ERROR&&Ee===!0&&(ae=Y.Z_OK,Ee=!1),ae!==Y.Z_STREAM_END&&ae!==Y.Z_OK)return this.onEnd(ae),this.ended=!0,!1;fe.next_out&&(fe.avail_out!==0&&ae!==Y.Z_STREAM_END&&(fe.avail_in!==0||le!==Y.Z_FINISH&&le!==Y.Z_SYNC_FLUSH)||(this.options.to==="string"?(ce=q.utf8border(fe.output,fe.next_out),he=fe.next_out-ce,de=q.buf2string(fe.output,ce),fe.next_out=he,fe.avail_out=ge-he,he&&W.arraySet(fe.output,fe.output,ce,he,0),this.onData(de)):this.onData(W.shrinkBuf(fe.output,fe.next_out)))),fe.avail_in===0&&fe.avail_out===0&&(Ee=!0)}while((fe.avail_in>0||fe.avail_out===0)&&ae!==Y.Z_STREAM_END);return ae===Y.Z_STREAM_END&&(le=Y.Z_FINISH),le===Y.Z_FINISH?(ae=U.inflateEnd(this.strm),this.onEnd(ae),this.ended=!0,ae===Y.Z_OK):le!==Y.Z_SYNC_FLUSH||(this.onEnd(Y.Z_OK),fe.avail_out=0,!0)},ie.prototype.onData=function(se){this.chunks.push(se)},ie.prototype.onEnd=function(se){se===Y.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=W.flattenChunks(this.chunks)),this.chunks=[],this.err=se,this.msg=this.strm.msg},G.Inflate=ie,G.inflate=ne,G.inflateRaw=function(se,re){return(re=re||{}).raw=!0,ne(se,re)},G.ungzip=ne},{"./utils/common":41,"./utils/strings":42,"./zlib/constants":44,"./zlib/gzheader":47,"./zlib/inflate":49,"./zlib/messages":51,"./zlib/zstream":53}],41:[function(F,D,G){var U=typeof Uint8Array!="undefined"&&typeof Uint16Array!="undefined"&&typeof Int32Array!="undefined";G.assign=function(Y){for(var Q=Array.prototype.slice.call(arguments,1);Q.length;){var Z=Q.shift();if(Z){if(typeof Z!="object")throw new TypeError(Z+"must be non-object");for(var K in Z)Z.hasOwnProperty(K)&&(Y[K]=Z[K])}}return Y},G.shrinkBuf=function(Y,Q){return Y.length===Q?Y:Y.subarray?Y.subarray(0,Q):(Y.length=Q,Y)};var W={arraySet:function(Y,Q,Z,K,J){if(Q.subarray&&Y.subarray)Y.set(Q.subarray(Z,Z+K),J);else for(var ie=0;ie=252?6:Q>=248?5:Q>=240?4:Q>=224?3:Q>=192?2:1;function Z(K,J){if(J<65537&&(K.subarray&&q||!K.subarray&&W))return String.fromCharCode.apply(null,U.shrinkBuf(K,J));for(var ie="",ne=0;ne>>6,J[re++]=128|63&ie):ie<65536?(J[re++]=224|ie>>>12,J[re++]=128|ie>>>6&63,J[re++]=128|63&ie):(J[re++]=240|ie>>>18,J[re++]=128|ie>>>12&63,J[re++]=128|ie>>>6&63,J[re++]=128|63&ie);return J},G.buf2binstring=function(K){return Z(K,K.length)},G.binstring2buf=function(K){for(var J=new U.Buf8(K.length),ie=0,ne=J.length;ie4)le[ne++]=65533,ie+=re-1;else{for(se&=re===2?31:re===3?15:7;re>1&&ie1?le[ne++]=65533:se<65536?le[ne++]=se:(se-=65536,le[ne++]=55296|se>>10&1023,le[ne++]=56320|1023&se)}return Z(le,ne)},G.utf8border=function(K,J){var ie;for((J=J||K.length)>K.length&&(J=K.length),ie=J-1;ie>=0&&(192&K[ie])==128;)ie--;return ie<0||ie===0?J:ie+Y[K[ie]]>J?ie:J}},{"./common":41}],43:[function(F,D,G){D.exports=function(U,W,q,Y){for(var Q=65535&U|0,Z=U>>>16&65535|0,K=0;q!==0;){q-=K=q>2e3?2e3:q;do Z=Z+(Q=Q+W[Y++]|0)|0;while(--K);Q%=65521,Z%=65521}return Q|Z<<16|0}},{}],44:[function(F,D,G){D.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],45:[function(F,D,G){var U=function(){for(var W,q=[],Y=0;Y<256;Y++){W=Y;for(var Q=0;Q<8;Q++)W=1&W?3988292384^W>>>1:W>>>1;q[Y]=W}return q}();D.exports=function(W,q,Y,Q){var Z=U,K=Q+Y;W^=-1;for(var J=Q;J>>8^Z[255&(W^q[J])];return-1^W}},{}],46:[function(F,D,G){var U,W=F("../utils/common"),q=F("./trees"),Y=F("./adler32"),Q=F("./crc32"),Z=F("./messages");function K(ve,xe){return ve.msg=Z[xe],xe}function J(ve){return(ve<<1)-(ve>4?9:0)}function ie(ve){for(var xe=ve.length;--xe>=0;)ve[xe]=0}function ne(ve){var xe=ve.state,Pe=xe.pending;Pe>ve.avail_out&&(Pe=ve.avail_out),Pe!==0&&(W.arraySet(ve.output,xe.pending_buf,xe.pending_out,Pe,ve.next_out),ve.next_out+=Pe,xe.pending_out+=Pe,ve.total_out+=Pe,ve.avail_out-=Pe,xe.pending-=Pe,xe.pending===0&&(xe.pending_out=0))}function se(ve,xe){q._tr_flush_block(ve,ve.block_start>=0?ve.block_start:-1,ve.strstart-ve.block_start,xe),ve.block_start=ve.strstart,ne(ve.strm)}function re(ve,xe){ve.pending_buf[ve.pending++]=xe}function ae(ve,xe){ve.pending_buf[ve.pending++]=xe>>>8&255,ve.pending_buf[ve.pending++]=255&xe}function le(ve,xe){var Pe,ye,Te=ve.max_chain_length,Le=ve.strstart,we=ve.prev_length,Ae=ve.nice_match,Me=ve.strstart>ve.w_size-262?ve.strstart-(ve.w_size-262):0,ke=ve.window,Ne=ve.w_mask,Ie=ve.prev,Ge=ve.strstart+258,ze=ke[Le+we-1],Ve=ke[Le+we];ve.prev_length>=ve.good_match&&(Te>>=2),Ae>ve.lookahead&&(Ae=ve.lookahead);do if(ke[(Pe=xe)+we]===Ve&&ke[Pe+we-1]===ze&&ke[Pe]===ke[Le]&&ke[++Pe]===ke[Le+1]){Le+=2,Pe++;do;while(ke[++Le]===ke[++Pe]&&ke[++Le]===ke[++Pe]&&ke[++Le]===ke[++Pe]&&ke[++Le]===ke[++Pe]&&ke[++Le]===ke[++Pe]&&ke[++Le]===ke[++Pe]&&ke[++Le]===ke[++Pe]&&ke[++Le]===ke[++Pe]&&Lewe){if(ve.match_start=xe,we=ye,ye>=Ae)break;ze=ke[Le+we-1],Ve=ke[Le+we]}}while((xe=Ie[xe&Ne])>Me&&--Te!=0);return we<=ve.lookahead?we:ve.lookahead}function ce(ve){var xe,Pe,ye,Te,Le,we,Ae,Me,ke,Ne,Ie=ve.w_size;do{if(Te=ve.window_size-ve.lookahead-ve.strstart,ve.strstart>=Ie+(Ie-262)){W.arraySet(ve.window,ve.window,Ie,Ie,0),ve.match_start-=Ie,ve.strstart-=Ie,ve.block_start-=Ie,xe=Pe=ve.hash_size;do ye=ve.head[--xe],ve.head[xe]=ye>=Ie?ye-Ie:0;while(--Pe);xe=Pe=Ie;do ye=ve.prev[--xe],ve.prev[xe]=ye>=Ie?ye-Ie:0;while(--Pe);Te+=Ie}if(ve.strm.avail_in===0)break;if(we=ve.strm,Ae=ve.window,Me=ve.strstart+ve.lookahead,ke=Te,Ne=void 0,(Ne=we.avail_in)>ke&&(Ne=ke),Pe=Ne===0?0:(we.avail_in-=Ne,W.arraySet(Ae,we.input,we.next_in,Ne,Me),we.state.wrap===1?we.adler=Y(we.adler,Ae,Ne,Me):we.state.wrap===2&&(we.adler=Q(we.adler,Ae,Ne,Me)),we.next_in+=Ne,we.total_in+=Ne,Ne),ve.lookahead+=Pe,ve.lookahead+ve.insert>=3)for(Le=ve.strstart-ve.insert,ve.ins_h=ve.window[Le],ve.ins_h=(ve.ins_h<=3&&(ve.ins_h=(ve.ins_h<=3)if(ye=q._tr_tally(ve,ve.strstart-ve.match_start,ve.match_length-3),ve.lookahead-=ve.match_length,ve.match_length<=ve.max_lazy_match&&ve.lookahead>=3){ve.match_length--;do ve.strstart++,ve.ins_h=(ve.ins_h<=3&&(ve.ins_h=(ve.ins_h<4096)&&(ve.match_length=2)),ve.prev_length>=3&&ve.match_length<=ve.prev_length){Te=ve.strstart+ve.lookahead-3,ye=q._tr_tally(ve,ve.strstart-1-ve.prev_match,ve.prev_length-3),ve.lookahead-=ve.prev_length-1,ve.prev_length-=2;do++ve.strstart<=Te&&(ve.ins_h=(ve.ins_h<15&&(we=2,ye-=16),Te<1||Te>9||Pe!==8||ye<8||ye>15||xe<0||xe>9||Le<0||Le>4)return K(ve,-2);ye===8&&(ye=9);var Ae=new fe;return ve.state=Ae,Ae.strm=ve,Ae.wrap=we,Ae.gzhead=null,Ae.w_bits=ye,Ae.w_size=1<ve.pending_buf_size-5&&(Pe=ve.pending_buf_size-5);;){if(ve.lookahead<=1){if(ce(ve),ve.lookahead===0&&xe===0)return 1;if(ve.lookahead===0)break}ve.strstart+=ve.lookahead,ve.lookahead=0;var ye=ve.block_start+Pe;if((ve.strstart===0||ve.strstart>=ye)&&(ve.lookahead=ve.strstart-ye,ve.strstart=ye,se(ve,!1),ve.strm.avail_out===0)||ve.strstart-ve.block_start>=ve.w_size-262&&(se(ve,!1),ve.strm.avail_out===0))return 1}return ve.insert=0,xe===4?(se(ve,!0),ve.strm.avail_out===0?3:4):(ve.strstart>ve.block_start&&(se(ve,!1),ve.strm.avail_out),1)}),new me(4,4,8,4,he),new me(4,5,16,8,he),new me(4,6,32,32,he),new me(4,4,16,16,de),new me(8,16,32,32,de),new me(8,16,128,128,de),new me(8,32,128,256,de),new me(32,128,258,1024,de),new me(32,258,258,4096,de)],G.deflateInit=function(ve,xe){return Ee(ve,xe,8,15,8,0)},G.deflateInit2=Ee,G.deflateReset=Se,G.deflateResetKeep=ge,G.deflateSetHeader=function(ve,xe){return ve&&ve.state?ve.state.wrap!==2?-2:(ve.state.gzhead=xe,0):-2},G.deflate=function(ve,xe){var Pe,ye,Te,Le;if(!ve||!ve.state||xe>5||xe<0)return ve?K(ve,-2):-2;if(ye=ve.state,!ve.output||!ve.input&&ve.avail_in!==0||ye.status===666&&xe!==4)return K(ve,ve.avail_out===0?-5:-2);if(ye.strm=ve,Pe=ye.last_flush,ye.last_flush=xe,ye.status===42)if(ye.wrap===2)ve.adler=0,re(ye,31),re(ye,139),re(ye,8),ye.gzhead?(re(ye,(ye.gzhead.text?1:0)+(ye.gzhead.hcrc?2:0)+(ye.gzhead.extra?4:0)+(ye.gzhead.name?8:0)+(ye.gzhead.comment?16:0)),re(ye,255&ye.gzhead.time),re(ye,ye.gzhead.time>>8&255),re(ye,ye.gzhead.time>>16&255),re(ye,ye.gzhead.time>>24&255),re(ye,ye.level===9?2:ye.strategy>=2||ye.level<2?4:0),re(ye,255&ye.gzhead.os),ye.gzhead.extra&&ye.gzhead.extra.length&&(re(ye,255&ye.gzhead.extra.length),re(ye,ye.gzhead.extra.length>>8&255)),ye.gzhead.hcrc&&(ve.adler=Q(ve.adler,ye.pending_buf,ye.pending,0)),ye.gzindex=0,ye.status=69):(re(ye,0),re(ye,0),re(ye,0),re(ye,0),re(ye,0),re(ye,ye.level===9?2:ye.strategy>=2||ye.level<2?4:0),re(ye,3),ye.status=113);else{var we=8+(ye.w_bits-8<<4)<<8;we|=(ye.strategy>=2||ye.level<2?0:ye.level<6?1:ye.level===6?2:3)<<6,ye.strstart!==0&&(we|=32),we+=31-we%31,ye.status=113,ae(ye,we),ye.strstart!==0&&(ae(ye,ve.adler>>>16),ae(ye,65535&ve.adler)),ve.adler=1}if(ye.status===69)if(ye.gzhead.extra){for(Te=ye.pending;ye.gzindex<(65535&ye.gzhead.extra.length)&&(ye.pending!==ye.pending_buf_size||(ye.gzhead.hcrc&&ye.pending>Te&&(ve.adler=Q(ve.adler,ye.pending_buf,ye.pending-Te,Te)),ne(ve),Te=ye.pending,ye.pending!==ye.pending_buf_size));)re(ye,255&ye.gzhead.extra[ye.gzindex]),ye.gzindex++;ye.gzhead.hcrc&&ye.pending>Te&&(ve.adler=Q(ve.adler,ye.pending_buf,ye.pending-Te,Te)),ye.gzindex===ye.gzhead.extra.length&&(ye.gzindex=0,ye.status=73)}else ye.status=73;if(ye.status===73)if(ye.gzhead.name){Te=ye.pending;do{if(ye.pending===ye.pending_buf_size&&(ye.gzhead.hcrc&&ye.pending>Te&&(ve.adler=Q(ve.adler,ye.pending_buf,ye.pending-Te,Te)),ne(ve),Te=ye.pending,ye.pending===ye.pending_buf_size)){Le=1;break}Le=ye.gzindexTe&&(ve.adler=Q(ve.adler,ye.pending_buf,ye.pending-Te,Te)),Le===0&&(ye.gzindex=0,ye.status=91)}else ye.status=91;if(ye.status===91)if(ye.gzhead.comment){Te=ye.pending;do{if(ye.pending===ye.pending_buf_size&&(ye.gzhead.hcrc&&ye.pending>Te&&(ve.adler=Q(ve.adler,ye.pending_buf,ye.pending-Te,Te)),ne(ve),Te=ye.pending,ye.pending===ye.pending_buf_size)){Le=1;break}Le=ye.gzindexTe&&(ve.adler=Q(ve.adler,ye.pending_buf,ye.pending-Te,Te)),Le===0&&(ye.status=103)}else ye.status=103;if(ye.status===103&&(ye.gzhead.hcrc?(ye.pending+2>ye.pending_buf_size&&ne(ve),ye.pending+2<=ye.pending_buf_size&&(re(ye,255&ve.adler),re(ye,ve.adler>>8&255),ve.adler=0,ye.status=113)):ye.status=113),ye.pending!==0){if(ne(ve),ve.avail_out===0)return ye.last_flush=-1,0}else if(ve.avail_in===0&&J(xe)<=J(Pe)&&xe!==4)return K(ve,-5);if(ye.status===666&&ve.avail_in!==0)return K(ve,-5);if(ve.avail_in!==0||ye.lookahead!==0||xe!==0&&ye.status!==666){var Ae=ye.strategy===2?function(Me,ke){for(var Ne;;){if(Me.lookahead===0&&(ce(Me),Me.lookahead===0)){if(ke===0)return 1;break}if(Me.match_length=0,Ne=q._tr_tally(Me,0,Me.window[Me.strstart]),Me.lookahead--,Me.strstart++,Ne&&(se(Me,!1),Me.strm.avail_out===0))return 1}return Me.insert=0,ke===4?(se(Me,!0),Me.strm.avail_out===0?3:4):Me.last_lit&&(se(Me,!1),Me.strm.avail_out===0)?1:2}(ye,xe):ye.strategy===3?function(Me,ke){for(var Ne,Ie,Ge,ze,Ve=Me.window;;){if(Me.lookahead<=258){if(ce(Me),Me.lookahead<=258&&ke===0)return 1;if(Me.lookahead===0)break}if(Me.match_length=0,Me.lookahead>=3&&Me.strstart>0&&(Ie=Ve[Ge=Me.strstart-1])===Ve[++Ge]&&Ie===Ve[++Ge]&&Ie===Ve[++Ge]){ze=Me.strstart+258;do;while(Ie===Ve[++Ge]&&Ie===Ve[++Ge]&&Ie===Ve[++Ge]&&Ie===Ve[++Ge]&&Ie===Ve[++Ge]&&Ie===Ve[++Ge]&&Ie===Ve[++Ge]&&Ie===Ve[++Ge]&&GeMe.lookahead&&(Me.match_length=Me.lookahead)}if(Me.match_length>=3?(Ne=q._tr_tally(Me,1,Me.match_length-3),Me.lookahead-=Me.match_length,Me.strstart+=Me.match_length,Me.match_length=0):(Ne=q._tr_tally(Me,0,Me.window[Me.strstart]),Me.lookahead--,Me.strstart++),Ne&&(se(Me,!1),Me.strm.avail_out===0))return 1}return Me.insert=0,ke===4?(se(Me,!0),Me.strm.avail_out===0?3:4):Me.last_lit&&(se(Me,!1),Me.strm.avail_out===0)?1:2}(ye,xe):U[ye.level].func(ye,xe);if(Ae!==3&&Ae!==4||(ye.status=666),Ae===1||Ae===3)return ve.avail_out===0&&(ye.last_flush=-1),0;if(Ae===2&&(xe===1?q._tr_align(ye):xe!==5&&(q._tr_stored_block(ye,0,0,!1),xe===3&&(ie(ye.head),ye.lookahead===0&&(ye.strstart=0,ye.block_start=0,ye.insert=0))),ne(ve),ve.avail_out===0))return ye.last_flush=-1,0}return xe!==4?0:ye.wrap<=0?1:(ye.wrap===2?(re(ye,255&ve.adler),re(ye,ve.adler>>8&255),re(ye,ve.adler>>16&255),re(ye,ve.adler>>24&255),re(ye,255&ve.total_in),re(ye,ve.total_in>>8&255),re(ye,ve.total_in>>16&255),re(ye,ve.total_in>>24&255)):(ae(ye,ve.adler>>>16),ae(ye,65535&ve.adler)),ne(ve),ye.wrap>0&&(ye.wrap=-ye.wrap),ye.pending!==0?0:1)},G.deflateEnd=function(ve){var xe;return ve&&ve.state?(xe=ve.state.status)!==42&&xe!==69&&xe!==73&&xe!==91&&xe!==103&&xe!==113&&xe!==666?K(ve,-2):(ve.state=null,xe===113?K(ve,-3):0):-2},G.deflateSetDictionary=function(ve,xe){var Pe,ye,Te,Le,we,Ae,Me,ke,Ne=xe.length;if(!ve||!ve.state||(Le=(Pe=ve.state).wrap)===2||Le===1&&Pe.status!==42||Pe.lookahead)return-2;for(Le===1&&(ve.adler=Y(ve.adler,xe,Ne,0)),Pe.wrap=0,Ne>=Pe.w_size&&(Le===0&&(ie(Pe.head),Pe.strstart=0,Pe.block_start=0,Pe.insert=0),ke=new W.Buf8(Pe.w_size),W.arraySet(ke,xe,Ne-Pe.w_size,Pe.w_size,0),xe=ke,Ne=Pe.w_size),we=ve.avail_in,Ae=ve.next_in,Me=ve.input,ve.avail_in=Ne,ve.next_in=0,ve.input=xe,ce(Pe);Pe.lookahead>=3;){ye=Pe.strstart,Te=Pe.lookahead-2;do Pe.ins_h=(Pe.ins_h<>>=Se=ge>>>24,ce-=Se,(Se=ge>>>16&255)===0)Te[Z++]=65535≥else{if(!(16&Se)){if((64&Se)==0){ge=he[(65535&ge)+(le&(1<>>=Se,ce-=Se),ce<15&&(le+=ye[Y++]<>>=Se=ge>>>24,ce-=Se,!(16&(Se=ge>>>16&255))){if((64&Se)==0){ge=de[(65535&ge)+(le&(1<ie){U.msg="invalid distance too far back",q.mode=30;break e}if(le>>>=Se,ce-=Se,ve>(Se=Z-K)){if((Se=ve-Se)>se&&q.sane){U.msg="invalid distance too far back",q.mode=30;break e}if(xe=0,Pe=ae,re===0){if(xe+=ne-Se,Se2;)Te[Z++]=Pe[xe++],Te[Z++]=Pe[xe++],Te[Z++]=Pe[xe++],Ee-=3;Ee&&(Te[Z++]=Pe[xe++],Ee>1&&(Te[Z++]=Pe[xe++]))}else{xe=Z-ve;do Te[Z++]=Te[xe++],Te[Z++]=Te[xe++],Te[Z++]=Te[xe++],Ee-=3;while(Ee>2);Ee&&(Te[Z++]=Te[xe++],Ee>1&&(Te[Z++]=Te[xe++]))}break}}break}}while(Y>3,le&=(1<<(ce-=Ee<<3))-1,U.next_in=Y,U.next_out=Z,U.avail_in=Y>>24&255)+(de>>>8&65280)+((65280&de)<<8)+((255&de)<<24)}function K(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new U.Buf16(320),this.work=new U.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function J(de){var me;return de&&de.state?(me=de.state,de.total_in=de.total_out=me.total=0,de.msg="",me.wrap&&(de.adler=1&me.wrap),me.mode=1,me.last=0,me.havedict=0,me.dmax=32768,me.head=null,me.hold=0,me.bits=0,me.lencode=me.lendyn=new U.Buf32(852),me.distcode=me.distdyn=new U.Buf32(592),me.sane=1,me.back=-1,0):-2}function ie(de){var me;return de&&de.state?((me=de.state).wsize=0,me.whave=0,me.wnext=0,J(de)):-2}function ne(de,me){var fe,ge;return de&&de.state?(ge=de.state,me<0?(fe=0,me=-me):(fe=1+(me>>4),me<48&&(me&=15)),me&&(me<8||me>15)?-2:(ge.window!==null&&ge.wbits!==me&&(ge.window=null),ge.wrap=fe,ge.wbits=me,ie(de))):-2}function se(de,me){var fe,ge;return de?(ge=new K,de.state=ge,ge.window=null,(fe=ne(de,me))!==0&&(de.state=null),fe):-2}var re,ae,le=!0;function ce(de){if(le){var me;for(re=new U.Buf32(512),ae=new U.Buf32(32),me=0;me<144;)de.lens[me++]=8;for(;me<256;)de.lens[me++]=9;for(;me<280;)de.lens[me++]=7;for(;me<288;)de.lens[me++]=8;for(Q(1,de.lens,0,288,re,0,de.work,{bits:9}),me=0;me<32;)de.lens[me++]=5;Q(2,de.lens,0,32,ae,0,de.work,{bits:5}),le=!1}de.lencode=re,de.lenbits=9,de.distcode=ae,de.distbits=5}function he(de,me,fe,ge){var Se,Ee=de.state;return Ee.window===null&&(Ee.wsize=1<=Ee.wsize?(U.arraySet(Ee.window,me,fe-Ee.wsize,Ee.wsize,0),Ee.wnext=0,Ee.whave=Ee.wsize):((Se=Ee.wsize-Ee.wnext)>ge&&(Se=ge),U.arraySet(Ee.window,me,fe-ge,Se,Ee.wnext),(ge-=Se)?(U.arraySet(Ee.window,me,fe-ge,ge,0),Ee.wnext=ge,Ee.whave=Ee.wsize):(Ee.wnext+=Se,Ee.wnext===Ee.wsize&&(Ee.wnext=0),Ee.whave>>8&255,fe.check=q(fe.check,yt,2,0),ye=0,Te=0,fe.mode=2;break}if(fe.flags=0,fe.head&&(fe.head.done=!1),!(1&fe.wrap)||(((255&ye)<<8)+(ye>>8))%31){de.msg="incorrect header check",fe.mode=30;break}if((15&ye)!=8){de.msg="unknown compression method",fe.mode=30;break}if(Te-=4,et=8+(15&(ye>>>=4)),fe.wbits===0)fe.wbits=et;else if(et>fe.wbits){de.msg="invalid window size",fe.mode=30;break}fe.dmax=1<>8&1),512&fe.flags&&(yt[0]=255&ye,yt[1]=ye>>>8&255,fe.check=q(fe.check,yt,2,0)),ye=0,Te=0,fe.mode=3;case 3:for(;Te<32;){if(xe===0)break e;xe--,ye+=ge[Ee++]<>>8&255,yt[2]=ye>>>16&255,yt[3]=ye>>>24&255,fe.check=q(fe.check,yt,4,0)),ye=0,Te=0,fe.mode=4;case 4:for(;Te<16;){if(xe===0)break e;xe--,ye+=ge[Ee++]<>8),512&fe.flags&&(yt[0]=255&ye,yt[1]=ye>>>8&255,fe.check=q(fe.check,yt,2,0)),ye=0,Te=0,fe.mode=5;case 5:if(1024&fe.flags){for(;Te<16;){if(xe===0)break e;xe--,ye+=ge[Ee++]<>>8&255,fe.check=q(fe.check,yt,2,0)),ye=0,Te=0}else fe.head&&(fe.head.extra=null);fe.mode=6;case 6:if(1024&fe.flags&&((Ae=fe.length)>xe&&(Ae=xe),Ae&&(fe.head&&(et=fe.head.extra_len-fe.length,fe.head.extra||(fe.head.extra=new Array(fe.head.extra_len)),U.arraySet(fe.head.extra,ge,Ee,Ae,et)),512&fe.flags&&(fe.check=q(fe.check,ge,Ae,Ee)),xe-=Ae,Ee+=Ae,fe.length-=Ae),fe.length))break e;fe.length=0,fe.mode=7;case 7:if(2048&fe.flags){if(xe===0)break e;Ae=0;do et=ge[Ee+Ae++],fe.head&&et&&fe.length<65536&&(fe.head.name+=String.fromCharCode(et));while(et&&Ae>9&1,fe.head.done=!0),de.adler=fe.check=0,fe.mode=12;break;case 10:for(;Te<32;){if(xe===0)break e;xe--,ye+=ge[Ee++]<>>=7&Te,Te-=7&Te,fe.mode=27;break}for(;Te<3;){if(xe===0)break e;xe--,ye+=ge[Ee++]<>>=1)){case 0:fe.mode=14;break;case 1:if(ce(fe),fe.mode=20,me===6){ye>>>=2,Te-=2;break e}break;case 2:fe.mode=17;break;case 3:de.msg="invalid block type",fe.mode=30}ye>>>=2,Te-=2;break;case 14:for(ye>>>=7&Te,Te-=7&Te;Te<32;){if(xe===0)break e;xe--,ye+=ge[Ee++]<>>16^65535)){de.msg="invalid stored block lengths",fe.mode=30;break}if(fe.length=65535&ye,ye=0,Te=0,fe.mode=15,me===6)break e;case 15:fe.mode=16;case 16:if(Ae=fe.length){if(Ae>xe&&(Ae=xe),Ae>Pe&&(Ae=Pe),Ae===0)break e;U.arraySet(Se,ge,Ee,Ae,ve),xe-=Ae,Ee+=Ae,Pe-=Ae,ve+=Ae,fe.length-=Ae;break}fe.mode=12;break;case 17:for(;Te<14;){if(xe===0)break e;xe--,ye+=ge[Ee++]<>>=5,Te-=5,fe.ndist=1+(31&ye),ye>>>=5,Te-=5,fe.ncode=4+(15&ye),ye>>>=4,Te-=4,fe.nlen>286||fe.ndist>30){de.msg="too many length or distance symbols",fe.mode=30;break}fe.have=0,fe.mode=18;case 18:for(;fe.have>>=3,Te-=3}for(;fe.have<19;)fe.lens[Fe[fe.have++]]=0;if(fe.lencode=fe.lendyn,fe.lenbits=7,st={bits:fe.lenbits},Je=Q(0,fe.lens,0,19,fe.lencode,0,fe.work,st),fe.lenbits=st.bits,Je){de.msg="invalid code lengths set",fe.mode=30;break}fe.have=0,fe.mode=19;case 19:for(;fe.have>>16&255,Ge=65535&dt,!((Ne=dt>>>24)<=Te);){if(xe===0)break e;xe--,ye+=ge[Ee++]<>>=Ne,Te-=Ne,fe.lens[fe.have++]=Ge;else{if(Ge===16){for(pt=Ne+2;Te>>=Ne,Te-=Ne,fe.have===0){de.msg="invalid bit length repeat",fe.mode=30;break}et=fe.lens[fe.have-1],Ae=3+(3&ye),ye>>>=2,Te-=2}else if(Ge===17){for(pt=Ne+3;Te>>=Ne)),ye>>>=3,Te-=3}else{for(pt=Ne+7;Te>>=Ne)),ye>>>=7,Te-=7}if(fe.have+Ae>fe.nlen+fe.ndist){de.msg="invalid bit length repeat",fe.mode=30;break}for(;Ae--;)fe.lens[fe.have++]=et}}if(fe.mode===30)break;if(fe.lens[256]===0){de.msg="invalid code -- missing end-of-block",fe.mode=30;break}if(fe.lenbits=9,st={bits:fe.lenbits},Je=Q(1,fe.lens,0,fe.nlen,fe.lencode,0,fe.work,st),fe.lenbits=st.bits,Je){de.msg="invalid literal/lengths set",fe.mode=30;break}if(fe.distbits=6,fe.distcode=fe.distdyn,st={bits:fe.distbits},Je=Q(2,fe.lens,fe.nlen,fe.ndist,fe.distcode,0,fe.work,st),fe.distbits=st.bits,Je){de.msg="invalid distances set",fe.mode=30;break}if(fe.mode=20,me===6)break e;case 20:fe.mode=21;case 21:if(xe>=6&&Pe>=258){de.next_out=ve,de.avail_out=Pe,de.next_in=Ee,de.avail_in=xe,fe.hold=ye,fe.bits=Te,Y(de,we),ve=de.next_out,Se=de.output,Pe=de.avail_out,Ee=de.next_in,ge=de.input,xe=de.avail_in,ye=fe.hold,Te=fe.bits,fe.mode===12&&(fe.back=-1);break}for(fe.back=0;Ie=(dt=fe.lencode[ye&(1<>>16&255,Ge=65535&dt,!((Ne=dt>>>24)<=Te);){if(xe===0)break e;xe--,ye+=ge[Ee++]<>ze)])>>>16&255,Ge=65535&dt,!(ze+(Ne=dt>>>24)<=Te);){if(xe===0)break e;xe--,ye+=ge[Ee++]<>>=ze,Te-=ze,fe.back+=ze}if(ye>>>=Ne,Te-=Ne,fe.back+=Ne,fe.length=Ge,Ie===0){fe.mode=26;break}if(32&Ie){fe.back=-1,fe.mode=12;break}if(64&Ie){de.msg="invalid literal/length code",fe.mode=30;break}fe.extra=15&Ie,fe.mode=22;case 22:if(fe.extra){for(pt=fe.extra;Te>>=fe.extra,Te-=fe.extra,fe.back+=fe.extra}fe.was=fe.length,fe.mode=23;case 23:for(;Ie=(dt=fe.distcode[ye&(1<>>16&255,Ge=65535&dt,!((Ne=dt>>>24)<=Te);){if(xe===0)break e;xe--,ye+=ge[Ee++]<>ze)])>>>16&255,Ge=65535&dt,!(ze+(Ne=dt>>>24)<=Te);){if(xe===0)break e;xe--,ye+=ge[Ee++]<>>=ze,Te-=ze,fe.back+=ze}if(ye>>>=Ne,Te-=Ne,fe.back+=Ne,64&Ie){de.msg="invalid distance code",fe.mode=30;break}fe.offset=Ge,fe.extra=15&Ie,fe.mode=24;case 24:if(fe.extra){for(pt=fe.extra;Te>>=fe.extra,Te-=fe.extra,fe.back+=fe.extra}if(fe.offset>fe.dmax){de.msg="invalid distance too far back",fe.mode=30;break}fe.mode=25;case 25:if(Pe===0)break e;if(Ae=we-Pe,fe.offset>Ae){if((Ae=fe.offset-Ae)>fe.whave&&fe.sane){de.msg="invalid distance too far back",fe.mode=30;break}Ae>fe.wnext?(Ae-=fe.wnext,Me=fe.wsize-Ae):Me=fe.wnext-Ae,Ae>fe.length&&(Ae=fe.length),ke=fe.window}else ke=Se,Me=ve-fe.offset,Ae=fe.length;Ae>Pe&&(Ae=Pe),Pe-=Ae,fe.length-=Ae;do Se[ve++]=ke[Me++];while(--Ae);fe.length===0&&(fe.mode=21);break;case 26:if(Pe===0)break e;Se[ve++]=fe.length,Pe--,fe.mode=21;break;case 27:if(fe.wrap){for(;Te<32;){if(xe===0)break e;xe--,ye|=ge[Ee++]<=1&&ze[Te]===0;Te--);if(Le>Te&&(Le=Te),Te===0)return ne[se++]=20971520,ne[se++]=20971520,ae.bits=1,0;for(ye=1;ye0&&(Z===0||Te!==1))return-1;for(Ve[1]=0,xe=1;xe<15;xe++)Ve[xe+1]=Ve[xe]+ze[xe];for(Pe=0;Pe852||Z===2&&ke>592)return 1;for(;;){ge=xe-Ae,re[Pe]fe?(Se=Ye[et+re[Pe]],Ee=Ie[Ge+re[Pe]]):(Se=96,Ee=0),le=1<>Ae)+(ce-=le)]=ge<<24|Se<<16|Ee|0;while(ce!==0);for(le=1<>=1;if(le!==0?(Ne&=le-1,Ne+=le):Ne=0,Pe++,--ze[xe]==0){if(xe===Te)break;xe=K[J+re[Pe]]}if(xe>Le&&(Ne&de)!==he){for(Ae===0&&(Ae=Le),me+=ye,Me=1<<(we=xe-Ae);we+Ae852||Z===2&&ke>592)return 1;ne[he=Ne&de]=Le<<24|we<<16|me-se|0}}return Ne!==0&&(ne[me+Ne]=xe-Ae<<24|64<<16|0),ae.bits=Le,0}},{"../utils/common":41}],51:[function(F,D,G){D.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],52:[function(F,D,G){var U=F("../utils/common");function W(Ie){for(var Ge=Ie.length;--Ge>=0;)Ie[Ge]=0}var q=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],Y=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],Q=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],Z=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],K=new Array(576);W(K);var J=new Array(60);W(J);var ie=new Array(512);W(ie);var ne=new Array(256);W(ne);var se=new Array(29);W(se);var re,ae,le,ce=new Array(30);function he(Ie,Ge,ze,Ve,Ye){this.static_tree=Ie,this.extra_bits=Ge,this.extra_base=ze,this.elems=Ve,this.max_length=Ye,this.has_stree=Ie&&Ie.length}function de(Ie,Ge){this.dyn_tree=Ie,this.max_code=0,this.stat_desc=Ge}function me(Ie){return Ie<256?ie[Ie]:ie[256+(Ie>>>7)]}function fe(Ie,Ge){Ie.pending_buf[Ie.pending++]=255&Ge,Ie.pending_buf[Ie.pending++]=Ge>>>8&255}function ge(Ie,Ge,ze){Ie.bi_valid>16-ze?(Ie.bi_buf|=Ge<>16-Ie.bi_valid,Ie.bi_valid+=ze-16):(Ie.bi_buf|=Ge<>>=1,ze<<=1;while(--Ge>0);return ze>>>1}function ve(Ie,Ge,ze){var Ve,Ye,et=new Array(16),Je=0;for(Ve=1;Ve<=15;Ve++)et[Ve]=Je=Je+ze[Ve-1]<<1;for(Ye=0;Ye<=Ge;Ye++){var st=Ie[2*Ye+1];st!==0&&(Ie[2*Ye]=Ee(et[st]++,st))}}function xe(Ie){var Ge;for(Ge=0;Ge<286;Ge++)Ie.dyn_ltree[2*Ge]=0;for(Ge=0;Ge<30;Ge++)Ie.dyn_dtree[2*Ge]=0;for(Ge=0;Ge<19;Ge++)Ie.bl_tree[2*Ge]=0;Ie.dyn_ltree[512]=1,Ie.opt_len=Ie.static_len=0,Ie.last_lit=Ie.matches=0}function Pe(Ie){Ie.bi_valid>8?fe(Ie,Ie.bi_buf):Ie.bi_valid>0&&(Ie.pending_buf[Ie.pending++]=Ie.bi_buf),Ie.bi_buf=0,Ie.bi_valid=0}function ye(Ie,Ge,ze,Ve){var Ye=2*Ge,et=2*ze;return Ie[Ye]>1;ze>=1;ze--)Te(Ie,et,ze);Ye=pt;do ze=Ie.heap[1],Ie.heap[1]=Ie.heap[Ie.heap_len--],Te(Ie,et,1),Ve=Ie.heap[1],Ie.heap[--Ie.heap_max]=ze,Ie.heap[--Ie.heap_max]=Ve,et[2*Ye]=et[2*ze]+et[2*Ve],Ie.depth[Ye]=(Ie.depth[ze]>=Ie.depth[Ve]?Ie.depth[ze]:Ie.depth[Ve])+1,et[2*ze+1]=et[2*Ve+1]=Ye,Ie.heap[1]=Ye++,Te(Ie,et,1);while(Ie.heap_len>=2);Ie.heap[--Ie.heap_max]=Ie.heap[1],function(yt,Fe){var _e,je,Ze,De,Oe,Xe,tt=Fe.dyn_tree,nt=Fe.max_code,Ke=Fe.stat_desc.static_tree,ct=Fe.stat_desc.has_stree,ut=Fe.stat_desc.extra_bits,ht=Fe.stat_desc.extra_base,vt=Fe.stat_desc.max_length,xt=0;for(De=0;De<=15;De++)yt.bl_count[De]=0;for(tt[2*yt.heap[yt.heap_max]+1]=0,_e=yt.heap_max+1;_e<573;_e++)(De=tt[2*tt[2*(je=yt.heap[_e])+1]+1]+1)>vt&&(De=vt,xt++),tt[2*je+1]=De,je>nt||(yt.bl_count[De]++,Oe=0,je>=ht&&(Oe=ut[je-ht]),Xe=tt[2*je],yt.opt_len+=Xe*(De+Oe),ct&&(yt.static_len+=Xe*(Ke[2*je+1]+Oe)));if(xt!==0){do{for(De=vt-1;yt.bl_count[De]===0;)De--;yt.bl_count[De]--,yt.bl_count[De+1]+=2,yt.bl_count[vt]--,xt-=2}while(xt>0);for(De=vt;De!==0;De--)for(je=yt.bl_count[De];je!==0;)(Ze=yt.heap[--_e])>nt||(tt[2*Ze+1]!==De&&(yt.opt_len+=(De-tt[2*Ze+1])*tt[2*Ze],tt[2*Ze+1]=De),je--)}}(Ie,Ge),ve(et,dt,Ie.bl_count)}function Ae(Ie,Ge,ze){var Ve,Ye,et=-1,Je=Ge[1],st=0,pt=7,dt=4;for(Je===0&&(pt=138,dt=3),Ge[2*(ze+1)+1]=65535,Ve=0;Ve<=ze;Ve++)Ye=Je,Je=Ge[2*(Ve+1)+1],++st>=7;Ye<30;Ye++)for(ce[Ye]=et<<7,Ge=0;Ge<1<0?(Ie.strm.data_type===2&&(Ie.strm.data_type=function(st){var pt,dt=4093624447;for(pt=0;pt<=31;pt++,dt>>>=1)if(1&dt&&st.dyn_ltree[2*pt]!==0)return 0;if(st.dyn_ltree[18]!==0||st.dyn_ltree[20]!==0||st.dyn_ltree[26]!==0)return 1;for(pt=32;pt<256;pt++)if(st.dyn_ltree[2*pt]!==0)return 1;return 0}(Ie)),we(Ie,Ie.l_desc),we(Ie,Ie.d_desc),Je=function(st){var pt;for(Ae(st,st.dyn_ltree,st.l_desc.max_code),Ae(st,st.dyn_dtree,st.d_desc.max_code),we(st,st.bl_desc),pt=18;pt>=3&&st.bl_tree[2*Z[pt]+1]===0;pt--);return st.opt_len+=3*(pt+1)+5+5+4,pt}(Ie),Ye=Ie.opt_len+3+7>>>3,(et=Ie.static_len+3+7>>>3)<=Ye&&(Ye=et)):Ye=et=ze+5,ze+4<=Ye&&Ge!==-1?Ne(Ie,Ge,ze,Ve):Ie.strategy===4||et===Ye?(ge(Ie,2+(Ve?1:0),3),Le(Ie,K,J)):(ge(Ie,4+(Ve?1:0),3),function(st,pt,dt,yt){var Fe;for(ge(st,pt-257,5),ge(st,dt-1,5),ge(st,yt-4,4),Fe=0;Fe>>8&255,Ie.pending_buf[Ie.d_buf+2*Ie.last_lit+1]=255&Ge,Ie.pending_buf[Ie.l_buf+Ie.last_lit]=255&ze,Ie.last_lit++,Ge===0?Ie.dyn_ltree[2*ze]++:(Ie.matches++,Ge--,Ie.dyn_ltree[2*(ne[ze]+256+1)]++,Ie.dyn_dtree[2*me(Ge)]++),Ie.last_lit===Ie.lit_bufsize-1},G._tr_align=function(Ie){ge(Ie,2,3),Se(Ie,256,K),function(Ge){Ge.bi_valid===16?(fe(Ge,Ge.bi_buf),Ge.bi_buf=0,Ge.bi_valid=0):Ge.bi_valid>=8&&(Ge.pending_buf[Ge.pending++]=255&Ge.bi_buf,Ge.bi_buf>>=8,Ge.bi_valid-=8)}(Ie)}},{"../utils/common":41}],53:[function(F,D,G){D.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(F,D,G){(function(U){(function(W,q){if(!W.setImmediate){var Y,Q,Z,K,J,ie=1,ne={},se=!1,re=W.document,ae=Object.getPrototypeOf&&Object.getPrototypeOf(W);ae=ae&&ae.setTimeout?ae:W,{}.toString.call(W.process)==="[object process]"?Y=function(he){process.nextTick(function(){ce(he)})}:function(){if(W.postMessage&&!W.importScripts){var he=!0,de=W.onmessage;return W.onmessage=function(){he=!1},W.postMessage("","*"),W.onmessage=de,he}}()?(K="setImmediate$"+Math.random()+"$",J=function(he){he.source===W&&typeof he.data=="string"&&he.data.indexOf(K)===0&&ce(+he.data.slice(K.length))},W.addEventListener?W.addEventListener("message",J,!1):W.attachEvent("onmessage",J),Y=function(he){W.postMessage(K+he,"*")}):W.MessageChannel?((Z=new MessageChannel).port1.onmessage=function(he){ce(he.data)},Y=function(he){Z.port2.postMessage(he)}):re&&"onreadystatechange"in re.createElement("script")?(Q=re.documentElement,Y=function(he){var de=re.createElement("script");de.onreadystatechange=function(){ce(he),de.onreadystatechange=null,Q.removeChild(de),de=null},Q.appendChild(de)}):Y=function(he){setTimeout(ce,0,he)},ae.setImmediate=function(he){typeof he!="function"&&(he=new Function(""+he));for(var de=new Array(arguments.length-1),me=0;me{const D=new XMLHttpRequest;D.open("GET",B,!0),D.responseType="arraybuffer",D.send(),D.onreadystatechange=function(){D.readyState==4&&D.status==200&&jszip.loadAsync(D.response).then(G=>{G.file("manifest.json").async("string").then(U=>{const W=JSON.parse(U);if(!("animations"in W))throw new Error("Manifest not found");if(W.animations.length===0)throw new Error("No animations listed in the manifest");const q=W.animations[0];G.file("animations/".concat(q.id,".json")).async("string").then(Y=>{const Q=JSON.parse(Y);"assets"in Q&&Promise.all(Q.assets.map(Z=>{if(Z.p&&G.file("images/".concat(Z.p))!=null)return new Promise(K=>{const J=Z.p.split(".").pop();G.file("images/".concat(Z.p)).async("base64").then(ie=>{Z.p=J==="svg"||J==="svg+xml"?"data:image/svg+xml;base64,"+ie:"data:;base64,"+ie,Z.e=1,K()})})})).then(()=>{R(Q)})})})}).catch(G=>{F(G)})}})}(function(B){B.Loading="loading",B.Playing="playing",B.Paused="paused",B.Stopped="stopped",B.Frozen="frozen",B.Error="error"})(PlayerState||(PlayerState={})),function(B){B.Normal="normal",B.Bounce="bounce"}(PlayMode||(PlayMode={})),function(B){B.Load="load",B.Error="error",B.Ready="ready",B.Play="play",B.Pause="pause",B.Stop="stop",B.Freeze="freeze",B.Loop="loop",B.Complete="complete",B.Frame="frame"}(PlayerEvents||(PlayerEvents={}));let DotLottiePlayer=class extends s$4{constructor(){super(...arguments),this.mode=PlayMode.Normal,this.autoplay=!1,this.background="transparent",this.controls=!1,this.direction=1,this.hover=!1,this.loop=!1,this.renderer="svg",this.speed=1,this.currentState=PlayerState.Loading,this.intermission=1,this._counter=0}_onVisibilityChange(){document.hidden&&this.currentState===PlayerState.Playing?this.freeze():this.currentState===PlayerState.Frozen&&this.play()}_handleSeekChange(B){if(!this._lottie||isNaN(B.target.value))return;const R=B.target.value/100*this._lottie.totalFrames;this.seek(R)}async load(B){if(!this.shadowRoot)return;const R={container:this.container,loop:!1,autoplay:!1,renderer:this.renderer,rendererSettings:{scaleMode:"noScale",clearCanvas:!1,progressiveLoad:!0,hideOnTransparent:!0}};try{const F=await fetchPath(B);this._lottie&&this._lottie.destroy(),this._lottie=lottie_svg.loadAnimation(Object.assign(Object.assign({},R),{animationData:F}))}catch{return this.currentState=PlayerState.Error,void this.dispatchEvent(new CustomEvent(PlayerEvents.Error))}this._lottie&&(this._lottie.addEventListener("enterFrame",()=>{this.seeker=this._lottie.currentFrame/this._lottie.totalFrames*100,this.dispatchEvent(new CustomEvent(PlayerEvents.Frame,{detail:{frame:this._lottie.currentFrame,seeker:this.seeker}}))}),this._lottie.addEventListener("complete",()=>{this.currentState===PlayerState.Playing?!this.loop||this.count&&this._counter>=this.count?this.dispatchEvent(new CustomEvent(PlayerEvents.Complete)):this.mode===PlayMode.Bounce?(this.count&&(this._counter+=.5),setTimeout(()=>{this.dispatchEvent(new CustomEvent(PlayerEvents.Loop)),this.currentState===PlayerState.Playing&&(this._lottie.setDirection(-1*this._lottie.playDirection),this._lottie.play())},this.intermission)):(this.count&&(this._counter+=1),window.setTimeout(()=>{this.dispatchEvent(new CustomEvent(PlayerEvents.Loop)),this.currentState===PlayerState.Playing&&(this._lottie.stop(),this._lottie.play())},this.intermission)):this.dispatchEvent(new CustomEvent(PlayerEvents.Complete))}),this._lottie.addEventListener("DOMLoaded",()=>{this.dispatchEvent(new CustomEvent(PlayerEvents.Ready))}),this._lottie.addEventListener("data_ready",()=>{this.dispatchEvent(new CustomEvent(PlayerEvents.Load))}),this._lottie.addEventListener("data_failed",()=>{this.currentState=PlayerState.Error,this.dispatchEvent(new CustomEvent(PlayerEvents.Error))}),this.container.addEventListener("mouseenter",()=>{this.hover&&this.currentState!==PlayerState.Playing&&this.play()}),this.container.addEventListener("mouseleave",()=>{this.hover&&this.currentState===PlayerState.Playing&&this.stop()}),this.setSpeed(this.speed),this.setDirection(this.direction),this.autoplay&&this.play())}getLottie(){return this._lottie}play(){this._lottie&&(this._lottie.play(),this.currentState=PlayerState.Playing,this.dispatchEvent(new CustomEvent(PlayerEvents.Play)))}pause(){this._lottie&&(this._lottie.pause(),this.currentState=PlayerState.Paused,this.dispatchEvent(new CustomEvent(PlayerEvents.Pause)))}stop(){this._lottie&&(this._counter=0,this._lottie.stop(),this.currentState=PlayerState.Stopped,this.dispatchEvent(new CustomEvent(PlayerEvents.Stop)))}seek(B){if(!this._lottie)return;const R=B.toString().match(/^([0-9]+)(%?)$/);if(!R)return;const F=R[2]==="%"?this._lottie.totalFrames*Number(R[1])/100:R[1];this.seeker=F,this.currentState===PlayerState.Playing?this._lottie.goToAndPlay(F,!0):(this._lottie.goToAndStop(F,!0),this._lottie.pause())}snapshot(){let B=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];if(!this.shadowRoot)return;const R=this.shadowRoot.querySelector(".animation svg"),F=new XMLSerializer().serializeToString(R);if(B){const D=document.createElement("a");D.href="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(F),D.download="download_"+this.seeker+".svg",document.body.appendChild(D),D.click(),document.body.removeChild(D)}return F}freeze(){this._lottie&&(this._lottie.pause(),this.currentState=PlayerState.Frozen,this.dispatchEvent(new CustomEvent(PlayerEvents.Freeze)))}setSpeed(){let B=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1;this._lottie&&this._lottie.setSpeed(B)}setDirection(B){this._lottie&&this._lottie.setDirection(B)}setLooping(B){this._lottie&&(this.loop=B,this._lottie.loop=B)}togglePlay(){return this.currentState===PlayerState.Playing?this.pause():this.play()}toggleLooping(){this.setLooping(!this.loop)}static get styles(){return styles$l}async firstUpdated(){"IntersectionObserver"in window&&(this._io=new IntersectionObserver(B=>{B[0].isIntersecting?this.currentState===PlayerState.Frozen&&this.play():this.currentState===PlayerState.Playing&&this.freeze()}),this._io.observe(this.container)),document.hidden!==void 0&&document.addEventListener("visibilitychange",()=>this._onVisibilityChange()),this.src&&await this.load(this.src)}disconnectedCallback(){this._io&&(this._io.disconnect(),this._io=void 0),document.removeEventListener("visibilitychange",()=>this._onVisibilityChange())}renderControls(){const B=this.currentState===PlayerState.Playing,R=this.currentState===PlayerState.Paused,F=this.currentState===PlayerState.Stopped;return $(_templateObject||(_templateObject=_taggedTemplateLiteral([`
`])),this.togglePlay,B||R?"active":"",$(B?_templateObject2||(_templateObject2=_taggedTemplateLiteral([` `])):_templateObject3||(_templateObject3=_taggedTemplateLiteral([` `]))),this.stop,F?"active":"",this.seeker,this._handleSeekChange,()=>{this._prevState=this.currentState,this.freeze()},()=>{this._prevState===PlayerState.Playing&&this.play()},this.seeker,this.toggleLooping,this.loop?"active":"")}render(){const B=this.controls?"main controls":"main",R=this.controls?"animation controls":"animation";return $(_templateObject4||(_templateObject4=_taggedTemplateLiteral([` `])),B,R,this.background,this.currentState===PlayerState.Error?$(_templateObject5||(_templateObject5=_taggedTemplateLiteral([`
\u26A0\uFE0F
`]))):void 0,this.controls?this.renderControls():void 0)}};__decorate([i$4(".animation")],DotLottiePlayer.prototype,"container",void 0),__decorate([e$5()],DotLottiePlayer.prototype,"mode",void 0),__decorate([e$5({type:Boolean})],DotLottiePlayer.prototype,"autoplay",void 0),__decorate([e$5({type:String,reflect:!0})],DotLottiePlayer.prototype,"background",void 0),__decorate([e$5({type:Boolean})],DotLottiePlayer.prototype,"controls",void 0),__decorate([e$5({type:Number})],DotLottiePlayer.prototype,"count",void 0),__decorate([e$5({type:Number})],DotLottiePlayer.prototype,"direction",void 0),__decorate([e$5({type:Boolean})],DotLottiePlayer.prototype,"hover",void 0),__decorate([e$5({type:Boolean,reflect:!0})],DotLottiePlayer.prototype,"loop",void 0),__decorate([e$5({type:String})],DotLottiePlayer.prototype,"renderer",void 0),__decorate([e$5({type:Number})],DotLottiePlayer.prototype,"speed",void 0),__decorate([e$5({type:String})],DotLottiePlayer.prototype,"src",void 0),__decorate([e$5({type:String})],DotLottiePlayer.prototype,"currentState",void 0),__decorate([e$5()],DotLottiePlayer.prototype,"seeker",void 0),__decorate([e$5()],DotLottiePlayer.prototype,"intermission",void 0),DotLottiePlayer=__decorate([n$1("dotlottie-player")],DotLottiePlayer);var Image1$1="/orchestra-music-score/assets/5.d8bfbf51.png",Image2$1="/orchestra-music-score/assets/4.cfa387c7.png",Image3$1="/orchestra-music-score/assets/3.d02c685a.png",Image4$1="/orchestra-music-score/assets/2.5c4c2ef5.png",Image5$1="/orchestra-music-score/assets/1.a0d5037d.png",IconBad="/orchestra-music-score/assets/bad.d9395829.png",IconGood="/orchestra-music-score/assets/good.b0fbfb32.png",IconGreat="/orchestra-music-score/assets/great.55272f0a.png",IconPerfect="/orchestra-music-score/assets/perfect.ab44b0e5.png";const icons={1:{icon:IconBad,text:"bad"},2:{icon:IconGood,text:"good"},3:{icon:IconGreat,text:"great"},4:{icon:IconPerfect,text:"perfect"}};var constant={1:{img:Image1$1,tips:"\u4F60\u7684\u6F14\u594F\u4E0D\u592A\u597D\uFF0C\u518D\u7EC3\u4E00\u7EC3\u5427\uFF5E",mome:"\u6562\u4E8E\u5C1D\u8BD5"},2:{img:Image2$1,tips:"\u4F60\u7684\u6F14\u594F\u8FD8\u4E0D\u719F\u7EC3\uFF0C\u52A0\u7D27\u8BAD\u7EC3\u624D\u80FD\u6709\u597D\u6210\u7EE9\u54E6\uFF5E",mome:"\u8FD8\u8981\u52A0\u6CB9\u54E6\uFF5E"},3:{img:Image3$1,tips:"\u4F60\u7684\u6F14\u594F\u8FD8\u4E0D\u6D41\u7545\uFF0C\u79D1\u5B66\u7684\u7EC3\u4E60\u624D\u80FD\u66F4\u5B8C\u7F8E\u54E6\uFF5E",mome:"\u7A81\u7834\u81EA\u6211"},4:{img:Image4$1,tips:"\u4F60\u7684\u6F14\u594F\u8FD8\u4E0D\u9519\uFF0C\u7EE7\u7EED\u52A0\u6CB9\u5427\uFF0C\u79BB\u5B8C\u7F8E\u5C31\u5DEE\u4E00\u6B65\u5566\uFF5E",mome:"\u5D2D\u9732\u5934\u89D2"},5:{img:Image5$1,tips:"\u4F60\u7684\u6F14\u594F\u5B8C\u7F8E\u65E0\u7F3A\uFF0C\u7EE7\u7EED\u52AA\u529B\u5427\uFF5E",mome:"\u4F60\u5F88\u68D2"}};const getLeveByScoreId=B=>{if(!B&&typeof B!="number")return{};let R=1;return B>20&&B<=40?R=2:B>40&&B<=60?R=3:B>60&&B<=80?R=4:B>80&&(R=5),R},getLeveByScore=B=>{if(!B&&typeof B!="number")return{};let R=getLeveByScoreId(B);return constant[R]},getLeveByScoreMeasure=B=>{if(!B&&typeof B!="number")return{};let R=1;return B>=40&&B<70?R=2:B>=70&&B<90?R=3:B>=90&&(R=4),icons[R]},box$1="_box_iibie_1",bg$1="_bg_iibie_9",button$4="_button_iibie_16",iconSound$2="_iconSound_iibie_33",skepBtn$1="_skepBtn_iibie_39",wrap$5="_wrap_iibie_53",wrapContainer="_wrapContainer_iibie_59",top$1="_top_iibie_65",title$4="_title_iibie_72",num="_num_iibie_82",txt="_txt_iibie_86",iconLeft="_iconLeft_iibie_89",iconTop="_iconTop_iibie_93",evaluatWrap="_evaluatWrap_iibie_98",evaluatTitle="_evaluatTitle_iibie_129",evaluatIcon="_evaluatIcon_iibie_134",fraction="_fraction_iibie_140",line="_line_iibie_147",tips$1="_tips_iibie_152",btns$2="_btns_iibie_164",btnIcon="_btnIcon_iibie_177",rigthBtns="_rigthBtns_iibie_181",confirm="_confirm_iibie_191",iconTitle$1="_iconTitle_iibie_197",footer="_footer_iibie_202",sbtn="_sbtn_iibie_231";var evastyles={box:box$1,bg:bg$1,button:button$4,iconSound:iconSound$2,skepBtn:skepBtn$1,wrap:wrap$5,wrapContainer,top:top$1,title:title$4,num,txt,iconLeft,iconTop,evaluatWrap,evaluatTitle,evaluatIcon,fraction,line,tips:tips$1,btns:btns$2,btnIcon,rigthBtns,confirm,iconTitle:iconTitle$1,footer,sbtn},iconTitle="/orchestra-music-score/assets/title.bea4c09d.svg",iconCancel$1="/orchestra-music-score/assets/cancel.948b4df9.png",iconConfirm$1="/orchestra-music-score/assets/confirm.8f41729f.png",iconBack="/orchestra-music-score/assets/back.ad4ed6fc.png",iconLianxi="/orchestra-music-score/assets/icon-lianxi.fcc30d94.png",iconReport="/orchestra-music-score/assets/icon-report.6db8af00.png",TryIcon="/orchestra-music-score/assets/icon-try.6f9f730c.png",IntegrityIcon="/orchestra-music-score/assets/integrity.f311836f.svg",IntonationIcon="/orchestra-music-score/assets/intonation.64e00f66.svg",CadenceIcon="/orchestra-music-score/assets/cadence.18a7a60b.svg",Image1="/orchestra-music-score/assets/5.602e43c1.png",Image2="/orchestra-music-score/assets/4.7cd4aa5f.png",Image3="/orchestra-music-score/assets/3.f804efc6.png",Image4="/orchestra-music-score/assets/2.3014e96e.png",Image5="/orchestra-music-score/assets/1.916612fa.png",iconUpload="/orchestra-music-score/assets/icon-upload.53f774c1.svg";const scoreInfos={1:{img:Image1,tips:"\u4F60\u7684\u6F14\u594F\u4E0D\u592A\u597D\uFF0C\u518D\u7EC3\u4E00\u7EC3\u5427\uFF5E",mome:"\u6562\u4E8E\u5C1D\u8BD5"},2:{img:Image2,tips:"\u4F60\u7684\u6F14\u594F\u8FD8\u4E0D\u719F\u7EC3\uFF0C\u52A0\u7D27\u8BAD\u7EC3\u624D\u80FD\u6709\u597D\u6210\u7EE9\u54E6\uFF5E",mome:"\u8FD8\u8981\u52A0\u6CB9\u54E6"},3:{img:Image3,tips:"\u4F60\u7684\u6F14\u594F\u8FD8\u4E0D\u6D41\u7545\uFF0C\u79D1\u5B66\u7684\u7EC3\u4E60\u624D\u80FD\u66F4\u5B8C\u7F8E\u54E6\uFF5E",mome:"\u7A81\u7834\u81EA\u6211"},4:{img:Image4,tips:"\u4F60\u7684\u6F14\u594F\u8FD8\u4E0D\u9519\uFF0C\u7EE7\u7EED\u52A0\u6CB9\u5427\uFF0C\u79BB\u5B8C\u7F8E\u5C31\u5DEE\u4E00\u6B65\u5566\uFF5E",mome:"\u5D2D\u9732\u5934\u89D2"},5:{img:Image5,tips:"\u4F60\u7684\u6F14\u594F\u975E\u5E38\u4E0D\u9519\uFF0C\u5B8C\u6574\u6027\u628A\u63E1\u7684\u5F88\u597D~",mome:"\u4F60\u5F88\u68D2"}};var Content$1=defineComponent({name:"ColexiuEvaluatingContent",props:{data:{type:Object,default:()=>null}},emits:["restart","upload"],setup(B,{emit:R}){const F=useOriginSearch(),D=!!F.unitId,G=ref(!1),U=ref(""),{data:W}=toRefs(B),q=location.pathname,Y=()=>{var ie,ne,se,re,ae,le,ce,he,de;const J={id:(ie=W.value)==null?void 0:ie.recordId,musicId:F.id,name:((ne=state$4.user)==null?void 0:ne.username)||"",subjectName:(((se=state$4.user)==null?void 0:se.subjectName)||"").split(",")[0]||"",avatar:encodeURIComponent(((re=state$4.user)==null?void 0:re.avatar)||""),score:((ae=W.value)==null?void 0:ae.score)||0,examSongName:((le=state$2.activeDetail)==null?void 0:le.examSongName)||""};return state$2.isPercussion||(J.intonation=(ce=W.value)==null?void 0:ce.intonation,J.cadence=(he=W.value)==null?void 0:he.cadence,J.integrity=(de=W.value)==null?void 0:de.integrity),`${location.origin}${q}/share-colexiu-evaluating/index.html?${queryString.stringify(J)}`},Q=J=>{const ie=J.target;ie&&(ie.contentWindow.setPng=ne=>{U.value=ne})},Z=()=>{!U.value||postMessage$1({api:"shareAchievements",content:{title:"\u5206\u4EAB\u6211\u7684\u4E50\u5668\u7EC3\u4E60\u8FDB\u5EA6\uFF0C\u4E00\u8D77\u89C1\u8BC1\u6211\u7684\u6210\u957F\uFF01",desc:"\u6652\u4E00\u4E0B\u6211\u7684\u8BC4\u6D4B\u5206\u6570\uFF0C\u5FEB\u6765\u201C\u5C0F\u9177AI\u201D\u4E0A\u548C\u6211PK\u4E00\u4E0B\u5427\uFF01",image:U.value,video:"",type:"image",button:["copy"],url:Y()}},J=>{var ie,ne,se;(ie=J==null?void 0:J.content)!=null&&ie.status&&(G.value=!1),(ne=J==null?void 0:J.content)!=null&&ne.message&&Toast((se=J==null?void 0:J.content)==null?void 0:se.message)})},K=()=>{var J;postMessage$1({api:"openWebView",content:{url:`${location.origin}${q}colexiu-report.html?source=evaluation&musicId=${F.id}&id=${(J=W.value)==null?void 0:J.recordIdStr}`,orientation:0,isHideTitle:!0,statusBarTextColor:!1,isOpenLight:!0}})};return()=>{var ie,ne;const J=getLeveByScoreId((ie=W.value)==null?void 0:ie.score);return createVNode("div",null,[createVNode("div",{class:evastyles.box},[createVNode("div",{class:evastyles.wrap},[createVNode("div",{class:evastyles.wrapContainer},[createVNode("div",{class:evastyles.top},[createVNode("div",{class:evastyles.title},[createVNode("div",{style:{position:"relative",zIndex:1,"white-space":"nowrap"}},[createVNode("span",{class:evastyles.num},[(ne=W.value)==null?void 0:ne.score]),createVNode("span",{class:evastyles.txt},[createTextVNode("\u5206 "),scoreInfos[J].mome])]),createVNode("div",{class:evastyles.line},null)]),createVNode("img",{class:evastyles.iconTop,src:scoreInfos[J].img},null)]),state$2.isPercussion?null:createVNode("div",{class:evastyles.evaluatWrap},[createVNode(Grid,null,{default:()=>[createVNode(GridItem,null,{icon:()=>createVNode("div",null,[createVNode("img",{class:evastyles.evaluatIcon,src:IntonationIcon},null),createVNode("span",{class:evastyles.evaluatTitle},[createTextVNode("\u97F3\u51C6")])]),text:()=>{var se;return createVNode("span",{class:evastyles.fraction},[(se=W.value)==null?void 0:se.intonation,createVNode("span",null,[createTextVNode("\u5206")])])}}),createVNode("div",{class:evastyles.line},null),createVNode(GridItem,null,{icon:()=>createVNode("div",null,[createVNode("img",{class:evastyles.evaluatIcon,src:CadenceIcon},null),createVNode("span",{class:evastyles.evaluatTitle},[createTextVNode("\u8282\u594F")])]),text:()=>{var se;return createVNode("span",{class:evastyles.fraction},[(se=W.value)==null?void 0:se.cadence,createVNode("span",null,[createTextVNode("\u5206")])])}}),createVNode("div",{class:evastyles.line},null),createVNode(GridItem,null,{icon:()=>createVNode("div",null,[createVNode("img",{class:evastyles.evaluatIcon,src:IntegrityIcon},null),createVNode("span",{class:evastyles.evaluatTitle},[createTextVNode("\u5B8C\u6574\u6027")])]),text:()=>{var se;return createVNode("span",{class:evastyles.fraction},[(se=W.value)==null?void 0:se.integrity,createVNode("span",null,[createTextVNode("\u5206")])])}})]})]),createVNode("div",{class:evastyles.tips},[createVNode("div",{style:state$2.isPercussion?{height:"45px",fontSize:"15px"}:""},[scoreInfos[J].tips]),createVNode("div",{class:evastyles.btns,style:{justifyContent:D?"center":""}},[state$2.frozenMode||D?null:createVNode(Button,{onClick:()=>{state.evaluatingStatus=!1,state$2.evaluatings={},evaluatingShow.value=!1,onChangeModelType("practice")}},{default:()=>[createVNode("img",{class:evastyles.btnIcon,src:iconLianxi},null)]}),createVNode(Button,{style:{margin:"0 4px"},onClick:()=>{state$2.evaluatings={},R("restart")}},{default:()=>[createVNode("img",{class:evastyles.btnIcon,src:TryIcon},null)]}),D?null:createVNode(Button,{onClick:K},{default:()=>[createVNode("img",{class:evastyles.btnIcon,src:iconReport,alt:"\u67E5\u770B\u62A5\u544A"},null)]})])])]),D?null:createVNode("div",{class:evastyles.rigthBtns},[createVNode("div",{class:evastyles.skepBtn,onClick:()=>R("upload")},[createVNode("img",{src:iconUpload},null),createTextVNode("\u4E0A\u4F20")])])]),createVNode(Popup,{teleport:"body",show:G.value,style:{background:"transparent"}},{default:()=>[createVNode("div",{style:{textAlign:"right"}},[createVNode(Button,{class:evastyles.sbtn,onClick:Z,round:!0,type:"primary",color:"#2DC7AA"},{default:()=>[createTextVNode("\u5206\u4EAB")]}),createVNode(Button,{class:evastyles.sbtn,onClick:()=>G.value=!1,round:!0},{default:()=>[createTextVNode("\u5173\u95ED")]})]),createVNode("iframe",{style:{width:"50vw",border:"none",height:"70vh",marginTop:"1vh"},src:Y(),onLoad:Q},null)]}),createVNode(Button,{class:evastyles.button,icon:iconBack,onClick:()=>{state$2.evaluatings={},R("restart")}},null)])])}}});const evaluatingShow=ref(!1),open=ref(!1);var Evaluating$1=defineComponent({name:"ColexiuEvaluating",props:{data:{type:Object,default:()=>null}},emits:["restart"],setup(B){const R=ref(!1),F=G=>{var U,W;postMessage$1({api:"proxyServiceMessage",content:{header:{commond:"videoUpload",status:200,type:"SOUND_COMPARE"},body:{filePath:(U=G==null?void 0:G.content)==null?void 0:U.filePath,recordId:(W=B.data)==null?void 0:W.recordIdStr}}})},D=()=>{state$3.sett.camera&&state$3.eva.save?postMessage$1({api:"videoUpdate"},G=>{if(console.log("\u4FDD\u5B58\u89C6\u9891",G),R.value=!1,G!=null&&G.content){if(G.content.type==="error"){Toast(G.content.message);return}F(G)}}):(R.value=!1,F(),Toast.success("\u4E0A\u4F20\u6210\u529F"))};return()=>createVNode("div",null,[createVNode(Popup,{position:"bottom",show:evaluatingShow.value,"onUpdate:show":G=>evaluatingShow.value=G,onOpen:()=>open.value=!0,onClosed:()=>open.value=!1,teleport:"body",style:{backgroundColor:"transparent"}},{default:()=>[open&&createVNode(Content$1,{data:B.data,onUpload:()=>R.value=!0,onRestart:()=>evaluatingShow.value=!1},null)]}),createVNode(Dialog.Component,{teleport:"body",class:evastyles.confirm,style:{overflow:"initial"},show:R.value,"onUpdate:show":G=>R.value=G,message:`\u8BC4\u6D4B${state$3.sett.camera&&state$3.eva.save?"\u97F3\u89C6\u9891":"\u97F3\u9891"}\u662F\u5426\u4FDD\u5B58\u6F14\u594F\uFF1F`},{title:()=>createVNode("img",{class:evastyles.iconTitle,src:iconTitle},null),footer:()=>createVNode("div",{class:evastyles.footer},[createVNode("img",{src:iconCancel$1,onClick:()=>R.value=!1},null),createVNode("img",{src:iconConfirm$1,onClick:D},null)])})])}});const container$6="_container_1b2ds_1",outUp="_outUp_1b2ds_19",chenkuang="_chenkuang_1b2ds_22",moreButton="_moreButton_1b2ds_25",button$3="_button_1b2ds_29",centerButton="_centerButton_1b2ds_32",leftButton="_leftButton_1b2ds_38",titleWrap="_titleWrap_1b2ds_42",title$3="_title_1b2ds_42",album="_album_1b2ds_54",hasText$1="_hasText_1b2ds_67",bigIcon$1="_bigIcon_1b2ds_83",evaluatBtn="_evaluatBtn_1b2ds_90",start$1="_start_1b2ds_93",evaluatStartBtn="_evaluatStartBtn_1b2ds_108",icon="_icon_1b2ds_118",onShow="_onShow_1b2ds_121",popover="_popover_1b2ds_124",backbtn="_backbtn_1b2ds_131",speed="_speed_1b2ds_135",schedule="_schedule_1b2ds_174",ring="_ring_1b2ds_180",speedButton="_speedButton_1b2ds_191",label="_label_1b2ds_194",player$1="_player_1b2ds_205",fullbtn="_fullbtn_1b2ds_213",finish="_finish_1b2ds_222",dialogueBox="_dialogueBox_1b2ds_273",dialogue="_dialogue_1b2ds_273",dialogueIcon="_dialogueIcon_1b2ds_298",inRadioIcon="_inRadioIcon_1b2ds_303",inRadio="_inRadio_1b2ds_303",animation="_animation_1b2ds_324",btnMusicList="_btnMusicList_1b2ds_329",toggleMusicType="_toggleMusicType_1b2ds_341",slider$1="_slider_1b2ds_374",followEndBtn="_followEndBtn_1b2ds_394";var styles$k={container:container$6,outUp,chenkuang,moreButton,button:button$3,centerButton,leftButton,titleWrap,title:title$3,album,hasText:hasText$1,bigIcon:bigIcon$1,evaluatBtn,start:start$1,evaluatStartBtn,icon,onShow,popover,backbtn,speed,schedule,ring,speedButton,label,player:player$1,fullbtn,finish,dialogueBox,dialogue,dialogueIcon,inRadioIcon,inRadio,animation,btnMusicList,toggleMusicType,slider:slider$1,followEndBtn},lottie={exports:{}};(function(module,exports){typeof navigator!="undefined"&&function(B,R){module.exports=R()}(commonjsGlobal$2,function(){var svgNS="http://www.w3.org/2000/svg",locationHref="",_useWebWorker=!1,initialDefaultFrame=-999999,setWebWorker=function(R){_useWebWorker=!!R},getWebWorker=function(){return _useWebWorker},setLocationHref=function(R){locationHref=R},getLocationHref=function(){return locationHref};function createTag(B){return document.createElement(B)}function extendPrototype(B,R){var F,D=B.length,G;for(F=0;F1?F[1]=1:F[1]<=0&&(F[1]=0),HSVtoRGB(F[0],F[1],F[2])}function addBrightnessToRGB(B,R){var F=RGBtoHSV(B[0]*255,B[1]*255,B[2]*255);return F[2]+=R,F[2]>1?F[2]=1:F[2]<0&&(F[2]=0),HSVtoRGB(F[0],F[1],F[2])}function addHueToRGB(B,R){var F=RGBtoHSV(B[0]*255,B[1]*255,B[2]*255);return F[0]+=R/360,F[0]>1?F[0]-=1:F[0]<0&&(F[0]+=1),HSVtoRGB(F[0],F[1],F[2])}var rgbToHex=function(){var B=[],R,F;for(R=0;R<256;R+=1)F=R.toString(16),B[R]=F.length===1?"0"+F:F;return function(D,G,U){return D<0&&(D=0),G<0&&(G=0),U<0&&(U=0),"#"+B[D]+B[G]+B[U]}}(),setSubframeEnabled=function(R){subframeEnabled=!!R},getSubframeEnabled=function(){return subframeEnabled},setExpressionsPlugin=function(R){expressionsPlugin=R},getExpressionsPlugin=function(){return expressionsPlugin},setDefaultCurveSegments=function(R){defaultCurveSegments=R},getDefaultCurveSegments=function(){return defaultCurveSegments},setIdPrefix=function(R){idPrefix$1=R};function createNS(B){return document.createElementNS(svgNS,B)}function _typeof$5(B){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_typeof$5=function(F){return typeof F}:_typeof$5=function(F){return F&&typeof Symbol=="function"&&F.constructor===Symbol&&F!==Symbol.prototype?"symbol":typeof F},_typeof$5(B)}var dataManager=function(){var B=1,R=[],F,D,G={onmessage:function(){},postMessage:function(ie){F({data:ie})}},U={postMessage:function(ie){G.onmessage({data:ie})}};function W(J){if(window.Worker&&window.Blob&&getWebWorker()){var ie=new Blob(["var _workerSelf = self; self.onmessage = ",J.toString()],{type:"text/javascript"}),ne=URL.createObjectURL(ie);return new Worker(ne)}return F=J,G}function q(){D||(D=W(function(ie){function ne(){function re(Te,Le){var we,Ae,Me=Te.length,ke,Ne,Ie,Ge;for(Ae=0;Ae=0;Le-=1)if(Te[Le].ty==="sh")if(Te[Le].ks.k.i)de(Te[Le].ks.k);else for(Me=Te[Le].ks.k.length,Ae=0;Aewe[0]?!0:we[0]>Te[0]?!1:Te[1]>we[1]?!0:we[1]>Te[1]?!1:Te[2]>we[2]?!0:we[2]>Te[2]?!1:null}var fe=function(){var Te=[4,4,14];function Le(Ae){var Me=Ae.t.d;Ae.t.d={k:[{s:Me,t:0}]}}function we(Ae){var Me,ke=Ae.length;for(Me=0;Me=0;Me-=1)if(Ae[Me].ty==="sh")if(Ae[Me].ks.k.i)Ae[Me].ks.k.c=Ae[Me].closed;else for(Ie=Ae[Me].ks.k.length,Ne=0;Ne500)&&(this._imageLoaded(),clearInterval(ce)),le+=1}.bind(this),50)}function U(ae){var le=D(ae,this.assetsPath,this.path),ce=createNS("image");isSafari?this.testImageLoaded(ce):ce.addEventListener("load",this._imageLoaded,!1),ce.addEventListener("error",function(){he.img=B,this._imageLoaded()}.bind(this),!1),ce.setAttributeNS("http://www.w3.org/1999/xlink","href",le),this._elementHelper.append?this._elementHelper.append(ce):this._elementHelper.appendChild(ce);var he={img:ce,assetData:ae};return he}function W(ae){var le=D(ae,this.assetsPath,this.path),ce=createTag("img");ce.crossOrigin="anonymous",ce.addEventListener("load",this._imageLoaded,!1),ce.addEventListener("error",function(){he.img=B,this._imageLoaded()}.bind(this),!1),ce.src=le;var he={img:ce,assetData:ae};return he}function q(ae){var le={assetData:ae},ce=D(ae,this.assetsPath,this.path);return dataManager.loadData(ce,function(he){le.img=he,this._footageLoaded()}.bind(this),function(){le.img={},this._footageLoaded()}.bind(this)),le}function Y(ae,le){this.imagesLoadedCb=le;var ce,he=ae.length;for(ce=0;cethis.animationData.op&&(this.animationData.op=B.op,this.totalFrames=Math.floor(B.op-this.animationData.ip));var R=this.animationData.layers,F,D=R.length,G=B.layers,U,W=G.length;for(U=0;Uthis.timeCompleted&&(this.currentFrame=this.timeCompleted),this.trigger("enterFrame"),this.renderFrame(),this.trigger("drawnFrame")},AnimationItem.prototype.renderFrame=function(){if(!(this.isLoaded===!1||!this.renderer))try{this.renderer.renderFrame(this.currentFrame+this.firstFrame)}catch(B){this.triggerRenderFrameError(B)}},AnimationItem.prototype.play=function(B){B&&this.name!==B||this.isPaused===!0&&(this.isPaused=!1,this.trigger("_pause"),this.audioController.resume(),this._idle&&(this._idle=!1,this.trigger("_active")))},AnimationItem.prototype.pause=function(B){B&&this.name!==B||this.isPaused===!1&&(this.isPaused=!0,this.trigger("_play"),this._idle=!0,this.trigger("_idle"),this.audioController.pause())},AnimationItem.prototype.togglePause=function(B){B&&this.name!==B||(this.isPaused===!0?this.play():this.pause())},AnimationItem.prototype.stop=function(B){B&&this.name!==B||(this.pause(),this.playCount=0,this._completedLoop=!1,this.setCurrentRawFrameValue(0))},AnimationItem.prototype.getMarkerData=function(B){for(var R,F=0;F=this.totalFrames-1&&this.frameModifier>0?!this.loop||this.playCount===this.loop?this.checkSegments(R>this.totalFrames?R%this.totalFrames:0)||(F=!0,R=this.totalFrames-1):R>=this.totalFrames?(this.playCount+=1,this.checkSegments(R%this.totalFrames)||(this.setCurrentRawFrameValue(R%this.totalFrames),this._completedLoop=!0,this.trigger("loopComplete"))):this.setCurrentRawFrameValue(R):R<0?this.checkSegments(R%this.totalFrames)||(this.loop&&!(this.playCount--<=0&&this.loop!==!0)?(this.setCurrentRawFrameValue(this.totalFrames+R%this.totalFrames),this._completedLoop?this.trigger("loopComplete"):this._completedLoop=!0):(F=!0,R=0)):this.setCurrentRawFrameValue(R),F&&(this.setCurrentRawFrameValue(R),this.pause(),this.trigger("complete"))}},AnimationItem.prototype.adjustSegment=function(B,R){this.playCount=0,B[1]0&&(this.playSpeed<0?this.setSpeed(-this.playSpeed):this.setDirection(-1)),this.totalFrames=B[0]-B[1],this.timeCompleted=this.totalFrames,this.firstFrame=B[1],this.setCurrentRawFrameValue(this.totalFrames-.001-R)):B[1]>B[0]&&(this.frameModifier<0&&(this.playSpeed<0?this.setSpeed(-this.playSpeed):this.setDirection(1)),this.totalFrames=B[1]-B[0],this.timeCompleted=this.totalFrames,this.firstFrame=B[0],this.setCurrentRawFrameValue(.001+R)),this.trigger("segmentStart")},AnimationItem.prototype.setSegment=function(B,R){var F=-1;this.isPaused&&(this.currentRawFrame+this.firstFrameR&&(F=R-B)),this.firstFrame=B,this.totalFrames=R-B,this.timeCompleted=this.totalFrames,F!==-1&&this.goToAndStop(F,!0)},AnimationItem.prototype.playSegments=function(B,R){if(R&&(this.segments.length=0),_typeof$4(B[0])==="object"){var F,D=B.length;for(F=0;F=0;we-=1)R[we].animation.destroy(Le)}function ge(Le,we,Ae){var Me=[].concat([].slice.call(document.getElementsByClassName("lottie")),[].slice.call(document.getElementsByClassName("bodymovin"))),ke,Ne=Me.length;for(ke=0;ke0?he=ge:ce=ge;while(Math.abs(fe)>U&&++Se=G?re(ce,ve,he,de):xe===0?ve:se(ce,fe,fe+Y,he,de)}},B}(),pooling=function(){function B(R){return R.concat(createSizedArray(R.length))}return{double:B}}(),poolFactory=function(){return function(B,R,F){var D=0,G=B,U=createSizedArray(G),W={newElement:q,release:Y};function q(){var Q;return D?(D-=1,Q=U[D]):Q=R(),Q}function Y(Q){D===G&&(U=pooling.double(U),G*=2),F&&F(Q),U[D]=Q,D+=1}return W}}(),bezierLengthPool=function(){function B(){return{addedLength:0,percents:createTypedArray("float32",getDefaultCurveSegments()),lengths:createTypedArray("float32",getDefaultCurveSegments())}}return poolFactory(8,B)}(),segmentsLengthPool=function(){function B(){return{lengths:[],totalLength:0}}function R(F){var D,G=F.lengths.length;for(D=0;D-.001&&le<.001}function F(J,ie,ne,se,re,ae,le,ce,he){if(ne===0&&ae===0&&he===0)return R(J,ie,se,re,le,ce);var de=B.sqrt(B.pow(se-J,2)+B.pow(re-ie,2)+B.pow(ae-ne,2)),me=B.sqrt(B.pow(le-J,2)+B.pow(ce-ie,2)+B.pow(he-ne,2)),fe=B.sqrt(B.pow(le-se,2)+B.pow(ce-re,2)+B.pow(he-ae,2)),ge;return de>me?de>fe?ge=de-me-fe:ge=fe-me-de:fe>me?ge=fe-me-de:ge=me-de-fe,ge>-1e-4&&ge<1e-4}var D=function(){return function(J,ie,ne,se){var re=getDefaultCurveSegments(),ae,le,ce,he,de,me=0,fe,ge=[],Se=[],Ee=bezierLengthPool.newElement();for(ce=ne.length,ae=0;aele?-1:1,de=!0;de;)if(se[ae]<=le&&se[ae+1]>le?(ce=(le-se[ae])/(se[ae+1]-se[ae]),de=!1):ae+=he,ae<0||ae>=re-1){if(ae===re-1)return ne[ae];de=!1}return ne[ae]+(ne[ae+1]-ne[ae])*ce}function Q(J,ie,ne,se,re,ae){var le=Y(re,ae),ce=1-le,he=B.round((ce*ce*ce*J[0]+(le*ce*ce+ce*le*ce+ce*ce*le)*ne[0]+(le*le*ce+ce*le*le+le*ce*le)*se[0]+le*le*le*ie[0])*1e3)/1e3,de=B.round((ce*ce*ce*J[1]+(le*ce*ce+ce*le*ce+ce*ce*le)*ne[1]+(le*le*ce+ce*le*le+le*ce*le)*se[1]+le*le*le*ie[1])*1e3)/1e3;return[he,de]}var Z=createTypedArray("float32",8);function K(J,ie,ne,se,re,ae,le){re<0?re=0:re>1&&(re=1);var ce=Y(re,le);ae=ae>1?1:ae;var he=Y(ae,le),de,me=J.length,fe=1-ce,ge=1-he,Se=fe*fe*fe,Ee=ce*fe*fe*3,ve=ce*ce*fe*3,xe=ce*ce*ce,Pe=fe*fe*ge,ye=ce*fe*ge+fe*ce*ge+fe*fe*he,Te=ce*ce*ge+fe*ce*he+ce*fe*he,Le=ce*ce*he,we=fe*ge*ge,Ae=ce*ge*ge+fe*he*ge+fe*ge*he,Me=ce*he*ge+fe*he*he+ce*ge*he,ke=ce*he*he,Ne=ge*ge*ge,Ie=he*ge*ge+ge*he*ge+ge*ge*he,Ge=he*he*ge+ge*he*he+he*ge*he,ze=he*he*he;for(de=0;de=Se.t-le){ge.h&&(ge=Se),he=0;break}if(Se.t-le>re){he=de;break}de=we||re=we?ke.points.length-1:0;for(xe=ke.points[Ne].point.length,ve=0;ve=ze&&Ie=we)ce[0]=Me[0],ce[1]=Me[1],ce[2]=Me[2];else if(re<=Ae)ce[0]=ge.s[0],ce[1]=ge.s[1],ce[2]=ge.s[2];else{var pt=U(ge.s),dt=U(Me),yt=(re-Ae)/(we-Ae);G(ce,D(pt,dt,yt))}else for(de=0;de=we?Pe=1:re1e-6?(xe=Math.acos(Pe),ye=Math.sin(xe),Te=Math.sin((1-le)*xe)/ye,Le=Math.sin(le*xe)/ye):(Te=1-le,Le=le),ce[0]=Te*he+Le*ge,ce[1]=Te*de+Le*Se,ce[2]=Te*me+Le*Ee,ce[3]=Te*fe+Le*ve,ce}function G(re,ae){var le=ae[0],ce=ae[1],he=ae[2],de=ae[3],me=Math.atan2(2*ce*de-2*le*he,1-2*ce*ce-2*he*he),fe=Math.asin(2*le*ce+2*he*de),ge=Math.atan2(2*le*de-2*ce*he,1-2*le*le-2*he*he);re[0]=me/degToRads,re[1]=fe/degToRads,re[2]=ge/degToRads}function U(re){var ae=re[0]*degToRads,le=re[1]*degToRads,ce=re[2]*degToRads,he=Math.cos(ae/2),de=Math.cos(le/2),me=Math.cos(ce/2),fe=Math.sin(ae/2),ge=Math.sin(le/2),Se=Math.sin(ce/2),Ee=he*de*me-fe*ge*Se,ve=fe*ge*me+he*de*Se,xe=fe*de*me+he*ge*Se,Pe=he*ge*me-fe*de*Se;return[ve,xe,Pe,Ee]}function W(){var re=this.comp.renderedFrame-this.offsetTime,ae=this.keyframes[0].t-this.offsetTime,le=this.keyframes[this.keyframes.length-1].t-this.offsetTime;if(!(re===this._caching.lastFrame||this._caching.lastFrame!==B&&(this._caching.lastFrame>=le&&re>=le||this._caching.lastFrame=re&&(this._caching._lastKeyframeIndex=-1,this._caching.lastIndex=0);var ce=this.interpolateValue(re,this._caching);this.pv=ce}return this._caching.lastFrame=re,this.pv}function q(re){var ae;if(this.propType==="unidimensional")ae=re*this.mult,R(this.v-ae)>1e-5&&(this.v=ae,this._mdf=!0);else for(var le=0,ce=this.v.length;le1e-5&&(this.v[le]=ae,this._mdf=!0),le+=1}function Y(){if(!(this.elem.globalData.frameId===this.frameId||!this.effectsSequence.length)){if(this.lock){this.setVValue(this.pv);return}this.lock=!0,this._mdf=this._isFirstFrame;var re,ae=this.effectsSequence.length,le=this.kf?this.pv:this.data.k;for(re=0;re=this._maxLength&&this.doubleArrayLength(),F){case"v":U=this.v;break;case"i":U=this.i;break;case"o":U=this.o;break;default:U=[];break}(!U[D]||U[D]&&!G)&&(U[D]=pointPool.newElement()),U[D][0]=B,U[D][1]=R},ShapePath.prototype.setTripleAt=function(B,R,F,D,G,U,W,q){this.setXYAt(B,R,"v",W,q),this.setXYAt(F,D,"o",W,q),this.setXYAt(G,U,"i",W,q)},ShapePath.prototype.reverse=function(){var B=new ShapePath;B.setPathData(this.c,this._length);var R=this.v,F=this.o,D=this.i,G=0;this.c&&(B.setTripleAt(R[0][0],R[0][1],D[0][0],D[0][1],F[0][0],F[0][1],0,!1),G=1);var U=this._length-1,W=this._length,q;for(q=G;q=ye[ye.length-1].t-this.offsetTime)de=ye[ye.length-1].s?ye[ye.length-1].s[0]:ye[ye.length-2].e[0],fe=!0;else{for(var Te=he,Le=ye.length-1,we=!0,Ae,Me,ke;we&&(Ae=ye[Te],Me=ye[Te+1],!(Me.t-this.offsetTime>ae));)Te=Me.t-this.offsetTime)xe=1;else if(aece&&ae>ce)||(this._caching.lastIndex=he0||we>-1e-6&&we<0?D(we*Ae)/Ae:we}function Le(){var we=this.props,Ae=Te(we[0]),Me=Te(we[1]),ke=Te(we[4]),Ne=Te(we[5]),Ie=Te(we[12]),Ge=Te(we[13]);return"matrix("+Ae+","+Me+","+ke+","+Ne+","+Ie+","+Ge+")"}return function(){this.reset=G,this.rotate=U,this.rotateX=W,this.rotateY=q,this.rotateZ=Y,this.skew=Z,this.skewFromAxis=K,this.shear=Q,this.scale=J,this.setTransform=ie,this.translate=ne,this.transform=se,this.applyToPoint=he,this.applyToX=de,this.applyToY=me,this.applyToZ=fe,this.applyToPointArray=xe,this.applyToTriplePoints=ve,this.applyToPointStringified=Pe,this.toCSS=ye,this.to2dCSS=Le,this.clone=le,this.cloneFromProps=ce,this.equals=ae,this.inversePoints=Ee,this.inversePoint=Se,this.getInverseMatrix=ge,this._t=this.transform,this.isIdentity=re,this._identity=!0,this._identityCalculated=!1,this.props=createTypedArray("float32",16),this.reset()}}();function _typeof$3(B){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_typeof$3=function(F){return typeof F}:_typeof$3=function(F){return F&&typeof Symbol=="function"&&F.constructor===Symbol&&F!==Symbol.prototype?"symbol":typeof F},_typeof$3(B)}var lottie={};function setLocation(B){setLocationHref(B)}function searchAnimations(){animationManager.searchAnimations()}function setSubframeRendering(B){setSubframeEnabled(B)}function setPrefix(B){setIdPrefix(B)}function loadAnimation(B){return animationManager.loadAnimation(B)}function setQuality(B){if(typeof B=="string")switch(B){case"high":setDefaultCurveSegments(200);break;default:case"medium":setDefaultCurveSegments(50);break;case"low":setDefaultCurveSegments(10);break}else!isNaN(B)&&B>1&&setDefaultCurveSegments(B)}function inBrowser(){return typeof navigator!="undefined"}function installPlugin(B,R){B==="expressions"&&setExpressionsPlugin(R)}function getFactory(B){switch(B){case"propertyFactory":return PropertyFactory;case"shapePropertyFactory":return ShapePropertyFactory;case"matrix":return Matrix;default:return null}}lottie.play=animationManager.play,lottie.pause=animationManager.pause,lottie.setLocationHref=setLocation,lottie.togglePause=animationManager.togglePause,lottie.setSpeed=animationManager.setSpeed,lottie.setDirection=animationManager.setDirection,lottie.stop=animationManager.stop,lottie.searchAnimations=searchAnimations,lottie.registerAnimation=animationManager.registerAnimation,lottie.loadAnimation=loadAnimation,lottie.setSubframeRendering=setSubframeRendering,lottie.resize=animationManager.resize,lottie.goToAndStop=animationManager.goToAndStop,lottie.destroy=animationManager.destroy,lottie.setQuality=setQuality,lottie.inBrowser=inBrowser,lottie.installPlugin=installPlugin,lottie.freeze=animationManager.freeze,lottie.unfreeze=animationManager.unfreeze,lottie.setVolume=animationManager.setVolume,lottie.mute=animationManager.mute,lottie.unmute=animationManager.unmute,lottie.getRegisteredAnimations=animationManager.getRegisteredAnimations,lottie.useWebWorker=setWebWorker,lottie.setIDPrefix=setPrefix,lottie.__getFactory=getFactory,lottie.version="5.9.6";function checkReady(){document.readyState==="complete"&&(clearInterval(readyStateCheckInterval),searchAnimations())}function getQueryVariable(B){for(var R=queryString.split("&"),F=0;F=1?U.push({s:B-1,e:R-1}):(U.push({s:B,e:1}),U.push({s:0,e:R-1}));var W=[],q,Y=U.length,Q;for(q=0;qD+F)){var Z,K;Q.s*G<=D?Z=0:Z=(Q.s*G-D)/F,Q.e*G>=D+F?K=1:K=(Q.e*G-D)/F,W.push([Z,K])}return W.length||W.push([0,0]),W},TrimModifier.prototype.releasePathsData=function(B){var R,F=B.length;for(R=0;R1?R=1+D:this.s.v<0?R=0+D:R=this.s.v+D,this.e.v>1?F=1+D:this.e.v<0?F=0+D:F=this.e.v+D,R>F){var G=R;R=F,F=G}R=Math.round(R*1e4)*1e-4,F=Math.round(F*1e4)*1e-4,this.sValue=R,this.eValue=F}else R=this.sValue,F=this.eValue;var U,W,q=this.shapes.length,Y,Q,Z,K,J,ie=0;if(F===R)for(W=0;W=0;W-=1)if(se=this.shapes[W],se.shape._mdf){for(re=se.localShapeCollection,re.releaseShapes(),this.m===2&&q>1?(he=this.calculateShapeEdges(R,F,se.totalShapeLength,ce,ie),ce+=se.totalShapeLength):he=[[ae,le]],Q=he.length,Y=0;Y=1?ne.push({s:se.totalShapeLength*(ae-1),e:se.totalShapeLength*(le-1)}):(ne.push({s:se.totalShapeLength*ae,e:se.totalShapeLength}),ne.push({s:0,e:se.totalShapeLength*(le-1)}));var de=this.addShapes(se,ne[0]);if(ne[0].s!==ne[0].e){if(ne.length>1){var me=se.shape.paths.shapes[se.shape.paths._length-1];if(me.c){var fe=de.pop();this.addPaths(de,re),de=this.addShapes(se,ne[1],fe)}else this.addPaths(de,re),de=this.addShapes(se,ne[1])}this.addPaths(de,re)}}se.shape.paths=re}}},TrimModifier.prototype.addPaths=function(B,R){var F,D=B.length;for(F=0;FR.e){F.c=!1;break}else R.s<=Q&&R.e>=Q+Z.addedLength?(this.addSegment(G[U].v[q-1],G[U].o[q-1],G[U].i[q],G[U].v[q],F,K,re),re=!1):(ie=bez.getNewSegment(G[U].v[q-1],G[U].v[q],G[U].o[q-1],G[U].i[q],(R.s-Q)/Z.addedLength,(R.e-Q)/Z.addedLength,J[q-1]),this.addSegmentFromArray(ie,F,K,re),re=!1,F.c=!1),Q+=Z.addedLength,K+=1;if(G[U].c&&J.length){if(Z=J[q-1],Q<=R.e){var ae=J[q-1].addedLength;R.s<=Q&&R.e>=Q+ae?(this.addSegment(G[U].v[q-1],G[U].o[q-1],G[U].i[0],G[U].v[0],F,K,re),re=!1):(ie=bez.getNewSegment(G[U].v[q-1],G[U].v[0],G[U].o[q-1],G[U].i[0],(R.s-Q)/ae,(R.e-Q)/ae,J[q-1]),this.addSegmentFromArray(ie,F,K,re),re=!1,F.c=!1)}else F.c=!1;Q+=Z.addedLength,K+=1}if(F._length&&(F.setXYAt(F.v[se][0],F.v[se][1],"i",se),F.setXYAt(F.v[F._length-1][0],F.v[F._length-1][1],"o",F._length-1)),Q>R.e)break;U=this.p.keyframes[this.p.keyframes.length-1].t?(Z=this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length-1].t/Q,0),K=this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length-1].t-.05)/Q,0)):(Z=this.p.pv,K=this.p.getValueAtTime((this.p._caching.lastFrame+this.p.offsetTime-.01)/Q,this.p.offsetTime));else if(this.px&&this.px.keyframes&&this.py.keyframes&&this.px.getValueAtTime&&this.py.getValueAtTime){Z=[],K=[];var J=this.px,ie=this.py;J._caching.lastFrame+J.offsetTime<=J.keyframes[0].t?(Z[0]=J.getValueAtTime((J.keyframes[0].t+.01)/Q,0),Z[1]=ie.getValueAtTime((ie.keyframes[0].t+.01)/Q,0),K[0]=J.getValueAtTime(J.keyframes[0].t/Q,0),K[1]=ie.getValueAtTime(ie.keyframes[0].t/Q,0)):J._caching.lastFrame+J.offsetTime>=J.keyframes[J.keyframes.length-1].t?(Z[0]=J.getValueAtTime(J.keyframes[J.keyframes.length-1].t/Q,0),Z[1]=ie.getValueAtTime(ie.keyframes[ie.keyframes.length-1].t/Q,0),K[0]=J.getValueAtTime((J.keyframes[J.keyframes.length-1].t-.01)/Q,0),K[1]=ie.getValueAtTime((ie.keyframes[ie.keyframes.length-1].t-.01)/Q,0)):(Z=[J.pv,ie.pv],K[0]=J.getValueAtTime((J._caching.lastFrame+J.offsetTime-.01)/Q,J.offsetTime),K[1]=ie.getValueAtTime((ie._caching.lastFrame+ie.offsetTime-.01)/Q,ie.offsetTime))}else K=B,Z=K;this.v.rotate(-Math.atan2(Z[1]-K[1],Z[0]-K[0]))}this.data.p&&this.data.p.s?this.data.p.z?this.v.translate(this.px.v,this.py.v,-this.pz.v):this.v.translate(this.px.v,this.py.v,0):this.v.translate(this.p.v[0],this.p.v[1],-this.p.v[2])}this.frameId=this.elem.globalData.frameId}}function D(){if(!this.a.k)this.pre.translate(-this.a.v[0],-this.a.v[1],this.a.v[2]),this.appliedTransformations=1;else return;if(!this.s.effectsSequence.length)this.pre.scale(this.s.v[0],this.s.v[1],this.s.v[2]),this.appliedTransformations=2;else return;if(this.sk)if(!this.sk.effectsSequence.length&&!this.sa.effectsSequence.length)this.pre.skewFromAxis(-this.sk.v,this.sa.v),this.appliedTransformations=3;else return;this.r?this.r.effectsSequence.length||(this.pre.rotate(-this.r.v),this.appliedTransformations=4):!this.rz.effectsSequence.length&&!this.ry.effectsSequence.length&&!this.rx.effectsSequence.length&&!this.or.effectsSequence.length&&(this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]),this.appliedTransformations=4)}function G(){}function U(Y){this._addDynamicProperty(Y),this.elem.addDynamicProperty(Y),this._isDirty=!0}function W(Y,Q,Z){if(this.elem=Y,this.frameId=-1,this.propType="transform",this.data=Q,this.v=new Matrix,this.pre=new Matrix,this.appliedTransformations=0,this.initDynamicPropertyContainer(Z||Y),Q.p&&Q.p.s?(this.px=PropertyFactory.getProp(Y,Q.p.x,0,0,this),this.py=PropertyFactory.getProp(Y,Q.p.y,0,0,this),Q.p.z&&(this.pz=PropertyFactory.getProp(Y,Q.p.z,0,0,this))):this.p=PropertyFactory.getProp(Y,Q.p||{k:[0,0,0]},1,0,this),Q.rx){if(this.rx=PropertyFactory.getProp(Y,Q.rx,0,degToRads,this),this.ry=PropertyFactory.getProp(Y,Q.ry,0,degToRads,this),this.rz=PropertyFactory.getProp(Y,Q.rz,0,degToRads,this),Q.or.k[0].ti){var K,J=Q.or.k.length;for(K=0;K0;)F-=1,this._elements.unshift(R[F]);this.dynamicProperties.length?this.k=!0:this.getValue(!0)},RepeaterModifier.prototype.resetElements=function(B){var R,F=B.length;for(R=0;R0?Math.floor(J):Math.ceil(J),se=this.pMatrix.props,re=this.rMatrix.props,ae=this.sMatrix.props;this.pMatrix.reset(),this.rMatrix.reset(),this.sMatrix.reset(),this.tMatrix.reset(),this.matrix.reset();var le=0;if(J>0){for(;lene;)this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,1,!0),le-=1;ie&&(this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,-ie,!0),le-=ie)}D=this.data.m===1?0:this._currentCopies-1,G=this.data.m===1?1:-1,U=this._currentCopies;for(var ce,he;U;){if(R=this.elemsData[D].it,F=R[R.length-1].transform.mProps.v.props,he=F.length,R[R.length-1].transform.mProps._mdf=!0,R[R.length-1].transform.op._mdf=!0,R[R.length-1].transform.op.v=this._currentCopies===1?this.so.v:this.so.v+(this.eo.v-this.so.v)*(D/(this._currentCopies-1)),le!==0){for((D!==0&&G===1||D!==this._currentCopies-1&&G===-1)&&this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,1,!1),this.matrix.transform(re[0],re[1],re[2],re[3],re[4],re[5],re[6],re[7],re[8],re[9],re[10],re[11],re[12],re[13],re[14],re[15]),this.matrix.transform(ae[0],ae[1],ae[2],ae[3],ae[4],ae[5],ae[6],ae[7],ae[8],ae[9],ae[10],ae[11],ae[12],ae[13],ae[14],ae[15]),this.matrix.transform(se[0],se[1],se[2],se[3],se[4],se[5],se[6],se[7],se[8],se[9],se[10],se[11],se[12],se[13],se[14],se[15]),ce=0;ce0&&(Ee=!1),Ee){var Pe=createTag("style");Pe.setAttribute("f-forigin",me[fe].fOrigin),Pe.setAttribute("f-origin",me[fe].origin),Pe.setAttribute("f-family",me[fe].fFamily),Pe.type="text/css",Pe.innerText="@font-face {font-family: "+me[fe].fFamily+"; font-style: normal; src: url('"+me[fe].fPath+"');}",de.appendChild(Pe)}}else if(me[fe].fOrigin==="g"||me[fe].origin===1){for(ve=document.querySelectorAll('link[f-forigin="g"], link[f-origin="1"]'),xe=0;xeR?this.isInRange!==!0&&(this.globalData._mdf=!0,this._mdf=!0,this.isInRange=!0,this.show()):this.isInRange!==!1&&(this.globalData._mdf=!0,this.isInRange=!1,this.hide())},renderRenderable:function(){var R,F=this.renderableComponents.length;for(R=0;R.1)&&this.audio.seek(this._currentTime/this.globalData.frameRate):(this.audio.play(),this.audio.seek(this._currentTime/this.globalData.frameRate),this._isPlaying=!0))},AudioElement.prototype.show=function(){},AudioElement.prototype.hide=function(){this.audio.pause(),this._isPlaying=!1},AudioElement.prototype.pause=function(){this.audio.pause(),this._isPlaying=!1,this._canPlay=!1},AudioElement.prototype.resume=function(){this._canPlay=!0},AudioElement.prototype.setRate=function(B){this.audio.rate(B)},AudioElement.prototype.volume=function(B){this._volumeMultiplier=B,this._previousVolume=B*this._volume,this.audio.volume(this._previousVolume)},AudioElement.prototype.getBaseElement=function(){return null},AudioElement.prototype.destroy=function(){},AudioElement.prototype.sourceRectAtTime=function(){},AudioElement.prototype.initExpressions=function(){};function BaseRenderer(){}BaseRenderer.prototype.checkLayers=function(B){var R,F=this.layers.length,D;for(this.completeLayers=!0,R=F-1;R>=0;R-=1)this.elements[R]||(D=this.layers[R],D.ip-D.st<=B-this.layers[R].st&&D.op-D.st>B-this.layers[R].st&&this.buildItem(R)),this.completeLayers=this.elements[R]?this.completeLayers:!1;this.checkPendingElements()},BaseRenderer.prototype.createItem=function(B){switch(B.ty){case 2:return this.createImage(B);case 0:return this.createComp(B);case 1:return this.createSolid(B);case 3:return this.createNull(B);case 4:return this.createShape(B);case 5:return this.createText(B);case 6:return this.createAudio(B);case 13:return this.createCamera(B);case 15:return this.createFootage(B);default:return this.createNull(B)}},BaseRenderer.prototype.createCamera=function(){throw new Error("You're using a 3d camera. Try the html renderer.")},BaseRenderer.prototype.createAudio=function(B){return new AudioElement(B,this.globalData,this)},BaseRenderer.prototype.createFootage=function(B){return new FootageElement(B,this.globalData,this)},BaseRenderer.prototype.buildAllItems=function(){var B,R=this.layers.length;for(B=0;B0&&(this.maskElement.setAttribute("id",J),this.element.maskedElement.setAttribute(le,"url("+getLocationHref()+"#"+J+")"),D.appendChild(this.maskElement)),this.viewData.length&&this.element.addRenderableComponent(this)}MaskElement.prototype.getMaskProperty=function(B){return this.viewData[B].prop},MaskElement.prototype.renderFrame=function(B){var R=this.element.finalTransform.mat,F,D=this.masksProperties.length;for(F=0;F1&&(D+=" C"+R.o[G-1][0]+","+R.o[G-1][1]+" "+R.i[0][0]+","+R.i[0][1]+" "+R.v[0][0]+","+R.v[0][1]),F.lastPath!==D){var W="";F.elem&&(R.c&&(W=B.inv?this.solidPath+D:D),F.elem.setAttribute("d",W)),F.lastPath=D}},MaskElement.prototype.destroy=function(){this.element=null,this.globalData=null,this.maskElement=null,this.data=null,this.masksProperties=null};var filtersFactory=function(){var B={};B.createFilter=R,B.createAlphaToLuminanceFilter=F;function R(D,G){var U=createNS("filter");return U.setAttribute("id",D),G!==!0&&(U.setAttribute("filterUnits","objectBoundingBox"),U.setAttribute("x","0%"),U.setAttribute("y","0%"),U.setAttribute("width","100%"),U.setAttribute("height","100%")),U}function F(){var D=createNS("feColorMatrix");return D.setAttribute("type","matrix"),D.setAttribute("color-interpolation-filters","sRGB"),D.setAttribute("values","0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1"),D}return B}(),featureSupport=function(){var B={maskType:!0};return(/MSIE 10/i.test(navigator.userAgent)||/MSIE 9/i.test(navigator.userAgent)||/rv:11.0/i.test(navigator.userAgent)||/Edge\/\d./i.test(navigator.userAgent))&&(B.maskType=!1),B}(),registeredEffects={},idPrefix="filter_result_";function SVGEffects(B){var R,F="SourceGraphic",D=B.data.ef?B.data.ef.length:0,G=createElementID(),U=filtersFactory.createFilter(G,!0),W=0;this.filters=[];var q;for(R=0;R=0&&(D=this.shapeModifiers[R].processShapes(this._isFirstFrame),!D);R-=1);}},searchProcessedElement:function(R){for(var F=this.processedElements,D=0,G=F.length;D.01)return!1;F+=1}return!0},GradientProperty.prototype.checkCollapsable=function(){if(this.o.length/2!==this.c.length/4)return!1;if(this.data.k.k[0].s)for(var B=0,R=this.data.k.k.length;B0;)ae=J.transformers[Ee].mProps._mdf||ae,Se-=1,Ee-=1;if(ae)for(Se=de-J.styles[ce].lvl,Ee=J.transformers.length-1;Se>0;)ge=J.transformers[Ee].mProps.v.props,fe.transform(ge[0],ge[1],ge[2],ge[3],ge[4],ge[5],ge[6],ge[7],ge[8],ge[9],ge[10],ge[11],ge[12],ge[13],ge[14],ge[15]),Se-=1,Ee-=1}else fe=B;if(me=J.sh.paths,se=me._length,ae){for(re="",ne=0;ne=1?Pe=.99:Pe<=-1&&(Pe=-.99);var ye=ve*Pe,Te=Math.cos(xe+J.a.v)*ye+re[0],Le=Math.sin(xe+J.a.v)*ye+re[1];ne.setAttribute("fx",Te),ne.setAttribute("fy",Le),se&&!J.g._collapsable&&(J.of.setAttribute("fx",Te),J.of.setAttribute("fy",Le))}}}function Z(K,J,ie){var ne=J.style,se=J.d;se&&(se._mdf||ie)&&se.dashStr&&(ne.pElem.setAttribute("stroke-dasharray",se.dashStr),ne.pElem.setAttribute("stroke-dashoffset",se.dashoffset[0])),J.c&&(J.c._mdf||ie)&&ne.pElem.setAttribute("stroke","rgb("+bmFloor(J.c.v[0])+","+bmFloor(J.c.v[1])+","+bmFloor(J.c.v[2])+")"),(J.o._mdf||ie)&&ne.pElem.setAttribute("stroke-opacity",J.o.v),(J.w._mdf||ie)&&(ne.pElem.setAttribute("stroke-width",J.w.v),ne.msElem&&ne.msElem.setAttribute("stroke-width",J.w.v))}return F}();function SVGShapeElement(B,R,F){this.shapes=[],this.shapesData=B.shapes,this.stylesList=[],this.shapeModifiers=[],this.itemsData=[],this.processedElements=[],this.animatedContents=[],this.initElement(B,R,F),this.prevViewData=[]}extendPrototype([BaseElement,TransformElement,SVGBaseElement,IShapeElement,HierarchyElement,FrameElement,RenderableDOMElement],SVGShapeElement),SVGShapeElement.prototype.initSecondaryElement=function(){},SVGShapeElement.prototype.identityMatrix=new Matrix,SVGShapeElement.prototype.buildExpressionInterface=function(){},SVGShapeElement.prototype.createContent=function(){this.searchShapes(this.shapesData,this.itemsData,this.prevViewData,this.layerElement,0,[],!0),this.filterUniqueShapes()},SVGShapeElement.prototype.filterUniqueShapes=function(){var B,R=this.shapes.length,F,D,G=this.stylesList.length,U,W=[],q=!1;for(D=0;D1&&q&&this.setShapesAsAnimated(W)}},SVGShapeElement.prototype.setShapesAsAnimated=function(B){var R,F=B.length;for(R=0;R=0;Y-=1){if(re=this.searchProcessedElement(B[Y]),re?R[Y]=F[re-1]:B[Y]._render=W,B[Y].ty==="fl"||B[Y].ty==="st"||B[Y].ty==="gf"||B[Y].ty==="gs"||B[Y].ty==="no")re?R[Y].style.closed=!1:R[Y]=this.createStyleElement(B[Y],G),B[Y]._render&&R[Y].style.pElem.parentNode!==D&&D.appendChild(R[Y].style.pElem),J.push(R[Y].style);else if(B[Y].ty==="gr"){if(!re)R[Y]=this.createGroupElement(B[Y]);else for(K=R[Y].it.length,Z=0;Z1,this.kf&&this.addEffect(this.getKeyframeValue.bind(this)),this.kf},TextProperty.prototype.addEffect=function(B){this.effectsSequence.push(B),this.elem.addDynamicProperty(this)},TextProperty.prototype.getValue=function(B){if(!((this.elem.globalData.frameId===this.frameId||!this.effectsSequence.length)&&!B)){this.currentData.t=this.data.d.k[this.keysIndex].s.t;var R=this.currentData,F=this.keysIndex;if(this.lock){this.setCurrentData(this.currentData);return}this.lock=!0,this._mdf=!1;var D,G=this.effectsSequence.length,U=B||this.data.d.k[this.keysIndex].s;for(D=0;DR);)F+=1;return this.keysIndex!==F&&(this.keysIndex=F),this.data.d.k[this.keysIndex].s},TextProperty.prototype.buildFinalText=function(B){for(var R=[],F=0,D=B.length,G,U,W=!1;F=55296&&G<=56319?(U=B.charCodeAt(F+1),U>=56320&&U<=57343?(W||FontManager.isModifier(G,U)?(R[R.length-1]+=B.substr(F,2),W=!1):R.push(B.substr(F,2)),F+=1):R.push(B.charAt(F))):G>56319?(U=B.charCodeAt(F+1),FontManager.isZeroWidthJoiner(G,U)?(W=!0,R[R.length-1]+=B.substr(F,2),F+=1):R.push(B.charAt(F))):FontManager.isZeroWidthJoiner(G)?(R[R.length-1]+=B.charAt(F),W=!0):R.push(B.charAt(F)),F+=1;return R},TextProperty.prototype.completeTextData=function(B){B.__complete=!0;var R=this.elem.globalData.fontManager,F=this.data,D=[],G,U,W,q=0,Y,Q=F.m.g,Z=0,K=0,J=0,ie=[],ne=0,se=0,re,ae,le=R.getFontByName(B.f),ce,he=0,de=getFontProperties(le);B.fWeight=de.weight,B.fStyle=de.style,B.finalSize=B.s,B.finalText=this.buildFinalText(B.t),U=B.finalText.length,B.finalLineHeight=B.lh;var me=B.tr/1e3*B.finalSize,fe;if(B.sz)for(var ge=!0,Se=B.sz[0],Ee=B.sz[1],ve,xe;ge;){xe=this.buildFinalText(B.t),ve=0,ne=0,U=xe.length,me=B.tr/1e3*B.finalSize;var Pe=-1;for(G=0;GSe&&xe[G]!==" "?(Pe===-1?U+=1:G=Pe,ve+=B.finalLineHeight||B.finalSize*1.2,xe.splice(G,Pe===G?1:0,"\r"),Pe=-1,ne=0):(ne+=he,ne+=me);ve+=le.ascent*B.finalSize/100,this.canResize&&B.finalSize>this.minimumFontSize&&Eese?ne:se,ne=-2*me,Y="",W=!0,J+=1):Y=Te,R.chars?(ce=R.getCharData(Te,le.fStyle,R.getFontByName(B.f).fFamily),he=W?0:ce.w*B.finalSize/100):he=R.measureText(Y,B.f,B.finalSize),Te===" "?ye+=he+me:(ne+=he+me+ye,ye=0),D.push({l:he,an:he,add:Z,n:W,anIndexes:[],val:Y,line:J,animatorJustifyOffset:0}),Q==2){if(Z+=he,Y===""||Y===" "||G===U-1){for((Y===""||Y===" ")&&(Z-=he);K<=G;)D[K].an=Z,D[K].ind=q,D[K].extra=he,K+=1;q+=1,Z=0}}else if(Q==3){if(Z+=he,Y===""||G===U-1){for(Y===""&&(Z-=he);K<=G;)D[K].an=Z,D[K].ind=q,D[K].extra=he,K+=1;Z=0,q+=1}}else D[q].ind=q,D[q].extra=0,q+=1;if(B.l=D,se=ne>se?ne:se,ie.push(ne),B.sz)B.boxWidth=B.sz[0],B.justifyOffset=0;else switch(B.boxWidth=se,B.j){case 1:B.justifyOffset=-B.boxWidth;break;case 2:B.justifyOffset=-B.boxWidth/2;break;default:B.justifyOffset=0}B.lineWidths=ie;var Le=F.a,we,Ae;ae=Le.length;var Me,ke,Ne=[];for(re=0;re0?q=this.ne.v/100:Y=-this.ne.v/100,this.xe.v>0?Q=1-this.xe.v/100:Z=1+this.xe.v/100;var K=BezierFactory.getBezierEasing(q,Y,Q,Z).get,J=0,ie=this.finalS,ne=this.finalE,se=this.data.sh;if(se===2)ne===ie?J=W>=ne?1:0:J=B(0,R(.5/(ne-ie)+(W-ie)/(ne-ie),1)),J=K(J);else if(se===3)ne===ie?J=W>=ne?0:1:J=1-B(0,R(.5/(ne-ie)+(W-ie)/(ne-ie),1)),J=K(J);else if(se===4)ne===ie?J=0:(J=B(0,R(.5/(ne-ie)+(W-ie)/(ne-ie),1)),J<.5?J*=2:J=1-2*(J-.5)),J=K(J);else if(se===5){if(ne===ie)J=0;else{var re=ne-ie;W=R(B(0,W+.5-ie),ne-ie);var ae=-re/2+W,le=re/2;J=Math.sqrt(1-ae*ae/(le*le))}J=K(J)}else se===6?(ne===ie?J=0:(W=R(B(0,W+.5-ie),ne-ie),J=(1+Math.cos(Math.PI+Math.PI*2*W/(ne-ie)))/2),J=K(J)):(W>=F(ie)&&(W-ie<0?J=B(0,R(R(ne,1)-(ie-W),1)):J=B(0,R(ne-W,1))),J=K(J));if(this.sm.v!==100){var ce=this.sm.v*.01;ce===0&&(ce=1e-8);var he=.5-ce*.5;J1&&(J=1))}return J*this.a.v},getValue:function(W){this.iterateDynamicProperties(),this._mdf=W||this._mdf,this._currentTextLength=this.elem.textProperty.currentData.l.length||0,W&&this.data.r===2&&(this.e.v=this._currentTextLength);var q=this.data.r===2?1:100/this.data.totalChars,Y=this.o.v/q,Q=this.s.v/q+Y,Z=this.e.v/q+Y;if(Q>Z){var K=Q;Q=Z,Z=K}this.finalS=Q,this.finalE=Z}},extendPrototype([DynamicPropertyContainer],D);function G(U,W,q){return new D(U,W)}return{getTextSelectorProp:G}}();function TextAnimatorDataProperty(B,R,F){var D={propType:!1},G=PropertyFactory.getProp,U=R.a;this.a={r:U.r?G(B,U.r,0,degToRads,F):D,rx:U.rx?G(B,U.rx,0,degToRads,F):D,ry:U.ry?G(B,U.ry,0,degToRads,F):D,sk:U.sk?G(B,U.sk,0,degToRads,F):D,sa:U.sa?G(B,U.sa,0,degToRads,F):D,s:U.s?G(B,U.s,1,.01,F):D,a:U.a?G(B,U.a,1,0,F):D,o:U.o?G(B,U.o,0,.01,F):D,p:U.p?G(B,U.p,1,0,F):D,sw:U.sw?G(B,U.sw,0,0,F):D,sc:U.sc?G(B,U.sc,1,0,F):D,fc:U.fc?G(B,U.fc,1,0,F):D,fh:U.fh?G(B,U.fh,0,0,F):D,fs:U.fs?G(B,U.fs,0,.01,F):D,fb:U.fb?G(B,U.fb,0,.01,F):D,t:U.t?G(B,U.t,0,0,F):D},this.s=TextSelectorProp.getTextSelectorProp(B,R.s,F),this.s.t=R.s.t}function TextAnimatorProperty(B,R,F){this._isFirstFrame=!0,this._hasMaskedPath=!1,this._frameId=-1,this._textData=B,this._renderType=R,this._elem=F,this._animatorsData=createSizedArray(this._textData.a.length),this._pathData={},this._moreOptions={alignment:{}},this.renderedLetters=[],this.lettersChangedFlag=!1,this.initDynamicPropertyContainer(F)}TextAnimatorProperty.prototype.searchProperties=function(){var B,R=this._textData.a.length,F,D=PropertyFactory.getProp;for(B=0;B=ne+vt||!de?(Se=(ne+vt-re)/se.partialLength,ze=he.point[0]+(se.point[0]-he.point[0])*Se,Ve=he.point[1]+(se.point[1]-he.point[1])*Se,U.translate(-F[0]*J[Z].an*.005,-(F[1]*ye)*.01),ae=!1):de&&(re+=se.partialLength,le+=1,le>=de.length&&(le=0,ce+=1,me[ce]?de=me[ce].points:ve.v.c?(le=0,ce=0,de=me[ce].points):(re-=se.partialLength,de=null)),de&&(he=se,se=de[le],fe=se.partialLength));Ge=J[Z].an/2-J[Z].add,U.translate(-Ge,0,0)}else Ge=J[Z].an/2-J[Z].add,U.translate(-Ge,0,0),U.translate(-F[0]*J[Z].an*.005,-F[1]*ye*.01,0);for(Ae=0;AeB?this.textSpans[B].span:createNS(q?"g":"text"),ce<=B){if(Y.setAttribute("stroke-linecap","butt"),Y.setAttribute("stroke-linejoin","round"),Y.setAttribute("stroke-miterlimit","4"),this.textSpans[B].span=Y,q){var de=createNS("g");Y.appendChild(de),this.textSpans[B].childSpan=de}this.textSpans[B].span=Y,this.layerElement.appendChild(Y)}Y.style.display="inherit"}if(Q.reset(),K&&(W[B].n&&(J=-se,ie+=F.yOffset,ie+=ne?1:0,ne=!1),this.applyTextPropertiesToMatrix(F,Q,W[B].line,J,ie),J+=W[B].l||0,J+=se),q){he=this.globalData.fontManager.getCharData(F.finalText[B],D.fStyle,this.globalData.fontManager.getFontByName(F.f).fFamily);var me;if(he.t===1)me=new SVGCompElement(he.data,this.globalData,this);else{var fe=emptyShapeData;he.data&&he.data.shapes&&(fe=this.buildShapeData(he.data,F.finalSize)),me=new SVGShapeElement(fe,this.globalData,this)}if(this.textSpans[B].glyph){var ge=this.textSpans[B].glyph;this.textSpans[B].childSpan.removeChild(ge.layerElement),ge.destroy()}this.textSpans[B].glyph=me,me._debug=!0,me.prepareFrame(0),me.renderFrame(),this.textSpans[B].childSpan.appendChild(me.layerElement),he.t===1&&this.textSpans[B].childSpan.setAttribute("transform","scale("+F.finalSize/100+","+F.finalSize/100+")")}else K&&Y.setAttribute("transform","translate("+Q.props[12]+","+Q.props[13]+")"),Y.textContent=W[B].val,Y.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve")}K&&Y&&Y.setAttribute("d",Z)}for(;B=0;R-=1)(this.completeLayers||this.elements[R])&&this.elements[R].prepareFrame(B-this.layers[R].st);if(this.globalData._mdf)for(R=0;R=0;F-=1)(this.completeLayers||this.elements[F])&&(this.elements[F].prepareFrame(this.renderedFrame-this.layers[F].st),this.elements[F]._mdf&&(this._mdf=!0))}},ICompElement.prototype.renderInnerContent=function(){var B,R=this.layers.length;for(B=0;B=0;D-=1)W=R.transforms[D].transform.mProps.v.props,R.finalTransform.transform(W[0],W[1],W[2],W[3],W[4],W[5],W[6],W[7],W[8],W[9],W[10],W[11],W[12],W[13],W[14],W[15])}R._mdf=U},processSequences:function(R){var F,D=this.sequenceList.length;for(F=0;F=0;U-=1){if(K=this.searchProcessedElement(B[U]),K?R[U]=F[K-1]:B[U]._shouldRender=D,B[U].ty==="fl"||B[U].ty==="st"||B[U].ty==="gf"||B[U].ty==="gs")K?R[U].style.closed=!1:R[U]=this.createStyleElement(B[U],ne),Q.push(R[U].style);else if(B[U].ty==="gr"){if(!K)R[U]=this.createGroupElement(B[U]);else for(Y=R[U].it.length,q=0;q=0;G-=1)R[G].ty==="tr"?(W=F[G].transform,this.renderShapeTransform(B,W)):R[G].ty==="sh"||R[G].ty==="el"||R[G].ty==="rc"||R[G].ty==="sr"?this.renderPath(R[G],F[G]):R[G].ty==="fl"?this.renderFill(R[G],F[G],W):R[G].ty==="st"?this.renderStroke(R[G],F[G],W):R[G].ty==="gf"||R[G].ty==="gs"?this.renderGradientFill(R[G],F[G],W):R[G].ty==="gr"?this.renderShape(W,R[G].it,F[G].it):R[G].ty;D&&this.drawLayer()},CVShapeElement.prototype.renderStyledShape=function(B,R){if(this._isFirstFrame||R._mdf||B.transforms._mdf){var F=B.trNodes,D=R.paths,G,U,W,q=D._length;F.length=0;var Y=B.transforms.finalTransform;for(W=0;W=1?Z=.99:Z<=-1&&(Z=-.99);var K=Y*Z,J=Math.cos(Q+R.a.v)*K+W[0],ie=Math.sin(Q+R.a.v)*K+W[1];G=U.createRadialGradient(J,ie,0,W[0],W[1],Y)}var ne,se=B.g.p,re=R.g.c,ae=1;for(ne=0;neU&&Y==="xMidYMid slice"||GF&&U==="meet"||DF&&U==="slice")?this.transformCanvas.tx=(B-this.transformCanvas.w*(R/this.transformCanvas.h))/2*this.renderConfig.dpr:q==="xMax"&&(DF&&U==="slice")?this.transformCanvas.tx=(B-this.transformCanvas.w*(R/this.transformCanvas.h))*this.renderConfig.dpr:this.transformCanvas.tx=0,Y==="YMid"&&(D>F&&U==="meet"||DF&&U==="meet"||D=0;B-=1)this.elements[B]&&this.elements[B].destroy();this.elements.length=0,this.globalData.canvasContext=null,this.animationItem.container=null,this.destroyed=!0},CanvasRendererBase.prototype.renderFrame=function(B,R){if(!(this.renderedFrame===B&&this.renderConfig.clearCanvas===!0&&!R||this.destroyed||B===-1)){this.renderedFrame=B,this.globalData.frameNum=B-this.animationItem._isFirstFrame,this.globalData.frameId+=1,this.globalData._mdf=!this.renderConfig.clearCanvas||R,this.globalData.projectInterface.currentFrame=B;var F,D=this.layers.length;for(this.completeLayers||this.checkLayers(B),F=0;F=0;F-=1)(this.completeLayers||this.elements[F])&&this.elements[F].renderFrame();this.renderConfig.clearCanvas!==!0&&this.restore()}}},CanvasRendererBase.prototype.buildItem=function(B){var R=this.elements;if(!(R[B]||this.layers[B].ty===99)){var F=this.createItem(this.layers[B],this,this.globalData);R[B]=F,F.initExpressions()}},CanvasRendererBase.prototype.checkPendingElements=function(){for(;this.pendingElements.length;){var B=this.pendingElements.pop();B.checkParenting()}},CanvasRendererBase.prototype.hide=function(){this.animationItem.container.style.display="none"},CanvasRendererBase.prototype.show=function(){this.animationItem.container.style.display="block"};function CVCompElement(B,R,F){this.completeLayers=!1,this.layers=B.layers,this.pendingElements=[],this.elements=createSizedArray(this.layers.length),this.initElement(B,R,F),this.tm=B.tm?PropertyFactory.getProp(this,B.tm,0,R.frameRate,this):{_placeholder:!0}}extendPrototype([CanvasRendererBase,ICompElement,CVBaseElement],CVCompElement),CVCompElement.prototype.renderInnerContent=function(){var B=this.canvasContext;B.beginPath(),B.moveTo(0,0),B.lineTo(this.data.w,0),B.lineTo(this.data.w,this.data.h),B.lineTo(0,this.data.h),B.lineTo(0,0),B.clip();var R,F=this.layers.length;for(R=F-1;R>=0;R-=1)(this.completeLayers||this.elements[R])&&this.elements[R].renderFrame()},CVCompElement.prototype.destroy=function(){var B,R=this.layers.length;for(B=R-1;B>=0;B-=1)this.elements[B]&&this.elements[B].destroy();this.layers=null,this.elements=null},CVCompElement.prototype.createComp=function(B){return new CVCompElement(B,this.globalData,this)};function CanvasRenderer(B,R){this.animationItem=B,this.renderConfig={clearCanvas:R&&R.clearCanvas!==void 0?R.clearCanvas:!0,context:R&&R.context||null,progressiveLoad:R&&R.progressiveLoad||!1,preserveAspectRatio:R&&R.preserveAspectRatio||"xMidYMid meet",imagePreserveAspectRatio:R&&R.imagePreserveAspectRatio||"xMidYMid slice",contentVisibility:R&&R.contentVisibility||"visible",className:R&&R.className||"",id:R&&R.id||""},this.renderConfig.dpr=R&&R.dpr||1,this.animationItem.wrapper&&(this.renderConfig.dpr=R&&R.dpr||window.devicePixelRatio||1),this.renderedFrame=-1,this.globalData={frameNum:-1,_mdf:!1,renderConfig:this.renderConfig,currentGlobalAlpha:-1},this.contextData=new CVContextData,this.elements=[],this.pendingElements=[],this.transformMat=new Matrix,this.completeLayers=!1,this.rendererType="canvas"}extendPrototype([CanvasRendererBase],CanvasRenderer),CanvasRenderer.prototype.createComp=function(B){return new CVCompElement(B,this.globalData,this)};function HBaseElement(){}HBaseElement.prototype={checkBlendMode:function(){},initRendererElement:function(){this.baseElement=createTag(this.data.tg||"div"),this.data.hasMask?(this.svgElement=createNS("svg"),this.layerElement=createNS("g"),this.maskedElement=this.layerElement,this.svgElement.appendChild(this.layerElement),this.baseElement.appendChild(this.svgElement)):this.layerElement=this.baseElement,styleDiv(this.baseElement)},createContainerElements:function(){this.renderableEffectsManager=new CVEffects,this.transformedElement=this.baseElement,this.maskedElement=this.layerElement,this.data.ln&&this.layerElement.setAttribute("id",this.data.ln),this.data.cl&&this.layerElement.setAttribute("class",this.data.cl),this.data.bm!==0&&this.setBlendMode()},renderElement:function(){var R=this.transformedElement?this.transformedElement.style:{};if(this.finalTransform._matMdf){var F=this.finalTransform.mat.toCSS();R.transform=F,R.webkitTransform=F}this.finalTransform._opMdf&&(R.opacity=this.finalTransform.mProp.o.v)},renderFrame:function(){this.data.hd||this.hidden||(this.renderTransform(),this.renderRenderable(),this.renderElement(),this.renderInnerContent(),this._isFirstFrame&&(this._isFirstFrame=!1))},destroy:function(){this.layerElement=null,this.transformedElement=null,this.matteElement&&(this.matteElement=null),this.maskManager&&(this.maskManager.destroy(),this.maskManager=null)},createRenderableComponents:function(){this.maskManager=new MaskElement(this.data,this,this.globalData)},addEffects:function(){},setMatte:function(){}},HBaseElement.prototype.getBaseElement=SVGBaseElement.prototype.getBaseElement,HBaseElement.prototype.destroyBaseElement=HBaseElement.prototype.destroy,HBaseElement.prototype.buildElementParenting=BaseRenderer.prototype.buildElementParenting;function HSolidElement(B,R,F){this.initElement(B,R,F)}extendPrototype([BaseElement,TransformElement,HBaseElement,HierarchyElement,FrameElement,RenderableDOMElement],HSolidElement),HSolidElement.prototype.createContent=function(){var B;this.data.hasMask?(B=createNS("rect"),B.setAttribute("width",this.data.sw),B.setAttribute("height",this.data.sh),B.setAttribute("fill",this.data.sc),this.svgElement.setAttribute("width",this.data.sw),this.svgElement.setAttribute("height",this.data.sh)):(B=createTag("div"),B.style.width=this.data.sw+"px",B.style.height=this.data.sh+"px",B.style.backgroundColor=this.data.sc),this.layerElement.appendChild(B)};function HShapeElement(B,R,F){this.shapes=[],this.shapesData=B.shapes,this.stylesList=[],this.shapeModifiers=[],this.itemsData=[],this.processedElements=[],this.animatedContents=[],this.shapesContainer=createNS("g"),this.initElement(B,R,F),this.prevViewData=[],this.currentBBox={x:999999,y:-999999,h:0,w:0}}extendPrototype([BaseElement,TransformElement,HSolidElement,SVGShapeElement,HBaseElement,HierarchyElement,FrameElement,RenderableElement],HShapeElement),HShapeElement.prototype._renderShapeFrame=HShapeElement.prototype.renderInnerContent,HShapeElement.prototype.createContent=function(){var B;if(this.baseElement.style.fontSize=0,this.data.hasMask)this.layerElement.appendChild(this.shapesContainer),B=this.svgElement;else{B=createNS("svg");var R=this.comp.data?this.comp.data:this.globalData.compSize;B.setAttribute("width",R.w),B.setAttribute("height",R.h),B.appendChild(this.shapesContainer),this.layerElement.appendChild(B)}this.searchShapes(this.shapesData,this.itemsData,this.prevViewData,this.shapesContainer,0,[],!0),this.filterUniqueShapes(),this.shapeCont=B},HShapeElement.prototype.getTransformedPoint=function(B,R){var F,D=B.length;for(F=0;F0&&Y<1&&G[J].push(this.calculateF(Y,B,R,F,D,J))):(Q=W*W-4*q*U,Q>=0&&(Z=(-W+bmSqrt(Q))/(2*U),Z>0&&Z<1&&G[J].push(this.calculateF(Z,B,R,F,D,J)),K=(-W-bmSqrt(Q))/(2*U),K>0&&K<1&&G[J].push(this.calculateF(K,B,R,F,D,J)))));this.shapeBoundingBox.left=bmMin.apply(null,G[0]),this.shapeBoundingBox.top=bmMin.apply(null,G[1]),this.shapeBoundingBox.right=bmMax.apply(null,G[0]),this.shapeBoundingBox.bottom=bmMax.apply(null,G[1])},HShapeElement.prototype.calculateF=function(B,R,F,D,G,U){return bmPow(1-B,3)*R[U]+3*bmPow(1-B,2)*B*F[U]+3*(1-B)*bmPow(B,2)*D[U]+bmPow(B,3)*G[U]},HShapeElement.prototype.calculateBoundingBox=function(B,R){var F,D=B.length;for(F=0;FF&&(F=G)}F*=B.mult}else F=B.v*B.mult;R.x-=F,R.xMax+=F,R.y-=F,R.yMax+=F},HShapeElement.prototype.currentBoxContains=function(B){return this.currentBBox.x<=B.x&&this.currentBBox.y<=B.y&&this.currentBBox.width+this.currentBBox.x>=B.x+B.width&&this.currentBBox.height+this.currentBBox.y>=B.y+B.height},HShapeElement.prototype.renderInnerContent=function(){if(this._renderShapeFrame(),!this.hidden&&(this._isFirstFrame||this._mdf)){var B=this.tempBoundingBox,R=999999;if(B.x=R,B.xMax=-R,B.y=R,B.yMax=-R,this.calculateBoundingBox(this.itemsData,B),B.width=B.xMax=0;R-=1){var D=this.hierarchy[R].finalTransform.mProp;this.mat.translate(-D.p.v[0],-D.p.v[1],D.p.v[2]),this.mat.rotateX(-D.or.v[0]).rotateY(-D.or.v[1]).rotateZ(D.or.v[2]),this.mat.rotateX(-D.rx.v).rotateY(-D.ry.v).rotateZ(D.rz.v),this.mat.scale(1/D.s.v[0],1/D.s.v[1],1/D.s.v[2]),this.mat.translate(D.a.v[0],D.a.v[1],D.a.v[2])}if(this.p?this.mat.translate(-this.p.v[0],-this.p.v[1],this.p.v[2]):this.mat.translate(-this.px.v,-this.py.v,this.pz.v),this.a){var G;this.p?G=[this.p.v[0]-this.a.v[0],this.p.v[1]-this.a.v[1],this.p.v[2]-this.a.v[2]]:G=[this.px.v-this.a.v[0],this.py.v-this.a.v[1],this.pz.v-this.a.v[2]];var U=Math.sqrt(Math.pow(G[0],2)+Math.pow(G[1],2)+Math.pow(G[2],2)),W=[G[0]/U,G[1]/U,G[2]/U],q=Math.sqrt(W[2]*W[2]+W[0]*W[0]),Y=Math.atan2(W[1],q),Q=Math.atan2(W[0],-W[2]);this.mat.rotateY(Q).rotateX(-Y)}this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v),this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]),this.mat.translate(this.globalData.compSize.w/2,this.globalData.compSize.h/2,0),this.mat.translate(0,0,this.pe.v);var Z=!this._prevMat.equals(this.mat);if((Z||this.pe._mdf)&&this.comp.threeDElements){F=this.comp.threeDElements.length;var K,J,ie;for(R=0;R=B)return this.threeDElements[R].perspectiveElem;R+=1}return null},HybridRendererBase.prototype.createThreeDContainer=function(B,R){var F=createTag("div"),D,G;styleDiv(F);var U=createTag("div");if(styleDiv(U),R==="3d"){D=F.style,D.width=this.globalData.compSize.w+"px",D.height=this.globalData.compSize.h+"px";var W="50% 50%";D.webkitTransformOrigin=W,D.mozTransformOrigin=W,D.transformOrigin=W,G=U.style;var q="matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)";G.transform=q,G.webkitTransform=q}F.appendChild(U);var Y={container:U,perspectiveElem:F,startPos:B,endPos:B,type:R};return this.threeDElements.push(Y),Y},HybridRendererBase.prototype.build3dContainers=function(){var B,R=this.layers.length,F,D="";for(B=0;B=0;B-=1)this.resizerElem.appendChild(this.threeDElements[B].perspectiveElem)},HybridRendererBase.prototype.addTo3dContainer=function(B,R){for(var F=0,D=this.threeDElements.length;FF?(G=B/this.globalData.compSize.w,U=B/this.globalData.compSize.w,W=0,q=(R-this.globalData.compSize.h*(B/this.globalData.compSize.w))/2):(G=R/this.globalData.compSize.h,U=R/this.globalData.compSize.h,W=(B-this.globalData.compSize.w*(R/this.globalData.compSize.h))/2,q=0);var Y=this.resizerElem.style;Y.webkitTransform="matrix3d("+G+",0,0,0,0,"+U+",0,0,0,0,1,0,"+W+","+q+",0,1)",Y.transform=Y.webkitTransform},HybridRendererBase.prototype.renderFrame=SVGRenderer.prototype.renderFrame,HybridRendererBase.prototype.hide=function(){this.resizerElem.style.display="none"},HybridRendererBase.prototype.show=function(){this.resizerElem.style.display="block"},HybridRendererBase.prototype.initItems=function(){if(this.buildAllItems(),this.camera)this.camera.setup();else{var B=this.globalData.compSize.w,R=this.globalData.compSize.h,F,D=this.threeDElements.length;for(F=0;F=Q;)ve/=2,xe/=2,Pe>>>=1;return(ve+Pe)/xe};return Se.int32=function(){return ge.g(4)|0},Se.quick=function(){return ge.g(4)/4294967296},Se.double=Se,re(le(ge.S),B),(he.pass||de||function(Ee,ve,xe,Pe){return Pe&&(Pe.S&&ne(Pe,ge),Ee.state=function(){return ne(ge,{})}),xe?(R[W]=Ee,ve):Ee})(Se,fe,"global"in he?he.global:this==R,he.state)}R["seed"+W]=J;function ie(ce){var he,de=ce.length,me=this,fe=0,ge=me.i=me.j=0,Se=me.S=[];for(de||(ce=[de++]);feF){var D=F;F=R,R=D}return Math.min(Math.max(B,R),F)}function radiansToDegrees(B){return B/degToRads}var radians_to_degrees=radiansToDegrees;function degreesToRadians(B){return B*degToRads}var degrees_to_radians=radiansToDegrees,helperLengthArray=[0,0,0,0,0,0];function length(B,R){if(typeof B=="number"||B instanceof Number)return R=R||0,Math.abs(B-R);R||(R=helperLengthArray);var F,D=Math.min(B.length,R.length),G=0;for(F=0;F.5?Q/(2-G-U):Q/(G+U),G){case R:W=(F-D)/Q+(F1&&(F-=1),F<1/6?B+(R-B)*6*F:F<1/2?R:F<2/3?B+(R-B)*(2/3-F)*6:B}function hslToRgb(B){var R=B[0],F=B[1],D=B[2],G,U,W;if(F===0)G=D,W=D,U=D;else{var q=D<.5?D*(1+F):D+F-D*F,Y=2*D-q;G=hue2rgb(Y,q,R+1/3),U=hue2rgb(Y,q,R),W=hue2rgb(Y,q,R-1/3)}return[G,U,W,B[3]]}function linear(B,R,F,D,G){if((D===void 0||G===void 0)&&(D=R,G=F,R=0,F=1),F=F)return G;var W=F===R?0:(B-R)/(F-R);if(!D.length)return D+(G-D)*W;var q,Y=D.length,Q=createTypedArray("float32",Y);for(q=0;q1){for(G=0;G1?R=1:R<0&&(R=0);var W=B(R);if($bm_isInstanceOfArray(G)){var q,Y=G.length,Q=createTypedArray("float32",Y);for(q=0;qdata.k[R].t&&Bdata.k[R+1].t-B?(D=R+2,G=data.k[R+1].t):(D=R+1,G=data.k[R].t);break}D===-1&&(D=R+1,G=data.k[R].t)}var U={};return U.index=D,U.time=G/elem.comp.globalData.frameRate,U}function key(B){var R,F,D;if(!data.k.length||typeof data.k[0]=="number")throw new Error("The property has no keyframe at index "+B);B-=1,R={time:data.k[B].t/elem.comp.globalData.frameRate,value:[]};var G=Object.prototype.hasOwnProperty.call(data.k[B],"s")?data.k[B].s:data.k[B-1].e;for(D=G.length,F=0;Fre.length-1)&&(ie=re.length-1),ce=re[re.length-1-ie].t,le=ae-ce);var he,de,me;if(J==="pingpong"){var fe=Math.floor((se-ce)/le);if(fe%2!==0)return this.getValueAtTime((le-(se-ce)%le+ce)/this.comp.globalData.frameRate,0)}else if(J==="offset"){var ge=this.getValueAtTime(ce/this.comp.globalData.frameRate,0),Se=this.getValueAtTime(ae/this.comp.globalData.frameRate,0),Ee=this.getValueAtTime(((se-ce)%le+ce)/this.comp.globalData.frameRate,0),ve=Math.floor((se-ce)/le);if(this.pv.length){for(me=new Array(ge.length),de=me.length,he=0;he=ae)return this.pv;var le,ce;ne?(ie?le=Math.abs(this.elem.comp.globalData.frameRate*ie):le=Math.max(0,this.elem.data.op-ae),ce=ae+le):((!ie||ie>re.length-1)&&(ie=re.length-1),ce=re[ie].t,le=ce-ae);var he,de,me;if(J==="pingpong"){var fe=Math.floor((ae-se)/le);if(fe%2===0)return this.getValueAtTime(((ae-se)%le+ae)/this.comp.globalData.frameRate,0)}else if(J==="offset"){var ge=this.getValueAtTime(ae/this.comp.globalData.frameRate,0),Se=this.getValueAtTime(ce/this.comp.globalData.frameRate,0),Ee=this.getValueAtTime((le-(ae-se)%le+ae)/this.comp.globalData.frameRate,0),ve=Math.floor((ae-se)/le)+1;if(this.pv.length){for(me=new Array(ge.length),de=me.length,he=0;he1?(re-se)/(ie-1):1,le=0,ce=0,he;this.pv.length?he=createTypedArray("float32",this.pv.length):he=0;for(var de;lele){var fe=ce,ge=se.c&&ce===he-1?0:ce+1,Se=(le-de)/ae[ce].addedLength;me=bez.getPointInSegment(se.v[fe],se.v[ge],se.o[fe],se.i[ge],Se,ae[ce]);break}else de+=ae[ce].addedLength;ce+=1}return me||(me=se.c?[se.v[0][0],se.v[0][1]]:[se.v[se._length-1][0],se.v[se._length-1][1]]),me},vectorOnPath:function(ie,ne,se){ie==1?ie=this.v.c:ie==0&&(ie=.999);var re=this.pointOnPath(ie,ne),ae=this.pointOnPath(ie+.001,ne),le=ae[0]-re[0],ce=ae[1]-re[1],he=Math.sqrt(Math.pow(le,2)+Math.pow(ce,2));if(he===0)return[0,0];var de=se==="tangent"?[le/he,ce/he]:[-ce/he,le/he];return de},tangentOnPath:function(ie,ne){return this.vectorOnPath(ie,ne,"tangent")},normalOnPath:function(ie,ne){return this.vectorOnPath(ie,ne,"normal")},setGroupProperty:expressionHelpers.setGroupProperty,getValueAtTime:expressionHelpers.getStaticValueAtTime},extendPrototype([Z],Y),extendPrototype([Z],Q),Q.prototype.getValueAtTime=q,Q.prototype.initiateExpression=ExpressionManager.initiateExpression;var K=ShapePropertyFactory.getShapeProp;ShapePropertyFactory.getShapeProp=function(J,ie,ne,se,re){var ae=K(J,ie,ne,se,re);return ae.propertyIndex=ie.ix,ae.lock=!1,ne===3?expressionHelpers.searchExpressions(J,ie.pt,ae):ne===4&&expressionHelpers.searchExpressions(J,ie.ks,ae),ae.k&&J.addDynamicProperty(ae),ae}}function initialize$1(){addPropertyDecorator()}function addDecorator(){function B(){return this.data.d.x?(this.calculateExpression=ExpressionManager.initiateExpression.bind(this)(this.elem,this.data.d,this),this.addEffect(this.getExpressionValue.bind(this)),!0):null}TextProperty.prototype.getExpressionValue=function(R,F){var D=this.calculateExpression(F);if(R.t!==D){var G={};return this.copyData(G,R),G.t=D.toString(),G.__complete=!1,G}return R},TextProperty.prototype.searchProperty=function(){var R=this.searchKeyframes(),F=this.searchExpressions();return this.kf=R||F,this.kf},TextProperty.prototype.searchExpressions=B}function initialize(){addDecorator()}function SVGComposableEffect(){}SVGComposableEffect.prototype={createMergeNode:function B(R,F){var D=createNS("feMerge");D.setAttribute("result",R);var G,U;for(U=0;U=Q?K=ne<0?D:G:K=D+ie*Math.pow((q-B)/ne,1/F),Z[J]=K,J+=1,U+=256/(W-1);return Z.join(" ")},SVGProLevelsFilter.prototype.renderFrame=function(B){if(B||this.filterManager._mdf){var R,F=this.filterManager.effectElements;this.feFuncRComposed&&(B||F[3].p._mdf||F[4].p._mdf||F[5].p._mdf||F[6].p._mdf||F[7].p._mdf)&&(R=this.getTableValue(F[3].p.v,F[4].p.v,F[5].p.v,F[6].p.v,F[7].p.v),this.feFuncRComposed.setAttribute("tableValues",R),this.feFuncGComposed.setAttribute("tableValues",R),this.feFuncBComposed.setAttribute("tableValues",R)),this.feFuncR&&(B||F[10].p._mdf||F[11].p._mdf||F[12].p._mdf||F[13].p._mdf||F[14].p._mdf)&&(R=this.getTableValue(F[10].p.v,F[11].p.v,F[12].p.v,F[13].p.v,F[14].p.v),this.feFuncR.setAttribute("tableValues",R)),this.feFuncG&&(B||F[17].p._mdf||F[18].p._mdf||F[19].p._mdf||F[20].p._mdf||F[21].p._mdf)&&(R=this.getTableValue(F[17].p.v,F[18].p.v,F[19].p.v,F[20].p.v,F[21].p.v),this.feFuncG.setAttribute("tableValues",R)),this.feFuncB&&(B||F[24].p._mdf||F[25].p._mdf||F[26].p._mdf||F[27].p._mdf||F[28].p._mdf)&&(R=this.getTableValue(F[24].p.v,F[25].p.v,F[26].p.v,F[27].p.v,F[28].p.v),this.feFuncB.setAttribute("tableValues",R)),this.feFuncA&&(B||F[31].p._mdf||F[32].p._mdf||F[33].p._mdf||F[34].p._mdf||F[35].p._mdf)&&(R=this.getTableValue(F[31].p.v,F[32].p.v,F[33].p.v,F[34].p.v,F[35].p.v),this.feFuncA.setAttribute("tableValues",R))}};function SVGDropShadowEffect(B,R,F,D,G){var U=R.container.globalData.renderConfig.filterSize,W=R.data.fs||U;B.setAttribute("x",W.x||U.x),B.setAttribute("y",W.y||U.y),B.setAttribute("width",W.width||U.width),B.setAttribute("height",W.height||U.height),this.filterManager=R;var q=createNS("feGaussianBlur");q.setAttribute("in","SourceAlpha"),q.setAttribute("result",D+"_drop_shadow_1"),q.setAttribute("stdDeviation","0"),this.feGaussianBlur=q,B.appendChild(q);var Y=createNS("feOffset");Y.setAttribute("dx","25"),Y.setAttribute("dy","0"),Y.setAttribute("in",D+"_drop_shadow_1"),Y.setAttribute("result",D+"_drop_shadow_2"),this.feOffset=Y,B.appendChild(Y);var Q=createNS("feFlood");Q.setAttribute("flood-color","#00ff00"),Q.setAttribute("flood-opacity","1"),Q.setAttribute("result",D+"_drop_shadow_3"),this.feFlood=Q,B.appendChild(Q);var Z=createNS("feComposite");Z.setAttribute("in",D+"_drop_shadow_3"),Z.setAttribute("in2",D+"_drop_shadow_2"),Z.setAttribute("operator","in"),Z.setAttribute("result",D+"_drop_shadow_4"),B.appendChild(Z);var K=this.createMergeNode(D,[D+"_drop_shadow_4",G]);B.appendChild(K)}extendPrototype([SVGComposableEffect],SVGDropShadowEffect),SVGDropShadowEffect.prototype.renderFrame=function(B){if(B||this.filterManager._mdf){if((B||this.filterManager.effectElements[4].p._mdf)&&this.feGaussianBlur.setAttribute("stdDeviation",this.filterManager.effectElements[4].p.v/4),B||this.filterManager.effectElements[0].p._mdf){var R=this.filterManager.effectElements[0].p.v;this.feFlood.setAttribute("flood-color",rgbToHex(Math.round(R[0]*255),Math.round(R[1]*255),Math.round(R[2]*255)))}if((B||this.filterManager.effectElements[1].p._mdf)&&this.feFlood.setAttribute("flood-opacity",this.filterManager.effectElements[1].p.v/255),B||this.filterManager.effectElements[2].p._mdf||this.filterManager.effectElements[3].p._mdf){var F=this.filterManager.effectElements[3].p.v,D=(this.filterManager.effectElements[2].p.v-90)*degToRads,G=F*Math.cos(D),U=F*Math.sin(D);this.feOffset.setAttribute("dx",G),this.feOffset.setAttribute("dy",U)}}};var _svgMatteSymbols=[];function SVGMatte3Effect(B,R,F){this.initialized=!1,this.filterManager=R,this.filterElem=B,this.elem=F,F.matteElement=createNS("g"),F.matteElement.appendChild(F.layerElement),F.matteElement.appendChild(F.transformedElement),F.baseElement=F.matteElement}SVGMatte3Effect.prototype.findSymbol=function(B){for(var R=0,F=_svgMatteSymbols.length;R * Copyright OpenJS Foundation and other contributors * Released under MIT license * Based on Underscore.js 1.8.3 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors */(function(B,R){(function(){var F,D=200,G="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",U="Expected a function",W="Invalid `variable` option passed into `_.template`",q="__lodash_hash_undefined__",Y=500,Q="__lodash_placeholder__",Z=1,K=2,J=4,ie=1,ne=2,se=1,re=2,ae=4,le=8,ce=16,he=32,de=64,me=128,fe=256,ge=512,Se=30,Ee="...",ve=800,xe=16,Pe=1,ye=2,Te=3,Le=1/0,we=9007199254740991,Ae=17976931348623157e292,Me=0/0,ke=4294967295,Ne=ke-1,Ie=ke>>>1,Ge=[["ary",me],["bind",se],["bindKey",re],["curry",le],["curryRight",ce],["flip",ge],["partial",he],["partialRight",de],["rearg",fe]],ze="[object Arguments]",Ve="[object Array]",Ye="[object AsyncFunction]",et="[object Boolean]",Je="[object Date]",st="[object DOMException]",pt="[object Error]",dt="[object Function]",yt="[object GeneratorFunction]",Fe="[object Map]",_e="[object Number]",je="[object Null]",Ze="[object Object]",De="[object Promise]",Oe="[object Proxy]",Xe="[object RegExp]",tt="[object Set]",nt="[object String]",Ke="[object Symbol]",ct="[object Undefined]",ut="[object WeakMap]",ht="[object WeakSet]",vt="[object ArrayBuffer]",xt="[object DataView]",gt="[object Float32Array]",Pt="[object Float64Array]",kt="[object Int8Array]",Yt="[object Int16Array]",fi="[object Int32Array]",Jt="[object Uint8Array]",ii="[object Uint8ClampedArray]",ui="[object Uint16Array]",Qt="[object Uint32Array]",Ai=/\b__p \+= '';/g,Qi=/\b(__p \+=) '' \+/g,In=/(__e\(.*?\)|\b__t\)) \+\n'';/g,cn=/&(?:amp|lt|gt|quot|#39);/g,_t=/[&<>"']/g,oi=RegExp(cn.source),$i=RegExp(_t.source),Ui=/<%-([\s\S]+?)%>/g,Nr=/<%([\s\S]+?)%>/g,On=/<%=([\s\S]+?)%>/g,Jn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Lr=/^\w*$/,Vn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,kr=/[\\^$.*+?()[\]{}|]/g,rs=RegExp(kr.source),mr=/^\s+/,Gn=/\s/,$n=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,er=/\{\n\/\* \[wrapped with (.+)\] \*/,Nn=/,? & /,hn=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Sn=/[()=,{}\[\]\/\s]/,Aa=/\\(\\)?/g,Us=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,ys=/\w*$/,xn=/^[-+]0x[0-9a-f]+$/i,Ln=/^0b[01]+$/i,kn=/^\[object .+?Constructor\]$/,Hs=/^0o[0-7]+$/i,ei=/^(?:0|[1-9]\d*)$/,Fi=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Ei=/($^)/,Ni=/['\n\r\u2028\u2029\\]/g,mi="\\ud800-\\udfff",Li="\\u0300-\\u036f",fn="\\ufe20-\\ufe2f",Rn="\\u20d0-\\u20ff",zn=Li+fn+Rn,Rr="\\u2700-\\u27bf",gr="a-z\\xdf-\\xf6\\xf8-\\xff",yo="\\xac\\xb1\\xd7\\xf7",xl="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",tr="\\u2000-\\u206f",Al=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",vo="A-Z\\xc0-\\xd6\\xd8-\\xde",Ea="\\ufe0e\\ufe0f",wa=yo+xl+tr+Al,Ws="['\u2019]",Pa="["+mi+"]",vs="["+wa+"]",bs="["+zn+"]",Ss="\\d+",bo="["+Rr+"]",Ta="["+gr+"]",Ca="[^"+mi+wa+Ss+Rr+gr+vo+"]",qs="\\ud83c[\\udffb-\\udfff]",xs="(?:"+bs+"|"+qs+")",So="[^"+mi+"]",Xs="(?:\\ud83c[\\udde6-\\uddff]){2}",As="[\\ud800-\\udbff][\\udc00-\\udfff]",yr="["+vo+"]",Fr="\\u200d",Ma="(?:"+Ta+"|"+Ca+")",xo="(?:"+yr+"|"+Ca+")",Ao="(?:"+Ws+"(?:d|ll|m|re|s|t|ve))?",_a="(?:"+Ws+"(?:D|LL|M|RE|S|T|VE))?",Ia=xs+"?",Ys="["+Ea+"]?",Eo="(?:"+Fr+"(?:"+[So,Xs,As].join("|")+")"+Ys+Ia+")*",wo="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",El="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Po=Ys+Ia+Eo,Es="(?:"+[bo,Xs,As].join("|")+")"+Po,wl="(?:"+[So+bs+"?",bs,Xs,As,Pa].join("|")+")",ss=RegExp(Ws,"g"),vr=RegExp(bs,"g"),Na=RegExp(qs+"(?="+qs+")|"+wl+Po,"g"),js=RegExp([yr+"?"+Ta+"+"+Ao+"(?="+[vs,yr,"$"].join("|")+")",xo+"+"+_a+"(?="+[vs,yr+Ma,"$"].join("|")+")",yr+"?"+Ma+"+"+Ao,yr+"+"+_a,El,wo,Ss,Es].join("|"),"g"),Qs=RegExp("["+Fr+mi+zn+Ea+"]"),Pl=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Tl=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Cl=-1,vi={};vi[gt]=vi[Pt]=vi[kt]=vi[Yt]=vi[fi]=vi[Jt]=vi[ii]=vi[ui]=vi[Qt]=!0,vi[ze]=vi[Ve]=vi[vt]=vi[et]=vi[xt]=vi[Je]=vi[pt]=vi[dt]=vi[Fe]=vi[_e]=vi[Ze]=vi[Xe]=vi[tt]=vi[nt]=vi[ut]=!1;var Vt={};Vt[ze]=Vt[Ve]=Vt[vt]=Vt[xt]=Vt[et]=Vt[Je]=Vt[gt]=Vt[Pt]=Vt[kt]=Vt[Yt]=Vt[fi]=Vt[Fe]=Vt[_e]=Vt[Ze]=Vt[Xe]=Vt[tt]=Vt[nt]=Vt[Ke]=Vt[Jt]=Vt[ii]=Vt[ui]=Vt[Qt]=!0,Vt[pt]=Vt[dt]=Vt[ut]=!1;var bi={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},Ks={"&":"&","<":"<",">":">",'"':""","'":"'"},Br={"&":"&","<":"<",">":">",""":'"',"'":"'"},La={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},To=parseFloat,Co=parseInt,Un=typeof commonjsGlobal=="object"&&commonjsGlobal&&commonjsGlobal.Object===Object&&commonjsGlobal,ka=typeof self=="object"&&self&&self.Object===Object&&self,Bi=Un||ka||Function("return this")(),Pi=R&&!R.nodeType&&R,Fn=Pi&&!0&&B&&!B.nodeType&&B,dn=Fn&&Fn.exports===Pi,Dr=dn&&Un.process,Hi=function(){try{var ft=Fn&&Fn.require&&Fn.require("util").types;return ft||Dr&&Dr.binding&&Dr.binding("util")}catch{}}(),en=Hi&&Hi.isArrayBuffer,Ra=Hi&&Hi.isDate,Fa=Hi&&Hi.isMap,Ba=Hi&&Hi.isRegExp,as=Hi&&Hi.isSet,Da=Hi&&Hi.isTypedArray;function tn(ft,Qe,it){switch(it.length){case 0:return ft.call(Qe);case 1:return ft.call(Qe,it[0]);case 2:return ft.call(Qe,it[0],it[1]);case 3:return ft.call(Qe,it[0],it[1],it[2])}return ft.apply(Qe,it)}function pn(ft,Qe,it,lt){for(var At=-1,It=ft==null?0:ft.length;++At-1}function Lt(ft,Qe,it){for(var lt=-1,At=ft==null?0:ft.length;++lt-1;);return it}function Il(ft,Qe){for(var it=ft.length;it--&&Oi(Qe,ft[it],0)>-1;);return it}function Yu(ft,Qe){for(var it=ft.length,lt=0;it--;)ft[it]===Qe&&++lt;return lt}var dh=Va(bi),ph=Va(Ks);function mh(ft){return"\\"+La[ft]}function gh(ft,Qe){return ft==null?F:ft[Qe]}function Js(ft){return Qs.test(ft)}function $s(ft){return Pl.test(ft)}function yh(ft){for(var Qe,it=[];!(Qe=ft.next()).done;)it.push(Qe.value);return it}function Nl(ft){var Qe=-1,it=Array(ft.size);return ft.forEach(function(lt,At){it[++Qe]=[At,lt]}),it}function _o(ft,Qe){return function(it){return ft(Qe(it))}}function Vr(ft,Qe){for(var it=-1,lt=ft.length,At=0,It=[];++it-1}function Hh(ue,te){var oe=this.__data__,pe=hs(oe,ue);return pe<0?(++this.size,oe.push([ue,te])):oe[pe][1]=te,this}Wr.prototype.clear=qr,Wr.prototype.delete=Gh,Wr.prototype.get=zh,Wr.prototype.has=Uh,Wr.prototype.set=Hh;function Xr(ue){var te=-1,oe=ue==null?0:ue.length;for(this.clear();++te=te?ue:te)),ue}function qi(ue,te,oe,pe,be,Ce){var Re,Be=te&Z,Ue=te&K,$e=te&J;if(oe&&(Re=be?oe(ue,pe,be,Ce):oe(ue)),Re!==F)return Re;if(!wi(ue))return ue;var at=zt(ue);if(at){if(Re=Mc(ue),!Be)return bn(ue,Re)}else{var ot=Zi(ue),mt=ot==dt||ot==yt;if(ms(ue))return Jl(ue,Be);if(ot==Ze||ot==ze||mt&&!be){if(Re=Ue||mt?{}:_c(ue),!Be)return Ue?hf(ue,nc(Re,ue)):wr(ue,ic(Re,ue))}else{if(!Vt[ot])return be?ue:{};Re=Ic(ue,ot,Be)}}Ce||(Ce=new ar);var St=Ce.get(ue);if(St)return St;Ce.set(ue,Re),Jc(ue)?ue.forEach(function(Ct){Re.add(qi(Ct,te,oe,Ct,ue,Ce))}):Mi(ue)&&ue.forEach(function(Ct,Mt){Re.set(Mt,qi(Ct,te,oe,Mt,ue,Ce))});var Et=$e?Ue?oo:cr:Ue?ci:ji,Tt=at?F:Et(ue);return He(Tt||ue,function(Ct,Mt){Tt&&(Mt=Ct,Ct=ue[Mt]),ks(Re,Mt,qi(Ct,te,oe,Mt,ue,Ce))}),Re}function qn(ue){var te=ji(ue);return function(oe){return rc(oe,ue,te)}}function rc(ue,te,oe){var pe=oe.length;if(ue==null)return!pe;for(ue=qt(ue);pe--;){var be=oe[pe],Ce=te[be],Re=ue[be];if(Re===F&&!(be in ue)||!Ce(Re))return!1}return!0}function Ol(ue,te,oe){if(typeof ue!="function")throw new Wn(U);return ya(function(){ue.apply(F,oe)},te)}function oa(ue,te,oe,pe){var be=-1,Ce=Bt,Re=!0,Be=ue.length,Ue=[],$e=te.length;if(!Be)return Ue;oe&&(te=Ft(te,Pn(oe))),pe?(Ce=Lt,Re=!1):te.length>=D&&(Ce=ws,Re=!1,te=new Ns(te));e:for(;++bebe?0:be+oe),pe=pe===F||pe>be?be:Ut(pe),pe<0&&(pe+=be),pe=oe>pe?0:Kt(pe);oe0&&oe(Be)?te>1?Xi(Be,te-1,oe,pe,be):Rt(be,Be):pe||(be[be.length]=Be)}return be}var Gi=iu(),Go=iu(!0);function ur(ue,te){return ue&&Gi(ue,te,ji)}function Yn(ue,te){return ue&&Go(ue,te,ji)}function la(ue,te){return wt(te,function(oe){return ns(ue[oe])})}function xr(ue,te){te=Er(te,ue);for(var oe=0,pe=te.length;ue!=null&&oete}function Vl(ue,te){return ue!=null&&li.call(ue,te)}function ef(ue,te){return ue!=null&&te in qt(ue)}function tf(ue,te,oe){return ue>=ri(te,oe)&&ue=120&&at.length>=120)?new Ns(Re&&at):F}at=ue[0];var ot=-1,mt=Be[0];e:for(;++ot-1;)Be!==ue&&qa.call(Be,Ue,1),qa.call(ue,Ue,1);return ue}function qo(ue,te){for(var oe=ue?te.length:0,pe=oe-1;oe--;){var be=te[oe];if(oe==pe||be!==Ce){var Ce=be;is(be)?qa.call(ue,be,1):Ar(ue,be)}}return ue}function Xo(ue,te){return ue+Ts(Ju()*(te-ue+1))}function Ql(ue,te,oe,pe){for(var be=-1,Ce=Vi(Fo((te-ue)/(oe||1)),0),Re=it(Ce);Ce--;)Re[pe?Ce:++be]=ue,ue+=oe;return Re}function Kl(ue,te){var oe="";if(!ue||te<1||te>we)return oe;do te%2&&(oe+=ue),te=Ts(te/2),te&&(ue+=ue);while(te);return oe}function Zt(ue,te){return Ds(Lc(ue,te,_n),ue+"")}function $t(ue){return Bl(Sa(ue))}function of(ue,te){var oe=Sa(ue);return co(oe,Qr(te,0,oe.length))}function Za(ue,te,oe,pe){if(!wi(ue))return ue;te=Er(te,ue);for(var be=-1,Ce=te.length,Re=Ce-1,Be=ue;Be!=null&&++bebe?0:be+te),oe=oe>be?be:oe,oe<0&&(oe+=be),be=te>oe?0:oe-te>>>0,te>>>=0;for(var Ce=it(be);++pe>>1,Re=ue[Ce];Re!==null&&!ln(Re)&&(oe?Re<=te:Re=D){var $e=te?null:ru(ue);if($e)return ir($e);Re=!1,be=ws,Ue=new Ns}else Ue=te?[]:Be;e:for(;++pe=pe?ue:jn(ue,te,oe)}var Zr=Ro||function(ue){return Bi.clearTimeout(ue)};function Jl(ue,te){if(te)return ue.slice();var oe=ue.length,pe=Ua?Ua(oe):new ue.constructor(oe);return ue.copy(pe),pe}function $o(ue){var te=new ue.constructor(ue.byteLength);return new rr(te).set(new rr(ue)),te}function $l(ue,te){var oe=te?$o(ue.buffer):ue.buffer;return new ue.constructor(oe,ue.byteOffset,ue.byteLength)}function uf(ue){var te=new ue.constructor(ue.source,ys.exec(ue));return te.lastIndex=ue.lastIndex,te}function cf(ue){return cs?qt(cs.call(ue)):{}}function gc(ue,te){var oe=te?$o(ue.buffer):ue.buffer;return new ue.constructor(oe,ue.byteOffset,ue.length)}function eu(ue,te){if(ue!==te){var oe=ue!==F,pe=ue===null,be=ue===ue,Ce=ln(ue),Re=te!==F,Be=te===null,Ue=te===te,$e=ln(te);if(!Be&&!$e&&!Ce&&ue>te||Ce&&Re&&Ue&&!Be&&!$e||pe&&Re&&Ue||!oe&&Ue||!be)return 1;if(!pe&&!Ce&&!$e&&ue=Be)return Ue;var $e=oe[pe];return Ue*($e=="desc"?-1:1)}}return ue.index-te.index}function vc(ue,te,oe,pe){for(var be=-1,Ce=ue.length,Re=oe.length,Be=-1,Ue=te.length,$e=Vi(Ce-Re,0),at=it(Ue+$e),ot=!pe;++Be1?oe[be-1]:F,Re=be>2?oe[2]:F;for(Ce=ue.length>3&&typeof Ce=="function"?(be--,Ce):F,Re&&Ci(oe[0],oe[1],Re)&&(Ce=be<3?F:Ce,be=1),te=qt(te);++pe-1?be[Ce?te[Re]:Re]:F}}function nu(ue){return $r(function(te){var oe=te.length,pe=oe,be=vn.prototype.thru;for(ue&&te.reverse();pe--;){var Ce=te[pe];if(typeof Ce!="function")throw new Wn(U);if(be&&!Re&&pa(Ce)=="wrapper")var Re=new vn([],!0)}for(pe=Re?pe:oe;++pe1&&Nt.reverse(),at&&UeBe))return!1;var $e=Ce.get(ue),at=Ce.get(te);if($e&&at)return $e==te&&at==ue;var ot=-1,mt=!0,St=oe&ne?new Ns:F;for(Ce.set(ue,te),Ce.set(te,ue);++ot1?"& ":"")+te[pe],te=te.join(oe>2?", ":" "),ue.replace($n,`{ /* [wrapped with `+te+`] */ `)}function mf(ue){return zt(ue)||Gs(ue)||!!(Xa&&ue&&ue[Xa])}function is(ue,te){var oe=typeof ue;return te=te==null?we:te,!!te&&(oe=="number"||oe!="symbol"&&ei.test(ue))&&ue>-1&&ue%1==0&&ue0){if(++te>=ve)return arguments[0]}else te=0;return ue.apply(F,arguments)}}function co(ue,te){var oe=-1,pe=ue.length,be=pe-1;for(te=te===F?pe:te;++oe1?ue[te-1]:F;return oe=typeof oe=="function"?(ue.pop(),oe):F,ol(ue,oe)});function Hc(ue){var te=qe(ue);return te.__chain__=!0,te}function Wc(ue,te){return te(ue),ue}function ll(ue,te){return te(ue)}var ul=$r(function(ue){var te=ue.length,oe=te?ue[0]:0,pe=this.__wrapped__,be=function(Ce){return lr(Ce,ue)};return te>1||this.__actions__.length||!(pe instanceof Ht)||!is(oe)?this.thru(be):(pe=pe.slice(oe,+oe+(te?1:0)),pe.__actions__.push({func:ll,args:[be],thisArg:F}),new vn(pe,this.__chain__).thru(function(Ce){return te&&!Ce.length&&Ce.push(F),Ce}))});function md(){return Hc(this)}function gd(){return new vn(this.value(),this.__chain__)}function yd(){this.__values__===F&&(this.__values__=$c(this.value()));var ue=this.__index__>=this.__values__.length,te=ue?F:this.__values__[this.__index__++];return{done:ue,value:te}}function vd(){return this}function bd(ue){for(var te,oe=this;oe instanceof Hr;){var pe=Rc(oe);pe.__index__=0,pe.__values__=F,te?be.__wrapped__=pe:te=pe;var be=pe;oe=oe.__wrapped__}return be.__wrapped__=ue,te}function Sd(){var ue=this.__wrapped__;if(ue instanceof Ht){var te=ue;return this.__actions__.length&&(te=new Ht(this)),te=te.reverse(),te.__actions__.push({func:ll,args:[gu],thisArg:F}),new vn(te,this.__chain__)}return this.thru(gu)}function xd(){return $a(this.__wrapped__,this.__actions__)}var Ad=tl(function(ue,te,oe){li.call(ue,oe)?++ue[oe]:jr(ue,oe,1)});function Ed(ue,te,oe){var pe=zt(ue)?bt:sc;return oe&&Ci(ue,te,oe)&&(te=F),pe(ue,Dt(te,3))}function wd(ue,te){var oe=zt(ue)?wt:ac;return oe(ue,Dt(te,3))}var Pd=xc(Bc),Td=xc(pu);function Cd(ue,te){return Xi(cl(ue,te),1)}function Md(ue,te){return Xi(cl(ue,te),Le)}function _d(ue,te,oe){return oe=oe===F?1:Ut(oe),Xi(cl(ue,te),oe)}function qc(ue,te){var oe=zt(ue)?He:Xn;return oe(ue,Dt(te,3))}function bu(ue,te){var oe=zt(ue)?rt:Kr;return oe(ue,Dt(te,3))}var Xc=tl(function(ue,te,oe){li.call(ue,oe)?ue[oe].push(te):jr(ue,oe,[te])});function Id(ue,te,oe,pe){ue=Cn(ue)?ue:Sa(ue),oe=oe&&!pe?Ut(oe):0;var be=ue.length;return oe<0&&(oe=Vi(be+oe,0)),po(ue)?oe<=be&&ue.indexOf(te,oe)>-1:!!be&&Oi(ue,te,oe)>-1}var Nd=Zt(function(ue,te,oe){var pe=-1,be=typeof te=="function",Ce=Cn(ue)?it(ue.length):[];return Xn(ue,function(Re){Ce[++pe]=be?tn(te,Re,oe):Ya(Re,te,oe)}),Ce}),Ld=tl(function(ue,te,oe){jr(ue,oe,te)});function cl(ue,te){var oe=zt(ue)?Ft:Ho;return oe(ue,Dt(te,3))}function hl(ue,te,oe,pe){return ue==null?[]:(zt(te)||(te=te==null?[]:[te]),oe=pe?F:oe,zt(oe)||(oe=oe==null?[]:[oe]),Yl(ue,te,oe))}var kd=tl(function(ue,te,oe){ue[oe?0:1].push(te)},function(){return[[],[]]});function Rd(ue,te,oe){var pe=zt(ue)?ni:Mo,be=arguments.length<3;return pe(ue,Dt(te,4),oe,be,Xn)}function Fd(ue,te,oe){var pe=zt(ue)?_i:Mo,be=arguments.length<3;return pe(ue,Dt(te,4),oe,be,Kr)}function Bd(ue,te){var oe=zt(ue)?wt:ac;return oe(ue,Vs(Dt(te,3)))}function Dd(ue){var te=zt(ue)?Bl:$t;return te(ue)}function Od(ue,te,oe){(oe?Ci(ue,te,oe):te===F)?te=1:te=Ut(te);var pe=zt(ue)?tc:of;return pe(ue,te)}function Vd(ue){var te=zt(ue)?$h:lf;return te(ue)}function Gd(ue){if(ue==null)return 0;if(Cn(ue))return po(ue)?ea(ue):ue.length;var te=Zi(ue);return te==Fe||te==tt?ue.size:Uo(ue).length}function zd(ue,te,oe){var pe=zt(ue)?Di:Qn;return oe&&Ci(ue,te,oe)&&(te=F),pe(ue,Dt(te,3))}var Ud=Zt(function(ue,te){if(ue==null)return[];var oe=te.length;return oe>1&&Ci(ue,te[0],te[1])?te=[]:oe>2&&Ci(te[0],te[1],te[2])&&(te=[te[0]]),Yl(ue,Xi(te,1),[])}),fl=Th||function(){return Bi.Date.now()};function dl(ue,te){if(typeof te!="function")throw new Wn(U);return ue=Ut(ue),function(){if(--ue<1)return te.apply(this,arguments)}}function Yc(ue,te,oe){return te=oe?F:te,te=ue&&te==null?ue.length:te,Tr(ue,me,F,F,F,F,te)}function Su(ue,te){var oe;if(typeof te!="function")throw new Wn(U);return ue=Ut(ue),function(){return--ue>0&&(oe=te.apply(this,arguments)),ue<=1&&(te=F),oe}}var pl=Zt(function(ue,te,oe){var pe=se;if(oe.length){var be=Vr(oe,es(pl));pe|=he}return Tr(ue,pe,te,oe,be)}),ml=Zt(function(ue,te,oe){var pe=se|re;if(oe.length){var be=Vr(oe,es(ml));pe|=he}return Tr(te,pe,ue,oe,be)});function xu(ue,te,oe){te=oe?F:te;var pe=Tr(ue,le,F,F,F,F,F,te);return pe.placeholder=xu.placeholder,pe}function Au(ue,te,oe){te=oe?F:te;var pe=Tr(ue,ce,F,F,F,F,F,te);return pe.placeholder=Au.placeholder,pe}function Eu(ue,te,oe){var pe,be,Ce,Re,Be,Ue,$e=0,at=!1,ot=!1,mt=!0;if(typeof ue!="function")throw new Wn(U);te=Bn(te)||0,wi(oe)&&(at=!!oe.leading,ot="maxWait"in oe,Ce=ot?Vi(Bn(oe.maxWait)||0,te):Ce,mt="trailing"in oe?!!oe.trailing:mt);function St(ai){var hi=pe,zi=be;return pe=be=F,$e=ai,Re=ue.apply(zi,hi),Re}function Et(ai){return $e=ai,Be=ya(Mt,te),at?St(ai):Re}function Tt(ai){var hi=ai-Ue,zi=ai-$e,Ir=te-hi;return ot?ri(Ir,Ce-zi):Ir}function Ct(ai){var hi=ai-Ue,zi=ai-$e;return Ue===F||hi>=te||hi<0||ot&&zi>=Ce}function Mt(){var ai=fl();if(Ct(ai))return Nt(ai);Be=ya(Mt,Tt(ai))}function Nt(ai){return Be=F,mt&&pe?St(ai):(pe=be=F,Re)}function Wt(){Be!==F&&Zr(Be),$e=0,pe=Ue=be=Be=F}function Si(){return Be===F?Re:Nt(fl())}function xi(){var ai=fl(),hi=Ct(ai);if(pe=arguments,be=this,Ue=ai,hi){if(Be===F)return Et(Ue);if(ot)return Zr(Be),Be=ya(Mt,te),St(Ue)}return Be===F&&(Be=ya(Mt,te)),Re}return xi.cancel=Wt,xi.flush=Si,xi}var jc=Zt(function(ue,te){return Ol(ue,1,te)}),Hd=Zt(function(ue,te,oe){return Ol(ue,Bn(te)||0,oe)});function Wd(ue){return Tr(ue,ge)}function gl(ue,te){if(typeof ue!="function"||te!=null&&typeof te!="function")throw new Wn(U);var oe=function(){var pe=arguments,be=te?te.apply(this,pe):pe[0],Ce=oe.cache;if(Ce.has(be))return Ce.get(be);var Re=ue.apply(this,pe);return oe.cache=Ce.set(be,Re)||Ce,Re};return oe.cache=new(gl.Cache||Xr),oe}gl.Cache=Xr;function Vs(ue){if(typeof ue!="function")throw new Wn(U);return function(){var te=arguments;switch(te.length){case 0:return!ue.call(this);case 1:return!ue.call(this,te[0]);case 2:return!ue.call(this,te[0],te[1]);case 3:return!ue.call(this,te[0],te[1],te[2])}return!ue.apply(this,te)}}function yl(ue){return Su(2,ue)}var qd=ds(function(ue,te){te=te.length==1&&zt(te[0])?Ft(te[0],Pn(Dt())):Ft(Xi(te,1),Pn(Dt()));var oe=te.length;return Zt(function(pe){for(var be=-1,Ce=ri(pe.length,oe);++be=te}),Gs=ua(function(){return arguments}())?ua:function(ue){return Xt(ue)&&li.call(ue,"callee")&&!kl.call(ue,"callee")},zt=it.isArray,jt=en?Pn(en):oc;function Cn(ue){return ue!=null&&fo(ue.length)&&!ns(ue)}function si(ue){return Xt(ue)&&Cn(ue)}function Ii(ue){return ue===!0||ue===!1||Xt(ue)&&sn(ue)==et}var ms=Rl||go,gs=Ra?Pn(Ra):nf;function sp(ue){return Xt(ue)&&ue.nodeType===1&&!va(ue)}function ap(ue){if(ue==null)return!0;if(Cn(ue)&&(zt(ue)||typeof ue=="string"||typeof ue.splice=="function"||ms(ue)||Yi(ue)||Gs(ue)))return!ue.length;var te=Zi(ue);if(te==Fe||te==tt)return!ue.size;if(uo(ue))return!Uo(ue).length;for(var oe in ue)if(li.call(ue,oe))return!1;return!0}function lp(ue,te){return ja(ue,te)}function up(ue,te,oe){oe=typeof oe=="function"?oe:F;var pe=oe?oe(ue,te):F;return pe===F?ja(ue,te,F,oe):!!pe}function Pu(ue){if(!Xt(ue))return!1;var te=sn(ue);return te==pt||te==st||typeof ue.message=="string"&&typeof ue.name=="string"&&!va(ue)}function Tu(ue){return typeof ue=="number"&&Ku(ue)}function ns(ue){if(!wi(ue))return!1;var te=sn(ue);return te==dt||te==yt||te==Ye||te==Oe}function Mr(ue){return typeof ue=="number"&&ue==Ut(ue)}function fo(ue){return typeof ue=="number"&&ue>-1&&ue%1==0&&ue<=we}function wi(ue){var te=typeof ue;return ue!=null&&(te=="object"||te=="function")}function Xt(ue){return ue!=null&&typeof ue=="object"}var Mi=Fa?Pn(Fa):rf;function Kc(ue,te){return ue===te||Ul(ue,te,ma(te))}function cp(ue,te,oe){return oe=typeof oe=="function"?oe:F,Ul(ue,te,ma(te),oe)}function hp(ue){return Zc(ue)&&ue!=+ue}function fp(ue){if(gf(ue))throw new At(G);return zo(ue)}function dp(ue){return ue===null}function pp(ue){return ue==null}function Zc(ue){return typeof ue=="number"||Xt(ue)&&sn(ue)==_e}function va(ue){if(!Xt(ue)||sn(ue)!=Ze)return!1;var te=Ha(ue);if(te===null)return!0;var oe=li.call(te,"constructor")&&te.constructor;return typeof oe=="function"&&oe instanceof oe&&Ps.call(oe)==Lo}var zs=Ba?Pn(Ba):lc;function Cu(ue){return Mr(ue)&&ue>=-we&&ue<=we}var Jc=as?Pn(as):sf;function po(ue){return typeof ue=="string"||!zt(ue)&&Xt(ue)&&sn(ue)==nt}function ln(ue){return typeof ue=="symbol"||Xt(ue)&&sn(ue)==Ke}var Yi=Da?Pn(Da):af;function ba(ue){return ue===F}function mp(ue){return Xt(ue)&&Zi(ue)==ut}function gp(ue){return Xt(ue)&&sn(ue)==ht}var yp=so(Wl),vp=so(function(ue,te){return ue<=te});function $c(ue){if(!ue)return[];if(Cn(ue))return po(ue)?nn(ue):bn(ue);if(na&&ue[na])return yh(ue[na]());var te=Zi(ue),oe=te==Fe?Nl:te==tt?ir:Sa;return oe(ue)}function _r(ue){if(!ue)return ue===0?ue:0;if(ue=Bn(ue),ue===Le||ue===-Le){var te=ue<0?-1:1;return te*Ae}return ue===ue?ue:0}function Ut(ue){var te=_r(ue),oe=te%1;return te===te?oe?te-oe:te:0}function Kt(ue){return ue?Qr(Ut(ue),0,ke):0}function Bn(ue){if(typeof ue=="number")return ue;if(ln(ue))return Me;if(wi(ue)){var te=typeof ue.valueOf=="function"?ue.valueOf():ue;ue=wi(te)?te+"":te}if(typeof ue!="string")return ue===0?ue:+ue;ue=Xu(ue);var oe=Ln.test(ue);return oe||Hs.test(ue)?Co(ue.slice(2),oe?2:8):xn.test(ue)?Me:+ue}function Dn(ue){return Ti(ue,ci(ue))}function eh(ue){return ue?Qr(Ut(ue),-we,we):ue===0?ue:0}function di(ue){return ue==null?"":Tn(ue)}var pi=Jr(function(ue,te){if(uo(te)||Cn(te)){Ti(te,ji(te),ue);return}for(var oe in te)li.call(te,oe)&&ks(ue,oe,te[oe])}),th=Jr(function(ue,te){Ti(te,ci(te),ue)}),mo=Jr(function(ue,te,oe,pe){Ti(te,ci(te),ue,pe)}),bl=Jr(function(ue,te,oe,pe){Ti(te,ji(te),ue,pe)}),bp=$r(lr);function Sp(ue,te){var oe=We(ue);return te==null?oe:ic(oe,te)}var xp=Zt(function(ue,te){ue=qt(ue);var oe=-1,pe=te.length,be=pe>2?te[2]:F;for(be&&Ci(te[0],te[1],be)&&(pe=1);++oe1),Ce}),Ti(ue,oo(ue),oe),pe&&(oe=qi(oe,Z|K|J,wc));for(var be=te.length;be--;)Ar(oe,te[be]);return oe});function Fp(ue,te){return rh(ue,Vs(Dt(te)))}var Bp=$r(function(ue,te){return ue==null?{}:hc(ue,te)});function rh(ue,te){if(ue==null)return{};var oe=Ft(oo(ue),function(pe){return[pe]});return te=Dt(te),fc(ue,oe,function(pe,be){return te(pe,be[0])})}function sh(ue,te,oe){te=Er(te,ue);var pe=-1,be=te.length;for(be||(be=1,ue=F);++pete){var pe=ue;ue=te,te=pe}if(oe||ue%1||te%1){var be=Ju();return ri(ue+be*(te-ue+To("1e-"+((be+"").length-1))),te)}return Xo(ue,te)}var qp=Fs(function(ue,te,oe){return te=te.toLowerCase(),ue+(oe?lh(te):te)});function lh(ue){return Ru(di(ue).toLowerCase())}function ku(ue){return ue=di(ue),ue&&ue.replace(Fi,dh).replace(vr,"")}function uh(ue,te,oe){ue=di(ue),te=Tn(te);var pe=ue.length;oe=oe===F?pe:Qr(Ut(oe),0,pe);var be=oe;return oe-=te.length,oe>=0&&ue.slice(oe,be)==te}function Xp(ue){return ue=di(ue),ue&&$i.test(ue)?ue.replace(_t,ph):ue}function Yp(ue){return ue=di(ue),ue&&rs.test(ue)?ue.replace(kr,"\\$&"):ue}var jp=Fs(function(ue,te,oe){return ue+(oe?"-":"")+te.toLowerCase()}),Qp=Fs(function(ue,te,oe){return ue+(oe?" ":"")+te.toLowerCase()}),Kp=Sc("toLowerCase");function Zp(ue,te,oe){ue=di(ue),te=Ut(te);var pe=te?ea(ue):0;if(!te||pe>=te)return ue;var be=(te-pe)/2;return da(Ts(be),oe)+ue+da(Fo(be),oe)}function Jp(ue,te,oe){ue=di(ue),te=Ut(te);var pe=te?ea(ue):0;return te&&pe>>0,oe?(ue=di(ue),ue&&(typeof te=="string"||te!=null&&!zs(te))&&(te=Tn(te),!te&&Js(ue))?ps(nn(ue),0,oe):ue.split(te,oe)):[]}var am=Fs(function(ue,te,oe){return ue+(oe?" ":"")+Ru(te)});function om(ue,te,oe){return ue=di(ue),oe=oe==null?0:Qr(Ut(oe),0,ue.length),te=Tn(te),ue.slice(oe,oe+te.length)==te}function lm(ue,te,oe){var pe=qe.templateSettings;oe&&Ci(ue,te,oe)&&(te=F),ue=di(ue),te=mo({},te,pe,Cr);var be=mo({},te.imports,pe.imports,Cr),Ce=ji(be),Re=gn(be,Ce),Be,Ue,$e=0,at=te.interpolate||Ei,ot="__p += '",mt=gi((te.escape||Ei).source+"|"+at.source+"|"+(at===On?Us:Ei).source+"|"+(te.evaluate||Ei).source+"|$","g"),St="//# sourceURL="+(li.call(te,"sourceURL")?(te.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++Cl+"]")+` `;ue.replace(mt,function(Ct,Mt,Nt,Wt,Si,xi){return Nt||(Nt=Wt),ot+=ue.slice($e,xi).replace(Ni,mh),Mt&&(Be=!0,ot+=`' + __e(`+Mt+`) + '`),Si&&(Ue=!0,ot+=`'; `+Si+`; __p += '`),Nt&&(ot+=`' + ((__t = (`+Nt+`)) == null ? '' : __t) + '`),$e=xi+Ct.length,Ct}),ot+=`'; `;var Et=li.call(te,"variable")&&te.variable;if(!Et)ot=`with (obj) { `+ot+` } `;else if(Sn.test(Et))throw new At(W);ot=(Ue?ot.replace(Ai,""):ot).replace(Qi,"$1").replace(In,"$1;"),ot="function("+(Et||"obj")+`) { `+(Et?"":`obj || (obj = {}); `)+"var __t, __p = ''"+(Be?", __e = _.escape":"")+(Ue?`, __j = Array.prototype.join; function print() { __p += __j.call(arguments, '') } `:`; `)+ot+`return __p }`;var Tt=Fu(function(){return It(Ce,St+"return "+ot).apply(F,Re)});if(Tt.source=ot,Pu(Tt))throw Tt;return Tt}function um(ue){return di(ue).toLowerCase()}function cm(ue){return di(ue).toUpperCase()}function hm(ue,te,oe){if(ue=di(ue),ue&&(oe||te===F))return Xu(ue);if(!ue||!(te=Tn(te)))return ue;var pe=nn(ue),be=nn(te),Ce=Zs(pe,be),Re=Il(pe,be)+1;return ps(pe,Ce,Re).join("")}function fm(ue,te,oe){if(ue=di(ue),ue&&(oe||te===F))return ue.slice(0,Hn(ue)+1);if(!ue||!(te=Tn(te)))return ue;var pe=nn(ue),be=Il(pe,nn(te))+1;return ps(pe,0,be).join("")}function dm(ue,te,oe){if(ue=di(ue),ue&&(oe||te===F))return ue.replace(mr,"");if(!ue||!(te=Tn(te)))return ue;var pe=nn(ue),be=Zs(pe,nn(te));return ps(pe,be).join("")}function pm(ue,te){var oe=Se,pe=Ee;if(wi(te)){var be="separator"in te?te.separator:be;oe="length"in te?Ut(te.length):oe,pe="omission"in te?Tn(te.omission):pe}ue=di(ue);var Ce=ue.length;if(Js(ue)){var Re=nn(ue);Ce=Re.length}if(oe>=Ce)return ue;var Be=oe-ea(pe);if(Be<1)return pe;var Ue=Re?ps(Re,0,Be).join(""):ue.slice(0,Be);if(be===F)return Ue+pe;if(Re&&(Be+=Ue.length-Be),zs(be)){if(ue.slice(Be).search(be)){var $e,at=Ue;for(be.global||(be=gi(be.source,di(ys.exec(be))+"g")),be.lastIndex=0;$e=be.exec(at);)var ot=$e.index;Ue=Ue.slice(0,ot===F?Be:ot)}}else if(ue.indexOf(Tn(be),Be)!=Be){var mt=Ue.lastIndexOf(be);mt>-1&&(Ue=Ue.slice(0,mt))}return Ue+pe}function mm(ue){return ue=di(ue),ue&&oi.test(ue)?ue.replace(cn,ju):ue}var gm=Fs(function(ue,te,oe){return ue+(oe?" ":"")+te.toUpperCase()}),Ru=Sc("toUpperCase");function Sl(ue,te,oe){return ue=di(ue),te=oe?F:te,te===F?$s(ue)?Ah(ue):An(ue):ue.match(te)||[]}var Fu=Zt(function(ue,te){try{return tn(ue,F,te)}catch(oe){return Pu(oe)?oe:new At(oe)}}),ch=$r(function(ue,te){return He(te,function(oe){oe=hr(oe),jr(ue,oe,pl(ue[oe],ue))}),ue});function ym(ue){var te=ue==null?0:ue.length,oe=Dt();return ue=te?Ft(ue,function(pe){if(typeof pe[1]!="function")throw new Wn(U);return[oe(pe[0]),pe[1]]}):[],Zt(function(pe){for(var be=-1;++bewe)return[];var oe=ke,pe=ri(ue,ke);te=Dt(te),ue-=ke;for(var be=Ga(pe,te);++oe0||te<0)?new Ht(oe):(ue<0?oe=oe.takeRight(-ue):ue&&(oe=oe.drop(ue)),te!==F&&(te=Ut(te),oe=te<0?oe.dropRight(-te):oe.take(te-ue)),oe)},Ht.prototype.takeRightWhile=function(ue){return this.reverse().takeWhile(ue).reverse()},Ht.prototype.toArray=function(){return this.take(ke)},ur(Ht.prototype,function(ue,te){var oe=/^(?:filter|find|map|reject)|While$/.test(te),pe=/^(?:head|last)$/.test(te),be=qe[pe?"take"+(te=="last"?"Right":""):te],Ce=pe||/^find/.test(te);!be||(qe.prototype[te]=function(){var Re=this.__wrapped__,Be=pe?[1]:arguments,Ue=Re instanceof Ht,$e=Be[0],at=Ue||zt(Re),ot=function(Mt){var Nt=be.apply(qe,Rt([Mt],Be));return pe&&mt?Nt[0]:Nt};at&&oe&&typeof $e=="function"&&$e.length!=1&&(Ue=at=!1);var mt=this.__chain__,St=!!this.__actions__.length,Et=Ce&&!mt,Tt=Ue&&!St;if(!Ce&&at){Re=Tt?Re:new Ht(this);var Ct=ue.apply(Re,Be);return Ct.__actions__.push({func:ll,args:[ot],thisArg:F}),new vn(Ct,mt)}return Et&&Tt?ue.apply(this,Be):(Ct=this.thru(ot),Et?pe?Ct.value()[0]:Ct.value():Ct)})}),He(["pop","push","shift","sort","splice","unshift"],function(ue){var te=yn[ue],oe=/^(?:push|sort|unshift)$/.test(ue)?"tap":"thru",pe=/^(?:pop|shift)$/.test(ue);qe.prototype[ue]=function(){var be=arguments;if(pe&&!this.__chain__){var Ce=this.value();return te.apply(zt(Ce)?Ce:[],be)}return this[oe](function(Re){return te.apply(zt(Re)?Re:[],be)})}}),ur(Ht.prototype,function(ue,te){var oe=qe[te];if(oe){var pe=oe.name+"";li.call(Ur,pe)||(Ur[pe]=[]),Ur[pe].push({name:te,func:oe})}}),Ur[io(F,re).name]=[{name:"wrapper",func:F}],Ht.prototype.clone=ti,Ht.prototype.reverse=Rh,Ht.prototype.value=Fh,qe.prototype.at=ul,qe.prototype.chain=md,qe.prototype.commit=gd,qe.prototype.next=yd,qe.prototype.plant=bd,qe.prototype.reverse=Sd,qe.prototype.toJSON=qe.prototype.valueOf=qe.prototype.value=xd,qe.prototype.first=qe.prototype.head,na&&(qe.prototype[na]=vd),qe},ta=Eh();Fn?((Fn.exports=ta)._=ta,Pi._=ta):Bi._=ta}).call(commonjsGlobal)})(lodash,lodash.exports);var _export_sfc=(B,R)=>{const F=B.__vccOpts||B;for(const[D,G]of R)F[D]=G;return F};const _sfc_main=defineComponent({props:{animationData:{type:Object,default:()=>({})},animationLink:{type:String,default:""},loop:{type:[Boolean,Number],default:!0},autoPlay:{type:Boolean,default:!0},width:{type:[Number,String],default:"100%"},height:{type:[Number,String],default:"100%"},speed:{type:Number,default:1},delay:{type:Number,default:0},direction:{type:String,default:"forward"},pauseOnHover:{type:Boolean,default:!1},playOnHover:{type:Boolean,default:!1},backgroundColor:{type:String,default:"transparent"},pauseAnimation:{type:Boolean,default:!1},renderer:{type:String,default:"svg"},rendererSettings:{type:Object,default:()=>({})}},emits:{onComplete:null,onLoopComplete:null,onEnterFrame:null,onSegmentStart:null,onAnimationLoaded:null},setup(B,{emit:R}){let F=ref(null);const D=ref("");let G=1;const U=ge=>document.querySelector(`[data-id="${ge}"]`)!==null,W=async ge=>{let Se=B.autoPlay;B.playOnHover&&(Se=!1);let Ee={};if(lodash.exports.isEqual(B.animationData,{})===!1&&(Ee=lodash.exports.cloneDeep(B.animationData)),B.animationLink!="")try{Ee=await(await fetch(B.animationLink)).json()}catch(Pe){console.error(Pe);return}let ve=B.loop;typeof ve=="number"&&ve>0&&(ve=ve-1),B.delay>0&&(Se=!1);const xe={container:ge,renderer:B.renderer,loop:ve,autoplay:Se,animationData:Ee};lodash.exports.isEqual(B.rendererSettings,{})===!1&&(xe.rendererSettings=B.rendererSettings),F=Lottie.loadAnimation(xe),setTimeout(()=>{Se=B.autoPlay,B.playOnHover?F.pause():Se?F.play():F.pause(),R("onAnimationLoaded")},B.delay),F.setSpeed(B.speed),B.direction==="reverse"&&F.setDirection(-1),B.direction==="normal"&&F.setDirection(1),(B.pauseAnimation||B.playOnHover)&&F.pause(),F.addEventListener("loopComplete",()=>{B.direction==="alternate"&&(F.stop(),G=G*-1,F.setDirection(G),F.play()),R("onLoopComplete")}),F.addEventListener("complete",()=>{R("onComplete")}),F.addEventListener("enterFrame",()=>{R("onEnterFrame")}),F.addEventListener("segmentStart",()=>{R("onSegmentStart")})},q=computed(()=>{let ge=B.width,Se=B.height;return typeof B.width=="number"&&(ge=`${B.width}px`),typeof B.height=="number"&&(Se=`${B.height}px`),{"--lottie-animation-container-width":ge,"--lottie-animation-container-height":Se,"--lottie-animation-container-background-color":B.backgroundColor}}),Y=()=>{F&&B.pauseOnHover&&F.pause(),F&&B.playOnHover&&F.play()},Q=()=>{F&&B.pauseOnHover&&F.play(),F&&B.playOnHover&&F.pause()};watch(()=>B.pauseAnimation,()=>{if((B.pauseOnHover||B.playOnHover)&&B.pauseAnimation){console.error("If you are using pauseAnimation prop for Vue3-Lottie, please remove the props pauseOnHover and playOnHover");return}F&&(B.pauseAnimation?F.pause():F.play())});const Z=()=>{F&&F.play()},K=()=>{F&&F.pause()},J=()=>{F&&F.stop()},ie=()=>{F&&F.destroy()},ne=(ge=1)=>{if(ge<=0)throw new Error("Speed must be greater than 0");F&&F.setSpeed(ge)},se=ge=>{F&&(ge==="forward"?F.setDirection(1):ge==="reverse"&&F.setDirection(-1))},re=(ge,Se=!0)=>{F&&F.goToAndStop(ge,Se)},ae=(ge,Se=!0)=>{F&&F.goToAndPlay(ge,Se)},le=(ge,Se=!1)=>{F&&F.playSegments(ge,Se)},ce=(ge=!0)=>{F&&F.setSubframe(ge)},he=(ge=!0)=>{if(F)return F.getDuration(ge)},de=(ge,Se=0)=>{F&&F.renderer.elements[Se].updateDocumentData(ge)},me=ge=>{for(var Se="",Ee="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",ve=Ee.length,xe=0;xe{if(B.pauseOnHover&&B.playOnHover)throw new Error("You cannot set pauseOnHover and playOnHover for Vue3-Lottie at the same time.");if(B.animationLink===""&&lodash.exports.isEqual(B.animationData,{}))throw console.log(B.animationData,"animationData",B.animationLink,"animationLink"),new Error("You must provide either animationLink or animationData");const Se=setInterval(()=>{if(U(ge)){clearInterval(Se);const Ee=document.querySelector(`[data-id="${ge}" ]`);Ee&&W(Ee)}},0)};return onMounted(async()=>{D.value=me(20),fe(D.value)}),{elementid:D,hoverEnded:Q,hoverStarted:Y,getCurrentStyle:q,play:Z,pause:K,stop:J,destroy:ie,setSpeed:ne,setDirection:se,goToAndStop:re,goToAndPlay:ae,playSegments:le,setSubFrame:ce,getDuration:he,updateDocumentData:de}}}),_hoisted_1=["data-id"];function _sfc_render(B,R,F,D,G,U){return openBlock(),createElementBlock("div",{"data-id":B.elementid,class:"lottie-animation-container",style:normalizeStyle(B.getCurrentStyle),onMouseenter:R[0]||(R[0]=(...W)=>B.hoverStarted&&B.hoverStarted(...W)),onMouseleave:R[1]||(R[1]=(...W)=>B.hoverEnded&&B.hoverEnded(...W))},null,44,_hoisted_1)}var Vue3Lottie=_export_sfc(_sfc_main,[["render",_sfc_render]]);const v$2="5.7.1",fr$1=60,ip$1=0,op$1=240,w$1=450,h$2=500,nm$1="\u8BC4\u6D4B\u524D 2",ddd$1=0,assets$1=[{id:"image_0",w:69,h:58,u:"",p:"data:image/png;base64,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",e:1},{id:"image_1",w:69,h:58,u:"",p:"data:image/png;base64,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",e:1},{id:"image_2",w:214,h:86,u:"",p:"data:image/png;base64,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",e:1},{id:"image_3",w:194,h:14,u:"",p:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMIAAAAOCAYAAAB9y8P+AAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAADaUlEQVRoge2YT2gcVQDGv+/t7mx202iwmxrXBDbV9iI9RVPFHlY9JGl2S2lZCmKttFAU9CqKIoN48yDiQSh6skFhD1ZjUmvBv61ab4JasDRLoKbtZkvRuEln/8znxWhMa03WzU6ys7/jvDfv/R583wwzGNrY9kj69rY++BDbts3QJmvP7kRnp9cuXtLKgLUHtm2bwZg1OhyzXnoikWjzWqxRpLojA4Ox0Bep7siA1y5e08pAZIAAkOnpiczOX/4UYK8MX70l3HUke+HCvNeiq8FILNRfAV+ElCLN3o8LzodeO60F/J4BLgym4x2xknNtHMAAiDzF10Lh8Ftj07MFD53rgiSmuiLJCtxnIQ0BKAM4dOJK+R2v3dYSfs4AF09Ox+PRcqnwnqT0n4MlgWPG8O0NyV2fZLPZauOPUDvDd0Z6UKoekHBQ0mYAIDFrjNk7kXdOeu23FvFrBrj0xkwmE/jts2NvQHhq8XWSlwCOw2i8Q7eezM7M/L76x1g5g93WPaaMlKgRCA8KMH8NktMho50f5cvfe6i45vFjBq4rwgLDm0KPu1W8DuC6PyoESiC+gviNyG8tyzrjxeszk8kEip8f2+bKbJe0ncBDghI3mkvyA8PQkxMzxUsN1ly3+CkD/1oEANgVi8ZLqByRNPKfRmSOwE+CzhmZn90gz4VcTUU6ovns5NVfl3uwpRzu7w9NTZ2NAeU7QN5NYKtcbCG0VcQ2CO031QKuknzmeKE0WquDn/FLBm5ahAWGNlqPiXgZUk3/mgmURBYA5AkVATgCHQAOgZKEAIgwBQtUWEIbyNsgdeEGT6Nl7lkFeFQMPn+iMHexljVa/E2zZ2BZRQAAO5kMfvfj6f2u+IKku2oRaxAVgkcZ4CvH8855r2WaiWbOwLKLsICdTAbP/PD1Plc6QOBhAYGVe9Yfgr+AeDcQMG+OX7426bVPM9OMGVhxERazs6u9u4rKPrjuowTu/cfXeWO4Qpr3AY7e//RzX9q27TZ4f9/TLBn4X0VYzO5EZ6dTnH8Arna41A4C90mI1Gt9ACA5CeA0oVMI8tTERecsSdVzjxa1s54zULciLEUS073ReMVBn9xKH8nNAHsFbSAQBRSF0C4yAqgCoAhwjsIciCKgAmlyFHLVoHKWieXGpqfnVsu3Rf1ZTxn4AyaTUIFwF6KQAAAAAElFTkSuQmCC",e:1},{id:"image_4",w:65,h:65,u:"",p:"data:image/png;base64,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",e:1},{id:"image_5",w:337,h:242,u:"",p:"data:image/png;base64,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",e:1},{id:"image_6",w:114,h:135,u:"",p:"data:image/png;base64,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",e:1},{id:"image_7",w:88,h:106,u:"",p:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFgAAABqCAYAAAA4J5aSAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAXXklEQVR4nO2deZAlVZXGf+fm9mrpphe0AQFbDUCiHUQZkEGcsAmFcVDZUXAbFUWFcEDUGRFHUGaMQHZhlEEgFFBsEdcRQaV1cGtA2aIhGFQWnYYWGKGr6i253fkj7828+aqqa3uvCqvnRGTne6/qZb386qvvfOecm9nCNELfcUfAn+7ajyQ7CPRadL43SAQ8gOImtNzIG0+8VUT0dI63LYVM9gW9/ivb02y9nqRzGDp/LVk2hM4hzwAN2mApAqIA73codRlRdJW84cQn5+fjP/ujBrBev94n3nQ0Sfv9JPGB5KkiTyBLC2BzsxcxAOviEBZk5YHyYjz/2/jhVRy+6maRY7OFObVnR5QA61vWHUonvpi080LSDqRxseWJ2dICaHQBsqZ4LAIoUMqA7LvbJvzgcgbDL8ihJz2+UCe5kCEA+sc3nE3c/HgBrNmSNmSx2SzImdny4p3aAgyIVzBYPPCCYu+HBdBemOBHVzPof3xbA1r0+m+dQNK6nLgNabsANmlRsjjrFABnhsV5CuQFuNqRCBR4FmQfPAtuYLYQvGgLgX8WK/e+WNauTRf43OclRP/o+kdJWruQtApgEwfkrANJB/IOpI5UaA06LzYRCpAdBluJ8ELwfFBhwWY/BC8CP7ydxsDxcthJv11oAPodCtKs1Nc8LUDMOgZcl9VNSFvFloyZrQkds09GITZbMgbxmHltrHoej0FnFDpj+9IcuVPfcNE7FxqAfociy64vkpYBObUJLamDnVmwLdObDtAGyLhp9g7InbGux81ii5vDtMeu1OvO/6LeuC5caCD6FaLXX7Mzo83f0xkLiMuTd/YtA24MeVzJRJ5Bbr2w+Uf5jl0LK5lQVoND8BvgR0YyGoVkhAO/YGDZkXLYezYvJBj9CCVr3/pHdH5toalZweIyoSUFs/OkANcmvsSyulXJRtquZCNpQdosNvta7Dy3bLeMjscOYPSpO/QNF71koQHpdajiX+8cQJfJC+0UF0k9waVt81qnAN1KR9Y2v4C20ekWxDZpWploQqdZSYn9vqQFaWtn2q1b9dfPf9WCItLjUADy+vfcj86/VVZneUZhxTLIMrM3LM7SwlXkieOT4yoZlkC3ILOsbVVsT5zX4mYFfAH6MuLWzfr6Cw5fWFh6F6p85Mlnaj0GrU1B4ViyLAMcGcksuw3IOi6elyyOHedhAM0Me22y6zQrp9FpQqfVoD12vV53/vELA0lvowRYjvrw7aDuLp7ZppgDbp5TsrrsS6SgHaAzU5jkBuisbfQ6rtidWL1uVVodGzmxDI9bHp2xq/V15719/iHpbaiuZz8oCwco9rbnYNldAp07Op0BaaXViSsfVq87lNViWgPTSEbTkYoWxE1F0rxKX3f+X7RXrgMs/m8Lm6VMh8xWaU7TTVPYM6vXukur8wRICmZbFmcdiDuVPpfluMPmuFXJRjJmJUWRjH1RrzvvTfOISU+jDrCnNxe9XdMZs+BquzffZx9bdue6ALeUD6PTOq2KFu0ULm5DKXWkwnUV1abotK7W6y44dF6R6VF0Aez/vuglKMDpiolHCboo550GXHTF7CyvQNaZA7LbmYsdoJ1yvLR1zaovUshFQGfsev21C/92XtHpQdQBPuqf7sfzxsA2bsomegWuba5rs7dtSxwPnZuk6Gp0nkPa7T4MyJnL6KaTBJsukxukzW/p6z/34oUAarZRA1hEcpR/W9EB8wtgS+b6VSmsjXxogdzsbZSTjrxgdG4Yra1kGBZn1tKZyjBtV9272EhH7Hb4WtBpLqczeqP+9oWr5hOkuYQa94r4PyjbjfhdMiGAA7pyEqK27kODIXJp73KTBDPDZKvJWVL1ONK4AjltG5A7FYPLfnVrNaPt7+jvXxzNI06zjvEA+40bC1nwi16ueEWzxjbSrWTgFey1Vs7O6bQFOa9LR+66DSsfpvxOHJDdJJi2CkZbxxFbnW7tx9PtS+YXqtnFOIDl2A/dix8Uyc6VCnH2tYRnNwdsMAzWkGlDbENr6zS6QU5NEoyd9mhiQE47FdDVQOAE/dXPvnuecJp1jGcwgPhfww8MuAGIlQkLrmGwmwC1GRuJFBJhQxtnIVSstkwmr7p21mlYJieub7Y9DHcA0Iakc6led+4+fUdpDjExwGF4XQmoZbDVYisb4siEKMNcOwCdgM2Zm/T0eLnIzFDV9jbK5Ge32LFyZeKLSOJv6BsuWdl3pGYZEwIsR3/kHvzw3mJYaROddREO6Fqq5Kc8UCbZucDiPnbKba2r5IcFOXY02ToNl7Gt8Y/j9vNpjlzTX5hmHxMzGEC8K0o3Ic50uNRkO9w0kqGVSXqOhYPSsVWPu0B25SIzbdEsq5pH1sql7TqjE8c7J52/018956S+IjXLmBzgge2uwQviClyHvVYurNvAq2RB2YRHvbyuhS2v82pf9jKceWCa1m1cHlc6bJltQY475+h1F+7Re4jmFpMCLEee/BTifbNcPOJKBF5VdNQKESMb1hPXkh3V89y8kFNVfbZDp/NqFVHZY46rIqSbvbGdGbYHiVtX6/Xr/f5ANbuYnMEAwcClJYOtXPiBY9+MNotPwVrbIHJsm0123bpsCxGoEp/bw8iTYp9YiYiprzxy9rHdt/Zl021n9BylOcRWAZbjPnorfngPKqgWjuAXtk05eozq6leoisXdvrj2HMNe6u7CJr/UXXSYVpWfW1LXCpMOZO2P63UXPWus29YZDOCFlxQyEdSXQilr1/xKh23RoakaQ7UCxCml3ShdRV4UJrZDZ4HNLZPNMq44rjpyLpOTDsSxT9y8TK9b5/USqNnG1ACHjWtQ/hOFXYsMuEG11kGcgsO6CltwuCw22FZ2jfqW62L+Z3sXaebose0l27ZnpwK77MK1KxbHrX3IHnlWuIopAZZjP9TCiy4pwLXrzQLHPTi2DQW553jk7kYQTufNARkKBqdu29NJemlaOYzUNImSTuUiasWIBblztv7253bqNWAzjakZDDC87FK8sFmumLTJzm5WPsT64i4WW7vm+uFy1lftKtCtV7ZMtpNsR4vt3jbyk9iRihiS9hK2jFzUO6hmF9MCWI48+Sl8/wo8A6gXmqVRrovwiuWr4oM2j93Cw53tacdZ6C4m53mV/KxHLqu+tNqSuALTMrdkdAn60fpr5x7SY8xmFNNjMEAQno8fZJUOG7kobVsAOE35smdsddgF1Tlut6sAapMRrU2F54yiurtwiV1lZNcz22ZRDJ34vIVMeNMGWI772MP4ja+XLsKPDJhhYds8q8Wq0merxVYupEuLXf2F+i8gs07CWWVUrjCyQJu1c1nqeGXTFKq88xqyR97VI7xmHNNnMEAQnFMAbBNeUGew9cee44kxLHY7bN2snUgqXDtn18zlecHkcmWRkQqrwYkDcmbBjiFJPqVv+vLQXMGaTcwIYDnuY3fiN35Y6rAXVVLhmQmIZ3vFTltTC+UczzI5h5LNZRh07cgJR4fzvHIXeVokv9wB2l6sYweqiWPlkvYOPPH4R+eI1axiZgwG8IOzqmsunHW/ZTltCxFndudKRHc7c9xmJyAYoN0+smkK5a6zyBxQ44rR5fTaaLFOTtPfPXf7XoA2k5gxwPLW03+OH/6wLJ2tFltgxSQ5cTyycljsrhbSUJtIw3g7V9s7X7TltFvtld24uALdAh2PDrFl5NQZIzTHmDmDAaLGJ6tV6xOw2LOJz7BYO2sq3NK5tG3UgbV+GJyOm21rWldhWZxBaibViQXW8ch5DFkLslFInjhZf/PMZbNGaxYxK4Dl+NN/SRDeVGdxUGex51UstuU0XSyGisUTTj+otpK5Vot19ThPq/FTOb22Kzw7BbjpU6QD4dL/feGr/nFWSM0yZsdggCA8s6bF5WVaVoODisW2P6EVeF2tzO5EV66pYDzoqe1XmErPemNs8jO6nBorp2PQo5D/mWT5Skb3PIwwGv6g/sMfBmZ93jOMWQMsbz3jVwTRD/BDCIyjsFJhqzs75hfHF+dUjqKW7KZgcU4Brk2Elr32cek2UiADEpAm8AzJqhcw9ldHEkbDhEG0Ikn/PG+rNWfPYAAvqljsd7G5ZHHXMiwMi2tNIEcu7N51Fe5rOfXOnAu2ZbNkQAvUKPGue9Pc62iiYIjQD/ElQOG9f07nPYOYE8Dy9tM3EDS+X12iFVVgu3ZN2UUslsVmCZZy5MH6Yj3BD3IBF11PhuXOyIfk4HXAb9Ja8zpaex1FGA4QeCGe8lBKUKL20w9t3Hsu5z7dmBuDAfzG6QShJjDA+qHDaNsYcta3ia3ynB5FbZG327NwfLPb0yiHqVIxXAAvhyABv83YAe8lefEhROEAoRfgKQ8xfy1FnSPHzfncpxFzBlje9s93E0TX4kcmqUUVyO7kw651w3UUzjTaAloy2U1+3UnRqQhFgS8FuGEGQx5bDvkE+ep9icIGgReglI+Iqv0cpfy/n+u5TyfmzmCAKPoEfhQTNhwGO47CjpxwHIV4FUAug2ujfpex9rGd+VEcywMCgUZOvnIFz7zhM6idXkwUNvC9ACXKgDvuzNdorft+CW9PAC46beHnK1DtPnISneesErIJz/HF3X/6tYrP7O0iFyiO5SuIPBjISHd7GSOHnYu/8vlEwQC+H+GJhygzxRepHKEoUMFmCrvR1+jdGoJo6Gzi+J0EjaVltytNC/baywgkA5UVcmEtlk6MVEB5ewR7HwqrvS7TlRQgRx40BAZzWvu/i84+RxGFQ/jKxxNBaYrfoetC7C/J8zoE0bEi0neAeyMRgBz/4ScJos/Wyuey+LAXhPuVFttrQaxUlKMmF0zb7jTf45u/goaCAWDZICOHf5bkb95CY3A7gsDIgupKpGJ/MQo8P8H3j5Hn7nRrr859a9HbVTD+wAWEyUmk8Q4VixOQuHAV2pS0khdJKc+LX3FmCgjHSFTOQVOupg+V0Vsh23V3Rg/9NN7KXQm9AF8plBbEjpfsMeyBRUD5MX5wjOyw63d7et5bie6G7JxDX3X2+2iPfJ7OKLTMPSI6o+ZCcLv01M7PzFLV3K4TNiWwBUVRgBsYpxAJDArtA95Ne//jCQeWEXg+nqhCEnRWjf3t4FQbrfDUKF7jKFm10829PuetRc8koozVr/wiQXRfcR+IqGoGlfbN9cfmdjP2/hK2ae/7EPgQBhB6ECkYEvKddmbL268kXvs+GkufQxgN4gehkQSnIiyXbpnxVb4FHr3uA/MNLvQBYFm7NsUfOLXU3iAyAAcV2MoUIoHtwoUFqFafvaAAOPBgiQdLhc4Bb2bLP3wJ70X70RjajiAawvMDpNRbqOu30evWo3DrMXDvpxdkutxzibChrzjre7RHD6U9Cm3nlgUdexsDO5g0l3ZpcwcVlYHSEGoIcrIdV9Nceyr6hfsQDG5HMLgUlYMq1xan1dVL9no8KBj9+I/gNx+BeAREEkJeIO9o/U+/znmi6N9Sz7BxGml8MH4UEKZVc9w3t2Ysw1ZvGUhaaK2foZc2aB5wIsmeBxEMryAYWILXGEKpAFF2sbZ5vzjSYBPj/efBA583rwtAQMrJwMf6ds4TRN8YDKCv+tQFtMZOKe9yYplcXgfXNuztgCTgJeCntPc+nPZLj8Df7rn4jWH8aBgVDaCCqPjTr63yyZzWJRA/BRtOhj/9YqLT/TO7LtlFDtk81s/zdqO/i5WXLTmLPH8bOltJnhRJzzJVTCWWU2SCUNHa8wji3dailu9I1BjCj4bwggYShohvlmXpLva7fnnzf8GGU6E1yc0FlwXLQb8D+Pe+nnfXJ+xr6C+d/QHaI5cSjxaWLR2huNXMGORj6MijtdvriFfvize0Aj8cwA8HCsb6IRLaJGmudEI764YNc5MRuPNM+N21VAbYnpp5vDSA7UIQeZCDN+8xX7fi7T/A69Z5jG64m87Ta0i2QDqCJqWz494kz92TbPnO+OEgftDACyJU0EAFIeJHENiFLUFl4dyLy7WGx9bDhlNgdNPkZ7g8gqGgek3JYXLw5u/0+9ztj+976K+f8erO0JL1qb+EvLGUbGh7PC/C8wM8L8ALQsQLUH6EeD5lb7n0xc7SLHuVaOtJ+M2n4MGrnaqtK0IPVkSF3at1P+UncvDja+fj3OcFYICRRzZeQ3vsLSrNirXwnl/0aT0P8QKjsabI8Bw/bAuPcnG3bvL0767hu3/7XpKRCX6SLkZSSwMYDjAdn/GnqtTL5bWb7uz3efe+kpskhhvbnxZGw89EjUGCYBDfb+D5YaGz7vV35S1y7XO7SlNlaH0FonaTFbufSDq6ftwPCRWsGIAdh2A4ck5vAh7l+pS+nrCJeQNYVq3aLFHjDPEaqDBCfHes5NWZWlZ1HnheglLrENlLPO8EEdlkPvkleAKRD8sasOMwrBqG4bDqpG19e7Nev3qHvp93v3+AG1prTz/2yG2S5y8vu2T2nsNeCagdNT2EJ5fjh1eKyLh7Wmp9jMfNP3sIkV1qN4quXRAy/mndZMin5eBN/9LPc55XgAH0k4+/giz9JYigbM+gZHCCqO/hqcvwo5unslL65uedDvpf5/BxniAId5W1D7fncIytxrxJhA3ZfocNRAOXEzWgMZgRDdxPFF1GGBxBY2ilNAaPlKBx07R8amPgclCdsuDoHjW5c77yAziviTyHLH1Lr8/RjXlnMIDWehlJaw+CgXtEpDWnY/1w5y8Db6uN72umYZLCw2qGyEZ5zR/7dtfXeWcwgIg8LeHghrmCC4DnX2oOWmdvbd1bzQQ7ewHNGn3LLn1rZS4IwL0MOejhDaDumhzgrq1bQoqp9Yf69fn+4gEGQOnLJmVsF2G7v2zWtx2s17+oLzKxOACOBq9FGAW6kxjTZnSWfLgfH21RACwHPjCCVl+Z2EVMU5NFHa9/vPvzev3ZFgXAACjvP2qGoRxOS7WfCPBqWBqgkp6Xzwti0/oV+serfw28vP4iW6nkukO2sJ3sKn/9+2d69ZkWD4OhYPE4jaXau48n1GSWskV/sKcfqZcHW/AI/K8A9XmbXVnp3pp3otWWVZyi168Z7tVHWlQAy4EPjKDkuprHha2VyuM3ZAW0enYzj0WlwQD6lt1eAdmvJi2Nx8UEpbRIG60fBRlBZBTyUVCPIdyH4j4yNsra3/5xOp9n0QEMoG950d0IexXPugC0rU33v8x0253dX5805D5E3wDqG7L2wbsm/a45ncmzNPRPdz+JPC9ufzsVoOPezAxch/0e+RGaj0wE9KLS4DKGllyDSBN3rdqkSa6rlp7SdbjvMY+1fg3Cr/X63S/R+pjazT8WJYMB9E/3uAKt3zX9P/lJYqYSInwH/bw3ydqftGGxMhhA6y8AU7uGqTa3GpyoMhzvQt6IPHa1/RiLFmB59X/fjsjt5tnWvtPZTyAB4748DclAH61/sucRsIgBBkCpz43X2Jlq8ky/3+71xVof4y1aDQbQG9eEPJU9RK53mtw1zNBlTPlDneN5snZRM1jWbIxBLpzRhGOmI6etHU+roxY1wACoFV9AvKcn/4apNLgrSbqvTXU8rfdf9ADLgT8fQbhkyn7wbGd6UAe89gtROyx6gAEYDs5Dy9O1Km1SBZiCsd33tBjX0HePwaptAmB52V1P48k502Jo8Q733c5+AgaP98HVXvPUNgEwAI3oIpQ8MmUSm+nQdOu/oJsWtU3rDv3zlxxKLt/b6kqfqbo7U5bKNZv32m0KYAD9s72uRev+/4+3Ivfyyrtfuu1IhI0lvBcl9/bNBwOgMpScICJ6mwNYXnrPGD6HIfLw9N7QNdMr7NdWbJoC0efLAXffBou9FzFJyCvueQjFgYjaOLUvpg7guIONS4pfYvke5f/lsc1psBv6oVc32PTMmWhOg3ziizLH9YOp58QqIabAJ+XAu/6t9va+fPK/sNC/3H81Oj4J9DvRrJzRDA+aiFyJ1ufKK+98pPvY/w+wE1qfqfjFf+4D6UGIvABYjmYZoiPAR4sG/RTCk2geRHk/Y/vn3CG73diZ7Jj/B+402MadLMibAAAAAElFTkSuQmCC",e:1},{id:"image_8",w:90,h:107,u:"",p:"data:image/png;base64,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",e:1}],layers$1=[{ddd:0,ind:1,ty:2,nm:"\u53F3\u89E6\u89D2",parent:8,refId:"image_0",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:1,k:[{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:0,s:[0],e:[5]},{i:{x:[.169],y:[1]},o:{x:[.333],y:[0]},t:30,s:[5],e:[0]},{i:{x:[.199],y:[1]},o:{x:[.786],y:[0]},t:60,s:[0],e:[20]},{i:{x:[.667],y:[1]},o:{x:[.786],y:[0]},t:120,s:[20],e:[0]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:180,s:[0],e:[5]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:210,s:[5],e:[0]},{t:240}],ix:10},p:{a:0,k:[193.146,30.9,0],ix:2},a:{a:0,k:[3.25,56.25,0],ix:1},s:{a:0,k:[100,100,100],ix:6}},ao:0,ip:0,op:300,st:0,bm:0},{ddd:0,ind:2,ty:2,nm:"\u5DE6\u89E6\u89D2",parent:8,refId:"image_1",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:1,k:[{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:0,s:[0],e:[-5]},{i:{x:[.148],y:[1]},o:{x:[.333],y:[0]},t:30,s:[-5],e:[0]},{i:{x:[.347],y:[1]},o:{x:[.659],y:[0]},t:60,s:[0],e:[-20]},{i:{x:[.667],y:[1]},o:{x:[.659],y:[0]},t:120,s:[-20],e:[0]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:180,s:[0],e:[-5]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:210,s:[-5],e:[0]},{t:240}],ix:10},p:{a:0,k:[142.598,31.15,0],ix:2},a:{a:0,k:[66.75,56.5,0],ix:1},s:{a:0,k:[100,100,100],ix:6}},ao:0,ip:0,op:300,st:0,bm:0},{ddd:0,ind:3,ty:2,nm:"\u7741\u773C",parent:8,refId:"image_2",sr:1,ks:{o:{a:1,k:[{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:35,s:[100],e:[0]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:36,s:[0],e:[0]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:42,s:[0],e:[100]},{t:43}],ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[167.386,118.854,0],ix:2},a:{a:0,k:[107,43,0],ix:1},s:{a:1,k:[{i:{x:[.667,.667,.667],y:[1,1,1]},o:{x:[.333,.333,.333],y:[0,0,0]},t:0,s:[100,100,100],e:[100,100,100]},{i:{x:[.667,.667,.667],y:[1,1,1]},o:{x:[.333,.333,.333],y:[0,0,0]},t:30,s:[100,100,100],e:[100,35,100]},{i:{x:[.667,.667,.667],y:[1,1,1]},o:{x:[.333,.333,.333],y:[0,0,0]},t:35,s:[100,35,100],e:[100,35,100]},{i:{x:[.667,.667,.667],y:[1,1,1]},o:{x:[.333,.333,.333],y:[0,0,0]},t:43,s:[100,35,100],e:[100,100,100]},{t:48}],ix:6}},ao:0,ip:0,op:300,st:0,bm:0},{ddd:0,ind:4,ty:2,nm:"\u95ED\u773C",parent:8,refId:"image_3",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[167.35,123.559,0],ix:2},a:{a:0,k:[97,7,0],ix:1},s:{a:0,k:[100,100,100],ix:6}},ao:0,ip:0,op:300,st:0,bm:0},{ddd:0,ind:5,ty:2,nm:"\u5F20\u5634",parent:8,refId:"image_4",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[170.241,192.829,0],ix:2},a:{a:0,k:[32.5,32.5,0],ix:1},s:{a:0,k:[110,75,100],ix:6}},ao:0,ip:0,op:300,st:0,bm:0},{ddd:0,ind:8,ty:2,nm:"\u8111\u888B",refId:"image_5",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:1,k:[{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:0,s:[0],e:[0]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:60,s:[0],e:[6]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:120,s:[6],e:[0]},{t:180}],ix:10},p:{a:0,k:[224.85,392.35,0],ix:2},a:{a:0,k:[168.5,240,0],ix:1},s:{a:0,k:[100,100,100],ix:6}},ao:0,ip:0,op:300,st:0,bm:0},{ddd:0,ind:9,ty:2,nm:"\u8EAB\u4F53",refId:"image_6",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[224.603,432.311,0],ix:2},a:{a:0,k:[57,67.5,0],ix:1},s:{a:0,k:[100,100,100],ix:6}},ao:0,ip:0,op:300,st:0,bm:0},{ddd:0,ind:10,ty:2,nm:"\u53F3\u624B",refId:"image_7",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:1,k:[{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:60,s:[0],e:[-5]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:90,s:[-5],e:[-5]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:120,s:[-5],e:[0]},{t:150}],ix:10},p:{a:0,k:[257.383,384.131,0],ix:2},a:{a:0,k:[11,6.25,0],ix:1},s:{a:0,k:[100,100,100],ix:6}},ao:0,ip:0,op:300,st:0,bm:0},{ddd:0,ind:11,ty:2,nm:"\u5DE6\u624B",refId:"image_8",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:1,k:[{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:60,s:[0],e:[73]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:90,s:[73],e:[46]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:105,s:[46],e:[73]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:120,s:[73],e:[0]},{t:150}],ix:10},p:{a:1,k:[{i:{x:.667,y:1},o:{x:.333,y:0},t:60,s:[192.861,387.971,0],e:[188.861,401.971,0],to:[-.667,2.333,0],ti:[.667,-1.333,0]},{i:{x:.667,y:1},o:{x:.333,y:0},t:90,s:[188.861,401.971,0],e:[188.861,395.971,0],to:[-.667,1.333,0],ti:[0,0,0]},{i:{x:.667,y:1},o:{x:.333,y:0},t:105,s:[188.861,395.971,0],e:[188.861,401.971,0],to:[0,0,0],ti:[-.667,1.333,0]},{i:{x:.667,y:1},o:{x:.333,y:0},t:120,s:[188.861,401.971,0],e:[192.861,387.971,0],to:[.667,-1.333,0],ti:[-.667,2.333,0]},{t:150}],ix:2},a:{a:0,k:[76.5,13.5,0],ix:1},s:{a:0,k:[100,100,100],ix:6}},ao:0,ip:0,op:300,st:0,bm:0}],markers$1=[];var startData={v:v$2,fr:fr$1,ip:ip$1,op:op$1,w:w$1,h:h$2,nm:nm$1,ddd:ddd$1,assets:assets$1,layers:layers$1,markers:markers$1};const v$1="5.7.1",fr=60,ip=0,op=239,w=450,h$1=500,nm="\u8BC4\u6D4B\u4E2D",ddd=0,assets=[{id:"image_0",w:69,h:58,u:"",p:"data:image/png;base64,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",e:1},{id:"image_1",w:69,h:58,u:"",p:"data:image/png;base64,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",e:1},{id:"image_2",w:214,h:86,u:"",p:"data:image/png;base64,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",e:1},{id:"image_3",w:194,h:14,u:"",p:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMIAAAAOCAYAAAB9y8P+AAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAADaUlEQVRoge2YT2gcVQDGv+/t7mx202iwmxrXBDbV9iI9RVPFHlY9JGl2S2lZCmKttFAU9CqKIoN48yDiQSh6skFhD1ZjUmvBv61ab4JasDRLoKbtZkvRuEln/8znxWhMa03WzU6ys7/jvDfv/R583wwzGNrY9kj69rY++BDbts3QJmvP7kRnp9cuXtLKgLUHtm2bwZg1OhyzXnoikWjzWqxRpLojA4Ox0Bep7siA1y5e08pAZIAAkOnpiczOX/4UYK8MX70l3HUke+HCvNeiq8FILNRfAV+ElCLN3o8LzodeO60F/J4BLgym4x2xknNtHMAAiDzF10Lh8Ftj07MFD53rgiSmuiLJCtxnIQ0BKAM4dOJK+R2v3dYSfs4AF09Ox+PRcqnwnqT0n4MlgWPG8O0NyV2fZLPZauOPUDvDd0Z6UKoekHBQ0mYAIDFrjNk7kXdOeu23FvFrBrj0xkwmE/jts2NvQHhq8XWSlwCOw2i8Q7eezM7M/L76x1g5g93WPaaMlKgRCA8KMH8NktMho50f5cvfe6i45vFjBq4rwgLDm0KPu1W8DuC6PyoESiC+gviNyG8tyzrjxeszk8kEip8f2+bKbJe0ncBDghI3mkvyA8PQkxMzxUsN1ly3+CkD/1oEANgVi8ZLqByRNPKfRmSOwE+CzhmZn90gz4VcTUU6ovns5NVfl3uwpRzu7w9NTZ2NAeU7QN5NYKtcbCG0VcQ2CO031QKuknzmeKE0WquDn/FLBm5ahAWGNlqPiXgZUk3/mgmURBYA5AkVATgCHQAOgZKEAIgwBQtUWEIbyNsgdeEGT6Nl7lkFeFQMPn+iMHexljVa/E2zZ2BZRQAAO5kMfvfj6f2u+IKku2oRaxAVgkcZ4CvH8855r2WaiWbOwLKLsICdTAbP/PD1Plc6QOBhAYGVe9Yfgr+AeDcQMG+OX7426bVPM9OMGVhxERazs6u9u4rKPrjuowTu/cfXeWO4Qpr3AY7e//RzX9q27TZ4f9/TLBn4X0VYzO5EZ6dTnH8Arna41A4C90mI1Gt9ACA5CeA0oVMI8tTERecsSdVzjxa1s54zULciLEUS073ReMVBn9xKH8nNAHsFbSAQBRSF0C4yAqgCoAhwjsIciCKgAmlyFHLVoHKWieXGpqfnVsu3Rf1ZTxn4AyaTUIFwF6KQAAAAAElFTkSuQmCC",e:1},{id:"image_4",w:62,h:19,u:"",p:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD4AAAATCAYAAADI876sAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAGeklEQVRYhdWXS2xV1xWGv7X3uec+fe3rBxgwwhBCAyRqKEmQ+mTQDjropAoZ9KVIVatWFYOoldKmgxihqO2gHVSpVGXQZtARCVIl5g1NXySEogrxEE6gCTYvP665tu/rnLP/DowhqbCAlKD0l84Z7HO01/q/rb322nALje3qr95q/P9RK3kxAEkG+2z/p365q7WoP4A2GXbae16sPdz3+2cOXGibme5vyh9OkuwXX+qvLkym3wshfF9igzM7Ua7YUz9564dnzcYCgEkyXnnKsXg099OfT52WGH3/RIZNuYjfDFfsxR+80Zj9uAKQZC88Ori2m7SfSVP7jtAHVto7+9v+Zwe/yNNPd83Ggkljjpdfjo/9o77u4OH07RVnNha9t9+V4+hXPz5ef/fjAkCS7X+0Z1vS0Y8y8TWJ+Fb/mWPxhW/1bKRSabB3vGt6bXfEkXM9JJ2R/Qeah1rdsOE2sTLn7HVnvFqo6uBzRxau3m8IkmzfY/3r08XungB7FHiC69t2JfWWOfbsV6vfJFe8yKadC6YD22PGrwwAD71zMfvyH99Ivj3TUP8d5pB5Z381eLVQLhx87q2pyx8VBEm2b0dtQ9pJ9oTAkxKPcxuzyxquuUtPfjr/27UD9ify7izVkbrp15vzNJqrsORhQvgM4okzk9r2l1PJwPkroXA3uZnZuDP+aeiYeTvmKvGx54/MzN8tDEn2s63V/rYPj2WZ22loZwjaIdh4N9M8tM61P7c9d3XjancSOILT38FO8eDqmZsrHvgEaBficcweBA1MTKv055Np8dSFLC/dGd3/Dm7YO+a4AMyaNGdGPeDqZqoDTlBDqhnUkNUwakEalbjdlrulvEOf3BS1v7DVt4d6bRGzKeAMxps4d5ScjVMdqUcMDQUmF1vMt6dw2TmkEpAiGxkZtMGvfz7umV0IhddPZcV/ncvynVTuLvIwoc0KbL6JAiCsxOn697tXOW/Zjgd857Nbo1a1RBtogE0BFzA7A+E8ZDPka21qm25WdaZbVVpag4UNmI0StAFjPWIYNABUM1n+7GQWn/h3Gp+ZVL6d3BWEe65KwbKt633nkfUueWCN75ipjdFANoNxCbgAehfceZx7j7y/TFyaZ+94d6mBObDHs3g0x6WkTJb0YTYEWoM0gjSCMYJYjTGAqGIUQyAav5jFJ95L49MTilsd+fthtqdItnUk6jwy6rqbhn1iIsFoAQ2kacwugyYwJpBNYNFlpCmi/BzluMnebyRmY+HGvpXGHC8d8jQmYhIrkYUq5gYgXY1Yi1iLsQaxCujH6EVUgAJGbvpa8BdmQjQ5LX9xLvjLdeXa3f8NRjlv2XCNZF2/T9cOuGx9v2W1qsu4aXYBMQeaxewqcAkxiecS4grez5LzDXpowpqE734lu9G5vT/QcuvKS4c8XMoxY0WytIpCH94GUVgFrCbYEKYhxCBGDagiSpjyyHJABLjZheCuzMk321grEc0O1urKWh1ZO5EzoJC3UIxNpdhUzKNCjCp5Y7jPZb0Vy4CAyDAlYG2giWhcNzuNNIW5q5iWHtwMiuqU/Dzl0GbLli67d4dlw8tasVJLY47Dhx3H387RcQWyUMK1eghRHxZqKAwiG0QaxGwA6EX0ABWghKkIlgciJI9hgENmGIauvwGEMImlqhfAwtKqqgO0wJrAAjAPzCHNYG4a0zTmppGro/QaMfPElSZ9tBkdTdn9WrbSUXrbI+pGL3/5eIS/luNanCeohFTBhypSH1IfQb0YvUAPqApWAcpAAYiRcmARhkd4WC6MFjAyIAWlyBJQF7MWRhMxj5jHaAANzOYwm0PuGi5p4AsLZLTIpW02DCawLWPPgXC73uGOz+Yb2+DwYceJCX8TghXwnSKJlYkokVkZS8sEK2OUMSsi5THLLZlXDjmPySMEFiCkmKXYddOyDtDE1EQs4rSIokUCi5iaxKFFrtAm3+mS9SYM70jvxOyHMr4ihKkpR70e0SlFLLRyqBOjXIxL8qQ+D1lM5GJQhBSBiwjyuOXYFgiW4bIMs5TgEkKW4H2HEDrkch1c0iWNEyrFhLSdMNKb3enK3lPjK4J45aRRP+foXHPkm565rieueFqJh8yh4CA4VHDktBQ7MWHtAC5gLoAPFHMZ3YWMvjijU8rI9wZqmwJ7tgue1724D9wT47fSEgy4AWRoyjg7vzRWa38wbr2wZGRLj5ga0rJBgI/q0vMfJiRMBrMnVLIAAAAASUVORK5CYII=",e:1},{id:"image_5",w:337,h:242,u:"",p:"data:image/png;base64,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",e:1},{id:"image_6",w:114,h:135,u:"",p:"data:image/png;base64,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",e:1},{id:"image_7",w:27,h:37,u:"",p:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAlCAYAAACzpJKIAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAADqElEQVRIib2XXYhVZRSG37XPPtPQZBFTQRgFhRZERkKGkcL044XRZRQGZT8MQsWkJBgSBYEZFMnQRUMXXYgUo11INBJDNSB4EUPphWM4pTNhJJUyY9qMc771vl3sn7PnZ580z5kFh29zPs56vvdda5+1N1ASmvx0Wdne/42ofCt0aqJv3eLAjD+D4c1mwhqGzvRO6M/eJ5qVr4GNABhOQLX3pb7qIsB4EvTl+GOyZxFgflLuQAjv6Pedd7cYFsYhh+TtCjN7pN6rWgeD/hIdcAfo9/LXMx9LstbA3M+CDsiRQGsbMbb9g9bALExYBqLDRNB9s49ufVd6+z9cuVyYQhtIgKGujgEQt2n03AGNvnFj82A1XisGJMDETii5pod18n9+1LGeDVJ/5cph9OuLACWNAjGkltaWus/s0cjQT+Hophd0+vWORukadpYf37wLZA8kAMKsNf1IhBkgEgYEST+Y6aCE7yvGcyCmEWEaMcbihsqCrxUIgyAqWVVfIQJIQAAgMQawSuQqSPD0cEb8FtXs/lJlGnntZiGcIj3Kk0OwVA0AWPpdDs6VAwABASZORTHW2srPh0uVURe3iIwgQRAsOXkOTSzMrjMQcmuROQC8aCv7h0trpmMvd7I2Mw6gI/9xsVbQnKQAxCS16geLDO9VHti3Lcu7oDLWLu4Q2ZEWBPk6p0FsXtMwB0E4FK2ubC/mnQcLh196Su7ds5sgtYh1hfNrmCoiYdDfFVQ2mO31UphGNi7jTPhEdCg9YW5RQY0KqurdSQhJ0xi00x7aPz5XSA7TkU03cerCl5KWAMXETBMg78KF4IVGORXFHR8uVJ4YADTcfQPD+UHS70yUFE+f30OpZapbVoAiPViEqM8e3Du1IExHnrmFtfODIu/Kk2X2QQBZb/2sZulNPutfJa1fVLXPFgIhsbi/grGBKuILhrPtEWrTnXAsdfqtklaD3mWGe0Ra/V6aDS1Yebjt4W/uK4WVbRRDBx+/3aEtAJ4X/eoMmnYe6jXG7viR754ty3NJA9DWfHUiXjPwSiXgDpAHQAc8wJRO8Xwa+PFGeS5r2lrXwOlq1+D6yPQqSM9GTzZYTfylabAsKl3ffmSGp8FQy1QhezBqNgwA4keH9pnpSQMDlAFDe0tgABA/dmi/GLbCEysptg4GAG3rh3dB3J3ULHS2FAYA1Wuu6zbwKOgrWg6zrqFpOJ4j/YrfBy45al8sf0tfryh9wmqKsizi25bswKSXvnz8Cy4B9gv8OEwoAAAAAElFTkSuQmCC",e:1},{id:"image_8",w:28,h:39,u:"",p:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAnCAYAAAAcsCj6AAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAADrklEQVRYhb2XTWwVVRTHf7evwEvBhWKMokabJk2EuNEu2EhiEFQUTIx2IwqaFlCDJmqIMSxeXChJpYT6FWJCqlWQFkmLBo07wPCxMH4sqIGEhQtDYlAJ2tfXzj1/FzPz3rzpTKv0tTeZ3Dtn5p7fPef+z9z3INW044uVaVsjW9MUi9O92nHkrvkDirP4iXfnD9iy9EcIVurVga55AbrS/QHSGaRevfZJ65wDAZBOY/46Jif7NThYmA/gKcyDtIrvruyZe2Cx+QySkAfz27X9w62NArq8B9q+7yKyVmQAAc496d57YXi2wOwIAeTPISO6mvHBYT2/99m5A5pGo30k7H0B2X5t631dUm5mrh2IPx9G56PLQrAP3mZLz3F1725vLNB0tQqppTa+7sMqP6l71069+NbS/wPMF83W3vXIHw1vFIEETmFP1EsTOI4g9xF3+BOuVAquEfjOGsy+DVWaANRA0diiCQZoEtwFsFFwvyALkC1BWoJU4bGOV5pzlyK/DEvCko6pRVxdCCBbACxHtrxugeF4o+vs9PlAszawjEjisWr3GFjCeTobaMQd6P0MYLoI20PRxE5gSnqVcl61JxfKHxSbt8VuM1Wq0uBC5NdUVx+XB2m1+oSKo3Fcu3F2nL3s+nsuxb6zI/x19BHMbqilj5qDaqREUaXtiegdx93Bvk+TrrOB3j9dS5VFGU0JZ0oaU3uNPK7wUtr1FKC631xBpbKhLpIsQD4IzKDJHXIH9/48I5BKpQdZIVcQSZAsrOTYniwjV+jLSl4dUM+8sRHzD2fIOl3g0YxIxel3Hd+7z98/Oy1QXTtbGQ/6qgqM01NXc+liz+vt6yxYFajNpSLjY4cxu34KaKb9UiyqhFqdTuYBm1QqNRGMDWD+nnBS8jiy+j5dh3EN1tk9uOKp/Agv/PMA5v+kSbuQLoMTZkWciki347gb2QrQomnVGkfrKLuhD/7OA/6nk1tb9i3gyg8PYrYZs/VIC+uOquQHwvG7Gx64aVbAOvhTXbcx5neDOmsRk4z2ovvyQFvDgFXwE5tWM2kfI7s1NFRFdsl9deiWhgMBtOG5ZVAeQepIfAjEjYtbXH//eNacaX5Ezdzc0f2/sejmVaCR8DQRmHdcvnpn3pxZAQHc0J4yResE+6a6p4HP/RM0a2AIHZqgpfA4ZiexALCOOQVG0DJu8aM4zmH+odz3GgWMm9atayew07QU29zw8F/p5w2LMG7u2LHzYJsol1c32ve0TWvXZgrnX5F0z/KsOpRxAAAAAElFTkSuQmCC",e:1},{id:"image_9",w:29,h:42,u:"",p:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAqCAYAAABP7FAaAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAD60lEQVRYhb2Xb2hVZRzHP79z7zTZJMWx9SZiJYER4ougP29yQQ7CMCwGaWTSGBYGlbFIX2QKQZM2WGGgEMFAMV3ImObE2Iv+vIjeRIhSEdGfVSNQdFfZds/v24t77t1z1/237c4Dh3POc37P83m+vz/PeQ4swdH/pe6u9D6qN/BTKTU1zdZKNul6Q3/+gi7geiWbuip97yutdOeAiW9vGXQmw153mu9Ic6mSndULeHBUbRKXZPz5dofdU8m2bjF1OORiOeJyNdu6uPedc2qPnaddIPh9yaF932hFLI4kQORcqdZn0e69cpUDLtYKQGDREkP3jeiRrPMalgMm4GvV+i3YvftGdafDZ4KUOzjgDojGJYEeGlVjdoZhF60ukHJAAS5urzt0/5iaJ6YYdbHBE1hOYO4ai1XVxphXTHtGtC5znTOCNhKFAkzgSoyMil+YmqH7x9Q0eY034pg9giZjFgg5hSRtETwsycxMZYarvAzuvaDW6Rs8K/GWi5Z8u1TcU5ptk2BZA+vef9LKrkxFSgfOavk43JfNsil2ttzM8JA0O7yCuUskvg3aE/XTWdqh/HKY7hlRexzzJnDXrzOsdZFOyq4wyFyY2ay6ouekDxEvAx+Vg0a9m21McN7Fve6kJYiTxMhnp8J7IPbcc16sB5NzwGPu33VKHWWhAH1brE8Rm2VkPFDg4ZVkwKAtf8Y+OxFPwBJ7ykGLEmn3sB6zLCMuVuRdGcasELo5LjWCkgnsDHYe7bRPKkIBdp9Sh4xhF8tCcOF+DjwEzX0GMukUDxx5pjiTS5bMS0N61Z3+UoCi4gviWmoSyfHD6ogH+zvtZkWoJNs1xOcSHUVum3tvJUAqnpjnQnF+TYqn8uCSa6+ZKTa6XEwXkirI2PBadIbrcHEibpqY4Vz3MTWXVZo/Xjyho4KuMGHC2BVUlki28H1Qv5dTt/Foxa9MnKLXQfkZx0l5hGWUr9uCBxLFid2M4GuHg1GK9jWr2DC41SaqbkF3HNf3LtYXZh+qCHYMeVUGGcEZIoZWpzl7uNMm545Z9SsTiwvA+pJJ5LM1i/GvwQDw4fHtVnGfVBUaRYxls7z+v7gpUAmHl8X0DD5vmWrj1QSNI34RiaqgPUmuvzF2nnzOztUCqxnKNH/kEySf6y6IjPGGiI3HtttP8wFCjf8ynYOalGgsJIzxV1psPLHDfpwvEGrcmLlzo6AWJknz+EKBUOMeSZAKXNx9eptdXCiwZmisgkdOnn7Bji8GWDNUTlrGVZbzymKBUENMu79TQwxNDu8Ob7N/bgl0/CItwG9trQzUA1gTNJqhxUXvB0/Y1C2DTkVY40o+rhcQ4D9Qr1wB2LWqAAAAAABJRU5ErkJggg==",e:1},{id:"image_10",w:42,h:70,u:"",p:"data:image/png;base64,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",e:1},{id:"image_11",w:67,h:55,u:"",p:"data:image/png;base64,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",e:1},{id:"image_12",w:88,h:106,u:"",p:"data:image/png;base64,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",e:1},{id:"image_13",w:90,h:107,u:"",p:"data:image/png;base64,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",e:1}],layers=[{ddd:0,ind:1,ty:2,nm:"\u53F3\u89E6\u89D2",parent:9,refId:"image_0",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:1,k:[{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:0,s:[0],e:[20]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:30,s:[20],e:[0]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:60,s:[0],e:[20]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:90,s:[20],e:[0]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:120,s:[0],e:[20]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:150,s:[20],e:[0]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:180,s:[0],e:[20]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:210,s:[20],e:[0]},{t:240}],ix:10},p:{a:0,k:[193.146,30.9,0],ix:2},a:{a:0,k:[3.25,56.25,0],ix:1},s:{a:0,k:[100,100,100],ix:6}},ao:0,ip:0,op:300,st:0,bm:0},{ddd:0,ind:2,ty:2,nm:"\u5DE6\u89E6\u89D2",parent:9,refId:"image_1",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:1,k:[{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:0,s:[0],e:[-20]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:30,s:[-20],e:[0]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:60,s:[0],e:[-20]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:90,s:[-20],e:[0]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:120,s:[0],e:[-20]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:150,s:[-20],e:[0]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:180,s:[0],e:[-20]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:210,s:[-20],e:[0]},{t:240}],ix:10},p:{a:0,k:[142.598,31.15,0],ix:2},a:{a:0,k:[66.75,56.5,0],ix:1},s:{a:0,k:[100,100,100],ix:6}},ao:0,ip:0,op:300,st:0,bm:0},{ddd:0,ind:3,ty:2,nm:"\u7741\u773C 2",parent:9,refId:"image_2",sr:1,ks:{o:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:0,s:[0],e:[0]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:102,s:[0],e:[100]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:103,s:[100],e:[100]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:138,s:[100],e:[0]},{t:139}],ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[167.386,118.854,0],ix:2},a:{a:0,k:[107,43,0],ix:1},s:{a:1,k:[{i:{x:[.833,.833,.833],y:[.833,.833,.833]},o:{x:[.167,.167,.167],y:[.167,.167,.167]},t:103,s:[100,35,100],e:[100,100,100]},{i:{x:[.833,.833,.833],y:[.833,.833,.833]},o:{x:[.167,.167,.167],y:[.167,.167,.167]},t:108,s:[100,100,100],e:[100,100,100]},{i:{x:[.833,.833,.833],y:[.833,.833,.833]},o:{x:[.167,.167,.167],y:[.167,.167,.167]},t:133,s:[100,100,100],e:[100,35,100]},{t:138}],ix:6}},ao:0,ip:0,op:300,st:0,bm:0},{ddd:0,ind:4,ty:2,nm:"\u95ED\u773C 2",parent:9,refId:"image_3",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[167.35,123.559,0],ix:2},a:{a:0,k:[97,7,0],ix:1},s:{a:0,k:[100,100,100],ix:6}},ao:0,ip:0,op:300,st:0,bm:0},{ddd:0,ind:6,ty:2,nm:"\u95ED\u773C",parent:9,refId:"image_3",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[167.35,123.559,0],ix:2},a:{a:0,k:[97,7,0],ix:1},s:{a:0,k:[100,100,100],ix:6}},ao:0,ip:0,op:300,st:0,bm:0},{ddd:0,ind:8,ty:2,nm:"\u95ED\u5634",parent:9,refId:"image_4",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[168.804,184.705,0],ix:2},a:{a:0,k:[31,9.5,0],ix:1},s:{a:0,k:[100,100,100],ix:6}},ao:0,ip:0,op:300,st:0,bm:0},{ddd:0,ind:9,ty:2,nm:"\u8111\u888B",refId:"image_5",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:0,s:[0],e:[-5]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:30,s:[-5],e:[0]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:60,s:[0],e:[5]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:90,s:[5],e:[0]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:120,s:[0],e:[-5]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:150,s:[-5],e:[0]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:180,s:[0],e:[5]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:210,s:[5],e:[0]},{t:240}],ix:10},p:{a:0,k:[224.85,392.35,0],ix:2},a:{a:0,k:[168.5,240,0],ix:1},s:{a:0,k:[100,100,100],ix:6}},ao:0,ip:0,op:300,st:0,bm:0},{ddd:0,ind:10,ty:2,nm:"\u8EAB\u4F53",refId:"image_6",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[224.603,432.311,0],ix:2},a:{a:0,k:[57,67.5,0],ix:1},s:{a:0,k:[100,100,100],ix:6}},ao:0,ip:0,op:300,st:0,bm:0},{ddd:0,ind:11,ty:2,nm:"1.png",cl:"png",refId:"image_7",sr:1,ks:{o:{a:1,k:[{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:135,s:[100],e:[0]},{t:150}],ix:11},r:{a:0,k:0,ix:10},p:{a:1,k:[{i:{x:.667,y:1},o:{x:.333,y:0},t:30,s:[223,298,0],e:[16,181.5,0],to:[-34.5,-19.417,0],ti:[34.5,19.417,0]},{t:150}],ix:2},a:{a:0,k:[13.5,18.5,0],ix:1},s:{a:0,k:[100,100,100],ix:6}},ao:0,ip:0,op:300,st:0,bm:0},{ddd:0,ind:12,ty:2,nm:"2.png",cl:"png",refId:"image_8",sr:1,ks:{o:{a:1,k:[{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:135,s:[100],e:[0]},{t:150}],ix:11},r:{a:0,k:0,ix:10},p:{a:1,k:[{i:{x:.667,y:1},o:{x:.333,y:0},t:30,s:[223,297,0],e:[431,206,0],to:[34.667,-15.167,0],ti:[-34.667,15.167,0]},{t:150}],ix:2},a:{a:0,k:[14,19.5,0],ix:1},s:{a:0,k:[100,100,100],ix:6}},ao:0,ip:0,op:300,st:0,bm:0},{ddd:0,ind:13,ty:2,nm:"3.png",cl:"png",refId:"image_9",sr:1,ks:{o:{a:1,k:[{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:135,s:[100],e:[0]},{t:150}],ix:11},r:{a:0,k:0,ix:10},p:{a:1,k:[{i:{x:.667,y:1},o:{x:.333,y:0},t:30,s:[222,300,0],e:[249,23,0],to:[4.5,-46.167,0],ti:[-4.5,46.167,0]},{t:150}],ix:2},a:{a:0,k:[14.5,21,0],ix:1},s:{a:0,k:[100,100,100],ix:6}},ao:0,ip:0,op:300,st:0,bm:0},{ddd:0,ind:14,ty:2,nm:"4.png",cl:"png",refId:"image_10",sr:1,ks:{o:{a:1,k:[{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:135,s:[100],e:[0]},{t:150}],ix:11},r:{a:0,k:0,ix:10},p:{a:1,k:[{i:{x:.667,y:1},o:{x:.333,y:0},t:30,s:[223,293,0],e:[393,86,0],to:[28.333,-34.5,0],ti:[-28.333,34.5,0]},{t:150}],ix:2},a:{a:0,k:[21,35,0],ix:1},s:{a:0,k:[100,100,100],ix:6}},ao:0,ip:0,op:300,st:0,bm:0},{ddd:0,ind:15,ty:2,nm:"5.png",cl:"png",refId:"image_11",sr:1,ks:{o:{a:1,k:[{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:135,s:[100],e:[0]},{t:150}],ix:11},r:{a:0,k:0,ix:10},p:{a:1,k:[{i:{x:.667,y:1},o:{x:.333,y:0},t:30,s:[211.5,296.5,0],e:[76,72,0],to:[-26.25,-25.75,0],ti:[22.583,37.417,0]},{t:150}],ix:2},a:{a:0,k:[33.5,27.5,0],ix:1},s:{a:0,k:[90,90,100],ix:6}},ao:0,ip:0,op:300,st:0,bm:0},{ddd:0,ind:16,ty:2,nm:"\u53F3\u624B",refId:"image_12",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:0,s:[0],e:[-5]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:30,s:[-5],e:[0]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:60,s:[0],e:[5]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:90,s:[5],e:[0]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:120,s:[0],e:[-5]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:150,s:[-5],e:[0]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:180,s:[0],e:[5]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:210,s:[5],e:[0]},{t:240}],ix:10},p:{a:0,k:[257.383,384.131,0],ix:2},a:{a:0,k:[14,11.25,0],ix:1},s:{a:0,k:[100,100,100],ix:6}},ao:0,ip:0,op:300,st:0,bm:0},{ddd:0,ind:17,ty:2,nm:"\u5DE6\u624B",refId:"image_13",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:0,s:[0],e:[5]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:30,s:[5],e:[0]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:60,s:[0],e:[-5]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:90,s:[-5],e:[0]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:120,s:[0],e:[5]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:150,s:[5],e:[0]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:180,s:[0],e:[-5]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:210,s:[-5],e:[0]},{t:240}],ix:10},p:{a:0,k:[198,382,0],ix:2},a:{a:0,k:[79.5,10.5,0],ix:1},s:{a:0,k:[100,100,100],ix:6}},ao:0,ip:0,op:300,st:0,bm:0}],markers=[];var startingData={v:v$1,fr,ip,op,w,h:h$1,nm,ddd,assets,layers,markers},iconEvaluatingStart="/orchestra-music-score/assets/icon-evaluatingStart.c1ce2873.png";let backtime=0;const initBehaviorId$2=""+new Date().valueOf(),evaluating=ref(!1),playStatus=ref("stop"),endloading=ref(!1),connentLoading=ref(!1),playUrl=ref(""),endResult=ref(null),browserInfo$3=browser(),formatPitch=B=>B?state$3.sett.hertz&&state$3.sett.hertz!==442?B/442*state$3.sett.hertz:B:-1;let starTime=0;const formatTimes=()=>{var Y,Q,Z,K,J,ie,ne,se,re,ae;const B=((Q=(Y=state$2.times)==null?void 0:Y[0])==null?void 0:Q.difftime)||0;let R=!1,F=!1,D=!1;const G=[];let U=state$2.times;if(unitTestData.isSelectMeasureMode){const le=state$2.times.findIndex(he=>he.NoteToGraphicalNoteObjectId==state$2.section[0].NoteToGraphicalNoteObjectId),ce=state$2.times.findIndex(he=>he.NoteToGraphicalNoteObjectId==state$2.section[1].NoteToGraphicalNoteObjectId);U=state$2.times.filter((he,de)=>de>=le&&de<=ce),starTime=U[0].sourceRelativeTime||U[0].relativeTime}let W=-1,q=-1;for(let le=0;le{var W,q,Y,Q;const B=useOriginSearch();connentLoading.value=!0;const R=sessionStorage.getItem("behaviorId")||B.behaviorId||initBehaviorId$2,F=state.speed/state$2.baseSpeed,D={musicXmlInfos:formatTimes(),subjectId:state$2.subjectId,detailId:(W=state$2.activeDetail)==null?void 0:W.id,examSongId:B.id,xmlUrl:(q=state$2==null?void 0:state$2.activeDetail)==null?void 0:q.xmlUrl,partIndex:state$2.partIndex,behaviorId:R,platform:"WEB",clientId:"STUDENT",hertz:state$3.sett.hertz,feature:"EVALUATION",practiceSource:B.unitId?"UNIT_TEST":"PRACTICE",reactionTimeMs:parseFloat(""+state$3.eva.reactionTimeMs)||0,speed:state.speed,heardLevel:state$3.eva.difficulty,beatLength:Math.round(state$2.times[0].fixtime*1e3/F)},G=useClientType();G==="student"?D.clientId="STUDENT":G==="teacher"?D.clientId="TEACHER":D.clientId="BACKEND",browserInfo$3.android&&(D.platform="ANDROID"),browserInfo$3.ios&&(D.platform="IOS");const U=await promisefiyPostMessage({api:"startEvaluating",content:D});if((Y=U==null?void 0:U.content)!=null&&Y.reson)throw Toast.fail({message:(Q=U==null?void 0:U.content)==null?void 0:Q.reson}),connentLoading.value=!1,U;connentLoading.value=!1},sendOffsetTime=B=>{postMessage$1({api:"proxyServiceMessage",content:{header:{commond:"audioPlayStart",type:"SOUND_COMPARE"},body:{offsetTime:B}}},()=>{backtime=0})},cancelTheEvaluation=()=>{const B=useOriginSearch();postMessage$1({api:"endEvaluating",content:{musicScoreId:B.id}}),playStatus.value="stop",pause(),resetPlayStatus(),clearIntervalTimeline(),setCurrentTime(0),Toast.clear()},stopPlay=()=>{console.log("\u8C03\u7528stopPlay"),connentLoading.value||cancelTheEvaluation(),startButtonShow.value=!0,connentLoading.value=!1,evaluating.value=!1},evaluatStopPlay=stopPlay,startPlay=()=>{console.log("\u8FDE\u63A5\u670D\u52A1\u6210\u529F,\u5F00\u59CB\u64AD\u653E",new Date().getTime()-state.clickTime),state$3.eva.mute?changeMode("background"):changeAllMode(),startButtonShow.value=!1,setPlayState()},setPlayer=async()=>{if(connentLoading.value)return;if(state.clickTime=new Date().getTime(),resetPlayStatus(),state$2.isPauseRecording){evaluating.value=!1,startPlay();return}state$2.evaluatings={};const B=Toast({duration:0,message:"\u670D\u52A1\u8FDE\u63A5\u4E2D...",type:"loading"});try{await connect(),startPlay(),setTimeout(()=>{console.log("\u5173\u95ED\u5F39\u7A97"),Toast.clear(),B.close()},100)}catch{state.evaluatingStatus=!1,Toast.clear()}},togglePlay=()=>{if(state$2.isPauseRecording){evaluating.value=!1,startPlay();return}evaluating.value?stopPlay():setPlayer()},timeupdate=()=>{var B;if(console.log("\u64AD\u653E\u4E8B\u4EF6\u88AB\u89E6\u53D1",playUrl.value,evaluating.value),playUrl.value){const R=new Date().getTime();console.log("\u7B2C\u4E00\u6B21\u64AD\u653E\u65F6\u95F4",R);let F=(B=state.audiosInstance)==null?void 0:B.audios[playUrl.value].currentTime;unitTestData.isSelectMeasureMode&&(F=F-state$2.section[0].time),console.log("\u5DF2\u64AD\u653E\u65F6\u957F: ",F*1e3),console.log("\u4E0D\u51CF\u6389\u5DF2\u64AD\u653E\u65F6\u95F4: ",R-backtime);const D=R-backtime-F*1e3;console.log("\u771F\u6B63\u64AD\u653E\u5EF6\u8FDF",D),setTimeout(()=>{sendOffsetTime(D)},220)}},playerStop=()=>{console.log("playerStop\u64AD\u653E\u5668\u505C\u6B62\u4E8B\u4EF6",endloading.value),!endloading.value&&(playStatus.value="stop",endloading.value=!0,startButtonShow.value=!0,resetPlayStatus(),clearIntervalTimeline(),setCurrentTime(0),Toast({duration:0,message:"\u8BC4\u5206\u4E2D...",type:"loading"}),postMessage$1({api:"endEvaluating",content:{musicScoreId:useOriginSearch().id}},B=>{console.log("\u8C03\u7528endEvaluating\u7ED3\u675F",B),endloading.value=!1,evaluating.value=!1}),endCapture())},endevent=B=>{var R;if(unitTestData.isSelectMeasureMode&&playStatus.value==="play"){playerStop(),canSubmit.value=!0;return}((R=B.target)==null?void 0:R.src)===playUrl.value&&playStatus.value==="play"&&(playerStop(),canSubmit.value=!0),state$2.isAppPlay&&(playerStop(),canSubmit.value=!0)},evaluatStart=()=>{if(playStatus.value="play",state$2.isPauseRecording){postMessage$1({api:"resumeRecording"},()=>{evaluating.value=!0,state$2.isPauseRecording=!1,setCaptureMode()});return}console.log("\u5F00\u59CB\u5F55\u97F3",new Date().getTime()),postMessage$1({api:"startRecording"},()=>{var B,R;console.log("\u5F00\u59CB\u5F55\u97F3\u56DE\u8C03\u65F6\u95F4",Date.now()),backtime=Date.now(),evaluating.value=!0,(B=state$2.activeDetail)!=null&&B.midiUrl&&(console.log("midiUrl",(R=state$2.activeDetail)==null?void 0:R.midiUrl),setTimeout(()=>{sendOffsetTime(0)},220))}),startCapture()},submitEvaluationScore=async B=>{var F;const R=useOriginSearch();if(R.unitId){if(!canSubmit.value){Toast("\u5B8C\u6574\u6F14\u594F\u7ED3\u675F\u624D\u7B97\u6D4B\u9A8C\u5206\u6570\uFF01");return}postMessage$1({api:"setCache",content:{key:"h5-orchestra-unit",value:JSON.stringify({musicId:R.id||"",unitId:R.unitId||"",questionId:R.questionId||"",score:canSubmit.value&&((F=endResult.value)==null?void 0:F.score)||0})}}),canSubmit.value=!1}},canSubmit=ref(!1),sendResult=B=>{var D,G;const{body:R,header:F}=(B==null?void 0:B.content)||{};if(console.log("\u8BC4\u6D4B\u8FD4\u56DE",R),R&&F){const U=(D=B==null?void 0:B.content)==null?void 0:D.body;if((B==null?void 0:B.content.header.commond)==="overall")Toast.clear(),endResult.value=U,evaluatingShow.value=!0,submitEvaluationScore();else if((B==null?void 0:B.content.header.commond)!=="checkDone"){if((B==null?void 0:B.content.header.commond)!=="checking"){const W=Y=>{for(;Y>=0;){const Q=state$2.times[Y];if(Q.stave)return Q;Y--}},q=(Y,Q,Z=!1)=>{const K=getBoundingBoxByverticalNote(Y);state$2.evaluatings={...state$2.evaluatings,[K.measureIndex]:{...K,...getLeveByScoreMeasure(Q.score),score:Q.score,dontTransition:Z}}};for(let Y=0;Y{var B;state.currentTimeNum>=((B=state$2.times[state$2.times.length-1])==null?void 0:B.time)-2&&(canSubmit.value=!0)},cloudMetronome=B=>{startButtonShow.value=!0};var Evaluating=defineComponent({name:"ColexiuButtonEvaluating",setup(B,{expose:R}){return onMounted(async()=>{var F,D,G,U;console.log("\u8FDB\u5165\u8BC4\u6D4B\u6A21\u5757"),handleCheckEvaluatStatus(),unitTestData.isSelectMeasureMode||(state$2.section=[],state$2.sectionStatus=!1),changeAllMode(),playUrl.value=state.songs.background||state.songs.music,(D=(F=state.audiosInstance)==null?void 0:F.audios[playUrl.value])==null||D.addEventListener("play",timeupdate),(U=(G=state.audiosInstance)==null?void 0:G.audios[playUrl.value])==null||U.addEventListener("timeupdate",onProgress),event$1.on("ended",endevent),listenerMessage("sendResult",sendResult),listenerMessage("cloudTimeUpdae",onProgress),event$1.on("tickDestroy",cloudMetronome),event$1.on("tickEnd",evaluatStart)}),onBeforeUnmount(()=>{var F,D,G,U;(D=(F=state.audiosInstance)==null?void 0:F.audios[playUrl.value])==null||D.removeEventListener("play",timeupdate),(U=(G=state.audiosInstance)==null?void 0:G.audios[playUrl.value])==null||U.removeEventListener("timeupdate",onProgress),event$1.off("ended",endevent),event$1.off("tickDestroy",cloudMetronome),removeListenerMessage("sendResult",sendResult),removeListenerMessage("cloudTimeUpdae",onProgress),event$1.off("tickEnd",evaluatStart)}),R({setPlayer,startPlay,stopPlay,togglePlay,playerStop,evaluating,connentLoading,playStatus,cancelTheEvaluation}),()=>createVNode(Teleport,{to:"body",key:"StartEvaluating"},{default:()=>[createVNode(Evaluating$1,{data:endResult.value},null),createVNode(Transition,{name:"finish"},{default:()=>[startButtonShow.value&&createVNode("div",{style:{backgroundImage:`url(${iconEvaluatingStart})`,transform:state$2.isSpecialShapedScreen?`translateX(${state$2.notchHeight/4}px)`:""},class:[styles$k.evaluatStartBtn],onClick:()=>{setPlayer()}},null)]}),evaluating.value?createVNode("div",{class:styles$k.dialogueBox,key:"starting"},[createVNode("div",{class:styles$k.inRadio},[createTextVNode("\u6536\u97F3\u4E2D...")]),createVNode(Vue3Lottie,{class:styles$k.inRadioIcon,animationData:startingData},null)]):createVNode("div",{class:styles$k.dialogueBox,key:"start"},[createVNode("div",{class:styles$k.dialogue},[createVNode("div",null,[createTextVNode("\u6F14\u594F\u524D\u8BF7\u8C03\u6574\u597D\u4E50\u5668\uFF0C\u4FDD\u8BC1\u6700\u4F73\u6F14\u594F\u72B6\u6001\u3002"),createVNode("span",{class:styles$k.triangle},null)])]),createVNode(Vue3Lottie,{class:styles$k.dialogueIcon,animationData:startData},null)])]})}}),iconCancel="/orchestra-music-score/assets/cancel.4bba8aaa.svg",iconConfirm="/orchestra-music-score/assets/confirm.0f8024da.svg";const permissionPopup=reactive({active:"earphone",show:!1});var InfoIcon="/orchestra-music-score/assets/info.df4a2cca.svg",iconTv="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAAXNSR0IArs4c6QAAB+ZJREFUWEftmHtsHEcdx7+/3T3nzja2UwmqChAxUAmaIhW1EVUQIU7dRLiNktRxKPSRxsZ2apRHjcmjoeRawjNJbTfFrh0gJLZJaycN0LqRm6hNCgk0lUAq/QdC4yBo1fJIHNfnx93O/NDs7u3jfHt2EG5VKSud7m73NzOf+c73NzszhPfZRe8zXlwBnukRu6Lwe6Ywv/jgDSBUg6kc4I+CuZB9NAQCw7vjDZX65Y9M/7PvB+PSFap4Ggbx3wAMgPWf0KIdf87W+UmW4BfjUcjxPWBUM6BZLTCcLweEFG4Qy6rIeWx9OTUH4tx6nOfpfpEbnmY0wWiFHt1CZXHTDx4A5t4HYlySdxzE8yfrZBcLux9mhcuKz+wA4VlcGFxOq/pEuv4g8LFNP2Mp12QfiqAFMmMyLRLaASIwBy2Ty/dE+CEt3rVlEjAf/cY8Jn4ZUDU6amr0GkBbkZc4QWVtIzOZUHxsczGEWALi77PEx11AQhJSu44qdr7ucxrAzz3QyUCtL/BVRCc+P9OgmSLwc+s+CDLOMGOOpyp/lypavhUAlv0bz4P5Y26Qpi2hiubnZ1LVsLr5aOPdLESX+5zojHZby+dcYI7HNb7xwgSDDeemoDcnYlTfmXpPgA9vvEZGxJsWC1lp+5a2dM81HvBAU4EcH3c9SkBCW/Z4YRr21R6ebQLtkvFJla4qZ6QABNszmRCABCAZ48z40eI6+nV/B39GprBDauhb1kDd2TretZubpMBNQuDB6q10Lh3DA00F7OOBj8eePlXA6OiIm7uEhL68zQX+4y94o2Q0S2lBeR/1XwGn70urA+eX1FNpfxsfEhKVEkgJDZ+qbPCAVJs9u7nMlHhB1ceMg9Wb6at+YDk6GhRwhc1jAx+4p0AWFo5Y0lkXJfTKdhf4Twf5pgmJl6REzAX2w0tbbefZoS+tpar+dt5uCsQtIGDfHeuo2q9y105+STK+oMqBsL16Ez3iAiueggIbWFmC4fJ4wPkxp0eWZxL6yk4XWJX7fTcXRQx8OJm0AK4XAr2OOq+QxOokAIOQWvgPnKM4yWfbeLYpMSgliiXDlAKfXtVIf7XU3cnlAjhmdVDi0jijtGErXQwAxxwe+03h8njA0ah/nk3oq/YGgP3qnNrH8wTjjNUgcHJRDS3M5tEje/gRyXjIUf7AlzfSahXXtYtPScZ8y2ISD9dspbi/vDXiITwe8Kw8D1gNwZ0/DQU+sY/nkQJWnqUcwM1cInUMCokSZpgsMdckzJECA04nhmgMpWviNJQJLPJsHnuS8Hg84EhkxLecSehf2ZcTGNJWmBknb6nNrrBqsK+VlY+3W51j9AjGJyTjZqezAe8GLBGJuJMAKYs6PC6w0HWfJThh3LU/JzA7wFLi5K114cC9HVzMYxgUArNV/4QEOepeTDFK67fQpUw7KUsIXRtR2egsdhL6XT8PzhKCKDCN6PccyAkshadwLmAF8+Sj/G3BeNg/wzDhoepNtCOb9y0Pa+RTGAn9bpvHUxgcSDrj3u7cwCbOOC+Ok4tzKKwa6X6MiyhlefkqB/rCyBhK18dpOAxYhPB4wFJ6HiZKGKt7QoEH9nKpDpxzPHx4ST2tzNaw/173bt4mJHY4M8u2mk30vbAyliUsHvdKGPfZPB6waToTtT3vGWsOhgKrgON7uU5KzDeB71TUk7X0y3V11HEkei1+oJJtzhg2l8UpsJPInCVMM2XPEgqRPB4POJX0eYYSRs2TOYFD1XlhW6VkeZtGOI/8WS10czzrsOfqnFLYTCUdYEfAmqd8CvdW6WKYJpih21nJpl6MqH9rMpWCVqnjm1uYeUM6lkB/wXhyES1tfmM65dMx3L7iQ6ZhvO3Vg38atX1Xu5ZQP8zOlX9nxkfcijUsiNQe+s10G+Kjja0MrLfirfd/ekfKZ0mg7HKgzc7KSgYd8trmP0TqDt+YAXzHfpa41xZYbcfptP62XkbxPrVMyHnxMxtamRzYzEgb/CwhWUZLn5hSaf5xVaGpmy+DcZ39mrMwd0XWHv5mAJjbVnzRBJ9w27NXSb81DGqkuqdfCSMWv2xoJdD6bNtK+61qPyHGWUrJMlqVHVppZLavWABwM4DPuqNEavVKN8y6/8hrAWD1J9W27AgYy71lpruvTwDwTTP2QQIVFc2iWH7JVCPgOkSICXnxP0MwRdA2ajw1+gAz56dH2PUvUYfx9V+t9fnZ55SO8mIzGTvFwNypziW0wkJQvl2/5SIfdfipkEpnAR66aC3TJpVN+945qAHRaePfw7dQ/MR4VmCr4eblJaZmdjH49swhSENpBQVALOYe71zWYYnqmhCQly4FoANA9tFFT0Tk11Fj35h/BCcdVaUfploqbiXC15i5nIGrLA8oo+Xng6IK1juOClgiKPXk86z0cykgh4ddaM0+p/mXJHo+QtROG/pPZ7NaKLA/mHcuLkAkWigL85tYQ1PgmQ/QTWo3IOzA0O4HgV/XJybKMfHOGOToMDX+LqDm/wxsWYVBYm/VEIOLfAmR9dhJbc2zH0dNNg8R3WnU9j01VeKGejisIMcXGubVs98BELWzLKe0vkzOHUeM+4yGI/v/78CqwuTjt7eB6f7Myv2+mq6FnRR4azSVnFvcOHBhRoC5t0pPvTG6jkguAFHe9BvJOPlktRWk8yldezS27pnB6dYTlueXU/5dj53WLPGuU+Vo8ArwTI/GfwFJHAtpqisYAwAAAABJRU5ErkJggg==",iconYijian="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAAXNSR0IArs4c6QAABThJREFUWEftmH9oVWUYx7/PuXebGjYUocQgWGE/IIIiKTKoRLNs4syZMjV/NOdm2qSa2gRXlOZCJKekA39srqWbWc4fKzJEDf9RsSQLpDL6o8CYmT+7u+d9vvGee852tXT3znNZgoeN97znfe97P+d7nvt9nvcIbrBDbjBe3ATO9BO7qfCVCnNf5UwY8zjIwzJsWc31PoGMKsw9FWVUrAYJgBBiGyKR6TJ82V/dBc8YMD8vf4h0DoLMSQBbZtpf+c8Q86KMWnW4O9AZAWbTzFz07nVEybsC0EBlEBAwJsAbUvBh2iGSEWD9tHQriRdsGNg/DzZQOemaQ31OJqxvTUfp0IHdpuLJAOr9mAW9MKDP64MHNyEyKlq0cXePAnPlszk6YOASUMsJOh0KJ6sNLyx+cMR5RKZsutAjwFZIsVL6BzdNGm6UdSAHJlS2UWGdglbvS1HKEHl5y3fpwNq5oYUEv1rYCPA4nn5vSQDOtRMHmIhZR3J0chw7YEmkZFtturChAXNPxUtUbPTiVmQXTHyKjFxxOgAyawpmqepyEH1EsDlatn1id2BDAebOeXmIOkdJ3tphYcAvEnHGyTPLj3SESE3+vS713Sh0msxtPdsjwGwqjLDPoAMAH+sA8+3LAf9Wg/LImJq13YX7r89dVwxzx9zFSlb9y2P9rJZQHPVOllsq+bUXwwDvNjBb5jyqqgdARpNTbweUXz9Y33BEPpBxa8t7DJjbp/elm/0NwbxOWD+j+bJ2GhxOOVnRB2TsmlM9Bmy2Fm+AcmoCqjOLBV6b5MaIODJGJmzYHgZst1yCm2cUGmpTIOTlaTfIGn45KbI+Mql+RliwaQOzoegOlaxvSe2fZGGJAidIvX4rgpOOm/OgzFh/rseAtX5yi5L5V8IlgPzKzCYPwDiCp2Ta5gNhwqatsKkrqqbqayQd8fg6a4TLFAfezypurggbNm1gT8d1hUNVpVbJ+/xY6Kx1rZWJHIvGLg6Rua2x/wWwB91UmO22mTcFXECgcwsExqLgEClrOWbn7a1itHceRriKfqqQuELaDZy4C3EVEjNwXBeiRNvJC9hRVSVuVzeZcuLgnvmzoTwrI6o3BYtydcF9BqaWyqGeHwvmZ83ZWR2MH2nglrhifNwArgHabauA7QfX4gq4LhAn6koWytTwgHeV76fqEyD2x2HKckavPu6pTYiufL5EqcOjZ3YXShU0+NJDH7HNddE/APQgk4A7oBPXf5pVKXeHAswvXr+F58+dJpHt17VxUFc4sfa3r7VjONTAd9pdVFp1PWgf1oO2qnb2jeuivHSRrAoHuHHqSEO0JqyLgHp1b5MDLZfJDb9f60sO1nGQa5AbM6Aq6Mahl+y5AS+6oCNe/3TJAknpXUVKMWw2Fi1TNRXe9oY4AeorWcXNX3alRibGUwJ214xtATmM5NLogKxqGd/cngmYVNZMCdjU5M9rV3zS+9Udv6ayaCbnpAT89Tr27dML41WR69rkZq1IISZwCb9vQV0DsTZh56kCVL9vEhte418Pxm2fQJuJoX52lZzv6mZTAj76MfcaxZMWQAkYv73qeRfjyZ+3a5pEGfJZWaUUhAPcyDNGkWsXDqC7gr3aXAtrjSYY99rE/4nZi+SeUICPNLKciqWG6NWh8tXgfcU8iCvOr/F02kiUli2S5lCAg7qg78PIxm9Ae79EBRy7kGgv3QbiR+DO2+2bFCDvT9Du7wcPBrEP+OP+xLzC78G3ACxenOiL2PBN70gphtNbMrOzbwJnVt8QXwZmGjRY/4YLiX8Az9RfWpuTLy8AAAAASUVORK5CYII=";const setting="_setting_kd176_1",sliderWrap="_sliderWrap_kd176_44",slider="_slider_kd176_44",noticebar="_noticebar_kd176_68",groupBox="_groupBox_kd176_74",btnsbar="_btnsbar_kd176_93",btn$2="_btn_kd176_93",iconBtn="_iconBtn_kd176_115",radioGroup="_radioGroup_kd176_120";var styles$j={setting,sliderWrap,slider,noticebar,groupBox,btnsbar,btn:btn$2,iconBtn,radioGroup};const tabs$1="_tabs_e40bs_1";var styles$i={tabs:tabs$1};const show=ref(!1);var HelperPopup=defineComponent({name:"HelperPopup",setup(){return()=>createVNode(Popup,{show:show.value,position:"right",round:!0,teleport:"body",onClickOverlay:()=>show.value=!1,style:{height:"100vh",width:"40vw",overflow:"hidden"}},{default:()=>[createVNode(Tabs,{class:styles$i.tabs},{default:()=>[createVNode(Tab,{title:"\u6295\u5C4F"},{default:()=>[createVNode("iframe",{src:location.origin+"/orchestra-student/#/guide"},null)]}),createVNode(Tab,{title:"\u5E2E\u52A9"},{default:()=>[createVNode("iframe",{src:location.origin+"/orchestra-student/#/help-center?source=music"},null)]})]})]})}}),raf$1={exports:{}},performanceNow={exports:{}};(function(){var B,R,F,D,G,U;typeof performance!="undefined"&&performance!==null&&performance.now?performanceNow.exports=function(){return performance.now()}:typeof process!="undefined"&&process!==null&&process.hrtime?(performanceNow.exports=function(){return(B()-G)/1e6},R=process.hrtime,B=function(){var W;return W=R(),W[0]*1e9+W[1]},D=B(),U=process.uptime()*1e9,G=D-U):Date.now?(performanceNow.exports=function(){return Date.now()-F},F=Date.now()):(performanceNow.exports=function(){return new Date().getTime()-F},F=new Date().getTime())}).call(commonjsGlobal$2);var now=performanceNow.exports,root=typeof window=="undefined"?commonjsGlobal$2:window,vendors=["moz","webkit"],suffix="AnimationFrame",raf=root["request"+suffix],caf=root["cancel"+suffix]||root["cancelRequest"+suffix];for(var i$1=0;!raf&&i$13&&(this.alpha=q[3]),this.ok=!0}}this.r=this.r<0||isNaN(this.r)?0:this.r>255?255:this.r,this.g=this.g<0||isNaN(this.g)?0:this.g>255?255:this.g,this.b=this.b<0||isNaN(this.b)?0:this.b>255?255:this.b,this.alpha=this.alpha<0?0:this.alpha>1||isNaN(this.alpha)?1:this.alpha,this.toRGB=function(){return"rgb("+this.r+", "+this.g+", "+this.b+")"},this.toRGBA=function(){return"rgba("+this.r+", "+this.g+", "+this.b+", "+this.alpha+")"},this.toHex=function(){var Y=this.r.toString(16),Q=this.g.toString(16),Z=this.b.toString(16);return Y.length==1&&(Y="0"+Y),Q.length==1&&(Q="0"+Q),Z.length==1&&(Z="0"+Z),"#"+Y+Q+Z},this.getHelpXML=function(){for(var Y=new Array,Q=0;Q "+se.toRGB()+" -> "+se.toHex());ne.appendChild(re),ne.appendChild(ae),ie.appendChild(ne)}catch{}return ie}};/*! ***************************************************************************** Copyright (c) Microsoft Corporation. Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */var t=function(B,R){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(F,D){F.__proto__=D}||function(F,D){for(var G in D)Object.prototype.hasOwnProperty.call(D,G)&&(F[G]=D[G])})(B,R)};function r(B,R){if(typeof R!="function"&&R!==null)throw new TypeError("Class extends value "+String(R)+" is not a constructor or null");function F(){this.constructor=B}t(B,R),B.prototype=R===null?Object.create(R):(F.prototype=R.prototype,new F)}function e(B){var R="";Array.isArray(B)||(B=[B]);for(var F=0;FB.phi1&&(B.phi2-=2*n),B.sweepFlag===1&&B.phi2D)return[];if(D===0)return[[B*F/(B*B+R*R),R*F/(B*B+R*R)]];var G=Math.sqrt(D);return[[(B*F+R*G)/(B*B+R*R),(R*F-B*G)/(B*B+R*R)],[(B*F-R*G)/(B*B+R*R),(R*F+B*G)/(B*B+R*R)]]}var u,h=Math.PI/180;function c$1(B,R,F){return(1-F)*B+F*R}function y(B,R,F,D){return B+Math.cos(D/180*n)*R+Math.sin(D/180*n)*F}function p(B,R,F,D){var G=1e-6,U=R-B,W=F-R,q=3*U+3*(D-F)-6*W,Y=6*(W-U),Q=3*U;return Math.abs(q)fe&&(ie.sweepFlag=+!ie.sweepFlag),ie})}function W(){return function(q){var Y={};for(var Q in q)Y[Q]=q[Q];return Y}}B.ROUND=function(q){function Y(Q){return Math.round(Q*q)/q}return q===void 0&&(q=1e13),a(q),function(Q){return Q.x1!==void 0&&(Q.x1=Y(Q.x1)),Q.y1!==void 0&&(Q.y1=Y(Q.y1)),Q.x2!==void 0&&(Q.x2=Y(Q.x2)),Q.y2!==void 0&&(Q.y2=Y(Q.y2)),Q.x!==void 0&&(Q.x=Y(Q.x)),Q.y!==void 0&&(Q.y=Y(Q.y)),Q.rX!==void 0&&(Q.rX=Y(Q.rX)),Q.rY!==void 0&&(Q.rY=Y(Q.rY)),Q}},B.TO_ABS=R,B.TO_REL=function(){return G(function(q,Y,Q){return q.relative||(q.x1!==void 0&&(q.x1-=Y),q.y1!==void 0&&(q.y1-=Q),q.x2!==void 0&&(q.x2-=Y),q.y2!==void 0&&(q.y2-=Q),q.x!==void 0&&(q.x-=Y),q.y!==void 0&&(q.y-=Q),q.relative=!0),q})},B.NORMALIZE_HVZ=function(q,Y,Q){return q===void 0&&(q=!0),Y===void 0&&(Y=!0),Q===void 0&&(Q=!0),G(function(Z,K,J,ie,ne){if(isNaN(ie)&&!(Z.type&_.MOVE_TO))throw new Error("path must start with moveto");return Y&&Z.type&_.HORIZ_LINE_TO&&(Z.type=_.LINE_TO,Z.y=Z.relative?0:J),Q&&Z.type&_.VERT_LINE_TO&&(Z.type=_.LINE_TO,Z.x=Z.relative?0:K),q&&Z.type&_.CLOSE_PATH&&(Z.type=_.LINE_TO,Z.x=Z.relative?ie-K:ie,Z.y=Z.relative?ne-J:ne),Z.type&_.ARC&&(Z.rX===0||Z.rY===0)&&(Z.type=_.LINE_TO,delete Z.rX,delete Z.rY,delete Z.xRot,delete Z.lArcFlag,delete Z.sweepFlag),Z})},B.NORMALIZE_ST=F,B.QT_TO_C=D,B.INFO=G,B.SANITIZE=function(q){q===void 0&&(q=0),a(q);var Y=NaN,Q=NaN,Z=NaN,K=NaN;return G(function(J,ie,ne,se,re){var ae=Math.abs,le=!1,ce=0,he=0;if(J.type&_.SMOOTH_CURVE_TO&&(ce=isNaN(Y)?0:ie-Y,he=isNaN(Q)?0:ne-Q),J.type&(_.CURVE_TO|_.SMOOTH_CURVE_TO)?(Y=J.relative?ie+J.x2:J.x2,Q=J.relative?ne+J.y2:J.y2):(Y=NaN,Q=NaN),J.type&_.SMOOTH_QUAD_TO?(Z=isNaN(Z)?ie:2*ie-Z,K=isNaN(K)?ne:2*ne-K):J.type&_.QUAD_TO?(Z=J.relative?ie+J.x1:J.x1,K=J.relative?ne+J.y1:J.y2):(Z=NaN,K=NaN),J.type&_.LINE_COMMANDS||J.type&_.ARC&&(J.rX===0||J.rY===0||!J.lArcFlag)||J.type&_.CURVE_TO||J.type&_.SMOOTH_CURVE_TO||J.type&_.QUAD_TO||J.type&_.SMOOTH_QUAD_TO){var de=J.x===void 0?0:J.relative?J.x:J.x-ie,me=J.y===void 0?0:J.relative?J.y:J.y-ne;ce=isNaN(Z)?J.x1===void 0?ce:J.relative?J.x:J.x1-ie:Z-ie,he=isNaN(K)?J.y1===void 0?he:J.relative?J.y:J.y1-ne:K-ne;var fe=J.x2===void 0?0:J.relative?J.x:J.x2-ie,ge=J.y2===void 0?0:J.relative?J.y:J.y2-ne;ae(de)<=q&&ae(me)<=q&&ae(ce)<=q&&ae(he)<=q&&ae(fe)<=q&&ae(ge)<=q&&(le=!0)}return J.type&_.CLOSE_PATH&&ae(ie-se)<=q&&ae(ne-re)<=q&&(le=!0),le?[]:J})},B.MATRIX=U,B.ROTATE=function(q,Y,Q){Y===void 0&&(Y=0),Q===void 0&&(Q=0),a(q,Y,Q);var Z=Math.sin(q),K=Math.cos(q);return U(K,Z,-Z,K,Y-Y*K+Q*Z,Q-Y*Z-Q*K)},B.TRANSLATE=function(q,Y){return Y===void 0&&(Y=0),a(q,Y),U(1,0,0,1,q,Y)},B.SCALE=function(q,Y){return Y===void 0&&(Y=q),a(q,Y),U(q,0,0,Y,0,0)},B.SKEW_X=function(q){return a(q),U(1,0,Math.atan(q),1,0,0)},B.SKEW_Y=function(q){return a(q),U(1,Math.atan(q),0,1,0,0)},B.X_AXIS_SYMMETRY=function(q){return q===void 0&&(q=0),a(q),U(-1,0,0,1,q,0)},B.Y_AXIS_SYMMETRY=function(q){return q===void 0&&(q=0),a(q),U(1,0,0,-1,0,q)},B.A_TO_C=function(){return G(function(q,Y,Q){return _.ARC===q.type?function(Z,K,J){var ie,ne,se,re;Z.cX||o(Z,K,J);for(var ae=Math.min(Z.phi1,Z.phi2),le=Math.max(Z.phi1,Z.phi2)-ae,ce=Math.ceil(le/90),he=new Array(ce),de=K,me=J,fe=0;feK.maxX&&(K.maxX=ke),keK.maxY&&(K.maxY=ke),keMe&&re(m$1(ie,se.x1,se.x2,se.x,Me));for(var he=0,de=p(ne,se.y1,se.y2,se.y);heMe&&ae(m$1(ne,se.y1,se.y2,se.y,Me))}if(se.type&_.ARC){re(se.x),ae(se.y),o(se,ie,ne);for(var me=se.xRot/180*Math.PI,fe=Math.cos(me)*se.rX,ge=Math.sin(me)*se.rX,Se=-Math.sin(me)*se.rY,Ee=Math.cos(me)*se.rY,ve=se.phi1se.phi2?[se.phi2+360,se.phi1+360]:[se.phi2,se.phi1],xe=ve[0],Pe=ve[1],ye=function(ke){var Ne=ke[0],Ie=ke[1],Ge=180*Math.atan2(Ie,Ne)/Math.PI;return Gexe&&Mexe&&MeZ)throw new SyntaxError('Expected positive number, got "'+Z+'" at index "'+W+'"')}else if((this.curArgs.length===3||this.curArgs.length===4)&&this.curNumber!=="0"&&this.curNumber!=="1")throw new SyntaxError('Expected a flag, got "'+this.curNumber+'" at index "'+W+'"')}this.curArgs.push(Z),this.curArgs.length===N[this.curCommandType]&&(_.HORIZ_LINE_TO===this.curCommandType?U({type:_.HORIZ_LINE_TO,relative:this.curCommandRelative,x:Z}):_.VERT_LINE_TO===this.curCommandType?U({type:_.VERT_LINE_TO,relative:this.curCommandRelative,y:Z}):this.curCommandType===_.MOVE_TO||this.curCommandType===_.LINE_TO||this.curCommandType===_.SMOOTH_QUAD_TO?(U({type:this.curCommandType,relative:this.curCommandRelative,x:this.curArgs[0],y:this.curArgs[1]}),_.MOVE_TO===this.curCommandType&&(this.curCommandType=_.LINE_TO)):this.curCommandType===_.CURVE_TO?U({type:_.CURVE_TO,relative:this.curCommandRelative,x1:this.curArgs[0],y1:this.curArgs[1],x2:this.curArgs[2],y2:this.curArgs[3],x:this.curArgs[4],y:this.curArgs[5]}):this.curCommandType===_.SMOOTH_CURVE_TO?U({type:_.SMOOTH_CURVE_TO,relative:this.curCommandRelative,x2:this.curArgs[0],y2:this.curArgs[1],x:this.curArgs[2],y:this.curArgs[3]}):this.curCommandType===_.QUAD_TO?U({type:_.QUAD_TO,relative:this.curCommandRelative,x1:this.curArgs[0],y1:this.curArgs[1],x:this.curArgs[2],y:this.curArgs[3]}):this.curCommandType===_.ARC&&U({type:_.ARC,relative:this.curCommandRelative,rX:this.curArgs[0],rY:this.curArgs[1],xRot:this.curArgs[2],lArcFlag:this.curArgs[3],sweepFlag:this.curArgs[4],x:this.curArgs[5],y:this.curArgs[6]})),this.curNumber="",this.curNumberHasExpDigits=!1,this.curNumberHasExp=!1,this.curNumberHasDecimal=!1,this.canParseCommandOrComma=!0}if(!T(q))if(q===","&&this.canParseCommandOrComma)this.canParseCommandOrComma=!1;else if(q!=="+"&&q!=="-"&&q!==".")if(Q)this.curNumber=q,this.curNumberHasDecimal=!1;else{if(this.curArgs.length!==0)throw new SyntaxError("Unterminated command at index "+W+".");if(!this.canParseCommandOrComma)throw new SyntaxError('Unexpected character "'+q+'" at index '+W+". Command cannot follow comma");if(this.canParseCommandOrComma=!1,q!=="z"&&q!=="Z")if(q==="h"||q==="H")this.curCommandType=_.HORIZ_LINE_TO,this.curCommandRelative=q==="h";else if(q==="v"||q==="V")this.curCommandType=_.VERT_LINE_TO,this.curCommandRelative=q==="v";else if(q==="m"||q==="M")this.curCommandType=_.MOVE_TO,this.curCommandRelative=q==="m";else if(q==="l"||q==="L")this.curCommandType=_.LINE_TO,this.curCommandRelative=q==="l";else if(q==="c"||q==="C")this.curCommandType=_.CURVE_TO,this.curCommandRelative=q==="c";else if(q==="s"||q==="S")this.curCommandType=_.SMOOTH_CURVE_TO,this.curCommandRelative=q==="s";else if(q==="q"||q==="Q")this.curCommandType=_.QUAD_TO,this.curCommandRelative=q==="q";else if(q==="t"||q==="T")this.curCommandType=_.SMOOTH_QUAD_TO,this.curCommandRelative=q==="t";else{if(q!=="a"&&q!=="A")throw new SyntaxError('Unexpected character "'+q+'" at index '+W+".");this.curCommandType=_.ARC,this.curCommandRelative=q==="a"}else D.push({type:_.CLOSE_PATH}),this.canParseCommandOrComma=!0,this.curCommandType=-1}else this.curNumber=q,this.curNumberHasDecimal=q==="."}else this.curNumber+=q,this.curNumberHasDecimal=!0;else this.curNumber+=q;else this.curNumber+=q,this.curNumberHasExp=!0;else this.curNumber+=q,this.curNumberHasExpDigits=this.curNumberHasExp}return D},R.prototype.transform=function(F){return Object.create(this,{parse:{value:function(D,G){G===void 0&&(G=[]);for(var U=0,W=Object.getPrototypeOf(this).parse.call(this,D);U>de;if(W[ce+3]=yt,yt!==0){var Fe=255/yt;W[ce]=(ke*he>>de)*Fe,W[ce+1]=(Ne*he>>de)*Fe,W[ce+2]=(Ie*he>>de)*Fe}else W[ce]=W[ce+1]=W[ce+2]=0;ke-=Le,Ne-=we,Ie-=Ae,Ge-=Me,Le-=re.r,we-=re.g,Ae-=re.b,Me-=re.a;var _e=dt+U+1;_e=le+(_e>de,ut>0?(ut=255/ut,W[oi]=(Pt*he>>de)*ut,W[oi+1]=(kt*he>>de)*ut,W[oi+2]=(Yt*he>>de)*ut):W[oi]=W[oi+1]=W[oi+2]=0,Pt-=ht,kt-=vt,Yt-=xt,fi-=gt,ht-=re.r,vt-=re.g,xt-=re.b,gt-=re.a,oi=tt+((oi=_t+Z)0&&arguments[0]!==void 0?arguments[0]:{};const R={window:null,ignoreAnimation:!0,ignoreMouse:!0,DOMParser:B,createCanvas(F,D){return new OffscreenCanvas(F,D)},async createImage(F){const G=await(await fetch(F)).blob();return await createImageBitmap(G)}};return(typeof globalThis.DOMParser!="undefined"||typeof B=="undefined")&&Reflect.deleteProperty(R,"DOMParser"),R}function node(B){let{DOMParser:R,canvas:F,fetch:D}=B;return{window:null,ignoreAnimation:!0,ignoreMouse:!0,DOMParser:R,fetch:D,createCanvas:F.createCanvas,createImage:F.loadImage}}var index=Object.freeze({__proto__:null,offscreen,node});function compressSpaces(B){return B.replace(/(?!\u3000)\s+/gm," ")}function trimLeft(B){return B.replace(/^[\n \t]+/,"")}function trimRight(B){return B.replace(/[\n \t]+$/,"")}function toNumbers(B){const R=B.match(/-?(\d+(?:\.\d*(?:[eE][+-]?\d+)?)?|\.\d+)(?=\D|$)/gm);return R?R.map(parseFloat):[]}function toMatrixValue(B){const R=toNumbers(B);return[R[0]||0,R[1]||0,R[2]||0,R[3]||0,R[4]||0,R[5]||0]}const allUppercase=/^[A-Z-]+$/;function normalizeAttributeName(B){return allUppercase.test(B)?B.toLowerCase():B}function parseExternalUrl(B){const R=/url\(('([^']+)'|"([^"]+)"|([^'")]+))\)/.exec(B);return R&&(R[2]||R[3]||R[4])||""}function normalizeColor(B){if(!B.startsWith("rgb"))return B;let R=3;return B.replace(/\d+(\.\d+)?/g,(D,G)=>R--&&G?String(Math.round(parseFloat(D))):D)}const attributeRegex=/(\[[^\]]+\])/g,idRegex=/(#[^\s+>~.[:]+)/g,classRegex=/(\.[^\s+>~.[:]+)/g,pseudoElementRegex=/(::[^\s+>~.[:]+|:first-line|:first-letter|:before|:after)/gi,pseudoClassWithBracketsRegex=/(:[\w-]+\([^)]*\))/gi,pseudoClassRegex=/(:[^\s+>~.[:]+)/g,elementRegex=/([^\s+>~.[:]+)/g;function findSelectorMatch(B,R){const F=R.exec(B);return F?[B.replace(R," "),F.length]:[B,0]}function getSelectorSpecificity(B){const R=[0,0,0];let F=B.replace(/:not\(([^)]*)\)/g," $1 ").replace(/{[\s\S]*/gm," "),D=0;return[F,D]=findSelectorMatch(F,attributeRegex),R[1]+=D,[F,D]=findSelectorMatch(F,idRegex),R[0]+=D,[F,D]=findSelectorMatch(F,classRegex),R[1]+=D,[F,D]=findSelectorMatch(F,pseudoElementRegex),R[2]+=D,[F,D]=findSelectorMatch(F,pseudoClassWithBracketsRegex),R[1]+=D,[F,D]=findSelectorMatch(F,pseudoClassRegex),R[1]+=D,F=F.replace(/[*\s+>~]/g," ").replace(/[#.]/g," "),[F,D]=findSelectorMatch(F,elementRegex),R[2]+=D,R.join("")}const PSEUDO_ZERO=1e-8;function vectorMagnitude(B){return Math.sqrt(Math.pow(B[0],2)+Math.pow(B[1],2))}function vectorsRatio(B,R){return(B[0]*R[0]+B[1]*R[1])/(vectorMagnitude(B)*vectorMagnitude(R))}function vectorsAngle(B,R){return(B[0]*R[1]0&&arguments[0]!==void 0?arguments[0]:" ";const{document:F,name:D}=this;return compressSpaces(this.getString()).trim().split(R).map(G=>new Property(F,D,G))}hasValue(R){const F=this.value;return F!==null&&F!==""&&(R||F!==0)&&typeof F!="undefined"}isString(R){const{value:F}=this,D=typeof F=="string";return!D||!R?D:R.test(F)}isUrlDefinition(){return this.isString(/^url\(/)}isPixels(){if(!this.hasValue())return!1;const R=this.getString();switch(!0){case R.endsWith("px"):case/^[0-9]+$/.test(R):return!0;default:return!1}}setValue(R){return this.value=R,this}getValue(R){return typeof R=="undefined"||this.hasValue()?this.value:R}getNumber(R){if(!this.hasValue())return typeof R=="undefined"?0:parseFloat(R);const{value:F}=this;let D=parseFloat(F);return this.isString(/%$/)&&(D/=100),D}getString(R){return typeof R=="undefined"||this.hasValue()?typeof this.value=="undefined"?"":String(this.value):String(R)}getColor(R){let F=this.getString(R);return this.isNormalizedColor||(this.isNormalizedColor=!0,F=normalizeColor(F),this.value=F),F}getDpi(){return 96}getRem(){return this.document.rootEmSize}getEm(){return this.document.emSize}getUnits(){return this.getString().replace(/[0-9.-]/g,"")}getPixels(R){let F=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(!this.hasValue())return 0;const[D,G]=typeof R=="boolean"?[void 0,R]:[R],{viewPort:U}=this.document.screen;switch(!0){case this.isString(/vmin$/):return this.getNumber()/100*Math.min(U.computeSize("x"),U.computeSize("y"));case this.isString(/vmax$/):return this.getNumber()/100*Math.max(U.computeSize("x"),U.computeSize("y"));case this.isString(/vw$/):return this.getNumber()/100*U.computeSize("x");case this.isString(/vh$/):return this.getNumber()/100*U.computeSize("y");case this.isString(/rem$/):return this.getNumber()*this.getRem();case this.isString(/em$/):return this.getNumber()*this.getEm();case this.isString(/ex$/):return this.getNumber()*this.getEm()/2;case this.isString(/px$/):return this.getNumber();case this.isString(/pt$/):return this.getNumber()*this.getDpi()*(1/72);case this.isString(/pc$/):return this.getNumber()*15;case this.isString(/cm$/):return this.getNumber()*this.getDpi()/2.54;case this.isString(/mm$/):return this.getNumber()*this.getDpi()/25.4;case this.isString(/in$/):return this.getNumber()*this.getDpi();case(this.isString(/%$/)&&G):return this.getNumber()*this.getEm();case this.isString(/%$/):return this.getNumber()*U.computeSize(D);default:{const W=this.getNumber();return F&&W<1?W*U.computeSize(D):W}}}getMilliseconds(){return this.hasValue()?this.isString(/ms$/)?this.getNumber():this.getNumber()*1e3:0}getRadians(){if(!this.hasValue())return 0;switch(!0){case this.isString(/deg$/):return this.getNumber()*(Math.PI/180);case this.isString(/grad$/):return this.getNumber()*(Math.PI/200);case this.isString(/rad$/):return this.getNumber();default:return this.getNumber()*(Math.PI/180)}}getDefinition(){const R=this.getString(),F=/#([^)'"]+)/.exec(R),D=(F==null?void 0:F[1])||R;return this.document.definitions[D]}getFillStyleDefinition(R,F){let D=this.getDefinition();if(!D)return null;if(typeof D.createGradient=="function"&&"getBoundingBox"in R)return D.createGradient(this.document.ctx,R,F);if(typeof D.createPattern=="function"){if(D.getHrefAttribute().hasValue()){const G=D.getAttribute("patternTransform");D=D.getHrefAttribute().getDefinition(),D&&G.hasValue()&&D.getAttribute("patternTransform",!0).setValue(G.value)}if(D)return D.createPattern(this.document.ctx,R,F)}return null}getTextBaseline(){if(!this.hasValue())return null;const R=this.getString();return Property.textBaselineMapping[R]||null}addOpacity(R){let F=this.getColor();const D=F.length;let G=0;for(let U=0;U1&&arguments[1]!==void 0?arguments[1]:0;const[D=F,G=F]=toNumbers(R);return new Point(D,G)}static parseScale(R){let F=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;const[D=F,G=D]=toNumbers(R);return new Point(D,G)}static parsePath(R){const F=toNumbers(R),D=F.length,G=[];for(let U=0;U0}runEvents(){if(!this.working)return;const{screen:R,events:F,eventElements:D}=this,{style:G}=R.ctx.canvas;let U;G&&(G.cursor=""),F.forEach((W,q)=>{let{run:Y}=W;for(U=D[q];U;)Y(U),U=U.parent}),this.events=[],this.eventElements=[]}checkPath(R,F){if(!this.working||!F)return;const{events:D,eventElements:G}=this;D.forEach((U,W)=>{let{x:q,y:Y}=U;!G[W]&&F.isPointInPath&&F.isPointInPath(q,Y)&&(G[W]=R)})}checkBoundingBox(R,F){if(!this.working||!F)return;const{events:D,eventElements:G}=this;D.forEach((U,W)=>{let{x:q,y:Y}=U;!G[W]&&F.isPointInBox(q,Y)&&(G[W]=R)})}mapXY(R,F){const{window:D,ctx:G}=this.screen,U=new Point(R,F);let W=G.canvas;for(;W;)U.x-=W.offsetLeft,U.y-=W.offsetTop,W=W.offsetParent;return D!=null&&D.scrollX&&(U.x+=D.scrollX),D!=null&&D.scrollY&&(U.y+=D.scrollY),U}onClick(R){const{x:F,y:D}=this.mapXY(R.clientX,R.clientY);this.events.push({type:"onclick",x:F,y:D,run(G){G.onClick&&G.onClick()}})}onMouseMove(R){const{x:F,y:D}=this.mapXY(R.clientX,R.clientY);this.events.push({type:"onmousemove",x:F,y:D,run(G){G.onMouseMove&&G.onMouseMove()}})}constructor(R){this.screen=R,this.working=!1,this.events=[],this.eventElements=[],this.onClick=this.onClick.bind(this),this.onMouseMove=this.onMouseMove.bind(this)}}const defaultWindow=typeof window!="undefined"?window:null,defaultFetch$1=typeof fetch!="undefined"?fetch.bind(void 0):void 0;class Screen{wait(R){this.waits.push(R)}ready(){return this.readyPromise?this.readyPromise:Promise.resolve()}isReady(){if(this.isReadyLock)return!0;const R=this.waits.every(F=>F());return R&&(this.waits=[],this.resolveReady&&this.resolveReady()),this.isReadyLock=R,R}setDefaults(R){R.strokeStyle="rgba(0,0,0,0)",R.lineCap="butt",R.lineJoin="miter",R.miterLimit=4}setViewBox(R){let{document:F,ctx:D,aspectRatio:G,width:U,desiredWidth:W,height:q,desiredHeight:Y,minX:Q=0,minY:Z=0,refX:K,refY:J,clip:ie=!1,clipX:ne=0,clipY:se=0}=R;const re=compressSpaces(G).replace(/^defer\s/,""),[ae,le]=re.split(" "),ce=ae||"xMidYMid",he=le||"meet",de=U/W,me=q/Y,fe=Math.min(de,me),ge=Math.max(de,me);let Se=W,Ee=Y;he==="meet"&&(Se*=fe,Ee*=fe),he==="slice"&&(Se*=ge,Ee*=ge);const ve=new Property(F,"refX",K),xe=new Property(F,"refY",J),Pe=ve.hasValue()&&xe.hasValue();if(Pe&&D.translate(-fe*ve.getPixels("x"),-fe*xe.getPixels("y")),ie){const ye=fe*ne,Te=fe*se;D.beginPath(),D.moveTo(ye,Te),D.lineTo(U,Te),D.lineTo(U,q),D.lineTo(ye,q),D.closePath(),D.clip()}if(!Pe){const ye=he==="meet"&&fe===me,Te=he==="slice"&&ge===me,Le=he==="meet"&&fe===de,we=he==="slice"&&ge===de;ce.startsWith("xMid")&&(ye||Te)&&D.translate(U/2-Se/2,0),ce.endsWith("YMid")&&(Le||we)&&D.translate(0,q/2-Ee/2),ce.startsWith("xMax")&&(ye||Te)&&D.translate(U-Se,0),ce.endsWith("YMax")&&(Le||we)&&D.translate(0,q-Ee)}switch(!0){case ce==="none":D.scale(de,me);break;case he==="meet":D.scale(fe,fe);break;case he==="slice":D.scale(ge,ge);break}D.translate(-Q,-Z)}start(R){let{enableRedraw:F=!1,ignoreMouse:D=!1,ignoreAnimation:G=!1,ignoreDimensions:U=!1,ignoreClear:W=!1,forceRedraw:q,scaleWidth:Y,scaleHeight:Q,offsetX:Z,offsetY:K}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{mouse:J}=this,ie=1e3/Screen.FRAMERATE;if(this.frameDuration=ie,this.readyPromise=new Promise(le=>{this.resolveReady=le}),this.isReady()&&this.render(R,U,W,Y,Q,Z,K),!F)return;let ne=Date.now(),se=ne,re=0;const ae=()=>{ne=Date.now(),re=ne-se,re>=ie&&(se=ne-re%ie,this.shouldUpdate(G,q)&&(this.render(R,U,W,Y,Q,Z,K),J.runEvents())),this.intervalId=requestAnimationFrame$1(ae)};D||J.start(),this.intervalId=requestAnimationFrame$1(ae)}stop(){this.intervalId&&(requestAnimationFrame$1.cancel(this.intervalId),this.intervalId=null),this.mouse.stop()}shouldUpdate(R,F){if(!R){const{frameDuration:D}=this;if(this.animations.reduce((U,W)=>W.update(D)||U,!1))return!0}return!!(typeof F=="function"&&F()||!this.isReadyLock&&this.isReady()||this.mouse.hasEvents())}render(R,F,D,G,U,W,q){const{viewPort:Y,ctx:Q,isFirstRender:Z}=this,K=Q.canvas;Y.clear(),K.width&&K.height&&Y.setCurrent(K.width,K.height);const J=R.getStyle("width"),ie=R.getStyle("height");!F&&(Z||typeof G!="number"&&typeof U!="number")&&(J.hasValue()&&(K.width=J.getPixels("x"),K.style&&(K.style.width="".concat(K.width,"px"))),ie.hasValue()&&(K.height=ie.getPixels("y"),K.style&&(K.style.height="".concat(K.height,"px"))));let ne=K.clientWidth||K.width,se=K.clientHeight||K.height;if(F&&J.hasValue()&&ie.hasValue()&&(ne=J.getPixels("x"),se=ie.getPixels("y")),Y.setCurrent(ne,se),typeof W=="number"&&R.getAttribute("x",!0).setValue(W),typeof q=="number"&&R.getAttribute("y",!0).setValue(q),typeof G=="number"||typeof U=="number"){const re=toNumbers(R.getAttribute("viewBox").getString());let ae=0,le=0;if(typeof G=="number"){const he=R.getStyle("width");he.hasValue()?ae=he.getPixels("x")/G:re[2]&&!isNaN(re[2])&&(ae=re[2]/G)}if(typeof U=="number"){const he=R.getStyle("height");he.hasValue()?le=he.getPixels("y")/U:re[3]&&!isNaN(re[3])&&(le=re[3]/U)}ae||(ae=le),le||(le=ae),R.getAttribute("width",!0).setValue(G),R.getAttribute("height",!0).setValue(U);const ce=R.getStyle("transform",!0,!0);ce.setValue("".concat(ce.getString()," scale(").concat(1/ae,", ").concat(1/le,")"))}D||Q.clearRect(0,0,ne,se),R.render(Q),Z&&(this.isFirstRender=!1)}constructor(R,{fetch:F=defaultFetch$1,window:D=defaultWindow}={}){if(this.ctx=R,this.viewPort=new ViewPort,this.mouse=new Mouse(this),this.animations=[],this.waits=[],this.frameDuration=0,this.isReadyLock=!1,this.isFirstRender=!0,this.intervalId=null,this.window=D,!F)throw new Error("Can't find 'fetch' in 'globalThis', please provide it via options");this.fetch=F}}Screen.defaultWindow=defaultWindow;Screen.defaultFetch=defaultFetch$1;Screen.FRAMERATE=30;Screen.MAX_VIRTUAL_PIXELS=3e4;const{defaultFetch}=Screen,DefaultDOMParser=typeof DOMParser!="undefined"?DOMParser:void 0;class Parser$1{async parse(R){return R.startsWith("<")?this.parseFromString(R):this.load(R)}parseFromString(R){const F=new this.DOMParser;try{return this.checkDocument(F.parseFromString(R,"image/svg+xml"))}catch{return this.checkDocument(F.parseFromString(R,"text/xml"))}}checkDocument(R){const F=R.getElementsByTagName("parsererror")[0];if(F)throw new Error(F.textContent||"Unknown parse error");return R}async load(R){const D=await(await this.fetch(R)).text();return this.parseFromString(D)}constructor({fetch:R=defaultFetch,DOMParser:F=DefaultDOMParser}={}){if(!R)throw new Error("Can't find 'fetch' in 'globalThis', please provide it via options");if(!F)throw new Error("Can't find 'DOMParser' in 'globalThis', please provide it via options");this.fetch=R,this.DOMParser=F}}class Translate{apply(R){const{x:F,y:D}=this.point;R.translate(F||0,D||0)}unapply(R){const{x:F,y:D}=this.point;R.translate(-1*F||0,-1*D||0)}applyToPoint(R){const{x:F,y:D}=this.point;R.applyTransform([1,0,0,1,F||0,D||0])}constructor(R,F){this.type="translate",this.point=Point.parse(F)}}class Rotate{apply(R){const{cx:F,cy:D,originX:G,originY:U,angle:W}=this,q=F+G.getPixels("x"),Y=D+U.getPixels("y");R.translate(q,Y),R.rotate(W.getRadians()),R.translate(-q,-Y)}unapply(R){const{cx:F,cy:D,originX:G,originY:U,angle:W}=this,q=F+G.getPixels("x"),Y=D+U.getPixels("y");R.translate(q,Y),R.rotate(-1*W.getRadians()),R.translate(-q,-Y)}applyToPoint(R){const{cx:F,cy:D,angle:G}=this,U=G.getRadians();R.applyTransform([1,0,0,1,F||0,D||0]),R.applyTransform([Math.cos(U),Math.sin(U),-Math.sin(U),Math.cos(U),0,0]),R.applyTransform([1,0,0,1,-F||0,-D||0])}constructor(R,F,D){this.type="rotate";const G=toNumbers(F);this.angle=new Property(R,"angle",G[0]),this.originX=D[0],this.originY=D[1],this.cx=G[1]||0,this.cy=G[2]||0}}class Scale{apply(R){const{scale:{x:F,y:D},originX:G,originY:U}=this,W=G.getPixels("x"),q=U.getPixels("y");R.translate(W,q),R.scale(F,D||F),R.translate(-W,-q)}unapply(R){const{scale:{x:F,y:D},originX:G,originY:U}=this,W=G.getPixels("x"),q=U.getPixels("y");R.translate(W,q),R.scale(1/F,1/D||F),R.translate(-W,-q)}applyToPoint(R){const{x:F,y:D}=this.scale;R.applyTransform([F||0,0,0,D||0,0,0])}constructor(R,F,D){this.type="scale";const G=Point.parseScale(F);(G.x===0||G.y===0)&&(G.x=PSEUDO_ZERO,G.y=PSEUDO_ZERO),this.scale=G,this.originX=D[0],this.originY=D[1]}}class Matrix{apply(R){const{originX:F,originY:D,matrix:G}=this,U=F.getPixels("x"),W=D.getPixels("y");R.translate(U,W),R.transform(G[0],G[1],G[2],G[3],G[4],G[5]),R.translate(-U,-W)}unapply(R){const{originX:F,originY:D,matrix:G}=this,U=G[0],W=G[2],q=G[4],Y=G[1],Q=G[3],Z=G[5],K=0,J=0,ie=1,ne=1/(U*(Q*ie-Z*J)-W*(Y*ie-Z*K)+q*(Y*J-Q*K)),se=F.getPixels("x"),re=D.getPixels("y");R.translate(se,re),R.transform(ne*(Q*ie-Z*J),ne*(Z*K-Y*ie),ne*(q*J-W*ie),ne*(U*ie-q*K),ne*(W*Z-q*Q),ne*(q*Y-U*Z)),R.translate(-se,-re)}applyToPoint(R){R.applyTransform(this.matrix)}constructor(R,F,D){this.type="matrix",this.matrix=toMatrixValue(F),this.originX=D[0],this.originY=D[1]}}class Skew extends Matrix{constructor(R,F,D){super(R,F,D),this.type="skew",this.angle=new Property(R,"angle",F)}}class SkewX extends Skew{constructor(R,F,D){super(R,F,D),this.type="skewX",this.matrix=[1,0,Math.tan(this.angle.getRadians()),1,0,0]}}class SkewY extends Skew{constructor(R,F,D){super(R,F,D),this.type="skewY",this.matrix=[1,Math.tan(this.angle.getRadians()),0,1,0,0]}}function parseTransforms(B){return compressSpaces(B).trim().replace(/\)([a-zA-Z])/g,") $1").replace(/\)(\s?,\s?)/g,") ").split(/\s(?=[a-z])/)}function parseTransform(B){const[R="",F=""]=B.split("(");return[R.trim(),F.trim().replace(")","")]}class Transform{static fromElement(R,F){const D=F.getStyle("transform",!1,!0);if(D.hasValue()){const[G,U=G]=F.getStyle("transform-origin",!1,!0).split();if(G&&U){const W=[G,U];return new Transform(R,D.getString(),W)}}return null}apply(R){this.transforms.forEach(F=>F.apply(R))}unapply(R){this.transforms.forEach(F=>F.unapply(R))}applyToPoint(R){this.transforms.forEach(F=>F.applyToPoint(R))}constructor(R,F,D){this.document=R,this.transforms=[],parseTransforms(F).forEach(U=>{if(U==="none")return;const[W,q]=parseTransform(U),Y=Transform.transformTypes[W];Y&&this.transforms.push(new Y(this.document,q,D))})}}Transform.transformTypes={translate:Translate,rotate:Rotate,scale:Scale,matrix:Matrix,skewX:SkewX,skewY:SkewY};class Element$2{getAttribute(R){let F=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const D=this.attributes[R];if(!D&&F){const G=new Property(this.document,R,"");return this.attributes[R]=G,G}return D||Property.empty(this.document)}getHrefAttribute(){let R;for(const F in this.attributes)if(F==="href"||F.endsWith(":href")){R=this.attributes[F];break}return R||Property.empty(this.document)}getStyle(R){let F=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,D=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;const G=this.styles[R];if(G)return G;const U=this.getAttribute(R);if(U.hasValue())return this.styles[R]=U,U;if(!D){const{parent:W}=this;if(W){const q=W.getStyle(R);if(q.hasValue())return q}}if(F){const W=new Property(this.document,R,"");return this.styles[R]=W,W}return Property.empty(this.document)}render(R){if(!(this.getStyle("display").getString()==="none"||this.getStyle("visibility").getString()==="hidden")){if(R.save(),this.getStyle("mask").hasValue()){const F=this.getStyle("mask").getDefinition();F&&(this.applyEffects(R),F.apply(R,this))}else if(this.getStyle("filter").getValue("none")!=="none"){const F=this.getStyle("filter").getDefinition();F&&(this.applyEffects(R),F.apply(R,this))}else this.setContext(R),this.renderChildren(R),this.clearContext(R);R.restore()}}setContext(R){}applyEffects(R){const F=Transform.fromElement(this.document,this);F&&F.apply(R);const D=this.getStyle("clip-path",!1,!0);if(D.hasValue()){const G=D.getDefinition();G&&G.apply(R)}}clearContext(R){}renderChildren(R){this.children.forEach(F=>{F.render(R)})}addChild(R){const F=R instanceof Element$2?R:this.document.createElement(R);F.parent=this,Element$2.ignoreChildTypes.includes(F.type)||this.children.push(F)}matchesSelector(R){var F;const{node:D}=this;if(typeof D.matches=="function")return D.matches(R);const G=(F=D.getAttribute)===null||F===void 0?void 0:F.call(D,"class");return!G||G===""?!1:G.split(" ").some(U=>".".concat(U)===R)}addStylesFromStyleDefinition(){const{styles:R,stylesSpecificity:F}=this.document;let D;for(const G in R)if(!G.startsWith("@")&&this.matchesSelector(G)){const U=R[G],W=F[G];if(U)for(const q in U){let Y=this.stylesSpecificity[q];typeof Y=="undefined"&&(Y="000"),W&&W>=Y&&(D=U[q],D&&(this.styles[q]=D),this.stylesSpecificity[q]=W)}}}removeStyles(R,F){return F.reduce((G,U)=>{const W=R.getStyle(U);if(!W.hasValue())return G;const q=W.getString();return W.setValue(""),[...G,[U,q]]},[])}restoreStyles(R,F){F.forEach(D=>{let[G,U]=D;R.getStyle(G,!0).setValue(U)})}isFirstChild(){var R;return((R=this.parent)===null||R===void 0?void 0:R.children.indexOf(this))===0}constructor(R,F,D=!1){if(this.document=R,this.node=F,this.captureTextNodes=D,this.type="",this.attributes={},this.styles={},this.stylesSpecificity={},this.animationFrozen=!1,this.animationFrozenValue="",this.parent=null,this.children=[],!F||F.nodeType!==1)return;Array.from(F.attributes).forEach(W=>{const q=normalizeAttributeName(W.nodeName);this.attributes[q]=new Property(R,q,W.value)}),this.addStylesFromStyleDefinition(),this.getAttribute("style").hasValue()&&this.getAttribute("style").getString().split(";").map(q=>q.trim()).forEach(q=>{if(!q)return;const[Y,Q]=q.split(":").map(Z=>Z.trim());Y&&(this.styles[Y]=new Property(R,Y,Q))});const{definitions:G}=R,U=this.getAttribute("id");U.hasValue()&&(G[U.getString()]||(G[U.getString()]=this)),Array.from(F.childNodes).forEach(W=>{if(W.nodeType===1)this.addChild(W);else if(D&&(W.nodeType===3||W.nodeType===4)){const q=R.createTextNode(W);q.getText().length>0&&this.addChild(q)}})}}Element$2.ignoreChildTypes=["title"];class UnknownElement extends Element$2{constructor(R,F,D){super(R,F,D)}}function wrapFontFamily(B){const R=B.trim();return/^('|")/.test(R)?R:'"'.concat(R,'"')}function prepareFontFamily(B){return typeof process=="undefined"?B:B.trim().split(",").map(wrapFontFamily).join(",")}function prepareFontStyle(B){if(!B)return"";const R=B.trim().toLowerCase();switch(R){case"normal":case"italic":case"oblique":case"inherit":case"initial":case"unset":return R;default:return/^oblique\s+(-|)\d+deg$/.test(R)?R:""}}function prepareFontWeight(B){if(!B)return"";const R=B.trim().toLowerCase();switch(R){case"normal":case"bold":case"lighter":case"bolder":case"inherit":case"initial":case"unset":return R;default:return/^[\d.]+$/.test(R)?R:""}}class Font$1{static parse(){let R=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"",F=arguments.length>1?arguments[1]:void 0,D="",G="",U="",W="",q="";const Y=compressSpaces(R).trim().split(" "),Q={fontSize:!1,fontStyle:!1,fontWeight:!1,fontVariant:!1};return Y.forEach(Z=>{switch(!0){case(!Q.fontStyle&&Font$1.styles.includes(Z)):Z!=="inherit"&&(D=Z),Q.fontStyle=!0;break;case(!Q.fontVariant&&Font$1.variants.includes(Z)):Z!=="inherit"&&(G=Z),Q.fontStyle=!0,Q.fontVariant=!0;break;case(!Q.fontWeight&&Font$1.weights.includes(Z)):Z!=="inherit"&&(U=Z),Q.fontStyle=!0,Q.fontVariant=!0,Q.fontWeight=!0;break;case!Q.fontSize:Z!=="inherit"&&(W=Z.split("/")[0]||""),Q.fontStyle=!0,Q.fontVariant=!0,Q.fontWeight=!0,Q.fontSize=!0;break;default:Z!=="inherit"&&(q+=Z)}}),new Font$1(D,G,U,W,q,F)}toString(){return[prepareFontStyle(this.fontStyle),this.fontVariant,prepareFontWeight(this.fontWeight),this.fontSize,prepareFontFamily(this.fontFamily)].join(" ").trim()}constructor(R,F,D,G,U,W){const q=W?typeof W=="string"?Font$1.parse(W):W:{};this.fontFamily=U||q.fontFamily,this.fontSize=G||q.fontSize,this.fontStyle=R||q.fontStyle,this.fontWeight=D||q.fontWeight,this.fontVariant=F||q.fontVariant}}Font$1.styles="normal|italic|oblique|inherit";Font$1.variants="normal|small-caps|inherit";Font$1.weights="normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900|inherit";class BoundingBox$2{get x(){return this.x1}get y(){return this.y1}get width(){return this.x2-this.x1}get height(){return this.y2-this.y1}addPoint(R,F){typeof R!="undefined"&&((isNaN(this.x1)||isNaN(this.x2))&&(this.x1=R,this.x2=R),Rthis.x2&&(this.x2=R)),typeof F!="undefined"&&((isNaN(this.y1)||isNaN(this.y2))&&(this.y1=F,this.y2=F),Fthis.y2&&(this.y2=F))}addX(R){this.addPoint(R,0)}addY(R){this.addPoint(0,R)}addBoundingBox(R){if(!R)return;const{x1:F,y1:D,x2:G,y2:U}=R;this.addPoint(F,D),this.addPoint(G,U)}sumCubic(R,F,D,G,U){return Math.pow(1-R,3)*F+3*Math.pow(1-R,2)*R*D+3*(1-R)*Math.pow(R,2)*G+Math.pow(R,3)*U}bezierCurveAdd(R,F,D,G,U){const W=6*F-12*D+6*G,q=-3*F+9*D-9*G+3*U,Y=3*D-3*F;if(q===0){if(W===0)return;const J=-Y/W;01&&arguments[1]!==void 0?arguments[1]:!1;if(!F){const D=this.getStyle("fill"),G=this.getStyle("fill-opacity"),U=this.getStyle("stroke"),W=this.getStyle("stroke-opacity");if(D.isUrlDefinition()){const ie=D.getFillStyleDefinition(this,G);ie&&(R.fillStyle=ie)}else if(D.hasValue()){D.getString()==="currentColor"&&D.setValue(this.getStyle("color").getColor());const ie=D.getColor();ie!=="inherit"&&(R.fillStyle=ie==="none"?"rgba(0,0,0,0)":ie)}if(G.hasValue()){const ie=new Property(this.document,"fill",R.fillStyle).addOpacity(G).getColor();R.fillStyle=ie}if(U.isUrlDefinition()){const ie=U.getFillStyleDefinition(this,W);ie&&(R.strokeStyle=ie)}else if(U.hasValue()){U.getString()==="currentColor"&&U.setValue(this.getStyle("color").getColor());const ie=U.getString();ie!=="inherit"&&(R.strokeStyle=ie==="none"?"rgba(0,0,0,0)":ie)}if(W.hasValue()){const ie=new Property(this.document,"stroke",R.strokeStyle).addOpacity(W).getString();R.strokeStyle=ie}const q=this.getStyle("stroke-width");if(q.hasValue()){const ie=q.getPixels();R.lineWidth=ie||PSEUDO_ZERO}const Y=this.getStyle("stroke-linecap"),Q=this.getStyle("stroke-linejoin"),Z=this.getStyle("stroke-miterlimit"),K=this.getStyle("stroke-dasharray"),J=this.getStyle("stroke-dashoffset");if(Y.hasValue()&&(R.lineCap=Y.getString()),Q.hasValue()&&(R.lineJoin=Q.getString()),Z.hasValue()&&(R.miterLimit=Z.getNumber()),K.hasValue()&&K.getString()!=="none"){const ie=toNumbers(K.getString());typeof R.setLineDash!="undefined"?R.setLineDash(ie):typeof R.webkitLineDash!="undefined"?R.webkitLineDash=ie:typeof R.mozDash!="undefined"&&!(ie.length===1&&ie[0]===0)&&(R.mozDash=ie);const ne=J.getPixels();typeof R.lineDashOffset!="undefined"?R.lineDashOffset=ne:typeof R.webkitLineDashOffset!="undefined"?R.webkitLineDashOffset=ne:typeof R.mozDashOffset!="undefined"&&(R.mozDashOffset=ne)}}if(this.modifiedEmSizeStack=!1,typeof R.font!="undefined"){const D=this.getStyle("font"),G=this.getStyle("font-style"),U=this.getStyle("font-variant"),W=this.getStyle("font-weight"),q=this.getStyle("font-size"),Y=this.getStyle("font-family"),Q=new Font$1(G.getString(),U.getString(),W.getString(),q.hasValue()?"".concat(q.getPixels(!0),"px"):"",Y.getString(),Font$1.parse(D.getString(),R.font));G.setValue(Q.fontStyle),U.setValue(Q.fontVariant),W.setValue(Q.fontWeight),q.setValue(Q.fontSize),Y.setValue(Q.fontFamily),R.font=Q.toString(),q.isPixels()&&(this.document.emSize=q.getPixels(),this.modifiedEmSizeStack=!0)}F||(this.applyEffects(R),R.globalAlpha=this.calculateOpacity())}clearContext(R){super.clearContext(R),this.modifiedEmSizeStack&&this.document.popEmSize()}constructor(...R){super(...R),this.modifiedEmSizeStack=!1}}class TextElement extends RenderedElement{setContext(R){let F=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;super.setContext(R,F);const D=this.getStyle("dominant-baseline").getTextBaseline()||this.getStyle("alignment-baseline").getTextBaseline();D&&(R.textBaseline=D)}initializeCoordinates(){this.x=0,this.y=0,this.leafTexts=[],this.textChunkStart=0,this.minX=Number.POSITIVE_INFINITY,this.maxX=Number.NEGATIVE_INFINITY}getBoundingBox(R){if(this.type!=="text")return this.getTElementBoundingBox(R);this.initializeCoordinates(),this.adjustChildCoordinatesRecursive(R);let F=null;return this.children.forEach((D,G)=>{const U=this.getChildBoundingBox(R,this,this,G);F?F.addBoundingBox(U):F=U}),F}getFontSize(){const{document:R,parent:F}=this,D=Font$1.parse(R.ctx.font).fontSize;return F.getStyle("font-size").getNumber(D)}getTElementBoundingBox(R){const F=this.getFontSize();return new BoundingBox$2(this.x,this.y-F,this.x+this.measureText(R),this.y)}getGlyph(R,F,D){const G=F[D];let U;if(R.isArabic){var W;const q=F.length,Y=F[D-1],Q=F[D+1];let Z="isolated";(D===0||Y===" ")&&D0&&Y!==" "&&D0&&Y!==" "&&(D===q-1||Q===" ")&&(Z="initial"),U=((W=R.arabicGlyphs[G])===null||W===void 0?void 0:W[Z])||R.glyphs[G]}else U=R.glyphs[G];return U||(U=R.missingGlyph),U}getText(){return""}getTextFromNode(R){const F=R||this.node,D=Array.from(F.parentNode.childNodes),G=D.indexOf(F),U=D.length-1;let W=compressSpaces(F.textContent||"");return G===0&&(W=trimLeft(W)),G===U&&(W=trimRight(W)),W}renderChildren(R){if(this.type!=="text"){this.renderTElementChildren(R);return}this.initializeCoordinates(),this.adjustChildCoordinatesRecursive(R),this.children.forEach((D,G)=>{this.renderChild(R,this,this,G)});const{mouse:F}=this.document.screen;F.isWorking()&&F.checkBoundingBox(this,this.getBoundingBox(R))}renderTElementChildren(R){const{document:F,parent:D}=this,G=this.getText(),U=D.getStyle("font-family").getDefinition();if(U){const{unitsPerEm:Y}=U.fontFace,Q=Font$1.parse(F.ctx.font),Z=D.getStyle("font-size").getNumber(Q.fontSize),K=D.getStyle("font-style").getString(Q.fontStyle),J=Z/Y,ie=U.isRTL?G.split("").reverse().join(""):G,ne=toNumbers(D.getAttribute("dx").getString()),se=ie.length;for(let re=0;re=this.leafTexts.length)return;const R=this.leafTexts[this.textChunkStart],F=R.getStyle("text-anchor").getString("start"),D=!1;let G=0;F==="start"&&!D||F==="end"&&D?G=R.x-this.minX:F==="end"&&!D||F==="start"&&D?G=R.x-this.maxX:G=R.x-(this.minX+this.maxX)/2;for(let U=this.textChunkStart;U{this.adjustChildCoordinatesRecursiveCore(R,this,this,D)}),this.applyAnchoring()}adjustChildCoordinatesRecursiveCore(R,F,D,G){const U=D.children[G];U.children.length>0?U.children.forEach((W,q)=>{F.adjustChildCoordinatesRecursiveCore(R,F,U,q)}):this.adjustChildCoordinates(R,F,D,G)}adjustChildCoordinates(R,F,D,G){const U=D.children[G];if(typeof U.measureText!="function")return U;R.save(),U.setContext(R,!0);const W=U.getAttribute("x"),q=U.getAttribute("y"),Y=U.getAttribute("dx"),Q=U.getAttribute("dy"),Z=U.getStyle("font-family").getDefinition(),K=Boolean(Z==null?void 0:Z.isRTL);G===0&&(W.hasValue()||W.setValue(U.getInheritedAttribute("x")),q.hasValue()||q.setValue(U.getInheritedAttribute("y")),Y.hasValue()||Y.setValue(U.getInheritedAttribute("dx")),Q.hasValue()||Q.setValue(U.getInheritedAttribute("dy")));const J=U.measureText(R);return K&&(F.x-=J),W.hasValue()?(F.applyAnchoring(),U.x=W.getPixels("x"),Y.hasValue()&&(U.x+=Y.getPixels("x"))):(Y.hasValue()&&(F.x+=Y.getPixels("x")),U.x=F.x),F.x=U.x,K||(F.x+=J),q.hasValue()?(U.y=q.getPixels("y"),Q.hasValue()&&(U.y+=Q.getPixels("y"))):(Q.hasValue()&&(F.y+=Q.getPixels("y")),U.y=F.y),F.y=U.y,F.leafTexts.push(U),F.minX=Math.min(F.minX,U.x,U.x+J),F.maxX=Math.max(F.maxX,U.x,U.x+J),U.clearContext(R),R.restore(),U}getChildBoundingBox(R,F,D,G){const U=D.children[G];if(typeof U.getBoundingBox!="function")return null;const W=U.getBoundingBox(R);return W&&U.children.forEach((q,Y)=>{const Q=F.getChildBoundingBox(R,F,U,Y);W.addBoundingBox(Q)}),W}renderChild(R,F,D,G){const U=D.children[G];U.render(R),U.children.forEach((W,q)=>{F.renderChild(R,F,U,q)})}measureText(R){const{measureCache:F}=this;if(~F)return F;const D=this.getText(),G=this.measureTargetText(R,D);return this.measureCache=G,G}measureTargetText(R,F){if(!F.length)return 0;const{parent:D}=this,G=D.getStyle("font-family").getDefinition();if(G){const W=this.getFontSize(),q=G.isRTL?F.split("").reverse().join(""):F,Y=toNumbers(D.getAttribute("dx").getString()),Q=q.length;let Z=0;for(let K=0;K0?"":this.getTextFromNode()}}class TextNode extends TSpanElement{constructor(...R){super(...R),this.type="textNode"}}class PathParser extends _{reset(){this.i=-1,this.command=null,this.previousCommand=null,this.start=new Point(0,0),this.control=new Point(0,0),this.current=new Point(0,0),this.points=[],this.angles=[]}isEnd(){const{i:R,commands:F}=this;return R>=F.length-1}next(){const R=this.commands[++this.i];return this.previousCommand=this.command,this.command=R,R}getPoint(){let R=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"x",F=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"y";const D=new Point(this.command[R],this.command[F]);return this.makeAbsolute(D)}getAsControlPoint(R,F){const D=this.getPoint(R,F);return this.control=D,D}getAsCurrentPoint(R,F){const D=this.getPoint(R,F);return this.current=D,D}getReflectedControlPoint(){const R=this.previousCommand.type;if(R!==_.CURVE_TO&&R!==_.SMOOTH_CURVE_TO&&R!==_.QUAD_TO&&R!==_.SMOOTH_QUAD_TO)return this.current;const{current:{x:F,y:D},control:{x:G,y:U}}=this;return new Point(2*F-G,2*D-U)}makeAbsolute(R){if(this.command.relative){const{x:F,y:D}=this.current;R.x+=F,R.y+=D}return R}addMarker(R,F,D){const{points:G,angles:U}=this;D&&U.length>0&&!U[U.length-1]&&(U[U.length-1]=G[G.length-1].angleTo(D)),this.addMarkerAngle(R,F?F.angleTo(R):null)}addMarkerAngle(R,F){this.points.push(R),this.angles.push(F)}getMarkerPoints(){return this.points}getMarkerAngles(){const{angles:R}=this,F=R.length;for(let D=0;D[U,D[W]])}renderChildren(R){this.path(R),this.document.screen.mouse.checkPath(this,R);const F=this.getStyle("fill-rule");R.fillStyle!==""&&(F.getString("inherit")!=="inherit"?R.fill(F.getString()):R.fill()),R.strokeStyle!==""&&(this.getAttribute("vector-effect").getString()==="non-scaling-stroke"?(R.save(),R.setTransform(1,0,0,1,0,0),R.stroke(),R.restore()):R.stroke());const D=this.getMarkers();if(D){const G=D.length-1,U=this.getStyle("marker-start"),W=this.getStyle("marker-mid"),q=this.getStyle("marker-end");if(U.isUrlDefinition()){const Y=U.getDefinition(),[Q,Z]=D[0];Y.render(R,Q,Z)}if(W.isUrlDefinition()){const Y=W.getDefinition();for(let Q=1;Q1&&(G*=Math.sqrt(J),U*=Math.sqrt(J));let ie=(q===Y?-1:1)*Math.sqrt((Math.pow(G,2)*Math.pow(U,2)-Math.pow(G,2)*Math.pow(K.y,2)-Math.pow(U,2)*Math.pow(K.x,2))/(Math.pow(G,2)*Math.pow(K.y,2)+Math.pow(U,2)*Math.pow(K.x,2)));isNaN(ie)&&(ie=0);const ne=new Point(ie*G*K.y/U,ie*-U*K.x/G),se=new Point((F.x+Z.x)/2+Math.cos(Q)*ne.x-Math.sin(Q)*ne.y,(F.y+Z.y)/2+Math.sin(Q)*ne.x+Math.cos(Q)*ne.y),re=vectorsAngle([1,0],[(K.x-ne.x)/G,(K.y-ne.y)/U]),ae=[(K.x-ne.x)/G,(K.y-ne.y)/U],le=[(-K.x-ne.x)/G,(-K.y-ne.y)/U];let ce=vectorsAngle(ae,le);return vectorsRatio(ae,le)<=-1&&(ce=Math.PI),vectorsRatio(ae,le)>=1&&(ce=0),{currentPoint:Z,rX:G,rY:U,sweepFlag:Y,xAxisRotation:Q,centp:se,a1:re,ad:ce}}pathA(R,F){const{pathParser:D}=this,{currentPoint:G,rX:U,rY:W,sweepFlag:q,xAxisRotation:Y,centp:Q,a1:Z,ad:K}=PathElement.pathA(D),J=1-q?1:-1,ie=Z+J*(K/2),ne=new Point(Q.x+U*Math.cos(ie),Q.y+W*Math.sin(ie));if(D.addMarkerAngle(ne,ie-J*Math.PI/2),D.addMarkerAngle(G,ie-J*Math.PI),F.addPoint(G.x,G.y),R&&!isNaN(Z)&&!isNaN(K)){const se=U>W?U:W,re=U>W?1:U/W,ae=U>W?W/U:1;R.translate(Q.x,Q.y),R.rotate(Y),R.scale(re,ae),R.arc(0,0,se,Z,Z+K,Boolean(1-q)),R.scale(1/re,1/ae),R.rotate(-Y),R.translate(-Q.x,-Q.y)}}static pathZ(R){R.current=R.start}pathZ(R,F){PathElement.pathZ(this.pathParser),R&&F.x1!==F.x2&&F.y1!==F.y2&&R.closePath()}constructor(R,F,D){super(R,F,D),this.type="path",this.pathParser=new PathParser(this.getAttribute("d").getString())}}class SVGElement$1 extends RenderedElement{setContext(R){var F;const{document:D}=this,{screen:G,window:U}=D,W=R.canvas;if(G.setDefaults(R),"style"in W&&typeof R.font!="undefined"&&U&&typeof U.getComputedStyle!="undefined"){R.font=U.getComputedStyle(W).getPropertyValue("font");const le=new Property(D,"fontSize",Font$1.parse(R.font).fontSize);le.hasValue()&&(D.rootEmSize=le.getPixels("y"),D.emSize=D.rootEmSize)}this.getAttribute("x").hasValue()||this.getAttribute("x",!0).setValue(0),this.getAttribute("y").hasValue()||this.getAttribute("y",!0).setValue(0);let{width:q,height:Y}=G.viewPort;this.getStyle("width").hasValue()||this.getStyle("width",!0).setValue("100%"),this.getStyle("height").hasValue()||this.getStyle("height",!0).setValue("100%"),this.getStyle("color").hasValue()||this.getStyle("color",!0).setValue("black");const Q=this.getAttribute("refX"),Z=this.getAttribute("refY"),K=this.getAttribute("viewBox"),J=K.hasValue()?toNumbers(K.getString()):null,ie=!this.root&&this.getStyle("overflow").getValue("hidden")!=="visible";let ne=0,se=0,re=0,ae=0;J&&(ne=J[0],se=J[1]),this.root||(q=this.getStyle("width").getPixels("x"),Y=this.getStyle("height").getPixels("y"),this.type==="marker"&&(re=ne,ae=se,ne=0,se=0)),G.viewPort.setCurrent(q,Y),this.node&&(!this.parent||((F=this.node.parentNode)===null||F===void 0?void 0:F.nodeName)==="foreignObject")&&this.getStyle("transform",!1,!0).hasValue()&&!this.getStyle("transform-origin",!1,!0).hasValue()&&this.getStyle("transform-origin",!0,!0).setValue("50% 50%"),super.setContext(R),R.translate(this.getAttribute("x").getPixels("x"),this.getAttribute("y").getPixels("y")),J&&(q=J[2],Y=J[3]),D.setViewBox({ctx:R,aspectRatio:this.getAttribute("preserveAspectRatio").getString(),width:G.viewPort.width,desiredWidth:q,height:G.viewPort.height,desiredHeight:Y,minX:ne,minY:se,refX:Q.getValue(),refY:Z.getValue(),clip:ie,clipX:re,clipY:ae}),J&&(G.viewPort.removeCurrent(),G.viewPort.setCurrent(q,Y))}clearContext(R){super.clearContext(R),this.document.screen.viewPort.removeCurrent()}resize(R){let F=arguments.length>1&&arguments[1]!==void 0?arguments[1]:R,D=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;const G=this.getAttribute("width",!0),U=this.getAttribute("height",!0),W=this.getAttribute("viewBox"),q=this.getAttribute("style"),Y=G.getNumber(0),Q=U.getNumber(0);if(D)if(typeof D=="string")this.getAttribute("preserveAspectRatio",!0).setValue(D);else{const Z=this.getAttribute("preserveAspectRatio");Z.hasValue()&&Z.setValue(Z.getString().replace(/^\s*(\S.*\S)\s*$/,"$1"))}if(G.setValue(R),U.setValue(F),W.hasValue()||W.setValue("0 0 ".concat(Y||R," ").concat(Q||F)),q.hasValue()){const Z=this.getStyle("width"),K=this.getStyle("height");Z.hasValue()&&Z.setValue("".concat(R,"px")),K.hasValue()&&K.setValue("".concat(F,"px"))}}constructor(...R){super(...R),this.type="svg",this.root=!1}}class RectElement extends PathElement{path(R){const F=this.getAttribute("x").getPixels("x"),D=this.getAttribute("y").getPixels("y"),G=this.getStyle("width",!1,!0).getPixels("x"),U=this.getStyle("height",!1,!0).getPixels("y"),W=this.getAttribute("rx"),q=this.getAttribute("ry");let Y=W.getPixels("x"),Q=q.getPixels("y");if(W.hasValue()&&!q.hasValue()&&(Q=Y),q.hasValue()&&!W.hasValue()&&(Y=Q),Y=Math.min(Y,G/2),Q=Math.min(Q,U/2),R){const Z=4*((Math.sqrt(2)-1)/3);R.beginPath(),U>0&&G>0&&(R.moveTo(F+Y,D),R.lineTo(F+G-Y,D),R.bezierCurveTo(F+G-Y+Z*Y,D,F+G,D+Q-Z*Q,F+G,D+Q),R.lineTo(F+G,D+U-Q),R.bezierCurveTo(F+G,D+U-Q+Z*Q,F+G-Y+Z*Y,D+U,F+G-Y,D+U),R.lineTo(F+Y,D+U),R.bezierCurveTo(F+Y-Z*Y,D+U,F,D+U-Q+Z*Q,F,D+U-Q),R.lineTo(F,D+Q),R.bezierCurveTo(F,D+Q-Z*Q,F+Y-Z*Y,D,F+Y,D),R.closePath())}return new BoundingBox$2(F,D,F+G,D+U)}getMarkers(){return null}constructor(...R){super(...R),this.type="rect"}}class CircleElement extends PathElement{path(R){const F=this.getAttribute("cx").getPixels("x"),D=this.getAttribute("cy").getPixels("y"),G=this.getAttribute("r").getPixels();return R&&G>0&&(R.beginPath(),R.arc(F,D,G,0,Math.PI*2,!1),R.closePath()),new BoundingBox$2(F-G,D-G,F+G,D+G)}getMarkers(){return null}constructor(...R){super(...R),this.type="circle"}}class EllipseElement extends PathElement{path(R){const F=4*((Math.sqrt(2)-1)/3),D=this.getAttribute("rx").getPixels("x"),G=this.getAttribute("ry").getPixels("y"),U=this.getAttribute("cx").getPixels("x"),W=this.getAttribute("cy").getPixels("y");return R&&D>0&&G>0&&(R.beginPath(),R.moveTo(U+D,W),R.bezierCurveTo(U+D,W+F*G,U+F*D,W+G,U,W+G),R.bezierCurveTo(U-F*D,W+G,U-D,W+F*G,U-D,W),R.bezierCurveTo(U-D,W-F*G,U-F*D,W-G,U,W-G),R.bezierCurveTo(U+F*D,W-G,U+D,W-F*G,U+D,W),R.closePath()),new BoundingBox$2(U-D,W-G,U+D,W+G)}getMarkers(){return null}constructor(...R){super(...R),this.type="ellipse"}}class LineElement extends PathElement{getPoints(){return[new Point(this.getAttribute("x1").getPixels("x"),this.getAttribute("y1").getPixels("y")),new Point(this.getAttribute("x2").getPixels("x"),this.getAttribute("y2").getPixels("y"))]}path(R){const[{x:F,y:D},{x:G,y:U}]=this.getPoints();return R&&(R.beginPath(),R.moveTo(F,D),R.lineTo(G,U)),new BoundingBox$2(F,D,G,U)}getMarkers(){const[R,F]=this.getPoints(),D=R.angleTo(F);return[[R,D],[F,D]]}constructor(...R){super(...R),this.type="line"}}class PolylineElement extends PathElement{path(R){const{points:F}=this,[{x:D,y:G}]=F,U=new BoundingBox$2(D,G);return R&&(R.beginPath(),R.moveTo(D,G)),F.forEach(W=>{let{x:q,y:Y}=W;U.addPoint(q,Y),R&&R.lineTo(q,Y)}),U}getMarkers(){const{points:R}=this,F=R.length-1,D=[];return R.forEach((G,U)=>{U!==F&&D.push([G,G.angleTo(R[U+1])])}),D.length>0&&D.push([R[R.length-1],D[D.length-1][1]]),D}constructor(R,F,D){super(R,F,D),this.type="polyline",this.points=[],this.points=Point.parsePath(this.getAttribute("points").getString())}}class PolygonElement extends PolylineElement{path(R){const F=super.path(R),[{x:D,y:G}]=this.points;return R&&(R.lineTo(D,G),R.closePath()),F}constructor(...R){super(...R),this.type="polygon"}}class PatternElement extends Element$2{createPattern(R,F,D){const G=this.getStyle("width").getPixels("x",!0),U=this.getStyle("height").getPixels("y",!0),W=new SVGElement$1(this.document,null);W.attributes.viewBox=new Property(this.document,"viewBox",this.getAttribute("viewBox").getValue()),W.attributes.width=new Property(this.document,"width","".concat(G,"px")),W.attributes.height=new Property(this.document,"height","".concat(U,"px")),W.attributes.transform=new Property(this.document,"transform",this.getAttribute("patternTransform").getValue()),W.children=this.children;const q=this.document.createCanvas(G,U),Y=q.getContext("2d"),Q=this.getAttribute("x"),Z=this.getAttribute("y");Q.hasValue()&&Z.hasValue()&&Y.translate(Q.getPixels("x",!0),Z.getPixels("y",!0)),D.hasValue()?this.styles["fill-opacity"]=D:Reflect.deleteProperty(this.styles,"fill-opacity");for(let J=-1;J<=1;J++)for(let ie=-1;ie<=1;ie++)Y.save(),W.attributes.x=new Property(this.document,"x",J*q.width),W.attributes.y=new Property(this.document,"y",ie*q.height),W.render(Y),Y.restore();return R.createPattern(q,"repeat")}constructor(...R){super(...R),this.type="pattern"}}class MarkerElement extends Element$2{render(R,F,D){if(!F)return;const{x:G,y:U}=F,W=this.getAttribute("orient").getString("auto"),q=this.getAttribute("markerUnits").getString("strokeWidth");R.translate(G,U),W==="auto"&&R.rotate(D),q==="strokeWidth"&&R.scale(R.lineWidth,R.lineWidth),R.save();const Y=new SVGElement$1(this.document);Y.type=this.type,Y.attributes.viewBox=new Property(this.document,"viewBox",this.getAttribute("viewBox").getValue()),Y.attributes.refX=new Property(this.document,"refX",this.getAttribute("refX").getValue()),Y.attributes.refY=new Property(this.document,"refY",this.getAttribute("refY").getValue()),Y.attributes.width=new Property(this.document,"width",this.getAttribute("markerWidth").getValue()),Y.attributes.height=new Property(this.document,"height",this.getAttribute("markerHeight").getValue()),Y.attributes.overflow=new Property(this.document,"overflow",this.getAttribute("overflow").getValue()),Y.attributes.fill=new Property(this.document,"fill",this.getAttribute("fill").getColor("black")),Y.attributes.stroke=new Property(this.document,"stroke",this.getAttribute("stroke").getValue("none")),Y.children=this.children,Y.render(R),R.restore(),q==="strokeWidth"&&R.scale(1/R.lineWidth,1/R.lineWidth),W==="auto"&&R.rotate(-D),R.translate(-G,-U)}constructor(...R){super(...R),this.type="marker"}}class DefsElement extends Element$2{render(){}constructor(...R){super(...R),this.type="defs"}}class GElement extends RenderedElement{getBoundingBox(R){const F=new BoundingBox$2;return this.children.forEach(D=>{F.addBoundingBox(D.getBoundingBox(R))}),F}constructor(...R){super(...R),this.type="g"}}class GradientElement extends Element$2{getGradientUnits(){return this.getAttribute("gradientUnits").getString("objectBoundingBox")}createGradient(R,F,D){let G=this;this.getHrefAttribute().hasValue()&&(G=this.getHrefAttribute().getDefinition(),this.inheritStopContainer(G));const{stops:U}=G,W=this.getGradient(R,F);if(!W)return this.addParentOpacity(D,U[U.length-1].color);if(U.forEach(q=>{W.addColorStop(q.offset,this.addParentOpacity(D,q.color))}),this.getAttribute("gradientTransform").hasValue()){const{document:q}=this,{MAX_VIRTUAL_PIXELS:Y}=Screen,{viewPort:Q}=q.screen,Z=Q.getRoot(),K=new RectElement(q);K.attributes.x=new Property(q,"x",-Y/3),K.attributes.y=new Property(q,"y",-Y/3),K.attributes.width=new Property(q,"width",Y),K.attributes.height=new Property(q,"height",Y);const J=new GElement(q);J.attributes.transform=new Property(q,"transform",this.getAttribute("gradientTransform").getValue()),J.children=[K];const ie=new SVGElement$1(q);ie.attributes.x=new Property(q,"x",0),ie.attributes.y=new Property(q,"y",0),ie.attributes.width=new Property(q,"width",Z.width),ie.attributes.height=new Property(q,"height",Z.height),ie.children=[J];const ne=q.createCanvas(Z.width,Z.height),se=ne.getContext("2d");return se.fillStyle=W,ie.render(se),se.createPattern(ne,"no-repeat")}return W}inheritStopContainer(R){this.attributesToInherit.forEach(F=>{!this.getAttribute(F).hasValue()&&R.getAttribute(F).hasValue()&&this.getAttribute(F,!0).setValue(R.getAttribute(F).getValue())})}addParentOpacity(R,F){return R.hasValue()?new Property(this.document,"color",F).addOpacity(R).getColor():F}constructor(R,F,D){super(R,F,D),this.attributesToInherit=["gradientUnits"],this.stops=[];const{stops:G,children:U}=this;U.forEach(W=>{W.type==="stop"&&G.push(W)})}}class LinearGradientElement extends GradientElement{getGradient(R,F){const D=this.getGradientUnits()==="objectBoundingBox",G=D?F.getBoundingBox(R):null;if(D&&!G)return null;!this.getAttribute("x1").hasValue()&&!this.getAttribute("y1").hasValue()&&!this.getAttribute("x2").hasValue()&&!this.getAttribute("y2").hasValue()&&(this.getAttribute("x1",!0).setValue(0),this.getAttribute("y1",!0).setValue(0),this.getAttribute("x2",!0).setValue(1),this.getAttribute("y2",!0).setValue(0));const U=D?G.x+G.width*this.getAttribute("x1").getNumber():this.getAttribute("x1").getPixels("x"),W=D?G.y+G.height*this.getAttribute("y1").getNumber():this.getAttribute("y1").getPixels("y"),q=D?G.x+G.width*this.getAttribute("x2").getNumber():this.getAttribute("x2").getPixels("x"),Y=D?G.y+G.height*this.getAttribute("y2").getNumber():this.getAttribute("y2").getPixels("y");return U===q&&W===Y?null:R.createLinearGradient(U,W,q,Y)}constructor(R,F,D){super(R,F,D),this.type="linearGradient",this.attributesToInherit.push("x1","y1","x2","y2")}}class RadialGradientElement extends GradientElement{getGradient(R,F){const D=this.getGradientUnits()==="objectBoundingBox",G=F.getBoundingBox(R);if(D&&!G)return null;this.getAttribute("cx").hasValue()||this.getAttribute("cx",!0).setValue("50%"),this.getAttribute("cy").hasValue()||this.getAttribute("cy",!0).setValue("50%"),this.getAttribute("r").hasValue()||this.getAttribute("r",!0).setValue("50%");const U=D?G.x+G.width*this.getAttribute("cx").getNumber():this.getAttribute("cx").getPixels("x"),W=D?G.y+G.height*this.getAttribute("cy").getNumber():this.getAttribute("cy").getPixels("y");let q=U,Y=W;this.getAttribute("fx").hasValue()&&(q=D?G.x+G.width*this.getAttribute("fx").getNumber():this.getAttribute("fx").getPixels("x")),this.getAttribute("fy").hasValue()&&(Y=D?G.y+G.height*this.getAttribute("fy").getNumber():this.getAttribute("fy").getPixels("y"));const Q=D?(G.width+G.height)/2*this.getAttribute("r").getNumber():this.getAttribute("r").getPixels(),Z=this.getAttribute("fr").getPixels();return R.createRadialGradient(q,Y,Z,U,W,Q)}constructor(R,F,D){super(R,F,D),this.type="radialGradient",this.attributesToInherit.push("cx","cy","r","fx","fy","fr")}}class StopElement extends Element$2{constructor(R,F,D){super(R,F,D),this.type="stop";const G=Math.max(0,Math.min(1,this.getAttribute("offset").getNumber())),U=this.getStyle("stop-opacity");let W=this.getStyle("stop-color",!0);W.getString()===""&&W.setValue("#000"),U.hasValue()&&(W=W.addOpacity(U)),this.offset=G,this.color=W.getColor()}}class AnimateElement extends Element$2{getProperty(){const R=this.getAttribute("attributeType").getString(),F=this.getAttribute("attributeName").getString();return R==="CSS"?this.parent.getStyle(F,!0):this.parent.getAttribute(F,!0)}calcValue(){const{initialUnits:R}=this,{progress:F,from:D,to:G}=this.getProgress();let U=D.getNumber()+(G.getNumber()-D.getNumber())*F;return R==="%"&&(U*=100),"".concat(U).concat(R)}update(R){const{parent:F}=this,D=this.getProperty();if(this.initialValue||(this.initialValue=D.getString(),this.initialUnits=D.getUnits()),this.duration>this.maxDuration){const U=this.getAttribute("fill").getString("remove");if(this.getAttribute("repeatCount").getString()==="indefinite"||this.getAttribute("repeatDur").getString()==="indefinite")this.duration=0;else if(U==="freeze"&&!this.frozen)this.frozen=!0,F&&D&&(F.animationFrozen=!0,F.animationFrozenValue=D.getString());else if(U==="remove"&&!this.removed)return this.removed=!0,F&&D&&D.setValue(F.animationFrozen?F.animationFrozenValue:this.initialValue),!0;return!1}this.duration+=R;let G=!1;if(this.begin{const Q=U[Y];return q+(Q-q)*R}).join(" ")}constructor(...R){super(...R),this.type="animateTransform"}}class FontFaceElement extends Element$2{constructor(R,F,D){super(R,F,D),this.type="font-face",this.ascent=this.getAttribute("ascent").getNumber(),this.descent=this.getAttribute("descent").getNumber(),this.unitsPerEm=this.getAttribute("units-per-em").getNumber()}}class GlyphElement extends PathElement{constructor(R,F,D){super(R,F,D),this.type="glyph",this.horizAdvX=this.getAttribute("horiz-adv-x").getNumber(),this.unicode=this.getAttribute("unicode").getString(),this.arabicForm=this.getAttribute("arabic-form").getString()}}class MissingGlyphElement extends GlyphElement{constructor(...R){super(...R),this.type="missing-glyph",this.horizAdvX=0}}class FontElement extends Element$2{render(){}constructor(R,F,D){super(R,F,D),this.type="font",this.isArabic=!1,this.glyphs={},this.arabicGlyphs={},this.isRTL=!1,this.horizAdvX=this.getAttribute("horiz-adv-x").getNumber();const{definitions:G}=R,{children:U}=this;for(const W of U)if(W instanceof FontFaceElement){this.fontFace=W;const q=W.getStyle("font-family");q.hasValue()&&(G[q.getString()]=this)}else if(W instanceof MissingGlyphElement)this.missingGlyph=W;else if(W instanceof GlyphElement)if(W.arabicForm){this.isRTL=!0,this.isArabic=!0;const q=this.arabicGlyphs[W.unicode];typeof q=="undefined"?this.arabicGlyphs[W.unicode]={[W.arabicForm]:W}:q[W.arabicForm]=W}else this.glyphs[W.unicode]=W}}class TRefElement extends TextElement{getText(){const R=this.getHrefAttribute().getDefinition();if(R){const F=R.children[0];if(F)return F.getText()}return""}constructor(...R){super(...R),this.type="tref"}}class AElement extends TextElement{getText(){return this.text}renderChildren(R){if(this.hasText){super.renderChildren(R);const{document:F,x:D,y:G}=this,{mouse:U}=F.screen,W=new Property(F,"fontSize",Font$1.parse(F.ctx.font).fontSize);U.isWorking()&&U.checkBoundingBox(this,new BoundingBox$2(D,G-W.getPixels("y"),D+this.measureText(R),G))}else if(this.children.length>0){const F=new GElement(this.document);F.children=this.children,F.parent=this,F.render(R)}}onClick(){const{window:R}=this.document;R&&R.open(this.getHrefAttribute().getString())}onMouseMove(){const R=this.document.ctx;R.canvas.style.cursor="pointer"}constructor(R,F,D){super(R,F,D),this.type="a";const{childNodes:G}=F,U=G[0],W=G.length>0&&Array.from(G).every(q=>q.nodeType===3);this.hasText=W,this.text=W?this.getTextFromNode(U):""}}class TextPathElement extends TextElement{getText(){return this.text}path(R){const{dataArray:F}=this;R&&R.beginPath(),F.forEach(D=>{let{type:G,points:U}=D;switch(G){case PathParser.LINE_TO:R&&R.lineTo(U[0],U[1]);break;case PathParser.MOVE_TO:R&&R.moveTo(U[0],U[1]);break;case PathParser.CURVE_TO:R&&R.bezierCurveTo(U[0],U[1],U[2],U[3],U[4],U[5]);break;case PathParser.QUAD_TO:R&&R.quadraticCurveTo(U[0],U[1],U[2],U[3]);break;case PathParser.ARC:{const[W,q,Y,Q,Z,K,J,ie]=U,ne=Y>Q?Y:Q,se=Y>Q?1:Y/Q,re=Y>Q?Q/Y:1;R&&(R.translate(W,q),R.rotate(J),R.scale(se,re),R.arc(0,0,ne,Z,Z+K,Boolean(1-ie)),R.scale(1/se,1/re),R.rotate(-J),R.translate(-W,-q));break}case PathParser.CLOSE_PATH:R&&R.closePath();break}})}renderChildren(R){this.setTextData(R),R.save();const F=this.parent.getStyle("text-decoration").getString(),D=this.getFontSize(),{glyphInfo:G}=this,U=R.fillStyle;F==="underline"&&R.beginPath(),G.forEach((W,q)=>{const{p0:Y,p1:Q,rotation:Z,text:K}=W;R.save(),R.translate(Y.x,Y.y),R.rotate(Z),R.fillStyle&&R.fillText(K,0,0),R.strokeStyle&&R.strokeText(K,0,0),R.restore(),F==="underline"&&(q===0&&R.moveTo(Y.x,Y.y+D/8),R.lineTo(Q.x,Q.y+D/5))}),F==="underline"&&(R.lineWidth=D/20,R.strokeStyle=U,R.stroke(),R.closePath()),R.restore()}getLetterSpacingAt(){let R=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return this.letterSpacingCache[R]||0}findSegmentToFitChar(R,F,D,G,U,W,q,Y,Q){let Z=W,K=this.measureText(R,Y);Y===" "&&F==="justify"&&D-1&&(Z+=this.getLetterSpacingAt(Q));const J=this.textHeight/20,ie=this.getEquidistantPointOnPath(Z,J,0),ne=this.getEquidistantPointOnPath(Z+K,J,0),se={p0:ie,p1:ne},re=ie&&ne?Math.atan2(ne.y-ie.y,ne.x-ie.x):0;if(q){const ae=Math.cos(Math.PI/2+re)*q,le=Math.cos(-re)*q;se.p0={...ie,x:ie.x+ae,y:ie.y+le},se.p1={...ne,x:ne.x+ae,y:ne.y+le}}return Z+=K,{offset:Z,segment:se,rotation:re}}measureText(R,F){const{measuresCache:D}=this,G=F||this.getText();if(D.has(G))return D.get(G);const U=this.measureTargetText(R,G);return D.set(G,U),U}setTextData(R){if(this.glyphInfo)return;const F=this.getText(),D=F.split(""),G=F.split(" ").length-1,U=this.parent.getAttribute("dx").split().map(ce=>ce.getPixels("x")),W=this.parent.getAttribute("dy").getPixels("y"),q=this.parent.getStyle("text-anchor").getString("start"),Y=this.getStyle("letter-spacing"),Q=this.parent.getStyle("letter-spacing");let Z=0;!Y.hasValue()||Y.getValue()==="inherit"?Z=Q.getPixels():Y.hasValue()&&Y.getValue()!=="initial"&&Y.getValue()!=="unset"&&(Z=Y.getPixels());const K=[],J=F.length;this.letterSpacingCache=K;for(let ce=0;cede===0?0:ce+he||0,0),ne=this.measureText(R),se=Math.max(ne+ie,0);this.textWidth=ne,this.textHeight=this.getFontSize(),this.glyphInfo=[];const re=this.getPathLength(),ae=this.getStyle("startOffset").getNumber(0)*re;let le=0;(q==="middle"||q==="center")&&(le=-se/2),(q==="end"||q==="right")&&(le=-se),le+=ae,D.forEach((ce,he)=>{const{offset:de,segment:me,rotation:fe}=this.findSegmentToFitChar(R,q,se,re,G,le,W,ce,he);le=de,!(!me.p0||!me.p1)&&this.glyphInfo.push({text:D[he],p0:me.p0,p1:me.p1,rotation:fe})})}parsePathData(R){if(this.pathLength=-1,!R)return[];const F=[],{pathParser:D}=R;for(D.reset();!D.isEnd();){const{current:G}=D,U=G?G.x:0,W=G?G.y:0,q=D.next();let Y=q.type,Q=[];switch(q.type){case PathParser.MOVE_TO:this.pathM(D,Q);break;case PathParser.LINE_TO:Y=this.pathL(D,Q);break;case PathParser.HORIZ_LINE_TO:Y=this.pathH(D,Q);break;case PathParser.VERT_LINE_TO:Y=this.pathV(D,Q);break;case PathParser.CURVE_TO:this.pathC(D,Q);break;case PathParser.SMOOTH_CURVE_TO:Y=this.pathS(D,Q);break;case PathParser.QUAD_TO:this.pathQ(D,Q);break;case PathParser.SMOOTH_QUAD_TO:Y=this.pathT(D,Q);break;case PathParser.ARC:Q=this.pathA(D);break;case PathParser.CLOSE_PATH:PathElement.pathZ(D);break}q.type!==PathParser.CLOSE_PATH?F.push({type:Y,points:Q,start:{x:U,y:W},pathLength:this.calcLength(U,W,Y,Q)}):F.push({type:PathParser.CLOSE_PATH,points:[],pathLength:0})}return F}pathM(R,F){const{x:D,y:G}=PathElement.pathM(R).point;F.push(D,G)}pathL(R,F){const{x:D,y:G}=PathElement.pathL(R).point;return F.push(D,G),PathParser.LINE_TO}pathH(R,F){const{x:D,y:G}=PathElement.pathH(R).point;return F.push(D,G),PathParser.LINE_TO}pathV(R,F){const{x:D,y:G}=PathElement.pathV(R).point;return F.push(D,G),PathParser.LINE_TO}pathC(R,F){const{point:D,controlPoint:G,currentPoint:U}=PathElement.pathC(R);F.push(D.x,D.y,G.x,G.y,U.x,U.y)}pathS(R,F){const{point:D,controlPoint:G,currentPoint:U}=PathElement.pathS(R);return F.push(D.x,D.y,G.x,G.y,U.x,U.y),PathParser.CURVE_TO}pathQ(R,F){const{controlPoint:D,currentPoint:G}=PathElement.pathQ(R);F.push(D.x,D.y,G.x,G.y)}pathT(R,F){const{controlPoint:D,currentPoint:G}=PathElement.pathT(R);return F.push(D.x,D.y,G.x,G.y),PathParser.QUAD_TO}pathA(R){let{rX:F,rY:D,sweepFlag:G,xAxisRotation:U,centp:W,a1:q,ad:Y}=PathElement.pathA(R);return G===0&&Y>0&&(Y-=2*Math.PI),G===1&&Y<0&&(Y+=2*Math.PI),[W.x,W.y,F,D,q,Y,U,G]}calcLength(R,F,D,G){let U=0,W=null,q=null,Y=0;switch(D){case PathParser.LINE_TO:return this.getLineLength(R,F,G[0],G[1]);case PathParser.CURVE_TO:for(U=0,W=this.getPointOnCubicBezier(0,R,F,G[0],G[1],G[2],G[3],G[4],G[5]),Y=.01;Y<=1;Y+=.01)q=this.getPointOnCubicBezier(Y,R,F,G[0],G[1],G[2],G[3],G[4],G[5]),U+=this.getLineLength(W.x,W.y,q.x,q.y),W=q;return U;case PathParser.QUAD_TO:for(U=0,W=this.getPointOnQuadraticBezier(0,R,F,G[0],G[1],G[2],G[3]),Y=.01;Y<=1;Y+=.01)q=this.getPointOnQuadraticBezier(Y,R,F,G[0],G[1],G[2],G[3]),U+=this.getLineLength(W.x,W.y,q.x,q.y),W=q;return U;case PathParser.ARC:{U=0;const Q=G[4],Z=G[5],K=G[4]+Z;let J=Math.PI/180;if(Math.abs(Q-K)K;Y-=J)q=this.getPointOnEllipticalArc(G[0],G[1],G[2],G[3],Y,0),U+=this.getLineLength(W.x,W.y,q.x,q.y),W=q;else for(Y=Q+J;Y5&&arguments[5]!==void 0?arguments[5]:F,q=arguments.length>6&&arguments[6]!==void 0?arguments[6]:D;const Y=(U-D)/(G-F+PSEUDO_ZERO);let Q=Math.sqrt(R*R/(1+Y*Y));GF)return null;const{dataArray:U}=this;for(const W of U){if(W&&(W.pathLength<5e-5||D+W.pathLength+5e-5=0&&Y>K)break;G=this.getPointOnEllipticalArc(W.points[0],W.points[1],W.points[2],W.points[3],Y,W.points[6]);break}case PathParser.CURVE_TO:Y=q/W.pathLength,Y>1&&(Y=1),G=this.getPointOnCubicBezier(Y,W.start.x,W.start.y,W.points[0],W.points[1],W.points[2],W.points[3],W.points[4],W.points[5]);break;case PathParser.QUAD_TO:Y=q/W.pathLength,Y>1&&(Y=1),G=this.getPointOnQuadraticBezier(Y,W.start.x,W.start.y,W.points[0],W.points[1],W.points[2],W.points[3]);break}if(G)return G;break}return null}getLineLength(R,F,D,G){return Math.sqrt((D-R)*(D-R)+(G-F)*(G-F))}getPathLength(){return this.pathLength===-1&&(this.pathLength=this.dataArray.reduce((R,F)=>F.pathLength>0?R+F.pathLength:R,0)),this.pathLength}getPointOnCubicBezier(R,F,D,G,U,W,q,Y,Q){const Z=Y*CB1(R)+W*CB2(R)+G*CB3(R)+F*CB4(R),K=Q*CB1(R)+q*CB2(R)+U*CB3(R)+D*CB4(R);return{x:Z,y:K}}getPointOnQuadraticBezier(R,F,D,G,U,W,q){const Y=W*QB1(R)+G*QB2(R)+F*QB3(R),Q=q*QB1(R)+U*QB2(R)+D*QB3(R);return{x:Y,y:Q}}getPointOnEllipticalArc(R,F,D,G,U,W){const q=Math.cos(W),Y=Math.sin(W),Q={x:D*Math.cos(U),y:G*Math.sin(U)};return{x:R+(Q.x*q-Q.y*Y),y:F+(Q.x*Y+Q.y*q)}}buildEquidistantCache(R,F){const D=this.getPathLength(),G=F||.25,U=R||D/100;if(!this.equidistantCache||this.equidistantCache.step!==U||this.equidistantCache.precision!==G){this.equidistantCache={step:U,precision:G,points:[]};let W=0;for(let q=0;q<=D;q+=G){const Y=this.getPointOnPath(q),Q=this.getPointOnPath(q+G);!Y||!Q||(W+=this.getLineLength(Y.x,Y.y,Q.x,Q.y),W>=U&&(this.equidistantCache.points.push({x:Y.x,y:Y.y,distance:q}),W-=U))}}}getEquidistantPointOnPath(R,F,D){if(this.buildEquidistantCache(F,D),R<0||R-this.getPathLength()>5e-5)return null;const G=Math.round(R/this.getPathLength()*(this.equidistantCache.points.length-1));return this.equidistantCache.points[G]||null}constructor(R,F,D){super(R,F,D),this.type="textPath",this.textWidth=0,this.textHeight=0,this.pathLength=-1,this.glyphInfo=null,this.letterSpacingCache=[],this.measuresCache=new Map([["",0]]);const G=this.getHrefAttribute().getDefinition();this.text=this.getTextFromNode(),this.dataArray=this.parsePathData(G)}}const dataUriRegex=/^\s*data:(([^/,;]+\/[^/,;]+)(?:;([^,;=]+=[^,;=]+))?)?(?:;(base64))?,(.*)$/i;class ImageElement extends RenderedElement{async loadImage(R){try{const F=await this.document.createImage(R);this.image=F}catch(F){console.error('Error while loading image "'.concat(R,'":'),F)}this.loaded=!0}async loadSvg(R){const F=dataUriRegex.exec(R);if(F){const D=F[5];D&&(F[4]==="base64"?this.image=atob(D):this.image=decodeURIComponent(D))}else try{const G=await(await this.document.fetch(R)).text();this.image=G}catch(D){console.error('Error while loading image "'.concat(R,'":'),D)}this.loaded=!0}renderChildren(R){const{document:F,image:D,loaded:G}=this,U=this.getAttribute("x").getPixels("x"),W=this.getAttribute("y").getPixels("y"),q=this.getStyle("width").getPixels("x"),Y=this.getStyle("height").getPixels("y");if(!(!G||!D||!q||!Y)){if(R.save(),R.translate(U,W),typeof D=="string"){const Q=F.canvg.forkString(R,D,{ignoreMouse:!0,ignoreAnimation:!0,ignoreDimensions:!0,ignoreClear:!0,offsetX:0,offsetY:0,scaleWidth:q,scaleHeight:Y}),{documentElement:Z}=Q.document;Z&&(Z.parent=this),Q.render()}else F.setViewBox({ctx:R,aspectRatio:this.getAttribute("preserveAspectRatio").getString(),width:q,desiredWidth:D.width,height:Y,desiredHeight:D.height}),this.loaded&&(!("complete"in D)||D.complete)&&R.drawImage(D,0,0);R.restore()}}getBoundingBox(){const R=this.getAttribute("x").getPixels("x"),F=this.getAttribute("y").getPixels("y"),D=this.getStyle("width").getPixels("x"),G=this.getStyle("height").getPixels("y");return new BoundingBox$2(R,F,R+D,F+G)}constructor(R,F,D){super(R,F,D),this.type="image",this.loaded=!1;const G=this.getHrefAttribute().getString();if(!G)return;const U=G.endsWith(".svg")||/^\s*data:image\/svg\+xml/i.test(G);R.images.push(this),U?this.loadSvg(G):this.loadImage(G)}}class SymbolElement extends RenderedElement{render(R){}constructor(...R){super(...R),this.type="symbol"}}class SVGFontLoader{async load(R,F){try{const{document:D}=this,U=(await D.canvg.parser.load(F)).getElementsByTagName("font");Array.from(U).forEach(W=>{const q=D.createElement(W);D.definitions[R]=q})}catch(D){console.error('Error while loading font "'.concat(F,'":'),D)}this.loaded=!0}constructor(R){this.document=R,this.loaded=!1,R.fonts.push(this)}}class StyleElement extends Element$2{constructor(R,F,D){super(R,F,D),this.type="style",compressSpaces(Array.from(F.childNodes).map(W=>W.textContent).join("").replace(/(\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+\/)|(^[\s]*\/\/.*)/gm,"").replace(/@import.*;/g,"")).split("}").forEach(W=>{const q=W.trim();if(!q)return;const Y=q.split("{"),Q=Y[0].split(","),Z=Y[1].split(";");Q.forEach(K=>{const J=K.trim();if(!J)return;const ie=R.styles[J]||{};if(Z.forEach(ne=>{const se=ne.indexOf(":"),re=ne.substr(0,se).trim(),ae=ne.substr(se+1,ne.length-se).trim();re&&ae&&(ie[re]=new Property(R,re,ae))}),R.styles[J]=ie,R.stylesSpecificity[J]=getSelectorSpecificity(J),J==="@font-face"){const ne=ie["font-family"].getString().replace(/"|'/g,"");ie.src.getString().split(",").forEach(re=>{if(re.indexOf('format("svg")')>0){const ae=parseExternalUrl(re);ae&&new SVGFontLoader(R).load(ne,ae)}})}})})}}StyleElement.parseExternalUrl=parseExternalUrl;class UseElement extends RenderedElement{setContext(R){super.setContext(R);const F=this.getAttribute("x"),D=this.getAttribute("y");F.hasValue()&&R.translate(F.getPixels("x"),0),D.hasValue()&&R.translate(0,D.getPixels("y"))}path(R){const{element:F}=this;F&&F.path(R)}renderChildren(R){const{document:F,element:D}=this;if(D){let G=D;if(D.type==="symbol"&&(G=new SVGElement$1(F),G.attributes.viewBox=new Property(F,"viewBox",D.getAttribute("viewBox").getString()),G.attributes.preserveAspectRatio=new Property(F,"preserveAspectRatio",D.getAttribute("preserveAspectRatio").getString()),G.attributes.overflow=new Property(F,"overflow",D.getAttribute("overflow").getString()),G.children=D.children,D.styles.opacity=new Property(F,"opacity",this.calculateOpacity())),G.type==="svg"){const W=this.getStyle("width",!1,!0),q=this.getStyle("height",!1,!0);W.hasValue()&&(G.attributes.width=new Property(F,"width",W.getString())),q.hasValue()&&(G.attributes.height=new Property(F,"height",q.getString()))}const U=G.parent;G.parent=this,G.render(R),G.parent=U}}getBoundingBox(R){const{element:F}=this;return F?F.getBoundingBox(R):null}elementTransform(){const{document:R,element:F}=this;return F?Transform.fromElement(R,F):null}get element(){return this.cachedElement||(this.cachedElement=this.getHrefAttribute().getDefinition()),this.cachedElement}constructor(...R){super(...R),this.type="use"}}function imGet(B,R,F,D,G,U){return B[F*D*4+R*4+U]}function imSet(B,R,F,D,G,U,W){B[F*D*4+R*4+U]=W}function m(B,R,F){return B[R]*F}function c(B,R,F,D){return R+Math.cos(B)*F+Math.sin(B)*D}class FeColorMatrixElement extends Element$2{apply(R,F,D,G,U){const{includeOpacity:W,matrix:q}=this,Y=R.getImageData(0,0,G,U);for(let Q=0;Q{ie.addBoundingBox(ne.getBoundingBox(R))}),G=Math.floor(ie.x1),U=Math.floor(ie.y1),W=Math.floor(ie.width),q=Math.floor(ie.height)}const Y=this.removeStyles(F,MaskElement.ignoreStyles),Q=D.createCanvas(G+W,U+q),Z=Q.getContext("2d");D.screen.setDefaults(Z),this.renderChildren(Z),new FeColorMatrixElement(D,{nodeType:1,childNodes:[],attributes:[{nodeName:"type",value:"luminanceToAlpha"},{nodeName:"includeOpacity",value:"true"}]}).apply(Z,0,0,G+W,U+q);const K=D.createCanvas(G+W,U+q),J=K.getContext("2d");D.screen.setDefaults(J),F.render(J),J.globalCompositeOperation="destination-in",J.fillStyle=Z.createPattern(Q,"no-repeat"),J.fillRect(0,0,G+W,U+q),R.fillStyle=J.createPattern(K,"no-repeat"),R.fillRect(0,0,G+W,U+q),this.restoreStyles(F,Y)}render(R){}constructor(...R){super(...R),this.type="mask"}}MaskElement.ignoreStyles=["mask","transform","clip-path"];const noop$1=()=>{};class ClipPathElement extends Element$2{apply(R){const{document:F}=this,D=Reflect.getPrototypeOf(R),{beginPath:G,closePath:U}=R;D&&(D.beginPath=noop$1,D.closePath=noop$1),Reflect.apply(G,R,[]),this.children.forEach(W=>{if(!("path"in W))return;let q="elementTransform"in W?W.elementTransform():null;q||(q=Transform.fromElement(F,W)),q&&q.apply(R),W.path(R),D&&(D.closePath=U),q&&q.unapply(R)}),Reflect.apply(U,R,[]),R.clip(),D&&(D.beginPath=G,D.closePath=U)}render(R){}constructor(...R){super(...R),this.type="clipPath"}}class FilterElement extends Element$2{apply(R,F){const{document:D,children:G}=this,U="getBoundingBox"in F?F.getBoundingBox(R):null;if(!U)return;let W=0,q=0;G.forEach(ae=>{const le=ae.extraFilterDistance||0;W=Math.max(W,le),q=Math.max(q,le)});const Y=Math.floor(U.width),Q=Math.floor(U.height),Z=Y+2*W,K=Q+2*q;if(Z<1||K<1)return;const J=Math.floor(U.x),ie=Math.floor(U.y),ne=this.removeStyles(F,FilterElement.ignoreStyles),se=D.createCanvas(Z,K),re=se.getContext("2d");D.screen.setDefaults(re),re.translate(-J+W,-ie+q),F.render(re),G.forEach(ae=>{typeof ae.apply=="function"&&ae.apply(re,0,0,Z,K)}),R.drawImage(se,0,0,Z,K,J-W,ie-q,Z,K),this.restoreStyles(F,ne)}render(R){}constructor(...R){super(...R),this.type="filter"}}FilterElement.ignoreStyles=["filter","transform","clip-path"];class FeDropShadowElement extends Element$2{apply(R,F,D,G,U){}constructor(R,F,D){super(R,F,D),this.type="feDropShadow",this.addStylesFromStyleDefinition()}}class FeMorphologyElement extends Element$2{apply(R,F,D,G,U){}constructor(...R){super(...R),this.type="feMorphology"}}class FeCompositeElement extends Element$2{apply(R,F,D,G,U){}constructor(...R){super(...R),this.type="feComposite"}}class FeGaussianBlurElement extends Element$2{apply(R,F,D,G,U){const{document:W,blurRadius:q}=this,Y=W.window?W.window.document.body:null,Q=R.canvas;Q.id=W.getUniqueId(),Y&&(Q.style.display="none",Y.appendChild(Q)),processCanvasRGBA(Q,F,D,G,U,q),Y&&Y.removeChild(Q)}constructor(R,F,D){super(R,F,D),this.type="feGaussianBlur",this.blurRadius=Math.floor(this.getAttribute("stdDeviation").getNumber()),this.extraFilterDistance=this.blurRadius}}class TitleElement extends Element$2{constructor(...R){super(...R),this.type="title"}}class DescElement extends Element$2{constructor(...R){super(...R),this.type="desc"}}const elements={svg:SVGElement$1,rect:RectElement,circle:CircleElement,ellipse:EllipseElement,line:LineElement,polyline:PolylineElement,polygon:PolygonElement,path:PathElement,pattern:PatternElement,marker:MarkerElement,defs:DefsElement,linearGradient:LinearGradientElement,radialGradient:RadialGradientElement,stop:StopElement,animate:AnimateElement,animateColor:AnimateColorElement,animateTransform:AnimateTransformElement,font:FontElement,"font-face":FontFaceElement,"missing-glyph":MissingGlyphElement,glyph:GlyphElement,text:TextElement,tspan:TSpanElement,tref:TRefElement,a:AElement,textPath:TextPathElement,image:ImageElement,g:GElement,symbol:SymbolElement,style:StyleElement,use:UseElement,mask:MaskElement,clipPath:ClipPathElement,filter:FilterElement,feDropShadow:FeDropShadowElement,feMorphology:FeMorphologyElement,feComposite:FeCompositeElement,feColorMatrix:FeColorMatrixElement,feGaussianBlur:FeGaussianBlurElement,title:TitleElement,desc:DescElement};function createCanvas(B,R){const F=document.createElement("canvas");return F.width=B,F.height=R,F}async function createImage(B){let R=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const F=document.createElement("img");return R&&(F.crossOrigin="Anonymous"),new Promise((D,G)=>{F.onload=()=>{D(F)},F.onerror=(U,W,q,Y,Q)=>{G(Q)},F.src=B})}const DEFAULT_EM_SIZE=12;class Document$1{bindCreateImage(R,F){return typeof F=="boolean"?(D,G)=>R(D,typeof G=="boolean"?G:F):R}get window(){return this.screen.window}get fetch(){return this.screen.fetch}get ctx(){return this.screen.ctx}get emSize(){const{emSizeStack:R}=this;return R[R.length-1]||DEFAULT_EM_SIZE}set emSize(R){const{emSizeStack:F}=this;F.push(R)}popEmSize(){const{emSizeStack:R}=this;R.pop()}getUniqueId(){return"canvg".concat(++this.uniqueId)}isImagesLoaded(){return this.images.every(R=>R.loaded)}isFontsLoaded(){return this.fonts.every(R=>R.loaded)}createDocumentElement(R){const F=this.createElement(R.documentElement);return F.root=!0,F.addStylesFromStyleDefinition(),this.documentElement=F,F}createElement(R){const F=R.nodeName.replace(/^[^:]+:/,""),D=Document$1.elementTypes[F];return D?new D(this,R):new UnknownElement(this,R)}createTextNode(R){return new TextNode(this,R)}setViewBox(R){this.screen.setViewBox({document:this,...R})}constructor(R,{rootEmSize:F=DEFAULT_EM_SIZE,emSize:D=DEFAULT_EM_SIZE,createCanvas:G=Document$1.createCanvas,createImage:U=Document$1.createImage,anonymousCrossOrigin:W}={}){this.canvg=R,this.definitions={},this.styles={},this.stylesSpecificity={},this.images=[],this.fonts=[],this.emSizeStack=[],this.uniqueId=0,this.screen=R.screen,this.rootEmSize=F,this.emSize=D,this.createCanvas=G,this.createImage=this.bindCreateImage(U,W),this.screen.wait(()=>this.isImagesLoaded()),this.screen.wait(()=>this.isFontsLoaded())}}Document$1.createCanvas=createCanvas;Document$1.createImage=createImage;Document$1.elementTypes=elements;class Canvg{static async from(R,F){let D=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const U=await new Parser$1(D).parse(F);return new Canvg(R,U,D)}static fromString(R,F){let D=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const U=new Parser$1(D).parseFromString(F);return new Canvg(R,U,D)}fork(R,F){let D=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return Canvg.from(R,F,{...this.options,...D})}forkString(R,F){let D=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return Canvg.fromString(R,F,{...this.options,...D})}ready(){return this.screen.ready()}isReady(){return this.screen.isReady()}async render(){let R=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.start({enableRedraw:!0,ignoreAnimation:!0,ignoreMouse:!0,...R}),await this.ready(),this.stop()}start(){let R=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{documentElement:F,screen:D,options:G}=this;D.start(F,{enableRedraw:!0,...G,...R})}stop(){this.screen.stop()}resize(R){let F=arguments.length>1&&arguments[1]!==void 0?arguments[1]:R,D=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;this.documentElement.resize(R,F,D)}constructor(R,F,D={}){this.parser=new Parser$1(D),this.screen=new Screen(R,D),this.options=D;const G=new Document$1(this,D),U=G.createDocumentElement(F);this.document=G,this.documentElement=U}}globalThis&&globalThis.__awaiter;globalThis&&globalThis.__awaiter;globalThis&&globalThis.__awaiter;globalThis&&globalThis.__awaiter;globalThis&&globalThis.__awaiter;globalThis&&globalThis.__awaiter;const bg="data:image/png;base64,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",bgImg=new Image;bgImg.src=bg;async function imgToCanvas(B){const R=document.createElement("img");R.src=B,R.setAttribute("crossOrigin","anonymous"),await new Promise(D=>R.onload=D);const F=document.createElement("canvas");return F.width=R.width,F.height=R.height,F.getContext("2d").drawImage(R,0,0),F}function addWatermark(B,R){const G=Math.max(B.width,B.height),U=Math.floor(G/600)*5,W=Math.floor(G/500)*5,q=B.getContext("2d");q.rotate(-30*Math.PI/180),console.log(q);for(let Y=0;Ynew Promise(D=>{this.canvas.toBlob(D)}),this.canvas}});const preset=index.offscreen();function blobToBase64(B){return new Promise((R,F)=>{const D=new FileReader;D.onloadend=()=>R(D.result),D.readAsDataURL(B)})}async function svgtopng(B,R,F){const D=new OffscreenCanvas(R,F),G=D.getContext("2d"),U=await Canvg.fromString(G,B,preset);U.resize(R*2,F*2,"xMidYMid meet"),await U.start();const W=await D.convertToBlob();return await blobToBase64(W)}const feedback="_feedback_buyji_1",title$2="_title_buyji_9",wrap$4="_wrap_buyji_16",btns$1="_btns_buyji_22",sub$1="_sub_buyji_28",group$1="_group_buyji_34",text="_text_buyji_61",submit="_submit_buyji_81";var styles$h={feedback,title:title$2,wrap:wrap$4,btns:btns$1,sub:sub$1,group:group$1,text,submit},bgSubmit="/orchestra-music-score/assets/submit.2416f3ea.png";function _isSlot$2(B){return typeof B=="function"||Object.prototype.toString.call(B)==="[object Object]"&&!isVNode(B)}var Feedback=defineComponent({name:"ColexiuFeedBack",setup(){const B=ref("\u8BC6\u522B\u4E0D\u51C6"),R=ref(""),F=ref(!1),D=[{name:"\u8BC6\u522B\u4E0D\u51C6"},{name:"\u65E0\u6CD5\u8BC4\u6D4B"},{name:"\u4E0D\u51FA\u8BC4\u6D4B\u7ED3\u679C"},{name:"\u66F2\u8C31\u4E0D\u4E00\u81F4"},{name:"\u6307\u6CD5\u9519\u8BEF"},{name:"\u5176\u4ED6"}],G=()=>{var U;try{if(!R.value)return Toast("\u8BF7\u5148\u586B\u5199\u610F\u89C1\u53CD\u9988");F.value=!0,request.post("/sysSuggestion/save",{data:{clientType:"STUDENT",content:R.value+"#"+B.value,type:"SMART_PRACTICE"}}),(U=suggestPopup.value)==null||U.close(),Toast("\u610F\u89C1\u53CD\u9988\u5DF2\u63D0\u4EA4")}catch{}F.value=!1};return()=>{let U;return createVNode("div",{class:styles$h.feedback},[createVNode("div",{class:styles$h.wrap},[createVNode("div",{class:styles$h.title},[createTextVNode("\u610F\u89C1\u53CD\u9988")]),createVNode("div",{class:styles$h.sub},[createTextVNode("\u8BF7\u9009\u62E9\u95EE\u9898\u7C7B\u578B")]),createVNode(RadioGroup,{class:styles$h.group,modelValue:B.value,"onUpdate:modelValue":W=>B.value=W},{default:()=>[createVNode(Row,{gutter:4},_isSlot$2(U=D.map(W=>createVNode(Col,{span:8},{default:()=>[createVNode(Radio,{name:W.name},{default:()=>[W.name]})]})))?U:{default:()=>[U]})]}),createVNode(Field,{type:"textarea",class:styles$h.text,placeholder:"\u8BF7\u8BE6\u7EC6\u63CF\u8FF0\u60A8\u9047\u5230\u7684\u95EE\u9898\uFF0C\u4EE5\u4FBF\u6211\u4EEC\u5C3D\u5FEB\u4E3A\u60A8\u89E3\u51B3\uFF01",maxlength:200,rows:"3",autosize:!0,"show-word-limit":!0,modelValue:R.value,"onUpdate:modelValue":W=>R.value=W},null),createVNode("div",{class:styles$h.btns},[createVNode("img",{class:styles$h.submit,src:bgSubmit,onClick:G},null)])])])}}});const suggestPopup=ref(null),confirmShow$1=ref(!1),switchProps$2={"active-color":"#2dc7aa","inactive-color":"#CCCCCC",size:"20px"};var Seet=defineComponent({name:"ColexiuSettingSett",setup(){return()=>createVNode(Fragment,null,[createVNode("div",null,[createVNode(NoticeBar,{class:styles$j.noticebar,"left-icon":InfoIcon,background:"#FFF6E8",color:"var(--van-primary-color)",text:"\u5168\u5C40\u8BBE\u7F6E\u4F1A\u66F4\u6539\u6240\u6709\u4E50\u8C31\u7EC3\u4E60\u53CA\u8BC4\u6D4B"},null),createVNode("div",{class:styles$j.groupBox,style:{height:"auto"}},[createVNode(Cell,{center:!0,border:!1,title:"\u62A4\u773C\u6A21\u5F0F"},{default:()=>[createVNode(Switch,mergeProps({modelValue:state$3.sett.eyeProtection,"onUpdate:modelValue":B=>state$3.sett.eyeProtection=B},switchProps$2),null)]}),createVNode(Divider,null,null)]),createVNode("div",{class:styles$j.btnsbar},[createVNode("div",{class:styles$j.btn,onClick:()=>show.value=!0},[createVNode("img",{class:styles$j.iconBtn,src:iconTv},null),createTextVNode("\u6295\u5C4F\u5E2E\u52A9")]),createVNode("div",{class:styles$j.btn,onClick:()=>{var B;(B=suggestPopup.value)==null||B.onShow()}},[createVNode("img",{class:styles$j.iconBtn,src:iconYijian},null),createTextVNode("\u610F\u89C1\u53CD\u9988")])])]),createVNode(Popups,{ref:suggestPopup,overlay:!1,style:{borderRadius:"8px"}},{default:()=>[createVNode(Feedback,null,null)]}),createVNode(Dialog.Component,{teleport:"body",class:evastyles.confirm,style:{overflow:"initial"},show:confirmShow$1.value,"onUpdate:show":B=>confirmShow$1.value=B,message:"\u8BBE\u7F6E\u6210\u529F\uFF0C\u662F\u5426\u7ACB\u5373\u91CD\u65B0\u52A0\u8F7D\uFF1F"},{title:()=>createVNode("img",{class:evastyles.iconTitle,src:iconTitle},null),footer:()=>createVNode("div",{class:evastyles.footer},[createVNode("img",{src:iconCancel,onClick:()=>confirmShow$1.value=!1},null),createVNode("img",{src:iconConfirm,onClick:useReload},null)])})])}});ref(!1);const switchProps$1={"active-color":"#2dc7aa","inactive-color":"#CCCCCC",size:"20px"};var Practise=defineComponent({name:"ColexiuSettingPractise",setup(){return()=>createVNode("div",null,[createVNode("div",{class:styles$j.groupBox},[createVNode(Cell,{center:!0,border:!1,title:"\u5FAA\u73AF\u64AD\u653E"},{default:()=>[createVNode(Switch,mergeProps({modelValue:state$3.sett.loop,"onUpdate:modelValue":B=>state$3.sett.loop=B},switchProps$1),{default:()=>[createTextVNode("off")]})]}),createVNode(Divider,null,null),createVNode(Cell,{center:!0,border:!1,title:"\u663E\u793A\u6307\u6CD5"},{default:()=>[createVNode(Switch,mergeProps({modelValue:state$3.sett.fingering,"onUpdate:modelValue":B=>state$3.sett.fingering=B},switchProps$1,{onChange:B=>{state$3.sett.fingering=B,event$1.emit("settingFingeringChange")}}),{default:()=>[createTextVNode("off")]})]})])])}});const switchProps={};var Evaluat=defineComponent({name:"ColexiuSettingPractise",setup(){return()=>createVNode("div",null,[createVNode("div",{class:styles$j.groupBox},[createVNode(Cell,{center:!0,border:!1,title:"\u8BC4\u6D4B\u96BE\u5EA6"},{default:()=>[createVNode(RadioGroup,{iconSize:20,class:styles$j.radioGroup,modelValue:state$3.eva.difficulty,"onUpdate:modelValue":B=>state$3.eva.difficulty=B},{default:()=>[createVNode(Radio,{name:"BEGINNER"},{default:()=>[createTextVNode("\u5165\u95E8")]}),createVNode(Radio,{name:"ADVANCED"},{default:()=>[createTextVNode("\u8FDB\u9636")]}),createVNode(Radio,{name:"PERFORMER"},{default:()=>[createTextVNode("\u5927\u5E08")]})]})]}),createVNode(Divider,null,null),createVNode(Cell,{center:!0,border:!1,title:"\u6821\u97F3\u63D0\u9192"},{default:()=>[createVNode(Switch,mergeProps({modelValue:state$3.sett.tuning,"onUpdate:modelValue":B=>state$3.sett.tuning=B},switchProps),{default:()=>[createTextVNode("off")]})]}),createVNode(Divider,null,null),createVNode(Cell,{center:!0,border:!1,title:"\u6444\u50CF\u5934"},{default:()=>[createVNode(Switch,mergeProps({modelValue:state$3.sett.camera,"onUpdate:modelValue":B=>state$3.sett.camera=B},switchProps),{default:()=>[createTextVNode("off")]})]}),state$3.sett.camera&&createVNode(Fragment,null,[createVNode(Divider,null,null),createVNode("div",{class:styles$j.sliderWrap},[createVNode("div",{class:"cell__title"},[createTextVNode("\u900F\u660E\u5EA6")]),createVNode(Slider,{min:0,max:100,modelValue:state$3.sett.opacity,"onUpdate:modelValue":B=>state$3.sett.opacity=B},{button:()=>createVNode("div",{class:styles$j.slider},[state$3.sett.opacity])})])]),createVNode(Divider,null,null),createVNode(Cell,{center:!0,border:!1,title:"\u4FDD\u5B58\u5230\u76F8\u518C"},{default:()=>[createVNode(Switch,mergeProps({modelValue:state$3.eva.save,"onUpdate:modelValue":B=>state$3.eva.save=B},switchProps),{default:()=>[createTextVNode("off")]})]}),createVNode(Divider,null,null),createVNode(Cell,{center:!0,border:!1,title:"\u8BC4\u6D4B\u4F34\u594F"},{default:()=>[createVNode(Switch,mergeProps({modelValue:state$3.eva.mute,"onUpdate:modelValue":B=>state$3.eva.mute=B},switchProps),{default:()=>[createTextVNode("off")]})]}),createVNode(Divider,null,null),createVNode(Cell,{center:!0,border:!1,title:"\u6807\u51C6\u97F3\u9AD8"},{default:()=>[createVNode("div",{style:{display:"flex"}},[createVNode(RadioGroup,{iconSize:20,class:styles$j.radioGroup,modelValue:state$3.sett.hertz,"onUpdate:modelValue":B=>state$3.sett.hertz=B},{default:()=>[createVNode(Radio,{name:440},{default:()=>[createTextVNode("440")]}),createVNode(Radio,{name:442},{default:()=>[createTextVNode("442")]})]})])]}),createVNode(Divider,null,null)])])}}),Setting=defineComponent({name:"ColexiuSetting",props:{active:{type:String,default:"1"}},setup(B){return()=>createVNode("div",{class:styles$j.setting},[createVNode(Tabs,{active:B.active},{default:()=>[createVNode(Tab,{title:"\u5168\u5C40\u8BBE\u7F6E",name:"1"},{default:()=>[createVNode(Seet,null,null)]}),createVNode(Tab,{title:"\u7EC3\u4E60\u8BBE\u7F6E",name:"2"},{default:()=>[createVNode(Practise,null,null)]}),createVNode(Tab,{title:"\u8BC4\u6D4B\u8BBE\u7F6E",name:"3"},{default:()=>[createVNode(Evaluat,null,null)]})]})])}}),BackIcon="/orchestra-music-score/assets/icon-back.a96b2fe2.png",iconFollowEndBtn="/orchestra-music-score/assets/icon-followEndBtn.7736176b.png",iconEvaluatingEnd="/orchestra-music-score/assets/icon-evaluatingEnd.74d03c3c.png",iconCameraOff="data:image/png;base64,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",iconCameraOn="data:image/png;base64,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",iconToggle$1="/orchestra-music-score/assets/icon_toggle.2861c3f0.png";const iconToggle="_iconToggle_8ao41_1",popup$1="_popup_8ao41_12";var styles$g={iconToggle,popup:popup$1};const container$5="_container_1nzf5_1",top="_top_1nzf5_10",picker="_picker_1nzf5_29",button$2="_button_1nzf5_32";var styles$f={container:container$5,top,picker,button:button$2},ChoosePartName=defineComponent({name:"choosePartName",props:{partListNames:{type:Array,default:()=>[]},partIndex:{type:Number,default:0}},emits:["close"],setup(B,{emit:R}){const{partListNames:F,partIndex:D}=toRefs(B),G=ref(F.value[D.value].value),U=computed(()=>F.value);return()=>createVNode("div",{class:styles$f.container},[createVNode("div",{class:styles$f.top},[createVNode("div",{class:styles$f.title},[createTextVNode("\u8BF7\u9009\u62E9\u60A8\u7EC3\u4E60\u7684\u4E50\u5668")]),createVNode(Icon,{name:"cross",size:24,onClick:()=>R("close")},null)]),createVNode(Picker,{class:styles$f.picker,defaultIndex:D.value,showToolbar:!1,columns:U.value,visibleItemCount:Math.ceil(document.body.clientHeight/44/3),onChange:W=>{G.value=W.value}},null),createVNode(Button,{class:styles$f.button,type:"primary",round:!0,block:!0,onClick:()=>{R("close",G.value)}},{default:()=>[createTextVNode("\u786E\u5B9A")]})])}});const instruments={"Acoustic Grand Piano":"\u5927\u94A2\u7434","Bright Acoustic Piano":"\u660E\u4EAE\u7684\u94A2\u7434","Electric Grand Piano":"\u7535\u94A2\u7434","Rhodes Piano":"\u67D4\u548C\u7684\u7535\u94A2\u7434","Chorused Piano":"\u52A0\u5408\u5531\u6548\u679C\u7684\u7535\u94A2\u7434",Harpsichord:"\u7FBD\u7BA1\u952E\u7434",Clavichord:"\u79D1\u62C9\u7EF4\u79D1\u7279\u7434",Celesta:"\u94A2\u7247\u7434",Glockenspiel:"\u94A2\u7247\u7434","Music box":"\u516B\u97F3\u76D2",Vibraphone:"\u98A4\u97F3\u7434",Marimba:"\u9A6C\u6797\u5DF4",Xylophone:"\u6728\u7434","Tubular Bells":"\u7BA1\u949F",Dulcimer:"\u5927\u626C\u7434","Hammond Organ":"\u51FB\u6746\u98CE\u7434","Percussive Organ":"\u6253\u51FB\u5F0F\u98CE\u7434","Rock Organ":"\u6447\u6EDA\u98CE\u7434","Church Organ":"\u6559\u5802\u98CE\u7434","Reed Organ":"\u7C27\u7BA1\u98CE\u7434",Accordian:"\u624B\u98CE\u7434",Harmonica:"\u53E3\u7434","Tango Accordian":"\u63A2\u6208\u624B\u98CE\u7434","Acoustic Guitar":"\u94A2\u5F26\u5409\u4ED6","Electric Guitar":"\u95F7\u97F3\u7535\u5409\u4ED6","Overdriven Guitar":"\u52A0\u9A71\u52A8\u6548\u679C\u7684\u7535\u5409\u4ED6","Distortion Guitar":"\u52A0\u5931\u771F\u6548\u679C\u7684\u7535\u5409\u4ED6","Guitar Harmonics":"\u5409\u4ED6\u548C\u97F3","Acoustic Bass":"\u5927\u8D1D\u53F8","Electric Bass":"\u7535\u8D1D\u53F8","Fretless Bass":"\u65E0\u54C1\u8D1D\u53F8","Slap Bass":"\u638C\u51FB","Synth Bass":"\u7535\u5B50\u5408\u6210",Violin:"\u5C0F\u63D0\u7434",Viola:"\u4E2D\u63D0\u7434",Cello:"\u5927\u63D0\u7434",Contrabass:"\u4F4E\u97F3\u5927\u63D0\u7434","Tremolo Strings":"\u5F26\u4E50\u7FA4\u98A4\u97F3\u97F3\u8272","Pizzicato Strings":"\u5F26\u4E50\u7FA4\u62E8\u5F26\u97F3\u8272","Orchestral Harp":"\u7AD6\u7434",Timpani:"\u5B9A\u97F3\u9F13","String Ensemble":"\u5F26\u4E50\u5408\u594F\u97F3\u8272","Synth Strings":"\u5408\u6210\u5F26\u4E50\u5408\u594F\u97F3\u8272","Choir Aahs":"\u4EBA\u58F0\u5408\u5531","Voice Oohs":"\u4EBA\u58F0","Synth Voice":"\u5408\u6210\u4EBA\u58F0","Orchestra Hit":"\u7BA1\u5F26\u4E50\u6572\u51FB\u9F50\u594F",Trumpet:"\u5C0F\u53F7",Trombone:"\u957F\u53F7",Tuba:"\u5927\u53F7","Muted Trumpet":"\u52A0\u5F31\u97F3\u5668\u5C0F\u53F7","French Horn":"\u6CD5\u56FD\u53F7","Brass Section":"\u94DC\u7BA1\u7EC4","Synth Brass":"\u5408\u6210\u94DC\u7BA1\u97F3\u8272","Soprano Sax":"\u9AD8\u97F3\u8428\u514B\u65AF\u7BA1","Alto Sax":"\u4E2D\u97F3\u8428\u514B\u65AF\u7BA1","Tenor Sax":"\u6B21\u4E2D\u97F3\u8428\u514B\u65AF\u7BA1","Baritone Sax":"\u4F4E\u97F3\u8428\u514B\u65AF\u7BA1",Oboe:"\u53CC\u7C27\u7BA1","English Horn":"\u82F1\u56FD\u7BA1",Bassoon:"\u5DF4\u677E",Clarinet:"\u5355\u7C27\u7BA1","Soprano Saxophone":"\u9AD8\u97F3\u8428\u514B\u65AF\u7BA1","Alto Saxophone":"\u4E2D\u97F3\u8428\u514B\u65AF\u7BA1","Tenor Saxophone":"\u6B21\u4E2D\u97F3\u8428\u514B\u65AF\u7BA1","Baritone Saxophone":"\u4F4E\u97F3\u8428\u514B\u65AF\u7BA1",Piccolo:"\u77ED\u7B1B",Flute:"\u957F\u7B1B",Recorder:"\u7AD6\u7B1B","Soprano Recorder":"\u9AD8\u97F3\u7AD6\u7B1B","Pan Flute":"\u6392\u7BAB","Bottle Blow":"\u74F6\u6728\u7BA1",Whistle:"\u53E3\u54E8\u58F0",Ocarina:"\u9676\u7B1B",Lead:"\u5408\u6210\u4E3B\u97F3","Lead lead":"\u5408\u6210\u4E3B\u97F3","Pad age":"\u5408\u6210\u97F3\u8272",Pad:"\u5408\u6210\u97F3\u8272",FX:"\u5408\u6210\u6548\u679C \u79D1\u5E7B",Sitar:"\u897F\u5854\u5C14",Banjo:"\u73ED\u5353\u7434",Shamisen:"\u4E09\u6627\u7EBF",Koto:"\u5341\u4E09\u5F26\u7B5D",Kalimba:"\u5361\u6797\u5DF4",Bagpipe:"\u98CE\u7B1B",Fiddle:"\u6C11\u65CF\u63D0\u7434",Shanai:"\u5C71\u5948","Tinkle Bell":"\u53EE\u5F53\u94C3",Agogos:"\u963F\u6208\u6208\u94C3","Steel Drums":"\u94A2\u9F13","Taiko Drum":"\u592A\u9F13","Melodic Toms":"\u55F5\u55F5\u9F13","Synth Drums":"\u5408\u6210\u9F13","Reverse Cymbals":"\u53CD\u5411\u9572","Agogo Bells":"\u963F\u6208\u6208\u94C3","Taiko Drums":"\u592A\u9F13",Bongos:"\u90A6\u6208\u9F13","Bongo Bell":"\u90A6\u6208\u94C3",Congas:"\u5EB7\u52A0\u9F13",Guiro:"\u522E\u58F6","Guitar Fret Noise":"\u5409\u4ED6\u6362\u628A\u6742\u97F3","Breath Noise":"\u547C\u5438\u58F0",Seashore:"\u6D77\u6D6A\u58F0","Bird Tweet":"\u9E1F\u9E23","Telephone Ring":"\u7535\u8BDD\u94C3",Helicopter:"\u76F4\u5347\u673A",Applause:"\u9F13\u638C\u58F0",Gunshot:"\u67AA\u58F0","Acoustic Bass Drum":"\u5927\u9F13","Bass Drum":"\u5927\u9F13","Side Drum":"\u5C0F\u9F13\u9F13\u8FB9","Acoustic Snare":"\u5C0F\u9F13","Hand Claps":"\u62CD\u624B","Electric Snare":"\u5C0F\u9F13","Low Floor Tom":"\u4F4E\u97F3\u55F5\u9F13","Closed Hi-Hat":"\u95ED\u5408\u8E29\u9572","High Floor Tom":"\u9AD8\u97F3\u843D\u5730\u55F5\u9F13","Pedal Hi-Hat":"\u811A\u8E0F\u8E29\u9572","Low Tom":"\u4F4E\u97F3\u55F5\u9F13","Open Hi-Hat":"\u5F00\u97F3\u8E29\u9572","Low-Mid Tom":"\u4E2D\u4F4E\u97F3\u55F5\u9F13","Hi Mid Tom":"\u9AD8\u97F3\u9F13","Crash Cymbals":"\u5BF9\u9572","High Tom":"\u9AD8\u97F3\u55F5\u9F13","Ride Cymbals":"\u53EE\u53EE\u9572","Chinese Cymbals":"\u4E2D\u56FD\u9572","Ride Bell":"\u5706\u94C3",Tambourine:"\u94C3\u9F13","Splash Cymbal":"\u6E85\u97F3\u9572",Cowbell:"\u725B\u94C3","Crash Cymbal":"\u5F3A\u97F3\u94B9","Vibra-Slap":"\u98A4\u97F3\u5668","Ride Cymbal":"\u6253\u70B9\u94B9","Hi Bongo":"\u9AD8\u97F3\u90A6\u6208\u9F13","Low Bongo":"\u4F4E\u97F3\u90A6\u6208\u9F13","Mute Hi Conga":"\u5F31\u97F3\u9AD8\u97F3\u5EB7\u52A0\u9F13","Open Hi Conga":"\u5F3A\u97F3\u9AD8\u97F3\u5EB7\u52A0\u9F13","Low Conga":"\u4F4E\u97F3\u5EB7\u52A0\u9F13","High Timbale":"\u9AD8\u97F3\u5929\u5DF4\u9F13","Low Timbale":"\u4F4E\u97F3\u5929\u5DF4\u9F13","High Agogo":"\u9AD8\u97F3\u963F\u6208\u6208\u94C3","Low Agogo":"\u4F4E\u97F3\u963F\u6208\u6208\u94C3",Cabasa:"\u5361\u5DF4\u8428",Maracas:"\u6C99\u9524","Short Whistle":"\u77ED\u53E3\u54E8","Long Whistle":"\u957F\u53E3\u54E8","Short Guiro":"\u77ED\u522E\u58F6","Long Guiro":"\u957F\u522E\u58F6",Claves:"\u54CD\u68D2","Hi Wood Block":"\u9AD8\u97F3\u6728\u9C7C","Low Wood Block":"\u4F4E\u97F3\u6728\u9C7C","Mute Triangle":"\u5F31\u97F3\u4E09\u89D2\u94C1","Open Triangle":"\u5F3A\u97F3\u4E09\u89D2\u94C1","Drum Set":"\u67B6\u5B50\u9F13","Hulusi flute":"\u846B\u82A6\u4E1D",Melodica:"\u53E3\u98CE\u7434","Snare Drum":"\u5C0F\u519B\u9F13",Cymbal:"\u9572",Cymbals:"\u9572","Horn in F":"\u5706\u53F7",Triangle:"\u4E09\u89D2\u94C1",Vibrato:"\u98A4\u97F3\u7434","Suspend Cymbals":"\u540A\u9572","Suspended Cymbals":"\u540A\u9572","Tom-Toms":"\u55F5\u55F5\u9F13",Bell:"\u94C3\u94DB",Bells:"\u94C3\u94DB","Alto Clarinet":"\u4E2D\u97F3\u5355\u7C27\u7BA1","Bass Clarinet":"\u4F4E\u97F3\u5355\u7C27\u7BA1",Cornet:"\u77ED\u53F7",Euphonium:"\u4E0A\u4F4E\u97F3\u53F7","crash cymbals":"\u5BF9\u9572",Castanets:"\u54CD\u677F",Shaker:"\u6C99\u9524","Mark tree":"\u97F3\u6811",Chimes:"\u7BA1\u949F","Mark Tree":"\u97F3\u6811","Tom-toms":"\u55F5\u55F5\u9F13","Hi-Hat":"\u8E29\u9572","Sleigh Bells":"\u96EA\u6A47\u94C3",Flexatone:"\u5F39\u97F3\u5668","Brake drum":"\u95F8\u9F13",Gong:"\u9523","concert tom":"\u97F3\u4E50\u4F1A\u55F5\u55F5\u9F13","brake drum":"\u8F66\u8F6E\u9F13","finger cymbal":"\u6307\u94B9","ride cymbal":"\u53EE\u53EE\u9572","Concert Toms":"\u97F3\u4E50\u4F1A\u55F5\u55F5\u9F13",Vibraslap:"\u5F39\u97F3\u5668","Wood Blocks":"\u6728\u9C7C","Temple Blocks":"\u6728\u9C7C","Wood Block":"\u6728\u9C7C","Field Drum":"\u519B\u9F13","Quad-Toms":"\u7B52\u9F13",Quads:"\u7B52\u9F13","Drums set":"\u67B6\u5B50\u9F13","High Bongo":"\u90A6\u6208",Timbales:"\u5929\u5DF4\u9F13","rain stick":"\u96E8\u68D2","String Bass":"\u5F26\u4E50\u4F4E\u97F3","Floor Tom":"\u4FA7\u55F5\u9F13","Brake Drum":"\u95F8\u9F13","Tam-tam":"\u5927\u9523"},getInstrumentName=B=>{const R=B.replace(/ /g," ").toLocaleLowerCase(),F=Object.keys(instruments);for(let D=0;D{toggleMusicSheet.show=B}});var ToggleMusicSheet=defineComponent({name:"ToggleMusicSheet",setup(){const B=useOriginSearch(),R=computed(()=>{var G;let D=((G=state$2.activeDetail)==null?void 0:G.background)||[];return D=D.filter(U=>{var W,q;return!((q=(W=U.track)==null?void 0:W.toLocaleUpperCase())!=null&&q.includes("COMMON"))}),D.map((U,W)=>{const q=getInstrumentName(U.track);return{text:U.track+(q?`(${q})`:""),value:W}}).filter(Boolean)}),F=D=>{pause(),postMessage({api:"cloudDestroy"}),postMessage({api:"cloudLoading",content:{show:!0,type:"fullscreen"}});const G=location.origin+location.pathname+"?"+queryString.stringify({...B,behaviorId:sessionStorage.getItem("behaviorId")||"",_t:new Date().valueOf(),"part-index":D});console.log(G),location.href=G};return()=>createVNode(Popup,{class:styles$g.popup,show:toggleMusicSheet.show,"onUpdate:show":D=>toggleMusicSheet.show=D},{default:()=>[createVNode(ChoosePartName,{partIndex:state$2.partIndex,partListNames:R.value,onClose:D=>{console.log("\u{1F680} ~ value:",D),toggleMusicSheet.show=!1,D!==void 0&&F(D)}},null)]})}});const confirmShow=ref(!1),startButtonShow=ref(!0),evaluatingRef=ref({}),settingPopup=ref(null);ref(null);const followRef=ref(null),back=()=>{sendBackRecordTotalTime(),postMessage$1({api:"back"})},modelType=ref("init"),onChangeModelType=B=>{var R;if(B!==modelType.value){if(B==="evaluation")changeSpeed((R=state$2.activeDetail)==null?void 0:R.originalSpeed,!1),state.evaluatingStatus=!0;else{const F=store_legacy.get("speeds")||{},D=useOriginSearch();F[D.id]&&changeSpeed(F[D.id])}nextTick(()=>{modelType.value=B})}};var Buttons=defineComponent({name:"Colexiu-Buttons",props:{onSetMusicScoreType:{type:Object,default:B=>{}}},emits:["setMusicScoreType"],setup(B,{emit:R}){const F=useOriginSearch(),D=ref(),[G]=useMenu(),U=ref(!1),W=()=>{const J=F.modelType;J&&J!="evaluation"&&onChangeModelType(J)};onMounted(()=>{W()});const q=ref(!1),Y=ref(""),Q=J=>{Y.value=J.text,confirmShow.value=!0},Z=()=>{Y.value==="\u4E94\u7EBF\u8C31"?state$3.sett.type="staff":Y.value==="\u7B80\u8C31"?(state$3.sett.type="jianpu",state$3.sett.keySignature=!1):Y.value==="\u56FA\u5B9A\u8C03"&&(state$3.sett.type="jianpu",state$3.sett.keySignature=!0),sessionStorage.setItem("notation",state$3.sett.type)},K=J=>{if(J==="staff")return state$3.sett.type===J;if(J==="shoudiao")return state$3.sett.type==="jianpu"&&!state$3.sett.keySignature;if(J==="guding")return state$3.sett.type==="jianpu"&&state$3.sett.keySignature};return()=>{var ie,ne,se,re,ae,le,ce,he,de,me;const J=((ie=state$2.activeDetail)!=null&&ie.isAppPlay?((ne=state$2.activeDetail)==null?void 0:ne.midiUrl)==="":state.isFirstPlay||((se=state.audiosInstance)==null?void 0:se.length)==1)||state.evaluatingStatus||((re=state$2.activeDetail)==null?void 0:re.isAppPlay)&&state$2.midiPlayIniting;return createVNode("div",{onClick:fe=>fe.stopPropagation(),class:[styles$k.container,G.value?"":styles$k.outUp,state$2.chenkuang&&styles$k.chenkuang],style:F.headerHeight?{height:"1rem",paddingTop:"0.25rem"}:""},[createVNode("div",{class:styles$k.leftButton},[(F==null?void 0:F.modelType)&&!F.unitId?null:createVNode("img",{class:styles$k.backbtn,src:BackIcon,onClick:back},null),createVNode("div",{class:styles$k.titleWrap},[createVNode("div",{class:styles$k.title},[(ae=state$2.activeDetail)==null?void 0:ae.musicSheetName]),F.albumName&&createVNode("div",{class:styles$k.album},[F.albumName])])]),createVNode("div",{class:styles$k.centerButton},[createVNode(Transition,{name:"finish"},{default:()=>[!startButtonShow.value&&createVNode(Button,{class:[styles$k.button,styles$k.finish],onClick:()=>{var fe,ge;(ge=(fe=evaluatingRef.value)==null?void 0:fe.playerStop)==null||ge.call(fe)}},{default:()=>[createVNode("img",{style:{width:"100%",display:"block"},src:iconEvaluatingEnd},null)]})]}),createVNode(Transition,{name:"finish"},{default:()=>{var fe;return[((fe=followRef==null?void 0:followRef.value)==null?void 0:fe.data.start)&&createVNode(Button,{class:[styles$k.button,styles$k.finish,styles$k.followEndBtn],onClick:()=>{var ge,Se;(Se=(ge=followRef.value)==null?void 0:ge.handleEnd)==null||Se.call(ge)}},{default:()=>[createVNode("img",{style:{width:"100%",display:"block"},src:iconFollowEndBtn},null)]})]}})]),createVNode("div",{class:[styles$k.moreButton],style:{opacity:state$2.initRendered?1:0}},[!(F!=null&&F.modelType)&&modelType.value!=="init"&&!state$2.frozenMode&&createVNode(Button,{"data-step":"m0",class:[styles$k.button,styles$k.hasText],disabled:state.evaluatingStatus&&!startButtonShow.value||((le=followRef.value)==null?void 0:le.data.start),onClick:()=>{!unitTestData.isSelectMeasureMode&&state$2.sectionStatus&&clearSectionStatus(),modelType.value==="practice"&&(resetPlayStatus(),setCurrentTime(0)),modelType.value==="evaluation"&&(state.evaluatingStatus=!1,evaluatStopPlay()),modelType.value="init"}},{default:()=>[createVNode(ButtonIcon,{key:"modelType",name:["init","practice"].includes(modelType.value)?"modelType":["follow"].includes(modelType.value)?"modelType1":"modelType2"},null),createVNode("span",null,[createTextVNode("\u6A21\u5F0F")])]}),state$2.initRendered&&!F.lessonTrainingId&&!F.questionId&&((ce=state$2.activeDetail)==null?void 0:ce.musicSheetType)=="CONCERT"&&createVNode(Button,{class:[styles$k.button,styles$k.hasText],onClick:()=>{toggleMusicSheet.toggle(!0)},disabled:state.evaluatingStatus&&!startButtonShow.value||state.playState==="play"||((he=followRef.value)==null?void 0:he.data.start)},{default:()=>[createVNode("img",{src:iconToggle$1},null),createVNode("span",null,[createTextVNode("\u58F0\u8F68")])]}),modelType.value==="evaluation"&&createVNode(Fragment,null,[createVNode(Popover,{show:U.value,"onUpdate:show":fe=>U.value=fe,overlay:!1,placement:"bottom-end",class:"cameraPopover","show-arrow":!1},{default:()=>[createVNode(CellGroup,{border:!1},{default:()=>[createVNode(Cell,{center:!0,title:"\u6444\u50CF\u5934"},{default:()=>[createVNode("div",{style:"display:flex;justify-content: flex-end;"},[createVNode(Switch,mergeProps({modelValue:state$3.sett.camera,"onUpdate:modelValue":fe=>state$3.sett.camera=fe},switchProps),{default:()=>[createTextVNode("off")]})])]}),state$3.sett.camera&&createVNode(Cell,{class:"cameraOpacity",center:!0,title:"\u900F\u660E\u5EA6"},{default:()=>[createVNode(Slider,{style:{width:"90%"},min:0,max:100,modelValue:state$3.sett.opacity,"onUpdate:modelValue":fe=>state$3.sett.opacity=fe},{button:()=>createVNode("div",{class:styles$k.slider},[state$3.sett.opacity])})]})]})],reference:()=>createVNode("div",{onClick:fe=>{startButtonShow.value||fe.stopPropagation()}},[createVNode(Button,{class:[styles$k.button,styles$k.hasText],disabled:!startButtonShow.value},{default:()=>[createVNode("img",{src:state$3.sett.camera?iconCameraOn:iconCameraOff},null),createVNode("span",null,[createTextVNode("\u6444\u50CF\u5934")])]})])}),createVNode(Evaluating,{ref:evaluatingRef},null)]),modelType.value==="practice"&&createVNode(Fragment,null,[createVNode(Button,{"data-step":"m1",class:[styles$k.button,styles$k.hasText],onClick:()=>changeMode(state.mode==="background"?"music":"background"),disabled:J},{default:()=>[createVNode(ButtonIcon,{key:"music",name:state.mode==="music"?"music":"accompaniment"},null),createVNode("span",null,[state.mode==="background"?"\u4F34\u594F":"\u539F\u58F0"])]}),unitTestData.isSelectMeasureMode?null:createVNode(Button,{"data-step":"m2",class:[styles$k.button,styles$k.hasText],onClick:sectionChange,disabled:state.evaluatingStatus||state.playState==="play"},{default:()=>[createVNode(ButtonIcon,{key:"section",name:"section"+(state$2.section.length&&state$2.section.length<=2?state$2.section.length:"")},null),createVNode("span",null,[createTextVNode("\u9009\u6BB5")])]}),createVNode(Button,{"data-step":"m3",class:[styles$k.button,styles$k.hasText],disabled:state.playState==="play",onClick:()=>{state$3.sett.fingering=!state$3.sett.fingering,event$1.emit("settingFingeringChange")}},{default:()=>[createVNode(ButtonIcon,{key:"music",name:state$3.sett.fingering?"fingeringOn":"fingeringOff"},null),createVNode("span",null,[createTextVNode("\u6307\u6CD5")])]})]),["practice","evaluation"].includes(modelType.value)&&!F.lessonTrainingId&&createVNode(Popover,{trigger:"manual",overlay:!1,placement:"bottom",class:styles$k.popover,show:G.value&&state.speedShow&&!(state.evaluatingStatus||state.playState==="play"),"onUpdate:show":fe=>state.speedShow=fe},{default:()=>[createVNode(Speed,{ref:D,updateSpeed:fe=>state.speed=fe,changed:changeSpeed,mode:state.mode,changeMode,lib:{speed:state.speed},class:styles$k.speed},null)],reference:()=>createVNode(Button,{"data-step":"m4",class:[styles$k.button,styles$k.hasText,styles$k.speedButton],disabled:state.evaluatingStatus||state.playState==="play",onClick:()=>{var fe;(fe=D.value)==null||fe.refUpdateSpeed(state.speed),state.speedShow=!state.speedShow}},{default:()=>[createVNode(ButtonIcon,{name:"speed"},null),createVNode("span",null,[createTextVNode("\u901F\u5EA6")]),createVNode("span",{class:styles$k.label},[state.speed])]})}),(de=state$2.activeDetail)!=null&&de.notation?createVNode(Popover,{class:styles$k.toggleMusicType,placement:"bottom-end",show:q.value,"onUpdate:show":fe=>{var ge;state.playState==="play"||state.evaluatingStatus&&!startButtonShow.value||((ge=followRef.value)==null?void 0:ge.data.start)||(q.value=fe)}},{reference:()=>{var fe;return createVNode(Button,{disabled:state.playState==="play"||state.evaluatingStatus&&!startButtonShow.value||((fe=followRef.value)==null?void 0:fe.data.start),class:[styles$k.button,styles$k.hasText,styles$k.speedButton]},{default:()=>[createVNode(ButtonIcon,{name:"icon-zhuanpu"},null),createVNode("span",null,[K("staff")?"\u8F6C\u7B80\u8C31":"\u8F6C\u4E94\u7EBF\u8C31"])]})},default:()=>createVNode(Fragment,null,[createVNode("div",{role:"menuitem",class:"van-popover__action",onClick:()=>Q({text:"\u4E94\u7EBF\u8C31"})},[createVNode(ButtonIcon,{key:"type",name:K("staff")?"icon-staff-active":"icon-staff"},null),createVNode("div",{class:["action-text",K("staff")&&"action-active"]},[createTextVNode("\u4E94\u7EBF\u8C31")])]),createVNode("div",{role:"menuitem",class:"van-popover__action",onClick:()=>Q({text:"\u7B80\u8C31"})},[createVNode(ButtonIcon,{key:"type",name:K("shoudiao")?"shuodiao-active":"shuodiao"},null),createVNode("div",{class:["action-text",K("shoudiao")&&"action-active"]},[createTextVNode("\u9996\u8C03")])]),createVNode("div",{role:"menuitem",class:"van-popover__action",onClick:()=>Q({text:"\u56FA\u5B9A\u8C03"})},[createVNode(ButtonIcon,{key:"type",name:K("guding")?"guding-active":"guding"},null),createVNode("div",{class:["action-text",K("guding")&&"action-active"]},[createTextVNode("\u56FA\u5B9A\u8C03")])])])}):null,state$2.initRendered&&createVNode(Fragment,null,[createVNode(Button,{class:[styles$k.button,styles$k.hasText],onClick:()=>{var fe;(fe=settingPopup.value)==null||fe.onShow()},disabled:state.evaluatingStatus&&!startButtonShow.value||state.playState==="play"||((me=followRef.value)==null?void 0:me.data.start)},{default:()=>[createVNode(ButtonIcon,{name:"setting"},null),createVNode("span",null,[createTextVNode("\u8BBE\u7F6E")])]}),createVNode(Popups,{ref:settingPopup,style:{borderRadius:"8px"}},{default:()=>[createVNode(Setting,{active:modelType.value=="practice"?"2":modelType.value=="evaluation"?"3":"1"},null)]})])]),createVNode(FloatWraper,null,null),createVNode(Dialog.Component,{teleport:"body",class:evastyles.confirm,style:{overflow:"initial"},show:confirmShow.value,"onUpdate:show":fe=>confirmShow.value=fe,message:"\u8BBE\u7F6E\u6210\u529F\uFF0C\u662F\u5426\u7ACB\u5373\u91CD\u65B0\u52A0\u8F7D\uFF1F"},{title:()=>createVNode("img",{class:evastyles.iconTitle,src:iconTitle},null),footer:()=>createVNode("div",{class:evastyles.footer},[createVNode("img",{src:iconCancel,onClick:()=>confirmShow.value=!1},null),createVNode("img",{src:iconConfirm,onClick:()=>{Z(),useReload()}},null)])})])}}});const event$1=new EventEmitter,browserInfo$2=browser(),initBehaviorId$1=""+new Date().valueOf(),getLinkId$1=()=>{const B=useOriginSearch().id;return location.hash.split("?")[0].split("/").pop()||B||""},getFixTime=B=>{const R=getDuration(state.osmd);let F=R.numerator||0,D=R.denominator||4;const G=R.beatUnit||"quarter";return state$2.repeatedBeats&&(F=F===2?4:F),!state$2.needTick&&!state$2.skipTick?60/B*formatBeatUnit(G)*(F/D):0};let prevIndex=0;const state=reactive({songs:{},playState:"init",sectionHint:new SectionHint,audiosInstance:null,mode:"music",isFirstPlay:!0,metro:null,metroing:!1,duration:"0:00",durationNum:0,currentTime:"0:00",currentTimeNum:0,loading:!1,speed:90,browser:browser(),speedShow:!1,progressShow:!1,touched:!1,osmd:null,tickPlayer:null,evaluatingStatus:!1,evaluatingTips:!1,clickTime:0,evaluatingFixTime:0,cameraStatus:!1,captureStatus:!1,ticking:!1,partIndex:0,activeIndex:0}),syncStepIndex=B=>{var R;state.osmd.hidden!==!1&&state.osmd.cursor.show(),prevIndex=B,setStepIndex(state.osmd,B),refreshIndex((R=state$2.times[B])==null?void 0:R.time)},sendParentMessage=B=>{window.parent.postMessage({api:"headerTogge",playState:B},"*")};watchEffect(()=>{state$2.maskStatus=state.playState==="play",["play","pause"].includes(state.playState)&&sendParentMessage(state.playState)});const syncPlayState=async()=>{if(state$2.activeDetail.isAppPlay){const B=await promisefiyPostMessage({api:"cloudGetMediaStatus"}),R=B==null?void 0:B.content.status;state.playState=R}else state.playState=state.audiosInstance.getStatus()},setCurrentTime=B=>{console.log("setCurrentTime",B);const R=B;state$2.fixedKey=0,state.currentTimeNum=R,state.currentTime=formatTime(R),state$2.activeDetail.isAppPlay?promisefiyPostMessage({api:"cloudSetCurrentTime",content:{currentTime:B*1e3,songID:state$2.activeDetail.examSongId}}):state.audiosInstance.setCurrentTime(R),refreshView(),syncPlayState();const F=getIndex(state$2.times,state.currentTimeNum);syncStepIndex(F)},getActiveMidiId=()=>{var B,R,F,D,G,U,W;return(W=(U=(G=(D=(F=(R=(B=state.osmd)==null?void 0:B.sheet)==null?void 0:R.instruments)==null?void 0:F[0])==null?void 0:D.subInstruments)==null?void 0:G[0])==null?void 0:U.midiInstrumentID)!=null?W:0},changeMode=async B=>{var F,D;const R=B==="background"?"music":"background";if(state$2.activeDetail.isAppPlay){const G=new Map;for(const U of state$2.partListNames)G.set(U,60);for(const U of getVoicePartInfo().partListNames)G.set(U,R==="background"?100:0);promisefiyPostMessage({api:"cloudVolume",content:{activeMidiId:getActiveMidiId(),activeMidiVolume:R==="background"?100:0,parts:Array.from(G.keys()).map(U=>({name:U,volume:G.get(U)}))}})}state.mode=B,(F=state.audiosInstance)==null||F.setMute(!0,state.songs[R]),(D=state.audiosInstance)==null||D.setMute(!1,state.songs[B])},changeAllMode=()=>{var B,R;if((B=state$2.activeDetail)!=null&&B.isAppPlay){const F=new Map;for(const D of state$2.partListNames)F.set(D,1);promisefiyPostMessage({api:"cloudVolume",content:{activeMidiId:getActiveMidiId(),activeMidiVolume:100,parts:Array.from(F.keys()).map(D=>({name:D,volume:F.get(D)}))}})}else state.mode="background",(R=state.audiosInstance)==null||R.setMute(!0)},changeSpeed=(B,R=!0)=>{var D;const F=store_legacy.get("speeds")||{};R&&(F[getLinkId$1()]=B,store_legacy.set("speeds",F)),state.speed=B,state$2.activeDetail&&((D=state.audiosInstance)==null||D.setSpeed(B/state$2.baseSpeed),promisefiyPostMessage({api:"cloudChangeSpeed",content:{speed:B,originalSpeed:state$2.activeDetail.originalSpeed,songID:state$2.activeDetail.examSongId}}),state.playState==="play"&&syncStepIndex(getIndex(state$2.times,state.currentTimeNum)))},resetCursor=()=>{state.osmd&&(state.osmd.product?state.osmd.cursor.setPosition({...state$2.times[0].cursorBox}):state.osmd.cursor.reset(),state.osmd.cursor.hide(),state$2.fixedKey=0)},refreshIndexBase=B=>{if(B<0)return;const{osmd:R}=state;R&&state$2.times[B]&&(state$2.sectionStatus||state.sectionHint.show(),state$2.times[B]&&state$2.times[B].noteElement&&state.sectionHint.showForElement(state$2.times[B]),R.product||R.cursor.hidden!==!1&&(R.cursor.reset(),R.cursor.show(),state$2.fixedKey=0),prevIndex!==B&&(setStepIndex(state.osmd,state$2.times[B].i,prevIndex),prevIndex=B),state$2.fixedKey=state$2.times[B].realKey,state$2.activeNote=state$2.times[B])},refreshIndex=B=>{const{osmd:R}=state;if(R&&(B||state.audiosInstance.audio)){const F=B||state.audiosInstance.audio.currentTime,D=getIndex(state$2.times,F);state.activeIndex=D,removeRepateBackground(D);const G=state$2.times[state$2.times.length-1],U=(G==null?void 0:G.sourceEndTime)||(G==null?void 0:G.endtime);F>U?(state.osmd.cursor.hide(),state.sectionHint.destroy()):state$2.times[D]&&refreshIndexBase(D)}},removeRepateBackground=B=>{var R,F;if(state.evaluatingStatus&&B){const D=state$2.times[B],G=state$2.times[B+1]||D,U=(F=(R=G==null?void 0:G.noteElement)==null?void 0:R.sourceMeasure)==null?void 0:F.measureListIndex;G&&state$2.evaluatings[U]&&B>0&&(state$2.evaluatings={...state$2.evaluatings,[U]:void 0})}},refreshPlayer=async B=>{var F,D;const{osmd:R}=state;if(R&&(B||state.audiosInstance.audio)){const G=B||state.audiosInstance.audio.currentTime,U=0;if(G+1{if(state$2.sectionStatus&&state$2.section.length===2){G>=state$2.section[0].time&&(state$2.sectionFlash=!1);const Y=state$2.times[state$2.section[1].i+1],Q=Y?Y.halfTone===0?state$2.section[1].endtime:Y.time:state.durationNum;return G+(browserInfo$2.xiaomi?.2:.08)>=Q}return!1})()){if(state.audiosInstance.setMute(!0),state.osmd.cursor.hide(),(F=state$2.activeDetail)!=null&&F.isAppPlay?pause():await state.audiosInstance.pause(),unitTestData.isSelectMeasureMode&&state.evaluatingStatus){event$1.emit("ended");return}setSectionModeCurrentTime(),clearAccelerateRefreshPlayer(),setTimeout(()=>{state$2.section.length&&setPlayState()},1e3),state.loading=!1;return}((D=state$2.activeDetail)==null?void 0:D.isAppPlay)&&state.durationNum+3{try{prevIndex=0,state.osmd.cursor.reset(),state.osmd.cursor.hide(),state$2.fixedKey=0,state$2.sectionFlash=!1,state.sectionHint&&state.sectionHint.destroy(),B||(state$2.activeDetail.isAppPlay?await promisefiyPostMessage({api:"cloudSuspend",content:{songID:state$2.activeDetail.examSongId}}):(console.log("resetPlayStatus\u8C03\u7528\u6682\u505C"),state.audiosInstance.pause())),syncPlayState()}catch(R){console.log("resetPlayStatus\u9519\u8BEF",R)}},play=async()=>{state.isFirstPlay&&(resetPlayStatus(),state$2.fixedKey=0),state$2.activeDetail.isAppPlay?(await syncPlayState(),promisefiyPostMessage({api:"cloudSuspend",content:{songID:state$2.activeDetail.examSongId}})):(state.playState=state.audiosInstance.getStatus(),clearAccelerateRefreshPlayer(),accelerateRefreshPlayer())},setDelayTime=async B=>new Promise(R=>{setTimeout(()=>{R(B)},B)}),pause=async()=>{state$2.sectionStatus&&state.osmd.cursor.hide(),state$2.activeDetail.isAppPlay?(await syncPlayState(),await promisefiyPostMessage({api:"cloudSuspend"}),await setDelayTime(200)):(state.playState=state.audiosInstance.getStatus(),clearAccelerateRefreshPlayer(),state.audiosInstance.pause())},waiting=()=>{state.loading=!0},playing=()=>{state.loading=!1},ended=lodash$1.exports.debounce(async B=>{resetPlayStatus(),state$2.fixedKey=0,state.evaluatingStatus||(refreshPlayer(0),state$3.sett.loop&&await setPlayState()),setCurrentTime(0),event$1.emit("ended",B)},300,{leading:!0,trailing:!1});let timer$1=null;const accelerateRefreshPlayer=()=>{timer$1||!state.audiosInstance||(timer$1=setInterval(()=>{requestAnimationFrame(()=>{refreshPlayer(),state.audiosInstance.getStatus()==="play"&&refreshIndex()})},16.7))},clearAccelerateRefreshPlayer=()=>{clearInterval(timer$1),timer$1=null},sectionChange=()=>{state$2.sectionStatus=!state$2.sectionStatus,clearAccelerateRefreshPlayer(),resetPlayStatus(),state$2.sectionStatus||(setCurrentTime(0),state$2.fixedKey=0),state$2.sectionStatus&&state$2.section.length!=2&&resetCursor()},clearSectionStatus=()=>{state$2.section=[],state$2.sectionBoundingBoxs=[],state$2.sectionStatus=!1},getFirsrNoteByMeasureListIndex=(B,R=!0)=>{var F,D,G;for(const U of state$2.times)if(((D=(F=U==null?void 0:U.noteElement)==null?void 0:F.sourceMeasure)==null?void 0:D.measureListIndex)===B){let W=null;for(const q of U.measures)getSlursNote(q)&&(W=getSlursNote(q));if(W&&((G=W.sourceMeasure)==null?void 0:G.measureListIndex)!==B){for(const q of state$2.times)if(q.noteElement.NoteToGraphicalNoteObjectId===W.NoteToGraphicalNoteObjectId)return q}return U}return null},setSectionModeCurrentTime=()=>{var B,R;if(state$2.needTick)setCurrentTime(state$2.section[0].sourceStartTime||state$2.section[0].time);else{const F=(R=(B=state$2.section[0].noteElement)==null?void 0:B.sourceMeasure)==null?void 0:R.measureListIndex;F>0?(setCurrentTime(getFirsrNoteByMeasureListIndex(F).time),state$2.sectionFlash=!0):setCurrentTime(0)}},setPlayerView=()=>{state$2.sectionStatus&&(syncStepIndex(getIndex(state$2.times,state.currentTimeNum)),state$2.section.length===2?setSectionModeCurrentTime():(state$2.section=[],state$2.sectionBoundingBoxs=[],state$2.sectionStatus=!1,Toast.clear()))},cloudToggleState=async()=>{const B=await promisefiyPostMessage({api:"cloudGetMediaStatus"}),R=B==null?void 0:B.content.status;if(R==="init")return;R==="suspend"?await promisefiyPostMessage({api:"cloudPlay",content:{songID:state$2.activeDetail.examSongId,startTime:state.currentTimeNum*1e3,originalSpeed:state$2.activeDetail.originalSpeed,speed:state.speed,hertz:state$3.sett.hertz}}):await promisefiyPostMessage({api:"cloudSuspend"});const F=await promisefiyPostMessage({api:"cloudGetMediaStatus"});state.playState=F==null?void 0:F.content.status,console.log(F,"cloudGetMediaStatused")},toggleState=async B=>{modelType.value!=="init"&&(state$2.activeDetail.isAppPlay?await cloudToggleState():(state.isFirstPlay=!1,setPlayerView(),await state.audiosInstance.togglePlay(B),state.evaluatingStatus||changeMode(state.mode),state.playState=state.audiosInstance.getStatus()))},setActiveKey=B=>{state$2.activeTick=B},setTickStop=()=>{state$2.activeTick=-1,state$2.activeTickRepeat=1,toggleState(getTickTime(state.speed/state$2.baseSpeed))};let timeliner=-1;const clearIntervalTimeline=()=>{clearInterval(timeliner)},onTickDestroy=()=>{event$1.emit("tickDestroy")},setTick=(B,R)=>{var D,G,U,W,q,Y,Q;const F=()=>{B(),event$1.emit("tickEnd")};if(state$2.needTick){let{numerator:Z,denominator:K}=getDuration(state.osmd);if(state.osmd.numerator&&state.osmd.denominator&&(Z=state.osmd.numerator,K=state.osmd.denominator),state$2.activeDetail.isAppPlay)state.ticking=!0,postMessage$1({api:"cloudMetronome",content:{repeat:Z===2?2:1,denominator:K,numerator:Z}},J=>{state.ticking=!1,(J==null?void 0:J.content.status)==="finish"?F():(J==null?void 0:J.content.status)==="cancel"&&event$1.emit("tickDestroy")});else{const J=Z===2?2:1;state$2.activeTickRepeat=J,console.log("ticking"),state.tickPlayer=new Player(Z,(R||state.speed)/90),(D=state.tickPlayer)==null||D.start(Z,(R||state.speed)/90,J),(G=state.tickPlayer)==null||G.event.off("tick",setActiveKey),(U=state.tickPlayer)==null||U.event.off("stop",F),(W=state.tickPlayer)==null||W.event.off("destroy",onTickDestroy),(q=state.tickPlayer)==null||q.event.on("tick",setActiveKey),(Y=state.tickPlayer)==null||Y.event.on("stop",F),(Q=state.tickPlayer)==null||Q.event.on("destroy",onTickDestroy)}}else F()},setPlayState=async()=>{if(!(state$2.activeTick>-1||state.ticking)){if(await syncPlayState(),state.playState!=="pause"&&state.playState!=="suspend"){await toggleState();return}setPlayerView(),setTick(setTickStop)}},stopTick=()=>{state.tickPlayer&&state.tickPlayer.destroy(),event$1.emit("stopTick"),state$2.activeTickRepeat=1,state$2.activeTick=-1},windowResize=()=>{const B=getIndex(state$2.times,state.currentTimeNum);setTimeout(()=>{var R,F;(F=state.sectionHint)==null||F.showForElement((R=state$2.times[B])==null?void 0:R.noteElement)},200)},loadedmetadata=()=>{state.duration=formatTime(state.audiosInstance.duration),state.durationNum=state.audiosInstance.duration};let prevDiff=0,viewing=!1;const refreshView=()=>{var D;let B,R;(D=state==null?void 0:state.osmd)!=null&&D.product&&(B=state.osmd.cursor.img,R=document.querySelector("#colexiu-detail-music-sheet"));const F=Math.max(parseFloat((B||state.osmd.cursor.cursorElement).style.top),0);if(Math.abs(prevDiff-F)>10&&!viewing){viewing=!0;const G=R||(state$4.clintNmae==="colexiu"?state.osmd.container.parentElement.parentElement:state.osmd.container.parentElement);state$2.chenkuang?(G.scrollTop=F,viewing=!1):setTimeout(()=>{viewing=!1,G.scrollTo({top:F,left:0,behavior:"smooth"}),prevDiff=F},100)}},updatePlayTime=async B=>{const R=useOriginSearch();sessionStorage.getItem("behaviorId")||R.behaviorId,getRequestHostname(),useClientType()},setAudioInit=()=>{state.audiosInstance.event.on("loadedmetadata",loadedmetadata),state.audiosInstance.event.on("waiting",waiting),state.audiosInstance.event.on("playing",playing),state.audiosInstance.event.on("play",play,!1),state.audiosInstance.event.on("pause",pause,!1),state.audiosInstance.event.on("ended",ended,!1),state.audiosInstance.event.on("updatePlayTime",updatePlayTime,!1),listenerMessage("cloudplayed",async()=>{await syncPlayState(),state.currentTimeNum=0,state.currentTime="00:00",state.audiosInstance.event.emit("ended",new Event("ended"))}),listenerMessage("cloudTimeUpdae",B=>{const R=(B==null?void 0:B.content.currentTime)/1e3;state.playState==="play"&&(state.currentTimeNum=R,state.currentTime=formatTime(R),refreshPlayer(R),refreshIndex(R)),refreshView()}),state.audiosInstance.event.on("timeupdate",()=>{state.currentTimeNum=state.audiosInstance.currentTime,state.currentTime=formatTime(state.audiosInstance.currentTime),requestAnimationFrame(()=>{state.audiosInstance.getStatus()==="play"&&refreshPlayer(),refreshView()})}),window.addEventListener("resize",windowResize)},setStepView=(B,R)=>{prevIndex=Math.max(B.i,0),syncStepIndex(B.i),R&&refreshPlayer(R),refreshView()},noteClick=B=>{if(state.isFirstPlay){Toast("\u5F00\u59CB\u64AD\u653E\u540E\u624D\u80FD\u8C03\u6574\u8FDB\u5EA6");return}let R=getNoteBySlursStart(getActtiveNoteByTimes(B));if(R){const F=R.sourceStartTime||R.time;setCurrentTime(F),setStepView(R.i,F),state$2.fixedKey=R.realKey,state$2.activeNote=R}},startCapture=async()=>{console.log("SettingState.sett.camera:",state$3.sett.camera," SettingState.eva.save:",state$3.eva.save),state$3.sett.camera&&state$3.eva.save&&postMessage$1({api:"startCapture"})},endCapture=async()=>{state$3.eva.save&&state$3.sett.camera&&postMessage$1({api:"endCapture"})},setCaptureMode=async()=>{browserInfo$2.isApp&&state$3.sett.camera&&postMessage$1({api:"setCaptureMode",content:{mode:state.evaluatingStatus?"evaluating":"practice"}})};class AJAX{static ajax(R,F=9e3){let D;const G=R.indexOf(".mxl")>-1?"text/plain; charset=x-user-defined":"application/xml";if(XMLHttpRequest)D=new XMLHttpRequest;else if(ActiveXObject)D=new ActiveXObject("Microsoft.XMLHTTP");else return Promise.reject(new Error("XMLHttp not supported."));return D.timeout=F,new Promise((U,W)=>{D.onreadystatechange=()=>{D.readyState===XMLHttpRequest.DONE&&(D.status===200||D.status===0&&D.responseText?U(D.responseText):W(new Error("Could not retrieve requested URL "+D.status)))},D.ontimeout=q=>{W(new Error("Server request Timeout"))},D.overrideMimeType(G),D.open("GET",R,!0),D.send()})}}const _Fraction=class{constructor(B=0,R=1,F=0,D=!0){this.numerator=0,this.denominator=1,this.wholeValue=0,this.numerator=B,this.denominator=R,this.wholeValue=F,D&&this.simplify(),this.setRealValue()}static max(B,R){return B.RealValue>R.RealValue?B:R}static Equal(B,R){return B.wholeValue===R.wholeValue&&B.Denominator===R.Denominator&&B.Numerator===R.Numerator}static createFromFraction(B){return new _Fraction(B.numerator,B.denominator,B.wholeValue,!1)}static plus(B,R){const F=B.clone();return F.Add(R),F}static minus(B,R){const F=B.clone();return F.Sub(R),F}static multiply(B,R){return new _Fraction((B.wholeValue*B.denominator+B.numerator)*(R.wholeValue*R.denominator+R.numerator),B.denominator*R.denominator)}static greatestCommonDenominator(B,R){if(B===0)return R;if(R===1)return 1;for(;Math.abs(R)>1e-8;)B>R?B-=R:R-=B;return Math.round(B)}toString(){let B=this.numerator+"/"+this.denominator;return this.wholeValue!==0&&(B=this.wholeValue+" "+B),B}clone(){return new _Fraction(this.numerator,this.denominator,this.wholeValue,!1)}get Numerator(){return this.numerator}set Numerator(B){this.numerator!==B&&(this.numerator=B,this.simplify(),this.setRealValue())}get Denominator(){return this.denominator}set Denominator(B){this.denominator!==B&&(this.denominator=B,this.numerator!==0&&this.simplify(),this.setRealValue())}get WholeValue(){return this.wholeValue}set WholeValue(B){this.wholeValue!==B&&(this.wholeValue=B,this.setRealValue())}GetExpandedNumerator(){return this.wholeValue*this.denominator+this.numerator}calculateNumberOfNeededDots(){let B=1,R=2;const F=this.GetExpandedNumerator();for(;RB;)R.Numerator++;if(this.numerator>this.denominator){const F=new _Fraction(this.numerator-1,this.denominator,this.wholeValue);for(;F.Denominator>B;)F.Numerator--;if(F.Denominator_Fraction.maximumAllowedNumber){const F=this.denominator/_Fraction.maximumAllowedNumber;this.numerator=Math.round(this.numerator/F),this.denominator=Math.round(this.denominator/F)}if(this.numerator>_Fraction.maximumAllowedNumber){const F=this.numerator/_Fraction.maximumAllowedNumber;this.numerator=Math.round(this.numerator/F),this.denominator=Math.round(this.denominator/F)}}isOnBeat(B){const R=this.distanceFromBeat(B);return Math.abs(R)<_Fraction.FloatInaccuracyTolerance}distanceFromBeat(B){const R=new _Fraction(1,B.Denominator);return this.RealValue%R.RealValue}};let Fraction$1=_Fraction;Fraction$1.maximumAllowedNumber=46340;Fraction$1.FloatInaccuracyTolerance=1e-4;class AbstractExpression{constructor(R){this.placement=R}static isStringInStringList(R,F){for(let D=0,G=R.length;D(B[B.Above=0]="Above",B[B.Below=1]="Below",B[B.Left=2]="Left",B[B.Right=3]="Right",B[B.NotYetDefined=4]="NotYetDefined",B[B.AboveOrBelow=5]="AboveOrBelow",B))(PlacementEnum||{});const _ContinuousDynamicExpression=class extends AbstractExpression{constructor(B,R,F,D,G,U,W=""){super(R),super.parentMeasure=D,this.NumberXml=U,this.dynamicType=B,this.label=W,this.staffNumber=F,this.activeInstantaneousDynamic=G,this.startVolume=1,this.endVolume=1,this.setStartAndEndVolume(),W!==""&&this.setType()}setStartAndEndVolume(){this.activeInstantaneousDynamic&&(this.dynamicType===ContDynamicEnum.crescendo&&(this.startVolume=this.activeInstantaneousDynamic.Volume,this.endVolume=this.activeInstantaneousDynamic.Volume*1.2),this.dynamicType===ContDynamicEnum.diminuendo&&(this.startVolume=this.activeInstantaneousDynamic.Volume,this.endVolume=this.activeInstantaneousDynamic.Volume*.8))}get DynamicType(){return this.dynamicType}set DynamicType(B){this.dynamicType=B}get StartMultiExpression(){return this.startMultiExpression}set StartMultiExpression(B){this.startMultiExpression=B}get EndMultiExpression(){return this.endMultiExpression}set EndMultiExpression(B){this.endMultiExpression=B}get Placement(){return this.placement}set Placement(B){this.placement=B}get StartVolume(){return this.startVolume}set StartVolume(B){this.startVolume=B}get EndVolume(){return this.endVolume}set EndVolume(B){this.endVolume=B}get StaffNumber(){return this.staffNumber}set StaffNumber(B){this.staffNumber=B}get Label(){return this.label}set Label(B){this.label=B,this.setType()}static isInputStringContinuousDynamic(B){return B?_ContinuousDynamicExpression.isStringInStringList(_ContinuousDynamicExpression.listContinuousDynamicIncreasing,B)||_ContinuousDynamicExpression.isStringInStringList(_ContinuousDynamicExpression.listContinuousDynamicDecreasing,B):!1}getInterpolatedDynamic(B){const R=this.StartMultiExpression.AbsoluteTimestamp;let F;if(this.EndMultiExpression?F=this.EndMultiExpression.AbsoluteTimestamp:F=Fraction$1.plus(this.startMultiExpression.SourceMeasureParent.AbsoluteTimestamp,this.startMultiExpression.SourceMeasureParent.Duration),B.lt(R))return-1;if(F.lt(B))return-2;const D=Fraction$1.minus(B,R).RealValue/Fraction$1.minus(F,R).RealValue;return Math.max(0,Math.min(99.9,this.startVolume+(this.endVolume-this.startVolume)*D))}isWedge(){return!this.label}setType(){_ContinuousDynamicExpression.isStringInStringList(_ContinuousDynamicExpression.listContinuousDynamicIncreasing,this.label)?this.dynamicType=ContDynamicEnum.crescendo:_ContinuousDynamicExpression.isStringInStringList(_ContinuousDynamicExpression.listContinuousDynamicDecreasing,this.label)&&(this.dynamicType=ContDynamicEnum.diminuendo)}};let ContinuousDynamicExpression=_ContinuousDynamicExpression;ContinuousDynamicExpression.listContinuousDynamicIncreasing=["crescendo","cresc","cresc.","cres."];ContinuousDynamicExpression.listContinuousDynamicDecreasing=["decrescendo","decresc","decr.","diminuendo","dim.","dim"];var ContDynamicEnum=(B=>(B[B.crescendo=0]="crescendo",B[B.diminuendo=1]="diminuendo",B))(ContDynamicEnum||{}),DynamicExpressionSymbolEnum=(B=>(B[B.p=0]="p",B[B.f=1]="f",B[B.s=2]="s",B[B.z=3]="z",B[B.m=4]="m",B[B.r=5]="r",B))(DynamicExpressionSymbolEnum||{});class MusicSheetReadingException{constructor(R,F){this.message=R,F&&(this.message+=" "+F.toString())}}class ArgumentOutOfRangeException{constructor(R){this.message=R}}class InvalidEnumArgumentException{constructor(R){this.message=R}}var loglevel={exports:{}};(function(B){(function(R,F){B.exports?B.exports=F():R.log=F()})(commonjsGlobal$2,function(){var R=function(){},F="undefined",D=typeof window!==F&&typeof window.navigator!==F&&/Trident\/|MSIE /.test(window.navigator.userAgent),G=["trace","debug","info","warn","error"];function U(se,re){var ae=se[re];if(typeof ae.bind=="function")return ae.bind(se);try{return Function.prototype.bind.call(ae,se)}catch{return function(){return Function.prototype.apply.apply(ae,[se,arguments])}}}function W(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function q(se){return se==="debug"&&(se="log"),typeof console===F?!1:se==="trace"&&D?W:console[se]!==void 0?U(console,se):console.log!==void 0?U(console,"log"):R}function Y(se,re){for(var ae=0;ae=0&&Se<=le.levels.SILENT){if(ce=Se,Ee!==!1&&de(Se),Y.call(le,Se,se),typeof console===F&&Se=0;U--)if(D(B[U],R))return U;return-1}arrays$4.lastIndexOf=lastIndexOf;function contains(B,R,F){return indexOf$1(B,R,F)>=0}arrays$4.contains=contains;function remove(B,R,F){var D=indexOf$1(B,R,F);return D<0?!1:(B.splice(D,1),!0)}arrays$4.remove=remove;function frequency(B,R,F){for(var D=F||util$9.defaultEquals,G=B.length,U=0,W=0;W=B.length||F<0||F>=B.length)return!1;var D=B[R];return B[R]=B[F],B[F]=D,!0}arrays$4.swap=swap;function toString$1(B){return"["+B.toString()+"]"}arrays$4.toString=toString$1;function forEach(B,R){for(var F=0,D=B;FR.size())return!1;var F=!0;return this.forEach(function(D){return R.contains(D)?!0:(F=!1,!1)}),F},B.prototype.remove=function(R){return this.contains(R)?(this.dictionary.remove(R),!0):!1},B.prototype.forEach=function(R){this.dictionary.forEach(function(F,D){return R(D)})},B.prototype.toArray=function(){return this.dictionary.values()},B.prototype.isEmpty=function(){return this.dictionary.isEmpty()},B.prototype.size=function(){return this.dictionary.size()},B.prototype.clear=function(){this.dictionary.clear()},B.prototype.toString=function(){return arrays$3.toString(this.toArray())},B}();_Set.default=Set$1;Object.defineProperty(Bag$1,"__esModule",{value:!0});var util$6=util$a,Dictionary_1$4=Dictionary$2,Set_1$1=_Set,Bag=function(){function B(R){this.toStrF=R||util$6.defaultToString,this.dictionary=new Dictionary_1$4.default(this.toStrF),this.nElements=0}return B.prototype.add=function(R,F){if(F===void 0&&(F=1),util$6.isUndefined(R)||F<=0)return!1;if(this.contains(R))this.dictionary.getValue(R).copies+=F;else{var D={value:R,copies:F};this.dictionary.setValue(R,D)}return this.nElements+=F,!0},B.prototype.count=function(R){return this.contains(R)?this.dictionary.getValue(R).copies:0},B.prototype.contains=function(R){return this.dictionary.containsKey(R)},B.prototype.remove=function(R,F){if(F===void 0&&(F=1),util$6.isUndefined(R)||F<=0)return!1;if(this.contains(R)){var D=this.dictionary.getValue(R);return F>D.copies?this.nElements-=D.copies:this.nElements-=F,D.copies-=F,D.copies<=0&&this.dictionary.remove(R),!0}else return!1},B.prototype.toArray=function(){for(var R=[],F=this.dictionary.values(),D=0,G=F;Dthis.nElements||util$5.isUndefined(R))return!1;var D=this.createNode(R);if(this.nElements===0||this.lastNode===null)this.firstNode=D,this.lastNode=D;else if(F===this.nElements)this.lastNode.next=D,this.lastNode=D;else if(F===0)D.next=this.firstNode,this.firstNode=D;else{var G=this.nodeAtIndex(F-1);if(G===null)return!1;D.next=G.next,G.next=D}return this.nElements++,!0},B.prototype.first=function(){if(this.firstNode!==null)return this.firstNode.element},B.prototype.last=function(){if(this.lastNode!==null)return this.lastNode.element},B.prototype.elementAtIndex=function(R){var F=this.nodeAtIndex(R);if(F!==null)return F.element},B.prototype.indexOf=function(R,F){var D=F||util$5.defaultEquals;if(util$5.isUndefined(R))return-1;for(var G=this.firstNode,U=0;G!==null;){if(D(G.element,R))return U;U++,G=G.next}return-1},B.prototype.contains=function(R,F){return this.indexOf(R,F)>=0},B.prototype.remove=function(R,F){var D=F||util$5.defaultEquals;if(this.nElements<1||util$5.isUndefined(R))return!1;for(var G=null,U=this.firstNode;U!==null;){if(D(U.element,R))return G===null?(this.firstNode=U.next,U===this.lastNode&&(this.lastNode=null)):U===this.lastNode?(this.lastNode=G,G.next=U.next,U.next=null):(G.next=U.next,U.next=null),this.nElements--,!0;G=U,U=U.next}return!1},B.prototype.clear=function(){this.firstNode=null,this.lastNode=null,this.nElements=0},B.prototype.equals=function(R,F){var D=F||util$5.defaultEquals;return!(R instanceof B)||this.size()!==R.size()?!1:this.equalsAux(this.firstNode,R.firstNode,D)},B.prototype.equalsAux=function(R,F,D){for(;R!==null&&F!==null;){if(!D(R.element,F.element))return!1;R=R.next,F=F.next}return!0},B.prototype.removeElementAtIndex=function(R){if(!(R<0||R>=this.nElements||this.firstNode===null||this.lastNode===null)){var F;if(this.nElements===1)F=this.firstNode.element,this.firstNode=null,this.lastNode=null;else{var D=this.nodeAtIndex(R-1);D===null?(F=this.firstNode.element,this.firstNode=this.firstNode.next):D.next===this.lastNode&&(F=this.lastNode.element,this.lastNode=D),D!==null&&D.next!==null&&(F=D.next.element,D.next=D.next.next)}return this.nElements--,F}},B.prototype.forEach=function(R){for(var F=this.firstNode;F!==null&&R(F.element)!==!1;)F=F.next},B.prototype.reverse=function(){for(var R=null,F=this.firstNode,D=null;F!==null;)D=F.next,F.next=R,R=F,F=D;D=this.firstNode,this.firstNode=this.lastNode,this.lastNode=D},B.prototype.toArray=function(){for(var R=[],F=this.firstNode;F!==null;)R.push(F.element),F=F.next;return R},B.prototype.size=function(){return this.nElements},B.prototype.isEmpty=function(){return this.nElements<=0},B.prototype.toString=function(){return arrays$2.toString(this.toArray())},B.prototype.nodeAtIndex=function(R){if(R<0||R>=this.nElements)return null;if(R===this.nElements-1)return this.lastNode;for(var F=this.firstNode,D=0;D0&&(R=R.rightCh);return R},B.prototype.transplant=function(R,F){R.parent===null?this.root=F:R===R.parent.leftCh?R.parent.leftCh=F:R.parent.rightCh=F,F!==null&&(F.parent=R.parent)},B.prototype.removeNode=function(R){if(R.leftCh===null)this.transplant(R,R.rightCh);else if(R.rightCh===null)this.transplant(R,R.leftCh);else{var F=this.minimumAux(R.rightCh);F.parent!==R&&(this.transplant(F,F.rightCh),F.rightCh=R.rightCh,F.rightCh.parent=F),this.transplant(R,F),F.leftCh=R.leftCh,F.leftCh.parent=F}},B.prototype.inorderTraversalAux=function(R,F,D){R===null||D.stop||(this.inorderTraversalAux(R.leftCh,F,D),!D.stop&&(D.stop=F(R.element)===!1,!D.stop&&this.inorderTraversalAux(R.rightCh,F,D)))},B.prototype.levelTraversalAux=function(R,F){var D=new Queue_1$1.default;for(R!==null&&D.enqueue(R),R=D.dequeue()||null;R!=null;){if(F(R.element)===!1)return;R.leftCh!==null&&D.enqueue(R.leftCh),R.rightCh!==null&&D.enqueue(R.rightCh),R=D.dequeue()||null}},B.prototype.preorderTraversalAux=function(R,F,D){R===null||D.stop||(D.stop=F(R.element)===!1,!D.stop&&(this.preorderTraversalAux(R.leftCh,F,D),!D.stop&&this.preorderTraversalAux(R.rightCh,F,D)))},B.prototype.postorderTraversalAux=function(R,F,D){R===null||D.stop||(this.postorderTraversalAux(R.leftCh,F,D),!D.stop&&(this.postorderTraversalAux(R.rightCh,F,D),!D.stop&&(D.stop=F(R.element)===!1)))},B.prototype.minimumAux=function(R){for(;R!=null&&R.leftCh!==null;)R=R.leftCh;return R},B.prototype.maximumAux=function(R){for(;R!=null&&R.rightCh!==null;)R=R.rightCh;return R},B.prototype.heightAux=function(R){return R===null?-1:Math.max(this.heightAux(R.leftCh),this.heightAux(R.rightCh))+1},B.prototype.insertNode=function(R){for(var F=null,D=this.root;D!==null;){var G=this.compare(R.element,D.element);if(G===0)return null;G<0?(F=D,D=D.leftCh):(F=D,D=D.rightCh)}return R.parent=F,F===null?this.root=R:this.compare(R.element,F.element)<0?F.leftCh=R:F.rightCh=R,R},B.prototype.createNode=function(R){return{element:R,leftCh:null,rightCh:null,parent:null}},B}();BSTreeKV$1.default=BSTreeKV;var __extends$2=commonjsGlobal$2&&commonjsGlobal$2.__extends||function(){var B=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(R,F){R.__proto__=F}||function(R,F){for(var D in F)F.hasOwnProperty(D)&&(R[D]=F[D])};return function(R,F){B(R,F);function D(){this.constructor=R}R.prototype=F===null?Object.create(F):(D.prototype=F.prototype,new D)}}();Object.defineProperty(BSTree$1,"__esModule",{value:!0});var BSTreeKV_1$1=BSTreeKV$1,BSTree=function(B){__extends$2(R,B);function R(){return B!==null&&B.apply(this,arguments)||this}return R}(BSTreeKV_1$1.default);BSTree$1.default=BSTree;var Heap$1={};Object.defineProperty(Heap$1,"__esModule",{value:!0});var collections=util$a,arrays$1=arrays$4,Heap=function(){function B(R){this.data=[],this.compare=R||collections.defaultCompare}return B.prototype.leftChildIndex=function(R){return 2*R+1},B.prototype.rightChildIndex=function(R){return 2*R+2},B.prototype.parentIndex=function(R){return Math.floor((R-1)/2)},B.prototype.minIndex=function(R,F){return F>=this.data.length?R>=this.data.length?-1:R:this.compare(this.data[R],this.data[F])<=0?R:F},B.prototype.siftUp=function(R){for(var F=this.parentIndex(R);R>0&&this.compare(this.data[F],this.data[R])>0;)arrays$1.swap(this.data,F,R),R=F,F=this.parentIndex(R)},B.prototype.siftDown=function(R){for(var F=this.minIndex(this.leftChildIndex(R),this.rightChildIndex(R));F>=0&&this.compare(this.data[R],this.data[F])>0;)arrays$1.swap(this.data,F,R),R=F,F=this.minIndex(this.leftChildIndex(R),this.rightChildIndex(R))},B.prototype.peek=function(){if(this.data.length>0)return this.data[0]},B.prototype.add=function(R){return collections.isUndefined(R)?!1:(this.data.push(R),this.siftUp(this.data.length-1),!0)},B.prototype.removeRoot=function(){if(this.data.length>0){var R=this.data[0];return this.data[0]=this.data[this.data.length-1],this.data.splice(this.data.length-1,1),this.data.length>0&&this.siftDown(0),R}},B.prototype.contains=function(R){var F=collections.compareToEquals(this.compare);return arrays$1.contains(this.data,R,F)},B.prototype.size=function(){return this.data.length},B.prototype.isEmpty=function(){return this.data.length<=0},B.prototype.clear=function(){this.data.length=0},B.prototype.forEach=function(R){arrays$1.forEach(this.data,R)},B}();Heap$1.default=Heap;var LinkedDictionary$1={},__extends$1=commonjsGlobal$2&&commonjsGlobal$2.__extends||function(){var B=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(R,F){R.__proto__=F}||function(R,F){for(var D in F)F.hasOwnProperty(D)&&(R[D]=F[D])};return function(R,F){B(R,F);function D(){this.constructor=R}R.prototype=F===null?Object.create(F):(D.prototype=F.prototype,new D)}}();Object.defineProperty(LinkedDictionary$1,"__esModule",{value:!0});var Dictionary_1$3=Dictionary$2,util$3=util$a,LinkedDictionaryPair=function(){function B(R,F){this.key=R,this.value=F}return B.prototype.unlink=function(){this.prev.next=this.next,this.next.prev=this.prev},B}(),HeadOrTailLinkedDictionaryPair=function(){function B(){this.key=null,this.value=null}return B.prototype.unlink=function(){this.prev.next=this.next,this.next.prev=this.prev},B}();function isHeadOrTailLinkedDictionaryPair(B){return!B.next}var LinkedDictionary=function(B){__extends$1(R,B);function R(F){var D=B.call(this,F)||this;return D.head=new HeadOrTailLinkedDictionaryPair,D.tail=new HeadOrTailLinkedDictionaryPair,D.head.next=D.tail,D.tail.prev=D.head,D}return R.prototype.appendToTail=function(F){var D=this.tail.prev;D.next=F,F.prev=D,F.next=this.tail,this.tail.prev=F},R.prototype.getLinkedDictionaryPair=function(F){if(!util$3.isUndefined(F)){var D="$"+this.toStr(F),G=this.table[D];return G}},R.prototype.getValue=function(F){var D=this.getLinkedDictionaryPair(F);if(!util$3.isUndefined(D))return D.value},R.prototype.remove=function(F){var D=this.getLinkedDictionaryPair(F);if(!util$3.isUndefined(D))return B.prototype.remove.call(this,F),D.unlink(),D.value},R.prototype.clear=function(){B.prototype.clear.call(this),this.head.next=this.tail,this.tail.prev=this.head},R.prototype.replace=function(F,D){var G="$"+this.toStr(D.key);D.next=F.next,D.prev=F.prev,this.remove(F.key),D.prev.next=D,D.next.prev=D,this.table[G]=D,++this.nElements},R.prototype.setValue=function(F,D){if(!(util$3.isUndefined(F)||util$3.isUndefined(D))){var G=this.getLinkedDictionaryPair(F),U=new LinkedDictionaryPair(F,D),W="$"+this.toStr(F);if(util$3.isUndefined(G)){this.appendToTail(U),this.table[W]=U,++this.nElements;return}else return this.replace(G,U),G.value}},R.prototype.keys=function(){var F=[];return this.forEach(function(D,G){F.push(D)}),F},R.prototype.values=function(){var F=[];return this.forEach(function(D,G){F.push(G)}),F},R.prototype.forEach=function(F){for(var D=this.head.next;!isHeadOrTailLinkedDictionaryPair(D);){var G=F(D.key,D.value);if(G===!1)return;D=D.next}},R}(Dictionary_1$3.default);LinkedDictionary$1.default=LinkedDictionary;var MultiDictionary$1={};Object.defineProperty(MultiDictionary$1,"__esModule",{value:!0});var util$2=util$a,Dictionary_1$2=Dictionary$2,arrays=arrays$4,MultiDictionary=function(){function B(R,F,D){D===void 0&&(D=!1),this.dict=new Dictionary_1$2.default(R),this.equalsF=F||util$2.defaultEquals,this.allowDuplicate=D}return B.prototype.getValue=function(R){var F=this.dict.getValue(R);return util$2.isUndefined(F)?[]:arrays.copy(F)},B.prototype.setValue=function(R,F){if(util$2.isUndefined(R)||util$2.isUndefined(F))return!1;var D=this.dict.getValue(R);return util$2.isUndefined(D)?(this.dict.setValue(R,[F]),!0):!this.allowDuplicate&&arrays.contains(D,F,this.equalsF)?!1:(D.push(F),!0)},B.prototype.remove=function(R,F){if(util$2.isUndefined(F)){var D=this.dict.remove(R);return!util$2.isUndefined(D)}var G=this.dict.getValue(R);return!util$2.isUndefined(G)&&arrays.remove(G,F,this.equalsF)?(G.length===0&&this.dict.remove(R),!0):!1},B.prototype.keys=function(){return this.dict.keys()},B.prototype.values=function(){for(var R=this.dict.values(),F=[],D=0,G=R;D-1&&this.insertIdIntoRoot(F,D);for(var G in this.nodes)if(this.nodes.hasOwnProperty(G)){var U=this.findNodeId(G,R);U>-1&&this.insertIdIntoNode(G,F,U)}},B.prototype.insertIdAfterId=function(R,F){var D=this.findRootId(R);D>-1&&this.insertIdIntoRoot(F,D+1);for(var G in this.nodes)if(this.nodes.hasOwnProperty(G)){var U=this.findNodeId(G,R);U>-1&&this.insertIdIntoNode(G,F,U+1)}},B.prototype.insertIdIntoId=function(R,F){this.nodeInsertAtEnd(R,F),this.nodes[F]=[]},B.prototype.insertIdIntoRoot=function(R,F){if(F===void 0)this.rootInsertAtEnd(R);else if(F<0){var D=this.rootIds.length;this.rootIds.splice(F+D+1,0,R)}else this.rootIds.splice(F,0,R);this.nodes[R]=this.nodes[R]||[]},B.prototype.insertIdIntoNode=function(R,F,D){if(this.nodes[R]=this.nodes[R]||[],this.nodes[F]=this.nodes[F]||[],D===void 0)this.nodeInsertAtEnd(R,F);else if(D<0){var G=this.nodes[R].length;this.nodes[R].splice(D+G+1,0,F)}else this.nodes[R].splice(D,0,F)},B.prototype.moveId=function(R,F,D){var G=R,U=this.findRootId(G);this.nodes[F];for(var W in this.nodes)if(this.nodes.hasOwnProperty(W)){this.findNodeId(W,F);break}var q=F,Y=this.findRootId(q);this.nodes[F];for(var W in this.nodes)if(this.nodes.hasOwnProperty(W)){this.findNodeId(W,F);break}if(U>-1)if(Y>-1)switch(this.rootDelete(U),Y>U&&Y--,D){case Direction.BEFORE:this.insertIdIntoRoot(G,Y);break;case Direction.AFTER:this.insertIdIntoRoot(G,Y+1);break;case Direction.INSIDE_AT_START:this.nodeInsertAtStart(q,G);break;case Direction.INSIDE_AT_END:this.nodeInsertAtEnd(q,G);break}else{this.rootDelete(U);for(var W in this.nodes)if(this.nodes.hasOwnProperty(W)){var Q=this.findNodeId(W,q);if(Q>-1){switch(D){case Direction.BEFORE:this.insertIdIntoNode(W,G,Q);break;case Direction.AFTER:this.insertIdIntoNode(W,G,Q+1);break;case Direction.INSIDE_AT_START:this.nodeInsertAtStart(q,G);break;case Direction.INSIDE_AT_END:this.nodeInsertAtEnd(q,G);break}break}}}else if(Y>-1){for(var W in this.nodes)if(this.nodes.hasOwnProperty(W)){var Q=this.findNodeId(W,G);if(Q>-1){this.nodeDeleteAtIndex(W,Q);break}}switch(D){case Direction.BEFORE:this.insertIdIntoRoot(G,Y);break;case Direction.AFTER:this.insertIdIntoRoot(G,Y+1);break;case Direction.INSIDE_AT_START:this.nodeInsertAtStart(q,G);break;case Direction.INSIDE_AT_END:this.nodeInsertAtEnd(q,G);break}}else{for(var W in this.nodes)if(this.nodes.hasOwnProperty(W)){var Q=this.findNodeId(W,G);if(Q>-1){this.nodeDeleteAtIndex(W,Q);break}}for(var W in this.nodes)if(this.nodes.hasOwnProperty(W)){var Q=this.findNodeId(W,q);if(Q>-1){switch(D){case Direction.BEFORE:this.insertIdIntoNode(W,G,Q);break;case Direction.AFTER:this.insertIdIntoNode(W,G,Q+1);break;case Direction.INSIDE_AT_START:this.nodeInsertAtStart(q,G);break;case Direction.INSIDE_AT_END:this.nodeInsertAtEnd(q,G);break}break}}}},B.prototype.swapArrayElements=function(R,F,D){var G=R[F];return R[F]=R[D],R[D]=G,R},B.prototype.rootDeleteId=function(R){var F=this.findRootId(R);F>-1&&this.rootDelete(F)},B.prototype.nodeAndSubNodesDelete=function(R){for(var F=[],D=0;D(B[B.pppppp=0]="pppppp",B[B.ppppp=1]="ppppp",B[B.pppp=2]="pppp",B[B.ppp=3]="ppp",B[B.pp=4]="pp",B[B.p=5]="p",B[B.mp=6]="mp",B[B.mf=7]="mf",B[B.f=8]="f",B[B.ff=9]="ff",B[B.fff=10]="fff",B[B.ffff=11]="ffff",B[B.fffff=12]="fffff",B[B.ffffff=13]="ffffff",B[B.sf=14]="sf",B[B.sff=15]="sff",B[B.sfp=16]="sfp",B[B.sfpp=17]="sfpp",B[B.fp=18]="fp",B[B.rf=19]="rf",B[B.rfz=20]="rfz",B[B.sfz=21]="sfz",B[B.sffz=22]="sffz",B[B.fz=23]="fz",B[B.other=24]="other",B))(DynamicEnum||{});InstantaneousDynamicExpression.staticConstructor();class DynamicsContainer{constructor(R,F){R instanceof ContinuousDynamicExpression?this.continuousDynamicExpression=R:R instanceof InstantaneousDynamicExpression&&(this.instantaneousDynamicExpression=R),this.staffNumber=F}static Compare(R,F){return R.parMultiExpression().AbsoluteTimestamp.CompareTo(F.parMultiExpression().AbsoluteTimestamp)}parMultiExpression(){if(this.continuousDynamicExpression)return this.continuousDynamicExpression.StartMultiExpression;if(this.instantaneousDynamicExpression)return this.instantaneousDynamicExpression.ParentMultiExpression}}class AbstractNotationInstruction{constructor(R){this.printObject=!0,this.parent=R}get Parent(){return this.parent}set Parent(R){this.parent=R}get PrintObject(){return this.printObject}set PrintObject(R){this.printObject=R}}class RhythmInstruction extends AbstractNotationInstruction{constructor(R,F){super(void 0),this.rhythm=R,this.numerator=R.Numerator,this.denominator=R.Denominator,this.symbolEnum=F}get Rhythm(){return this.rhythm}set Rhythm(R){this.rhythm=R}get SymbolEnum(){return this.symbolEnum}set SymbolEnum(R){this.symbolEnum=R}clone(){return new RhythmInstruction(this.rhythm.clone(),this.symbolEnum)}OperatorEquals(R){const F=this;return F===R?!0:!F||!R?!1:F.numerator===R.numerator&&F.denominator===R.denominator}OperatorNotEqual(R){return this!==R}ToString(){return"Rhythm: "+this.rhythm.toString()}}var RhythmSymbolEnum=(B=>(B[B.NONE=0]="NONE",B[B.COMMON=1]="COMMON",B[B.CUT=2]="CUT",B))(RhythmSymbolEnum||{});class MusicPartManagerIterator{constructor(R,F,D){this.currentMeasureIndex=0,this.currentPartIndex=0,this.currentVoiceEntryIndex=-1,this.currentDynamicEntryIndex=0,this.currentTempoEntryIndex=0,this.currentDynamicChangingExpressions=[],this.repetitionIterationCountDictKeys=[],this.repetitionIterationCountDictValues=[],this.currentRepetition=void 0,this.endReached=!1,this.frontReached=!1,this.currentTimeStamp=new Fraction$1(0,1),this.currentEnrolledMeasureTimestamp=new Fraction$1(0,1),this.currentRelativeInMeasureTimestamp=new Fraction$1(0,1),this.currentVerticalContainerInMeasureTimestamp=new Fraction$1(0,1),this.jumpResponsibleRepetition=void 0,this.activeDynamicExpressions=[];try{this.frontReached=!0,this.musicSheet=R,this.currentBpm=R.userStartTempoInBPM,this.currentVoiceEntries=void 0,this.frontReached=!1;for(const G of this.musicSheet.Repetitions)this.setRepetitionIterationCount(G,1);for(let G=0;G=this.JumpResponsibleRepetition.StartIndex&&G.EndIndex<=this.JumpResponsibleRepetition.EndIndex&&this.resetRepetitionIterationCount(G)}}handleRepetitionsAtMeasureEnd(){for(let R=0,F=this.currentMeasure.LastRepetitionInstructions.length;R-1&&this.getRepetitionIterationCount(G)=this.JumpResponsibleRepetition.StartIndex&&G.EndIndex<=this.JumpResponsibleRepetition.EndIndex&&this.resetRepetitionIterationCount(G),this.repetitionIterationCountDictKeys.contains(G))){const U=G.getForwardJumpTargetForIteration(this.getRepetitionIterationCount(G));if(U>=0){this.currentMeasureIndex=U,this.currentMeasure=this.musicSheet.SourceMeasures[this.currentMeasureIndex],this.currentVoiceEntryIndex=-1,this.jumpResponsibleRepetition=G,this.forwardJumpOccurred=!0;return}U===-2&&(this.endReached=!0)}}}this.currentMeasureIndex++,this.JumpResponsibleRepetition!==void 0&&this.currentMeasureIndex>this.JumpResponsibleRepetition.EndIndex&&(this.jumpResponsibleRepetition=void 0)}doBackJump(R){this.currentMeasureIndex=R.getBackwardJumpTarget(),this.currentMeasure=this.musicSheet.SourceMeasures[this.currentMeasureIndex],this.currentVoiceEntryIndex=-1,this.incrementRepetitionIterationCount(R),this.jumpResponsibleRepetition=R,this.backJumpOccurred=!0}activateCurrentRhythmInstructions(){if(this.currentMeasure!==void 0&&this.currentMeasure.FirstInstructionsStaffEntries.length>0&&this.currentMeasure.FirstInstructionsStaffEntries[0]!==void 0){const R=this.currentMeasure.FirstInstructionsStaffEntries[0].Instructions;for(let F=0,D=R.length;F0&&(this.currentDynamicEntryIndex>=R.length||R[this.currentDynamicEntryIndex].parMultiExpression().AbsoluteTimestamp.gte(this.CurrentSourceTimestamp));)this.currentDynamicEntryIndex--;for(;this.currentDynamicEntryIndex0&&(this.currentTempoEntryIndex>=F.length||F[this.currentTempoEntryIndex].AbsoluteTimestamp.gte(this.CurrentSourceTimestamp));)this.currentTempoEntryIndex--;for(;this.currentTempoEntryIndex=0&&this.currentVoiceEntryIndex=0&&this.currentMeasureIndex0){if(!R)return!0;for(let D=0,G=F.length;DF&&(this.openSheetMusicDisplay.Sheet.SelectionStart=this.openSheetMusicDisplay.Sheet.SourceMeasures[F].AbsoluteTimestamp),this.openSheetMusicDisplay.Sheet&&this.openSheetMusicDisplay.Sheet.SourceMeasures.length>D){const U=this.openSheetMusicDisplay.Sheet.SourceMeasures[D];this.openSheetMusicDisplay.Sheet.SelectionEnd=Fraction$1.plus(U.AbsoluteTimestamp,U.Duration)}this.iterator=this.manager.getIterator()}getStaffEntryFromVoiceEntry(R){const F=R.ParentSourceStaffEntry.VerticalContainerParent.ParentMeasure.measureListIndex,D=R.ParentSourceStaffEntry.ParentStaff.idInMusicSheet;return this.graphic.findGraphicalStaffEntryFromMeasureList(D,F,R.ParentSourceStaffEntry)}updateWithTimestamp(R){const F=this.manager.absoluteEnrolledToSheetTimestamp(R),D=this.graphic.calculateXPositionFromTimestamp(F),G=D[0],U=D[1];this.updateCurrentPageFromSystem(U);const W=D[2];if(!W)return;const q=Math.max(W.parentMeasure.MeasureNumber,1);let Y;for(const J of this.graphic.MeasureList[q-1])if(J){Y=J;break}const Q=this.graphic.calculateCursorPoints(G,U),Z=Q[0].y,K=Q[1].y-Z;if(!!Y){if(this.updateWidthAndStyle(Y.PositionAndShape,G,Z,K),this.openSheetMusicDisplay.FollowCursor){const J=this.cursorElement.getBoundingClientRect().top;this.cursorElement.scrollIntoView({behavior:J<1e3?"smooth":"auto",block:"center"})}this.cursorElement.style.display=""}}update(){if(this.hidden||this.hidden===void 0||this.hidden===null)return;this.updateCurrentPage();const R=this.Iterator,F=R.CurrentVisibleVoiceEntries();if(R.EndReached||!R.CurrentVoiceEntries||F.length===0)return;let D=0,G=0,U=0,W;if(R.CurrentMeasure.isReducedToMultiRest){const Z=this.graphic.findGraphicalMeasure(R.CurrentMeasureIndex,0),K=Z.parentSourceMeasure.multipleRestMeasures,ie=R.CurrentMeasure.multipleRestMeasureNumber/(K+1),ne=Z.PositionAndShape.Size.width-Z.beginInstructionsWidth;D=Z.PositionAndShape.AbsolutePosition.x+Z.beginInstructionsWidth+ie*ne,W=Z.ParentMusicSystem}else{const K=F.map(J=>this.getStaffEntryFromVoiceEntry(J)).sort((J,ie)=>{var ne,se,re,ae;return((se=(ne=J==null?void 0:J.PositionAndShape)==null?void 0:ne.AbsolutePosition)==null?void 0:se.x)<=((ae=(re=ie==null?void 0:ie.PositionAndShape)==null?void 0:re.AbsolutePosition)==null?void 0:ae.x)?-1:1})[0];K&&(D=K.PositionAndShape.AbsolutePosition.x,W=K.parentMeasure.ParentMusicSystem)}if(!W)return;G=W.PositionAndShape.AbsolutePosition.y+W.StaffLines[0].PositionAndShape.RelativePosition.y;const q=W.StaffLines[W.StaffLines.length-1];U=W.PositionAndShape.AbsolutePosition.y+q.PositionAndShape.RelativePosition.y+q.StaffHeight-G;const Q=this.graphic.findGraphicalMeasure(R.CurrentMeasureIndex,0).PositionAndShape;if(this.updateWidthAndStyle(Q,D,G,U),this.openSheetMusicDisplay.FollowCursor&&this.cursorOptions.follow)if(this.openSheetMusicDisplay.EngravingRules.RenderSingleHorizontalStaffline)this.cursorElement.scrollIntoView({behavior:"smooth",inline:"center"});else{const Z=this.cursorElement.getBoundingClientRect().top;this.cursorElement.scrollIntoView({behavior:Z<1e3?"smooth":"auto",block:"center"})}this.cursorElement.style.display=""}updateWidthAndStyle(R,F,D,G){var Y;const U=this.cursorElement;let W=0,q=G;switch(this.cursorOptions.type){case 1:U.style.top=D*10*this.openSheetMusicDisplay.zoom+"px",U.style.left=(F-1.5)*10*this.openSheetMusicDisplay.zoom+"px",q=G*10*this.openSheetMusicDisplay.zoom,U.height=q,U.style.height=q+"px",W=5*this.openSheetMusicDisplay.zoom;break;case 2:U.style.top=(D-2.5)*10*this.openSheetMusicDisplay.zoom+"px",U.style.left=F*10*this.openSheetMusicDisplay.zoom+"px",q=1.5*10*this.openSheetMusicDisplay.zoom,U.height=q,U.style.height=q+"px",W=5*this.openSheetMusicDisplay.zoom;break;case 3:U.style.top=R.AbsolutePosition.y*10*this.openSheetMusicDisplay.zoom+"px",U.style.left=R.AbsolutePosition.x*10*this.openSheetMusicDisplay.zoom+"px",q=G*10*this.openSheetMusicDisplay.zoom,U.height=q,U.style.height=q+"px",W=R.Size.width*10*this.openSheetMusicDisplay.zoom;break;case 4:U.style.top=R.AbsolutePosition.y*10*this.openSheetMusicDisplay.zoom+"px",U.style.left=R.AbsolutePosition.x*10*this.openSheetMusicDisplay.zoom+"px",q=G*10*this.openSheetMusicDisplay.zoom,U.height=q,U.style.height=q+"px",W=(F-R.AbsolutePosition.x)*10*this.openSheetMusicDisplay.zoom;break;default:U.style.top=D*10*this.openSheetMusicDisplay.zoom+"px",U.style.left=(F-1.5)*10*this.openSheetMusicDisplay.zoom+"px",q=G*10*this.openSheetMusicDisplay.zoom,U.height=q,U.style.height=q+"px",W=3*10*this.openSheetMusicDisplay.zoom;break}(Y=window.GYM)!=null&&Y.multitrack&&(U.height=q+24,U.style.height=q+24+"px"),W!==U.width&&(U.width=W,this.updateStyle(W,this.cursorOptions))}hide(){this.cursorElement.style.display="none",this.hidden=!0}next(){this.Iterator.moveToNextVisibleVoiceEntry(!1),this.update()}reset(){this.resetIterator();const R=this.manager.getIterator(this.graphic.ParentMusicSheet.SelectionStart);this.updateWithTimestamp(R.CurrentEnrolledTimestamp)}updateStyle(R,F=void 0){F!==void 0&&(this.cursorOptions=F);const D=document.createElement("canvas");D.width=this.cursorElement.width,D.height=1;const G=D.getContext("2d");G.globalAlpha=this.cursorOptions.alpha;const U=G.createLinearGradient(0,0,this.cursorElement.width,0);switch(this.cursorOptions.type){case 1:case 2:case 3:case 4:U.addColorStop(1,this.cursorOptions.color);break;default:U.addColorStop(0,"white"),U.addColorStop(.2,this.cursorOptions.color),U.addColorStop(.8,this.cursorOptions.color),U.addColorStop(1,"white");break}G.fillStyle=U,G.fillRect(0,0,R,1),this.cursorElement.src=D.toDataURL("image/png")}get Iterator(){return this.iterator}get Hidden(){return this.hidden}VoicesUnderCursor(R){return this.Iterator.CurrentVisibleVoiceEntries(R)}NotesUnderCursor(R){const F=this.VoicesUnderCursor(R),D=[];return F.forEach(G=>{D.push.apply(D,G.Notes)}),D}GNotesUnderCursor(R){const F=this.VoicesUnderCursor(R),D=[];return F.forEach(G=>{D.push(...G.Notes.map(U=>this.rules.GNote(U)))}),D}updateCurrentPage(){const R=this.Iterator.currentTimeStamp;for(const F of this.graphic.MusicPages)if(F.MusicSystems.last().GetSystemsLastTimeStamp().gt(R)){const G=F.PageNumber;return G!==this.currentPageNumber&&(this.container.removeChild(this.cursorElement),this.container=document.getElementById(this.rules.DYContainerId+G),this.container.appendChild(this.cursorElement)),this.currentPageNumber=G}return 1}updateCurrentPageFromSystem(R){if(R!=null&&R.Parent){const F=R.Parent.PageNumber;return F!==this.currentPageNumber&&(this.container.removeChild(this.cursorElement),this.container=document.getElementById(this.rules.DYContainerId+F),this.container.appendChild(this.cursorElement)),this.currentPageNumber=F}return 1}}class PointF2D{constructor(R=0,F=0){this.x=0,this.y=0,this.x=R,this.y=F}static get Empty(){return new PointF2D}static pointsAreEqual(R,F){return R.x===F.x&&R.y===F.y}ToString(){return"["+this.x+", "+this.y+"]"}}class SizeF2D{constructor(R=0,F=0){this.width=R,this.height=F}}class RectangleF2D{constructor(R,F,D,G){this.x=0,this.y=0,this.width=0,this.height=0,this.x=R,this.y=F,this.width=D,this.height=G}static createFromLocationAndSize(R,F){return new RectangleF2D(R.x,R.y,F.width,F.height)}get Location(){return new PointF2D(this.x,this.y)}get Size(){return new SizeF2D(this.width,this.height)}}class AClassHierarchyTrackable{isInstanceOfClass(R){let F=this.constructor.prototype;for(;F;){if(R===F.constructor.name)return!0;F=F.__proto__}return!1}}class GraphicalObject extends AClassHierarchyTrackable{get PositionAndShape(){return this.boundingBox}set PositionAndShape(R){this.boundingBox=R}}class StaffLineActivitySymbol extends GraphicalObject{constructor(R){super(),this.parentStaffLine=R;const F=R.PositionAndShape;this.boundingBox=new BoundingBox$1(this,F),this.boundingBox.BorderRight=6,this.boundingBox.BorderBottom=4.5,this.boundingBox.BorderLeft=-1.5,this.boundingBox.BorderTop=-1.5}}class Clickable extends GraphicalObject{}class BoundingBox$1{constructor(R=void 0,F=void 0,D=!1){this.isSymbol=!1,this.relativePositionHasBeenSet=!1,this.xBordersHaveBeenSet=!1,this.yBordersHaveBeenSet=!1,this.absolutePosition=new PointF2D,this.relativePosition=new PointF2D,this.size=new SizeF2D,this.marginSize=new SizeF2D,this.upperLeftCorner=new PointF2D,this.upperLeftMarginCorner=new PointF2D,this.borderLeft=0,this.borderRight=0,this.borderTop=0,this.borderBottom=0,this.borderMarginLeft=0,this.borderMarginRight=0,this.borderMarginTop=0,this.borderMarginBottom=0,this.childElements=[],this.parent=F,this.dataObject=R,this.isSymbol=D,this.xBordersHaveBeenSet=!1,this.yBordersHaveBeenSet=!1,F&&(this.Parent=F)}get RelativePositionHasBeenSet(){return this.relativePositionHasBeenSet}get XBordersHaveBeenSet(){return this.xBordersHaveBeenSet}set XBordersHaveBeenSet(R){this.xBordersHaveBeenSet=R}get YBordersHaveBeenSet(){return this.yBordersHaveBeenSet}set YBordersHaveBeenSet(R){this.yBordersHaveBeenSet=R}get AbsolutePosition(){return this.absolutePosition}set AbsolutePosition(R){this.absolutePosition=R}get RelativePosition(){return this.relativePosition}set RelativePosition(R){this.relativePosition=R,this.relativePositionHasBeenSet=!0}get Size(){return this.size}set Size(R){this.size=R}get MarginSize(){return this.marginSize}get UpperLeftCorner(){return this.upperLeftCorner}get UpperLeftMarginCorner(){return this.upperLeftMarginCorner}get BorderLeft(){return this.borderLeft}set BorderLeft(R){this.borderLeft=R,this.calculateRectangle()}get BorderRight(){return this.borderRight}set BorderRight(R){this.borderRight=R,this.calculateRectangle()}get BorderTop(){return this.borderTop}set BorderTop(R){this.borderTop=R,this.calculateRectangle()}get BorderBottom(){return this.borderBottom}set BorderBottom(R){this.borderBottom=R,this.calculateRectangle()}get BorderMarginLeft(){return this.borderMarginLeft>this.borderLeft?this.borderLeft:this.borderMarginLeft}set BorderMarginLeft(R){this.borderMarginLeft=R,this.calculateMarginRectangle()}get BorderMarginRight(){return this.borderMarginRightthis.borderTop?this.borderTop:this.borderMarginTop}set BorderMarginTop(R){this.borderMarginTop=R,this.calculateMarginRectangle()}get BorderMarginBottom(){return this.borderMarginBottom-1&&this.parent.ChildElements.splice(W,1)}this.parent=R,((D=(F=this.parent)==null?void 0:F.ChildElements)==null?void 0:D.indexOf(this))>-1?log$2.error("BoundingBox of "+this.dataObject.constructor.name+" already in children list of "+this.parent.dataObject.constructor.name+"'s BoundingBox"):(U=(G=this.parent)==null?void 0:G.ChildElements)==null||U.push(this)}get DataObject(){return this.dataObject}get Center(){return new PointF2D(this.RelativePosition.x+(this.BorderMarginRight+this.BorderMarginLeft),this.RelativePosition.y+(this.BorderMarginBottom+this.BorderMarginTop))}setAbsolutePositionFromParent(){this.parent?(this.absolutePosition.x=this.parent.AbsolutePosition.x+this.relativePosition.x,this.absolutePosition.y=this.parent.AbsolutePosition.y+this.relativePosition.y):this.absolutePosition=this.relativePosition}calculateAbsolutePosition(){this.absolutePosition.x=this.relativePosition.x,this.absolutePosition.y=this.relativePosition.y;let R=this.parent;for(;R;)this.absolutePosition.x+=R.relativePosition.x,this.absolutePosition.y+=R.relativePosition.y,R=R.parent}calculateAbsolutePositionsRecursiveWithoutTopelement(){this.absolutePosition.x=0,this.absolutePosition.y=0;for(let R=0,F=this.ChildElements.length;R.001;break;case ColDirEnum.Up:case ColDirEnum.Down:G=this.relativePosition.y,R.calculateMarginPositionAlongDirection(this,F),U=Math.abs(G-this.relativePosition.y)>.001;break;default:throw new ArgumentOutOfRangeException("direction")}while(U)}collisionDetection(R){const F=Math.min(this.AbsolutePosition.x+this.borderRight,R.absolutePosition.x+R.borderRight)-Math.max(this.AbsolutePosition.x+this.borderLeft,R.absolutePosition.x+R.borderLeft),D=Math.min(this.AbsolutePosition.y+this.borderBottom,R.absolutePosition.y+R.borderBottom)-Math.max(this.AbsolutePosition.y+this.borderTop,R.absolutePosition.y+R.borderTop);return F>0&&D>0}liesInsideBorders(R){const F=this.AbsolutePosition.x+this.borderLeft<=R.absolutePosition.x+R.borderLeft&&R.absolutePosition.x+R.borderLeft<=this.AbsolutePosition.x+this.borderRight,D=this.AbsolutePosition.x+this.borderLeft<=R.absolutePosition.x+R.borderRight&&R.absolutePosition.x+R.borderRight<=this.AbsolutePosition.x+this.borderRight;if(F&&D){const G=this.AbsolutePosition.y+this.borderTop<=R.absolutePosition.y+R.borderTop&&R.absolutePosition.y+R.borderTop<=this.AbsolutePosition.y+this.borderBottom,U=this.AbsolutePosition.y+this.borderTop<=R.absolutePosition.y+R.borderBottom&&R.absolutePosition.y+R.borderBottom<=this.AbsolutePosition.y+this.borderBottom;if(G&&U)return!0}return!1}pointLiesInsideBorders(R){return this.AbsolutePosition.x+this.borderLeft<=R.x&&R.x<=this.AbsolutePosition.x+this.borderRight&&this.AbsolutePosition.y+this.borderTop<=R.y&&R.y<=this.AbsolutePosition.y+this.borderBottom}marginCollisionDetection(R){const F=Math.min(this.AbsolutePosition.x+this.borderMarginRight,R.absolutePosition.x+R.borderMarginRight)-Math.max(this.AbsolutePosition.x+this.borderMarginLeft,R.absolutePosition.x+R.borderMarginLeft),D=Math.min(this.AbsolutePosition.y+this.borderMarginBottom,R.absolutePosition.y+R.borderMarginBottom)-Math.max(this.AbsolutePosition.y+this.borderMarginTop,R.absolutePosition.y+R.borderMarginTop);return F>0&&D>0}liesInsideMargins(R){const F=this.AbsolutePosition.x+this.borderMarginLeft<=R.absolutePosition.x+R.borderMarginLeft&&R.absolutePosition.x+R.borderMarginLeft<=this.AbsolutePosition.x+this.borderMarginRight,D=this.AbsolutePosition.x+this.borderMarginLeft<=R.absolutePosition.x+R.borderMarginRight&&R.absolutePosition.x+R.borderMarginRight<=this.AbsolutePosition.x+this.borderMarginRight;if(F&&D){const G=this.AbsolutePosition.y+this.borderMarginTop<=R.absolutePosition.y+R.borderMarginTop&&R.absolutePosition.y+R.borderMarginTop<=this.AbsolutePosition.y+this.borderMarginBottom,U=this.AbsolutePosition.y+this.borderMarginTop<=R.absolutePosition.y+R.borderMarginBottom&&R.absolutePosition.y+R.borderMarginBottom<=this.AbsolutePosition.y+this.borderMarginBottom;if(G&&U)return!0}return!1}pointLiesInsideMargins(R){return this.AbsolutePosition.x+this.borderMarginLeft<=R.x&&R.x<=this.AbsolutePosition.x+this.borderMarginRight&&this.AbsolutePosition.y+this.borderMarginTop<=R.y&&R.y<=this.AbsolutePosition.y+this.borderMarginBottom}computeNonOverlappingPosition(R,F,D){this.RelativePosition=new PointF2D(D.x,D.y),this.setAbsolutePositionFromParent();let G=0,U=!1;do switch(F){case ColDirEnum.Left:case ColDirEnum.Right:G=this.relativePosition.x,R.calculatePositionAlongDirection(this,F),U=Math.abs(G-this.relativePosition.x)>1e-4;break;case ColDirEnum.Up:case ColDirEnum.Down:G=this.relativePosition.y,R.calculatePositionAlongDirection(this,F),U=Math.abs(G-this.relativePosition.y)>1e-4;break;default:throw new ArgumentOutOfRangeException("direction")}while(U)}getClickedObjectOfType(R){const F=this.dataObject;if(this.pointLiesInsideBorders(R)&&F)return F;for(let D=0,G=this.childElements.length;D(B[B.Left=0]="Left",B[B.Right=1]="Right",B[B.Up=2]="Up",B[B.Down=3]="Down",B))(ColDirEnum||{});class GraphicalMusicPage extends GraphicalObject{constructor(R){super(),this.musicSystems=[],this.labels=[],this.parent=R,this.boundingBox=new BoundingBox$1(this,void 0)}get MusicSystems(){return this.musicSystems}set MusicSystems(R){this.musicSystems=R}get Labels(){return this.labels}set Labels(R){this.labels=R}get Parent(){return this.parent}set Parent(R){this.parent=R}get PageNumber(){return this.pageNumber}set PageNumber(R){this.pageNumber=R}setMusicPageAbsolutePosition(R,F){return new PointF2D(0,0)}}var PagePlacementEnum=(B=>(B[B.Down=0]="Down",B[B.Right=1]="Right",B[B.RightDown=2]="RightDown",B))(PagePlacementEnum||{}),TextAlignmentEnum=(B=>(B[B.LeftTop=0]="LeftTop",B[B.LeftCenter=1]="LeftCenter",B[B.LeftBottom=2]="LeftBottom",B[B.CenterTop=3]="CenterTop",B[B.CenterCenter=4]="CenterCenter",B[B.CenterBottom=5]="CenterBottom",B[B.RightTop=6]="RightTop",B[B.RightCenter=7]="RightCenter",B[B.RightBottom=8]="RightBottom",B))(TextAlignmentEnum||{});class TextAlignment{static IsLeft(R){return R===0||R===1||R===2}static IsCenterAligned(R){return R===3||R===4||R===5}static IsRight(R){return R===6||R===7||R===8}}var FontStyles=(B=>(B[B.Regular=0]="Regular",B[B.Bold=1]="Bold",B[B.Italic=2]="Italic",B[B.BoldItalic=3]="BoldItalic",B[B.Underlined=4]="Underlined",B))(FontStyles||{}),Fonts=(B=>(B[B.TimesNewRoman=0]="TimesNewRoman",B[B.Kokila=1]="Kokila",B[B.Gonville=2]="Gonville",B))(Fonts||{});const FontStringNames={0:"Times New Roman",1:"Kokila",2:"Gonville"};var TieTypes=(B=>(B.SIMPLE="",B.HAMMERON="H",B.PULLOFF="P",B.SLIDE="S",B.TAPPING="T",B))(TieTypes||{});const Additional={"-2":[4,12,23],"-7":[13],"-9":[6]};var NoteEnum=(B=>(B[B.C=0]="C",B[B.D=2]="D",B[B.E=4]="E",B[B.F=5]="F",B[B.G=7]="G",B[B.A=9]="A",B[B.B=11]="B",B))(NoteEnum||{}),AccidentalEnum=(B=>(B[B.SHARP=0]="SHARP",B[B.FLAT=1]="FLAT",B[B.NONE=2]="NONE",B[B.NATURAL=3]="NATURAL",B[B.DOUBLESHARP=4]="DOUBLESHARP",B[B.DOUBLEFLAT=5]="DOUBLEFLAT",B[B.TRIPLESHARP=6]="TRIPLESHARP",B[B.TRIPLEFLAT=7]="TRIPLEFLAT",B[B.QUARTERTONESHARP=8]="QUARTERTONESHARP",B[B.QUARTERTONEFLAT=9]="QUARTERTONEFLAT",B[B.SLASHFLAT=10]="SLASHFLAT",B[B.THREEQUARTERSSHARP=11]="THREEQUARTERSSHARP",B[B.THREEQUARTERSFLAT=12]="THREEQUARTERSFLAT",B[B.SLASHQUARTERSHARP=13]="SLASHQUARTERSHARP",B[B.SLASHSHARP=14]="SLASHSHARP",B[B.DOUBLESLASHFLAT=15]="DOUBLESLASHFLAT",B[B.SORI=16]="SORI",B[B.KORON=17]="KORON",B))(AccidentalEnum||{});const _Pitch=class{constructor(B,R,F,D=void 0){this.accidental=2,this.fundamentalNote=B,this.octave=R,this.accidental=F,this.accidentalXml=D,this.halfTone=B+(R+_Pitch.octXmlDiff)*12+_Pitch.HalfTonesFromAccidental(F),this.frequency=_Pitch.calcFrequency(this),this.nextFrequency=_Pitch.calcFrequency(this,"next"),this.prevFrequency=_Pitch.calcFrequency(this,"prev")}static getNoteEnumString(B){switch(B){case 0:return"C";case 2:return"D";case 4:return"E";case 5:return"F";case 7:return"G";case 9:return"A";case 11:return"B";default:return""}}static lineShiftFromNoteEnum(B,R){if(R===0)return[B,0];const F=_Pitch.pitchEnumValues,D=F.indexOf(B);let G=0,U=(D+R)%F.length;return D+R>F.length-1&&(G=1),U<0&&(U=F.length+U,G=-1),[F[U],G]}static CalculateTransposedHalfTone(B,R){const F=B.fundamentalNote+B.AccidentalHalfTones+R;return _Pitch.WrapAroundCheck(F,12)}static WrapAroundCheck(B,R){let F=0;for(;B<0;)B+=R,F--;for(;B>=R;)B-=R,F++;return{overflow:F,halftone:B}}static calcFrequency(B,R){let F=0,D;if(B instanceof _Pitch){const q=B;F=q.octave-1,D=q.fundamentalNote-9+q.AccidentalHalfTones}else typeof B=="number"&&(D=B-57);const G=window.DYSubjectId;let U=0;window.DYEnvironment==="COLEXIU"&&(Additional[12]=[120]);for(const q in Additional)if(Object.prototype.hasOwnProperty.call(Additional,q)&&Additional[q].includes(G)){U=parseFloat(q);break}let W=D+U;return R==="next"&&W++,R==="prev"&&W--,442*Math.pow(2,F)*Math.pow(2,W/12)}static calcFractionalKey(B){return Math.log(B/440)/Math.LN10*_Pitch.halftoneFactor+57}static fromFrequency(B){const R=_Pitch.calcFractionalKey(B)+.5,F=Math.floor(R/12)-_Pitch.octXmlDiff,D=Math.floor(R)%12;let G=D,U=2;return this.pitchEnumValues.indexOf(G)===-1&&(G=D-1,U=0),new _Pitch(G,F,U)}static fromHalftone(B){const R=Math.floor(B/12)-_Pitch.octXmlDiff,F=B%12;let D=F,G=2;return this.pitchEnumValues.indexOf(D)===-1&&(D=F-1,G=0),new _Pitch(D,R,G)}static ceiling(B){B=B%12;let R=B;return this.pitchEnumValues.indexOf(R)===-1&&(R=B+1),R}static floor(B){B=B%12;let R=B;return this.pitchEnumValues.indexOf(R)===-1&&(R=B-1),R}static HalfTonesFromAccidental(B){switch(B){case 2:return 0;case 0:return 1;case 1:return-1;case 3:return 0;case 4:return 2;case 5:return-2;case 6:return 3;case 7:return-3;case 8:return .5;case 9:return-.5;case 10:return-.51;case 11:return 1.5;case 12:return-1.5;case 13:return .0013;case 14:return .0014;case 15:return-.0015;case 16:return .0016;case 17:return .0017;default:throw new Error("Unhandled AccidentalEnum value")}}static AccidentalFromHalfTones(B){switch(B){case 0:return 2;case 1:return 0;case-1:return 1;case 2:return 4;case-2:return 5;case 3:return 6;case-3:return 7;case .5:return 8;case-.5:return 9;case 1.5:return 11;case-1.5:return 12;default:return B>0&&B<1?8:B<0&&B>-1?9:8}}static accidentalVexflow(B){let R;switch(B){case 3:R="n";break;case 1:R="b";break;case 0:R="#";break;case 4:R="##";break;case 6:R="###";break;case 5:R="bb";break;case 7:R="bbs";break;case 8:R="+";break;case 9:R="d";break;case 10:R="bs";break;case 11:R="++";break;case 12:R="db";break;case 13:R="+-";break;case 14:R="++-";break;case 15:R="bss";break;case 16:R="o";break;case 17:R="k";break}return R}get AccidentalHalfTones(){return _Pitch.HalfTonesFromAccidental(this.accidental)}get Octave(){return this.octave}get FundamentalNote(){return this.fundamentalNote}get Accidental(){return this.accidental}get AccidentalXml(){return this.accidentalXml}get Frequency(){return this.frequency}static get OctaveXmlDifference(){return _Pitch.octXmlDiff}getHalfTone(){return this.halfTone}getTransposedPitch(B){if(B>12)throw new Error("rewrite this method to handle bigger octave changes or don't use is with bigger octave changes!");return B>0?this.getHigherPitchByTransposeFactor(B):B<0?this.getLowerPitchByTransposeFactor(-B):this}DoEnharmonicChange(){switch(this.accidental){case 1:case 5:this.fundamentalNote=this.getPreviousFundamentalNote(this.fundamentalNote),this.accidental=_Pitch.AccidentalFromHalfTones(this.halfTone-(this.fundamentalNote+(this.octave+_Pitch.octXmlDiff)*12));break;case 0:case 4:this.fundamentalNote=this.getNextFundamentalNote(this.fundamentalNote),this.accidental=_Pitch.AccidentalFromHalfTones(this.halfTone-(this.fundamentalNote+(this.octave+_Pitch.octXmlDiff)*12));break;default:return}}ToString(){let B=_Pitch.accidentalVexflow(this.accidental);return B||(B=""),"Key: "+_Pitch.getNoteEnumString(this.fundamentalNote)+B+", Note: "+this.fundamentalNote+", octave: "+this.octave.toString()}OperatorEquals(B){const R=this;return!R||!B?!1:R.FundamentalNote===B.FundamentalNote&&R.Octave===B.Octave&&R.Accidental===B.Accidental}OperatorNotEqual(B){return this!==B}OperatorFundamentalGreaterThan(B){const R=this;return R.Octave===B.Octave?R.FundamentalNote>B.FundamentalNote:R.Octave>B.Octave}OperatorFundamentalLessThan(B){const R=this;return R.Octave===B.Octave?R.FundamentalNote_Pitch.pitchEnumValues.length-1?(D=_Pitch.pitchEnumValues[R+B-_Pitch.pitchEnumValues.length],F++):D=_Pitch.pitchEnumValues[R+B],new _Pitch(D,F,2)}getLowerPitchByTransposeFactor(B){const R=_Pitch.pitchEnumValues.indexOf(this.fundamentalNote);let F=this.octave,D;return R-B<0?(D=_Pitch.pitchEnumValues[_Pitch.pitchEnumValues.length+R-B],F--):D=_Pitch.pitchEnumValues[R-B],new _Pitch(D,F,2)}getNextFundamentalNote(B){let R=_Pitch.pitchEnumValues.indexOf(B);return R=(R+1)%_Pitch.pitchEnumValues.length,_Pitch.pitchEnumValues[R]}getPreviousFundamentalNote(B){const R=_Pitch.pitchEnumValues.indexOf(B);return R>0?_Pitch.pitchEnumValues[R-1]:_Pitch.pitchEnumValues[_Pitch.pitchEnumValues.length-1]}};let Pitch=_Pitch;Pitch.pitchEnumValues=[0,2,4,5,7,9,11];Pitch.halftoneFactor=12/(Math.LN2/Math.LN10);Pitch.octXmlDiff=3;class VerticalGraphicalStaffEntryContainer{constructor(R,F){this.staffEntries=[],this.absoluteTimestamp=F,this.staffEntries=new Array(R)}get Index(){return this.index}set Index(R){this.index=R}get AbsoluteTimestamp(){return this.absoluteTimestamp}get StaffEntries(){return this.staffEntries}set StaffEntries(R){this.staffEntries=R}static compareByTimestamp(R,F){const D=R.absoluteTimestamp.RealValue,G=F.absoluteTimestamp.RealValue;return DG?1:0}getFirstNonNullStaffEntry(){for(let R=0,F=this.staffEntries.length;R(B[B.BaseWritingColor=0]="BaseWritingColor",B[B.FollowingCursor=1]="FollowingCursor",B[B.AlternativeFollowingCursor=2]="AlternativeFollowingCursor",B[B.PlaybackCursor=3]="PlaybackCursor",B[B.Highlighted=4]="Highlighted",B[B.ErrorUnderlay=5]="ErrorUnderlay",B[B.Selected=6]="Selected",B[B.SelectionSymbol=7]="SelectionSymbol",B[B.DebugColor1=8]="DebugColor1",B[B.DebugColor2=9]="DebugColor2",B[B.DebugColor3=10]="DebugColor3",B[B.SplitScreenDivision=11]="SplitScreenDivision",B[B.GreyTransparentOverlay=12]="GreyTransparentOverlay",B[B.MarkedArea1=13]="MarkedArea1",B[B.MarkedArea2=14]="MarkedArea2",B[B.MarkedArea3=15]="MarkedArea3",B[B.MarkedArea4=16]="MarkedArea4",B[B.MarkedArea5=17]="MarkedArea5",B[B.MarkedArea6=18]="MarkedArea6",B[B.MarkedArea7=19]="MarkedArea7",B[B.MarkedArea8=20]="MarkedArea8",B[B.MarkedArea9=21]="MarkedArea9",B[B.MarkedArea10=22]="MarkedArea10",B[B.Comment1=23]="Comment1",B[B.Comment2=24]="Comment2",B[B.Comment3=25]="Comment3",B[B.Comment4=26]="Comment4",B[B.Comment5=27]="Comment5",B[B.Comment6=28]="Comment6",B[B.Comment7=29]="Comment7",B[B.Comment8=30]="Comment8",B[B.Comment9=31]="Comment9",B[B.Comment10=32]="Comment10",B))(OutlineAndFillStyleEnum||{});const OUTLINE_AND_FILL_STYLE_DICT=new Dictionary;OUTLINE_AND_FILL_STYLE_DICT.setValue(0,"Thistle");OUTLINE_AND_FILL_STYLE_DICT.setValue(1,"Aqua");OUTLINE_AND_FILL_STYLE_DICT.setValue(2,"Azure");OUTLINE_AND_FILL_STYLE_DICT.setValue(3,"Bisque");OUTLINE_AND_FILL_STYLE_DICT.setValue(4,"CadetBlue");OUTLINE_AND_FILL_STYLE_DICT.setValue(5,"DarkBlue");OUTLINE_AND_FILL_STYLE_DICT.setValue(6,"DarkGoldenRod");OUTLINE_AND_FILL_STYLE_DICT.setValue(7,"BlanchedAlmond");OUTLINE_AND_FILL_STYLE_DICT.setValue(8,"Chartreuse");OUTLINE_AND_FILL_STYLE_DICT.setValue(9,"DarkGreen");OUTLINE_AND_FILL_STYLE_DICT.setValue(10,"DarkOrange");OUTLINE_AND_FILL_STYLE_DICT.setValue(11,"FireBrick");OUTLINE_AND_FILL_STYLE_DICT.setValue(12,"DarkSalmon");OUTLINE_AND_FILL_STYLE_DICT.setValue(13,"DarkSeaGreen");OUTLINE_AND_FILL_STYLE_DICT.setValue(14,"DarkOrchid");OUTLINE_AND_FILL_STYLE_DICT.setValue(15,"Aquamarine");OUTLINE_AND_FILL_STYLE_DICT.setValue(16,"DarkKhaki");OUTLINE_AND_FILL_STYLE_DICT.setValue(17,"ForestGreen");OUTLINE_AND_FILL_STYLE_DICT.setValue(18,"AliceBlue");OUTLINE_AND_FILL_STYLE_DICT.setValue(19,"DeepPink");OUTLINE_AND_FILL_STYLE_DICT.setValue(20,"Coral");OUTLINE_AND_FILL_STYLE_DICT.setValue(21,"DarkOliveGreen");OUTLINE_AND_FILL_STYLE_DICT.setValue(22,"Chocolate");OUTLINE_AND_FILL_STYLE_DICT.setValue(23,"DodgerBlue");OUTLINE_AND_FILL_STYLE_DICT.setValue(24,"Blue");OUTLINE_AND_FILL_STYLE_DICT.setValue(25,"Beige");OUTLINE_AND_FILL_STYLE_DICT.setValue(26,"Crimson");OUTLINE_AND_FILL_STYLE_DICT.setValue(27,"Fuchsia");OUTLINE_AND_FILL_STYLE_DICT.setValue(28,"Brown");OUTLINE_AND_FILL_STYLE_DICT.setValue(29,"BlanchedAlmond");OUTLINE_AND_FILL_STYLE_DICT.setValue(30,"CornflowerBlue");OUTLINE_AND_FILL_STYLE_DICT.setValue(31,"Cornsilk");OUTLINE_AND_FILL_STYLE_DICT.setValue(32,"DarkGrey");var GraphicalLayers=(B=>(B[B.Background=0]="Background",B[B.Highlight=1]="Highlight",B[B.MeasureError=2]="MeasureError",B[B.SelectionSymbol=3]="SelectionSymbol",B[B.Cursor=4]="Cursor",B[B.PSI_Debug=5]="PSI_Debug",B[B.Notes=6]="Notes",B[B.Comment=7]="Comment",B[B.Debug_above=8]="Debug_above",B))(GraphicalLayers||{}),NoteState=(B=>(B[B.Normal=0]="Normal",B[B.Selected=1]="Selected",B[B.Follow_Confirmed=2]="Follow_Confirmed",B[B.QFeedback_NotFound=3]="QFeedback_NotFound",B[B.QFeedback_OK=4]="QFeedback_OK",B[B.QFeedback_Perfect=5]="QFeedback_Perfect",B[B.Debug1=6]="Debug1",B[B.Debug2=7]="Debug2",B[B.Debug3=8]="Debug3",B))(NoteState||{}),AutoColorSet=(B=>(B.C="#d82c6b",B.D="#F89D15",B.E="#FFE21A",B.F="#4dbd5c",B.G="#009D96",B.A="#43469d",B.B="#76429c",B.Rest="#000000",B))(AutoColorSet||{});class GraphicalLine{constructor(R,F,D=0,G=OutlineAndFillStyleEnum.BaseWritingColor,U=void 0){this.start=R,this.end=F,this.width=D,this.styleId=G,this.colorHex=U}get Start(){return this.start}set Start(R){this.start=R}get End(){return this.end}set End(R){this.end=R}get Width(){return this.width}set Width(R){this.width=R}}class ClefInstruction extends AbstractNotationInstruction{constructor(R=ClefEnum.G,F=0,D=2){super(void 0),this.clefType=ClefEnum.G,this.line=2,this.octaveOffset=0,this.line=D,this.clefType=R,this.octaveOffset=F,this.calcParameters()}static getDefaultClefFromMidiInstrument(R){switch(R){case MidiInstrument.Acoustic_Grand_Piano:return new ClefInstruction(ClefEnum.F,0,4);case MidiInstrument.Electric_Bass_finger:return new ClefInstruction(ClefEnum.F,0,4);case MidiInstrument.Electric_Bass_pick:return new ClefInstruction(ClefEnum.F,0,4);case MidiInstrument.Fretless_Bass:return new ClefInstruction(ClefEnum.F,0,4);case MidiInstrument.Slap_Bass_1:return new ClefInstruction(ClefEnum.F,0,4);case MidiInstrument.Slap_Bass_2:return new ClefInstruction(ClefEnum.F,0,4);case MidiInstrument.Synth_Bass_1:return new ClefInstruction(ClefEnum.F,0,4);case MidiInstrument.Synth_Bass_2:return new ClefInstruction(ClefEnum.F,0,4);case MidiInstrument.Contrabass:return new ClefInstruction(ClefEnum.F,0,4);default:return new ClefInstruction(ClefEnum.G,0,2)}}static getAllPossibleClefs(){const R=[];for(let F=0;F<=2;F++){const D=new ClefInstruction(ClefEnum.G,F,2);R.push(D)}for(let F=-2;F<=0;F++){const D=new ClefInstruction(ClefEnum.F,F,4);R.push(D)}return R}static isSupportedClef(R){switch(R){case ClefEnum.G:case ClefEnum.F:case ClefEnum.C:case ClefEnum.percussion:case ClefEnum.TAB:return!0;default:return!1}}get ClefType(){return this.clefType}set ClefType(R){this.clefType=R}get Line(){return this.line}set Line(R){this.line=R}get OctaveOffset(){return this.octaveOffset}set OctaveOffset(R){this.octaveOffset=R}get ClefPitch(){return this.clefPitch}set ClefPitch(R){this.clefPitch=R}get ReferenceCyPosition(){return this.referenceCyPosition}set ReferenceCyPosition(R){this.referenceCyPosition=R}Equals(R){return this===R?!0:!this||!R?!1:this.clefPitch===R.clefPitch&&this.Line===R.Line}NotEqual(R){return!this.Equals(R)}ToString(){return"ClefType: "+this.clefType}calcParameters(){switch(this.clefType){case ClefEnum.G:this.clefPitch=new Pitch(NoteEnum.G,1+this.octaveOffset,AccidentalEnum.NONE),this.referenceCyPosition=5-this.line+2;break;case ClefEnum.F:this.clefPitch=new Pitch(NoteEnum.F,0+this.octaveOffset,AccidentalEnum.NONE),this.referenceCyPosition=5-this.line+1.5;break;case ClefEnum.C:this.clefPitch=new Pitch(NoteEnum.C,1+this.octaveOffset,AccidentalEnum.NONE),this.referenceCyPosition=5-this.line;break;case ClefEnum.percussion:this.clefPitch=new Pitch(NoteEnum.C,2,AccidentalEnum.NONE),this.referenceCyPosition=2;break;case ClefEnum.TAB:this.clefPitch=new Pitch(NoteEnum.G,0,AccidentalEnum.NONE),this.referenceCyPosition=0;break;default:throw new ArgumentOutOfRangeException("clefType")}}}var ClefEnum=(B=>(B[B.G=0]="G",B[B.F=1]="F",B[B.C=2]="C",B[B.percussion=3]="percussion",B[B.TAB=4]="TAB",B))(ClefEnum||{}),MidiInstrument=(B=>(B[B.None=-1]="None",B[B.Acoustic_Grand_Piano=0]="Acoustic_Grand_Piano",B[B.Bright_Acoustic_Piano=1]="Bright_Acoustic_Piano",B[B.Electric_Grand_Piano=2]="Electric_Grand_Piano",B[B.Honky_tonk_Piano=3]="Honky_tonk_Piano",B[B.Electric_Piano_1=4]="Electric_Piano_1",B[B.Electric_Piano_2=5]="Electric_Piano_2",B[B.Harpsichord=6]="Harpsichord",B[B.Clavinet=7]="Clavinet",B[B.Celesta=8]="Celesta",B[B.Glockenspiel=9]="Glockenspiel",B[B.Music_Box=10]="Music_Box",B[B.Vibraphone=11]="Vibraphone",B[B.Marimba=12]="Marimba",B[B.Xylophone=13]="Xylophone",B[B.Tubular_Bells=14]="Tubular_Bells",B[B.Dulcimer=15]="Dulcimer",B[B.Drawbar_Organ=16]="Drawbar_Organ",B[B.Percussive_Organ=17]="Percussive_Organ",B[B.Rock_Organ=18]="Rock_Organ",B[B.Church_Organ=19]="Church_Organ",B[B.Reed_Organ=20]="Reed_Organ",B[B.Accordion=21]="Accordion",B[B.Harmonica=22]="Harmonica",B[B.Tango_Accordion=23]="Tango_Accordion",B[B.Acoustic_Guitar_nylon=24]="Acoustic_Guitar_nylon",B[B.Acoustic_Guitar_steel=25]="Acoustic_Guitar_steel",B[B.Electric_Guitar_jazz=26]="Electric_Guitar_jazz",B[B.Electric_Guitar_clean=27]="Electric_Guitar_clean",B[B.Electric_Guitar_muted=28]="Electric_Guitar_muted",B[B.Overdriven_Guitar=29]="Overdriven_Guitar",B[B.Distortion_Guitar=30]="Distortion_Guitar",B[B.Guitar_harmonics=31]="Guitar_harmonics",B[B.Acoustic_Bass=32]="Acoustic_Bass",B[B.Electric_Bass_finger=33]="Electric_Bass_finger",B[B.Electric_Bass_pick=34]="Electric_Bass_pick",B[B.Fretless_Bass=35]="Fretless_Bass",B[B.Slap_Bass_1=36]="Slap_Bass_1",B[B.Slap_Bass_2=37]="Slap_Bass_2",B[B.Synth_Bass_1=38]="Synth_Bass_1",B[B.Synth_Bass_2=39]="Synth_Bass_2",B[B.Violin=40]="Violin",B[B.Viola=41]="Viola",B[B.Cello=42]="Cello",B[B.Contrabass=43]="Contrabass",B[B.Tremolo_Strings=44]="Tremolo_Strings",B[B.Pizzicato_Strings=45]="Pizzicato_Strings",B[B.Orchestral_Harp=46]="Orchestral_Harp",B[B.Timpani=47]="Timpani",B[B.String_Ensemble_1=48]="String_Ensemble_1",B[B.String_Ensemble_2=49]="String_Ensemble_2",B[B.Synth_Strings_1=50]="Synth_Strings_1",B[B.Synth_Strings_2=51]="Synth_Strings_2",B[B.Choir_Aahs=52]="Choir_Aahs",B[B.Voice_Oohs=53]="Voice_Oohs",B[B.Synth_Voice=54]="Synth_Voice",B[B.Orchestra_Hit=55]="Orchestra_Hit",B[B.Trumpet=56]="Trumpet",B[B.Trombone=57]="Trombone",B[B.Tuba=58]="Tuba",B[B.Muted_Trumpet=59]="Muted_Trumpet",B[B.French_Horn=60]="French_Horn",B[B.Brass_Section=61]="Brass_Section",B[B.Synth_Brass_1=62]="Synth_Brass_1",B[B.Synth_Brass_2=63]="Synth_Brass_2",B[B.Soprano_Sax=64]="Soprano_Sax",B[B.Alto_Sax=65]="Alto_Sax",B[B.Tenor_Sax=66]="Tenor_Sax",B[B.Baritone_Sax=67]="Baritone_Sax",B[B.Oboe=68]="Oboe",B[B.English_Horn=69]="English_Horn",B[B.Bassoon=70]="Bassoon",B[B.Clarinet=71]="Clarinet",B[B.Piccolo=72]="Piccolo",B[B.Flute=73]="Flute",B[B.Recorder=74]="Recorder",B[B.Pan_Flute=75]="Pan_Flute",B[B.Blown_Bottle=76]="Blown_Bottle",B[B.Shakuhachi=77]="Shakuhachi",B[B.Whistle=78]="Whistle",B[B.Ocarina=79]="Ocarina",B[B.Lead_1_square=80]="Lead_1_square",B[B.Lead_2_sawtooth=81]="Lead_2_sawtooth",B[B.Lead_3_calliope=82]="Lead_3_calliope",B[B.Lead_4_chiff=83]="Lead_4_chiff",B[B.Lead_5_charang=84]="Lead_5_charang",B[B.Lead_6_voice=85]="Lead_6_voice",B[B.Lead_7_fifths=86]="Lead_7_fifths",B[B.Lead_8_bass_lead=87]="Lead_8_bass_lead",B[B.Pad_1_new_age=88]="Pad_1_new_age",B[B.Pad_2_warm=89]="Pad_2_warm",B[B.Pad_3_polysynth=90]="Pad_3_polysynth",B[B.Pad_4_choir=91]="Pad_4_choir",B[B.Pad_5_bowed=92]="Pad_5_bowed",B[B.Pad_6_metallic=93]="Pad_6_metallic",B[B.Pad_7_halo=94]="Pad_7_halo",B[B.Pad_8_sweep=95]="Pad_8_sweep",B[B.FX_1_rain=96]="FX_1_rain",B[B.FX_2_soundtrack=97]="FX_2_soundtrack",B[B.FX_3_crystal=98]="FX_3_crystal",B[B.FX_4_atmosphere=99]="FX_4_atmosphere",B[B.FX_5_brightness=100]="FX_5_brightness",B[B.FX_6_goblins=101]="FX_6_goblins",B[B.FX_7_echoes=102]="FX_7_echoes",B[B.FX_8_scifi=103]="FX_8_scifi",B[B.Sitar=104]="Sitar",B[B.Banjo=105]="Banjo",B[B.Shamisen=106]="Shamisen",B[B.Koto=107]="Koto",B[B.Kalimba=108]="Kalimba",B[B.Bag_pipe=109]="Bag_pipe",B[B.Fiddle=110]="Fiddle",B[B.Shanai=111]="Shanai",B[B.Tinkle_Bell=112]="Tinkle_Bell",B[B.Agogo=113]="Agogo",B[B.Steel_Drums=114]="Steel_Drums",B[B.Woodblock=115]="Woodblock",B[B.Taiko_Drum=116]="Taiko_Drum",B[B.Melodic_Tom=117]="Melodic_Tom",B[B.Synth_Drum=118]="Synth_Drum",B[B.Reverse_Cymbal=119]="Reverse_Cymbal",B[B.Guitar_Fret_Noise=120]="Guitar_Fret_Noise",B[B.Breath_Noise=121]="Breath_Noise",B[B.Seashore=122]="Seashore",B[B.Bird_Tweet=123]="Bird_Tweet",B[B.Telephone_Ring=124]="Telephone_Ring",B[B.Helicopter=125]="Helicopter",B[B.Applause=126]="Applause",B[B.Gunshot=127]="Gunshot",B[B.euphonium=128]="euphonium",B[B.AltoClarinetInEb=200]="AltoClarinetInEb",B[B.TrumpetInBb=201]="TrumpetInBb",B[B.BaritoneSaxophone=202]="BaritoneSaxophone",B[B.TenorSaxophone=203]="TenorSaxophone",B[B.ClarinetInEb=204]="ClarinetInEb",B[B.Euphonium=205]="Euphonium",B[B.Alto_Clarinet=206]="Alto_Clarinet",B[B.Bass_Clarinet=207]="Bass_Clarinet",B[B.Bass_Trombone=208]="Bass_Trombone",B[B.clarinet_in_bb=209]="clarinet_in_bb",B[B.clarinet_in_eb=210]="clarinet_in_eb",B[B.Percussion=135]="Percussion",B))(MidiInstrument||{});const _KeyInstruction=class extends AbstractNotationInstruction{constructor(B=void 0,R=0,F=KeyEnum.major){super(B),this.isTransposedBy=0,this.Key=R,this.keyTypeOriginal=R,this.mode=F,this.alteratedNotes=this.calcAlteratedNotes()}static copy(B){const R=new _KeyInstruction(B.parent,B.Key,B.Mode);return R.keyTypeOriginal=B.keyTypeOriginal,R}static getAllPossibleMajorKeyInstructions(){const B=[];for(let R=-7;R<7;R++){const F=new _KeyInstruction(void 0,R,KeyEnum.major);B.push(F)}return B}get Key(){return this.keyType}set Key(B){this.keyType=B,this.alteratedNotes=this.calcAlteratedNotes()}get Mode(){return this.mode}set Mode(B){this.mode=B}get AlteratedNotes(){return this.alteratedNotes}calcAlteratedNotes(){const B=[];if(this.keyType>0)for(let R=0;R=0}getAlterationForPitch(B){return this.keyType>0&&this.alteratedNotes.indexOf(B.FundamentalNote)<=this.keyType?AccidentalEnum.SHARP:this.keyType<0&&this.alteratedNotes.indexOf(B.FundamentalNote)<=Math.abs(this.keyType)?AccidentalEnum.FLAT:AccidentalEnum.NONE}ToString(){return"Key: "+this.keyType+this.mode}OperatorEquals(B){const R=this;return R===B?!0:!R||!B?!1:R.Key===B.Key&&R.Mode===B.Mode}OperatorNotEqual(B){return!this.OperatorEquals(B)}};let KeyInstruction=_KeyInstruction;KeyInstruction.sharpPositionList=[NoteEnum.F,NoteEnum.C,NoteEnum.G,NoteEnum.D,NoteEnum.A,NoteEnum.E,NoteEnum.B];KeyInstruction.flatPositionList=[NoteEnum.B,NoteEnum.E,NoteEnum.A,NoteEnum.D,NoteEnum.G,NoteEnum.C,NoteEnum.F];var KeyEnum=(B=>(B[B.major=0]="major",B[B.minor=1]="minor",B[B.none=2]="none",B[B.dorian=3]="dorian",B[B.phrygian=4]="phrygian",B[B.lydian=5]="lydian",B[B.mixolydian=6]="mixolydian",B[B.aeolian=7]="aeolian",B[B.ionian=8]="ionian",B[B.locrian=9]="locrian",B))(KeyEnum||{});Array.prototype.last||Object.defineProperty(Array.prototype,"last",{enumerable:!1,value:function(){return this[this.length-1]}});Array.prototype.clear||Object.defineProperty(Array.prototype,"clear",{enumerable:!1,value:function(){this.length=0}});Array.prototype.contains||Object.defineProperty(Array.prototype,"contains",{enumerable:!1,value:function(B){return this.indexOf(B)!==-1}});class CollectionUtil{static contains2(R,F){for(let D=0;D{var D,G,U,W;return((G=(D=F.sourceNote.Pitch)==null?void 0:D.getHalfTone())!=null?G:0)-((W=(U=R.sourceNote.Pitch)==null?void 0:U.getHalfTone())!=null?W:0)}),this.notes}sortForVexflow(){return this.notes.sort((R,F)=>{var D,G,U;return((G=(D=R.sourceNote.Pitch)==null?void 0:D.getHalfTone())!=null?G:0)-((U=F.sourceNote.Pitch.getHalfTone())!=null?U:0)}),this.notes}color(){}}class GraphicalMusicSheet{constructor(R,F){this.musicPages=[],this.measureList=[],this.verticalGraphicalStaffEntryContainers=[],this.cursors=[],this.leadSheet=!1,this.musicSheet=R,this.numberOfStaves=this.musicSheet.Staves.length,this.calculator=F,this.calculator.initialize(this)}get ParentMusicSheet(){return this.musicSheet}get GetCalculator(){return this.calculator}get JianpuKeySignature(){return this.jianpuKeySignature}set JianpuKeySignature(R){this.jianpuKeySignature=R}get MusicPages(){return this.musicPages}set MusicPages(R){this.musicPages=R}get MeasureList(){return this.measureList}set MeasureList(R){this.measureList=R}get VerticalGraphicalStaffEntryContainers(){return this.verticalGraphicalStaffEntryContainers}set VerticalGraphicalStaffEntryContainers(R){this.verticalGraphicalStaffEntryContainers=R}get Title(){return this.title}set Title(R){this.title=R}get Subtitle(){return this.subtitle}set Subtitle(R){this.subtitle=R}get Composer(){return this.composer}set Composer(R){this.composer=R}get Lyricist(){return this.lyricist}set Lyricist(R){this.lyricist=R}get Cursors(){return this.cursors}get SelectionStartSymbol(){return this.selectionStartSymbol}get SelectionEndSymbol(){return this.selectionEndSymbol}get MinAllowedSystemWidth(){return this.minAllowedSystemWidth}set MinAllowedSystemWidth(R){this.minAllowedSystemWidth=R}get NumberOfStaves(){return this.numberOfStaves}get LeadSheet(){return this.leadSheet}set LeadSheet(R){this.leadSheet=R}static transformRelativeToAbsolutePosition(R){for(let F=0;F=0;D--){const G=this.measureList[D][F];if(G)return G}}findGraphicalStaffEntryFromMeasureList(R,F,D){for(let G=F;G0)return W.staffEntries[0]}}getFirstVisibleMeasuresListFromIndices(R,F){const D=[],G=this.measureList[0].length;for(let U=R;U<=F;U++)for(let W=0;W=0;F--){if(this.verticalGraphicalStaffEntryContainers[F].AbsoluteTimestamp.lt(R)){const D=new VerticalGraphicalStaffEntryContainer(this.numberOfStaves,R);return this.verticalGraphicalStaffEntryContainers.splice(F+1,0,D),D}if(this.verticalGraphicalStaffEntryContainers[F].AbsoluteTimestamp.Equals(R))return this.verticalGraphicalStaffEntryContainers[F]}}GetVerticalContainerFromTimestamp(R,F=0){const D=CollectionUtil.binarySearch(this.verticalGraphicalStaffEntryContainers,new VerticalGraphicalStaffEntryContainer(0,R),VerticalGraphicalStaffEntryContainer.compareByTimestamp,F);if(D>=0)return this.verticalGraphicalStaffEntryContainers[D]}GetInterpolatedIndexInVerticalContainers(R){const F=this.verticalGraphicalStaffEntryContainers;let D=0,G=F.length-1,U,W;if(R.lte(F[F.length-1].AbsoluteTimestamp)){for(;G-D>1;){const Z=Math.floor((G+D)/2);if(F[D].AbsoluteTimestamp.Equals(R)){G=D;break}else if(F[G].AbsoluteTimestamp.Equals(R)){D=G;break}else{if(F[Z].AbsoluteTimestamp.Equals(R))return this.verticalGraphicalStaffEntryContainers.indexOf(F[Z]);R.lt(F[Z].AbsoluteTimestamp)?G=Z:D=Z}}if(D===G)return this.verticalGraphicalStaffEntryContainers.indexOf(F[D]);U=F[D].AbsoluteTimestamp,W=F[G].AbsoluteTimestamp}else U=F[F.length-1].AbsoluteTimestamp,W=Fraction$1.plus(this.getLongestStaffEntryDuration(F.length-1),U),G=F.length;const q=W.RealValue-U.RealValue,Y=W.RealValue-R.RealValue,Q=G-Y/q;return Math.min(Q,this.verticalGraphicalStaffEntryContainers.length)}getVisibleStavesIndicesFromSourceMeasure(R){const F=[],D=[];for(let G=0,U=R.length;G{var D;return((D=F.parentStaffEntry)==null?void 0:D.relInMeasureTimestamp)!==void 0})}GetNearestNote(R,F){const D=this.GetNearestVoiceEntry(R);if(!D)return;let G,U=Number.MAX_SAFE_INTEGER;for(const W of D.notes){const q=W.PositionAndShape.AbsolutePosition.y,Y=Math.abs(W.PositionAndShape.AbsolutePosition.x-R.x),Q=Math.abs(q-R.y);Y+QW.PositionAndShape.RelativePosition.x&&(D=W):D=W)}}catch(G){log$2.info("GraphicalMusicSheet.getStaffEntry",G)}return D}GetPreviousVisibleContainerIndex(R){for(let F=R-1;F>=0;F--){const D=this.verticalGraphicalStaffEntryContainers[F].StaffEntries;for(let G=0,U=D.length;G=0;U--)if(D=this.getStaffEntry(U),D)if(F){if(D.sourceStaffEntry.ParentStaff.ParentInstrument.Visible)return D}else return D}findClosestRightStaffEntry(R,F){let D;const G=Math.max(0,Math.ceil(R));for(let U=G;U{};Vex.L=(B,R)=>{if(!R)return;const F=Array.prototype.slice.call(R).join(" ");window.console.log(B+": "+F)};Vex.MakeException=B=>class extends Error{constructor(F,D){super(F),this.name=B,this.message=F,this.data=D}};class RuntimeError{constructor(R,F){this.code=R,this.message=F}toString(){return"[RuntimeError] "+this.code+":"+this.message}}Vex.RuntimeError=RuntimeError;Vex.RERR=Vex.RuntimeError;Vex.Merge=(B,R)=>{for(const F in R)B[F]=R[F];return B};Vex.Min=Math.min;Vex.Max=Math.max;Vex.forEach=(B,R)=>{for(let F=0;FB%R>=R/2?parseInt(B/R,10)*R+R:parseInt(B/R,10)*R;Vex.MidLine=(B,R)=>{let F=R+(B-R)/2;return F%2>0&&(F=Vex.RoundN(F*10,5)/10),F};Vex.SortAndUnique=(B,R,F)=>{if(B.length>1){const D=[];let G;B.sort(R);for(let U=0;U{let F=B.length;for(;F--;)if(B[F]===R)return!0;return!1};Vex.getCanvasContext=B=>{if(!B)throw new Vex.RERR("BadArgument","Invalid canvas selector: "+B);const R=document.getElementById(B);if(!(R&&R.getContext))throw new Vex.RERR("UnsupportedBrowserError","This browser does not support HTML5 Canvas");return R.getContext("2d")};Vex.drawDot=(B,R,F,D="#55")=>{B.save(),B.setFillStyle(D),B.beginPath(),B.arc(R,F,3,0,Math.PI*2,!0),B.closePath(),B.fill(),B.restore()};Vex.BM=(B,R)=>{const F=new Date().getTime();R();const D=new Date().getTime()-F;Vex.L(B+D+"ms")};Vex.StackTrace=()=>new Error().stack;Vex.W=(...B)=>{const R=B.join(" ");window.console.log("Warning: ",R,Vex.StackTrace())};Vex.Prefix=B=>Vex.Prefix.prefix+B;Vex.Prefix.prefix="vf-";class Fraction{static GCD(R,F){if(typeof R!="number"||typeof F!="number")throw new Vex.RERR("BadArgument",`Invalid numbers: ${R}, ${F}`);let D;for(;F!==0;)D=F,F=R%F,R=D;return R}static LCM(R,F){return R*F/Fraction.GCD(R,F)}static LCMM(R){if(R.length===0)return 0;if(R.length===1)return R[0];if(R.length===2)return Fraction.LCM(R[0],R[1]);{const F=R[0];return R.shift(),Fraction.LCM(F,Fraction.LCMM(R))}}constructor(R,F){this.set(R,F)}set(R,F){return this.numerator=R===void 0?1:R,this.denominator=F===void 0?1:F,this}value(){return this.numerator/this.denominator}simplify(){let R=this.numerator,F=this.denominator;const D=Fraction.GCD(R,F);return R/=D,F/=D,F<0&&(F=-F,R=-R),this.set(R,F)}add(R,F){let D,G;R instanceof Fraction?(D=R.numerator,G=R.denominator):(R!==void 0?D=R:D=0,F!==void 0?G=F:G=1);const U=Fraction.LCM(this.denominator,G),W=U/this.denominator,q=U/G,Y=this.numerator*W+D*q;return this.set(Y,U)}subtract(R,F){let D,G;R instanceof Fraction?(D=R.numerator,G=R.denominator):(R!==void 0?D=R:D=0,F!==void 0?G=F:G=1);const U=Fraction.LCM(this.denominator,G),W=U/this.denominator,q=U/G,Y=this.numerator*W-D*q;return this.set(Y,U)}multiply(R,F){let D,G;return R instanceof Fraction?(D=R.numerator,G=R.denominator):(R!==void 0?D=R:D=1,F!==void 0?G=F:G=1),this.set(this.numerator*D,this.denominator*G)}divide(R,F){let D,G;return R instanceof Fraction?(D=R.numerator,G=R.denominator):(R!==void 0?D=R:D=1,F!==void 0?G=F:G=1),this.set(this.numerator*G,this.denominator*D)}equals(R){const F=Fraction.__compareA.copy(R).simplify(),D=Fraction.__compareB.copy(this).simplify();return F.numerator===D.numerator&&F.denominator===D.denominator}greaterThan(R){const F=Fraction.__compareB.copy(this);return F.subtract(R),F.numerator>0}greaterThanEquals(R){const F=Fraction.__compareB.copy(this);return F.subtract(R),F.numerator>=0}lessThan(R){return!this.greaterThanEquals(R)}lessThanEquals(R){return!this.greaterThan(R)}clone(){return new Fraction(this.numerator,this.denominator)}copy(R){return typeof R=="number"?this.set(R||0,1):this.set(R.numerator,R.denominator)}quotient(){return Math.floor(this.numerator/this.denominator)}fraction(){return this.numerator%this.denominator}abs(){return this.denominator=Math.abs(this.denominator),this.numerator=Math.abs(this.numerator),this}toString(){return this.numerator+"/"+this.denominator}toSimplifiedString(){return Fraction.__tmp.copy(this).simplify().toString()}toMixedString(){let R="";const F=this.quotient(),D=Fraction.__tmp.copy(this);return F<0?D.abs().fraction():D.fraction(),F!==0?(R+=F,D.numerator!==0&&(R+=" "+D.toSimplifiedString())):D.numerator===0?R="0":R=D.toSimplifiedString(),R}parse(R){const F=R.split("/"),D=parseInt(F[0],10),G=F[1]?parseInt(F[1],10):1;return this.set(D,G)}}Fraction.__compareA=new Fraction;Fraction.__compareB=new Fraction;Fraction.__tmp=new Fraction;const X$3=Vex.MakeException("RegistryError");function setIndexValue(B,R,F,D,G){B[R][F]||(B[R][F]={}),B[R][F][D]=G}class Registry{static get INDEXES(){return["type"]}constructor(){this.clear()}static enableDefaultRegistry(R){Registry.defaultRegistry=R}static getDefaultRegistry(){return Registry.defaultRegistry}static disableDefaultRegistry(){Registry.defaultRegistry=null}clear(){return this.index={id:{},type:{},class:{}},this}updateIndex({id:R,name:F,value:D,oldValue:G}){const U=this.getElementById(R);G!==null&&this.index[F][G]&&delete this.index[F][G][R],D!==null&&setIndexValue(this.index,F,D,U.getAttribute("id"),U)}register(R,F){if(F=F||R.getAttribute("id"),!F)throw new X$3("Can't add element without `id` attribute to registry",R);return R.setAttribute("id",F),setIndexValue(this.index,"id",F,F,R),Registry.INDEXES.forEach(D=>{this.updateIndex({id:F,name:D,value:R.getAttribute(D),oldValue:null})}),R.onRegister(this),this}getElementById(R){return this.index.id[R]?this.index.id[R][R]:null}getElementsByAttribute(R,F){const D=this.index[R];return D&&D[F]?Object.keys(D[F]).map(G=>D[F][G]):[]}getElementsByType(R){return this.getElementsByAttribute("type",R)}getElementsByClass(R){return this.getElementsByAttribute("class",R)}onUpdate({id:R,name:F,value:D,oldValue:G}){function U(W,q){return W.filter(Y=>Y===q).length>0}return U(Registry.INDEXES.concat(["id","class"]),F)?(this.updateIndex({id:R,name:F,value:D,oldValue:G}),this):this}}Registry.defaultRegistry=null;class Element$1{static newID(){return"auto"+Element$1.ID++}constructor({type:R}={}){this.attrs={id:Element$1.newID(),el:null,type:R||"Base",classes:{}},this.boundingBox=null,this.context=null,this.rendered=!1,Registry.getDefaultRegistry()&&Registry.getDefaultRegistry().register(this)}setStyle(R){return this.style=R,this}getStyle(){return this.style}applyStyle(R=this.context,F=this.getStyle()){return F?(R.save(),F.shadowColor&&R.setShadowColor(F.shadowColor),F.shadowBlur&&R.setShadowBlur(F.shadowBlur),F.fillStyle&&R.setFillStyle(F.fillStyle),F.strokeStyle&&R.setStrokeStyle(F.strokeStyle),F.lineWidth&&R.setLineWidth(F.lineWidth),this):this}restoreStyle(R=this.context,F=this.getStyle()){return F?(R.restore(),this):this}drawWithStyle(){this.checkContext(),this.applyStyle(),this.draw(),this.restoreStyle()}hasClass(R){return this.attrs.classes[R]===!0}addClass(R){return this.attrs.classes[R]=!0,this.registry&&this.registry.onUpdate({id:this.getAttribute("id"),name:"class",value:R,oldValue:null}),this}removeClass(R){return delete this.attrs.classes[R],this.registry&&this.registry.onUpdate({id:this.getAttribute("id"),name:"class",value:null,oldValue:R}),this}onRegister(R){return this.registry=R,this}isRendered(){return this.rendered}setRendered(R=!0){return this.rendered=R,this}getAttributes(){return this.attrs}getAttribute(R){return this.attrs[R]}setAttribute(R,F){const D=this.attrs.id,G=this.attrs[R];return this.attrs[R]=F,this.registry&&this.registry.onUpdate({id:D,name:R,value:F,oldValue:G}),this}getContext(){return this.context}setContext(R){return this.context=R,this}getBoundingBox(){return this.boundingBox}checkContext(){if(!this.context)throw new Vex.RERR("NoContext","No rendering context attached to instance");return this.context}}Element$1.ID=1e3;class BoundingBoxComputation{constructor(R,F,D,G){this.x1=Number.NaN,this.y1=Number.NaN,this.x2=Number.NaN,this.y2=Number.NaN,this.addPoint(R,F),this.addPoint(D,G)}width(){return this.x2-this.x1}height(){return this.y2-this.y1}addPoint(R,F){R!=null&&((isNaN(this.x1)||isNaN(this.x2))&&(this.x1=R,this.x2=R),Rthis.x2&&(this.x2=R)),F!=null&&((isNaN(this.y1)||isNaN(this.y2))&&(this.y1=F,this.y2=F),Fthis.y2&&(this.y2=F))}addX(R){this.addPoint(R,null)}addY(R){this.addPoint(null,R)}addQuadraticCurve(R,F,D,G,U,W){const q=R+.6666666666666666*(D-R),Y=F+2/3*(G-F),Q=q+1/3*(U-R),Z=Y+1/3*(W-F);this.addBezierCurve(R,F,q,Y,Q,Z,U,W)}addBezierCurve(R,F,D,G,U,W,q,Y){const Q=[R,F],Z=[D,G],K=[U,W],J=[q,Y];let ie;this.addPoint(Q[0],Q[1]),this.addPoint(J[0],J[1]);const ne=(se,re)=>Math.pow(1-se,3)*Q[re]+3*Math.pow(1-se,2)*se*Z[re]+3*(1-se)*Math.pow(se,2)*K[re]+Math.pow(se,3)*J[re];for(ie=0;ie<=1;ie++){const se=6*Q[ie]-12*Z[ie]+6*K[ie],re=-3*Q[ie]+9*Z[ie]-9*K[ie]+3*J[ie],ae=3*Z[ie]-3*Q[ie];if(re===0){if(se===0)continue;const de=-ae/se;0{if(!B)throw new Vex.RERR("BadArgument","Invalid clef: "+B);const R=Flow.clefProperties.values[B];if(!R)throw new Vex.RERR("BadArgument","Invalid clef: "+B);return R};Flow.clefProperties.values={treble:{line_shift:0},bass:{line_shift:6},tenor:{line_shift:4},alto:{line_shift:3},soprano:{line_shift:1},percussion:{line_shift:0},"mezzo-soprano":{line_shift:2},"baritone-c":{line_shift:5},"baritone-f":{line_shift:5},subbass:{line_shift:7},french:{line_shift:-1}};Flow.keyProperties=(B,R,F)=>{R===void 0&&(R="treble");const D={octave_shift:0};typeof F=="object"&&Vex.Merge(D,F);const G=B.split("/");if(G.length<2)throw new Vex.RERR("BadArguments",`Key must have note + octave and an optional glyph: ${B}`);const U=G[0].toUpperCase(),W=Flow.keyProperties.note_values[U];if(!W)throw new Vex.RERR("BadArguments","Invalid key name: "+U);W.octave&&(G[1]=W.octave);let q=parseInt(G[1],10);q+=-1*D.octave_shift;let Q=(q*7-4*7+W.index)/2;Q+=Flow.clefProperties(R).line_shift;let Z=0;Q<=0&&Q*2%2===0&&(Z=1),Q>=6&&Q*2%2===0&&(Z=-1);const K=typeof W.int_val!="undefined"?q*12+W.int_val:null,J=W.code,ie=W.shift_right;let ne={};if(G.length>2&&G[2]){const se=G[2].toUpperCase();ne=Flow.keyProperties.customNoteHeads[se]||{}}return{key:U,octave:q,line:Q,int_value:K,accidental:W.accidental,code:J,stroke:Z,shift_right:ie,displaced:!1,...ne}};Flow.keyProperties.note_values={C:{index:0,int_val:0,accidental:null},CN:{index:0,int_val:0,accidental:"n"},"C#":{index:0,int_val:1,accidental:"#"},"C##":{index:0,int_val:2,accidental:"##"},CB:{index:0,int_val:-1,accidental:"b"},CBB:{index:0,int_val:-2,accidental:"bb"},D:{index:1,int_val:2,accidental:null},DN:{index:1,int_val:2,accidental:"n"},"D#":{index:1,int_val:3,accidental:"#"},"D##":{index:1,int_val:4,accidental:"##"},DB:{index:1,int_val:1,accidental:"b"},DBB:{index:1,int_val:0,accidental:"bb"},E:{index:2,int_val:4,accidental:null},EN:{index:2,int_val:4,accidental:"n"},"E#":{index:2,int_val:5,accidental:"#"},"E##":{index:2,int_val:6,accidental:"##"},EB:{index:2,int_val:3,accidental:"b"},EBB:{index:2,int_val:2,accidental:"bb"},F:{index:3,int_val:5,accidental:null},FN:{index:3,int_val:5,accidental:"n"},"F#":{index:3,int_val:6,accidental:"#"},"F##":{index:3,int_val:7,accidental:"##"},FB:{index:3,int_val:4,accidental:"b"},FBB:{index:3,int_val:3,accidental:"bb"},G:{index:4,int_val:7,accidental:null},GN:{index:4,int_val:7,accidental:"n"},"G#":{index:4,int_val:8,accidental:"#"},"G##":{index:4,int_val:9,accidental:"##"},GB:{index:4,int_val:6,accidental:"b"},GBB:{index:4,int_val:5,accidental:"bb"},A:{index:5,int_val:9,accidental:null},AN:{index:5,int_val:9,accidental:"n"},"A#":{index:5,int_val:10,accidental:"#"},"A##":{index:5,int_val:11,accidental:"##"},AB:{index:5,int_val:8,accidental:"b"},ABB:{index:5,int_val:7,accidental:"bb"},B:{index:6,int_val:11,accidental:null},BN:{index:6,int_val:11,accidental:"n"},"B#":{index:6,int_val:12,accidental:"#"},"B##":{index:6,int_val:13,accidental:"##"},BB:{index:6,int_val:10,accidental:"b"},BBB:{index:6,int_val:9,accidental:"bb"},R:{index:6,int_val:9,rest:!0},X:{index:6,accidental:"",octave:4,code:"v3e",shift_right:5.5}};Flow.keyProperties.customNoteHeads={D0:{code:"v27",shift_right:0,stem_up_x_offset:0,stem_down_x_offset:0,stem_up_y_offset:-1,stem_down_y_offset:0},D1:{code:"v2d",shift_right:-.5},D2:{code:"v22",shift_right:-.5},D3:{code:"v70",shift_right:-.5},T0:{code:"v49",shift_right:-2,stem_up_y_offset:-4,stem_down_y_offset:4},T1:{code:"v93",shift_right:.5,stem_up_y_offset:-4,stem_down_y_offset:4},T2:{code:"v40",shift_right:.5,stem_up_y_offset:-4,stem_down_y_offset:4},T3:{code:"v7d",shift_right:.5,stem_up_y_offset:-4,stem_down_y_offset:4},X0:{code:"v92",stem_up_x_offset:-2,stem_down_x_offset:0,stem_up_y_offset:4,stem_down_y_offset:4},X1:{code:"v95",shift_right:-.5,stem_up_y_offset:4,stem_down_y_offset:4},X2:{code:"v3e",shift_right:.5,stem_up_y_offset:4,stem_down_y_offset:4},X3:{code:"v3b",shift_right:0,stem_up_x_offset:-1.2,stem_down_x_offset:0,stem_up_y_offset:-1,stem_down_y_offset:2},S1:{code:"vd3",shift_right:0},S2:{code:"vd2",shift_right:0},R1:{code:"vd5",shift_right:0},R2:{code:"vd4",shift_right:0}};Flow.integerToNote=B=>{if(typeof B=="undefined")throw new Vex.RERR("BadArguments","Undefined integer for integerToNote");if(B<-2)throw new Vex.RERR("BadArguments",`integerToNote requires integer > -2: ${B}`);const R=Flow.integerToNote.table[B];if(!R)throw new Vex.RERR("BadArguments",`Unknown note value for integer: ${B}`);return R};Flow.integerToNote.table={0:"C",1:"C#",2:"D",3:"D#",4:"E",5:"F",6:"F#",7:"G",8:"G#",9:"A",10:"A#",11:"B"};Flow.tabToGlyph=(B,R=1)=>{let F=null,D=0,G=0;if(B.toString().toUpperCase()==="X"){const U=new Glyph("v7f",Flow.DEFAULT_TABLATURE_FONT_SCALE).getMetrics();F="v7f",D=U.width,G=-U.height/2}else D=Flow.textWidth(B.toString());return{text:B,code:F,getWidth:()=>D*R,shift_y:G}};Flow.textWidth=B=>7*B.toString().length;Flow.articulationCodes=B=>Flow.articulationCodes.articulations[B];Flow.articulationCodes.articulations={"a.":{code:"v23",between_lines:!0},av:{code:"v28",between_lines:!0},"a>":{code:"v42",between_lines:!0},"a-":{code:"v25",between_lines:!0},"a^":{code:"va",between_lines:!1},"a+":{code:"v8b",between_lines:!1},ao:{code:"v94",between_lines:!1},ah:{code:"vb9",between_lines:!1},"a@a":{code:"v43",between_lines:!1},"a@u":{code:"v5b",between_lines:!1},"a|":{code:"v75",between_lines:!1},am:{code:"v97",between_lines:!1},"a,":{code:"vb3",between_lines:!1}};Flow.accidentalCodes=B=>Flow.accidentalCodes.accidentals[B];Flow.accidentalCodes.accidentals={"#":{code:"v18",parenRightPaddingAdjustment:-1},"##":{code:"v7f",parenRightPaddingAdjustment:-1},b:{code:"v44",parenRightPaddingAdjustment:-2},bb:{code:"v26",parenRightPaddingAdjustment:-2},n:{code:"v4e",parenRightPaddingAdjustment:-1},"{":{code:"v9c",parenRightPaddingAdjustment:-1},"}":{code:"v84",parenRightPaddingAdjustment:-1},db:{code:"v9e",parenRightPaddingAdjustment:-1},d:{code:"vab",parenRightPaddingAdjustment:0},bbs:{code:"v90",parenRightPaddingAdjustment:-1},"++":{code:"v51",parenRightPaddingAdjustment:-1},"+":{code:"v78",parenRightPaddingAdjustment:-1},"+-":{code:"v8d",parenRightPaddingAdjustment:-1},"++-":{code:"v7a",parenRightPaddingAdjustment:-1},bs:{code:"vb7",parenRightPaddingAdjustment:-1},bss:{code:"v39",parenRightPaddingAdjustment:-1},o:{code:"vd0",parenRightPaddingAdjustment:-1},k:{code:"vd1",parenRightPaddingAdjustment:-1},ashs:{code:"vd6",parenRightPaddingAdjustment:-1},afhf:{code:"vd7",parenRightPaddingAdjustment:-1}};Flow.accidentalColumnsTable={1:{a:[1],b:[1]},2:{a:[1,2]},3:{a:[1,3,2],b:[1,2,1],second_on_bottom:[1,2,3]},4:{a:[1,3,4,2],b:[1,2,3,1],spaced_out_tetrachord:[1,2,1,2]},5:{a:[1,3,5,4,2],b:[1,2,4,3,1],spaced_out_pentachord:[1,2,3,2,1],very_spaced_out_pentachord:[1,2,1,2,1]},6:{a:[1,3,5,6,4,2],b:[1,2,4,5,3,1],spaced_out_hexachord:[1,3,2,1,3,2],very_spaced_out_hexachord:[1,2,1,2,1,2]}};Flow.ornamentCodes=B=>Flow.ornamentCodes.ornaments[B];Flow.ornamentCodes.ornaments={mordent:{code:"v1e"},mordent_inverted:{code:"v45"},turn:{code:"v72"},turn_inverted:{code:"v33"},tr:{code:"v1f"},upprall:{code:"v60"},downprall:{code:"vb4"},prallup:{code:"v6d"},pralldown:{code:"v2c"},upmordent:{code:"v29"},downmordent:{code:"v68"},lineprall:{code:"v20"},prallprall:{code:"v86"}};Flow.keySignature=B=>{const R=Flow.keySignature.keySpecs[B];if(!R)throw new Vex.RERR("BadKeySignature",`Bad key signature spec: '${B}'`);if(!R.acc)return[];const F=Flow.keySignature.accidentalList(R.acc),D=[];for(let G=0;G({b:[2,.5,2.5,1,3,1.5,3.5],"#":[0,1.5,-.5,1,2.5,.5,2]})[B];Flow.parseNoteDurationString=B=>{if(typeof B!="string")return null;const F=/(\d*\/?\d+|[a-z])(d*)([nrhms]|$)/.exec(B);if(!F)return null;const D=F[1],G=F[2].length;let U=F[3];return U.length===0&&(U="n"),{duration:D,dots:G,type:U}};Flow.parseNoteStruct=B=>{const R=B.duration,F=Flow.parseNoteDurationString(R);if(!F)return null;let D=Flow.durationToTicks(F.duration);if(D==null)return null;let G=B.type;const U=[];if(G){if(!Flow.getGlyphProps.validTypes[G])return null}else G=F.type||"n",B.keys!==void 0&&B.keys.forEach((Y,Q)=>{const Z=Y.split("/");Z&&Z.length===3&&(U[Q]=Z[2])});const W=B.dots?B.dots:F.dots;if(typeof W!="number")return null;let q=D;for(let Y=0;Y{const R=Flow.durationAliases[B];if(R!==void 0&&(B=R),Flow.durationToTicks.durations[B]===void 0)throw new Vex.RERR("BadArguments",`The provided duration is not valid: ${B}`);return B};Flow.durationToFraction=B=>new Fraction().parse(Flow.sanitizeDuration(B));Flow.durationToNumber=B=>Flow.durationToFraction(B).value();Flow.durationToTicks=B=>{B=Flow.sanitizeDuration(B);const R=Flow.durationToTicks.durations[B];return R===void 0?null:R};Flow.durationToTicks.durations={"1/2":Flow.RESOLUTION*2,1:Flow.RESOLUTION/1,2:Flow.RESOLUTION/2,4:Flow.RESOLUTION/4,8:Flow.RESOLUTION/8,16:Flow.RESOLUTION/16,32:Flow.RESOLUTION/32,64:Flow.RESOLUTION/64,128:Flow.RESOLUTION/128,256:Flow.RESOLUTION/256};Flow.durationAliases={w:"1",h:"2",q:"4",b:"256"};Flow.getGlyphProps=(B,R)=>{B=Flow.sanitizeDuration(B);const F=Flow.getGlyphProps.duration_codes[B];if(F===void 0)return null;R||(R="n");let D=F.type[R];if(D===void 0){const G=Flow.keyProperties.customNoteHeads[R.toUpperCase()];if(G===void 0)return null;D={code_head:G.code,...G}}return{...F.common,...D}};Flow.getGlyphProps.validTypes={n:{name:"note"},r:{name:"rest"},h:{name:"harmonic"},m:{name:"muted"},s:{name:"slash"}};Flow.getGlyphProps.duration_codes={"1/2":{common:{getWidth(B=Flow.DEFAULT_NOTATION_FONT_SCALE){return new Glyph(this.code_head||"v53",B).getMetrics().width},stem:!1,stem_offset:0,flag:!1,stem_up_extension:-Flow.STEM_HEIGHT,stem_down_extension:-Flow.STEM_HEIGHT,tabnote_stem_up_extension:-Flow.STEM_HEIGHT,tabnote_stem_down_extension:-Flow.STEM_HEIGHT,dot_shiftY:0,line_above:0,line_below:0},type:{n:{code_head:"v53"},h:{code_head:"v59"},m:{code_head:"vf",stem_offset:0},r:{code_head:"v31",rest:!0,position:"B/5",dot_shiftY:.5},s:{getWidth:()=>Flow.SLASH_NOTEHEAD_WIDTH,position:"B/4"}}},1:{common:{getWidth(B=Flow.DEFAULT_NOTATION_FONT_SCALE){return new Glyph(this.code_head||"v1d",B).getMetrics().width},stem:!1,stem_offset:0,flag:!1,stem_up_extension:-Flow.STEM_HEIGHT,stem_down_extension:-Flow.STEM_HEIGHT,tabnote_stem_up_extension:-Flow.STEM_HEIGHT,tabnote_stem_down_extension:-Flow.STEM_HEIGHT,dot_shiftY:0,line_above:0,line_below:0},type:{n:{code_head:"v1d"},h:{code_head:"v46"},m:{code_head:"v92",stem_offset:-3},r:{code_head:"v5c",rest:!0,position:"D/5",dot_shiftY:.5},s:{getWidth:()=>Flow.SLASH_NOTEHEAD_WIDTH,position:"B/4"}}},2:{common:{getWidth(B=Flow.DEFAULT_NOTATION_FONT_SCALE){return new Glyph(this.code_head||"v81",B).getMetrics().width},stem:!0,stem_offset:0,flag:!1,stem_up_extension:0,stem_down_extension:0,tabnote_stem_up_extension:0,tabnote_stem_down_extension:0,dot_shiftY:0,line_above:0,line_below:0},type:{n:{code_head:"v81"},h:{code_head:"v2d"},m:{code_head:"v95",stem_offset:-3},r:{code_head:"vc",stem:!1,rest:!0,position:"B/4",dot_shiftY:-.5},s:{getWidth:()=>Flow.SLASH_NOTEHEAD_WIDTH,position:"B/4"}}},4:{common:{getWidth(B=Flow.DEFAULT_NOTATION_FONT_SCALE){return new Glyph(this.code_head||"vb",B).getMetrics().width},stem:!0,stem_offset:0,flag:!1,stem_up_extension:0,stem_down_extension:0,tabnote_stem_up_extension:0,tabnote_stem_down_extension:0,dot_shiftY:0,line_above:0,line_below:0},type:{n:{code_head:"vb"},h:{code_head:"v22"},m:{code_head:"v3e",stem_offset:-3},r:{code_head:"v7c",stem:!1,rest:!0,position:"B/4",dot_shiftY:-.5,line_above:1.5,line_below:1.5},s:{getWidth:()=>Flow.SLASH_NOTEHEAD_WIDTH,position:"B/4"}}},8:{common:{getWidth(B=Flow.DEFAULT_NOTATION_FONT_SCALE){return new Glyph(this.code_head||"vb",B).getMetrics().width},stem:!0,stem_offset:0,flag:!0,beam_count:1,code_flag_upstem:"v54",code_flag_downstem:"v9a",stem_up_extension:0,stem_down_extension:0,tabnote_stem_up_extension:0,tabnote_stem_down_extension:0,dot_shiftY:0,line_above:0,line_below:0},type:{n:{code_head:"vb"},h:{code_head:"v22"},m:{code_head:"v3e"},r:{code_head:"va5",stem:!1,flag:!1,rest:!0,position:"B/4",dot_shiftY:-.5,line_above:1,line_below:1},s:{getWidth:()=>Flow.SLASH_NOTEHEAD_WIDTH,position:"B/4"}}},16:{common:{beam_count:2,getWidth(B=Flow.DEFAULT_NOTATION_FONT_SCALE){return new Glyph(this.code_head||"vb",B).getMetrics().width},stem:!0,stem_offset:0,flag:!0,code_flag_upstem:"v3f",code_flag_downstem:"v8f",stem_up_extension:0,stem_down_extension:0,tabnote_stem_up_extension:0,tabnote_stem_down_extension:0,dot_shiftY:0,line_above:0,line_below:0},type:{n:{code_head:"vb"},h:{code_head:"v22"},m:{code_head:"v3e"},r:{code_head:"v3c",stem:!1,flag:!1,rest:!0,position:"B/4",dot_shiftY:-.5,line_above:1,line_below:2},s:{getWidth:()=>Flow.SLASH_NOTEHEAD_WIDTH,position:"B/4"}}},32:{common:{beam_count:3,getWidth(B=Flow.DEFAULT_NOTATION_FONT_SCALE){return new Glyph(this.code_head||"vb",B).getMetrics().width},stem:!0,stem_offset:0,flag:!0,code_flag_upstem:"v47",code_flag_downstem:"v2a",stem_up_extension:9,stem_down_extension:9,tabnote_stem_up_extension:8,tabnote_stem_down_extension:5,dot_shiftY:0,line_above:0,line_below:0},type:{n:{code_head:"vb"},h:{code_head:"v22"},m:{code_head:"v3e"},r:{code_head:"v55",stem:!1,flag:!1,rest:!0,position:"B/4",dot_shiftY:-1.5,line_above:2,line_below:2},s:{getWidth:()=>Flow.SLASH_NOTEHEAD_WIDTH,position:"B/4"}}},64:{common:{beam_count:4,getWidth(B=Flow.DEFAULT_NOTATION_FONT_SCALE){return new Glyph(this.code_head||"vb",B).getMetrics().width},stem:!0,stem_offset:0,flag:!0,code_flag_upstem:"va9",code_flag_downstem:"v58",stem_up_extension:13,stem_down_extension:13,tabnote_stem_up_extension:12,tabnote_stem_down_extension:9,dot_shiftY:0,line_above:0,line_below:0},type:{n:{code_head:"vb"},h:{code_head:"v22"},m:{code_head:"v3e"},r:{code_head:"v38",stem:!1,flag:!1,rest:!0,position:"B/4",dot_shiftY:-1.5,line_above:2,line_below:3},s:{getWidth:()=>Flow.SLASH_NOTEHEAD_WIDTH,position:"B/4"}}},128:{common:{beam_count:5,getWidth(B=Flow.DEFAULT_NOTATION_FONT_SCALE){return new Glyph(this.code_head||"vb",B).getMetrics().width},stem:!0,stem_offset:0,flag:!0,code_flag_upstem:"v9b",code_flag_downstem:"v30",stem_up_extension:22,stem_down_extension:22,tabnote_stem_up_extension:21,tabnote_stem_down_extension:18,dot_shiftY:0,line_above:0,line_below:0},type:{n:{code_head:"vb"},h:{code_head:"v22"},m:{code_head:"v3e"},r:{code_head:"vaa",stem:!1,flag:!1,rest:!0,position:"B/4",dot_shiftY:1.5,line_above:3,line_below:3},s:{getWidth:()=>Flow.SLASH_NOTEHEAD_WIDTH,position:"B/4"}}}};Flow.smufl={};Flow.smufl.to_code_points={bracketTop:"v1b",bracketBottom:"v10",barlineTick:"v6f",segno:"v8c",coda:"v4d",gClef:"v83",cClef:"vad",fClef:"v79",unpitchedPercussionClef1:"v59","6stringTabClef":"v2f",timeSig0:"v0",timeSig1:"v1",timeSig2:"v2",timeSig3:"v3",timeSig4:"v4",timeSig5:"v5",timeSig6:"v6",timeSig7:"v7",timeSig8:"v8",timeSig9:"v9",timeSigCommon:"v41",timeSigCutCommon:"vb6",noteheadDoubleWhole:"v53",noteheadWhole:"v1d",noteheadHalf:"v81",noteheadBlack:"vb",noteheadXWhole:"v92",noteheadXHalf:"v95",noteheadXBlack:"v3e",noteheadCircleX:"v3b",noteheadTriangleUpWhole:"v49",noteheadTriangleUpHalf:"v93",noteheadTriangleUpBlack:"v40",noteheadDiamondWhole:"v46",noteheadDiamondHalf:"v2d",noteheadDiamondBlack:"v22",augmentationDot:"v23",tremolo1:"v74",flag8thUp:"v54",flag8thDown:"v9a",flag16thUp:"v3f",flag16thDown:"v8f",flag32ndUp:"v47",flag32ndDown:"v2a",flag64thUp:"va9",flag64thDown:"v58",flag128thUp:"v9b",flag128thDown:"v30",accidentalFlat:"v44",accidentalNatural:"v4e",accidentalSharp:"v18",accidentalDoubleSharp:"v7f",accidentalDoubleFlat:"v26",accidentalParensLeft:"v9c",accidentalParensRight:"v84",accidentalQuarterToneFlatStein:"vab",accidentalThreeQuarterTonesFlatZimmermann:"v9e",accidentalQuarterToneSharpStein:"v78",accidentalThreeQuarterTonesSharpStein:"v51",accidentalBuyukMucennebFlat:"v39",accidentalBakiyeFlat:"vb7",accidentalKomaSharp:"v51",accidentalKucukMucennebSharp:"v8d",accidentalKoron:"vd1",accidentalSori:"vd0",articAccentAbove:"v42",articAccentBelow:"v42",articTenutoAbove:"v25",articTenutoBelow:"v25",articStaccatoAbove:"v23",articStaccatoBelow:"v23",articStaccatissimoAbove:"v28",articMarcatoAbove:"va",fermataAbove:"v43",fermataBelow:"v5b",breathMarkComma:"v6c",breathMarkUpbow:"v8a",caesura:"v34",caesuraCurved:"v4b",restMaxima:"v59",restDoubleWhole:"v31",restWhole:"v5c",restHalf:"vc",restQuarter:"v7c",rest8th:"va5",rest16th:"v3c",rest32nd:"v55",rest64th:"v38",rest128th:"vaa",dynamicPiano:"vbf",dynamicMezzo:"v62",dynamicForte:"vba",dynamicRinforzando:"vba",dynamicSforzando:"v4a",dynamicZ:"v80",ornamentTrill:"v1f",ornamentTurn:"v72",ornamentTurnSlash:"v33",ornamentMordent:"v45",ornamentMordentInverted:"v1e",ornamentTremblement:"v86",ornamentPrecompAppoggTrill:"v20",ornamentPrecompSlideTrillDAnglebert:"v60",ornamentPrecompSlideTrillBach:"v29",ornamentPrecompTrillSuffixDandrieu:"v6d",ornamentPrecompDoubleCadenceUpperPrefix:"vb4",ornamentPrecompDoubleCadenceUpperPrefixTurn:"v68",ornamentPrecompTrillLowerSuffix:"v2c",stringsDownBow:"v94",stringsUpBow:"v75",stringsHarmonic:"vb9",pluckedSnapPizzicatoAbove:"v94",pluckedLeftHandPizzicato:"v8b",keyboardPedalPed:"v36",keyboardPedalUp:"v5d",pictChokeCymbal:"vb3",wiggleArpeggiatoUp:"va3",arrowheadBlackUp:"vc3",arrowheadBlackDown:"v52"};Flow.TIME4_4={num_beats:4,beat_value:4,resolution:Flow.RESOLUTION};class CanvasContext{static get WIDTH(){return 600}static get HEIGHT(){return 400}static get CANVAS_BROWSER_SIZE_LIMIT(){return 32767}static SanitizeCanvasDims(R,F){return Math.max(R,F)>this.CANVAS_BROWSER_SIZE_LIMIT&&(Vex.W("Canvas dimensions exceed browser limit. Cropping to "+this.CANVAS_BROWSER_SIZE_LIMIT),R>this.CANVAS_BROWSER_SIZE_LIMIT&&(R=this.CANVAS_BROWSER_SIZE_LIMIT),F>this.CANVAS_BROWSER_SIZE_LIMIT&&(F=this.CANVAS_BROWSER_SIZE_LIMIT)),[R,F]}constructor(R){this.vexFlowCanvasContext=R,R.canvas?this.canvas=R.canvas:this.canvas={width:CanvasContext.WIDTH,height:CanvasContext.HEIGHT}}clear(){this.vexFlowCanvasContext.clearRect(0,0,this.canvas.width,this.canvas.height)}openGroup(){}closeGroup(){}add(){}setFont(R,F,D){return this.vexFlowCanvasContext.font=(D||"")+" "+F+"pt "+R,this}setRawFont(R){return this.vexFlowCanvasContext.font=R,this}setFillStyle(R){return this.vexFlowCanvasContext.fillStyle=R,this}setBackgroundFillStyle(R){return this.background_fillStyle=R,this}setStrokeStyle(R){return this.vexFlowCanvasContext.strokeStyle=R,this}setShadowColor(R){return this.vexFlowCanvasContext.shadowColor=R,this}setShadowBlur(R){return this.vexFlowCanvasContext.shadowBlur=R,this}setLineWidth(R){return this.vexFlowCanvasContext.lineWidth=R,this}setLineCap(R){return this.vexFlowCanvasContext.lineCap=R,this}setLineDash(R){return this.vexFlowCanvasContext.lineDash=R,this}scale(R,F){return this.vexFlowCanvasContext.scale(parseFloat(R),parseFloat(F))}resize(R,F){return[R,F]=this.SanitizeCanvasDims(parseInt(R,10),parseInt(F,10)),this.vexFlowCanvasContext.resize(R,F)}rect(R,F,D,G){return this.vexFlowCanvasContext.rect(R,F,D,G)}fillRect(R,F,D,G){return this.vexFlowCanvasContext.fillRect(R,F,D,G)}clearRect(R,F,D,G){return this.vexFlowCanvasContext.clearRect(R,F,D,G)}beginPath(){return this.vexFlowCanvasContext.beginPath()}moveTo(R,F){return this.vexFlowCanvasContext.moveTo(R,F)}lineTo(R,F){return this.vexFlowCanvasContext.lineTo(R,F)}bezierCurveTo(R,F,D,G,U,W){return this.vexFlowCanvasContext.bezierCurveTo(R,F,D,G,U,W)}quadraticCurveTo(R,F,D,G){return this.vexFlowCanvasContext.quadraticCurveTo(R,F,D,G)}arc(R,F,D,G,U,W){return this.vexFlowCanvasContext.arc(R,F,D,G,U,W)}glow(){return this.vexFlowCanvasContext.glow()}fill(){return this.vexFlowCanvasContext.fill()}stroke(){return this.vexFlowCanvasContext.stroke()}closePath(){return this.vexFlowCanvasContext.closePath()}measureText(R){return this.vexFlowCanvasContext.measureText(R)}fillText(R,F,D){return this.vexFlowCanvasContext.fillText(R,F,D)}save(){return this.vexFlowCanvasContext.save()}restore(){return this.vexFlowCanvasContext.restore()}}class RaphaelContext{constructor(R){this.element=R,this.paper=Raphael(R),this.path="",this.pen={x:0,y:0},this.lineWidth=1,this.state={scale:{x:1,y:1},font_family:"Arial",font_size:8,font_weight:800},this.attributes={"stroke-width":.3,fill:"black",stroke:"black",font:"10pt Arial"},this.background_attributes={"stroke-width":0,fill:"white",stroke:"white",font:"10pt Arial"},this.shadow_attributes={width:0,color:"black"},this.state_stack=[]}openGroup(){}closeGroup(){}add(){}setFont(R,F,D){return this.state.font_family=R,this.state.font_size=F,this.state.font_weight=D,this.attributes.font=(this.state.font_weight||"")+" "+this.state.font_size*this.state.scale.x+"pt "+this.state.font_family,this}setRawFont(R){return this.attributes.font=R,this}setFillStyle(R){return this.attributes.fill=R,this}setBackgroundFillStyle(R){return this.background_attributes.fill=R,this.background_attributes.stroke=R,this}setStrokeStyle(R){return this.attributes.stroke=R,this}setShadowColor(R){return this.shadow_attributes.color=R,this}setShadowBlur(R){return this.shadow_attributes.width=R,this}setLineWidth(R){this.attributes["stroke-width"]=R,this.lineWidth=R}setLineDash(){return this}setLineCap(){return this}scale(R,F){return this.state.scale={x:R,y:F},this.attributes.transform="S"+R+","+F+",0,0",this.attributes.scale=R+","+F+",0,0",this.attributes.font=this.state.font_size*this.state.scale.x+"pt "+this.state.font_family,this.background_attributes.transform="S"+R+","+F+",0,0",this.background_attributes.font=this.state.font_size*this.state.scale.x+"pt "+this.state.font_family,this}clear(){this.paper.clear()}resize(R,F){return this.element.style.width=R,this.paper.setSize(R,F),this}setViewBox(R){this.paper.canvas.setAttribute("viewBox",R)}rect(R,F,D,G){return G<0&&(F+=G,G=-G),this.paper.rect(R,F,D-.5,G-.5).attr(this.attributes).attr("fill","none").attr("stroke-width",this.lineWidth),this}fillRect(R,F,D,G){return G<0&&(F+=G,G=-G),this.paper.rect(R,F,D-.5,G-.5).attr(this.attributes),this}clearRect(R,F,D,G){return G<0&&(F+=G,G=-G),this.paper.rect(R,F,D-.5,G-.5).attr(this.background_attributes),this}beginPath(){return this.path="",this.pen.x=0,this.pen.y=0,this}moveTo(R,F){return this.path+="M"+R+","+F,this.pen.x=R,this.pen.y=F,this}lineTo(R,F){return this.path+="L"+R+","+F,this.pen.x=R,this.pen.y=F,this}bezierCurveTo(R,F,D,G,U,W){return this.path+="C"+R+","+F+","+D+","+G+","+U+","+W,this.pen.x=U,this.pen.y=W,this}quadraticCurveTo(R,F,D,G){return this.path+="Q"+R+","+F+","+D+","+G,this.pen.x=D,this.pen.y=G,this}arc(R,F,D,G,U,W){function q(Q){for(;Q<0;)Q+=Math.PI*2;for(;Q>Math.PI*2;)Q-=Math.PI*2;return Q}if(G=q(G),U=q(U),G>U){const Q=G;G=U,U=Q,W=!W}const Y=U-G;return Y>Math.PI?(this.arcHelper(R,F,D,G,G+Y/2,W),this.arcHelper(R,F,D,G+Y/2,U,W)):this.arcHelper(R,F,D,G,U,W),this}arcHelper(R,F,D,G,U,W){const q=R+D*Math.cos(G),Y=F+D*Math.sin(G),Q=R+D*Math.cos(U),Z=F+D*Math.sin(U);let K=0,J=0;W?(J=1,U-GMath.PI&&(K=1),this.path+="M"+q+","+Y+",A"+D+","+D+",0,"+K+","+J+","+Q+","+Z+"M"+this.pen.x+","+this.pen.y}glow(){const R=this.paper.set();if(this.shadow_attributes.width>0){const F=this.shadow_attributes,D=F.width/2;for(let G=1;G<=D;G++)R.push(this.paper.path(this.path).attr({stroke:F.color,"stroke-linejoin":"round","stroke-linecap":"round","stroke-width":+(F.width/D*G).toFixed(3),opacity:+((F.opacity||.3)/D).toFixed(3),transform:this.attributes.transform,scale:this.attributes.scale}))}return R}fill(){const R=this.paper.path(this.path).attr(this.attributes).attr("stroke-width",0);return this.glow(R),this}stroke(){const R=this.lineWidth*(this.state.scale.x+this.state.scale.y)/2,F=this.paper.path(this.path).attr(this.attributes).attr("fill","none").attr("stroke-width",R);return this.glow(F),this}closePath(){return this.path+="Z",this}measureText(R){const F=this.paper.text(0,0,R).attr(this.attributes).attr("fill","none").attr("stroke","none"),D=F.getBBox();return F.remove(),{width:D.width,height:D.height}}fillText(R,F,D){return this.paper.text(F+this.measureText(R).width/2,D-this.state.font_size/(2.25*this.state.scale.y),R).attr(this.attributes),this}save(){return this.state_stack.push({state:{font_family:this.state.font_family},attributes:{font:this.attributes.font,fill:this.attributes.fill,stroke:this.attributes.stroke,"stroke-width":this.attributes["stroke-width"]},shadow_attributes:{width:this.shadow_attributes.width,color:this.shadow_attributes.color}}),this}restore(){const R=this.state_stack.pop();return this.state.font_family=R.state.font_family,this.attributes.font=R.attributes.font,this.attributes.fill=R.attributes.fill,this.attributes.stroke=R.attributes.stroke,this.attributes["stroke-width"]=R.attributes["stroke-width"],this.shadow_attributes.width=R.shadow_attributes.width,this.shadow_attributes.color=R.shadow_attributes.color,this}}const attrNamesToIgnoreMap={path:{x:!0,y:!0,width:!0,height:!0},rect:{},text:{width:!0,height:!0}};{const B={"font-family":!0,"font-weight":!0,"font-style":!0,"font-size":!0};Vex.Merge(attrNamesToIgnoreMap.rect,B),Vex.Merge(attrNamesToIgnoreMap.path,B)}class SVGContext{constructor(R){this.element=R,this.svgNS="http://www.w3.org/2000/svg";const F=this.create("svg");this.element.appendChild(F),this.svg=F,this.groups=[this.svg],this.parent=this.svg,this.path="",this.pen={x:NaN,y:NaN},this.lineWidth=1,this.state={scale:{x:1,y:1},"font-family":"Arial","font-size":"8pt","font-weight":"normal"},this.attributes={"stroke-width":.3,fill:"black",stroke:"black","stroke-dasharray":"none","font-family":"Arial","font-size":"10pt","font-weight":"normal","font-style":"normal"},this.background_attributes={"stroke-width":0,fill:"white",stroke:"white","stroke-dasharray":"none","font-family":"Arial","font-size":"10pt","font-weight":"normal","font-style":"normal"},this.shadow_attributes={width:0,color:"black"},this.state_stack=[],this.iePolyfill()}create(R){return document.createElementNS(this.svgNS,R)}openGroup(R,F,D){const G=this.create("g");return this.groups.push(G),this.parent.appendChild(G),this.parent=G,R&&G.setAttribute("class",Vex.Prefix(R)),F&&G.setAttribute("id",Vex.Prefix(F)),D&&D.pointerBBox&&G.setAttribute("pointer-events","bounding-box"),G}closeGroup(){this.groups.pop(),this.parent=this.groups[this.groups.length-1]}add(R){this.parent.appendChild(R)}iePolyfill(){typeof navigator!="undefined"&&(this.ie=/MSIE 9/i.test(navigator.userAgent)||/MSIE 10/i.test(navigator.userAgent)||/rv:11\.0/i.test(navigator.userAgent)||/Trident/i.test(navigator.userAgent))}setFont(R,F,D){let G=!1,U=!1,W="normal";typeof D=="string"&&(D.indexOf("italic")!==-1&&(D=D.replace(/italic/g,""),U=!0),D.indexOf("bold")!==-1&&(D=D.replace(/bold/g,""),G=!0),D=D.replace(/ /g,"")),D=G?"bold":D,D=typeof D=="undefined"||D===""?"normal":D,W=U?"italic":W;const q={"font-family":R,"font-size":F+"pt","font-weight":D,"font-style":W};return this.fontSize=Number(F),Vex.Merge(this.attributes,q),Vex.Merge(this.state,q),this}setRawFont(R){R=R.trim();const F=R.split(" ");return this.attributes["font-family"]=F[1],this.state["font-family"]=F[1],this.attributes["font-size"]=F[0],this.state["font-size"]=F[0],this.fontSize=Number(F[0].match(/\d+/)),this}setFillStyle(R){return this.attributes.fill=R,this}setBackgroundFillStyle(R){return this.background_attributes.fill=R,this.background_attributes.stroke=R,this}setStrokeStyle(R){return this.attributes.stroke=R,this}setShadowColor(R){return this.shadow_attributes.color=R,this}setShadowBlur(R){return this.shadow_attributes.width=R,this}setLineWidth(R){this.attributes["stroke-width"]=R,this.lineWidth=R}setLineDash(R){if(Object.prototype.toString.call(R)==="[object Array]")return R=R.join(", "),this.attributes["stroke-dasharray"]=R,this;throw new Vex.RERR("ArgumentError","lineDash must be an array of integers.")}setLineCap(R){return this.attributes["stroke-linecap"]=R,this}resize(R,F){this.width=R,this.height=F,this.element.style.width=R;const D={width:R,height:F};return this.applyAttributes(this.svg,D),this.scale(this.state.scale.x,this.state.scale.y),this}scale(R,F){this.state.scale={x:R,y:F};const D=this.width/R,G=this.height/F;return this.setViewBox(0,0,D,G),this}setViewBox(...R){if(R.length===1){const[F]=R;this.svg.setAttribute("viewBox",F)}else{const[F,D,G,U]=R,W=F+" "+D+" "+G+" "+U;this.svg.setAttribute("viewBox",W)}}applyAttributes(R,F){const D=attrNamesToIgnoreMap[R.nodeName];return Object.keys(F).forEach(G=>{var U;D&&D[G]||!G||!F[G]||G==="d"&&((U=F[G])==null?void 0:U.indexOf("NaN"))>-1||R.setAttributeNS(null,G,F[G])}),R}clear(){for(;this.svg.lastChild;)this.svg.removeChild(this.svg.lastChild);this.scale(this.state.scale.x,this.state.scale.y)}rect(R,F,D,G,U){G<0&&(F+=G,G*=-1);const W=this.create("rect");return typeof U=="undefined"&&(U={fill:"none","stroke-width":this.lineWidth,stroke:"black"}),Vex.Merge(U,{x:R,y:F,width:D,height:G}),this.applyAttributes(W,U),this.add(W),this}fillRect(R,F,D,G){return G<0&&(F+=G,G*=-1),this.rect(R,F,D,G,this.attributes),this}clearRect(R,F,D,G){return this.rect(R,F,D,G,this.background_attributes),this}beginPath(){return this.path="",this.pen.x=NaN,this.pen.y=NaN,this}moveTo(R,F){return this.path+="M"+R+" "+F,this.pen.x=R,this.pen.y=F,this}lineTo(R,F){return this.path+="L"+R+" "+F,this.pen.x=R,this.pen.y=F,this}bezierCurveTo(R,F,D,G,U,W){return this.path+="C"+R+" "+F+","+D+" "+G+","+U+" "+W,this.pen.x=U,this.pen.y=W,this}quadraticCurveTo(R,F,D,G){return this.path+="Q"+R+" "+F+","+D+" "+G,this.pen.x=D,this.pen.y=G,this}arc(R,F,D,G,U,W){function q(Q){for(;Q<0;)Q+=Math.PI*2;for(;Q>Math.PI*2;)Q-=Math.PI*2;return Q}if(G=q(G),U=q(U),G>U){const Q=G;G=U,U=Q,W=!W}const Y=U-G;return Y>Math.PI?(this.arcHelper(R,F,D,G,G+Y/2,W),this.arcHelper(R,F,D,G+Y/2,U,W)):this.arcHelper(R,F,D,G,U,W),this}arcHelper(R,F,D,G,U,W){const q=R+D*Math.cos(G),Y=F+D*Math.sin(G),Q=R+D*Math.cos(U),Z=F+D*Math.sin(U);let K=0,J=0;W?(J=1,U-GMath.PI&&(K=1),this.path+="M"+q+" "+Y+" A"+D+" "+D+" 0 "+K+" "+J+" "+Q+" "+Z,!isNaN(this.pen.x)&&!isNaN(this.pen.y)&&(this.peth+="M"+this.pen.x+" "+this.pen.y)}closePath(){return this.path+="Z",this}glow(){if(this.shadow_attributes.width>0){const R=this.shadow_attributes,F=R.width/2;for(let D=1;D<=F;D++){const G={stroke:R.color,"stroke-linejoin":"round","stroke-linecap":"round","stroke-width":+(R.width*.4/F*D).toFixed(3),opacity:+((R.opacity||.3)/F).toFixed(3)},U=this.create("path");G.d=this.path,this.applyAttributes(U,G),this.add(U)}}return this}fill(R){this.glow();const F=this.create("path");let D=R;return typeof R=="undefined"?(R={},Vex.Merge(R,this.attributes),R.stroke="none",D=R):(D=R,Vex.Merge(D,this.attributes),R.class&&(D.class=R.class),R.id&&(D.id=R.id)),R.d=this.path,this.applyAttributes(F,R),this.add(F),this}stroke(R=void 0){this.glow();const F=this.create("path"),D={};return Vex.Merge(D,this.attributes),R&&Vex.Merge(D,R),D.fill="none",D["stroke-width"]=this.lineWidth,D.d=this.path,this.applyAttributes(F,D),this.add(F),this}measureText(R){const F=this.create("text");if(typeof F.getBBox!="function")return{x:0,y:0,width:0,height:0};F.textContent=R,this.applyAttributes(F,this.attributes),this.svg.appendChild(F);let D=F.getBBox();return this.ie&&R!==""&&this.attributes["font-style"]==="italic"&&(D=this.ieMeasureTextFix(D,R)),this.svg.removeChild(F),D}ieMeasureTextFix(R){const F=Number(this.fontSize),D=1.196,G=1.9598,U=D*F+G,W=R.width-U,q=R.height-1.5;return{x:R.x,y:R.y,width:W,height:q}}fillText(R,F,D){if(!R||R.length<=0)return;const G={};Vex.Merge(G,this.attributes),G.stroke="none",G.x=F,G.y=D;const U=this.create("text");U.textContent=R,this.applyAttributes(U,G),this.add(U)}save(){return this.state_stack.push({state:{"font-family":this.state["font-family"],"font-weight":this.state["font-weight"],"font-style":this.state["font-style"],"font-size":this.state["font-size"],scale:this.state.scale},attributes:{"font-family":this.attributes["font-family"],"font-weight":this.attributes["font-weight"],"font-style":this.attributes["font-style"],"font-size":this.attributes["font-size"],fill:this.attributes.fill,stroke:this.attributes.stroke,"stroke-width":this.attributes["stroke-width"],"stroke-dasharray":this.attributes["stroke-dasharray"]},shadow_attributes:{width:this.shadow_attributes.width,color:this.shadow_attributes.color},lineWidth:this.lineWidth}),this}restore(){const R=this.state_stack.pop();return this.state["font-family"]=R.state["font-family"],this.state["font-weight"]=R.state["font-weight"],this.state["font-style"]=R.state["font-style"],this.state["font-size"]=R.state["font-size"],this.state.scale=R.state.scale,this.attributes["font-family"]=R.attributes["font-family"],this.attributes["font-weight"]=R.attributes["font-weight"],this.attributes["font-style"]=R.attributes["font-style"],this.attributes["font-size"]=R.attributes["font-size"],this.attributes.fill=R.attributes.fill,this.attributes.stroke=R.attributes.stroke,this.attributes["stroke-width"]=R.attributes["stroke-width"],this.attributes["stroke-dasharray"]=R.attributes["stroke-dasharray"],this.shadow_attributes.width=R.shadow_attributes.width,this.shadow_attributes.color=R.shadow_attributes.color,this.lineWidth=R.lineWidth,this}}let lastContext=null;class Renderer{static get Backends(){return{CANVAS:1,RAPHAEL:2,SVG:3,VML:4}}static get LineEndType(){return{NONE:1,UP:2,DOWN:3}}static get USE_CANVAS_PROXY(){return!1}static get lastContext(){return lastContext}static set lastContext(R){lastContext=R}static buildContext(R,F,D,G,U){const W=new Renderer(R,F);D&&G&&W.resize(D,G),U||(U="#FFF");const q=W.getContext();return q.setBackgroundFillStyle(U),Renderer.lastContext=q,q}static getCanvasContext(R,F,D,G){return Renderer.buildContext(R,Renderer.Backends.CANVAS,F,D,G)}static getRaphaelContext(R,F,D,G){return Renderer.buildContext(R,Renderer.Backends.RAPHAEL,F,D,G)}static getSVGContext(R,F,D,G){return Renderer.buildContext(R,Renderer.Backends.SVG,F,D,G)}static bolsterCanvasContext(R){if(Renderer.USE_CANVAS_PROXY)return new CanvasContext(R);const F=["clear","setFont","setRawFont","setFillStyle","setBackgroundFillStyle","setStrokeStyle","setShadowColor","setShadowBlur","setLineWidth","setLineCap","setLineDash","openGroup","closeGroup","getGroup"];return R.vexFlowCanvasContext=R,F.forEach(D=>{R[D]=R[D]||CanvasContext.prototype[D]}),R}static drawDashedLine(R,F,D,G,U,W){R.beginPath();const q=G-F,Y=U-D,Q=Math.atan2(Y,q);let Z=F,K=D;R.moveTo(F,D);let J=0,ie=!0;for(;!((q<0?Z<=G:Z>=G)&&(Y<0?K<=U:K>=U));){const ne=W[J++%W.length],se=Z+Math.cos(Q)*ne;Z=q<0?Math.max(G,se):Math.min(G,se);const re=K+Math.sin(Q)*ne;K=Y<0?Math.max(U,re):Math.min(U,re),ie?R.lineTo(Z,K):R.moveTo(Z,K),ie=!ie}R.closePath(),R.stroke()}constructor(R,F){if(this.elementId=R,!this.elementId)throw new Vex.RERR("BadArgument","Invalid id for renderer.");if(this.element=document.getElementById(R),this.element||(this.element=R),this.ctx=null,this.paper=null,this.backend=F,this.backend===Renderer.Backends.CANVAS){if(!this.element.getContext)throw new Vex.RERR("BadElement",`Can't get canvas context from element: ${R}`);this.ctx=Renderer.bolsterCanvasContext(this.element.getContext("2d"))}else if(this.backend===Renderer.Backends.RAPHAEL)this.ctx=new RaphaelContext(this.element);else if(this.backend===Renderer.Backends.SVG)this.ctx=new SVGContext(this.element);else throw new Vex.RERR("InvalidBackend",`No support for backend: ${this.backend}`)}resize(R,F){if(this.backend===Renderer.Backends.CANVAS){if(!this.element.getContext)throw new Vex.RERR("BadElement",`Can't get canvas context from element: ${this.elementId}`);[R,F]=CanvasContext.SanitizeCanvasDims(R,F);const D=window.devicePixelRatio||1;this.element.width=R*D,this.element.height=F*D,this.element.style.width=R+"px",this.element.style.height=F+"px",this.ctx=Renderer.bolsterCanvasContext(this.element.getContext("2d")),this.ctx.scale(D,D)}else this.ctx.resize(R,F);return this}getContext(){return this.ctx}}function L$j(...B){Stem.DEBUG&&Vex.L("Vex.Flow.Stem",B)}class Stem extends Element$1{static get CATEGORY(){return"stem"}static get UP(){return 1}static get DOWN(){return-1}static get WIDTH(){return Flow.STEM_WIDTH}static get HEIGHT(){return Flow.STEM_HEIGHT}constructor(R={}){super(),this.setAttribute("type","Stem"),this.x_begin=R.x_begin||0,this.x_end=R.x_end||0,this.y_top=R.y_top||0,this.y_bottom=R.y_bottom||0,this.stem_extension=R.stem_extension||0,this.stem_direction=R.stem_direction||0,this.hide=R.hide||!1,this.isStemlet=R.isStemlet||!1,this.stemletHeight=R.stemletHeight||0,this.resetHeight=0,this.renderHeightAdjustment=0,this.setOptions(R)}setResetHeight(R){this.resetHeight=R}setOptions(R){this.stem_up_y_offset=R.stem_up_y_offset||0,this.stem_down_y_offset=R.stem_down_y_offset||0}setNoteHeadXBounds(R,F){return this.x_begin=R,this.x_end=F,this}setDirection(R){this.stem_direction=R}setExtension(R){this.stem_extension=R}getExtension(){return this.stem_extension}setYBounds(R,F){this.y_top=R,this.y_bottom=F}getCategory(){return Stem.CATEGORY}getHeight(){const R=this.stem_direction===Stem.UP?this.stem_up_y_offset:this.stem_down_y_offset;return(this.y_bottom-this.y_top)*this.stem_direction+(Stem.HEIGHT-R+this.stem_extension)*this.stem_direction}getBoundingBox(){throw new Vex.RERR("NotImplemented","getBoundingBox() not implemented.")}getExtents(){const R=this.stem_direction===Stem.UP,F=[this.y_top,this.y_bottom],D=Stem.HEIGHT+this.stem_extension,G=(R?Math.min:Math.max)(...F),U=(R?Math.max:Math.min)(...F);return{topY:G+D*-this.stem_direction+this.resetHeight*-this.stem_direction,baseY:U}}setVisibility(R){return this.hide=!R,this}setStemlet(R,F){return this.isStemlet=R,this.stemletHeight=F,this}draw(){if(this.setRendered(),this.hide)return;const R=this.checkContext();let F,D;const G=this.stem_direction;G===Stem.DOWN?(F=this.x_begin,D=this.y_top+this.stem_down_y_offset):(F=this.x_end,D=this.y_bottom-this.stem_up_y_offset);const U=this.getHeight();L$j("Rendering stem - ","Top Y: ",this.y_top,"Bottom Y: ",this.y_bottom);const W=this.isStemlet?U-this.stemletHeight*this.stem_direction:0;if(R.save(),this.applyStyle(R),R.beginPath(),R.setLineWidth(Stem.WIDTH),R.moveTo(F,D-W),R.lineTo(F,D-U-this.renderHeightAdjustment*G-this.resetHeight*G),R.svg){const q={class:Vex.Prefix("stem")};this.id&&(q.id=this.id),R.stroke(q)}else R.stroke();this.restoreStyle(R),R.restore()}}class Tuplet$1 extends Element$1{static get LOCATION_TOP(){return 1}static get LOCATION_BOTTOM(){return-1}static get NESTING_OFFSET(){return 15}constructor(R,F){if(super(),this.setAttribute("type","Tuplet"),!R||!R.length)throw new Vex.RuntimeError("BadArguments","No notes provided for tuplet.");this.options=Vex.Merge({},F),this.notes=R,this.num_notes="num_notes"in this.options?this.options.num_notes:R.length,this.options.beats_occupied&&this.beatsOccupiedDeprecationWarning(),this.notes_occupied=this.options.notes_occupied||this.options.beats_occupied||2,"bracketed"in this.options?this.bracketed=this.options.bracketed:this.bracketed=R.some(D=>D.beam===null),this.ratioed="ratioed"in this.options?this.options.ratioed:Math.abs(this.notes_occupied-this.num_notes)>1,this.point=28,this.y_pos=16,this.x_pos=100,this.width=200,this.location=this.options.location||Tuplet$1.LOCATION_TOP,Formatter.AlignRestsToNotes(R,!0,!0),this.resolveGlyphs(),this.attach()}attach(){for(let R=0;R=1;)this.numerator_glyphs.unshift(new Glyph("v"+R%10,this.point)),R=parseInt(R/10,10);for(this.denom_glyphs=[],R=this.notes_occupied;R>=1;)this.denom_glyphs.unshift(new Glyph("v"+R%10,this.point)),R=parseInt(R/10,10)}getNestedTupletCount(){const R=this.location,F=this.notes[0];let D=U(F,R),G=U(F,R);function U(W,q){return W.tupletStack.filter(Y=>Y.location===q).length}return this.notes.forEach(W=>{const q=U(W,R);D=q>D?q:D,G=qG&&(G=W)}}return G+R+F}draw(){this.checkContext(),this.setRendered();const R=this.notes[0],F=this.notes[this.notes.length-1];this.bracketed?(this.x_pos=R.getTieLeftX()-5,this.width=F.getTieRightX()-this.x_pos+5):(this.x_pos=R.getStemX(),this.width=F.getStemX()-this.x_pos),this.y_pos=this.getYPosition();const D=(Y,Q)=>Y+Q.getMetrics().width;let G=this.numerator_glyphs.reduce(D,0);this.ratioed&&(G=this.denom_glyphs.reduce(D,G),G+=this.point*.32);const W=this.x_pos+this.width/2-G/2;if(this.bracketed){const Y=this.width/2-G/2-5;Y>0&&(this.context.fillRect(this.x_pos,this.y_pos,Y,1),this.context.fillRect(this.x_pos+this.width/2+G/2+5,this.y_pos,Y,1),this.context.fillRect(this.x_pos,this.y_pos+(this.location===Tuplet$1.LOCATION_BOTTOM),1,this.location*10),this.context.fillRect(this.x_pos+this.width,this.y_pos+(this.location===Tuplet$1.LOCATION_BOTTOM),1,this.location*10))}let q=0;if(this.numerator_glyphs.forEach(Y=>{Y.render(this.context,W+q,this.y_pos+this.point/3-2),q+=Y.getMetrics().width}),this.ratioed){const Y=W+q+this.point*.16,Q=this.point*.06;this.context.beginPath(),this.context.arc(Y,this.y_pos-this.point*.08,Q,0,Math.PI*2,!0),this.context.closePath(),this.context.fill(),this.context.beginPath(),this.context.arc(Y,this.y_pos+this.point*.12,Q,0,Math.PI*2,!0),this.context.closePath(),this.context.fill(),q+=this.point*.32,this.denom_glyphs.forEach(Z=>{Z.render(this.context,W+q,this.y_pos+this.point/3-2),q+=Z.getMetrics().width})}}}function calculateStemDirection(B){let R=0;return B.forEach(F=>{F.keyProps&&F.keyProps.forEach(D=>{R+=D.line-3})}),R>=0?Stem.DOWN:Stem.UP}const getStemSlope=(B,R)=>{const F=B.getStemExtents().topY,D=B.getStemX(),G=R.getStemExtents().topY,U=R.getStemX();return(G-F)/(U-D)},BEAM_LEFT="L",BEAM_RIGHT="R",BEAM_BOTH="B";class Beam$1 extends Element$1{static getDefaultBeamGroups(R){(!R||R==="c")&&(R="4/4");const D={"1/2":["1/2"],"2/2":["1/2"],"3/2":["1/2"],"4/2":["1/2"],"1/4":["1/4"],"2/4":["1/4"],"3/4":["1/4"],"4/4":["1/4"],"1/8":["1/8"],"2/8":["2/8"],"3/8":["3/8"],"4/8":["2/8"],"1/16":["1/16"],"2/16":["2/16"],"3/16":["3/16"],"4/16":["2/16"]}[R];if(D===void 0){const G=parseInt(R.split("/")[0],10),U=parseInt(R.split("/")[1],10);if(G%3===0)return[new Fraction(3,U)];if(U>4)return[new Fraction(2,U)];if(U<=4)return[new Fraction(1,U)]}else return D.map(G=>new Fraction().parse(G));return[new Fraction(1,4)]}static applyAndGetBeams(R,F,D){return Beam$1.generateBeams(R.getTickables(),{groups:D,stem_direction:F})}static generateBeams(R,F){F||(F={}),(!F.groups||!F.groups.length)&&(F.groups=[new Fraction(2,8)]);const D=F.groups.map(he=>{if(!he.multiply)throw new Vex.RuntimeError("InvalidBeamGroups","The beam groups must be an array of Vex.Flow.Fractions");return he.clone().multiply(Flow.RESOLUTION,1)}),G=R;let U=0,W=[],q=[];function Y(he){return he.reduce((de,me)=>me.getTicks().clone().add(de),new Fraction(0,1))}function Q(){D.length-1>U?U+=1:U=0}function Z(){let he=[];G.forEach(de=>{if(he=[],de.shouldIgnoreTicks()){W.push(q),q=he;return}q.push(de);const me=D[U].clone(),fe=Y(q),ge=Flow.durationToNumber(de.duration)<8;ge&&de.tuplet&&(me.numerator*=2),fe.greaterThan(me)?(ge||he.push(q.pop()),W.push(q),q=he,Q()):fe.equals(me)&&(W.push(q),q=he,Q())}),q.length>0&&W.push(q)}function K(){return W.filter(he=>{if(he.length>1){let de=!0;return he.forEach(me=>{me.getIntrinsicTicks()>=Flow.durationToTicks("4")&&(de=!1)}),de}return!1})}function J(){const he=[];W.forEach(de=>{let me=[];de.forEach((fe,ge,Se)=>{const Ee=ge===0||ge===Se.length-1,ve=Se[ge-1],xe=!F.beam_rests&&fe.isRest(),Pe=F.beam_rests&&F.beam_middle_only&&fe.isRest()&&Ee;let ye=!1;if(F.maintain_stem_directions&&ve&&!fe.isRest()&&!ve.isRest()){const we=ve.getStemDirection();ye=fe.getStemDirection()!==we}const Te=parseInt(fe.duration,10)<8;xe||Pe||ye||Te?(me.length>0&&he.push(me),me=ye?[fe]:[]):me.push(fe)}),me.length>0&&he.push(me)}),W=he}function ie(){W.forEach(he=>{let de;if(F.maintain_stem_directions){const me=ne(he);de=me?me.getStemDirection():Stem.UP}else F.stem_direction?de=F.stem_direction:de=calculateStemDirection(he);se(he,de)})}function ne(he){for(let de=0;de{me.setStemDirection(de)})}function re(){const he=[];return W.forEach(de=>{let me=null;de.forEach(fe=>{fe.tuplet&&me!==fe.tuplet&&(me=fe.tuplet,he.push(me))})}),he}Z(),J(),ie();const ae=K(),le=re(),ce=[];return ae.forEach(he=>{const de=new Beam$1(he);F.show_stemlets&&(de.render_options.show_stemlets=!0),F.secondary_breaks&&(de.render_options.secondary_break_ticks=Flow.durationToTicks(F.secondary_breaks)),F.flat_beams===!0&&(de.render_options.flat_beams=!0,de.render_options.flat_beam_offset=F.flat_beam_offset),ce.push(de)}),le.forEach(he=>{const de=he.notes[0].stem_direction===Stem.DOWN?Tuplet$1.LOCATION_BOTTOM:Tuplet$1.LOCATION_TOP;he.setTupletLocation(de);let me=!1;for(let fe=0;fe=Flow.durationToTicks("4"))throw new Vex.RuntimeError("BadArguments","Beams can only be applied to notes shorter than a quarter note.");let D,G;for(this.stem_direction=Stem.UP,D=0;Dq+Y.stem_direction,0)>-1?Stem.UP:Stem.DOWN),D=0;DD.getGlyph().beam_count).reduce((D,G)=>G>D?G:D)}breakSecondaryAt(R){return this.break_on_indices=R,this}getSlopeY(R,F,D,G){return D+(R-F)*G}calculateSlope(){const{notes:R,stem_direction:F,render_options:{max_slope:D,min_slope:G,slope_iterations:U,slope_cost:W}}=this,q=R[0],Y=getStemSlope(q,R[R.length-1]),Q=(D-G)/U;let Z=Number.MAX_VALUE,K=0,J=0;for(let ie=G;ie<=D;ie+=Q){let ne=0,se=0;for(let ce=1;cere)&&(Q=re,q=Math.min(...se.getYs()),Y=se.getBeamCount())}let Z=W/R.length;const K=D*1.5,J=G+Y*K,ie=q+J*-F;F===Stem.DOWN&&Zie&&(Z=q-J),U+this.render_options.flat_beam_offset_per_beam>0?F===Stem.DOWN&&Z>U&&!this.render_options.flat_beams?this.render_options.flat_beam_offset=Z:F===Stem.UP&&Z0){let G=this.render_options.flat_beam_offset;this.render_options.flat_beam_offset_per_beam&&(G+=this.render_options.flat_beam_offset_per_beam*this.getBeamCount());let U=this.notes[0].note_heads[0].y;const W=this.stem_direction>0?Math.min:Math.max;for(const q of this.notes)for(const Y of q.note_heads)U=W(U,Y.y);D=U+G*-this.stem_direction}return D}applyStemExtensions(){const{notes:R,slope:F,y_shift:D,stem_direction:G,beam_count:U,render_options:{show_stemlets:W,stemlet_extension:q,beam_width:Y}}=this,Q=R[0],Z=this.getBeamYToDraw(),K=Q.getStemX();for(let J=0;J=8&&(ie=this.break_on_indices.indexOf(Z)!==-1,this.render_options.secondary_break_ticks&&Y>=this.render_options.secondary_break_ticks&&(Y=0,ie=!0));const ne=K.getIntrinsicTicks(){R.getStem()&&(this.context.openGroup("stem",R.getAttribute("id")+"-stem"),R.getStem().setContext(this.context).draw(),this.context.closeGroup())},this)}drawBeamLines(){this.checkContext();const R=["4","8","16","32","64"],F=this.notes[0];let D=this.getBeamYToDraw();const G=F.getStemX(),U=this.render_options.beam_width*this.stem_direction,W={};for(const q of this.notes)W[q.getAttribute("id")]=0;for(let q=0;q{R.getStave()||R.setStave(this.stave)}),this.preFormatted=!0,this)}draw(R=this.context,F=this.stave){this.setRendered();let D=null;for(let G=0;G0&&D){const W=U.getBoundingBox();W&&D.mergeWith(W)}U.setContext(R),U.drawWithStyle()}this.boundingBox=D}}function drawBoldDoubleLine(B,R,F,D,G){if(R!==StaveConnector.type.BOLD_DOUBLE_LEFT&&R!==StaveConnector.type.BOLD_DOUBLE_RIGHT)throw new Vex.RERR("InvalidConnector","A REPEAT_BEGIN or REPEAT_END type must be provided.");let U=3,W=3.5;const q=2;R===StaveConnector.type.BOLD_DOUBLE_RIGHT&&(U=-5,W=3),B.fillRect(F+U,D,1,G-D),B.fillRect(F-q,D,W,G-D)}class StaveConnector extends Element$1{static get type(){return{SINGLE_RIGHT:0,SINGLE_LEFT:1,SINGLE:1,DOUBLE:2,BRACE:3,BRACKET:4,BOLD_DOUBLE_LEFT:5,BOLD_DOUBLE_RIGHT:6,THIN_DOUBLE:7,NONE:8}}static get typeString(){return{singleRight:StaveConnector.type.SINGLE_RIGHT,singleLeft:StaveConnector.type.SINGLE_LEFT,single:StaveConnector.type.SINGLE,double:StaveConnector.type.DOUBLE,brace:StaveConnector.type.BRACE,bracket:StaveConnector.type.BRACKET,boldDoubleLeft:StaveConnector.type.BOLD_DOUBLE_LEFT,boldDoubleRight:StaveConnector.type.BOLD_DOUBLE_RIGHT,thinDouble:StaveConnector.type.THIN_DOUBLE,none:StaveConnector.type.NONE}}constructor(R,F){super(),this.setAttribute("type","StaveConnector"),this.thickness=Flow.STAVE_LINE_THICKNESS,this.width=3,this.top_stave=R,this.bottom_stave=F,this.type=StaveConnector.type.DOUBLE,this.font={family:"times",size:16,weight:"normal"},this.x_shift=0,this.texts=[]}setType(R){return R=typeof R=="string"?StaveConnector.typeString[R]:R,R>=StaveConnector.type.SINGLE_RIGHT&&R<=StaveConnector.type.NONE&&(this.type=R),this}setText(R,F){return this.texts.push({content:R,options:Vex.Merge({shift_x:0,shift_y:0},F)}),this}setFont(R){Vex.Merge(this.font,R)}setXShift(R){if(typeof R!="number")throw Vex.RERR("InvalidType","x_shift must be a Number");return this.x_shift=R,this}draw(){const R=this.checkContext();this.setRendered();let F=this.top_stave.getYForLine(0),D=this.bottom_stave.getYForLine(this.bottom_stave.getNumLines()-1)+this.thickness,G=this.width,U=this.top_stave.getX();(this.type===StaveConnector.type.SINGLE_RIGHT||this.type===StaveConnector.type.BOLD_DOUBLE_RIGHT||this.type===StaveConnector.type.THIN_DOUBLE)&&(U=this.top_stave.getX()+this.top_stave.width);let q=D-F;switch(this.type){case StaveConnector.type.SINGLE:G=1;break;case StaveConnector.type.SINGLE_LEFT:G=1;break;case StaveConnector.type.SINGLE_RIGHT:G=1;break;case StaveConnector.type.DOUBLE:U-=this.width+2;break;case StaveConnector.type.BRACE:{G=12;const Y=this.top_stave.getX()-2+this.x_shift,Q=F,Z=Y,K=D,J=Y-G,ie=Q+q/2,ne=J-.9*G,se=Q+.2*q,re=Y+1.1*G,ae=ie-.135*q,le=re,ce=ie+.135*q,he=ne,de=K-.2*q,me=J-G,fe=de,ge=Y+.4*G,Se=ie+.135*q,Ee=ge,ve=ie-.135*q,xe=me,Pe=se;R.beginPath(),R.moveTo(Y,Q),R.bezierCurveTo(ne,se,re,ae,J,ie),R.bezierCurveTo(le,ce,he,de,Z,K),R.bezierCurveTo(me,fe,ge,Se,J,ie),R.bezierCurveTo(Ee,ve,xe,Pe,Y,Q),R.fill(),R.stroke();break}case StaveConnector.type.BRACKET:F-=4,D+=4,q=D-F,Glyph.renderGlyph(R,U-5,F-3,40,"v1b",!0),Glyph.renderGlyph(R,U-5,D+3,40,"v10",!0),U-=this.width+2;break;case StaveConnector.type.BOLD_DOUBLE_LEFT:drawBoldDoubleLine(R,this.type,U+this.x_shift,F,D);break;case StaveConnector.type.BOLD_DOUBLE_RIGHT:drawBoldDoubleLine(R,this.type,U,F,D);break;case StaveConnector.type.THIN_DOUBLE:G=1;break;case StaveConnector.type.NONE:break;default:throw new Vex.RERR("InvalidType",`The provided StaveConnector.type (${this.type}) is invalid`)}this.type!==StaveConnector.type.BRACE&&this.type!==StaveConnector.type.BOLD_DOUBLE_LEFT&&this.type!==StaveConnector.type.BOLD_DOUBLE_RIGHT&&this.type!==StaveConnector.type.NONE&&R.fillRect(U,F,G,q),this.type===StaveConnector.type.THIN_DOUBLE&&R.fillRect(U-3,F,G,q),R.save(),R.lineWidth=2,R.setFont(this.font.family,this.font.size,this.font.weight);for(let Y=0;Y0){const re=se.space.deviation,ae=re>=0?"+":"";R.setFillStyle("red"),R.fillText(ae+Math.round(re),q+F.getXShift(),D-10)}R.restore()}constructor(R){if(super(),this.setAttribute("type","Note"),!R)throw new Vex.RuntimeError("BadArguments","Note must have valid initialization data to identify duration and type.");const F=Flow.parseNoteStruct(R);if(!F)throw new Vex.RuntimeError("BadArguments",`Invalid note initialization object: ${JSON.stringify(R)}`);if(this.duration=F.duration,this.dots=F.dots,this.noteType=F.type,this.customTypes=F.customTypes,this.DYMusicScoreType=R.DYMusicScoreType,R.duration_override?this.setDuration(R.duration_override):this.setIntrinsicTicks(F.ticks),this.modifiers=[],this.glyph=Flow.getGlyphProps(this.duration,this.noteType),this.customGlyphs=this.customTypes.map(D=>Flow.getGlyphProps(this.duration,D)),this.positions&&(typeof this.positions!="object"||!this.positions.length))throw new Vex.RuntimeError("BadArguments","Note keys must be array type.");this.playNote=null,this.tickContext=null,this.modifierContext=null,this.ignore_ticks=!1,this.width=0,this.extraLeftPx=0,this.extraRightPx=0,this.x_shift=0,this.left_modPx=0,this.right_modPx=0,this.voice=null,this.preFormatted=!1,this.ys=[],R.align_center&&this.setCenterAlignment(R.align_center),this.stave=null,this.render_options={annotation_spacing:5,stave_padding:Note.STAVEPADDING}}getPlayNote(){return this.playNote}setPlayNote(R){return this.playNote=R,this}isRest(){return!1}addStroke(R,F){return F.setNote(this),F.setIndex(R),this.modifiers.push(F),this.setPreFormatted(!1),this}getStave(){return this.stave}setStave(R){return this.stave=R,this.setYs([R.getYForLine(0)]),this.context=this.stave.context,this}getCategory(){return Note.CATEGORY}setContext(R){return this.context=R,this}getExtraLeftPx(){return this.extraLeftPx}getExtraRightPx(){return this.extraRightPx}setExtraLeftPx(R){return this.extraLeftPx=R,this}setExtraRightPx(R){return this.extraRightPx=R,this}shouldIgnoreTicks(){return this.ignore_ticks}getLineNumber(){return 0}getLineForRest(){return 0}getGlyph(){return this.glyph}getGlyphWidth(){return this.glyph.getWidth?this.glyph.getWidth(this.render_options.glyph_font_scale):15}setYs(R){return this.ys=R,this}getYs(){if(this.ys.length===0)throw new Vex.RERR("NoYValues","No Y-values calculated for this note.");return this.ys}getYForTopText(R){if(!this.stave)throw new Vex.RERR("NoStave","No stave attached to this note.");return this.stave.getYForTopText(R)}getBoundingBox(){return null}getVoice(){if(!this.voice)throw new Vex.RERR("NoVoice","Note has no voice.");return this.voice}setVoice(R){return this.voice=R,this.preFormatted=!1,this}getTickContext(){return this.tickContext}setTickContext(R){return this.tickContext=R,this.preFormatted=!1,this}getDuration(){return this.duration}isDotted(){return this.dots>0}hasStem(){return!1}getDots(){return this.dots}getNoteType(){return this.noteType}setBeam(){return this}setModifierContext(R){return this.modifierContext=R,this}addModifier(R,F=0){return R.setNote(this),R.setIndex(F),this.modifiers.push(R),this.setPreFormatted(!1),this}getModifierStartXY(){if(!this.preFormatted)throw new Vex.RERR("UnformattedNote","Can't call GetModifierStartXY on an unformatted note");return{x:this.getAbsoluteX(),y:this.ys[0]}}getMetrics(){if(!this.preFormatted)throw new Vex.RERR("UnformattedNote","Can't call getMetrics on an unformatted note.");let R=0,F=0;this.modifierContext!=null&&(R=this.modifierContext.state.left_shift,F=this.modifierContext.state.right_shift);const D=this.getWidth();return{width:D,noteWidth:D-R-F-this.extraLeftPx-this.extraRightPx,left_shift:this.x_shift,modLeftPx:R,modRightPx:F,extraLeftPx:this.extraLeftPx,extraRightPx:this.extraRightPx}}setWidth(R){this.width=R}getWidth(){if(!this.preFormatted)throw new Vex.RERR("UnformattedNote","Can't call GetWidth on an unformatted note.");return this.width+(this.modifierContext?this.modifierContext.getWidth():0)}setXShift(R){return this.x_shift=R,this}getXShift(){return this.x_shift}getX(){if(!this.tickContext)throw new Vex.RERR("NoTickContext","Note needs a TickContext assigned for an X-Value");return this.tickContext.getX()+this.x_shift}getAbsoluteX(){if(!this.tickContext)throw new Vex.RERR("NoTickContext","Note needs a TickContext assigned for an X-Value");let R=this.tickContext.getX();return this.stave&&(R+=this.stave.getNoteStartX()+this.render_options.stave_padding),this.isCenterAligned()&&(this.DYMusicScoreType==="jianpu"||(R+=this.getCenterXShift())),R}setPreFormatted(R){if(this.preFormatted=R,this.preFormatted){const F=this.tickContext.getExtraPx();this.left_modPx=Math.max(this.left_modPx,F.left),this.right_modPx=Math.max(this.right_modPx,F.right)}}}function L$i(...B){NoteHead.DEBUG&&Vex.L("Vex.Flow.NoteHead",B)}function drawSlashNoteHead(B,R,F,D,G,U){const W=Flow.SLASH_NOTEHEAD_WIDTH;B.save(),B.setLineWidth(Flow.STEM_WIDTH);let q=!1;if(Flow.durationToNumber(R)>2&&(q=!0),q||(F-=Flow.STEM_WIDTH/2*G),B.beginPath(),B.moveTo(F,D+U),B.lineTo(F,D+1),B.lineTo(F+W,D-U),B.lineTo(F+W,D),B.lineTo(F,D+U),B.closePath(),q?B.fill():B.stroke(),Flow.durationToFraction(R).equals(.5)){const Y=[-3,-1,W+1,W+3];for(let Q=0;Q{const q=W.getTickContext();W.setStave(F.stave),q.setXOffset(U)})}}class Dot extends Modifier{static get CATEGORY(){return"dots"}static format(R,F){const D=F.right_shift,G=1;if(!R||R.length===0)return!1;const U=[],W={};for(let ie=0;iene.line-ie.line);let q=D,Y=0,Q=null,Z=null,K=null,J=0;for(let ie=0;ieY?q:Y,Q=ae,Z=se}return F.right_shift+=Y,!0}constructor(){super(),this.setAttribute("type","Dot"),this.note=null,this.index=null,this.position=Modifier.Position.RIGHT,this.radius=2,this.setWidth(5),this.dot_shiftY=0}getCategory(){return Dot.CATEGORY}setNote(R){this.note=R,this.note.getCategory()==="gracenotes"&&(this.radius*=.5,this.setWidth(3))}setDotShiftY(R){return this.dot_shiftY=R,this}draw(){if(this.checkContext(),this.setRendered(),!this.note||this.index===null)throw new Vex.RERR("NoAttachedNote","Can't draw dot without a note and index.");const R=this.note.stave.options.spacing_between_lines_px,F=this.note.getModifierStartXY(this.position,this.index,{forceFlagRight:!0});this.note.getCategory()==="tabnotes"&&(F.y=this.note.getStemExtents().baseY+1);const D=F.x+this.x_shift+this.width-this.radius;let G=this.dot_shiftY*R;this.note&&this.note.DYMusicScoreType=="jianpu"&&(G=-5);const U=F.y+this.y_shift+G,W=this.context;W.beginPath(),W.arc(D,U,this.radius,0,Math.PI*2,!1),W.fill()}}function L$h(...B){StaveNote.DEBUG&&Vex.L("Vex.Flow.StaveNote",B)}const getStemAdjustment=B=>Stem.WIDTH/(2*-B.getStemDirection()),isInnerNoteIndex=(B,R)=>R===(B.getStemDirection()===Stem.UP?B.keyProps.length-1:0);function shiftRestVertical(B,R,F){const D=(R.isrest?0:1)*F;B.line+=D,B.maxLine+=D,B.minLine+=D,B.note.setKeyLine(0,B.note.getKeyLine(0)+D)}function centerRest(B,R,F){const D=B.line-Vex.MidLine(R.minLine,F.maxLine);B.note.setKeyLine(0,B.note.getKeyLine(0)-D),B.line-=D,B.maxLine-=D,B.minLine-=D}class StaveNote extends StemmableNote{static get CATEGORY(){return"stavenotes"}static get STEM_UP(){return Stem.UP}static get STEM_DOWN(){return Stem.DOWN}static get DEFAULT_LEDGER_LINE_OFFSET(){return 3}static renderVibrato(R,F,D,G){let{width:U,height:W,wave_width:q,wave_girth:Y,wave_height:Q,stem_direction:Z}=G;const K=Math.floor(U/q);let J=W/(K/2)*Z;J==0&&(Z=1,J=.3),R.beginPath(),R.moveTo(F,D+Y);for(let ie=0;ie2?D[1]:null;let Y=U>2?D[2]:D[1];U===2&&W.stemDirection===-1&&Y.stemDirection===1&&(W=D[1],Y=D[0]);const Q=Math.max(W.voice_shift,Y.voice_shift);let Z=0,K;if(U===2){const J=W.stemDirection===Y.stemDirection?0:.5;if(W.stemDirection===Y.stemDirection&&W.minLine<=Y.maxLine&&(W.isrest||(K=Math.abs(W.line-(Y.maxLine+.5)),K=Math.max(K,W.stemMin),W.minLine=W.line-K,W.note.setStemLength(K*10))),W.minLine<=Y.maxLine+J)if(W.isrest)shiftRestVertical(W,Y,1);else if(Y.isrest)shiftRestVertical(Y,W,-1);else{Z=Q;const ie=Math.abs(W.line-Y.line);let ne=0,se=0;W.note.duration==="h"?ne++:W.note.duration==="w"&&se++,Y.note.duration==="h"?ne++:Y.note.duration==="w"&&se++;let re=ne===1||se===1||W.note.dots!==Y.note.dots;if(G&&(re=re||se===2),ie===0&&re){if(Y.note.setXShift(Z),W.note.dots>0){let ae=0;for(const le of W.note.modifiers)if(le instanceof Dot&&(ae++,le.setYShift(-10*(Y.maxLine-W.line+1)),ae===W.note.dots))break}}else ie<1&&ie>0?Y.note.setXShift(Z):W.note.voice!==Y.note.voice&&W.stemDirection===Y.stemDirection&&(W.line>Y.line?W.stemDirection===1?Y.note.renderFlag=!1:W.note.renderFlag=!1:Y.line>W.line?Y.stemDirection===1?W.note.renderFlag=!1:Y.note.renderFlag=!1:Y.stemDirection===1&&(Y.stemDirection=-1,Y.note.setStemDirection(-1)))}return!0}if(q!==null&&q.minLineF.postFormat()),!0):!1}constructor(R){if(super(R),this.setAttribute("type","StaveNote"),this.keys=R.keys,this.clef=R.clef,this.octave_shift=R.octave_shift,this.beam=null,this.vibrato=null,this.slideNote=null,this.glyph=Flow.getGlyphProps(this.duration,this.noteType),!this.glyph)throw new Vex.RuntimeError("BadArguments",`Invalid note initialization data (No glyph found): ${JSON.stringify(R)}`);this.displaced=!1,this.dot_shiftY=0,this.addDotsCount=0,this.keyProps=[],this.use_default_head_x=!1,this.note_heads=[],this.modifiers=[],Vex.Merge(this.render_options,{glyph_font_scale:R.glyph_font_scale||Flow.DEFAULT_NOTATION_FONT_SCALE,stroke_px:R.stroke_px||StaveNote.DEFAULT_LEDGER_LINE_OFFSET}),this.calculateKeyProps(),this.buildStem(),R.auto_stem?this.autoStem():this.setStemDirection(R.stem_direction),this.reset(),this.buildFlag()}reset(){super.reset();const R=this.note_heads.map(F=>F.getStyle());this.buildNoteHeads(),this.note_heads.forEach((F,D)=>F.setStyle(R[D])),this.stave&&this.note_heads.forEach(F=>F.setStave(this.stave)),this.calcExtraPx()}setBeam(R){return this.beam=R,this.calcExtraPx(),this}setVibrato(R){this.vibrato=R}setSlideNote(R){this.slideNote=R}getCategory(){return StaveNote.CATEGORY}buildStem(){this.setStem(new Stem({hide:!!this.isRest()})),this.stem.id=Vex.Prefix(`${this.getAttribute("id")}-stem`)}buildNoteHeads(){this.note_heads=[];const R=this.getStemDirection(),F=this.getKeys();let D=null,G=null,U=!1,W,q,Y;R===Stem.UP?(W=0,q=F.length,Y=1):R===Stem.DOWN&&(W=F.length-1,q=-1,Y=-1);for(let Q=W;Q!==q;Q+=Y){const Z=this.keyProps[Q],K=Z.line;D===null?D=K:(G=Math.abs(D-K),G===0||G===.5?U=!U:(U=!1,this.use_default_head_x=!0)),D=K;const J=new NoteHead({duration:this.duration,note_type:this.noteType,displaced:U,stem_direction:R,custom_glyph_code:Z.code,glyph_font_scale:this.render_options.glyph_font_scale,x_shift:Z.shift_right,stem_up_x_offset:Z.stem_up_x_offset,stem_down_x_offset:Z.stem_down_x_offset,line:Z.line});this.note_heads[Q]=J}}autoStem(){this.minLine=this.keyProps[0].line,this.maxLine=this.keyProps[this.keyProps.length-1].line;const R=3,D=(this.minLine+this.maxLine)/20&&(this.keyProps[F-1].displaced=!0)),R=W,this.keyProps.push(U)}R=-1/0,this.keyProps.forEach(F=>{F.lineF.line-D.line)}getBoundingBox(){if(!this.preFormatted)throw new Vex.RERR("UnformattedNote","Can't call getBoundingBox on an unformatted note.");const{width:R,modLeftPx:F,extraLeftPx:D}=this.getMetrics(),G=this.getAbsoluteX()-F-D;let U=0,W=0;const q=this.getStave().getSpacingBetweenLines()/2,Y=q*2;if(this.isRest()){const Q=this.ys[0],Z=Flow.durationToFraction(this.duration);Z.equals(1)||Z.equals(2)?(U=Q-q,W=Q+q):(U=Q-this.glyph.line_above*Y,W=Q+this.glyph.line_below*Y)}else if(this.glyph.stem){const Q=this.getStemExtents();Q.baseY+=q*this.stem_direction,U=Math.min(Q.topY,Q.baseY),W=Math.max(Q.topY,Q.baseY)}else{U=null,W=null;for(let Q=0;QF&&(F=G):G1}hasStem(){return this.glyph.stem}hasFlag(){return super.hasFlag()&&!this.isRest()&&this.renderFlag}getStemX(){return this.noteType==="r"?this.getCenterGlyphX():super.getStemX()+getStemAdjustment(this)}getYForTopText(R){const F=this.getStemExtents();return Math.min(this.stave.getYForTopText(R),F.topY-this.render_options.annotation_spacing*(R+1))}getYForBottomText(R){const F=this.getStemExtents();return Math.max(this.stave.getYForTopText(R),F.baseY+this.render_options.annotation_spacing*R)}setStave(R){super.setStave(R);const F=this.note_heads.map(D=>(D.setStave(R),D.getY()));if(this.setYs(F),this.stem){const{y_top:D,y_bottom:G}=this.getNoteHeadBounds();this.stem.setYBounds(D,G)}return this}getKeys(){return this.keys}getKeyProps(){return this.keyProps}isDisplaced(){return this.displaced}setNoteDisplaced(R){return this.displaced=R,this}getTieRightX(){let R=this.getAbsoluteX();return R+=this.getGlyphWidth()+this.x_shift+this.extraRightPx,this.modifierContext&&(R+=this.modifierContext.getExtraRightPx()),R}getTieLeftX(){let R=this.getAbsoluteX();return R+=this.x_shift-this.extraLeftPx,R}getLineForRest(){let R=this.keyProps[0].line;if(this.keyProps.length>1){const F=this.keyProps[this.keyProps.length-1].line,D=Math.max(R,F),G=Math.min(R,F);R=Vex.MidLine(D,G)}return R}getModifierStartXY(R,F,D){if(D=D||{},!this.preFormatted)throw new Vex.RERR("UnformattedNote","Can't call GetModifierStartXY on an unformatted note");if(this.ys.length===0)throw new Vex.RERR("NoYValues","No Y-Values calculated for this note.");const{ABOVE:G,BELOW:U,LEFT:W,RIGHT:q}=Modifier.Position;let Y=0;return R===W?Y=-1*2:R===q?(Y=this.getGlyphWidth()+this.x_shift+2,this.stem_direction===Stem.UP&&this.hasFlag()&&(D.forceFlagRight||isInnerNoteIndex(this,F))&&(Y+=this.flag.getMetrics().width)):(R===U||R===G)&&(Y=this.getGlyphWidth()/2),{x:this.getAbsoluteX()+Y,y:this.ys[F]}}setStyle(R){super.setStyle(R),this.note_heads.forEach(F=>F.setStyle(R)),this.stem&&this.stem.setStyle(R)}setStemStyle(R){this.stem&&this.getStem().setStyle(R)}getStemStyle(){return this.stem.getStyle()}setLedgerLineStyle(R){this.ledgerLineStyle=R}getLedgerLineStyle(){return this.ledgerLineStyle}setFlagStyle(R){this.flagStyle=R}getFlagStyle(){return this.flagStyle}setKeyStyle(R,F){return this.note_heads[R].setStyle(F),this}setKeyLine(R,F){return this.keyProps[R].line=F,this.reset(),this}getKeyLine(R){return this.keyProps[R].line}addToModifierContext(R){this.setModifierContext(R);for(let F=0;F{const J=K.getLine(),ie=K.getY();(R===null||ieF)&&(F=ie),G===null&&K.isDisplaced()&&(G=K.getAbsoluteX()),D===null&&!K.isDisplaced()&&(D=K.getAbsoluteX()),U=J>U?J:U,W=J{let de;he&&ce?de=se-D:ce?de=ne-D:de=ie-D;const me=ce&&he?W:U;G.beginPath(),G.moveTo(de,le),G.lineTo(de+me,le),G.stroke()},ae={...R.getStyle()||{},...this.getLedgerLineStyle()||{}};this.applyStyle(G,ae);for(let le=6;le<=q;++le){const ce=ne!==null&&le<=Z,he=ie!==null&&le<=Q;re(R.getYForNote(le),ce,he)}for(let le=0;le>=Y;--le){const ce=ne!==null&&le>=J,he=ie!==null&&le>=K;re(R.getYForNote(le),ce,he)}this.restoreStyle(G,ae)}drawVibrato(){if(this.vibrato){const R=this.context,F=this.vibrato.getNoteHeadEndX()+2;let{y_bottom:D}=this.vibrato.getNoteHeadBounds(),{y_top:G}=this.getNoteHeadBounds();const U=D6.5||K<-.5)&&(Z=Z+(K>6.5?(K-6.5)*10:(K+.5)*10))}D.openGroup("flag",null,{pointerBBox:!0}),this.applyStyle(D,this.getFlagStyle()||!1),this.flag.render(D,Q,Z),this.restoreStyle(D,this.getFlagStyle()||!1),D.closeGroup()}}drawNoteHeads(){this.note_heads.forEach(R=>{this.context.openGroup("notehead",null,{pointerBBox:!0});try{if(this.isRest()&&this.duration==="w"){const F=this.stave.options.line_config.filter(G=>G.visible).length;this.keyProps[0].line===4&&F<5&&R.setY(R.getY()+10),F===1&&R.setLine(3)}}catch{}R.setContext(this.context).draw(),this.context.closeGroup()})}drawStem(R){if(!this.context)throw new Vex.RERR("NoCanvasContext","Can't draw without a canvas context.");R&&this.setStem(new Stem(R)),this.stem.id=Vex.Prefix(`${this.getAttribute("id")}-stem`),this.stem&&(this.context.openGroup("stem",null,{pointerBBox:!0}),this.stem.setContext(this.context).draw(),this.context.closeGroup())}draw(){if(!this.context)throw new Vex.RERR("NoCanvasContext","Can't draw without a canvas context.");if(!this.stave)throw new Vex.RERR("NoStave","Can't draw without a stave.");if(this.ys.length===0)throw new Vex.RERR("NoYValues","Can't draw note without Y values.");const R=this.stave.getLines();if(R===2||R===3||R===4)for(let G=0;GG.setX(F)),this.stem){let G=this.getStemX();const U=this.keyProps[0].line;(U>6.5||U<-.5)&&(this.beam||(this.stem.renderHeightAdjustment=U>6.5?(U-6.5)*10:Math.abs(U+.5)*10)),this.stem.setNoteHeadXBounds(G,G)}L$h("Rendering ",this.isChord()?"chord :":"note :",this.keys),this.drawLedgerLines(),this.applyStyle(),this.setAttribute("el",this.context.openGroup("stavenote",this.getAttribute("id"))),this.context.openGroup("note",null,{pointerBBox:!0}),D&&this.drawStem(),this.drawNoteHeads(),this.drawFlag(),this.context.closeGroup(),this.drawModifiers(),this.context.closeGroup(),this.restoreStyle(),this.setRendered()}}class FretHandFinger extends Modifier{static get CATEGORY(){return"frethandfinger"}static format(R,F){const{left_shift:D,right_shift:G}=F,U=1;if(!R||R.length===0)return!1;const W=[];let q=null,Y=0,Q=0;for(let re=0;reae.line-re.line);let Z=0,K=0,J=0,ie=0,ne=null,se=null;for(let re=0;reJ?ae:J):ce===Modifier.Position.RIGHT&&(he.setXShift(K),ae=Q+ge,ie=ae>ie?ae:ie),ne=de,se=le}return F.left_shift+=J,F.right_shift+=ie,!0}constructor(R){super(),this.setAttribute("type","FretHandFinger"),this.note=null,this.index=null,this.finger=R,this.width=7,this.position=Modifier.Position.LEFT,this.x_shift=0,this.y_shift=0,this.x_offset=0,this.y_offset=0,this.font={family:"sans-serif",size:9,weight:"bold"}}getCategory(){return FretHandFinger.CATEGORY}setFretHandFinger(R){return this.finger=R,this}setOffsetX(R){return this.x_offset=R,this}setOffsetY(R){return this.y_offset=R,this}draw(){if(this.checkContext(),!this.note||this.index==null)throw new Vex.RERR("NoAttachedNote","Can't draw string number without a note and index.");this.setRendered();const R=this.context,F=this.note.getModifierStartXY(this.position,this.index);let D=F.x+this.x_shift+this.x_offset,G=F.y+this.y_shift+this.y_offset+5;switch(this.position){case Modifier.Position.ABOVE:D-=4,G-=12;break;case Modifier.Position.BELOW:D-=2,G+=10;break;case Modifier.Position.LEFT:D-=this.width;break;case Modifier.Position.RIGHT:D+=1;break;default:throw new Vex.RERR("InvalidPostion",`The position ${this.position} does not exist`)}R.save(),R.setFont(this.font.family,this.font.size,this.font.weight),R.fillText(""+this.finger,D,G),R.restore()}}class Music{static get NUM_TONES(){return 12}static get roots(){return["c","d","e","f","g","a","b"]}static get root_values(){return[0,2,4,5,7,9,11]}static get root_indices(){return{c:0,d:1,e:2,f:3,g:4,a:5,b:6}}static get canonical_notes(){return["c","c#","d","d#","e","f","f#","g","g#","a","a#","b"]}static get diatonic_intervals(){return["unison","m2","M2","m3","M3","p4","dim5","p5","m6","M6","b7","M7","octave"]}static get diatonic_accidentals(){return{unison:{note:0,accidental:0},m2:{note:1,accidental:-1},M2:{note:1,accidental:0},m3:{note:2,accidental:-1},M3:{note:2,accidental:0},p4:{note:3,accidental:0},dim5:{note:4,accidental:-1},p5:{note:4,accidental:0},m6:{note:5,accidental:-1},M6:{note:5,accidental:0},b7:{note:6,accidental:-1},M7:{note:6,accidental:0},octave:{note:7,accidental:0}}}static get intervals(){return{u:0,unison:0,m2:1,b2:1,min2:1,S:1,H:1,2:2,M2:2,maj2:2,T:2,W:2,m3:3,b3:3,min3:3,M3:4,3:4,maj3:4,4:5,p4:5,"#4":6,b5:6,aug4:6,dim5:6,5:7,p5:7,"#5":8,b6:8,aug5:8,6:9,M6:9,maj6:9,b7:10,m7:10,min7:10,dom7:10,M7:11,maj7:11,8:12,octave:12}}static get scales(){return{major:[2,2,1,2,2,2,1],dorian:[2,1,2,2,2,1,2],mixolydian:[2,2,1,2,2,1,2],minor:[2,1,2,2,1,2,2]}}static get scaleTypes(){return{M:Music.scales.major,m:Music.scales.minor}}static get accidentals(){return["bb","b","n","#","##"]}static get noteValues(){return{c:{root_index:0,int_val:0},cn:{root_index:0,int_val:0},"c#":{root_index:0,int_val:1},"c##":{root_index:0,int_val:2},cb:{root_index:0,int_val:11},cbb:{root_index:0,int_val:10},d:{root_index:1,int_val:2},dn:{root_index:1,int_val:2},"d#":{root_index:1,int_val:3},"d##":{root_index:1,int_val:4},db:{root_index:1,int_val:1},dbb:{root_index:1,int_val:0},e:{root_index:2,int_val:4},en:{root_index:2,int_val:4},"e#":{root_index:2,int_val:5},"e##":{root_index:2,int_val:6},eb:{root_index:2,int_val:3},ebb:{root_index:2,int_val:2},f:{root_index:3,int_val:5},fn:{root_index:3,int_val:5},"f#":{root_index:3,int_val:6},"f##":{root_index:3,int_val:7},fb:{root_index:3,int_val:4},fbb:{root_index:3,int_val:3},g:{root_index:4,int_val:7},gn:{root_index:4,int_val:7},"g#":{root_index:4,int_val:8},"g##":{root_index:4,int_val:9},gb:{root_index:4,int_val:6},gbb:{root_index:4,int_val:5},a:{root_index:5,int_val:9},an:{root_index:5,int_val:9},"a#":{root_index:5,int_val:10},"a##":{root_index:5,int_val:11},ab:{root_index:5,int_val:8},abb:{root_index:5,int_val:7},b:{root_index:6,int_val:11},bn:{root_index:6,int_val:11},"b#":{root_index:6,int_val:0},"b##":{root_index:6,int_val:1},bb:{root_index:6,int_val:10},bbb:{root_index:6,int_val:9}}}isValidNoteValue(R){return!(R==null||R<0||R>=Music.NUM_TONES)}isValidIntervalValue(R){return this.isValidNoteValue(R)}getNoteParts(R){if(!R||R.length<1)throw new Vex.RERR("BadArguments","Invalid note name: "+R);if(R.length>3)throw new Vex.RERR("BadArguments","Invalid note name: "+R);const F=R.toLowerCase(),G=/^([cdefgab])(b|bb|n|#|##)?$/.exec(F);if(G!=null){const U=G[1],W=G[2];return{root:U,accidental:W}}else throw new Vex.RERR("BadArguments","Invalid note name: "+R)}getKeyParts(R){if(!R||R.length<1)throw new Vex.RERR("BadArguments","Invalid key: "+R);const F=R.toLowerCase(),G=/^([cdefgab])(b|#)?(mel|harm|m|M)?$/.exec(F);if(G!=null){const U=G[1],W=G[2];let q=G[3];return q||(q="M"),{root:U,accidental:W,type:q}}else throw new Vex.RERR("BadArguments",`Invalid key: ${R}`)}getNoteValue(R){const F=Music.noteValues[R];if(F==null)throw new Vex.RERR("BadArguments",`Invalid note name: ${R}`);return F.int_val}getIntervalValue(R){const F=Music.intervals[R];if(F==null)throw new Vex.RERR("BadArguments",`Invalid interval name: ${R}`);return F}getCanonicalNoteName(R){if(!this.isValidNoteValue(R))throw new Vex.RERR("BadArguments",`Invalid note value: ${R}`);return Music.canonical_notes[R]}getCanonicalIntervalName(R){if(!this.isValidIntervalValue(R))throw new Vex.RERR("BadArguments",`Invalid interval value: ${R}`);return Music.diatonic_intervals[R]}getRelativeNoteValue(R,F,D){if(D==null&&(D=1),D!==1&&D!==-1)throw new Vex.RERR("BadArguments",`Invalid direction: ${D}`);let G=(R+D*F)%Music.NUM_TONES;return G<0&&(G+=Music.NUM_TONES),G}getRelativeNoteName(R,F){const D=this.getNoteParts(R),G=this.getNoteValue(D.root);let U=F-G;if(Math.abs(U)>Music.NUM_TONES-3){let q=1;U>0&&(q=-1);const Y=(F+1+(G+1))%Music.NUM_TONES*q;if(Math.abs(Y)>2)throw new Vex.RERR("BadArguments",`Notes not related: ${R}, ${F})`);U=Y}if(Math.abs(U)>2)throw new Vex.RERR("BadArguments",`Notes not related: ${R}, ${F})`);let W=D.root;if(U>0)for(let q=1;q<=U;++q)W+="#";else if(U<0)for(let q=-1;q>=U;--q)W+="b";return W}getScaleTones(R,F){const D=[R];let G=R;for(let U=0;UB.getMetrics().width;class Accidental extends Modifier{static get CATEGORY(){return"accidentals"}static format(R,F){const G=F.left_shift+1,U=3;if(!R||R.length===0)return;const W=[];let q=null,Y=0,Q;for(let le=0;lece.line-le.line);const Z=[];let K=0,J=null;for(let le=0;leK?ce.shift:K,J=ce.line}let ie=0;for(let le=0;leZ[he+ye],fe=ye=>ye.map(me),ge=(ye,Te)=>{const[Le,we]=fe([ye,Te]).map(Ae=>Ae.line);return Le-we},Se=(...ye)=>ye.map(fe).every(Te=>!this.checkCollision(...Te)),Ee=de-he+1;let ve=this.checkCollision(Z[he],Z[de])?"a":"b";switch(Ee){case 3:ve==="a"&&ge(1,2)===.5&&ge(0,1)!==.5&&(ve="second_on_bottom");break;case 4:Se([0,2],[1,3])&&(ve="spaced_out_tetrachord");break;case 5:ve==="b"&&Se([1,3])&&(ve="spaced_out_pentachord",Se([0,2],[2,4])&&(ve="very_spaced_out_pentachord"));break;case 6:Se([0,3],[1,4],[2,5])&&(ve="spaced_out_hexachord"),Se([0,2],[2,4],[1,3],[3,5])&&(ve="very_spaced_out_hexachord");break}let xe,Pe;if(Ee>=7){let ye=2,Te=!0;for(;Te===!0;){Te=!1;for(let Le=0;Le+yePe?ie:Pe}else for(xe=le;xe<=de;xe++)Pe=Flow.accidentalColumnsTable[Ee][ve][xe-le],Z[xe].column=Pe,ie=ie>Pe?ie:Pe;le=de}const ne=[],se=[];for(let le=0;le<=ie;le++)ne[le]=0,se[le]=0;ne[0]=K+G,se[0]=K+G,Z.forEach(le=>{le.width>ne[le.column]&&(ne[le.column]=le.width)});for(let le=1;le{let ce=0;const he=ae+le.numAcc;for(ae;ae0?(G=F.flatLine||F.dblSharpLine?2.5:3,R.dblSharpLine&&(D-=.5)):(G=R.flatLine||R.dblSharpLine?2.5:3,F.dblSharpLine&&(D-=.5));const U=Math.abs(D){const Y=new Fraction(0,1);q.getTickables().forEach(Z=>{if(Z.shouldIgnoreTicks())return;const K=G[Y.value()];K?K.push(Z):(D.push(Y.value()),G[Y.value()]=[Z]),Y.add(Z.getTicks())})});const U=new Music;F||(F="C");const W=U.createScaleMap(F);D.forEach(q=>{const Y=G[q],Q=[],Z=K=>{K.isRest()||K.shouldIgnoreTicks()||(K.keys.forEach((J,ie)=>{const ne=U.getNoteParts(J.split("/")[0]),se=ne.accidental||"n",re=ne.root+se,ae=W[ne.root]===re,le=Q.indexOf(re)>-1;if(!ae||ae&&le){W[ne.root]=re;const ce=new Accidental(se);K.addAccidental(ie,ce),Q.push(re)}}),K.getModifiers().forEach(J=>{J.getCategory()==="gracenotegroups"&&J.getGraceNotes().forEach(Z)}))};Y.forEach(Z)})}constructor(R=null){if(super(),this.setAttribute("type","Accidental"),L$g("New accidental: ",R),this.note=null,this.index=null,this.type=R,this.position=Modifier.Position.LEFT,this.render_options={font_scale:38,stroke_px:3,parenLeftPadding:2,parenRightPadding:2},this.accidental=Flow.accidentalCodes(this.type),!this.accidental)throw new Vex.RERR("ArgumentError",`Unknown accidental type: ${R}`);this.cautionary=!1,this.parenLeft=null,this.parenRight=null,this.reset()}reset(){const R=this.render_options.font_scale;this.glyph=new Glyph(this.accidental.code,R),this.glyph.setOriginX(1),this.cautionary&&(this.parenLeft=new Glyph(Flow.accidentalCodes("{").code,R),this.parenRight=new Glyph(Flow.accidentalCodes("}").code,R),this.parenLeft.setOriginX(1),this.parenRight.setOriginX(1))}getCategory(){return Accidental.CATEGORY}getWidth(){const R=this.cautionary?getGlyphWidth(this.parenLeft)+getGlyphWidth(this.parenRight)+this.render_options.parenLeftPadding+this.render_options.parenRightPadding:0;return getGlyphWidth(this.glyph)+R}setNote(R){if(!R)throw new Vex.RERR("ArgumentError",`Bad note value: ${R}`);this.note=R,this.note.getCategory()==="gracenotes"&&(this.render_options.font_scale=25,this.reset())}setAsCautionary(){return this.cautionary=!0,this.render_options.font_scale=28,this.reset(),this}draw(){const{context:R,type:F,position:D,note:G,index:U,cautionary:W,x_shift:q,y_shift:Y,glyph:Q,parenLeft:Z,parenRight:K,render_options:{parenLeftPadding:J,parenRightPadding:ie}}=this;if(this.checkContext(),!(G&&U!=null))throw new Vex.RERR("NoAttachedNote","Can't draw accidental without a note and index.");const ne=G.getModifierStartXY(D,U);let se=ne.x+q;const re=ne.y+Y;L$g("Rendering: ",F,se,re),W?(K.render(R,se,re),se-=getGlyphWidth(K),se-=ie,se-=this.accidental.parenRightPaddingAdjustment,Q.render(R,se,re),se-=getGlyphWidth(Q),se-=J,Z.render(R,se,re)):Q.render(R,se,re),this.setRendered()}}class NoteSubGroup$1 extends Modifier{static get CATEGORY(){return"notesubgroup"}static format(R,F){if(!R||R.length===0)return!1;let D=0;for(let G=0;G{F.ignore_ticks=!1}),this.width=0,this.preFormatted=!1,this.formatter=new Formatter,this.voice=new Voice$1({num_beats:4,beat_value:4,resolution:Flow.RESOLUTION}).setStrict(!1),this.voice.addTickables(this.subNotes),this}getCategory(){return NoteSubGroup$1.CATEGORY}preFormat(){this.preFormatted||(this.formatter.joinVoices([this.voice]).format([this.voice],0),this.setWidth(this.formatter.getMinTotalWidth()),this.preFormatted=!0)}setNote(R){this.note=R}setWidth(R){this.width=R}getWidth(){return this.width}draw(){this.checkContext();const R=this.getNote();if(!(R&&this.index!==null))throw new Vex.RuntimeError("NoAttachedNote","Can't draw notes without a parent note and parent note index.");this.setRendered(),this.alignSubNotesWithNote(this.subNotes,R),this.subNotes.forEach(F=>F.setContext(this.context).drawWithStyle())}}class StaveTie extends Element$1{constructor(R,F){super(),this.setAttribute("type","StaveTie"),this.notes=R,this.context=null,this.text=F,this.direction=null,this.render_options={cp1:8,cp2:12,text_shift_x:0,first_x_shift:0,last_x_shift:0,y_shift:7,tie_spacing:0,font:{family:"Arial",size:15,style:""}},this.font=this.render_options.font,this.setNotes(R)}setFont(R){return this.font=R,this}setDirection(R){return this.direction=R,this}setNotes(R){if(!R.first_note&&!R.last_note)throw new Vex.RuntimeError("BadArguments","Tie needs to have either first_note or last_note set.");if(R.first_indices||(R.first_indices=[0]),R.last_indices||(R.last_indices=[0]),R.first_indices.length!==R.last_indices.length)throw new Vex.RuntimeError("BadArguments","Tied notes must have similar index sizes");return this.first_note=R.first_note,this.first_indices=R.first_indices,this.last_note=R.last_note,this.last_indices=R.last_indices,this}isPartial(){return!this.first_note||!this.last_note}renderTie(R){if(R.first_ys.length===0||R.last_ys.length===0)throw new Vex.RERR("BadArguments","No Y-values to render");const F=this.context;let D=this.render_options.cp1,G=this.render_options.cp2;Math.abs(R.last_x_px-R.first_x_px)<10&&(D=2,G=8);const U=this.render_options.first_x_shift,W=this.render_options.last_x_shift,q=this.render_options.y_shift*R.direction;for(let Y=0;YJ&&Math.abs(Z-J)<10?-6:0;if(this.first_note&&this.first_note.DYMusicScoreType==="jianpu"){if(this.getAttribute("type")==="TabTie")continue;Z1){const F=new Beam$1(R);F.render_options.beam_width=3,F.render_options.partial_beam_length=4,this.beams.push(F)}return this}setNote(R){this.note=R}setWidth(R){this.width=R}getWidth(){return this.width}getGraceNotes(){return this.grace_notes}draw(){this.checkContext();const R=this.getNote();if(L$f("Drawing grace note group for:",R),!(R&&this.index!==null))throw new Vex.RuntimeError("NoAttachedNote","Can't draw grace note without a parent note and parent note index.");if(this.setRendered(),this.alignSubNotesWithNote(this.getGraceNotes(),R),this.grace_notes.forEach(F=>{F.setContext(this.context).draw()}),this.beams.forEach(F=>{F.setContext(this.context).draw()}),this.show_slur){const F=this.getNote().getCategory()===StaveNote.CATEGORY,D=F?StaveTie:TabTie;this.slur=new D({last_note:this.grace_notes[0],first_note:R,first_indices:[0],last_indices:[0]}),this.slur.render_options.cp2=12,this.slur.render_options.y_shift=(F?7:5)+this.render_options.slur_y_shift,this.slur.setContext(this.context).draw()}}}class Stroke extends Modifier{static get CATEGORY(){return"strokes"}static get Type(){return{BRUSH_DOWN:1,BRUSH_UP:2,ROLL_DOWN:3,ROLL_UP:4,RASQUEDO_DOWN:5,RASQUEDO_UP:6,ARPEGGIO_DIRECTIONLESS:7}}static format(R,F){const D=F.left_shift,G=0;if(!R||R.length===0)return this;const U=R.map(Y=>{const Q=Y.getNote();if(Q instanceof StaveNote){const{line:Z,displaced:K}=Q.getKeyProps()[Y.getIndex()],J=K?Q.getExtraLeftPx():0;return{line:Z,shift:J,stroke:Y}}else{const{str:Z}=Q.getPositions()[Y.getIndex()];return{line:Z,shift:0,stroke:Y}}}),W=D,q=U.reduce((Y,{stroke:Q,shift:Z})=>(Q.setXShift(W+Z),Math.max(Q.getWidth()+G,Y)),0);return F.left_shift+=q,!0}constructor(R,F){super(),this.setAttribute("type","Stroke"),this.note=null,this.options=Vex.Merge({},F),this.all_voices="all_voices"in this.options?this.options.all_voices:!0,this.note_end=null,this.index=null,this.type=R,this.position=Modifier.Position.LEFT,this.render_options={font_scale:38,stroke_px:3,stroke_spacing:10},this.font={family:"serif",size:10,weight:"bold italic"},this.setXShift(0),this.setWidth(10)}getCategory(){return Stroke.CATEGORY}getPosition(){return this.position}addEndNote(R){return this.note_end=R,this}draw(){if(this.checkContext(),this.setRendered(),!(this.note&&this.index!=null))throw new Vex.RERR("NoAttachedNote","Can't draw stroke without a note and index.");const R=this.note.getModifierStartXY(this.position,this.index);let F=this.note.getYs(),D=R.y,G=R.y;const U=R.x-5,W=this.note.stave.options.spacing_between_lines_px,q=this.getModifierContext().getModifiers(this.note.getCategory());for(let ie=0;iede.line-he.line);let se=0,re=0,ae=0,le=null,ce=null;for(Z=0;Zre?he:re):ie===Modifier.Position.RIGHT&&(K.setXShift(se),he+=fe,ae=he>ae?he:ae),le=de,ce=J}return F.left_shift+=re,F.right_shift+=ae,!0}constructor(R){super(),this.setAttribute("type","StringNumber"),this.note=null,this.last_note=null,this.index=null,this.string_number=R,this.setWidth(20),this.position=Modifier.Position.ABOVE,this.x_shift=0,this.y_shift=0,this.x_offset=0,this.y_offset=0,this.dashed=!0,this.leg=Renderer.LineEndType.NONE,this.radius=8,this.font={family:"sans-serif",size:10,weight:"bold"}}getCategory(){return StringNumber.CATEGORY}getNote(){return this.note}setNote(R){return this.note=R,this}getIndex(){return this.index}setIndex(R){return this.index=R,this}setLineEndType(R){return R>=Renderer.LineEndType.NONE&&R<=Renderer.LineEndType.DOWN&&(this.leg=R),this}setStringNumber(R){return this.string_number=R,this}setOffsetX(R){return this.x_offset=R,this}setOffsetY(R){return this.y_offset=R,this}setLastNote(R){return this.last_note=R,this}setDashed(R){return this.dashed=R,this}draw(){const R=this.checkContext();if(!(this.note&&this.index!=null))throw new Vex.RERR("NoAttachedNote","Can't draw string number without a note and index.");this.setRendered();const F=this.note.stave.options.spacing_between_lines_px,D=this.note.getModifierStartXY(this.position,this.index);let G=D.x+this.x_shift+this.x_offset,U=D.y+this.y_shift+this.y_offset;switch(this.position){case Modifier.Position.ABOVE:case Modifier.Position.BELOW:{const q=this.note.getStemExtents();let Y=q.topY,Q=q.baseY+2;this.note.stem_direction===StaveNote.STEM_DOWN&&(Y=q.baseY,Q=q.topY-2),this.position===Modifier.Position.ABOVE?U=this.note.hasStem()?Y-F*1.75:D.y-F*1.75:U=this.note.hasStem()?Q+F*1.5:D.y+F*1.75,U+=this.y_shift+this.y_offset;break}case Modifier.Position.LEFT:G-=this.radius/2+5;break;case Modifier.Position.RIGHT:G+=this.radius/2+6;break;default:throw new Vex.RERR("InvalidPosition",`The position ${this.position} is invalid`)}R.save(),R.beginPath(),R.arc(G,U,this.radius,0,Math.PI*2,!1),R.lineWidth=1.5,R.stroke(),R.setFont(this.font.family,this.font.size,this.font.weight);const W=G-R.measureText(this.string_number).width/2;if(R.fillText(""+this.string_number,W,U+4.5),this.last_note!=null){const q=this.last_note.getStemX()-this.note.getX()+5;R.strokeStyle="#000000",R.lineCap="round",R.lineWidth=.6,this.dashed?Renderer.drawDashedLine(R,G+10,U,G+q,U,[3,3]):Renderer.drawDashedLine(R,G+10,U,G+q,U,[3,0]);let Y,Q;switch(this.leg){case Renderer.LineEndType.UP:Y=-10,Q=this.dashed?[3,3]:[3,0],Renderer.drawDashedLine(R,G+q,U,G+q,U+Y,Q);break;case Renderer.LineEndType.DOWN:Y=10,Q=this.dashed?[3,3]:[3,0],Renderer.drawDashedLine(R,G+q,U,G+q,U+Y,Q);break}}R.restore()}}function L$e(...B){Articulation$1.DEBUG&&Vex.L("Vex.Flow.Articulation",B)}const{ABOVE,BELOW}=Modifier.Position,roundToNearestHalf=(B,R)=>B(R/.5)*.5,isWithinLines=(B,R)=>R===ABOVE?B<=5:B>=1,getRoundingFunction=(B,R)=>isWithinLines(B,R)?R===ABOVE?Math.ceil:Math.floor:Math.round,snapLineToStaff=(B,R,F,D)=>{const G=roundToNearestHalf(getRoundingFunction(R,F),R),U=B&&isWithinLines(G,F),W=G%1===0;return U&&W?G+.5*-D:G},isStaveNote=B=>{const R=B.getCategory();return R==="stavenotes"||R==="gracenotes"},isTabNote=B=>{const R=B.getCategory();return R==="tabnotes"||R==="numberednotes"},getTopY=(B,R)=>{const F=B.getStave(),D=B.getStemDirection(),{topY:G,baseY:U}=B.getStemExtents();if(isStaveNote(B))return B.hasStem()?D===Stem.UP?G:U:Math.min(...B.getYs());if(isTabNote(B))return B.hasStem()&&D===Stem.UP?G:F.getYForTopText(R);throw new Vex.RERR("UnknownCategory","Only can get the top and bottom ys of stavenotes and tabnotes")},getBottomY=(B,R)=>{const F=B.getStave(),D=B.getStemDirection(),{topY:G,baseY:U}=B.getStemExtents();if(isStaveNote(B))return B.hasStem()?D===Stem.UP?U:G:Math.max(...B.getYs());if(isTabNote(B))return B.hasStem()?D===Stem.UP?F.getYForBottomText(R):G:F.getYForBottomText(R);throw new Vex.RERR("UnknownCategory","Only can get the top and bottom ys of stavenotes and tabnotes")},getInitialOffset=(B,R)=>{const F=R===ABOVE&&B.getStemDirection()===Stem.UP||R===BELOW&&B.getStemDirection()===Stem.DOWN;return isStaveNote(B)?B.hasStem()&&F?.5:1:B.hasStem()&&F?1:0};class Articulation$1 extends Modifier{static get CATEGORY(){return"articulations"}static get INITIAL_OFFSET(){return-.5}static format(R,F){if(!R||R.length===0)return!1;const D=Y=>Y.getPosition()===ABOVE,G=Y=>Y.getPosition()===BELOW,U=.5,W=(Y,Q,Z)=>roundToNearestHalf(getRoundingFunction(Q,Z),Y.glyph.getMetrics().height/10+U);R.filter(D).forEach(Y=>{Y.setTextLine(F.top_text_line),F.top_text_line+=W(Y,F.top_text_line,ABOVE)}),R.filter(G).forEach(Y=>{Y.setTextLine(F.text_line),F.text_line+=W(Y,F.text_line,BELOW)});const q=R.map(Y=>Y.getWidth()).reduce((Y,Q)=>Math.max(Q,Y));return F.left_shift+=q/2,F.right_shift+=q/2,!0}static easyScoreHook({articulations:R},F,D){if(!R)return;const G={staccato:"a.",tenuto:"a-"};R.split(",").map(U=>U.trim().split(".")).map(([U,W])=>{const q={type:G[U]};return W&&(q.position=Modifier.PositionString[W]),D.getFactory().Articulation(q)}).map(U=>F.addModifier(0,U))}constructor(R){if(super(),this.setAttribute("type","Articulation"),this.note=null,this.index=null,this.type=R,this.position=BELOW,this.render_options={font_scale:38},this.articulation=Flow.articulationCodes(this.type),!this.articulation)throw new Vex.RERR("ArgumentError",`Articulation not found: ${this.type}`);this.glyph=new Glyph(this.articulation.code,this.render_options.font_scale),this.setWidth(this.glyph.getMetrics().width)}getCategory(){return Articulation$1.CATEGORY}draw(){const{note:R,index:F,position:D,glyph:G,articulation:{between_lines:U},text_line:W,context:q}=this;if(this.checkContext(),!R||F==null)throw new Vex.RERR("NoAttachedNote","Can't draw Articulation without a note and index.");this.setRendered();const Y=R.getStave(),Q=Y.getSpacingBetweenLines(),Z=R.getCategory()==="tabnotes",{x:K}=R.getModifierStartXY(D,F),J=!U||Z,ie=getInitialOffset(R,D);let ne={[ABOVE]:()=>{G.setOrigin(.5,1);const se=getTopY(R,W)-(W+ie)*Q+(this.y_shift||0);return J?Math.min(Y.getYForTopText(Articulation$1.INITIAL_OFFSET),se):se},[BELOW]:()=>{G.setOrigin(.5,0);const se=getBottomY(R,W)+(W+ie)*Q;return J?Math.max(Y.getYForBottomText(Articulation$1.INITIAL_OFFSET),se):se}}[D]();if(!Z){const se=D===ABOVE?-1:1,re=Z?R.positions[F].str:R.getKeyProps()[F].line,le=(R.getYs()[F]-ne)/Q+re,ce=snapLineToStaff(U,le,D,se);isWithinLines(ce,D)&&G.setOrigin(.5,.5),ne+=Math.abs(ce-le)*Q*se}L$e(`Rendering articulation at (x: ${K}, y: ${ne})`),G.render(q,K,ne)}}class TickContext extends Tickable{static getNextContext(R){const F=R.tContexts,D=F.indexOf(R);return F[D+1]}constructor(){super(),this.setAttribute("type","TickContext"),this.currentTick=new Fraction(0,1),this.maxTicks=new Fraction(0,1),this.minTicks=null,this.padding=3,this.x=0,this.xBase=0,this.xOffset=0,this.tickables=[],this.notePx=0,this.extraLeftPx=0,this.extraRightPx=0,this.tContexts=[]}getX(){return this.x}setX(R){return this.x=R,this.xBase=R,this.xOffset=0,this}getXBase(){return this.xBase}setXBase(R){this.xBase=R,this.x=R+this.xOffset}getXOffset(){return this.xOffset}setXOffset(R){this.xOffset=R,this.x=this.xBase+R}getWidth(){return this.width+this.padding*2}setPadding(R){return this.padding=R,this}getMaxTicks(){return this.maxTicks}getMinTicks(){return this.minTicks}getTickables(){return this.tickables}getCenterAlignedTickables(){return this.tickables.filter(R=>R.isCenterAligned())}getMetrics(){const{width:R,notePx:F,extraLeftPx:D,extraRightPx:G}=this;return{width:R,notePx:F,extraLeftPx:D,extraRightPx:G}}getCurrentTick(){return this.currentTick}setCurrentTick(R){this.currentTick=R,this.preFormatted=!1}getExtraPx(){let R=0,F=0,D=0,G=0;for(let U=0;U0&&G--;for(let Y=0;Y{L$b("Preformatting ModifierContext: ",R.CATEGORY),R.format(this.getModifiers(R.CATEGORY),this.state,this)}),this.width=this.state.left_shift+this.state.right_shift,this.preFormatted=!0)}postFormat(){this.postFormatted||this.POSTFORMAT.forEach(R=>{L$b("Postformatting ModifierContext: ",R.CATEGORY),R.postFormat(this.getModifiers(R.CATEGORY),this)})}}function L$a(...B){Formatter.DEBUG&&Vex.L("Vex.Flow.Formatter",B)}function getNext(B,R){var D,G;const F=B[R+1];return F&&((D=F==null?void 0:F.keys)==null?void 0:D.includes("b/4"))||((G=F==null?void 0:F.keys)==null?void 0:G.includes("r/4"))?getNext(B,R+1):F}function createContexts(B,R,F){if(!B||!B.length)throw new Vex.RERR("BadArgument","No voices to format");const D=B[0].getTotalTicks(),G=B.reduce((Y,Q)=>{if(!Q.getTotalTicks().equals(D))throw new Vex.RERR("TickMismatch","Voices should have same total note duration in ticks.");if(Q.getMode()===Voice$1.Mode.STRICT&&!Q.isComplete())throw new Vex.RERR("IncompleteVoice","Voice does not have enough notes.");return Math.max(Y,Fraction.LCM(Y,Q.getResolutionMultiplier()))},1),U={},W=[],q=[];return B.forEach(Y=>{const Q=new Fraction(0,G);Y.getTickables().forEach(Z=>{const K=Q.numerator;if(!U[K]){const J=new R;q.push(J),U[K]=J}F(Z,U[K]),W.push(K),Q.add(Z.getTicks())})}),{map:U,array:q,list:Vex.SortAndUnique(W,(Y,Q)=>Y-Q,(Y,Q)=>Y===Q),resolutionMultiplier:G}}class Formatter{static SimpleFormat(R,F=0,{paddingBetween:D=10}={}){R.reduce((G,U)=>{U.addToModifierContext(new ModifierContext);const W=new TickContext().addTickable(U).preFormat(),q=W.getExtraPx();return W.setX(G+q.left),G+W.getWidth()+q.right+D},F)}static plotDebugging(R,F,D,G,U){const W=D+Note.STAVEPADDING,q=F.contextGaps;function Y(Q,Z,K){R.beginPath(),R.setStrokeStyle(K),R.setFillStyle(K),R.setLineWidth(1),R.fillRect(Q,G,Z-Q,U-G)}R.save(),R.setFont("Arial",8,""),q.gaps.forEach(Q=>{Y(W+Q.x1,W+Q.x2,"#aaa"),R.fillText(Math.round(Q.x2-Q.x1),W+Q.x1,U+12)}),R.fillText(Math.round(q.total)+"px",W-20,U+12),R.setFillStyle("red"),R.fillText("Loss: "+F.lossHistory.map(Q=>Math.round(Q)),W-20,U+22),R.restore()}static FormatAndDraw(R,F,D,G){const U={auto_beam:!1,align_rests:!1};typeof G=="object"?Vex.Merge(U,G):typeof G=="boolean"&&(U.auto_beam=G);const W=new Voice$1(Flow.TIME4_4).setMode(Voice$1.Mode.SOFT).addTickables(D),q=U.auto_beam?Beam$1.applyAndGetBeams(W):[];return new Formatter().joinVoices([W],{align_rests:U.align_rests}).formatToStave([W],F,{align_rests:U.align_rests,stave:F}),W.setStave(F).draw(R,F),q.forEach(Y=>Y.setContext(R).draw()),W.getBoundingBox()}static FormatAndDrawTab(R,F,D,G,U,W,q){const Y={auto_beam:W,align_rests:!1};typeof q=="object"?Vex.Merge(Y,q):typeof q=="boolean"&&(Y.auto_beam=q);const Q=new Voice$1(Flow.TIME4_4).setMode(Voice$1.Mode.SOFT).addTickables(U),Z=new Voice$1(Flow.TIME4_4).setMode(Voice$1.Mode.SOFT).addTickables(G),K=Y.auto_beam?Beam$1.applyAndGetBeams(Q):[];new Formatter().joinVoices([Q],{align_rests:Y.align_rests}).joinVoices([Z]).formatToStave([Q,Z],D,{align_rests:Y.align_rests}),Q.draw(R,D),Z.draw(R,F),K.forEach(J=>J.setContext(R).draw()),new StaveConnector(D,F).setContext(R).draw()}static AlignRestsToNotes(R,F,D){return R.forEach((G,U)=>{if(G instanceof StaveNote&&G.isRest()){if(G.tuplet&&!D)return;if(["va5","v3c"].includes(G.glyph.code_head)){const W=G.glyph.code_head==="va5"?10:14,q=R[U-1],Y=getNext(R,U);let Q=!1;if(q&&Y&&q.beam&&Y.beam&&(Q=q.beam.notes.includes(Y)),Q){G.setKeyLine(0,3);let Z=[...q.beam.notes,...Y.beam.notes];G.beam&&G.beam.notes&&Z.push(...G.beam.notes),Z=Array.from(new Set(Z));for(let K=0;K0){const ne=J<1.5?Math.abs(J-1.5)*W:0;ie.setResetHeight(ne)}else{const ne=J>4.5?Math.abs(J-4.5)*W:0;ie.setResetHeight(ne)}}}}}}),this}constructor(){this.minTotalWidth=0,this.hasMinTotalWidth=!1,this.totalTicks=new Fraction(0,1),this.tickContexts=null,this.modiferContexts=null,this.contextGaps={total:0,gaps:[]},this.voices=[]}alignRests(R,F){if(!R||!R.length)throw new Vex.RERR("BadArgument","No voices to format rests");R.forEach(D=>Formatter.AlignRestsToNotes(D.getTickables(),F))}preCalculateMinTotalWidth(R){if(this.hasMinTotalWidth)return this.minTotalWidth;if(!this.tickContexts){if(!R)throw new Vex.RERR("BadArgument","'voices' required to run preCalculateMinTotalWidth");this.createTickContexts(R)}const{list:F,map:D}=this.tickContexts;return this.minTotalWidth=F.map(G=>{const U=D[G];return U.preFormat(),U.getWidth()}).reduce((G,U)=>G+U,0),this.hasMinTotalWidth=!0,this.minTotalWidth}getMinTotalWidth(){if(!this.hasMinTotalWidth)throw new Vex.RERR("NoMinTotalWidth","Call 'preCalculateMinTotalWidth' or 'preFormat' before calling 'getMinTotalWidth'");return this.minTotalWidth}createModifierContexts(R){const F=createContexts(R,ModifierContext,(D,G)=>D.addToModifierContext(G));return this.modiferContexts=F,F}createTickContexts(R){const F=createContexts(R,TickContext,(D,G)=>G.addTickable(D));return F.array.forEach(D=>{D.tContexts=F.array}),this.totalTicks=R[0].getTicksUsed().clone(),this.tickContexts=F,F}preFormat(R=0,F,D,G){const U=this.tickContexts,{list:W,map:q,resolutionMultiplier:Y}=U;D&&G&&D.forEach(se=>se.setStave(G).preFormat());let Q=0,Z=0;const K=R/2;if(this.minTotalWidth=0,W.forEach(se=>{const re=q[se];F&&re.setContext(F),re.preFormat();const ae=re.getWidth();this.minTotalWidth+=ae;const le=re.getMetrics();Q=Q+Z+le.extraLeftPx,re.setX(Q),Z=ae-le.extraLeftPx}),this.minTotalWidth=Q+Z,this.hasMinTotalWidth=!0,R<=0)return;const ie=(R-this.minTotalWidth)/(this.totalTicks.value()*Y);let ne=0;W.forEach((se,re)=>{const ae=W[re-1]||0,le=q[se];ne+=(se-ae)*ie,le.setX(le.getX()+ne),le.getCenterAlignedTickables().forEach(he=>{he.center_x_shift=K-le.getX()})}),W.length!==1&&(this.justifyWidth=R,this.lossHistory=[],this.evaluate())}evaluate(){const R=this.justifyWidth;this.contextGaps={total:0,gaps:[]},this.tickContexts.list.forEach((U,W)=>{if(W===0)return;const q=this.tickContexts.list[W-1],Y=this.tickContexts.map[q],Q=this.tickContexts.map[U],Z=Y.getMetrics(),K=Y.getX()+Z.width,J=Q.getX(),ie=J-K;this.contextGaps.total+=ie,this.contextGaps.gaps.push({x1:K,x2:J}),Q.getFormatterMetrics().freedom.left=ie,Y.getFormatterMetrics().freedom.right=ie});const F=this.durationStats={};function D(U,W){const q=F[U];q===void 0?F[U]={mean:W,count:1}:(q.count+=1,q.mean=(q.mean+W)/2)}this.voices.forEach(U=>{U.getTickables().forEach((W,q,Y)=>{const Q=W.getTicks().clone().simplify().toString(),Z=W.getMetrics(),K=W.getFormatterMetrics(),J=W.getX()+Z.noteWidth+Z.modRightPx+Z.extraRightPx;let ie=0;if(q{U.getTickables().forEach(W=>{const q=W.getTicks().clone().simplify().toString(),Y=W.getFormatterMetrics();Y.iterations+=1,Y.space.deviation=Y.space.used-F[q].mean,Y.duration=q,Y.space.mean=F[q].mean,G+=Math.pow(F[q].mean,2)})}),this.totalCost=Math.sqrt(G),this.lossHistory.push(this.totalCost),this}tune(){const R=G=>G.reduce((U,W)=>U+W);function F(G,U,W,q){G.setX(G.getX()+q),G.getFormatterMetrics().freedom.left+=q,G.getFormatterMetrics().freedom.right-=q,U&&(U.getFormatterMetrics().freedom.right+=q),W&&(W.getFormatterMetrics().freedom.left-=q)}let D=0;return this.tickContexts.list.forEach((G,U,W)=>{const q=this.tickContexts.map[G],Y=U>0?this.tickContexts.map[W[U-1]]:null,Q=UJ.getFormatterMetrics().space.deviation));Z>0?D=-Math.min(q.getFormatterMetrics().freedom.right,Math.abs(Z)):Z<0&&(Q?D=Math.min(Q.getFormatterMetrics().freedom.right,Math.abs(Z)):D=0);const K=Math.min(5,Math.abs(D));D=D>0?K:-K}),this.evaluate()}postFormat(){const R=F=>F.list.forEach(D=>F.map[D].postFormat());return R(this.modiferContexts),R(this.tickContexts),this}joinVoices(R){return this.createModifierContexts(R),this.hasMinTotalWidth=!1,this}format(R,F,D){const G={align_rests:!1,context:null,stave:null};return Vex.Merge(G,D),this.voices=R,this.alignRests(R,G.align_rests),this.createTickContexts(R),this.preFormat(F,G.context,R,G.stave),G.stave&&this.postFormat(),this}formatToStave(R,F,D){const G=F.getNoteEndX()-F.getNoteStartX()-10;L$a("Formatting voices to width: ",G);const U={context:F.getContext()};return Vex.Merge(U,D),this.format(R,G,U)}}class StaveModifier extends Element$1{static get Position(){return{LEFT:1,RIGHT:2,ABOVE:3,BELOW:4,BEGIN:5,END:6}}constructor(){super(),this.setAttribute("type","StaveModifier"),this.padding=10,this.position=StaveModifier.Position.ABOVE,this.layoutMetrics=null}getPosition(){return this.position}setPosition(R){return this.position=R,this}getStave(){return this.stave}setStave(R){return this.stave=R,this}getWidth(){return this.width}setWidth(R){return this.width=R,this}getX(){return this.x}setX(R){return this.x=R,this}getCategory(){return""}makeSpacer(R){return{getContext(){return!0},setStave(){},renderToStave(){},getMetrics(){return{width:R}}}}placeGlyphOnLine(R,F,D){R.setYShift(F.getYForLine(D)-F.getYForGlyphs())}getPadding(R){return R!==void 0&&R<2?0:this.padding}setPadding(R){return this.padding=R,this}setLayoutMetrics(R){return this.layoutMetrics=R,this}getLayoutMetrics(){return this.layoutMetrics}}class Barline extends StaveModifier{static get CATEGORY(){return"barlines"}static get type(){return{SINGLE:1,DOUBLE:2,END:3,REPEAT_BEGIN:4,REPEAT_END:5,REPEAT_BOTH:6,NONE:7}}static get typeString(){return{single:Barline.type.SINGLE,double:Barline.type.DOUBLE,end:Barline.type.END,repeatBegin:Barline.type.REPEAT_BEGIN,repeatEnd:Barline.type.REPEAT_END,repeatBoth:Barline.type.REPEAT_BOTH,none:Barline.type.NONE}}constructor(R){super(),this.setAttribute("type","Barline"),this.thickness=Flow.STAVE_LINE_THICKNESS;const F=Barline.type;this.widths={},this.widths[F.SINGLE]=5,this.widths[F.DOUBLE]=5,this.widths[F.END]=5,this.widths[F.REPEAT_BEGIN]=5,this.widths[F.REPEAT_END]=5,this.widths[F.REPEAT_BOTH]=5,this.widths[F.NONE]=5,this.paddings={},this.paddings[F.SINGLE]=0,this.paddings[F.DOUBLE]=0,this.paddings[F.END]=0,this.paddings[F.REPEAT_BEGIN]=15,this.paddings[F.REPEAT_END]=15,this.paddings[F.REPEAT_BOTH]=15,this.paddings[F.NONE]=0,this.layoutMetricsMap={},this.layoutMetricsMap[F.SINGLE]={xMin:0,xMax:1,paddingLeft:5,paddingRight:5},this.layoutMetricsMap[F.DOUBLE]={xMin:-3,xMax:1,paddingLeft:5,paddingRight:5},this.layoutMetricsMap[F.END]={xMin:-5,xMax:1,paddingLeft:5,paddingRight:5},this.layoutMetricsMap[F.REPEAT_END]={xMin:-10,xMax:1,paddingLeft:5,paddingRight:5},this.layoutMetricsMap[F.REPEAT_BEGIN]={xMin:-2,xMax:10,paddingLeft:5,paddingRight:5},this.layoutMetricsMap[F.REPEAT_BOTH]={xMin:-10,xMax:10,paddingLeft:5,paddingRight:5},this.layoutMetricsMap[F.NONE]={xMin:0,xMax:0,paddingLeft:5,paddingRight:5},this.setPosition(StaveModifier.Position.BEGIN),this.setType(R)}getCategory(){return Barline.CATEGORY}getType(){return this.type}setType(R){return this.type=typeof R=="string"?Barline.typeString[R]:R,this.setWidth(this.widths[this.type]),this.setPadding(this.paddings[this.type]),this.setLayoutMetrics(this.layoutMetricsMap[this.type]),this}draw(R){switch(R.checkContext(),this.setRendered(),this.type){case Barline.type.SINGLE:this.drawVerticalBar(R,this.x,!1);break;case Barline.type.DOUBLE:this.drawVerticalBar(R,this.x,!0);break;case Barline.type.END:this.drawVerticalEndBar(R,this.x);break;case Barline.type.REPEAT_BEGIN:this.drawRepeatBar(R,this.x,!0),R.getX()!==this.x&&this.drawVerticalBar(R,R.getX());break;case Barline.type.REPEAT_END:this.drawRepeatBar(R,this.x,!1);break;case Barline.type.REPEAT_BOTH:this.drawRepeatBar(R,this.x,!1),this.drawRepeatBar(R,this.x,!0);break}}drawVerticalBar(R,F,D){R.checkContext();const G=R.getTopLineTopY(),U=R.getBottomLineBottomY();D&&R.context.fillRect(F-3,G,1,U-G),R.context.fillRect(F,G,1,U-G)}drawVerticalEndBar(R,F){R.checkContext();const D=R.getTopLineTopY(),G=R.getBottomLineBottomY();R.context.fillRect(F-5,D,1,G-D),R.context.fillRect(F-2,D,3,G-D)}drawRepeatBar(R,F,D){R.checkContext();const G=R.getTopLineTopY(),U=R.getBottomLineBottomY();let W=3;D||(W=-5),R.context.fillRect(F+W,G,1,U-G),R.context.fillRect(F-2,G,3,U-G);const q=2;D?W+=4:W-=4;const Y=F+W+q/2;let Q=(R.getNumLines()-1)*R.getSpacingBetweenLines();Q=Q/2-R.getSpacingBetweenLines()/2;let Z=G+Q+q/2;R.context.beginPath(),R.context.arc(Y,Z,q,0,Math.PI*2,!1),R.context.fill(),Z+=R.getSpacingBetweenLines(),R.context.beginPath(),R.context.arc(Y,Z,q,0,Math.PI*2,!1),R.context.fill()}}class Repetition$1 extends StaveModifier{static get CATEGORY(){return"repetitions"}static get type(){return{NONE:1,CODA_LEFT:2,CODA_RIGHT:3,SEGNO_LEFT:4,SEGNO_RIGHT:5,DC:6,DC_AL_CODA:7,DC_AL_FINE:8,DS:9,DS_AL_CODA:10,DS_AL_FINE:11,FINE:12,TO_CODA:13}}constructor(R,F,D){super(),this.setAttribute("type","Repetition"),this.symbol_type=R,this.x=F,this.x_shift=0,this.y_shift=D,this.font={family:"times",size:12,weight:"bold italic"}}getCategory(){return Repetition$1.CATEGORY}setShiftX(R){return this.x_shift=R,this}setShiftY(R){return this.y_shift=R,this}setX(R){return this.x=R,this}draw(R,F){switch(this.setRendered(),this.symbol_type){case Repetition$1.type.CODA_RIGHT:this.drawCodaFixed(R,F+R.width);break;case Repetition$1.type.CODA_LEFT:this.drawSymbolText(R,F,"Coda",!1);break;case Repetition$1.type.SEGNO_LEFT:this.drawSignoFixed(R,F);break;case Repetition$1.type.SEGNO_RIGHT:this.drawSignoFixed(R,F+R.width);break;case Repetition$1.type.DC:this.drawSymbolText(R,F,"D.C.",!1);break;case Repetition$1.type.DC_AL_CODA:this.drawSymbolText(R,F,"D.C. al Coda",!0);break;case Repetition$1.type.DC_AL_FINE:this.drawSymbolText(R,F,"D.C. al Fine",!1);break;case Repetition$1.type.DS:this.drawSymbolText(R,F,"D.S.",!1);break;case Repetition$1.type.DS_AL_CODA:this.drawSymbolText(R,F,"D.S. al Coda",!0);break;case Repetition$1.type.DS_AL_FINE:this.drawSymbolText(R,F,"D.S. al Fine",!1);break;case Repetition$1.type.FINE:this.drawSymbolText(R,F,"Fine",!1);break;case Repetition$1.type.TO_CODA:this.drawSymbolText(R,F,"To Coda",!0);break}return this}drawCodaFixed(R,F){const D=R.getYForTopText(R.options.num_lines)+this.y_shift;return Glyph.renderGlyph(R.context,this.x+F+this.x_shift,D+25,40,"v4d",!0),this}drawSignoFixed(R,F){const D=R.getYForTopText(R.options.num_lines)+this.y_shift;return Glyph.renderGlyph(R.context,this.x+F+this.x_shift,D+25,30,"v8c",!0),this}drawSymbolText(R,F,D,G){const U=R.checkContext();U.save(),U.setFont(this.font.family,this.font.size,this.font.weight);let W=0+this.x_shift,q=F+this.x_shift;this.symbol_type===Repetition$1.type.CODA_LEFT?(W=this.x+R.options.vertical_bar_width,q=W+U.measureText(D).width+12):(this.x_shift=-(W+U.measureText(D).width+12+R.options.vertical_bar_width+12),W=this.x+this.x_shift+R.options.vertical_bar_width,q=W+U.measureText(D).width+12);const Y=R.getYForTopText(R.options.num_lines)+this.y_shift+25;return G&&Glyph.renderGlyph(U,q,Y,40,"v4d",!0),U.fillText(D,W,Y+5),U.restore(),this}}class StaveSection extends StaveModifier{static get CATEGORY(){return"stavesection"}constructor(R,F,D){super(),this.setAttribute("type","StaveSection"),this.setWidth(16),this.section=R,this.x=F,this.shift_x=0,this.shift_y=D,this.font={family:"sans-serif",size:12,weight:"bold"}}getCategory(){return StaveSection.CATEGORY}setStaveSection(R){return this.section=R,this}setShiftX(R){return this.shift_x=R,this}setShiftY(R){return this.shift_y=R,this}draw(R,F){const D=R.checkContext();this.setRendered(),D.save(),D.lineWidth=2,D.setFont(this.font.family,this.font.size,this.font.weight);const G=D.measureText(""+this.section),U=G.width,W=G.height;let q=U+6;q<18&&(q=18);const Y=W,Q=R.getYForTopText(3)+this.shift_y;let Z=this.x+F;return D.beginPath(),D.lineWidth=2,D.rect(Z,Q+W/4,q,Y),D.stroke(),Z+=(q-U)/2,D.fillText(""+this.section,Z,Q+16),D.restore(),this}}class StaveTempo extends StaveModifier{static get CATEGORY(){return"stavetempo"}constructor(R,F,D){super(),this.setAttribute("type","StaveTempo"),this.tempo=R,this.position=Modifier.Position.ABOVE,this.x=F,this.shift_x=10,this.shift_y=D,this.font={family:"times",size:14,weight:"bold"},this.render_options={glyph_font_scale:30}}getCategory(){return StaveTempo.CATEGORY}setTempo(R){return this.tempo=R,this}setShiftX(R){return this.shift_x=R,this}setShiftY(R){return this.shift_y=R,this}draw(R,F){const D=R.checkContext();this.setRendered();const G=this.render_options,U=G.glyph_font_scale/38,W=this.tempo.name,q=this.tempo.duration,Y=this.tempo.dots,Q=this.tempo.bpm,Z=this.font;let K=this.x+this.shift_x+F;const J=R.getYForTopText(1)+this.shift_y;if(D.save(),D.openGroup("stavetempo",null,{}),W&&(D.setFont(Z.family,Z.size,Z.weight),D.fillText(W,K,J),K+=D.measureText(W).width),q&&Q){D.setFont(Z.family,Z.size,"normal"),W&&(K+=D.measureText(" ").width,D.fillText("(",K,J),K+=D.measureText("(").width);const ie=Flow.getGlyphProps(q);if(K+=3*U,Glyph.renderGlyph(D,K,J,G.glyph_font_scale,ie.code_head),K+=ie.getWidth()*U,ie.stem){let ne=30;ie.beam_count&&(ne+=3*(ie.beam_count-1)),ne*=U;const se=J-ne;D.fillRect(K-U,se,U,ne),ie.flag&&(Glyph.renderGlyph(D,K,se,G.glyph_font_scale,ie.code_flag_upstem),Y||(K+=6*U))}for(let ne=0;ne=R.line?Y.above:Y.below)}this.placeGlyphOnLine(G,this.stave,R.line),this.glyphs.push(G);const W=this.xPositions[this.xPositions.length-1],q=G.getMetrics().width+U;this.xPositions.push(W+q),this.width+=q}cancelKey(R){return this.formatted=!1,this.cancelKeySpec=R,this}convertToCancelAccList(R){const F=Flow.keySignature(R),D=this.accList.length>0&&F.length>0&&F[0].type!==this.accList[0].type,G=D?F.length:F.length-this.accList.length;if(G<1)return;const U=[];for(let W=0;W0?R[0].type:null;let D;if(this.cancelKeySpec&&(D=this.convertToCancelAccList(this.cancelKeySpec)),this.alterKeySpec&&this.convertToAlterAccList(this.alterKeySpec),this.accList.length>0){const G=(this.position===StaveModifier.Position.END?this.stave.endClef:this.stave.clef)||this.stave.clef;D&&this.convertAccLines(G,D.type,D.accList),this.convertAccLines(G,F,R);for(let U=0;U0){this.stave.context.openGroup("keysignature");for(let R=0;R{const R=B.split("/").filter(F=>F!=="");if(R.length!==2)throw new Vex.RERR("BadTimeSignature",`Invalid time spec: ${B}. Must be in the form "/"`);R.forEach(F=>{if(isNaN(Number(F)))throw new Vex.RERR("BadTimeSignature",`Invalid time spec: ${B}. Must contain two valid numbers.`)})};class TimeSignature extends StaveModifier{static get CATEGORY(){return"timesignatures"}static get glyphs(){return{C:{code:"v41",point:40,line:2},"C|":{code:"vb6",point:40,line:2}}}constructor(R=null,F=15,D=!0){if(super(),this.setAttribute("type","TimeSignature"),this.validate_args=D,R===null)return;const G=F;this.point=40,this.topLine=2,this.bottomLine=4,this.setPosition(StaveModifier.Position.BEGIN),this.setTimeSig(R),this.setWidth(this.timeSig.glyph.getMetrics().width),this.setPadding(G)}getCategory(){return TimeSignature.CATEGORY}parseTimeSpec(R){if(R==="C"||R==="C|"){const{line:G,code:U,point:W}=TimeSignature.glyphs[R];return{line:G,num:!1,glyph:new Glyph(U,W)}}this.validate_args&&assertIsValidFraction(R);const[F,D]=R.split("/").map(G=>G.split(""));return{num:!0,glyph:this.makeTimeSignatureGlyph(F,D)}}makeTimeSignatureGlyph(R,F){const D=new Glyph("v0",this.point);D.topGlyphs=[],D.botGlyphs=[];let G=0;for(let K=0;KU?G:U,q=D.getMetrics().x_min;D.getMetrics=()=>({x_min:q,x_max:q+W,width:W});const Y=(W-G)/2,Q=(W-U)/2,Z=this;return D.renderToStave=function(J){let ie=J+Y;for(let ne=0;neF.visible).filter(Boolean).length}getOptions(){return this.options}setNoteStartX(R){this.formatted||this.format(),this.setStartX(R);const F=this.modifiers[0];return F.setX(this.start_x-F.getWidth()),this}setStartX(R){this.start_x=R}getNoteStartX(){return this.formatted||this.format(),this.start_x}getNoteEndX(){return this.formatted||this.format(),this.end_x}getTieStartX(){return this.start_x}getTieEndX(){return this.x+this.width}getX(){return this.x}getNumLines(){return this.options.num_lines}setNumLines(R){return this.options.num_lines=parseInt(R,10),this.resetLines(),this}setY(R){return this.y=R,this}getTopLineTopY(){return this.getYForLine(0)-Flow.STAVE_LINE_THICKNESS/2}getBottomLineBottomY(){return this.getLines()===2?this.getYForLine(6)+Flow.STAVE_LINE_THICKNESS/2:this.getYForLine(this.getNumLines()-1)+Flow.STAVE_LINE_THICKNESS/2}setX(R){const F=R-this.x;this.formatted=!1,this.x=R,this.start_x+=F,this.end_x+=F;for(let D=0;DD.getWidth()&&(F-=D.getWidth()),F}setRepetitionTypeLeft(R,F){return this.modifiers.push(new Repetition$1(R,this.x,F)),this}setRepetitionTypeRight(R,F){return this.modifiers.push(new Repetition$1(R,this.x,F)),this}setVoltaType(R,F,D){if(R===2)volta.type===2&&volta.stave.modifiers.push(new Volta(volta.type,volta.number_t,volta.x,volta.y)),volta={stave:this,type:R,number_t:F,MeasureNumber:this.MeasureNumber,y:D,x:this.x};else if(R===4){let G=this.MeasureNumber-volta.MeasureNumber,U=Math.max(volta.y,D);for(let W=0;W<=G;W++)voltaMeasureNumber[volta.MeasureNumber+W]={type:W===0?2:W===G?4:0,number_t:F,y:U};volta={}}else this.modifiers.push(new Volta(R,F,this.x,D));return this}drawVolta(){let R=voltaMeasureNumber[this.MeasureNumber];R&&(this.modifiers.push(new Volta(R.type,R.number_t,this.x,R.y)),delete voltaMeasureNumber[this.MeasureNumber]),volta.type&&volta.MeasureNumber==this.MeasureNumber&&(this.modifiers.push(new Volta(volta.type,volta.number_t,this.x,volta.y)),volta={})}setSection(R,F,D=0,G=12){const U=new StaveSection(R,this.x+D,F);return U.font.size=G,this.modifiers.push(U),this}setTempo(R,F){return this.modifiers.push(new StaveTempo(R,this.x,F)),this}setText(R,F,D){let G=new StaveText(R,F,D);return G.setFont({family:"Arial",size:14,weight:"normal"}),this.modifiers.push(G),this}getHeight(){return this.height}getSpacingBetweenLines(){return this.options.spacing_between_lines_px}getBoundingBox(){return new BoundingBox(this.x,this.y,this.width,this.getBottomY()-this.y)}getBottomY(){const R=this.options,F=R.spacing_between_lines_px;return this.getYForLine(R.num_lines)+R.space_below_staff_ln*F}getBottomLineY(){return this.getYForLine(this.options.num_lines)}getYForLine(R){const F=this.options,D=F.spacing_between_lines_px,G=F.space_above_staff_ln;return this.y+R*D+G*D}getLineForY(R){const F=this.options,D=F.spacing_between_lines_px,G=F.space_above_staff_ln;return(R-this.y)/D-G}getYForTopText(R){const F=R||0;return this.getYForLine(-F-this.options.top_text_position)}getYForBottomText(R){const F=R||0;return this.getYForLine(this.options.bottom_text_position+F)}getYForNote(R){const F=this.options,D=F.spacing_between_lines_px,G=F.space_above_staff_ln;return this.y+G*D+5*D-R*D}getYForGlyphs(){return this.getYForLine(3)}addModifier(R,F,D){return F!==void 0&&R.setPosition(F),D&&(this.timeSignature.numerator=D.numerator,this.timeSignature.denominator=D.denominator),R.setStave(this),this.formatted=!1,this.modifiers.push(R),this}addEndModifier(R){return this.addModifier(R,StaveModifier.Position.END),this}setBegBarType(R){const{SINGLE:F,REPEAT_BEGIN:D,NONE:G}=Barline.type;return(R===F||R===D||R===G)&&(this.modifiers[0].setType(R),this.formatted=!1),this}setEndBarType(R){return R!==Barline.type.REPEAT_BEGIN&&(this.modifiers[1].setType(R),this.formatted=!1),this}setClef(R,F,D,G){G===void 0&&(G=StaveModifier.Position.BEGIN),G===StaveModifier.Position.END?this.endClef=R:this.clef=R;const U=this.getModifiers(G,Clef.CATEGORY);return U.length===0?this.addClef(R,F,D,G):U[0].setType(R,F,D),this}setEndClef(R,F,D){return this.setClef(R,F,D,StaveModifier.Position.END),this}setKeySignature(R,F,D){this.options.keySignature=R,D===void 0&&(D=StaveModifier.Position.BEGIN);const G=this.getModifiers(D,KeySignature.CATEGORY);return G.length===0?this.options.DYMusicScoreType!=="jianpu"&&this.addKeySignature(R,F,D):G[0].setKeySig(R,F),this}setEndKeySignature(R,F){return this.setKeySignature(R,F,StaveModifier.Position.END),this}setTimeSignature(R,F,D){D===void 0&&(D=StaveModifier.Position.BEGIN);const G=this.getModifiers(D,TimeSignature.CATEGORY);return G.length===0?this.addTimeSignature(R,F,D):G[0].setTimeSig(R),this}setEndTimeSignature(R,F){return this.setTimeSignature(R,F,StaveModifier.Position.END),this}addKeySignature(R,F,D){return D===void 0&&(D=StaveModifier.Position.BEGIN),this.addModifier(new KeySignature(R,F).setPosition(D),D),this}addClef(R,F,D,G){return G===void 0||G===StaveModifier.Position.BEGIN?this.clef=R:G===StaveModifier.Position.END&&(this.endClef=R),this.addModifier(new Clef(R,F,D),G),this}addEndClef(R,F,D){return this.addClef(R,F,D,StaveModifier.Position.END),this}addTimeSignature(R,F,D){return this.addModifier(new TimeSignature(R,F),D),this}addEndTimeSignature(R,F){return this.addTimeSignature(R,F,StaveModifier.Position.END),this}addTrebleGlyph(){return this.addClef("treble"),this}getModifiers(R,F){return R===void 0&&F===void 0?this.modifiers:this.modifiers.filter(D=>(R===void 0||R===D.getPosition())&&(F===void 0||F===D.getCategory()))}sortByCategory(R,F){for(let D=R.length-1;D>=0;D--)for(let G=0;GF[R[G+1].getCategory()]){const U=R[G];R[G]=R[G+1],R[G+1]=U}}format(){const R=this.modifiers[0],F=this.modifiers[1],D=this.getModifiers(StaveModifier.Position.BEGIN),G=this.getModifiers(StaveModifier.Position.END);this.sortByCategory(D,{barlines:0,clefs:1,keysignatures:2,timesignatures:3}),this.sortByCategory(G,{timesignatures:0,keysignatures:1,barlines:2,clefs:3}),D.length>1&&R.getType()===Barline.type.REPEAT_BEGIN&&(D.push(D.splice(0,1)[0]),D.splice(0,0,new Barline(Barline.type.SINGLE))),G.indexOf(F)>0&&G.splice(0,0,new Barline(Barline.type.NONE));let U,W,q,Y=0,Q=this.x;for(let J=0;J{W.includes(Y)?q.visible=!0:q.visible=!1})}for(let W=0;Wthis.drawStaveTempo()),this.measure>0){this.context.save(),this.context.setFont(this.font.family,this.font.size,this.font.weight);const W=this.context.measureText(""+this.measure).width;G=this.getYForTopText(0)+3,this.context.fillText(""+this.measure,this.x-W/2,G),this.context.restore()}return this}drawStaveTempo(){if(!this.staveTempos.length)return;const R=document.querySelector(`#${this.attrs.id}`);if(!R)return;const F=R.parentElement.getBBox(),D=this.getYForLine(0),G=R.parentElement.parentElement.querySelectorAll(".vf-curve");if(G.length){const U=this.x+this.staveTempos[0].shift_x+this.getModifierXShift(0),W=this.getYForTopText(1)+F.y-D+5;G.forEach(q=>{const Y=q.getBBox();Y.x-10U&&Y.y-10W&&(F.y=Y.y+5)})}for(let U=0;U=0&&this.timeSignature.numerator){let R=40,F=0;this.MeasureNumber<2&&(R=70,F=-72),this.setText(`${this.timeSignature.numerator}`,1,{justification:1,shift_x:R,shift_y:F-13}),this.setText("\u1173",1,{justification:1,shift_x:R+3,shift_y:F-2}),this.setText(`${this.timeSignature.denominator}`,1,{justification:1,shift_x:R,shift_y:F+8})}}drawVertical(R,F){this.drawVerticalFixed(this.x+R,F)}drawVerticalFixed(R,F){this.checkContext();const D=this.getYForLine(0),G=this.getYForLine(this.options.num_lines-1);F&&this.context.fillRect(R-3,D,1,G-D+1),this.context.fillRect(R,D,1,G-D+1)}drawVerticalBar(R){this.drawVerticalBarFixed(this.x+R,!1)}drawVerticalBarFixed(R){this.checkContext();const F=this.getYForLine(0),D=this.getYForLine(this.options.num_lines-1);this.context.fillRect(R,F,1,D-F+1)}getConfigForLines(){return this.options.line_config}setConfigForLine(R,F){if(R>=this.options.num_lines||R<0)throw new Vex.RERR("StaveConfigError","The line number must be within the range of the number of lines in the Stave.");if(F.visible===void 0)throw new Vex.RERR("StaveConfigError","The line configuration object is missing the 'visible' property.");if(typeof F.visible!="boolean")throw new Vex.RERR("StaveConfigError","The line configuration objects 'visible' property must be true or false.");return this.options.line_config[R]=F,this}setConfigForLines(R){if(R.length!==this.options.num_lines)throw new Vex.RERR("StaveConfigError","The length of the lines configuration array must match the number of lines in the Stave");for(const F in R)R[F]||(R[F]=this.options.line_config[F]),Vex.Merge(this.options.line_config[F],R[F]);return this.options.line_config=R,this}}class TabStave extends Stave{constructor(R,F,D,G){const U={spacing_between_lines_px:13,num_lines:6,top_text_position:1};Vex.Merge(U,G),super(R,F,D,U),this.setAttribute("type","TabStave")}getYForGlyphs(){return this.getYForLine(2.5)}addTabGlyph(){return this.addClef("tab"),this}}function getUnusedStringGroups(B,R){const F=[];let D=[];for(let G=1;G<=B;G++)R.indexOf(G)>-1?(F.push(D),D=[]):D.push(G);return D.length>0&&F.push(D),F}function getPartialStemLines(B,R,F,D){const G=D!==1,U=D!==-1,W=F.getSpacingBetweenLines(),q=F.getNumLines(),Y=[];return R.forEach(Q=>{const Z=Q.indexOf(q)>-1,K=Q.indexOf(1)>-1;if(G&&K||U&&Z)return;Q.length===1&&Q.push(Q[0]);const J=[];Q.forEach((ie,ne,se)=>{const re=ie===1,ae=ie===q;let le=F.getYForLine(ie-1);ne===0&&!re?le-=W/2-1:ne===se.length-1&&!ae&&(le+=W/2-1),J.push(le),D===1&&re?J.push(B-2):D===-1&&ae&&J.push(B+2)}),Y.push(J.sort((ie,ne)=>ie-ne))}),Y}class TabNote$1 extends StemmableNote{static get CATEGORY(){return"tabnotes"}constructor(R,F){if(super(R),this.setAttribute("type","TabNote"),this.ghost=!1,this.positions=R.positions,Vex.Merge(this.render_options,{glyph_font_scale:Flow.DEFAULT_TABLATURE_FONT_SCALE,draw_stem:F,draw_dots:F,draw_stem_through_stave:!1,y_shift:0,scale:1,font:"10pt Arial"}),this.glyph=Flow.getGlyphProps(this.duration,this.noteType),!this.glyph)throw new Vex.RuntimeError("BadArguments",`Invalid note initialization data (No glyph found): ${JSON.stringify(R)}`);this.buildStem(),R.stem_direction?this.setStemDirection(R.stem_direction):this.setStemDirection(Stem.UP),this.ghost=!1,this.updateWidth()}reset(){this.stave&&this.setStave(this.stave)}getCategory(){return TabNote$1.CATEGORY}setGhost(R){return this.ghost=R,this.updateWidth(),this}hasStem(){return this.render_options.draw_stem}getStemExtension(){const R=this.getGlyph();return this.stem_extension_override!=null?this.stem_extension_override:R?this.getStemDirection()===1?R.tabnote_stem_up_extension:R.tabnote_stem_down_extension:0}addDot(){const R=new Dot;return this.dots+=1,this.addModifier(R,0)}updateWidth(){this.glyphs=[],this.width=0;for(let R=0;Rthis.width}setStave(R){super.setStave(R),this.context=R.context;let F;if(this.context){const G=this.context;for(this.width=0,F=0;FU.width),this.width=Math.max(U.getWidth(),this.width)}this.glyph.getWidth=()=>this.width}const D=this.positions.map(({str:G})=>R.getYForLine(G-1));return this.setYs(D),this.stem&&this.stem.setYBounds(this.getStemY(),this.getStemY()),this}getPositions(){return this.positions}addToModifierContext(R){this.setModifierContext(R);for(let F=0;F{R.getCategory()==="dots"&&!this.render_options.draw_dots||(R.setContext(this.context),R.drawWithStyle())})}drawStemThrough(){const R=this.getStemX(),F=this.getStemY(),D=this.context,G=this.render_options.draw_stem_through_stave;if(this.render_options.draw_stem&&G){const W=this.stave.getNumLines(),q=this.positions.map(Z=>Z.str),Y=getUnusedStringGroups(W,q),Q=getPartialStemLines(F,Y,this.getStave(),this.getStemDirection());D.save(),D.setLineWidth(Stem.WIDTH),Q.forEach(Z=>{Z.length!==0&&(D.beginPath(),D.moveTo(R,Z[0]),D.lineTo(R,Z[Z.length-1]),D.stroke(),D.closePath())}),D.restore()}}drawPositions(){const R=this.context,F=this.getAbsoluteX(),D=this.ys;for(let G=0;GparseInt(G,10)?TabSlide.SLIDE_DOWN:TabSlide.SLIDE_UP}this.slide_direction=F,this.render_options.cp1=11,this.render_options.cp2=14,this.render_options.y_shift=.5,this.setFont({font:"Times",size:10,style:"bold italic"}),this.setNotes(R)}renderTie(R){if(R.first_ys.length===0||R.last_ys.length===0)throw new Vex.RERR("BadArguments","No Y-values to render");const F=this.context,D=R.first_x_px,G=R.first_ys,U=R.last_x_px,W=this.slide_direction;if(W!==TabSlide.SLIDE_UP&&W!==TabSlide.SLIDE_DOWN)throw new Vex.RERR("BadSlide","Invalid slide direction");for(let q=0;qthis.numStrings)throw new Vex.RERR("BadArguments",`String number must be between 1 and ${this.numStrings}:${R}`);return this.tuningValues[F-1]}getValueForFret(R,F){const D=this.getValueForString(F),G=parseInt(R,10);if(G<0)throw new Vex.RERR("BadArguments","Fret number must be 0 or higher: "+R);return D+G}getNoteForFret(R,F){const D=this.getValueForFret(R,F),G=Math.floor(D/12),U=D%12;return Flow.integerToNote(U)+"/"+G}}class KeyManager{constructor(R){this.music=new Music,this.setKey(R)}setKey(R){return this.key=R,this.reset(),this}getKey(){return this.key}reset(){if(this.keyParts=this.music.getKeyParts(this.key),this.keyString=this.keyParts.root,this.keyParts.accidental&&(this.keyString+=this.keyParts.accidental),!Music.scaleTypes[this.keyParts.type])throw new Vex.RERR("BadArguments",`Unsupported key type: ${this.key}`);this.scale=this.music.getScaleTones(this.music.getNoteValue(this.keyString),Music.scaleTypes[this.keyParts.type]),this.scaleMap={},this.scaleMapByValue={},this.originalScaleMapByValue={};const F=Music.root_indices[this.keyParts.root];for(let D=0;D{const D=TextDynamics.GLYPHS[F];if(!D)throw new Vex.RERR("Invalid dynamics character: "+F);const G=this.render_options.glyph_font_size,U=new Glyph(D.code,G);this.glyphs.push(U),R+=D.width}),this.setWidth(R),this.preFormatted=!0,this}draw(){this.setRendered();const R=this.getAbsoluteX(),F=this.stave.getYForLine(this.line+-3);L$7("Rendering Dynamics: ",this.sequence);let D=R;this.glyphs.forEach((G,U)=>{const W=this.sequence[U];G.render(this.context,D,F),D+=TextDynamics.GLYPHS[W].width})}}function drawArrowHead(B,R,F,D,G,U,W){B.beginPath(),B.moveTo(R,F),B.lineTo(D,G),B.lineTo(U,W),B.lineTo(R,F),B.closePath(),B.fill()}function drawArrowLine(B,R,F,D){const G=D.draw_start_arrow&&D.draw_end_arrow,U=R.x,W=R.y,q=F.x,Y=F.y,Q=Math.sqrt((q-U)*(q-U)+(Y-W)*(Y-W)),Z=(Q-D.arrowhead_length/3)/Q;let K,J,ie,ne;D.draw_end_arrow||G?(K=Math.round(U+(q-U)*Z),J=Math.round(W+(Y-W)*Z)):(K=q,J=Y),D.draw_start_arrow||G?(ie=U+(q-U)*(1-Z),ne=W+(Y-W)*(1-Z)):(ie=U,ne=W),D.color&&(B.setStrokeStyle(D.color),B.setFillStyle(D.color)),B.beginPath(),B.moveTo(ie,ne),B.lineTo(K,J),B.stroke(),B.closePath();const se=Math.atan2(Y-W,q-U),re=Math.abs(D.arrowhead_length/Math.cos(D.arrowhead_angle));let ae,le,ce,he,de,me;(D.draw_end_arrow||G)&&(ae=se+Math.PI+D.arrowhead_angle,ce=q+Math.cos(ae)*re,he=Y+Math.sin(ae)*re,le=se+Math.PI-D.arrowhead_angle,de=q+Math.cos(le)*re,me=Y+Math.sin(le)*re,drawArrowHead(B,ce,he,q,Y,de,me)),(D.draw_start_arrow||G)&&(ae=se+D.arrowhead_angle,ce=U+Math.cos(ae)*re,he=W+Math.sin(ae)*re,le=se-D.arrowhead_angle,de=U+Math.cos(le)*re,me=W+Math.sin(le)*re,drawArrowHead(B,ce,he,U,W,de,me))}class StaveLine extends Element$1{static get TextVerticalPosition(){return{TOP:1,BOTTOM:2}}static get TextJustification(){return{LEFT:1,CENTER:2,RIGHT:3}}constructor(R){super(),this.setAttribute("type","StaveLine"),this.notes=R,this.text="",this.font={family:"Arial",size:10,weight:""},this.render_options={padding_left:4,padding_right:3,line_width:1,line_dash:null,rounded_end:!0,color:null,draw_start_arrow:!1,draw_end_arrow:!1,arrowhead_length:10,arrowhead_angle:Math.PI/8,text_position_vertical:StaveLine.TextVerticalPosition.TOP,text_justification:StaveLine.TextJustification.CENTER},this.setNotes(R)}setFont(R){return this.font=R,this}setText(R){return this.text=R,this}setNotes(R){if(!R.first_note&&!R.last_note)throw new Vex.RuntimeError("BadArguments","Notes needs to have either first_note or last_note set.");if(R.first_indices||(R.first_indices=[0]),R.last_indices||(R.last_indices=[0]),R.first_indices.length!==R.last_indices.length)throw new Vex.RuntimeError("BadArguments","Connected notes must have similar index sizes");return this.first_note=R.first_note,this.first_indices=R.first_indices,this.last_note=R.last_note,this.last_indices=R.last_indices,this}applyLineStyle(){const R=this.checkContext(),F=this.render_options;F.line_dash&&R.setLineDash(F.line_dash),F.line_width&&R.setLineWidth(F.line_width),F.rounded_end?R.setLineCap("round"):R.setLineCap("square")}applyFontStyle(){const R=this.checkContext();this.font&&R.setFont(this.font.family,this.font.size,this.font.weight),this.render_options.color&&(R.setStrokeStyle(this.render_options.color),R.setFillStyle(this.render_options.color))}draw(){const R=this.checkContext();this.setRendered();const F=this.first_note,D=this.last_note,G=this.render_options;R.save(),this.applyLineStyle();let U,W;this.first_indices.forEach((J,ie)=>{const ne=this.last_indices[ie];U=F.getModifierStartXY(2,J),W=D.getModifierStartXY(1,ne);const se=U.y>W.y;U.x+=F.getMetrics().modRightPx+G.padding_left,W.x-=D.getMetrics().modLeftPx+G.padding_right;const re=F.getGlyph().getWidth();F.getKeyProps()[J].displaced&&F.getStemDirection()===1&&(U.x+=re+G.padding_left),D.getKeyProps()[ne].displaced&&D.getStemDirection()===-1&&(W.x-=re+G.padding_right),U.y+=se?-3:1,W.y+=se?2:0,drawArrowLine(R,U,W,this.render_options)}),R.restore();const q=R.measureText(this.text).width,Y=G.text_justification;let Q=0;Y===StaveLine.TextJustification.LEFT?Q=U.x:Y===StaveLine.TextJustification.CENTER?Q=(W.x-U.x)/2+U.x-q/2:Y===StaveLine.TextJustification.RIGHT&&(Q=W.x-q);let Z;const K=G.text_position_vertical;return K===StaveLine.TextVerticalPosition.TOP?Z=F.getStave().getYForTopText():K===StaveLine.TextVerticalPosition.BOTTOM&&(Z=F.getStave().getYForBottomText(Flow.TEXT_HEIGHT_OFFSET_HACK)),R.save(),this.applyFontStyle(),R.fillText(this.text,Q,Z),R.restore(),this}}function L$6(...B){PedalMarking.DEBUG&&Vex.L("Vex.Flow.PedalMarking",B)}function drawPedalGlyph(B,R,F,D,G){const U=PedalMarking.GLYPHS[B];new Glyph(U.code,G).render(R,F+U.x_shift,D+U.y_shift)}class PedalMarking extends Element$1{static get GLYPHS(){return{pedal_depress:{code:"v36",x_shift:-10,y_shift:0},pedal_release:{code:"v5d",x_shift:-2,y_shift:3}}}static get Styles(){return{TEXT:1,BRACKET:2,MIXED:3,MIXED_OPEN_END:4,BRACKET_OPEN_BEGIN:5,BRACKET_OPEN_END:6,BRACKET_OPEN_BOTH:7}}static get StylesString(){return{text:PedalMarking.Styles.TEXT,bracket:PedalMarking.Styles.BRACKET,mixed:PedalMarking.Styles.MIXED,mixed_open_end:PedalMarking.Styles.MIXED_OPEN_END,bracket_open_begin:PedalMarking.Styles.BRACKET_OPEN_BEGIN,bracket_open_end:PedalMarking.Styles.BRACKET_OPEN_END,bracket_open_both:PedalMarking.Styles.BRACKET_OPEN_BOTH}}static createSustain(R){return new PedalMarking(R)}static createSostenuto(R){const F=new PedalMarking(R);return F.setStyle(PedalMarking.Styles.MIXED),F.setCustomText("Sost. Ped."),F}static createUnaCorda(R){const F=new PedalMarking(R);return F.setStyle(PedalMarking.Styles.TEXT),F.setCustomText("una corda","tre corda"),F}constructor(R){super(),this.setAttribute("type","PedalMarking"),this.EndsStave=!1,this.ChangeBegin=!1,this.ChangeEnd=!1,this.notes=R,this.style=PedalMarking.TEXT,this.line=0,this.custom_depress_text="",this.custom_release_text="",this.font={family:"Times New Roman",size:12,weight:"italic bold"},this.render_options={bracket_height:10,text_margin_right:6,bracket_line_width:1,glyph_point_size:40,color:"black"}}setEndStave(R){if(this.endStave=R,this.endStaveAddedWidth=0,this.startMargin=0,this.endMargin=0,Array.isArray(this.endStave.modifiers))for(let F=0;F3)throw new Vex.RERR("InvalidParameter","The style must be one found in PedalMarking.Styles");return this.style=R,this}setLine(R){return this.line=R,this}drawBracketed(){const R=this.context;let F=!1,D,G;const U=this;this.notes.forEach((W,q,Y)=>{F=!F;let Q=0;if(W?Q=W.getNoteHeadBeginX():Q=this.endStave.end_x+this.endStaveAddedWidth,this.EndsStave)F?this.ChangeBegin&&(Q=W.getAbsoluteX()):(W?this.ChangeEnd?Q=W.getAbsoluteX():Q=W.getStave().end_x+this.endStaveAddedWidth-U.render_options.text_margin_right:Q=this.endStave.end_x+this.endStaveAddedWidth-U.render_options.text_margin_right,this.endMargin=-U.render_options.text_margin_right);else if(W)if(F)this.ChangeBegin&&(Q=W.getAbsoluteX());else switch(U.style){case PedalMarking.Styles.BRACKET_OPEN_END:case PedalMarking.Styles.BRACKET_OPEN_BOTH:case PedalMarking.Styles.MIXED_OPEN_END:Q=W.getNoteHeadEndX();break;default:this.ChangeEnd?Q=W.getAbsoluteX():(Q=W.getNoteHeadBeginX()-U.render_options.text_margin_right,this.startMargin=-U.render_options.text_margin_right);break}let Z=this.endStave;W&&(Z=W.getStave());let K=Z.getYForBottomText(U.line+3);G&&G>K&&(K=G);const J=Y[q+1]===W,ie=Y[q-1]===W;let ne=0;if(F)if(ne=ie?5:0,(U.style===PedalMarking.Styles.MIXED||U.style===PedalMarking.Styles.MIXED_OPEN_END)&&!ie)if(U.custom_depress_text){const se=R.measureText(U.custom_depress_text).width;R.fillText(U.custom_depress_text,Q-se/2,K),ne=se/2+U.render_options.text_margin_right}else drawPedalGlyph("pedal_depress",R,Q,K,U.render_options.glyph_point_size),ne=20+U.render_options.text_margin_right;else R.beginPath(),U.style===PedalMarking.Styles.BRACKET_OPEN_BEGIN||U.style===PedalMarking.Styles.BRACKET_OPEN_BOTH?R.moveTo(Q+ne,K):(this.ChangeBegin&&(Q+=5),R.moveTo(Q,K-U.render_options.bracket_height),this.ChangeBegin&&(Q+=5),R.lineTo(Q+ne,K)),R.stroke(),R.closePath();else ne=J&&!this.EndsStave?-5:0,R.beginPath(),R.moveTo(D,G),R.lineTo(Q+ne,K),U.style!==PedalMarking.Styles.BRACKET_OPEN_END&&U.style!==PedalMarking.Styles.MIXED_OPEN_END&&U.style!==PedalMarking.Styles.BRACKET_OPEN_BOTH&&(this.ChangeEnd&&(Q+=5),R.lineTo(Q,K-U.render_options.bracket_height)),R.stroke(),R.closePath();D=Q+ne,G=K})}drawText(){const R=this.context;let F=!1;const D=this,G=D.render_options.glyph_point_size;this.notes.forEach(U=>{F=!F;const W=U.getStave(),q=U.getAbsoluteX(),Y=W.getYForBottomText(D.line+3);let Q=0;F?D.custom_depress_text?(Q=R.measureText(D.custom_depress_text).width,R.fillText(D.custom_depress_text,q-Q/2,Y)):drawPedalGlyph("pedal_depress",R,q,Y,G):D.custom_release_text?(Q=R.measureText(D.custom_release_text).width,R.fillText(D.custom_release_text,q-Q/2,Y)):drawPedalGlyph("pedal_release",R,q,Y,G)})}draw(){const R=this.checkContext();this.setRendered(),R.save(),R.setStrokeStyle(this.render_options.color),R.setFillStyle(this.render_options.color),R.setFont(this.font.family,this.font.size,this.font.weight),L$6("Rendering Pedal Marking"),this.style===PedalMarking.Styles.BRACKET||this.style===PedalMarking.Styles.MIXED||this.style===PedalMarking.Styles.MIXED_OPEN_END||this.style===PedalMarking.Styles.BRACKET_OPEN_BEGIN||this.style===PedalMarking.Styles.BRACKET_OPEN_END||this.style===PedalMarking.Styles.BRACKET_OPEN_BOTH?(R.setLineWidth(this.render_options.bracket_line_width),this.drawBracketed()):this.style===PedalMarking.Styles.TEXT&&this.drawText(),R.restore()}}function L$5(...B){TextBracket.DEBUG&&Vex.L("Vex.Flow.TextBracket",B)}class TextBracket extends Element$1{static get Positions(){return{TOP:1,BOTTOM:-1}}static get PositionString(){return{top:TextBracket.Positions.TOP,bottom:TextBracket.Positions.BOTTOM}}constructor({start:R,stop:F,text:D="",superscript:G="",position:U=TextBracket.Positions.TOP}){super(),this.setAttribute("type","TextBracket"),this.start=R,this.stop=F,this.text=D,this.superscript=G,this.position=typeof U=="string"?TextBracket.PositionString[U]:U,this.line=1,this.font={family:"Serif",size:15,weight:"italic"},this.render_options={dashed:!0,dash:[5],color:"black",line_width:1,show_bracket:!0,bracket_height:8,underline_superscript:!0}}applyStyle(R){return R.setFont(this.font.family,this.font.size,this.font.weight),R.setStrokeStyle(this.render_options.color),R.setFillStyle(this.render_options.color),R.setLineWidth(this.render_options.line_width),this}setDashed(R,F){return this.render_options.dashed=R,F&&(this.render_options.dash=F),this}setFont(R){return this.font={...this.font,...R},this}setLine(R){return this.line=R,this}draw(){const R=this.context;this.setRendered();let F=0;switch(this.position){case TextBracket.Positions.TOP:F=this.start.getStave().getYForTopText(this.line);break;case TextBracket.Positions.BOTTOM:F=this.start.getStave().getYForBottomText(this.line+Flow.TEXT_HEIGHT_OFFSET_HACK);break;default:throw new Vex.RERR("InvalidPosition",`The position ${this.position} is invalid`)}const D={x:this.start.getAbsoluteX(),y:F},G={x:this.stop.getAbsoluteX(),y:F};L$5("Rendering TextBracket: start:",D,"stop:",G,"y:",F);const U=this.render_options.bracket_height*this.position;R.save(),this.applyStyle(R),R.fillText(this.text,D.x,D.y);const W=R.measureText(this.text).width,q=R.measureText("M").width,Y=D.y-q/2.5;R.setFont(this.font.family,this.font.size/1.4,this.font.weight),R.fillText(this.superscript,D.x+W+1,Y);const Q=R.measureText(this.superscript).width,Z=R.measureText("M").width;let K=D.x,J=Y;const ie=G.x+this.stop.getGlyph().getWidth();this.position===TextBracket.Positions.TOP?(K+=W+Q+5,J-=Z/2.7):this.position===TextBracket.Positions.BOTTOM&&(J+=Z/2.7,K+=W+2,this.render_options.underline_superscript||(K+=Q)),this.render_options.dashed?(Renderer.drawDashedLine(R,K,J,ie,J,this.render_options.dash),this.render_options.show_bracket&&Renderer.drawDashedLine(R,ie,J+1*this.position,ie,J+U,this.render_options.dash)):(R.beginPath(),R.moveTo(K,J),R.lineTo(ie,J),this.render_options.show_bracket&&R.lineTo(ie,J+U),R.stroke(),R.closePath()),R.restore()}}function L$4(...B){BarNote.DEBUG&&Vex.L("Vex.Flow.BarNote",B)}class BarNote extends Note{constructor(R=Barline.type.SINGLE){super({duration:"b"}),this.setAttribute("type","BarNote"),this.metrics={widths:{}};const F=Barline.type;this.metrics.widths={[F.SINGLE]:8,[F.DOUBLE]:12,[F.END]:15,[F.REPEAT_BEGIN]:14,[F.REPEAT_END]:14,[F.REPEAT_BOTH]:18,[F.NONE]:0},this.ignore_ticks=!0,this.setType(R)}getType(){return this.type}setType(R){return this.type=typeof R=="string"?Barline.typeString[R]:R,this.setWidth(this.metrics.widths[this.type]),this}getBoundingBox(){return super.getBoundingBox()}addToModifierContext(){return this}preFormat(){return this.setPreFormatted(!0),this}draw(){if(this.checkContext(),!this.stave)throw new Vex.RERR("NoStave","Can't draw without a stave.");L$4("Rendering bar line at: ",this.getAbsoluteX());const R=new Barline(this.type);R.setX(this.getAbsoluteX()),R.draw(this.stave),this.setRendered()}}class GhostNote extends StemmableNote{constructor(R){if(!R)throw new Vex.RuntimeError("BadArguments","Ghost note must have valid initialization data to identify duration.");let F;if(typeof R=="string")F={duration:R};else if(typeof R=="object")F=R;else throw new Vex.RuntimeError("BadArguments","Ghost note must have valid initialization data to identify duration.");super(F),this.setAttribute("type","GhostNote"),this.setWidth(0)}isRest(){return!0}setStave(R){super.setStave(R)}addToModifierContext(){return this}preFormat(){return this.setPreFormatted(!0),this}draw(){if(!this.stave)throw new Vex.RERR("NoStave","Can't draw without a stave.");this.setRendered();for(let R=0;R0||F===!0;return F&&!(U>0)&&(this.pos=G),q?this.matchSuccess():this.matchFail(G),{success:q,results:D,numMatches:U}}expectZeroOrMore(R){return this.expectOneOrMore(R,!0)}expect(R){L$2("Evaluating rules:",R);let F;if(!R)throw new X$2("Invalid Rule: "+R,R);const D=R.bind(this.grammar)();if(D.token)F=this.matchToken(D.token,D.noSpace===!0),F.success&&(this.pos+=F.incrementPos);else if(D.expect)D.oneOrMore?F=this.expectOneOrMore(D):D.zeroOrMore?F=this.expectZeroOrMore(D):F=this.expectOne(D);else throw new X$2("Bad grammar! No `token` or `expect` property",D);return F.matches=[],F.results&&F.results.forEach(G=>F.matches.push(flattenMatches(G))),D.run&&F.success&&D.run(F),F}}function L$1(...B){EasyScore.DEBUG&&Vex.L("Vex.Flow.EasyScore",B)}const X$1=Vex.MakeException("EasyScoreError");class Grammar{constructor(R){this.builder=R}begin(){return this.LINE}LINE(){return{expect:[this.PIECE,this.PIECES,this.EOL]}}PIECE(){return{expect:[this.CHORDORNOTE,this.PARAMS],run:()=>this.builder.commitPiece()}}PIECES(){return{expect:[this.COMMA,this.PIECE],zeroOrMore:!0}}PARAMS(){return{expect:[this.DURATION,this.TYPE,this.DOTS,this.OPTS]}}CHORDORNOTE(){return{expect:[this.CHORD,this.SINGLENOTE],or:!0}}CHORD(){return{expect:[this.LPAREN,this.NOTES,this.RPAREN],run:R=>this.builder.addChord(R.matches[1])}}NOTES(){return{expect:[this.NOTE],oneOrMore:!0}}NOTE(){return{expect:[this.NOTENAME,this.ACCIDENTAL,this.OCTAVE]}}SINGLENOTE(){return{expect:[this.NOTENAME,this.ACCIDENTAL,this.OCTAVE],run:R=>this.builder.addSingleNote(R.matches[0],R.matches[1],R.matches[2])}}ACCIDENTAL(){return{expect:[this.ACCIDENTALS],maybe:!0}}DOTS(){return{expect:[this.DOT],zeroOrMore:!0,run:R=>this.builder.setNoteDots(R.matches[0])}}TYPE(){return{expect:[this.SLASH,this.MAYBESLASH,this.TYPES],maybe:!0,run:R=>this.builder.setNoteType(R.matches[2])}}DURATION(){return{expect:[this.SLASH,this.DURATIONS],maybe:!0,run:R=>this.builder.setNoteDuration(R.matches[1])}}OPTS(){return{expect:[this.LBRACKET,this.KEYVAL,this.KEYVALS,this.RBRACKET],maybe:!0}}KEYVALS(){return{expect:[this.COMMA,this.KEYVAL],zeroOrMore:!0}}KEYVAL(){const R=F=>F.slice(1,-1);return{expect:[this.KEY,this.EQUALS,this.VAL],run:F=>this.builder.addNoteOption(F.matches[0],R(F.matches[2]))}}VAL(){return{expect:[this.SVAL,this.DVAL],or:!0}}KEY(){return{token:"[a-zA-Z][a-zA-Z0-9]*"}}DVAL(){return{token:'["][^"]*["]'}}SVAL(){return{token:"['][^']*[']"}}NOTENAME(){return{token:"[a-gA-G]"}}OCTAVE(){return{token:"[0-9]+"}}ACCIDENTALS(){return{token:"bbs|bb|bss|bs|b|db|d|##|#|n|\\+\\+-|\\+-|\\+\\+|\\+|k|o"}}DURATIONS(){return{token:"[0-9whq]+"}}TYPES(){return{token:"[rRsSxX]"}}LPAREN(){return{token:"[(]"}}RPAREN(){return{token:"[)]"}}COMMA(){return{token:"[,]"}}DOT(){return{token:"[.]"}}SLASH(){return{token:"[/]"}}MAYBESLASH(){return{token:"[/]?"}}EQUALS(){return{token:"[=]"}}LBRACKET(){return{token:"\\["}}RBRACKET(){return{token:"\\]"}}EOL(){return{token:"$"}}}class Builder{constructor(R){this.factory=R,this.commitHooks=[],this.reset()}reset(R={}){this.options={stem:"auto",clef:"treble"},this.elements={notes:[],accidentals:[]},this.rollingDuration="8",this.resetPiece(),Object.assign(this.options,R)}getFactory(){return this.factory}getElements(){return this.elements}addCommitHook(R){this.commitHooks.push(R)}resetPiece(){L$1("resetPiece"),this.piece={chord:[],duration:this.rollingDuration,dots:0,type:void 0,options:{}}}setNoteDots(R){L$1("setNoteDots:",R),R&&(this.piece.dots=R.length)}setNoteDuration(R){L$1("setNoteDuration:",R),this.rollingDuration=this.piece.duration=R||this.rollingDuration}setNoteType(R){L$1("setNoteType:",R),R&&(this.piece.type=R)}addNoteOption(R,F){L$1("addNoteOption: key:",R,"value:",F),this.piece.options[R]=F}addNote(R,F,D){L$1("addNote:",R,F,D),this.piece.chord.push({key:R,accid:F,octave:D})}addSingleNote(R,F,D){L$1("addSingleNote:",R,F,D),this.addNote(R,F,D)}addChord(R){L$1("startChord"),typeof R[0]!="object"?this.addSingleNote(R[0]):R.forEach(F=>{F&&this.addNote(...F)}),L$1("endChord")}commitPiece(){L$1("commitPiece");const{factory:R}=this;if(!R)return;const F={...this.options,...this.piece.options},{stem:D,clef:G}=F,U=D.toLowerCase()==="auto",W=!U&&D.toLowerCase()==="up"?StaveNote.STEM_UP:StaveNote.STEM_DOWN,{chord:q,duration:Y,dots:Q,type:Z}=this.piece,K=q.map(ne=>ne.key+"/"+ne.octave),J=R.StaveNote({keys:K,duration:Y,dots:Q,type:Z,clef:G,auto_stem:U});U||J.setStemDirection(W);const ie=q.map(ne=>ne.accid||null);ie.forEach((ne,se)=>{ne&&J.addAccidental(se,R.Accidental({type:ne}))});for(let ne=0;nene(F,J,this)),this.elements.notes.push(J),this.elements.accidentals.concat(ie),this.resetPiece()}}function setId({id:B},R){B!==void 0&&R.setAttribute("id",B)}function setClass(B,R){if(!B.class)return;const F=/\s*,\s*/;B.class.split(F).forEach(D=>R.addClass(D))}class EasyScore{constructor(R={}){this.setOptions(R),this.defaults={clef:"treble",time:"4/4",stem:"auto"}}set(R){return Object.assign(this.defaults,R),this}setOptions(R){return this.options={factory:null,builder:null,commitHooks:[setId,setClass,Articulation$1.easyScoreHook],throwOnError:!1,...R},this.factory=this.options.factory,this.builder=this.options.builder||new Builder(this.factory),this.grammar=new Grammar(this.builder),this.parser=new Parser(this.grammar),this.options.commitHooks.forEach(F=>this.addCommitHook(F)),this}setContext(R){return this.factory&&this.factory.setContext(R),this}parse(R,F={}){this.builder.reset(F);const D=this.parser.parse(R);if(!D.success&&this.options.throwOnError)throw new X$1("Error parsing line: "+R,D);return D}beam(R,F={}){return this.factory.Beam({notes:R,options:F}),R}tuplet(R,F={}){return this.factory.Tuplet({notes:R,options:F}),R}notes(R,F={}){return F={clef:this.defaults.clef,stem:this.defaults.stem,...F},this.parse(R,F),this.builder.getElements().notes}voice(R,F){return F={time:this.defaults.time,...F},this.factory.Voice(F).addTickables(R)}addCommitHook(R){return this.builder.addCommitHook(R)}}function initGroup(){return{notes:[],finish:!1,total:0,staveId:""}}let _text_width=null,tone="C",group=initGroup(),_denominator="",_numerator="",ornamentGroup="";class NumberedNote extends StaveNote{static get CATEGORY(){return"numberednotes"}static accidentalAndKey(R){switch(R){case"G":return{4:"#"};case"D":return{1:"#",4:"#"};case"A":return{1:"#",4:"#",5:"#"};case"E":return{1:"#",2:"#",4:"#",5:"#"};case"B":return{1:"#",2:"#",4:"#",5:"#",6:"#"};case"F#":return{1:"#",2:"#",3:"#",4:"#",5:"#",6:"#"};case"C#":return{1:"#",2:"#",3:"#",4:"#",5:"#",6:"#",7:"#"};case"F":return{7:"b"};case"Bb":return{7:"b",3:"b"};case"Eb":return{7:"b",3:"b",6:"b"};case"Ab":return{7:"b",2:"b",3:"b",6:"b"};case"Db":return{7:"b",2:"b",3:"b",5:"b",6:"b"};case"Gb":return{7:"b",1:"b",2:"b",3:"b",5:"b",6:"b"};case"Cb":return{7:"b",1:"b",2:"b",3:"b",4:"b",5:"b",6:"b"};default:return{}}}static accidentalMap(R){switch(R){case"C":return"";case"F":case"Bb":case"Eb":case"Ab":case"Db":case"Gb":case"Cb":return{bb:"b",b:"",n:"#","#":"##"};default:return{b:"bb",n:"b","#":"","##":"#"}}}static get noteLift(){switch(tone){case"G":return["7"];case"D":return["7","3"];case"A":return["7","3","6"];case"E":return["2","6","3","7"];case"B":return["5","2","6","3","7"];case"F#":return["1","5","2","6","3","7"];case"C#":return["4","1","5","2","6","3","7"];case"F":return["4"];case"Bb":return["1","4"];case"Eb":return["5","1","4"];case"Ab":return["2","5","1","4"];case"Db":return["6","2","5","1","4"];case"Gb":return["3","6","2","5","1","4"];case"Cb":return["7","3","6","2","5","1","4"]}}static get longDurationLine(){return{1:3,2:1,6:2}}static get numberedDurationLine(){return{8:1,16:2,32:3,64:4,128:5}}static get durationTime(){return{8:6144,4:4096}}constructor(R){super(R),this.setAttribute("type","NumberedNote"),tone=R.keyString,this.ornament=!!R.ornament,this.line=0,this.keys=R.keys||[],this.fontSize=20,this.offset_x=0,this.offset_y=0,this.note_tones=[],this.duration_lines=0,this.long_duration_lines=0,this.note_size=R.note_size||16;const F=Flow.sanitizeDuration(this.duration);var D=NumberedNote.numberedDurationLine[F.toString()];if(D&&(this.duration_lines=D),D=NumberedNote.longDurationLine[F.toString()],D&&(this.long_duration_lines=D),!_text_width){var G="__$text_wraper$$__";let W=document.createElement("canvas");W.id=G,document.body.append(W);const q=document.getElementById(G),Y=q.getContext("2d");Y.font="Arial 22px";var U=Y.measureText("5");_text_width=U.width+2,document.body.removeChild(q)}}getCategory(){return NumberedNote.CATEGORY}setKeySignature(R){this.keySignature=R}preFormat(){this.preFormatted||(this.modifierContext&&this.modifierContext.preFormat(),this.setWidth(this.full_width),this.setPreFormatted(!0))}filterNote(){if(window&&window.sett&&window.sett.keySignature||!this.keys||!this.keys.length)return;const R=NumberedNote.accidentalMap(tone);if(!R)return;const F=NumberedNote.noteLift;if(!F)return;var D=this.keys[0].split("/"),G=D[0];G==="b"&&(G="R"),G=G.replace(new RegExp("#","g"),""),G=G.replace(new RegExp("n","g"),""),G.length>1&&(G=G.replace(new RegExp("b","g"),""));const U=NumberedNoteHead.numberedNotationMapping[G.toUpperCase()];if(F.includes(U))for(let W=0;W{switch(D.getAttribute("type")){case"Accidental":D.render_options.font_scale=this.note_width*1.4,D.x_shift=2,D.y_shift=this.unit_height/2,this.ornament&&(D.render_options.font_scale=this.note_width,D.x_shift=14,D.y_shift=-10);break;case"Stroke":D.x_shift=-1*R,D.y_shift=1*this.unit_height;break;case"Dot":D.x_shift=F*this.duration_dot_width+7,D.y_shift=1*this.unit_height,F++;break;case"Ornament":D.y_shift=-3;break;default:D.y_shift=1*this.unit_height}D.reset&&D.reset(),R+=D.getWidth()/2})}handleDeleteDot(){for(let R=0;RW),D=F.length?F[0]/F[1]:0;if(this.ornament)return;if(D===0)return this.long_duration_lines=this.intrinsicTicks/R-1,this.long_duration_lines>=_numerator&&(this.long_duration_lines=_numerator-1),_denominator==8&&(this.long_duration_lines=0,_numerator==3&&this.draw_dot(this.context,this.bottom_x+25,this.bottom_y-30,this.dot_width),_numerator==6&&(this.draw_dot(this.context,this.bottom_x+25,this.bottom_y-30,this.dot_width),new Glyph("v0",40).render(this.context,this.bottom_x+40,this.top_y),this.draw_dot(this.context,this.bottom_x+65,this.bottom_y-30,this.dot_width))),group=initGroup();let G={lines:this.duration_lines,duration:D,id:this.attrs.id,x:this.x-this.duration_line_space/2-this.left_width,y:this.y,width:this.full_width};D>R*2&&(this.long_duration_lines=parseInt(D/R)-1,this.handleDeleteDot()),ornamentGroup&&(G.x+=this.note_width),group.notes.push(G);let U=group.notes.reduce((W,q)=>W+q.duration,0);U=parseInt(U),U>R&&(U-=R),U>R-10&&Uq.lines===0).length&&(this.drawDurationLoneLine(),group=initGroup()))}draw(){if(this.checkContext(),!this.stave)throw new Vex.RERR("NoStave","Can't draw without a stave.");let R=this.context;R.save(),R.setFont("Arial",this.note_height,"normal"),this.setAttribute("el",R.openGroup("stavenote",this.getAttribute("id"))),R.openGroup("note",null,{pointerBBox:!0});let F=this.getAbsoluteX()+2.5;this.x=F;let D=this.stave.getYForLine(2)+this.note_height/2;this.y=D,this.buildToneHeads(),this.preFormatModifier(),this.applyStyle(),this.note_tones.forEach(G=>{G.draw(R)}),R.openGroup("modifier",null,{pointerBBox:!0}),this.drawModifiers(),R.closeGroup(),R.closeGroup(),R.closeGroup(),this.calcGroup(),group.staveId=this.stave.attrs.id,this.drawDurationLine(R,{}),this.drawLongDurationLines(R),this.restoreStyle(),this.setRendered(),this.ornament?ornamentGroup?ornamentGroup=Object.assign(ornamentGroup,{lines:this.duration_lines,id:this.attrs.id,x:this.x-this.duration_line_space/2-this.left_width,width:this.full_width}):ornamentGroup={lines:this.duration_lines,id:this.attrs.id,x:this.x-this.duration_line_space/2-this.left_width,width:this.full_width}:ornamentGroup=""}drawDurationLoneLine(R,F){R=R||this.context;let D=F||this.y+this.duration_line_space;for(let G=0;G<5;G++){let U=[],W=0;for(let q=0;qG)U.push(Y),W++;else{if(U.length>1){let Q=U.length-1;D=U[0].y+this.duration_line_space,R.rect(U[0].x,D+G*3,U[Q].x-U[0].x+U[Q].width,.5)}U=[],W=q+1}}if(U.length>1){let q=U.length-1;D=U[0].y+this.duration_line_space,R.rect(U[0].x,D+G*3,U[q].x-U[0].x+U[q].width,.5)}}}draw_dot(R,F,D,G){R.openGroup("numbered-note-dot"),R.beginPath(),R.arc(F,D,G,0,2*Math.PI),R.closePath(),R.fill(),R.closeGroup()}drawDurationLine(R,F){var D=this.attrs.id+"-lines";R.openGroup("numbered_note_lines",D);var G,U;if(this.duration_lines>0){const Y=this.duration_line_space;var W=this.full_width;if(F&&F.width&&(W=F.width),W<0&&(W=this.note_width),!F||typeof F.startX=="undefined"?G=this.x-Y/2-this.left_width:G=F.startX,!F||typeof F.startY=="undefined"?U=this.y+this.duration_line_space:U=F.startY,group.finish&&(this.drawDurationLoneLine(R,U),group=initGroup()),this.ornament?(G+=12,U-=22,W=15,ornamentGroup&&(G-=10,W+=10)):ornamentGroup&&(G+=this.note_width,W-=this.note_width),W>0){for(var q=0;qq.getAttribute("type")==="Accidental"),W=this.modifiers.findIndex(q=>q.getAttribute("type")==="Accidental");G&&W>-1?this.modifiers[W].accidental.code=G==="#"?"v18":"v44":this.modifiers.splice(W,1)}}catch(G){console.log("\u{1F680} ~ error",G)}}this.setYs(R)}getFullWidth(){return this.full_width}getFullHeight(){return this.full_height}getLine(){return this.keyProps[0].line}get full_width(){return this.note_width+this.left_width+this.right_width+this.long_duration_line_width}get long_duration_line_width(){return(this.long_duration_width+this.long_duration_space)*this.long_duration_lines}get full_height(){return this.bottom_y-this.top_y}get note_width(){return this.note_size||0}get note_dot_width(){return 6}get note_height(){return this.unit_height}get unit_height(){return this.note_size||0}get note_x(){return this.x||0}get top_x(){return this.x||0}get top_y(){var R=this;return(this.y||0)-(R.note_tones.map(D=>(D.td+D.bd)*(R.dot_space+R.dot_width)).reduce((D,G)=>D+G,0)+this.note_height*this.note_tones.length-this.unit_height-this.note_tones[0].bd*(R.dot_space+R.dot_width)+(this.note_tones.length-1)*this.head_space)}get bottom_x(){return this.x||0}get bottom_y(){return(this.y||0)+this.unit_height+this.duration_lines*(this.duration_line_height+this.duration_line_space)+this.note_tones[0].meta.bd*(this.dot_width+this.dot_space)}get left_width(){return this.modifiers_width}get right_width(){return this.full_duration_dot_width}get duration_dot_width(){return 6}get full_duration_dot_width(){return this.duration_dot_width*this.getModifiersByCategory(Dot.CATEGORY).length}getModifiersByCategory(R){var F=[];return this.modifiers.forEach(D=>{D.getCategory()===R&&F.push(D)}),F}get head_space(){return 6}get duration_line_height(){return 2}get duration_line_space(){return 4}get dot_width(){return 2}get dot_space(){return 2}get long_duration_space(){return 10}get long_duration_width(){return 20}getWidth(){return this.full_width}get modifiers_width(){let R=0;return this.modifiers.forEach(F=>{R+=F.getWidth()}),R}}class NumberedNoteHead{static get numberedNotationMapping(){let R=tone;switch(window&&window.sett&&window.sett.keySignature&&(R="C"),R){case"A":return{C:"3",D:"4",E:"5",F:"6",G:"7",A:"1",B:"2",R:"0",min:2.5,max:5.5};case"B":return{C:"2",D:"3",E:"4",F:"5",G:"6",A:"7",B:"1",R:"0",min:-.5,max:2.5};case"D":return{C:"7",D:"1",E:"2",F:"3",G:"4",A:"5",B:"6",R:"0",min:.5,max:3.5};case"E":return{C:"6",D:"7",E:"1",F:"2",G:"3",A:"4",B:"5",R:"0",min:1,max:4};case"F":return{C:"5",D:"6",E:"7",F:"1",G:"2",A:"3",B:"4",R:"0",min:1.5,max:4.5};case"G":case"Gb":return{C:"4",D:"5",E:"6",F:"7",G:"1",A:"2",B:"3",R:"0",min:2,max:5};case"Eb":return{C:"6",D:"7",E:"1",F:"2",G:"3",A:"4",B:"5",R:"0",min:1,max:4};case"D#":case"Db":return{C:"7",D:"1",E:"2",F:"3",G:"4",A:"5",B:"6",R:"0",min:.5,max:3.5};case"F#":return{C:"5",D:"6",E:"7",F:"1",G:"2",A:"3",B:"4",R:"0",min:1.5,max:4.5};case"Ab":case"G#":return{C:"3",D:"4",E:"5",F:"6",G:"7",A:"1",B:"2",R:"0",min:-1,max:2};case"Bb":case"A#":return{C:"2",D:"3",E:"4",F:"5",G:"6",A:"7",B:"1",R:"0",min:-.5,max:2.5};case"C#":case"Cb":default:return{C:"1",D:"2",E:"3",F:"4",G:"5",A:"6",B:"7",R:"0",min:0,max:3}}}tone_to_numbered_key(){var R=this.key.split("/"),F=R[0];F==="b"&&(F="R"),F=F.replace(new RegExp("#","g"),""),F=F.replace(new RegExp("n","g"),""),F.length>1&&(F=F.replace(new RegExp("b","g"),""));let D=0,G=0;this.note.stave&&this.note.stave.options&&this.note.stave.options.keySignature&&(tone=this.note.stave.options.keySignature);const U=this.note.getLine();return UNumberedNoteHead.numberedNotationMapping.max&&(G=Math.ceil((U-NumberedNoteHead.numberedNotationMapping.max)/3.5)),F.toUpperCase()==="R"&&(D=0,G=0),{key:NumberedNoteHead.numberedNotationMapping[F.toUpperCase()],td:G,bd:D}}constructor(R){this.key=R.key,this.x=R.x||0,this.y=R.y||0,this.idx=R.idx||0,this.note=R.note||0,this.meta=this.tone_to_numbered_key(),this.noteSize=R.noteSize||16,this.td=this.meta.td,this.bd=this.meta.bd}draw(R){let F=this.y;R.openGroup("numbered-note-head");var D=this.x+(this.note.ornament?-2:0);let G=F-this.note.unit_height-this.note.dot_space-(this.note.ornament?-4:2);for(let W=0;W1&&(q-=this.note.duration_line_space),F+=q}this.draw_dot(R,D+_text_width,F,this.note.dot_width),F+=this.note.dot_width+this.note.dot_space}R.closeGroup()}get height(){return this.note.note_height+(this.meta.bd+this.meta.td)*(this.note.dot_width+this.note.dot_space)}draw_dot(R,F,D,G){R.openGroup("numbered-note-dot"),R.beginPath(),R.arc(F,D,G,0,2*Math.PI),R.closePath(),R.fill(),R.closeGroup()}}function L(...B){Factory.DEBUG&&Vex.L("Vex.Flow.Factory",B)}const X=Vex.MakeException("FactoryError");function setDefaults$1(B={},R){const F=R.options;return B=Object.assign(R,B),B.options=Object.assign(F,B.options),B}class Factory{constructor(R){L("New factory: ",R);const F={stave:{space:10},renderer:{context:null,elementId:"",backend:Renderer.Backends.SVG,width:500,height:200,background:"#FFF"},font:{face:"Arial",point:10,style:""}};this.options=F,this.setOptions(R)}static newFromElementId(R,F=500,D=200){return new Factory({renderer:{elementId:R,width:F,height:D}})}reset(){this.renderQ=[],this.systems=[],this.staves=[],this.voices=[],this.stave=null}getOptions(){return this.options}setOptions(R){for(const F of["stave","renderer","font"])Object.assign(this.options[F],R[F]);(this.options.renderer.elementId!==null||this.options.renderer.context)&&this.initRenderer(),this.reset()}initRenderer(){const{elementId:R,backend:F,width:D,height:G,background:U}=this.options.renderer;if(R==="")throw new X("HTML DOM element not set in Factory");this.context=Renderer.buildContext(R,F,D,G,U)}getContext(){return this.context}setContext(R){return this.context=R,this}getStave(){return this.stave}getVoices(){return this.voices}space(R){return this.options.stave.space*R}Stave(R){R=setDefaults$1(R,{x:0,y:0,width:this.options.renderer.width-this.space(1),options:{spacing_between_lines_px:this.options.stave.space}});const F=new Stave(R.x,R.y,R.width,R.options);return this.staves.push(F),F.setContext(this.context),this.stave=F,F}TabStave(R){R=setDefaults$1(R,{x:0,y:0,width:this.options.renderer.width-this.space(1),options:{spacing_between_lines_px:this.options.stave.space*1.3}});const F=new TabStave(R.x,R.y,R.width,R.options);return this.staves.push(F),F.setContext(this.context),this.stave=F,F}StaveNote(R){const F=new StaveNote(R);return this.stave&&F.setStave(this.stave),F.setContext(this.context),this.renderQ.push(F),F}GhostNote(R){const F=new GhostNote(R);return this.stave&&F.setStave(this.stave),F.setContext(this.context),this.renderQ.push(F),F}TextNote(R){const F=new TextNote(R);return this.stave&&F.setStave(this.stave),F.setContext(this.context),this.renderQ.push(F),F}NumberedNote(R){const F=new NumberedNote(R);return this.stave&&F.setStave(this.stave),F.setContext(this.context),this.renderQ.push(F),F}BarNote(R){R=setDefaults$1(R,{type:"single",options:{}});const F=new BarNote(R.type);return this.stave&&F.setStave(this.stave),F.setContext(this.context),this.renderQ.push(F),F}ClefNote(R){R=setDefaults$1(R,{type:"treble",options:{size:"default"}});const F=new ClefNote(R.type,R.options.size,R.options.annotation);return this.stave&&F.setStave(this.stave),F.setContext(this.context),this.renderQ.push(F),F}TimeSigNote(R){R=setDefaults$1(R,{time:"4/4",options:{}});const F=new TimeSigNote(R.time);return this.stave&&F.setStave(this.stave),F.setContext(this.context),this.renderQ.push(F),F}KeySigNote(R){const F=new KeySigNote(R.key,R.cancelKey,R.alterKey);return this.stave&&F.setStave(this.stave),F.setContext(this.context),this.renderQ.push(F),F}TabNote(R){const F=new TabNote$1(R);return this.stave&&F.setStave(this.stave),F.setContext(this.context),this.renderQ.push(F),F}GraceNote(R){const F=new GraceNote(R);return this.stave&&F.setStave(this.stave),F.setContext(this.context),F}GraceNoteGroup(R){const F=new GraceNoteGroup(R.notes,R.slur);return F.setContext(this.context),F}Accidental(R){R=setDefaults$1(R,{type:null,options:{}});const F=new Accidental(R.type);return F.setContext(this.context),F}Annotation(R){R=setDefaults$1(R,{text:"p",vJustify:"below",hJustify:"center",fontFamily:"Times",fontSize:14,fontWeight:"bold italic",options:{}});const F=new Annotation(R.text);return F.setJustification(R.hJustify),F.setVerticalJustification(R.vJustify),F.setFont(R.fontFamily,R.fontSize,R.fontWeight),F.setContext(this.context),F}Articulation(R){R=setDefaults$1(R,{type:"a.",position:"above",options:{}});const F=new Articulation$1(R.type);return F.setPosition(R.position),F.setContext(this.context),F}TextDynamics(R){R=setDefaults$1(R,{text:"p",duration:"q",dots:0,line:0,options:{}});const F=new TextDynamics({text:R.text,line:R.line,duration:R.duration,dots:R.dots});return this.stave&&F.setStave(this.stave),F.setContext(this.context),this.renderQ.push(F),F}Fingering(R){R=setDefaults$1(R,{number:"0",position:"left",options:{}});const F=new FretHandFinger(R.number);return F.setPosition(R.position),F.setContext(this.context),F}StringNumber(R){R=setDefaults$1(R,{number:"0",position:"left",options:{}});const F=new StringNumber(R.number);return F.setPosition(R.position),F.setContext(this.context),F}TickContext(){return new TickContext().setContext(this.context)}ModifierContext(){return new ModifierContext}MultiMeasureRest(R){const F=new MultiMeasureRest(R.number_of_measures,R);return F.setContext(this.context),this.renderQ.push(F),F}Voice(R){R=setDefaults$1(R,{time:"4/4",options:{}});const F=new Voice$1(R.time);return this.voices.push(F),F}StaveConnector(R){R=setDefaults$1(R,{top_stave:null,bottom_stave:null,type:"double",options:{}});const F=new StaveConnector(R.top_stave,R.bottom_stave);return F.setType(R.type).setContext(this.context),this.renderQ.push(F),F}Formatter(){return new Formatter}Tuplet(R){R=setDefaults$1(R,{notes:[],options:{}});const F=new Tuplet$1(R.notes,R.options).setContext(this.context);return this.renderQ.push(F),F}Beam(R){R=setDefaults$1(R,{notes:[],options:{autoStem:!1,secondaryBeamBreaks:[]}});const F=new Beam$1(R.notes,R.options.autoStem).setContext(this.context);return F.breakSecondaryAt(R.options.secondaryBeamBreaks),this.renderQ.push(F),F}Curve(R){R=setDefaults$1(R,{from:null,to:null,options:{}});const F=new Curve(R.from,R.to,R.options).setContext(this.context);return this.renderQ.push(F),F}StaveTie(R){R=setDefaults$1(R,{from:null,to:null,first_indices:[0],last_indices:[0],text:null,options:{direction:void 0}});const F=new StaveTie({first_note:R.from,last_note:R.to,first_indices:R.first_indices,last_indices:R.last_indices},R.text);return R.options.direction&&F.setDirection(R.options.direction),F.setContext(this.context),this.renderQ.push(F),F}StaveLine(R){R=setDefaults$1(R,{from:null,to:null,first_indices:[0],last_indices:[0],options:{}});const F=new StaveLine({first_note:R.from,last_note:R.to,first_indices:R.first_indices,last_indices:R.last_indices});return R.options.text&&F.setText(R.options.text),R.options.font&&F.setFont(R.options.font),F.setContext(this.context),this.renderQ.push(F),F}VibratoBracket(R){R=setDefaults$1(R,{from:null,to:null,options:{harsh:!1}});const F=new VibratoBracket({start:R.from,stop:R.to});return R.options.line&&F.setLine(R.options.line),R.options.harsh&&F.setHarsh(R.options.harsh),F.setContext(this.context),this.renderQ.push(F),F}TextBracket(R){R=setDefaults$1(R,{from:null,to:null,text:"",options:{superscript:"",position:1}});const F=new TextBracket({start:R.from,stop:R.to,text:R.text,superscript:R.options.superscript,position:R.options.position});return R.options.line&&F.setLine(R.options.line),R.options.font&&F.setFont(R.options.font),F.setContext(this.context),this.renderQ.push(F),F}System(R={}){R.factory=this;const F=new System(R).setContext(this.context);return this.systems.push(F),F}EasyScore(R={}){return R.factory=this,new EasyScore(R)}PedalMarking(R={}){R=setDefaults$1(R,{notes:[],options:{style:"mixed"}});const F=new PedalMarking(R.notes);return F.setStyle(PedalMarking.StylesString[R.options.style]),F.setContext(this.context),this.renderQ.push(F),F}NoteSubGroup(R={}){R=setDefaults$1(R,{notes:[],options:{}});const F=new NoteSubGroup$1(R.notes);return F.setContext(this.context),F}draw(){this.systems.forEach(R=>R.setContext(this.context).format()),this.staves.forEach(R=>R.setContext(this.context).draw()),this.voices.forEach(R=>R.setContext(this.context).draw()),this.renderQ.forEach(R=>{R.isRendered()||R.setContext(this.context).draw()}),this.systems.forEach(R=>R.setContext(this.context).draw()),this.reset()}}function setDefaults(B,R){const F=R.options;return B=Object.assign(R,B),B.options=Object.assign(F,B.options),B}class System extends Element$1{constructor(R={}){super(),this.setAttribute("type","System"),this.setOptions(R),this.parts=[]}setOptions(R={}){this.options=setDefaults(R,{x:10,y:10,width:500,connector:null,spaceBetweenStaves:12,factory:null,debugFormatter:!1,formatIterations:0,options:{}}),this.factory=this.options.factory||new Factory({renderer:{el:null}})}setContext(R){return super.setContext(R),this.factory.setContext(R),this}addConnector(R="double"){return this.connector=this.factory.StaveConnector({top_stave:this.parts[0].stave,bottom_stave:this.parts[this.parts.length-1].stave,type:R}),this.connector}addStave(R){return R=setDefaults(R,{stave:null,voices:[],spaceAbove:0,spaceBelow:0,debugNoteMetrics:!1,options:{left_bar:!1}}),R.stave||(R.stave=this.factory.Stave({x:this.options.x,y:this.options.y,width:this.options.width,options:R.options})),R.voices.forEach(F=>F.setContext(this.context).setStave(R.stave).getTickables().forEach(D=>D.setStave(R.stave))),this.parts.push(R),R.stave}format(){const R=new Formatter;this.formatter=R;let F=this.options.y,D=0,G=[];const U=[];this.parts.forEach(q=>{F=F+q.stave.space(q.spaceAbove),q.stave.setY(F),R.joinVoices(q.voices),F=F+q.stave.space(q.spaceBelow),F=F+q.stave.space(this.options.spaceBetweenStaves),q.debugNoteMetrics&&(U.push({y:F,voice:q.voices[0]}),F+=15),G=G.concat(q.voices),D=Math.max(D,q.stave.getNoteStartX())}),this.parts.forEach(q=>q.stave.setNoteStartX(D));const W=this.options.width-(D-this.options.x)-Note.STAVEPADDING;R.format(G,W);for(let q=0;q{F.voice.getTickables().forEach(D=>Note.plotMetrics(R,D,F.y))})}}Vex.Flow=Flow;Vex.Flow.Element=Element$1;Vex.Flow.Fraction=Fraction;Vex.Flow.Renderer=Renderer;Vex.Flow.Formatter=Formatter;Vex.Flow.Music=Music;Vex.Flow.Glyph=Glyph;Vex.Flow.Stave=Stave;Vex.Flow.StaveNote=StaveNote;Vex.Flow.StaveModifier=StaveModifier;Vex.Flow.StaveTempo=StaveTempo;Vex.Flow.Voice=Voice$1;Vex.Flow.Accidental=Accidental;Vex.Flow.Beam=Beam$1;Vex.Flow.StaveTie=StaveTie;Vex.Flow.TabStave=TabStave;Vex.Flow.TabNote=TabNote$1;Vex.Flow.Bend=Bend;Vex.Flow.Vibrato=Vibrato;Vex.Flow.VibratoBracket=VibratoBracket;Vex.Flow.Note=Note;Vex.Flow.ModifierContext=ModifierContext;Vex.Flow.MultiMeasureRest=MultiMeasureRest;Vex.Flow.TickContext=TickContext;Vex.Flow.Articulation=Articulation$1;Vex.Flow.Annotation=Annotation;Vex.Flow.Barline=Barline;Vex.Flow.NoteHead=NoteHead;Vex.Flow.StaveConnector=StaveConnector;Vex.Flow.ClefNote=ClefNote;Vex.Flow.KeySignature=KeySignature;Vex.Flow.KeySigNote=KeySigNote;Vex.Flow.TimeSignature=TimeSignature;Vex.Flow.TimeSigNote=TimeSigNote;Vex.Flow.Stem=Stem;Vex.Flow.TabTie=TabTie;Vex.Flow.Clef=Clef;Vex.Flow.Dot=Dot;Vex.Flow.Modifier=Modifier;Vex.Flow.TabSlide=TabSlide;Vex.Flow.Tuplet=Tuplet$1;Vex.Flow.GraceNote=GraceNote;Vex.Flow.GraceTabNote=GraceTabNote;Vex.Flow.Tuning=Tuning;Vex.Flow.KeyManager=KeyManager;Vex.Flow.StaveHairpin=StaveHairpin;Vex.Flow.BoundingBox=BoundingBox;Vex.Flow.Stroke=Stroke;Vex.Flow.TextNote=TextNote;Vex.Flow.Curve=Curve;Vex.Flow.TextDynamics=TextDynamics;Vex.Flow.StaveLine=StaveLine;Vex.Flow.Ornament=Ornament;Vex.Flow.PedalMarking=PedalMarking;Vex.Flow.TextBracket=TextBracket;Vex.Flow.FretHandFinger=FretHandFinger;Vex.Flow.Repetition=Repetition$1;Vex.Flow.BarNote=BarNote;Vex.Flow.GhostNote=GhostNote;Vex.Flow.NoteSubGroup=NoteSubGroup$1;Vex.Flow.GraceNoteGroup=GraceNoteGroup;Vex.Flow.Tremolo=Tremolo;Vex.Flow.StringNumber=StringNumber;Vex.Flow.Crescendo=Crescendo;Vex.Flow.Volta=Volta;Vex.Flow.Font=Font;Vex.Flow.System=System;Vex.Flow.Factory=Factory;Vex.Flow.Parser=Parser;Vex.Flow.EasyScore=EasyScore;Vex.Flow.Registry=Registry;var SystemLinesEnum=(B=>(B[B.SingleThin=0]="SingleThin",B[B.DoubleThin=1]="DoubleThin",B[B.ThinBold=2]="ThinBold",B[B.BoldThinDots=3]="BoldThinDots",B[B.DotsThinBold=4]="DotsThinBold",B[B.DotsBoldBoldDots=5]="DotsBoldBoldDots",B[B.None=6]="None",B[B.Dotted=7]="Dotted",B[B.Dashed=8]="Dashed",B[B.Bold=9]="Bold",B[B.BoldThin=10]="BoldThin",B[B.DoubleBold=11]="DoubleBold",B[B.Tick=12]="Tick",B[B.Short=13]="Short",B))(SystemLinesEnum||{});class SystemLinesEnumHelper{static xmlBarlineStyleToSystemLinesEnum(R){return R==="regular"?0:R==="dotted"?7:R==="dashed"?8:R==="heavy"?9:R==="light-light"?1:R==="light-heavy"?2:R==="heavy-light"?10:R==="heavy-heavy"?11:R==="tick"?12:R==="short"?13:R==="none"?6:0}}class Matrix2D{constructor(){this.matrix=[];for(let R=0;R<2;R++){this.matrix[R]=[];for(let F=0;F<2;F++)this.matrix[R][F]=0}}static getRotationMatrix(R){const F=new Matrix2D,D=Math.cos(R),G=Math.sin(R);return F.matrix[0][0]=D,F.matrix[0][1]=-G,F.matrix[1][0]=G,F.matrix[1][1]=D,F}scalarMultiplication(R){for(let F=0;F<2;F++)for(let D=0;D<2;D++)this.matrix[F][D]*=R}getTransposeMatrix(){const R=new Matrix2D;for(let F=0;F<2;F++)for(let D=0;D<2;D++)R.matrix[F][D]=this.matrix[D][F];return R}vectorMultiplication(R){const F=new PointF2D;return F.x=R.x*this.matrix[0][0]+R.y*this.matrix[0][1],F.y=R.x*this.matrix[1][0]+R.y*this.matrix[1][1],F}}class MusicSheetErrors{constructor(){this.measureErrors={},this.errors=[],this.tempErrors=[]}finalizeMeasure(R){let F=this.measureErrors[R];F||(F=[]),this.measureErrors[R]=F.concat(this.tempErrors),this.tempErrors=[]}pushMeasureError(R){this.tempErrors.push(R)}push(R){this.errors.push(R)}}class Arpeggio{constructor(R,F=ArpeggioType.ARPEGGIO_DIRECTIONLESS){this.parentVoiceEntry=R,this.type=F,this.notes=[]}addNote(R){this.notes.push(R),R.Arpeggio=this}}var ArpeggioType=(B=>(B[B.BRUSH_DOWN=1]="BRUSH_DOWN",B[B.BRUSH_UP=2]="BRUSH_UP",B[B.ROLL_DOWN=3]="ROLL_DOWN",B[B.ROLL_UP=4]="ROLL_UP",B[B.RASQUEDO_DOWN=5]="RASQUEDO_DOWN",B[B.RASQUEDO_UP=6]="RASQUEDO_UP",B[B.ARPEGGIO_DIRECTIONLESS=7]="ARPEGGIO_DIRECTIONLESS",B))(ArpeggioType||{});class Beam{constructor(R=1,F=0){this.notes=[],this.extendedNoteList=[],this.BeamNumberOffsetToXML=0,this.BeamNumber=R,this.BeamNumberOffsetToXML=F}get Notes(){return this.notes}set Notes(R){this.notes=R}get ExtendedNoteList(){return this.extendedNoteList}set ExtendedNoteList(R){this.extendedNoteList=R}addNoteToBeam(R){R&&(R.NoteBeam=this,this.notes.push(R),this.extendedNoteList.push(R))}}class Voice{constructor(R,F){this.voiceEntries=[],this.volume=1,this.parent=R,this.visible=!0,this.audible=!0,this.following=!0,this.voiceId=F,this.uniqueVoiceId="I:"+this.parent.Id+" V: "+this.voiceId}get VoiceEntries(){return this.voiceEntries}get Parent(){return this.parent}get Visible(){return this.visible}set Visible(R){this.visible=R}get Audible(){return this.audible}set Audible(R){this.audible=R}get Following(){return this.following}set Following(R){this.following=R}get Solo(){return this.solo}set Solo(R){this.solo=R}get VoiceId(){return this.voiceId}get Volume(){return this.volume}set Volume(R){this.volume=R}toString(){return this.uniqueVoiceId}}class LinkedVoice extends Voice{constructor(R,F,D){super(R,F),this.master=D}get Master(){return this.master}}class Notehead{constructor(R,F,D=void 0){this.sourceNote=R,this.setShapeFromXml(F,D)}setShapeFromXml(R,F=void 0){this.shape=Notehead.ShapeTypeXmlToShape(R);let D=F;D===void 0&&(this.sourceNote?D=this.sourceNote.Length.Denominator>2:(log$2.warn("notehead: sourceNote and filledXmlAttribute undefined."),D=!0)),this.filled=D}get SourceNote(){return this.sourceNote}get Shape(){return this.shape}get Filled(){return this.filled}static ShapeTypeXmlToShape(R){switch(R.toLowerCase()){case"normal":return NoteHeadShape.NORMAL;case"x":return NoteHeadShape.X;case"slash":return NoteHeadShape.SLASH;case"diamond":return NoteHeadShape.DIAMOND;case"square":return NoteHeadShape.SQUARE;case"la":return NoteHeadShape.SQUARE;case"do":case"triangle":return NoteHeadShape.TRIANGLE;case"rectangle":return NoteHeadShape.RECTANGLE;case"circle-x":return NoteHeadShape.CIRCLEX;default:return log$2.info("unsupported/unhandled xml notehead '"+R+"'. Using normal notehead."),NoteHeadShape.NORMAL}}}var NoteHeadShape=(B=>(B[B.CIRCLEX=0]="CIRCLEX",B[B.DIAMOND=1]="DIAMOND",B[B.NORMAL=2]="NORMAL",B[B.RECTANGLE=3]="RECTANGLE",B[B.SLASH=4]="SLASH",B[B.SQUARE=5]="SQUARE",B[B.TRIANGLE=6]="TRIANGLE",B[B.X=7]="X",B))(NoteHeadShape||{});class ITextTranslation{static translateText(R,F){if(!this.defaultTextTranslation)return F}}var NoteType=(B=>(B[B.UNDEFINED=0]="UNDEFINED",B[B._1024th=1]="_1024th",B[B._512th=2]="_512th",B[B._256th=3]="_256th",B[B._128th=4]="_128th",B[B._64th=5]="_64th",B[B._32nd=6]="_32nd",B[B._16th=7]="_16th",B[B.EIGTH=8]="EIGTH",B[B.QUARTER=9]="QUARTER",B[B.HALF=10]="HALF",B[B.WHOLE=11]="WHOLE",B[B.BREVE=12]="BREVE",B[B.LONG=13]="LONG",B[B.MAXIMA=14]="MAXIMA",B))(NoteType||{});class NoteTypeHandler{static NoteTypeToString(R){return this.NoteTypeXmlValues[R]}static StringToNoteType(R){const F=this.NoteTypeXmlValues.indexOf(R);return F!==-1?F:0}static getNoteDurationFromType(R){switch(R){case"1024th":return new Fraction$1(1,1024);case"512th":return new Fraction$1(1,512);case"256th":return new Fraction$1(1,256);case"128th":return new Fraction$1(1,128);case"64th":return new Fraction$1(1,64);case"32th":case"32nd":return new Fraction$1(1,32);case"16th":return new Fraction$1(1,16);case"eighth":return new Fraction$1(1,8);case"quarter":return new Fraction$1(1,4);case"half":return new Fraction$1(1,2);case"whole":return new Fraction$1(1,1);case"breve":return new Fraction$1(2,1);case"long":return new Fraction$1(4,1);case"maxima":return new Fraction$1(8,1);default:{const F=ITextTranslation.translateText("ReaderErrorMessages/NoteDurationError","Invalid note duration.");throw new MusicSheetReadingException(F)}}}}NoteTypeHandler.NoteTypeXmlValues=["","1024th","512th","256th","128th","64th","32nd","16th","eigth","quarter","half","whole","breve","long","maxima"];class OrnamentContainer{constructor(R){this.placement=PlacementEnum.Above,this.accidentalAbove=AccidentalEnum.NONE,this.accidentalBelow=AccidentalEnum.NONE,this.ornament=R}get GetOrnament(){return this.ornament}get AccidentalAbove(){return this.accidentalAbove}set AccidentalAbove(R){this.accidentalAbove=R}get AccidentalBelow(){return this.accidentalBelow}set AccidentalBelow(R){this.accidentalBelow=R}}var OrnamentEnum=(B=>(B[B.Trill=0]="Trill",B[B.Turn=1]="Turn",B[B.InvertedTurn=2]="InvertedTurn",B[B.DelayedTurn=3]="DelayedTurn",B[B.DelayedInvertedTurn=4]="DelayedInvertedTurn",B[B.Mordent=5]="Mordent",B[B.InvertedMordent=6]="InvertedMordent",B))(OrnamentEnum||{});class VerticalSourceStaffEntryContainer{constructor(R,F,D){this.staffEntries=[],this.comments=[],this.timestamp=F,this.staffEntries=new Array(D),this.parentMeasure=R}$get$(R){return this.staffEntries[R]}$set$(R,F){this.staffEntries[R]=F}get Timestamp(){return this.timestamp}set Timestamp(R){this.timestamp=R}get StaffEntries(){return this.staffEntries}set StaffEntries(R){this.staffEntries=R}get Comments(){return this.comments}set Comments(R){this.comments=R}get ParentMeasure(){return this.parentMeasure}set ParentMeasure(R){this.parentMeasure=R}getAbsoluteTimestamp(){return Fraction$1.plus(this.timestamp,this.parentMeasure.AbsoluteTimestamp)}}class SourceStaffEntry{constructor(R,F){this.voiceEntries=[],this.instructions=[],this.chordSymbolContainers=[],this.verticalContainerParent=R,this.parentStaff=F}get ParentStaff(){return this.parentStaff}get VerticalContainerParent(){return this.verticalContainerParent}get Timestamp(){if(this.VerticalContainerParent)return this.VerticalContainerParent.Timestamp}get AbsoluteTimestamp(){if(this.VerticalContainerParent)return Fraction$1.plus(this.VerticalContainerParent.ParentMeasure.AbsoluteTimestamp,this.VerticalContainerParent.Timestamp)}get VoiceEntries(){return this.voiceEntries}set VoiceEntries(R){this.voiceEntries=R}get Link(){return this.staffEntryLink}set Link(R){this.staffEntryLink=R}get Instructions(){return this.instructions}set Instructions(R){this.instructions=R}get ChordContainers(){return this.chordSymbolContainers}set ChordContainers(R){this.chordSymbolContainers=R}removeAllInstructionsOfTypeClefInstruction(){let R=0,F=0;for(;R0)return!0;return!1}hasTie(){for(let R=0,F=this.VoiceEntries.length;RF.parentRepetition.StartIndex)return-1}if(R.alignment===AlignmentType.Begin&&F.alignment===AlignmentType.Begin){if(R.parentRepetition.EndIndexF.parentRepetition.EndIndex)return-1}}return 0}}class RepetitionInstruction{constructor(R,F,D=AlignmentType.End,G=void 0,U=void 0){this.endingIndices=void 0,this.measureIndex=R,U&&(this.endingIndices=U.slice()),this.type=F,this.alignment=D,this.parentRepetition=G}CompareTo(R){const F=R;if(this.measureIndex>F.measureIndex)return 1;if(this.measureIndex(B[B.StartLine=0]="StartLine",B[B.ForwardJump=1]="ForwardJump",B[B.BackJumpLine=2]="BackJumpLine",B[B.Ending=3]="Ending",B[B.DaCapo=4]="DaCapo",B[B.DalSegno=5]="DalSegno",B[B.Fine=6]="Fine",B[B.ToCoda=7]="ToCoda",B[B.DalSegnoAlFine=8]="DalSegnoAlFine",B[B.DaCapoAlFine=9]="DaCapoAlFine",B[B.DalSegnoAlCoda=10]="DalSegnoAlCoda",B[B.DaCapoAlCoda=11]="DaCapoAlCoda",B[B.Coda=12]="Coda",B[B.Segno=13]="Segno",B[B.None=14]="None",B))(RepetitionInstructionEnum||{}),AlignmentType=(B=>(B[B.Begin=0]="Begin",B[B.End=1]="End",B))(AlignmentType||{});let prevSourceMeasure=null;class SourceMeasure{constructor(R,F){this.printNewSystemXml=!1,this.printNewPageXml=!1,this.IsSystemStartMeasure=!1,this.hasLyrics=!1,this.hasMoodExpressions=!1,this.allRests=!1,this.isReducedToMultiRest=!1,this.multipleRestMeasureNumber=0,this.staffLinkedExpressions=[],this.tempoExpressions=[],this.verticalSourceStaffEntryContainers=[],this.graphicalMeasureErrors=[],this.firstRepetitionInstructions=[],this.lastRepetitionInstructions=[],this.metronomeNoteIndex=0,this.completeNumberOfStaves=R,this.implicitMeasure=!1,this.hasEndLine=!1,this.endingBarStyleXml="",this.endingBarStyleEnum=SystemLinesEnum.SingleThin,this.firstInstructionsStaffEntries=new Array(R),this.lastInstructionsStaffEntries=new Array(R),this.rules=F,this.TempoInBPM=0;for(let D=0;D1)return R[this.measureListIndex-1]}get Rules(){return this.rules}get VerticalMeasureList(){return this.verticalMeasureList}set VerticalMeasureList(R){this.verticalMeasureList=R}get TempoInBPM(){return this.tempoInBPM}set TempoInBPM(R){this.tempoInBPM=R}findOrCreateStaffEntry(R,F,D){let G,U;for(const q of this.verticalSourceStaffEntryContainers)if(q.Timestamp.Equals(R)){U=q;break}if(U)return U.StaffEntries[F]?G=U.StaffEntries[F]:(G=new SourceStaffEntry(U,D),U.StaffEntries[F]=G),{createdNewContainer:!1,staffEntry:G};const W=this.verticalSourceStaffEntryContainers[this.verticalSourceStaffEntryContainers.length-1];if(this.verticalSourceStaffEntryContainers.length===0||W.Timestamp.lt(R)){const q=new VerticalSourceStaffEntryContainer(this,R.clone(),this.completeNumberOfStaves);this.verticalSourceStaffEntryContainers.push(q),G=new SourceStaffEntry(q,D),q.StaffEntries[F]=G}else for(let q=this.verticalSourceStaffEntryContainers.length-1;q>=0;q--){if(this.verticalSourceStaffEntryContainers[q].Timestamp.lt(R)){const Y=new VerticalSourceStaffEntryContainer(this,R.clone(),this.completeNumberOfStaves);this.verticalSourceStaffEntryContainers.splice(q+1,0,Y),G=new SourceStaffEntry(Y,D),Y.StaffEntries[F]=G;break}if(q===0){const Y=new VerticalSourceStaffEntryContainer(this,R.clone(),this.completeNumberOfStaves);this.verticalSourceStaffEntryContainers.splice(q,0,Y),G=new SourceStaffEntry(Y,D),Y.StaffEntries[F]=G;break}}return{createdNewContainer:!0,staffEntry:G}}findOrCreateVoiceEntry(R,F){let D,G=!1;for(const U of R.VoiceEntries)if(U.ParentVoice===F){D=U;break}return D||(D=new VoiceEntry(R.Timestamp,F,R),G=!0),{createdVoiceEntry:G,voiceEntry:D}}getPreviousSourceStaffEntryFromIndex(R,F){for(let D=F-1;D>=0;D--)if(this.verticalSourceStaffEntryContainers[D][R])return this.verticalSourceStaffEntryContainers[D][R]}getVerticalContainerIndexByTimestamp(R){for(let F=0,D=this.VerticalSourceStaffEntryContainers.length;F=0;K--){const J=this.verticalSourceStaffEntryContainers[K][q+Y];if(J!==void 0&&J.hasTie()&&W.lt(Fraction$1.plus(J.Timestamp,J.calculateMaxNoteLength()))){W=Fraction$1.plus(J.Timestamp,J.calculateMaxNoteLength());break}}}}G.push(W)}for(let U=0,W=G.length;U0)return!0}return!1}beginsWithLineRepetition(){for(let R=0,F=this.FirstRepetitionInstructions.length;R=0&&(F=this.verticalSourceStaffEntryContainers[D].StaffEntries[R],!F);D--);return F}canBeReducedToMultiRest(){var D,G,U,W,q,Y;let R=!0,F=!1;for(const Q of this.verticalSourceStaffEntryContainers)if(!!Q){for(const Z of Q.StaffEntries)if(!(!Z||!Z.ParentStaff.ParentInstrument.Visible)){if(Z.ChordContainers.length>0||(Z.ParentStaff.hasLyrics&&(F=!0),this.firstRepetitionInstructions.length>0||this.lastRepetitionInstructions.length>0))return!1;for(const K of Z.VoiceEntries){for(const J of K.Notes)if(!J.isRest()){R=!1;break}if(!R)break}}}if(!R||F||this.hasMoodExpressions||this.tempoExpressions.length>0)return!1;for(const Q of this.staffLinkedExpressions)if(Q.length>0)return!1;for(const Q of this.lastInstructionsStaffEntries)for(let Z=0,K=Q==null?void 0:Q.Instructions.length;Z=0;F--)for(let D=0;D(B[B.Fingering=0]="Fingering",B[B.String=1]="String",B))(TechnicalInstructionType||{});class TechnicalInstruction{}class PlaybackNote{constructor(R,F){this.parentEntry=R,this.parentNote=F,this.ParentNote.PlaybackNote=this,this.Length=this.ParentNote.Length,F.Pitch!==void 0?this.ParentNote.ParentStaff.ParentInstrument.MidiInstrumentId===MidiInstrument.Percussion?this.MidiKey=PlaybackNote.noteToMidiDrumKey(F):this.MidiKey=F.Pitch.getHalfTone()+12:this.MidiKey=0}setLength(){this.ParentNote.NoteTie!==void 0&&this.ParentNote.NoteTie.StartNote===this.ParentNote&&(this.Length=this.ParentNote.NoteTie.Duration)}get ParentEntry(){return this.parentEntry}get ParentNote(){return this.parentNote}static noteToMidiDrumKey(R){var G;const F=R.Pitch.getHalfTone()-12,D=(G=R.Notehead)==null?void 0:G.Shape;switch(R.Pitch.Octave){case 1:switch(R.Pitch.FundamentalNote){case NoteEnum.D:switch(D){default:return 44}case NoteEnum.E:switch(D){default:return 35}case NoteEnum.F:switch(D){default:return 36}case NoteEnum.G:switch(D){default:return 41}case NoteEnum.A:switch(D){default:return 43}case NoteEnum.B:switch(D){case NoteHeadShape.TRIANGLE:return 54;default:return 47}default:return F}case 2:switch(R.Pitch.FundamentalNote){case NoteEnum.C:switch(D){case NoteHeadShape.X:return 37;default:return 38}case NoteEnum.D:switch(D){case NoteHeadShape.X:return 59;default:return 48}case NoteEnum.E:switch(D){case NoteHeadShape.X:return 42;case NoteHeadShape.CIRCLEX:return 46;case NoteHeadShape.TRIANGLE:return 56;default:return 50}case NoteEnum.F:switch(D){case NoteHeadShape.DIAMOND:return 53;default:return 51}case NoteEnum.G:switch(D){case NoteHeadShape.CIRCLEX:case NoteHeadShape.DIAMOND:return 46;default:return 42}case NoteEnum.A:switch(D){default:return 49}case NoteEnum.B:switch(D){default:return 57}default:return F}case 3:switch(R.Pitch.FundamentalNote){case NoteEnum.C:switch(D){case NoteHeadShape.CIRCLEX:return 52;default:return 55}default:return F}default:return F}}}class PlaybackEntry{constructor(R){this.notes=[],this.TimestampShift=new Fraction$1,this.parentVoiceEntry=R;for(const F of R.Notes)this.Notes.push(new PlaybackNote(this,F))}get ParentVoiceEntry(){return this.parentVoiceEntry}get Notes(){return this.notes}get Length(){if(this.Notes.length>0)return this.Notes[0].Length}set Length(R){for(const F of this.Notes)F.Length=R}get HasNotes(){return this.Notes.length>0}}class VoiceEntry{constructor(R,F,D,G=!0,U=!1,W=!1,q=!1){if(this.notes=[],this.graceVoiceEntriesBefore=[],this.graceVoiceEntriesAfter=[],this.articulations=[],this.playbackEntries=[],this.technicalInstructions=[],this.lyricsEntries=new Dictionary,this.wantedStemDirection=StemDirectionType.Undefined,this.stemDirectionXml=StemDirectionType.Undefined,this.stemDirection=StemDirectionType.Undefined,this.timestamp=R,this.parentVoice=F,this.parentSourceStaffEntry=D,this.isGrace=U,this.graceAfterMainNote=!1,this.graceNoteSlash=W,this.graceSlur=q,U||F.VoiceEntries.push(this),G&&D!==void 0){const Y=D.VoiceEntries;Y.indexOf(this)===-1&&Y.push(this)}this.mainPlaybackEntry=new PlaybackEntry(this),this.PlaybackEntries.push(this.mainPlaybackEntry)}get ParentSourceStaffEntry(){return this.parentSourceStaffEntry}get ParentVoice(){return this.parentVoice}get Timestamp(){return this.timestamp}set Timestamp(R){this.timestamp=R}get Notes(){return this.notes}addNote(R){this.notes.push(R),!R.isRest()&&(R.NoteTie===void 0||R.NoteTie.StartNote===R)&&this.MainPlaybackEntry.Notes.push(new PlaybackNote(this.MainPlaybackEntry,R))}get GraceVoiceEntriesBefore(){return this.graceVoiceEntriesBefore}set GraceVoiceEntriesBefore(R){this.graceVoiceEntriesBefore=R;for(const F of this.graceVoiceEntriesBefore)F.parentSourceStaffEntry=this.ParentSourceStaffEntry}get GraceVoiceEntriesAfter(){return this.graceVoiceEntriesAfter}set GraceVoiceEntriesAfter(R){this.graceVoiceEntriesAfter=R;for(const F of this.graceVoiceEntriesAfter)F.parentSourceStaffEntry=this.ParentSourceStaffEntry}get IsGrace(){return this.isGrace}set IsGrace(R){this.isGrace=R}get GraceAfterMainNote(){return this.graceAfterMainNote}set GraceAfterMainNote(R){this.graceAfterMainNote=R}get GraceNoteSlash(){return this.graceNoteSlash}set GraceNoteSlash(R){this.graceNoteSlash=R}get GraceSlur(){return this.graceSlur}set GraceSlur(R){this.graceSlur=R}get Articulations(){return this.articulations}get PlaybackEntries(){return this.playbackEntries}get Fermata(){return this.fermata}get MainPlaybackEntry(){return this.mainPlaybackEntry}set MainPlaybackEntry(R){this.mainPlaybackEntry=R}removeMainPlaybackEntry(){this.mainPlaybackEntry!==void 0&&this.removePlaybackEntry(this.mainPlaybackEntry)}removePlaybackEntry(R){this.mainPlaybackEntry===R&&(this.mainPlaybackEntry=void 0);const F=this.playbackEntries.indexOf(R);F>-1&&this.playbackEntries.splice(F,1)}get TechnicalInstructions(){return this.technicalInstructions}get LyricsEntries(){return this.lyricsEntries}get Arpeggio(){return this.arpeggio}set Arpeggio(R){this.arpeggio=R}get OrnamentContainer(){return this.ornamentContainer}set OrnamentContainer(R){this.ornamentContainer=R}set WantedStemDirection(R){this.wantedStemDirection=R}get WantedStemDirection(){return this.wantedStemDirection}set StemDirectionXml(R){this.stemDirectionXml=R}get StemDirectionXml(){return this.stemDirectionXml}set StemDirection(R){this.stemDirection=R}get StemDirection(){return this.stemDirection}get StemColorXml(){return this.stemColorXml}set StemColorXml(R){this.stemColorXml=R}get StemColor(){return this.stemColor}set StemColor(R){this.stemColor=R}get VolumeModifier(){return this.volumeModifier}set VolumeModifier(R){this.volumeModifier=R}get DurationModifier(){return this.durationModifier}set DurationModifier(R){this.durationModifier=R}hasArticulation(R){for(const F of this.articulations)if(F.Equals(R))return!0;return!1}static isSupportedArticulation(R){switch(R){case ArticulationEnum.accent:case ArticulationEnum.strongaccent:case ArticulationEnum.invertedstrongaccent:case ArticulationEnum.staccato:case ArticulationEnum.staccatissimo:case ArticulationEnum.spiccato:case ArticulationEnum.tenuto:case ArticulationEnum.fermata:case ArticulationEnum.invertedfermata:case ArticulationEnum.breathmark:case ArticulationEnum.caesura:case ArticulationEnum.lefthandpizzicato:case ArticulationEnum.naturalharmonic:case ArticulationEnum.snappizzicato:case ArticulationEnum.upbow:case ArticulationEnum.downbow:case ArticulationEnum.bend:case ArticulationEnum.detachedlegato:return!0;default:return!1}}hasTie(){for(let R=0,F=this.Notes.length;R0)return!0;return!1}isStaccato(){for(const R of this.Articulations)if(R.articulationEnum===ArticulationEnum.staccato)return!0;return!1}isAccent(){for(const R of this.Articulations)if(R.articulationEnum===ArticulationEnum.accent||R.articulationEnum===ArticulationEnum.strongaccent)return!0;return!1}getVerseNumberForLyricEntry(R){let F=1;return this.lyricsEntries.forEach((D,G)=>{R===G&&(F=D)}),F}}var ArticulationEnum=(B=>(B[B.accent=0]="accent",B[B.strongaccent=1]="strongaccent",B[B.marcatoup=2]="marcatoup",B[B.marcatodown=3]="marcatodown",B[B.invertedstrongaccent=4]="invertedstrongaccent",B[B.staccato=5]="staccato",B[B.staccatissimo=6]="staccatissimo",B[B.spiccato=7]="spiccato",B[B.tenuto=8]="tenuto",B[B.fermata=9]="fermata",B[B.invertedfermata=10]="invertedfermata",B[B.breathmark=11]="breathmark",B[B.caesura=12]="caesura",B[B.lefthandpizzicato=13]="lefthandpizzicato",B[B.naturalharmonic=14]="naturalharmonic",B[B.snappizzicato=15]="snappizzicato",B[B.upbow=16]="upbow",B[B.downbow=17]="downbow",B[B.scoop=18]="scoop",B[B.plop=19]="plop",B[B.doit=20]="doit",B[B.falloff=21]="falloff",B[B.stress=22]="stress",B[B.unstress=23]="unstress",B[B.detachedlegato=24]="detachedlegato",B[B.otherarticulation=25]="otherarticulation",B[B.bend=26]="bend",B))(ArticulationEnum||{}),StemDirectionType=(B=>(B[B.Undefined=-1]="Undefined",B[B.Up=0]="Up",B[B.Down=1]="Down",B[B.None=2]="None",B[B.Double=3]="Double",B))(StemDirectionType||{}),SystemLinePosition=(B=>(B[B.MeasureBegin=0]="MeasureBegin",B[B.MeasureEnd=1]="MeasureEnd",B))(SystemLinePosition||{});class GraphicalLabel extends Clickable{constructor(R,F,D,G,U=void 0){super(),this.label=R,this.boundingBox=new BoundingBox$1(this,U),this.label.fontHeight=F,this.label.textAlignment=D,this.rules=G,this.rules.MpatMode&&this.label.text==="TRIO"&&(this.label.fontFamily="Arial")}get Label(){return this.label}toString(){return`${this.label.text} (${this.boundingBox.RelativePosition.x},${this.boundingBox.RelativePosition.y})`}setLabelPositionAndShapeBorders(){var q,Y;if(this.Label.text.trim()==="")return;this.TextLines=[];const R=(Y=(q=this.rules)==null?void 0:q.LabelMarginBorderFactor)!=null?Y:.1,F=this.Label.text.split(/[\n\r]+/g),D=F.length;let G=0;for(let Q=0;Q0&&this.TextLines.length>1&&(U+=this.rules.SpacingBetweenTextLines*D/10);const W=this.PositionAndShape;switch(this.Label.textAlignment){case TextAlignmentEnum.CenterBottom:W.BorderTop=-U,W.BorderLeft=-G/2,W.BorderBottom=0,W.BorderRight=G/2;break;case TextAlignmentEnum.CenterCenter:W.BorderTop=-U/2,W.BorderLeft=-G/2,W.BorderBottom=U/2,W.BorderRight=G/2;break;case TextAlignmentEnum.CenterTop:W.BorderTop=0,W.BorderLeft=-G/2,W.BorderBottom=U,W.BorderRight=G/2;break;case TextAlignmentEnum.LeftBottom:W.BorderTop=-U,W.BorderLeft=0,W.BorderBottom=0,W.BorderRight=G;break;case TextAlignmentEnum.LeftCenter:W.BorderTop=-U/2,W.BorderLeft=0,W.BorderBottom=U/2,W.BorderRight=G;break;case TextAlignmentEnum.LeftTop:W.BorderTop=0,W.BorderLeft=0,W.BorderBottom=U,W.BorderRight=G;break;case TextAlignmentEnum.RightBottom:W.BorderTop=-U,W.BorderLeft=-G,W.BorderBottom=0,W.BorderRight=0;break;case TextAlignmentEnum.RightCenter:W.BorderTop=-U/2,W.BorderLeft=-G,W.BorderBottom=U/2,W.BorderRight=0;break;case TextAlignmentEnum.RightTop:W.BorderTop=0,W.BorderLeft=-G,W.BorderBottom=U,W.BorderRight=0;break}W.BorderMarginTop=W.BorderTop-U*R,W.BorderMarginLeft=W.BorderLeft-U*R,W.BorderMarginBottom=W.BorderBottom+U*R,W.BorderMarginRight=W.BorderRight+U*R}}class Label{constructor(R="",F=TextAlignmentEnum.CenterBottom,D=void 0,G=!0){this.IsCreditLabel=!1,this.text=R,this.print=G,this.textAlignment=F,this.font=D,this.fontFamily=void 0}set font(R){this.fontEnumValue=R,this.fontFamily=FontStringNames[R]}get font(){return this.fontEnumValue}ToString(){return this.text}}const SpeedTag={Grava:40,Largo:46,Lento:52,Adagio:56,Larghetto:60,Andante:66,Anderato:69,Andantino:69,Moderato:88,Allegretto:108,"Allegro Moderato":108,Allegro:132,Vivace:152,Vivo:160,Vivacissimo:168,Presto:184,Prestissimo:208},SpecialMarks=["\u7EAF\u5F8B","\u7EAF\u5F8B\u7ED3\u675F"],HideWords=["\u8DF3\u8FC7\u4E0B\u4E00\u4E2A","b","#","\xA7","\xBA","X"],GradientWords=["poco rit.","rall.","rit.","accel.","molto rit.","molto rall","lentando","poco accel.","calando"],GRADIENT_SPEED_CLOSE_TAG="\u7ED3\u675F\u8303\u56F4\u901F\u5EA6",GRADIENT_SPEED_RESET_TAG="a tempo",SpecialWords=[GRADIENT_SPEED_CLOSE_TAG],SpeedKeyword="\u901F\u5EA6 ",SpeedHiddenKeyword="\u4EC5\u6587\u672C\u901F\u5EA6 ";function isSpeedKeyword(B){return B.indexOf(SpeedKeyword)===0}function isSpeedHiddenKeyword(B){return B.indexOf(SpeedHiddenKeyword)===0}function formatSpeedKeyword(B){return B.replace(SpeedHiddenKeyword,"").replace(SpeedKeyword,"")}function isGradientWords(B){return GradientWords.includes(B)}function isSpecialMark(B){return[...Object.keys(SpeedTag),...SpecialMarks,...SpecialWords,...HideWords].map(R=>R.trim().toLocaleUpperCase()).includes(B.toLocaleUpperCase().trim())}function isTopFont(B){return[TextAlignmentEnum.CenterTop,TextAlignmentEnum.RightTop].includes(B)}var MusicSymbol=(B=>(B[B.Unused_first_Symbol=0]="Unused_first_Symbol",B[B.BLACK_HEAD=1]="BLACK_HEAD",B[B.UPWARDS_TAIL=2]="UPWARDS_TAIL",B[B.DOWNWARDS_TAIL=3]="DOWNWARDS_TAIL",B[B.UPWARDS_DOUBLE_TAIL=4]="UPWARDS_DOUBLE_TAIL",B[B.DOWNWARDS_DOUBLE_TAIL=5]="DOWNWARDS_DOUBLE_TAIL",B[B.UPWARDS_TRIPLE_TAIL=6]="UPWARDS_TRIPLE_TAIL",B[B.DOWNWARDS_TRIPLE_TAIL=7]="DOWNWARDS_TRIPLE_TAIL",B[B.UPWARDS_QUAD_TAIL=8]="UPWARDS_QUAD_TAIL",B[B.DOWNWARDS_QUAD_TAIL=9]="DOWNWARDS_QUAD_TAIL",B[B.ROUND_HEAD=10]="ROUND_HEAD",B[B.WHITE_HEAD=11]="WHITE_HEAD",B[B.G_CLEF=12]="G_CLEF",B[B.F_CLEF=13]="F_CLEF",B[B.C_CLEF=14]="C_CLEF",B[B.BREVE=15]="BREVE",B[B.BREVE_REST=16]="BREVE_REST",B[B.COMMON_TIME=17]="COMMON_TIME",B[B.CUT_TIME=18]="CUT_TIME",B[B.WHOLE_REST=19]="WHOLE_REST",B[B.HALF_REST=20]="HALF_REST",B[B.QUARTER_REST=21]="QUARTER_REST",B[B.EIGHTH_REST=22]="EIGHTH_REST",B[B.SIXTEENTH_REST=23]="SIXTEENTH_REST",B[B.THIRTYSECOND_REST=24]="THIRTYSECOND_REST",B[B.SIXTYFOURTH_REST=25]="SIXTYFOURTH_REST",B[B.FLAT=26]="FLAT",B[B.SHARP=27]="SHARP",B[B.NATURAL=28]="NATURAL",B[B.DOUBLE_FLAT=29]="DOUBLE_FLAT",B[B.DOUBLE_SHARP=30]="DOUBLE_SHARP",B[B.ZERO=31]="ZERO",B[B.ONE=32]="ONE",B[B.TWO=33]="TWO",B[B.THREE=34]="THREE",B[B.FOUR=35]="FOUR",B[B.FIVE=36]="FIVE",B[B.SIX=37]="SIX",B[B.SEVEN=38]="SEVEN",B[B.EIGHT=39]="EIGHT",B[B.NINE=40]="NINE",B[B.DOT=41]="DOT",B[B.FERMATA=42]="FERMATA",B[B.INVERTED_FERMATA=43]="INVERTED_FERMATA",B[B.SPICCATO=44]="SPICCATO",B[B.TENUTO=45]="TENUTO",B[B.MARCATO=46]="MARCATO",B[B.MARCATISSIMO=47]="MARCATISSIMO",B[B.INVERTED_MARCATISSIMO=48]="INVERTED_MARCATISSIMO",B[B.P=49]="P",B[B.F=50]="F",B[B.S=51]="S",B[B.Z=52]="Z",B[B.M=53]="M",B[B.R=54]="R",B[B.SEGNO=55]="SEGNO",B[B.CODA=56]="CODA",B[B.DRUM_CLEF=57]="DRUM_CLEF",B[B.G_CLEF_SUB8=58]="G_CLEF_SUB8",B[B.G_CLEF_SUPER8=59]="G_CLEF_SUPER8",B[B.G_CLEF_SUB15=60]="G_CLEF_SUB15",B[B.G_CLEF_SUPER15=61]="G_CLEF_SUPER15",B[B.F_CLEF_SUB8=62]="F_CLEF_SUB8",B[B.F_CLEF_SUPER8=63]="F_CLEF_SUPER8",B[B.F_CLEF_SUB15=64]="F_CLEF_SUB15",B[B.F_CLEF_SUPER15=65]="F_CLEF_SUPER15",B[B.DOWN_BOW=66]="DOWN_BOW",B[B.MORDENT=67]="MORDENT",B[B.INVERTED_MORDENT=68]="INVERTED_MORDENT",B[B.TURN=69]="TURN",B[B.INVERTED_TURN=70]="INVERTED_TURN",B[B.LEFTHAND_PIZZICATO=71]="LEFTHAND_PIZZICATO",B[B.RELEASE_PED=72]="RELEASE_PED",B[B.ENGAGE_PED=73]="ENGAGE_PED",B[B.VA8=74]="VA8",B[B.VB8=75]="VB8",B[B.TRILL=76]="TRILL",B[B.MA15=77]="MA15",B[B.MB15=78]="MB15",B[B.HIGH=79]="HIGH",B[B.PLAY=80]="PLAY",B[B.MIC=81]="MIC",B[B.SNAP_PIZZICATO=82]="SNAP_PIZZICATO",B[B.NATURAL_HARMONIC=83]="NATURAL_HARMONIC",B[B.EditPen=84]="EditPen",B[B.PEDAL_BRACKET=85]="PEDAL_BRACKET",B[B.PEDAL_MIXED=86]="PEDAL_MIXED",B[B.PEDAL_SYMBOL=87]="PEDAL_SYMBOL",B))(MusicSymbol||{}),MusicSymbolDrawingStyle=(B=>(B[B.Normal=0]="Normal",B[B.Disabled=1]="Disabled",B[B.Selected=2]="Selected",B[B.Clickable=3]="Clickable",B[B.PlaybackSymbols=4]="PlaybackSymbols",B[B.FollowSymbols=5]="FollowSymbols",B[B.QFeedbackNotFound=6]="QFeedbackNotFound",B[B.QFeedbackOk=7]="QFeedbackOk",B[B.QFeedbackPerfect=8]="QFeedbackPerfect",B[B.Debug1=9]="Debug1",B[B.Debug2=10]="Debug2",B[B.Debug3=11]="Debug3",B))(MusicSymbolDrawingStyle||{}),PhonicScoreModes=(B=>(B[B.Following=0]="Following",B[B.Midi=1]="Midi",B[B.Manual=2]="Manual",B))(PhonicScoreModes||{});class LabelRenderSpecs{}class MusicSheetDrawer{constructor(R,F){this.drawableBoundingBoxElement="None",this.skyLineVisible=!1,this.bottomLineVisible=!1,this.phonicScoreMode=PhonicScoreModes.Manual,this.textMeasurer=R,this.splitScreenLineColor=-1,this.drawingParameters=F,this.rules=F.Rules}set Mode(R){this.phonicScoreMode=R}drawSheet(R){if(this.graphicalMusicSheet=R,this.rules=R.ParentMusicSheet.Rules,this.drawSplitScreenLine(),this.drawingParameters.drawCursors)for(const D of R.Cursors){if(!D)continue;const G=new BoundingBox$1(D);G.AbsolutePosition=D.Start,G.BorderBottom=D.End.y-D.Start.y,G.BorderRight=D.Width/2,G.BorderLeft=-D.Width/2,this.isVisible(G)&&this.drawLineAsVerticalRectangle(D,GraphicalLayers.Cursor)}this.drawingParameters.drawScrollIndicator&&this.drawScrollIndicator();const F=Math.min(this.graphicalMusicSheet.MusicPages.length,this.rules.MaxPageToDrawNumber);for(let D=0;DNe[0]).filter(Boolean))||[],Me=[];let ke=!1;for(let Ne=0;NeNe.x-Ie.x))==null?void 0:de[0])==null?void 0:me.measure;break}}}catch(Le){console.log("\u{1F680} ~ error",Le)}let ye=0;Pe?ye=((fe=Pe.stave)==null?void 0:fe.end_x)||0:ye=((ge=D.sourceNote.SourceMeasure.VerticalMeasureList[0])==null?void 0:ge.getVFStave()).end_x;const Te=0;U.ScreenPosition.x=ye,U.ScreenPosition.y=ve===0?(R.PositionAndShape.Parent.AbsolutePosition.y-3-Te)*10:ve*10}const Y=["C","G","D","A","E","B","F#","C#","G#","F","Bb","Eb","Ab","Db","Gb","Cb","Fb","D#","A#","E#"];Y.includes(G.text)&&(U.ScreenPosition.y=(R.PositionAndShape.Parent.AbsolutePosition.y+R.PositionAndShape.Parent.BorderTop+R.PositionAndShape.Parent.BorderMarginTop)*10),["play","listen"].includes(G.text.toLocaleLowerCase())&&G.textAlignment===TextAlignmentEnum.LeftBottom&&(U.ScreenPosition.y=(R.PositionAndShape.Parent.AbsolutePosition.y-1+R.PositionAndShape.Parent.BorderBottom)*10);const Q=["ffp","p-f","sfzp","szf","sffzp"];for(let ve=0;ve0&&(isTopFont(R.Label.textAlignment)||[TextAlignmentEnum.CenterBottom].includes(R.Label.textAlignment))){let ve=-1,xe=!1;for(const Pe of(q==null?void 0:q.AbstractExpressions)||[])if(Pe.Label===R?ve=(Se=Pe==null?void 0:Pe.parentMeasure)==null?void 0:Se.measureListIndex:(Ee=Pe.expression)!=null&&Ee.TempoInBpm&&(xe=Pe.expression.TempoInBpm>0),xe&&ve>-1){U.ScreenPosition.y-=4*10;break}}this.rules.DYMusicScoreType==="jianpu"?isNaN(parseInt(R.Label.text,10))&&this.renderLabel(R,F,U):this.renderLabel(R,F,U)}calculateLabel(R){const F=new LabelRenderSpecs,D=R.Label,G=new BoundingBox$1(this);G.AbsolutePosition.x=R.PositionAndShape.AbsolutePosition.x,G.AbsolutePosition.y=R.PositionAndShape.AbsolutePosition.y||R.PositionAndShape.Parent.AbsolutePosition.y,F.ScreenPosition=this.applyScreenTransformation(G.AbsolutePosition),F.FontHeightInPixel=this.calculatePixelDistance(D.fontHeight);const U=this.calculatePixelDistance(R.PositionAndShape.Size.width);switch(F.BitmapWidth=Math.ceil(U),F.BitmapHeight=R.TextLines?Math.ceil(F.FontHeightInPixel*(.2+R.TextLines.length)):10,D.textAlignment){case TextAlignmentEnum.LeftTop:F.ScreenPosition.x-=F.BitmapWidth/2,F.ScreenPosition.y+=F.BitmapHeight*1.5;break;case TextAlignmentEnum.LeftCenter:F.ScreenPosition.y-=F.BitmapHeight/2;break;case TextAlignmentEnum.LeftBottom:F.ScreenPosition.y-=F.BitmapHeight;break;case TextAlignmentEnum.CenterTop:F.ScreenPosition.x-=F.BitmapWidth/2;break;case TextAlignmentEnum.CenterCenter:F.ScreenPosition.x-=F.BitmapWidth/2,F.ScreenPosition.y-=F.BitmapHeight/2;break;case TextAlignmentEnum.CenterBottom:F.ScreenPosition.x-=F.BitmapWidth/2,F.ScreenPosition.y-=F.BitmapHeight;break;case TextAlignmentEnum.RightTop:F.ScreenPosition.x-=F.BitmapWidth;break;case TextAlignmentEnum.RightCenter:F.ScreenPosition.x-=F.BitmapWidth,F.ScreenPosition.y-=F.BitmapHeight/2;break;case TextAlignmentEnum.RightBottom:F.ScreenPosition.x-=F.BitmapWidth,F.ScreenPosition.y-=F.BitmapHeight;break;default:throw new ArgumentOutOfRangeException("")}return F}applyScreenTransformations(R){const F=[];for(const D of R)F.push(this.applyScreenTransformation(D));return F}drawSplitScreenLine(){}renderRectangle(R,F,D,G=void 0,U=1){throw new Error("not implemented")}drawScrollIndicator(){}drawSelectionStartSymbol(R){}drawSelectionEndSymbol(R){}renderLabel(R,F,D){throw new Error("not implemented")}renderSystemToScreen(R,F,D){}drawSkyLine(R){}drawBottomLine(R){}drawInstrumentBrace(R,F){}drawGroupBracket(R,F){}isVisible(R){return!0}drawMusicSystem(R){const F=this.getSystemAbsBoundingRect(R),D=this.getSytemBoundingBoxInPixels(F);this.drawMusicSystemComponents(R,D,F)}getSytemBoundingBoxInPixels(R){const F=this.applyScreenTransformationForRect(R);return F.x=Math.round(F.x),F.y=Math.round(F.y),F}getSystemAbsBoundingRect(R){const F=R.PositionAndShape.BoundingRectangle;return new RectangleF2D(R.PositionAndShape.AbsolutePosition.x+R.PositionAndShape.BorderLeft-1,R.PositionAndShape.AbsolutePosition.y+R.PositionAndShape.BorderTop-1,F.width+6,F.height+2)}drawMusicSystemComponents(R,F,D){const G=this.graphicalMusicSheet.SelectionStartSymbol,U=this.graphicalMusicSheet.SelectionEndSymbol;this.drawingParameters.drawSelectionStartSymbol&&G!==void 0&&this.isVisible(G.PositionAndShape)&&this.drawSelectionStartSymbol(G),this.drawingParameters.drawSelectionEndSymbol&&U!==void 0&&this.isVisible(U.PositionAndShape)&&this.drawSelectionEndSymbol(U);for(const Y of R.StaffLines)this.drawStaffLine(Y),this.rules.RenderLyrics&&(Y.LyricsDashes.length>0&&this.drawDashes(Y.LyricsDashes),Y.LyricLines.length>0&&this.drawLyricLines(Y.LyricLines,Y));for(const Y of R.SystemLines)this.drawSystemLineObject(Y);if(R.Parent===R.Parent.Parent.MusicPages[0])for(const Y of R.Labels)Y.SVGNode=this.drawLabel(Y,GraphicalLayers.Notes);const W=this.graphicalMusicSheet.ParentMusicSheet.Instruments,q=W.filter(Y=>Y.Visible).length;for(const Y of R.InstrumentBrackets)this.drawInstrumentBrace(Y,R);if(W.length>0)if(q>1)for(const Y of R.GroupBrackets)this.drawGroupBracket(Y,R);else for(const Y of R.GroupBrackets)Y.Visible=!1;if(!this.leadSheet)for(const Y of R.MeasureNumberLabels)Y.SVGNode=this.drawLabel(Y,GraphicalLayers.Notes);for(const Y of R.StaffLines)this.drawStaffLineSymbols(Y);this.drawingParameters.drawMarkedAreas&&this.drawMarkedAreas(R)}activateSystemRendering(R,F,D,G){return!0}drawSystemLineObject(R){}drawStaffLine(R){for(const F of R.Measures)this.drawMeasure(F);this.rules.RenderLyrics&&R.LyricsDashes.length>0&&this.drawDashes(R.LyricsDashes),this.drawOctaveShifts(R),this.drawPedals(R),this.drawWavyLines(R),this.drawExpressions(R),this.skyLineVisible&&this.drawSkyLine(R),this.bottomLineVisible&&this.drawBottomLine(R)}drawLyricLines(R,F){F.LyricLines.forEach(D=>{D.Start.y+=F.PositionAndShape.AbsolutePosition.y,D.End.y+=F.PositionAndShape.AbsolutePosition.y,D.Start.x+=F.PositionAndShape.AbsolutePosition.x,D.End.x+=F.PositionAndShape.AbsolutePosition.x,this.drawGraphicalLine(D,this.rules.LyricUnderscoreLineWidth)})}drawExpressions(R){}drawGraphicalLine(R,F,D="black"){return this.drawLine(R.Start,R.End,D,F)}drawLine(R,F,D="#FF0000FF",G){}drawDashes(R){R.forEach(F=>F.SVGNode=this.drawLabel(F,GraphicalLayers.Notes))}drawOctaveShifts(R){}drawStaffLines(R){if(R.StaffLines){const F=R.PositionAndShape.AbsolutePosition;for(let D=0;D<5;D++)this.drawLineAsHorizontalRectangleWithOffset(R.StaffLines[D],F,GraphicalLayers.Notes)}}drawSymbol(R,F,D,G=1,U=GraphicalLayers.Notes){}get leadSheet(){return this.graphicalMusicSheet.LeadSheet}set leadSheet(R){this.graphicalMusicSheet.LeadSheet=R}drawPage(R){if(!!this.isVisible(R.PositionAndShape)){for(const F of R.MusicSystems)this.isVisible(F.PositionAndShape)&&this.drawMusicSystem(F);if(R===R.Parent.MusicPages[0])for(const F of R.Labels)F.SVGNode=this.drawLabel(F,GraphicalLayers.Notes);this.drawableBoundingBoxElement&&this.drawBoundingBoxes(R.PositionAndShape,0,this.drawableBoundingBoxElement)}}drawBoundingBoxes(R,F=0,D="all"){const G=R.DataObject.constructor.name;let U=!1;D==="all"&&(U=!0),(U||G===D)&&this.drawBoundingBox(R,void 0,!0,G,F),F++,R.ChildElements.forEach(W=>this.drawBoundingBoxes(W,F,D))}drawBoundingBox(R,F=void 0,D=!1,G=void 0,U=0){let W=new RectangleF2D(R.AbsolutePosition.x+R.BorderMarginLeft,R.AbsolutePosition.y+R.BorderMarginTop,R.BorderMarginRight-R.BorderMarginLeft,R.BorderMarginBottom-R.BorderMarginTop);D&&(this.drawLineAsHorizontalRectangle(new GraphicalLine(new PointF2D(R.AbsolutePosition.x-1,R.AbsolutePosition.y),new PointF2D(R.AbsolutePosition.x+1,R.AbsolutePosition.y),.1,OutlineAndFillStyleEnum.BaseWritingColor,F),U-1),this.drawLineAsVerticalRectangle(new GraphicalLine(new PointF2D(R.AbsolutePosition.x,R.AbsolutePosition.y-1),new PointF2D(R.AbsolutePosition.x,R.AbsolutePosition.y+1),.1,OutlineAndFillStyleEnum.BaseWritingColor,F),U-1)),W=this.applyScreenTransformationForRect(W);const q=this.renderRectangle(W,GraphicalLayers.Background,U,F,.5);if(G){const Y=new Label(G),Q=new LabelRenderSpecs;Q.BitmapWidth=W.width,Q.BitmapHeight=W.height,Q.FontHeightInPixel=W.height,Q.ScreenPosition=new PointF2D(W.x,W.y+12),this.renderLabel(new GraphicalLabel(Y,.8,TextAlignmentEnum.CenterCenter,this.rules),U,Q)}return q}drawMarkedAreas(R){for(const F of R.GraphicalMarkedAreas)F&&(F.systemRectangle&&this.drawRectangle(F.systemRectangle,GraphicalLayers.Background),F.settings&&(F.settings.SVGNode=this.drawLabel(F.settings,GraphicalLayers.Comment)),F.labelRectangle&&this.drawRectangle(F.labelRectangle,GraphicalLayers.Background),F.label&&(F.label.SVGNode=this.drawLabel(F.label,GraphicalLayers.Comment)))}drawStaffLineSymbols(R){const F=R.ParentStaff.ParentInstrument,D=R.PositionAndShape.AbsolutePosition.x,G=R.PositionAndShape.AbsolutePosition.y+2,U=R.PositionAndShape.BorderRight;F.highlight&&this.drawingParameters.drawHighlights&&this.drawLineAsHorizontalRectangle(new GraphicalLine(new PointF2D(D,G),new PointF2D(D+U,G),4,OutlineAndFillStyleEnum.Highlighted),GraphicalLayers.Highlight);let W=MusicSymbolDrawingStyle.Disabled,q=MusicSymbol.PLAY,Y=this.drawingParameters.drawActivitySymbols;switch(this.phonicScoreMode){case PhonicScoreModes.Midi:q=MusicSymbol.PLAY,this.midiPlaybackAvailable&&R.ParentStaff.audible&&(W=MusicSymbolDrawingStyle.PlaybackSymbols);break;case PhonicScoreModes.Following:q=MusicSymbol.MIC,R.ParentStaff.following&&(W=MusicSymbolDrawingStyle.FollowSymbols);break;default:Y=!1;break}if(Y){const Q=new PointF2D(D+U+2,G);this.drawSymbol(q,W,Q)}if(this.drawingParameters.drawErrors)for(const Q of R.Measures){const Z=Q.PositionAndShape,K=Z.AbsolutePosition.x,J=Z.AbsolutePosition.y+2;Q.hasError&&this.graphicalMusicSheet.ParentMusicSheet.DrawErroneousMeasures&&this.drawLineAsHorizontalRectangle(new GraphicalLine(new PointF2D(K,J),new PointF2D(K+Z.BorderRight,J),4,OutlineAndFillStyleEnum.ErrorUnderlay),GraphicalLayers.MeasureError)}}}class VexFlowTextMeasurer{constructor(R){this.fontSize=20,this.fontSizeStandard=this.fontSize;const F=document.createElement("canvas");this.context=F.getContext("2d"),this.rules=R}computeTextWidthToHeightRatio(R,F,D,G=void 0,U=this.fontSize){return this.context.font=VexFlowConverter.font(U,D,F,this.rules,G),this.context.measureText(R).width/U}setFontSize(R=this.fontSizeStandard){return this.fontSize=R,R}}class AbstractGraphicalExpression extends GraphicalObject{constructor(R,F,D){super(),this.expression=F,this.parentMeasure=D,this.boundingBox=new BoundingBox$1(this,R.PositionAndShape),this.parentStaffLine=R,this.parentStaffLine.AbstractExpressions.push(this),this.rules=R.ParentMusicSystem.rules}get Label(){return this.label}get ParentStaffLine(){return this.parentStaffLine}get SourceExpression(){return this.expression}get Placement(){return this.expression.Placement}}class GraphicalInstantaneousTempoExpression extends AbstractGraphicalExpression{constructor(R,F){super(F.PositionAndShape.Parent.DataObject,R,R.parentMeasure),this.label=F}get GraphicalLabel(){return this.label}updateSkyBottomLine(){}}class GraphicalInstantaneousDynamicExpression extends AbstractGraphicalExpression{constructor(R,F,D){super(F,R,D.parentSourceMeasure),this.mInstantaneousDynamicExpression=R,this.mMeasure=D}updateSkyBottomLine(){const R=this.parentStaffLine.SkyBottomLineCalculator,F=this.PositionAndShape.RelativePosition.x+this.PositionAndShape.BorderMarginLeft,D=this.PositionAndShape.RelativePosition.x+this.PositionAndShape.BorderMarginRight;let G=0;switch(this.Placement){case PlacementEnum.Above:G=this.PositionAndShape.RelativePosition.y+this.PositionAndShape.BorderMarginTop,R.updateSkyLineInRange(F,D,G);break;case PlacementEnum.Below:G=this.PositionAndShape.RelativePosition.y+this.PositionAndShape.BorderMarginBottom,R.updateBottomLineInRange(F,D,G);break;default:log$2.error("Placement for GraphicalInstantaneousDynamicExpression is unknown")}}}class GraphicalContinuousDynamicExpression extends AbstractGraphicalExpression{constructor(R,F,D){super(F,R,D),this.lines=[],this.isSplittedPart=!1,this.notToBeRemoved=!1}get StartMeasure(){return this.startMeasure}set StartMeasure(R){this.startMeasure=R}get EndMeasure(){return this.endMeasure}set EndMeasure(R){this.endMeasure=R}get EndStaffLine(){return this.endMeasure?this.endMeasure.ParentStaffLine:void 0}get IsSplittedPart(){return this.isSplittedPart}set IsSplittedPart(R){this.isSplittedPart=R}get IsVerbal(){return this.ContinuousDynamic.Label&&this.ContinuousDynamic.Label.length>0}get NotToBeRemoved(){return this.notToBeRemoved}set NotToBeRemoved(R){this.notToBeRemoved=R}get Lines(){return this.lines}get ContinuousDynamic(){return this.SourceExpression}updateSkyBottomLine(){var G;const R=this.parentStaffLine.SkyBottomLineCalculator,F=this.IsVerbal?this.label.PositionAndShape.RelativePosition.x+this.label.PositionAndShape.BorderMarginLeft:0,D=this.IsVerbal?this.label.PositionAndShape.RelativePosition.x+this.label.PositionAndShape.BorderMarginRight:0;switch(!this.IsVerbal&&this.lines.length<2&&log$2.warn("Not enough lines for SkyBottomLine calculation"),this.IsVerbal||this.ContinuousDynamic.DynamicType!==ContDynamicEnum.crescendo&&this.ContinuousDynamic.DynamicType!==ContDynamicEnum.diminuendo&&log$2.warn("GraphicalContinuousDynamicExpression.updateSkyBottomLine(): unhandled continuous dynamic type. start measure: "+((G=this.startMeasure)==null?void 0:G.MeasureNumber)),this.Placement){case PlacementEnum.Above:if(!this.IsVerbal)this.ContinuousDynamic.DynamicType===ContDynamicEnum.crescendo?R.updateSkyLineWithWedge(this.lines[0].Start,this.lines[0].End):this.ContinuousDynamic.DynamicType===ContDynamicEnum.diminuendo&&R.updateSkyLineWithWedge(this.lines[0].End,this.lines[0].Start);else{const U=this.label.PositionAndShape.BorderMarginTop+this.label.PositionAndShape.RelativePosition.y;R.updateSkyLineInRange(F,D,U)}break;case PlacementEnum.Below:if(!this.IsVerbal)this.ContinuousDynamic.DynamicType===ContDynamicEnum.crescendo?R.updateBottomLineWithWedge(this.lines[1].Start,this.lines[1].End):this.ContinuousDynamic.DynamicType===ContDynamicEnum.diminuendo&&R.updateBottomLineWithWedge(this.lines[1].End,this.lines[1].Start);else{const U=this.label.PositionAndShape.BorderMarginBottom+this.label.PositionAndShape.RelativePosition.y;R.updateBottomLineInRange(F,D,U)}break;default:log$2.error("Placement for GraphicalContinuousDynamicExpression is unknown")}}createCrescendoLines(R,F,D,G=this.rules.WedgeOpeningLength,U=this.rules.WedgeLineWidth){const W=new PointF2D(R,D),q=new PointF2D(F,D-G/2),Y=new PointF2D(F,D+G/2);this.addWedgeLines(W,q,Y,U)}createFirstHalfCrescendoLines(R,F,D,G=this.rules.WedgeMeasureEndOpeningLength,U=this.rules.WedgeLineWidth){const W=new PointF2D(R,D),q=new PointF2D(F,D-G/2),Y=new PointF2D(F,D+G/2);this.addWedgeLines(W,q,Y,U)}createSecondHalfCrescendoLines(R,F,D,G=this.rules.WedgeMeasureBeginOpeningLength,U=this.rules.WedgeOpeningLength,W=this.rules.WedgeLineWidth){const q=new PointF2D(R,D-G/2),Y=new PointF2D(R,D+G/2),Q=new PointF2D(F,D-U/2),Z=new PointF2D(F,D+U/2);this.addDoubleLines(q,Q,Y,Z,W)}recalculateCrescendoLines(R,F,D){const G=Math.abs(this.lines[0].Start.y-this.lines[1].Start.y)>1e-4;this.lines.clear(),G?this.createSecondHalfCrescendoLines(R,F,D):this.isSplittedPart?this.createFirstHalfCrescendoLines(R,F,D):this.createCrescendoLines(R,F,D)}createDiminuendoLines(R,F,D,G=this.rules.WedgeOpeningLength,U=this.rules.WedgeLineWidth){const W=new PointF2D(R,D-G/2),q=new PointF2D(R,D+G/2),Y=new PointF2D(F,D);this.addWedgeLines(Y,W,q,U)}createFirstHalfDiminuendoLines(R,F,D,G=this.rules.WedgeOpeningLength,U=this.rules.WedgeMeasureEndOpeningLength,W=this.rules.WedgeLineWidth){const q=new PointF2D(R,D-G/2),Y=new PointF2D(R,D+G/2),Q=new PointF2D(F,D-U/2),Z=new PointF2D(F,D+U/2);this.addDoubleLines(q,Q,Y,Z,W)}createSecondHalfDiminuendoLines(R,F,D,G=this.rules.WedgeMeasureBeginOpeningLength,U=this.rules.WedgeLineWidth){const W=new PointF2D(R,D-G/2),q=new PointF2D(R,D+G/2),Y=new PointF2D(F,D);this.addWedgeLines(Y,W,q,U)}recalculateDiminuendoLines(R,F,D){const G=Math.abs(this.lines[0].End.y-this.lines[1].End.y)>1e-4;this.lines.clear(),G?this.createFirstHalfDiminuendoLines(R,F,D):this.isSplittedPart?this.createSecondHalfDiminuendoLines(R,F,D):this.createDiminuendoLines(R,F,D)}calcPsi(){if(this.IsVerbal){this.PositionAndShape.calculateBoundingBox();return}this.PositionAndShape.RelativePosition=this.lines[0].Start,this.PositionAndShape.BorderMarginTop=this.lines[0].End.y-this.lines[0].Start.y,this.PositionAndShape.BorderMarginBottom=this.lines[1].End.y-this.lines[1].Start.y,this.PositionAndShape.Center.y=(this.PositionAndShape.BorderMarginTop+this.PositionAndShape.BorderMarginBottom)/2,this.ContinuousDynamic.DynamicType===ContDynamicEnum.crescendo?(this.PositionAndShape.BorderMarginLeft=0,this.PositionAndShape.BorderMarginRight=this.lines[0].End.x-this.lines[0].Start.x):(this.PositionAndShape.BorderMarginLeft=this.lines[0].End.x-this.lines[0].Start.x,this.PositionAndShape.BorderMarginRight=0)}cleanUp(){this.lines.clear()}shiftYPosition(R){this.IsVerbal?(this.PositionAndShape.RelativePosition.y+=R,this.PositionAndShape.calculateBoundingBox()):(this.lines[0].Start.y+=R,this.lines[0].End.y+=R,this.lines[1].End.y+=R)}squeeze(R){this.IsVerbal||Math.abs(this.lines[0].End.x-this.lines[0].Start.x)0?this.lines[0].Start.x+=R:(this.lines[0].End.x+=R,this.lines[1].End.x+=R):R<0?this.lines[0].Start.x+=R:(this.lines[0].End.x+=R,this.lines[1].End.x+=R),this.calcPsi())}addWedgeLines(R,F,D,G){const U=new GraphicalLine(R,F,G),W=new GraphicalLine(R,D,G);this.lines.push(U),this.lines.push(W)}addDoubleLines(R,F,D,G,U){const W=new GraphicalLine(R,F,U),q=new GraphicalLine(D,G,U);this.lines.push(W),this.lines.push(q)}}class GraphicalUnknownExpression extends AbstractGraphicalExpression{constructor(R,F,D,G,U=void 0){super(R,new AbstractExpression(D),G),this.label=F,this.sourceMultiExpression=U}updateSkyBottomLine(){const R=this.parentStaffLine.SkyBottomLineCalculator,F=this.label.PositionAndShape.RelativePosition.x+this.label.PositionAndShape.BorderMarginLeft,D=this.label.PositionAndShape.RelativePosition.x+this.label.PositionAndShape.BorderMarginRight;switch(this.Placement){case PlacementEnum.Above:const G=this.label.PositionAndShape.BorderMarginTop+this.label.PositionAndShape.RelativePosition.y;R.updateSkyLineInRange(F,D,G);break;case PlacementEnum.Below:const U=this.label.PositionAndShape.BorderMarginBottom+this.label.PositionAndShape.RelativePosition.y;R.updateBottomLineInRange(F,D,U);break;default:log$2.error("Placement for GraphicalUnknownExpression is unknown")}}}Vex.Flow;const unitInPixels=10;class VexFlowMusicSheetDrawer extends MusicSheetDrawer{constructor(R=new DrawingParameters){super(new VexFlowTextMeasurer(R.Rules),R),this.backends=[],this.zoom=1,this.pageIdx=0,this.getDotId=(F,D)=>D?String(F.Label.PositionAndShape.RelativePosition[D]):String(F.Label.PositionAndShape.RelativePosition.x)+String(F.Label.PositionAndShape.RelativePosition.y),this.hasDot=(F,D,G,U)=>{const W=D||Object.values(U);for(const q of W){if(G)return F.x===q.x&&F.y===q.y;if(F.x===q.x)return!0}return!1}}get Zoom(){return this.zoom}get Backends(){return this.backends}initializeBackendForPage(R){this.backend=this.backends[R.PageNumber-1]}drawSheet(R){var F,D,G;this.rules.DefaultVexFlowNoteFont==="gonville"&&(Vex.Flow.DEFAULT_FONT_STACK=[(F=Vex.Flow.Fonts)==null?void 0:F.Gonville,(D=Vex.Flow.Fonts)==null?void 0:D.Bravura,(G=Vex.Flow.Fonts)==null?void 0:G.Custom]),Vex.Flow.STAVE_LINE_THICKNESS=this.rules.StaffLineWidth*unitInPixels,Vex.Flow.STEM_WIDTH=this.rules.StemWidth*unitInPixels,Vex.Flow.DEFAULT_NOTATION_FONT_SCALE=this.rules.VexFlowDefaultNotationFontScale,Vex.Flow.DEFAULT_TAB_FONT_SCALE=this.rules.VexFlowDefaultTabFontScale,this.pageIdx=0;for(const U of R.MusicPages){if(U.PageNumber>this.rules.MaxPageToDrawNumber)break;const W=this.backends[this.pageIdx];W.graphicalMusicPage=U,W.scale(this.zoom),this.pageIdx+=1}this.pageIdx=0,this.backend=this.backends[0],super.drawSheet(R)}drawPage(R){!R||(this.backend=this.backends[R.PageNumber-1],super.drawPage(R),this.pageIdx+=1)}clear(){for(const R of this.backends)R.clear()}setZoom(R){this.zoom=R}calculatePixelDistance(R){return R*unitInPixels}drawStaffLine(R){const F=this.backend.getContext().openGroup();F&&F.classList.add("staffline"),super.drawStaffLine(R);const D=R.PositionAndShape.AbsolutePosition;this.rules.RenderSlurs&&this.drawSlurs(R,D),this.backend.getContext().closeGroup()}drawSlurs(R,F){var G,U,W,q;const D=(G=window.GYM)==null?void 0:G.vfcurveItem;for(let Y=0;Y(K.index?K.index===Y:!0)&&K.MeasureNumberXML==Q.staffEntries[Q.staffEntries.length-1].parentMeasure.MeasureNumber);Z&&(Q.bezierEndControlPt.y+=(U=Z==null?void 0:Z.bezierEndControlPt)!=null&&U.y?Z.bezierEndControlPt.y:0,Q.bezierEndPt.y+=(W=Z==null?void 0:Z.bezierEndPt)!=null&&W.y?Z.bezierEndPt.y:0,Q.bezierStartControlPt.y+=(q=Z==null?void 0:Z.bezierStartControlPt)!=null&&q.y?Z.bezierStartControlPt.y:0)}catch(Z){console.log(Z)}this.drawSlur(Q,F)}}}drawSlur(R,F){const D=[];let G,U,W,q;this.rules.DYMusicScoreType==="jianpu"?((R.placement>0||R.bezierStartPt.y>0)&&(R.bezierStartPt.y=-.8,R.bezierStartControlPt.y=-2.5),G=new PointF2D(R.bezierStartPt.x+F.x,R.bezierStartPt.y+F.y),U=new PointF2D(R.bezierStartControlPt.x+F.x,R.bezierStartControlPt.y+F.y),W=new PointF2D(R.bezierEndControlPt.x+F.x,R.bezierStartControlPt.y+F.y),q=new PointF2D(R.bezierEndPt.x+F.x,R.bezierStartPt.y+F.y)):(G=new PointF2D(R.bezierStartPt.x+F.x,R.bezierStartPt.y+F.y),U=new PointF2D(R.bezierStartControlPt.x+F.x,R.bezierStartControlPt.y+F.y),W=new PointF2D(R.bezierEndControlPt.x+F.x,R.bezierEndControlPt.y+F.y),q=new PointF2D(R.bezierEndPt.x+F.x,R.bezierEndPt.y+F.y)),D.push(this.applyScreenTransformation(G)),D.push(this.applyScreenTransformation(U)),D.push(this.applyScreenTransformation(W)),D.push(this.applyScreenTransformation(q)),R.placement===PlacementEnum.Above?(G.y-=.05,U.y-=.3,W.y-=.3,q.y-=.05):(G.y+=.05,U.y+=.3,W.y+=.3,q.y+=.05),D.push(this.applyScreenTransformation(G)),D.push(this.applyScreenTransformation(U)),D.push(this.applyScreenTransformation(W)),D.push(this.applyScreenTransformation(q)),R.SVGElement=this.backend.renderCurve(D)}drawMeasure(R){R.setAbsoluteCoordinates(R.PositionAndShape.AbsolutePosition.x*unitInPixels,R.PositionAndShape.AbsolutePosition.y*unitInPixels);const F=this.backend.getContext();try{R.draw(F)}catch(D){log$2.warn("VexFlowMusicSheetDrawer.drawMeasure",D)}for(const D of R.staffEntries)this.drawStaffEntry(D)}drawLine(R,F,D="#FF0000FF",G=.2){return R=this.applyScreenTransformation(R),F=this.applyScreenTransformation(F),this.backend.renderLine(R,F,D,G*unitInPixels)}DrawOverlayLine(R,F,D,G="#FF0000FF",U=.2){if(!D.PageNumber||D.PageNumber>this.backends.length||D.PageNumber<1){console.log("VexFlowMusicSheetDrawer.drawOverlayLine: invalid page number / music page number doesn't correspond to an existing backend.");return}const W=D.PageNumber-1,q=this.backends[W];return R=this.applyScreenTransformation(R),F=this.applyScreenTransformation(F),q.renderLine(R,F,G,U*unitInPixels)}drawSkyLine(R){const F=R.PositionAndShape.AbsolutePosition,D=R.PositionAndShape.Size.width;this.drawSampledLine(R.SkyLine,F,D)}drawBottomLine(R){const F=new PointF2D(R.PositionAndShape.AbsolutePosition.x,R.PositionAndShape.AbsolutePosition.y),D=R.PositionAndShape.Size.width;this.drawSampledLine(R.BottomLine,F,D,"#0000FFFF")}drawSampledLine(R,F,D,G="#FF0000FF"){const U=[];let W=0;for(let Y=0;Y0){const Y=this.rules.SamplingUnit;let Q=new PointF2D(q.x,q.y),Z=new PointF2D(U[0]/Y+q.x,q.y);this.drawLine(Q,Z,G);let K,J;R[0]>=0&&(K=new PointF2D(U[0]/Y+q.x,q.y),J=new PointF2D(U[0]/Y+q.x,q.y+R[U[0]]),this.drawLine(K,J,G));for(let ie=1;ie0)for(const F of R.FingeringEntries)F.SVGNode=this.drawLabel(F,GraphicalLayers.Notes);if(R.graphicalChordContainers!==void 0&&R.graphicalChordContainers.length>0)for(const F of R.graphicalChordContainers){const D=F.GraphicalLabel;D.SVGNode=this.drawLabel(D,GraphicalLayers.Notes)}this.rules.RenderLyrics&&R.LyricsEntries.length>0&&this.drawLyrics(R.LyricsEntries,GraphicalLayers.Notes)}drawLyrics(R,F){R.forEach(D=>{const G=D.GraphicalLabel;G.SVGNode=this.drawLabel(G,F)})}drawInstrumentBrace(R,F){R.draw(this.backend.getContext())}drawGroupBracket(R,F){R.draw(this.backend.getContext())}drawOctaveShifts(R){for(const F of R.OctaveShifts)if(F){const D=F,G=this.backend.getContext(),U=D.getTextBracket();U.setContext(G);try{U.draw()}catch(W){log$2.warn(W)}}}drawPedals(R){for(const F of R.Pedals)if(F){const D=F,G=this.backend.getContext(),U=D.getPedalMarking();U.setContext(G),U.draw()}}drawWavyLines(R){for(const F of R.WavyLines)if(F){const D=F,G=this.backend.getContext(),U=D.getVibratoBracket();U.setContext(G),U.draw()}}getMaxExpressionsYAndDots(R){var Y,Q;const F=[];let D=0;for(const Z of R.measures)F.push(Z.measureNumber);const G={},U={},W={};for(const Z of R.AbstractExpressions)if(Z instanceof GraphicalUnknownExpression&&F.includes(Z.parentMeasure.MeasureNumber)){const K=this.getDotId(Z),J=this.getDotId(Z,"x");U[K]||(U[K]=[]),W[J]||(W[J]=[]),this.hasDot(Z.Label.PositionAndShape.RelativePosition,U[K],!0)||(U[K].push(Z.Label.PositionAndShape.RelativePosition),W[J].push(Z.Label.PositionAndShape.RelativePosition)),G[K]=Z.Label.PositionAndShape.RelativePosition}let q=0;for(const Z of R.AbstractExpressions){const K=(Y=Z.parentMeasure)==null?void 0:Y.MeasureNumber;if(Z instanceof GraphicalUnknownExpression&&F.includes(K)){const J=(Q=Z.parentMeasure.verticalMeasureList[0])==null?void 0:Q.stave,ie=(J==null?void 0:J.end_x)-(J==null?void 0:J.x),ne=this.getDotId(Z,"x");if((W[ne]||[]).length===1&&q!==K){const se=Z.Label.PositionAndShape.AbsolutePosition.y;D=D===0?se:Math.min(D,se)}(W[ne]||[]).length!==1&&ie/10Number.EPSILON){let D=Math.min(...R.Lines.map(U=>U.Start.x)),G=Math.min(...R.Lines.map(U=>U.Start.y));R.Lines[0].Start.x=D,R.Lines[1].Start.x=D,R.Lines[0].Start.y=G+this.rules.WedgeOpeningLength/2,R.Lines[1].Start.y=G+this.rules.WedgeOpeningLength*2,R.Lines[0].End.y+=this.rules.WedgeOpeningLength/2,R.Lines[1].End.y+=this.rules.WedgeOpeningLength}}catch{}const F=this.backend.getContext();F.openGroup("lineGroup");for(const D of R.Lines){const G=new PointF2D(R.ParentStaffLine.PositionAndShape.AbsolutePosition.x+D.Start.x,R.ParentStaffLine.PositionAndShape.AbsolutePosition.y+D.Start.y),U=new PointF2D(R.ParentStaffLine.PositionAndShape.AbsolutePosition.x+D.End.x,R.ParentStaffLine.PositionAndShape.AbsolutePosition.y+D.End.y);this.drawLine(G,U,"black",D.Width)}F.closeGroup()}}renderLabel(R,F,D){return this._renderLabel(R,D)}_renderLabel(R,F){var Q;if(!R.Label.print)return;const D=R.Label.fontHeight*unitInPixels,{font:G}=R.Label;let U;this.rules.ColoringEnabled&&(U=R.Label.colorDefault,R.Label.color&&(U=R.Label.color.toString()),U||(U=this.rules.DefaultColorLabel));let{fontStyle:W,fontFamily:q}=R.Label;W||(W=this.rules.DefaultFontStyle),q||(q=this.rules.DefaultFontFamily);let Y;for(let Z=0;Z<((Q=R.TextLines)==null?void 0:Q.length);Z++){const K=R.TextLines[Z],J=this.calculatePixelDistance(K.xOffset),ie=new PointF2D(F.ScreenPosition.x+J,F.ScreenPosition.y),ne=this.backend.renderText(D,W,G,K.text,F.FontHeightInPixel,ie,U,R.Label.fontFamily);Y?Y.appendChild(ne):Y=ne,F.ScreenPosition.y=F.ScreenPosition.y+F.FontHeightInPixel,R.TextLines.length>1&&(F.ScreenPosition.y+=this.rules.SpacingBetweenTextLines)}return Y}renderRectangle(R,F,D,G,U){return this.backend.renderRectangle(R,D,G,U)}applyScreenTransformation(R){return new PointF2D(R.x*unitInPixels,R.y*unitInPixels)}applyScreenTransformationForRect(R){return new RectangleF2D(R.x*unitInPixels,R.y*unitInPixels,R.width*unitInPixels,R.height*unitInPixels)}}const VF$c=Vex.Flow,_VexFlowConverter=class{static durations(B,R){const F=[],D=B.clone();for(;D.RealValue>0;){const G=D.RealValue;if(G>=2)F.push("1/2"),D.Sub(new Fraction$1(2,1));else if(G>=1)F.push("w"),D.Sub(new Fraction$1(1,1));else if(G<1&&G>=.5){if(R&&G>.5)return["w"];F.push("h"),D.Sub(new Fraction$1(1,2))}else if(G<.5&&G>=.25){if(R&&G>.25)return["h"];F.push("q"),D.Sub(new Fraction$1(1,4))}else if(G<.25&&G>=.125){if(R&&G>.125)return["q"];F.push("8"),D.Sub(new Fraction$1(1,8))}else if(G<.125&&G>=.0625){if(R&&G>.0625)return["8"];F.push("16"),D.Sub(new Fraction$1(1,16))}else if(G<.0625&&G>=.03125){if(R&&G>.03125)return["16"];F.push("32"),D.Sub(new Fraction$1(1,32))}else if(G<.03125&&G>=.015625){if(R&&G>.015625)return["32"];F.push("64"),D.Sub(new Fraction$1(1,64))}else{if(R)return["64"];F.push("128"),D.Sub(new Fraction$1(1,128))}}return F}static pitch(B,R,F,D=void 0,G=void 0){let U=G;G===void 0&&(U=3),R&&G===void 0&&(U=0,F.ClefType===ClefEnum.F&&(U=2),F.ClefType===ClefEnum.C&&(U=2));const W=NoteEnum[B.FundamentalNote].toLowerCase(),q=Pitch.accidentalVexflow(B.Accidental),Y=B.Octave-F.OctaveOffset+U;let Q="";return D&&(Q=this.NoteHeadCode(D)),[W+"n/"+Y+Q,q,F]}static restToNotePitch(B,R){let F=B.Octave;switch(R){case ClefEnum.C:case ClefEnum.F:{F+=2;break}case ClefEnum.G:}return new Pitch(B.FundamentalNote,F,AccidentalEnum.NONE)}static NoteHeadCode(B){const R="/",F=B.Filled?"2":"1";switch(B.Shape){case NoteHeadShape.NORMAL:return"";case NoteHeadShape.DIAMOND:return R+"D"+F;case NoteHeadShape.TRIANGLE:return R+"T"+F;case NoteHeadShape.X:return R+"X"+F;case NoteHeadShape.CIRCLEX:return R+"X3";case NoteHeadShape.RECTANGLE:return R+"R"+F;case NoteHeadShape.SQUARE:return R+"S"+F;case NoteHeadShape.SLASH:return"";default:return""}}static GhostNotes(B){const R=[],F=_VexFlowConverter.durations(B,!1);for(const D of F)R.push(new VF$c.GhostNote({duration:D}));return R}static StaveNote(B){var fe,ge,Se,Ee,ve,xe,Pe,ye,Te,Le,we,Ae,Me,ke,Ne,Ie,Ge;B.sortForVexflow();const R=B.notes,F=B.parentStaffEntry.parentMeasure.parentSourceMeasure.Rules,D=R[0];let G=[],U;const W=[],q=D.graphicalNoteLength,Y=D.sourceNote.NoteTuplet!==void 0;let Q=_VexFlowConverter.durations(q,Y)[0];D.sourceNote.TypeLength!==void 0&&D.sourceNote.TypeLength!==q&&D.sourceNote.TypeLength.RealValue!==0&&(Q=_VexFlowConverter.durations(D.sourceNote.TypeLength,Y)[0],D.numberOfDots=D.sourceNote.DotsXml);let Z,K=D.numberOfDots,J=!1,ie=0,ne=!1,se=!1,re;for(const ze of R){if(K=1&&st.length-1>=yt+1&&(pt=(ve=(Ee=st[yt-1])==null?void 0:Ee.graphicalVoiceEntries[0])==null?void 0:ve.parentVoiceEntry,dt=(Pe=(xe=st[yt+1])==null?void 0:xe.graphicalVoiceEntries[0])==null?void 0:Pe.parentVoiceEntry,pt&&dt)){const Fe=pt.Notes[0],_e=dt.Notes[0];if(((ye=Fe.NoteBeam)==null?void 0:ye.Notes.includes(_e))&&_e.ParentStaffEntry.ParentStaff.StafflineCount!==1){const je=pt.Notes.last().Pitch,Ze=ze.Clef(),De=_VexFlowConverter.pitch(_VexFlowConverter.restToNotePitch(je.getTransposedPitch(-2),Ze.ClefType),!1,Ze);je.FundamentalNote===4&&(G=[De[0]])}}}}if(q.RealValue===ze.sourceNote.SourceMeasure.ActiveTimeSignature.RealValue&&(G=F.DYMusicScoreType==="staff"?["d/5"]:["R/5"],Q="w",K=0,J=!0,ie=F.WholeRestXShiftVexflow*unitInPixels),[...ze.sourceNote.ParentStaff.Voices].filter(Je=>(Je==null?void 0:Je.VoiceId)!=1).length){const Je=ze.parentVoiceEntry.parentStaffEntry.graphicalVoiceEntries,st=ze.parentVoiceEntry.parentVoiceEntry.ParentVoice.VoiceId;let pt,dt;for(const yt of Je)for(const Fe of yt.notes){if(Fe===ze||Fe.sourceNote.isRest()||!Fe.sourceNote.PrintObject){ze.lineShift=-2;continue}const _e=Fe.parentVoiceEntry.parentVoiceEntry.WantedStemDirection,je=st===1||st===5,Ze=je?1:-1,Oe=Fe.sourceNote.Pitch.getHalfTone(),Xe=Ze===1&&Oe>pt,tt=Ze===-1&&Oe0){let yt=3;const Fe=ze.Clef();switch(Fe.ClefType){case ClefEnum.F:yt=5;break;case ClefEnum.C:yt=4;break}re=Pitch.fromHalftone(pt),G=[_VexFlowConverter.pitch(re,!0,Fe,void 0,yt)[0]]}}break}ze.sourceNote.Notehead&&ze.sourceNote.Notehead.Shape===NoteHeadShape.SLASH&&(ne=!0);const Ve=ze.vfpitch;if((Le=(Te=Ve[2])==null?void 0:Te.Parent)!=null&&Le.Instructions)for(let Ye=0,et=Ve[2].Parent.Instructions.length;Ye1&&B.notes[0].sourceNote.ParentVoiceEntry.ParentVoice.VoiceId==1&&(ae.getKeyProps()[0].line=4.5);const me=(ke=window.GYM)==null?void 0:ke.customBassDrum;if(me&&ae.isRest()&&(ae.getDuration()==="q"&&(ae.getKeyProps()[0].line=me),ae.getDuration()==="h"&&(ae.getKeyProps()[0].line=me-1)),ae.getKeyProps().forEach(({line:ze},Ve)=>B.notes[Ve].staffLine=ze),(F.LedgerLineWidth||F.LedgerLineStrokeStyle)&&(ae.ledgerLineStyle||(ae.ledgerLineStyle={}),F.LedgerLineWidth&&(ae.ledgerLineStyle.lineWidth=F.LedgerLineWidth),F.LedgerLineStrokeStyle&&(ae.ledgerLineStyle.strokeStyle=F.LedgerLineStrokeStyle)),F.ColoringEnabled){const ze=F.DefaultColorStem;let Ve=B.parentVoiceEntry.StemColor;!Ve&&ze&&(Ve=ze);const Ye={fillStyle:Ve,strokeStyle:Ve};Ve&&(ae.setStemStyle(Ye),ae.flag&&F.ColorFlags&&ae.setFlagStyle(Ye))}if(ae.x_shift=ie,B.parentVoiceEntry.IsGrace&&B.notes[0].sourceNote.NoteBeam&&(B.parentVoiceEntry.WantedStemDirection=B.notes[0].sourceNote.NoteBeam.Notes[0].ParentVoiceEntry.WantedStemDirection),B.parentVoiceEntry){let ze=B.parentVoiceEntry.WantedStemDirection;const Ve=((Ne=window.GYM)==null?void 0:Ne.stemDirectionNote)||[],Ye=Ve==null?void 0:Ve.find(et=>et.id===B.notes[0].sourceNote.NoteToGraphicalNoteObjectId);switch(Ye&&typeof(Ye==null?void 0:Ye.direction)=="number"&&(ze=Ye.direction),ze){case StemDirectionType.Up:ae.setStemDirection(VF$c.Stem.UP),B.parentVoiceEntry.StemDirection=StemDirectionType.Up;break;case StemDirectionType.Down:ae.setStemDirection(VF$c.Stem.DOWN),B.parentVoiceEntry.StemDirection=StemDirectionType.Down;break}}for(let ze=0,Ve=R.length;ze0&&et==="single"){const Je=new VF$c.Tremolo(Ye);Je.extra_stroke_scale=F.TremoloStrokeScale,Je.y_spacing_scale=F.TremoloYSpacingScale,ae&&ae.duration==="w"&&ae.stem.setExtension(-9),ae.addModifier(ze,Je)}if(Ye>0&&et==="start"&&this.noteTremoloList.push(ae),Ye>0&&et==="stop"){if(this.noteTremoloList.push(ae),this.noteTremoloList.filter(pt=>pt.duration==="w").length===this.noteTremoloList.length)try{this.noteTremoloList[0].keyProps&&this.noteTremoloList[1].keyProps&&((Ie=(this.noteTremoloList[0].keyProps[0].line>this.noteTremoloList[1].keyProps[0].line?this.noteTremoloList[1]:this.noteTremoloList[0]).stem)==null||Ie.setResetHeight(30))}catch{console.error("\u8BBE\u7F6E\u90FD\u662F\u5168\u97F3\u7B26,stem\u7684\u9AD8\u5EA6\u5931\u8D25")}const st=new VF$c.Tremolo(Ye,[...this.noteTremoloList]);st.extra_stroke_scale=1.2,st.y_spacing_scale=1.2,st.x_shift=-30,ae.addModifier(ze,st),this.noteTremoloList=[]}this.glissandoList.length&&(ae.setVibrato(this.glissandoList[0].vfnote[0]),this.glissandoList=[]),R[ze].sourceNote.glissandoType==="start"&&this.glissandoList.push(R[ze])}if(this.slideNote){try{ae.setSlideNote(this.slideNote)}catch(ze){console.error(ze)}this.slideNote=null}if(B.notes[0].sourceNote.slideType==="start"&&(this.slideNote=ae),ce.Length.RealValue===.25&&ce.Notehead&&ce.Notehead.Filled===!1){const ze=ae.getKeyProps();for(let Ve=0;Ve1){let ze=ae.getKeyProps().filter(Ye=>!Ye.code&&Ye.line>3);!((Ge=window.GYM)==null?void 0:Ge.stemDirectionNote)&&ze.length===G.length&&ae.setStemDirection(-1)}F.DYMusicScoreType==="jianpu"&&window&&window.sett&&window.sett.keySignature&&ae.addAccidental(0,new VF$c.Accidental("#"));try{const ze=["b","#","\xA7","\xBA","X"],Ve={b:"b","#":"#","\xA7":"n",\u00BA:"bb",X:"##"};for(const Ye of R){const et=Ye.sourceNote.voiceEntry.Timestamp;for(const Je of Ye.sourceNote.SourceMeasure.StaffLinkedExpressions)for(const st of Je){const pt=Fraction$1.Equal(et,st.Timestamp),yt=st.EntriesList.map(Fe=>Fe.label).filter(Fe=>ze.includes(Fe)).map(Fe=>Ve[Fe]);if(pt){for(const Fe of yt)Fe&&ae.addAnnotation(0,new VF$c.Annotation(Fe));break}}}}catch{}return ae}static generateArticulations(B,R,F){var D,G,U,W,q,Y;if(!(!B||B.getAttribute("type")==="GhostNote"))for(const Q of R){let Z=VF$c.Modifier.Position.ABOVE;B.getStemDirection()===VF$c.Stem.UP&&(Z=VF$c.Modifier.Position.BELOW);let K;const J=Q.articulationEnum;switch(F.ArticulationPlacementFromXML&&(Q.placement===PlacementEnum.Above?Z=VF$c.Modifier.Position.ABOVE:Q.placement===PlacementEnum.Below&&(Z=VF$c.Modifier.Position.BELOW)),J){case ArticulationEnum.accent:{K=new VF$c.Articulation("a>");break}case ArticulationEnum.downbow:{K=new VF$c.Articulation("am"),Q.placement===void 0&&(Z=VF$c.Modifier.Position.ABOVE);break}case ArticulationEnum.fermata:{K=new VF$c.Articulation("a@a"),Z=VF$c.Modifier.Position.ABOVE;break}case ArticulationEnum.marcatodown:{K=new VF$c.Articulation("a|");break}case ArticulationEnum.marcatoup:{K=new VF$c.Articulation("a^");break}case ArticulationEnum.invertedfermata:{K=new VF$c.Articulation("a@u"),Z=VF$c.Modifier.Position.BELOW;break}case ArticulationEnum.lefthandpizzicato:{K=new VF$c.Articulation("a+");break}case ArticulationEnum.naturalharmonic:{K=new VF$c.Articulation("ah");break}case ArticulationEnum.snappizzicato:{K=new VF$c.Articulation("ao");break}case ArticulationEnum.staccatissimo:{K=new VF$c.Articulation("av");break}case ArticulationEnum.staccato:{K=new VF$c.Articulation("a.");break}case ArticulationEnum.tenuto:{K=new VF$c.Articulation("a-");break}case ArticulationEnum.upbow:{K=new VF$c.Articulation("a|"),Q.placement===void 0&&(Z=VF$c.Modifier.Position.ABOVE);break}case ArticulationEnum.strongaccent:{K=new VF$c.Articulation("a^");break}}K&&(!B.hasStem()&&!B.isRest()&&J==ArticulationEnum.accent&&B.getLineNumber()>=3&&(Z=VF$c.Modifier.Position.ABOVE,(G=(D=B==null?void 0:B.modifiers)==null?void 0:D.filter(se=>["TREMOLO"].includes(se.getCategory().toLocaleUpperCase())))!=null&&G.length&&K.setYShift(-16)),J===ArticulationEnum.strongaccent&&(Z=VF$c.Modifier.Position.ABOVE,(U=window.GYM)!=null&&U.customArtPosition&&(B.getStemDirection()===1?Z=VF$c.Modifier.Position.ABOVE:(Z=VF$c.Modifier.Position.BELOW,K=new VF$c.Articulation("a|")))),((W=window.GYM)==null?void 0:W.customAccentItem)&&J===ArticulationEnum.accent&&(Z=VF$c.Modifier.Position.ABOVE),((q=window.GYM)==null?void 0:q.customLefthandpizzicatoItem)&&(J===ArticulationEnum.lefthandpizzicato||J===ArticulationEnum.naturalharmonic)&&(Z=VF$c.Modifier.Position.ABOVE),J===ArticulationEnum.tenuto&&B.getDuration()==="w"&&((Y=window.GYM)==null?void 0:Y.customTenutoItem)&&(Z=VF$c.Modifier.Position.ABOVE),K.setPosition(Z),B.addModifier(0,K))}}static generateOrnaments(B,R){let F=VF$c.Modifier.Position.ABOVE;R.placement===PlacementEnum.Below&&(F=VF$c.Modifier.Position.BELOW);let D;switch(R.GetOrnament){case OrnamentEnum.DelayedInvertedTurn:{D=new VF$c.Ornament("turn_inverted"),D.setDelayed(!0);break}case OrnamentEnum.DelayedTurn:{D=new VF$c.Ornament("turn"),D.setDelayed(!0);break}case OrnamentEnum.InvertedMordent:{D=new VF$c.Ornament("mordent"),D.setDelayed(!1);break}case OrnamentEnum.InvertedTurn:{D=new VF$c.Ornament("turn_inverted"),D.setDelayed(!1);break}case OrnamentEnum.Mordent:{D=new VF$c.Ornament("mordent_inverted"),D.setDelayed(!1);break}case OrnamentEnum.Trill:{D=new VF$c.Ornament("tr"),D.setDelayed(!1);break}case OrnamentEnum.Turn:{D=new VF$c.Ornament("turn"),D.setDelayed(!1);break}default:{log$2.warn("unhandled OrnamentEnum type: "+R.GetOrnament);return}}D&&(R.AccidentalBelow!==AccidentalEnum.NONE&&D.setLowerAccidental(Pitch.accidentalVexflow(R.AccidentalBelow)),R.AccidentalAbove!==AccidentalEnum.NONE&&D.setUpperAccidental(Pitch.accidentalVexflow(R.AccidentalAbove)),D.setPosition(F),B.addModifier(0,D))}static StrokeTypeFromArpeggioType(B){switch(B){case ArpeggioType.ARPEGGIO_DIRECTIONLESS:return VF$c.Stroke.Type.ARPEGGIO_DIRECTIONLESS;case ArpeggioType.BRUSH_DOWN:return VF$c.Stroke.Type.BRUSH_UP;case ArpeggioType.BRUSH_UP:return VF$c.Stroke.Type.BRUSH_DOWN;case ArpeggioType.RASQUEDO_DOWN:return VF$c.Stroke.Type.RASQUEDO_UP;case ArpeggioType.RASQUEDO_UP:return VF$c.Stroke.Type.RASQUEDO_DOWN;case ArpeggioType.ROLL_DOWN:return VF$c.Stroke.Type.ROLL_UP;case ArpeggioType.ROLL_UP:return VF$c.Stroke.Type.ROLL_DOWN;default:return VF$c.Stroke.Type.ARPEGGIO_DIRECTIONLESS}}static CreateTabNote(B){const R=[],F=B.notes.reverse(),D=[],G=B.notes[0].graphicalNoteLength,U=B.notes[0].sourceNote.NoteTuplet!==void 0;let W=_VexFlowConverter.durations(G,U)[0],q=0;for(const Q of B.notes){const Z=Q.sourceNote,K={str:Z.StringNumberTab,fret:Z.FretNumber};R.push(K),Z.BendArray&&Z.BendArray.forEach(function(J){let ie;const ne=J.bendalter-K.fret;ne>1?ie="Full":ne===1?ie="1/2":ie="1/4",J.direction==="up"?D.push({type:VF$c.Bend.UP,text:ie,width:10}):D.push({type:VF$c.Bend.DOWN,text:ie,width:10})}),q(B[B.VA8=0]="VA8",B[B.VB8=1]="VB8",B[B.MA15=2]="MA15",B[B.MB15=3]="MB15",B[B.NONE=4]="NONE",B))(OctaveEnum||{});class AbstractTempoExpression extends AbstractExpression{constructor(R,F,D,G){super(F),this.label=R,this.staffNumber=D,this.parentMultiTempoExpression=G}get Label(){return this.label}set Label(R){this.label=R}get Placement(){return this.placement}set Placement(R){this.placement=R}get StaffNumber(){return this.staffNumber}set StaffNumber(R){this.staffNumber=R}get ParentMultiTempoExpression(){return this.parentMultiTempoExpression}static isStringInStringList(R,F){for(const D of R)if(AbstractTempoExpression.stringContainsSeparatedWord(F.toLowerCase().trim(),D.toLowerCase().trim()))return!0;return!1}static stringContainsSeparatedWord(R,F){return R===F||R.indexOf(" "+F)!==-1||R.indexOf(F+" ")!==-1}}const _InstantaneousTempoExpression=class extends AbstractTempoExpression{constructor(B,R,F,D,G,U=!1){super(B,R,F,G),this.setTempoAndTempoType(D)}static getDefaultValueForTempoType(B){switch(B){case TempoEnum.larghissimo:return 20;case TempoEnum.grave:return 30;case TempoEnum.lento:return 48;case TempoEnum.largo:return 52;case TempoEnum.larghetto:return 63;case TempoEnum.adagio:return 70;case TempoEnum.adagietto:return 75;case TempoEnum.andanteModerato:return 88;case TempoEnum.andante:return 92;case TempoEnum.andantino:return 96;case TempoEnum.moderato:return 106;case TempoEnum.allegretto:return 112;case TempoEnum.allegroModerato:return 118;case TempoEnum.allegro:return 130;case TempoEnum.vivace:return 140;case TempoEnum.vivacissimo:return 155;case TempoEnum.allegrissimo:return 170;case TempoEnum.presto:return 184;case TempoEnum.prestissimo:return 200;default:throw new ArgumentOutOfRangeException("tempoEnum")}}static isInputStringInstantaneousTempo(B){return B?_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoLarghissimo,B)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoGrave,B)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoLento,B)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoLargo,B)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoLarghetto,B)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAdagio,B)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAdagietto,B)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAndanteModerato,B)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAndante,B)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAndantino,B)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoModerato,B)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAllegretto,B)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAllegroModerato,B)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAllegro,B)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoVivace,B)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoVivacissimo,B)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAllegrissimo,B)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoPresto,B)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoPrestissimo,B)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoChangesGeneral,B):!1}get Label(){return this.label}set Label(B){this.label=B}get Placement(){return this.placement}set Placement(B){this.placement=B}get StaffNumber(){return this.staffNumber}set StaffNumber(B){this.staffNumber=B}get Enum(){return this.tempoEnum}get TempoInBpm(){return this.tempoInBpm}set TempoInBpm(B){this.tempoInBpm=B}get ParentMultiTempoExpression(){return this.parentMultiTempoExpression}getAbsoluteTimestamp(){return Fraction$1.plus(this.ParentMultiTempoExpression.SourceMeasureParent.AbsoluteTimestamp,this.ParentMultiTempoExpression.Timestamp)}getAbsoluteFloatTimestamp(){return Fraction$1.plus(this.ParentMultiTempoExpression.SourceMeasureParent.AbsoluteTimestamp,this.ParentMultiTempoExpression.Timestamp).RealValue}setTempoAndTempoType(B){if(!this.label){this.tempoInBpm=B,this.tempoEnum=TempoEnum.metronomeMark;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoLarghissimo,this.label)){B===0&&(B=_InstantaneousTempoExpression.getDefaultValueForTempoType(TempoEnum.larghissimo)),this.tempoInBpm=B,this.tempoEnum=TempoEnum.larghissimo;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoGrave,this.label)){B===0&&(B=_InstantaneousTempoExpression.getDefaultValueForTempoType(TempoEnum.grave)),this.tempoInBpm=B,this.tempoEnum=TempoEnum.grave;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoLento,this.label)){B===0&&(B=_InstantaneousTempoExpression.getDefaultValueForTempoType(TempoEnum.lento)),this.tempoInBpm=B,this.tempoEnum=TempoEnum.lento;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoLargo,this.label)){B===0&&(B=_InstantaneousTempoExpression.getDefaultValueForTempoType(TempoEnum.largo)),this.tempoInBpm=B,this.tempoEnum=TempoEnum.largo;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoLarghetto,this.label)){B===0&&(B=_InstantaneousTempoExpression.getDefaultValueForTempoType(TempoEnum.larghetto)),this.tempoInBpm=B,this.tempoEnum=TempoEnum.larghetto;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAdagio,this.label)){B===0&&(B=_InstantaneousTempoExpression.getDefaultValueForTempoType(TempoEnum.adagio)),this.tempoInBpm=B,this.tempoEnum=TempoEnum.adagio;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAdagietto,this.label)){B===0&&(B=_InstantaneousTempoExpression.getDefaultValueForTempoType(TempoEnum.adagietto)),this.tempoInBpm=B,this.tempoEnum=TempoEnum.adagietto;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAndanteModerato,this.label)){B===0&&(B=_InstantaneousTempoExpression.getDefaultValueForTempoType(TempoEnum.andanteModerato)),this.tempoInBpm=B,this.tempoEnum=TempoEnum.andanteModerato;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAndante,this.label)){B===0&&(B=_InstantaneousTempoExpression.getDefaultValueForTempoType(TempoEnum.andante)),this.tempoInBpm=B,this.tempoEnum=TempoEnum.andante;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAndantino,this.label)){B===0&&(B=_InstantaneousTempoExpression.getDefaultValueForTempoType(TempoEnum.andantino)),this.tempoInBpm=B,this.tempoEnum=TempoEnum.andantino;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoModerato,this.label)){B===0&&(B=_InstantaneousTempoExpression.getDefaultValueForTempoType(TempoEnum.moderato)),this.tempoInBpm=B,this.tempoEnum=TempoEnum.moderato;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAllegretto,this.label)){B===0&&(B=_InstantaneousTempoExpression.getDefaultValueForTempoType(TempoEnum.allegretto)),this.tempoInBpm=B,this.tempoEnum=TempoEnum.allegretto;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAllegroModerato,this.label)){B===0&&(B=_InstantaneousTempoExpression.getDefaultValueForTempoType(TempoEnum.allegroModerato)),this.tempoInBpm=B,this.tempoEnum=TempoEnum.allegroModerato;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAllegro,this.label)){B===0&&(B=_InstantaneousTempoExpression.getDefaultValueForTempoType(TempoEnum.allegro)),this.tempoInBpm=B,this.tempoEnum=TempoEnum.allegro;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoVivace,this.label)){B===0&&(B=_InstantaneousTempoExpression.getDefaultValueForTempoType(TempoEnum.vivace)),this.tempoInBpm=B,this.tempoEnum=TempoEnum.vivace;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoVivacissimo,this.label)){B===0&&(B=_InstantaneousTempoExpression.getDefaultValueForTempoType(TempoEnum.vivacissimo)),this.tempoInBpm=B,this.tempoEnum=TempoEnum.vivacissimo;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAllegrissimo,this.label)){B===0&&(B=_InstantaneousTempoExpression.getDefaultValueForTempoType(TempoEnum.allegrissimo)),this.tempoInBpm=B,this.tempoEnum=TempoEnum.allegrissimo;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoPresto,this.label)){B===0&&(B=_InstantaneousTempoExpression.getDefaultValueForTempoType(TempoEnum.presto)),this.tempoInBpm=B,this.tempoEnum=TempoEnum.presto;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoPrestissimo,this.label)){B===0&&(B=_InstantaneousTempoExpression.getDefaultValueForTempoType(TempoEnum.prestissimo)),this.tempoInBpm=B,this.tempoEnum=TempoEnum.prestissimo;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAddons,this.label)){this.tempoInBpm=0,this.tempoEnum=TempoEnum.addon;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoChangesGeneral,this.label)){this.tempoInBpm=0,this.tempoEnum=TempoEnum.changes;return}}};let InstantaneousTempoExpression=_InstantaneousTempoExpression;InstantaneousTempoExpression.listInstantaneousTempoLarghissimo=["Larghissimo","Sehr breit","very, very slow"];InstantaneousTempoExpression.listInstantaneousTempoGrave=["Grave","Schwer","slow and solemn"];InstantaneousTempoExpression.listInstantaneousTempoLento=["Lento","Lent","Langsam","slowly"];InstantaneousTempoExpression.listInstantaneousTempoLargo=["Largo","Breit","broadly"];InstantaneousTempoExpression.listInstantaneousTempoLarghetto=["Larghetto","Etwas breit","rather broadly"];InstantaneousTempoExpression.listInstantaneousTempoAdagio=["Adagio","Langsam","Ruhig","slow and stately"];InstantaneousTempoExpression.listInstantaneousTempoAdagietto=["Adagietto","Ziemlich ruhig","Ziemlich langsam","rather slow"];InstantaneousTempoExpression.listInstantaneousTempoAndanteModerato=["Andante moderato"];InstantaneousTempoExpression.listInstantaneousTempoAndante=["Andante","Gehend","Schreitend","at a walking pace"];InstantaneousTempoExpression.listInstantaneousTempoAndantino=["Andantino"];InstantaneousTempoExpression.listInstantaneousTempoModerato=["Moderato","M\xE4\xDFig","Mod\uFFFDr\uFFFD","moderately"];InstantaneousTempoExpression.listInstantaneousTempoAllegretto=["Allegretto","fast"];InstantaneousTempoExpression.listInstantaneousTempoAllegroModerato=["Allegro moderato"];InstantaneousTempoExpression.listInstantaneousTempoAllegro=["Allegro","Rapide","Vite","Rasch","Schnell","Fr\uFFFDhlich"];InstantaneousTempoExpression.listInstantaneousTempoVivace=["Vivace","Lebhaft","Lebendig","lively and fast"];InstantaneousTempoExpression.listInstantaneousTempoVivacissimo=["Vivacissimo","Sehr lebhaft","Sehr lebendig"];InstantaneousTempoExpression.listInstantaneousTempoAllegrissimo=["Allegrissimo","very fast"];InstantaneousTempoExpression.listInstantaneousTempoPresto=["Presto","Sehr schnell","Geschwind"];InstantaneousTempoExpression.listInstantaneousTempoPrestissimo=["Prestissimo","\xE4u\xDFerst schnell"];InstantaneousTempoExpression.listInstantaneousTempoChangesGeneral=["tempo primo","a tempo","tempo i","rubato","doppio movimento"];InstantaneousTempoExpression.listInstantaneousTempoAddons=["assai","amoroso","cantabile","con brio","con dolore","con espressione","con fuoco","con moto","con spirito","spiritoso","espressivo","giocoso","giusto","grazioso","lesto","lugubre","maestoso","ma non troppo","marcato","molto","morendo","mosso","non tanto","piu","un poco","poco","quasi","risoluto","scherzando","sostenuto","teneramente","tempo giusto","tranquillo","sehr","lieblich","liebevoll","mit Leidenschaft","mit Liebe","amour\xF6s","gesanglich","mit Schwung","mit Feuer","mit Schmerz","mit Ausdruck","mit Bewegung","geistvoll","ausdrucksvoll","freudig","verspielt","angemessen","grazi\xF6s","mit Grazie","flink","beh\xE4nde","traurig","klagend","majest\xE4tisch","aber nicht zu sehr","markant","gem\xE4\xDFigt","viel","sehr","ersterbend","bewegt","nicht zu sehr","mehr","ein wenig","gleichsam","entschlossen","zupackend","heiter","nachdr\xFCcklich","getragen","gewichtig","zart","z\xE4rtlich","im angemessenen Zeitma\xDF","ruhig","ein wenig","alla marcia","ad libitum","alla breve"];var TempoEnum=(B=>(B[B.none=0]="none",B[B.larghissimo=1]="larghissimo",B[B.grave=2]="grave",B[B.lento=3]="lento",B[B.largo=4]="largo",B[B.larghetto=5]="larghetto",B[B.adagio=6]="adagio",B[B.adagietto=7]="adagietto",B[B.andanteModerato=8]="andanteModerato",B[B.andante=9]="andante",B[B.andantino=10]="andantino",B[B.moderato=11]="moderato",B[B.allegretto=12]="allegretto",B[B.allegroModerato=13]="allegroModerato",B[B.allegro=14]="allegro",B[B.vivace=15]="vivace",B[B.vivacissimo=16]="vivacissimo",B[B.allegrissimo=17]="allegrissimo",B[B.presto=18]="presto",B[B.prestissimo=19]="prestissimo",B[B.lastRealTempo=20]="lastRealTempo",B[B.addon=21]="addon",B[B.changes=22]="changes",B[B.metronomeMark=23]="metronomeMark",B))(TempoEnum||{});const _MoodExpression=class extends AbstractExpression{constructor(B,R,F){super(R),this.label=B,this.staffNumber=F,this.setMoodType()}static isInputStringMood(B){return B?_MoodExpression.isStringInStringList(_MoodExpression.listMoodAffettuoso,B)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodAgitato,B)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodAnimato,B)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodAppassionato,B)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodBrillante,B)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodCantabile,B)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodDolce,B)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodEnergico,B)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodEroico,B)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodEspressivo,B)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodFurioso,B)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodGiocoso,B)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodGioioso,B)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodGrandioso,B)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodGrazioso,B)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodLacrimoso,B)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodLeggiero,B)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodMaestoso,B)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodMalinconico,B)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodMarcato,B)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodMarziale,B)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodMesto,B)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodMorendo,B)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodNobilmente,B)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodPatetico,B)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodPesante,B)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodSaltando,B)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodSautille,B)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodScherzando,B)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodSostenuto,B)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodSpiccato,B)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodTenerezza,B)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodTranquillamente,B)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodTrionfante,B):!1}get Label(){return this.label}set Label(B){this.label=B}get Mood(){return this.moodType}set Mood(B){this.moodType=B}get StaffNumber(){return this.staffNumber}set StaffNumber(B){this.staffNumber=B}get Placement(){return this.placement}set Placement(B){this.placement=B}setMoodType(){_MoodExpression.isStringInStringList(_MoodExpression.listMoodAffettuoso,this.label)?this.moodType=MoodEnum.Affettuoso:_MoodExpression.isStringInStringList(_MoodExpression.listMoodAgitato,this.label)?this.moodType=MoodEnum.Agitato:_MoodExpression.isStringInStringList(_MoodExpression.listMoodAnimato,this.label)?this.moodType=MoodEnum.Animato:_MoodExpression.isStringInStringList(_MoodExpression.listMoodAppassionato,this.label)?this.moodType=MoodEnum.Appassionato:_MoodExpression.isStringInStringList(_MoodExpression.listMoodBrillante,this.label)?this.moodType=MoodEnum.Brillante:_MoodExpression.isStringInStringList(_MoodExpression.listMoodCantabile,this.label)?this.moodType=MoodEnum.Cantabile:_MoodExpression.isStringInStringList(_MoodExpression.listMoodDolce,this.label)?this.moodType=MoodEnum.Dolce:_MoodExpression.isStringInStringList(_MoodExpression.listMoodEnergico,this.label)?this.moodType=MoodEnum.Energico:_MoodExpression.isStringInStringList(_MoodExpression.listMoodEroico,this.label)?this.moodType=MoodEnum.Eroico:_MoodExpression.isStringInStringList(_MoodExpression.listMoodEspressivo,this.label)?this.moodType=MoodEnum.Espressivo:_MoodExpression.isStringInStringList(_MoodExpression.listMoodFurioso,this.label)?this.moodType=MoodEnum.Furioso:_MoodExpression.isStringInStringList(_MoodExpression.listMoodGiocoso,this.label)?this.moodType=MoodEnum.Giocoso:_MoodExpression.isStringInStringList(_MoodExpression.listMoodGioioso,this.label)?this.moodType=MoodEnum.Gioioso:_MoodExpression.isStringInStringList(_MoodExpression.listMoodGrandioso,this.label)?this.moodType=MoodEnum.Grandioso:_MoodExpression.isStringInStringList(_MoodExpression.listMoodGrazioso,this.label)?this.moodType=MoodEnum.Grazioso:_MoodExpression.isStringInStringList(_MoodExpression.listMoodLacrimoso,this.label)?this.moodType=MoodEnum.Lacrimoso:_MoodExpression.isStringInStringList(_MoodExpression.listMoodLeggiero,this.label)?this.moodType=MoodEnum.Leggiero:_MoodExpression.isStringInStringList(_MoodExpression.listMoodMaestoso,this.label)?this.moodType=MoodEnum.Maestoso:_MoodExpression.isStringInStringList(_MoodExpression.listMoodMalinconico,this.label)?this.moodType=MoodEnum.Malinconico:_MoodExpression.isStringInStringList(_MoodExpression.listMoodMarcato,this.label)?this.moodType=MoodEnum.Marcato:_MoodExpression.isStringInStringList(_MoodExpression.listMoodMarziale,this.label)?this.moodType=MoodEnum.Marziale:_MoodExpression.isStringInStringList(_MoodExpression.listMoodMesto,this.label)?this.moodType=MoodEnum.Mesto:_MoodExpression.isStringInStringList(_MoodExpression.listMoodMorendo,this.label)?this.moodType=MoodEnum.Morendo:_MoodExpression.isStringInStringList(_MoodExpression.listMoodNobilmente,this.label)?this.moodType=MoodEnum.Nobilmente:_MoodExpression.isStringInStringList(_MoodExpression.listMoodPatetico,this.label)?this.moodType=MoodEnum.Patetico:_MoodExpression.isStringInStringList(_MoodExpression.listMoodPesante,this.label)?this.moodType=MoodEnum.Pesante:_MoodExpression.isStringInStringList(_MoodExpression.listMoodSaltando,this.label)?this.moodType=MoodEnum.Saltando:_MoodExpression.isStringInStringList(_MoodExpression.listMoodSautille,this.label)?this.moodType=MoodEnum.Sautille:_MoodExpression.isStringInStringList(_MoodExpression.listMoodScherzando,this.label)?this.moodType=MoodEnum.Scherzando:_MoodExpression.isStringInStringList(_MoodExpression.listMoodSostenuto,this.label)?this.moodType=MoodEnum.Sostenuto:_MoodExpression.isStringInStringList(_MoodExpression.listMoodSpiccato,this.label)?this.moodType=MoodEnum.Spiccato:_MoodExpression.isStringInStringList(_MoodExpression.listMoodTenerezza,this.label)?this.moodType=MoodEnum.Tenerezza:_MoodExpression.isStringInStringList(_MoodExpression.listMoodTranquillamente,this.label)?this.moodType=MoodEnum.Tranquillamente:_MoodExpression.isStringInStringList(_MoodExpression.listMoodTrionfante,this.label)&&(this.moodType=MoodEnum.Trionfante)}};let MoodExpression=_MoodExpression;MoodExpression.listMoodAffettuoso=["affettuoso"];MoodExpression.listMoodAgitato=["agitato"];MoodExpression.listMoodAppassionato=["appassionato"];MoodExpression.listMoodAnimato=["animato","lively"];MoodExpression.listMoodBrillante=["brillante"];MoodExpression.listMoodCantabile=["cantabile"];MoodExpression.listMoodDolce=["dolce"];MoodExpression.listMoodEnergico=["energico"];MoodExpression.listMoodEroico=["eroico"];MoodExpression.listMoodEspressivo=["espressivo"];MoodExpression.listMoodFurioso=["furioso"];MoodExpression.listMoodGiocoso=["giocoso"];MoodExpression.listMoodGioioso=["gioioso"];MoodExpression.listMoodLacrimoso=["lacrimoso"];MoodExpression.listMoodGrandioso=["grandioso"];MoodExpression.listMoodGrazioso=["grazioso"];MoodExpression.listMoodLeggiero=["leggiero"];MoodExpression.listMoodMaestoso=["maestoso"];MoodExpression.listMoodMalinconico=["malinconico"];MoodExpression.listMoodMarcato=["marcato"];MoodExpression.listMoodMarziale=["marziale"];MoodExpression.listMoodMesto=["mesto"];MoodExpression.listMoodMorendo=["morendo"];MoodExpression.listMoodNobilmente=["nobilmente"];MoodExpression.listMoodPatetico=["patetico"];MoodExpression.listMoodPesante=["pesante"];MoodExpression.listMoodSautille=["sautille"];MoodExpression.listMoodSaltando=["saltando"];MoodExpression.listMoodScherzando=["scherzando"];MoodExpression.listMoodSostenuto=["sostenuto"];MoodExpression.listMoodSpiccato=["spiccato"];MoodExpression.listMoodTenerezza=["tenerezza"];MoodExpression.listMoodTranquillamente=["tranquillamente"];MoodExpression.listMoodTrionfante=["trionfante"];var MoodEnum=(B=>(B[B.Affettuoso=0]="Affettuoso",B[B.Agitato=1]="Agitato",B[B.Appassionato=2]="Appassionato",B[B.Animato=3]="Animato",B[B.Brillante=4]="Brillante",B[B.Cantabile=5]="Cantabile",B[B.Dolce=6]="Dolce",B[B.Energico=7]="Energico",B[B.Eroico=8]="Eroico",B[B.Espressivo=9]="Espressivo",B[B.Furioso=10]="Furioso",B[B.Giocoso=11]="Giocoso",B[B.Gioioso=12]="Gioioso",B[B.Lacrimoso=13]="Lacrimoso",B[B.Grandioso=14]="Grandioso",B[B.Grazioso=15]="Grazioso",B[B.Leggiero=16]="Leggiero",B[B.Maestoso=17]="Maestoso",B[B.Malinconico=18]="Malinconico",B[B.Marcato=19]="Marcato",B[B.Marziale=20]="Marziale",B[B.Mesto=21]="Mesto",B[B.Morendo=22]="Morendo",B[B.Nobilmente=23]="Nobilmente",B[B.Patetico=24]="Patetico",B[B.Pesante=25]="Pesante",B[B.Sautille=26]="Sautille",B[B.Saltando=27]="Saltando",B[B.Scherzando=28]="Scherzando",B[B.Sostenuto=29]="Sostenuto",B[B.Spiccato=30]="Spiccato",B[B.Tenerezza=31]="Tenerezza",B[B.Tranquillamente=32]="Tranquillamente",B[B.Trionfante=33]="Trionfante",B[B.Vivace=34]="Vivace",B))(MoodEnum||{});class UnknownExpression extends AbstractExpression{constructor(R,F,D,G){super(F),this.label=R,this.staffNumber=G,D===void 0&&(D=TextAlignmentEnum.LeftBottom),this.textAlignment=D}get Label(){return this.label}get Placement(){return this.placement}set Placement(R){this.placement=R}get StaffNumber(){return this.staffNumber}set StaffNumber(R){this.staffNumber=R}get TextAlignment(){return this.textAlignment}}class MultiExpression{constructor(R,F){this.unknownList=[],this.moodList=[],this.expressions=[],this.sourceMeasure=R,this.timestamp=F}get SourceMeasureParent(){return this.sourceMeasure}set SourceMeasureParent(R){this.sourceMeasure=R}get StaffNumber(){return this.staffNumber}set StaffNumber(R){this.staffNumber=R}get Timestamp(){return this.timestamp}set Timestamp(R){this.timestamp=R}get AbsoluteTimestamp(){return Fraction$1.plus(this.timestamp,this.sourceMeasure.AbsoluteTimestamp)}get InstantaneousDynamic(){return this.instantaneousDynamic}set InstantaneousDynamic(R){this.instantaneousDynamic=R}get EndingContinuousDynamic(){return this.endingContinuousDynamic}set EndingContinuousDynamic(R){this.endingContinuousDynamic=R}get StartingContinuousDynamic(){return this.startingContinuousDynamic}set StartingContinuousDynamic(R){this.startingContinuousDynamic=R}get MoodList(){return this.moodList}get UnknownList(){return this.unknownList}get EntriesList(){return this.expressions}get OctaveShiftStart(){return this.octaveShiftStart}set OctaveShiftStart(R){this.octaveShiftStart=R}get OctaveShiftEnd(){return this.octaveShiftEnd}set OctaveShiftEnd(R){this.octaveShiftEnd=R}get CombinedExpressionsText(){return this.combinedExpressionsText}set CombinedExpressionsText(R){this.combinedExpressionsText=R}getPlacementOfFirstEntry(){let R=PlacementEnum.Above;return this.expressions.length>0&&(this.expressions[0].expression instanceof InstantaneousDynamicExpression?R=this.expressions[0].expression.Placement:this.expressions[0].expression instanceof ContinuousDynamicExpression?R=this.expressions[0].expression.Placement:this.expressions[0].expression instanceof MoodExpression?R=this.expressions[0].expression.Placement:this.expressions[0].expression instanceof UnknownExpression&&(R=this.expressions[0].expression.Placement)),R}getFontstyleOfFirstEntry(){var F;let R=FontStyles.Regular;return this.expressions.length>0&&(this.expressions[0].expression instanceof ContinuousDynamicExpression||this.expressions[0].expression instanceof MoodExpression?R=FontStyles.Italic:this.expressions[0].expression instanceof UnknownExpression&&(R=(F=this.expressions[0].expression.fontStyle)!=null?F:FontStyles.Regular)),R}addExpression(R,F){R instanceof InstantaneousDynamicExpression?(this.instantaneousDynamic&&this.removeExpressionFromEntryList(this.InstantaneousDynamic),this.instantaneousDynamic=R,this.instantaneousDynamic.ParentMultiExpression=this):R instanceof ContinuousDynamicExpression?this.startingContinuousDynamic=R:R instanceof MoodExpression?this.moodList.push(R):R instanceof UnknownExpression&&this.unknownList.push(R),this.addExpressionToEntryList(R,F)}CompareTo(R){return this.Timestamp.RealValue>R.Timestamp.RealValue?1:this.Timestamp.RealValue=ContinuousTempoType.allargando&&B<=ContinuousTempoType.ritenuto}get TempoType(){return this.tempoType}set TempoType(B){this.tempoType=B}get StartTempo(){return this.startTempo}set StartTempo(B){this.startTempo=B}get EndTempo(){return this.endTempo}set EndTempo(B){this.endTempo=B}get AbsoluteEndTimestamp(){return this.absoluteEndTimestamp}set AbsoluteEndTimestamp(B){this.absoluteEndTimestamp=B}get AbsoluteTimestamp(){return this.ParentMultiTempoExpression.AbsoluteTimestamp}getAbsoluteFloatTimestamp(){return this.ParentMultiTempoExpression.AbsoluteTimestamp.RealValue}getInterpolatedTempo(B){const R=Fraction$1.plus(this.parentMultiTempoExpression.SourceMeasureParent.AbsoluteTimestamp,this.parentMultiTempoExpression.Timestamp);if(B.lt(R))return-1;if(this.absoluteEndTimestamp.lt(B))return-2;const F=Fraction$1.minus(B,R).RealValue/Fraction$1.minus(this.absoluteEndTimestamp,R).RealValue;return Math.max(0,Math.min(250,this.startTempo+(this.endTempo-this.startTempo)*F))}setTempoType(){_ContinuousTempoExpression.isStringInStringList(_ContinuousTempoExpression.listContinuousTempoFaster,this.label)?this.tempoType=ContinuousTempoType.accelerando:_ContinuousTempoExpression.isStringInStringList(_ContinuousTempoExpression.listContinuousTempoSlower,this.label)&&(this.tempoType=ContinuousTempoType.ritardando)}};let ContinuousTempoExpression=_ContinuousTempoExpression;ContinuousTempoExpression.listContinuousTempoFaster=["accelerando","piu mosso","poco piu","stretto"];ContinuousTempoExpression.listContinuousTempoSlower=["poco meno","meno mosso","piu lento","rallentando","ritardando","ritenuto","ritard.","ritard","riten.","riten"];var ContinuousTempoType=(B=>(B[B.accelerando=0]="accelerando",B[B.stretto=1]="stretto",B[B.stringendo=2]="stringendo",B[B.mosso=3]="mosso",B[B.piuMosso=4]="piuMosso",B[B.allargando=5]="allargando",B[B.calando=6]="calando",B[B.menoMosso=7]="menoMosso",B[B.rallentando=8]="rallentando",B[B.ritardando=9]="ritardando",B[B.ritard=10]="ritard",B[B.rit=11]="rit",B[B.ritenuto=12]="ritenuto",B[B.rubato=13]="rubato",B[B.precipitando=14]="precipitando",B))(ContinuousTempoType||{});class MultiTempoExpression{constructor(R,F){this.expressions=[],this.sourceMeasure=R,this.timestamp=F}get Timestamp(){return this.timestamp}get AbsoluteTimestamp(){return Fraction$1.plus(this.sourceMeasure.AbsoluteTimestamp,this.timestamp)}get SourceMeasureParent(){return this.sourceMeasure}set SourceMeasureParent(R){this.sourceMeasure=R}get InstantaneousTempo(){return this.instantaneousTempo}get ContinuousTempo(){return this.continuousTempo}get EntriesList(){return this.expressions}get CombinedExpressionsText(){return this.combinedExpressionsText}set CombinedExpressionsText(R){this.combinedExpressionsText=R}getPlacementOfFirstEntry(){let R=PlacementEnum.Above;return this.expressions.length>0&&(this.expressions[0].Expression instanceof InstantaneousTempoExpression?R=this.expressions[0].Expression.Placement:this.expressions[0].Expression instanceof ContinuousTempoExpression&&(R=this.expressions[0].Expression.Placement)),R}getFontstyleOfFirstEntry(){let R=FontStyles.Regular;return this.expressions[0].Expression instanceof InstantaneousTempoExpression?R=FontStyles.Bold:this.expressions[0].Expression instanceof ContinuousTempoExpression&&(R=FontStyles.Italic),R}addExpression(R,F){if(this.checkIfAlreadyExists(R))return;R instanceof InstantaneousTempoExpression?this.instantaneousTempo=R:R instanceof ContinuousTempoExpression&&(this.continuousTempo=R);const D=new TempoExpressionEntry;D.prefix=F,D.Expression=R,D.label=R.Label,this.expressions.push(D)}CompareTo(R){return this.Timestamp.RealValue>R.Timestamp.RealValue?1:this.Timestamp.RealValue0){if(this.rules.MaxSystemToDrawNumber===this.musicSystems.length)return this.finalizeCurrentSystem(this.measureList[this.measureList.length-1],!this.rules.StretchLastSystemLine,!1),this.musicSystems;this.finalizeCurrentAndCreateNewSystem(this.measureList[this.measureList.length-1],!this.rules.StretchLastSystemLine,!1)}return this.musicSystems}calculateSystemYLayout(){for(const R of this.musicSystems)this.optimizeDistanceBetweenStaffLines(R);this.calculateMusicSystemsRelativePositions()}setMeasureWidth(R,F,D,G){for(let U=0,W=R.length;U0&&(q.beginInstructionsWidth=D),G>0&&(q.endInstructionsWidth=G)}}finalizeCurrentAndCreateNewSystem(R,F=!1,D=!0,G=!1){this.finalizeCurrentSystem(R,F,D,G),this.currentSystemParams=new SystemBuildParameters,R!==void 0&&this.measureListIndex=1){const F=this.currentSystemParams.currentSystem.GraphicalMeasures[this.currentSystemParams.currentSystem.GraphicalMeasures.length-1];let D=0;const G=R[R.length-1];G.endLine===SystemLinesEnum.DotsBoldBoldDots&&(G.endLine=SystemLinesEnum.DotsThinBold,D=F[0].getLineWidth(SystemLinesEnum.DotsBoldBoldDots)/2-F[0].getLineWidth(SystemLinesEnum.DotsThinBold)),this.currentSystemParams.currentSystemFixWidth-=D;for(let U=0,W=F.length;U1){W=!0;break}}let q=0;for(let Y=0;Y=0&&this.measureList[me]){const ge=(ce=this.measureList[me][0])==null?void 0:ce.parentSourceMeasure;(ge==null?void 0:ge.ImplicitMeasure)&&(ge==null?void 0:ge.RhythmPrinted)&&(he=!1)}he&&(F.addRhythmAtBegin(Q),F.parentSourceMeasure.RhythmPrinted=Q,ie=!0)}return(K||J||ie)&&(W+=F.beginInstructionsWidth,ie&&(W+=this.rules.RhythmRightMargin)),W}addInstructionsAtMeasureEnd(R,F,D){if(!R||!R.Instructions||R.Instructions.length===0)return 0;for(let G=0,U=R.Instructions.length;G0&&(this.currentSystemParams.systemMeasures.push({beginLine:SystemLinesEnum.None,endLine:SystemLinesEnum.None}),this.currentSystemParams.currentWidth+=G,this.currentSystemParams.currentSystemFixWidth+=G)}addExtraInstructionMeasure(R,F,D){const G=this.currentSystemParams.currentSystem,U=MusicSheetCalculator.symbolFactory.createExtraGraphicalMeasure(G.StaffLines[R]);F&&U.addKeyAtBegin(F,this.activeKeys[R],this.activeClefs[R]),D!==void 0&&D.PrintObject&&U.addRhythmAtBegin(D),U.PositionAndShape.BorderLeft=0,U.PositionAndShape.BorderTop=0,U.PositionAndShape.BorderBottom=this.rules.StaffHeight;const W=this.rules.MeasureLeftMargin+U.beginInstructionsWidth+this.rules.MeasureRightMargin;return U.PositionAndShape.BorderRight=W,G.StaffLines[R].Measures.push(U),W}addStaveMeasuresToSystem(R){if(R[0]){const F=[];for(let G=0;G1){const q=Math.min(this.graphicalMusicSheet.ParentMusicSheet.SourceMeasures.length-1,R.measureListIndex+R.multipleRestMeasures-1);R=this.graphicalMusicSheet.ParentMusicSheet.SourceMeasures[q]}}finally{}const F=this.graphicalMusicSheet.ParentMusicSheet.SourceMeasures,D=F[this.measureListIndex];let G=!1;return D.allRests&&(G=(W=(U=F[this.measureListIndex+D.multipleRestMeasures-1])==null?void 0:U.endsWithLineRepetition)==null?void 0:W.call(U)),this.nextMeasureBeginsLineRepetition()&&this.thisMeasureEndsLineRepetition()?SystemLinesEnum.DotsBoldBoldDots:this.thisMeasureEndsLineRepetition()||G?SystemLinesEnum.DotsThinBold:this.nextMeasureHasKeyInstructionChange()||this.thisMeasureEndsWordRepetition()||this.nextMeasureBeginsWordRepetition()?SystemLinesEnum.DoubleThin:R&&R.endingBarStyleEnum!==void 0?R.endingBarStyleEnum:SystemLinesEnum.SingleThin}getLineWidth(R,F,D){let G=R.getLineWidth(F);return F===SystemLinesEnum.DotsBoldBoldDots&&(G/=2),D&&F===SystemLinesEnum.BoldThinDots&&(G+=this.rules.DistanceBetweenLastInstructionAndRepetitionBarline),G}previousMeasureEndsLineRepetition(){if(this.measureListIndex===0)return!1;for(let R=0,F=this.measureList[this.measureListIndex-1].length;R=this.graphicalMusicSheet.ParentMusicSheet.SourceMeasures.length||!this.measureList[R])return!1;for(let F=0,D=this.measureList[R].length;F=this.graphicalMusicSheet.ParentMusicSheet.SourceMeasures.length||R>this.measureList.length-1)return!1;for(let F=0,D=this.measureList[R].length;F1)for(let q=1;qU&&(U=Z)}for(let q=0;qthis.rules.PageHeight-this.rules.PageBottomMargin&&(G++,G<=4&&console.log(`warning: could not fit a single system on page ${R.PageNumber} and measure number ${D.GraphicalMeasures[0][0].MeasureNumber}. The PageFormat may be too small for this sheet." Will not give further warnings for all pages, only total.`))}else{const Y=this.musicSystems[q-1],Q=Y.StaffLines[Y.StaffLines.length-1],Z=Q.PositionAndShape;let K=this.findRequiredDistanceWithSkyBottomLine(Y,D);K=Math.max(U,K),K+=this.rules.MinSkyBottomDistBetweenSystems,((W=window==null?void 0:window.appName)==null?void 0:W.toLocaleUpperCase())==="GYM"&&(K=K<16?16:K);const J=this.hasExpressionCounts(D);J.TempoCount>0&&this.rules.MetronomeMarksDrawn&&(K+=2),J.OtherCount>0&&this.rules.MetronomeMarksDrawn&&(K+=2),K=Math.max(K,this.rules.MinimumDistanceBetweenSystems+Q.StaffHeight);const ie=F+Z.RelativePosition.y+K,ne=ie+D.PositionAndShape.BorderMarginBottom;if(!(this.rules.NewPageAtXMLNewPageAttribute&&Y.breaksPage)&&ne0&&console.log(`total amount of pages that couldn't fit a single music system: ${G} of ${R.PageNumber}`)}findRequiredDistanceWithSkyBottomLine(R,F){const D=R.StaffLines[R.StaffLines.length-1],G=F.StaffLines[0],U=D.BottomLine,W=G.SkyLine,q=D.PositionAndShape,Y=G.PositionAndShape,Q=1/this.rules.SamplingUnit;let Z=0;for(let K=0;K=W.length)break;const ne=Math.max(0,ie-6),se=Math.min(W.length-1,ie+6);let re=0;for(let le=ne;le<=se;le++)re=Math.min(re,W[le]);const ae=J-re;Z=Math.max(ae,Z)}return Z===0&&(Z=q.BorderBottom-Y.BorderTop),Z}}class SystemBuildParameters{constructor(){this.systemMeasures=[],this.systemMeasureIndex=0,this.currentWidth=0,this.currentSystemFixWidth=0,this.currentSystemVarWidth=0,this.maxLabelLength=0}IsSystemStartMeasure(){return this.systemMeasureIndex===0}}class OctaveShiftParams{constructor(R,F,D){this.getOpenOctaveShift=R,this.getAbsoluteStartTimestamp=F,this.getAbsoluteEndTimestamp=D}}class AccidentalCalculator{constructor(){this.keySignatureNoteAlterationsDict=new Dictionary,this.currentAlterationsComparedToKeyInstructionList=[],this.currentInMeasureNoteAlterationsDict=new Dictionary}get ActiveKeyInstruction(){return this.activeKeyInstruction}set ActiveKeyInstruction(R){this.activeKeyInstruction=R,this.reactOnKeyInstructionChange()}doCalculationsAtEndOfMeasure(){this.currentInMeasureNoteAlterationsDict.clear(),this.currentAlterationsComparedToKeyInstructionList.clear();for(const R of this.keySignatureNoteAlterationsDict.keys())this.currentInMeasureNoteAlterationsDict.setValue(R,this.keySignatureNoteAlterationsDict.getValue(R))}checkAccidental(R,F){if(!F)return;const D=F.FundamentalNote+F.Octave*12,G=this.currentAlterationsComparedToKeyInstructionList.indexOf(D)>=0;if(this.currentInMeasureNoteAlterationsDict.containsKey(D)){if(G&&this.currentAlterationsComparedToKeyInstructionList.splice(this.currentAlterationsComparedToKeyInstructionList.indexOf(D),1),this.currentInMeasureNoteAlterationsDict.getValue(D)!==F.AccidentalHalfTones){this.keySignatureNoteAlterationsDict.containsKey(D)&&this.keySignatureNoteAlterationsDict.getValue(D)!==F.AccidentalHalfTones?(this.currentAlterationsComparedToKeyInstructionList.push(D),this.currentInMeasureNoteAlterationsDict.setValue(D,F.AccidentalHalfTones)):F.Accidental!==AccidentalEnum.NONE&&this.currentInMeasureNoteAlterationsDict.remove(D);const U=this.currentInMeasureNoteAlterationsDict.getValue(D);if(F.Accidental===AccidentalEnum.NONE&&(Math.abs(U)===.5?F=new Pitch(F.FundamentalNote,F.Octave,AccidentalEnum.NONE):F=new Pitch(F.FundamentalNote,F.Octave,AccidentalEnum.NATURAL)),this.isAlterAmbiguousAccidental(F.Accidental)&&!F.AccidentalXml)return;MusicSheetCalculator.symbolFactory.addGraphicalAccidental(R,F)}}else if(F.Accidental!==AccidentalEnum.NONE){if(G||this.currentAlterationsComparedToKeyInstructionList.push(D),this.currentInMeasureNoteAlterationsDict.setValue(D,F.AccidentalHalfTones),this.isAlterAmbiguousAccidental(F.Accidental)&&!F.AccidentalXml)return;MusicSheetCalculator.symbolFactory.addGraphicalAccidental(R,F)}else G&&(F=new Pitch(F.FundamentalNote,F.Octave,AccidentalEnum.NATURAL),this.currentAlterationsComparedToKeyInstructionList.splice(this.currentAlterationsComparedToKeyInstructionList.indexOf(D),1),MusicSheetCalculator.symbolFactory.addGraphicalAccidental(R,F))}isAlterAmbiguousAccidental(R){return R===AccidentalEnum.SLASHFLAT||R===AccidentalEnum.QUARTERTONEFLAT}reactOnKeyInstructionChange(){const R=this.activeKeyInstruction.AlteratedNotes;let F;this.activeKeyInstruction.Key>0?F=AccidentalEnum.SHARP:F=AccidentalEnum.FLAT,this.keySignatureNoteAlterationsDict.clear(),this.currentAlterationsComparedToKeyInstructionList.length=0;for(let D=-9;D<9;D++)for(let G=0;G0?(D=Z-1,R.push({startIndex:F,endIndex:D}),F=Z):ie.HasEndLine&&this.rules.NewPartAndSystemAfterFinalBarline&&(D=Z,R.push({startIndex:F,endIndex:D}),F=Z+1)}F0?Number(xe):6,de===xe||he+Se>se&&de%2===0?(U.push(de),he=ge,de=1):de++}else he>se?(U.push(de),he=ge,de=1):de++;ge>se?Ee=me+1:Ee=Math.ceil(Ee),le===Ee?ce+=1:(G.push(ce),le=Ee,ce=1)}G.push(ce),U.push(de),U=U.filter(Boolean)}return U.length>1&&U[U.length-1]===1&&(U[U.length-2]=U[U.length-2]-1,U[U.length-1]=U[U.length-1]+1),console.log(U,G),this.buildPreparedMusicSystems(U)}buildPreparedMusicSystems(R){let F=!1;this.currentSystemParams=new SystemBuildParameters,this.currentSystemParams.currentSystem=this.initMusicSystem();for(let D=0,G=this.measureList.length;D0&&this.rules.RenderMultipleRestMeasures){K.isReducedToMultiRest=!0,K.multipleRestMeasureNumber=1;const ie=K.multipleRestMeasures-1;Q+=ie;for(let ne=1;ne<=ie;ne++){const se=R.SourceMeasures[K.MeasureNumber-1+ne];se.multipleRestMeasureNumber=ne+1,se.isReducedToMultiRest=!0,F.push([void 0])}}}if(this.rules.AutoGenerateMutipleRestMeasuresFromRestMeasures&&this.rules.RenderMultipleRestMeasures){let Q,Z=0;for(let K=0,J=R.SourceMeasures.length;K0){Q.isReducedToMultiRest=!0,Q.multipleRestMeasureNumber=1,Z++,ie.multipleRestMeasureNumber=Z,ie.isReducedToMultiRest=!0;for(let ne=0;ne1){Q.multipleRestMeasures=Z;const ne=this.createGraphicalMeasuresForSourceMeasure(Q,D,U,q,G);F[Q.measureListIndex]=ne,Z=0,Q=void 0}else Z=0,Q=void 0}if(Z>1){Q.multipleRestMeasures=Z,Q.isReducedToMultiRest=!0;const K=this.createGraphicalMeasuresForSourceMeasure(Q,D,U,q,G);F[Q.measureListIndex]=K,Z=0,Q=void 0}}const Y=G.map(Q=>Q.ClefType===ClefEnum.percussion);this.handleStaffEntries(Y),this.calculateVerticalContainersList(),this.setIndicesToVerticalGraphicalContainers()}calculate(){this.musicSystems=[],this.clearSystemsAndMeasures(),this.clearRecreatedObjects(),this.createGraphicalTies(),this.calculateSheetLabelBoundingBoxes(),this.calculateXLayout(this.graphicalMusicSheet,this.maxInstrNameLabelLength()),this.graphicalMusicSheet.MusicPages.length=0,this.calculateMusicSystems(),GraphicalMusicSheet.transformRelativeToAbsolutePosition(this.graphicalMusicSheet)}calculateXLayout(R,F){let D=0;const G=this.rules.MaxInstructionsConstValue;if(this.graphicalMusicSheet.MeasureList.length>0){let U=this.graphicalMusicSheet.MeasureList[0],W=this.calculateMeasureXLayout(U);W=this.calculateMeasureWidthFromStaffEntries(U,W),MusicSheetCalculator.setMeasuresMinStaffEntriesWidth(U,W),D=W*1.2+F+G;for(let q=1;q0)return;const W=F.Measures[U];(W.MeasureNumber===0||W.MeasureNumber===1)&&(D=W.MeasureNumber),W!==F.Measures[0]&&this.rules.MeasureNumberLabelXOffset?G=this.rules.MeasureNumberLabelXOffset:G=0;const q=this.rules.UseXMLMeasureNumbers&&W.MeasureNumber===1&&W.parentSourceMeasure.getPrintedMeasureNumber()!==1;((W.MeasureNumber===D||W.MeasureNumber>=D+this.rules.MeasureNumberLabelOffset)&&!W.parentSourceMeasure.ImplicitMeasure||q)&&((W.MeasureNumber!==1||W.MeasureNumber===1&&W!==F.Measures[0]||q)&&this.calculateSingleMeasureNumberPlacement(W,F,R,G),D=W.MeasureNumber)}}calculateSingleMeasureNumberPlacement(R,F,D,G=0){const U=R.parentSourceMeasure.getPrintedMeasureNumber().toString(),W=new Label(U),q=new GraphicalLabel(W,this.rules.MeasureNumberLabelHeight,TextAlignmentEnum.LeftBottom,this.rules),Y=F.SkyBottomLineCalculator;q.setLabelPositionAndShapeBorders(),q.PositionAndShape.Parent=D.PositionAndShape;const Q=F.PositionAndShape.RelativePosition.x+R.PositionAndShape.RelativePosition.x-q.PositionAndShape.BorderMarginLeft+G;let Z,K=Q,J=Q-q.PositionAndShape.BorderLeft+q.PositionAndShape.BorderRight;K-=F.PositionAndShape.RelativePosition.x,J-=F.PositionAndShape.RelativePosition.x;const ie=K+.5,ne=J-.5,se=Y.getSkyLineMinInRange(ie,ne);if(R===F.Measures[0]){let re=0;if(D.GroupBrackets.length>0)for(const ae of D.GroupBrackets)re=Math.min(re,ae.PositionAndShape.BorderTop);Z=Math.min(se,re)}else Z=se;Z=Math.min(0,Z),q.PositionAndShape.RelativePosition=new PointF2D(Q,Z),D.MeasureNumberLabels.push(q)}calculateMeasureNumberSkyline(R){const F=R.StaffLines[0];for(const D of R.MeasureNumberLabels){let G=D.PositionAndShape.RelativePosition.x,U=G-D.PositionAndShape.BorderLeft+D.PositionAndShape.BorderRight;G-=F.PositionAndShape.RelativePosition.x,U-=F.PositionAndShape.RelativePosition.x,F.SkyBottomLineCalculator.updateSkyLineInRange(G,U,D.PositionAndShape.RelativePosition.y+D.PositionAndShape.BorderMarginTop)}}layoutGraphicalTie(R,F,D){throw new Error(this.abstractNotImplementedErrorMessage)}calculateSingleStaffLineLyricsPosition(R,F){let D=0,G=this.rules.StaffHeight;const U=[],W=R.SkyBottomLineCalculator;let q=R.Measures.length;for(let Q=0;Q0){U.push(ne),D=Math.max(D,ne.LyricsEntries.length);const se=ne.PositionAndShape.RelativePosition.x+K.x;let re=Number.MAX_VALUE,ae=Number.MIN_VALUE;for(let ce=0;ce0){const Q=R.PositionAndShape.Size.width;let Z=U[0].PositionAndShape.RelativePosition.x+U[0].PositionAndShape.BorderMarginLeft+U[0].parentMeasure.PositionAndShape.RelativePosition.x;Z=Z>Q?Q:Z,W.updateBottomLineInRange(Z,Q,Y)}return U}calculateLyricsExtendsAndDashes(R){for(let F=0,D=R.length;F0||R.UnknownList.length>0){let Y="";for(let ie=0,ne=R.EntriesList.length;ieR.length-1&&(log$2.debug("minimum measure to draw index out of range. resetting min measure index to limit."),this.rules.MinMeasureToDrawIndex=R.length-1);const F=[];for(let W=this.rules.MinMeasureToDrawIndex,q=R.length;W0)&&(G=D.getSkyLineMinInRange(K,J));let ie=0;q===0?(ie+=this.rules.ChordSymbolYOffset,ie+=.1):ie+=this.rules.ChordSymbolYPadding,ie*=-1;const ne=Y.GraphicalLabel;ne.PositionAndShape.RelativePosition.y=G+ie,ne.setLabelPositionAndShapeBorders(),ne.PositionAndShape.calculateBoundingBox(),D.updateSkyLineInRange(K,J,G+ne.PositionAndShape.BorderMarginTop)}}}}calculateAlignedChordSymbolsOffset(R,F){let D=Number.MAX_SAFE_INTEGER;for(const G of R)for(const U of G.graphicalChordContainers){const W=G.PositionAndShape,q=U.PositionAndShape,Y=q.BorderMarginLeft+W.AbsolutePosition.x,Q=q.BorderMarginRight+W.AbsolutePosition.x;D=Math.min(D,F.getSkyLineMinInRange(Y,Q))}return D}layoutMeasureWithWholeRest(R,F,D){}layoutBeams(R){}layoutArticulationMarks(R,F,D){}layoutOrnament(R,F,D){}calculateRestNotePlacementWithinGraphicalBeam(R,F,D,G,U){}calculateTupletNumbers(){}calculateSlurs(){}calculateDynamicExpressionsForMultiExpression(R,F,D){}calculateGraphicalVerbalContinuousDynamic(R,F){const D=R.Label,G=F.x+D.PositionAndShape.BorderMarginLeft,U=F.x+D.PositionAndShape.BorderMarginRight,W=R.ContinuousDynamic.Placement,Y=R.ParentStaffLine.SkyBottomLineCalculator;let Q;W===PlacementEnum.Below?(Q=Y.getBottomLineMaxInRange(G,U),D.PositionAndShape.RelativePosition=new PointF2D(F.x,Q-D.PositionAndShape.BorderMarginTop)):(Q=Y.getSkyLineMinInRange(G,U),D.PositionAndShape.RelativePosition=new PointF2D(F.x,Q-D.PositionAndShape.BorderMarginBottom))}calculateGraphicalContinuousDynamic(R,F){var ye,Te,Le;const D=R.ParentStaffLine.ParentStaff.idInMusicSheet,G=this.graphicalMusicSheet.getGraphicalMeasureFromSourceMeasureAndIndex(R.ContinuousDynamic.EndMultiExpression.SourceMeasureParent,D);if(!G){log$2.warn("MusicSheetCalculator.calculateGraphicalContinuousDynamic: No endMeasure found");return}R.EndMeasure=G;const U=R.ParentStaffLine,W=G.ParentStaffLine,q=W&&U===W;let Y=!1;W?Y=W==null?void 0:W.isPartOfMultiStaffInstrument():U&&(Y=U==null?void 0:U.isPartOfMultiStaffInstrument());const Q=Fraction$1.createFromFraction(R.ContinuousDynamic.EndMultiExpression.AbsoluteTimestamp),Z=this.graphicalMusicSheet.GetVerticalContainerFromTimestamp(Q),K=Z.getFirstNonNullStaffEntry().parentMeasure,J=K.PositionAndShape.AbsolutePosition.x+K.PositionAndShape.BorderRight;let ie=new Fraction$1(0,0,0);for(const we of Z.StaffEntries){const Ae=(ye=we==null?void 0:we.sourceStaffEntry)==null?void 0:ye.calculateMaxNoteLength();Ae!=null&&Ae.gt(ie)&&(ie=Ae)}const ne=this.getRelativePositionInStaffLineFromTimestamp(Q,D,W,Y,0),se=Fraction$1.plus(Q,ie),re=this.getRelativePositionInStaffLineFromTimestamp(se,D,W,Y,0);re.x>ne.x&&re.xce){const ke=le.StaffLines[we].PositionAndShape.RelativePosition.y-U.PositionAndShape.RelativePosition.y-this.rules.StaffHeight;xe=this.rules.StaffHeight+ke/2}else xe=this.rules.WedgePlacementBelowY;xe-=this.rules.WedgeOpeningLength/2,q||(Pe=xe);let Ae=he.getBottomLineMaxInRange(ge,Ee);if(Ae>xe&&(xe=Ae),cePe&&(Pe=Ae),Pe+=this.rules.WedgeOpeningLength/2,Pe+=this.rules.WedgeVerticalMargin),xe+=this.rules.WedgeOpeningLength/2,xe+=this.rules.WedgeVerticalMargin}else if(de===PlacementEnum.Above){if(U.ParentStaff.ParentInstrument.Staves.length===1)xe=this.rules.WedgePlacementAboveY;else{let Ae=0;ce>0&&(Ae=ce-1);const Me=le.StaffLines[Ae];xe=-(U.PositionAndShape.RelativePosition.y-Me.PositionAndShape.RelativePosition.y-this.rules.StaffHeight)/2}xe+=this.rules.WedgeOpeningLength/2,q||(Pe=xe);let we=he.getSkyLineMinInRange(ge,Ee);if(we1&&ce>0){const Ae=U.findClosestStaffEntry(ge),Me=U.findClosestStaffEntry(Ee);Ae&&Me&&Ae.parentVerticalContainer}q||(we=W.SkyBottomLineCalculator.getSkyLineMinInRange(Se,ve),we-K/2?Y=-K/2:Y=Q-R.PositionAndShape.BorderMarginBottom}else Y=Q-R.PositionAndShape.BorderMarginBottom;R.PositionAndShape.RelativePosition=new PointF2D(F.x,Y)}else if(R.Placement===PlacementEnum.Below){const Q=q.getBottomLineMaxInRange(U,W),Z=G.ParentStaff.ParentInstrument.Staves[G.ParentStaff.ParentInstrument.Staves.length-1];if(G.isPartOfMultiStaffInstrument()&&G.ParentStaff!==Z){const J=G.ParentMusicSystem.StaffLines[G.ParentMusicSystem.StaffLines.indexOf(G)+1].PositionAndShape.RelativePosition.y-G.PositionAndShape.RelativePosition.y-this.rules.StaffHeight,ie=R.PositionAndShape.BorderMarginBottom;Q+ieR.PositionAndShape.Size.width&&(J=R.PositionAndShape.Size.width-this.rules.MeasureRightMargin,K=J-Q.PositionAndShape.MarginSize.width,F.x=K-Q.PositionAndShape.BorderMarginLeft);let ie;const ne=R.SkyBottomLineCalculator;return U===PlacementEnum.Below?ie=ne.getBottomLineMaxInRange(K,J):ie=ne.getSkyLineMinInRange(K,J),Q.PositionAndShape.RelativePosition=new PointF2D(F.x,ie),U===PlacementEnum.Below?ne.updateBottomLineInRange(K,J,Q.PositionAndShape.BorderMarginBottom+ie):ne.updateSkyLineInRange(K,J,Q.PositionAndShape.BorderMarginTop+ie),Q}calculateTempoExpressionsForMultiTempoExpression(R,F,D,G){metronomeMarks={};const U=Fraction$1.plus(R.AbsoluteTimestamp,F.Timestamp),W=this.graphicalMusicSheet.MeasureList[D];let q=new PointF2D;if(F.ContinuousTempo||F.InstantaneousTempo){if(this.rules.MinMeasureToDrawIndex>0||!W[0])return;let Y=W[0].ParentStaffLine,Q=W[0].PositionAndShape.RelativePosition.x,Z=0;for(let K=0;K0){Y=W[K].ParentStaffLine,Q=W[K].PositionAndShape.RelativePosition.x,Z=K;break}if(q=this.getRelativePositionInStaffLineFromTimestamp(U,Z,Y,Y.isPartOfMultiStaffInstrument(),Q),F.EntriesList.length>0&&F.EntriesList[0].Expression instanceof InstantaneousTempoExpression){const K=F.EntriesList[0].Expression;if(K.Placement=PlacementEnum.Above,Y.Measures[0].staffEntries.length>0&&Math.abs(q.x-Y.Measures[0].staffEntries[0].PositionAndShape.RelativePosition.x)===0&&Y.ParentMusicSystem===this.musicSystems[0]){const J=Y.Measures[0].FirstInstructionStaffEntry;if(J){const ie=J.GraphicalInstructions.last();q.x=ie.PositionAndShape.RelativePosition.x}this.rules.CompactMode&&(q.x=Y.PositionAndShape.RelativePosition.x+Y.Measures[0].PositionAndShape.RelativePosition.x)}}for(const K of F.EntriesList){let J=TextAlignmentEnum.CenterBottom;this.rules.CompactMode&&(J=TextAlignmentEnum.LeftBottom);const ie=this.calculateLabel(Y,q,K.label,F.getFontstyleOfFirstEntry(),K.Expression.Placement,this.rules.UnknownTextHeight,J);if(K.Expression instanceof InstantaneousTempoExpression){for(const se of Y.AbstractExpressions)se instanceof GraphicalInstantaneousTempoExpression&&(se.SourceExpression.Label,K.Expression.Label);new GraphicalInstantaneousTempoExpression(K.Expression,ie).ParentStaffLine||log$2.warn("Adding staffline didn't work"),K.Expression.Enum===TempoEnum.metronomeMark&&(metronomeMarks[D]=K.Expression)}else K.Expression instanceof ContinuousTempoExpression;if(G===R.TempoExpressions.length-1)for(const ne of Object.values(metronomeMarks))this.createMetronomeMark(ne,D)}}}createMetronomeMark(R,F){throw new Error(this.abstractNotImplementedErrorMessage)}graphicalMeasureCreatedCalculations(R){}clearSystemsAndMeasures(){for(let R=0,F=this.graphicalMusicSheet.MusicPages.length;R-1&&J.PositionAndShape.ChildElements.splice(ie,1),J.FirstInstructionStaffEntry=void 0,J.beginInstructionsWidth=0}if(J.LastInstructionStaffEntry){const ie=J.PositionAndShape.ChildElements.indexOf(J.LastInstructionStaffEntry.PositionAndShape);ie>-1&&J.PositionAndShape.ChildElements.splice(ie,1),J.LastInstructionStaffEntry=void 0,J.endInstructionsWidth=0}}Q.Measures=[],Q.PositionAndShape.ChildElements=[]}W.StaffLines.length=0,W.PositionAndShape.ChildElements=[]}D.MusicSystems=[],D.PositionAndShape.ChildElements=[]}this.graphicalMusicSheet.MusicPages=[]}handleVoiceEntry(R,F,D,G,U,W,q,Y,Q,Z=void 0,K=void 0){R.StemDirectionXml!==StemDirectionType.Undefined&&this.rules.SetWantedStemDirectionByXml&&R.StemDirectionXml!==void 0?R.WantedStemDirection=R.StemDirectionXml:this.calculateStemDirectionFromVoices(R);const J=F.findOrCreateGraphicalVoiceEntry(R);J.octaveShiftValue=Y;const ie=F.tabStaffEntry;let ne;ie&&(ne=ie.findOrCreateGraphicalVoiceEntry(R));for(let se=0,re=R.Notes.length;se-1)continue;let le;if(R.IsGrace?le=MusicSheetCalculator.symbolFactory.createGraceNote(ae,J,U,this.rules,Y):(le=MusicSheetCalculator.symbolFactory.createNote(ae,J,U,Y,this.rules,void 0),MusicSheetCalculator.stafflineNoteCalculator.trackNote(le)),ae.Pitch&&this.checkNoteForAccidental(le,D,U,Y),this.resetYPositionForLeadSheet(le.PositionAndShape),F.addGraphicalNoteToListAtCorrectYPosition(J,le),le.PositionAndShape.calculateBoundingBox(),this.leadSheet||(ae.NoteBeam!==void 0&&ae.PrintObject&&this.handleBeam(le,ae.NoteBeam,q),ae.NoteTuplet!==void 0&&ae.PrintObject&&this.handleTuplet(le,ae.NoteTuplet,W)),ne){const ce=MusicSheetCalculator.symbolFactory.createNote(ae,ne,U,Y,this.rules,void 0);ie.addGraphicalNoteToListAtCorrectYPosition(ne,ce),ce.PositionAndShape.calculateBoundingBox(),this.leadSheet||ae.NoteTuplet&&this.handleTuplet(ce,ae.NoteTuplet,W)}}return R.Articulations.length>0&&this.handleVoiceEntryArticulations(R.Articulations,R,F),R.TechnicalInstructions.length>0&&this.handleVoiceEntryTechnicalInstructions(R.TechnicalInstructions,R,F),R.LyricsEntries.size()>0&&this.handleVoiceEntryLyrics(R,F,G),R.OrnamentContainer&&this.handleVoiceEntryOrnaments(R.OrnamentContainer,R,F),Y}resetYPositionForLeadSheet(R){this.leadSheet&&(R.RelativePosition=new PointF2D(R.RelativePosition.x,0))}layoutVoiceEntries(R,F){if(R.PositionAndShape.RelativePosition=new PointF2D(0,0),!this.leadSheet)for(const D of R.graphicalVoiceEntries){const G=D.notes;if(G.length===0)continue;const U=G[0].sourceNote.ParentVoiceEntry,W=G[0].sourceNote.Pitch!==void 0;this.layoutVoiceEntry(U,G,R,W)}}maxInstrNameLabelLength(){var F;let R=0;for(const D of this.graphicalMusicSheet.ParentMusicSheet.Instruments)if(((F=D.NameLabel)==null?void 0:F.print)&&D.Voices.length>0&&D.Voices[0].Visible){let G=D.NameLabel;this.rules.RenderPartNames||(G=new Label("",G.textAlignment,G.font));const U=new GraphicalLabel(G,this.rules.InstrumentLabelTextHeight,TextAlignmentEnum.LeftCenter,this.rules);U.setLabelPositionAndShapeBorders(),R=Math.max(R,U.PositionAndShape.MarginSize.width)}return this.rules.RenderPartNames?R:0}calculateSheetLabelBoundingBoxes(){var G;const R=this.graphicalMusicSheet.ParentMusicSheet,F=this.rules.DefaultColorTitle;if(R.Title!==void 0&&this.rules.RenderTitle){const U=new GraphicalLabel(R.Title,this.rules.SheetTitleHeight,TextAlignmentEnum.CenterBottom,this.rules);U.Label.IsCreditLabel=!0,U.Label.colorDefault=F,this.graphicalMusicSheet.Title=U,U.setLabelPositionAndShapeBorders()}else this.rules.RenderTitle||(this.graphicalMusicSheet.Title=void 0);if(R.Subtitle!==void 0&&this.rules.RenderSubtitle){const U=new GraphicalLabel(R.Subtitle,this.rules.SheetSubtitleHeight,TextAlignmentEnum.CenterCenter,this.rules);U.Label.IsCreditLabel=!0,U.Label.colorDefault=F,this.graphicalMusicSheet.Subtitle=U,U.setLabelPositionAndShapeBorders()}else this.rules.RenderSubtitle||(this.graphicalMusicSheet.Subtitle=void 0);if(R.Composer!==void 0&&this.rules.RenderComposer){const U=new GraphicalLabel(R.Composer,this.rules.SheetComposerHeight,TextAlignmentEnum.RightCenter,this.rules);U.Label.IsCreditLabel=!0,U.Label.colorDefault=F,this.graphicalMusicSheet.Composer=U,U.setLabelPositionAndShapeBorders()}else this.rules.RenderComposer||(this.graphicalMusicSheet.Composer=void 0);if(R.Lyricist!==void 0&&this.rules.RenderLyricist){const U=new GraphicalLabel(R.Lyricist,this.rules.SheetAuthorHeight,TextAlignmentEnum.LeftCenter,this.rules);U.Label.IsCreditLabel=!0,U.Label.colorDefault=F,this.graphicalMusicSheet.Lyricist=U,U.setLabelPositionAndShapeBorders()}else this.rules.RenderLyricist||(this.graphicalMusicSheet.Lyricist=void 0);const D=(G=this.graphicalMusicSheet.musicSheet.sourceMeasures)==null?void 0:G[0];if(D&&D.FirstInstructionsStaffEntries.length>0){const U=D.FirstInstructionsStaffEntries[0];let W,q;for(let Y=0,Q=U.Instructions.length;Y0&&Z.graphicalVoiceEntries[0].notes.length===1){const K=Z.graphicalVoiceEntries[0].notes[0];!K.sourceNote.Pitch&&new Fraction$1(1,2).lt(K.sourceNote.Length)&&this.layoutMeasureWithWholeRest(K,Z,Q)}}}}}}optimizeRestNotePlacement(R,F){if(R.graphicalVoiceEntries.length===0)return;const D=R.graphicalVoiceEntries[0].notes;if(D.length===0)return;const G=D[0],U=G.sourceNote.isRest();if(R.graphicalVoiceEntries.length===2){let W=!1;const q=R.graphicalVoiceEntries[1].notes;q.length>0&&(W=q[0].sourceNote.isRest()),U&&W?this.calculateTwoRestNotesPlacementWithCollisionDetection(R):(U||W)&&this.calculateRestNotePlacementWithCollisionDetectionFromGraphicalNote(R)}else if(U&&R!==F.staffEntries[0]&&R!==F.staffEntries[F.staffEntries.length-1]){const W=F.staffEntries.indexOf(R),q=F.staffEntries[W-1],Y=F.staffEntries[W+1];if(q.graphicalVoiceEntries.length===1){const Q=q.graphicalVoiceEntries[0].notes[0];if(Q.sourceNote.NoteBeam!==void 0&&Y.graphicalVoiceEntries.length===1){const Z=Y.graphicalVoiceEntries[0].notes[0];Z.sourceNote.NoteBeam!==void 0&&Q.sourceNote.NoteBeam===Z.sourceNote.NoteBeam&&(this.calculateRestNotePlacementWithinGraphicalBeam(R,G,Q,Y,Z),R.PositionAndShape.calculateBoundingBox())}}}}getRelativePositionInStaffLineFromTimestamp(R,F,D,G,U=0){let W=new PointF2D,q,Y;const Q=this.graphicalMusicSheet.VerticalGraphicalStaffEntryContainers.length,Z=this.graphicalMusicSheet.GetInterpolatedIndexInVerticalContainers(R),K=Math.min(Math.floor(Z),Q-1),J=Math.min(Math.ceil(Z),Q-1);if(K<0||F<0)return W;if(q=this.getFirstLeftNotNullStaffEntryFromContainer(K,F,G),Y=this.getFirstRightNotNullStaffEntryFromContainer(J,F,G),q&&Y){let ie=q.parentMeasure.PositionAndShape.RelativePosition.x;U>0&&(ie=U);let ne=q.PositionAndShape.RelativePosition.x+ie,se=Y.PositionAndShape.RelativePosition.x+Y.parentMeasure.PositionAndShape.RelativePosition.x;U>0&&(se=Y.PositionAndShape.RelativePosition.x+ie);let re=0;if(q!==Y){const ae=q.getAbsoluteTimestamp(),le=Y.getAbsoluteTimestamp();re=Fraction$1.minus(R,ae).RealValue/Fraction$1.minus(le,ae).RealValue}q.parentMeasure.ParentStaffLine!==Y.parentMeasure.ParentStaffLine&&(q.parentMeasure.ParentStaffLine===D?se=D.PositionAndShape.Size.width:ne=D.PositionAndShape.RelativePosition.x),W=new PointF2D(ne+(se-ne)*re,0)}return W}getRelativeXPositionFromTimestamp(R){const F=this.graphicalMusicSheet.VerticalGraphicalStaffEntryContainers.length,D=this.graphicalMusicSheet.GetInterpolatedIndexInVerticalContainers(R),G=Math.max(0,Math.min(Math.round(D),F-1)),U=this.graphicalMusicSheet.VerticalGraphicalStaffEntryContainers[G].getFirstNonNullStaffEntry();return U.PositionAndShape.RelativePosition.x+U.parentMeasure.PositionAndShape.RelativePosition.x}calculatePageLabels(R){var W;this.rules.RenderSingleHorizontalStaffline&&(R.PositionAndShape.BorderRight=R.PositionAndShape.Size.width,R.PositionAndShape.calculateBoundingBox(),this.graphicalMusicSheet.ParentMusicSheet.pageWidth=R.PositionAndShape.Size.width);let F=10;if(R.MusicSystems.length>0){const q=R.MusicSystems[0];F=q.PositionAndShape.RelativePosition.y+q.PositionAndShape.BorderTop}if(this.graphicalMusicSheet.Title){const q=this.graphicalMusicSheet.Title;q.PositionAndShape.Parent=R.PositionAndShape;const Y=new PointF2D;Y.x=this.graphicalMusicSheet.ParentMusicSheet.pageWidth/2,Y.y=this.rules.TitleTopDistance+this.rules.SheetTitleHeight,q.PositionAndShape.RelativePosition=Y,R.Labels.push(q)}if(this.graphicalMusicSheet.Subtitle){const q=this.graphicalMusicSheet.Subtitle;q.PositionAndShape.Parent=R.PositionAndShape;const Y=new PointF2D;Y.x=this.graphicalMusicSheet.ParentMusicSheet.pageWidth/2,Y.y=this.rules.TitleTopDistance+this.rules.SheetTitleHeight+this.rules.SheetMinimumDistanceBetweenTitleAndSubtitle,q.PositionAndShape.RelativePosition=Y,R.Labels.push(q)}const D=this.graphicalMusicSheet.Composer;let G;if(D){D.PositionAndShape.Parent=R.PositionAndShape,D.setLabelPositionAndShapeBorders();const q=new PointF2D;q.x=this.graphicalMusicSheet.ParentMusicSheet.pageWidth-this.rules.PageRightMargin,q.y=F,q.y-=this.rules.SystemComposerDistance;const Y=(W=D.TextLines)==null?void 0:W.length;Y>1&&(q.y-=D.PositionAndShape.BorderBottom*(Y-1)/Y),G=q.y,D.PositionAndShape.RelativePosition=q,R.Labels.push(D)}const U=this.graphicalMusicSheet.Lyricist;if(U){U.PositionAndShape.Parent=R.PositionAndShape,U.setLabelPositionAndShapeBorders();const q=new PointF2D;q.x=this.rules.PageLeftMargin,q.y=F,q.y+=U.PositionAndShape.BorderBottom,q.y=Math.min(q.y,G!=null?G:Number.MAX_SAFE_INTEGER),U.PositionAndShape.RelativePosition=q,R.Labels.push(U)}}createGraphicalTies(){for(let R=0;R=0&&this.staffEntriesWithGraphicalTies.push(U)}U=q}}setTieDirections(R){if(!R)return;const F=R.ties;if(F.length>1){let D;for(const G of F){const U=G.Notes[0];(!D||U.Pitch.getHalfTone()>D.Pitch.getHalfTone())&&(D=U)}for(const G of F)G.TieDirection===PlacementEnum.NotYetDefined&&(G.Notes[0]===D?G.TieDirection=PlacementEnum.Above:G.TieDirection=PlacementEnum.Below)}}createAccidentalCalculators(){const R=[],F=this.graphicalMusicSheet.ParentMusicSheet.getFirstSourceMeasure();if(F)for(let D=0;D1)return;K=MusicSheetCalculator.symbolFactory.createGraphicalMeasure(R,Z)}if(K.hasError=R.getErrorInMeasure(Y),R.FirstInstructionsStaffEntries[Y])for(let ce=0,he=R.FirstInstructionsStaffEntries[Y].Instructions.length;ce0){const ge=he.Instructions[0];MusicSheetCalculator.symbolFactory.createInStaffClef(de,ge)}this.rules.RenderChordSymbols&&((le=he.ChordContainers)==null?void 0:le.length)>0&&(he.ParentStaff.ParentInstrument.HasChordSymbols=!0,MusicSheetCalculator.symbolFactory.createChordSymbols(he,de,G.ActiveKeyInstruction,this.graphicalMusicSheet.ParentMusicSheet.Transpose))}}if(G.doCalculationsAtEndOfMeasure(),R.LastInstructionsStaffEntries[Y]){const ce=R.LastInstructionsStaffEntries[Y];for(let he=0,de=ce.Instructions.length;he=1&&K.staffEntries.length===0){const ce=new SourceStaffEntry(new VerticalSourceStaffEntryContainer(K.parentSourceMeasure,K.parentSourceMeasure.AbsoluteTimestamp,K.parentSourceMeasure.CompleteNumberOfStaves),Z),he=new VoiceEntry(new Fraction$1(0,1),Z.Voices[0],ce),de=new Note$1(he,ce,Fraction$1.createFromFraction(R.Duration),void 0,R);de.PrintObject=this.rules.FillEmptyMeasuresWithWholeRest===FillEmptyMeasuresWithWholeRests.YesVisible,he.addNote(de);const me=MusicSheetCalculator.symbolFactory.createStaffEntry(ce,K);K.addGraphicalStaffEntry(me),me.relInMeasureTimestamp=he.Timestamp;const fe=MusicSheetCalculator.symbolFactory.createVoiceEntry(he,me);me.graphicalVoiceEntries.push(fe);const ge=MusicSheetCalculator.symbolFactory.createNote(de,fe,new ClefInstruction,OctaveEnum.NONE,void 0);MusicSheetCalculator.stafflineNoteCalculator.trackNote(ge),fe.notes.push(ge)}K.hasOnlyRests=!0;for(const ce of K.staffEntries)if(K.hasOnlyRests=ce.hasOnlyRests(),!K.hasOnlyRests)break;return K}checkNoteForAccidental(R,F,D,G){let U=R.sourceNote.Pitch;const W=R.parentVoiceEntry.parentStaffEntry.parentMeasure.getTransposedHalftones();W!==0&&R.sourceNote.ParentStaffEntry.ParentStaff.ParentInstrument.MidiInstrumentId!==MidiInstrument.Percussion&&(U=R.Transpose(F.ActiveKeyInstruction,D,W,G),R.sourceNote.TransposedPitch=U),R.sourceNote.halfTone=U.getHalfTone(),F.checkAccidental(R,U)}handleStaffEntries(R){for(let F=0,D=this.graphicalMusicSheet.MeasureList.length;F0&&Y.graphicalVoiceEntries[0].notes.length>0&&(this.layoutVoiceEntries(Y,U),this.layoutStaffEntry(Y));this.graphicalMeasureCreatedCalculations(q)}}}}calculateSkyBottomLines(){for(const R of this.musicSystems)for(const F of R.StaffLines)F.SkyBottomLineCalculator.calculateLines()}calculateExpressionAlignements(){}calculateStaffEntryArticulationMarks(){for(let R=0,F=this.musicSystems.length;R0&&this.layoutArticulationMarks(se.Articulations,se,J)}}}}}}calculateOrnaments(){for(let R=0,F=this.musicSystems.length;R0&&G.LyricVersesNumbers.sort()}for(let F=0,D=this.musicSystems.length;F=0&&(G=F.GraphicalLyricsEntries[D+1]),!G)return;const U=R.StaffEntryParent.parentMeasure.ParentStaffLine,W=G.StaffEntryParent.parentMeasure.ParentStaffLine,q=R.StaffEntryParent,Y=G.StaffEntryParent;if(R.StaffEntryParent.parentMeasure.ParentStaffLine===G.StaffEntryParent.parentMeasure.ParentStaffLine){const Q=q.parentMeasure.PositionAndShape.RelativePosition.x+q.PositionAndShape.RelativePosition.x+R.GraphicalLabel.PositionAndShape.RelativePosition.x+R.GraphicalLabel.PositionAndShape.BorderMarginRight,Z=Y.parentMeasure.PositionAndShape.RelativePosition.x+Y.PositionAndShape.RelativePosition.x+R.GraphicalLabel.PositionAndShape.RelativePosition.x+G.GraphicalLabel.PositionAndShape.BorderMarginLeft,K=R.GraphicalLabel.PositionAndShape.RelativePosition.y;let J=1;Z-Q>this.rules.MinimumDistanceBetweenDashes*3&&(J=Math.floor((Z-Q)/this.rules.MinimumDistanceBetweenDashes)-1),J===1?this.calculateSingleDashForLyricWord(U,Q,Z,K):this.calculateDashes(U,Q,Z,K)}else{const Q=q.parentMeasure.PositionAndShape.RelativePosition.x+q.PositionAndShape.RelativePosition.x+R.GraphicalLabel.PositionAndShape.BorderMarginRight,Z=U.Measures[U.Measures.length-1],K=Z.PositionAndShape.RelativePosition.x+Z.PositionAndShape.Size.width;let J=R.GraphicalLabel.PositionAndShape.RelativePosition.y;if(this.calculateDashes(U,Q,K,J),W&&W.Measures[0]&&Y.parentMeasure.ParentStaffLine&&!(Y===Y.parentMeasure.staffEntries[0]&&Y.parentMeasure===Y.parentMeasure.ParentStaffLine.Measures[0])){const ie=W.Measures[0].staffEntries[0].PositionAndShape.RelativePosition.x,ne=Y.parentMeasure.PositionAndShape.RelativePosition.x+Y.PositionAndShape.RelativePosition.x+G.GraphicalLabel.PositionAndShape.BorderMarginLeft;J=G.GraphicalLabel.PositionAndShape.RelativePosition.y,this.calculateDashes(W,ie,ne,J)}}}calculateDashes(R,F,D,G){let U=D-F;if(UF;)U=this.calculateRightAndLeftDashesForLyricWord(R,F,D,G),F+=q,D-=q,Y++;U>q*2&&this.calculateSingleDashForLyricWord(R,F,D,G)}}calculateSingleDashForLyricWord(R,F,D,G){const U=new Label("-"),W=new GraphicalLabel(U,this.rules.LyricsHeight,TextAlignmentEnum.CenterBottom,this.rules);W.setLabelPositionAndShapeBorders(),R.LyricsDashes.push(W),this.staffLinesWithLyricWords.indexOf(R)===-1&&this.staffLinesWithLyricWords.push(R),W.PositionAndShape.Parent=R.PositionAndShape;const q=new PointF2D(F+(D-F)/2,G);W.PositionAndShape.RelativePosition=q}calculateLyricExtend(R){let F=R.GraphicalLabel.PositionAndShape.RelativePosition.y;const D=R.StaffEntryParent,G=D.parentMeasure.ParentStaffLine;let U,W;const q=D.parentMeasure.ParentStaff.idInMusicSheet;for(let Y=D.parentVerticalContainer.Index+1;Y0)break;U=Q,W=U.parentMeasure.ParentStaffLine,W||(W=D.parentMeasure.ParentStaffLine)}}if(!(!U||!W))if(G===W&&U.parentMeasure.ParentStaffLine){const Y=D.parentMeasure.PositionAndShape.RelativePosition.x+D.PositionAndShape.RelativePosition.x+R.GraphicalLabel.PositionAndShape.BorderMarginRight,Q=U.parentMeasure.PositionAndShape.RelativePosition.x+U.PositionAndShape.RelativePosition.x+U.PositionAndShape.BorderMarginRight;F-=R.GraphicalLabel.PositionAndShape.Size.height/4,this.calculateSingleLyricWordWithUnderscore(G,Y,Q,F)}else{const Y=G.Measures[G.Measures.length-1].PositionAndShape,Q=D.parentMeasure.PositionAndShape.RelativePosition.x+D.PositionAndShape.RelativePosition.x+R.GraphicalLabel.PositionAndShape.BorderMarginRight,Z=Y.RelativePosition.x+Y.Size.width;if(F-=R.GraphicalLabel.PositionAndShape.Size.height/4,this.calculateSingleLyricWordWithUnderscore(G,Q,Z,F),!U)return;if(U.parentMeasure.ParentStaffLine&&U.parentMeasure.staffEntries&&!(U===U.parentMeasure.staffEntries[0]&&U.parentMeasure===U.parentMeasure.ParentStaffLine.Measures[0])){const K=W.Measures[0].staffEntries[0].PositionAndShape.RelativePosition.x,J=U.parentMeasure.PositionAndShape.RelativePosition.x+U.PositionAndShape.RelativePosition.x+U.PositionAndShape.BorderMarginRight;this.calculateSingleLyricWordWithUnderscore(W,K,J,F)}}}calculateSingleLyricWordWithUnderscore(R,F,D,G){const U=new PointF2D(F,G),W=new PointF2D(D,G),q=new GraphicalLine(U,W,this.rules.LyricUnderscoreLineWidth);R.LyricLines.push(q),this.staffLinesWithLyricWords.indexOf(R)===-1&&this.staffLinesWithLyricWords.push(R)}calculateRightAndLeftDashesForLyricWord(R,F,D,G){const U=new Label("-"),W=new GraphicalLabel(U,this.rules.LyricsHeight,TextAlignmentEnum.CenterBottom,this.rules);W.setLabelPositionAndShapeBorders(),R.LyricsDashes.push(W),this.staffLinesWithLyricWords.indexOf(R)===-1&&this.staffLinesWithLyricWords.push(R),W.PositionAndShape.Parent=R.PositionAndShape;const q=new PointF2D(F,G);W.PositionAndShape.RelativePosition=q;const Y=new Label("-"),Q=new GraphicalLabel(Y,this.rules.LyricsHeight,TextAlignmentEnum.CenterBottom,this.rules);Q.setLabelPositionAndShapeBorders(),R.LyricsDashes.push(Q),Q.PositionAndShape.Parent=R.PositionAndShape;const Z=new PointF2D(D,G);return Q.PositionAndShape.RelativePosition=Z,Q.PositionAndShape.RelativePosition.x-W.PositionAndShape.RelativePosition.x}calculateDynamicExpressions(){const R=Math.min(this.graphicalMusicSheet.ParentMusicSheet.SourceMeasures.length-1,this.rules.MaxMeasureToDrawIndex),F=Math.min(this.rules.MinMeasureToDrawIndex,this.graphicalMusicSheet.ParentMusicSheet.SourceMeasures.length);for(let D=F;D<=R;D++){const G=this.graphicalMusicSheet.ParentMusicSheet.SourceMeasures[D];this.dynamicExpressionMap.clear();for(let U=0;U=0;W--)if((U=this.graphicalMusicSheet.VerticalGraphicalStaffEntryContainers[W])!=null&&U.StaffEntries[F])return this.graphicalMusicSheet.VerticalGraphicalStaffEntryContainers[W].StaffEntries[F]}getFirstRightNotNullStaffEntryFromContainer(R,F,D){var G,U;if((G=this.graphicalMusicSheet.VerticalGraphicalStaffEntryContainers[R])!=null&&G.StaffEntries[F])return this.graphicalMusicSheet.VerticalGraphicalStaffEntryContainers[R].StaffEntries[F];for(let W=R+1;W0||F.StaffLinkedExpressions[D][G].UnknownList.length>0)&&this.calculateMoodAndUnknownExpression(F.StaffLinkedExpressions[D][G],R,D)}}calculateStemDirectionFromVoices(R){if(R.ParentSourceStaffEntry.Link!==void 0)if(R===R.ParentSourceStaffEntry.VoiceEntries[0]){R.WantedStemDirection=StemDirectionType.Up;return}else{R.WantedStemDirection=StemDirectionType.Down;return}else R.ParentVoice instanceof LinkedVoice?R.WantedStemDirection=StemDirectionType.Down:R.ParentSourceStaffEntry.VoiceEntries.length>1&&(R.WantedStemDirection=StemDirectionType.Up)}setBeamNotesWantedStemDirections(R){if(!(R.Notes.length>0))return;const F=R.Notes[0].NoteBeam;if(F){for(const D of F.Notes)if(D.ParentVoiceEntry.WantedStemDirection!==StemDirectionType.Undefined&&D.ParentVoiceEntry.ParentSourceStaffEntry.ParentStaff.Id===R.ParentSourceStaffEntry.ParentStaff.Id){R.WantedStemDirection=D.ParentVoiceEntry.WantedStemDirection;break}}}}class ChordSymbolContainer{constructor(R,F,D,G,U){this.rootPitch=R,this.chordKind=F,this.bassPitch=D,this.degrees=G,this.rules=U}get RootPitch(){return this.rootPitch}get ChordKind(){return this.chordKind}get BassPitch(){return this.bassPitch}get ChordDegrees(){return this.degrees}static calculateChordText(R,F,D){let G=R.RootPitch;if(MusicSheetCalculator.transposeCalculator&&(G=MusicSheetCalculator.transposeCalculator.transposePitch(R.RootPitch,D,F)),R.ChordKind===ChordSymbolEnum.none)return R.getTextFromChordKindEnum(R.ChordKind);let U=Pitch.getNoteEnumString(G.FundamentalNote);G.Accidental!==AccidentalEnum.NONE&&(U+=this.getTextForAccidental(G.Accidental));const W={adds:[],alts:[],subs:[]};for(const Z of R.ChordDegrees)if(Z){let K="";switch(Z.alteration!==AccidentalEnum.NONE&&(K+=this.getTextForAccidental(Z.alteration)),K+=Z.value,Z.text){case ChordDegreeText.add:W.adds.push(K);break;case ChordDegreeText.alter:W.alts.push(K);break;case ChordDegreeText.subtract:W.subs.push(K);break}}let q=R.getTextFromChordKindEnum(R.ChordKind);const Y=["adds","alts","subs"],Q=R.rules.CustomChords;for(const Z of Q){if(Z.chordKind!==R.chordKind)continue;let K=!0;for(const J of Y){for(const ie of Z.degrees[J]||[])if(W[J].indexOf(ie)<0){K=!1;break}if(!K)break}if(K){for(const J of Y)for(const ie of Z.degrees[J]||[])W[J].splice(W[J].indexOf(ie),1);q=Z.alternateName}}if(U+=q,W.adds.length>0&&(U+="("+W.adds.join(",")+")"),W.alts.length>0&&(U+="(alt "+W.alts.join(",")+")"),W.subs.length>0&&(U+="(omit "+W.subs.join(",")+")"),R.BassPitch){let Z=R.BassPitch;MusicSheetCalculator.transposeCalculator&&(Z=MusicSheetCalculator.transposeCalculator.transposePitch(R.BassPitch,D,F)),U+="/",U+=Pitch.getNoteEnumString(Z.FundamentalNote),U+=this.getTextForAccidental(Z.Accidental)}return U}static getTextForAccidental(R){let F="";switch(R){case AccidentalEnum.DOUBLEFLAT:F+="bb";break;case AccidentalEnum.FLAT:F+="b";break;case AccidentalEnum.SHARP:F+="#";break;case AccidentalEnum.DOUBLESHARP:F+="x";break}return F}getTextFromChordKindEnum(R){var F;return(F=this.rules.ChordSymbolLabelTexts.getValue(R))!=null?F:""}}class Degree{constructor(R,F,D){this.value=R,this.alteration=F,this.text=D}}class CustomChord{constructor(R,F,D){this.alternateName=R,this.chordKind=F,this.degrees=D}static createCustomChord(R,F,D){return new CustomChord(R,F,D)}static renameCustomChord(R,F,D){for(const G of D)G.alternateName===R&&(G.alternateName=F)}}var ChordDegreeText=(B=>(B[B.add=0]="add",B[B.alter=1]="alter",B[B.subtract=2]="subtract",B))(ChordDegreeText||{}),ChordSymbolEnum=(B=>(B[B.major=0]="major",B[B.minor=1]="minor",B[B.augmented=2]="augmented",B[B.diminished=3]="diminished",B[B.dominant=4]="dominant",B[B.majorseventh=5]="majorseventh",B[B.minorseventh=6]="minorseventh",B[B.diminishedseventh=7]="diminishedseventh",B[B.augmentedseventh=8]="augmentedseventh",B[B.halfdiminished=9]="halfdiminished",B[B.majorminor=10]="majorminor",B[B.majorsixth=11]="majorsixth",B[B.minorsixth=12]="minorsixth",B[B.dominantninth=13]="dominantninth",B[B.majorninth=14]="majorninth",B[B.minorninth=15]="minorninth",B[B.dominant11th=16]="dominant11th",B[B.major11th=17]="major11th",B[B.minor11th=18]="minor11th",B[B.dominant13th=19]="dominant13th",B[B.major13th=20]="major13th",B[B.minor13th=21]="minor13th",B[B.suspendedsecond=22]="suspendedsecond",B[B.suspendedfourth=23]="suspendedfourth",B[B.Neapolitan=24]="Neapolitan",B[B.Italian=25]="Italian",B[B.French=26]="French",B[B.German=27]="German",B[B.pedal=28]="pedal",B[B.power=29]="power",B[B.Tristan=30]="Tristan",B[B.none=31]="none",B))(ChordSymbolEnum||{});class GraphicalNote extends GraphicalObject{constructor(R,F,D,G=void 0){super(),this.DrawnAccidental=AccidentalEnum.NONE,this.lineShift=0,this.sourceNote=R,this.parentVoiceEntry=F,this.PositionAndShape=new BoundingBox$1(this,F.PositionAndShape),G?this.graphicalNoteLength=G:this.graphicalNoteLength=R.Length,this.numberOfDots=this.calculateNumberOfNeededDots(this.graphicalNoteLength),this.rules=D,this.rules.addGraphicalNoteToNoteMap(R,this)}Transpose(R,F,D,G){let U=this.sourceNote.Pitch;return MusicSheetCalculator.transposeCalculator&&(U=MusicSheetCalculator.transposeCalculator.transposePitch(this.sourceNote.Pitch,R,D)),U}calculateNumberOfNeededDots(R){return!this.sourceNote||!this.sourceNote.NoteTuplet?R.calculateNumberOfNeededDots():0}get ParentMusicPage(){return this.parentVoiceEntry.parentStaffEntry.parentMeasure.ParentMusicSystem.Parent}static FromNote(R,F){return F.NoteToGraphicalNoteMap.getValue(R.NoteToGraphicalNoteObjectId)}}const _EngravingRules=class{constructor(){this.DYSlursStartingAtSameStaffEntryYOffset=0,this.DYMinNoteWidth=0,this.DYWorkId=0,this.DYWorkSpecial=!1,this.DYContainerId="osmdCanvasPage",this.DYSVGContainerId="osmdSvgPage",this.DYMusicScoreType="staff",this.NoteDistances=[1,1,1.3,1.6,2,2.5,3,4],this.NoteDistancesScalingFactors=[1,2,4,8,16,32,64,128],this.DurationDistanceDict={},this.DurationScalingDistanceDict={},this.NoteToGraphicalNoteMapObjectCount=0,this.PlayAlreadyStartedNotesFromCursorPosition=!1,this.PlaybackSkipNotesSafetyInterval=.02,this.UseDefaultVoiceInteractionListener=!0,this.loadDefaultValues()}loadDefaultValues(){this.SamplingUnit=_EngravingRules.unit*3,this.MpatMode=!0,this.SheetTitleHeight=4,this.SheetSubtitleHeight=2,this.SheetMinimumDistanceBetweenTitleAndSubtitle=1,this.SheetComposerHeight=2,this.SheetAuthorHeight=2,this.CompactMode=!1,this.PagePlacementEnum=PagePlacementEnum.Down,this.PageHeight=100001,this.PageTopMargin=5,this.PageTopMarginNarrow=0,this.PageBottomMargin=5,this.PageLeftMargin=5,this.PageRightMargin=5,this.TitleTopDistance=5,this.TitleBottomDistance=1,this.StaffDistance=7,this.BetweenStaffDistance=5,this.MinimumStaffLineDistance=4,this.MinSkyBottomDistBetweenStaves=1,this.StaffHeight=4,this.TabStaffInterlineHeight=1.1111,this.BetweenStaffLinesDistance=_EngravingRules.unit,this.SystemLeftMargin=0,this.SystemRightMargin=0,this.SystemLabelsRightMargin=2,this.SystemComposerDistance=2,this.InstrumentLabelTextHeight=2,this.MinimumDistanceBetweenSystems=7,this.MinSkyBottomDistBetweenSystems=5,this.LastSystemMaxScalingFactor=1.4,this.AutoBeamNotes=!1,this.AutoBeamOptions={beam_middle_rests_only:!1,beam_rests:!1,maintain_stem_directions:!1},this.AutoBeamTabs=!1,this.BeamWidth=_EngravingRules.unit/2,this.BeamSpaceWidth=_EngravingRules.unit/3,this.BeamForwardLength=1.25*_EngravingRules.unit,this.FlatBeams=!1,this.FlatBeamOffset=20,this.FlatBeamOffsetPerBeam=10,this.ClefLeftMargin=.5,this.ClefRightMargin=.75,this.PercussionOneLineCutoff=3,this.PercussionForceVoicesOneLineCutoff=1,this.PercussionUseXMLDisplayStep=!0,this.PercussionXMLDisplayStepNoteValueShift=0,this.PercussionOneLineXMLDisplayStepOctaveOffset=0,this.BetweenKeySymbolsDistance=.2,this.KeyRightMargin=.75,this.RhythmRightMargin=1.25,this.ShowRhythmAgainAfterPartEndOrFinalBarline=!0,this.NewPartAndSystemAfterFinalBarline=!1,this.InStaffClefScalingFactor=.8,this.DistanceBetweenNaturalAndSymbolWhenCancelling=.4,this.NoteHelperLinesOffset=.25,this.MeasureLeftMargin=.7,this.MeasureRightMargin=0,this.DistanceBetweenLastInstructionAndRepetitionBarline=1,this.ArpeggioDistance=.6,this.StaccatoShorteningFactor=2,this.IdealStemLength=3,this.StemNoteHeadBorderYOffset=.2,this.StemMargin=.2,this.StemMinLength=2.5,this.StemMaxLength=4.5,this.BeamSlopeMaxAngle=10,this.StemMinAllowedDistanceBetweenNoteHeadAndBeamLine=1,this.SetWantedStemDirectionByXml=!0,this.GraceNoteScalingFactor=.6,this.GraceNoteXOffset=.2,this.WedgeOpeningLength=1.2,this.WedgeMeasureEndOpeningLength=.75,this.WedgeMeasureBeginOpeningLength=.75,this.WedgePlacementAboveY=-1.5,this.WedgePlacementBelowY=1.5,this.WedgeHorizontalMargin=.6,this.WedgeVerticalMargin=.5,this.DistanceOffsetBetweenTwoHorizontallyCrossedWedges=.3,this.WedgeMinLength=2,this.WedgeEndDistanceBetweenTimestampsFactor=1.75,this.DistanceBetweenAdjacentDynamics=.75,this.TempoChangeMeasureValidity=4,this.TempoContinousFactor=.7,this.StaccatoScalingFactor=.8,this.BetweenDotsDistance=.8,this.OrnamentAccidentalScalingFactor=.65,this.ChordSymbolTextHeight=2,this.ChordSymbolTextAlignment=TextAlignmentEnum.LeftBottom,this.ChordSymbolRelativeXOffset=-1,this.ChordSymbolXSpacing=1,this.ChordOverlapAllowedIntoNextMeasure=0,this.ChordSymbolYOffset=.1,this.ChordSymbolYPadding=0,this.ChordSymbolYAlignment=!0,this.ChordSymbolYAlignmentScope="staffline",this.ChordSymbolLabelTexts=new Dictionary,this.resetChordSymbolLabelTexts(this.ChordSymbolLabelTexts),this.CustomChords=[],this.resetChordNames(),this.RepetitionSymbolsYOffset=0,this.RehearsalMarkXOffsetDefault=10,this.RehearsalMarkXOffset=0,this.RehearsalMarkXOffsetSystemStartMeasure=-20,this.RehearsalMarkYOffsetDefault=-15,this.RehearsalMarkYOffset=0,this.RehearsalMarkFontSize=10,this.MeasureNumberLabelHeight=1.5*_EngravingRules.unit,this.MeasureNumberLabelOffset=2,this.MeasureNumberLabelXOffset=-.5,this.TupletsRatioed=!1,this.TupletsBracketed=!1,this.TripletsBracketed=!1,this.TupletNumberLabelHeight=1.5*_EngravingRules.unit,this.TupletNumberYOffset=.5,this.LabelMarginBorderFactor=.1,this.TupletVerticalLineLength=.5,this.TupletNumbersInTabs=!1,this.SlurPlacementFromXML=!0,this.BezierCurveStepSize=1e3,this.calculateCurveParametersArrays(),this.TieGhostObjectWidth=.75,this.TieYPositionOffsetFactor=.3,this.MinimumNeededXspaceForTieGhostObject=1,this.TieHeightMinimum=.28,this.TieHeightMaximum=1.2,this.TieHeightInterpolationK=.0288,this.TieHeightInterpolationD=.136,this.SlurNoteHeadYOffset=.5,this.SlurStemXOffset=.3,this.SlurSlopeMaxAngle=15,this.SlurTangentMinAngle=30,this.SlurTangentMaxAngle=80,this.SlurHeightFactor=1,this.SlurHeightFlattenLongSlursFactorByWidth=.24,this.SlurHeightFlattenLongSlursFactorByAngle=.36,this.SlurHeightFlattenLongSlursCutoffAngle=47,this.SlurHeightFlattenLongSlursCutoffWidth=16,this.SlursStartingAtSameStaffEntryYOffset=.8,this.SlurMaximumYControlPointDistance=void 0,this.RepetitionEndingLabelHeight=2,this.RepetitionEndingLabelXOffset=.5,this.RepetitionEndingLabelYOffset=.3,this.RepetitionEndingLineYLowerOffset=.5,this.RepetitionEndingLineYUpperOffset=.3,this.VoltaOffset=2.5,this.LyricsAlignmentStandard=TextAlignmentEnum.LeftBottom,this.LyricsHeight=2,this.LyricsYOffsetToStaffHeight=0,this.VerticalBetweenLyricsDistance=.5,this.HorizontalBetweenLyricsDistance=.2,this.BetweenSyllableMaximumDistance=10,this.BetweenSyllableMinimumDistance=.5,this.LyricOverlapAllowedIntoNextMeasure=3.4,this.MinimumDistanceBetweenDashes=10,this.MaximumLyricsElongationFactor=2.5,this.InstantaneousTempoTextHeight=2.3,this.ContinuousDynamicTextHeight=2.3,this.MoodTextHeight=2.3,this.UnknownTextHeight=2,this.ContinuousTempoTextHeight=2.3,this.DynamicExpressionMaxDistance=2,this.DynamicExpressionSpacer=.5,this.VexFlowDefaultNotationFontScale=39,this.VexFlowDefaultTabFontScale=39,this.TremoloStrokeScale=1,this.TremoloYSpacingScale=1,this.StemWidth=.15,this.StaffLineWidth=.1,this.StaffLineColor=void 0,this.LedgerLineWidth=1,this.LedgerLineStrokeStyle=void 0,this.LedgerLineColorDefault="#000000",this.WedgeLineWidth=.12,this.TupletLineWidth=.12,this.LyricUnderscoreLineWidth=.12,this.SystemThinLineWidth=.12,this.SystemBoldLineWidth=_EngravingRules.unit/2,this.SystemRepetitionEndingLineWidth=.12,this.SystemDotWidth=_EngravingRules.unit/2,this.DistanceBetweenVerticalSystemLines=.35,this.DistanceBetweenDotAndLine=.7,this.RepeatEndStartPadding=2,this.OctaveShiftLineWidth=.12,this.OctaveShiftVerticalLineLength=_EngravingRules.unit,this.GraceLineWidth=this.StaffLineWidth*this.GraceNoteScalingFactor,this.MultipleRestMeasureDefaultWidth=4,this.MinimumCrossedBeamDifferenceMargin=1e-4,this.SheetMaximumWidth=32767,this.VoiceSpacingMultiplierVexflow=.85,this.VoiceSpacingAddendVexflow=3,this.PickupMeasureWidthMultiplier=1,this.DisplacedNoteMargin=.1,this.MinNoteDistance=2,this.SubMeasureXSpacingThreshold=35,this.MeasureDynamicsMaxScalingFactor=2.5,this.WholeRestXShiftVexflow=-1.5,this.MetronomeMarksDrawn=!0,this.MetronomeMarkXShift=-6,this.MetronomeMarkYShift=-.5,this.SoftmaxFactorVexFlow=15,this.StaggerSameWholeNotes=!0,this.AlignRests=AlignRestOption.Never,this.RestCollisionYPadding=0,this.FillEmptyMeasuresWithWholeRest=FillEmptyMeasuresWithWholeRests.No,this.ArpeggiosGoAcrossVoices=!1,this.RenderArpeggios=!0,this.RenderSlurs=!0,this.ColoringMode=ColoringModes.XML,this.ColoringEnabled=!0,this.ColorStemsLikeNoteheads=!1,this.ColorBeams=!0,this.ColorFlags=!0,this.applyDefaultColorMusic("#000000"),this.DefaultColorCursor="#33e02f",this.DefaultFontFamily="Times New Roman",this.DefaultFontStyle=FontStyles.Regular,this.DefaultVexFlowNoteFont="gonville",this.MaxMeasureToDrawIndex=Number.MAX_VALUE,this.MinMeasureToDrawIndex=0,this.MaxSystemToDrawNumber=Number.MAX_VALUE,this.MaxPageToDrawNumber=Number.MAX_VALUE,this.RenderComposer=!0,this.RenderTitle=!0,this.RenderSubtitle=!0,this.RenderLyricist=!0,this.RenderPartNames=!0,this.RenderPartAbbreviations=!0,this.RenderFingerings=!0,this.RenderMeasureNumbers=!0,this.RenderMeasureNumbersOnlyAtSystemStart=!1,this.UseXMLMeasureNumbers=!0,this.RenderLyrics=!0,this.RenderChordSymbols=!0,this.RenderMultipleRestMeasures=!0,this.AutoGenerateMutipleRestMeasuresFromRestMeasures=!0,this.RenderRehearsalMarks=!0,this.RenderClefsAtBeginningOfStaffline=!0,this.RenderKeySignatures=!0,this.RenderTimeSignatures=!0,this.ArticulationPlacementFromXML=!0,this.FingeringPosition=PlacementEnum.AboveOrBelow,this.FingeringPositionFromXML=!0,this.FingeringPositionGrace=PlacementEnum.Left,this.FingeringInsideStafflines=!1,this.FingeringLabelFontHeight=1.7,this.FingeringOffsetX=0,this.FingeringOffsetY=0,this.FingeringPaddingY=-.2,this.FingeringTextSize=1.5,this.RenderStringNumbersClassical=!0,this.StringNumberOffsetY=0,this.NewSystemAtXMLNewSystemAttribute=!1,this.NewPageAtXMLNewPageAttribute=!1,this.RestoreCursorAfterRerender=!0,this.StretchLastSystemLine=!1,_EngravingRules.FixStafflineBoundingBox=!1,this.PageFormat=PageFormat.UndefinedPageFormat,this.PageBackgroundColor=void 0,this.PerformanceMode=!1,this.RenderSingleHorizontalStaffline=!1,this.SpacingBetweenTextLines=0,this.NoteToGraphicalNoteMap=new Dictionary,this.NoteToGraphicalNoteMapObjectCount=0;try{this.MaxInstructionsConstValue=this.ClefLeftMargin+this.ClefRightMargin+this.KeyRightMargin+this.RhythmRightMargin+11}catch(B){log$2.info("EngravingRules()",B)}this.MpatMode&&(this.NewPartAndSystemAfterFinalBarline=!0)}applyDefaultColorMusic(B){this.DefaultColorMusic=B,this.DefaultColorNotehead=this.DefaultColorMusic,this.DefaultColorRest=this.DefaultColorNotehead,this.DefaultColorStem=this.DefaultColorNotehead,this.DefaultColorLabel=this.DefaultColorNotehead,this.DefaultColorTitle=this.DefaultColorNotehead,this.LedgerLineColorDefault=this.DefaultColorNotehead}addGraphicalNoteToNoteMap(B,R){B.NoteToGraphicalNoteObjectId=this.NoteToGraphicalNoteMapObjectCount,this.NoteToGraphicalNoteMap.setValue(B.NoteToGraphicalNoteObjectId,R),this.NoteToGraphicalNoteMapObjectCount++}GNote(B){return GraphicalNote.FromNote(B,this)}clearMusicSheetObjects(){this.NoteToGraphicalNoteMap=new Dictionary,this.NoteToGraphicalNoteMapObjectCount=0}setChordSymbolLabelText(B,R){this.ChordSymbolLabelTexts.setValue(B,R)}resetChordSymbolLabelTexts(B){return B.setValue(ChordSymbolEnum.minor,"m"),B.setValue(ChordSymbolEnum.augmented,"aug"),B.setValue(ChordSymbolEnum.diminished,"dim"),B.setValue(ChordSymbolEnum.dominant,"7"),B.setValue(ChordSymbolEnum.majorseventh,"maj7"),B.setValue(ChordSymbolEnum.minorseventh,"m7"),B.setValue(ChordSymbolEnum.diminishedseventh,"dim7"),B.setValue(ChordSymbolEnum.augmentedseventh,"aug7"),B.setValue(ChordSymbolEnum.halfdiminished,"m7b5"),B.setValue(ChordSymbolEnum.majorminor,"m(maj7)"),B.setValue(ChordSymbolEnum.majorsixth,"maj6"),B.setValue(ChordSymbolEnum.minorsixth,"m6"),B.setValue(ChordSymbolEnum.dominantninth,"9"),B.setValue(ChordSymbolEnum.majorninth,"maj9"),B.setValue(ChordSymbolEnum.minorninth,"m9"),B.setValue(ChordSymbolEnum.dominant11th,"11"),B.setValue(ChordSymbolEnum.major11th,"maj11"),B.setValue(ChordSymbolEnum.minor11th,"m11"),B.setValue(ChordSymbolEnum.dominant13th,"13"),B.setValue(ChordSymbolEnum.major13th,"maj13"),B.setValue(ChordSymbolEnum.minor13th,"m13"),B.setValue(ChordSymbolEnum.suspendedsecond,"sus2"),B.setValue(ChordSymbolEnum.suspendedfourth,"sus4"),B.setValue(ChordSymbolEnum.power,"5"),B.setValue(ChordSymbolEnum.none,"N.C."),B}addChordName(B,R,F,D,G){if(ChordSymbolEnum[R]!==void 0){const U={adds:F,alts:D,subs:G};this.CustomChords.push(CustomChord.createCustomChord(B,ChordSymbolEnum[R],U))}}renameChord(B,R){CustomChord.renameCustomChord(B,R,this.CustomChords)}resetChordNames(){this.addChordName("alt","major",["#5","b9","#9"],["b5"],[]),this.addChordName("7alt","dominant",["#5","b9","#9"],["b5"],[]),this.addChordName("7sus4","dominant",["4"],[],["3"]),this.addChordName("7sus4","suspendedfourth",["7"],[],[]),this.addChordName("9sus4","dominantninth",["4"],[],["3"]),this.addChordName("9sus4","suspendedfourth",["9"],[],[]),this.addChordName("11sus4","dominant11th",["4"],[],["3"]),this.addChordName("11sus4","suspendedfourth",["11"],[],[]),this.addChordName("13sus4","dominant13th",["4"],[],["3"]),this.addChordName("13sus4","suspendedfourth",["13"],[],[]),this.addChordName("7sus2","dominant",["2"],[],["3"]),this.addChordName("7sus2","suspendedsecond",["7"],[],[]),this.addChordName("m7b5","minorseventh",[],["b5"],[]),this.addChordName("9sus2","dominantninth",["2"],[],["3"]),this.addChordName("9sus2","suspendedsecond",["9"],[],[]),this.addChordName("11sus2","dominant11th",["2"],[],["3"]),this.addChordName("11sus2","suspendedsecond",["11"],[],[]),this.addChordName("13sus2","dominant13th",["2"],[],["3"]),this.addChordName("13sus2","suspendedsecond",["13"],[],[]),this.addChordName("m(maj9)","majorminor",["9"],[],[]),this.addChordName("m(maj11)","majorminor",["11"],[],[]),this.addChordName("m(maj13)","majorminor",["13"],[],[]),this.addChordName("69","majorsixth",["9"],[],[]),this.addChordName("mi69","minorsixth",["9"],[],[])}calculateCurveParametersArrays(){this.TPower3=new Array(this.BezierCurveStepSize),this.OneMinusTPower3=new Array(this.BezierCurveStepSize),this.FactorOne=new Array(this.BezierCurveStepSize),this.FactorTwo=new Array(this.BezierCurveStepSize);for(let B=0;B(B[B.XML=0]="XML",B[B.AutoColoring=1]="AutoColoring",B[B.CustomColorSet=2]="CustomColorSet",B))(ColoringModes||{}),DrawingParametersEnum=(B=>(B.allon="allon",B.compact="compact",B.compacttight="compacttight",B.default="default",B.leadsheet="leadsheet",B.preview="preview",B.thumbnail="thumbnail",B))(DrawingParametersEnum||{});class DrawingParameters{constructor(R="default"){this.rules=new EngravingRules,this.drawCursors=!0,this.drawTitle=!0,this.drawSubtitle=!0,this.drawLyricist=!0,this.drawComposer=!0,this.drawCredits=!0,this.drawPartNames=!0,this.fingeringPosition=PlacementEnum.Left,this.drawHiddenNotes=!1,this.DrawingParametersEnum=R}set DrawingParametersEnum(R){switch(this.drawingParametersEnum=R,R){case"allon":this.setForAllOn();break;case"thumbnail":this.setForThumbnail();break;case"leadsheet":this.setForLeadsheet();break;case"compact":this.setForCompactMode();break;case"compacttight":this.setForCompactTightMode();break;case"default":default:this.setForDefault()}}get DrawingParametersEnum(){return this.drawingParametersEnum}setForAllOn(){this.drawHighlights=!0,this.drawErrors=!0,this.drawSelectionStartSymbol=!0,this.drawSelectionEndSymbol=!0,this.drawCursors=!0,this.drawActivitySymbols=!0,this.drawScrollIndicator=!0,this.drawAnnotations=!0,this.drawComments=!0,this.drawMarkedAreas=!0,this.DrawTitle=!0,this.DrawSubtitle=!0,this.DrawComposer=!0,this.DrawLyricist=!0,this.drawCredits=!0,this.DrawPartNames=!0,this.drawHiddenNotes=!0,this.rules.CompactMode=!1}setForDefault(){this.rules.loadDefaultValues(),this.setForAllOn(),this.drawHiddenNotes=!1}setForThumbnail(){this.drawHighlights=!1,this.drawErrors=!1,this.drawSelectionStartSymbol=!1,this.drawSelectionStartSymbol=!1,this.drawCursors=!1,this.drawActivitySymbols=!1,this.drawScrollIndicator=!1,this.drawAnnotations=!0,this.drawComments=!0,this.drawMarkedAreas=!0,this.drawHiddenNotes=!1}setForCompactMode(){this.rules.CompactMode=!0,this.DrawCredits=!1,this.drawHiddenNotes=!1}setForCompactTightMode(){this.setForCompactMode(),this.DrawPartNames=!1,this.rules.VoiceSpacingMultiplierVexflow=.65,this.rules.VoiceSpacingAddendVexflow=2,this.rules.MinSkyBottomDistBetweenStaves=1,this.rules.MinSkyBottomDistBetweenSystems=1,this.rules.BetweenStaffDistance=2.5,this.rules.StaffDistance=3.5,this.rules.MinimumDistanceBetweenSystems=1,this.rules.PageBottomMargin=0,this.rules.PageLeftMargin=2,this.rules.PageRightMargin=2}setForLeadsheet(){this.drawHighlights=!1,this.drawErrors=!1,this.drawSelectionStartSymbol=!0,this.drawSelectionEndSymbol=!0,this.drawCursors=!0,this.drawActivitySymbols=!1,this.drawScrollIndicator=!0,this.drawAnnotations=!0,this.drawComments=!0,this.drawMarkedAreas=!0}get DrawCredits(){return this.drawCredits}set DrawCredits(R){this.drawCredits=R,this.DrawComposer=R,this.DrawTitle=R,this.DrawSubtitle=R,this.DrawLyricist=R}get DrawTitle(){return this.drawTitle}set DrawTitle(R){this.drawTitle=R,this.rules.RenderTitle=R,R||(this.DrawSubtitle=!1)}get DrawSubtitle(){return this.drawSubtitle}set DrawSubtitle(R){this.drawSubtitle=R,this.rules.RenderSubtitle=R,R&&(this.DrawTitle=!0)}get DrawComposer(){return this.drawComposer}set DrawComposer(R){this.drawComposer=R,this.rules.RenderComposer=R}get DrawLyricist(){return this.drawLyricist}set DrawLyricist(R){this.drawLyricist=R,this.rules.RenderLyricist=R}get DrawPartNames(){return this.drawPartNames}set DrawPartNames(R){this.drawPartNames=R,this.rules.RenderPartNames=R,this.rules.RenderPartNames||(this.rules.RenderPartAbbreviations=!1)}get FingeringPosition(){return this.fingeringPosition}set FingeringPosition(R){this.fingeringPosition=R,this.rules.FingeringPosition=R}get Rules(){return this.rules}set Rules(R){this.rules=R}}var AlignRestOption=(B=>(B[B.Never=0]="Never",B[B.Always=1]="Always",B[B.Auto=2]="Auto",B))(AlignRestOption||{}),FillEmptyMeasuresWithWholeRests=(B=>(B[B.No=0]="No",B[B.YesVisible=1]="YesVisible",B[B.YesInvisible=2]="YesInvisible",B))(FillEmptyMeasuresWithWholeRests||{}),BackendType=(B=>(B[B.SVG=0]="SVG",B[B.Canvas=1]="Canvas",B))(BackendType||{});class OSMDOptions{static OSMDOptionsStandard(){return{autoResize:!0,backend:"svg",drawingParameters:DrawingParametersEnum.default}}static BackendTypeFromString(R){return R&&R.toLowerCase()==="canvas"?1:0}}class IXmlElement{constructor(R){if(this.hasAttributes=!1,!R)throw new Error("IXmlElement: expected Element, got undefined");this.elem=R,this.name=R.nodeName.toLowerCase(),R.hasAttributes()&&(this.hasAttributes=!0,this.firstAttribute=R.attributes[0]),this.hasElements=R.hasChildNodes(),R.childNodes.length===1&&R.childNodes[0].nodeType===Node.TEXT_NODE?this.value=R.childNodes[0].nodeValue:this.value=""}attribute(R){return this.elem.attributes.getNamedItem(R)}attributes(){if(!this.attrs){const R=this.elem.attributes,F=[];for(let D=0;D0?this.Voices[0].Visible:!1}set Visible(R){for(let F=0,D=this.Voices.length;F-1&&this.parent.MusicSystems.splice(F,1)}this.parent=R,this.boundingBox.Parent=R.PositionAndShape}get NextSystem(){const R=this.Parent.MusicSystems.indexOf(this);return R!==this.Parent.MusicSystems.length?this.Parent.MusicSystems[R+1]:void 0}get StaffLines(){return this.staffLines}get GraphicalMeasures(){return this.graphicalMeasures}get MeasureNumberLabels(){return this.measureNumberLabels}get Labels(){return this.labels.values()}get ObjectsToRedraw(){return this.objectsToRedraw}get InstrumentBrackets(){return this.instrumentBrackets}get GroupBrackets(){return this.groupBrackets}get GraphicalMarkedAreas(){return this.graphicalMarkedAreas}get SystemLines(){return this.systemLines}get Id(){return this.id}createSystemLeftLine(R,F,D){let G=-R/2;D&&(G=this.maxLabelLength+F-R/2);const U=this.staffLines[0].Measures[0];let W;this.staffLines.length>1&&(W=this.staffLines[this.staffLines.length-1].Measures[0]);const q=this.createSystemLine(G,R,SystemLinesEnum.SingleThin,SystemLinePosition.MeasureBegin,this,U,W);this.SystemLines.push(q),q.PositionAndShape.RelativePosition=new PointF2D(G,0),q.PositionAndShape.BorderLeft=0,q.PositionAndShape.BorderRight=R,q.PositionAndShape.BorderTop=0,q.PositionAndShape.BorderBottom=this.boundingBox.Size.height,this.createLinesForSystemLine(q)}createVerticalLineForMeasure(R,F,D,G,U,W){const q=W.ParentStaffLine,Y=new PointF2D(q.PositionAndShape.RelativePosition.x,q.PositionAndShape.RelativePosition.y),Q=q.ParentStaff.ParentInstrument.Staves;if(q.ParentStaff===Q[0]){let Z;Q.length>1&&(Z=this.getBottomStaffLine(q).Measures[U]);const K=this.createSystemLine(R,F,D,G,this,W,Z),J=Y.x+R;K.PositionAndShape.RelativePosition=new PointF2D(J,0),K.PositionAndShape.BorderLeft=0,K.PositionAndShape.BorderRight=F,this.SystemLines.push(K)}}setYPositionsToVerticalLineObjectsAndCreateLines(R){}calculateBorders(R){}alignBeginInstructions(){}GetLeftBorderAbsoluteXPosition(){return this.StaffLines[0].PositionAndShape.AbsolutePosition.x+this.StaffLines[0].Measures[0].beginInstructionsWidth}GetRightBorderAbsoluteXPosition(){return this.StaffLines[0].PositionAndShape.AbsolutePosition.x+this.StaffLines[0].StaffLines[0].End.x}AddGraphicalMeasures(R){for(let F=0,D=R.length;F1){let W,q;for(let Y=0,Q=this.staffLines.length;Ythis.maxLabelLength&&(this.maxLabelLength=Z.PositionAndShape.Size.width,F=U)}this.updateMusicSystemStaffLineXPosition(F)}setMusicSystemLabelsYPosition(){this.labels.forEach((R,F)=>{let D=0,G=0;for(let U=0;U0&&(F.PositionAndShape.RelativePosition=new PointF2D(0,D/G+2))})}checkStaffEntriesForStaffEntryLink(){let R=!1,F=!1;for(let D=0;D=0;D--){if(F=R.InstrumentalGroups[D],F instanceof Instrument){if(F.Visible===!0)return F;continue}return this.findLastVisibleInstrumentInInstrumentalGroup(F)}}updateMusicSystemStaffLineXPosition(R){for(let F=0,D=this.StaffLines.length;F1}isVisible(){return this.ParentStaff.ParentInstrument.Visible}getGraphicalMeasureDurationFromStaffEntries(){let R=new Fraction$1(0,1);const F=[];for(let D=0,G=this.staffEntries.length;D0&&W.Add(Y.notes[0].graphicalNoteLength);R.lt(W)&&(R=Fraction$1.createFromFraction(W))}return R}addGraphicalStaffEntry(R){this.staffEntries.push(R)}addGraphicalStaffEntryAtTimestamp(R){if(R)if(this.staffEntries.length===0||this.staffEntries[this.staffEntries.length-1].relInMeasureTimestamp.lt(R.relInMeasureTimestamp))this.staffEntries.push(R);else for(let F=this.staffEntries.length-1;F>=0;F--){if(this.staffEntries[F].relInMeasureTimestamp.lt(R.relInMeasureTimestamp)){this.staffEntries.splice(F+1,0,R);break}F===0&&this.staffEntries.splice(F,0,R)}}isPianoRightHand(){return this.isUpperStaffOfInstrument()}isPianoLeftHand(){return this.isLowerStaffOfInstrument()}isUpperStaffOfInstrument(){return this.parentStaff.ParentInstrument.Staves.length===1?!0:this.ParentStaff===this.parentStaff.ParentInstrument.Staves[0]}isLowerStaffOfInstrument(){return this.parentStaff.ParentInstrument.Staves.length===1?!1:this.ParentStaff===this.ParentStaff.ParentInstrument.Staves.last()}beginsWithLineRepetition(){const R=this.parentSourceMeasure;return R?R.beginsWithLineRepetition():!1}endsWithLineRepetition(){const R=this.parentSourceMeasure;return R?R.endsWithLineRepetition():!1}beginsWithWordRepetition(){const R=this.parentSourceMeasure;return R?R.beginsWithWordRepetition():!1}endsWithWordRepetition(){const R=this.parentSourceMeasure;return R?R.endsWithWordRepetition():!1}getTransposedHalftones(){return this.parentStaff.ParentInstrument.GetMusicSheet.Transpose+this.parentStaff.ParentInstrument.Transpose}}Vex.Flow;class VexFlowVoiceEntry extends GraphicalVoiceEntry{constructor(R,F){super(R,F)}applyBordersFromVexflow(){const R=this.vfStaveNote;if(!R.getNoteHeadBeginX)return;const F=R.getBoundingBox(),D=R.getNoteHeadBeginX()-F.x;this.PositionAndShape.RelativePosition.y=F.y/unitInPixels,this.PositionAndShape.BorderTop=0,this.PositionAndShape.BorderBottom=F.h/unitInPixels,this.PositionAndShape.BorderLeft=-(D+R.width/2)/unitInPixels,this.PositionAndShape.BorderRight=(F.w-D)/unitInPixels}set vfStaveNote(R){this.mVexFlowStaveNote=R}get vfStaveNote(){return this.mVexFlowStaveNote}color(){var J;const R=this.rules.DefaultColorNotehead,F=this.rules.DefaultColorRest,D=this.rules.DefaultColorStem,G="#00000000";let U,W;const q=this.vfStaveNote;for(let ie=0;ieY.symbol_type===F))return;const q=new VF$9.Repetition(F,G,-this.rules.RepetitionSymbolsYOffset);this.stave.addModifier(q,D);return}this.addVolta(R)}addVolta(R){var D;let F=VF$9.Volta.type.BEGIN;if(R.type===RepetitionInstructionEnum.Ending){switch(R.alignment){case AlignmentType.Begin:this.parentSourceMeasure.endsRepetitionEnding()?F=VF$9.Volta.type.BEGIN_END:F=VF$9.Volta.type.BEGIN;break;case AlignmentType.End:if(this.parentSourceMeasure.beginsRepetitionEnding())return;F=VF$9.Volta.type.END;break}const G=this.ParentStaffLine.SkyBottomLineCalculator,U=this.PositionAndShape.AbsolutePosition.x+this.PositionAndShape.BorderMarginLeft+.4,W=Math.max(this.PositionAndShape.AbsolutePosition.x+this.PositionAndShape.BorderMarginRight,U+.4),q=G.getSkyLineMinInRange(U,W)-2;let Y=-6.1+this.rules.VoltaOffset,Q=this.rules.VoltaOffset;q0){log$2.trace(`Ghost Found in between (measure ${this.MeasureNumber})`);const K=this.createGhostGves(Z);D.splice(W,0,...K),W+=K.length}}else{const Z=Fraction$1.minus(Y,this.parentSourceMeasure.AbsoluteTimestamp);if(Z.RealValue>0){log$2.trace(`Ghost Found at start (measure ${this.MeasureNumber})`);const K=this.createGhostGves(Z);D.splice(0,0,...K),W+=K.length}}F=Q}const G=Fraction$1.plus(this.parentSourceMeasure.AbsoluteTimestamp,this.parentSourceMeasure.Duration),U=Fraction$1.minus(G,F);if(U.RealValue>0){log$2.trace(`Ghost Found at end (measure ${this.MeasureNumber})`);const W=this.createGhostGves(U);D=D.concat(W)}return D}createGhostGves(R){const F=VexFlowConverter.GhostNotes(R),D=[];for(const G of F){const U=new VexFlowVoiceEntry(void 0,void 0);U.vfStaveNote=G,D.push(U)}return D}handleBeam(R,F){const D=R.sourceNote.ParentVoiceEntry.ParentVoice.VoiceId;let G=this.beams[D];G||(G=this.beams[D]=[]);let U;for(const q of G)q[0]===F&&(U=q);U||(U=[F,[]],G.push(U));const W=R.parentVoiceEntry;U[1].indexOf(W)<0&&U[1].push(W)}handleTuplet(R,F){const D=R.sourceNote.ParentVoiceEntry.ParentVoice.VoiceId;F=R.sourceNote.NoteTuplet;let G=this.tuplets[D];G||(G=this.tuplets[D]=[]);let U;for(const q of G)q[0]===F&&(U=q);U||(U=[F,[]],G.push(U));const W=R.parentVoiceEntry;U[1].indexOf(W)<0&&U[1].push(W)}finalizeBeams(){this.vfbeams={};const R=[];for(const F in this.beams)if(this.beams.hasOwnProperty(F)){let D=this.vfbeams[F];D||(D=this.vfbeams[F]=[]);for(const G of this.beams[F]){let U=!1;for(const ie of G[0].Notes)if(ie.Length.RealValue>=new Fraction$1(1,4).RealValue&&(!ie.TypeLength||ie.TypeLength.RealValue>.125)){U=!0;break}if(U){log$2.debug("Beam between note >= quarter, likely tremolo, currently unsupported. continuing.");continue}const W=[],q=G[0],Y=G[1];let Q=!0;for(const ie of Y)ie.parentVoiceEntry.ParentVoice===q.Notes[0].ParentVoiceEntry.ParentVoice&&(Q=ie.parentVoiceEntry.WantedStemDirection===StemDirectionType.Undefined);let Z=!1,K;const J=[];for(const ie of Y){const ne=ie.vfStaveNote;ne&&(W.push(ne),R.push(ne)),ie.parentVoiceEntry.IsGrace&&(Z=!0),ie.parentVoiceEntry.StemColor&&this.rules.ColoringEnabled&&J.push(ie.parentVoiceEntry.StemColor)}if(W.length>1){const ie=new VF$9.Beam(W,Q);if(Z&&(ie.render_options.beam_width=3,ie.render_options.partial_beam_length=4),J.length>=2&&this.rules.ColorBeams){K=J[0];for(const ne of J)if(ne!==K){K=void 0;break}ie.setStyle({fillStyle:K,strokeStyle:K})}this.rules.FlatBeams&&(ie.render_options.flat_beams=!0,ie.render_options.flat_beam_offset=this.rules.FlatBeamOffset,ie.render_options.flat_beam_offset_per_beam=this.rules.FlatBeamOffsetPerBeam),D.push(ie)}else log$2.debug("Warning! Beam with no notes!")}}this.rules.AutoBeamNotes&&this.autoBeamNotes(R)}autoBeamNotes(R){if(!this.rules.AutoBeamTabs&&this.isTabMeasure)return;let F=[],D=[],G,U=[];this.autoTupletVfBeams=[];const W=[];this.autoVfBeams=[];let q=this.parentSourceMeasure.ActiveTimeSignature;q||(q=this.parentSourceMeasure.Duration);for(const Z of this.staffEntries)for(const K of Z.graphicalVoiceEntries){const J=K.vfStaveNote,ie=K.notes[0],ne=Z.relInMeasureTimestamp.isOnBeat(q),se=D.length>=2,re=ie.sourceNote.Length.RealValue-new Fraction$1(1,4).RealValue>-Fraction$1.FloatInaccuracyTolerance,ae=K.parentVoiceEntry.IsGrace||re||R.contains(J);if(ae||ne){if(se){for(const ce of D)F.push(ce);W.push(F.slice()),F=[]}if(D=[],ae)continue}const le=K.notes[0].sourceNote.NoteTuplet;if(le){let ce=!1;for(const he of le.Notes){for(const de of he)if(de.NoteTypeXml>=NoteType.QUARTER||de.ParentVoiceEntry.IsGrace||de.isRest()&&!this.rules.AutoBeamOptions.beam_rests){ce=!0;break}if(ce)break}if(!G)G=le;else if(G!==le){if(U.length>1){const he=new VF$9.Beam(U,!0);this.rules.FlatBeams&&(he.render_options.flat_beams=!0,he.render_options.flat_beam_offset=this.rules.FlatBeamOffset,he.render_options.flat_beam_offset_per_beam=this.rules.FlatBeamOffsetPerBeam),this.autoTupletVfBeams.push(he)}U=[],G=le}ce||U.push(J);continue}else G=void 0;D.push(J)}if(U.length>=2){const Z=new VF$9.Beam(U,!0);this.rules.FlatBeams&&(Z.render_options.flat_beams=!0,Z.render_options.flat_beam_offset=this.rules.FlatBeamOffset,Z.render_options.flat_beam_offset_per_beam=this.rules.FlatBeamOffsetPerBeam),this.autoTupletVfBeams.push(Z)}if(D.length>=2){for(const Z of D)F.push(Z);W.push(F)}const Y=this.rules.AutoBeamOptions,Q={beam_middle_only:Y.beam_middle_rests_only,beam_rests:Y.beam_rests,maintain_stem_directions:Y.maintain_stem_directions};if(Y.groups&&Y.groups.length){const Z=[];for(const K of Y.groups)Z.push(new VF$9.Fraction(K[0],K[1]));Q.groups=Z}for(const Z of W){const K=VF$9.Beam.generateBeams(Z,Q);for(const J of K)this.rules.FlatBeams&&(J.render_options.flat_beams=!0,J.render_options.flat_beam_offset=this.rules.FlatBeamOffset,J.render_options.flat_beam_offset_per_beam=this.rules.FlatBeamOffsetPerBeam),this.autoVfBeams.push(J)}}finalizeTuplets(){this.vftuplets={};for(const R in this.tuplets)if(this.tuplets.hasOwnProperty(R)){let F=this.vftuplets[R];F||(F=this.vftuplets[R]=[]);for(const D of this.tuplets[R]){const G=[],U=D[1];for(const W of U)G.push(W.vfStaveNote);if(G.length>1){const W=D[0],q=W.Notes[0][0].NormalNotes,Y=W.Bracket||W.TupletLabelNumber===3&&this.rules.TripletsBracketed||W.TupletLabelNumber!==3&&this.rules.TupletsBracketed;let Q=VF$9.Tuplet.LOCATION_TOP;W.tupletLabelNumberPlacement===PlacementEnum.Below&&(Q=VF$9.Tuplet.LOCATION_BOTTOM),F.push(new VF$9.Tuplet(G,{bracketed:Y,location:Q,notes_occupied:q,num_notes:W.TupletLabelNumber,ratioed:this.rules.TupletsRatioed}))}else log$2.debug("Warning! Tuplet with no notes! Trying to ignore, but this is a serious problem.")}}}layoutStaffEntry(R){}graphicalMeasureCreatedCalculations(){let R,F=[];const D=[];for(const U of this.staffEntries){R=!1,F=[];for(const W of U.graphicalVoiceEntries){if(W.parentVoiceEntry.IsGrace){F.push(W),D.push(W),R||(R=W.parentVoiceEntry.GraceSlur);continue}if(W.vfStaveNote=VexFlowConverter.StaveNote(W),F.length>0){const q=[];for(let Q=0;Q0&&(Z.GraceSlash=!1);const K=VexFlowConverter.StaveNote(Z);Z.vfStaveNote=K,q.push(K)}const Y=new VF$9.GraceNoteGroup(q,R);W.vfStaveNote.addModifier(0,Y),F=[]}}}if(F.length>0)for(const U of F)U.vfStaveNote=VexFlowConverter.StaveNote(U),U.parentVoiceEntry.GraceAfterMainNote=!0;this.finalizeBeams(),this.finalizeTuplets();const G=this.getVoicesWithinMeasure();if(this.rules.RenderFingerings)for(const U of this.staffEntries)U.setModifierXOffsets();for(const U of G){if(!U)continue;this.vfVoices[U.VoiceId]=new VF$9.Voice({beat_value:this.parentSourceMeasure.Duration.Denominator,num_beats:this.parentSourceMeasure.Duration.Numerator,resolution:VF$9.RESOLUTION}).setMode(VF$9.Voice.Mode.SOFT);const W=this.getRestFilledVexFlowStaveNotesPerVoice(U);for(const q of W){if(q.parentVoiceEntry&&q.parentVoiceEntry.IsGrace&&!q.parentVoiceEntry.GraceAfterMainNote)continue;const Y=q;if(Y.vfStaveNote.ticks.denominator===0)continue;if(q.notes.length===0||!q.notes[0]||!q.notes[0].sourceNote.PrintObject){this.vfVoices[U.VoiceId].addTickable(Y.vfStaveNote);continue}const Q=Y.parentStaffEntry;if(Q&&Q.vfClefBefore){const Z=new NoteSubGroup([Q.vfClefBefore]);Y.vfStaveNote.getCategory&&Y.vfStaveNote.getCategory()==="stavenotes"&&Y.vfStaveNote.addModifier(0,Z)}q.parentVoiceEntry&&this.rules.RenderFingerings&&((this.rules.FingeringPosition===PlacementEnum.Left||this.rules.FingeringPosition===PlacementEnum.Right)&&this.createFingerings(q),this.createStringNumber(q)),this.createArpeggio(q),this.vfVoices[U.VoiceId].addTickable(Y.vfStaveNote)}}this.setStemDirectionFromVexFlow();for(const U of D)this.createFingerings(U),this.createStringNumber(U),this.createArpeggio(U);this.createArticulations(),this.createOrnaments()}createArpeggio(R){if(R.parentVoiceEntry&&R.parentVoiceEntry.Arpeggio){const F=R.parentVoiceEntry.Arpeggio;if(R.notes&&R.notes.length>1){const D=VexFlowConverter.StrokeTypeFromArpeggioType(F.type),G=new VF$9.Stroke(D,{all_voices:this.rules.ArpeggiosGoAcrossVoices});this.rules.RenderArpeggios&&R.vfStaveNote.addStroke(0,G)}else log$2.debug(`[OSMD] arpeggio in measure ${this.MeasureNumber} could not be drawn. voice entry had less than two notes, arpeggio is likely between voice entries, not currently supported in Vexflow.`)}}setStemDirectionFromVexFlow(){for(const R of this.staffEntries)for(const F of R.graphicalVoiceEntries)for(const D of F.notes){const G=D.vfnote;if(!G||!G[0])continue;switch(G[0].getStemDirection()){case VF$9.Stem.UP:F.parentVoiceEntry.StemDirection=StemDirectionType.Up;break;case VF$9.Stem.DOWN:F.parentVoiceEntry.StemDirection=StemDirectionType.Down;break}}}createArticulations(){for(let R=0,F=this.staffEntries.length;R1||R.parentStaffEntry.graphicalVoiceEntries.length>1?Q=VF$9.StaveModifier.Position.LEFT:K.idInMusicSheet===0?(Q=VF$9.StaveModifier.Position.ABOVE,q=PlacementEnum.Above):(Q=VF$9.StaveModifier.Position.BELOW,q=PlacementEnum.Below)}const Z=new VF$9.FretHandFinger(W.value);if(Z.setPosition(Q),Z.setOffsetX(Y),q===PlacementEnum.Above||q===PlacementEnum.Below){const K=q===PlacementEnum.Above?-1:1,J=q===PlacementEnum.Above?G:D-1-G;if(this.rules.FingeringInsideStafflines&&D>1){const ie=Z.getWidth()/2,ne=D*2.5;Z.setOffsetY(K*(J+ne)*ie)}else if(!this.rules.FingeringInsideStafflines){const ie=new VF$9.StringNumber(W.value);ie.radius=0,ie.setPosition(Q),ie.setOffsetY(K*J*ie.getWidth()*2/3),F.vfStaveNote.addModifier(G,ie);continue}}F.vfStaveNote.addModifier(G,Z)}}createStringNumber(R){if(!this.rules.RenderStringNumbersClassical)return;const F=R;R.notes.forEach((D,G)=>{const U=D.sourceNote.StringInstruction;if(U){let W=U.value;switch(W){case"1":W="I";break;case"2":W="II";break;case"3":W="III";break;case"4":W="IV";break;case"5":W="V";break;case"6":W="VI";break}const q=new VF$9.StringNumber(W);q.radius=0;const Y=-this.rules.StringNumberOffsetY;R.notes.length>1||R.parentStaffEntry.graphicalVoiceEntries.length>1?(q.setOffsetX(D.baseStringNumberXOffset*13),q.setPosition(VF$9.Modifier.Position.RIGHT)):q.setPosition(VF$9.Modifier.Position.ABOVE),q.setOffsetY(Y),F.vfStaveNote.addModifier(G,q)}})}lineTo(R,F){const D=new VF$9.StaveConnector(R.getVFStave(),this.stave);D.setType(F),this.connectors.push(D)}getVFStave(){return this.stave}updateInstructionWidth(){let R=0,F=0;const D=this.stave.getModifiers();for(const G of D)G.getPosition()===StavePositionEnum.BEGIN?R+=G.getWidth()+G.getPadding(void 0):G.getPosition()===StavePositionEnum.END&&(F+=G.getWidth()+G.getPadding(void 0));this.beginInstructionsWidth=(R!=null?R:0)/unitInPixels,this.endInstructionsWidth=(F!=null?F:0)/unitInPixels}addStaveTie(R,F){this.vfTies.push(R),F.vfTie=R}}var StavePositionEnum=(B=>(B[B.LEFT=1]="LEFT",B[B.RIGHT=2]="RIGHT",B[B.ABOVE=3]="ABOVE",B[B.BELOW=4]="BELOW",B[B.BEGIN=5]="BEGIN",B[B.END=6]="END",B))(StavePositionEnum||{});class GraphicalStaffEntry extends GraphicalObject{constructor(R,F=void 0,D=void 0){super(),this.graphicalChordContainers=[],this.tabStaffEntry=void 0,this.MaxAccidentals=0,this.graphicalInstructions=[],this.ties=[],this.graphicalTies=[],this.lyricsEntries=[],this.parentMeasure=R,this.graphicalVoiceEntries=[],this.sourceStaffEntry=F,D?(this.staffEntryParent=D,this.parentVerticalContainer=D.parentVerticalContainer,this.PositionAndShape=new BoundingBox$1(this,D.PositionAndShape)):this.PositionAndShape=new BoundingBox$1(this,R.PositionAndShape),F&&(this.relInMeasureTimestamp=F.Timestamp),this.FingeringEntries=[]}get GraphicalInstructions(){return this.graphicalInstructions}get GraphicalTies(){return this.graphicalTies}get LyricsEntries(){return this.lyricsEntries}set LyricsEntries(R){this.lyricsEntries=R}getAbsoluteTimestamp(){const R=this.parentMeasure.parentSourceMeasure.AbsoluteTimestamp.clone();return this.relInMeasureTimestamp&&R.Add(this.relInMeasureTimestamp),R}findTieGraphicalNoteFromNote(R){var D;const F=((D=window.GYM)==null?void 0:D.graceCustom)||!1;for(const G of this.graphicalVoiceEntries)for(const U of G.notes){const W=U.sourceNote;if(F){if(R.NoteToGraphicalNoteObjectId==W.NoteToGraphicalNoteObjectId)return U}else if(!W.isRest()&&W.Pitch.FundamentalNote===R.Pitch.FundamentalNote&&W.Pitch.Octave===R.Pitch.Octave&&W.getAbsoluteTimestamp().Equals(R.getAbsoluteTimestamp()))return U}}findEndTieGraphicalNoteFromNoteWithStartingSlur(R,F){if(!!R){for(const D of this.graphicalVoiceEntries)if(D.parentVoiceEntry===R.ParentVoiceEntry)for(const G of D.notes){const U=G.sourceNote;if(U.NoteTie&&U.NoteSlurs.indexOf(F)!==-1)return G}}}findGraphicalNoteFromGraceNote(R){if(!!R){for(const F of this.graphicalVoiceEntries)if(F.parentVoiceEntry===R.ParentVoiceEntry){for(const D of F.notes)if(D.sourceNote===R)return D}}}findGraphicalNoteFromNote(R){if(!!R){for(const F of this.graphicalVoiceEntries)if(F.parentVoiceEntry===R.ParentVoiceEntry){for(const D of F.notes)if(D.sourceNote===R&&this.getAbsoluteTimestamp().Equals(R.getAbsoluteTimestamp()))return D}}}getGraphicalNoteDurationFromVoice(R){for(const F of this.graphicalVoiceEntries)if(F.parentVoiceEntry.ParentVoice===R)return F.notes[0].graphicalNoteLength;return new Fraction$1(0,1)}findVoiceEntryGraphicalNotes(R){for(const F of this.graphicalVoiceEntries)if(F.parentVoiceEntry===R)return F.notes}isVoiceEntryPartOfLinkedVoiceEntry(R){if(this.sourceStaffEntry.Link)for(let F=0,D=this.sourceStaffEntry.Link.LinkStaffEntries.length;F0&&(R=G)}return R}findStaffEntryMaxNoteLength(){let R=new Fraction$1(0,1);for(const F of this.graphicalVoiceEntries)for(const D of F.notes){const G=D.graphicalNoteLength;R.lt(G)&&G.GetExpandedNumerator()>0&&(R=G)}return R}findOrCreateGraphicalVoiceEntry(R){for(const D of this.graphicalVoiceEntries)if(D.parentVoiceEntry===R)return D;const F=MusicSheetCalculator.symbolFactory.createVoiceEntry(R,this);return this.graphicalVoiceEntries.push(F),F}findOrCreateGraphicalVoiceEntryFromGraphicalNote(R){for(const D of this.graphicalVoiceEntries)if(D===R.parentVoiceEntry)return D;const F=MusicSheetCalculator.symbolFactory.createVoiceEntry(R.sourceNote.ParentVoiceEntry,this);return this.graphicalVoiceEntries.push(F),F}addGraphicalNoteToListAtCorrectYPosition(R,F){const D=R.notes;if(D.length===0||F.PositionAndShape.RelativePosition.y=0;G--){if(D[G].PositionAndShape.RelativePosition.y>F.PositionAndShape.RelativePosition.y){D.splice(G+1,0,F);break}if(G===0){D.splice(0,0,F);break}}}hasOnlyRests(){for(const F of this.graphicalVoiceEntries)for(const D of F.notes)if(!D.sourceNote.isRest())return!1;return!0}getSkylineMin(){var G;const R=(G=this.parentMeasure)==null?void 0:G.ParentStaffLine.SkyBottomLineCalculator;if(!R)return;const[F,D]=this.getAbsoluteStartAndEnd();return R.getSkyLineMinInRange(F,D)}getHighestYAtEntry(){return this.parentMeasure.ParentStaffLine.PositionAndShape.AbsolutePosition.y+this.getSkylineMin()}getLowestYAtEntry(){return this.parentMeasure.ParentStaffLine.PositionAndShape.AbsolutePosition.y+this.getBottomlineMax()}getBottomlineMax(){var G;const R=(G=this.parentMeasure)==null?void 0:G.ParentStaffLine.SkyBottomLineCalculator;if(!R)return;const[F,D]=this.getAbsoluteStartAndEnd();return R.getBottomLineMaxInRange(F,D)}getAbsoluteStartAndEnd(){let R=this.PositionAndShape.AbsolutePosition.x;R-=this.parentMeasure.ParentStaffLine.PositionAndShape.AbsolutePosition.x;const F=R+this.PositionAndShape.Size.width;return[R,F]}}const VF$8=Vex.Flow;class VexFlowStaffEntry extends GraphicalStaffEntry{constructor(R,F,D){super(R,F,D)}calculateXPosition(){const R=this.parentMeasure.getVFStave();let F=0;for(const D of this.graphicalVoiceEntries)if(D.vfStaveNote){if(D.vfStaveNote.setStave(R),R&&R.getLines&&R.getLines()===1&&D.vfStaveNote.getStemDirection()<0&&(D.vfStaveNote.setStemDirection(VF$8.Stem.UP),D.parentVoiceEntry.StemDirection=StemDirectionType.Up),!D.vfStaveNote.preFormatted)continue;D.applyBordersFromVexflow(),this.parentMeasure.ParentStaff.isTab?this.PositionAndShape.RelativePosition.x=(D.vfStaveNote.getAbsoluteX()+D.vfStaveNote.glyph.getWidth())/unitInPixels:this.PositionAndShape.RelativePosition.x=D.vfStaveNote.getBoundingBox().getX()/unitInPixels;const G=D.notes[0].sourceNote;G.isRest()&&G.Length.RealValue===this.parentMeasure.parentSourceMeasure.ActiveTimeSignature.RealValue&&(this.PositionAndShape.RelativePosition.x+=this.parentMeasure.parentSourceMeasure.Rules.WholeRestXShiftVexflow-.1,D.PositionAndShape.BorderLeft=-.7,D.PositionAndShape.BorderRight=.7),D.PositionAndShape.BorderLeftU.staffLine),D=this.calculateModifierXOffsets(F,1),G=this.calculateModifierXOffsets(F,.5);R.forEach((U,W)=>{U.baseFingeringXOffset=G[W],U.baseStringNumberXOffset=D[W]})}calculateModifierXOffsets(R,F){const D=[];for(let G=0;G=0;q--){if(Math.abs(R[G]-R[q])<=F&&U===D[q]){U++,W=!0;break}W=!1}D.push(U)}return D}}Vex.Flow;class VexFlowGraphicalNote extends GraphicalNote{constructor(R,F,D,G=OctaveEnum.NONE,U,W=void 0){if(super(R,F,U,W),this.clef=D,this.octaveShift=G,R.Pitch){const q=R.isRest()?R.Pitch:OctaveShift.getPitchFromOctaveShift(R.Pitch,G);this.vfpitch=VexFlowConverter.pitch(q,R.isRest(),this.clef,this.sourceNote.Notehead),this.vfpitch[1]=void 0}}setAccidental(R){const F=this.drawPitch(R);this.vfpitch=VexFlowConverter.pitch(F,this.sourceNote.isRest(),this.clef,this.sourceNote.Notehead),this.DrawnAccidental=F.Accidental}drawPitch(R){return OctaveShift.getPitchFromOctaveShift(R,this.octaveShift)}Transpose(R,F,D,G){const U=super.Transpose(R,F,D,G),W=OctaveShift.getPitchFromOctaveShift(U,this.octaveShift);return this.vfpitch=VexFlowConverter.pitch(W,this.sourceNote.isRest(),this.clef,this.sourceNote.Notehead),this.vfpitch[1]=void 0,W}setIndex(R,F){this.vfnote=[R,F],this.vfnoteIndex=F}notehead(R=void 0){let F=R;F||(F=this.vfnote[0]);const D=F.note_heads;return D&&D.length>this.vfnoteIndex&&D[this.vfnoteIndex]?F.note_heads[this.vfnoteIndex]:{line:0}}Clef(){return this.clef}getSVGId(){if(!!this.vfnote)return this.vfnote[0].getAttribute("id")}getSVGGElement(){if(!!this.vfnote)return this.vfnote[0].getAttribute("el")}getStemSVG(){return document.getElementById("vf-"+this.getSVGId()+"-stem")}getBeamSVGs(){const R=[];for(let F=0;;F++){const D=document.getElementById(`vf-${this.getSVGId()}-beam${F}`);if(!D)break;R.push(D)}return R}}class GraphicalChordSymbolContainer extends GraphicalObject{constructor(R,F,D,G,U,W){super(),this.chordSymbolContainer=R,this.boundingBox=new BoundingBox$1(this,F),this.rules=W,this.calculateLabel(D,U,G)}get GetChordSymbolContainer(){return this.chordSymbolContainer}get GraphicalLabel(){return this.graphicalLabel}calculateLabel(R,F,D){const G=ChordSymbolContainer.calculateChordText(this.chordSymbolContainer,F,D);this.graphicalLabel=new GraphicalLabel(new Label(G),R,this.rules.ChordSymbolTextAlignment,this.rules,this.boundingBox),this.graphicalLabel.PositionAndShape.RelativePosition=new PointF2D(this.rules.ChordSymbolRelativeXOffset,0),this.graphicalLabel.Label.colorDefault=this.rules.DefaultColorChordSymbol}}const VF$7=Vex.Flow;class VexFlowTabMeasure extends VexFlowMeasure{constructor(R,F=void 0,D=void 0){super(R,F,D),this.isTabMeasure=!0}resetLayout(){var F;const R=(F=this.ParentStaff.StafflineCount)!=null?F:6;this.stave=new VF$7.TabStave(0,0,0,{space_above_staff_ln:0,space_below_staff_ln:0,num_lines:R}),this.updateInstructionWidth()}graphicalMeasureCreatedCalculations(){for(let F=0,D=this.staffEntries.length;F1){const q=VexFlowConverter.StrokeTypeFromArpeggioType(W.type),Y=new VF$7.Stroke(q,{all_voices:this.rules.ArpeggiosGoAcrossVoices});this.rules.RenderArpeggios&&U.vfStaveNote.addStroke(0,Y)}else log$2.debug(`[OSMD] arpeggio in measure ${this.MeasureNumber} could not be drawn. voice entry had less than two notes, arpeggio is likely between voice entries, not currently supported in Vexflow.`)}this.vfVoices[F.VoiceId].addTickable(U.vfStaveNote)}}}}class StaffLine extends GraphicalObject{constructor(R,F){super(),this.measures=[],this.staffLines=new Array(5),this.octaveShifts=[],this.lyricLines=[],this.lyricsDashes=[],this.abstractExpressions=[],this.graphicalSlurs=[],this.Pedals=[],this.WavyLines=[],this.parentMusicSystem=R,this.parentStaff=F,this.boundingBox=new BoundingBox$1(this,R.PositionAndShape),this.skyBottomLine=MusicSheetCalculator.symbolFactory.createSkyBottomLineCalculator(this),this.staffHeight=this.parentMusicSystem.rules.StaffHeight,this.topLineOffset=0,this.bottomLineOffset=4,this.calculateStaffLineOffsets()}calculateStaffLineOffsets(){if(this.ParentStaff.isTab)switch(this.ParentStaff.StafflineCount){case 5:this.staffHeight=this.bottomLineOffset=this.ParentStaff.ParentInstrument.GetMusicSheet.Rules.TabStaffInterlineHeight*6;break;default:this.staffHeight=this.bottomLineOffset=this.ParentStaff.ParentInstrument.GetMusicSheet.Rules.TabStaffInterlineHeight*this.ParentStaff.StafflineCount;break}else switch(this.ParentStaff.StafflineCount){case 4:this.bottomLineOffset=1;break;case 3:this.topLineOffset=1,this.bottomLineOffset=1;break;case 2:this.topLineOffset=2,this.bottomLineOffset=1;break;case 1:this.topLineOffset=2,this.bottomLineOffset=2;break}}get Measures(){return this.measures}set Measures(R){this.measures=R}get StaffLines(){return this.staffLines}set StaffLines(R){this.staffLines=R}get Index(){return this.parentMusicSystem.StaffLines.indexOf(this)}get NextStaffLine(){const R=this.Index;return R!==this.parentMusicSystem.StaffLines.length?this.parentMusicSystem.StaffLines[R+1]:void 0}get LyricLines(){return this.lyricLines}get AbstractExpressions(){return this.abstractExpressions}set AbstractExpressions(R){this.abstractExpressions=R}set LyricLines(R){this.lyricLines=R}get LyricsDashes(){return this.lyricsDashes}set LyricsDashes(R){this.lyricsDashes=R}get ParentMusicSystem(){return this.parentMusicSystem}set ParentMusicSystem(R){this.parentMusicSystem=R}get ParentStaff(){return this.parentStaff}set ParentStaff(R){this.parentStaff=R}get SkyBottomLineCalculator(){return this.skyBottomLine}get SkyLine(){return this.skyBottomLine.SkyLine}get BottomLine(){return this.skyBottomLine.BottomLine}get OctaveShifts(){return this.octaveShifts}set OctaveShifts(R){this.octaveShifts=R}get StaffHeight(){return this.staffHeight}get TopLineOffset(){return this.topLineOffset}get BottomLineOffset(){return this.bottomLineOffset}get GraphicalSlurs(){return this.graphicalSlurs}addSlurToStaffline(R){this.graphicalSlurs.push(R)}addActivitySymbolClickArea(){const R=new StaffLineActivitySymbol(this),F=this.PositionAndShape;R.PositionAndShape.RelativePosition=new PointF2D(F.RelativePosition.x+F.BorderRight+.5,F.RelativePosition.y+.5),R.PositionAndShape.Parent=this.parentMusicSystem.PositionAndShape}isPartOfMultiStaffInstrument(){return this.parentStaff.ParentInstrument.Staves.length>1}findClosestStaffEntry(R){let F;for(let D=0,G=this.Measures.length;D0){const Y=q.map(J=>J.PositionAndShape.Center.y),Q=Math.max(...Y),Z=((U=window.GYM)==null?void 0:U.noNeedContinuousDynamic)||!1,K=((W=window.GYM)==null?void 0:W.noNeedGraphicalContinuousDynamic)||!1;for(let J=0;J0?q[J-1]:void 0;if(se){const ae=this.getOverlap(ie.PositionAndShape,se.PositionAndShape);ie.squeeze(-(ae.x+this.rules.DynamicExpressionSpacer))}if(re){const ae=this.getOverlap(re.PositionAndShape,ie.PositionAndShape);ie.squeeze(ae.x+this.rules.DynamicExpressionSpacer)}}}}}getDistance(R,F){const D=R.RelativePosition.x+R.BorderMarginRight,G=F.RelativePosition.x+F.BorderMarginLeft,U=R.RelativePosition.y+R.BorderMarginBottom,W=F.RelativePosition.y+F.BorderMarginTop;return new PointF2D(G-D,W-U)}getOverlap(R,F){return new PointF2D(R.RelativePosition.x+R.BorderMarginRight-(F.RelativePosition.x+F.BorderMarginLeft),R.RelativePosition.y+R.BorderMarginBottom-(F.RelativePosition.y+F.BorderMarginTop))}}class VexFlowStaffLine extends StaffLine{constructor(R,F){super(R,F),this.slursInVFStaffLine=[],this.alignmentManager=new AlignmentManager(this)}get SlursInVFStaffLine(){return this.slursInVFStaffLine}addVFSlurToVFStaffline(R){this.slursInVFStaffLine.push(R)}get AlignmentManager(){return this.alignmentManager}}const VF$6=Vex.Flow;class VexFlowMultiRestMeasure extends VexFlowMeasure{constructor(R,F=void 0,D=void 0){super(R,F,D),this.minimumStaffEntriesWidth=-1,D?this.rules=D.ParentMusicSystem.rules:F&&(this.rules=F.Rules),this.resetLayout(),this.multiRestElement=new VF$6.MultiMeasureRest(F.multipleRestMeasures,{})}draw(R){var U,W,q,Y,Q;const F=R.openGroup();(U=F==null?void 0:F.classList)==null||U.add("vf-measure");const D=R.openGroup();(W=D==null?void 0:D.classList)==null||W.add("vf-stave"),D==null||D.setAttribute("id",(Y=(q=this.stave)==null?void 0:q.attrs)==null?void 0:Y.id),this.stave.setContext(R).draw(),R.closeGroup();const G=R.openGroup();(Q=G==null?void 0:G.classList)==null||Q.add("vf-voices"),this.multiRestElement.setStave(this.stave),this.multiRestElement.setContext(R),this.multiRestElement.draw(),R.closeGroup();for(const Z of this.connectors)Z.setContext(R).draw();return R.closeGroup(),F}format(){}getVoicesWithinMeasure(){return[]}getGraphicalVoiceEntriesPerVoice(R){return[]}getRestFilledVexFlowStaveNotesPerVoice(R){return[]}handleBeam(R,F){}handleTuplet(R,F){}finalizeBeams(){}finalizeTuplets(){}layoutStaffEntry(R){}graphicalMeasureCreatedCalculations(){}createArticulations(){}createOrnaments(){}createFingerings(R){}getVFStave(){return this.stave}}const VF$5=Vex.Flow;class VexFlowBackend{getInnerElement(){return this.inner}getCanvas(){return this.canvas}getRenderElement(){let R=this.canvas;return this.getVexflowBackendType()===VF$5.Renderer.Backends.CANVAS&&(R=this.inner),R}getRenderer(){return this.renderer}removeAllChildrenFromContainer(R){for(;R.children.length!==0;)R.removeChild(R.children.item(0))}removeFromContainer(R){const F=this.getRenderElement();for(let D=0;D \r<`)),U.download="opensheetmusicdisplay_download.svg",U.innerHTML=window.location.href+"/download",document.body.appendChild(U)}}class VexFlowInstantaneousDynamicExpression extends GraphicalInstantaneousDynamicExpression{constructor(R,F,D){super(R,F,D);const G=new Label(this.Expression);this.label=new GraphicalLabel(G,this.rules.ContinuousDynamicTextHeight,TextAlignmentEnum.CenterCenter,this.rules,this.PositionAndShape),this.label.Label.fontStyle=FontStyles.BoldItalic,this.label.setLabelPositionAndShapeBorders(),this.PositionAndShape.calculateBoundingBox()}get InstantaneousDynamic(){return this.mInstantaneousDynamicExpression}get Expression(){return DynamicEnum[this.mInstantaneousDynamicExpression.DynEnum]}}class GraphicalOctaveShift extends GraphicalObject{constructor(R,F){super(),this.getOctaveShift=R,this.setSymbol(),this.PositionAndShape=new BoundingBox$1(this,F)}setSymbol(){switch(this.getOctaveShift.Type){case OctaveEnum.VA8:this.octaveSymbol=MusicSymbol.VA8;break;case OctaveEnum.VB8:this.octaveSymbol=MusicSymbol.VB8;break;case OctaveEnum.MA15:this.octaveSymbol=MusicSymbol.MA15;break;case OctaveEnum.MB15:this.octaveSymbol=MusicSymbol.MB15;break;default:throw new ArgumentOutOfRangeException("")}}}const VF$2=Vex.Flow;class VexFlowOctaveShift extends GraphicalOctaveShift{constructor(R,F){switch(super(R,F),R.Type){case OctaveEnum.VA8:this.position=VF$2.TextBracket.Positions.TOP,this.supscript="va",this.text="8";break;case OctaveEnum.MA15:this.position=VF$2.TextBracket.Positions.TOP,this.supscript="ma",this.text="15";break;case OctaveEnum.VB8:this.position=VF$2.TextBracket.Positions.BOTTOM,this.supscript="vb",this.text="8";break;case OctaveEnum.MB15:this.position=VF$2.TextBracket.Positions.BOTTOM,this.supscript="mb",this.text="15";break;default:log$2.error("Unknown or NONE octaveshift. This should not be called!");break}}setStartNote(R){for(const F of R.graphicalVoiceEntries){const D=F;if(D!=null&&D.vfStaveNote)return this.startNote=D.vfStaveNote,!0}return!1}setEndNote(R){for(const F of R.graphicalVoiceEntries){const D=F;if(D!=null&&D.vfStaveNote)return this.endNote=D.vfStaveNote,!0}return!1}getTextBracket(){return new VF$2.TextBracket({position:this.position,start:this.startNote,stop:this.endNote,superscript:this.supscript,text:this.text})}}Vex.Flow;class VexflowStafflineNoteCalculator{constructor(R){this.staffPitchListMapping=new Dictionary,this.baseLineNote=NoteEnum.B,this.baseLineOctave=1,this.rules=R}trackNote(R){if(!(R instanceof VexFlowGraphicalNote)||R.Clef().ClefType!==ClefEnum.percussion||R.sourceNote.isRest()||this.rules.PercussionOneLineCutoff===0||this.rules.PercussionForceVoicesOneLineCutoff===-1)return;const F=R.parentVoiceEntry.parentStaffEntry.sourceStaffEntry.ParentStaff.idInMusicSheet;let D;this.staffPitchListMapping.containsKey(F)||this.staffPitchListMapping.setValue(F,new Array),D=this.staffPitchListMapping.getValue(F);const G=R.sourceNote.Pitch;VexflowStafflineNoteCalculator.findOrInsert(D,G)}static PitchIndexOf(R,F,D=0){if(D>R.length-1)return-1;for(let G=D;Gthis.rules.PercussionOneLineCutoff&&!G)return R;const U=R,W=R.sourceNote.Pitch;let q=this.baseLineNote,Y=this.baseLineOctave;if(this.rules.PercussionUseXMLDisplayStep&&R.sourceNote.displayStepUnpitched!==void 0&&(q=R.sourceNote.displayStepUnpitched,Y=R.sourceNote.displayOctaveUnpitched+this.rules.PercussionOneLineXMLDisplayStepOctaveOffset),D.length<=this.rules.PercussionForceVoicesOneLineCutoff)U.setAccidental(new Pitch(q,Y,W.Accidental));else{const Q=VexflowStafflineNoteCalculator.PitchIndexOf(D,W);if(Q>-1){const Z=Math.ceil(D.length/2);if(!this.rules.PercussionUseXMLDisplayStep)if(Q>=Z)switch(Y=2,(Q-Z)%5){case 1:q=NoteEnum.E;break;case 2:q=NoteEnum.G;break;case 3:q=NoteEnum.B;break;case 4:q=NoteEnum.D,Y=3;break;default:q=NoteEnum.C;break}else switch(Q%5){case 1:q=NoteEnum.F;break;case 2:q=NoteEnum.D;break;case 3:q=NoteEnum.B,Y=0;break;case 4:q=NoteEnum.G,Y=0;break;default:q=NoteEnum.A;break}const K=new Pitch(q,Y,W.Accidental);U.setAccidental(K);const J=U.parentVoiceEntry.parentVoiceEntry;!this.rules.SetWantedStemDirectionByXml&&J.Notes.length<2&&(K.Octave>this.baseLineOctave||K.FundamentalNote===this.baseLineNote&&K.Octave===this.baseLineOctave?U.parentVoiceEntry.parentVoiceEntry.WantedStemDirection=StemDirectionType.Up:U.parentVoiceEntry.parentVoiceEntry.WantedStemDirection=StemDirectionType.Down)}}return U}getStafflineUniquePositionCount(R){return this.staffPitchListMapping.containsKey(R)?this.staffPitchListMapping.getValue(R).length:0}}class SkyBottomLineCalculator{constructor(R){this.mStaffLineParent=R,this.mRules=R.ParentMusicSystem.rules}calculateLines(){const R=Math.max(Math.ceil(this.StaffLineParent.PositionAndShape.Size.width*this.SamplingUnit),1);this.mSkyLine=[],this.mBottomLine=[];const F=new CanvasVexFlowBackend(this.StaffLineParent.ParentMusicSystem.rules);for(const W of this.StaffLineParent.Measures){W.PositionAndShape.calculateAbsolutePositionsRecursive(0,0);const q=W.getVFStave();let Y=q.getWidth();if(!(Y>0)&&!W.IsExtraGraphicalMeasure&&(log$2.warn("SkyBottomLineCalculator: width not > 0 in measure "+W.MeasureNumber),Y=50),!(Y>=50)&&W.IsExtraGraphicalMeasure)continue;F.initializeHeadless(Y);const Q=F.getContext(),Z=F.getCanvas();Y=Z.width;const K=Z.height;this.mRules.DYMusicScoreType==="jianpu"?q.setY(q.y-50):q.setY(q.y+100);const J=q.getWidth();q.setWidth(Y),W.format(),q.setWidth(J);try{W.draw(Q)}catch(le){log$2.warn("SkyBottomLineCalculator.calculateLines.draw",le)}const ie=Q.getImageData(0,0,Y,K),ne=4,se=Math.max(Math.ceil(W.PositionAndShape.Size.width*this.mRules.SamplingUnit),1),re=new Array(se),ae=new Array(se);for(let le=0;le0){re[le]=ce;break}}for(let ce=K;ce>0;ce--){const de=ce*Y*ne+le*ne;if(ie.data[de+3]>0){ae[le]=ce;break}}}for(let le=0;le(W-Math.max(...this.mSkyLine))/unitInPixels+this.StaffLineParent.TopLineOffset),this.mBottomLine=this.mBottomLine.map(W=>(W-Math.min(...this.mBottomLine))/unitInPixels+this.StaffLineParent.BottomLineOffset)}findPreviousValidNumber(R,F){for(let D=R;D>=0;D--)if(!isNaN(F[D]))return F[D];return 0}findNextValidNumber(R,F){if(R>=F.length)return F[R-1];for(let D=R;D=this.BottomLine.length&&(D=this.BottomLine.length-1),G<0&&(G=0),G>=this.BottomLine.length&&(G=this.BottomLine.length),this.SkyLine[D]=R.y;for(let W=D+1;W=this.BottomLine.length&&(D=this.BottomLine.length-1),G<0&&(G=0),G>=this.BottomLine.length&&(G=this.BottomLine.length),this.BottomLine[D]=R.y;for(let W=D+1;WR)}setBottomLineWithValue(R){this.BottomLine.forEach(F=>R)}getLeftIndexForPointX(R,F){const D=Math.floor(R*this.SamplingUnit);return D<0?0:D>=F?F-1:D}getRightIndexForPointX(R,F){const D=Math.ceil(R*this.SamplingUnit);return D<0?0:D>=F?F-1:D}updateStaffLineBorders(){this.mStaffLineParent.PositionAndShape.BorderTop=this.getSkyLineMin(),this.mStaffLineParent.PositionAndShape.BorderMarginTop=this.getSkyLineMin(),this.mStaffLineParent.PositionAndShape.BorderBottom=this.getBottomLineMax(),this.mStaffLineParent.PositionAndShape.BorderMarginBottom=this.getBottomLineMax()}getSkyLineMin(){return Math.min(...this.SkyLine.filter(R=>!isNaN(R)))}getSkyLineMinAtPoint(R){const F=Math.round(R*this.SamplingUnit);return this.mSkyLine[F]}getSkyLineMinInRange(R,F){return this.getMinInRange(this.SkyLine,R,F)}getBottomLineMax(){return Math.max(...this.BottomLine.filter(R=>!isNaN(R)))}getBottomLineMaxAtPoint(R){const F=Math.round(R*this.SamplingUnit);return this.mBottomLine[F]}getBottomLineMaxInRange(R,F){return this.getMaxInRange(this.BottomLine,R,F)}getBottomLineMaxInBoundingBox(R){const F=Math.floor(R.AbsolutePosition.x+R.BorderLeft),D=Math.ceil(R.AbsolutePosition.x+R.BorderRight);return this.getMaxInRange(this.mBottomLine,F,D)}updateWithBoundingBoxRecursively(R){if(R.ChildElements&&R.ChildElements.length>0)for(const F of R.ChildElements)this.updateWithBoundingBoxRecursively(F);else{const F=R.BorderTop+R.AbsolutePosition.y,D=R.BorderBottom+R.AbsolutePosition.y;if(F<0){const G=Math.floor(R.AbsolutePosition.x+R.BorderLeft),U=Math.ceil(R.AbsolutePosition.x+R.BorderRight);this.updateInRange(this.mSkyLine,G,U,F)}else if(D>this.StaffLineParent.StaffHeight){const G=Math.floor(R.AbsolutePosition.x+R.BorderLeft),U=Math.ceil(R.AbsolutePosition.x+R.BorderRight);this.updateInRange(this.mBottomLine,G,U,D)}}}updateInRange(R,F=0,D=R.length,G=0){if(F=Math.floor(F*this.SamplingUnit),D=Math.ceil(D*this.SamplingUnit),DR.length&&(D=R.length);for(let U=F;UMath.abs(R[U])?G:R[U]}setInRange(R,F=0,D=R.length,G=0){if(F=Math.floor(F*this.SamplingUnit),D=Math.ceil(D*this.SamplingUnit),DR.length&&(D=R.length);for(let U=F;U=R.length&&(F=R.length-1),D<0&&(D=0),D>=R.length&&(D=R.length),F>=0&&D<=R.length)return Math.min(...R.slice(F,D+1))}getMaxInRange(R,F,D){if(F=Math.floor(F*this.SamplingUnit),D=Math.ceil(D*this.SamplingUnit),!R)return Number.MIN_VALUE;if(F<0&&(F=0),F>=R.length&&(F=R.length-1),D<0&&(D=0),D>=R.length&&(D=R.length),F>=0&&D<=R.length)return Math.max(...R.slice(F,D+1))}get SamplingUnit(){return this.mRules.SamplingUnit}get StaffLineParent(){return this.mStaffLineParent}get SkyLine(){return this.mSkyLine}get BottomLine(){return this.mBottomLine}}var parser$3={exports:{}};/*! * d-path-parser - v1.0.0 * by Massimo Artizzu (MaxArt2501) * * https://github.com/MaxArt2501/d-path-parser * * Licensed under the MIT License * See LICENSE for details */(function(B,R){(function(F,D){B.exports=D()})(commonjsGlobal$2,function(){return function(D){for(var G={command:/\s*([achlmqstvz])/gi,number:/\s*([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/gi,comma:/\s*(?:(,)|\s)/g,flag:/\s*([01])/g},U={number:function(se){return+ie("number",se)},"coordinate pair":function(se){var re=ie("number",se);if(re===null&&!se)return null;ie("comma");var ae=ie("number",!0);return{x:+re,y:+ae}},"arc definition":function(se){var re=U["coordinate pair"](se);if(!re&&!se)return null;ie("comma");var ae=+ie("number",!0);ie("comma",!0);var le=!!+ie("flag",!0);ie("comma");var ce=!!+ie("flag",!0);ie("comma");var he=U["coordinate pair"](!0);return{radii:re,rotation:ae,large:le,clockwise:ce,end:he}}},W=0,q=[];WF.bottom)switch(R.tagName.toLowerCase()){case"g":for(const J of R.children)this.recursiveUpdate(J,F,D,G);break;case"circle":case"rect":case"line":case"path":let Z=Math.floor((U.x-D.x)/unitInPixels*this.mRules.SamplingUnit);const K=Z+Math.ceil(U.width/unitInPixels*this.mRules.SamplingUnit);if(R.parentElement.classList.contains("vf-beams")&&R.hasAttribute("d")){const J=parse$3(R.getAttribute("d"));if(J.length===5){const ie=J[0],ne=J[3],se=(ne.end.y-ie.end.y)/(ne.end.x-ie.end.x);let re=ie.end.y/unitInPixels;for(Z;Z<=K;Z++)reQ[Z]&&(Q[Z]=re),re+=se/this.mRules.SamplingUnit}}else for(Z;Z<=K;Z++)WQ[Z]&&(Q[Z]=q);break}}calculateLinesForMeasure(R,F){var me,fe,ge;const D=F.getBBox(),G=Math.max(Math.round(R.PositionAndShape.Size.width*this.mRules.SamplingUnit),1),U=D.height/unitInPixels,q=F.getElementsByClassName("vf-stave")[0].getBBox();let Y=(q==null?void 0:q.height)/unitInPixels,Q=(q==null?void 0:q.y)/unitInPixels;const Z=R.getVFStave();let K=((me=Z.options)!=null&&me.num_lines?Z.options.num_lines:5)-1,J=-1,ie=0;const ne=[K];for(const Se of(fe=Z.options)==null?void 0:fe.line_config)Se.visible?(J===-1&&(J=ie),ne.push(ie)):K--,ie++;const se=ne.pop();J===-1&&(J=0),K=se-J;const re=(ge=Z.options)==null?void 0:ge.spacing_between_lines_px,ae=K*re/unitInPixels;Y-ae>.2&&(Y=ae,Q=J*re/unitInPixels);const le=Q+Y,ce=new Array(G).fill(Q),he=new Array(G).fill(le),de=[ce,he];if(U>Y)for(const Se of F.children)this.recursiveUpdate(Se,{top:Q,bottom:le},D,[ce,he]);return de}calculateLines(){this.mSkyLine=[],this.mBottomLine=[];const R=document.createElement("div");document.body.append(R);const F=new SvgVexFlowBackend(this.mRules);F.initialize(R,1,"0");const D=F.getContext(),G=D.openGroup();G.classList.add("staffline");for(const U of this.StaffLineParent.Measures){U.PositionAndShape.calculateAbsolutePositionsRecursive(0,0),U.setAbsoluteCoordinates(U.PositionAndShape.AbsolutePosition.x*unitInPixels,U.PositionAndShape.AbsolutePosition.y*unitInPixels);const W=U.draw(D),[q,Y]=this.calculateLinesForMeasure(U,W);this.mSkyLine.push(...q),this.mBottomLine.push(...Y)}D.closeGroup();for(const U of G.getElementsByClassName("vf-ties"))for(const W of U.childNodes)if(W.nodeName.toLowerCase()==="path"){const q=W.getBBox();let Y=Math.floor(q.x/unitInPixels*this.mRules.SamplingUnit);const Q=Y+Math.ceil(q.width/unitInPixels*this.mRules.SamplingUnit),Z=q.y/unitInPixels,K=q.height/unitInPixels+Z;for(Y;Y<=Q;Y++)Zthis.mBottomLine[Y]&&(this.mBottomLine[Y]=K)}F.clear(),R.remove()}}const VF$1=Vex.Flow;class VexFlowGraphicalSymbolFactory{constructor(){this.hasBBox=!1,document.createElementNS("http://www.w3.org/2000/svg","g").getBBox!==void 0&&(this.hasBBox=!0)}createMusicSystem(R,F){return new VexFlowMusicSystem(R,F)}createStaffLine(R,F){return new VexFlowStaffLine(R,F)}createSkyBottomLineCalculator(R){return R.ParentMusicSystem.rules.PerformanceMode&&this.hasBBox?new SkyBottomLineCalculatorSVG(R):new SkyBottomLineCalculator(R)}createGraphicalMeasure(R,F,D=!1){return new VexFlowMeasure(F,R,void 0)}createMultiRestMeasure(R,F,D){return new VexFlowMultiRestMeasure(F,R,D)}createTabStaffMeasure(R,F){return new VexFlowTabMeasure(F,R)}createExtraGraphicalMeasure(R){const F=new VexFlowMeasure(R.ParentStaff,void 0,R);return F.IsExtraGraphicalMeasure=!0,F.ExtraGraphicalMeasurePreviousMeasure=R.Measures.last(),F}createStaffEntry(R,F){return new VexFlowStaffEntry(F,R,void 0)}createVoiceEntry(R,F){return new VexFlowVoiceEntry(R,F)}createNote(R,F,D,G=OctaveEnum.NONE,U,W=void 0){return new VexFlowGraphicalNote(R,F,D,G,U,W)}createGraceNote(R,F,D,G,U=OctaveEnum.NONE){return new VexFlowGraphicalNote(R,F,D,U,G)}addGraphicalAccidental(R,F){R.setAccidental(F)}addFermataAtTiedEndNote(R,F){}createInStaffClef(R,F){const D=R,G=VexFlowConverter.Clef(F,"small");D.vfClefBefore=new VF$1.ClefNote(G.type,G.size,G.annotation)}createChordSymbols(R,F,D,G){const U=F.parentMeasure.parentSourceMeasure.Rules;let W=0;const q=U.ChordSymbolXSpacing;for(const Y of R.ChordContainers){const Q=new GraphicalChordSymbolContainer(Y,F.PositionAndShape,U.ChordSymbolTextHeight,D,G,F.parentMeasure.parentSourceMeasure.Rules),Z=Q.GraphicalLabel;Z.PositionAndShape.RelativePosition.y-=U.ChordSymbolYOffset,Z.PositionAndShape.RelativePosition.x+=W,Z.setLabelPositionAndShapeBorders(),Q.PositionAndShape.calculateBoundingBox(),F.graphicalChordContainers.push(Q),W+=Z.PositionAndShape.Size.width+q}}createGraphicalTechnicalInstruction(R,F){}}Vex.Flow;class GraphicalTie{constructor(R,F=void 0,D=void 0){this.tie=R,this.startNote=F,this.endNote=D}get SVGElement(){return this.vfTie.getAttribute("el")}get GetTie(){return this.tie}get StartNote(){return this.startNote}get Tie(){return this.tie}set StartNote(R){this.startNote=R}get EndNote(){return this.endNote}set EndNote(R){this.endNote=R}}class GraphicalLyricEntry{constructor(R,F,D,G){this.lyricsEntry=R,this.graphicalStaffEntry=F;const U=F.parentMeasure.parentSourceMeasure.Rules.LyricsAlignmentStandard;R.Text.length>=4&&R.Parent.Notes[0].Length.Denominator>4&&TextAlignmentEnum.LeftBottom;const W=new Label(R.Text);this.graphicalLabel=new GraphicalLabel(W,D,U,this.graphicalStaffEntry.parentMeasure.parentSourceMeasure.Rules,F.PositionAndShape),this.graphicalLabel.PositionAndShape.RelativePosition=new PointF2D(0,G),U===TextAlignmentEnum.LeftBottom&&(this.graphicalLabel.PositionAndShape.RelativePosition.x-=1)}get LyricsEntry(){return this.lyricsEntry}get ParentLyricWord(){return this.graphicalLyricWord}set ParentLyricWord(R){this.graphicalLyricWord=R}get GraphicalLabel(){return this.graphicalLabel}set GraphicalLabel(R){this.graphicalLabel=R}get StaffEntryParent(){return this.graphicalStaffEntry}set StaffEntryParent(R){this.graphicalStaffEntry=R}}class GraphicalLyricWord{constructor(R){this.graphicalLyricsEntries=[],this.lyricWord=R,this.initialize()}get GetLyricWord(){return this.lyricWord}get GraphicalLyricsEntries(){return this.graphicalLyricsEntries}set GraphicalLyricsEntries(R){this.graphicalLyricsEntries=R}isFilled(){for(let R=0;R=_GraphicalCurve.bezierCurveStepSize?new PointF2D:new PointF2D(_GraphicalCurve.oneMinusTPow3[R]*this.bezierStartPt.x+_GraphicalCurve.bezierFactorOne[R]*this.bezierStartControlPt.x+_GraphicalCurve.bezierFactorTwo[R]*this.bezierEndControlPt.x+_GraphicalCurve.tPow3[R]*this.bezierEndPt.x,_GraphicalCurve.oneMinusTPow3[R]*this.bezierStartPt.y+_GraphicalCurve.bezierFactorOne[R]*this.bezierStartControlPt.y+_GraphicalCurve.bezierFactorTwo[R]*this.bezierEndControlPt.y+_GraphicalCurve.tPow3[R]*this.bezierEndPt.y)}};let GraphicalCurve=_GraphicalCurve;GraphicalCurve.bezierCurveStepSize=1e3;const _GraphicalSlur=class extends GraphicalCurve{constructor(B,R){super(),this.staffEntries=[],this.slur=B,this.rules=R}static Compare(B,R){if(B.staffEntries.length<1)return-1;if(R.staffEntries.length<1)return 1;const F=Fraction$1.minus(B.staffEntries[B.staffEntries.length-1].getAbsoluteTimestamp(),B.staffEntries[0].getAbsoluteTimestamp()),D=Fraction$1.minus(R.staffEntries[R.staffEntries.length-1].getAbsoluteTimestamp(),R.staffEntries[0].getAbsoluteTimestamp());return F.RealValue>D.RealValue?1:D.RealValue>F.RealValue?-1:0}calculateCurve(B){const R=this.staffEntries[0],F=this.staffEntries[this.staffEntries.length-1];let D=R.findGraphicalNoteFromNote(this.slur.StartNote);!D&&this.graceStart&&(D=R.findGraphicalNoteFromGraceNote(this.slur.StartNote)),D||(D=R.findEndTieGraphicalNoteFromNoteWithStartingSlur(this.slur.StartNote,this.slur));let G=F.findGraphicalNoteFromNote(this.slur.EndNote);!G&&this.graceEnd&&(G=F.findGraphicalNoteFromGraceNote(this.slur.EndNote));const U=R.parentMeasure.ParentStaffLine,W=U.SkyBottomLineCalculator;this.calculatePlacement(W,U);const q=this.calculateStartAndEnd(D,G,U,B,W),Y=q.startX,Q=q.endX;let Z=q.startY,K=q.endY;const J=B.SlurTangentMinAngle,ie=B.SlurTangentMaxAngle;let ne;if(this.placement===PlacementEnum.Above){Z-=B.SlurNoteHeadYOffset,K-=B.SlurNoteHeadYOffset;const se=new PointF2D(this.staffEntries[0].parentMeasure.PositionAndShape.RelativePosition.x+this.staffEntries[0].PositionAndShape.RelativePosition.x,Z);D?se.x+=this.staffEntries[0].PositionAndShape.BorderRight:se.x=this.staffEntries[0].parentMeasure.beginInstructionsWidth,this.graceStart&&(se.x+=F.PositionAndShape.RelativePosition.x);const re=new PointF2D(this.staffEntries[this.staffEntries.length-1].parentMeasure.PositionAndShape.RelativePosition.x+this.staffEntries[this.staffEntries.length-1].PositionAndShape.RelativePosition.x,K);if(G?re.x+=this.staffEntries[this.staffEntries.length-1].PositionAndShape.BorderLeft:re.x=this.staffEntries[this.staffEntries.length-1].parentMeasure.PositionAndShape.RelativePosition.x+this.staffEntries[this.staffEntries.length-1].parentMeasure.PositionAndShape.Size.width,this.graceEnd&&(re.x+=F.staffEntryParent.PositionAndShape.RelativePosition.x),ne=this.calculateTopPoints(se,re,U,W),ne.length===0){const Ye=new PointF2D((re.x-se.x)/2+se.x,(re.y-se.y)/2+se.y);ne.push(Ye)}const ae=Math.atan((K-Z)/(Q-Y)),le=new PointF2D(0,0);let ce=new PointF2D(Q-Y,-(K-Z));const he=Matrix2D.getRotationMatrix(ae),de=he.getTransposeMatrix();ce=he.vectorMultiplication(ce);const me=this.calculateTranslatedAndRotatedPointListAbove(ne,Y,Z,he);let fe=this.calculateMaxLeftSlope(me,le,ce),ge=this.calculateMaxRightSlope(me,le,ce);const Se=le.y-le.x*fe,Ee=ce.y-ce.x*ge,ve=new PointF2D;let xe=!1;Math.abs(Math.abs(fe)-Math.abs(ge))<1e-4?(ve.x=ce.x/2,ve.y=0,xe=!0):(ve.x=(Ee-Se)/(fe-ge),ve.y=fe*ve.x+Se);const Pe=this.calculateHeightWidthRatio(ce.x,me);let ye=0,Te=0;if(Math.abs(Pe)>.001){const Ye=Math.abs(fe/(Pe*2)),et=Math.abs(fe);ye=Math.max(0,et*(Math.min(10,Ye-1)/10)),fe-=ye;const Je=Math.abs(ge/(Pe*2)),st=Math.abs(ge);Te=Math.max(0,st*(Math.min(10,Je-1)/10)),ge+=Te}let Le=J,we=-J;if(!xe){const Ye=this.calculateAngles(J,fe,ge,ie);Le=Ye.startAngle,we=Ye.endAngle}const Ae=this.calculateControlPoints(ce.x,Le,we,me,Pe,Z,K);let Me=Ae.startControlPoint,ke=Ae.endControlPoint;Me=de.vectorMultiplication(Me),Me.x+=Y,Me.y=-Me.y+Z,ke=de.vectorMultiplication(ke),ke.x+=Y,ke.y=-ke.y+Z,this.bezierStartPt=new PointF2D(Y,Z-ye),this.bezierStartControlPt=new PointF2D(Me.x,Me.y-ye),this.bezierEndControlPt=new PointF2D(ke.x,ke.y-Te),this.bezierEndPt=new PointF2D(Q,K-Te);const Ne=U.SkyLine.length,Ie=W.getLeftIndexForPointX(this.bezierStartPt.x,Ne),Ge=W.getLeftIndexForPointX(this.bezierEndPt.x,Ne),ze=this.bezierEndPt.x-this.bezierStartPt.x,Ve=W.SamplingUnit;for(let Ye=Ie;Ye=Ie&&(U.SkyLine[st]=Math.min(U.SkyLine[st],Je.y)),st++,st.001){const Ye=Math.abs(fe/(Pe*2)),et=Math.abs(fe);ye=Math.max(0,et*(Math.min(10,Ye-1)/10)),fe-=ye;const Je=Math.abs(ge/(Pe*2)),st=Math.abs(ge);Te=Math.max(0,st*(Math.min(10,Je-1)/10)),ge+=Te}let Le=J,we=-J;if(!xe){const Ye=this.calculateAngles(J,fe,ge,ie);Le=Ye.startAngle,we=Ye.endAngle}const Ae=this.calculateControlPoints(ce.x,Le,we,me,Pe,Z,K);let Me=Ae.startControlPoint,ke=Ae.endControlPoint;Me=de.vectorMultiplication(Me),Me.x+=Y,Me.y+=Z,ke=de.vectorMultiplication(ke),ke.x+=Y,ke.y+=Z,this.bezierStartPt=new PointF2D(Y,Z+ye),this.bezierStartControlPt=new PointF2D(Me.x,Me.y+ye),this.bezierEndControlPt=new PointF2D(ke.x,ke.y+Te),this.bezierEndPt=new PointF2D(Q,K+Te);const Ne=U.BottomLine.length,Ie=W.getLeftIndexForPointX(this.bezierStartPt.x,Ne),Ge=W.getLeftIndexForPointX(this.bezierEndPt.x,Ne),ze=this.bezierEndPt.x-this.bezierStartPt.x,Ve=W.SamplingUnit;for(let Ye=Ie;Ye=Ie&&(U.BottomLine[st]=Math.max(U.BottomLine[st],Je.y)),st++,st0){this.placement=PlacementEnum.Above;return}const F=this.staffEntries[0],D=this.staffEntries[this.staffEntries.length-1],G=F.graphicalVoiceEntries[0].parentVoiceEntry.StemDirection,U=D.graphicalVoiceEntries[0].parentVoiceEntry.StemDirection;if(G===U)this.placement=G===StemDirectionType.Up?PlacementEnum.Below:PlacementEnum.Above;else{let W=F.PositionAndShape.BorderLeft+F.PositionAndShape.RelativePosition.x+F.parentMeasure.PositionAndShape.RelativePosition.x,q=D.PositionAndShape.BorderRight+D.PositionAndShape.RelativePosition.x+D.parentMeasure.PositionAndShape.RelativePosition.x;this.graceStart&&(W+=D.PositionAndShape.RelativePosition.x),this.graceEnd&&(q+=D.staffEntryParent.PositionAndShape.RelativePosition.x);const Y=B.getSkyLineMinInRange(W,q)*-1;B.getBottomLineMaxInRange(W,q)-R.StaffHeight>Y?this.placement=PlacementEnum.Above:this.placement=PlacementEnum.Below}}calculateTopPoints(B,R,F,D){const G=[];let U=D.getRightIndexForPointX(B.x,F.SkyLine.length),W=D.getLeftIndexForPointX(R.x,F.SkyLine.length);U<0&&(U=0),W>=F.SkyLine.length&&(W=F.SkyLine.length-1);for(let q=U;q=F.BottomLine.length&&(W=F.BottomLine.length-1);for(let q=U;qQ&&B>Z&&(Y+=B/70*this.rules.SlurHeightFlattenLongSlursFactorByWidth,Y*=1+R/30*this.rules.SlurHeightFlattenLongSlursFactorByAngle,q/=Y);const K=Math.min(.5,Math.max(.1,1.7*R/80*q*Math.pow(Math.max(G,.05),.4))),J=Math.min(.5,Math.max(.1,1.7*-F/80*q*Math.pow(Math.max(G,.05),.4))),ie=new PointF2D;ie.x=B*K*Math.cos(R*_GraphicalSlur.degreesToRadiansFactor),ie.y=B*K*Math.sin(R*_GraphicalSlur.degreesToRadiansFactor);const ne=new PointF2D;ne.x=B-B*J*Math.cos(F*_GraphicalSlur.degreesToRadiansFactor),ne.y=-(B*J*Math.sin(F*_GraphicalSlur.degreesToRadiansFactor));let se=ie.y-ne.y;for(;this.rules.SlurMaximumYControlPointDistance&&Math.abs(se)>this.rules.SlurMaximumYControlPointDistance;)se<0?(ie.y+=1,ne.y-=1):(ie.y-=1,ne.y+=1),se=ie.y-ne.y;return{startControlPoint:ie,endControlPoint:ne}}calculateAngles(B,R,F,D){let U=Math.atan(R)/_GraphicalSlur.degreesToRadiansFactor;R>0?U+=20:U-=20;let W=Math.atan(F)/_GraphicalSlur.degreesToRadiansFactor;F<0?W-=20:W+=20;const q=Math.min(Math.max(B,U),D),Y=Math.max(Math.min(-B,W),-D);return{startAngle:q,endAngle:Y}}};let GraphicalSlur=_GraphicalSlur;GraphicalSlur.degreesToRadiansFactor=Math.PI/180;class GraphicalPedal extends GraphicalObject{constructor(R,F){super(),this.getPedal=R,this.setSymbol(),this.PositionAndShape=new BoundingBox$1(this,F)}setSymbol(){!this.getPedal.IsLine&&this.getPedal.IsSign?this.pedalSymbol=MusicSymbol.PEDAL_SYMBOL:this.getPedal.IsLine&&this.getPedal.IsSign?this.pedalSymbol=MusicSymbol.PEDAL_MIXED:this.pedalSymbol=MusicSymbol.PEDAL_BRACKET}}class VexFlowPedal extends GraphicalPedal{constructor(R,F,D=!1,G=!1){switch(super(R,F),this.vfStyle=Vex.Flow.PedalMarking.Styles.BRACKET,this.ChangeBegin=!1,this.ChangeEnd=!1,this.line=-3,this.EndSymbolPositionAndShape=void 0,this.ChangeBegin=R.ChangeBegin,this.ChangeEnd=R.ChangeEnd,this.pedalSymbol){case MusicSymbol.PEDAL_SYMBOL:this.vfStyle=Vex.Flow.PedalMarking.Styles.TEXT,this.EndSymbolPositionAndShape=new BoundingBox$1(this,F);break;case MusicSymbol.PEDAL_MIXED:D&&G?this.vfStyle=Vex.Flow.PedalMarking.Styles.BRACKET_OPEN_BOTH:D?this.vfStyle=Vex.Flow.PedalMarking.Styles.BRACKET_OPEN_BEGIN:G?this.vfStyle=Vex.Flow.PedalMarking.Styles.MIXED_OPEN_END:this.vfStyle=Vex.Flow.PedalMarking.Styles.MIXED;break;case MusicSymbol.PEDAL_BRACKET:default:D&&G?this.vfStyle=Vex.Flow.PedalMarking.Styles.BRACKET_OPEN_BOTH:D?this.vfStyle=Vex.Flow.PedalMarking.Styles.BRACKET_OPEN_BEGIN:G?this.vfStyle=Vex.Flow.PedalMarking.Styles.BRACKET_OPEN_END:this.vfStyle=Vex.Flow.PedalMarking.Styles.BRACKET;break}}setStartNote(R){if(!R)return!1;for(const F of R.graphicalVoiceEntries){const D=F;if(D!=null&&D.vfStaveNote)return this.startNote=D.vfStaveNote,this.startVfVoiceEntry=D,!0}return!1}setEndNote(R){if(!R)return!1;for(const F of R.graphicalVoiceEntries){const D=F;if(D!=null&&D.vfStaveNote)return this.endNote=D.vfStaveNote,this.endVfVoiceEntry=D,!0}return!1}setEndMeasure(R){this.endMeasure=R}CalculateBoundingBox(){}setLine(R){this.line=R}getPedalMarking(){var F,D,G,U;const R=new Vex.Flow.PedalMarking([this.startNote,this.endNote]);return this.endMeasure&&R.setEndStave(this.endMeasure.getVFStave()),R.setStyle(this.vfStyle),R.setLine(this.line),R.setCustomText(this.DepressText,this.ReleaseText),(((F=this.endVfVoiceEntry)==null?void 0:F.parentStaffEntry)===((U=(G=(D=this.endVfVoiceEntry)==null?void 0:D.parentStaffEntry)==null?void 0:G.parentMeasure)==null?void 0:U.staffEntries.last())||!this.endVfVoiceEntry)&&(R.EndsStave=!0),R.ChangeBegin=this.ChangeBegin,R.ChangeEnd=this.ChangeEnd,R}}class GraphicalWavyLine extends GraphicalObject{constructor(R,F){super(),this.getWavyLine=R,this.PositionAndShape=new BoundingBox$1(this,F)}}class VexflowVibratoBracket extends GraphicalWavyLine{constructor(R,F,D=!1){super(R,F),this.line=1,this.isVibrato=!1,this.toEndOfStopStave=!1,this.isVibrato=D}get ToEndOfStopStave(){return this.toEndOfStopStave}setStartNote(R){for(const F of R.graphicalVoiceEntries){const D=F;if(D!=null&&D.vfStaveNote)return this.startNote=D.vfStaveNote,this.startVfVoiceEntry=D,!0}return!1}setEndNote(R){for(const F of R.graphicalVoiceEntries){const D=F;if(D!=null&&D.vfStaveNote){this.endNote=D.vfStaveNote,this.endVfVoiceEntry=D;const G=this.endVfVoiceEntry.parentStaffEntry.parentMeasure.staffEntries,U=G[G.length-1];return this.toEndOfStopStave=U===this.endVfVoiceEntry.parentStaffEntry,!0}}return!1}CalculateBoundingBox(){const R=this.getVibratoBracket();this.boundingBox.Size.height=R.render_options.wave_height*.2}getVibratoBracket(){const R=new Vex.Flow.VibratoBracket({start:this.startNote,stop:this.endNote,toEndOfStopStave:this.toEndOfStopStave});return R.setLine(this.line),this.isVibrato?R.render_options.vibrato_width=20:R.render_options.wave_girth=4,R}}const VF=Vex.Flow;class VexFlowMusicSheetCalculator extends MusicSheetCalculator{constructor(R){var F,D,G,U,W,q,Y,Q;super(),this.beamsNeedUpdate=!1,this.rules=R,MusicSheetCalculator.symbolFactory=new VexFlowGraphicalSymbolFactory,MusicSheetCalculator.TextMeasurer=new VexFlowTextMeasurer(this.rules),MusicSheetCalculator.stafflineNoteCalculator=new VexflowStafflineNoteCalculator(this.rules),((F=this.rules.DefaultVexFlowNoteFont)==null?void 0:F.toLowerCase())==="gonville"?Vex.Flow.DEFAULT_FONT_STACK=[(D=Vex.Flow.Fonts)==null?void 0:D.Gonville,(G=Vex.Flow.Fonts)==null?void 0:G.Bravura,(U=Vex.Flow.Fonts)==null?void 0:U.Custom]:((W=this.rules.DefaultVexFlowNoteFont)==null?void 0:W.toLowerCase())==="petaluma"&&(Vex.Flow.DEFAULT_FONT_STACK=[(q=Vex.Flow.Fonts)==null?void 0:q.Petaluma,(Y=Vex.Flow.Fonts)==null?void 0:Y.Gonville,(Q=Vex.Flow.Fonts)==null?void 0:Q.Bravura])}clearRecreatedObjects(){super.clearRecreatedObjects(),MusicSheetCalculator.stafflineNoteCalculator=new VexflowStafflineNoteCalculator(this.rules);for(const R of this.graphicalMusicSheet.MeasureList)for(const F of R)F==null||F.clean()}formatMeasures(){for(const R of this.graphicalMusicSheet.MeasureList){if(!R||!R[0])continue;R[0].format();for(const D of R){for(const G of D.staffEntries)G.calculateXPosition();D.finalizeBeams()}}this.beamsNeedUpdate=!1}calculateMeasureXLayout(R){const F=[];for(const Z of R)Z&&F.push(Z);if(F.length===0)return 0;R=F;const D=[],G=new VF.Formatter({softmaxFactor:this.rules.SoftmaxFactorVexFlow});let U=R[0].staffEntries.length,W=1;for(const Z of R){if(!Z)continue;let K=0;for(const ne of Z.staffEntries)K+=ne.setMaxAccidentals();Z.parentSourceMeasure.ImplicitMeasure&&(U=Math.max(Z.staffEntries.length,U),W=Math.max(Z.staffEntries.length+K,W));const J=Z.vfVoices,ie=[];for(const ne in J)J.hasOwnProperty(ne)&&(ie.push(J[ne]),D.push(J[ne]));if(ie.length===0){log$2.debug("Found a measure with no voices. Continuing anyway.",J);continue}G.joinVoices(ie)}let q=12;const Y=R[0].parentSourceMeasure,Q=.3;if(D.length>0){q=G.preCalculateMinTotalWidth(D)/unitInPixels*this.rules.VoiceSpacingMultiplierVexflow+this.rules.VoiceSpacingAddendVexflow+U*Q,Y!=null&&Y.ImplicitMeasure&&(q=Y.Duration.RealValue/Y.ActiveTimeSignature.RealValue*q,U>1&&(q+=W*Q*1.5),q*=this.rules.PickupMeasureWidthMultiplier),MusicSheetCalculator.setMeasuresMinStaffEntriesWidth(R,q);const Z=(J,ie)=>{G.formatToStave(D,ie.getVFStave())},K=(J,ie)=>{G.formatToStave(D,ie.getVFStave(),{align_rests:!0,context:void 0})};for(const J of R){if(this.rules.AlignRests===AlignRestOption.Never)J.formatVoices=Z;else if(this.rules.AlignRests===AlignRestOption.Always)J.formatVoices=K;else if(this.rules.AlignRests===AlignRestOption.Auto){let ie=!1;for(const ne of J.staffEntries){let se=0,re=0;for(const ae of ne.graphicalVoiceEntries)if(ae.parentVoiceEntry.IsGrace||ae&&ae.notes&&ae.notes[0]&&ae.notes[0].sourceNote&&ae.notes[0].sourceNote.PrintObject&&se++,ae&&ae.notes&&ae.notes[0]&&ae.notes[0].sourceNote&&ae.notes[0].sourceNote.isRest()&&ae.notes[0].sourceNote.PrintObject&&re++,se>1&&re>=1){ie=!0;break}if(ie)break}ie?J.formatVoices=K:J.formatVoices=Z}if(J===R[0]){const ie=J;ie.formatVoices(q*unitInPixels,ie)}}}for(const Z of R)if(!!Z)for(const K of Z.staffEntries)K.calculateXPosition();for(const Z of R){if(!Z)continue;const K=Z.vfVoices,J=[];for(const ie in K)K.hasOwnProperty(ie)&&J.push(K[ie]);if(J.length===0){log$2.debug("Found a measure with no voices. Continuing anyway.",K);continue}G.joinVoices(J)}return q}calculateElongationFactor(R,F,D,G,U,W,q,Y){let Q=U,Z=0;for(const K of R){const J=K.GraphicalLabel.Label.textAlignment;let ie=q,ne=Y;if(K instanceof GraphicalLyricEntry&&K.ParentLyricWord){K.LyricsEntry.SyllableIndex>0&&(ie=this.rules.BetweenSyllableMinimumDistance,TextAlignment.IsCenterAligned(J)&&(ie+=1));const xe=K.ParentLyricWord.GetLyricWord.Syllables;xe.length>1&&K.LyricsEntry.SyllableIndex4&&(Ee*=1.1)}}else D[Z]&&(Ee=ce/he);ge=Math.max(Se,Ee),Q=Math.max(Q,ge);let ve=Math.max(ce-he||0,0);D[Z]&&(ve+=D[Z].cumulativeOverlap),D[Z]={cumulativeOverlap:ve,extend:K instanceof GraphicalLyricEntry?K.LyricsEntry.extend:!1,labelWidth:re,measureNumber:W,sourceNoteDuration:K instanceof GraphicalLyricEntry?K.LyricsEntry&&K.LyricsEntry.Parent.Notes[0].Length:!1,text:K instanceof GraphicalLyricEntry?K.LyricsEntry.Text:K.GraphicalLabel.Label.text,xPosition:le},Z++}return Q}calculateElongationFactorFromStaffEntries(R,F,D,G){let U=D;const W={},q={};for(const Y of R)Y.LyricsEntries.length>0&&(U=this.calculateElongationFactor(Y.LyricsEntries,Y,W,F,U,G,this.rules.HorizontalBetweenLyricsDistance,this.rules.LyricOverlapAllowedIntoNextMeasure)),Y.graphicalChordContainers.length>0&&(U=this.calculateElongationFactor(Y.graphicalChordContainers,Y,q,F,U,G,this.rules.ChordSymbolXSpacing,this.rules.ChordOverlapAllowedIntoNextMeasure));return U}calculateMeasureWidthFromStaffEntries(R,F){var W;let D=1;if(!((W=window.GYM)==null?void 0:W.multitrack))for(const q of R)!q||q.staffEntries.length===0||(D=this.calculateElongationFactorFromStaffEntries(q.staffEntries,F,D,q.MeasureNumber),D=1);return D=Math.min(D,this.rules.MaximumLyricsElongationFactor),F*D}createGraphicalTie(R,F,D,G,U){return new GraphicalTie(R,G,U)}updateStaffLineBorders(R){R.SkyBottomLineCalculator.updateStaffLineBorders()}graphicalMeasureCreatedCalculations(R){R.rules=this.rules,R.graphicalMeasureCreatedCalculations()}layoutVoiceEntry(R,F,D,G){for(let U=0;U=2&&(W=G.vfnote[0],q=G.vfnote[1]);let Y,Q=0;if(U&&U.vfnote&&U.vfnote.length>=2&&(Y=U.vfnote[0],Q=U.vfnote[1]),F){if(W){const re=new VF.StaveTie({first_indices:[q],first_note:W}),ae=G.parentVoiceEntry.parentStaffEntry.parentMeasure;if(Y){Y.getDuration()==="w"&&((K=(Z=Y.keyProps)==null?void 0:Z[0])==null?void 0:K.line)>=3&&Y.setStemDirection(-1);let le=((J=window.GYM)==null?void 0:J.tieDirection)||0;Math.abs(le)===1&&(((ne=(ie=Y.keyProps)==null?void 0:ie[0])==null?void 0:ne.line)>=3?Y.setStemDirection(-le):Y.setStemDirection(le)),re==null||re.setDirection(Y.getStemDirection())}if(ae.vfTies.length>0){const le=ae.vfTies[0].direction;re==null||re.setDirection(le?-le:1)}ae.addStaveTie(re,R)}if(Y){const re=new VF.StaveTie({last_indices:[Q],last_note:Y}),ae=U.parentVoiceEntry.parentStaffEntry.parentMeasure;if(ae.vfTies.length>0){const le=ae.vfTies[0].direction;re==null||re.setDirection(le?-le:1)}ae.addStaveTie(re,R)}}else if(W||Y){let re;if(D)if(R.Tie.Type==="S"){const ce=R.StartNote.sourceNote,he=R.EndNote.sourceNote;let de=1;ce.FretNumber>he.FretNumber&&(de=-1),re=new VF.TabSlide({first_indices:[q],first_note:W,last_indices:[Q],last_note:Y},de)}else re=new VF.TabTie({first_indices:[q],first_note:W,last_indices:[Q],last_note:Y},R.Tie.Type);else{re=new VF.StaveTie({first_indices:[q],first_note:W,last_indices:[Q],last_note:Y});const ce=R.Tie.getTieDirection(G.sourceNote);ce===PlacementEnum.Below?re.setDirection(1):ce===PlacementEnum.Above&&re.setDirection(-1);try{Math.abs((W==null?void 0:W.getTieRightX())-(Y==null?void 0:Y.getTieLeftX()))<10&&(re.render_options.first_x_shift=-3,re.render_options.last_x_shift=3)}catch(he){console.log(he)}}const ae=U.parentVoiceEntry.parentStaffEntry.parentMeasure,le=((se=window.GYM)==null?void 0:se.graceCustom)||!1;le&&re.setDirection(le.direction),ae.addStaveTie(re,R)}}calculateDynamicExpressionsForMultiExpression(R,F,D){if(Fthis.rules.MaxMeasureToDrawIndex)return;const G=R.AbsoluteTimestamp,U=this.graphicalMusicSheet.MeasureList[F],W=U[D].ParentStaffLine,q=U[D];if(!W)return;const Y=this.getRelativePositionInStaffLineFromTimestamp(G,D,W,W==null?void 0:W.isPartOfMultiStaffInstrument());if(Y.x<=0&&(Y.x=q.beginInstructionsWidth+this.rules.RhythmRightMargin),R.InstantaneousDynamic){const Q=new VexFlowInstantaneousDynamicExpression(R.InstantaneousDynamic,W,q);this.calculateGraphicalInstantaneousDynamicExpression(Q,Y,G),this.dynamicExpressionMap.set(G.RealValue,Q.PositionAndShape)}if(R.StartingContinuousDynamic){const Q=R.StartingContinuousDynamic,Z=new VexFlowContinuousDynamicExpression(R.StartingContinuousDynamic,W,q.parentSourceMeasure);if(Z.StartMeasure=q,!Z.IsVerbal&&Q.EndMultiExpression)try{this.calculateGraphicalContinuousDynamic(Z,Y),Z.updateSkyBottomLine()}catch{}else Z.IsVerbal?this.calculateGraphicalVerbalContinuousDynamic(Z,Y):log$2.warn("This continuous dynamic is not covered. measure"+R.SourceMeasureParent.MeasureNumber)}}createMetronomeMark(R,F){var le,ce,he,de,me,fe,ge,Se,Ee;const D=Math.max(R.ParentMultiTempoExpression.SourceMeasureParent.MeasureNumber-1,0),G=F||D,U=Math.max(R.StaffNumber-1,0),W=this.graphicalMusicSheet.MeasureList[G][U].getVFStave();let q="q";if(R.beatUnit){const ve=NoteTypeHandler.getNoteDurationFromType(R.beatUnit);q=VexFlowConverter.durations(ve,!1)[0]}let Y=this.rules.MetronomeMarkYShift,Q=!1;const Z=[];if(R.parentMeasure){for(const ve of R.parentMeasure.StaffLinkedExpressions)for(const xe of ve)xe&&xe instanceof UnknownExpression&&Z.push(xe);for(const ve of R.parentMeasure.TempoExpressions){const xe=((le=ve.InstantaneousTempo)==null?void 0:le.Enum)===TempoEnum.metronomeMark;if(!R.beatUnit&&ve.InstantaneousTempo.beatUnit){const Pe=NoteTypeHandler.getNoteDurationFromType(R.beatUnit);q=VexFlowConverter.durations(Pe,!1)[0]}if(ve.getPlacementOfFirstEntry()===PlacementEnum.Above&&!xe){Q=!0;break}}}Q&&(Y-=1.4);const K=(ce=this.graphicalMusicSheet.MeasureList[0][0].ParentStaffLine)==null?void 0:ce.SkyLine;let J=R.TempoInBpm,ie="",ne="",se="";for(const ve of this.graphicalMusicSheet.MeasureList[G][U].parentSourceMeasure.TempoExpressions){if(ne=ve.CombinedExpressionsText,isSpecialMark(ve.CombinedExpressionsText)){ie=ve.CombinedExpressionsText;break}if(isSpeedKeyword(ve.CombinedExpressionsText)||isSpeedHiddenKeyword(ve.CombinedExpressionsText)){ie=formatSpeedKeyword(ve.CombinedExpressionsText),J=ve.sourceMeasure.TempoInBPM,isSpeedKeyword(ve.CombinedExpressionsText)&&(se=q);break}}const re={bpm:R.TempoInBpm,dots:R.dotted,duration:q,name:ie};ie&&(re.bpm=J/(re.dots?1.5:1),isSpeedKeyword(ne)?re.duration=se:(J===SpeedTag[ie]||!SpeedTag[ie])&&(re.duration=""));const ae=((de=(he=this.graphicalMusicSheet.MeasureList[G][U].vfVoices)==null?void 0:he[1])==null?void 0:de.boundingBox.y)||0;if(this.rules.MetronomeMarksDrawn){if(K){const ye=((fe=(me=this.graphicalMusicSheet.MeasureList[0])==null?void 0:me[U])==null?void 0:fe.ParentStaffLine).Measures.map(Te=>Te.MeasureNumber-1);if(ae&&ye.includes(G)&&(isSpeedKeyword(ne)||isSpeedHiddenKeyword(ne))){const Te=K.slice(0,9);let Le=Math.min(...Te);Le=Le<0?Le-1:Le,Y+=Le}ye.includes(G)&&Z.length?K[0]=Math.min(K[0],-4.5+Y-4):K[0]=Math.min(K[0],-4.5+Y)}W.options.line_config.reduce((Pe,ye)=>(ye.visible&&Pe++,Pe),0)<5&&(Y-=2),W.setTempo(re,Y*unitInPixels);let xe=0;try{xe+=((Ee=(Se=(ge=this.graphicalMusicSheet.MeasureList[G][U])==null?void 0:ge.vfVoices)==null?void 0:Se[1])==null?void 0:Ee.getTickables())[R.parentMeasure.metronomeNoteIndex].getBoundingBox().getX()-W.getNoteStartX()}catch{}W.getModifiers()[W.getModifiers().length-1].setShiftX(xe)}}calculateRehearsalMark(R){var Q,Z,K,J,ie,ne,se,re;const F=R.rehearsalExpression;if(!F)return;const D=(K=(Z=(Q=R.VerticalMeasureList)==null?void 0:Q[0])==null?void 0:Z.getVFStave)==null?void 0:K.call(Z);if(!D)return;const G=-this.rules.RehearsalMarkYOffsetDefault-this.rules.RehearsalMarkYOffset;let U=this.rules.RehearsalMarkXOffsetDefault+this.rules.RehearsalMarkXOffset;R.IsSystemStartMeasure&&(U+=this.rules.RehearsalMarkXOffsetSystemStartMeasure);const W=this.rules.RehearsalMarkFontSize,q=D.getModifiers(),Y=q.find(ae=>ae.getCategory().toLocaleLowerCase()==="repetitions");if(Y&&Y.setShiftY(Y.y_shift-10),D.setSection(F.label,G,U,W),(ie=(J=R.VerticalMeasureList)==null?void 0:J[0])!=null&&ie.ParentStaffLine.AbstractExpressions){const ae=q.find(le=>le.getCategory().toLocaleLowerCase()==="stavesection");for(let le of((re=(se=(ne=R==null?void 0:R.VerticalMeasureList)==null?void 0:ne[0])==null?void 0:se.ParentStaffLine)==null?void 0:re.AbstractExpressions)||[])le instanceof GraphicalUnknownExpression&&(ae&&(le.Label.PositionAndShape.RelativePosition.y-=.5),Y&&(le.Label.PositionAndShape.RelativePosition.y-=1.7))}}calculateSingleOctaveShift(R,F,D,G){var ne;const U=F.OctaveShiftStart,W=U.ParentStartMultiExpression.Timestamp,q=(ne=U.ParentEndMultiExpression)==null?void 0:ne.Timestamp,Y=this.rules.MinMeasureToDrawIndex,Q=this.rules.MaxMeasureToDrawIndex;let Z=this.graphicalMusicSheet.MeasureList[D][G].ParentStaffLine;Z||(Z=this.graphicalMusicSheet.MeasureList[Y][G].ParentStaffLine);let K;U.ParentEndMultiExpression?K=this.graphicalMusicSheet.getGraphicalMeasureFromSourceMeasureAndIndex(U.ParentEndMultiExpression.SourceMeasureParent,G):K=this.graphicalMusicSheet.getLastGraphicalMeasureFromIndex(G,!0),K.MeasureNumber>Q+1&&(K=this.graphicalMusicSheet.getLastGraphicalMeasureFromIndex(G,!0));let J;if(U.ParentEndMultiExpression?J=this.graphicalMusicSheet.getGraphicalMeasureFromSourceMeasureAndIndex(U.ParentStartMultiExpression.SourceMeasureParent,G):J=this.graphicalMusicSheet.MeasureList[Y][G],J.MeasureNumberQ||K.parentSourceMeasure.measureListIndexQ)return;let ie=K.ParentStaffLine;if(ie||(ie=Z),K&&Z&&ie){const se=new VexFlowOctaveShift(U,Z.PositionAndShape);if(!se.startNote){let le;for(const ce of J.staffEntries)if(ce){le=ce;break}if(!le||(se.setStartNote(le),!se.startNote))return}if(!se.endNote){let le;for(let ce=K.staffEntries.length-1;ce>=0;ce++)if(K.staffEntries[ce]){le=K.staffEntries[ce];break}if(se.setEndNote(le),!se.endNote)return}let re=J.findGraphicalStaffEntryFromTimestamp(W);re||(re=J.staffEntries[0]);let ae=K.findGraphicalStaffEntryFromTimestamp(q);if(ae||(ae=K.staffEntries[K.staffEntries.length-1]),se.setStartNote(re),ie!==Z){se.endsOnDifferentStaffLine=!0;let le=Z.Measures[Z.Measures.length-1];le===void 0&&(le=K);const ce=le.staffEntries[le.staffEntries.length-1];se.setEndNote(ce);const he=ie.ParentMusicSystem.Id-Z.ParentMusicSystem.Id;if(he>0)for(let de=Z.ParentMusicSystem.Id;deQ+1&&(K=this.graphicalMusicSheet.getLastGraphicalMeasureFromIndex(G,!0));let J;if(U.ParentEndMultiExpression?J=this.graphicalMusicSheet.getGraphicalMeasureFromSourceMeasureAndIndex(U.ParentStartMultiExpression.SourceMeasureParent,G):(J=this.graphicalMusicSheet.getGraphicalMeasureFromSourceMeasureAndIndex(U.ParentStartMultiExpression.SourceMeasureParent,G),J||(J=this.graphicalMusicSheet.MeasureList[Y][G])),J.MeasureNumberQ||K.parentSourceMeasure.measureListIndexQ)return;let ie=K.ParentStaffLine;if(ie||(ie=Z),K&&Z&&ie){let se=!1;Z!==ie&&(se=!0);const re=new VexFlowPedal(U,Z.PositionAndShape,!1,se);let ae=J.findGraphicalStaffEntryFromTimestamp(W);ae||(ae=J.staffEntries[0]);let le=K.findGraphicalStaffEntryFromTimestamp(q);if(le||(le=K.staffEntries[K.staffEntries.length-1]),!re.setStartNote(ae))return;if(ie!==Z)if(re.pedalSymbol===MusicSymbol.PEDAL_SYMBOL){re.setEndNote(le),re.setEndMeasure(K),re.ReleaseText=" ",re.CalculateBoundingBox(),this.calculatePedalSkyBottomLine(re.startVfVoiceEntry,re.endVfVoiceEntry,re,Z);const ce=ie.Measures[0],he=new VexFlowPedal(U,ce.PositionAndShape),de=ce.staffEntries[0];if(!he.setStartNote(de))return;he.setEndNote(le),re.setEndMeasure(K),ie.Pedals.push(he),he.CalculateBoundingBox(),he.DepressText=" ",this.calculatePedalSkyBottomLine(he.startVfVoiceEntry,he.endVfVoiceEntry,he,ie)}else{let ce=Z.Measures[Z.Measures.length-1];ce===void 0&&(ce=K);const he=ce.staffEntries[ce.staffEntries.length-1];re.setEndNote(he),re.setEndMeasure(K),re.ChangeEnd=!1;const de=ie.ParentMusicSystem.Id-Z.ParentMusicSystem.Id;if(de>0){let me=1;for(let fe=Z.ParentMusicSystem.Id;feQ+1&&(K=this.graphicalMusicSheet.getLastGraphicalMeasureFromIndex(G,!0));let J;if(U.ParentEndMultiExpression?J=this.graphicalMusicSheet.getGraphicalMeasureFromSourceMeasureAndIndex(U.ParentStartMultiExpression.SourceMeasureParent,G):J=this.graphicalMusicSheet.MeasureList[Y][G],J.MeasureNumberQ||K.parentSourceMeasure.measureListIndexQ)return;let ie=K.ParentStaffLine;if(ie||(ie=Z),K&&Z&&ie){const re=new VexflowVibratoBracket(U,Z.PositionAndShape,J.ParentStaff.isTab);let ae=J.findGraphicalStaffEntryFromTimestamp(W);ae||(ae=J.staffEntries[0]);let le=K.findGraphicalStaffEntryFromTimestamp(q);if(le||(le=K.staffEntries[K.staffEntries.length-1]),re.setStartNote(ae),ie!==Z){let ce=Z.Measures[Z.Measures.length-1];ce===void 0&&(ce=K);const he=ce.staffEntries[ce.staffEntries.length-1];if(re.setEndNote(he),ie.ParentMusicSystem.Id-Z.ParentMusicSystem.Id>0)for(let me=Z.ParentMusicSystem.Id;meK){const ce=K;K=Z,Z=ce}G.SkyBottomLineCalculator.updateBottomLineInRange(Z,K,J+ae)}for(const ae of G.Pedals){const le=ae,ce=le.getPedalMarking(),he=ce.line+3+(G.StaffLines.length-1);if(J>he){const de=ce.render_options.text_margin_right/10;let me=le.startVfVoiceEntry.PositionAndShape.AbsolutePosition.x-de,fe;le.setLine(J-3-(G.StaffLines.length-1));let ge=(ne=le.endVfVoiceEntry)==null?void 0:ne.PositionAndShape;if(ge||(ge=le.endMeasure.PositionAndShape),le.EndSymbolPositionAndShape){const Se=q.render_options.glyph_point_size/20;fe=me+3.4;const Ee=ge.AbsolutePosition.x-de,ve=Ee+1.5;G.SkyBottomLineCalculator.updateBottomLineInRange(me,fe,J+Se),G.SkyBottomLineCalculator.updateBottomLineInRange(Ee,ve,J+Se)}else{const Se=ce.render_options.bracket_height/10;if(ce.EndsStave)fe=ge.AbsolutePosition.x+ge.Size.width-de;else switch(q.style){case W.BRACKET_OPEN_END:case W.BRACKET_OPEN_BOTH:case W.MIXED_OPEN_END:fe=ge.AbsolutePosition.x+ge.BorderRight-de;break;default:fe=ge.AbsolutePosition.x+ge.BorderLeft-de;break}const Ee=(re=(se=le.endVfVoiceEntry)==null?void 0:se.parentStaffEntry)==null?void 0:re.vfClefBefore;if(Ee&&(fe+=Ee.getWidth()/10),me>fe){const ve=me;me=fe,fe=ve}G.SkyBottomLineCalculator.updateBottomLineInRange(me,fe,J+Se)}}}}calculateOctaveShiftSkyBottomLine(R,F,D,G){if(!F){log$2.warn("octaveshift: no endStaffEntry");return}let U=R.PositionAndShape.Size.width,W=F.PositionAndShape.Size.width;R.hasOnlyRests()?U=-U:U/=2,F.hasOnlyRests()?W*=2:W/=2,R===F&&(W*=2);const q=R.PositionAndShape.AbsolutePosition.x-U,Y=F.PositionAndShape.AbsolutePosition.x+W;D.PositionAndShape.Size.width=q-Y;const Q=D.getTextBracket(),Z=Q.font.size/10;if(Q.position===VF.TextBracket.Positions.TOP){const K=Math.ceil(G.SkyBottomLineCalculator.getSkyLineMinInRange(q,Y));if(K===1/0)return;Q.start.getStave().options.top_text_position=Math.abs(K),G.SkyBottomLineCalculator.updateSkyLineInRange(q,Y,K-Z*2)}else{const K=G.SkyBottomLineCalculator.getBottomLineMaxInRange(q,Y);if(K===1/0)return;Q.start.getStave().options.bottom_text_position=K,R.parentMeasure!==F.parentMeasure&&(Q.stop.getStave().options.bottom_text_position=K),G.SkyBottomLineCalculator.updateBottomLineInRange(q,Y,K+Z*1.5)}}calculateWordRepetitionInstruction(R,F){let D;const G=this.graphicalMusicSheet.MeasureList[F];for(let U=0,W=G.length;U{D.updateSkyBottomLine()})}catch{}}handleTiedGraphicalNote(R,F,D,G,U,W,q,Y){}handleBeam(R,F,D){R.parentVoiceEntry.parentStaffEntry.parentMeasure.handleBeam(R,F)}handleVoiceEntryLyrics(R,F,D){R.LyricsEntries.forEach((G,U)=>{const W=new GraphicalLyricEntry(U,F,this.rules.LyricsHeight,this.rules.StaffHeight);if(F.LyricsEntries.push(W),W.GraphicalLabel.setLabelPositionAndShapeBorders(),U.Word){const Y=U.Word.Syllables.indexOf(U);let Q=D.indexOf(U.Word);if(Q===-1&&(D.push(U.Word),Q=D.indexOf(U.Word)),this.graphicalLyricWords.length===0||Q>this.graphicalLyricWords.length-1){const Z=new GraphicalLyricWord(U.Word);W.ParentLyricWord=Z,Z.GraphicalLyricsEntries[Y]=W,this.graphicalLyricWords.push(Z)}else{const Z=this.graphicalLyricWords[Q];W.ParentLyricWord=Z,Z.GraphicalLyricsEntries[Y]=W,Z.isFilled()&&(D.splice(Q,1),this.graphicalLyricWords.splice(this.graphicalLyricWords.indexOf(Z),1))}}})}handleVoiceEntryOrnaments(R,F,D){}handleVoiceEntryArticulations(R,F,D){}handleVoiceEntryTechnicalInstructions(R,F,D){}handleTuplet(R,F,D){R.parentVoiceEntry.parentStaffEntry.parentMeasure.handleTuplet(R,F)}findIndexGraphicalSlurFromSlur(R,F){for(let D=0;D=0){const K=G[Z];K.staffEntries.indexOf(W)===-1&&K.staffEntries.push(W),G.splice(Z,1)}}}for(const q of G)q.staffEntries.indexOf(W)===-1&&q.staffEntries.push(W)}}for(const F of this.musicSystems)for(const D of F.StaffLines){const G=D.GraphicalSlurs.sort(GraphicalSlur.Compare);for(const U of G)U.slur.isCrossed()||U.calculateCurve(this.rules)}}}class MusicPartManager{constructor(R){this.musicSheet=R}reInit(){this.init()}init(){this.parts=this.musicSheet.Repetitions.slice(),this.sheetStart=this.musicSheet.SelectionStart=new Fraction$1(0,1),this.sheetEnd=this.musicSheet.SelectionEnd=this.musicSheet.SheetEndTimestamp,this.calcMapping()}getCurrentRepetitionTimestampTransform(R){let F;for(let D=this.timestamps.length-1;D>=0;D--)if(F=this.timestamps[D],R.gte(F.from))return F;return this.timestamps[0]}absoluteEnrolledToSheetTimestamp(R){if(this.timestamps.length===0)return R;const F=this.getCurrentRepetitionTimestampTransform(R);return Fraction$1.plus(R,Fraction$1.minus(F.to,F.from))}get Parts(){return this.parts}get MusicSheet(){return this.musicSheet}getIterator(R){return R?new MusicPartManagerIterator(this.musicSheet,R,void 0):new MusicPartManagerIterator(this.musicSheet,this.musicSheet.SelectionStart,this.musicSheet.SelectionEnd)}setSelectionStart(R){this.musicSheet.SelectionStart=R,this.musicSheet.SelectionEnd=void 0}setSelectionRange(R,F){this.musicSheet.SelectionStart=R!=null?R:this.sheetStart,this.musicSheet.SelectionEnd=F!=null?F:this.sheetEnd}calcMapping(){this.timestamps=[];const R=this.getIterator();let F=R.CurrentRepetition,D=new TimestampTransform(R.CurrentEnrolledTimestamp.clone(),R.CurrentSourceTimestamp.clone(),void 0,0);for(this.timestamps.push(D);!R.EndReached;){if(R.JumpOccurred||F!==R.CurrentRepetition){if(F=R.CurrentRepetition,R.backJumpOccurred){const G=R.JumpResponsibleRepetition;D.nextBackJump=R.CurrentEnrolledTimestamp,D.curRepetition=G,D.curRepetitionIteration=R.CurrentJumpResponsibleRepetitionIterationBeforeJump;for(let U=this.timestamps.length-2;U>=0&&!(G.AbsoluteTimestamp.gt(this.timestamps[U].to)||this.timestamps[U].curRepetition);U--)this.timestamps[U].nextBackJump=D.nextBackJump,this.timestamps[U].curRepetition=G,this.timestamps[U].curRepetitionIteration=D.curRepetitionIteration}D=new TimestampTransform(R.CurrentEnrolledTimestamp.clone(),R.CurrentSourceTimestamp.clone(),void 0,0),this.timestamps.push(D)}R.moveToNext()}}}class TimestampTransform{constructor(R,F,D,G){this.from=R,this.to=F,this.curRepetition=D,this.curRepetitionIteration=G,this.nextBackJump=void 0,this.nextForwardJump=void 0}}class PartListEntry{constructor(R){this.enrolledTimestamps=[],this.visible=!0,this.musicSheet=R}get Visible(){return this.visible}set Visible(R){this.visible=R}getFirstSourceMeasure(){return this.musicSheet.SourceMeasures[this.startIndex]}getLastSourceMeasure(){return this.musicSheet.SourceMeasures[this.endIndex]}}class SourceMusicPart extends PartListEntry{constructor(R,F,D){super(R),this.musicSheet=R,this.startIndex=F,this.endIndex=D}get MeasuresCount(){return this.endIndex-this.startIndex+1}get StartIndex(){return this.startIndex}get EndIndex(){return this.endIndex}get ParentRepetition(){return this.parentRepetition}set ParentRepetition(R){this.parentRepetition=R}get AbsoluteTimestamp(){return Fraction$1.createFromFraction(this.musicSheet.SourceMeasures[this.startIndex].AbsoluteTimestamp)}setStartIndex(R){this.startIndex=R}setEndIndex(R){this.endIndex=R}}class Repetition extends PartListEntry{constructor(R,F=!1){super(R),this.backwardJumpInstructions=[],this.endingParts=[],this.endingIndexDict={},this.userNumberOfRepetitions=0,this.visibles=[],this.fromWords=!1,this.repetitonIterationOrder=[],this.numberOfEndings=1,this.musicSheet2=R,this.virtualOverallRepetition=F}get BackwardJumpInstructions(){return this.backwardJumpInstructions}get EndingIndexDict(){return this.endingIndexDict}get EndingParts(){return this.endingParts}get Visibles(){return this.visibles}set Visibles(R){this.visibles=R}get DefaultNumberOfRepetitions(){let R=2;return this.virtualOverallRepetition&&(R=1),Math.max(R,Object.keys(this.endingIndexDict).length,this.checkRepetitionForMultipleLyricVerses())}get UserNumberOfRepetitions(){return this.userNumberOfRepetitions}set UserNumberOfRepetitions(R){this.userNumberOfRepetitions=R,this.repetitonIterationOrder=[];const F=this.userNumberOfRepetitions-this.NumberOfEndings;for(let D=1;D<=this.userNumberOfRepetitions;D++)D<=F?this.repetitonIterationOrder.push(1):this.repetitonIterationOrder.push(D-F)}getForwardJumpTargetForIteration(R){const F=this.repetitonIterationOrder[R-1];return this.endingIndexDict[F]?this.endingIndexDict[F].part.StartIndex:-1}getBackwardJumpTarget(){return this.startMarker.measureIndex}setEndingsStartIndex(R,F){const D=new RepetitionEndingPart(new SourceMusicPart(this.musicSheet2,F,F));this.endingParts.push(D);for(const G of R)try{this.endingIndexDict[G]=D,D.endingIndices.push(G),this.numberOfEndings0&&(G=1),U.Add(new Fraction$1(G,F)),U}}class MusicSheet$1{constructor(){this.idString="random idString, not initialized",this.sourceMeasures=[],this.repetitions=[],this.dynListStaves=[],this.timestampSortedDynamicExpressionsList=[],this.timestampSortedTempoExpressionsList=[],this.instrumentalGroups=[],this.instruments=[],this.musicPartManager=void 0,this.musicSheetErrors=new MusicSheetErrors,this.staves=[],this.playbackDataDict=new Dictionary,this.transpose=0,this.defaultStartTempoInBpm=0,this.drawErroneousMeasures=!1,this.hasBeenOpenedForTheFirstTime=!1,this.currentEnrolledPosition=new Fraction$1(0,1),this.soundTempos=new Map,this.playbackSettings=new PlaybackSettings,this.playbackSettings.rhythm=new Fraction$1(4,4,0,!1),this.userStartTempoInBPM=100,this.pageWidth=120,this.MusicPartManager=new MusicPartManager(this),this.hasBPMInfo=!1}get SoundTempos(){return this.soundTempos}set SoundTempos(R){this.soundTempos=R}static getIndexFromStaff(R){return R.idInMusicSheet}get CurrentKeyInstruction(){return this.currentKeyInstruction}set CurrentKeyInstruction(R){this.currentKeyInstruction=R}get SourceMeasures(){return this.sourceMeasures}set SourceMeasures(R){this.sourceMeasures=R}get Repetitions(){return this.repetitions}set Repetitions(R){this.repetitions=R}get DynListStaves(){return this.dynListStaves}get TimestampSortedTempoExpressionsList(){return this.timestampSortedTempoExpressionsList}get TimestampSortedDynamicExpressionsList(){return this.timestampSortedDynamicExpressionsList}get InstrumentalGroups(){return this.instrumentalGroups}get Parts(){return this.instruments}get Instruments(){return this.instruments}get SheetPlaybackSetting(){return this.playbackSettings}set SheetPlaybackSetting(R){this.playbackSettings=R}get DrawErroneousMeasures(){return this.drawErroneousMeasures}set DrawErroneousMeasures(R){this.drawErroneousMeasures=R}get HasBeenOpenedForTheFirstTime(){return this.hasBeenOpenedForTheFirstTime}set HasBeenOpenedForTheFirstTime(R){this.hasBeenOpenedForTheFirstTime=R}InitializeStartTempoInBPM(R){this.playbackSettings.BeatsPerMinute=R,this.userStartTempoInBPM=R}get DefaultStartTempoInBpm(){return this.defaultStartTempoInBpm}set DefaultStartTempoInBpm(R){this.defaultStartTempoInBpm=R,this.InitializeStartTempoInBPM(R)}get Path(){return this.path}set Path(R){this.path=R}get Staves(){return this.staves}get TitleString(){return this.title?this.title.text:""}set TitleString(R){this.Title=new Label(R)}get SubtitleString(){return this.subtitle?this.subtitle.text:""}set SubtitleString(R){this.Subtitle=new Label(R)}get ComposerString(){return this.composer?this.composer.text:""}set ComposerString(R){this.Composer=new Label(R)}get LyricistString(){return this.lyricist?this.lyricist.text:""}set LyricistString(R){this.Lyricist=new Label(R)}get Title(){return this.title}set Title(R){this.title=R}get Subtitle(){return this.subtitle}set Subtitle(R){this.subtitle=R}get Composer(){return this.composer}set Composer(R){this.composer=R}get Lyricist(){return this.lyricist}set Lyricist(R){this.lyricist=R}get Rules(){return this.rules||(log$2.debug("warning: sheet.Rules was undefined. Creating new EngravingRules."),this.rules=new EngravingRules),this.rules}set Rules(R){this.rules=R}get SheetErrors(){return this.musicSheetErrors}get PlaybackDataDict(){return this.playbackDataDict}get SelectionStart(){return this.selectionStart}set SelectionStart(R){this.selectionStart=R.clone(),this.currentEnrolledPosition=R.clone()}get SelectionEnd(){return this.selectionEnd}set SelectionEnd(R){this.selectionEnd=R}set HasBPMInfo(R){this.hasBPMInfo=R}get HasBPMInfo(){return this.hasBPMInfo}addMeasure(R){this.sourceMeasures.push(R),R.measureListIndex=this.sourceMeasures.length-1}checkForInstrumentWithNoVoice(){for(let R=0,F=this.instruments.length;R0){const R=this.TimestampSortedTempoExpressionsList[0];if(R.InstantaneousTempo)return R.InstantaneousTempo.TempoInBpm;if(R.ContinuousTempo)return R.ContinuousTempo.StartTempo}return this.userStartTempoInBPM}get Errors(){return this.musicSheetErrors.measureErrors}get FirstMeasureNumber(){try{return this.getFirstSourceMeasure().MeasureNumber}catch(R){return log$2.info("MusicSheet.FirstMeasureNumber: ",R),0}}get LastMeasureNumber(){try{return this.getLastSourceMeasure().MeasureNumber}catch(R){return log$2.info("MusicSheet.LastMeasureNumber: ",R),0}}get CurrentEnrolledPosition(){return this.currentEnrolledPosition.clone()}set CurrentEnrolledPosition(R){this.currentEnrolledPosition=R.clone()}get Transpose(){return this.transpose}set Transpose(R){this.transpose=R}get FullNameString(){return this.ComposerString+" "+this.TitleString}get IdString(){return this.idString}set IdString(R){this.idString=R}getEnrolledSelectionStartTimeStampWorkaround(){const R=this.MusicPartManager.getIterator(this.SelectionStart);return Fraction$1.createFromFraction(R.CurrentEnrolledTimestamp)}get SheetEndTimestamp(){const R=this.getLastSourceMeasure();return Fraction$1.plus(R.AbsoluteTimestamp,R.Duration)}getSourceMeasureFromTimeStamp(R){for(let F=0,D=this.sourceMeasures.length;F0&&G.Voices[0].Visible&&R.push(G)}return R}}MusicSheet$1.defaultTitle="[no title given]";class LyricWord{constructor(){this.syllables=[]}get Syllables(){return this.syllables}containsVoiceEntry(R){for(let F=0,D=this.Syllables.length;F=0&&(this.syllableIndex=U)}get Text(){return this.text}set Text(R){this.text=R}get Word(){return this.word}get Parent(){return this.parent}set Parent(R){this.parent=R}get VerseNumber(){return this.verseNumber}get SyllableIndex(){return this.syllableIndex}}class LyricsReader{constructor(R){this.openLyricWords={},this.musicSheet=R}addLyricEntry(R,F){var D,G;if(R){const U=R;for(let W=0,q=U.length;W0)for(let he=ae;he1&&(ie=parseInt(re[1],10))}catch{const ae=ITextTranslation.translateText("ReaderErrorMessages/LyricVerseNumberError","Invalid lyric verse number");this.musicSheet.SheetErrors.pushMeasureError(ae);continue}}let se;if(Q==="single"||Q==="end"){if(this.openLyricWords[ie]){this.currentLyricWord=this.openLyricWords[ie];const re=this.currentLyricWord.Syllables.length;se=new LyricsEntry(K,ie,this.currentLyricWord,F,re),this.currentLyricWord.Syllables.push(se),delete this.openLyricWords[ie],this.currentLyricWord=void 0}else se=new LyricsEntry(K,ie,void 0,F);se.extend=Y.element("extend")!==void 0}else if(Q==="begin")this.openLyricWords[ie]&&(delete this.openLyricWords[ie],this.currentLyricWord=void 0),this.currentLyricWord=new LyricWord,this.openLyricWords[ie]=this.currentLyricWord,se=new LyricsEntry(K,ie,this.currentLyricWord,F,0),this.currentLyricWord.Syllables.push(se);else if(Q==="middle")if(this.openLyricWords[ie]){this.currentLyricWord=this.openLyricWords[ie];const re=this.currentLyricWord.Syllables.length;se=new LyricsEntry(K,ie,this.currentLyricWord,F,re),this.currentLyricWord.Syllables.push(se)}else se=new LyricsEntry(K,ie,void 0,F);se&&(F.LyricsEntries[ie]||(F.LyricsEntries.setValue(ie,se),(G=(D=F.ParentSourceStaffEntry)==null?void 0:D.VerticalContainerParent)!=null&&G.ParentMeasure&&(F.ParentSourceStaffEntry.VerticalContainerParent.ParentMeasure.hasLyrics=!0)),F.ParentVoice.Parent.LyricVersesNumbers[ie]||F.ParentVoice.Parent.LyricVersesNumbers.push(ie))}}}catch{const Z=ITextTranslation.translateText("ReaderErrorMessages/LyricError","Error while reading lyric entry.");this.musicSheet.SheetErrors.pushMeasureError(Z);continue}}F.ParentVoice.Parent.LyricVersesNumbers=F.ParentVoice.Parent.LyricVersesNumbers.filter((W,q,Y)=>Y.indexOf(W)===q)}}}class Articulation{constructor(R,F){this.articulationEnum=R,this.placement=F}Equals(R){return R.articulationEnum===this.articulationEnum&&R.placement===this.placement}}class ArticulationReader{constructor(R){this.rules=R}getAccEnumFromString(R){switch(R){case"sharp":return AccidentalEnum.SHARP;case"flat":return AccidentalEnum.FLAT;case"natural":return AccidentalEnum.NATURAL;case"double-sharp":case"sharp-sharp":return AccidentalEnum.DOUBLESHARP;case"double-flat":case"flat-flat":return AccidentalEnum.DOUBLEFLAT;case"triple-sharp":return AccidentalEnum.TRIPLESHARP;case"triple-flat":return AccidentalEnum.TRIPLEFLAT;case"quarter-sharp":return AccidentalEnum.QUARTERTONESHARP;case"quarter-flat":return AccidentalEnum.QUARTERTONEFLAT;case"three-quarters-sharp":return AccidentalEnum.THREEQUARTERSSHARP;case"three-quarters-flat":return AccidentalEnum.THREEQUARTERSFLAT;case"slash-quarter-sharp":return AccidentalEnum.SLASHQUARTERSHARP;case"slash-sharp":return AccidentalEnum.SLASHSHARP;case"double-slash-flat":return AccidentalEnum.DOUBLESLASHFLAT;case"sori":return AccidentalEnum.SORI;case"koron":return AccidentalEnum.KORON;default:return AccidentalEnum.NONE}}addArticulationExpression(R,F){var D,G;if(R!==void 0&&R.elements().length>0){const U=R.elements();for(let W=0,q=U.length;W0&&F.Articulations[0].articulationEnum!==ArticulationEnum.staccato&&F.Articulations.splice(0,0,ie),Q==="strongaccent"){const ne=(G=Y==null?void 0:Y.attribute("type"))==null?void 0:G.value;ne==="up"?ie.articulationEnum=ArticulationEnum.marcatoup:ne==="down"&&(ie.articulationEnum=ArticulationEnum.marcatodown)}if(Q==="detachedlegato"){const ne=new Articulation(ArticulationEnum.staccato,K),se=new Articulation(ArticulationEnum.tenuto,K);F.Articulations.push(ne,se)}if(!F.hasArticulation(ie))switch(F.Articulations.push(ie),ie.articulationEnum){case ArticulationEnum.staccato:case ArticulationEnum.staccatissimo:F.DurationModifier=ie;break;case ArticulationEnum.accent:case ArticulationEnum.strongaccent:F.VolumeModifier=ie;break;default:break}}}catch(Z){const K="Invalid note articulation.";log$2.debug("addArticulationExpression",K,Z);return}}}}addFermata(R,F){var U;let D=ArticulationEnum.fermata;R.attributes().length>0&&R.attribute("type")&&R.attribute("type").value==="inverted"&&(D=ArticulationEnum.invertedfermata);let G=PlacementEnum.Above;((U=R.attribute("placement"))==null?void 0:U.value)==="below"&&(G=PlacementEnum.Below),F.Articulations.push(new Articulation(D,G))}addTechnicalArticulations(R,F,D){var q,Y;const G={bend:ArticulationEnum.bend,"down-bow":ArticulationEnum.downbow,"open-string":ArticulationEnum.naturalharmonic,"snap-pizzicato":ArticulationEnum.snappizzicato,stopped:ArticulationEnum.lefthandpizzicato,"up-bow":ArticulationEnum.upbow};for(const Q in G){if(!G.hasOwnProperty(Q))continue;const Z=G[Q],K=R.element(Q);if(K){let J;((q=K.attribute("placement"))==null?void 0:q.value)==="above"&&(J=PlacementEnum.Above),((Y=K.attribute("placement"))==null?void 0:Y.value)==="below"&&(J=PlacementEnum.Below);const ie=new Articulation(Z,J);F.hasArticulation(ie)||F.Articulations.push(ie)}}const U=R.element("fingering");if(U){const Q=this.createTechnicalInstruction(U,D);Q.type=TechnicalInstructionType.Fingering,D.Fingering=Q,F.TechnicalInstructions.push(Q)}const W=R.element("string");if(W){const Q=this.createTechnicalInstruction(W,D);Q.type=TechnicalInstructionType.String,D.StringInstruction=Q,F.TechnicalInstructions.push(Q)}}createTechnicalInstruction(R,F){const D=new TechnicalInstruction;D.sourceNote=F,D.value=R.value;const G=R.attribute("placement");return this.rules.FingeringPositionFromXML&&(D.placement=this.getPlacement(G)),D}getPlacement(R,F=PlacementEnum.NotYetDefined){if(F!==PlacementEnum.NotYetDefined)return F;if(R)switch(R.value){case"above":return PlacementEnum.Above;case"below":return PlacementEnum.Below;case"left":return PlacementEnum.Left;case"right":return PlacementEnum.Right;default:return PlacementEnum.NotYetDefined}else return PlacementEnum.NotYetDefined}addOrnament(R,F){if(R){let D;const G={"delayed-inverted-turn":OrnamentEnum.DelayedInvertedTurn,"delayed-turn":OrnamentEnum.DelayedTurn,"inverted-mordent":OrnamentEnum.InvertedMordent,"inverted-turn":OrnamentEnum.InvertedTurn,mordent:OrnamentEnum.Mordent,"trill-mark":OrnamentEnum.Trill,turn:OrnamentEnum.Turn};for(const U in G){if(!G.hasOwnProperty(U))continue;const W=R.element(U);if(W){D=new OrnamentContainer(G[U]);const q=W.attribute("placement");q&&q.value==="below"&&(D.placement=PlacementEnum.Below)}}if(D){const U=R.elements("accidental-mark");if(U){let W=PlacementEnum.Below,q=AccidentalEnum.NONE;const Y=U;for(let Q=0,Z=Y.length;Q0&&(this.currentVoiceEntry.GraceVoiceEntriesBefore=this.graceVoiceEntriesTempList,this.graceVoiceEntriesTempList=[]))}finalizeReadingMeasure(){this.graceVoiceEntriesTempList.length>0&&this.currentNormalVoiceEntry!==void 0&&this.currentNormalVoiceEntry.GraceVoiceEntriesAfter.concat(this.graceVoiceEntriesTempList),this.graceVoiceEntriesTempList=[],this.pluginManager.processVoiceMeasureReadPlugins(this.currMeasureVoiceEntries,this.activeKey,this.activeRhythm),this.currMeasureVoiceEntries.length=0,this.openBeams.length>1&&this.handleOpenBeam()}read(R,F,D,G,U,W,q,Y,Q,Z,K,J,ie,ne,se,re,ae,le,ce,he,de,me,fe){this.currentStaffEntry=q,this.currentMeasure=Y;try{this.currentNote=W?this.addRestNote(R.element("rest"),F,G,U,ie,ne,ce):this.addSingleNote(R,F,G,D,U,K,J,ie,ne,se,re,ae,le,ce,de,me,fe),this.currentNote.DotsXml=he;const ge=R.elements("lyric");this.lyricsReader!==void 0&&ge&&(this.lyricsReader.addLyricEntry(ge,this.currentVoiceEntry),this.voice.Parent.HasLyrics=!0);let Se=!1;const Ee=R.element("notations");if(Ee){this.articulationReader&&this.readArticulations(Ee,this.currentVoiceEntry,this.currentNote);const ve=Ee.elements("slur");this.slurReader!==void 0&&ve.length>0&&!this.currentNote.ParentVoiceEntry.IsGrace&&this.slurReader.addSlur(ve,this.currentNote);const xe=Ee.elements("tuplet");xe.length>0&&(this.openTupletNumber=this.addTuplet(R,xe),Se=!0);const Pe=Ee.element("arpeggiate");if(Pe!==void 0){let we;if(this.currentVoiceEntry.Arpeggio)we=this.currentVoiceEntry.Arpeggio;else{let Ae=!1;for(const Me of this.currentStaffEntry.VoiceEntries)if(Me.Arpeggio){Ae=!0,we=Me.Arpeggio;break}if(!Ae){let Me=ArpeggioType.ARPEGGIO_DIRECTIONLESS;const ke=Pe.attribute("direction");if(ke)switch(ke.value){case"up":Me=ArpeggioType.ROLL_UP;break;case"down":Me=ArpeggioType.ROLL_DOWN;break;default:Me=ArpeggioType.ARPEGGIO_DIRECTIONLESS}we=new Arpeggio(this.currentVoiceEntry,Me),this.currentVoiceEntry.Arpeggio=we}}we.addNote(this.currentNote)}const ye=Ee.elements("tied");ye.length>0&&this.addTie(ye,Q,Z,TieTypes.SIMPLE);const Te=Ee.elements("slide");Te.length>0&&this.addTie(Te,Q,Z,TieTypes.SLIDE);const Le=Ee.element("technical");if(Le){const we=Le.elements("hammer-on");we.length>0&&this.addTie(we,Q,Z,TieTypes.HAMMERON);const Ae=Le.elements("pull-off");Ae.length>0&&this.addTie(Ae,Q,Z,TieTypes.PULLOFF)}}R.element("time-modification")!==void 0&&!Se&&this.handleTimeModificationNode(R)}catch(ge){log$2.warn(ge);const Se=ITextTranslation.translateText("ReaderErrorMessages/NoteError","Ignored erroneous Note.");this.musicSheet.SheetErrors.pushMeasureError(Se),this.musicSheet.SheetErrors.pushMeasureError(ge)}return this.currentNote}checkForStaffEntryLink(R,F,D,G){const U=new StaffEntryLink(this.currentVoiceEntry);U.LinkStaffEntries.push(D),D.Link=U;const W=this.currentVoiceEntry.Timestamp.clone(),q=G.getVerticalContainerByTimestamp(W);return D=q.StaffEntries[R],D||(D=new SourceStaffEntry(q,F),q.StaffEntries[R]=D),D.VoiceEntries.push(this.currentVoiceEntry),U.LinkStaffEntries.push(D),D.Link=U,D}checkForOpenBeam(){this.openBeams.length>0&&this.currentNote&&this.handleOpenBeam()}checkOpenTies(){const R=this.openTieDict;for(const F in R)if(R.hasOwnProperty(F)){const D=R[F];Fraction$1.plus(D.StartNote.ParentStaffEntry.Timestamp,D.Duration).lt(D.StartNote.SourceMeasure.Duration)&&delete R[F]}}hasVoiceEntry(){return this.currentVoiceEntry!==void 0}readArticulations(R,F,D){const G=R.element("articulations");G&&this.articulationReader.addArticulationExpression(G,F);const U=R.element("fermata");U&&this.articulationReader.addFermata(U,F);const W=R.element("technical");W&&this.articulationReader.addTechnicalArticulations(W,F,D);const q=R.element("ornaments");q&&this.articulationReader.addOrnament(q,F)}addSingleNote(R,F,D,G,U,W,q,Y,Q,Z,K,J,ie,ne,se,re,ae){let le=0,ce,he=AccidentalEnum.NONE,de=NoteEnum.C,me=NoteEnum.C,fe=0,ge=0,Se,Ee,ve;const xe=R.elements();for(let ke=0,Ne=xe.length;ke0&&this.openBeams.last().ExtendedNoteList.push(ne),ne}addNoteInfo(R,F,D,G,U,W,q,Y,Q){R.NoteTypeXml=F,R.PrintObject=D,R.IsCueNote=G,R.NormalNotes=U,R.displayStepUnpitched=W,R.displayOctaveUnpitched=q,R.NoteheadColorXml=Y,R.NoteheadColor=Y}createBeam(R,F){var D;try{const G=R.element("beam");let U;if(G!==void 0&&G.hasAttributes&&(U=G.attribute("number")),U){let W=parseInt(U.value,10);const q=R.elements("beam"),Y=q[0].value;q&&(Y==="begin"?(W===((D=this.openBeams.last())==null?void 0:D.BeamNumber)?(this.beamNumberOffset++,W+=this.beamNumberOffset):this.openBeams.last()&&this.handleOpenBeam(),this.openBeams.push(new Beam(W,this.beamNumberOffset))):W+=this.beamNumberOffset);let Q=!1;if(!(W>0&&W<=this.openBeams.length)||!this.openBeams[W-1]){log$2.debug("[OSMD] invalid beamnumber");return}for(let Z=0,K=this.openBeams[W-1].Notes.length;Z1){let G=R.element("time-modification");G&&(G=G.element("actual-notes"));const U=F;for(let W=0,q=U.length;W1&&this.openTupletNumber--),this.tupletDict[K]=ie;const se=[];se.push(this.currentNote),ie.Notes.push(se),ie.Fractions.push(this.getTupletNoteDurationFromType(R)),this.currentNote.NoteTuplet=ie,this.openTupletNumber=K}else if(Z.value==="stop"){let K=1;Y.attribute("number")&&(K=parseInt(Y.attribute("number").value,10));const J=this.tupletDict[K];if(J){const ie=Y.attribute("placement");ie&&(ie.value==="below"?J.tupletLabelNumberPlacement=PlacementEnum.Below:J.tupletLabelNumberPlacement=PlacementEnum.Above,J.PlacementFromXml=!0);const ne=[];if(ne.push(this.currentNote),J.Notes.push(ne),!J.PlacementFromXml){let se=!1;for(const re of J.Notes){for(const ae of re)if(!ae.isRest()){ae.StemDirectionXml===StemDirectionType.Down?J.tupletLabelNumberPlacement=PlacementEnum.Below:J.tupletLabelNumberPlacement=PlacementEnum.Above,se=!0;break}if(se)break}}J.Fractions.push(this.getTupletNoteDurationFromType(R)),this.currentNote.NoteTuplet=J,delete this.tupletDict[K],Object.keys(this.tupletDict).length===0?this.openTupletNumber=0:Object.keys(this.tupletDict).length>1&&this.openTupletNumber--}}}}}else if(F[0]){const G=F[0];if(G.hasAttributes){const U=G.attribute("type").value;let W=1;G.attribute("number")&&(W=parseInt(G.attribute("number").value,10));const q=isNaN(W),Y=G.attribute("bracket");if(Y&&Y.value==="yes"&&(D=!0),U==="start"){let Q=0,Z=R.element("time-modification");if(Z&&(Z=Z.element("actual-notes")),Z&&(Q=parseInt(Z.value,10),isNaN(Q))){const ne=ITextTranslation.translateText("ReaderErrorMessages/TupletNoteDurationError","Invalid tuplet note duration.");throw this.musicSheet.SheetErrors.pushMeasureError(ne),new MusicSheetReadingException(ne)}q&&(this.openTupletNumber++,W=this.openTupletNumber);let K=this.tupletDict[W];K||(K=this.tupletDict[W]=new Tuplet(Q,D),K.tupletLabelNumberPlacement=PlacementEnum.Above);const J=G.attribute("placement");J&&(J.value==="below"?K.tupletLabelNumberPlacement=PlacementEnum.Below:K.tupletLabelNumberPlacement=PlacementEnum.Above,K.PlacementFromXml=!0);const ie=[];ie.push(this.currentNote),K.Notes.push(ie),K.Fractions.push(this.getTupletNoteDurationFromType(R)),this.currentNote.NoteTuplet=K,this.openTupletNumber=W}else if(U==="stop"){q&&(W=this.openTupletNumber);const Q=this.tupletDict[this.openTupletNumber];if(Q){const Z=G.attribute("placement");Z&&(Z.value==="below"?Q.tupletLabelNumberPlacement=PlacementEnum.Below:Q.tupletLabelNumberPlacement=PlacementEnum.Above,Q.PlacementFromXml=!0);const K=[];if(K.push(this.currentNote),Q.Notes.push(K),!Q.PlacementFromXml){let J=!1;for(const ie of Q.Notes){for(const ne of ie)if(!ne.isRest()){ne.StemDirectionXml===StemDirectionType.Down?Q.tupletLabelNumberPlacement=PlacementEnum.Below:Q.tupletLabelNumberPlacement=PlacementEnum.Above,J=!0;break}if(J)break}}Q.Fractions.push(this.getTupletNoteDurationFromType(R)),this.currentNote.NoteTuplet=Q,Object.keys(this.tupletDict).length===0?this.openTupletNumber=0:Object.keys(this.tupletDict).length>1&&this.openTupletNumber--,delete this.tupletDict[W]}}}}return this.openTupletNumber}handleTimeModificationNode(R){if(this.tupletDict[this.openTupletNumber])try{const F=this.tupletDict[this.openTupletNumber],D=CollectionUtil.last(F.Notes),G=D[0].ParentVoiceEntry;let U;G.Timestamp.Equals(this.currentVoiceEntry.Timestamp)?U=D:(U=[],F.Notes.push(U),F.Fractions.push(this.getTupletNoteDurationFromType(R))),U.push(this.currentNote),this.currentNote.NoteTuplet=F}catch(F){const D=ITextTranslation.translateText("ReaderErrorMessages/TupletNumberError","Invalid tuplet number.");throw this.musicSheet.SheetErrors.pushMeasureError(D),F}else if(this.currentVoiceEntry.Notes.length>0){const F=this.currentVoiceEntry.Notes[0];if(F.NoteTuplet){const D=F.NoteTuplet;CollectionUtil.last(D.Notes).push(this.currentNote),this.currentNote.NoteTuplet=D}}}addTie(R,F,D,G){if(R){if(R.length===1){const U=R[0];if(U!==void 0&&U.attributes()){const W=this.getTieDirection(U),q=U.attribute("type").value;try{if(q==="start"){const Y=this.findCurrentNoteInTieDict(this.currentNote);Y<0&&delete this.openTieDict[Y];const Q=this.getNextAvailableNumberForTie(),Z=new Tie(this.currentNote,G);this.openTieDict[Q]=Z,Z.TieNumber=Q,Z.TieDirection=W}else if(q==="stop"){const Y=this.findCurrentNoteInTieDict(this.currentNote),Q=this.openTieDict[Y];Q&&(Q.AddNote(this.currentNote),delete this.openTieDict[Y])}}catch{const Q=ITextTranslation.translateText("ReaderErrorMessages/TieError","Error while reading tie.");this.musicSheet.SheetErrors.pushMeasureError(Q)}}}else if(R.length===2){const U=this.findCurrentNoteInTieDict(this.currentNote);if(U>=0){const W=this.openTieDict[U];W.AddNote(this.currentNote);for(const q of R)if(q.attribute("type").value==="start"){const Q=this.getTieDirection(q);W.NoteIndexToTieDirection[W.Notes.length-1]=Q}}}}}getTieDirection(R){let F=PlacementEnum.NotYetDefined;const D=R.attribute("placement");D&&(D.value==="above"?F=PlacementEnum.Above:D.value==="below"&&(F=PlacementEnum.Below));const G=R.attribute("orientation");return G&&(G.value==="over"?F=PlacementEnum.Above:G.value==="under"&&(F=PlacementEnum.Below)),F}getNextAvailableNumberForTie(){const R=Object.keys(this.openTieDict);if(R.length===0)return 1;R.sort((F,D)=>+F-+D);for(let F=0;F0?G.RealValue>0?(Q=Fraction$1.multiply(Fraction$1.minus(G,U),Q),this.directionTimestamp=Fraction$1.plus(Q,G)):this.directionTimestamp=Fraction$1.createFromFraction(Q):this.offsetDivisions<0&&(G.RealValue>0?(Q=Fraction$1.multiply(Fraction$1.minus(G,U),Q),this.directionTimestamp=Fraction$1.minus(G,Q)):this.directionTimestamp=Fraction$1.createFromFraction(Q));const Z=R.attribute("placement");if(Z)try{const K=Z.value;K==="below"?this.placement=PlacementEnum.Below:K==="above"&&(this.placement=PlacementEnum.Above)}catch(K){const J=ITextTranslation.translateText("ReaderErrorMessages/ExpressionPlacementError","Invalid expression placement -> set to default.");log$2.debug("ExpressionReader.readExpressionParameters",J,K),this.musicSheet.SheetErrors.pushMeasureError(J),this.placement=PlacementEnum.Below}if(this.placement===PlacementEnum.NotYetDefined)try{const K=R.element("direction-type");if(K){const J=K.element("dynamics");if(J){const re=J.attribute("default-y");re&&this.readExpressionPlacement(re,"read dynamics y pos")}const ie=K.element("wedge");if(ie){const re=ie.attribute("default-y");re&&this.readExpressionPlacement(re,"read wedge y pos")}const ne=K.element("words");if(ne){const re=ne.attribute("default-y");re&&this.readExpressionPlacement(re,"read words y pos")}const se=K.element("rehearsal");if(se){const re=se.attribute("default-y");re&&this.readExpressionPlacement(re,"read rehearsal pos")}}}catch(K){const J=ITextTranslation.translateText("ReaderErrorMessages/ExpressionPlacementError","Invalid expression placement -> set to default.");log$2.debug("ExpressionReader.readExpressionParameters",J,K),this.musicSheet.SheetErrors.pushMeasureError(J),this.placement=PlacementEnum.Below}this.placement===PlacementEnum.NotYetDefined&&(F.Staves.length>1?this.placement=PlacementEnum.Below:F.HasLyrics?this.placement=PlacementEnum.Above:this.placement=PlacementEnum.Below)}read(R,F,D,G=void 0,U=0){let W=!1,q=!1;const Y=R.element("sound");if(Y){const K=Y.attribute("tempo"),J=Y.attribute("dynamics");if(K){const ie=K.value.match(/^(\d+)(\.\d+)?$/);(ie==null?void 0:ie.length)>0?this.soundTempo=Math.round(Number.parseFloat(K.value)):(log$2.info("invalid xml tempo: "+K.value),this.soundTempo=100),F.TempoInBPM=this.soundTempo,this.musicSheet.DefaultStartTempoInBpm===0&&(this.musicSheet.DefaultStartTempoInBpm=this.soundTempo),this.musicSheet.HasBPMInfo=!0,W=!0}if(J){const ie=J.value.match(/\d+/);this.soundDynamic=ie!==void 0?parseInt(ie[0],10):100,q=!0}}const Q=R.element("direction-type");if(!Q)return;let Z=Q.element("metronome");if(Z){F.metronomeNoteIndex=U;const K=Z.element("beat-unit"),J=Z.element("beat-unit-dot")!==void 0,ie=Z.element("per-minute");if(K!==void 0&&ie){Z.hasAttributes&&Z.attribute("default-x")!==void 0&&(this.directionTimestamp=Fraction$1.createFromFraction(D));const se=parseFloat(ie.value);this.createNewTempoExpressionIfNeeded(F);const re=new InstantaneousTempoExpression(void 0,this.placement,this.staffNumber,se,this.currentMultiTempoExpression,!0);re.parentMeasure=F,this.soundTempo=se,F.TempoInBPM=this.soundTempo*(J?1.5:1),this.musicSheet.DefaultStartTempoInBpm===0&&(this.musicSheet.DefaultStartTempoInBpm=this.soundTempo),F.MeasureNumberXML===1&&this.musicSheet.SourceMeasures.length===0&&(this.musicSheet.DefaultStartTempoInBpm=this.soundTempo),this.musicSheet.HasBPMInfo=!0,re.dotted=J,re.beatUnit=K.value,this.currentMultiTempoExpression.addExpression(re,""),this.currentMultiTempoExpression.CombinedExpressionsText="test"}return}if(Z=Q.element("dynamics"),Z){const K=R.element("notations")!==void 0;this.interpretInstantaneousDynamics(Z,F,D,K);return}if(Z=Q.element("words"),Z){const K=Q.elements("words");let J="";for(const ie of K)J+=ie.value;if(Z.value=J,W||isSpeedKeyword(Z.value)||isSpeedHiddenKeyword(Z.value)){this.createNewTempoExpressionIfNeeded(F),this.currentMultiTempoExpression.CombinedExpressionsText=Z.value,(isSpeedKeyword(Z.value)||isSpeedHiddenKeyword(Z.value))&&(Z.value=void 0);const ie=new InstantaneousTempoExpression(Z.value,this.placement,this.staffNumber,this.soundTempo,this.currentMultiTempoExpression);this.currentMultiTempoExpression.addExpression(ie,"")}else q||this.interpretWords(Z,F,D);return}if(Z=Q.element("wedge"),Z){this.interpretWedge(Z,F,G,F.MeasureNumber);return}if(Z=Q.element("rehearsal"),Z){this.interpretRehearsalMark(Z,F,D,F.MeasureNumber);return}}closeOpenExpressions(R,F){for(const D of this.openContinuousDynamicExpressions)this.createNewMultiExpressionIfNeeded(R,D.NumberXml,F),this.closeOpenContinuousDynamic(D,R,F);this.openContinuousTempoExpression&&this.closeOpenContinuousTempo(Fraction$1.plus(R.AbsoluteTimestamp,F))}addOctaveShift(R,F,D){var q;let G=1;const U=R.element("staff");if(U)try{G=parseInt(U.value,10)}catch(Y){const Q=ITextTranslation.translateText("ReaderErrorMessages/OctaveShiftStaffError","Invalid octave shift staff number -> set to default");this.musicSheet.SheetErrors.pushMeasureError(Q),G=1,log$2.debug("ExpressionReader.addOctaveShift",Q,Y)}const W=R.element("direction-type");if(W){const Y=W.element("octave-shift"),Q=this.readPlacement(R);if(Y!==void 0&&Y.hasAttributes)try{const Z=this.readNumber(Y);if(Y.attribute("size")){const K=parseInt(Y.attribute("size").value,10);let J=0;K===8?J=1:K===15&&(J=2);let ie=(q=Y.attribute("type"))==null?void 0:q.value;if(ie||(Q===PlacementEnum.Above?ie="down":Q===PlacementEnum.Below&&(ie="up")),ie==="up"||ie==="down"){const ne=new OctaveShift(ie,J);ne.StaffNumber=G,this.getMultiExpression=this.createNewMultiExpressionIfNeeded(F,Z),this.getMultiExpression.OctaveShiftStart=ne,ne.ParentStartMultiExpression=this.getMultiExpression,this.openOctaveShift=ne}else if(ie==="stop"){if(this.openOctaveShift){this.getMultiExpression=this.createNewMultiExpressionIfNeeded(F,this.openOctaveShift.numberXml,D);const ne=this.getMultiExpression;ne.OctaveShiftEnd=this.openOctaveShift,this.openOctaveShift.ParentEndMultiExpression=this.getMultiExpression,this.openOctaveShift=void 0}}else ie||log$2.debug("octave-shift missing type in xml")}}catch(Z){const K=ITextTranslation.translateText("ReaderErrorMessages/OctaveShiftError","Error while reading octave shift.");this.musicSheet.SheetErrors.pushMeasureError(K),log$2.debug("ExpressionReader.addOctaveShift",K,Z)}}}addPedalMarking(R,F,D){var U,W,q,Y;const G=R.element("direction-type");if(G){const Q=G.element("pedal");if(Q!==void 0&&Q.hasAttributes){let Z=!1,K=!1;try{switch(((U=Q.attribute("line"))==null?void 0:U.value)==="yes"?K=!0:((W=Q.attribute("line"))==null?void 0:W.value)==="no"&&(K=!1,Z=!0),((q=Q.attribute("sign"))==null?void 0:q.value)==="yes"?Z=!0:((Y=Q.attribute("sign"))==null?void 0:Y.value)==="no"&&(Z=!1,K=!0),Q.attribute("type").value){case"start":this.openPedal&&this.openPedal.IsLine&&this.endOpenPedal(F),this.createNewMultiExpressionIfNeeded(F,-1),this.openPedal=new Pedal(K,Z),this.getMultiExpression.PedalStart=this.openPedal,this.openPedal.ParentStartMultiExpression=this.getMultiExpression;break;case"stop":this.openPedal&&this.endOpenPedal(F);break;case"change":this.openPedal&&this.openPedal.IsLine&&(this.openPedal.ChangeEnd=!0,this.createNewMultiExpressionIfNeeded(F,-1),this.getMultiExpression.PedalEnd=this.openPedal,this.openPedal.ParentEndMultiExpression=this.getMultiExpression,this.createNewMultiExpressionIfNeeded(F,-1),this.openPedal=new Pedal(K,Z),this.openPedal.ChangeBegin=!0,this.getMultiExpression.PedalStart=this.openPedal,this.openPedal.ParentStartMultiExpression=this.getMultiExpression);break;case"continue":break;default:break}}catch(J){const ie=ITextTranslation.translateText("ReaderErrorMessages/PedalError","Error while reading pedal.");this.musicSheet.SheetErrors.pushMeasureError(ie),log$2.debug("ExpressionReader.addPedalMarking",ie,J)}}}}endOpenPedal(R){this.createNewMultiExpressionIfNeeded(R,-1),this.getMultiExpression.PedalEnd=this.openPedal,this.openPedal.ParentEndMultiExpression=this.getMultiExpression,this.openPedal=void 0}addWavyLine(R,F,D,G){if(R&&R.hasAttributes)try{switch(R.attribute("type").value){case"start":this.createNewMultiExpressionIfNeeded(F,-1),this.openWavyLine=new WavyLine(this.placement),this.getMultiExpression.WavyLineStart=this.openWavyLine,this.openWavyLine.ParentStartMultiExpression=this.getMultiExpression;break;case"stop":this.openWavyLine&&(this.createNewMultiExpressionIfNeeded(F,-1,D),this.getMultiExpression.WavyLineEnd=this.openWavyLine,this.openWavyLine.ParentEndMultiExpression=this.getMultiExpression,this.openWavyLine=void 0);break;case"continue":break;default:break}}catch(U){const W=ITextTranslation.translateText("ReaderErrorMessages/WavyLineError","Error while reading wavy-line.");this.musicSheet.SheetErrors.pushMeasureError(W),log$2.debug("ExpressionReader.addWavyLine",W,U)}}initialize(){this.placement=PlacementEnum.NotYetDefined,this.soundTempo=0,this.soundDynamic=0,this.offsetDivisions=0}readPlacement(R){var D;const F=(D=R.attribute("placement"))==null?void 0:D.value;return F==="above"?PlacementEnum.Above:F==="below"?PlacementEnum.Below:PlacementEnum.NotYetDefined}readExpressionPlacement(R,F){try{const D=parseInt(R.value,10);D<0?this.placement=PlacementEnum.Below:D>0&&(this.placement=PlacementEnum.Above)}catch(D){log$2.debug("ExpressionReader.readExpressionParameters",F,D)}}interpretInstantaneousDynamics(R,F,D,G){if(R.hasElements){R.hasAttributes&&R.attribute("default-x")&&(this.directionTimestamp=Fraction$1.createFromFraction(D));const U=this.readNumber(R);let W=R.elements()[0].name;if(W==="other-dynamics"&&(W=R.elements()[0].value),W){G?this.createNewMultiExpressionIfNeeded(F,U,Fraction$1.createFromFraction(D)):this.createNewMultiExpressionIfNeeded(F,U);const q=new InstantaneousDynamicExpression(W,this.soundDynamic,this.placement,this.staffNumber,F);q.InMeasureTimestamp=D.clone(),this.getMultiExpression.addExpression(q,""),this.initialize(),this.activeInstantaneousDynamic?this.activeInstantaneousDynamic.DynEnum=q.DynEnum:this.activeInstantaneousDynamic=new InstantaneousDynamicExpression(W,0,PlacementEnum.NotYetDefined,1,F)}}}interpretWords(R,F,D){const G=R.value;let U;const W=R.attribute("font-style");if(W&&W.value==="italic"&&(U=FontStyles.Italic),G.length>0){if(R.hasAttributes&&R.attribute("default-x")&&(this.directionTimestamp=Fraction$1.createFromFraction(D)),this.checkIfWordsNodeIsRepetitionInstruction(G))return;this.fillMultiOrTempoExpression(G,F,D,U),this.initialize()}}readNumber(R){var G;let F=1;const D=(G=R.attribute("number"))==null?void 0:G.value;return D&&(F=Number.parseInt(D,10)),F}interpretWedge(R,F,D,G){var W,q;R!==void 0&&R.hasAttributes&&R.attribute("default-x")&&(this.directionTimestamp=Fraction$1.createFromFraction(D));const U=this.readNumber(R);((q=(W=R.attribute("type"))==null?void 0:W.value)==null?void 0:q.toLowerCase())==="stop"?this.createNewMultiExpressionIfNeeded(F,U,D):this.createNewMultiExpressionIfNeeded(F,U),this.addWedge(R,F,D),this.initialize()}interpretRehearsalMark(R,F,D,G){F.rehearsalExpression=new RehearsalExpression(R.value,this.placement)}createNewMultiExpressionIfNeeded(R,F,D=void 0){D||(D=this.directionTimestamp);let G=this.getMultiExpression;return(!G||G&&(G.SourceMeasureParent!==R||G.numberXml!==F||G.SourceMeasureParent===R&&G.Timestamp!==D))&&(this.getMultiExpression=G=new MultiExpression(R,Fraction$1.createFromFraction(D)),R.StaffLinkedExpressions[this.globalStaffIndex].push(G)),G}createNewTempoExpressionIfNeeded(R){(!this.currentMultiTempoExpression||this.currentMultiTempoExpression.SourceMeasureParent!==R||this.currentMultiTempoExpression.Timestamp!==this.directionTimestamp)&&(this.currentMultiTempoExpression=new MultiTempoExpression(R,Fraction$1.createFromFraction(this.directionTimestamp)),R.TempoExpressions.push(this.currentMultiTempoExpression))}addWedge(R,F,D){if(R!==void 0&&R.hasAttributes){const G=this.readNumber(R),U=R.attribute("type").value.toLowerCase();try{if(U==="crescendo"||U==="diminuendo"){const W=new ContinuousDynamicExpression(ContDynamicEnum[U],this.placement,this.staffNumber,F,this.activeInstantaneousDynamic,G);this.openContinuousDynamicExpressions.push(W);let q=this.getMultiExpression;q||(q=this.createNewMultiExpressionIfNeeded(F,G)),q.StartingContinuousDynamic=W,W.StartMultiExpression=q,this.activeInstantaneousDynamic!==void 0&&this.activeInstantaneousDynamic.StaffNumber===W.StaffNumber&&(this.activeInstantaneousDynamic=void 0)}else if(U==="stop")for(const W of this.openContinuousDynamicExpressions)W.NumberXml===G&&W.NumberXml===G&&this.closeOpenContinuousDynamic(W,F,D)}catch(W){const q="ReaderErrorMessages/WedgeError, Error while reading Crescendo / Diminuendo.";this.musicSheet.SheetErrors.pushMeasureError(q),log$2.debug("ExpressionReader.addWedge",q,W)}}}fillMultiOrTempoExpression(R,F,D,G){if(!R)return;const U=R.trim();this.createExpressionFromString("",U,F,D,R,G)}createExpressionFromString(R,F,D,G,U,W){if(InstantaneousTempoExpression.isInputStringInstantaneousTempo(F)||ContinuousTempoExpression.isInputStringContinuousTempo(F)){if(D.TempoExpressions.length>0)for(let Z=0,K=D.TempoExpressions.length;Z0)for(let Z=0,K=D.TempoExpressions.length;Z0&&!this.hasDigit(F)&&this.globalStaffIndex>0){if(J.EntriesList[0].label.indexOf(F)>=0)return!1;break}}let Y=TextAlignmentEnum.CenterBottom;this.musicSheet.Rules.CompactMode&&(Y=TextAlignmentEnum.LeftBottom);const Q=new UnknownExpression(F,this.placement,Y,this.staffNumber);return Q.fontStyle=W,q.addExpression(Q,R),!1}closeOpenContinuousDynamic(R,F,D){if(!R)return;const G=R.NumberXml;R.EndMultiExpression=this.createNewMultiExpressionIfNeeded(F,G,D),R.StartMultiExpression.EndingContinuousDynamic=R,this.openContinuousDynamicExpressions=this.openContinuousDynamicExpressions.filter(U=>U!==R)}closeOpenContinuousTempo(R){this.openContinuousTempoExpression.AbsoluteEndTimestamp=R,this.openContinuousTempoExpression=void 0}checkIfWordsNodeIsRepetitionInstruction(R){return R=R.trim().toLowerCase(),R==="coda"||R==="tocoda"||R==="to coda"||R==="fine"||R==="d.c."||R==="dacapo"||R==="da capo"||R==="d.s."||R==="dalsegno"||R==="dal segno"||R==="d.c. al fine"||R==="d.s. al fine"||R==="d.c. al coda"||R==="d.s. al coda"}hasDigit(R){return/\d/.test(R)}}class Slur{constructor(){}get StartNote(){return this.startNote}set StartNote(R){this.startNote=R}get EndNote(){return this.endNote}set EndNote(R){this.endNote=R}startNoteHasMoreStartingSlurs(){if(!this.startNote)return!1;for(let R=0,F=this.startNote.NoteSlurs.length;R0){const G=D.attribute("type").value;let U=1;try{D.attribute("number")&&(U=parseInt(D.attribute("number").value,10))}catch(Q){log$2.debug("VoiceGenerator.addSlur number: ",Q)}let W=PlacementEnum.NotYetDefined;const q=D.attribute("placement");q&&q.value&&(q.value==="above"?W=PlacementEnum.Above:q.value==="below"&&(W=PlacementEnum.Below));const Y=D.attribute("orientation");if(Y&&Y.value&&(Y.value==="over"?W=PlacementEnum.Above:Y.value==="under"&&(W=PlacementEnum.Below)),G==="start"){let Q=this.openSlurDict[U];Q||(Q=new Slur,this.openSlurDict[U]=Q),Q.StartNote=F,Q.PlacementXml=W}else if(G==="stop"){const Q=this.openSlurDict[U];Q&&(Q.EndNote=F,F.checkForDoubleSlur(Q)||(F.NoteSlurs.push(Q),Q.StartNote.NoteSlurs.push(Q)),delete this.openSlurDict[U])}}}}catch{const G=ITextTranslation.translateText("ReaderErrorMessages/SlurError","Error while reading slur.");this.musicSheet.SheetErrors.pushMeasureError(G)}}}class InstrumentReader{constructor(R,F,D,G){this.voiceGeneratorsDict={},this.staffMainVoiceGeneratorDict={},this.divisions=0,this.currentClefNumber=1,this.currentXmlMeasureIndex=0,this.activeKeyHasBeenInitialized=!1,this.abstractInstructions=[],this.openChordSymbolContainers=[],this.soundTempos=new Map,this.xmlNotes=[],this.repetitionInstructionReader=F,this.xmlMeasureList=D,this.musicSheet=G.GetMusicSheet,this.instrument=G,this.activeClefs=new Array(G.Staves.length),this.activeClefsHaveBeenInitialized=new Array(G.Staves.length);for(let U=0;U=this.xmlMeasureList.length)return!1;this.currentMeasure=R,this.followingMultirestMeasures=Math.max(this.followingMultirestMeasures-1,0),this.inSourceMeasureInstrumentIndex=this.musicSheet.getGlobalStaffIndexOfFirstStaff(this.instrument),this.repetitionInstructionReader&&this.repetitionInstructionReader.prepareReadingMeasure(R,this.currentXmlMeasureIndex);let G=new Fraction$1(0,1),U=new Fraction$1(0,1),W=!1;this.maxTieNoteFraction=new Fraction$1(0,1);let q=!1;const Y=[];try{const ce=this.xmlMeasureList[this.currentXmlMeasureIndex],he=ce.elements();if(R.Rules.UseXMLMeasureNumbers&&!Number.isInteger(R.MeasureNumberXML)){const me=parseInt((Q=ce.attribute("number"))==null?void 0:Q.value,10);Number.isInteger(me)&&(R.MeasureNumberXML=me)}let de;for(let me=0;me0&&(de=he[me-1]),fe.name==="print"){const ge=fe.attribute("new-system");(ge==null?void 0:ge.value)==="yes"&&(R.printNewSystemXml=!0);const Se=fe.attribute("new-page");(Se==null?void 0:Se.value)==="yes"&&(R.printNewPageXml=!0)}else if(fe.name==="note"){fe.element("grace")||(this.xmlNotes.push(fe),Y.push(fe));let ge=!0;((Z=fe.attribute("print-object"))==null?void 0:Z.value)==="no"&&(ge=!1);let Se=1;this.instrument.Staves.length>1&&fe.element("staff")&&(Se=parseInt(fe.element("staff").value,10),isNaN(Se)&&(log$2.debug("InstrumentReader.readNextXmlMeasure.get staff number"),Se=1)),this.currentStaff=this.instrument.Staves[Se-1];const Ee=fe.element("chord")!==void 0;if(fe.element("voice")){const Xe=parseInt(fe.element("voice").value,10);this.currentVoiceGenerator=this.getOrCreateVoiceGenerator(Xe,Se-1)}else(!Ee||!this.currentVoiceGenerator)&&(this.currentVoiceGenerator=this.getOrCreateVoiceGenerator(1,Se-1));let ve=0,xe=new Fraction$1(0,1),Pe=2,ye,Te=!1;if(fe.element("duration")){if(ve=parseInt(fe.element("duration").value,10),isNaN(ve)){const Xe=ITextTranslation.translateText("ReaderErrorMessages/NoteDurationError","Invalid Note Duration.");this.musicSheet.SheetErrors.pushMeasureError(Xe),log$2.debug("InstrumentReader.readNextXmlMeasure",Xe);continue}else if(xe=new Fraction$1(ve,4*this.divisions),ve===0?xe=this.getNoteDurationFromTypeNode(fe):ye=this.getNoteDurationFromTypeNode(fe),fe.element("time-modification")){xe=this.getNoteDurationForTuplet(fe);const Xe=fe.element("time-modification");Xe!=null&&Xe.element("normal-notes")&&(Pe=parseInt(Xe.element("normal-notes").value,10)),Te=!0}}const Le=fe.element("rest")!==void 0,we=fe.element("notations"),Ae=fe.element("grace")!==void 0||ve===0||Ee&&q;let Me=!1,ke=!1;if(Ae){const Xe=fe.element("duration"),tt=fe.element("grace");tt&&tt.attributes()&&tt.attribute("slash")&&tt.attribute("slash").value==="yes"&&(Me=!0),Xe||(xe=this.getNoteDurationFromTypeNode(fe));const nt=fe.element("notations");nt&&nt.element("slur")&&(ke=!0)}let Ne=!1;fe.element("cue")&&(Ne=!0);const Ge=fe.element("type");let ze=NoteType.UNDEFINED;if(Ge){const Xe=Ge.attribute("size");(Xe==null?void 0:Xe.value)==="cue"&&(Ne=!0),ze=NoteTypeHandler.StringToNoteType(Ge.value)}let Ve=StemDirectionType.Undefined,Ye;const et=fe.element("stem");if(et){switch(et.value){case"down":Ve=StemDirectionType.Down;break;case"up":Ve=StemDirectionType.Up;break;case"double":Ve=StemDirectionType.Double;break;case"none":Ve=StemDirectionType.None;break;default:Ve=StemDirectionType.Undefined}const Xe=et.attribute("color");Xe&&(Ye=this.parseXmlColor(Xe.value))}let Je=0,st="",pt="",dt="";if(we){const Xe=we.element("ornaments");if(Xe){const ut=Xe.element("tremolo");if(ut){const vt=ut.attribute("type");if(st=vt.value,vt){const xt=parseInt(ut.value,10);xt>0&&(Je=xt),(vt.value==="start"||vt.value==="stop")&&(xe=new Fraction$1(parseInt(fe.element("duration").value,10),4*this.divisions))}}const ht=Xe.elements("wavy-line");if(ht!==void 0)for(const vt of ht){const xt=this.expressionReaders[this.readExpressionStaffNumber(fe)-1];xt&&(xt.readExpressionParameters(vt,this.instrument,this.divisions,G,U,this.currentMeasure.MeasureNumber,!1),xt.addWavyLine(vt,this.currentMeasure,G,U))}}we.elements("glissando").find(ut=>ut.attribute("type").value==="start")&&(pt="start"),we.elements("slide").find(ut=>ut.attribute("type").value==="start")&&(dt="start")}let yt;const Fe=fe.element("notehead");if(Fe){const Xe=Fe.attribute("color");Xe&&(yt=this.parseXmlColor(Xe.value))}let _e;const je=fe.attribute("color");je&&(_e=this.parseXmlColor(je.value),yt||(yt=_e),Ye||(Ye=_e));let Ze=G.clone();Ee&&(Ze=U.clone()),this.currentStaffEntry=this.currentMeasure.findOrCreateStaffEntry(Ze,this.inSourceMeasureInstrumentIndex+Se-1,this.currentStaff).staffEntry,(!this.currentVoiceGenerator.hasVoiceEntry()||!Ee&&!Ae&&!q||Ae&&!q||Ae&&!Ee||!Ae&&q)&&this.currentVoiceGenerator.createVoiceEntry(Ze,this.currentStaffEntry,this.activeKey,this.ActiveRhythm,Ae,Me,ke),!Ae&&!Ee&&(U=G.clone(),G.Add(xe)),Ee&&this.currentStaffEntry!==void 0&&this.currentStaffEntry.ParentStaff!==this.currentStaff&&(this.currentStaffEntry=this.currentVoiceGenerator.checkForStaffEntryLink(this.inSourceMeasureInstrumentIndex+Se-1,this.currentStaff,this.currentStaffEntry,this.currentMeasure));const De=this.currentStaffEntry!==void 0&&this.currentStaffEntry.Timestamp!==void 0&&this.currentStaffEntry.Timestamp.Equals(new Fraction$1(0,1))&&!this.currentStaffEntry.hasNotes();this.saveAbstractInstructionList(this.instrument.Staves.length,De),this.openChordSymbolContainers.length!==0&&(this.currentStaffEntry.ChordContainers=this.openChordSymbolContainers,this.openChordSymbolContainers=[]),this.activeRhythm,!Te&&!Ae&&(xe=new Fraction$1(ve,4*this.divisions));const Oe=fe.elements("dot").length;if(this.currentVoiceGenerator.read(fe,xe,ye,ze,Pe,Le,this.currentStaffEntry,this.currentMeasure,F,this.maxTieNoteFraction,Ee,D,ge,Ne,Ae,Ve,Je,Ye,yt,Oe,st,pt,dt),we!==void 0&&we.element("dynamics")){const Xe=this.expressionReaders[this.readExpressionStaffNumber(fe)-1];Xe&&(Xe.readExpressionParameters(fe,this.instrument,this.divisions,G,U,this.currentMeasure.MeasureNumber,!1),Xe.read(fe,this.currentMeasure,U,void 0,Y.length))}q=Ae}else if(fe.name==="attributes"){const ge=fe.element("divisions");if(ge&&(this.divisions=parseInt(ge.value,10),isNaN(this.divisions))){const ve=ITextTranslation.translateText("ReaderErrorMessages/DivisionError","Invalid divisions value at Instrument: ");if(log$2.debug("InstrumentReader.readNextXmlMeasure",ve),this.divisions=this.readDivisionsFromNotes(),this.divisions>0)this.musicSheet.SheetErrors.push(ve+this.instrument.Name);else throw W=!0,new MusicSheetReadingException(ve+this.instrument.Name)}if(!fe.element("divisions")&&this.divisions===0&&this.currentXmlMeasureIndex===0){const ve=ITextTranslation.translateText("ReaderErrorMessages/DivisionError","Invalid divisions value at Instrument: ");if(this.divisions=this.readDivisionsFromNotes(),this.divisions>0)this.musicSheet.SheetErrors.push(ve+this.instrument.Name);else throw W=!0,new MusicSheetReadingException(ve+this.instrument.Name)}this.addAbstractInstruction(fe,D,de,G.clone()),G.Equals(new Fraction$1(0,1))&&this.isAttributesNodeAtBeginOfMeasure(this.xmlMeasureList[this.currentXmlMeasureIndex],fe)&&this.saveAbstractInstructionList(this.instrument.Staves.length,!0),this.isAttributesNodeAtEndOfMeasure(this.xmlMeasureList[this.currentXmlMeasureIndex],fe)&&this.saveClefInstructionAtEndOfMeasure();const Se=fe.elements("staff-details");for(const ve of Se){const xe=ve.element("staff-lines");if(xe){let Pe=1;const ye=ve.attribute("number");ye&&(Pe=parseInt(ye.value,10)),this.instrument.Staves[Pe-1].StafflineCount=parseInt(xe.value,10)}}const Ee=fe.element("measure-style");if(Ee){const ve=Ee.element("multiple-rest");if(ve){const xe=ve.value;let Pe=0;try{Pe=Number.parseInt(xe,10),R.multipleRestMeasures!==void 0&&Pe!==R.multipleRestMeasures?R.multipleRestMeasures=0:(R.multipleRestMeasures=Pe,this.currentMultirestStartMeasure=R,this.followingMultirestMeasures=Pe+1)}catch(ye){console.log("multirest parse error: "+ye)}}}}else if(fe.name==="forward"){const ge=parseInt(fe.element("duration").value,10);G.Add(new Fraction$1(ge,4*this.divisions))}else if(fe.name==="backup"){const ge=parseInt(fe.element("duration").value,10);G.Sub(new Fraction$1(ge,4*this.divisions)),G.IsNegative()&&(G=new Fraction$1(0,1)),U.Sub(new Fraction$1(ge,4*this.divisions)),U.IsNegative()&&(U=new Fraction$1(0,1))}else if(fe.name==="direction"){const ge=fe.elements("direction-type"),Se=fe.element("direction-type");let Ee=Math.min(1,G.RealValue);this.activeRhythm!==void 0&&this.activeRhythm.Rhythm&&(Ee/=this.activeRhythm.Rhythm.RealValue);let ve=!1;if(this.repetitionInstructionReader&&(ve=this.repetitionInstructionReader.handleRepetitionInstructionsFromWordsOrSymbols(Se,Ee)),!ve){let xe=this.expressionReaders[0];const Pe=this.readExpressionStaffNumber(fe)-1;if(PeLe==null?void 0:Le.toLocaleLowerCase()).includes((K=ye.value)==null?void 0:K.toLocaleLowerCase())&&(this.currentGradualChangeMeasure=this.currentMeasure,this.currentMeasure.speedInfo={startWord:(J=ye.value)==null?void 0:J.toLocaleLowerCase(),startXmlNoteIndex:Y.length,endXmlNoteIndex:0,resetXmlNoteIndex:0,startMeasureListIndex:this.currentXmlMeasureIndex,endMeasureListIndex:0,resetMeasureListIndex:0},this.xmlNotes=[]),ye.value.startsWith(GRADIENT_SPEED_CLOSE_TAG)&&((ie=this.currentGradualChangeMeasure)==null?void 0:ie.speedInfo)&&(this.currentGradualChangeMeasure.speedInfo={...this.currentGradualChangeMeasure.speedInfo,endXmlNoteIndex:this.xmlNotes.length,endMeasureListIndex:this.currentXmlMeasureIndex}),((ne=ye.value)==null?void 0:ne.toLocaleLowerCase())==="a tempo".toLocaleLowerCase()&&((se=this.currentGradualChangeMeasure)==null?void 0:se.speedInfo))){const{endXmlNoteIndex:Le,resetXmlNoteIndex:we,endMeasureListIndex:Ae}=this.currentGradualChangeMeasure.speedInfo;we===0&&(this.currentGradualChangeMeasure.speedInfo={...this.currentGradualChangeMeasure.speedInfo,endXmlNoteIndex:Le||this.xmlNotes.length,endMeasureListIndex:Ae||this.currentXmlMeasureIndex,resetXmlNoteIndex:this.xmlNotes.length,resetMeasureListIndex:this.currentXmlMeasureIndex}),this.xmlNotes=[]}if(ge.find(Te=>Te.element("metronome"))&&((re=this.currentGradualChangeMeasure)==null?void 0:re.speedInfo)){const{endXmlNoteIndex:Te,resetXmlNoteIndex:Le,endMeasureListIndex:we}=this.currentGradualChangeMeasure.speedInfo;Le===0&&(this.currentGradualChangeMeasure.speedInfo={...this.currentGradualChangeMeasure.speedInfo,endXmlNoteIndex:Te||this.xmlNotes.length,endMeasureListIndex:we||this.currentXmlMeasureIndex,resetXmlNoteIndex:this.xmlNotes.length,resetMeasureListIndex:this.currentXmlMeasureIndex}),this.xmlNotes=[]}xe.readExpressionParameters(fe,this.instrument,this.divisions,G,U,this.currentMeasure.MeasureNumber,!1),xe.read(fe,this.currentMeasure,G,U.clone(),Y.length)}}}else if(fe.name==="barline"){this.repetitionInstructionReader&&this.repetitionInstructionReader.handleLineRepetitionInstructions(fe)&&(this.currentMeasure.HasEndLine=!0);const ge=fe.attribute("location");if(me===he.length-1||ge&&ge.value==="right"){const Ee=(ae=fe.element("bar-style"))==null?void 0:ae.value;if(Ee&&(this.currentMeasure.endingBarStyleXml=Ee,this.currentMeasure.endingBarStyleEnum=SystemLinesEnumHelper.xmlBarlineStyleToSystemLinesEnum(Ee),(le=this.currentGradualChangeMeasure)!=null&&le.speedInfo)){const{endXmlNoteIndex:ve,resetXmlNoteIndex:xe,endMeasureListIndex:Pe}=this.currentGradualChangeMeasure.speedInfo;xe===0&&(this.currentGradualChangeMeasure.speedInfo={...this.currentGradualChangeMeasure.speedInfo,endXmlNoteIndex:ve||this.xmlNotes.length,endMeasureListIndex:Pe||this.currentXmlMeasureIndex,resetXmlNoteIndex:this.xmlNotes.length,resetMeasureListIndex:this.currentXmlMeasureIndex}),this.currentGradualChangeMeasure=void 0,this.xmlNotes=[]}}}else if(fe.name==="sound")try{if(fe.attribute("tempo")){const ge=parseFloat(fe.attribute("tempo").value);fe.element("offset")&&(this.soundTempos.has(this.currentXmlMeasureIndex)||this.soundTempos.set(this.currentXmlMeasureIndex,[]),this.soundTempos.get(this.currentXmlMeasureIndex).push(ge)),this.currentXmlMeasureIndex===0&&(this.musicSheet.DefaultStartTempoInBpm=ge,this.musicSheet.HasBPMInfo=!0)}}catch(ge){log$2.debug("InstrumentReader.readTempoInstruction",ge)}else fe.name==="harmony"&&this.openChordSymbolContainers.push(ChordSymbolReader.readChordSymbol(fe,this.musicSheet,this.activeKey))}for(const me in this.voiceGeneratorsDict)this.voiceGeneratorsDict.hasOwnProperty(me)&&this.voiceGeneratorsDict[me].checkForOpenBeam();if(this.currentXmlMeasureIndex===this.xmlMeasureList.length-1){for(let me=0;me{this.voiceGeneratorsDict[me].finalizeReadingMeasure()}),this.musicSheet.HasBPMInfo?R.TempoInBPM===0&&this.previousMeasure&&(this.currentMeasure.TempoInBPM=this.previousMeasure.TempoInBPM):this.currentMeasure.TempoInBPM=120,this.currentMeasure.TempoInBPM||(this.currentMeasure.TempoInBPM=this.musicSheet.DefaultStartTempoInBpm)}catch(ce){if(W)throw new MusicSheetReadingException(ce.Message);const he=ITextTranslation.translateText("ReaderErrorMessages/MeasureError","Error while reading Measure.");this.musicSheet.SheetErrors.pushMeasureError(he),log$2.debug("InstrumentReader.readNextXmlMeasure",he,ce)}return this.previousMeasure=this.currentMeasure,this.currentXmlMeasureIndex+=1,!0}parseXmlColor(R){if(!!R)return R.length===7?R:R.length===9?"#"+R.substr(3):void 0}doCalculationsAfterDurationHasBeenSet(){for(const R in this.voiceGeneratorsDict)this.voiceGeneratorsDict.hasOwnProperty(R)&&this.voiceGeneratorsDict[R].checkOpenTies()}getOrCreateVoiceGenerator(R,F){const D=this.instrument.Staves[F];let G=this.voiceGeneratorsDict[R];if(G)D.Voices.indexOf(G.GetVoice)===-1&&D.Voices.push(G.GetVoice);else{const U=this.staffMainVoiceGeneratorDict[F];U?(G=new VoiceGenerator(this.pluginManager,D,R,this.slurReader,U.GetVoice),D.Voices.push(G.GetVoice),this.voiceGeneratorsDict[R]=G):(G=new VoiceGenerator(this.pluginManager,D,R,this.slurReader),D.Voices.push(G.GetVoice),this.voiceGeneratorsDict[R]=G,this.staffMainVoiceGeneratorDict[F]=G)}return G}createExpressionGenerators(R){this.expressionReaders=new Array(R);for(let F=0;F0?F=this.musicSheet.SourceMeasures[0]:F=this.currentMeasure;const D=new ClefInstruction(ClefEnum.G,0,2);let G;F.FirstInstructionsStaffEntries[R]?(G=F.FirstInstructionsStaffEntries[R],G.removeFirstInstructionOfTypeClefInstruction()):(G=new SourceStaffEntry(void 0,void 0),F.FirstInstructionsStaffEntries[R]=G),D.Parent=G,G.Instructions.splice(0,0,D)}createDefaultKeyInstruction(){let R;this.musicSheet.SourceMeasures.length>0?R=this.musicSheet.SourceMeasures[0]:R=this.currentMeasure;const F=new KeyInstruction(void 0,0,KeyEnum.major);for(let D=this.inSourceMeasureInstrumentIndex;D0&&D[G-1].name==="backup")return!0;let U=-1;for(let W=0;W0||U<0}isAttributesNodeAtEndOfMeasure(R,F){const D=R.elements().slice();let G=0;for(let W=0;WU}getNoteDurationFromTypeNode(R){const F=R.element("type");if(F){const D=F.value;return NoteTypeHandler.getNoteDurationFromType(D)}return new Fraction$1(0,4*this.divisions)}addAbstractInstruction(R,F,D,G){if(R.element("divisions")&&R.elements().length===1)return;const U=R.element("transpose");if(U){const Y=U.element("chromatic");Y&&(this.instrument.PlaybackTranspose=parseInt(Y.value,10))}const W=R.elements("clef");let q;if(W.length>0)for(let Y=0,Q=W.length;Y using default clef line."),this.musicSheet.SheetErrors.pushMeasureError(q),J=2,log$2.debug("InstrumentReader.addAbstractInstruction",q,ce)}const re=Z.element("sign");if(re)try{K=ClefEnum[re.value],ClefInstruction.isSupportedClef(K)||(q=ITextTranslation.translateText("ReaderErrorMessages/ClefError","Unsupported clef found -> using default clef."),this.musicSheet.SheetErrors.pushMeasureError(q),K=ClefEnum.G,J=2),K===ClefEnum.TAB&&(ne=-1)}catch(ce){q=ITextTranslation.translateText("ReaderErrorMessages/ClefError","Invalid clef found -> using default clef."),this.musicSheet.SheetErrors.pushMeasureError(q),K=ClefEnum.G,J=2,log$2.debug("InstrumentReader.addAbstractInstruction",q,ce)}const ae=Z.element("clef-octave-change");if(ae)try{ne=parseInt(ae.value,10)}catch{q=ITextTranslation.translateText("ReaderErrorMessages/ClefOctaveError","Invalid clef octave found -> using default clef octave."),this.musicSheet.SheetErrors.pushMeasureError(q),ne=0}if(Z.hasAttributes&&Z.attribute("number"))try{ie=parseInt(Z.attribute("number").value,10),ie>this.currentClefNumber&&(ie=this.currentClefNumber),this.currentClefNumber=ie+1}catch{q=ITextTranslation.translateText("ReaderErrorMessages/ClefError","Invalid clef found -> using default clef."),this.musicSheet.SheetErrors.pushMeasureError(q),ie=1,this.currentClefNumber=ie+1}const le=new ClefInstruction(K,ne,J);this.abstractInstructions.push([ie,le,G])}if(R.element("key")!==void 0&&this.instrument.MidiInstrumentId!==MidiInstrument.Percussion){let Y=0;const Q=R.element("key").element("fifths");if(Q)try{Y=parseInt(Q.value,10)}catch(ie){q=ITextTranslation.translateText("ReaderErrorMessages/KeyError","Invalid key found -> set to default."),this.musicSheet.SheetErrors.pushMeasureError(q),Y=0,log$2.debug("InstrumentReader.addAbstractInstruction",q,ie)}let Z=KeyEnum.none,K=R.element("key");if(K&&(K=K.element("mode")),K)try{Z=KeyEnum[K.value]}catch(ie){q=ITextTranslation.translateText("ReaderErrorMessages/KeyError","Invalid key found -> set to default."),this.musicSheet.SheetErrors.pushMeasureError(q),Z=KeyEnum.major,log$2.debug("InstrumentReader.addAbstractInstruction",q,ie)}const J=new KeyInstruction(void 0,Y,Z);this.abstractInstructions.push([1,J,G])}if(R.element("time")){const Y=R.element("time");let Q=RhythmSymbolEnum.NONE,Z=!0;if(Y!==void 0&&Y.hasAttributes){const ae=Y.attribute("symbol");ae&&(ae.value==="common"?Q=RhythmSymbolEnum.COMMON:ae.value==="cut"&&(Q=RhythmSymbolEnum.CUT));const le=Y.attribute("print-object");le&&le.value==="no"&&(Z=!1)}let K=0,J=0;const ie=Y&&Y.element("senza-misura")!==void 0,ne=R.elements("time"),se=[],re=[];for(let ae=0,le=ne.length;ae0&&re!==void 0&&se.length===re.length){const le=se.length,ce=new Array(le);let he=0;for(let de=0;de set to default."),this.musicSheet.SheetErrors.pushMeasureError(q),K=4,J=4,log$2.debug("InstrumentReader.addAbstractInstruction",q,le)}const ae=new RhythmInstruction(new Fraction$1(K,J,0,!1),Q);ae.PrintObject=Z,this.abstractInstructions.push([1,ae,G])}}}saveAbstractInstructionList(R,F){for(let D=this.abstractInstructions.length-1;D>=0;D--){const G=this.abstractInstructions[D],U=G[0],W=G[1],q=G[2];if(W instanceof ClefInstruction){const Y=W;if(this.currentXmlMeasureIndex===0||U<=this.activeClefs.length&&Y!==this.activeClefs[U-1])if(!F&&this.currentStaffEntry!==void 0&&!this.currentStaffEntry.hasNotes()&&U-1===this.instrument.Staves.indexOf(this.currentStaffEntry.ParentStaff)){const Q=Y,Z=this.currentStaffEntry;if(q&&Math.abs(q.RealValue-Z.Timestamp.RealValue)>.01)continue;Q.Parent=Z,Z.removeFirstInstructionOfTypeClefInstruction(),Z.Instructions.push(Q),this.activeClefs[U-1]=Y,this.abstractInstructions.splice(D,1)}else if(F){if(q.RealValue!==0)continue;let Q;if(this.currentMeasure){const Z=Y,K=this.inSourceMeasureInstrumentIndex+U-1,J=this.currentMeasure.FirstInstructionsStaffEntries[K];if(this.currentXmlMeasureIndex===0)if(!J)Q=new SourceStaffEntry(void 0,void 0),this.currentMeasure.FirstInstructionsStaffEntries[K]=Q,Z.Parent=Q,Q.Instructions.push(Z),this.activeClefsHaveBeenInitialized[U-1]=!0;else if(this.currentMeasure.FirstInstructionsStaffEntries[K]!==void 0&&!(J.Instructions[0]instanceof ClefInstruction))Q=J,Z.Parent=Q,Q.removeFirstInstructionOfTypeClefInstruction(),Q.Instructions.splice(0,0,Z),this.activeClefsHaveBeenInitialized[U-1]=!0;else{const ie=new SourceStaffEntry(void 0,void 0);this.currentMeasure.LastInstructionsStaffEntries[K]=ie,Z.Parent=ie,ie.Instructions.push(Z)}else if(this.activeClefsHaveBeenInitialized[U-1]){let ie=this.previousMeasure;this.followingMultirestMeasures>0&&this.currentMeasure.Rules.RenderMultipleRestMeasures&&(ie=this.currentMultirestStartMeasure);const ne=new SourceStaffEntry(void 0,void 0);ie.LastInstructionsStaffEntries[K]=ne,Z.Parent=ne,ne.Instructions.push(Z)}else{const ie=this.musicSheet.SourceMeasures[0];ie.FirstInstructionsStaffEntries[K]?(Q=ie.FirstInstructionsStaffEntries[K],Q.removeFirstInstructionOfTypeClefInstruction()):Q=new SourceStaffEntry(void 0,void 0),Z.Parent=Q,Q.Instructions.splice(0,0,Z),this.activeClefsHaveBeenInitialized[U-1]=!0}this.activeClefs[U-1]=Y,this.abstractInstructions.splice(D,1)}}else{let Q;const Z=this.activeRhythm.Rhythm;Z.RealValue>0&&q.RealValue/Z.RealValue>.9&&(this.currentMeasure.LastInstructionsStaffEntries[U-1]||(this.currentMeasure.LastInstructionsStaffEntries[U-1]=new SourceStaffEntry(void 0,this.instrument.Staves[U-1])),Q=this.currentMeasure.LastInstructionsStaffEntries[U-1]),Q&&(Y.Parent=Q,Q.Instructions.push(Y),this.activeClefs[U-1]=Y,this.abstractInstructions.splice(D,1))}else U<=this.activeClefs.length&&Y===this.activeClefs[U-1]&&this.abstractInstructions.splice(D,1)}if(W instanceof KeyInstruction){const Y=W;if(!this.activeKey||this.activeKey.Key!==Y.Key){this.activeKey=Y,this.abstractInstructions.splice(D,1);let Q;if(this.activeKeyHasBeenInitialized?Q=this.currentMeasure:(this.activeKeyHasBeenInitialized=!0,this.currentXmlMeasureIndex>0?Q=this.musicSheet.SourceMeasures[0]:Q=this.currentMeasure),Q)for(let Z=this.inSourceMeasureInstrumentIndex;Z=0;R--){const F=this.abstractInstructions[R][0],D=this.abstractInstructions[R][1];if(D instanceof ClefInstruction){const G=D;if(!this.activeClefs[F-1]||G.ClefType!==this.activeClefs[F-1].ClefType||G.ClefType===this.activeClefs[F-1].ClefType&&G.Line!==this.activeClefs[F-1].Line){const U=new SourceStaffEntry(void 0,void 0);this.currentMeasure.LastInstructionsStaffEntries[this.inSourceMeasureInstrumentIndex+F-1]=U;const W=G;W.Parent=U,U.Instructions.push(W),this.activeClefs[F-1]=G,this.abstractInstructions.splice(R,1)}}}}getNoteDurationForTuplet(R){let F=new Fraction$1(0,1);const D=this.getNoteDurationFromTypeNode(R);if(R.element("time-modification")){const G=R.element("time-modification");if(G&&G.element("actual-notes")!==void 0&&G.element("normal-notes")){const U=G.element("actual-notes"),W=G.element("normal-notes");if(U!==void 0&&W){const q=parseInt(U.value,10),Y=parseInt(W.value,10);F=new Fraction$1(Y*D.Numerator,q*D.Denominator)}}}return F}readExpressionStaffNumber(R){let F=1;if(R.element("staff")){const D=R.element("staff");if(D)try{F=parseInt(D.value,10)}catch(G){const U=ITextTranslation.translateText("ReaderErrorMessages/ExpressionStaffError","Invalid Expression staff number -> set to default.");this.musicSheet.SheetErrors.pushMeasureError(U),F=1,log$2.debug("InstrumentReader.readExpressionStaffNumber",U,G)}}return F}readDivisionsFromNotes(){let R=0,F=this.currentXmlMeasureIndex,D=!1;for(;!D;){const G=this.xmlMeasureList[F].elements();for(let U=0,W=G.length;U0){D=!0;break}}if(R===0&&(F++,F===this.xmlMeasureList.length)){const U=ITextTranslation.translateText("ReaderErrorMEssages/DivisionsError","Invalid divisions value at Instrument: ");throw new MusicSheetReadingException(U+this.instrument.Name)}}return R}}const _SubInstrument=class{constructor(B){this.parentInstrument=B,this.fixedKey=-1,this.name=this.parseMidiInstrument(this.parentInstrument.Name),this.midiInstrumentID=_SubInstrument.midiInstrument[this.name],this.volume=1}get ParentInstrument(){return this.parentInstrument}static isPianoInstrument(B){return B===MidiInstrument.Acoustic_Grand_Piano||B===MidiInstrument.Bright_Acoustic_Piano||B===MidiInstrument.Electric_Grand_Piano||B===MidiInstrument.Electric_Piano_1||B===MidiInstrument.Electric_Piano_2}setMidiInstrument(B){this.midiInstrumentID=_SubInstrument.midiInstrument[this.parseMidiInstrument(B)]}parseMidiInstrument(B){try{if(B){let R=B.toLowerCase().trim();R=R.replace(/\s+/g,"_");for(const F in _SubInstrument.midiInstrument)if(R.indexOf(F)!==-1)return F}if(this.parentInstrument.Name){let R=this.parentInstrument.Name.toLowerCase().trim();R=R.replace(/\s+/g,"_");for(const F in _SubInstrument.midiInstrument)if(R.indexOf(F)!==-1)return F}}catch{log$2.error("Error parsing MIDI Instrument. Default to Grand Piano.")}return"unnamed"}};let SubInstrument=_SubInstrument;SubInstrument.midiInstrument={alto_saxophone:MidiInstrument.Alto_Sax,baritone_saxophone:MidiInstrument.Baritone_Sax,horn_in_f:MidiInstrument.French_Horn,english_horn:MidiInstrument.English_Horn,euphonium:MidiInstrument.Euphonium,clarinet_in_bb:MidiInstrument.clarinet_in_bb,clarinet_in_eb:MidiInstrument.clarinet_in_eb,clarinet:MidiInstrument.Clarinet,alto_clarinet:MidiInstrument.Alto_Clarinet,bass_clarinet:MidiInstrument.Bass_Clarinet,bassoon:MidiInstrument.Bassoon,bass_trombone:MidiInstrument.Bass_Trombone,alt:MidiInstrument.Synth_Voice,alto:MidiInstrument.Synth_Voice,banjo:MidiInstrument.Banjo,bariton:MidiInstrument.Synth_Voice,baritone:MidiInstrument.Synth_Voice,bass:MidiInstrument.Synth_Voice,blockfl\u00F6te:MidiInstrument.Recorder,brass:MidiInstrument.Trombone,bratsche:MidiInstrument.Viola,cello:MidiInstrument.Cello,contrabass:MidiInstrument.Contrabass,drums:MidiInstrument.Percussion,flute:MidiInstrument.Flute,fl\u00F6te:MidiInstrument.Flute,frenchhorn:MidiInstrument.French_Horn,gitarre:MidiInstrument.Acoustic_Guitar_nylon,guitar:MidiInstrument.Acoustic_Guitar_nylon,harfe:MidiInstrument.Orchestral_Harp,harp:MidiInstrument.Orchestral_Harp,klarinette:MidiInstrument.Clarinet,klavier:MidiInstrument.Acoustic_Grand_Piano,kontrabass:MidiInstrument.Contrabass,oboe:MidiInstrument.Oboe,organ:MidiInstrument.Church_Organ,orgel:MidiInstrument.Church_Organ,orgue:MidiInstrument.Church_Organ,percussion:MidiInstrument.Synth_Drum,\u5C0F\u519B\u9F13:MidiInstrument.Synth_Drum,snare_drum:MidiInstrument.Synth_Drum,bass_drum:MidiInstrument.Synth_Drum,side_drum:MidiInstrument.Synth_Drum,piano:MidiInstrument.Acoustic_Grand_Piano,piccolo:MidiInstrument.Piccolo,posaune:MidiInstrument.Trombone,recorder:MidiInstrument.Recorder,sax:MidiInstrument.Tenor_Sax,schlagwerk:MidiInstrument.Percussion,schlagzeug:MidiInstrument.Percussion,sopran:MidiInstrument.Synth_Voice,steeldrum:MidiInstrument.Steel_Drums,streicher:MidiInstrument.String_Ensemble_1,strings:MidiInstrument.String_Ensemble_1,tenor:MidiInstrument.Synth_Voice,tpt:MidiInstrument.Trumpet,trombone:MidiInstrument.Trombone,trompete:MidiInstrument.Trumpet,trumpet:MidiInstrument.Trumpet,tuba:MidiInstrument.Tuba,unnamed:MidiInstrument.Acoustic_Grand_Piano,viola:MidiInstrument.Viola,violin:MidiInstrument.Violin,"violon-c":MidiInstrument.Cello,"violon.":MidiInstrument.Violin,voice:MidiInstrument.Synth_Voice,woodblock:MidiInstrument.Woodblock,alto_clarinet_in_eb:MidiInstrument.AltoClarinetInEb,trumpet_in_bb:MidiInstrument.TrumpetInBb,tenor_saxophone:MidiInstrument.TenorSaxophone};class StringUtil{static StringContainsSeparatedWord(R,F,D=!1){return new RegExp("( |^)"+F+"([ .]|$)",D?"i":void 0).test(R)}}class RepetitionInstructionReader{set MusicSheet(R){this.musicSheet=R,this.xmlMeasureList=new Array(this.musicSheet.Instruments.length),this.repetitionInstructions=[]}prepareReadingMeasure(R,F){this.currentMeasureIndex=F}handleLineRepetitionInstructions(R){let F=!1;if(R.elements().length>0){let D="",G=!1,U="",W="",q="";const Y=[],Q=R.element("bar-style");Q&&(q=Q.value),R.attributes().length>0&&R.attribute("location")?D=R.attribute("location").value:D="right";const Z=R.elements();for(let K=0,J=Z.length;K0)if(D==="left"){if(W==="start"){const K=new RepetitionInstruction(this.currentMeasureIndex,RepetitionInstructionEnum.Ending,AlignmentType.Begin,void 0,Y);this.addInstruction(this.repetitionInstructions,K)}if(U==="forward"){const K=new RepetitionInstruction(this.currentMeasureIndex,RepetitionInstructionEnum.StartLine);this.addInstruction(this.repetitionInstructions,K)}}else{if(W==="stop"){const K=new RepetitionInstruction(this.currentMeasureIndex,RepetitionInstructionEnum.Ending,AlignmentType.End,void 0,Y);this.addInstruction(this.repetitionInstructions,K)}if(U==="backward"){const K=new RepetitionInstruction(this.currentMeasureIndex,RepetitionInstructionEnum.BackJumpLine);this.addInstruction(this.repetitionInstructions,K)}}}return F}handleRepetitionInstructionsFromWordsOrSymbols(R,F){const D=R.element("words"),G=this.currentMeasureIndex;if(D){const U="d\\s?\\.s\\.",W=D.value.trim().toLowerCase();if(StringUtil.StringContainsSeparatedWord(W,U+" al fine",!0)){const Y=new RepetitionInstruction(G,RepetitionInstructionEnum.DalSegnoAlFine);return this.addInstruction(this.repetitionInstructions,Y),!0}if(StringUtil.StringContainsSeparatedWord(W,U+" al coda",!0)){const Y=new RepetitionInstruction(G,RepetitionInstructionEnum.DalSegnoAlCoda);return this.addInstruction(this.repetitionInstructions,Y),!0}const q="d\\.\\s?c\\.";if(StringUtil.StringContainsSeparatedWord(W,q+" al fine",!0)){const Y=new RepetitionInstruction(G,RepetitionInstructionEnum.DaCapoAlFine);return this.addInstruction(this.repetitionInstructions,Y),!0}if(StringUtil.StringContainsSeparatedWord(W,q+" al coda",!0)){const Y=new RepetitionInstruction(G,RepetitionInstructionEnum.DaCapoAlCoda);return this.addInstruction(this.repetitionInstructions,Y),!0}if(StringUtil.StringContainsSeparatedWord(W,q)||StringUtil.StringContainsSeparatedWord(W,"da\\s?capo",!0)){const Y=new RepetitionInstruction(G,RepetitionInstructionEnum.DaCapo);return this.addInstruction(this.repetitionInstructions,Y),!0}if(StringUtil.StringContainsSeparatedWord(W,U,!0)||StringUtil.StringContainsSeparatedWord(W,"dal\\s?segno",!0)){let Y;return StringUtil.StringContainsSeparatedWord(W,"al\\s?coda",!0)?Y=new RepetitionInstruction(G,RepetitionInstructionEnum.DalSegnoAlCoda):Y=new RepetitionInstruction(G,RepetitionInstructionEnum.DalSegno),this.addInstruction(this.repetitionInstructions,Y),!0}if(StringUtil.StringContainsSeparatedWord(W,"to\\s?coda",!0)||StringUtil.StringContainsSeparatedWord(W,"a (la )?coda",!0)){const Y=new RepetitionInstruction(G,RepetitionInstructionEnum.ToCoda);return this.addInstruction(this.repetitionInstructions,Y),!0}if(StringUtil.StringContainsSeparatedWord(W,"fine",!0)){const Y=new RepetitionInstruction(G,RepetitionInstructionEnum.Fine);return this.addInstruction(this.repetitionInstructions,Y),!0}if(StringUtil.StringContainsSeparatedWord(W,"coda",!0)){const Y=new RepetitionInstruction(G,RepetitionInstructionEnum.Coda);return this.addInstruction(this.repetitionInstructions,Y),!0}if(StringUtil.StringContainsSeparatedWord(W,"segno",!0)){const Y=new RepetitionInstruction(G,RepetitionInstructionEnum.Segno);return this.addInstruction(this.repetitionInstructions,Y),!0}}else if(R.element("segno")){const U=new RepetitionInstruction(G,RepetitionInstructionEnum.Segno);return this.addInstruction(this.repetitionInstructions,U),!0}else if(R.element("coda")){const U=new RepetitionInstruction(G,RepetitionInstructionEnum.Coda);return this.addInstruction(this.repetitionInstructions,U),!0}return!1}removeRedundantInstructions(){let R=0,F=0,D=0,G=0;for(let U=0;U0&&this.findInstructionInPreviousMeasure(U,W.measureIndex,RepetitionInstructionEnum.ToCoda)&&(W.type=RepetitionInstructionEnum.None),F===0&&D===0&&(W.type=RepetitionInstructionEnum.ToCoda,W.alignment=AlignmentType.End,W.measureIndex--);break;case RepetitionInstructionEnum.Segno:if(R-G>0){let q=!1;for(let Y=0,Q=this.repetitionInstructions.length;Y0?Z.type=RepetitionInstructionEnum.DalSegnoAlCoda:Z.type=RepetitionInstructionEnum.DalSegno,W.type=RepetitionInstructionEnum.None,q=!0;break;case RepetitionInstructionEnum.DalSegno:case RepetitionInstructionEnum.DalSegnoAlFine:case RepetitionInstructionEnum.DalSegnoAlCoda:W.type=RepetitionInstructionEnum.None,q=!0;break}if(q)break}if(q)break;D-F>0?W.type=RepetitionInstructionEnum.DalSegnoAlCoda:W.type=RepetitionInstructionEnum.DalSegno,W.alignment=AlignmentType.End,W.measureIndex--}break}if(this.backwardSearchForPreviousIdenticalInstruction(U,W)||W.type===RepetitionInstructionEnum.None)this.repetitionInstructions.splice(U,1),U--;else switch(W.type){case RepetitionInstructionEnum.Fine:break;case RepetitionInstructionEnum.ToCoda:D++;break;case RepetitionInstructionEnum.Coda:F++;break;case RepetitionInstructionEnum.Segno:R++;break;case RepetitionInstructionEnum.DalSegnoAlFine:case RepetitionInstructionEnum.DalSegnoAlCoda:G++;break}}this.repetitionInstructions.sort(RepetitionInstructionComparer.Compare)}findInstructionInPreviousMeasure(R,F,D){for(let G=R-1;G>=0;G--){const U=this.repetitionInstructions[G];if(F-U.measureIndex===1&&U.type===D)return!0}return!1}backwardSearchForPreviousIdenticalInstruction(R,F){for(let D=R-1;D>=0;D--)if(this.repetitionInstructions[D].equals(F))return!0;return!1}addInstruction(R,F){let D=!0;for(let G=0,U=R.length;G0;)try{const q=this.openRepetitions.last();if(q.RepetitonUnderConstruction.FromWords){if(q.WaitingForCoda){let Y=q.RepetitonUnderConstruction.BackwardJumpInstructions.last().measureIndex+1;Y>=this.musicSheet.SourceMeasures.length&&(Y=-1),q.RepetitonUnderConstruction.setEndingStartIndex(2,Y)}else if(q.RepetitonUnderConstruction.BackwardJumpInstructions.length===0){this.openRepetitions.splice(this.openRepetitions.length-1,1);continue}}else if(q.RepetitonUnderConstruction.BackwardJumpInstructions.length===0){const Y=D.length-1,Q=new RepetitionInstruction(Y,RepetitionInstructionEnum.BackJumpLine,AlignmentType.End,q.RepetitonUnderConstruction);q.RepetitonUnderConstruction.BackwardJumpInstructions.push(Q),D[Y].LastRepetitionInstructions.push(Q)}this.finalizeRepetition(this.openRepetitions.last())}catch{try{const Y=this.openRepetitions.last().RepetitonUnderConstruction;for(const Q of this.repetitionInstructions)Q.parentRepetition===Y&&(Q.parentRepetition=void 0);this.openRepetitions.splice(this.openRepetitions.length-1,1)}catch(Y){log$2.error("RepetitionCalculator: calculateRepetitions2",Y)}}let G=!1;const U=0,W=this.musicSheet.SourceMeasures.length-1;for(const q of this.musicSheet.Repetitions)if(q.StartIndex===U&&q.EndIndex===W){G=!0;break}if(!G){const q=new Repetition(this.musicSheet,!0);q.FromWords=!0,q.startMarker=new RepetitionInstruction(U,RepetitionInstructionEnum.StartLine),q.startMarker.parentRepetition=q,this.musicSheet.SourceMeasures[U].FirstRepetitionInstructions.push(q.startMarker),q.endMarker=new RepetitionInstruction(W,RepetitionInstructionEnum.BackJumpLine),q.endMarker.parentRepetition=q,q.BackwardJumpInstructions.push(q.endMarker),q.UserNumberOfRepetitions=q.DefaultNumberOfRepetitions,this.musicSheet.Repetitions.push(q)}for(let q=0,Y=this.musicSheet.SourceMeasures.length;q1&&Q.FirstRepetitionInstructions.sort(RepetitionInstructionComparer.Compare),Q.LastRepetitionInstructions.length>1&&Q.LastRepetitionInstructions.sort(RepetitionInstructionComparer.Compare)}}handleRepetitionInstructions(R){let F;switch(R.type){case RepetitionInstructionEnum.StartLine:F=this.createNewRepetition(this.currentMeasureIndex),R.parentRepetition=F.RepetitonUnderConstruction,F.RepetitonUnderConstruction.FromWords=!1,F.RepetitonUnderConstruction.startMarker=R,this.currentMeasure.FirstRepetitionInstructions.push(R);break;case RepetitionInstructionEnum.BackJumpLine:F=this.getOrCreateCurrentRepetition2(!1),R.parentRepetition=F.RepetitonUnderConstruction,F.RepetitonUnderConstruction.BackwardJumpInstructions.push(R),this.currentMeasure.LastRepetitionInstructions.push(R),F.RepetitonUnderConstruction.EndingParts.length===0&&this.finalizeRepetition(F);break;case RepetitionInstructionEnum.Ending:if(F=this.getOrCreateCurrentRepetition(),R.parentRepetition=F.RepetitonUnderConstruction,R.endingIndices.contains(1)&&R.alignment===AlignmentType.Begin){if(F.RepetitonUnderConstruction.BackwardJumpInstructions.length>0||F.RepetitonUnderConstruction.EndingIndexDict.hasOwnProperty(1)){F=void 0;for(let G=this.openRepetitions.length-1;G>=0;G--){const U=this.openRepetitions[G];if(U.RepetitonUnderConstruction.BackwardJumpInstructions.length===0)for(F=U;this.openRepetitions.length-1>G;){const W=this.openRepetitions.last();this.finalizeRepetition(W)}}F===void 0&&(F=this.createNewRepetition(0),F.RepetitonUnderConstruction.startMarker=new RepetitionInstruction(0,RepetitionInstructionEnum.None))}F.RepetitonUnderConstruction.forwardJumpInstruction===void 0&&(F.RepetitonUnderConstruction.forwardJumpInstruction=new RepetitionInstruction(this.currentMeasureIndex-1,RepetitionInstructionEnum.ForwardJump,AlignmentType.End,F.RepetitonUnderConstruction),this.musicSheet.SourceMeasures[this.currentMeasureIndex-1].LastRepetitionInstructions.push(F.RepetitonUnderConstruction.forwardJumpInstruction))}if(R.alignment===AlignmentType.Begin)F.RepetitonUnderConstruction.setEndingsStartIndex(R.endingIndices,this.currentMeasureIndex),this.currentMeasure.FirstRepetitionInstructions.push(R);else for(let G=0,U=R.endingIndices.length;G0&&Math.abs(F.RepetitonUnderConstruction.BackwardJumpInstructions.last().measureIndex-this.currentMeasureIndex)<=1||this.openRepetitions.length&&this.openRepetitions.find(G=>G.RepetitonUnderConstruction.startMarker.type===RepetitionInstructionEnum.StartLine).RepetitonUnderConstruction.StartIndex===this.currentMeasureIndex)break;F=this.createNewRepetition(this.currentMeasureIndex),R.parentRepetition=F.RepetitonUnderConstruction,F.RepetitonUnderConstruction.FromWords=!0,F.SegnoFound=!0,F.RepetitonUnderConstruction.startMarker=R,this.currentMeasure.FirstRepetitionInstructions.push(R);break;case RepetitionInstructionEnum.Fine:if(this.openRepetitions.length===0||(F=this.getCurrentRepetition(!0),F===void 0))break;R.parentRepetition=F.RepetitonUnderConstruction,F.RepetitonUnderConstruction.FromWords=!0,F.RepetitonUnderConstruction.forwardJumpInstruction===void 0?(F.FineFound=!0,F.RepetitonUnderConstruction.forwardJumpInstruction=R,F.RepetitonUnderConstruction.setEndingStartIndex(2,-2),this.currentMeasure.LastRepetitionInstructions.push(R)):this.currentMeasure.LastRepetitionInstructions.push(new RepetitionInstruction(this.currentMeasureIndex,RepetitionInstructionEnum.Fine,AlignmentType.End,void 0));break;case RepetitionInstructionEnum.ToCoda:if(this.openRepetitions.length===0||(F=this.getCurrentRepetition(!0),F===void 0))break;F.RepetitonUnderConstruction.forwardJumpInstruction===void 0&&(R.parentRepetition=F.RepetitonUnderConstruction,F.RepetitonUnderConstruction.FromWords=!0,F.ToCodaFound=!0,F.RepetitonUnderConstruction.forwardJumpInstruction=R,this.currentMeasure.LastRepetitionInstructions.push(R));break;case RepetitionInstructionEnum.Coda:if(this.openRepetitions.length===0)break;F=this.getOrCreateCurrentRepetition2(!0),R.parentRepetition=F.RepetitonUnderConstruction,F.WaitingForCoda?(F.CodaFound=!0,F.RepetitonUnderConstruction.setEndingStartIndex(2,this.currentMeasureIndex),this.currentMeasure.LastRepetitionInstructions.push(R),this.finalizeRepetition(F),this.currentMeasureIndex>0&&(this.musicSheet.SourceMeasures[this.currentMeasureIndex-1].printNewSystemXml=!0)):F.ToCodaFound||(F.RepetitonUnderConstruction.BackwardJumpInstructions.length===0?(F.ToCodaFound=!0,F.RepetitonUnderConstruction.forwardJumpInstruction=new RepetitionInstruction(this.currentMeasureIndex,RepetitionInstructionEnum.ToCoda,AlignmentType.End,F.RepetitonUnderConstruction),this.currentMeasure.LastRepetitionInstructions.push(F.RepetitonUnderConstruction.forwardJumpInstruction)):this.currentMeasure.LastRepetitionInstructions.push(new RepetitionInstruction(this.currentMeasureIndex,RepetitionInstructionEnum.Coda,AlignmentType.Begin,void 0)));break;case RepetitionInstructionEnum.DaCapo:F=this.getOrCreateCurrentRepetition(),F.RepetitonUnderConstruction.BackwardJumpInstructions.length>0&&this.finalizeRepetition(F),F.RepetitonUnderConstruction.StartIndex!==0&&(F=this.createNewRepetition(0)),R.parentRepetition=F.RepetitonUnderConstruction,F.RepetitonUnderConstruction.FromWords=!0,F.RepetitonUnderConstruction.startMarker=new RepetitionInstruction(0,RepetitionInstructionEnum.None,AlignmentType.Begin,F.RepetitonUnderConstruction),F.RepetitonUnderConstruction.BackwardJumpInstructions.push(R),this.currentMeasure.LastRepetitionInstructions.push(R),F.RepetitonUnderConstruction.EndingParts.length===0&&this.finalizeRepetition(F);break;case RepetitionInstructionEnum.DalSegno:if(F=this.getOrCreateCurrentRepetition2(!0),F.RepetitonUnderConstruction.BackwardJumpInstructions.length>0&&(this.finalizeRepetition(F),F=this.createNewRepetition(0),F.RepetitonUnderConstruction.FromWords=!0,F.RepetitonUnderConstruction.startMarker=new RepetitionInstruction(0,RepetitionInstructionEnum.None,AlignmentType.Begin,F.RepetitonUnderConstruction)),R.parentRepetition=F.RepetitonUnderConstruction,!F.SegnoFound){const G=this.findInstructionInMainListBackwards(RepetitionInstructionEnum.Segno,R.measureIndex);G>=0&&(F.SegnoFound=!0,F.RepetitonUnderConstruction.startMarker=new RepetitionInstruction(G,RepetitionInstructionEnum.Segno,AlignmentType.Begin,F.RepetitonUnderConstruction),this.musicSheet.SourceMeasures[G].FirstRepetitionInstructions.splice(0,0,F.RepetitonUnderConstruction.startMarker))}F.RepetitonUnderConstruction.EndingIndexDict.hasOwnProperty(1)&&F.RepetitonUnderConstruction.setEndingEndIndex(1,this.currentMeasureIndex),F.RepetitonUnderConstruction.BackwardJumpInstructions.push(R),this.currentMeasure.LastRepetitionInstructions.push(R);break;case RepetitionInstructionEnum.DalSegnoAlFine:if(this.openRepetitions.length===0)break;if(F=this.getOrCreateCurrentRepetition2(!0),R.parentRepetition=F.RepetitonUnderConstruction,!F.SegnoFound){const G=this.findInstructionInMainListBackwards(RepetitionInstructionEnum.Segno,R.measureIndex);G>=0&&(F.SegnoFound=!0,F.RepetitonUnderConstruction.startMarker=new RepetitionInstruction(G,RepetitionInstructionEnum.Segno,AlignmentType.Begin,F.RepetitonUnderConstruction),this.musicSheet.SourceMeasures[G].FirstRepetitionInstructions.splice(0,0,F.RepetitonUnderConstruction.startMarker))}if(!F.FineFound){const G=this.findInstructionInMainListBackwards(RepetitionInstructionEnum.Fine,R.measureIndex);G>=0&&(F.FineFound=!0,F.RepetitonUnderConstruction.forwardJumpInstruction=new RepetitionInstruction(G,RepetitionInstructionEnum.Fine,AlignmentType.Begin,F.RepetitonUnderConstruction),F.RepetitonUnderConstruction.setEndingStartIndex(2,-2),this.musicSheet.SourceMeasures[G].LastRepetitionInstructions.splice(0,0,F.RepetitonUnderConstruction.forwardJumpInstruction))}F.RepetitonUnderConstruction.EndingIndexDict.hasOwnProperty(1)||F.RepetitonUnderConstruction.setEndingEndIndex(1,this.currentMeasureIndex),F.RepetitonUnderConstruction.BackwardJumpInstructions.push(R),this.currentMeasure.LastRepetitionInstructions.push(R);break;case RepetitionInstructionEnum.DaCapoAlFine:if(F=this.getOrCreateCurrentRepetition(),F.RepetitonUnderConstruction.BackwardJumpInstructions.length>0&&(this.finalizeRepetition(F),F=this.createNewRepetition(0)),F.RepetitonUnderConstruction.startMarker!==void 0&&F.RepetitonUnderConstruction.StartIndex!==0&&(F=this.createNewRepetition(0)),F.RepetitonUnderConstruction.startMarker=new RepetitionInstruction(0,RepetitionInstructionEnum.None,AlignmentType.Begin,F.RepetitonUnderConstruction),F.RepetitonUnderConstruction.FromWords=!0,R.parentRepetition=F.RepetitonUnderConstruction,!F.FineFound){const G=this.findInstructionInMainListBackwards(RepetitionInstructionEnum.Fine,R.measureIndex);G>=0&&(F.FineFound=!0,F.RepetitonUnderConstruction.forwardJumpInstruction=new RepetitionInstruction(G,RepetitionInstructionEnum.Fine,AlignmentType.Begin,F.RepetitonUnderConstruction),F.RepetitonUnderConstruction.setEndingStartIndex(2,-2),this.musicSheet.SourceMeasures[G].LastRepetitionInstructions.splice(0,0,F.RepetitonUnderConstruction.forwardJumpInstruction))}F.RepetitonUnderConstruction.EndingIndexDict.hasOwnProperty(1)||F.RepetitonUnderConstruction.setEndingEndIndex(1,this.currentMeasureIndex),F.RepetitonUnderConstruction.BackwardJumpInstructions.push(R),this.currentMeasure.LastRepetitionInstructions.push(R);break;case RepetitionInstructionEnum.DalSegnoAlCoda:if(this.openRepetitions.length===0)break;if(F=this.getOrCreateCurrentRepetition2(!0),R.parentRepetition=F.RepetitonUnderConstruction,!F.SegnoFound){const G=this.findInstructionInMainListBackwards(RepetitionInstructionEnum.Segno,R.measureIndex);G>=0&&(F.SegnoFound=!0,F.RepetitonUnderConstruction.startMarker=new RepetitionInstruction(G,RepetitionInstructionEnum.Segno,AlignmentType.Begin,F.RepetitonUnderConstruction),this.musicSheet.SourceMeasures[G].FirstRepetitionInstructions.splice(0,0,F.RepetitonUnderConstruction.startMarker))}if(!F.ToCodaFound){const G=this.findInstructionInMainListBackwards(RepetitionInstructionEnum.ToCoda,R.measureIndex);if(G>=0)F.RepetitonUnderConstruction.forwardJumpInstruction=new RepetitionInstruction(G,RepetitionInstructionEnum.ToCoda,AlignmentType.Begin,F.RepetitonUnderConstruction),this.musicSheet.SourceMeasures[G].LastRepetitionInstructions.splice(0,0,F.RepetitonUnderConstruction.forwardJumpInstruction),F.ToCodaFound=!0;else{const U=this.findInstructionInMainListBackwards(RepetitionInstructionEnum.Coda,R.measureIndex);U>=0&&(F.RepetitonUnderConstruction.forwardJumpInstruction=new RepetitionInstruction(U,RepetitionInstructionEnum.ToCoda,AlignmentType.Begin,F.RepetitonUnderConstruction),this.musicSheet.SourceMeasures[U].LastRepetitionInstructions.splice(0,0,F.RepetitonUnderConstruction.forwardJumpInstruction),F.ToCodaFound=!0)}}F.ToCodaFound&&(F.WaitingForCoda=!0),F.RepetitonUnderConstruction.EndingIndexDict.hasOwnProperty(1)||F.RepetitonUnderConstruction.setEndingEndIndex(1,this.currentMeasureIndex),F.RepetitonUnderConstruction.BackwardJumpInstructions.push(R),this.currentMeasure.LastRepetitionInstructions.push(R);break;case RepetitionInstructionEnum.DaCapoAlCoda:if(F=this.getOrCreateCurrentRepetition(),F.RepetitonUnderConstruction.BackwardJumpInstructions.length>0?(this.finalizeRepetition(F),F=this.createNewRepetition(0)):F.RepetitonUnderConstruction.EndingParts.length===0&&(this.finalizeRepetition(F),F=this.createNewRepetition(0)),F.RepetitonUnderConstruction.startMarker!==void 0&&F.RepetitonUnderConstruction.StartIndex!==0&&(F=this.createNewRepetition(0)),F.RepetitonUnderConstruction.startMarker=new RepetitionInstruction(0,RepetitionInstructionEnum.None,AlignmentType.Begin,F.RepetitonUnderConstruction),F.RepetitonUnderConstruction.FromWords=!0,R.parentRepetition=F.RepetitonUnderConstruction,!F.ToCodaFound){const G=this.findInstructionInMainListBackwards(RepetitionInstructionEnum.ToCoda,R.measureIndex);if(G>=0)F.RepetitonUnderConstruction.forwardJumpInstruction=new RepetitionInstruction(G,RepetitionInstructionEnum.ToCoda,AlignmentType.Begin,F.RepetitonUnderConstruction),this.musicSheet.SourceMeasures[G].LastRepetitionInstructions.splice(0,0,F.RepetitonUnderConstruction.forwardJumpInstruction),F.ToCodaFound=!0;else{const U=this.findInstructionInMainListBackwards(RepetitionInstructionEnum.Coda,R.measureIndex);U>=0&&(F.RepetitonUnderConstruction.forwardJumpInstruction=new RepetitionInstruction(U,RepetitionInstructionEnum.ToCoda,AlignmentType.Begin,F.RepetitonUnderConstruction),this.musicSheet.SourceMeasures[U].LastRepetitionInstructions.splice(0,0,F.RepetitonUnderConstruction.forwardJumpInstruction),F.ToCodaFound=!0)}}F.ToCodaFound&&(F.WaitingForCoda=!0),F.RepetitonUnderConstruction.EndingIndexDict.hasOwnProperty(1)||F.RepetitonUnderConstruction.setEndingEndIndex(1,this.currentMeasureIndex),F.RepetitonUnderConstruction.BackwardJumpInstructions.push(R),this.currentMeasure.LastRepetitionInstructions.push(R);break;case RepetitionInstructionEnum.None:break;default:throw new ArgumentOutOfRangeException("currentRepetitionInstruction")}return!0}findInstructionInMainListBackwards(R,F){for(let D=this.repetitionInstructions.length-1;D>=0;D--){const G=this.repetitionInstructions[D];if(G.measureIndex<=F&&G.type===R)return G.measureIndex}return-1}finalizeRepetition(R){const F=R.RepetitonUnderConstruction;if(F.BackwardJumpInstructions.length>0){let D=!0;const G=this.getLastFinalizedRepetition();if(G!==void 0&&F.coversIdenticalMeasures(G)){if(F.NumberOfEndings>G.NumberOfEndings){const U=this.musicSheet.Repetitions.indexOf(G,0);U>-1&&this.musicSheet.Repetitions.splice(U,1),G.removeFromRepetitionInstructions(),this.musicSheet.Repetitions.push(F)}D=!1,F.removeFromRepetitionInstructions()}else this.musicSheet.Repetitions.push(F);D&&(F.startMarker.type===RepetitionInstructionEnum.None&&this.musicSheet.SourceMeasures[F.StartIndex].FirstRepetitionInstructions.push(F.startMarker),F.UserNumberOfRepetitions=F.DefaultNumberOfRepetitions)}this.openRepetitions.splice(this.openRepetitions.length-1,1)}getCurrentRepetition(R){let F;for(let D=this.openRepetitions.length-1;D>=0;D--)if(this.openRepetitions[D].RepetitonUnderConstruction.FromWords===R){for(F=this.openRepetitions[D];D0)return this.openRepetitions.last();const R=this.createNewRepetition(0);return R.RepetitonUnderConstruction.startMarker=new RepetitionInstruction(0,RepetitionInstructionEnum.None,AlignmentType.Begin,R.RepetitonUnderConstruction),R}getOrCreateCurrentRepetition2(R){let F;if(this.openRepetitions.length&&this.openRepetitions.last().RepetitonUnderConstruction.EndingParts.length<2){for(let G=this.openRepetitions.length-1;G>=0;G--)if(F=this.openRepetitions[G],F.RepetitonUnderConstruction.FromWords===R){for(;G0){const D=this.openRepetitions.last(),G=D.RepetitonUnderConstruction;if(G.BackwardJumpInstructions.length>0){const U=Object.keys(G.EndingIndexDict);(U.length===0||G.EndingIndexDict[U[U.length-1]].part.EndIndex>=0)&&this.finalizeRepetition(D)}}const F=new RepetitionBuildingContainer(this.musicSheet);return this.lastRepetitionCommonPartStartIndex=R,this.openRepetitions.push(F),F}getLastFinalizedRepetition(){if(this.musicSheet.Repetitions.length>0)return this.musicSheet.Repetitions.last()}}class RepetitionBuildingContainer{constructor(R){this.RepetitonUnderConstruction=new Repetition(R)}}class MusicSymbolModuleFactory{static createRepetitionInstructionReader(){return new RepetitionInstructionReader}static createRepetitionCalculator(){return new RepetitionCalculator}}class ReaderPluginManager{constructor(){this.voiceMeasureReadPlugins=[]}addVoiceMeasureReadPlugin(R){this.voiceMeasureReadPlugins.push(R)}processVoiceMeasureReadPlugins(R,F,D){for(const G of this.voiceMeasureReadPlugins)try{G.measureReadCalculations(R,F,D)}catch(U){log$2.info("VoiceGenerator.addSingleNote: ",U)}}}class MusicSheetReader{constructor(R=void 0,F=new EngravingRules){this.completeNumberOfStaves=0,this.pluginManager=new ReaderPluginManager,R?this.afterSheetReadingModules=R:this.afterSheetReadingModules=[],this.repetitionInstructionReader=MusicSymbolModuleFactory.createRepetitionInstructionReader(),this.repetitionCalculator=MusicSymbolModuleFactory.createRepetitionCalculator(),this.rules=F}get PluginManager(){return this.pluginManager}get CompleteNumberOfStaves(){return this.completeNumberOfStaves}static doCalculationsAfterDurationHasBeenSet(R){for(const F of R)F.doCalculationsAfterDurationHasBeenSet()}createMusicSheet(R,F){try{return this._createMusicSheet(R,F)}catch(D){log$2.error("MusicSheetReader.CreateMusicSheet",D);return}}_removeFromArray(R,F){const D=R.indexOf(F);D!==-1&&R.splice(D,1)}trimString(R){return R.replace(/^\s+|\s+$/g,"")}_lastElement(R){return R[R.length-1]}_createMusicSheet(R,F){var K;const D=[];let G=0;if(this.musicSheet=new MusicSheet$1,this.musicSheet.Path=F,this.musicSheet.Rules=this.rules,!R)throw new MusicSheetReadingException("Undefined root element");this.pushSheetLabels(R,F);const U=R.element("part-list");if(!U)throw new MusicSheetReadingException("Undefined partListNode");const W=R.elements("part"),q=U.elements();this.initializeReading(q,W,D);let Y=!0;this.currentFraction=new Fraction$1(0,1);let Q=!1,Z=R.element("identification");for(Z&&(Z=Z.element("encoding")),Z&&(Z=Z.element("software")),Z!==void 0&&Z.value==="Guitar Pro 5"&&(Q=!0);Y;){this.currentMeasure!==void 0&&this.currentMeasure.HasEndLine&&this.rules.NewPartAndSystemAfterFinalBarline&&(G=0),this.currentMeasure=new SourceMeasure(this.completeNumberOfStaves,this.musicSheet.Rules);for(const J of D)try{Y=Y&&J.readNextXmlMeasure(this.currentMeasure,this.currentFraction,Q)}catch(ie){const ne=ITextTranslation.translateText("ReaderErrorMessages/InstrumentError","Error while reading instruments.");throw new MusicSheetReadingException(ne,ie)}Y&&(this.musicSheet.addMeasure(this.currentMeasure),this.checkIfRhythmInstructionsAreSetAndEqual(D),this.checkSourceMeasureForNullEntries(),G=this.setSourceMeasureDuration(D,G),MusicSheetReader.doCalculationsAfterDurationHasBeenSet(D),this.currentMeasure.AbsoluteTimestamp=this.currentFraction.clone(),this.musicSheet.SheetErrors.finalizeMeasure(this.currentMeasure.MeasureNumber),this.currentFraction.Add(this.currentMeasure.Duration),this.previousMeasure=this.currentMeasure,this.musicSheet.SoundTempos=(K=D[0])==null?void 0:K.SoundTempos)}this.repetitionInstructionReader&&(this.repetitionInstructionReader.removeRedundantInstructions(),this.repetitionCalculator&&this.repetitionCalculator.calculateRepetitions(this.musicSheet,this.repetitionInstructionReader.repetitionInstructions)),this.musicSheet.DefaultStartTempoInBpm===0&&(this.musicSheet.DefaultStartTempoInBpm=100),this.musicSheet.checkForInstrumentWithNoVoice(),this.musicSheet.fillStaffList();for(let J=0,ie=this.afterSheetReadingModules.length;JD){if(this.areRhythmInstructionsMixed(F)&&q.SymbolEnum!==RhythmSymbolEnum.NONE)continue;D=q.Rhythm.RealValue,G=F.indexOf(q)}}if(F.length>0&&F.lengthR.Denominator){const D=F.Denominator/R.Denominator;R.expand(D)}}checkIfMeasureIsImplicit(R,F){return!this.previousMeasure&&R.lt(F)?!0:this.previousMeasure?Fraction$1.plus(this.previousMeasure.Duration,R).Equals(F):!1}allInstrumentsHaveSameDuration(R,F){let D=0;for(let G=0,U=R.length;G=0;R--)for(let F=this.currentMeasure.VerticalSourceStaffEntryContainers[R].StaffEntries.length-1;F>=0;F--){const D=this.currentMeasure.VerticalSourceStaffEntryContainers[R].StaffEntries[F];if(D)for(let G=D.VoiceEntries.length-1;G>=0;G--){const U=D.VoiceEntries[G];U.Notes.length===0&&(this._removeFromArray(U.ParentVoice.VoiceEntries,U),this._removeFromArray(D.VoiceEntries,U))}D!==void 0&&D.VoiceEntries.length===0&&(this.currentMeasure.VerticalSourceStaffEntryContainers[R].StaffEntries[F]=void 0)}for(let R=this.currentMeasure.VerticalSourceStaffEntryContainers.length-1;R>=0;R--){let F=0;for(let D=0,G=this.currentMeasure.VerticalSourceStaffEntryContainers[R].StaffEntries.length;DF){if(!this.musicSheet.Title){const ce=ne.attribute("font-size").value,he=parseFloat(ce);D0&&Z.MidiInstrumentId!==MidiInstrument.Percussion&&(se.midiInstrumentID=Math.max(0,parseInt(ce.value,10)-1));else if(ce.name==="midi-unpitched")se.fixedKey=Math.max(0,parseInt(ce.value,10));else if(ce.name==="volume")try{const he=parseFloat(ce.value);se.volume=he/127}catch(he){log$2.debug("ExpressionReader.readExpressionParameters","read volume",he)}else if(ce.name==="pan")try{const he=parseFloat(ce.value);se.pan=he/64}catch(he){log$2.debug("ExpressionReader.readExpressionParameters","read pan",he)}}catch(he){log$2.info("MusicSheetReader.createInstrumentGroups midi settings: ",he)}}}}catch(se){log$2.info("MusicSheetReader.createInstrumentGroups: ",se)}}if(Z.SubInstruments.length===0){const J=new SubInstrument(Z);Z.SubInstruments.push(J)}D[Q]=Z,G?(G.InstrumentalGroups.push(Z),this.musicSheet.Instruments.push(Z)):(this.musicSheet.InstrumentalGroups.push(Z),this.musicSheet.Instruments.push(Z))}else if(Y.name==="part-group"&&Y.attribute("type").value==="start"){const Q=new InstrumentalGroup("group",this.musicSheet,G);G?G.InstrumentalGroups.push(Q):this.musicSheet.InstrumentalGroups.push(Q),G=Q}else if(Y.name==="part-group"&&Y.attribute("type").value==="stop"&&G){if(G.InstrumentalGroups.length===1){const Q=G.InstrumentalGroups[0];G.Parent?(G.Parent.InstrumentalGroups.push(Q),this._removeFromArray(G.Parent.InstrumentalGroups,G)):(this.musicSheet.InstrumentalGroups.push(Q),this._removeFromArray(this.musicSheet.InstrumentalGroups,G))}G=G.Parent}}}catch(U){const W=ITextTranslation.translateText("ReaderErrorMessages/InstrumentError","Error while reading Instruments");throw new MusicSheetReadingException(W,U)}for(let U=0,W=this.musicSheet.Instruments.length;U0){const U=G[0];if(U){let W=U.element("attributes");W&&(W=W.element("staves")),W?F+=parseInt(W.value,10):F++}}}if(isNaN(F)||F<=0){const D=ITextTranslation.translateText("ReaderErrorMessages/StaffError","Invalid number of staves.");throw new MusicSheetReadingException(D)}return F}getInstrumentNumberOfStavesFromXml(R){let F=0;const D=R.element("measure");if(D){const G=D.element("attributes");let U;G&&(U=G.element("staves")),!G||!U?F=1:F=parseInt(U.value,10)}if(isNaN(F)||F<=0){const G=ITextTranslation.translateText("ReaderErrorMessages/StaffError","Invalid number of Staves.");throw new MusicSheetReadingException(G)}return F}}var jszip_min={exports:{}};/*! JSZip v3.7.1 - A JavaScript class for generating and reading zip files (c) 2009-2016 Stuart Knightley Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/master/LICENSE.markdown. JSZip uses the library pako released under the MIT license : https://github.com/nodeca/pako/blob/master/LICENSE */(function(B,R){(function(F){B.exports=F()})(function(){return function F(D,G,U){function W(Q,Z){if(!G[Q]){if(!D[Q]){var K=typeof commonjsRequire$1=="function"&&commonjsRequire$1;if(!Z&&K)return K(Q,!0);if(q)return q(Q,!0);var J=new Error("Cannot find module '"+Q+"'");throw J.code="MODULE_NOT_FOUND",J}var ie=G[Q]={exports:{}};D[Q][0].call(ie.exports,function(ne){var se=D[Q][1][ne];return W(se||ne)},ie,ie.exports,F,D,G,U)}return G[Q].exports}for(var q=typeof commonjsRequire$1=="function"&&commonjsRequire$1,Y=0;Y>2,ie=(3&Q)<<4|Z>>4,ne=1>6:64,se=2>4,Z=(15&J)<<4|(ie=q.indexOf(Y.charAt(se++)))>>2,K=(3&ie)<<6|(ne=q.indexOf(Y.charAt(se++))),le[re++]=Q,ie!==64&&(le[re++]=Z),ne!==64&&(le[re++]=K);return le}},{"./support":30,"./utils":32}],2:[function(F,D,G){var U=F("./external"),W=F("./stream/DataWorker"),q=F("./stream/Crc32Probe"),Y=F("./stream/DataLengthProbe");function Q(Z,K,J,ie,ne){this.compressedSize=Z,this.uncompressedSize=K,this.crc32=J,this.compression=ie,this.compressedContent=ne}Q.prototype={getContentWorker:function(){var Z=new W(U.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new Y("data_length")),K=this;return Z.on("end",function(){if(this.streamInfo.data_length!==K.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),Z},getCompressedWorker:function(){return new W(U.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},Q.createWorkerFrom=function(Z,K,J){return Z.pipe(new q).pipe(new Y("uncompressedSize")).pipe(K.compressWorker(J)).pipe(new Y("compressedSize")).withStreamInfo("compression",K)},D.exports=Q},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(F,D,G){var U=F("./stream/GenericWorker");G.STORE={magic:"\0\0",compressWorker:function(W){return new U("STORE compression")},uncompressWorker:function(){return new U("STORE decompression")}},G.DEFLATE=F("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(F,D,G){var U=F("./utils"),W=function(){for(var q,Y=[],Q=0;Q<256;Q++){q=Q;for(var Z=0;Z<8;Z++)q=1&q?3988292384^q>>>1:q>>>1;Y[Q]=q}return Y}();D.exports=function(q,Y){return q!==void 0&&q.length?U.getTypeOf(q)!=="string"?function(Q,Z,K,J){var ie=W,ne=J+K;Q^=-1;for(var se=J;se>>8^ie[255&(Q^Z[se])];return-1^Q}(0|Y,q,q.length,0):function(Q,Z,K,J){var ie=W,ne=J+K;Q^=-1;for(var se=J;se>>8^ie[255&(Q^Z.charCodeAt(se))];return-1^Q}(0|Y,q,q.length,0):0}},{"./utils":32}],5:[function(F,D,G){G.base64=!1,G.binary=!1,G.dir=!1,G.createFolders=!0,G.date=null,G.compression=null,G.compressionOptions=null,G.comment=null,G.unixPermissions=null,G.dosPermissions=null},{}],6:[function(F,D,G){var U=null;U=typeof Promise!="undefined"?Promise:F("lie"),D.exports={Promise:U}},{lie:37}],7:[function(F,D,G){var U=typeof Uint8Array!="undefined"&&typeof Uint16Array!="undefined"&&typeof Uint32Array!="undefined",W=F("pako"),q=F("./utils"),Y=F("./stream/GenericWorker"),Q=U?"uint8array":"array";function Z(K,J){Y.call(this,"FlateWorker/"+K),this._pako=null,this._pakoAction=K,this._pakoOptions=J,this.meta={}}G.magic="\b\0",q.inherits(Z,Y),Z.prototype.processChunk=function(K){this.meta=K.meta,this._pako===null&&this._createPako(),this._pako.push(q.transformTo(Q,K.data),!1)},Z.prototype.flush=function(){Y.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],!0)},Z.prototype.cleanUp=function(){Y.prototype.cleanUp.call(this),this._pako=null},Z.prototype._createPako=function(){this._pako=new W[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var K=this;this._pako.onData=function(J){K.push({data:J,meta:K.meta})}},G.compressWorker=function(K){return new Z("Deflate",K)},G.uncompressWorker=function(){return new Z("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(F,D,G){function U(ie,ne){var se,re="";for(se=0;se>>=8;return re}function W(ie,ne,se,re,ae,le){var ce,he,de=ie.file,me=ie.compression,fe=le!==Q.utf8encode,ge=q.transformTo("string",le(de.name)),Se=q.transformTo("string",Q.utf8encode(de.name)),Ee=de.comment,ve=q.transformTo("string",le(Ee)),xe=q.transformTo("string",Q.utf8encode(Ee)),Pe=Se.length!==de.name.length,ye=xe.length!==Ee.length,Te="",Le="",we="",Ae=de.dir,Me=de.date,ke={crc32:0,compressedSize:0,uncompressedSize:0};ne&&!se||(ke.crc32=ie.crc32,ke.compressedSize=ie.compressedSize,ke.uncompressedSize=ie.uncompressedSize);var Ne=0;ne&&(Ne|=8),fe||!Pe&&!ye||(Ne|=2048);var Ie=0,Ge=0;Ae&&(Ie|=16),ae==="UNIX"?(Ge=798,Ie|=function(Ve,Ye){var et=Ve;return Ve||(et=Ye?16893:33204),(65535&et)<<16}(de.unixPermissions,Ae)):(Ge=20,Ie|=function(Ve){return 63&(Ve||0)}(de.dosPermissions)),ce=Me.getUTCHours(),ce<<=6,ce|=Me.getUTCMinutes(),ce<<=5,ce|=Me.getUTCSeconds()/2,he=Me.getUTCFullYear()-1980,he<<=4,he|=Me.getUTCMonth()+1,he<<=5,he|=Me.getUTCDate(),Pe&&(Le=U(1,1)+U(Z(ge),4)+Se,Te+="up"+U(Le.length,2)+Le),ye&&(we=U(1,1)+U(Z(ve),4)+xe,Te+="uc"+U(we.length,2)+we);var ze="";return ze+=` \0`,ze+=U(Ne,2),ze+=me.magic,ze+=U(ce,2),ze+=U(he,2),ze+=U(ke.crc32,4),ze+=U(ke.compressedSize,4),ze+=U(ke.uncompressedSize,4),ze+=U(ge.length,2),ze+=U(Te.length,2),{fileRecord:K.LOCAL_FILE_HEADER+ze+ge+Te,dirRecord:K.CENTRAL_FILE_HEADER+U(Ge,2)+ze+U(ve.length,2)+"\0\0\0\0"+U(Ie,4)+U(re,4)+ge+Te+ve}}var q=F("../utils"),Y=F("../stream/GenericWorker"),Q=F("../utf8"),Z=F("../crc32"),K=F("../signature");function J(ie,ne,se,re){Y.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=ne,this.zipPlatform=se,this.encodeFileName=re,this.streamFiles=ie,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}q.inherits(J,Y),J.prototype.push=function(ie){var ne=ie.meta.percent||0,se=this.entriesCount,re=this._sources.length;this.accumulate?this.contentBuffer.push(ie):(this.bytesWritten+=ie.data.length,Y.prototype.push.call(this,{data:ie.data,meta:{currentFile:this.currentFile,percent:se?(ne+100*(se-re-1))/se:100}}))},J.prototype.openedSource=function(ie){this.currentSourceOffset=this.bytesWritten,this.currentFile=ie.file.name;var ne=this.streamFiles&&!ie.file.dir;if(ne){var se=W(ie,ne,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:se.fileRecord,meta:{percent:0}})}else this.accumulate=!0},J.prototype.closedSource=function(ie){this.accumulate=!1;var ne=this.streamFiles&&!ie.file.dir,se=W(ie,ne,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(se.dirRecord),ne)this.push({data:function(re){return K.DATA_DESCRIPTOR+U(re.crc32,4)+U(re.compressedSize,4)+U(re.uncompressedSize,4)}(ie),meta:{percent:100}});else for(this.push({data:se.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},J.prototype.flush=function(){for(var ie=this.bytesWritten,ne=0;ne=this.index;Y--)Q=(Q<<8)+this.byteAt(Y);return this.index+=q,Q},readString:function(q){return U.transformTo("string",this.readData(q))},readData:function(q){},lastIndexOfSignature:function(q){},readAndCheckSignature:function(q){},readDate:function(){var q=this.readInt(4);return new Date(Date.UTC(1980+(q>>25&127),(q>>21&15)-1,q>>16&31,q>>11&31,q>>5&63,(31&q)<<1))}},D.exports=W},{"../utils":32}],19:[function(F,D,G){var U=F("./Uint8ArrayReader");function W(q){U.call(this,q)}F("../utils").inherits(W,U),W.prototype.readData=function(q){this.checkOffset(q);var Y=this.data.slice(this.zero+this.index,this.zero+this.index+q);return this.index+=q,Y},D.exports=W},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(F,D,G){var U=F("./DataReader");function W(q){U.call(this,q)}F("../utils").inherits(W,U),W.prototype.byteAt=function(q){return this.data.charCodeAt(this.zero+q)},W.prototype.lastIndexOfSignature=function(q){return this.data.lastIndexOf(q)-this.zero},W.prototype.readAndCheckSignature=function(q){return q===this.readData(4)},W.prototype.readData=function(q){this.checkOffset(q);var Y=this.data.slice(this.zero+this.index,this.zero+this.index+q);return this.index+=q,Y},D.exports=W},{"../utils":32,"./DataReader":18}],21:[function(F,D,G){var U=F("./ArrayReader");function W(q){U.call(this,q)}F("../utils").inherits(W,U),W.prototype.readData=function(q){if(this.checkOffset(q),q===0)return new Uint8Array(0);var Y=this.data.subarray(this.zero+this.index,this.zero+this.index+q);return this.index+=q,Y},D.exports=W},{"../utils":32,"./ArrayReader":17}],22:[function(F,D,G){var U=F("../utils"),W=F("../support"),q=F("./ArrayReader"),Y=F("./StringReader"),Q=F("./NodeBufferReader"),Z=F("./Uint8ArrayReader");D.exports=function(K){var J=U.getTypeOf(K);return U.checkSupport(J),J!=="string"||W.uint8array?J==="nodebuffer"?new Q(K):W.uint8array?new Z(U.transformTo("uint8array",K)):new q(U.transformTo("array",K)):new Y(K)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(F,D,G){G.LOCAL_FILE_HEADER="PK",G.CENTRAL_FILE_HEADER="PK",G.CENTRAL_DIRECTORY_END="PK",G.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x07",G.ZIP64_CENTRAL_DIRECTORY_END="PK",G.DATA_DESCRIPTOR="PK\x07\b"},{}],24:[function(F,D,G){var U=F("./GenericWorker"),W=F("../utils");function q(Y){U.call(this,"ConvertWorker to "+Y),this.destType=Y}W.inherits(q,U),q.prototype.processChunk=function(Y){this.push({data:W.transformTo(this.destType,Y.data),meta:Y.meta})},D.exports=q},{"../utils":32,"./GenericWorker":28}],25:[function(F,D,G){var U=F("./GenericWorker"),W=F("../crc32");function q(){U.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}F("../utils").inherits(q,U),q.prototype.processChunk=function(Y){this.streamInfo.crc32=W(Y.data,this.streamInfo.crc32||0),this.push(Y)},D.exports=q},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(F,D,G){var U=F("../utils"),W=F("./GenericWorker");function q(Y){W.call(this,"DataLengthProbe for "+Y),this.propName=Y,this.withStreamInfo(Y,0)}U.inherits(q,W),q.prototype.processChunk=function(Y){if(Y){var Q=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=Q+Y.data.length}W.prototype.processChunk.call(this,Y)},D.exports=q},{"../utils":32,"./GenericWorker":28}],27:[function(F,D,G){var U=F("../utils"),W=F("./GenericWorker");function q(Y){W.call(this,"DataWorker");var Q=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,Y.then(function(Z){Q.dataIsReady=!0,Q.data=Z,Q.max=Z&&Z.length||0,Q.type=U.getTypeOf(Z),Q.isPaused||Q._tickAndRepeat()},function(Z){Q.error(Z)})}U.inherits(q,W),q.prototype.cleanUp=function(){W.prototype.cleanUp.call(this),this.data=null},q.prototype.resume=function(){return!!W.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,U.delay(this._tickAndRepeat,[],this)),!0)},q.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(U.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},q.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var Y=null,Q=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":Y=this.data.substring(this.index,Q);break;case"uint8array":Y=this.data.subarray(this.index,Q);break;case"array":case"nodebuffer":Y=this.data.slice(this.index,Q)}return this.index=Q,this.push({data:Y,meta:{percent:this.max?this.index/this.max*100:0}})},D.exports=q},{"../utils":32,"./GenericWorker":28}],28:[function(F,D,G){function U(W){this.name=W||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}U.prototype={push:function(W){this.emit("data",W)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(W){this.emit("error",W)}return!0},error:function(W){return!this.isFinished&&(this.isPaused?this.generatedError=W:(this.isFinished=!0,this.emit("error",W),this.previous&&this.previous.error(W),this.cleanUp()),!0)},on:function(W,q){return this._listeners[W].push(q),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(W,q){if(this._listeners[W])for(var Y=0;Y "+W:W}},D.exports=U},{}],29:[function(F,D,G){var U=F("../utils"),W=F("./ConvertWorker"),q=F("./GenericWorker"),Y=F("../base64"),Q=F("../support"),Z=F("../external"),K=null;if(Q.nodestream)try{K=F("../nodejs/NodejsStreamOutputAdapter")}catch{}function J(ne,se){return new Z.Promise(function(re,ae){var le=[],ce=ne._internalType,he=ne._outputType,de=ne._mimeType;ne.on("data",function(me,fe){le.push(me),se&&se(fe)}).on("error",function(me){le=[],ae(me)}).on("end",function(){try{var me=function(fe,ge,Se){switch(fe){case"blob":return U.newBlob(U.transformTo("arraybuffer",ge),Se);case"base64":return Y.encode(ge);default:return U.transformTo(fe,ge)}}(he,function(fe,ge){var Se,Ee=0,ve=null,xe=0;for(Se=0;Se>>6:(re<65536?se[ce++]=224|re>>>12:(se[ce++]=240|re>>>18,se[ce++]=128|re>>>12&63),se[ce++]=128|re>>>6&63),se[ce++]=128|63&re);return se}(ie)},G.utf8decode=function(ie){return W.nodebuffer?U.transformTo("nodebuffer",ie).toString("utf-8"):function(ne){var se,re,ae,le,ce=ne.length,he=new Array(2*ce);for(se=re=0;se>10&1023,he[re++]=56320|1023&ae)}return he.length!==re&&(he.subarray?he=he.subarray(0,re):he.length=re),U.applyFromCharCode(he)}(ie=U.transformTo(W.uint8array?"uint8array":"array",ie))},U.inherits(K,Y),K.prototype.processChunk=function(ie){var ne=U.transformTo(W.uint8array?"uint8array":"array",ie.data);if(this.leftOver&&this.leftOver.length){if(W.uint8array){var se=ne;(ne=new Uint8Array(se.length+this.leftOver.length)).set(this.leftOver,0),ne.set(se,this.leftOver.length)}else ne=this.leftOver.concat(ne);this.leftOver=null}var re=function(le,ce){var he;for((ce=ce||le.length)>le.length&&(ce=le.length),he=ce-1;0<=he&&(192&le[he])==128;)he--;return he<0||he===0?ce:he+Q[le[he]]>ce?he:ce}(ne),ae=ne;re!==ne.length&&(W.uint8array?(ae=ne.subarray(0,re),this.leftOver=ne.subarray(re,ne.length)):(ae=ne.slice(0,re),this.leftOver=ne.slice(re,ne.length))),this.push({data:G.utf8decode(ae),meta:ie.meta})},K.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:G.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},G.Utf8DecodeWorker=K,U.inherits(J,Y),J.prototype.processChunk=function(ie){this.push({data:G.utf8encode(ie.data),meta:ie.meta})},G.Utf8EncodeWorker=J},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(F,D,G){var U=F("./support"),W=F("./base64"),q=F("./nodejsUtils"),Y=F("set-immediate-shim"),Q=F("./external");function Z(re){return re}function K(re,ae){for(var le=0;le>8;this.dir=!!(16&this.externalFileAttributes),ie==0&&(this.dosPermissions=63&this.externalFileAttributes),ie==3&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||this.fileNameStr.slice(-1)!=="/"||(this.dir=!0)},parseZIP64ExtraField:function(ie){if(this.extraFields[1]){var ne=U(this.extraFields[1].value);this.uncompressedSize===W.MAX_VALUE_32BITS&&(this.uncompressedSize=ne.readInt(8)),this.compressedSize===W.MAX_VALUE_32BITS&&(this.compressedSize=ne.readInt(8)),this.localHeaderOffset===W.MAX_VALUE_32BITS&&(this.localHeaderOffset=ne.readInt(8)),this.diskNumberStart===W.MAX_VALUE_32BITS&&(this.diskNumberStart=ne.readInt(4))}},readExtraFields:function(ie){var ne,se,re,ae=ie.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});ie.index+4>>6:(ie<65536?J[re++]=224|ie>>>12:(J[re++]=240|ie>>>18,J[re++]=128|ie>>>12&63),J[re++]=128|ie>>>6&63),J[re++]=128|63&ie);return J},G.buf2binstring=function(K){return Z(K,K.length)},G.binstring2buf=function(K){for(var J=new U.Buf8(K.length),ie=0,ne=J.length;ie>10&1023,le[ne++]=56320|1023&se)}return Z(le,ne)},G.utf8border=function(K,J){var ie;for((J=J||K.length)>K.length&&(J=K.length),ie=J-1;0<=ie&&(192&K[ie])==128;)ie--;return ie<0||ie===0?J:ie+Y[K[ie]]>J?ie:J}},{"./common":41}],43:[function(F,D,G){D.exports=function(U,W,q,Y){for(var Q=65535&U|0,Z=U>>>16&65535|0,K=0;q!==0;){for(q-=K=2e3>>1:W>>>1;q[Y]=W}return q}();D.exports=function(W,q,Y,Q){var Z=U,K=Q+Y;W^=-1;for(var J=Q;J>>8^Z[255&(W^q[J])];return-1^W}},{}],46:[function(F,D,G){var U,W=F("../utils/common"),q=F("./trees"),Y=F("./adler32"),Q=F("./crc32"),Z=F("./messages"),K=0,J=4,ie=0,ne=-2,se=-1,re=4,ae=2,le=8,ce=9,he=286,de=30,me=19,fe=2*he+1,ge=15,Se=3,Ee=258,ve=Ee+Se+1,xe=42,Pe=113,ye=1,Te=2,Le=3,we=4;function Ae(_e,je){return _e.msg=Z[je],je}function Me(_e){return(_e<<1)-(4<_e?9:0)}function ke(_e){for(var je=_e.length;0<=--je;)_e[je]=0}function Ne(_e){var je=_e.state,Ze=je.pending;Ze>_e.avail_out&&(Ze=_e.avail_out),Ze!==0&&(W.arraySet(_e.output,je.pending_buf,je.pending_out,Ze,_e.next_out),_e.next_out+=Ze,je.pending_out+=Ze,_e.total_out+=Ze,_e.avail_out-=Ze,je.pending-=Ze,je.pending===0&&(je.pending_out=0))}function Ie(_e,je){q._tr_flush_block(_e,0<=_e.block_start?_e.block_start:-1,_e.strstart-_e.block_start,je),_e.block_start=_e.strstart,Ne(_e.strm)}function Ge(_e,je){_e.pending_buf[_e.pending++]=je}function ze(_e,je){_e.pending_buf[_e.pending++]=je>>>8&255,_e.pending_buf[_e.pending++]=255&je}function Ve(_e,je){var Ze,De,Oe=_e.max_chain_length,Xe=_e.strstart,tt=_e.prev_length,nt=_e.nice_match,Ke=_e.strstart>_e.w_size-ve?_e.strstart-(_e.w_size-ve):0,ct=_e.window,ut=_e.w_mask,ht=_e.prev,vt=_e.strstart+Ee,xt=ct[Xe+tt-1],gt=ct[Xe+tt];_e.prev_length>=_e.good_match&&(Oe>>=2),nt>_e.lookahead&&(nt=_e.lookahead);do if(ct[(Ze=je)+tt]===gt&&ct[Ze+tt-1]===xt&&ct[Ze]===ct[Xe]&&ct[++Ze]===ct[Xe+1]){Xe+=2,Ze++;do;while(ct[++Xe]===ct[++Ze]&&ct[++Xe]===ct[++Ze]&&ct[++Xe]===ct[++Ze]&&ct[++Xe]===ct[++Ze]&&ct[++Xe]===ct[++Ze]&&ct[++Xe]===ct[++Ze]&&ct[++Xe]===ct[++Ze]&&ct[++Xe]===ct[++Ze]&&XeKe&&--Oe!=0);return tt<=_e.lookahead?tt:_e.lookahead}function Ye(_e){var je,Ze,De,Oe,Xe,tt,nt,Ke,ct,ut,ht=_e.w_size;do{if(Oe=_e.window_size-_e.lookahead-_e.strstart,_e.strstart>=ht+(ht-ve)){for(W.arraySet(_e.window,_e.window,ht,ht,0),_e.match_start-=ht,_e.strstart-=ht,_e.block_start-=ht,je=Ze=_e.hash_size;De=_e.head[--je],_e.head[je]=ht<=De?De-ht:0,--Ze;);for(je=Ze=ht;De=_e.prev[--je],_e.prev[je]=ht<=De?De-ht:0,--Ze;);Oe+=ht}if(_e.strm.avail_in===0)break;if(tt=_e.strm,nt=_e.window,Ke=_e.strstart+_e.lookahead,ct=Oe,ut=void 0,ut=tt.avail_in,ct=Se)for(Xe=_e.strstart-_e.insert,_e.ins_h=_e.window[Xe],_e.ins_h=(_e.ins_h<<_e.hash_shift^_e.window[Xe+1])&_e.hash_mask;_e.insert&&(_e.ins_h=(_e.ins_h<<_e.hash_shift^_e.window[Xe+Se-1])&_e.hash_mask,_e.prev[Xe&_e.w_mask]=_e.head[_e.ins_h],_e.head[_e.ins_h]=Xe,Xe++,_e.insert--,!(_e.lookahead+_e.insert=Se&&(_e.ins_h=(_e.ins_h<<_e.hash_shift^_e.window[_e.strstart+Se-1])&_e.hash_mask,Ze=_e.prev[_e.strstart&_e.w_mask]=_e.head[_e.ins_h],_e.head[_e.ins_h]=_e.strstart),Ze!==0&&_e.strstart-Ze<=_e.w_size-ve&&(_e.match_length=Ve(_e,Ze)),_e.match_length>=Se)if(De=q._tr_tally(_e,_e.strstart-_e.match_start,_e.match_length-Se),_e.lookahead-=_e.match_length,_e.match_length<=_e.max_lazy_match&&_e.lookahead>=Se){for(_e.match_length--;_e.strstart++,_e.ins_h=(_e.ins_h<<_e.hash_shift^_e.window[_e.strstart+Se-1])&_e.hash_mask,Ze=_e.prev[_e.strstart&_e.w_mask]=_e.head[_e.ins_h],_e.head[_e.ins_h]=_e.strstart,--_e.match_length!=0;);_e.strstart++}else _e.strstart+=_e.match_length,_e.match_length=0,_e.ins_h=_e.window[_e.strstart],_e.ins_h=(_e.ins_h<<_e.hash_shift^_e.window[_e.strstart+1])&_e.hash_mask;else De=q._tr_tally(_e,0,_e.window[_e.strstart]),_e.lookahead--,_e.strstart++;if(De&&(Ie(_e,!1),_e.strm.avail_out===0))return ye}return _e.insert=_e.strstart=Se&&(_e.ins_h=(_e.ins_h<<_e.hash_shift^_e.window[_e.strstart+Se-1])&_e.hash_mask,Ze=_e.prev[_e.strstart&_e.w_mask]=_e.head[_e.ins_h],_e.head[_e.ins_h]=_e.strstart),_e.prev_length=_e.match_length,_e.prev_match=_e.match_start,_e.match_length=Se-1,Ze!==0&&_e.prev_length<_e.max_lazy_match&&_e.strstart-Ze<=_e.w_size-ve&&(_e.match_length=Ve(_e,Ze),_e.match_length<=5&&(_e.strategy===1||_e.match_length===Se&&4096<_e.strstart-_e.match_start)&&(_e.match_length=Se-1)),_e.prev_length>=Se&&_e.match_length<=_e.prev_length){for(Oe=_e.strstart+_e.lookahead-Se,De=q._tr_tally(_e,_e.strstart-1-_e.prev_match,_e.prev_length-Se),_e.lookahead-=_e.prev_length-1,_e.prev_length-=2;++_e.strstart<=Oe&&(_e.ins_h=(_e.ins_h<<_e.hash_shift^_e.window[_e.strstart+Se-1])&_e.hash_mask,Ze=_e.prev[_e.strstart&_e.w_mask]=_e.head[_e.ins_h],_e.head[_e.ins_h]=_e.strstart),--_e.prev_length!=0;);if(_e.match_available=0,_e.match_length=Se-1,_e.strstart++,De&&(Ie(_e,!1),_e.strm.avail_out===0))return ye}else if(_e.match_available){if((De=q._tr_tally(_e,0,_e.window[_e.strstart-1]))&&Ie(_e,!1),_e.strstart++,_e.lookahead--,_e.strm.avail_out===0)return ye}else _e.match_available=1,_e.strstart++,_e.lookahead--}return _e.match_available&&(De=q._tr_tally(_e,0,_e.window[_e.strstart-1]),_e.match_available=0),_e.insert=_e.strstart_e.pending_buf_size-5&&(Ze=_e.pending_buf_size-5);;){if(_e.lookahead<=1){if(Ye(_e),_e.lookahead===0&&je===K)return ye;if(_e.lookahead===0)break}_e.strstart+=_e.lookahead,_e.lookahead=0;var De=_e.block_start+Ze;if((_e.strstart===0||_e.strstart>=De)&&(_e.lookahead=_e.strstart-De,_e.strstart=De,Ie(_e,!1),_e.strm.avail_out===0)||_e.strstart-_e.block_start>=_e.w_size-ve&&(Ie(_e,!1),_e.strm.avail_out===0))return ye}return _e.insert=0,je===J?(Ie(_e,!0),_e.strm.avail_out===0?Le:we):(_e.strstart>_e.block_start&&(Ie(_e,!1),_e.strm.avail_out),ye)}),new st(4,4,8,4,et),new st(4,5,16,8,et),new st(4,6,32,32,et),new st(4,4,16,16,Je),new st(8,16,32,32,Je),new st(8,16,128,128,Je),new st(8,32,128,256,Je),new st(32,128,258,1024,Je),new st(32,258,258,4096,Je)],G.deflateInit=function(_e,je){return Fe(_e,je,le,15,8,0)},G.deflateInit2=Fe,G.deflateReset=yt,G.deflateResetKeep=dt,G.deflateSetHeader=function(_e,je){return _e&&_e.state?_e.state.wrap!==2?ne:(_e.state.gzhead=je,ie):ne},G.deflate=function(_e,je){var Ze,De,Oe,Xe;if(!_e||!_e.state||5>8&255),Ge(De,De.gzhead.time>>16&255),Ge(De,De.gzhead.time>>24&255),Ge(De,De.level===9?2:2<=De.strategy||De.level<2?4:0),Ge(De,255&De.gzhead.os),De.gzhead.extra&&De.gzhead.extra.length&&(Ge(De,255&De.gzhead.extra.length),Ge(De,De.gzhead.extra.length>>8&255)),De.gzhead.hcrc&&(_e.adler=Q(_e.adler,De.pending_buf,De.pending,0)),De.gzindex=0,De.status=69):(Ge(De,0),Ge(De,0),Ge(De,0),Ge(De,0),Ge(De,0),Ge(De,De.level===9?2:2<=De.strategy||De.level<2?4:0),Ge(De,3),De.status=Pe);else{var tt=le+(De.w_bits-8<<4)<<8;tt|=(2<=De.strategy||De.level<2?0:De.level<6?1:De.level===6?2:3)<<6,De.strstart!==0&&(tt|=32),tt+=31-tt%31,De.status=Pe,ze(De,tt),De.strstart!==0&&(ze(De,_e.adler>>>16),ze(De,65535&_e.adler)),_e.adler=1}if(De.status===69)if(De.gzhead.extra){for(Oe=De.pending;De.gzindex<(65535&De.gzhead.extra.length)&&(De.pending!==De.pending_buf_size||(De.gzhead.hcrc&&De.pending>Oe&&(_e.adler=Q(_e.adler,De.pending_buf,De.pending-Oe,Oe)),Ne(_e),Oe=De.pending,De.pending!==De.pending_buf_size));)Ge(De,255&De.gzhead.extra[De.gzindex]),De.gzindex++;De.gzhead.hcrc&&De.pending>Oe&&(_e.adler=Q(_e.adler,De.pending_buf,De.pending-Oe,Oe)),De.gzindex===De.gzhead.extra.length&&(De.gzindex=0,De.status=73)}else De.status=73;if(De.status===73)if(De.gzhead.name){Oe=De.pending;do{if(De.pending===De.pending_buf_size&&(De.gzhead.hcrc&&De.pending>Oe&&(_e.adler=Q(_e.adler,De.pending_buf,De.pending-Oe,Oe)),Ne(_e),Oe=De.pending,De.pending===De.pending_buf_size)){Xe=1;break}Xe=De.gzindexOe&&(_e.adler=Q(_e.adler,De.pending_buf,De.pending-Oe,Oe)),Xe===0&&(De.gzindex=0,De.status=91)}else De.status=91;if(De.status===91)if(De.gzhead.comment){Oe=De.pending;do{if(De.pending===De.pending_buf_size&&(De.gzhead.hcrc&&De.pending>Oe&&(_e.adler=Q(_e.adler,De.pending_buf,De.pending-Oe,Oe)),Ne(_e),Oe=De.pending,De.pending===De.pending_buf_size)){Xe=1;break}Xe=De.gzindexOe&&(_e.adler=Q(_e.adler,De.pending_buf,De.pending-Oe,Oe)),Xe===0&&(De.status=103)}else De.status=103;if(De.status===103&&(De.gzhead.hcrc?(De.pending+2>De.pending_buf_size&&Ne(_e),De.pending+2<=De.pending_buf_size&&(Ge(De,255&_e.adler),Ge(De,_e.adler>>8&255),_e.adler=0,De.status=Pe)):De.status=Pe),De.pending!==0){if(Ne(_e),_e.avail_out===0)return De.last_flush=-1,ie}else if(_e.avail_in===0&&Me(je)<=Me(Ze)&&je!==J)return Ae(_e,-5);if(De.status===666&&_e.avail_in!==0)return Ae(_e,-5);if(_e.avail_in!==0||De.lookahead!==0||je!==K&&De.status!==666){var nt=De.strategy===2?function(Ke,ct){for(var ut;;){if(Ke.lookahead===0&&(Ye(Ke),Ke.lookahead===0)){if(ct===K)return ye;break}if(Ke.match_length=0,ut=q._tr_tally(Ke,0,Ke.window[Ke.strstart]),Ke.lookahead--,Ke.strstart++,ut&&(Ie(Ke,!1),Ke.strm.avail_out===0))return ye}return Ke.insert=0,ct===J?(Ie(Ke,!0),Ke.strm.avail_out===0?Le:we):Ke.last_lit&&(Ie(Ke,!1),Ke.strm.avail_out===0)?ye:Te}(De,je):De.strategy===3?function(Ke,ct){for(var ut,ht,vt,xt,gt=Ke.window;;){if(Ke.lookahead<=Ee){if(Ye(Ke),Ke.lookahead<=Ee&&ct===K)return ye;if(Ke.lookahead===0)break}if(Ke.match_length=0,Ke.lookahead>=Se&&0Ke.lookahead&&(Ke.match_length=Ke.lookahead)}if(Ke.match_length>=Se?(ut=q._tr_tally(Ke,1,Ke.match_length-Se),Ke.lookahead-=Ke.match_length,Ke.strstart+=Ke.match_length,Ke.match_length=0):(ut=q._tr_tally(Ke,0,Ke.window[Ke.strstart]),Ke.lookahead--,Ke.strstart++),ut&&(Ie(Ke,!1),Ke.strm.avail_out===0))return ye}return Ke.insert=0,ct===J?(Ie(Ke,!0),Ke.strm.avail_out===0?Le:we):Ke.last_lit&&(Ie(Ke,!1),Ke.strm.avail_out===0)?ye:Te}(De,je):U[De.level].func(De,je);if(nt!==Le&&nt!==we||(De.status=666),nt===ye||nt===Le)return _e.avail_out===0&&(De.last_flush=-1),ie;if(nt===Te&&(je===1?q._tr_align(De):je!==5&&(q._tr_stored_block(De,0,0,!1),je===3&&(ke(De.head),De.lookahead===0&&(De.strstart=0,De.block_start=0,De.insert=0))),Ne(_e),_e.avail_out===0))return De.last_flush=-1,ie}return je!==J?ie:De.wrap<=0?1:(De.wrap===2?(Ge(De,255&_e.adler),Ge(De,_e.adler>>8&255),Ge(De,_e.adler>>16&255),Ge(De,_e.adler>>24&255),Ge(De,255&_e.total_in),Ge(De,_e.total_in>>8&255),Ge(De,_e.total_in>>16&255),Ge(De,_e.total_in>>24&255)):(ze(De,_e.adler>>>16),ze(De,65535&_e.adler)),Ne(_e),0=Ze.w_size&&(Xe===0&&(ke(Ze.head),Ze.strstart=0,Ze.block_start=0,Ze.insert=0),ct=new W.Buf8(Ze.w_size),W.arraySet(ct,je,ut-Ze.w_size,Ze.w_size,0),je=ct,ut=Ze.w_size),tt=_e.avail_in,nt=_e.next_in,Ke=_e.input,_e.avail_in=ut,_e.next_in=0,_e.input=je,Ye(Ze);Ze.lookahead>=Se;){for(De=Ze.strstart,Oe=Ze.lookahead-(Se-1);Ze.ins_h=(Ze.ins_h<>>=Se=ge>>>24,ce-=Se,(Se=ge>>>16&255)===0)Te[Z++]=65535≥else{if(!(16&Se)){if((64&Se)==0){ge=he[(65535&ge)+(le&(1<>>=Se,ce-=Se),ce<15&&(le+=ye[Y++]<>>=Se=ge>>>24,ce-=Se,!(16&(Se=ge>>>16&255))){if((64&Se)==0){ge=de[(65535&ge)+(le&(1<>>=Se,ce-=Se,(Se=Z-K)>3,le&=(1<<(ce-=Ee<<3))-1,U.next_in=Y,U.next_out=Z,U.avail_in=Y>>24&255)+(xe>>>8&65280)+((65280&xe)<<8)+((255&xe)<<24)}function le(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new U.Buf16(320),this.work=new U.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function ce(xe){var Pe;return xe&&xe.state?(Pe=xe.state,xe.total_in=xe.total_out=Pe.total=0,xe.msg="",Pe.wrap&&(xe.adler=1&Pe.wrap),Pe.mode=ne,Pe.last=0,Pe.havedict=0,Pe.dmax=32768,Pe.head=null,Pe.hold=0,Pe.bits=0,Pe.lencode=Pe.lendyn=new U.Buf32(se),Pe.distcode=Pe.distdyn=new U.Buf32(re),Pe.sane=1,Pe.back=-1,J):ie}function he(xe){var Pe;return xe&&xe.state?((Pe=xe.state).wsize=0,Pe.whave=0,Pe.wnext=0,ce(xe)):ie}function de(xe,Pe){var ye,Te;return xe&&xe.state?(Te=xe.state,Pe<0?(ye=0,Pe=-Pe):(ye=1+(Pe>>4),Pe<48&&(Pe&=15)),Pe&&(Pe<8||15=we.wsize?(U.arraySet(we.window,Pe,ye-we.wsize,we.wsize,0),we.wnext=0,we.whave=we.wsize):(Te<(Le=we.wsize-we.wnext)&&(Le=Te),U.arraySet(we.window,Pe,ye-Te,Le,we.wnext),(Te-=Le)?(U.arraySet(we.window,Pe,ye-Te,Te,0),we.wnext=Te,we.whave=we.wsize):(we.wnext+=Le,we.wnext===we.wsize&&(we.wnext=0),we.whave>>8&255,ye.check=q(ye.check,Xe,2,0),Ie=Ne=0,ye.mode=2;break}if(ye.flags=0,ye.head&&(ye.head.done=!1),!(1&ye.wrap)||(((255&Ne)<<8)+(Ne>>8))%31){xe.msg="incorrect header check",ye.mode=30;break}if((15&Ne)!=8){xe.msg="unknown compression method",ye.mode=30;break}if(Ie-=4,_e=8+(15&(Ne>>>=4)),ye.wbits===0)ye.wbits=_e;else if(_e>ye.wbits){xe.msg="invalid window size",ye.mode=30;break}ye.dmax=1<<_e,xe.adler=ye.check=1,ye.mode=512&Ne?10:12,Ie=Ne=0;break;case 2:for(;Ie<16;){if(Me===0)break e;Me--,Ne+=Te[we++]<>8&1),512&ye.flags&&(Xe[0]=255&Ne,Xe[1]=Ne>>>8&255,ye.check=q(ye.check,Xe,2,0)),Ie=Ne=0,ye.mode=3;case 3:for(;Ie<32;){if(Me===0)break e;Me--,Ne+=Te[we++]<>>8&255,Xe[2]=Ne>>>16&255,Xe[3]=Ne>>>24&255,ye.check=q(ye.check,Xe,4,0)),Ie=Ne=0,ye.mode=4;case 4:for(;Ie<16;){if(Me===0)break e;Me--,Ne+=Te[we++]<>8),512&ye.flags&&(Xe[0]=255&Ne,Xe[1]=Ne>>>8&255,ye.check=q(ye.check,Xe,2,0)),Ie=Ne=0,ye.mode=5;case 5:if(1024&ye.flags){for(;Ie<16;){if(Me===0)break e;Me--,Ne+=Te[we++]<>>8&255,ye.check=q(ye.check,Xe,2,0)),Ie=Ne=0}else ye.head&&(ye.head.extra=null);ye.mode=6;case 6:if(1024&ye.flags&&(Me<(Ve=ye.length)&&(Ve=Me),Ve&&(ye.head&&(_e=ye.head.extra_len-ye.length,ye.head.extra||(ye.head.extra=new Array(ye.head.extra_len)),U.arraySet(ye.head.extra,Te,we,Ve,_e)),512&ye.flags&&(ye.check=q(ye.check,Te,Ve,we)),Me-=Ve,we+=Ve,ye.length-=Ve),ye.length))break e;ye.length=0,ye.mode=7;case 7:if(2048&ye.flags){if(Me===0)break e;for(Ve=0;_e=Te[we+Ve++],ye.head&&_e&&ye.length<65536&&(ye.head.name+=String.fromCharCode(_e)),_e&&Ve>9&1,ye.head.done=!0),xe.adler=ye.check=0,ye.mode=12;break;case 10:for(;Ie<32;){if(Me===0)break e;Me--,Ne+=Te[we++]<>>=7&Ie,Ie-=7&Ie,ye.mode=27;break}for(;Ie<3;){if(Me===0)break e;Me--,Ne+=Te[we++]<>>=1)){case 0:ye.mode=14;break;case 1:if(Ee(ye),ye.mode=20,Pe!==6)break;Ne>>>=2,Ie-=2;break e;case 2:ye.mode=17;break;case 3:xe.msg="invalid block type",ye.mode=30}Ne>>>=2,Ie-=2;break;case 14:for(Ne>>>=7&Ie,Ie-=7&Ie;Ie<32;){if(Me===0)break e;Me--,Ne+=Te[we++]<>>16^65535)){xe.msg="invalid stored block lengths",ye.mode=30;break}if(ye.length=65535&Ne,Ie=Ne=0,ye.mode=15,Pe===6)break e;case 15:ye.mode=16;case 16:if(Ve=ye.length){if(Me>>=5,Ie-=5,ye.ndist=1+(31&Ne),Ne>>>=5,Ie-=5,ye.ncode=4+(15&Ne),Ne>>>=4,Ie-=4,286>>=3,Ie-=3}for(;ye.have<19;)ye.lens[tt[ye.have++]]=0;if(ye.lencode=ye.lendyn,ye.lenbits=7,Ze={bits:ye.lenbits},je=Q(0,ye.lens,0,19,ye.lencode,0,ye.work,Ze),ye.lenbits=Ze.bits,je){xe.msg="invalid code lengths set",ye.mode=30;break}ye.have=0,ye.mode=19;case 19:for(;ye.have>>16&255,pt=65535&Oe,!((Je=Oe>>>24)<=Ie);){if(Me===0)break e;Me--,Ne+=Te[we++]<>>=Je,Ie-=Je,ye.lens[ye.have++]=pt;else{if(pt===16){for(De=Je+2;Ie>>=Je,Ie-=Je,ye.have===0){xe.msg="invalid bit length repeat",ye.mode=30;break}_e=ye.lens[ye.have-1],Ve=3+(3&Ne),Ne>>>=2,Ie-=2}else if(pt===17){for(De=Je+3;Ie>>=Je)),Ne>>>=3,Ie-=3}else{for(De=Je+7;Ie>>=Je)),Ne>>>=7,Ie-=7}if(ye.have+Ve>ye.nlen+ye.ndist){xe.msg="invalid bit length repeat",ye.mode=30;break}for(;Ve--;)ye.lens[ye.have++]=_e}}if(ye.mode===30)break;if(ye.lens[256]===0){xe.msg="invalid code -- missing end-of-block",ye.mode=30;break}if(ye.lenbits=9,Ze={bits:ye.lenbits},je=Q(Z,ye.lens,0,ye.nlen,ye.lencode,0,ye.work,Ze),ye.lenbits=Ze.bits,je){xe.msg="invalid literal/lengths set",ye.mode=30;break}if(ye.distbits=6,ye.distcode=ye.distdyn,Ze={bits:ye.distbits},je=Q(K,ye.lens,ye.nlen,ye.ndist,ye.distcode,0,ye.work,Ze),ye.distbits=Ze.bits,je){xe.msg="invalid distances set",ye.mode=30;break}if(ye.mode=20,Pe===6)break e;case 20:ye.mode=21;case 21:if(6<=Me&&258<=ke){xe.next_out=Ae,xe.avail_out=ke,xe.next_in=we,xe.avail_in=Me,ye.hold=Ne,ye.bits=Ie,Y(xe,ze),Ae=xe.next_out,Le=xe.output,ke=xe.avail_out,we=xe.next_in,Te=xe.input,Me=xe.avail_in,Ne=ye.hold,Ie=ye.bits,ye.mode===12&&(ye.back=-1);break}for(ye.back=0;st=(Oe=ye.lencode[Ne&(1<>>16&255,pt=65535&Oe,!((Je=Oe>>>24)<=Ie);){if(Me===0)break e;Me--,Ne+=Te[we++]<>dt)])>>>16&255,pt=65535&Oe,!(dt+(Je=Oe>>>24)<=Ie);){if(Me===0)break e;Me--,Ne+=Te[we++]<>>=dt,Ie-=dt,ye.back+=dt}if(Ne>>>=Je,Ie-=Je,ye.back+=Je,ye.length=pt,st===0){ye.mode=26;break}if(32&st){ye.back=-1,ye.mode=12;break}if(64&st){xe.msg="invalid literal/length code",ye.mode=30;break}ye.extra=15&st,ye.mode=22;case 22:if(ye.extra){for(De=ye.extra;Ie>>=ye.extra,Ie-=ye.extra,ye.back+=ye.extra}ye.was=ye.length,ye.mode=23;case 23:for(;st=(Oe=ye.distcode[Ne&(1<>>16&255,pt=65535&Oe,!((Je=Oe>>>24)<=Ie);){if(Me===0)break e;Me--,Ne+=Te[we++]<>dt)])>>>16&255,pt=65535&Oe,!(dt+(Je=Oe>>>24)<=Ie);){if(Me===0)break e;Me--,Ne+=Te[we++]<>>=dt,Ie-=dt,ye.back+=dt}if(Ne>>>=Je,Ie-=Je,ye.back+=Je,64&st){xe.msg="invalid distance code",ye.mode=30;break}ye.offset=pt,ye.extra=15&st,ye.mode=24;case 24:if(ye.extra){for(De=ye.extra;Ie>>=ye.extra,Ie-=ye.extra,ye.back+=ye.extra}if(ye.offset>ye.dmax){xe.msg="invalid distance too far back",ye.mode=30;break}ye.mode=25;case 25:if(ke===0)break e;if(Ve=ze-ke,ye.offset>Ve){if((Ve=ye.offset-Ve)>ye.whave&&ye.sane){xe.msg="invalid distance too far back",ye.mode=30;break}Ye=Ve>ye.wnext?(Ve-=ye.wnext,ye.wsize-Ve):ye.wnext-Ve,Ve>ye.length&&(Ve=ye.length),et=ye.window}else et=Le,Ye=Ae-ye.offset,Ve=ye.length;for(kefe?(Se=Ye[et+re[Pe]],Ie[Ge+re[Pe]]):(Se=96,0),le=1<>Ae)+(ce-=le)]=ge<<24|Se<<16|Ee|0,ce!==0;);for(le=1<>=1;if(le!==0?(Ne&=le-1,Ne+=le):Ne=0,Pe++,--ze[xe]==0){if(xe===Te)break;xe=K[J+re[Pe]]}if(Le>>7)]}function Ge(Oe,Xe){Oe.pending_buf[Oe.pending++]=255&Xe,Oe.pending_buf[Oe.pending++]=Xe>>>8&255}function ze(Oe,Xe,tt){Oe.bi_valid>ae-tt?(Oe.bi_buf|=Xe<>ae-Oe.bi_valid,Oe.bi_valid+=tt-ae):(Oe.bi_buf|=Xe<>>=1,tt<<=1,0<--Xe;);return tt>>>1}function et(Oe,Xe,tt){var nt,Ke,ct=new Array(re+1),ut=0;for(nt=1;nt<=re;nt++)ct[nt]=ut=ut+tt[nt-1]<<1;for(Ke=0;Ke<=Xe;Ke++){var ht=Oe[2*Ke+1];ht!==0&&(Oe[2*Ke]=Ye(ct[ht]++,ht))}}function Je(Oe){var Xe;for(Xe=0;Xe>1;1<=tt;tt--)dt(Oe,ct,tt);for(Ke=vt;tt=Oe.heap[1],Oe.heap[1]=Oe.heap[Oe.heap_len--],dt(Oe,ct,1),nt=Oe.heap[1],Oe.heap[--Oe.heap_max]=tt,Oe.heap[--Oe.heap_max]=nt,ct[2*Ke]=ct[2*tt]+ct[2*nt],Oe.depth[Ke]=(Oe.depth[tt]>=Oe.depth[nt]?Oe.depth[tt]:Oe.depth[nt])+1,ct[2*tt+1]=ct[2*nt+1]=Ke,Oe.heap[1]=Ke++,dt(Oe,ct,1),2<=Oe.heap_len;);Oe.heap[--Oe.heap_max]=Oe.heap[1],function(gt,Pt){var kt,Yt,fi,Jt,ii,ui,Qt=Pt.dyn_tree,Ai=Pt.max_code,Qi=Pt.stat_desc.static_tree,In=Pt.stat_desc.has_stree,cn=Pt.stat_desc.extra_bits,_t=Pt.stat_desc.extra_base,oi=Pt.stat_desc.max_length,$i=0;for(Jt=0;Jt<=re;Jt++)gt.bl_count[Jt]=0;for(Qt[2*gt.heap[gt.heap_max]+1]=0,kt=gt.heap_max+1;kt>=7;Ke>>=1)if(1&xt&&ht.dyn_ltree[2*vt]!==0)return W;if(ht.dyn_ltree[18]!==0||ht.dyn_ltree[20]!==0||ht.dyn_ltree[26]!==0)return q;for(vt=32;vt>>3,(ct=Oe.static_len+3+7>>>3)<=Ke&&(Ke=ct)):Ke=ct=tt+5,tt+4<=Ke&&Xe!==-1?De(Oe,Xe,tt,nt):Oe.strategy===4||ct===Ke?(ze(Oe,2+(nt?1:0),3),yt(Oe,ve,xe)):(ze(Oe,4+(nt?1:0),3),function(ht,vt,xt,gt){var Pt;for(ze(ht,vt-257,5),ze(ht,xt-1,5),ze(ht,gt-4,4),Pt=0;Pt>>8&255,Oe.pending_buf[Oe.d_buf+2*Oe.last_lit+1]=255&Xe,Oe.pending_buf[Oe.l_buf+Oe.last_lit]=255&tt,Oe.last_lit++,Xe===0?Oe.dyn_ltree[2*tt]++:(Oe.matches++,Xe--,Oe.dyn_ltree[2*(ye[tt]+K+1)]++,Oe.dyn_dtree[2*Ie(Xe)]++),Oe.last_lit===Oe.lit_bufsize-1},G._tr_align=function(Oe){ze(Oe,2,3),Ve(Oe,ce,ve),function(Xe){Xe.bi_valid===16?(Ge(Xe,Xe.bi_buf),Xe.bi_buf=0,Xe.bi_valid=0):8<=Xe.bi_valid&&(Xe.pending_buf[Xe.pending++]=255&Xe.bi_buf,Xe.bi_buf>>=8,Xe.bi_valid-=8)}(Oe)}},{"../utils/common":41}],53:[function(F,D,G){D.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(F,D,G){D.exports=typeof setImmediate=="function"?setImmediate:function(){var U=[].slice.apply(arguments);U.splice(1,0,0),setTimeout.apply(null,U)}},{}]},{},[10])(10)})})(jszip_min);var JSZip=jszip_min.exports;class MXLHelper{static MXLtoIXmlElement(R){const F=new JSZip;return F.loadAsync(R).then(U=>F.file("META-INF/container.xml").async("text"),U=>{throw U}).then(U=>{const Y=new DOMParser().parseFromString(U,"text/xml").getElementsByTagName("rootfile")[0].getAttribute("full-path");return F.file(Y).async("text")},U=>{throw U}).then(U=>{const q=new DOMParser().parseFromString(U,"text/xml"),Y=new IXmlElement(q.documentElement);return Promise.resolve(Y)},U=>{throw U}).then(U=>U,U=>{throw new Error("extractSheetFromMxl: "+U.message)})}static MXLtoXMLstring(R){const F=new JSZip;return F.loadAsync(R).then(D=>F.file("META-INF/container.xml").async("text"),D=>{throw log$2.error(D),D}).then(D=>{const W=new DOMParser().parseFromString(D,"text/xml").getElementsByTagName("rootfile")[0].getAttribute("full-path");return F.file(W).async("text")},D=>{throw D})}}class PlaybackNoteGenerator{calculate(R){const F=new MusicPartManagerIterator(R);for(;!F.EndReached;){const D=F.CurrentEnrolledTimestamp,G=F.CurrentAudibleVoiceEntries();for(const U of G)this.handleVoiceEntry(R,U,D);F.moveToNext()}}handleVoiceEntry(R,F,D){if(F.IsGrace)return;const G=F.ParentVoice;let U;R.PlaybackDataDict.containsKey(G)?U=R.PlaybackDataDict.getValue(G):(U=[],R.PlaybackDataDict.setValue(G,U));for(const W of F.PlaybackEntries)if(W.HasNotes){for(const Y of W.Notes)Y.setLength();const q=Fraction$1.plus(D,W.TimestampShift);PlaybackNoteGenerator.addEntrySorted(U,W,q)}}static addEntrySorted(R,F,D){if(R.length===0)R.push({enrolledTimestamp:D,playbackEntry:F});else for(let G=R.length-1;G>=0;G--){const U=R[G];if(D.RealValue>U.enrolledTimestamp.RealValue)if(G===R.length-1){R.push({enrolledTimestamp:D,playbackEntry:F});break}else{R.splice(G+1,0,{enrolledTimestamp:D,playbackEntry:F});break}}}}class ScreenViewingRegion{constructor(R,F,D,G){this.psi=new BoundingBox$1(void 0),this.displaySizeInPixel=R,this.RelativeDisplaySize=F,this.RelativeDisplayPosition=D,this.WidthInUnits=G}static createWithRelativeDefaults(R,F){return new ScreenViewingRegion(R,new SizeF2D(1,1),new PointF2D(0,0),F)}static createWithDefaults(){return new ScreenViewingRegion(new SizeF2D(1,1),new SizeF2D(1,1),new PointF2D(0,0),1)}get UpperLeftPositionInUnits(){return this.psi.AbsolutePosition}set UpperLeftPositionInUnits(R){this.psi.AbsolutePosition=R}get DisplaySizeInPixel(){return this.displaySizeInPixel}set DisplaySizeInPixel(R){this.displaySizeInPixel=R,this.regionSizeInPixel=new SizeF2D(this.displaySizeInPixel.width*this.relativeRegionSize.width,this.displaySizeInPixel.height*this.relativeRegionSize.height),this.recalculateDependentVariables()}get RelativeDisplaySize(){return this.relativeRegionSize}set RelativeDisplaySize(R){this.relativeRegionSize=R,this.regionSizeInPixel=new SizeF2D(this.displaySizeInPixel.width*this.relativeRegionSize.width,this.displaySizeInPixel.height*this.relativeRegionSize.height),this.recalculateDependentVariables()}get RegionSizeInPixel(){return this.regionSizeInPixel}get WidthInUnits(){return this.psi.BorderRight}set WidthInUnits(R){this.psi.BorderRight=R,this.recalculateDependentVariables()}get ViewRegionInUnits(){return new SizeF2D(this.psi.BorderRight,this.psi.BorderBottom)}isVisible(R,F){const D=this.psi.collisionDetection(R);return this.psi.liesInsideBorders(R),D}isInsideDisplayArea(R,F){return this.RelativeDisplayPosition.x<=R&&R<=this.RelativeDisplayPosition.x+this.RelativeDisplaySize.width&&this.RelativeDisplayPosition.y<=F&&F<=this.RelativeDisplayPosition.y+this.RelativeDisplaySize.height}transformToUnitCoordinates(R){return new PointF2D(this.UpperLeftPositionInUnits.x+this.ViewRegionInUnits.width*((R.x-this.RelativeDisplayPosition.x)/this.RelativeDisplaySize.width),this.UpperLeftPositionInUnits.y+this.ViewRegionInUnits.height*((R.y-this.RelativeDisplayPosition.y)/this.RelativeDisplaySize.height))}transformLengthXToUnitCoordinates(R){return R/this.horizontalUnitToPixelRatio}transformLengthYToUnitCoordinates(R){return R/this.verticalUnitToPixelRatio}recalculateDependentVariables(){const R=this.regionSizeInPixel.width/this.regionSizeInPixel.height;this.psi.BorderBottom=this.psi.BorderRight/R,this.horizontalUnitToPixelRatio=this.regionSizeInPixel.width/this.ViewRegionInUnits.width,this.verticalUnitToPixelRatio=this.regionSizeInPixel.height/this.ViewRegionInUnits.height}}class AbstractZoomView{constructor(R){this.aspectRatio=1,this.zoomViews=[],this.mouseZoomMode=!1,this.autoScrollY=!0,this.displayInteractionManager=R,this.displayInteractionManager.addListener(this),this.offsetXMin=Number.MIN_VALUE,this.offsetYMin=Number.MIN_VALUE,this.rangeXMin=1,this.rangeYMin=1,this.offsetXMax=Number.MAX_VALUE,this.offsetYMax=Number.MAX_VALUE,this.rangeXMax=1e9,this.rangeYMax=1e9,this.XScrollingEnabled=!1,this.YScrollingEnabled=!0}positionTouched(R,F){if(!this.convertToUnitsReady())return;const D=this.getPositionInUnits(R,F);this.unitPosTouched(D,R,F)}get TouchActive(){return this.displayInteractionManager.TouchActive}get TouchMoving(){return this.displayInteractionManager.TouchMoving}positionDoubleTouched(R,F){if(!this.convertToUnitsReady())return;const D=this.getPositionInUnits(R,F);this.unitPosDoubleTouched(D,R,F)}get UsesManuallyControlledZoomMode(){return this.usesManuallyControlledZoomMode}set UsesManuallyControlledZoomMode(R){this.usesManuallyControlledZoomMode=R}mouseDown(R,F,D=!1){if(!this.convertToUnitsReady())return;this.selectScrollControllerY(!1),this.lastRangeX=Math.max(1,this.RangeX),this.lastRangeY=Math.max(1,this.RangeY),this.lastOffsetX=this.OffsetX,this.lastOffsetY=this.OffsetY;const G=this.getPositionInUnits(R,F);this.unitPosTouchDown(G,R,F),this.usesManuallyControlledZoomMode||(D?this.mouseZoomMode=!0:this.mouseZoomMode=!1)}mouseUp(R,F){const D=this.getPositionInUnits(R,F);this.unitPosTouchUp(D,R,F)}mouseMove(R,F,D,G){this.mouseZoomMode?(Math.abs(D-0)>1e-8&&(this.RangeX=Math.abs(this.lastRangeX/(1+D))),!this.lockRanges&&Math.abs(G-0)>1e-8&&(this.RangeY=Math.abs(this.lastRangeY/(1-G)))):(Math.abs(D-0)>1e-8&&(this.OffsetX=this.lastOffsetX-D*this.RangeX),Math.abs(G-0)>1e-8&&(this.OffsetY=this.lastOffsetY-G*this.RangeY));const U=this.getPositionInUnits(R,F);this.unitPosMove(U,R,F)}zoom(R){this.RangeX=Math.abs(this.lastRangeX/R)}addZoomView(R){this.zoomViews.push(R)}get OffsetX(){return this.offsetX}set OffsetX(R){this.offsetX=Math.min(this.offsetXMax,Math.max(this.offsetXMin,R));for(const F of this.zoomViews)F.viewportXChanged(this.offsetX,this.RangeX)}get OffsetY(){return this.offsetY}set OffsetY(R){this.offsetY=R,this.offsetY>this.offsetYMax?this.offsetY=this.offsetYMax:this.offsetY(B[B.SingleTouch=0]="SingleTouch",B[B.DoubleTouch=1]="DoubleTouch",B[B.TouchUp=2]="TouchUp",B[B.TouchDown=3]="TouchDown",B[B.Move=4]="Move",B))(InteractionType||{});class VoiceEntryInteractionListener{constructor(R){this.renderingManager=R}userDisplayInteraction(R,F,D){var G,U;switch(D){case InteractionType.TouchDown:case InteractionType.SingleTouch:case InteractionType.DoubleTouch:{const W=this.renderingManager.GraphicalMusicSheet.GetNearestVoiceEntry(F);W&&W.parentStaffEntry.parentVerticalContainer!==void 0&&((G=W.notes[0])==null?void 0:G.sourceNote.Pitch)!==void 0&&((U=this.renderingManager.PlaybackManager)==null||U.playVoiceEntry(W.parentVoiceEntry));break}}}}class SheetRenderingManager extends AbstractZoomView{constructor(R,F){super(R),this.mainViewingRegion=ScreenViewingRegion.createWithDefaults(),this.tryAgainToRenderCount=0,this.yOffsetMouseDown=Number.MIN_VALUE,this.unlockCursorDistancePixel=50,this.relativeTopPosition=.06,this.internalPreviewImageScale=3,this.listeners=[],this.LockDisplayToCursor=!0,this.ZoomActive=!1,this.rules=F,this.addZoomView(this),this.lockRanges=!0,this.TopBarHeightInPixel=70,this.BottomBarHeightInPixel=0,this.rules.UseDefaultVoiceInteractionListener&&this.listeners.push(new VoiceEntryInteractionListener(this))}addListener(R){this.listeners.push(R)}get Listeners(){return this.listeners}convertToUnitsReady(){return this.graphicalMusicSheet!==void 0}unitPosTouched(R,F,D){if(!this.SingleTouchDisabled){const G=new PointF2D(F,D);this.handleUserDisplayInteraction(G,R,InteractionType.SingleTouch)}}unitPosDoubleTouched(R,F,D){if(!this.DoubleTouchDisabled){const G=new PointF2D(F,D);this.handleUserDisplayInteraction(G,R,InteractionType.DoubleTouch)}}unitPosTouchDown(R,F,D){const G=new PointF2D(F,D);this.handleUserDisplayInteraction(G,R,InteractionType.TouchDown),this.yOffsetMouseDown=R.y}unitPosTouchUp(R,F,D){const G=new PointF2D(F,D);this.handleUserDisplayInteraction(G,R,InteractionType.TouchUp),this.displayInteractionManager.WasZoomGestureActive===!1&&this.unlockFromCursorIfNecessary(R),this.yOffsetMouseDown=Number.MIN_VALUE}unitPosMove(R,F,D){const G=new PointF2D(F,D);this.handleUserDisplayInteraction(G,R,InteractionType.Move),this.unlockFromCursorIfNecessary(R)}get MainViewingRegion(){return this.mainViewingRegion}setMusicSheet(R){this.graphicalMusicSheet=R,this.adaptDisplayLimitsToSheet(),this.setYOffset(0,!0)}viewportXChanged(R,F){this.graphicalMusicSheet!==void 0&&this.horizontalViewportChanged(R,F)}viewportYChanged(R,F){this.graphicalMusicSheet!==void 0&&(this.yOffsetMouseDown<=Number.MIN_VALUE+.5&&(this.yOffsetMouseDown=R),this.verticalViewportChanged(R,F))}displaySizeChanged(R,F){super.viewSizeChanged(R,F),!(Math.abs(R-0)<1e-7||Math.abs(F-0)<1e-7)&&(this.graphicalMusicSheet!==void 0&&this.graphicalMusicSheet.EnforceRedrawOfMusicSystems(),this.mainViewingRegion.DisplaySizeInPixel=new SizeF2D(R,F),this.adaptDisplayLimitsToSheet())}calcDisplayYPosition(R){return R.PositionAndShape.AbsolutePosition.y+R.PositionAndShape.BorderMarginTop-this.topBarHeightInUnits()-this.relativeTopPosition*this.heightWithoutTopBottomBarsInUnits()}yPositionForLastSystem(R){return R.PositionAndShape.AbsolutePosition.y+R.PositionAndShape.BorderMarginBottom-this.topBarHeightInUnits()-(1-this.relativeTopPosition)*this.heightWithoutTopBottomBarsInUnits()}scorePositionChanged(R,F,D,G,U,W){const q=this.calcDisplayYPosition(G);this.setYPosition(q,W)}setXPosition(R,F){this.LockDisplayToCursor&&this.setXOffset(R,F)}setYPosition(R,F){this.LockDisplayToCursor&&this.setYOffset(R,F)}get DrawingParameters(){return this.musicSheetDrawer.drawingParameters}topBarHeightInUnits(){return this.mainViewingRegion.transformLengthYToUnitCoordinates(this.TopBarHeightInPixel)}bottomBarHeightInUnits(){return this.mainViewingRegion.transformLengthYToUnitCoordinates(this.BottomBarHeightInPixel)}heightWithoutTopBottomBarsInUnits(){return this.mainViewingRegion.ViewRegionInUnits.height-this.topBarHeightInUnits()-this.bottomBarHeightInUnits()}activePositionToBottomBarHeight(){return(this.mainViewingRegion.ViewRegionInUnits.height-this.topBarHeightInUnits()-this.bottomBarHeightInUnits())*(1-2*this.relativeTopPosition)}getClickPosition(R,F){return this.mainViewingRegion.transformToUnitCoordinates(new PointF2D(R,F))}graphicalObjectIsVisible(R){return this.mainViewingRegion.isVisible(R,!1)}adaptDisplayLimitsToSheet(){if(this.graphicalMusicSheet===void 0||this.graphicalMusicSheet.MusicPages.length===0||this.graphicalMusicSheet.MusicPages[0].MusicSystems.length===0)return;this.offsetXMin=0,this.rangeXMin=this.graphicalMusicSheet.MinAllowedSystemWidth,this.rangeXMax=300,this.offsetYMin=-.3*this.RangeY;const R=this.graphicalMusicSheet.MusicPages.last().PositionAndShape;this.offsetYMax=Math.max(0,R.BorderMarginBottom-.7*this.RangeY),this.OffsetY>this.offsetYMax&&this.setYOffset(this.offsetYMax,!0)}horizontalViewportChanged(R,F){this.mainViewingRegion.WidthInUnits!==F&&(this.mainViewingRegion.WidthInUnits=F)}verticalViewportChanged(R,F){this.mainViewingRegion.UpperLeftPositionInUnits=new PointF2D(this.mainViewingRegion.UpperLeftPositionInUnits.x,R)}unlockFromCursorIfNecessary(R){if(this.LockDisplayToCursor===!1||this.ZoomActive||this.displayInteractionManager.ZoomGestureActive||this.displayInteractionManager.WasZoomGestureActive)return;Math.abs((R.y-this.yOffsetMouseDown)*this.mainViewingRegion.RegionSizeInPixel.height/this.mainViewingRegion.ViewRegionInUnits.height)>this.unlockCursorDistancePixel&&(this.LockDisplayToCursor=!1)}getPositionInUnits(R,F){return this.mainViewingRegion.transformToUnitCoordinates(new PointF2D(R,F))}handleUserDisplayInteraction(R,F,D){switch(D){case InteractionType.TouchDown:case InteractionType.SingleTouch:case InteractionType.DoubleTouch:{const G=this.graphicalMusicSheet.GetNearestVoiceEntry(F);if(G){const U=new CustomEvent("note-click",{detail:{...G,setAvtivePlay:()=>{var W,q;if(G.parentStaffEntry.parentVerticalContainer!==void 0){const Y=G.parentStaffEntry.parentVerticalContainer.AbsoluteTimestamp;this.setStartPosition(Y),((W=G.notes[0])==null?void 0:W.sourceNote.Pitch)!==void 0&&(console.log("playback clicked note",G.parentVoiceEntry),(q=this.PlaybackManager)==null||q.playVoiceEntry(G.parentVoiceEntry))}}}});window.dispatchEvent(U)}}case InteractionType.TouchUp:case InteractionType.TouchDown:case InteractionType.Move:for(const G of this.listeners)G.userDisplayInteraction(R,F,D);break;default:throw new Error("type")}}setStartPosition(R){var F;this.graphicalMusicSheet!==void 0&&(this.graphicalMusicSheet.ParentMusicSheet.SelectionStart=R,(F=this.PlaybackManager)==null||F.reset())}get GraphicalMusicSheet(){return this.graphicalMusicSheet}}class WebSheetRenderingManager extends SheetRenderingManager{mouseMove(R,F,D,G){const U=this.getPositionInUnits(R,F);this.unitPosMove(U,R,F)}}class AbstractDisplayInteractionManager{constructor(){this.listeners=[],this.zoomGestureActive=!1,this.touchCount=0,this.touchActive=!1,this.touchMoving=!1,this.displayWidth=1,this.displayHeight=1,this.displayDpi=96,this.maxNumerOfFingers=2,this.movementThreshInch=.075,this.interactionWasZoomGesture=!1}addListener(R){this.listeners.push(R)}get ZoomGestureActive(){return this.zoomGestureActive}get WasZoomGestureActive(){return this.interactionWasZoomGesture}displaySizeChanged(R,F){this.displayWidth=R,this.displayHeight=F;for(const D of this.listeners)D.displaySizeChanged(this.displayWidth,this.displayHeight)}Dispose(){this.dispose()}Initialize(){this.initialize()}get DisplayDpi(){return this.displayDpi}get TouchActive(){return this.touchActive}get TouchMoving(){return this.touchMoving}touchDown(R,F,D){this.interactionWasZoomGesture=!1;const G=R/this.displayWidth,U=F/this.displayHeight;this.lastRelPosX=G,this.lastRelPosY=U,this.lastPixelX=R,this.lastPixelY=F,this.touchActive=!0,this.touchMoving=!1,this.touchCount=Math.min(this.touchCount+1,this.maxNumerOfFingers);for(const W of this.listeners)W.mouseDown(G,U,!D)}move(R,F){if(this.touchActive&&!this.zoomGestureActive){const D=R/this.displayWidth,G=F/this.displayHeight,U=D-this.lastRelPosX,W=G-this.lastRelPosY;this.touchMoving=!0;for(const q of this.listeners)q.mouseMove(D,G,U,W)}}zoomGestureStarted(){this.zoomGestureActive=!0}zoomGestureCompleted(){this.zoomGestureActive=!1,this.interactionWasZoomGesture=!0}zoomGestureMove(R){this.zoomGestureActive&&this.listeners.forEach(function(F){F.zoom(R)})}touchUp(R,F){this.touchActive=!1,this.touchMoving=!1,this.touchCount=Math.max(0,this.touchCount-1);const D=R/this.displayWidth,G=F/this.displayHeight;for(const U of this.listeners)U.mouseUp(D,G)}click(R,F){if(!this.mouseDidMove(this.lastPixelX,R,this.lastPixelY,F)&&!this.ZoomGestureActive){const D=R/this.displayWidth,G=F/this.displayHeight;for(const U of this.listeners)U.positionTouched(D,G)}}doubleClick(R,F){if(!this.mouseDidMove(this.lastPixelX,R,this.lastPixelY,F)&&!this.ZoomGestureActive){const D=R/this.displayWidth,G=F/this.displayHeight;for(const U of this.listeners)U.positionDoubleTouched(D,G)}}mouseDidMove(R,F,D,G){const U=Math.abs(R-F)/this.displayDpi,W=Math.abs(D-G)/this.displayDpi;return U>this.movementThreshInch||W>this.movementThreshInch}}class WebDisplayInteractionManager extends AbstractDisplayInteractionManager{constructor(R){super(),this.fullOffsetLeft=0,this.fullOffsetTop=0,this.fullScrollTop=0,this.fullScrollLeft=0,this.parentScrollMap=new Map,this.scrollCallbackMap=new Map,this.timeout=void 0,this.resizeObserver=void 0,this.EventCallbackMap=new Dictionary,this.DOUBLE_CLICK_WINDOW=200,this.lastClick=0,this.osmdSheetMusicContainer=R,this.listenForInteractions()}get FullOffsetTop(){return this.fullOffsetTop}get FullScrollTop(){return this.fullScrollTop}get FullOffsetLeft(){return this.fullOffsetLeft}get FullScrollLeft(){return this.fullScrollLeft}static resizeCallback(R,F){clearTimeout(F.timeout),F.timeout=setTimeout(()=>{F.fullOffsetLeft=0,F.fullOffsetTop=0;let D=F.osmdSheetMusicContainer;for(;D;)F.fullOffsetLeft+=D.offsetLeft,F.fullOffsetTop+=D.offsetTop,D=D.offsetParent;F.resizeEventListener(),F.deregisterScrollOffsets(),F.registerScrollOffsets()},500)}registerScrollOffsets(){let R=this.osmdSheetMusicContainer;this.fullScrollTop=0,this.fullScrollLeft=0;const F=this;for(;R&&R!==document.documentElement;){if(this.parentScrollMap.set(R,[R.scrollTop,R.scrollLeft]),this.fullScrollLeft+=R.scrollLeft,this.fullScrollTop+=R.scrollTop,R.scrollHeight>R.clientHeight){const D=function(G){const U=F.parentScrollMap.get(this),W=U[0],q=U[1];F.fullScrollTop=F.fullScrollTop-W+this.scrollTop,F.fullScrollLeft=F.fullScrollLeft-q+this.scrollLeft,F.parentScrollMap.set(this,[this.scrollTop,this.scrollLeft])};this.scrollCallbackMap.set(R,D),R.addEventListener("scroll",D)}R=R.parentElement}}deregisterScrollOffsets(){for(const R of this.scrollCallbackMap.keys())R.removeEventListener("scroll",this.scrollCallbackMap.get(R));this.scrollCallbackMap.clear()}initialize(){this.fullOffsetLeft=0,this.fullOffsetTop=0;let R=this.osmdSheetMusicContainer;const F=[],D=this;for(window.ResizeObserver&&(this.resizeObserver=new ResizeObserver(G=>{WebDisplayInteractionManager.resizeCallback(G,D)}));R;)this.fullOffsetLeft+=R.offsetLeft,this.fullOffsetTop+=R.offsetTop,this.resizeObserver?this.resizeObserver.observe(R):F.push(R),R=R.offsetParent;if(this.resizeObserver)this.disposeResizeListener=()=>{D.resizeObserver.disconnect(),D.resizeObserver=void 0};else{let G=()=>{WebDisplayInteractionManager.resizeCallback(F,D)};window.addEventListener("resize",G),this.disposeResizeListener=()=>{window.removeEventListener("resize",G),G=void 0}}D.registerScrollOffsets()}dispose(){this.disposeResizeListener();for(const R of this.EventCallbackMap.keys()){const F=this.EventCallbackMap.getValue(R);F[0].removeEventListener(R,F[1])}this.EventCallbackMap.clear(),this.deregisterScrollOffsets(),this.scrollCallbackMap.clear(),this.parentScrollMap.clear()}isTouch(){if("ontouchstart"in window||window.DocumentTouch)return!0;if(!window.matchMedia)return!1;const F=["(",["-webkit-","-moz-","-o-","-ms-"].join("touch-enabled),("),"heartz",")"].join("");return window.matchMedia(F).matches}get downEventName(){return this.isTouch()?"touchstart":"mousedown"}get moveEventName(){return this.isTouch()?"touchmove":"mousemove"}listenForInteractions(){const R=this.downEventListener.bind(this),F=this.touchEndEventListener.bind(this),D=this.moveEventListener.bind(this);this.osmdSheetMusicContainer.addEventListener("mousedown",R),this.osmdSheetMusicContainer.addEventListener("touchend",F),document.addEventListener(this.moveEventName,D),this.EventCallbackMap.setValue("mousedown",[this.osmdSheetMusicContainer,R]),this.EventCallbackMap.setValue("touchend",[this.osmdSheetMusicContainer,F]),this.EventCallbackMap.setValue(this.moveEventName,[document,D])}downEventListener(R){const F=new Date().getTime(),D=F-this.lastClick;clearTimeout(this.clickTimeout);let G=0,U=0;this.isTouch()&&R instanceof TouchEvent?(G=R.touches[0].pageX,U=R.touches[0].pageY):R instanceof MouseEvent&&(G=R.pageX,U=R.pageY);const W=this.getOffsetCoordinates(G,U);if(D0)this.doubleClick(W.x,W.y);else{const q=this;this.clickTimeout=setTimeout(function(){clearTimeout(this.clickTimeout),q.isTouch()?q.touchDown(W.x,W.y,void 0):q.click(W.x,W.y)},this.DOUBLE_CLICK_WINDOW)}this.lastClick=F}moveEventListener(R){let F=0,D=0;if(this.isTouch()&&R instanceof TouchEvent){let U;R.touches&&R.touches.length>0?U=R.touches[0]:R.changedTouches&&R.changedTouches.length>0&&(U=R.changedTouches[0]),F=U==null?void 0:U.clientX,D=U==null?void 0:U.clientY}else R instanceof MouseEvent&&(F=R.clientX,D=R.clientY);const G=this.getOffsetCoordinates(F,D);this.move(G.x,G.y)}touchEndEventListener(R){let F;R.touches&&R.touches.length>0?F=R.touches[0]:R.changedTouches&&R.changedTouches.length>0&&(F=R.changedTouches[0]);const D=this.getOffsetCoordinates(F==null?void 0:F.pageX,F==null?void 0:F.pageY);this.touchUp(D.x,D.y)}resizeEventListener(){this.displaySizeChanged(this.osmdSheetMusicContainer.clientWidth,this.osmdSheetMusicContainer.clientHeight)}getOffsetCoordinates(R,F){const D=R-this.fullOffsetLeft+this.fullScrollLeft,G=F-this.fullOffsetTop+this.fullScrollTop;return new PointF2D(D,G)}}class DynamicsCalculator{static fillDynamicsList(R,F,D){for(let G=0;G=0&&D[Y].push(new DynamicsContainer(q.InstantaneousDynamic,Y))}if(q.StartingContinuousDynamic!==void 0){D[G].push(new DynamicsContainer(q.StartingContinuousDynamic,q.StaffNumber));const Y=this.getOtherStaffIndexIfLinkedStavesAreDetected(R,G,q.StartingContinuousDynamic.Placement);Y>=0&&D[Y].push(new DynamicsContainer(q.StartingContinuousDynamic,Y))}}}}static getOtherStaffIndexIfLinkedStavesAreDetected(R,F,D){const G=R.getStaffFromIndex(F),U=G.ParentInstrument.Staves.indexOf(G),W=G.ParentInstrument.Staves.length;return W>1&&U===0&&D===PlacementEnum.Below?F+1:W>1&&U===1&&D===PlacementEnum.Above?F-1:-1}static fillDynamicExpressions(R){const F=R.DynListStaves,D=R.getCompleteNumberOfStaves(),G=R.TimestampSortedDynamicExpressionsList;for(let U=0;U{R(this.processStringXml(D))},D=>{log$2.error(new Error("[OSMD] Invalid MXL file: "+D)),F(new Error("[OSMD] Invalid MXL file: "+D))})}processStringXml(B){const R=new DOMParser;if(B.substr(0,3)==="\uF7EF\uF7BB\uF7BF")return log$2.debug("[OSMD] UTF with BOM detected, truncate first three bytes and pass along: "+B),R.parseFromString(B.substr(3),"application/xml");if(B.substr(0,6).includes("{F.isMxl(K)?F.processMxl(K,q,Y):q(F.processStringXml(K))},K=>{throw Y(K),K});else{const K=new Error("[OSMD] osmd.load(string): Could not process string. Did not find {R.init(this.sheet.MusicPartManager,this.graphic)}),this.renderingManager.setMusicSheet(this.graphic),this.interactionManager.Initialize()}render(){var R;if(!this.graphic)throw new Error("OpenSheetMusicDisplay: Before rendering a music sheet, please load a MusicXML file");(R=this.drawer)==null||R.clear();let B=this.container.offsetWidth;this.rules.RenderSingleHorizontalStaffline&&(B=this.rules.SheetMaximumWidth),this.sheet.pageWidth=B/this.zoom/10,this.renderingManager.MainViewingRegion.WidthInUnits=this.sheet.pageWidth,this.rules.PageFormat&&!this.rules.PageFormat.IsUndefined?(this.rules.PageHeight=this.sheet.pageWidth/this.rules.PageFormat.aspectRatio,log$2.debug("[OSMD] PageHeight: "+this.rules.PageHeight)):(log$2.debug("[OSMD] endless/undefined pageformat, id: "+this.rules.PageFormat.idString),this.rules.PageHeight=100001),this.graphic.reCalculate(),this.drawingParameters.drawCursors&&(this.graphic.Cursors.length=0),this.createOrRefreshRenderBackend(),this.needBackendUpdate=!1,this.drawer.setZoom(this.zoom),this.drawer.drawSheet(this.graphic),this.enableOrDisableCursors(this.drawingParameters.drawCursors),this.drawingParameters.drawCursors&&this.cursors.forEach(F=>{F.update()}),this.zoomUpdated=!1,this.interactionManager.displaySizeChanged(this.container.clientWidth,this.container.clientHeight)}createOrRefreshRenderBackend(){this.drawer&&this.drawer.Backends&&(this.drawer.Backends[0]&&this.drawer.Backends[0].removeAllChildrenFromContainer(this.container),this.drawer.Backends.clear()),this.drawingParameters.Rules=this.rules,this.drawer=new VexFlowMusicSheetDrawer(this.drawingParameters),this.drawer.drawableBoundingBoxElement=this.DrawBoundingBox,this.drawer.bottomLineVisible=this.drawBottomLine,this.drawer.skyLineVisible=this.drawSkyLine;let B=this.container.offsetWidth;this.rules.RenderSingleHorizontalStaffline&&(B=this.graphic.MusicPages[0].PositionAndShape.Size.width*10*this.zoom);let R;const F=32767;for(const D of this.graphic.MusicPages){if(D.PageNumber>this.rules.MaxPageToDrawNumber)break;const G=this.createBackend(this.backendType,D),U=" exceeds CanvasBackend limit of 32767. Cutting off score.";G.getOSMDBackendType()===BackendType.Canvas&&B>F&&(log$2.warn("[OSMD] Warning: width of "+B+U),B=F),this.rules.PageFormat&&!this.rules.PageFormat.IsUndefined?R=B/this.rules.PageFormat.aspectRatio:(R=D.PositionAndShape.Size.height,R+=this.rules.PageBottomMargin,R+=this.rules.CompactMode?this.rules.PageTopMarginNarrow:this.rules.PageTopMargin,this.rules.RenderTitle&&(R+=this.rules.TitleTopDistance),R*=this.zoom*10),G.getOSMDBackendType()===BackendType.Canvas&&R>F&&(log$2.warn("[OSMD] Warning: height of "+R+U),R=Math.min(R,F)),G.resize(B,R),G.clear(),this.drawer.Backends.push(G),this.graphic.drawer=this.drawer}}exportSVG(){var B;for(const R of(B=this.drawer)==null?void 0:B.Backends)R instanceof SvgVexFlowBackend&&R.export()}IsReadyToRender(){return this.graphic!==void 0}clear(){var B;(B=this.drawer)==null||B.clear(),this.reset()}dispose(){this.disposeResizeListener&&this.disposeResizeListener(),this.InteractionManager&&this.InteractionManager.Dispose()}setOptions(B){if(this.rules||(this.rules=new EngravingRules),this.drawingParameters||(this.drawingParameters=new DrawingParameters,this.drawingParameters.Rules=this.rules),B==null){log$2.warn(`warning: osmd.setOptions() called without an options parameter, has no effect. example usage: osmd.setOptions({drawCredits: false, drawPartNames: false})`);return}this.OnXMLRead=function(G){return G},B.onXMLRead&&(this.OnXMLRead=B.onXMLRead),B.drawingParameters&&(this.drawingParameters.DrawingParametersEnum=DrawingParametersEnum[B.drawingParameters.toLowerCase()]);let F=!this.drawer||!this.drawer.Backends||this.drawer.Backends.length<1;if(B.backend!==void 0){const G=OSMDOptions.BackendTypeFromString(B.backend);F=F||this.backendType!==G,this.backendType=G}this.needBackendUpdate=F,B.autoBeam!==void 0&&(this.rules.AutoBeamNotes=B.autoBeam);const D=B.autoBeamOptions;if(D&&(D.maintain_stem_directions===void 0&&(D.maintain_stem_directions=!1),this.rules.AutoBeamOptions=D,D.groups&&D.groups.length)){for(const G of D.groups)if(G.length!==2)throw new Error("Each fraction in autoBeamOptions.groups must be of length 2, e.g. [3,4] for beaming three fourths")}B.percussionOneLineCutoff!==void 0&&(this.rules.PercussionOneLineCutoff=B.percussionOneLineCutoff),this.rules.PercussionOneLineCutoff!==0&&B.percussionForceVoicesOneLineCutoff!==void 0&&(this.rules.PercussionForceVoicesOneLineCutoff=B.percussionForceVoicesOneLineCutoff),B.alignRests!==void 0&&(this.rules.AlignRests=B.alignRests),B.coloringMode!==void 0&&this.setColoringMode(B),B.coloringEnabled!==void 0&&(this.rules.ColoringEnabled=B.coloringEnabled),B.colorStemsLikeNoteheads!==void 0&&(this.rules.ColorStemsLikeNoteheads=B.colorStemsLikeNoteheads),B.disableCursor&&(this.drawingParameters.drawCursors=!1),B.drawHiddenNotes&&(this.drawingParameters.drawHiddenNotes=!0),B.drawCredits!==void 0&&(this.drawingParameters.DrawCredits=B.drawCredits),B.drawComposer!==void 0&&(this.drawingParameters.DrawComposer=B.drawComposer),B.drawTitle!==void 0&&(this.drawingParameters.DrawTitle=B.drawTitle),B.drawSubtitle!==void 0&&(this.drawingParameters.DrawSubtitle=B.drawSubtitle),B.drawLyricist!==void 0&&(this.drawingParameters.DrawLyricist=B.drawLyricist),B.drawMetronomeMarks!==void 0&&(this.rules.MetronomeMarksDrawn=B.drawMetronomeMarks),B.drawPartNames!==void 0&&(this.drawingParameters.DrawPartNames=B.drawPartNames,B.drawPartAbbreviations||(this.rules.RenderPartAbbreviations=B.drawPartNames)),B.drawPartAbbreviations!==void 0&&(this.rules.RenderPartAbbreviations=B.drawPartAbbreviations),B.drawFingerings===!1&&(this.rules.RenderFingerings=!1),B.drawMeasureNumbers!==void 0&&(this.rules.RenderMeasureNumbers=B.drawMeasureNumbers),B.drawMeasureNumbersOnlyAtSystemStart&&(this.rules.RenderMeasureNumbersOnlyAtSystemStart=B.drawMeasureNumbersOnlyAtSystemStart),B.drawLyrics!==void 0&&(this.rules.RenderLyrics=B.drawLyrics),B.drawTimeSignatures!==void 0&&(this.rules.RenderTimeSignatures=B.drawTimeSignatures),B.drawSlurs!==void 0&&(this.rules.RenderSlurs=B.drawSlurs),B.measureNumberInterval!==void 0&&(this.rules.MeasureNumberLabelOffset=B.measureNumberInterval),B.useXMLMeasureNumbers!==void 0&&(this.rules.UseXMLMeasureNumbers=B.useXMLMeasureNumbers),B.fingeringPosition!==void 0&&(this.rules.FingeringPosition=AbstractExpression.PlacementEnumFromString(B.fingeringPosition)),B.fingeringInsideStafflines!==void 0&&(this.rules.FingeringInsideStafflines=B.fingeringInsideStafflines),B.newSystemFromXML!==void 0&&(this.rules.NewSystemAtXMLNewSystemAttribute=B.newSystemFromXML),B.newPageFromXML!==void 0&&(this.rules.NewPageAtXMLNewPageAttribute=B.newPageFromXML),B.fillEmptyMeasuresWithWholeRest!==void 0&&(this.rules.FillEmptyMeasuresWithWholeRest=B.fillEmptyMeasuresWithWholeRest),B.followCursor!==void 0&&(this.FollowCursor=B.followCursor),B.setWantedStemDirectionByXml!==void 0&&(this.rules.SetWantedStemDirectionByXml=B.setWantedStemDirectionByXml),B.darkMode?(this.rules.applyDefaultColorMusic("#FFFFFF"),this.rules.PageBackgroundColor="#000000"):B.darkMode===!1&&(this.rules.applyDefaultColorMusic("#000000"),this.rules.PageBackgroundColor=void 0),B.defaultColorMusic&&this.rules.applyDefaultColorMusic(B.defaultColorMusic),B.defaultColorNotehead&&(this.rules.DefaultColorNotehead=B.defaultColorNotehead),B.defaultColorRest&&(this.rules.DefaultColorRest=B.defaultColorRest),B.defaultColorStem&&(this.rules.DefaultColorStem=B.defaultColorStem),B.defaultColorLabel&&(this.rules.DefaultColorLabel=B.defaultColorLabel),B.defaultColorTitle&&(this.rules.DefaultColorTitle=B.defaultColorTitle),B.defaultFontFamily&&(this.rules.DefaultFontFamily=B.defaultFontFamily),B.defaultFontStyle&&(this.rules.DefaultFontStyle=B.defaultFontStyle),B.drawUpToMeasureNumber&&(this.rules.MaxMeasureToDrawIndex=B.drawUpToMeasureNumber-1),B.drawFromMeasureNumber&&(this.rules.MinMeasureToDrawIndex=B.drawFromMeasureNumber-1),B.drawUpToPageNumber&&(this.rules.MaxPageToDrawNumber=B.drawUpToPageNumber),B.drawUpToSystemNumber&&(this.rules.MaxSystemToDrawNumber=B.drawUpToSystemNumber),B.tupletsRatioed&&(this.rules.TupletsRatioed=!0),B.tupletsBracketed&&(this.rules.TupletsBracketed=!0),B.tripletsBracketed&&(this.rules.TripletsBracketed=!0),B.autoResize?(this.resizeHandlerAttached||this.autoResize(),this.autoResizeEnabled=!0):B.autoResize===!1&&(this.autoResizeEnabled=!1),B.pageFormat!==void 0&&this.setPageFormat(B.pageFormat),B.pageBackgroundColor!==void 0&&(this.rules.PageBackgroundColor=B.pageBackgroundColor),B.performanceMode!==void 0&&(this.rules.PerformanceMode=B.performanceMode),B.renderSingleHorizontalStaffline!==void 0&&(this.rules.RenderSingleHorizontalStaffline=B.renderSingleHorizontalStaffline),B.spacingFactorSoftmax!==void 0&&(this.rules.SoftmaxFactorVexFlow=B.spacingFactorSoftmax),B.spacingBetweenTextLines!==void 0&&(this.rules.SpacingBetweenTextLines=B.spacingBetweenTextLines),B.stretchLastSystemLine!==void 0&&(this.rules.StretchLastSystemLine=B.stretchLastSystemLine),B.autoGenerateMutipleRestMeasuresFromRestMeasures!==void 0&&(this.rules.AutoGenerateMutipleRestMeasuresFromRestMeasures=B.autoGenerateMutipleRestMeasuresFromRestMeasures),B.cursorsOptions!==void 0?this.cursorsOptions=B.cursorsOptions:this.cursorsOptions=[{type:0,color:this.EngravingRules.DefaultColorCursor,alpha:.5,follow:!0}]}setColoringMode(B){if(B.coloringMode===ColoringModes.XML){this.rules.ColoringMode=ColoringModes.XML;return}const R=[NoteEnum.C,NoteEnum.D,NoteEnum.E,NoteEnum.F,NoteEnum.G,NoteEnum.A,NoteEnum.B,-1];let F;if(B.coloringMode===ColoringModes.CustomColorSet){if(!B.coloringSetCustom||B.coloringSetCustom.length!==8)throw new Error("Invalid amount of colors: With coloringModes.customColorSet, you have to provide a coloringSetCustom parameter with 8 strings (C to B, rest note).");for(const G of B.coloringSetCustom)if(!/^\#[0-9a-fA-F]{6}$/.test(G))throw new Error(`One of the color strings in options.coloringSetCustom was not a valid HTML Hex color: `+G);F=B.coloringSetCustom}else if(B.coloringMode===ColoringModes.AutoColoring){F=[];const G=Object.keys(AutoColorSet);for(let U=0;U{B.hide()}),this.sheet=void 0,this.graphic=void 0,this.zoom=1}autoResize(){const B=this;this.handleResize(()=>{},()=>{var R;((R=this.graphic)==null?void 0:R.GetCalculator)instanceof VexFlowMusicSheetCalculator&&(this.graphic.GetCalculator.beamsNeedUpdate=!0),B.IsReadyToRender()&&B.render()})}handleResize(B,R){let F,D;const U=this;function W(){!U.AutoResizeEnabled||(F=new Date().getTime(),D||(B(),F=new Date().getTime(),D=window.setTimeout(q,200)))}function q(){D=void 0,window.clearTimeout(D),new Date().getTime()-F<200?D=window.setTimeout(q,200):R()}window.attachEvent?window.attachEvent("onresize",W):window.addEventListener("resize",W),this.disposeResizeListener=()=>{window.detachEvent?window.detachEvent("onresize",W):window.removeEventListener("resize",W),this.resizeHandlerAttached=!1},this.resizeHandlerAttached=!0,window.setTimeout(B,0),window.setTimeout(R,1)}enableOrDisableCursors(B){var R,F,D,G,U,W;if(this.drawingParameters.drawCursors=B,B){for(let q=0;q{q.hide()})}createBackend(B,R){let F;return B===void 0||B===BackendType.SVG?F=new SvgVexFlowBackend(this.rules):F=new CanvasVexFlowBackend(this.rules),F.graphicalMusicPage=R,F.initialize(this.container,this.zoom),F.getContext().setFillStyle(this.rules.DefaultColorMusic),F.getContext().setStrokeStyle(this.rules.DefaultColorMusic),F}static StringToPageFormat(B){let R=PageFormat.UndefinedPageFormat;if(B.match("^[0-9]+x[0-9]+$")){const F=B.split("x"),D=Number.parseInt(F[0],10),G=Number.parseInt(F[1],10);D>0&&D<32768&&G>0&&G<32768&&(R=new PageFormat(D,G,`customPageFormat${B}`))}return B=B.replace(" ","_"),B=B.replace("Landscape","L"),B=B.replace("Portrait","P"),_OpenSheetMusicDisplay.PageFormatStandards.hasOwnProperty(B)&&(R=_OpenSheetMusicDisplay.PageFormatStandards[B]),R}setPageFormat(B){const R=_OpenSheetMusicDisplay.StringToPageFormat(B);this.needBackendUpdate=!R.Equals(this.rules.PageFormat),this.rules.PageFormat=R}setCustomPageFormat(B,R){if(B>0&&R>0){const F=new PageFormat(B,R);this.rules.PageFormat=F}}set DrawSkyLine(B){this.drawSkyLine=B,this.drawer&&(this.drawer.skyLineVisible=B)}get DrawSkyLine(){return this.drawer.skyLineVisible}set DrawBottomLine(B){this.drawBottomLine=B,this.drawer&&(this.drawer.bottomLineVisible=B)}get DrawBottomLine(){return this.drawer.bottomLineVisible}set DrawBoundingBox(B){this.setDrawBoundingBox(B,!0)}get DrawBoundingBox(){return this.drawBoundingBox}setDrawBoundingBox(B,R=!1){this.drawBoundingBox=B,this.drawer&&(this.drawer.drawableBoundingBoxElement=B),R&&this.render()}get AutoResizeEnabled(){return this.autoResizeEnabled}set AutoResizeEnabled(B){this.autoResizeEnabled=B}get Zoom(){return this.zoom}set Zoom(B){var R;this.zoom=B,this.zoomUpdated=!0,((R=this.graphic)==null?void 0:R.GetCalculator)instanceof VexFlowMusicSheetCalculator&&(this.graphic.GetCalculator.beamsNeedUpdate=this.zoomUpdated)}set FollowCursor(B){this.followCursor=B}get FollowCursor(){return this.followCursor}set TransposeCalculator(B){MusicSheetCalculator.transposeCalculator=B}get TransposeCalculator(){return MusicSheetCalculator.transposeCalculator}get Sheet(){return this.sheet}get Drawer(){return this.drawer}get GraphicSheet(){return this.graphic}get DrawingParameters(){return this.drawingParameters}get EngravingRules(){return this.rules}get InteractionManager(){return this.interactionManager}get Version(){return this.version}};let OpenSheetMusicDisplay=_OpenSheetMusicDisplay;OpenSheetMusicDisplay.PageFormatStandards={A3_L:new PageFormat(420,297,"A3_L"),A3_P:new PageFormat(297,420,"A3_P"),A4_L:new PageFormat(297,210,"A4_L"),A4_P:new PageFormat(210,297,"A4_P"),A5_L:new PageFormat(210,148,"A5_L"),A5_P:new PageFormat(148,210,"A5_P"),A6_L:new PageFormat(148,105,"A6_L"),A6_P:new PageFormat(105,148,"A6_P"),Endless:PageFormat.UndefinedPageFormat,Letter_L:new PageFormat(279.4,215.9,"Letter_L"),Letter_P:new PageFormat(215.9,279.4,"Letter_P")};var handlebars={exports:{}},handlebars_runtime={exports:{}},base$1={},utils={};utils.__esModule=!0;utils.extend=extend;utils.indexOf=indexOf;utils.escapeExpression=escapeExpression;utils.isEmpty=isEmpty;utils.createFrame=createFrame;utils.blockParams=blockParams;utils.appendContextPath=appendContextPath;var escape$1={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`","=":"="},badChars=/[&<>"'`=]/g,possible=/[&<>"'`=]/;function escapeChar(B){return escape$1[B]}function extend(B){for(var R=1;R0?(U.ids&&(U.ids=[U.name]),D.helpers.each(G,U)):W(this);if(U.data&&U.ids){var Y=F.createFrame(U.data);Y.contextPath=F.appendContextPath(U.data.contextPath,U.name),U={data:Y}}return q(G,U)})},B.exports=R.default})(blockHelperMissing,blockHelperMissing.exports);var each={exports:{}};(function(B,R){R.__esModule=!0;function F(W){return W&&W.__esModule?W:{default:W}}var D=utils,G=exception.exports,U=F(G);R.default=function(W){W.registerHelper("each",function(q,Y){if(!Y)throw new U.default("Must pass iterator to #each");var Q=Y.fn,Z=Y.inverse,K=0,J="",ie=void 0,ne=void 0;Y.data&&Y.ids&&(ne=D.appendContextPath(Y.data.contextPath,Y.ids[0])+"."),D.isFunction(q)&&(q=q.call(this)),Y.data&&(ie=D.createFrame(Y.data));function se(he,de,me){ie&&(ie.key=he,ie.index=de,ie.first=de===0,ie.last=!!me,ne&&(ie.contextPath=ne+he)),J=J+Q(q[he],{data:ie,blockParams:D.blockParams([q[he],he],[ne+he,null])})}if(q&&typeof q=="object")if(D.isArray(q))for(var re=q.length;K=0?U=W:U=parseInt(U,10)}return U},log:function(U){if(U=D.lookupLevel(U),typeof console!="undefined"&&D.lookupLevel(D.level)<=U){var W=D.methodMap[U];console[W]||(W="log");for(var q=arguments.length,Y=Array(q>1?q-1:0),Q=1;Q= 2.0.0-beta.1",7:">= 4.0.0 <4.3.0",8:">= 4.3.0"};base$1.REVISION_CHANGES=REVISION_CHANGES;var objectType="[object Object]";function HandlebarsEnvironment(B,R,F){this.helpers=B||{},this.partials=R||{},this.decorators=F||{},_helpers$2.registerDefaultHelpers(this),_decorators.registerDefaultDecorators(this)}HandlebarsEnvironment.prototype={constructor:HandlebarsEnvironment,logger:_logger2.default,log:_logger2.default.log,registerHelper:function B(R,F){if(_utils$3.toString.call(R)===objectType){if(F)throw new _exception2$3.default("Arg not supported with multiple helpers");_utils$3.extend(this.helpers,R)}else this.helpers[R]=F},unregisterHelper:function B(R){delete this.helpers[R]},registerPartial:function B(R,F){if(_utils$3.toString.call(R)===objectType)_utils$3.extend(this.partials,R);else{if(typeof F=="undefined")throw new _exception2$3.default('Attempting to register a partial called "'+R+'" as undefined');this.partials[R]=F}},unregisterPartial:function B(R){delete this.partials[R]},registerDecorator:function B(R,F){if(_utils$3.toString.call(R)===objectType){if(F)throw new _exception2$3.default("Arg not supported with multiple decorators");_utils$3.extend(this.decorators,R)}else this.decorators[R]=F},unregisterDecorator:function B(R){delete this.decorators[R]},resetLoggedPropertyAccesses:function B(){_internalProtoAccess$1.resetLoggedProperties()}};var log=_logger2.default.log;base$1.log=log;base$1.createFrame=_utils$3.createFrame;base$1.logger=_logger2.default;var safeString={exports:{}};(function(B,R){R.__esModule=!0;function F(D){this.string=D}F.prototype.toString=F.prototype.toHTML=function(){return""+this.string},R.default=F,B.exports=R.default})(safeString,safeString.exports);var runtime={},wrapHelper$1={};wrapHelper$1.__esModule=!0;wrapHelper$1.wrapHelper=wrapHelper;function wrapHelper(B,R){if(typeof B!="function")return B;var F=function(){var G=arguments[arguments.length-1];return arguments[arguments.length-1]=R(G),B.apply(this,arguments)};return F}runtime.__esModule=!0;runtime.checkRevision=checkRevision;runtime.template=template;runtime.wrapProgram=wrapProgram;runtime.resolvePartial=resolvePartial;runtime.invokePartial=invokePartial;runtime.noop=noop;function _interopRequireDefault$3(B){return B&&B.__esModule?B:{default:B}}function _interopRequireWildcard$1(B){if(B&&B.__esModule)return B;var R={};if(B!=null)for(var F in B)Object.prototype.hasOwnProperty.call(B,F)&&(R[F]=B[F]);return R.default=B,R}var _utils$2=utils,Utils=_interopRequireWildcard$1(_utils$2),_exception$2=exception.exports,_exception2$2=_interopRequireDefault$3(_exception$2),_base=base$1,_helpers$1=helpers$1,_internalWrapHelper=wrapHelper$1,_internalProtoAccess=protoAccess;function checkRevision(B){var R=B&&B[0]||1,F=_base.COMPILER_REVISION;if(!(R>=_base.LAST_COMPATIBLE_COMPILER_REVISION&&R<=_base.COMPILER_REVISION))if(R<_base.LAST_COMPATIBLE_COMPILER_REVISION){var D=_base.REVISION_CHANGES[F],G=_base.REVISION_CHANGES[R];throw new _exception2$2.default("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version ("+D+") or downgrade your runtime to an older version ("+G+").")}else throw new _exception2$2.default("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version ("+B[1]+").")}function template(B,R){if(!R)throw new _exception2$2.default("No environment passed to template");if(!B||!B.main)throw new _exception2$2.default("Unknown template object: "+typeof B);B.main.decorator=B.main_d,R.VM.checkRevision(B.compiler);var F=B.compiler&&B.compiler[0]===7;function D(W,q,Y){Y.hash&&(q=Utils.extend({},q,Y.hash),Y.ids&&(Y.ids[0]=!0)),W=R.VM.resolvePartial.call(this,W,q,Y);var Q=Utils.extend({},Y,{hooks:this.hooks,protoAccessControl:this.protoAccessControl}),Z=R.VM.invokePartial.call(this,W,q,Q);if(Z==null&&R.compile&&(Y.partials[Y.name]=R.compile(W,B.compilerOptions,R),Z=Y.partials[Y.name](q,Q)),Z!=null){if(Y.indent){for(var K=Z.split(` `),J=0,ie=K.length;J2&&ve.push("'"+this.terminals_[ge]+"'");this.lexer.showPosition?xe="Parse error on line "+(ne+1)+`: `+this.lexer.showPosition()+` Expecting `+ve.join(", ")+", got '"+(this.terminals_[ce]||ce)+"'":xe="Parse error on line "+(ne+1)+": Unexpected "+(ce==1?"end of input":"'"+(this.terminals_[ce]||ce)+"'"),this.parseError(xe,{text:this.lexer.match,token:this.terminals_[ce]||ce,line:this.lexer.yylineno,loc:re,expected:ve})}}if(de[0]instanceof Array&&de.length>1)throw new Error("Parse Error: multiple actions possible at state: "+he+", token: "+ce);switch(de[0]){case 1:Q.push(ce),Z.push(this.lexer.yytext),K.push(this.lexer.yylloc),Q.push(de[1]),ce=null,se=this.lexer.yyleng,ie=this.lexer.yytext,ne=this.lexer.yylineno,re=this.lexer.yylloc;break;case 2:if(Se=this.productions_[de[1]][1],fe.$=Z[Z.length-Se],fe._$={first_line:K[K.length-(Se||1)].first_line,last_line:K[K.length-1].last_line,first_column:K[K.length-(Se||1)].first_column,last_column:K[K.length-1].last_column},ae&&(fe._$.range=[K[K.length-(Se||1)].range[0],K[K.length-1].range[1]]),me=this.performAction.call(fe,ie,se,ne,this.yy,de[1],Z,K),typeof me!="undefined")return me;Se&&(Q=Q.slice(0,-1*Se*2),Z=Z.slice(0,-1*Se),K=K.slice(0,-1*Se)),Q.push(this.productions_[de[1]][0]),Z.push(fe.$),K.push(fe._$),Ee=J[Q[Q.length-2]][Q[Q.length-1]],Q.push(Ee);break;case 3:return!0}}return!0}},G=function(){var W={EOF:1,parseError:function(Y,Q){if(this.yy.parser)this.yy.parser.parseError(Y,Q);else throw new Error(Y)},setInput:function(Y){return this._input=Y,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var Y=this._input[0];this.yytext+=Y,this.yyleng++,this.offset++,this.match+=Y,this.matched+=Y;var Q=Y.match(/(?:\r\n?|\n).*/g);return Q?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Y},unput:function(Y){var Q=Y.length,Z=Y.split(/(?:\r\n?|\n)/g);this._input=Y+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Q-1),this.offset-=Q;var K=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),Z.length-1&&(this.yylineno-=Z.length-1);var J=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:Z?(Z.length===K.length?this.yylloc.first_column:0)+K[K.length-Z.length].length-Z[0].length:this.yylloc.first_column-Q},this.options.ranges&&(this.yylloc.range=[J[0],J[0]+this.yyleng-Q]),this},more:function(){return this._more=!0,this},less:function(Y){this.unput(this.match.slice(Y))},pastInput:function(){var Y=this.matched.substr(0,this.matched.length-this.match.length);return(Y.length>20?"...":"")+Y.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var Y=this.match;return Y.length<20&&(Y+=this._input.substr(0,20-Y.length)),(Y.substr(0,20)+(Y.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var Y=this.pastInput(),Q=new Array(Y.length+1).join("-");return Y+this.upcomingInput()+` `+Q+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Y,Q,Z,K,J;this._more||(this.yytext="",this.match="");for(var ie=this._currentRules(),ne=0;neQ[0].length)&&(Q=Z,K=ne,!this.options.flex)));ne++);return Q?(J=Q[0].match(/(?:\r\n?|\n).*/g),J&&(this.yylineno+=J.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:J?J[J.length-1].length-J[J.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+Q[0].length},this.yytext+=Q[0],this.match+=Q[0],this.matches=Q,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._input=this._input.slice(Q[0].length),this.matched+=Q[0],Y=this.performAction.call(this,this.yy,this,ie[K],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Y||void 0):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. `+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var Y=this.next();return typeof Y!="undefined"?Y:this.lex()},begin:function(Y){this.conditionStack.push(Y)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(Y){this.begin(Y)}};return W.options={},W.performAction=function(Y,Q,Z,K){function J(ie,ne){return Q.yytext=Q.yytext.substring(ie,Q.yyleng-ne+ie)}switch(Z){case 0:if(Q.yytext.slice(-2)==="\\\\"?(J(0,1),this.begin("mu")):Q.yytext.slice(-1)==="\\"?(J(0,1),this.begin("emu")):this.begin("mu"),Q.yytext)return 15;break;case 1:return 15;case 2:return this.popState(),15;case 3:return this.begin("raw"),15;case 4:return this.popState(),this.conditionStack[this.conditionStack.length-1]==="raw"?15:(J(5,9),"END_RAW_BLOCK");case 5:return 15;case 6:return this.popState(),14;case 7:return 65;case 8:return 68;case 9:return 19;case 10:return this.popState(),this.begin("raw"),23;case 11:return 55;case 12:return 60;case 13:return 29;case 14:return 47;case 15:return this.popState(),44;case 16:return this.popState(),44;case 17:return 34;case 18:return 39;case 19:return 51;case 20:return 48;case 21:this.unput(Q.yytext),this.popState(),this.begin("com");break;case 22:return this.popState(),14;case 23:return 48;case 24:return 73;case 25:return 72;case 26:return 72;case 27:return 87;case 28:break;case 29:return this.popState(),54;case 30:return this.popState(),33;case 31:return Q.yytext=J(1,2).replace(/\\"/g,'"'),80;case 32:return Q.yytext=J(1,2).replace(/\\'/g,"'"),80;case 33:return 85;case 34:return 82;case 35:return 82;case 36:return 83;case 37:return 84;case 38:return 81;case 39:return 75;case 40:return 77;case 41:return 72;case 42:return Q.yytext=Q.yytext.replace(/\\([\\\]])/g,"$1"),72;case 43:return"INVALID";case 44:return 5}},W.rules=[/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/,/^(?:\{\{\{\{(?=[^/]))/,/^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/,/^(?:[^\x00]+?(?=(\{\{\{\{)))/,/^(?:[\s\S]*?--(~)?\}\})/,/^(?:\()/,/^(?:\))/,/^(?:\{\{\{\{)/,/^(?:\}\}\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#>)/,/^(?:\{\{(~)?#\*?)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^\s*(~)?\}\})/,/^(?:\{\{(~)?\s*else\s*(~)?\}\})/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{(~)?!--)/,/^(?:\{\{(~)?![\s\S]*?\}\})/,/^(?:\{\{(~)?\*?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.)|])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s)])))/,/^(?:false(?=([~}\s)])))/,/^(?:undefined(?=([~}\s)])))/,/^(?:null(?=([~}\s)])))/,/^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/,/^(?:as\s+\|)/,/^(?:\|)/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/,/^(?:\[(\\\]|[^\]])*\])/,/^(?:.)/,/^(?:$)/],W.conditions={mu:{rules:[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],inclusive:!1},emu:{rules:[2],inclusive:!1},com:{rules:[6],inclusive:!1},raw:{rules:[3,4,5],inclusive:!1},INITIAL:{rules:[0,1,44],inclusive:!0}},W}();D.lexer=G;function U(){this.yy={}}return U.prototype=D,D.Parser=U,new U}();R.default=F,B.exports=R.default})(parser$2,parser$2.exports);var whitespaceControl={exports:{}},visitor={exports:{}};(function(B,R){R.__esModule=!0;function F(Q){return Q&&Q.__esModule?Q:{default:Q}}var D=exception.exports,G=F(D);function U(){this.parents=[]}U.prototype={constructor:U,mutating:!1,acceptKey:function(Z,K){var J=this.accept(Z[K]);if(this.mutating){if(J&&!U.prototype[J.type])throw new G.default('Unexpected node type "'+J.type+'" found when accepting '+K+" on "+Z.type);Z[K]=J}},acceptRequired:function(Z,K){if(this.acceptKey(Z,K),!Z[K])throw new G.default(Z.type+" requires "+K)},acceptArray:function(Z){for(var K=0,J=Z.length;K0)throw new _exception2$1.default("Invalid path: "+D,{loc:F});Y===".."&&U++}else G.push(Y)}return{type:"PathExpression",data:B,depth:U,parts:G,original:D,loc:F}}function prepareMustache(B,R,F,D,G,U){var W=D.charAt(3)||D.charAt(2),q=W!=="{"&&W!=="&",Y=/\*/.test(D);return{type:Y?"Decorator":"MustacheStatement",path:B,params:R,hash:F,escaped:q,strip:G,loc:this.locInfo(U)}}function prepareRawBlock(B,R,F,D){validateClose(B,F),D=this.locInfo(D);var G={type:"Program",body:R,strip:{},loc:D};return{type:"BlockStatement",path:B.path,params:B.params,hash:B.hash,program:G,openStrip:{},inverseStrip:{},closeStrip:{},loc:D}}function prepareBlock(B,R,F,D,G,U){D&&D.path&&validateClose(B,D);var W=/\*/.test(B.open);R.blockParams=B.blockParams;var q=void 0,Y=void 0;if(F){if(W)throw new _exception2$1.default("Unexpected inverse block on decorator",F);F.chain&&(F.program.body[0].closeStrip=D.strip),Y=F.strip,q=F.program}return G&&(G=q,q=R,R=G),{type:W?"DecoratorBlock":"BlockStatement",path:B.path,params:B.params,hash:B.hash,program:R,inverse:q,openStrip:B.strip,inverseStrip:Y,closeStrip:D&&D.strip,loc:this.locInfo(U)}}function prepareProgram(B,R){if(!R&&B.length){var F=B[0].loc,D=B[B.length-1].loc;F&&D&&(R={source:F.source,start:{line:F.start.line,column:F.start.column},end:{line:D.end.line,column:D.end.column}})}return{type:"Program",body:B,strip:{},loc:R}}function preparePartialBlock(B,R,F,D){return validateClose(B,F),{type:"PartialBlockStatement",name:B.path,params:B.params,hash:B.hash,program:R,openStrip:B.strip,closeStrip:F&&F.strip,loc:this.locInfo(D)}}base.__esModule=!0;base.parseWithoutProcessing=parseWithoutProcessing;base.parse=parse$2;function _interopRequireWildcard(B){if(B&&B.__esModule)return B;var R={};if(B!=null)for(var F in B)Object.prototype.hasOwnProperty.call(B,F)&&(R[F]=B[F]);return R.default=B,R}function _interopRequireDefault$1(B){return B&&B.__esModule?B:{default:B}}var _parser=parser$2.exports,_parser2=_interopRequireDefault$1(_parser),_whitespaceControl=whitespaceControl.exports,_whitespaceControl2=_interopRequireDefault$1(_whitespaceControl),_helpers=helpers,Helpers=_interopRequireWildcard(_helpers),_utils$1=utils;base.parser=_parser2.default;var yy={};_utils$1.extend(yy,Helpers);function parseWithoutProcessing(B,R){if(B.type==="Program")return B;_parser2.default.yy=yy,yy.locInfo=function(D){return new yy.SourceLocation(R&&R.srcName,D)};var F=_parser2.default.parse(B);return F}function parse$2(B,R){var F=parseWithoutProcessing(B,R),D=new _whitespaceControl2.default(R);return D.accept(F)}var compiler={};compiler.__esModule=!0;compiler.Compiler=Compiler;compiler.precompile=precompile;compiler.compile=compile;function _interopRequireDefault(B){return B&&B.__esModule?B:{default:B}}var _exception=exception.exports,_exception2=_interopRequireDefault(_exception),_utils=utils,_ast=ast.exports,_ast2=_interopRequireDefault(_ast),slice=[].slice;function Compiler(){}Compiler.prototype={compiler:Compiler,equals:function B(R){var F=this.opcodes.length;if(R.opcodes.length!==F)return!1;for(var D=0;D1)throw new _exception2.default("Unsupported number of partial arguments: "+D.length,R);D.length||(this.options.explicitPartialContext?this.opcode("pushLiteral","undefined"):D.push({type:"PathExpression",parts:[],depth:0}));var G=R.name.original,U=R.name.type==="SubExpression";U&&this.accept(R.name),this.setupFullMustacheParams(R,F,void 0,!0);var W=R.indent||"";this.options.preventIndent&&W&&(this.opcode("appendContent",W),W=""),this.opcode("invokePartial",U,G,W),this.opcode("append")},PartialBlockStatement:function B(R){this.PartialStatement(R)},MustacheStatement:function B(R){this.SubExpression(R),R.escaped&&!this.options.noEscape?this.opcode("appendEscaped"):this.opcode("append")},Decorator:function B(R){this.DecoratorBlock(R)},ContentStatement:function B(R){R.value&&this.opcode("appendContent",R.value)},CommentStatement:function B(){},SubExpression:function B(R){transformLiteralToPath(R);var F=this.classifySexpr(R);F==="simple"?this.simpleSexpr(R):F==="helper"?this.helperSexpr(R):this.ambiguousSexpr(R)},ambiguousSexpr:function B(R,F,D){var G=R.path,U=G.parts[0],W=F!=null||D!=null;this.opcode("getContext",G.depth),this.opcode("pushProgram",F),this.opcode("pushProgram",D),G.strict=!0,this.accept(G),this.opcode("invokeAmbiguous",U,W)},simpleSexpr:function B(R){var F=R.path;F.strict=!0,this.accept(F),this.opcode("resolvePossibleLambda")},helperSexpr:function B(R,F,D){var G=this.setupFullMustacheParams(R,F,D),U=R.path,W=U.parts[0];if(this.options.knownHelpers[W])this.opcode("invokeKnownHelper",G.length,W);else{if(this.options.knownHelpersOnly)throw new _exception2.default("You specified knownHelpersOnly, but used the unknown helper "+W,R);U.strict=!0,U.falsy=!0,this.accept(U),this.opcode("invokeHelper",G.length,U.original,_ast2.default.helpers.simpleId(U))}},PathExpression:function B(R){this.addDepth(R.depth),this.opcode("getContext",R.depth);var F=R.parts[0],D=_ast2.default.helpers.scopedId(R),G=!R.depth&&!D&&this.blockParamIndex(F);G?this.opcode("lookupBlockParam",G,R.parts):F?R.data?(this.options.data=!0,this.opcode("lookupData",R.depth,R.parts,R.strict)):this.opcode("lookupOnContext",R.parts,R.falsy,R.strict,D):this.opcode("pushContext")},StringLiteral:function B(R){this.opcode("pushString",R.value)},NumberLiteral:function B(R){this.opcode("pushLiteral",R.value)},BooleanLiteral:function B(R){this.opcode("pushLiteral",R.value)},UndefinedLiteral:function B(){this.opcode("pushLiteral","undefined")},NullLiteral:function B(){this.opcode("pushLiteral","null")},Hash:function B(R){var F=R.pairs,D=0,G=F.length;for(this.opcode("pushHash");D=0)return[F,U]}}};function precompile(B,R,F){if(B==null||typeof B!="string"&&B.type!=="Program")throw new _exception2.default("You must pass a string or Handlebars AST to Handlebars.precompile. You passed "+B);R=R||{},"data"in R||(R.data=!0),R.compat&&(R.useDepths=!0);var D=F.parse(B,R),G=new F.Compiler().compile(D,R);return new F.JavaScriptCompiler().compile(G,R)}function compile(B,R,F){if(R===void 0&&(R={}),B==null||typeof B!="string"&&B.type!=="Program")throw new _exception2.default("You must pass a string or Handlebars AST to Handlebars.compile. You passed "+B);R=_utils.extend({},R),"data"in R||(R.data=!0),R.compat&&(R.useDepths=!0);var D=void 0;function G(){var W=F.parse(B,R),q=new F.Compiler().compile(W,R),Y=new F.JavaScriptCompiler().compile(q,R,void 0,!0);return F.template(Y)}function U(W,q){return D||(D=G()),D.call(this,W,q)}return U._setup=function(W){return D||(D=G()),D._setup(W)},U._child=function(W,q,Y,Q){return D||(D=G()),D._child(W,q,Y,Q)},U}function argEquals(B,R){if(B===R)return!0;if(_utils.isArray(B)&&_utils.isArray(R)&&B.length===R.length){for(var F=0;F0&&(se+=", "+re.join(", "));var ae=0;Object.keys(this.aliases).forEach(function(he){var de=ne.aliases[he];de.children&&de.referenceCount>1&&(se+=", alias"+ ++ae+"="+he,de.children[0]="alias"+ae)}),this.lookupPropertyFunctionIsUsed&&(se+=", "+this.lookupPropertyFunctionVarDeclaration());var le=["container","depth0","helpers","partials","data"];(this.useBlockParams||this.useDepths)&&le.push("blockParams"),this.useDepths&&le.push("depths");var ce=this.mergeSource(se);return ie?(le.push(ce),Function.apply(this,le)):this.source.wrap(["function(",le.join(","),`) { `,ce,"}"])},mergeSource:function(ie){var ne=this.environment.isSimple,se=!this.forceBuffer,re=void 0,ae=void 0,le=void 0,ce=void 0;return this.source.each(function(he){he.appendToBuffer?(le?he.prepend(" + "):le=he,ce=he):(le&&(ae?le.prepend("buffer += "):re=!0,ce.add(";"),le=ce=void 0),ae=!0,ne||(se=!1))}),se?le?(le.prepend("return "),ce.add(";")):ae||this.source.push('return "";'):(ie+=", buffer = "+(re?"":this.initializeBuffer()),le?(le.prepend("return buffer + "),ce.add(";")):this.source.push("return buffer;")),ie&&this.source.prepend("var "+ie.substring(2)+(re?"":`; `)),this.source.merge()},lookupPropertyFunctionVarDeclaration:function(){return` lookupProperty = container.lookupProperty || function(parent, propertyName) { if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { return parent[propertyName]; } return undefined } `.trim()},blockValue:function(ie){var ne=this.aliasable("container.hooks.blockHelperMissing"),se=[this.contextName(0)];this.setupHelperArgs(ie,0,se);var re=this.popStack();se.splice(1,0,re),this.push(this.source.functionCall(ne,"call",se))},ambiguousBlockValue:function(){var ie=this.aliasable("container.hooks.blockHelperMissing"),ne=[this.contextName(0)];this.setupHelperArgs("",0,ne,!0),this.flushInline();var se=this.topStack();ne.splice(1,0,se),this.pushSource(["if (!",this.lastHelper,") { ",se," = ",this.source.functionCall(ie,"call",ne),"}"])},appendContent:function(ie){this.pendingContent?ie=this.pendingContent+ie:this.pendingLocation=this.source.currentLocation,this.pendingContent=ie},append:function(){if(this.isInline())this.replaceStack(function(ne){return[" != null ? ",ne,' : ""']}),this.pushSource(this.appendToBuffer(this.popStack()));else{var ie=this.popStack();this.pushSource(["if (",ie," != null) { ",this.appendToBuffer(ie,void 0,!0)," }"]),this.environment.isSimple&&this.pushSource(["else { ",this.appendToBuffer("''",void 0,!0)," }"])}},appendEscaped:function(){this.pushSource(this.appendToBuffer([this.aliasable("container.escapeExpression"),"(",this.popStack(),")"]))},getContext:function(ie){this.lastContext=ie},pushContext:function(){this.pushStackLiteral(this.contextName(this.lastContext))},lookupOnContext:function(ie,ne,se,re){var ae=0;!re&&this.options.compat&&!this.lastContext?this.push(this.depthedLookup(ie[ae++])):this.pushContext(),this.resolvePath("context",ie,ae,ne,se)},lookupBlockParam:function(ie,ne){this.useBlockParams=!0,this.push(["blockParams[",ie[0],"][",ie[1],"]"]),this.resolvePath("context",ne,1)},lookupData:function(ie,ne,se){ie?this.pushStackLiteral("container.data(data, "+ie+")"):this.pushStackLiteral("data"),this.resolvePath("data",ne,0,!0,se)},resolvePath:function(ie,ne,se,re,ae){var le=this;if(this.options.strict||this.options.assumeObjects){this.push(K(this.options.strict&&ae,this,ne,se,ie));return}for(var ce=ne.length;sethis.stackVars.length&&this.stackVars.push("stack"+this.stackSlot),this.topStackName()},topStackName:function(){return"stack"+this.stackSlot},flushInline:function(){var ie=this.inlineStack;this.inlineStack=[];for(var ne=0,se=ie.length;neB!==null&&B.isSecureContext,createNativeAudioBufferConstructor=B=>B===null?null:B.hasOwnProperty("AudioBuffer")?B.AudioBuffer:null,createNativeAudioContextConstructor=B=>B===null?null:B.hasOwnProperty("AudioContext")?B.AudioContext:B.hasOwnProperty("webkitAudioContext")?B.webkitAudioContext:null,createNativeAudioWorkletNodeConstructor=B=>B===null?null:B.hasOwnProperty("AudioWorkletNode")?B.AudioWorkletNode:null,createNativeOfflineAudioContextConstructor=B=>B===null?null:B.hasOwnProperty("OfflineAudioContext")?B.OfflineAudioContext:B.hasOwnProperty("webkitOfflineAudioContext")?B.webkitOfflineAudioContext:null,createWindow=()=>typeof window=="undefined"?null:window,window$1=createWindow();createNativeOfflineAudioContextConstructor(window$1);createNativeAudioContextConstructor(window$1);createNativeAudioWorkletNodeConstructor(window$1);createNativeAudioBufferConstructor(window$1);createIsSecureContext(window$1);var lib$2={exports:{}},lib$1={exports:{}};function b64ToUint6(B){return B>64&&B<91?B-65:B>96&&B<123?B-71:B>47&&B<58?B+4:B===43?62:B===47?63:0}function decode(B,R){for(var F=B.replace(/[^A-Za-z0-9\+\/]/g,""),D=F.length,G=R?Math.ceil((D*3+1>>2)/R)*R:D*3+1>>2,U=new Uint8Array(G),W,q,Y=0,Q=0,Z=0;Z>>(16>>>W&24)&255;Y=0}return U}var base64={decode},fetch$1=function(B,R){return new Promise(function(F,D){var G=new XMLHttpRequest;R&&(G.responseType=R),G.open("GET",B),G.onload=function(){G.status===200?F(G.response):D(Error(G.statusText))},G.onerror=function(){D(Error("Network Error"))},G.send()})};(function(B){var R=base64,F=fetch$1;function D(fe){return function(ge){return typeof ge=="string"&&fe.test(ge)}}function G(fe,ge){return typeof fe=="string"?fe+ge:typeof fe=="function"?fe(ge):ge}function U(fe,ge,Se,Ee){var ve=W(ge)?q:Y(ge)?Q:Z(ge)?K:J(ge)?ie:ne(ge)?se:re(ge)?ae:le(ge)?ce:he(ge)?de:null,xe=Se||{};return ve?ve(fe,ge,xe):Ee?Promise.resolve(Ee):Promise.reject("Source not valid ("+ge+")")}U.fetch=F;function W(fe){return fe instanceof ArrayBuffer}function q(fe,ge,Se){return new Promise(function(Ee,ve){fe.decodeAudioData(ge,function(xe){Ee(xe)},function(){ve("Can't decode audio data ("+ge.slice(0,30)+"...)")})})}var Y=D(/\.(mp3|wav|ogg)(\?.*)?$/i);function Q(fe,ge,Se){var Ee=G(Se.from,ge);return U(fe,U.fetch(Ee,"arraybuffer"),Se)}function Z(fe){return fe&&typeof fe.then=="function"}function K(fe,ge,Se){return ge.then(function(Ee){return U(fe,Ee,Se)})}var J=Array.isArray;function ie(fe,ge,Se){return Promise.all(ge.map(function(Ee){return U(fe,Ee,Se,Ee)}))}function ne(fe){return fe&&typeof fe=="object"}function se(fe,ge,Se){var Ee={},ve=Object.keys(ge).map(function(xe){if(Se.only&&Se.only.indexOf(xe)===-1)return null;var Pe=ge[xe];return U(fe,Pe,Se,Pe).then(function(ye){Ee[xe]=ye})});return Promise.all(ve).then(function(){return Ee})}var re=D(/\.json(\?.*)?$/i);function ae(fe,ge,Se){var Ee=G(Se.from,ge);return U(fe,U.fetch(Ee,"text").then(JSON.parse),Se)}var le=D(/^data:audio/);function ce(fe,ge,Se){var Ee=ge.indexOf(",");return U(fe,R.decode(ge.slice(Ee+1)).buffer,Se)}var he=D(/\.js(\?.*)?$/i);function de(fe,ge,Se){var Ee=G(Se.from,ge);return U(fe,U.fetch(Ee,"text").then(me),Se)}function me(fe){var ge=fe.indexOf("MIDI.Soundfont.");if(ge<0)throw Error("Invalid MIDI.js Soundfont format");ge=fe.indexOf("=",ge)+2;var Se=fe.lastIndexOf(",");return JSON.parse(fe.slice(ge,Se)+"}")}B.exports&&(B.exports=U),typeof window!="undefined"&&(window.loadAudio=U)})(lib$1);var lib={exports:{}},adsr=ADSR$1;function ADSR$1(B){var R=B.createGain(),F=R._voltage=getVoltage(B),D=scale(F),G=scale(F),U=scale(F);return R._startAmount=scale(G),R._endAmount=scale(U),R._multiplier=scale(D),R._multiplier.connect(R),R._startAmount.connect(R),R._endAmount.connect(R),R.value=D.gain,R.startValue=G.gain,R.endValue=U.gain,R.startValue.value=0,R.endValue.value=0,Object.defineProperties(R,props),R}var props={attack:{value:0,writable:!0},decay:{value:0,writable:!0},sustain:{value:1,writable:!0},release:{value:0,writable:!0},getReleaseDuration:{value:function(){return this.release}},start:{value:function(B){var R=this._multiplier.gain,F=this._startAmount.gain,D=this._endAmount.gain;this._voltage.start(B),this._decayFrom=this._decayFrom=B+this.attack,this._startedAt=B;var G=this.sustain;R.cancelScheduledValues(B),F.cancelScheduledValues(B),D.cancelScheduledValues(B),D.setValueAtTime(0,B),this.attack?(R.setValueAtTime(0,B),R.linearRampToValueAtTime(1,B+this.attack),F.setValueAtTime(1,B),F.linearRampToValueAtTime(0,B+this.attack)):(R.setValueAtTime(1,B),F.setValueAtTime(0,B)),this.decay&&R.setTargetAtTime(G,this._decayFrom,getTimeConstant(this.decay))}},stop:{value:function(B,R){R&&(B=B-this.release);var F=B+this.release;if(this.release){var D=this._multiplier.gain,G=this._startAmount.gain,U=this._endAmount.gain;D.cancelScheduledValues(B),G.cancelScheduledValues(B),U.cancelScheduledValues(B);var W=getTimeConstant(this.release);if(this.attack&&B=R&&(Q=R),Q}var ADSR=adsr,EMPTY={},DEFAULTS={gain:1,attack:.01,decay:.1,sustain:.9,release:.3,loop:!1,cents:0,loopStart:0,loopEnd:0};function SamplePlayer(B,R,F){var D=!1,G=0,U={},W=B.createGain();W.gain.value=1;var q=Object.assign({},DEFAULTS,F),Y={context:B,out:W,opts:q};return R instanceof AudioBuffer?Y.buffer=R:Y.buffers=R,Y.start=function(K,J,ie){if(Y.buffer&&K!==null)return Y.start(null,K,J);var ne=K?Y.buffers[K]:Y.buffer;if(ne){if(!D){console.warn("SamplePlayer not connected to any node.");return}}else{console.warn("Buffer "+K+" not found.");return}var se=ie||EMPTY;J=Math.max(B.currentTime,J||0),Y.emit("start",J,K,se);var re=Z(K,ne,se);return re.id=Q(K,re),re.env.start(J),re.source.start(J),Y.emit("started",J,re.id,re),se.duration&&re.stop(J+se.duration),re},Y.play=function(K,J,ie){return Y.start(K,J,ie)},Y.stop=function(K,J){var ie;return J=J||Object.keys(U),J.map(function(ne){return ie=U[ne],ie?(ie.stop(K),ie.id):null})},Y.connect=function(K){return D=!0,W.connect(K),Y},Y.emit=function(K,J,ie,ne){Y.onevent&&Y.onevent(K,J,ie,ne);var se=Y["on"+K];se&&se(J,ie,ne)},Y;function Q(K,J){return J.id=G++,U[J.id]=J,J.source.onended=function(){var ie=B.currentTime;J.source.disconnect(),J.env.disconnect(),J.disconnect(),Y.emit("ended",ie,J.id,J)},J.id}function Z(K,J,ie){var ne=B.createGain();return ne.gain.value=0,ne.connect(W),ne.env=envelope(B,ie,q),ne.env.connect(ne.gain),ne.source=B.createBufferSource(),ne.source.buffer=J,ne.source.connect(ne),ne.source.loop=ie.loop||q.loop,ne.source.playbackRate.value=centsToRate(ie.cents||q.cents),ne.source.loopStart=ie.loopStart||q.loopStart,ne.source.loopEnd=ie.loopEnd||q.loopEnd,ne.stop=function(se){var re=se||B.currentTime;Y.emit("stop",re,K);var ae=ne.env.stop(re);ne.source.stop(ae)},ne}}function isNum$1(B){return typeof B=="number"}var PARAMS=["attack","decay","sustain","release"];function envelope(B,R,F){var D=ADSR(B),G=R.adsr||F.adsr;return PARAMS.forEach(function(U,W){G?D[U]=G[W]:D[U]=R[U]||F[U]}),D.value.value=isNum$1(R.gain)?R.gain:isNum$1(F.gain)?F.gain:1,D}function centsToRate(B){return B?Math.pow(2,B/1200):1}var player=SamplePlayer,events=function(B){return B.on=function(R,F){if(arguments.length===1&&typeof R=="function")return B.on("event",R);var D="on"+R,G=B[D];return B[D]=G?chain(G,F):F,B},B};function chain(B,R){return function(F,D,G,U){B(F,D,G,U),R(F,D,G,U)}}var REGEX$1=/^([a-gA-G])(#{1,}|b{1,}|x{1,}|)(-?\d*)\s*(.*)\s*$/;function regex$1(){return REGEX$1}var SEMITONES$1=[0,2,4,5,7,9,11];function parse$1(B,R,F){if(typeof B!="string")return null;var D=REGEX$1.exec(B);if(!D||!R&&D[4])return null;var G={letter:D[1].toUpperCase(),acc:D[2].replace(/x/g,"##")};return G.pc=G.letter+G.acc,G.step=(G.letter.charCodeAt(0)+3)%7,G.alt=G.acc[0]==="b"?-G.acc.length:G.acc.length,G.chroma=SEMITONES$1[G.step]+G.alt,D[3]&&(G.oct=+D[3],G.midi=G.chroma+12*(G.oct+1),G.freq=midiToFreq$1(G.midi,F)),R&&(G.tonicOf=D[4]),G}function midiToFreq$1(B,R){return Math.pow(2,(B-69)/12)*(R||440)}var parser$1={parse:parse$1,regex:regex$1,midiToFreq:midiToFreq$1},FNS=["letter","acc","pc","step","alt","chroma","oct","midi","freq"];FNS.forEach(function(B){parser$1[B]=function(R){var F=parse$1(R);return F&&typeof F[B]!="undefined"?F[B]:null}});var noteParser$1=parser$1,note=noteParser$1,isMidi=function(B){return B!==null&&B!==[]&&B>=0&&B<129},toMidi=function(B){return isMidi(B)?+B:note.midi(B)},notes=function(B){if(B.buffers){var R=B.opts.map,F=typeof R=="function"?R:toMidi,D=function(U){return U?F(U)||U:null};B.buffers=mapBuffers(B.buffers,D);var G=B.start;B.start=function(U,W,q){var Y=D(U),Q=Y%1;return Q&&(Y=Math.floor(Y),q=Object.assign(q||{},{cents:Math.floor(Q*100)})),G(Y,W,q)}}return B};function mapBuffers(B,R){return Object.keys(B).reduce(function(F,D){return F[R(D)]=B[D],F},{})}var isArr=Array.isArray,isObj=function(B){return B&&typeof B=="object"},OPTS={},scheduler=function(B){return B.schedule=function(R,F){var D=B.context.currentTime,G=R6?null:LETTERS.charAt(B)+accStr(R)+octStr(F)}function midi(B){if((isNum(B)||isStr(B))&&B>=0&&B<128)return+B;var R=parse(B);return R&&isDef(R.midi)?R.midi:null}function freq(B,R){var F=midi(B);return F===null?null:midiToFreq(F,R)}function letter(B){return(parse(B)||{}).letter}function acc(B){return(parse(B)||{}).acc}function pc(B){return(parse(B)||{}).pc}function step(B){return(parse(B)||{}).step}function alt(B){return(parse(B)||{}).alt}function chroma(B){return(parse(B)||{}).chroma}function oct(B){return(parse(B)||{}).oct}var noteParser=Object.freeze(Object.defineProperty({__proto__:null,regex,parse,build,midi,freq,letter,acc,pc,step,alt,chroma,oct},Symbol.toStringTag,{value:"Module"})),require$$0=getAugmentedNamespace(noteParser),parser=require$$0;function Soundfont(B,R){if(console.warn("new Soundfont() is deprected"),console.log("Please use Soundfont.instrument() instead of new Soundfont().instrument()"),!(this instanceof Soundfont))return new Soundfont(B);this.nameToUrl=R||Soundfont.nameToUrl,this.ctx=B,this.instruments={},this.promises=[]}Soundfont.prototype.onready=function(B){console.warn("deprecated API"),console.log("Please use Promise.all(Soundfont.instrument(), Soundfont.instrument()).then() instead of new Soundfont().onready()"),Promise.all(this.promises).then(B)};Soundfont.prototype.instrument=function(B,R){console.warn("new Soundfont().instrument() is deprecated."),console.log("Please use Soundfont.instrument() instead.");var F=this.ctx;if(B=B||"default",B in this.instruments)return this.instruments[B];var D={name:B,play:oscillatorPlayer(F,R)};if(this.instruments[B]=D,B!=="default"){var G=Soundfont.instrument(F,B,R).then(function(U){return D.play=U.play,D});this.promises.push(G),D.onready=function(U){console.warn("onready is deprecated. Use Soundfont.instrument().then()"),G.then(U)}}else D.onready=function(U){console.warn("onready is deprecated. Use Soundfont.instrument().then()"),U()};return D};function loadBuffers(B,R,F){return console.warn("Soundfont.loadBuffers is deprecate."),console.log("Use Soundfont.instrument(..) and get buffers properties from the result."),Soundfont.instrument(B,R,F).then(function(D){return D.buffers})}Soundfont.loadBuffers=loadBuffers;function oscillatorPlayer(B,R){return R=R||{},function(F,D,G,U){console.warn("The oscillator player is deprecated."),console.log("Starting with version 0.9.0 you will have to wait until the soundfont is loaded to play sounds.");var W=F>0&&F<129?+F:parser.midi(F),q=W?parser.midiToFreq(W,440):null;if(!!q){G=G||.2,U=U||{};var Y=U.destination||R.destination||B.destination,Q=U.vcoType||R.vcoType||"sine",Z=U.gain||R.gain||.4,K=B.createOscillator();K.type=Q,K.frequency.value=q;var J=B.createGain();return J.gain.value=Z,K.connect(J),J.connect(Y),K.start(D),G>0&&K.stop(D+G),K}}}Soundfont.noteToMidi=parser.midi;var legacy=Soundfont;(function(B){var R=lib$1.exports,F=lib.exports;function D(q,Y,Q){if(arguments.length===1)return function(ne,se){return D(q,ne,se)};var Z=Q||{},K=Z.isSoundfontURL||G,J=Z.nameToUrl||U,ie=K(Y)?Y:J(Y,Z.soundfont,Z.format);return R(q,ie,{only:Z.only||Z.notes}).then(function(ne){var se=F(q,ne,Z).connect(Z.destination?Z.destination:q.destination);return se.url=ie,se.name=Y,se})}function G(q){return/\.js(\?.*)?$/i.test(q)}function U(q,Y,Q){return Q=Q==="ogg"?Q:"mp3",Y=Y==="FluidR3_GM"?Y:"MusyngKite","https://gleitz.github.io/midi-js-soundfonts/"+Y+"/"+q+"-"+Q+".js"}var W=legacy;W.instrument=D,W.nameToUrl=U,B.exports&&(B.exports=W),typeof window!="undefined"&&(window.Soundfont=W)})(lib$2);NoteEnum.C,NoteEnum.D,NoteEnum.E,NoteEnum.F,NoteEnum.G,NoteEnum.A,NoteEnum.B;var dayjs_min={exports:{}};(function(B,R){(function(F,D){B.exports=D()})(commonjsGlobal$2,function(){var F=1e3,D=6e4,G=36e5,U="millisecond",W="second",q="minute",Y="hour",Q="day",Z="week",K="month",J="quarter",ie="year",ne="date",se="Invalid Date",re=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,ae=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,le={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_")},ce=function(Pe,ye,Te){var Le=String(Pe);return!Le||Le.length>=ye?Pe:""+Array(ye+1-Le.length).join(Te)+Pe},he={s:ce,z:function(Pe){var ye=-Pe.utcOffset(),Te=Math.abs(ye),Le=Math.floor(Te/60),we=Te%60;return(ye<=0?"+":"-")+ce(Le,2,"0")+":"+ce(we,2,"0")},m:function Pe(ye,Te){if(ye.date()1)return Pe(Me[0])}else{var ke=ye.name;me[ke]=ye,we=ke}return!Le&&we&&(de=we),we||!Le&&de},Se=function(Pe,ye){if(fe(Pe))return Pe.clone();var Te=typeof ye=="object"?ye:{};return Te.date=Pe,Te.args=arguments,new ve(Te)},Ee=he;Ee.l=ge,Ee.i=fe,Ee.w=function(Pe,ye){return Se(Pe,{locale:ye.$L,utc:ye.$u,x:ye.$x,$offset:ye.$offset})};var ve=function(){function Pe(Te){this.$L=ge(Te.locale,null,!0),this.parse(Te)}var ye=Pe.prototype;return ye.parse=function(Te){this.$d=function(Le){var we=Le.date,Ae=Le.utc;if(we===null)return new Date(NaN);if(Ee.u(we))return new Date;if(we instanceof Date)return new Date(we);if(typeof we=="string"&&!/Z$/i.test(we)){var Me=we.match(re);if(Me){var ke=Me[2]-1||0,Ne=(Me[7]||"0").substring(0,3);return Ae?new Date(Date.UTC(Me[1],ke,Me[3]||1,Me[4]||0,Me[5]||0,Me[6]||0,Ne)):new Date(Me[1],ke,Me[3]||1,Me[4]||0,Me[5]||0,Me[6]||0,Ne)}}return new Date(we)}(Te),this.$x=Te.x||{},this.init()},ye.init=function(){var Te=this.$d;this.$y=Te.getFullYear(),this.$M=Te.getMonth(),this.$D=Te.getDate(),this.$W=Te.getDay(),this.$H=Te.getHours(),this.$m=Te.getMinutes(),this.$s=Te.getSeconds(),this.$ms=Te.getMilliseconds()},ye.$utils=function(){return Ee},ye.isValid=function(){return this.$d.toString()!==se},ye.isSame=function(Te,Le){var we=Se(Te);return this.startOf(Le)<=we&&we<=this.endOf(Le)},ye.isAfter=function(Te,Le){return Se(Te)location.hash.split("?")[0].split("/").pop()||"",retain=B=>Math.ceil(B*1e6)/1e6;function formatBeatUnit(B){let R=4;switch(B){case"1024th":R=1024;break;case"512th":R=512;break;case"256th":R=256;break;case"128th":R=128;break;case"64th":R=64;break;case"32nd":R=32;break;case"16th":R=16;break;case"eighth":R=8;break;case"quarter":R=4;break;case"half":R=2;break;case"whole":R=1;break;case"breve":R=.5;break;case"long":R=.25;break;case"maxima":R=.125;break}return R}const formatLyricsEntries=B=>{var D,G;const R=((D=B.parentStaffEntry)==null?void 0:D.voiceEntries)||[],F=[];for(const U of R)if((G=U.lyricsEntries)!=null&&G.table){const W=Object.values(U.lyricsEntries.table);for(const q of W)F.push(q==null?void 0:q.value.text)}return F},speedInfo$1={"rall.":1.333333333,"poco rit.":1.333333333,"rit.":1.333333333,"molto rit.":1.333333333,"molto rall":1.333333333,lentando:1.333333333,allargando:1.333333333,morendo:1.333333333,"accel.":.8,calando:2,"poco accel.":.8},createSpeedInfo=(B,R)=>{var F,D;if(B&&speedInfo$1[(F=B.startWord)==null?void 0:F.toLocaleLowerCase()]){const G=Math.max(B.endXmlNoteIndex,3),U=[],W=R,q=R/speedInfo$1[(D=B.startWord)==null?void 0:D.toLocaleLowerCase()];for(let Y=0;Y{let R=B;const F=B.split(":");return F.length===1?R=`00:${F[0]}:00`:F.length===2&&(R=`00:${F[0]}:${F[1]}`),`1970-01-01 00:${R}0`},getAllNodes=B=>{var Q,Z,K,J,ie,ne,se,re,ae,le,ce,he,de,me,fe,ge,Se,Ee,ve,xe,Pe,ye,Te,Le,we,Ae,Me,ke,Ne,Ie,Ge,ze,Ve,Ye,et,Je,st,pt,dt,yt,Fe,_e,je,Ze;console.log(9999,B);const R=getLinkId();let F=browserInfo$1.huawei?.08:0;const D=[],G=[],U=[],{baseSpeed:W=100}=state$2,q=(De,Oe)=>{var Ke,ct,ut,ht,vt,xt;return["906"].includes(R)?((Ke=Oe.measures[0])==null?void 0:Ke.realKey)||De:["782","784"].includes(R)&&[14,16,30,32].includes((ct=Oe.firstVerticalMeasure)==null?void 0:ct.measureNumber)?((ut=D[D.length-1])==null?void 0:ut.realKey)||De:["900","901","640","641","739","740","800","801","773","774","869","872","714","715"].includes(R)&&(((ht=Oe.firstVerticalMeasure)==null?void 0:ht.measureNumber)===3||((vt=Oe.firstVerticalMeasure)==null?void 0:vt.measureNumber)===9)&&((xt=Oe.measures[0])==null?void 0:xt.realKey)||De};if(state$2.gradualTimes&&console.log("\u5408\u594F\u901F\u5EA6",state$2.gradual,state$2.gradualTimes),B!=null&&B.cursor){try{B.cursor.reset()}catch{}const De=B.cursor.iterator;let Oe=0,Xe=0,tt=[],nt=[],Ke=0,ct=0,ut=0,ht="quarter",vt,xt,gt=0,Pt=1,kt=0,Yt=0,fi=0,Jt=0,ii=!1;for(;!De.endReached;){const ui=B.cursor.cursorElement,Qt={move:!1};ui&&(Qt.move=!0,Qt.x=ui.offsetLeft,Qt.y=ui.offsetTop,Qt.w=ui.offsetWidth,Qt.h=ui.offsetHeight);const Ai=(Q=De.currentVoiceEntries)!=null&&Q[0]?[(Z=De.currentVoiceEntries)==null?void 0:Z[0]]:[],Qi=(K=De.currentVoiceEntries)==null?void 0:K[1];let In=!1;for(const cn of Ai){let _t=cn.notes[0];if(["Piano"].includes((J=state$2.activeDetail)==null?void 0:J.code)||((ie=state$2.activeDetail)==null?void 0:ie.musicSheetType)=="CONCERT"){let oi=[];try{oi=(ne=De.currentVoiceEntries)==null?void 0:ne.map($i=>$i.notes).flat().sort(($i,Ui)=>$i.Length.realValue-Ui.Length.realValue),_t=oi[0]}catch{}}if(_t){if(Xe===0&&U.push(_t.sourceMeasure),Xe===0&&state$2.isSpecialBookCategory)for(const ei of(se=_t.sourceMeasure)==null?void 0:se.TempoExpressions)(re=ei==null?void 0:ei.InstantaneousTempo)!=null&&re.beatUnit&&(ht=ei.InstantaneousTempo.beatUnit);Pt=(ae=_t.sourceMeasure)==null?void 0:ae.MeasureNumberXML,Yt==((le=_t.sourceMeasure)==null?void 0:le.MeasureNumberXML)?fi++:(Yt=(ce=_t.sourceMeasure)==null?void 0:ce.MeasureNumberXML,fi=0);let oi=_t.sourceMeasure.tempoInBPM;const{metronomeNoteIndex:$i}=De.currentMeasure;$i!==0&&$i>Xe&&(oi=((he=D[D.length-1])==null?void 0:he.speed)||100);const Ui=[(de=_t.sourceMeasure.verticalMeasureList)==null?void 0:de[0]],{realValue:Nr}=De.currentTimeStamp,{RealValue:On,Denominator:Jn}=formatDuration(De.currentMeasure.activeTimeSignature,De.currentMeasure.duration);let{wholeValue:Lr,numerator:Vn,denominator:kr,realValue:rs}=_t.length,mr=Ke,Gn=(state$2.isSpecialBookCategory?oi:W)||1,$n=(state$2.isSpecialBookCategory?oi:W)||1;xt=De.currentMeasure.speedInfo||xt,vt=((me=B.sheet.soundTempos)==null?void 0:me.get(_t.sourceMeasure.measureListIndex))||vt,(!vt||vt.length<2)&&(vt=createSpeedInfo(xt,$n));let er=0;const Nn=De.currentMeasure.measureListIndex;if(state$2.gradualTimes&&Object.keys(state$2.gradualTimes).length>0){const ei=state$2.gradual.find((Ni,mi)=>{var fn;const Li=state$2.gradual[mi+1];return Ni[0].measureIndex<=Nn&&((fn=Ni[1])==null?void 0:fn.measureIndex)>=Nn&&(!Li||(Li==null?void 0:Li[0].measureIndex)!==Nn)}),[Fi,Ei]=ei||[];if(Fi&&Ei){const Ni=Ei.measureIndex-Fi.measureIndex,mi=Fi.closedMeasureIndex==Nn&&Xe>=Fi.noteInMeasureIndex,Li=Ei.closedMeasureIndex===Nn&&Xe0)){const ei=vt[0]-(vt[1]-vt[0]),{resetXmlNoteIndex:Fi,endXmlNoteIndex:Ei}=xt,Ni=Ei;let mi=(vt[vt.length-1]-ei)/Ni;if(mi=_t.DotsXml?mi/1.5:mi,gtgt&&($n=(fe=D[Oe-1])==null?void 0:fe.speed);Gn=(state$2.isSpecialBookCategory?getTimeByBeatUnit(ht,$n,De.currentMeasure.activeTimeSignature.Denominator):W)||1;const Li=!(gtgt);gt++,Li&&(gt=0,xt=void 0,vt=void 0,nt=[])}Oe===0&&(F+=getFixTime(Gn));let hn=er||Math.min(On,rs)*formatBeatUnit(ht)*(60/Gn);const Sn=On*Jn*(60/Gn);["Piano"].includes((ge=state$2.activeDetail)==null?void 0:ge.code)&&(hn=(De.currentTimeStamp.realValue-Jt||(Vn===0?On:(Lr+Vn)/kr))*Jn*(60/Gn)),_t.isRestFlag&&hn>Sn&&(hn=Sn),_t.DotsXml&&_t.tuplet&&(console.log("\u5904\u7406\u9644\u70B9\u65F6\u957F\u4E0D\u6B63\u786E\u95EE\u9898"),hn=hn*1.5),ii&&(hn=1e-7,ii=!1,In=!0);const Aa=(Se=_t.sourceMeasure.staffLinkedExpressions)==null?void 0:Se[0];for(const ei of Aa||[])if(ei&&((Ee=ei.expressions)==null?void 0:Ee.find(Ei=>Ei.label==="\u8DF3\u8FC7\u4E0B\u4E00\u4E2A"))&&Fraction$1.Equal((ve=_t.voiceEntry)==null?void 0:ve.Timestamp,ei.Timestamp)){ii=!0;break}Jt=De.currentTimeStamp.realValue,Ke+=hn,ct+=hn;let Us=hn+mr;const ys=_t.ParentVoiceEntry.ParentVoice.Parent.SubInstruments[0].fixedKey||0,xn=(Pe=(xe=Ui[0])==null?void 0:xe.vfVoices["1"])==null?void 0:Pe.tickables[fi];if(D.length&&D[D.length-1].relativeTime===mr)continue;if(Oe===0){let ei=0;(((Te=(ye=_t.sourceMeasure.verticalMeasureList)==null?void 0:ye[0])==null?void 0:Te.staffEntries)||[]).forEach(Ei=>{var Ni,mi,Li,fn,Rn,zn;(zn=(Rn=(fn=(Li=(mi=(Ni=Ei==null?void 0:Ei.sourceStaffEntry)==null?void 0:Ni.voiceEntries)==null?void 0:mi[0])==null?void 0:Li.notes)==null?void 0:fn[0])==null?void 0:Rn.length)!=null&&zn.realValue&&(ei+=Ei.sourceStaffEntry.voiceEntries[0].notes[0].length.realValue)}),ei{const{x:Fi,y:Ei,width:Ni,height:mi,start_x:Li,end_x:fn}=(ei==null?void 0:ei.stave)||{};return ei?{stave:{x:Fi,y:Ei,width:Ni,height:mi,start_x:Li,end_x:fn},boundingBox:ei&&ei.boundingBox?{absolutePosition:{...ei.boundingBox.absolutePosition},size:{...ei.boundingBox.size}}:""}:void 0}):[],activeTimeSignature:{..._t.activeTimeSignature}},tie:_t.tie?{StartNote:{NoteToGraphicalNoteObjectId:_t.tie.StartNote.NoteToGraphicalNoteObjectId},notes:Array.isArray(_t.tie.notes)&&((Ye=_t.tie.notes)==null?void 0:Ye.map(ei=>({NoteToGraphicalNoteObjectId:ei.NoteToGraphicalNoteObjectId})))||[]}:"",slurs:Array.isArray(_t.slurs)?_t.slurs.map(ei=>({startNote:{NoteToGraphicalNoteObjectId:ei.startNote.NoteToGraphicalNoteObjectId},endNote:{NoteToGraphicalNoteObjectId:ei.endNote.NoteToGraphicalNoteObjectId}})):[],pitch:{prevFrequency:(et=_t.pitch)==null?void 0:et.prevFrequency,nextFrequency:(Je=_t.pitch)==null?void 0:Je.nextFrequency,frequency:(st=_t.pitch)==null?void 0:st.frequency},Length:{..._t.Length}},svgElelent:xn?{bbox:((pt=xn.getBoundingBox)==null?void 0:pt.call(xn))||"",top_y:xn.top_y,note_height:xn.note_height}:"",fixedKey:ys,realKey:0,duration:0,formatLyricsEntries:formatLyricsEntries(_t),stave:Ui[0]&&Ui[0].stave?{attrs:Ui[0].stave?{...Ui[0].stave.attrs}:{}}:"",firstVerticalMeasure:{measureNumber:(dt=Ui==null?void 0:Ui[0])==null?void 0:dt.measureNumber},noteLength:1,halfTone1:Array.isArray(cn.notes)?cn.notes.map(ei=>ei.halfTone+12).filter(Boolean):[],halfTone2:Qi&&Array.isArray(Qi.notes)?Qi.notes.map(ei=>ei.halfTone+12).filter(Boolean):[]};Ln.realKey=q(_t.halfTone-ys*12,Ln),Ln.duration=Ln.endtime-Ln.time;const kn=((Fe=(yt=Ui[0])==null?void 0:yt.vfVoices["1"])==null?void 0:Fe.tickables)||[],Hs=((Ze=(je=(_e=_t.sourceMeasure.verticalMeasureList)==null?void 0:_e[0])==null?void 0:je.staffEntries)==null?void 0:Ze.length)||kn.length;Ln.noteLength=Hs||1,D.push(Ln),G.push(Ln.id),tt.push({realKey:Ln.realKey,NoteToGraphicalNoteObjectId:_t.NoteToGraphicalNoteObjectId}),XeDe.relativeTime-Oe.relativeTime).map((De,Oe)=>({...De,i:Oe}))},setStepIndex=(B,R,F)=>{if(B.product){if(R||R===0)if(F&&R-F===1)B.cursor.setPosition({...state$2.times[R].cursorBox});else if(F&&R-F>0)for(;R-F>0;)F++,B.cursor.setPosition({...state$2.times[F].cursorBox});else B.cursor.setPosition({...state$2.times[R].cursorBox})}else if(R||R===0)if(F&&R-F===1)B.cursor.next();else if(F&&R-F>0)for(;R-F>0;)F++,B.cursor.next();else{let D=0;for(B.cursor.reset();D{if(R>state$2.times[state$2.times.length-1].endtime)return-1;let F=0;const D=B.filter((G,U)=>{const W=B[U-1];return(W==null?void 0:W.skipNextNote)===!1});for(let G=0;G=U.time)(!W||U.time!=W.time)&&(F=U.i);else break}if(state$2.sectionStatus&&state$2.section.length===2){const G=state$2.befireSection||state$2.section[0];F=Math.min(Math.max(F,G.i),state$2.section[1].i)}return F},getSlursNote=(B,R)=>{var G,U;const F=state$2.times.find(W=>W.NoteToGraphicalNoteObjectId==B.NoteToGraphicalNoteObjectId)||{};let D=R==="end"?(G=F.noteElement.slurs[0])==null?void 0:G.endNote:(U=F.noteElement.slurs[0])==null?void 0:U.startNote;if(!!D)return state$2.times.find(W=>W.NoteToGraphicalNoteObjectId==D.NoteToGraphicalNoteObjectId)},getNoteBySlursStart=(B,R,F)=>{let D=B,G=getSlursNote(D,F);if(!G&&R)for(const U of D.measures){const W=state$2.times.find(q=>q.NoteToGraphicalNoteObjectId==U.NoteToGraphicalNoteObjectId);W.noteElement.slurs.length&&(G=getSlursNote(W,F),D=W)}if(D&&G!==D.noteElement){for(const U of state$2.times)if(G===U.noteElement)return U}return D},getParentNote=B=>{let R;if(B){for(const F of state$2.times)if(B.NoteToGraphicalNoteObjectId===F.noteElement.NoteToGraphicalNoteObjectId)return F}return R},getNoteByMeasuresSlursStart=B=>{let R=B,F;if(B.noteElement.tie&&B.noteElement.tie.StartNote&&(F=B.noteElement.tie.StartNote),R&&F&&F!==R.noteElement){for(const D of state$2.times)if(F.NoteToGraphicalNoteObjectId===D.noteElement.NoteToGraphicalNoteObjectId)return D}return R},getActtiveNoteByTimes=B=>{var G;const R=(G=B.target)==null?void 0:G.dataset,F={};for(const U of state$2.times)U.id&&(F[U.id]=U);return F[R.id||""]},getPrevHasSourceNote=B=>{const R=Math.max(state$2.times.indexOf(B)-1,0);for(let F=R;F>=0;F--){const D=state$2.times[F];if(D!=null&&D.stave)return D}},getBoundingBoxByverticalNote=B=>{var D,G,U,W,q,Y,Q,Z,K;let R=(G=(D=B==null?void 0:B.noteElement)==null?void 0:D.sourceMeasure)==null?void 0:G.verticalMeasureList;R=!R||!R[0]?((U=B==null?void 0:B.noteElement)==null?void 0:U.isRestFlag)&&((Y=(q=(W=getPrevHasSourceNote(B))==null?void 0:W.noteElement)==null?void 0:q.sourceMeasure)==null?void 0:Y.verticalMeasureList):R;let F=0;if(R){const J=R[state.partIndex];for(let ie=0;ie0&&(F+=(Q=R[ie-1])==null?void 0:Q.stave.height),F+=se;const{x:re,y:ae,width:le,context:ce,start_x:he,end_x:de}=J==null?void 0:J.stave;return{measureIndex:((Z=B==null?void 0:B.noteElement)==null?void 0:Z.sourceMeasure.measureListIndex)||0,MeasureNumberXML:((K=B==null?void 0:B.noteElement)==null?void 0:K.sourceMeasure.MeasureNumberXML)||1,start_x:he,end_x:de,height:F,x:re,y:ae,width:le,context:ce}}}}return{measureIndex:0,height:F,start_x:0,end_x:0,x:0,y:0,width:0,context:{element:null}}},getDuration=B=>{var R;if(B){const F=(R=B==null?void 0:B.graphic)==null?void 0:R.measureList[0][0];if(F){const{duration:D,tempoInBPM:G,activeTimeSignature:U,TempoExpressions:W}=F==null?void 0:F.parentSourceMeasure;if(D){let q="quarter";for(const Y of W)q=Y.InstantaneousTempo.beatUnit||"quarter";return{...formatDuration(U),tempoInBPM:G,beatUnit:q}}}}return{}},formatDuration=(B,R)=>B,getTimeByBeatUnit=(B,R,F)=>{let D=4;switch(B){case"1024th":D=1024;break;case"512th":D=512;break;case"256th":D=256;break;case"128th":D=128;break;case"64th":D=64;break;case"32nd":D=32;break;case"16th":D=16;break;case"eighth":D=8;break;case"quarter":D=4;break;case"half":D=2;break;case"whole":D=1;break;case"breve":D=.5;break;case"long":D=.25;break;case"maxima":D=.125;break}return F/D*R},getEnvHostname=()=>location.origin.indexOf("online")>-1?"https://mstuonline.dayaedu.com":location.origin.indexOf("dev")>-1?"http://mstudev.dayaedu.com":"https://mstutest.dayaedu.com",getTvIconUrl=()=>location.origin.indexOf("online")>-1?"https://mteaonline.dayaedu.com/#/guide":location.origin.indexOf("dev")>-1?"http://mteadev.dayaedu.com/#/guide":"https://mteatest.dayaedu.com/#/guide",setPrefix=B=>B?"?"+B:"",formatXML=(B,R)=>{var W,q;if(!B)return"";const F=new DOMParser().parseFromString(B,"text/xml"),D=F.getElementsByTagName("measure");let G=-1,U=-1;for(const Y of D){G===-1&&Y.getElementsByTagName("beats").length&&(G=parseInt(Y.getElementsByTagName("beats")[0].textContent||"4")),U===-1&&Y.getElementsByTagName("beat-type").length&&(U=parseInt(Y.getElementsByTagName("beat-type")[0].textContent||"4"));const Q=parseInt(((W=Y.getElementsByTagName("divisions")[0])==null?void 0:W.textContent)||"256");if(Y.getElementsByTagName("note").length===0){const Z=(q=Y.getElementsByTagName("forward")[0])==null?void 0:q.getElementsByTagName("duration")[0];Z&&(Z.textContent="0"),Y.innerHTML=Y.innerHTML+` ${Q*G} 1 whole `}}if(R){const Y=F.querySelector("work-title");Y&&R.title&&(Y.textContent=R.title)}return new XMLSerializer().serializeToString(F)},getCustomInfo=B=>{var G,U,W;const R={showSpeed:!0,parsedXML:B,code:""},F=new DOMParser().parseFromString(B,"text/xml"),D=F.getElementsByTagName("words");for(const q of D)q&&((G=q.textContent)==null?void 0:G.trim())==="\u9690\u85CF\u901F\u5EA6"&&(R.showSpeed=!1,q.textContent=""),q&&((U=q.textContent)==null?void 0:U.trim())==="@"&&(q.textContent="segno");return R.parsedXML=new XMLSerializer().serializeToString(F),R.code=((W=F.querySelector("part-name"))==null?void 0:W.innerHTML)||"",R},setElementNoteBefore=(B,R,F)=>{let D=0;if(!!R){for(let G=0;G0){let G=0;for(let U=0;U{if(B){const R=B.toLocaleLowerCase(),F="d\\s?\\.s\\.",D="d\\.\\s?c\\.";return R==="@"||StringUtil.StringContainsSeparatedWord(R,F+" al fine",!0)||StringUtil.StringContainsSeparatedWord(R,F+" al coda",!0)||StringUtil.StringContainsSeparatedWord(R,D+" al fine",!0)||StringUtil.StringContainsSeparatedWord(R,D+" al coda",!0)||StringUtil.StringContainsSeparatedWord(R,D)||StringUtil.StringContainsSeparatedWord(R,"da\\s?capo",!0)||StringUtil.StringContainsSeparatedWord(R,F,!0)||StringUtil.StringContainsSeparatedWord(R,"dal\\s?segno",!0)||StringUtil.StringContainsSeparatedWord(R,"al\\s?coda",!0)||StringUtil.StringContainsSeparatedWord(R,"to\\s?coda",!0)||StringUtil.StringContainsSeparatedWord(R,"a (la )?coda",!0)||StringUtil.StringContainsSeparatedWord(R,"fine",!0)||StringUtil.StringContainsSeparatedWord(R,"coda",!0)||StringUtil.StringContainsSeparatedWord(R,"segno",!0)}return!1},onlyVisible=(B,R)=>{var K,J,ie,ne,se,re,ae,le;if(!B)return"";const F=new DOMParser().parseFromString(B,"text/xml"),D=((J=(K=F.getElementsByTagName("part-list"))==null?void 0:K[0])==null?void 0:J.getElementsByTagName("score-part"))||[],G=Array.from(D).map(ce=>{var he;return((he=ce.getElementsByTagName("part-name"))==null?void 0:he[0].textContent)||""}),U=F.getElementsByTagName("part")||[];if(!U.length)return"";const W=[...(ie=U[0])==null?void 0:ie.getElementsByTagName("measure")],q=[...(ne=U[0])==null?void 0:ne.getElementsByTagName("metronome")],Y=[...(se=U[0])==null?void 0:se.getElementsByTagName("words")],Q=[...(re=U[0])==null?void 0:re.getElementsByTagName("rehearsal")];((le=(ae=G[0])==null?void 0:ae.toLocaleUpperCase)==null?void 0:le.call(ae))==="COMMON"&&(R++,G.shift());const Z=D[R];if(state$2.partListNames=G,Z){const ce=Z.getAttribute("id");Array.from(U).forEach(me=>{var fe,ge,Se,Ee,ve;if(me&&me.getAttribute("id")!==ce)(fe=me.parentNode)==null||fe.removeChild(me);else if(me&&me.getAttribute("id")!=="P1"){const xe={};for(let Pe=0;Pe{var Ae;const ye=(Ae=Pe.parentElement)==null?void 0:Ae.parentElement,Te=ye==null?void 0:ye.parentElement,Le=[...(Te==null?void 0:Te.childNodes)||[]],we=ye?Le.indexOf(ye):-1;if(Te&&we>-1){const Me=W.indexOf(Te),ke=me.getElementsByTagName("measure")[Me];setElementNoteBefore(ye,Te,ke)}}),Y.forEach(Pe=>{var Te;const ye=Pe.textContent||"";if((isSpecialMark(ye)||isSpeedKeyword(ye)||isGradientWords(ye)||isRepeatWord(ye)||GRADIENT_SPEED_RESET_TAG)&&ye){const Le=(Te=Pe.parentElement)==null?void 0:Te.parentElement,we=Le==null?void 0:Le.parentElement,Ae=[...(we==null?void 0:we.childNodes)||[]],Me=Le?Ae.indexOf(Le):-1;if(Le&&we&&Me>-1){const ke=W.indexOf(we),Ne=me.getElementsByTagName("measure")[ke];setElementNoteBefore(Le,we,Ne)}}}),Q.forEach(Pe=>{var Le,we;const ye=(Le=Pe.parentElement)==null?void 0:Le.parentElement,Te=ye==null?void 0:ye.parentElement;if(Te){const Ae=W.indexOf(Te);(we=me.getElementsByTagName("measure")[Ae])==null||we.appendChild(ye.cloneNode(!0))}})}if(me&&me.getAttribute("id")===ce){const xe=me.getElementsByTagName("barline"),Pe=(Ee=xe[xe.length-1])==null?void 0:Ee.parentElement;if(((ve=Pe==null?void 0:Pe.lastElementChild)==null?void 0:ve.tagName)!=="barline"){const ye=(Pe==null?void 0:Pe.children)||[];for(let Te of ye)if(Te.tagName==="barline"){Pe==null||Pe.appendChild(Te);break}}}}),Array.from(D).forEach(me=>{var fe;me&&me.getAttribute("id")!==ce&&((fe=me.parentNode)==null||fe.removeChild(me))});const he=F.getElementsByTagName("note"),de=me=>{var Se;let fe=he[me+1];for(let Ee=me;Ee{var Se;const ge=me.getElementsByTagName("grace");ge&&ge.length&&me.appendChild((Se=de(fe))==null?void 0:Se.cloneNode(!0))})}return new XMLSerializer().serializeToString(F)},appoggianceFormate=B=>{var G,U,W,q;if(!B)return B;const R=new DOMParser().parseFromString(B,"text/xml"),F=R.querySelectorAll("grace");if(!F.length)return B;const D=Y=>Y.querySelector("grace")?D(Y==null?void 0:Y.nextElementSibling):Y;for(let Y of F){const Q=(G=Y.parentElement)==null?void 0:G.querySelector("notations");if(Q&&Q.querySelectorAll("slur").length>1){let Z=D((U=Y.parentElement)==null?void 0:U.nextElementSibling);if(Z&&Z.querySelectorAll("slur").length>0){const K=Array.from(((W=Z.querySelector("notations"))==null?void 0:W.children)||[]).map(ie=>ie.getAttribute("number")),J=Q.querySelectorAll("slur");for(let ie of J)K.includes(ie.getAttribute("number"))||(q=Z.querySelector("notations"))==null||q.appendChild(ie)}}}return new XMLSerializer().serializeToString(R)},getVoicePartInfo=()=>{const{MusicalInstrumentClassification:B,chinesePartName:R}=state$4;let F=-1;const{partListNames:D,partIndex:G}=state$2;if(D.filter(W=>(W||"").trim()!=="").length)for(const W of Object.entries(B)){const[q,Y]=W,Q=D[G],Z=Y.filter(K=>K&&Q.indexOf(K||"")>-1);if(Q&&(Z.length||Y.includes(Q)))return isNaN(+q)||(F=+q),{realPartListNames:D,subjectId:F,partListNames:Y,partName:Q,chinesePartName:R[Q]||Q}}return{subjectId:F,partListNames:[]}},classids$1=[1,30],idIsInClassIds=(B,R,F=!1)=>{if(!B)return!1;let D=!1;for(const G of B){if(G.id===R&&(F||classids$1.includes(G.id))){D=!0;break}if(G.sysMusicScoreCategoriesList&&(D=idIsInClassIds(G.sysMusicScoreCategoriesList,R,F||classids$1.includes(G.id)),D))break}return D},useMidi=(B,R)=>{const F=ref(!1);return R&&(console.log("\u66F2\u8C31\u4E3Amidi,\u4F7F\u7528app\u64AD\u653E"),F.value=!0,state$2.midiPlayIniting=!0,postMessage$1({api:"cloudDestroy"}),postMessage$1({api:"cloudDetail",content:{midi:R,denominator:getDuration(state.osmd).denominator,numerator:getDuration(state.osmd).numerator,originalSpeed:state$2.activeDetail.originalSpeed,interval:50,duration:B*1e3}},()=>{state$2.midiPlayIniting=!1,F.value=!1,R&&changeMode("music")}),state.durationNum=B),{initial:F}},getFeature=B=>B.feature?B.feature:B.lessonTrainingId?"LESSON_TRAINING":"PRACTICE",useOriginSearch=()=>{const B=location.search||location.hash.replaceAll("#/",""),R=queryString.parse(B);return R.Authorization&&sessionStorage.setItem("Authorization",R.Authorization||""),R.feature=getFeature(R),R},useReload=()=>{const B=useOriginSearch(),R=queryString.stringify({...B,_t:Date.now()},{});location.search="?"+R},useMenu=()=>{const B=ref(!0);return useEventListener("click",R=>{const F=R.path||R.composedPath(),D=F[0];if(D){const G=D.dataset.id&&D.dataset.id.indexOf("auto")>-1,U=F.find(W=>{var q;return W.tagName==="BUTTON"||((q=W.getAttribute)==null?void 0:q.call(W,"role"))==="button"});if(G||U)return}B.value=!B.value},{target:document.body.querySelector("#colexiu-detail-music-sheet")}),watch(()=>state.playState,(R,F)=>{let D=F;D==="suspend"&&(D="pause"),B.value=D!=="pause"}),[B]},box="_box_eceij_1",button$1="_button_eceij_14",iconSound$1="_iconSound_eceij_31",skepBtn="_skepBtn_eceij_37",skepItems="_skepItems_eceij_59",bottom="_bottom_eceij_78",wrap$3="_wrap_eceij_85",staff="_staff_eceij_98",des="_des_eceij_111",lampWrap="_lampWrap_eceij_116",lamp="_lamp_eceij_116",flickerAnimate="_flickerAnimate_eceij_131",flicker$1="_flicker_eceij_131";var styles$e={box,button:button$1,iconSound:iconSound$1,skepBtn,skepItems,bottom,wrap:wrap$3,staff,des,lampWrap,lamp,flickerAnimate,flicker:flicker$1},iconArrow="/orchestra-music-score/assets/icon-arrow.15f5e430.svg",iconBottom="/orchestra-music-score/assets/icon-bottom.91b813f9.png",iconRed="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAABGtJREFUSEu1ls1vVFUYxn/n494z93amH1CQ1jIEiJoYaCREIFEgwSiSxrjQGAQEU4OsNNEQwcQ/wIVBWRkWRl0oxoUi0QVI0PC1c4c1LMB0WhqEKDQt7czce+4x585MoRSIC5nNTGZu3t95nud93zOC+7wuXbq0RCm1VQixSQjxuHNugX9cCHHNOTfknDtprf1m2bJlw/cqI+72w9jYWDlN0w+BVwB1v0MAFvhWa72/t7e3cuezcwCVSuVVIcQh51yp9bAJQ8IwRKkGy1pLvV6nVq/P1BNCTDjn9pTL5cO3Q2YBRkdH382y7CPvgn+oVCwST0+RnTtLeuECWXUapwLkvPmoFSvQ/f1MKcXE5GSrppNS7u3r6zvQ+mIG4E8OfOWL+5POLxiyzz8jOXmCJIBUK5I4QjqNkAZZbCcICpgNG9DPbuLviYlcGeCA7S0lOcB7bq09723xxbvThPp7e7H/XGaqU+GcAqdJozakVSANdl4nZsHDxIuX4JQiHtjCtep0DvF2KaVW+ExyQKVS+RrwClgYxyS7B0luXiYtQSoNwhfNNKmJEZnOAaq/n3mvD3q5OGupnj6HGdjM1evXW+4cLpfL24RvRa31Rd8t3nPzycfUf/mBrNvhrMYSIFLlSdgwanwWIYVdO4jWr2/EFWhqv55FdXVRW72ylYlN03S5GB4e3ieE8C3JosxSffEF7HKHQ+FSSeZ8AB6gsIFXo3OA3rCe0q7X/FDgpGTiu58IpmpEb27nyo0buQrn3H5RqVSOAc/5Vmw/eoT0y4OkvSIv6JIGQCSyAdAGckBA2tlBYfWT6EcfofbXVez1CcJCRDywifHO9lYLHxcjIyMjzrm+3J7392H/PEVWUpDIBiDTOcBZhSPIs3AiIIuLCGUgjLCLe1AmQreVMGv7qa19IrdJCDHqFVQB09nRgRocJKudxxYk1BsW+cIkKg86cxpckANssYTQBYiKRHt2IIKQ+pnfMI8txT7zFDfGx71LtdmANwbJqr83AE0FeEBd4t+d0zjCBqDUDtogy0vo+OAdhJBM/niCsLsLu3HdLcBci06TlQQuadrkAbkSf3qN8wrQZG2lHEAYE7y0BRkWyIYuYtbMtWgm5I6jR0i+OIj1ITcV5IXTpgKCXAWE2KLPoAAmIlvcgzRxHnLh5ecZn991K+R7tqlrds5MF0ky73nmF16Yd5HPQJgYW+5BF9ooGEO0e8fsNp07aAdIfv4eu8hP6B1z4D1vdpFt70DIEBE2FBihiZ9eR3VNo4P80s0Hbe6qiEh27iSdHsO2SzIRzliUhjGyOclegWwCZM9CooUPEe7cytXxxpABjVVx12WX1Km//Rbp+BWq3WEear6LCs1dpAy2qwslQow2hMuXEm/beu9l11Qxe10bQ3boU5Ljx0gLfg8FJG0xwmkkIbKtiA4jzMaNqIHN91/XLU13vXAmJ8nOnMIO/UE2NQUqQCzoRq3sR69axc0w+G8XTgvyQK/MFuSBXvq3X9j/x9+WfwGl6lzvWSMVSAAAAABJRU5ErkJggg==",iconGreen="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAABAZJREFUSEu1lk1oHGUYx3/vzOzmi91s6qZt4jIJqRpsS2lj0IMHxYMeqigIYlqkByuC3kRIQHrqpYp6UxAVRKgRoQehl3jwJtHSlhZLxTYJ7mabahNMatr9yO7MI887s0nWfOjBLiyzzLzz/N7///l417DNZ2Zmps913ZeNMU8ZY/aKSLcuN8bMi8hVEfk+CIKvBwYG8luFMZs9mJub8+v1+ingJcDdbhNAAHzjed5Yb29v4Z9rNwAKhcKIMeYTEUnp4pqEnFu+zaW7y/y+UrXv7062cLAjxaOpThLGsfeMMcsi8rrv++PrIU2AYrH4VhiG7+v6ahjy+R9FPlu4wYITgBhMwkNqAnXAM2RD4Xh3L6/uytHiWJA4jvN2Lpf7sAFZBejOgdMa/LdKmdemrvCrW8a0u1AVqIK4HlQUYKA1CTUgrDHY7vHpnr30t7ZZCHC0ocQC1PMgCK6oLRr8xalLzKdr2IfiRkFXAeEq4IFkB/vSGSbv3EYqS5wZPGAhapfruvs1JzZGoVD4ChhRW5795SLXdpSw0dXy0IGywIpqcxFVUzcM7+zmi6FhPGNYlJDnz52nK1jm7MOHGnaN+75/xGgpep43rdXy8c0C75ZnIA1U4q/aoQoUooBypOCdoQO80t8fWe0YRq9e59u5PGO5nbzR4+vdoF6v7zH5fH7UGHNKq+Wxn3/kT7+K2KBx4Fp8rQiiaqwCONzn88HwIRtfl78weZGpUoVs611+2j9sq0tExkyhUJgAnv7hr0VG5i/jZAWxQYl2rb9LYlVIaCLbNLktCQ739HIwex8TS4ucX1oGx4X2FcZzfTye7lL2d2Z2dnZWRHIf3SzwXjiN6QDRIA2A/a2AKLCsxFDPjeBiINMeXbUnuxxGd2d4s8fXZBdVgb7aciJ/nS/bi5iEBjHR7sua6Gj39msBsYJEAgKDa1xOPvGIVgAnLl8jSDkcyyQ52fegKqg2AzqKGI/IIguIytNaVJVImTaZPk96FtCXTjPx3JNWwTOTF8hLlWMpbw2wqUW6S919AxBfrT0NBV4EQByODg9awOnpG9C50aK1JN+Kk9wA2AZbq6Imi9YByLRZkJYxOwLG/f61JG8s0xVEbbBJjv1WBQoLnajRbBUlIwU4UZL16jhkk3eay/RfG02Dxcle7QO9l0xE+dDeUICWsFNlzN/V3GgbR8UFrmVKUYc2BpvtakG0DO29WIFOVrWmUwEBg611zu4bah4VWw27hbRuM96hAtQax0MUoNaoRdrCOrTaPLrDEmce2mLYxSo2jmtTisd1PPhcBYRRmdpxrXmpMZhKbj+uG4fDpgfOreLqgYPrRmUaRk2bDeF4z/3/7cBpQO7pkdmA3NNDf/2B/X/8bfkbLfmH7810f6kAAAAASUVORK5CYII=",iconWhite="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAYCAYAAAAPtVbGAAAAAXNSR0IArs4c6QAAA5xJREFUSEu1lr9uG0cQxr+5I++OPMkULTuNcIAaIbADOAHSJoXhwlWqwHa6AHoIdzEEd4YfIGXKFO4MA0bgB7A7AwaSIta/I+mjREuiFDEUySNvg2+jIY4UCbnxAgSWu7fz25n5Zu4El4xGo/F1lmX3AXwvIl8aY6oikgJoGmPeOY7zhzHmWRRFR/NMybyNJEm+HY1GT40xty+7CIAugF/DMHy8vLz8z/TzFyDGGKnVao9E5BcALg+ICHzfh1cswnEca2M4HKI/GCBN6dR41LMse7C6uvo6vzgBIaBer/8G4Gc+RIOLi4souC7+7XQwSFNkxqBYLMJ1XZR8H0XPQ6fTQffsTO2eiciPURS91IUJSBzHT0TkITc9z8PVpSXst1ro9fv2v3rFeZZl9j+9K5dKdn7YbsMYw2nXdd3vVlZW3tozSms0GneyLHvFNYYmLJXwodm0xnjzeRA+y3DS22KhgI+Hhwr6u9/v31pbW+tbyMbGhrO+vv4OwFeu46BSqWBnd9caZ8gIyEMKhYKFB0GAcrls7zkajWyeYAyO2m31+mEURU8tJI7jH0TkOedXq1UcHBwgHQ6tAcaeRgnUwTUapRfc42CY+gxroYD2yYmdG2P2tre3Iwup1Wq/A/iJh5cqFbzf3MTCwgJKpdIYQGMMC40phGCF07Ner2c9d0Vs2M7HXQup1+v7xpgvFsIQp6enOD45sZAwDMeQvCeE0RPNF8GUMtc5ykGAvVbL7ovIE2k2m9fTNG1xc7latWqiTPOe0AveUD1RCEF5oNYQFdc+PrYhE5EXEsfxTRH5k5Dr165hN45tOBSiIeGaQjTRhOicz9EjrlFlp6ydbpdn3kiSJDeGw+FfCtnc2rIhYhEy8SpfQnhTGuKPSlIIz1IEXGde6MkEZDpce/v7YDkxH0w8IYTO80TDpaFiHi6EazrxZ72ebRP0RNVFSF6q0zmx9XHe47gXeN5k4i9I+MoVvN/amlAXCzEvYd6aodLE8/YMlZWv686W8HQxHh4d2ZhP14kWHQ3RMCE0rBCuB74/VtZEMU63lWq1iiRJ4Pm+vZnmRdWlbYXG82IggGsz2wpvON0gtaB421m967zb2ktwTgATPrdBav3PavUMHcVAEI3Rm3yrZ01Q6ibLLm/15/Ge+dLyPc8W1mAw+L+VeB4cqigIrCDYij75paWgz/r6HfdygIn/fB8SeRDnOzs737iuey//ScTvCBFJPvWT6D9cJW2Lx33GagAAAABJRU5ErkJggg==",iconSound="/orchestra-music-score/assets/icon-sound.12d833d8.png",score=B=>B==12||B==4?{xml:` Click to add Title Click to add Composer Click to add Copyright 2021-08-27 SmartMusic 6.5000 40 1827.3 1292 61.2 61.5 379.6 61.3 1.0000 1.0000 5.0000 1.0000 1.0000 3.4199 1.0000 60 50 Music Music wind.flutes.flute Finale Default Bank 60 0 40 system 3840 0 major G 2 C 5 15360 1 whole `,text:""}:B==5||B==6?{xml:` Click to add Title Click to add Composer Click to add Copyright 2021-08-27 SmartMusic 6.5000 40 1827.4 1292.1 61.3 61.5 355.6 61.4 1.0000 1.0000 5.0000 1.0000 1.0000 3.4199 1.0000 60 50 Music Music wind.flutes.flute Finale Default Bank 60 0 40 system 3840 1 major G 2 C 5 15360 1 whole `,text:"C"}:B==13?{xml:` Click to add Title Click to add Composer Click to add Copyright 2021-08-27 SmartMusic 6.5000 40 1827.4 1292.1 61.3 61.5 355.6 61.4 1.0000 1.0000 5.0000 1.0000 1.0000 3.4199 1.0000 60 50 Music Music wind.flutes.flute Finale Default Bank 60 0 40 system 3840 -1 major G 2 F 4 15360 1 whole `,text:"F"}:B==14||B==15?{xml:` Click to add Title Click to add Composer Click to add Copyright 2021-08-27 SmartMusic 6.5000 40 1827.4 1292.1 61.3 61.5 355.6 61.4 1.0000 1.0000 5.0000 1.0000 1.0000 3.4199 1.0000 60 50 Music Music wind.flutes.flute Finale Default Bank 60 0 40 system 3840 -2 major F 4 B -1 2 15360 1 whole `,text:"S"}:B==120?{xml:` Click to add Title Click to add Composer Click to add Copyright 2021-08-27 SmartMusic 6.5000 40 1827.3 1292 61.2 61.5 379.6 61.3 1.0000 1.0000 5.0000 1.0000 1.0000 3.4199 1.0000 60 50 Music Music wind.flutes.flute Finale Default Bank 60 0 40 system 3840 0 major G 2 A 5 15360 1 whole `,text:"A"}:{xml:` Click to add Title Click to add Composer Click to add Copyright 2021-08-27 SmartMusic 6.5000 40 1827.4 1292.1 61.3 61.5 355.6 61.4 1.0000 1.0000 5.0000 1.0000 1.0000 3.4199 1.0000 60 50 Music Music wind.flutes.flute Finale Default Bank 60 0 40 system 3840 -2 major G 2 B -1 4 15360 1 whole `,text:"Bb"};const storeKeys={lastCheckTime:"lastCheckTime"};var contentSound="/orchestra-music-score/assets/sound.a2da33e9.svg";const checkStatus=ref("checking"),checkFrequency=ref(417.19244620530856),dotIcons=ref([iconWhite,iconWhite,iconWhite]),trend=ref(-1),time=ref(0),useStart=()=>{postMessage$1({api:"proxyServiceMessage",content:{header:{status:200,commond:"xmlInfo",type:"SOUND_CHECK"},body:{frequency:checkFrequency.value}}}),postMessage$1({api:"startSoundCheck"},()=>{checkStatus.value="checking"}),localStorage.setItem(storeKeys.lastCheckTime,""+new Date().valueOf())},useEnd=()=>{postMessage$1({api:"endSoundCheck"})},useLister=()=>{const B=R=>{var D;const F=(D=R==null?void 0:R.content)==null?void 0:D.body.frequency;console.log("frequency",F,checkFrequency.value),trend.value=Math.abs(F-checkFrequency.value)<=5?0:F-checkFrequency.value>0?1:-1,dotIcons.value=[iconWhite,iconWhite,iconWhite],dotIcons.value[trend.value+1]=trend.value===0?iconGreen:iconRed,trend.value!==0&&(time.value=new Date().getTime()),new Date().getTime()-time.value>3e3&&(useEnd(),checkStatus.value="success",dotIcons.value=[iconGreen,iconGreen,iconGreen],setTimeout(()=>{soundEffectShow.value=!1},1e3))};onMounted(()=>{useStart(),listenerMessage("sendResult",B)}),onBeforeUnmount(()=>{removeListenerMessage("sendResult",B)})},soundEffectShow=ref(!1);var SoundEffect=defineComponent({name:"ColexiuSoundEffect",setup(){const B=ref(!1),R=F=>{F.text==="\u5173\u95ED\u6821\u97F3"&&(state$3.sett.tuning=!1),soundEffectShow.value=!1};return useLister(),watch(soundEffectShow,()=>{soundEffectShow.value===!1&&useEnd()}),()=>{const F=score(2);return F!=null&&F.xml,createVNode("div",{class:styles$e.box},[createVNode("img",{class:styles$e.iconSound,src:iconSound},null),createVNode("div",{class:styles$e.wrap},[createVNode("div",{class:styles$e.staff},[createVNode("img",{src:contentSound},null)]),createVNode("div",{class:styles$e.des},[createTextVNode("\u8BF7\u6F14\u594F "),createVNode("span",{style:{color:"var(--primary-color)"}},[createTextVNode("Ab")]),createTextVNode("\u76F4\u5230\u7EFF\u706F\u5168\u90E8\u4EAE\u8D77")]),createVNode("div",{class:styles$e.lampWrap},[dotIcons.value.map((D,G)=>createVNode("div",{class:styles$e.lamp,key:G},[createVNode("img",{class:[checkStatus.value==="checking"&&styles$e.flickerAnimate],src:D},null)]))])]),createVNode("img",{class:styles$e.bottom,src:iconBottom},null),createVNode(Button,{class:styles$e.button,icon:iconBack,onClick:()=>soundEffectShow.value=!1},null),createVNode(Popover,{class:styles$e.skepItems,show:B.value,"onUpdate:show":D=>B.value=D,actions:[{text:"\u8DF3\u8FC7\u672C\u6B21"},{text:"\u5173\u95ED\u6821\u97F3"}],onSelect:D=>R(D)},{reference:()=>createVNode(Button,{class:styles$e.skepBtn,icon:iconArrow,iconPosition:"right"},{default:()=>[createTextVNode("\u8DF3\u8FC7")]})})])}}});const soundNeedShow=()=>{state.evaluatingStatus&&state$3.sett.tuning&&(soundEffectShow.value=!0)},handleCheckEvaluatStatus=()=>{soundNeedShow(),postMessage$1({api:"isWiredHeadsetOn"},B=>{permissionPopup.active="earphone",permissionPopup.show=!(B!=null&&B.content.checkIsWired)})},useWiredHeadsetCheck=()=>{const B=ref(!1);return watch([()=>state.evaluatingStatus],()=>{state$3.sett.fingering}),watch([()=>state.evaluatingStatus,()=>permissionPopup.show,()=>soundEffectShow.value],([R,F,D])=>{}),[B]},gotoMemberCenter=()=>{const R=getDevelopment()?"https://ponline.colexiu.com/orchestra-student/#/memberCenter":`${location.origin}/orchestra-student/#/memberCenter`;postMessage$1({api:"back"}),postMessage$1({api:"openWebView",content:{url:R,orientation:1}})},useFee=async()=>{if(browser().isStudent){let R="";try{const F=await request.get("/student/member");R=F==null?void 0:F.data}catch{}if(!R)return;if(!R.membershipDays&&R.purchaseMemberRecord){Dialog.alert({title:"\u6E29\u99A8\u63D0\u793A",message:"\u60A8\u7684\u56E2\u7EC3\u5B9D\u6682\u672A\u6FC0\u6D3B\uFF0C\u8BF7\u6FC0\u6D3B\u540E\u4F7F\u7528",className:"noVip"}).then(F=>{gotoMemberCenter()});return}if(!R.vipMember){Dialog.alert({title:"\u6E29\u99A8\u63D0\u793A",message:"\u60A8\u6682\u672A\u5F00\u901A\u56E2\u7EC3\u5B9D\uFF0C\u8BF7\u5F00\u901A\u540E\u4F7F\u7528",className:"noVip"}).then(()=>{gotoMemberCenter()});return}}},useCamera=()=>{watch(()=>state$3.sett.camera,B=>{postMessage$1(B?{api:"openCamera"}:{api:"closeCamera"})},{immediate:!0})};useOriginSearch();const browserInfo=browser(),useClientType=()=>{const B=useOriginSearch();if(B.client)return B.client;let R=location.pathname.indexOf("/orchestra-student/")===0||browserInfo.isStudent,F=location.pathname.indexOf("/orchestra-teacher/")===0||browserInfo.isTeacher;return R?"student":F?"teacher":"web"},typeById={2:{name:"flute",direction:"transverse"},4:{name:"clarinet",direction:"vertical",width:"1rem",paddingLeft:"0rem"},5:{name:"saxophone",direction:"vertical",width:"2rem"},6:{name:"saxophone",direction:"vertical",width:"2rem"},12:{name:"trumpet",direction:"transverse",height:"80px"},13:{name:"horn",direction:"vertical",width:"3.5rem"},14:{name:"trombone",direction:"transverse",height:"80px"},15:{name:"up-bass-horn",direction:"vertical",width:"3rem"},17:{name:"tuba",direction:"vertical",width:"3rem"},120:{name:"piccolo",direction:"vertical",width:"1rem"},136:{name:"hulusi-flute",direction:"vertical",width:"1.2rem"},135:{name:"pan-flute",direction:"vertical",width:"2.5rem"},134:{name:"ocarina",direction:"vertical",width:"2rem"},137:{name:"melodica",direction:"transverse"},130:{name:"ukulele",direction:"vertical",width:"2rem"},140:{name:"mouthorgan",direction:"transverse",height:"80px"},150:{name:"piano",direction:"transverse",height:"80px"}},relationships={flute17:{59:[27,26,25,15,24,22,17,20],60:[1,2,3,5,7,9,11,12,13,15],1060:[1,2,3,5,7,9,1011,12,13,15],61:[1,2,3,5,7,9,13,15],1061:[1,2,3,5,7,9,1013,15],62:[1,2,3,5,7,9,15],1062:[1,2,3,5,7,9,1010,15],63:[1,2,3,5,7,9,10,15],1063:[1,2,3,5,7,1009,10,15],64:[1,2,3,5,7,10,15],1064:[1,2,3,5,1007,10,15],65:[1,2,3,5,10,15],1065:[1,2,3,1005,9,10,15],66:[1,2,3,9,10,15],1066:[1,2,3,1009,10,15],67:[1,2,3,10,15],1067:[1,2,3,1004,10,15],68:[1,2,3,4,10,15],1068:[[1,2,1003,4,10,15],[1,2,1003,1004,10,15]],69:[1,2,10,15],1069:[1,1002,10,14],70:[[1,5,10,15],[1,10,14]],1070:[1,1005,10,15],71:[1,10,15],1071:[1,10,1015],72:[1,10],1072:[1001,10],73:[13],1073:[1006,13],74:[2,3,5,7,9,15],1074:[2,3,5,7,9,1013,15],75:[2,3,5,7,9,10,15],1075:[2,3,5,7,9,10,15],76:[1,2,3,5,7,10,15],1076:[1,2,3,5,1007,10,15],77:[1,2,3,5,10,15],1077:[1,2,3,1005,9,10,15],78:[1,2,3,9,10,15],1078:[1,2,3,1009,10,15],79:[1,2,3,10,15],1079:[1,2,3,4,10,15],80:[1,2,3,4,10,15],1080:[1,2,1003,4,10,15],81:[1,2,10,15],1081:[1,1002,10,15],82:[[1,5,10],[1,10,14]],1082:[1,1005,10,15],83:[1,10,15],1083:[1,10,1015],84:[1,10],1084:[1001,10],85:[10],1085:[1006,10],86:[2,3,10,15],1086:[2,3,1008,10,15],87:[1,2,3,4,5,7,8,10,15],1087:[1,2,1003,4,5,7,8,10,15],88:[1,2,5,7,10,15],1088:[1,1002,5,7,10,15],89:[1,3,5,10,15],1089:[1,3,1005,9,10,15],90:[1,3,9,10,15],1090:[1,3,9,10,1015],91:[1,2,3,10],1091:[1,2,3,1006,10],92:[2,3,4,10],1092:[2,3,4,1006,10],93:[2,5,10,15],1093:[1002,5,10,15],94:[5,6,15],1094:[1,3,1005,1006,8,15],95:[1,3,8,15],1095:[1,3,8,10,1015],96:[1,2,3,4,5,11],1096:[1001,2,3,4,5,11]},flute:{59:[27,26,25,15,24,22,17,20],60:[27,26,25,15,24,22,17,20],61:[27,26,25,15,24,22,17,21],62:[27,26,25,15,24,22,17],63:[27,26,25,15,24,22,17,19],64:[27,26,25,15,24,22,19],65:[27,26,25,15,24,19],66:[27,26,25,15,17,19],67:[27,26,25,15,19],68:[27,26,25,15,18,19],69:[27,26,15,19],70:[[27,14,19],[27,24,15,19]],71:[27,15,19],72:[27,19],73:[19],74:[26,25,24,22,17,15],75:[26,25,24,22,17,19,15],76:[27,26,25,15,24,22,19],77:[27,26,25,15,24,19],78:[27,26,25,15,17,19],79:[27,26,25,15,19],80:[27,26,25,15,18,19],81:[27,26,15,19],82:[[27,14,19],[27,24,15,19]],83:[27,15,19],84:[27,19],85:[19],86:[26,25,15,19],87:[27,26,25,15,24,22,17,18,19],88:[27,26,15,24,22,19],89:[27,25,24,15,19],90:[27,25,17,15,19],91:[27,26,25,19],92:[26,25,18,19],93:[26,24,15,19],94:[23,24,15,19],95:[27,25,15,16],96:[27,26,25,18,24,19]},clarinet:{52:[[3,4,6,8,9,11,14,18,20],[3,4,6,8,9,11,14,20]],53:[[3,4,6,8,9,11,12,20],[3,4,6,8,9,11,18,20]],54:[[3,4,6,8,9,11,13,18,20],[3,4,6,8,9,11,13,20],[3,4,6,8,9,11,15]],55:[3,4,6,8,9,11,20],56:[3,4,6,8,9,11,16,20],57:[3,4,6,8,9,20],58:[3,4,6,8,20],59:[[3,4,6,9,20],[3,4,6,8,10,20]],60:[3,4,6,20],61:[3,4,6,7,20],62:[3,4,20],63:[[3,4,20,24],[3,4,5,20],[3,8,20]],64:[3,20],65:[20],66:[[3],[20,23,24]],67:[],68:[2],69:[1],70:[1,19],71:[[3,4,6,8,9,11,14,18,19,20],[3,4,6,8,9,11,14,19,20]],72:[[3,4,6,8,9,11,12,19,20],[3,4,6,8,9,11,18,19,20]],73:[[3,4,6,8,9,11,13,19,20],[3,4,6,8,9,11,13,18,19,20],[3,4,6,8,9,11,15,19,20]],74:[3,4,6,8,9,11,19,20],75:[3,4,6,8,9,11,16,19,20],76:[3,4,6,8,9,19,20],77:[3,4,6,8,19,20],78:[[3,4,6,9,19,20],[3,4,6,8,10,19,20]],79:[3,4,6,19,20],80:[3,4,6,7,19,20],81:[3,4,19,20],82:[[3,4,19,20,24],[3,4,5,19,20],[3,4,8,19,20]],83:[3,19,20],84:[19,20],85:[4,6,8,9,19,20],86:[4,6,8,16,19,20],87:[[4,6,8,10,16,19,20],[4,6,9,16,19,20]],88:[4,6,16,19,20],89:[4,6,7,16,19,20]},trumpet:{0:[1,2,3],54:[4,5,6],55:[4,2,6],56:[1,5,6],57:[4,5,3],58:[4,2,3],59:[1,5,3],60:[1,2,3],61:[4,5,6],62:[4,2,6],63:[1,5,6],64:[4,5,3],65:[4,2,3],66:[1,5,3],67:[1,2,3],68:[1,5,6],69:[4,5,3],70:[4,2,3],71:[1,5,3],72:[1,2,3],73:[4,5,3],74:[4,2,3],75:[1,5,3],76:[1,2,3],77:[4,2,3],78:[1,4,3],79:[1,2,3],80:[1,5,6],81:[4,5,3],82:[4,2,3],83:[1,5,3],84:[1,2,3]},horn:{53:[1],54:[2],55:[],56:[2,3],57:[1,2],58:[1],59:[2],60:[],61:[1,2],62:[1],63:[2],64:[],65:[1],66:[2],67:[],68:[0,2,3],69:[0,1,2],70:[0,1],71:[0,2],72:[0],73:[0,2,3],74:[0,1,2],75:[0,1],76:[0,2],77:[0],78:[0,2],79:[0],80:[0,2,3],81:[0,1,2],82:[0,1],83:[0,2],84:[0]},upBassHorn:{0:[1,2,3],40:[4,5,6],41:[4,2,6],42:[1,5,6],43:[4,5,3],44:[4,2,3],45:[1,5,3],46:[1,2,3],47:[4,5,6],48:[4,2,6],49:[1,5,6],50:[4,5,3],51:[4,2,3],52:[1,5,3],53:[1,2,3],54:[1,5,6],55:[4,5,3],56:[4,2,3],57:[1,5,3],58:[1,2,3],59:[4,5,3],60:[4,2,3],61:[1,5,3],62:[1,2,3],63:[4,2,3],64:[1,5,3],65:[1,2,3],66:[1,5,6],67:[4,5,3],68:[4,2,3],69:[1,5,3],70:[1,2,3]},trombone:{0:[1],40:[22],41:[11],42:[5],43:[4],44:[3],45:[2],46:[1],47:[22],48:[11],49:[5],50:[4],51:[3],52:[2],53:[1],54:[5],55:[4],56:[3],57:[2],58:[1],59:[4],60:[3],61:[2],62:[1],63:[3],64:[2],65:[1],66:[5],67:[4],68:[3],69:[2],70:[1]},saxophone:{58:[2,4,5,13,17,18,19,23],59:[2,4,5,11,17,18,19,23],60:[2,4,5,17,18,19,23],61:[2,4,5,12,17,18,19,23],62:[2,4,5,17,18,19],63:[2,4,5,17,18,19,22],64:[2,4,5,17,18],65:[2,4,5,17],66:[[2,4,5,18],[2,4,5,17,21]],67:[2,4,5],68:[2,4,5,10],69:[2,4],70:[[2,4,16],[2,17],[2,3]],71:[2],72:[[4],[2,15]],73:[],74:[2,4,5,6,17,18,19],75:[2,4,5,6,17,18,19,22],76:[2,4,5,6,17,18],77:[2,4,5,6,17],78:[[2,4,5,6,18],[2,4,5,6,17,21]],79:[2,4,5,6],80:[2,4,5,6,10],81:[2,4,6],82:[[2,4,6,16],[2,6,17],[2,3,6]],83:[2,6],84:[[4,6],[2,6,15]],85:[6],86:[6,9],87:[6,7,8],88:[6,8,9,14],89:[[6,7,8,9,14],[1,4,6]]},tuba:{0:[1,2,3],28:[4,5,6],29:[4,2,6],30:[1,5,6],31:[4,5,3],32:[4,2,3],33:[1,5,3],34:[1,2,3],35:[4,5,6],36:[4,2,6],37:[1,5,6],38:[4,5,3],39:[4,2,3],40:[1,5,3],41:[1,2,3],42:[1,5,6],43:[4,5,3],44:[4,2,3],45:[1,5,3],46:[1,2,3],47:[4,5,3],48:[4,2,3],49:[1,5,3],50:[1,2,3],51:[4,2,3],52:[1,5,3],53:[1,2,3],54:[1,5,6],55:[4,5,3],56:[4,2,3],57:[1,5,3],58:[1,2,3]},piccolo:{72:[11,2,33,4,5,6,7,8],73:[11,2,33,4,5,6,7,88],74:[11,2,33,4,5,6,7],75:[11,2,33,4,5,6,77],76:[11,2,33,4,5,6],77:[11,2,33,4,5,7,8],78:[11,2,33,4,6,7],79:[11,2,33,4],80:[11,2,33,5,6,77],81:[11,2,33],82:[[11,2,4,5],[11,3,4,5]],83:[[11,2],[11,33,4]],84:[11,33],85:[[2,33],[11]],86:[33],87:[33,4,5,6,7],88:[1,2,33,4,5,6],89:[1,2,33,4,5,7],90:[1,2,33,4,6],91:[1,2,33,4],92:[1,2,33,5],93:[1,2,33],94:[1,2,33,5,6,7],95:[1,2,33,5,6],96:[1,2,5,6],97:[1,2,4,5,7,8],98:[1,2,4]},smallDrum:{0:["active","active-left","active-right"],64:["left","right"]},hulusi:{59:[7,6,5,4,3,2,1],60:[7,6,5,4,3,2],61:[7,6,5,4,3],62:[7,6,5,4],63:[7,6,5],64:[7,6],65:[[7,5,4,3,2,1],[7,5,4,3,2],[7,66]],66:[7]},pan:{54:[21],56:[20],58:[19],60:[18],62:[17],64:[16],66:[15],68:[14],70:[13],72:[12],74:[11],76:[10],78:[9],80:[8],82:[7],84:[6],86:[5],88:[4],90:[3],92:[2],94:[1]},ocarina:{57:[1,2,3,4,5,6,7,8,9,10,11,12],58:[1,2,3,4,5,6,8,9,10,11,12],59:[1,2,4,5,6,8,9,10,11,12],60:[1,2,4,5,6,11,12],61:[1,2,4,5,6,7,8,9,11,12],62:[1,2,4,5,6,8,9,11,12],63:[1,2,4,5,6,8,10,11,12],64:[1,2,4,5,6,8,11,12],65:[1,2,4,5,6,11,12],66:[1,2,4,6,9,11,12],67:[1,2,4,6,11,12],68:[1,2,6,9,11,12],69:[1,2,6,11,12],70:[1,2,6,9,11,12],71:[1,6,9,11,12],72:[6,11,12],73:[2,6,12],74:[6,12],75:[2,6],76:[6],77:[]},melodica:{56:[1],57:[2],58:[3],59:[4],60:[5],61:[6],62:[7],63:[8],64:[9],65:[10],66:[11],67:[12],68:[13],69:[14],70:[15],71:[16],72:[17],73:[18],74:[19],75:[20],76:[21],77:[22],78:[23],79:[24],80:[25],81:[26],82:[27],83:[28],84:[29],85:[30],86:[31],87:[32]},ukulele:{60:[3,300],61:[3,301],62:[3,302],63:[3,303],64:[2,200],65:[2,201],66:[2,202],67:[2,203],68:[2,204],69:[1,100],70:[1,101],71:[1,102],72:[1,103],73:[1,104],74:[1,105],75:[1,106],76:[1,107],77:[1,108],78:[1,109],79:[1,110],80:[1,111],81:[1,112],82:[1,113],83:[1,114],84:[1,115],85:[1,116],86:[1,117]},mouthorgan:{53:[101],54:[1],55:[102],56:[2],57:[103],58:[3],59:[104],60:[105],61:[4],62:[106],63:[5],64:[107],65:[108],66:[6],67:[109],68:[7],69:[110],70:[8],71:[111],72:[112],73:[9],74:[113],75:[10],76:[114],77:[115],78:[11],79:[116],80:[12],81:[117],82:[13],83:[118],84:[119],85:[14],86:[120],87:[15],88:[121],89:[122]},piano:{21:[101],22:[1],23:[102],24:[103],25:[2],26:[104],27:[3],28:[105],29:[106],30:[4],31:[107],32:[5],33:[108],34:[6],35:[109],36:[110],37:[7],38:[111],39:[8],40:[112],41:[113],42:[9],43:[114],44:[10],45:[115],46:[11],47:[116],48:[117],49:[12],50:[118],51:[13],52:[119],53:[120],54:[14],55:[121],56:[15],57:[122],58:[16],59:[123],60:[124],61:[17],62:[125],63:[18],64:[126],65:[127],66:[19],67:[128],68:[20],69:[129],70:[21],71:[130],72:[131],73:[22],74:[132],75:[23],76:[133],77:[134],78:[24],79:[135],80:[25],81:[136],82:[26],83:[137],84:[138],85:[27],86:[139],87:[28],88:[140],89:[141],90:[29],91:[142],92:[30],93:[143],94:[31],95:[144],96:[145],97:[32],98:[146],99:[33],100:[147],101:[148],102:[34],103:[149],104:[35],105:[150],106:[36],107:[151],108:[152]}};var getTypes=async B=>{switch(B){case"flute":return{json:(await __vitePreload(()=>import("./index.9827614a.js"),[])).default,relationship:relationships.flute,height:"60px",styles:{}};case"clarinet":return{json:(await __vitePreload(()=>import("./index.81bcab95.js"),[])).default,relationship:relationships.clarinet,styles:{marginLeft:".4rem",marginRight:".7rem"}};case"trumpet":return{json:(await __vitePreload(()=>import("./index.562e6907.js"),[])).default,relationship:relationships.trumpet};case"horn":return{json:(await __vitePreload(()=>import("./index.677031cc.js"),[])).default,relationship:relationships.horn,height:"212px",width:"252px"};case"tuba":return{json:(await __vitePreload(()=>import("./index.5c50a9f0.js"),[])).default,relationship:relationships.tuba};case"piccolo":return{json:(await __vitePreload(()=>import("./index.f292a388.js"),[])).default,relationship:relationships.piccolo};case"up-bass-horn":return{json:(await __vitePreload(()=>import("./index.50d887bb.js"),[])).default,relationship:relationships.upBassHorn};case"trombone":return{json:(await __vitePreload(()=>import("./index.65d4cb1f.js"),[])).default,relationship:relationships.trombone};case"saxophone":return{json:(await __vitePreload(()=>import("./index.66139d6f.js"),[])).default,relationship:relationships.saxophone,styles:{marginLeft:".2rem",marginRight:".3rem"}};case"small-drum":return{json:(await __vitePreload(()=>import("./index.c980c934.js"),[])).default,relationship:relationships.smallDrum,width:"180px"};case"hulusi-flute":return{json:(await __vitePreload(()=>import("./index.1c832d4b.js"),[])).default,relationship:relationships.hulusi,styles:{marginLeft:".6rem",marginRight:".7rem"}};case"pan-flute":return{json:(await __vitePreload(()=>import("./index.065f17dc.js"),[])).default,relationship:relationships.pan,width:"240px",styles:{marginTop:"auto",marginLeft:".6rem",marginRight:".7rem"}};case"ocarina":return{json:(await __vitePreload(()=>import("./index.b1ee2f73.js"),[])).default,relationship:relationships.ocarina,width:"180px",styles:{marginTop:"auto"}};case"melodica":return{json:(await __vitePreload(()=>import("./index.150cabd9.js"),[])).default,relationship:relationships.melodica,height:"80px",styles:{marginTop:"auto"}};case"ukulele":return{json:(await __vitePreload(()=>import("./index.db14ec83.js"),[])).default,relationship:relationships.ukulele};case"mouthorgan":return{json:(await __vitePreload(()=>import("./index.3b668adc.js"),[])).default,relationship:relationships.mouthorgan};case"piano":return{json:(await __vitePreload(()=>import("./index.b7f1e2a7.js"),[])).default,relationship:relationships.piano};default:return null}};const container$4="_container_ajal8_1",changeIndex$1="_changeIndex_ajal8_6",activeopacity$1="_activeopacity_ajal8_1",leftrotates$1="_leftrotates_ajal8_1",rightrotates$1="_rightrotates_ajal8_1";var styles$d={container:container$4,changeIndex:changeIndex$1,activeopacity:activeopacity$1,leftrotates:leftrotates$1,rightrotates:rightrotates$1};const getImageSize=B=>new Promise((R,F)=>{const D=new Image;D.src=B,D.onload=()=>{R(D)},D.onerror=G=>R(D)}),formatFixedKey$1=(B,R)=>B==="piccolo"&&state$2.times[0]?ref(R+(1-state$2.times[0].octaveOffset)*12):ref(R),formatRelationship$1=(B,R)=>{let F=B[R]||B[0]||[];return typeof F[0]=="number"||typeof F[0]=="string"?[F]:typeof F[0]=="object"?F:[[]]},useFingeringSrc=(B,R,F)=>{const D=ref("");return B&&R==="trombone"&&!B.relationship[F]?(D.value=B.json.full2,D):(D.value=B.json.full,D)};var FingeringComponent=defineComponent({name:"fingering",props:{type:{type:String,default:""},fixedKey:{type:Number,default:0},fingeringInfo:{type:Object},loaded:{type:Function,default:()=>{}},viewInfo:{type:Object}},setup(B,{expose:R}){const F=toRefs(B),D=ref(null),G=ref(null),U=ref(0),W=ref(0);return R({container:D,containerWidth:U}),()=>{var K,J,ie,ne,se,re,ae,le,ce,he,de,me,fe,ge,Se;if(!((K=F.viewInfo.value)!=null&&K.activeType))return null;const q=formatFixedKey$1((J=B.fingeringInfo)==null?void 0:J.name,F.fixedKey.value).value,Y=formatRelationship$1((ne=(ie=F.viewInfo.value)==null?void 0:ie.activeType)==null?void 0:ne.relationship,q||0),Q=()=>{let Ee=W.value===Y.length-1?0:W.value+1;W.value=Ee},Z=Y[W.value]||[];return createVNode("div",{ref:D,class:classnames((se=B.fingeringInfo)==null?void 0:se.name,styles$d.container),style:{width:((re=B.fingeringInfo)==null?void 0:re.direction)==="vertical"?(ae=B.fingeringInfo)==null?void 0:ae.width:"",height:((le=B.fingeringInfo)==null?void 0:le.direction)==="transverse"?((ce=B.fingeringInfo)==null?void 0:ce.height)||"":"100%",display:"flex",paddingLeft:((he=B.fingeringInfo)==null?void 0:he.direction)==="vertical"?(de=B.fingeringInfo)==null?void 0:de.paddingLeft:"",paddingRight:((me=B.fingeringInfo)==null?void 0:me.direction)==="vertical"?(fe=B.fingeringInfo)==null?void 0:fe.paddingRight:""}},[Z.includes(0)?createVNode("span",{style:{position:"absolute",top:".5vh",right:".5vw",color:"rgb(1, 193, 181)",fontWeight:"bold"}},[createTextVNode("\u8F6C\u8C03")]):null,createVNode("img",{ref:G,src:(ge=F.viewInfo.value)==null?void 0:ge.fullsrc,style:{width:"auto",maxWidth:"100%",maxHeight:((Se=B.fingeringInfo)==null?void 0:Se.name)=="ukulele"?"110%":"100%"}},null),Z.map((Ee,ve)=>{var Pe,ye,Te,Le,we,Ae,Me,ke;const xe=typeof Ee=="string"?Ee.replace("active-",""):String(Ee);return createVNode("img",{"data-index":xe,style:{position:"absolute",top:((Pe=G.value)==null?void 0:Pe.offsetTop)+"px",left:((ye=G.value)==null?void 0:ye.offsetLeft)+"px",zIndex:ve,height:((Te=G.value)==null?void 0:Te.height)+"px",width:((Le=G.value)==null?void 0:Le.width)+"px",maxWidth:"100%",maxHeight:((we=B.fingeringInfo)==null?void 0:we.name)=="ukulele"?"110%":"100%"},src:(ke=(Me=(Ae=F.viewInfo.value)==null?void 0:Ae.activeType)==null?void 0:Me.json)==null?void 0:ke[xe]},null)}),Y.length>1?createVNode("div",{role:"button",onClick:Q,class:["substituteFinger",styles$d.changeIndex]},[createTextVNode("\u66FF\u6307")]):null])}}});const formatdata={Flute:2,Clarinet:4,Trombone:14,Tuba:17,Trumpet:12,Horn:13,AltoSaxophone:6,TenorSaxophone:6,Saxophone:6,UpBassHorn:15,Melodica:137,HulusiFlute:136,PanFlute:135,Ocarina:134,Recorder:120,Ukulele:130,Mouthorgan:140,Piano:150},subjectTypes={1:"SmallDrum",2:"Flute",3:"Saxophone",4:"Clarinet",5:"Trumpet",6:"Trombone",7:"Horn",8:"UpBassHorn",9:"Tuba"},getSubjectIdCode=B=>subjectTypes[B]||"";var formatId=B=>formatdata[B]||-1;const fingeringWidth$1=ref(0),fingeringStatus$1=ref("hidden"),fingeringViewInfo$1=async B=>{var F;const R=B;if(R){const D=await getTypes(R.name);if(D){const G=formatFixedKey$1(R.name,state$2.fixedKey),U=useFingeringSrc(D,R.name,G.value),{width:W,height:q}=await getImageSize(U.value),Y=((F=document.getElementById("colexiu-detail-music-sheet"))==null?void 0:F.clientHeight)||0,Q=state.evaluatingStatus?0:W,Z=Y/q;return fingeringWidth$1.value=Y?Z*Q:Q,W&&(fingeringStatus$1.value="show"),reactive({width:W,height:q,scale:Z,usedFixedKey:G.value,fullsrc:U.value,activeType:D,detail:R})}}else fingeringStatus$1.value="hidden"},useFingering=async(B="")=>{const R=ref({}),F=ref({}),D=await fingeringViewInfo$1(typeById[formatId(B)]);return R.value=(D==null?void 0:D.activeType)||{},F.value=(D==null?void 0:D.detail)||{},[fingeringStatus$1,fingeringWidth$1,R,F]},ee=new EventEmitter;let playStartTime=0;class MultipleAudio{constructor(R){this.audios={},this.audioList=[],this.length=0,this.status="init",this.speed=90,this.muted=!1,this.audio=null,this.event=ee,this.currentTime=0,this.duration=0,this.timer=null,this.accelerateRefreshPlayer=()=>{if(this.timer)return;const F=this.currentTime;let D=new Date().getTime();this.timer=setInterval(()=>{this.currentTime=(new Date().getTime()-D)/1e3+F,this.event.emit("timeupdate",this)},10)},this.clearAccelerateRefreshPlayer=()=>{clearInterval(this.timer),this.timer=null},this.setVolume=(F,D)=>{let G=setInterval(()=>{Object.values(this.audios).map(U=>{F?(U.volume-=.01,U.volume<=.01&&(U.volume=0,clearInterval(G),D&&D())):(U.volume+=.01,U.volume>=1&&(U.volume=1,clearInterval(G),D&&D())),console.log(U.volume)})},16.7)},this.setSongs(R)}async setSongs(R){this.audioList=R.filter(G=>!!G).map(G=>G),this.audio=null,this.event.removeAllListeners(),this.audios={};const F=R.filter(G=>!!G).map(async G=>({url:G})),D=await Promise.all(F);for(const G of D){const U=new Audio(G.url);U.load(),this.audios[G.url]=U,this.audio||(this.audio=U)}this.length=F.length,this.audio&&(this.audio.addEventListener("loadedmetadata",G=>{this.setDuration()}),this.audio.addEventListener("timeupdate",G=>{var W;this.currentTime=((W=this.audio)==null?void 0:W.currentTime)||0,this.event.emit("timeupdate",G);let U=!1;this.currentTime===this.duration&&!U&&(U=!0)})),R.length&&(this.status=this.getStatus()),this.event.on("allWaiting",()=>{this.hasWaitng()&&this.event.emit("waiting")}),this.event.on("allPlaying",()=>{this.hasWaitng()||this.event.emit("playing")}),this.syncEvent()}setDuration(R){var D;const F=Object.values(R||this.audios||{});if(F.length){const G=[];for(const W of F){const q=W.duration;q>0&&G.push(q)}const U=Math.floor(Math.max(...G)-Math.min(...G));U>=1&&console.log("\u8BE5\u6559\u7A0B\u539F\u97F3\u4E0E\u4F34\u594F\u65F6\u957F\u8D85\u8FC7"+U+"\u79D2\uFF0C\u8BF7\u4FEE\u6539\u540E\u4F7F\u7528"),this.duration=Math.min(...G),this.duration>0&&((D=this.event)==null||D.emit("loadedmetadata",null,this.duration))}}destroyed(){this.pause(),this.event.removeAllListeners(),this.audio=null,this.audios={}}hasWaitng(){let R=!1;for(const F of Object.values(this.audios))if(F.dataset.status==="waiting"){R=!0;break}return R}syncEvent(){let R=!1;const F=q=>{var Y;R=!1,this.event.emit("play",q),((Y=q.target)==null?void 0:Y.src)===this.audioList[0]&&(playStartTime=new Date().getTime())},D=async q=>{var Y;if(await this.pause(),this.event.emit("pause",q),((Y=q.target)==null?void 0:Y.src)===this.audioList[0]){const Q=new Date().getTime()-playStartTime;this.event.emit("updatePlayTime",Q/1e3)}},G=q=>{this.status==="play"&&(q.target.dataset.status="waiting"),this.event.emit("allWaiting")},U=q=>{q.target.dataset.status="",this.event.emit("allPlaying")},W=async q=>{R||(R=!0,await this.pause());for(const Y in this.audios)Object.prototype.hasOwnProperty.call(this.audios,Y)&&this.event.emit("ended",{target:this.audios[Y]})};for(const q of Object.values(this.audios))q.addEventListener("loadedmetadata",()=>this.setDuration(this.audios)),q.addEventListener("play",F),q.addEventListener("pause",D),q.addEventListener("waiting",G),q.addEventListener("playing",U),q.addEventListener("ended",W)}getStatus(){var R;return this.audio?(R=this.audio)!=null&&R.paused?"pause":"play":"init"}play(R){return this.getStatus()!=="play"?new Promise(F=>{setTimeout(()=>{new Date().getTime(),Object.values(this.audios).map(async(D,G)=>{await D.play()}),F(this.audios)},R||100)}):(this.status=this.getStatus(),Promise.resolve())}pause(){return this.status=this.getStatus(),Promise.all(Object.values(this.audios).map(async R=>await R.pause())).then(R=>(this.status=this.getStatus(),R))}setMute(R,F){F?this.audios[F]&&(this.audios[F].muted=R):(this.muted=R,Object.values(this.audios).map(D=>D.muted=R))}setSpeed(R,F){F?this.audios[F]&&(this.audios[F].playbackRate=R):(this.speed=R,Object.values(this.audios).map(D=>(D.playbackRate=R,D)))}setCurrentTime(R){this.currentTime=R,Object.values(this.audios).map(F=>F.currentTime=R)}toggleMute(R){R?this.audios[R]&&(this.audios[R].muted=!this.audios[R].muted):(Object.values(this.audios).map(F=>F.muted=!this.muted),this.muted=!this.muted)}async togglePlay(R){if(this.getStatus()==="pause")return await this.play(R);if(this.getStatus()==="play")return this.setMute(!0),await this.pause()}}const speedInfo={"rall.":1.333333333,"poco rit.":1.333333333,"rit.":1.333333333,"molto rit.":1.333333333,"molto rall":1.333333333,molto:1.333333333,lentando:1.333333333,allargando:1.333333333,morendo:1.333333333,"accel.":.8,calando:2,"poco accel.":.8,"gradually slowing":1.333333333,slowing:1.333333333,slow:1.333333333,slowly:1.333333333,faster:1.333333333},getNextNote=(B,R)=>{var q;let F=0;const D=B.closest(R);let G=D;const U=D==null?void 0:D.closest("measure");let W=null;for(;!W&&F<((U==null?void 0:U.childNodes.length)||50);)F++,((q=G==null?void 0:G.nextElementSibling)==null?void 0:q.tagName)==="note"&&(W=G==null?void 0:G.nextElementSibling),G=G==null?void 0:G.nextElementSibling;return W},getGradualLengthByXml=B=>{var Z,K,J,ie;const R=onlyVisible(B,0),F=new DOMParser().parseFromString(R,"text/xml"),D=Array.from(F.querySelectorAll("measure")),G=Array.from(F.querySelectorAll("note")),U=Array.from(F.querySelectorAll("words")),W=Array.from(F.querySelectorAll("metronome")),q=[];for(const ne of[...U,...W]){const se=getNextNote(ne,"direction");if(se){const re=se==null?void 0:se.closest("measure"),ae=Array.from(re.querySelectorAll("note")),le=Array.from(re.childNodes).filter(de=>de.nodeName==="note").findIndex(de=>de===se);let ce=0,he=0;for(let de=0;dene.index-se.index);const Q=Object.keys(speedInfo).map(ne=>ne.toLocaleLowerCase());for(const ne of q){let se=!1,re=0;const ae=(K=ne.textContent)==null?void 0:K.toLocaleLowerCase().trim();ne===q[q.length-1]&&((J=Y[Y.length-1])==null?void 0:J.length)===1&&(se=!0);const le=Q.find(ce=>{const he=ce.split(" ");return ae&&he.includes(ae)});if(ne.type==="metronome"||ne.type==="words"&&(ae.startsWith("a tempo")||le)||se){const ce=Y.findIndex(he=>he.length===1);ce>-1&&ne.index>((ie=Y[ce])==null?void 0:ie[0].start)&&(re=-1,Y[ce][1]={start:ne.index,measureIndex:ne.measureIndex,closedMeasureIndex:ne.measureIndex,noteInMeasureIndex:ne.noteInMeasureIndex,allDuration:ne.allDuration,leftDuration:ne.leftDuration,type:ae})}ne.type==="words"&&le&&Y.push([{start:ne.index,measureIndex:ne.measureIndex,closedMeasureIndex:ne.measureIndex+re,noteInMeasureIndex:ne.noteInMeasureIndex,allDuration:ne.allDuration,leftDuration:ne.leftDuration,type:ae}])}return Y},storeData=reactive({platformType:"STUDENT"}),musicInfo=reactive({id:"",audioFileUrl:"",musicId:"",musicSubject:"",musicSvg:"",speed:null,track:""});reactive({loading:"initail",mode:"exercise"});const search=useOriginSearch(),skpList=["Ukulele"],classids=[1,2,6,7,8,9,3,10,11,12,13,4,14,15,16,17,30,31,35,36,108],useXml=async(B,R)=>{const F=Number(search["part-index"])||0;let D=ref("");try{const G=await request$1$1(B),U=getCustomInfo(G);skpList.includes(U.code)?D.value=G:(D.value=formatXML(U.parsedXML,{title:R.musicSheetName}),D.value=onlyVisible(D.value,F),state$2.partIndex=F),state$2.gradual=getGradualLengthByXml(G)}catch{}return D},useMp3s=async B=>{var Z;const F=useOriginSearch()["part-index"]||0,D=(Z=B.background)==null?void 0:Z[F];if(Object.assign(musicInfo,D),musicInfo.musicSvg)try{musicInfo.musicSvg=typeof musicInfo.musicSvg=="string"&&musicInfo.musicSvg?JSON.parse(musicInfo.musicSvg):""}catch{}const G=encodeURI(B.metronomeUrl||""),U=encodeURI((D==null?void 0:D.audioFileUrl)||"");state.songs={background:G?G+"?t=background":"",music:U?U+"?t=music":""},state$2.isAppPlay=B.audioType==="MIDI",state$2.isPercussion=musicInfo.musicSubject=="1";let W={skipTick:!1,repeatedBeats:!1,scoreSize:"middle"},q={};state$2.activeDetail={...B,examSongId:B.id,originalSpeed:90,isAppPlay:B.audioType==="MIDI",extConfigJson:{...W}};try{q=JSON.parse((B==null?void 0:B.extConfigJson)||"")}catch{}state$2.activeDetail.extConfigJson={...state$2.activeDetail.extConfigJson,...q};const Y=state$2.activeDetail.extConfigJson.scoreSize,Q=store_legacy.get("zooms")||{};Y&&!Q[""+B.id]&&(store_legacy.set("zooms",{...Q,[""+B.id]:Y}),state$3.sett.scoreSize=Y),state$2.needTick=B.audioType==="MP3"&&B.mp3Type==="MP3"&&B.musicSheetType!="CONCERT"||B.audioType==="MIDI",state$2.skipTick=state$2.activeDetail.extConfigJson.skipTick,state$2.repeatedBeats=state$2.activeDetail.extConfigJson.repeatedBeats,state.songs.music||changeMode("background"),state.audiosInstance||(state.audiosInstance=new MultipleAudio(Object.values(state.songs)))},useSpecialShapedScreen=()=>{const B=ref(0);return postMessage$1({api:"isSpecialShapedScreen"},R=>{const F=R==null?void 0:R.content.notchHeight;state$2.notchHeight=(browser().ios?F*2:F)||((R==null?void 0:R.content.isSpecialShapedScreen)&&browser().ios?100:0),B.value=state$2.notchHeight,state$2.isSpecialShapedScreen=R==null?void 0:R.content.isSpecialShapedScreen,document.documentElement.style.setProperty("--popup-loading",state$2.notchHeight/4+"px")}),[B]},useDetail=B=>{const R=getRequestHostname(),F=ref("loading"),D=ref({});return F.value="loading",request.get(`/musicSheet/detail/${B}`,{prefix:R}).then(G=>{var W,q,Y,Q,Z,K,J,ie;useMp3s(G.data),D.value={...G.data,code:Array.isArray((W=G==null?void 0:G.data)==null?void 0:W.background)&&G.data.background.length?getSubjectIdCode(G.data.background[0].musicSubject):""},(D.value.notation==0||!sessionStorage.getItem("notation"))&&(state$3.sett.type="staff"),state$2.isSpecialBookCategory=!classids.includes(G.data.musicSheetCategoriesId),state$2.subjectId=Number(musicInfo.musicSubject),window.DYSubjectId=formatId(D.value.code),F.value="success";let U={gradualTimes:{}};try{(q=D.value)!=null&&q.extConfigJson&&(U={...U,...JSON.parse(D.value.extConfigJson)})}catch{}if(state$2.gradualTimes=U.gradualTimes,((Y=G==null?void 0:G.data)==null?void 0:Y.musicSheetType)=="CONCERT"){const ne=((Q=G==null?void 0:G.data)==null?void 0:Q.background)||[],se=Number(search["part-index"])||0;let re=(Z=ne[se])==null?void 0:Z.track;((J=(K=ne[0])==null?void 0:K.track)==null?void 0:J.toLocaleUpperCase())=="COMMON"&&(re=(ie=ne[se+1])==null?void 0:ie.track);const ae=getInstrumentName(re);console.log("\u{1F680} ~ track:",re),state$2.partName=re+(ae?`(${ae})`:"");const le=Object.keys(formatdata).filter(ce=>ce.includes(re)||re.includes(ce))[0];D.value.code=le}}).catch(()=>F.value="error"),[F,D]},useSuspendPlay=()=>{listenerMessage("suspendPlay",()=>{state$2.activeTick>-1&&stopTick(),console.log(state.playState),state.playState==="play"&&(resetPlayStatus(),state.evaluatingStatus&&evaluatStopPlay())})},useActivity=()=>{const B=ref(!0),R=ref(!1),F=ref(!1);try{const G=useOriginSearch().setting||{};G.mode==="EVALUATING"&&(F.value=!0,B.value=!1,R.value=!0),G.difficulty&&(state$3.eva.difficulty=G.difficulty),state$2.setting=G}catch(D){console.error("\u8BBE\u7F6E\u6D3B\u52A8\u914D\u7F6E\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u4F20\u5165\u914D\u7F6E\u662F\u5426\u6B63\u786E"),console.error(D)}return{showFingering:B,frozenMode:R,compulsionEvaluating:F}};var event=new EventEmitter;const setEngravingRules=B=>{var R;B.EngravingRules.CompactMode=!0,B.EngravingRules.DYMinNoteWidth=3,B.EngravingRules.VoiceSpacingMultiplierVexflow=.65,B.EngravingRules.VoiceSpacingAddendVexflow=2,B.EngravingRules.MinSkyBottomDistBetweenStaves=2,B.EngravingRules.MinSkyBottomDistBetweenSystems=2,B.EngravingRules.MinimumStaffLineDistance=4,B.EngravingRules.BetweenStaffDistance=2.5,B.EngravingRules.StaffDistance=3.5,B.EngravingRules.MinimumDistanceBetweenSystems=1,B.EngravingRules.PageBottomMargin=0,B.EngravingRules.PageLeftMargin=2,B.EngravingRules.PageRightMargin=2,B.EngravingRules.PageTopMarginNarrow=3,B.EngravingRules.WedgeEndDistanceBetweenTimestampsFactor=1,B.EngravingRules.RehearsalMarkXOffset=-18,B.EngravingRules.RehearsalMarkYOffset=10,B.EngravingRules.DYWorkId=((R=state$2.activeDetail)==null?void 0:R.parentCategoriesId)||0},useEngravingRules=(B,R)=>{onMounted(()=>{setEngravingRules(B);for(const F in R)if(Object.prototype.hasOwnProperty.call(R,F)){let D=F;const G=R[D];B.EngravingRules[D]=G}})},useOsmd=(B,R,F={})=>{const D=ref();if(B.value){const G=new EngravingRules;for(const[U,W]of Object.entries(F))G[U]=W;D.value=new OpenSheetMusicDisplay(B.value,{followCursor:!1,autoResize:!0,drawSubtitle:!1,drawTitle:!1,autoBeam:!0,drawMetronomeMarks:!1,drawMeasureNumbers:!1,drawComposer:!1,drawLyricist:!1,...R},G)}return D},useOsmdLoader=async(B,R)=>{if(!R)throw"score is required";try{R&&B&&(await B.load(R),B.zoom=formatZoom(),await B.render())}catch{}},container$3="_container_5btb7_1",eyeProtection="_eyeProtection_5btb7_25";var styles$c={container:container$3,eyeProtection};const section="_section_fxysl_1",measure="_measure_fxysl_1",dontTransition="_dontTransition_fxysl_5",after="_after_fxysl_5",img$1="_img_fxysl_22",font="_font_fxysl_30",bad="_bad_fxysl_35",good="_good_fxysl_43",great="_great_fxysl_51",perfect="_perfect_fxysl_58",noteWrap="_noteWrap_fxysl_80",noteBase="_noteBase_fxysl_86",noteRight="_noteRight_fxysl_89",noteError="_noteError_fxysl_92",flash="_flash_fxysl_124",restFlag="_restFlag_fxysl_127",restFlagActive="_restFlagActive_fxysl_141",flicker="_flicker_fxysl_1";var styles$b={section,measure,dontTransition,after,img:img$1,font,bad,good,great,perfect,noteWrap,noteBase,noteRight,noteError,flash,restFlag,restFlagActive,flicker};const restPromptData=reactive({list:[]}),restPromptMain=B=>{calculateMergeRest(B)};function calculateMergeRest(B){var U,W,q,Y,Q,Z,K,J,ie;const R=[],F=document.querySelector("#osmdSvgPage1"),D=((U=F.getAttribute("viewBox"))==null?void 0:U.split(" "))||[];let G=Number(F.getAttribute("width"))/Number(D[2]);G=isNaN(G)?1:G;for(let ne=0;nehe.measureNumberXML===re)&&le&&ae>1){const he=getStaveBox((ie=(J=se==null?void 0:se.stave)==null?void 0:J.attrs)==null?void 0:ie.id,G);R.push({measureNumberXML:re,allRests:le,multipleRestMeasures:ae,staveBox:he})}}restPromptData.list=R}function getStaveBox(B,R){var D;if(!B)return{};const F=document.querySelector("#"+B);if(F){const G=(D=F==null?void 0:F.nextElementSibling)==null?void 0:D.getBBox();return{left:G.x*R+"px",top:G.y*R+"px",width:G.width*R+"px",height:G.height*R+"px"}}return{}}function _isSlot$1(B){return typeof B=="function"||Object.prototype.toString.call(B)==="[object Object]"&&!isVNode(B)}const sectionRef=ref(null),noteInfoItems=reactive({duration:!1,numerator:!1,denominator:!1,i:!1,time:!1,speed:!1});window.setNoteInfoItems=B=>{for(const R in B)Object.prototype.hasOwnProperty.call(B,R)&&(noteInfoItems[R]=B[R])};const uniqueByPosition=B=>{const R={};for(const F of B)F&&F.start_x&&(R[`${F.x}-${F.y}`]=F);return R};watchEffect(()=>{state$2.sectionStatus?state$2.section.length?state$2.section.length===1&&(Toast.clear(),Toast({duration:0,message:"\u8BF7\u9009\u62E9\u7ED3\u675F\u8282\u70B9",position:"top"})):(state$2.befireSection=null,Toast.clear(),Toast({duration:0,message:"\u8BF7\u9009\u62E9\u5F00\u59CB\u8282\u70B9",position:"top"})):(state$2.section=[],state$2.sectionBoundingBoxs=[],Toast.clear())});var Section=defineComponent({name:"section-box",props:{type:{type:String,default:"evaluating"},top:{type:Number,default:0},left:{type:Number,default:0}},data(){return{sectionTop:0,sectionLeft:0}},methods:{getBoundingBoxByNote(B,R){var G,U,W,q,Y,Q,Z,K,J,ie,ne;const F=(W=(U=(G=B.sourceMeasure)==null?void 0:G.verticalMeasureList)==null?void 0:U[0])==null?void 0:W.boundingBox;if(!F)return null;const D={...F.absolutePosition,...F.size,...R};return D.x=D.x*10,D.y=D.y*10,D.width=D.width*10,D.height=D.height*10,(Z=(Q=(Y=(q=B==null?void 0:B.sourceMeasure)==null?void 0:q.verticalMeasureList)==null?void 0:Y[0])==null?void 0:Q.stave)!=null&&Z.height&&(D.height=(ne=(ie=(J=(K=B.sourceMeasure)==null?void 0:K.verticalMeasureList)==null?void 0:J[0])==null?void 0:ie.stave)==null?void 0:ne.height),D},setSettionBackground(){state$2.sectionBoundingBoxs=[];const[B,R]=state$2.section.sort((U,W)=>U.i-W.i),F=Math.abs(R.i-B.i)+1;R.noteLength;const D=[],G=[];for(let U=0;U(U.height=Math.max(...G),U))},setSection(B){const R=getActtiveNoteByTimes(B);if(R&&state$2.section.length<2){const F=state$2.section.length;if(F===0){const D=getNoteBySlursStart(R,!0);state$2.section.push(state$2.times[D.i-D.si])}if(F===1){const D=getNoteBySlursStart(R,!0,"end");state$2.section.push(state$2.times[D.i-D.si+D.noteLength-1])}}state$2.section.length===2&&(Toast.clear(),this.setSettionBackground())},sectionClick(B){if(state$2.sectionStatus)this.setSection(B);else{if(state$2.mode!=="contact"||state.evaluatingStatus)return;event.emit("section-click",B)}},filterTimes(B){const R=[];return B.filter(F=>{const D=R.includes(F.id);return R.push(F.id),!D})}},mounted(){var B,R;Toast.clear(),state$2.section=[],this.sectionTop=(B=sectionRef.value)==null?void 0:B.getBoundingClientRect().top,this.sectionLeft=(R=sectionRef.value)==null?void 0:R.getBoundingClientRect().left},beforeUnmount(){Toast.clear(),state$2.sectionStatus=!1,state$2.section=[]},render(){var W,q,Y;let B;const R=state$3.sett.eyeProtection?"var(--eye-section-border-color)":"var(--section-border-color)",F=Q=>state$3.sett.eyeProtection?Q.before?"var(--section-background-color)":"var(--eye-section-background-color)":Q.before?"var(--eye-section-background-color)":"var(--section-background-color)",D=((Y=(q=(W=state$2.times[state.activeIndex])==null?void 0:W.noteElement)==null?void 0:q.sourceMeasure)==null?void 0:Y.MeasureNumberXML)||-2,G=restPromptData.list.find(Q=>{const Z=D-Q.measureNumberXML;return Q.allRests&&Z>=0&&Z{var re,ae,le,ce,he,de,me,fe,ge,Se,Ee,ve,xe;if(!Q.svgElelent)return null;let Z;try{Z=Q.svgElelent.bbox||((ae=(re=Q.svgElelent).getBoundingBox)==null?void 0:ae.call(re)),!Z&&((ce=(le=Q.svgElelent)==null?void 0:le.attrs)==null?void 0:ce.el)&&(Z=Q.svgElelent.attrs.el.getBBox(),Z.w=Z.width<15?15:Z.width,Z.h=Z.height<11?11:Z.height)}catch(Pe){console.log(Pe)}if(!Z)return null;state$3.sett.type==="jianpu"&&Q.svgElelent&&Q.svgElelent.top_y&&Q.svgElelent.note_height&&(Z.y=Q.svgElelent.top_y-Q.svgElelent.note_height);let{x:K,y:J,h:ie,w:ne}=Z,se=null;return Q.si===0&&(se=this.getBoundingBoxByNote(Q.noteElement)),createVNode(Fragment,null,[Q.si===0&&se&&createVNode("div",{"data-id":Q.id,"data-num":Q.noteElement.sourceMeasure.MeasureNumberXML,style:{position:"absolute",top:formatZoom(se.y)+"px",left:formatZoom(se.x)+"px",height:formatZoom(se.height)+"px",width:formatZoom(se.width)+"px",background:unitTestData.isSelectMeasureMode&&state$2.sectionStatus?`${((de=(he=Q==null?void 0:Q.noteElement)==null?void 0:he.sourceMeasure)==null?void 0:de.MeasureNumberXML)<((ge=(fe=(me=state$2.section[0])==null?void 0:me.noteElement)==null?void 0:fe.sourceMeasure)==null?void 0:ge.MeasureNumberXML)||((Ee=(Se=Q==null?void 0:Q.noteElement)==null?void 0:Se.sourceMeasure)==null?void 0:Ee.MeasureNumberXML)>((xe=(ve=state$2.section[1])==null?void 0:ve.noteElement)==null?void 0:xe.sourceMeasure.MeasureNumberXML)?"rgba(0, 0, 0,.28)":"var(--section-background-color)"}`:""},onClick:state$2.sectionStatus?this.sectionClick:void 0},null),createVNode("div",{"data-id":Q.id,"data-vf":"vf"+Q.id,class:styles$b.noteWrap,style:{position:"absolute",top:formatZoom(J)+"px",left:formatZoom(K)+"px",height:formatZoom(ie)+"px",width:formatZoom(ne)+"px",background:Object.values(noteInfoItems).find(Pe=>Pe===!0)?"rgba(255, 255, 255, 0.8)":""},onClick:this.sectionClick},[noteInfoItems.duration&&createVNode(Fragment,null,[parseInt(Q.duration*100+"")/100,createVNode("br",null,null)]),noteInfoItems.time&&createVNode(Fragment,null,[Q.time.toFixed(2),createVNode("br",null,null)]),noteInfoItems.numerator&&createVNode(Fragment,null,[Q.noteElement.sourceMeasure.activeTimeSignature.numerator,createVNode("br",null,null),createVNode("br",null,null)]),noteInfoItems.denominator&&createVNode(Fragment,null,[Q.noteElement.sourceMeasure.activeTimeSignature.denominator,createVNode("br",null,null),createVNode("br",null,null)]),noteInfoItems.i&&createVNode(Fragment,null,[Q.i,createVNode("br",null,null),createVNode("br",null,null)]),noteInfoItems.speed&&createVNode(Fragment,null,[Q.speed.toFixed(0),createVNode("br",null,null),createVNode("br",null,null)]),createVNode("div",{class:[styles$b.noteBase,styles$b.noteRight]},[createVNode(Icon,{name:"success",size:"16",color:"var(--primary-color)"},null)]),createVNode("div",{class:[styles$b.noteBase,styles$b.noteError]},[createVNode(Icon,{name:"cross",size:"16",color:"red"},null)])])])}),state$2.section.map((Q,Z)=>{var ie;const K=getBoundingBoxByverticalNote(Q);let J;try{const ne=Q.svgElelent.bbox||((ie=Q.svgElelent)==null?void 0:ie.getBoundingBox());J=formatZoom((ne==null?void 0:ne.x)||(Z===0?K.start_x:K.end_x))}catch(ne){console.log(ne)}return J?Z===0&&K?createVNode("div",{style:{position:"absolute",top:formatZoom(K.y)-5+"px",left:formatZoom(K.x)+"px",height:formatZoom(K.height)+"px",border:`5px solid ${R}`,borderColor:`${R} transparent ${R} ${R}`,borderRight:"none",width:"5px"}},null):Z===1&&K?createVNode("div",{style:{position:"absolute",top:formatZoom(K.y-5)+"px",left:formatZoom(K.end_x)+"px",height:formatZoom(K.height)+"px",border:`5px solid ${R}`,borderColor:`${R} ${R} ${R} transparent`,borderLeft:"none",width:"5px"}},null):null:null}),state$2.sectionBoundingBoxs.map(Q=>{var Z;return createVNode("div",{class:{[styles$b.flash]:Q.before&&state$2.sectionFlash&&state.playState==="play"},style:{position:"absolute",top:formatZoom(Q.y)+"px",left:formatZoom(Q.x)+"px",height:formatZoom((Z=getBoundingBoxByverticalNote(state$2.section[0]))==null?void 0:Z.height)+"px",width:formatZoom(Q.width)+"px",backgroundColor:F(Q)}},null)}),createVNode(TransitionGroup,{name:"list",duration:800},_isSlot$1(B=Object.values(uniqueByPosition(Object.values(state$2.evaluatings))).map(Q=>Q?createVNode("div",{key:Q.y+Q.x+Q.text,class:classnames(styles$b[Q.text],styles$b.measure,{[styles$b.dontTransition]:Q.dontTransition}),style:{position:"absolute",top:formatZoom(Q.y)+this.top+"px",left:formatZoom(Q.x)+this.left+"px",height:formatZoom(Q.height)+"px",width:formatZoom(Q.width)+"px"}},[this.type==="evaluating"?createVNode("span",{class:styles$b.after},[createVNode("span",{class:styles$b.img},null),createVNode("span",{class:styles$b.font},[Q.score])]):null]):createVNode("span",null,null)))?B:{default:()=>[B]}),G&&createVNode("div",{class:["dotWrap",styles$b.restMeasure],style:G.staveBox},[createVNode("div",{class:"dot"},[U])])])}});class Cursor{constructor(R){this.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAABCAYAAAASC7TOAAAAAXNSR0IArs4c6QAAABdJREFUGFdj3Pp5c0Ptm2oGdNAs0soAAHslBd3n2kNUAAAAAElFTkSuQmCC",this.x=R.x,this.y=R.y,this.width=R.w,this.height=R.h,this.img=document.createElement("img"),this.img.src=this.src,this.img.style.position="absolute",this.img.style.zIndex="-1",this.setValue()}reset(){var F,D;const R=(D=(F=state$2.times)==null?void 0:F[0])==null?void 0:D.cursorBox;R&&this.setPosition(R)}show(){this.img.style.display=""}hide(){this.img.style.display="none"}setPosition({x:R,y:F,w:D,h:G}){this.x=R,this.y=F,this.width=D,this.height=G,this.setValue()}setValue(){this.img.style.left=this.x+"px",this.img.style.top=this.y+"px",this.img.style.width=this.width+"px",this.img.style.height=this.height+"px",this.show()}}const rendered=ref(!1);var MusicSheet=defineComponent({name:"music-score",props:{isSoundEffect:{type:Boolean,default:!1},score:{type:String,default:""},showPartNames:{type:Boolean,default:!1},opotions:{type:Object,default:()=>{}},EngravingRules:{type:Object,default:()=>{}},showSection:{type:Boolean,default:!0}},emits:["rerender","startRender","renderError","loaddingEnd"],setup(B,{emit:R,expose:F}){const D=async le=>{var he;event.off("section-click",noteClick),R("startRender");const ce=await request$1$1.get(le);if(Z.value){let de=document.createElement("div");de.innerHTML=ce,(he=Z.value)==null||he.appendChild(de.firstElementChild);let me=document.querySelector("#osmdSvgPage1");const fe=document.getElementById("svgContainer");let ge=me==null?void 0:me.getAttribute("width"),Se=me==null?void 0:me.getAttribute("height");if(ge=isNaN(Number(ge))?0:Number(ge),Se=isNaN(Number(Se))?0:Number(Se),ge&&Se){let Ee=Se/ge,ve=(fe==null?void 0:fe.offsetWidth)||document.body.clientWidth;state$2.zoom=ve/ge,me==null||me.setAttribute("width",ve),me==null||me.setAttribute("height",ve*Ee+"")}}},G=le=>{var ce,he,de,me,fe,ge,Se,Ee,ve,xe;for(let Pe=0;Pe{var he,de,me,fe,ge,Se,Ee;const ce=await request$1$1.get(le);state$3.sett.scoreSize=((he=ce==null?void 0:ce.osmd)==null?void 0:he.scoreSize)||"middle",ce&&Array.isArray(ce.times)&&(state$2.times=G(ce.times),(fe=(me=(de=state$2.times)==null?void 0:de[0])==null?void 0:me.cursorBox)!=null&&fe.move&&(ce.osmd.cursor=new Cursor({...(Se=(ge=state$2.times)==null?void 0:ge[0])==null?void 0:Se.cursorBox}),(Ee=Z.value)==null||Ee.appendChild(ce.osmd.cursor.img)),state$2.renderType="cache",R("rerender",ce.osmd),state.isFirstPlay=!1,event.on("section-click",noteClick))},{EngravingRules:W,opotions:q,showPartNames:Y,score:Q}=toRefs(B),Z=ref();let K=ref();const J=()=>{event.off("section-click",noteClick),R("startRender"),K.value=useOsmd(Z,{...q.value,drawPartNames:Y.value},W.value).value,K.value&&(useEngravingRules(K.value,W.value),state.isFirstPlay=!1,event.on("section-click",noteClick))},ie=ref(),ne=async le=>{await D(le.svg),U(le.json)};onMounted(async()=>{rendered.value||J()}),onUnmounted(()=>{event.off("section-click",noteClick)}),watch([Q,K],async()=>{if(K&&K.value&&Q.value)try{R("startRender"),await useOsmdLoader(K.value,Q.value),R("rerender",K.value),event.emit("loaded"),se()}catch(le){console.error(le),R("renderError")}},{immediate:!0});const se=()=>{};return F({setRender:async({score:le}={})=>{const ce=le||Q.value;setTimeout(async()=>{if(K&&K.value&&ce){await K.value.clear(),J();try{state$2.section=[],state$2.sectionStatus=!1,await useOsmdLoader(K.value,ce),R("rerender",K.value),event.emit("loaded"),se()}catch(he){console.error(he),R("renderError")}}},100)},reRender:async()=>{var le;state$2.renderType=="native"?((le=K.value)==null||le.render(),state$2.times=getAllNodes(K.value)):(Z.value&&(Z.value.innerHTML=""),ne(ie.value))}}),()=>createVNode("div",{id:"svgContainer",class:styles$c.container,style:{position:"relative"}},[createVNode("div",{ref:Z},null),B.showSection&&createVNode(Section,{style:{position:"absolute",width:"100%",height:"100%",zIndex:1,top:0,left:0}},null)])}}),ButtonsPlayer=defineComponent({name:"ButtonsPlayer",setup(){useWiredHeadsetCheck();const B=()=>{state$2.activeTick>-1||(setCurrentTime(0),ended(new Event("ended")))},R=Math.floor(2*Math.PI*16),F=D=>{var G;((G=D==null?void 0:D.data)==null?void 0:G.api)==="setPlayState"&&(console.log("\u7236\u9875\u9762\u7684\u5207\u6362\u4E8B\u4EF6\u5173\u95ED\u64AD\u653E"),state.playState=="play"&&setPlayState(),stopTick(),setCurrentTime(0),setTimeout(()=>{state.playState=="play"&&setPlayState()},300))};return onMounted(()=>{window.addEventListener("message",F)}),onUnmounted(()=>{window.removeEventListener("message",F)}),()=>{const D=state.currentTimeNum/state.durationNum*R;return createVNode(Teleport,{to:"body"},{default:()=>{var G;return[createVNode("div",{style:state$2.chenkuang?{top:0,left:"0",right:"initial",bottom:"initial"}:"",class:styles$k.player,id:"globalPlayer"},[!state.evaluatingStatus&&createVNode(Fragment,null,[(state.playState==="pause"||state.playState==="suspend")&&state.currentTimeNum>0&&!state$2.sectionStatus&&createVNode(Button,{class:[styles$k.button,styles$k.fullbtn],onClick:B},{default:()=>[createVNode(ButtonIcon,{key:"reset",name:"reset"},null)]}),createVNode(Button,{class:[styles$k.button,styles$k.fullbtn],style:{marginLeft:"14px"},disabled:((G=state$2.activeDetail)==null?void 0:G.isAppPlay)&&state$2.midiPlayIniting,onClick:()=>{setPlayState()}},{default:()=>[createVNode("div",{class:styles$k.schedule},[createVNode("div",{class:styles$k.schedule},[state.playState==="play"?createVNode(ButtonIcon,{key:"pause",name:"pause",onClick:()=>{console.log("\u6682\u505C\u64AD\u653E"),sendParentMessage("pause")}},null):createVNode(ButtonIcon,{key:"play",name:"play",onClick:()=>{console.log("\u5F00\u59CB\u64AD\u653E"),sendParentMessage("play")}},null),state.currentTimeNum>0&&!state$2.sectionStatus&&createVNode("svg",{class:styles$k.ring,width:"40",height:"40",viewBox:"0 0 40 40",xmlns:"http://www.w3.org/200/svg"},[createVNode("circle",{cx:"20",cy:"20",r:"16",fill:"none",stroke:"#fff","stroke-width":"2","stroke-linecap":"round"},null),createVNode("circle",{class:styles$k.fillring,cx:"20",cy:"20",r:"16",fill:"none",stroke:"#FFC459","stroke-width":"2","stroke-linecap":"round","stroke-dasharray":D+",10000"},null)])])])]})])])]}})}}});const popup="_popup_6gl7n_1",wrap$2="_wrap_6gl7n_6",image="_image_6gl7n_11",title$1="_title_6gl7n_16",andTitle="_andTitle_6gl7n_23",sub="_sub_6gl7n_26",andSub="_andSub_6gl7n_32",btnWrap="_btnWrap_6gl7n_35",btn$1="_btn_6gl7n_35",cancelBtn="_cancelBtn_6gl7n_49",confirmBtn="_confirmBtn_6gl7n_52",tryoutBtn="_tryoutBtn_6gl7n_55",discounts="_discounts_6gl7n_58",membershipBtn="_membershipBtn_6gl7n_74",demandBtn="_demandBtn_6gl7n_77",demandBtnFree="_demandBtnFree_6gl7n_80",earphoneBtn="_earphoneBtn_6gl7n_83",closeBtn="_closeBtn_6gl7n_86";var styles$a={popup,wrap:wrap$2,image,title:title$1,andTitle,sub,andSub,btnWrap,btn:btn$1,cancelBtn,confirmBtn,tryoutBtn,discounts,membershipBtn,demandBtn,demandBtnFree,earphoneBtn,closeBtn},iconMicrophone="/orchestra-music-score/assets/microphone.7e50c915.svg",Microphone=defineComponent({name:"ColexiuMicrophone",setup(B,{expose:R}){return()=>createVNode("div",null,[createVNode("img",{class:styles$a.image,src:iconMicrophone},null),createVNode("div",{class:styles$a.wrap},[createVNode("div",{class:styles$a.des},[createVNode("div",{class:styles$a.title},[createTextVNode("\u5F00\u542F\u6743\u9650")]),createVNode("div",{class:styles$a.sub},[createTextVNode("\u8BF7\u5F00\u542F\u9EA6\u514B\u98CE\u8BBF\u95EE\u6743\u9650")])]),createVNode("div",{class:styles$a.btnWrap},[createVNode(Button,{class:classnames(styles$a.btn,styles$a.cancelBtn)},null),createVNode(Button,{class:classnames(styles$a.btn,styles$a.confirmBtn)},null)])])])}}),iconCamera="/orchestra-music-score/assets/camera.ad45a2ea.svg",Camera=defineComponent({name:"ColexiuMicrophone",setup(B,{expose:R}){return()=>createVNode("div",null,[createVNode("img",{class:styles$a.image,src:iconCamera},null),createVNode("div",{class:styles$a.wrap},[createVNode("div",{class:styles$a.des},[createVNode("div",{class:styles$a.title},[createTextVNode("\u5F00\u542F\u6743\u9650")]),createVNode("div",{class:styles$a.sub},[createTextVNode("\u8BF7\u5F00\u542F\u76F8\u673A\u8BBF\u95EE\u6743\u9650")])]),createVNode("div",{class:styles$a.btnWrap},[createVNode(Button,{class:classnames(styles$a.btn,styles$a.cancelBtn)},null),createVNode(Button,{class:classnames(styles$a.btn,styles$a.confirmBtn)},null)])])])}}),iconMembership="/orchestra-music-score/assets/membership.78b7ec9a.png",Member=defineComponent({name:"ColexiuMember",setup(){const B=useOriginSearch(),R=useClientType(),F=()=>{delete B.Authorization,postMessage$1({api:"openWebView",content:{url:location.origin+"/"+R+"/#/memberCenter?"+queryString.stringify({...B}),orientation:1}})},D=()=>{permissionPopup.show=!1,setCurrentTime(0),refreshIndex(0)};return()=>createVNode("div",null,[createVNode("img",{class:styles$a.image,src:iconMembership},null),createVNode("div",{class:styles$a.wrap},[createVNode("div",{class:styles$a.des},[createVNode("div",{class:styles$a.title},[createTextVNode("\u8BF7\u5F00\u901A\u4F1A\u5458")]),createVNode("div",{class:styles$a.sub},[createTextVNode("\u5F00\u901A\u4F1A\u5458\u540E\u53EF\u5B8C\u6574\u4F7F\u7528\u8BE5\u66F2\u76EE")])]),createVNode("div",{class:styles$a.btnWrap},[createVNode(Button,{class:classnames(styles$a.btn,styles$a.tryoutBtn),onClick:D},null),createVNode(Button,{class:classnames([styles$a.btn,styles$a.membershipBtn,{[styles$a.discounts]:B.discounts==1}]),onClick:F},null)])])])}}),iconDemand="/orchestra-music-score/assets/demand.14944949.svg";ref(!1);var Demand=defineComponent({name:"ColexiuDemand",setup(){const B=useOriginSearch(),R=useClientType(),F=async()=>{delete B.Authorization,postMessage$1({api:"openWebView",content:{url:location.origin+"/"+R+"/#/orderDetail?"+queryString.stringify({orderType:"MUSIC",...B}),orientation:1}})},D=()=>{permissionPopup.show=!1,setCurrentTime(0),refreshIndex(0)};return()=>{var G;return createVNode("div",{style:{position:"relative"}},[createVNode("img",{class:styles$a.image,src:iconDemand},null),createVNode("div",{class:styles$a.wrap},[createVNode("div",{class:styles$a.des},[createVNode("div",{class:styles$a.title},[createTextVNode("\u8BE5\u66F2\u76EE\u4E3A\u70B9\u64AD\u66F2\u76EE")]),createVNode("div",{class:styles$a.sub},[createTextVNode("\u70B9\u64AD\u4EF7\u683C "),createVNode("span",{style:{color:"#FF4E19"}},[createTextVNode("\xA5"),(G=state$2.activeDetail)==null?void 0:G.musicPrice]),createTextVNode("\uFF0C\u70B9\u64AD\u540E\u53EF\u6C38\u4E45\u4F7F\u7528")])]),createVNode("div",{class:styles$a.btnWrap},[createVNode(Button,{class:classnames(styles$a.btn,styles$a.tryoutBtn),onClick:D},null),createVNode(Button,{class:classnames(styles$a.btn,styles$a.demandBtn),onClick:F},null)])])])}}}),iconEarphone="/orchestra-music-score/assets/earphone.47c00320.png",Earphone=defineComponent({name:"ColexiuEarphone",setup(){return()=>createVNode("div",null,[createVNode("img",{class:styles$a.image,src:iconEarphone},null),createVNode("div",{class:styles$a.wrap},[createVNode("div",{class:styles$a.des},[createVNode("div",{class:styles$a.title},[createTextVNode("\u8BF7\u4F69\u6234\u8033\u673A")]),createVNode("div",{class:styles$a.sub},[createTextVNode("\u4F69\u6234\u8033\u673A\u53EF\u4EE5\u4FDD\u8BC1\u6D4B\u8BC4\u51C6\u786E\u7387\u54E6\uFF5E")])]),createVNode("div",{class:styles$a.btnWrap},[createVNode(Button,{class:classnames(styles$a.btn,styles$a.earphoneBtn),onClick:()=>{permissionPopup.show=!1}},null)])])])}});ref(!1);var MemberAndDemand=defineComponent({name:"memberAndDemand",setup(){const B=useOriginSearch(),R=useClientType(),F=async()=>{delete B.Authorization,postMessage$1({api:"openWebView",content:{url:location.origin+"/"+R+"/#/orderDetail?"+queryString.stringify({orderType:"MUSIC",...B}),orientation:1}})},D=()=>{delete B.Authorization,postMessage$1({api:"openWebView",content:{url:location.origin+"/"+R+"/#/memberCenter",orientation:1}})},G=()=>{permissionPopup.show=!1,setCurrentTime(0),refreshIndex(0)};return()=>{var U;return createVNode("div",{style:{position:"relative"}},[createVNode("img",{class:styles$a.closeBtn,src:iconColse,onClick:G},null),createVNode("img",{class:styles$a.image,src:iconDemand},null),createVNode("div",{class:styles$a.wrap},[createVNode("div",{class:styles$a.des},[createVNode("div",{class:[styles$a.title,styles$a.andTitle]},[createTextVNode("\u8BE5\u66F2\u76EE\u4E3A\u4F1A\u5458\u66F2\u76EE\uFF0C\u53EF\u4EE5\u5355\u66F2\u8D2D\u4E70\u54E6")]),createVNode("div",{class:[styles$a.sub,styles$a.andSub]},[createTextVNode("\u5F00\u901A\u9177\u4E50\u79C0\u4F1A\u5458\u6D77\u91CF\u66F2\u76EE\u5C3D\u60C5\u7EC3\u4E60"),createVNode("br",null,null),createTextVNode("\u5355\u66F2\u70B9\u64AD\u4EC5\u9700 "),createVNode("span",{style:{color:"#FF4E19"}},[createTextVNode("\xA5"),(U=state$2.activeDetail)==null?void 0:U.musicPrice]),createTextVNode("\uFF0C\u70B9\u64AD\u540E\u53EF\u6C38\u4E45\u4F7F\u7528")])]),createVNode("div",{class:styles$a.btnWrap},[createVNode(Button,{class:classnames(styles$a.btn,styles$a.membershipBtn),onClick:D},null),createVNode(Button,{class:classnames(styles$a.btn,styles$a.demandBtn),onClick:F},null)])])])}}}),Permission=defineComponent({name:"ColexiuPermission",setup(B,{expose:R}){return R({toggle:()=>{permissionPopup.show=!permissionPopup.show}}),()=>createVNode(Popup,{class:styles$a.popup,show:permissionPopup.show,"onUpdate:show":D=>permissionPopup.show=D,teleport:"body",onClosed:()=>{setCurrentTime(0)}},{default:()=>[permissionPopup.active==="microphone"?createVNode(Microphone,null,null):permissionPopup.active==="camera"?createVNode(Camera,null,null):permissionPopup.active==="member"?createVNode(Member,null,null):permissionPopup.active==="demand"?createVNode(Demand,null,null):permissionPopup.active==="earphone"?createVNode(Earphone,null,null):permissionPopup.active==="memberAndDemand"?createVNode(MemberAndDemand,null,null):null]})}}),ErrorIcon="/orchestra-music-score/assets/error.4d7eb6c9.svg",Empty=defineComponent({name:"ColexiuEmpty",props:{description:{type:String,default:"\u7F51\u7EDC\u9519\u8BEF"},imageSize:{type:Number,default:200},image:{type:String,default:ErrorIcon}},setup(B,{slots:R}){const F=()=>postMessage$1({api:"back"}),{image:D,imageSize:G,description:U}=toRefs(B);return()=>createVNode(Empty$1,{image:D.value,imageSize:G.value,description:U.value},{default:()=>[R.default?R.default():createVNode(Button,{type:"primary",onClick:F},{default:()=>[createTextVNode("\u8FD4\u56DE")]})]})}});const item$1="_item_6tre7_1",tag="_tag_6tre7_23",tabs="_tabs_6tre7_60",list="_list_6tre7_105",tab="_tab_6tre7_60";var styles$9={item:item$1,tag,tabs,list,tab};const chargeType={VIP:"\u4F1A\u5458",CHARGE:"\u70B9\u64AD",FREE:"\u514D\u8D39"},SwitchTag=defineComponent({name:"SwitchTag",props:{type:String},setup(B){return()=>createVNode(Tag,{plain:!0,class:[styles$9.tag,B.type,"van-hairline--surround"]},{default:()=>[chargeType[B.type]]})}});var Item=defineComponent({name:"MusicList-MusicScore-Item",props:{item:{type:Object}},setup(B){const R=useOriginSearch(),F=sessionStorage.getItem("behaviorId")||""+new Date().valueOf(),D=()=>{var G;pause(),postMessage$1({api:"cloudDestroy"}),postMessage$1({api:"cloudLoading",content:{show:!0,type:"fullscreen"}}),location.href=location.origin+location.pathname+"?"+queryString.stringify({...R,behaviorId:F,id:(G=B.item)==null?void 0:G.id,_t:new Date().valueOf()})};return()=>{var G,U,W;return createVNode("div",{class:[styles$9.item,{active:((G=B.item)==null?void 0:G.id)==R.id}],onClick:()=>D()},[createVNode("div",{style:{display:"flex"}},[(((U=B.item)==null?void 0:U.paymentType)||"").split(",").map(q=>createVNode(SwitchTag,{key:q,type:q},null))]),createVNode("p",null,[(W=B.item)==null?void 0:W.musicSheetName])])}}});function _isSlot(B){return typeof B=="function"||Object.prototype.toString.call(B)==="[object Object]"&&!isVNode(B)}var List=defineComponent({name:"MusicList-MusicScore-List",props:{list:{type:Array,default:()=>[]},url:{type:String,default:""},moreSearch:{type:Object,default:()=>({})}},emits:["refresh"],setup(B,{emit:R}){const F=ref(!1),D=ref(!1),G=ref(1),U=ref([]),W=ref(),q=async()=>{if(!!B.url){F.value=!0;try{const Q=await request(B.url,{params:{page:G.value,...B.moreSearch}});U.value=[...U.value,...Q.data.rows],D.value=Q.data.totalPage{!F.value&&!D.value&&(G.value=G.value+1,q())};return()=>{let Q;return!U.value.length&&!F.value?createVNode(Empty,{description:"\u6682\u65E0\u66F2\u76EE"},{default:()=>[createVNode("span",null,null)]}):createVNode("div",{class:styles$9.tab},[createVNode(List$1,{ref:W,class:styles$9.list,loading:F.value,finished:D.value,onLoad:Y},_isSlot(Q=U.value.map(Z=>createVNode(Item,{item:Z,key:Z.id},null)))?Q:{default:()=>[Q]})])}}}),MusicScore=defineComponent({name:"MusicList-MusicScore",setup(){const B=useOriginSearch();return()=>createVNode(List,{url:"/music/sheet/queryRelatedList",moreSearch:{albumId:B.albumId,musicSheetId:B.id}},null)}}),Collection=defineComponent({name:"MusicList-MusicScore",setup(){return()=>createVNode(List,{url:"/music/sheet/favorite"},null)}}),Practice=defineComponent({name:"MusicList-Practice",setup(){return()=>createVNode(List,{url:"/music/sheet/practice"},null)}}),Content=defineComponent({name:"MusicListContent",setup(){return()=>createVNode(Tabs,{class:styles$9.tabs},{default:()=>[createVNode(Tab,{title:"\u5176\u4ED6\u66F2\u8C31"},{default:()=>[createVNode(MusicScore,null,null)]}),createVNode(Tab,{title:"\u6700\u8FD1\u7EC3\u4E60"},{default:()=>[createVNode(Practice,null,null)]}),createVNode(Tab,{class:styles$9.tab,title:"\u6211\u7684\u6536\u85CF"},{default:()=>[createVNode(Collection,null,null)]})]})}});const visible=ref(!1),survive=ref(!1),close=()=>{visible.value=!1},closed=()=>{survive.value=!1};var MusicList=defineComponent({name:"MusicList",setup(B){return()=>createVNode(Popup,{show:visible.value,onClickOverlay:close,onClosed:closed,position:"right",teleport:"body",style:{height:"100vh",width:"55vw",borderRadius:"5px 0 0 5px",overflow:"hidden"}},{default:()=>[survive.value&&createVNode(Content,B,null)]})}});const dot="_dot_1cv1i_1",active="_active_1cv1i_9",container$2="_container_1cv1i_12";var styles$8={dot,active,container:container$2},Tick=B=>createVNode("div",{class:styles$8.container},[Array(B.dots*(B.repeat||1)).fill(0).map((R,F)=>createVNode("div",{class:classnames(styles$8.dot,{[styles$8.first]:F%B.dots===0},{[styles$8.active]:state$2.activeTick>=0&&state$2.activeTick===F})},null))]);const tickWrap="_tickWrap_1ouif_1";var styles$7={tickWrap},TickPopup=defineComponent({name:"DetailTick",props:{show:{type:Boolean,default:!1},score:{default:""}},methods:{sendMessage:()=>{window.parent.postMessage({api:"headerTogge",playState:state.playState,show:!0},"*")}},render(){return this.score&&state.osmd||this.show?createVNode(Popup,{class:styles$7.tickWrap,show:state$2.activeTick>-1,closeable:!0,onClickCloseIcon:()=>{stopTick(),this.sendMessage()},style:{width:"100%",height:"100%",display:"flex",background:"transparent"}},{default:()=>{var B;return[createVNode(Tick,{dots:((B=state==null?void 0:state.osmd)==null?void 0:B.numerator)||getDuration(state.osmd).numerator||0,repeat:state$2.activeTickRepeat},null)]}}):null}});const container$1="_container_hiwv0_1",changeIndex="_changeIndex_hiwv0_6",activeopacity="_activeopacity_hiwv0_1",leftrotates="_leftrotates_hiwv0_1",rightrotates="_rightrotates_hiwv0_1";var styles$6={container:container$1,changeIndex,activeopacity,leftrotates,rightrotates};const formatFixedKey=(B,R)=>B==="piccolo"&&state$2.times[0]?ref(R+(1-state$2.times[0].octaveOffset)*12):ref(R),formatRelationship=(B,R)=>{let F=B[R]||B[0]||[];return typeof F[0]=="number"||typeof F[0]=="string"?[F]:typeof F[0]=="object"?F:[[]]};var FingeringComponentSvg=defineComponent({name:"fingering",props:{type:{type:String,default:""},fixedKey:{type:Number,default:0},fingeringInfo:{type:Object},loaded:{type:Function,default:()=>{}},viewInfo:{type:Object}},setup(B,{expose:R}){const F=toRefs(B),D=ref(null);ref(null);const G=ref(0),U=ref(0);return R({container:D,containerWidth:G}),()=>{var K,J,ie,ne,se,re,ae,le,ce,he,de,me,fe,ge,Se,Ee,ve;if(!((K=F.viewInfo.value)!=null&&K.activeType))return null;const W=formatFixedKey((J=B.fingeringInfo)==null?void 0:J.name,F.fixedKey.value).value,q=formatRelationship((ne=(ie=F.viewInfo.value)==null?void 0:ie.activeType)==null?void 0:ne.relationship,W||0),Y=[];state$2.activeNote&&((se=state$2.activeNote)==null||se.halfTone1.forEach(xe=>{var ye,Te,Le;let Pe=((Le=(Te=(ye=F.viewInfo.value)==null?void 0:ye.activeType)==null?void 0:Te.relationship)==null?void 0:Le[xe])||[];Pe=Pe.map(we=>"right"+we),Y.push(...Pe)}),(re=state$2.activeNote)==null||re.halfTone2.forEach(xe=>{var ye,Te,Le;let Pe=((Le=(Te=(ye=F.viewInfo.value)==null?void 0:ye.activeType)==null?void 0:Te.relationship)==null?void 0:Le[xe])||[];Pe=Pe.map(we=>"left"+we),Y.push(...Pe)}));const Q=()=>{let xe=U.value===q.length-1?0:U.value+1;U.value=xe},Z=q[U.value]||[];return createVNode("div",{ref:D,class:classnames((ae=B.fingeringInfo)==null?void 0:ae.name,styles$6.container),style:{width:((le=B.fingeringInfo)==null?void 0:le.direction)==="vertical"?(ce=B.fingeringInfo)==null?void 0:ce.width:"",height:((he=B.fingeringInfo)==null?void 0:he.direction)==="transverse"?((de=B.fingeringInfo)==null?void 0:de.height)||"":"100%",display:"flex",paddingLeft:((me=B.fingeringInfo)==null?void 0:me.direction)==="vertical"?(fe=B.fingeringInfo)==null?void 0:fe.paddingLeft:"",paddingRight:((ge=B.fingeringInfo)==null?void 0:ge.direction)==="vertical"?(Se=B.fingeringInfo)==null?void 0:Se.paddingRight:""}},[Z.includes(0)?createVNode("span",{style:{position:"absolute",top:".5vh",right:".5vw",color:"rgb(1, 193, 181)",fontWeight:"bold"}},[createTextVNode("\u8F6C\u8C03")]):null,createVNode("div",{style:{width:"100%",height:"100%"},class:Y,innerHTML:(ve=(Ee=F.viewInfo.value)==null?void 0:Ee.activeType)==null?void 0:ve.json.full2},null),q.length>1?createVNode("div",{role:"button",onClick:Q,class:["substituteFinger",styles$6.changeIndex]},[createTextVNode("\u66FF\u6307")]):null])}}});const fingering="_fingering_y2dbu_1";var styles$5={fingering};const subjectsSvg=["piano"],fingeringWidth=ref(0),fingeringStatus=ref("hidden"),fingeringViewInfo=async B=>{var F;const R=B;if(R){const D=await getTypes(R.name);if(D){const G=formatFixedKey$1(R.name,state$2.fixedKey),U=useFingeringSrc(D,R.name,G.value),{width:W,height:q}=await getImageSize(U.value),Y=((F=document.getElementById("colexiu-detail-music-sheet"))==null?void 0:F.clientHeight)||0,Q=state.evaluatingStatus?0:W,Z=Y/q;return fingeringWidth.value=Y?Z*Q:Q,W&&(fingeringStatus.value="show"),reactive({width:W,height:q,scale:Z,usedFixedKey:G.value,fullsrc:U.value,activeType:D,detail:R})}}else fingeringStatus.value="hidden"};var Fingering=defineComponent({name:"ColexiuFingering",props:{code:{type:String,default:-1}},setup(B){const{code:R}=toRefs(B),F=ref(null),D=ref(-1);return watch([R],async([G],[U])=>{if(D.value=formatId(R.value),G!==U){const W=await fingeringViewInfo(typeById[D.value]);W&&(F.value=W)}},{immediate:!0,deep:!0}),()=>{if(D.value<0||!F.value)return null;const G=typeById[D.value];return createVNode("div",{class:[styles$5.fingering,G.name,G.direction,"fingering"],style:{left:G.direction==="vertical"?state$2.notchHeight/2+"px":""}},[subjectsSvg.includes(G==null?void 0:G.name)?createVNode(FingeringComponentSvg,{viewInfo:F.value,type:G==null?void 0:G.name,fingeringInfo:G,fixedKey:state$2.fixedKey},null):createVNode(FingeringComponent,{viewInfo:F.value,type:G==null?void 0:G.name,fingeringInfo:G,fixedKey:state$2.fixedKey},null)])}}});const wrap$1="_wrap_1a32j_1",wrapItem="_wrapItem_1a32j_7",clearItem="_clearItem_1a32j_24",saveItem="_saveItem_1a32j_25";var styles$4={wrap:wrap$1,wrapItem,clearItem,saveItem};const getHasCache=()=>{var R,F,D;let B=!1;return state$3.sett.type==="staff"?B=!((R=musicInfo.musicSvg)!=null&&R.staff):B=state$3.sett.keySignature?!((F=musicInfo.musicSvg)!=null&&F.fixedTone):!((D=musicInfo.musicSvg)!=null&&D.firstTone),B};defineComponent({name:"productJson",setup(B,{expose:R}){const F=useOriginSearch();R({autoProduct:Y=>{var Q;F.modeType!=="json"&&(musicJSON.svg||(musicJSON.svg=((Q=document.getElementById("osmdSvgPage1"))==null?void 0:Q.outerHTML)||""),musicJSON.svg&&U(!1))}});const G=async()=>{await W({id:musicInfo.id,musicSvg:""}),Toast("\u6E05\u9664\u6210\u529F"),setTimeout(()=>{history.go(0)},500)},U=async(Y=!0)=>{var ne,se;if(!musicJSON.json){Y&&Toast("\u6CA1\u6709\u751F\u6210json\u6570\u636E,\u8054\u7CFB\u5F00\u53D1\u4EBA\u5458");return}if(!musicJSON.svg){Y&&Toast("\u6CA1\u6709\u751F\u6210svg\u6570\u636E,\u8054\u7CFB\u5F00\u53D1\u4EBA\u5458");return}let Q=null;Y&&(Q=Toast.loading({message:"\u4E0A\u4F20\u6570\u636E\u4E2D 1/2",duration:0}));const Z={svg:"",json:""};if(Z.json=await q(`${(ne=state$2.activeDetail)==null?void 0:ne.id}.json`,musicJSON.json),Q&&(Q.message="\u4E0A\u4F20\u6570\u636E\u4E2D 2/2"),Z.svg=await q(`${(se=state$2.activeDetail)==null?void 0:se.id}.svg`,musicJSON.svg),!Z.json||!Z.svg){Y&&Toast("\u4E0A\u4F20\u7F13\u5B58\u6570\u636E\u5931\u8D25");return}let K={id:musicInfo.id,musicSvg:""};const J={};state$3.sett.type==="staff"?J.staff=Z:state$3.sett.keySignature?J.fixedTone=Z:J.firstTone=Z,K.musicSvg=JSON.stringify(J),Q&&(Q.message="\u4FDD\u5B58\u6570\u636E\u4E2D"),console.log("\u{1F680} ~ body:",K);const ie=await W(K);(ie==null?void 0:ie.code)==200?Q&&(Q.message="\u4FDD\u5B58\u6210\u529F"):Q&&(Q.message="\u4FDD\u5B58\u5931\u8D25"),setTimeout(()=>{Q&&Q.close()},300)},W=async Y=>{const Q=await request.post("/musicSheet/updateRenderFile",{requestType:"json",data:Y});return Q.code===200&&Y.musicSvg&&(musicInfo.musicSvg=JSON.parse(Y.musicSvg)),Q},q=async(Y,Q)=>{const Z="cloud-coach",K=`https://${Z}.ks3-cn-beijing.ksyuncs.com/`;let J=Date.now()+"_"+Y,ie={filename:Y,bucketName:Z,postData:{filename:Y,acl:"public-read",key:J}};const ne=await request.post("/open/getUploadSign",{requestType:"json",data:ie}),se=new FormData,re={policy:ne.data.policy,signature:ne.data.signature,key:J,KSSAccessKeyId:ne.data.kssAccessKeyId,acl:"public-read",name:Y};for(let ae in re)se.append(ae,re[ae]);return se.append("file",new Blob([Q])),await request$1$1.post(K,{data:se}),K+J};return()=>createVNode(Fragment,null,[F.modeType==="json"&&createVNode("div",{class:styles$4.wrap},[createVNode(CellGroup,null,{default:()=>[createVNode(Cell,{center:!0},{title:()=>{var Y,Q,Z;return createVNode("div",{class:styles$4.wrapItem},[createVNode("span",null,[createTextVNode("\u7F13\u5B58\u72B6\u6001: ")]),createVNode("span",null,[createTextVNode("\u4E94\u7EBF\u8C31\xA0"),(Y=musicInfo.musicSvg)!=null&&Y.staff?createVNode(Icon,{name:"success",color:"rgba(103,201,176,1)"},null):createVNode(Icon,{name:"cross",color:"#ff6868"},null)]),createVNode("span",null,[createTextVNode("\u9996\u8C03\xA0"),(Q=musicInfo.musicSvg)!=null&&Q.firstTone?createVNode(Icon,{name:"success",color:"rgba(103,201,176,1)"},null):createVNode(Icon,{name:"cross",color:"#ff6868"},null)]),createVNode("span",null,[createTextVNode("\u56FA\u5B9A\u8C03\xA0"),(Z=musicInfo.musicSvg)!=null&&Z.fixedTone?createVNode(Icon,{name:"checked",color:"rgba(103,201,176,1)"},null):createVNode(Icon,{name:"cross",color:"#ff6868"},null)])])}}),createVNode(Cell,{class:styles$4.clearItem,title:"\u6E05\u9664\u7F13\u5B58\u6570\u636E",clickable:!0,onClick:G},null),createVNode(Cell,{class:styles$4.saveItem,title:"\u4FDD\u5B58\u7F13\u5B58\u6570\u636E",clickable:!0,onClick:U},null)]})])])}});const container="_container_11x1u_1",headTitle="_headTitle_11x1u_8",musicSheet="_musicSheet_11x1u_24",skeleton="_skeleton_11x1u_54",tips="_tips_11x1u_62",errorWrap="_errorWrap_11x1u_86",partName="_partName_11x1u_98";var styles$3={container,headTitle,musicSheet,skeleton,tips,errorWrap,partName};const tipsContainer="_tipsContainer_1tygt_1",backBtn="_backBtn_1tygt_7",content="_content_1tygt_21",parent="_parent_1tygt_26",myscale="_myscale_1tygt_1",item="_item_1tygt_37",img="_img_1tygt_42",iconHead="_iconHead_1tygt_46",btns="_btns_1tygt_52",btn="_btn_1tygt_52";var styles$2={tipsContainer,backBtn,content,parent,myscale,item,img,iconHead,btns,btn},iconHand2="data:image/png;base64,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",__glob_0_0=Object.freeze(Object.defineProperty({__proto__:null,default:iconHand2},Symbol.toStringTag,{value:"Module"})),iconHeader="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAE4AAABqCAMAAAAlSZcPAAAC91BMVEUAAAD/gFj/gVj/gVj/glP/gVj/f1b/gFf/gFn/eEz/+vf/gVv/gFf/gFj/gFj/gFf/fVn/gFv/bUn/ZjP/flb/gFb/glf/flf/rZb/c2/6+fj/2s/8+/nx7ev/cnD49fX18fDo4d7n4N7/eXD/d27+eGz/m37/fWn/e2X18fDk3tnq6urq5ePo4d/z8O//dHD/+Pb/qJL9/f3/8e3/pI3o4d//jnv/////oIbs5+X/////0MHu6ef/hm7m4N39+/vq4+H/g2P/fV//kGzr5+bq4eD8+/r49fXp5eH//f3h19ft6Ob//v759/fm4N3/dnP7+vn/mIn/g3r/jYL+c3D/qJP39fX18vH/+ff////m39z/gXjy7u3/qpL/hHj/dG7/7Obp4uD59vby7ezv6uj/pYr7+vr9jHj9hnT9dWrm393/eGb/jXT/jXH/gWj/eGTu6uj/lnf/j3H59/fv7Or5+fn////8+/rr5eP/9vT/oY//eXT/////eXT/1svy7+7+dnD/8/Dt6ej/m4n/lIT/loP/kID39fXx7ez/////moX/lIH/4dn+dGv/39X/2s729fX/////x7b/jHP/////pYjk3dr////k3Nn/6+jx8fH/+vr////+cnD+/f3+gnrm39318vH08O/o4d/u6ujq5OL28/Py7u3x7evp4+D7+fj+enX7+/re1dLi2tf59/ft6Ob+fHfr5uTk3dv+dHH49fXg19Tk3Nn+i4D+dnPd09D+fnj+gHnw6+rv6+r+eHTl3tzh2Nbb0c7+lIb+j4P+iX/j29j+nIv+jYLa0M3+h37+hn3+hXz+hHzs5uTh2NX+pJL+l4n+kIT+jIH/qZX+ppL+o5D+oY/39PTn4N7+lYf+koX+kYTc0s/Zzsv/r5j+no3t5+b+n47+mYr+iH/+loj/rZf/rJb/q5b/qJT+iH7/8fD+mor/8/Laz8z49/bz7+7+zcT+0cb+6+n+vLT+9vX+29fg2NX+ysH+4t/+xL7+qqL+p6A9AX6fAAAAnHRSTlMAWlc6DCZIFi8I7F1STkA4Kw4HBU0+NST22tmmIBj39vTo0MG+rIiGfTEiDPTw7+zr29nUwbOvraeioZaTioiEb2traV1OSUQtJQj7+fn4+Pf09PLy7Obm5eDf2NXKysrIw7y8sa6ppKSknoqGf39/fn59bkESDvn49/b27ezg3tza2tjYysrJycO+vrOwrqeVk4yKe29oYF5aNzNMD9szAAAHD0lEQVRo3qWYdVwTYRjHNyaKit3d3d3d3d3d3d3dnch0gMyYyCREhxvoEANEQZndLXb7h897d5v3xu1u8wfb+9l29/089T7v+57KJZXdObZokY7ajhWK9C1ao+Husqr/ULnGRW1akBlJi6Tr27C1u7CGFWyAMhrDeBmNRmDadENauENrUcRm05rDrAaDxRIfb7FYDAarNcxoBmANl31uO1aHYAZL6HFQREQEGkJDLQar0WzTlW/sYgaK6mwAiw89HnEvKioqNjYqNirq3r0IQAJQq9PXcYXWuojeZrZaOFhsSsp9pJSUFEAC8bsB8Wq0VUwrU4GjcbBYgNkFQMQLtYQBb4hS2vTyep2dRornGYDnX19hSmf787SIeyhu8AKJRoGn92+uhNa8nb9OG2aAuEnqOIqfTV++gDyt8aNgvc2ICsSJIHxWcFc+vZODgsHVMEt8qFMBzmjzDy4jQ6sfFOev1xqtBjQR0CteYrSg6AUPd06r4wfG2dDMkpU1zKzzb+csem2HR/oh49Ckt8I/vJyMRsDFTXbSQYZFgnF6HfQjI5LZ6HQ0awG3VJI2Y7UpEkUOpr4y2QDnJ+Vtgf6BJjAOcMoFOIlSzr/ocCBEDnAuKDjOrz67hfT6gIwDnCsKfuQ3jEXbW/EQGAe4uGAQvCkb44Ii+zNorQof+nDYBLigR0GgR4pHP1NFRkMqdBDhTH4uK9JUmKLN7HkQcIEmkykS/UW6MgbSuGkBCHc40B0dpp1dFXDwEODc0YdDvShcIWSdmzo4lMJ1SAaemwrYTOF6hiQHiFSocIByJU+jcCPfh4Qkh4CS0X+hVnm5EaRgDGlD4Vqe4PUevXVopcrr+Cw/5lXRGnrEoc4tVaq8R5SrEavT5T0mCNFUVY8p1qz8KoZmjjx2AKnqPlXaNJ69DyhWXaldSaNatbbs8dR4q9Xqyopp7SEREsrqmVrNq/J+pdouBcuSyQNALuLWSMBSadQipVNI65OfTfMCywic+7Q0GQDhOq4qm5YZTHMDV7ccC5YtIwK4jJu/i2la2tRqGVx7pmkF2BnNrpbDbapHGVtLYleXFmhyuHzq9PWqHfj3uXcjqZmQDTxVgAM127pxcLUl1Qavr7dDnTqbBA6yoARHKiOblpnJSj+15hwcRykzs3o9GLAJ67rExLyTwXmkYeAy0NeNX/4sIeEJjltYkr4uA2OeUhc1WXknOvpZwpO3GO7T8wHNqEu9qIqjXG3Q7frdO9G3gYfjXjzPTRnokYrAacgrRt+4eP763ejo2wkJOO7liwcPapNXa4huSf5eMzwc8e4Aj8Alvnz+4MEI8vosGC4TadulC+HhF89zvGcELvHFc9q+TNi64EHE7crl1xc484B3+w2Ge5X4EvGI+HlkFeE88d+adr16+dJTngfpwHAfk3hebiK/niIcMVkH+voiXjjPI3FJiYkoHQPwe1KLqgT/pdRZX1/fK5chfDwPx11LegU82t1/tZIL/6HfGeBdhfDx6SBxHA/crYLflUui6CaePInxruO4mw7eFInS88a+L3YUcBxPSAeOu3XzWhKfjurYbd6OJox3pHlHBR6EjysXCifwcqfHbkxrb03Yt6XPAU5wl08vhvvxmOehdODepmFWXYnTYh4y7zOBQzzOvBHMyvPCQ3ea5H0T4748BPMEXnVml8qJfZvnFM87w/MgfF9EtAPXYhCPTwdeKjmZdVLplJ0nVPPT66Ie8O1tjIOX2INZKTmwbwv6AO/cOcFdNNsu/HGsq29uPQGcwHuVG7sxhwQO8bD0Xvj9lad9vpbwBPGEdBA4trOAo8IX/evzka8/v9zm1g47L4lwlp0KHxEPVTPWrNDa4QgfnQq6UIoDTuTuWbxZcbwYgUcUCruMEQ5Lh9CsLtrXjgR7OmrTZUxPMh+eJ1QzZ57AO2/nce4+vjWVnmR0CygIMEY6IHxgHxc+gTeX1QJA3lTwaN5lPh3nRelYSzYoZqVMAhYRPmZ6H04g64Td3PNQvLPY2iGkYxnd3NlLjw/b3deIB+kQzBtPLz3shXGQBA9zdwW5MEov293ZPHH4ujQhl23pTcU4HzJ8Z/hqfu3gbaM3FdJbnjFi3lFkn1DNQvjujiK3PM43ZBscPOQuNdtqUhsyme3iGGfhG0VtF2U3s+O6S/G6NaA3s/Jb7aaD2LNjYBN6q63oIFAqjw/Z/K72K8U4CCg9pkwqXlCcjq7FJqqZxxTlh6jSJYrnqdSp04LFxUqUTs+8JLPUEc8tZZQ/gCoXdgCljscuK7vQhNmHd5dpWMXRjxZc9JS2jX7woTwLRNzYj2UUyoOuEPZDI0XKQFev5CMtedO8ZCD4AzcZadgZlXscyLYsUxaFGPphJV0cnllVbilVLo03jvLW5AIv3Rd60OuVU5Mjhyanl2eatCp5/QV2hN6EL0Y8wwAAAABJRU5ErkJggg==",__glob_0_1=Object.freeze(Object.defineProperty({__proto__:null,default:iconHeader},Symbol.toStringTag,{value:"Module"})),m1="/orchestra-music-score/assets/m1.37a4864c.png",__glob_0_3=Object.freeze(Object.defineProperty({__proto__:null,default:m1},Symbol.toStringTag,{value:"Module"})),m2="/orchestra-music-score/assets/m2.54eec470.png",__glob_0_4=Object.freeze(Object.defineProperty({__proto__:null,default:m2},Symbol.toStringTag,{value:"Module"})),m3="/orchestra-music-score/assets/m3.e37e9821.png",__glob_0_5=Object.freeze(Object.defineProperty({__proto__:null,default:m3},Symbol.toStringTag,{value:"Module"})),m4="/orchestra-music-score/assets/m4.b4d55e79.png",__glob_0_6=Object.freeze(Object.defineProperty({__proto__:null,default:m4},Symbol.toStringTag,{value:"Module"})),m5="/orchestra-music-score/assets/m5.a57ac942.png",__glob_0_7=Object.freeze(Object.defineProperty({__proto__:null,default:m5},Symbol.toStringTag,{value:"Module"})),step0="/orchestra-music-score/assets/step0.bd130092.png",__glob_0_8=Object.freeze(Object.defineProperty({__proto__:null,default:step0},Symbol.toStringTag,{value:"Module"})),step1="/orchestra-music-score/assets/step1.e7319562.png",__glob_0_9=Object.freeze(Object.defineProperty({__proto__:null,default:step1},Symbol.toStringTag,{value:"Module"})),step2="/orchestra-music-score/assets/step2.498f7723.png",__glob_0_10=Object.freeze(Object.defineProperty({__proto__:null,default:step2},Symbol.toStringTag,{value:"Module"}));const modules={"../images/icon-hand2.png":__glob_0_0,"../images/icon-header.png":__glob_0_1,"../images/index.ts":__glob_0_2,"../images/m1.png":__glob_0_3,"../images/m2.png":__glob_0_4,"../images/m3.png":__glob_0_5,"../images/m4.png":__glob_0_6,"../images/m5.png":__glob_0_7,"../images/step0.png":__glob_0_8,"../images/step1.png":__glob_0_9,"../images/step2.png":__glob_0_10},getImage=B=>{var R;return((R=modules[`../images/${B}`])==null?void 0:R.default)||""};var Tip1=defineComponent({name:"tips-tip1",emits:["hanldeStop"],setup(B,{emit:R}){const F=ref(),D=reactive({show:!1,steps:[{ele:"",eleRect:{},img:getImage("step0.png"),btnsStyle:{top:"-2.13333rem"},handStyle:{top:"-0.42667rem"},imgStyle:{top:"-2.4rem"}},{ele:"",img:getImage("step1.png"),btnsStyle:{top:"-2.2rem"},handStyle:{top:"-0.42667rem"},imgStyle:{top:"-2.4rem"}},{ele:"",img:getImage("step2.png"),btnsStyle:{top:"-0.7rem",left:"-2.5rem","justify-content":"space-evenly",padding:0},handStyle:{top:"-0.42667rem"},imgStyle:{top:"-2.7rem",left:"-2.3rem"}}],step:0}),G=()=>{for(let q=0;q{G()});const U=q=>{if(q!==void 0)D.step=q;else{if(D.step+1>=D.steps.length){W();return}D.step+=1}},W=()=>{R("hanldeStop")};return()=>createVNode("div",{class:styles$2.content,ref:F,onClick:()=>U()},[createVNode("div",{class:styles$2.backBtn,onClick:q=>{q.stopPropagation(),W()}},[createTextVNode("\u8DF3\u8FC7\u5F15\u5BFC")]),D.steps.map((q,Y)=>{var Q,Z;return createVNode("div",{style:{display:Y===D.step?"block":"none"},onClick:K=>K.stopPropagation()},[createVNode("div",{class:styles$2.item,style:{left:`${(Q=q.eleRect)==null?void 0:Q.left}px`,top:`${(Z=q.eleRect)==null?void 0:Z.top}px`}},[createVNode("img",{class:styles$2.img,style:q.imgStyle,src:q.img},null),createVNode("img",{class:styles$2.iconHead,style:q.handStyle,src:getImage("icon-header.png")},null),createVNode("div",{class:styles$2.btns,style:q.btnsStyle},[D.step+1==D.steps.length?createVNode(Fragment,null,[createVNode(Button,{class:styles$2.btn,round:!0,color:"transparent",style:{"border-color":"#fff"},type:"primary",onClick:()=>U(0)},{default:()=>[createTextVNode("\u518D\u770B\u4E00\u904D")]}),createVNode(Button,{class:styles$2.btn,round:!0,type:"primary",onClick:()=>W()},{default:()=>[createTextVNode("\u5B8C\u6210")]})]):createVNode(Button,{class:styles$2.btn,round:!0,type:"primary",onClick:()=>U()},{default:()=>[createTextVNode("\u4E0B\u4E00\u6B65 ("),D.step+1,createTextVNode("/"),D.steps.length,createTextVNode(")")]})])]),createVNode("div",{innerHTML:q.ele},null)])})])}}),Tip2=defineComponent({name:"tips-tip1",emits:["hanldeStop"],setup(B,{emit:R}){const F=ref(),D=reactive({show:!1,step:0,steps:[{ele:"",eleRect:{},img:getImage("m1.png"),btnsStyle:{top:"2.4rem",left:"-0.1rem"},handStyle:{top:"0.6rem",left:"0.1rem"},imgStyle:{top:"0.6rem",left:"-0.2rem"}},{ele:"",eleRect:{},img:getImage("m2.png"),btnsStyle:{top:"2.2rem"},handStyle:{top:"0.6rem",left:"0.1rem"},imgStyle:{width:"2.6rem",top:"0.6rem",left:"-0.2rem"}},{img:getImage("m3.png"),btnsStyle:{top:"2.6rem"},handStyle:{top:"0.6rem",left:"0.1rem"},imgStyle:{width:"2.45333rem",top:"0.6rem",left:"-0.2rem"}},{ele:"",eleRect:{},img:getImage("m4.png"),btnsStyle:{top:"2.5rem",left:"-1.5rem"},handStyle:{top:"0.6rem",left:"0.1rem"},imgStyle:{width:"2.45333rem",top:"0.6rem",left:"-1.7rem"}},{ele:"",eleRect:{},img:getImage("m5.png"),btnsStyle:{top:"2.2rem",left:"-2rem",width:"2.93333rem","justify-content":"space-evenly",padding:0},handStyle:{top:"0.6rem",left:"0.1rem"},imgStyle:{top:"0.4rem",left:"-2rem",width:"2.93333rem"}}]}),G=()=>{for(let q=0;q{G()});const U=q=>{if(q!==void 0)D.step=q;else{if(D.step+1>=D.steps.length){W();return}D.step+=1}},W=()=>{R("hanldeStop")};return()=>createVNode("div",{class:styles$2.content,ref:F,onClick:()=>U()},[createVNode("div",{class:styles$2.backBtn,onClick:q=>{q.stopPropagation(),W()}},[createTextVNode("\u8DF3\u8FC7\u5F15\u5BFC")]),D.steps.map((q,Y)=>{var Q;return createVNode("div",{style:{display:Y===D.step?"block":"none"},onClick:Z=>Z.stopPropagation()},[createVNode("div",{onClick:Z=>Z.stopPropagation(),class:styles$2.item,style:{width:"2.18667rem",left:`${(Q=q.eleRect)==null?void 0:Q.left}px`}},[createVNode("img",{class:styles$2.img,style:q.imgStyle,src:q.img},null),createVNode("img",{class:styles$2.iconHead,style:q.handStyle,src:getImage("icon-hand2.png")},null),createVNode("div",{class:styles$2.btns,style:q.btnsStyle},[D.step+1==D.steps.length?createVNode(Fragment,null,[createVNode(Button,{class:styles$2.btn,round:!0,color:"transparent",style:{"border-color":"#fff"},type:"primary",onClick:()=>U(0)},{default:()=>[createTextVNode("\u518D\u770B\u4E00\u904D")]}),createVNode(Button,{class:styles$2.btn,round:!0,type:"primary",onClick:()=>W()},{default:()=>[createTextVNode("\u5B8C\u6210")]})]):createVNode(Button,{class:styles$2.btn,round:!0,type:"primary",onClick:()=>U()},{default:()=>[createTextVNode("\u4E0B\u4E00\u6B65 ("),D.step+1,createTextVNode("/"),D.steps.length,createTextVNode(")")]})])]),createVNode("div",{innerHTML:q.ele},null)])})])}}),Tips=defineComponent({name:"tips-step",setup(B,R){const F=ref(!1),D=reactive({tipStep:1,tip1:!1,tip2:!1});watch(modelType,()=>{modelType.value==="practice"&&U()});const G=W=>{localStorage.setItem(W,"ok")},U=()=>{const W=useOriginSearch();if(W.questionId||W.lessonTrainingId)return;const q=localStorage.getItem("isFirstTip"),Y=localStorage.getItem("isFirstModel");modelType.value=="init"&&!q?(F.value=!0,D.tipStep=1):modelType.value=="practice"&&!Y&&(F.value=!0,D.tipStep=2)};return onMounted(()=>{U()}),()=>createVNode(Popup,{teleport:"body",closeOnClickOverlay:!1,class:styles$2.tipsContainer,show:F.value,"onUpdate:show":W=>F.value=W},{default:()=>[D.tipStep==1&&createVNode(Tip1,{onHanldeStop:()=>{F.value=!1,G("isFirstTip")}},null),D.tipStep==2&&createVNode(Tip2,{onHanldeStop:()=>{F.value=!1,G("isFirstModel")}},null)]})}}),AfterClassTraining=defineComponent({name:"afterClassTraining",setup(){return watch(()=>state$2.initRendered,()=>{var B,R;state$2.initRendered&&window.parent.postMessage({api:"admin-selectMusicMeasure",start:(B=state$2.times[0])==null?void 0:B.measureNumberPrinted,end:(R=state$2.times[state$2.times.length-1])==null?void 0:R.measureNumberPrinted,speed:state$2.activeSpeed},"*")}),watch(()=>state$2.section.length,()=>{var B,R;state$2.section.length===2&&window.parent.postMessage({api:"admin-selectMusicMeasure",start:(B=state$2.section[0])==null?void 0:B.measureNumberPrinted,end:(R=state$2.section[1])==null?void 0:R.measureNumberPrinted,speed:state$2.activeSpeed,change:!0},"*")}),()=>""}});const modelWraper="_modelWraper_xj35j_1",wrap="_wrap_xj35j_8";var styles$1={modelWraper,wrap},model1="/orchestra-music-score/assets/model-1.b93fcb09.png",model2="/orchestra-music-score/assets/model-2.b9e6613b.png",model3="/orchestra-music-score/assets/model-3.6da5a4f0.png",ModelWraper=defineComponent({name:"modelWraper",props:{onChangeModelType:{type:Function,default:()=>{}}},setup(B,R){return()=>createVNode("div",{class:styles$1.modelWraper,onClick:F=>F.stopPropagation()},[createVNode("div",{class:styles$1.wrap},[createVNode("img",{"data-step":"step0",onClick:()=>B.onChangeModelType("practice"),src:model1},null),createVNode("img",{"data-step":"step1",onClick:()=>B.onChangeModelType("follow"),src:model3},null),createVNode("img",{"data-step":"step2",onClick:()=>B.onChangeModelType("evaluation"),src:model2},null)])])}});const follow="_follow_1hnxg_4",title="_title_1hnxg_12",endBtns="_endBtns_1hnxg_16",button="_button_1hnxg_21",hasText="_hasText_1hnxg_29",bigIcon="_bigIcon_1hnxg_52",start="_start_1hnxg_59";var styles={follow,title,endBtns,button,hasText,bigIcon,start},iconFollwBtn="/orchestra-music-score/assets/icon-follwBtn.9fb45e5d.png";const togglePlayer=(B=!1)=>{let R=document.querySelector("#globalPlayer");R&&(R.style.display=B?"":"none")},data=reactive({list:[],index:0,start:!1,times:[],endIndex:0});useToggle(!0);const noteFrequency=ref(0),audioFrequency=ref(0),followTime=ref(0),openToggleRecord=(B=!0)=>{if(postMessage$1({api:"cloudToggleFollow",content:{state:B?"start":"end"}}),B)followTime.value=Date.now();else{const R=Date.now()-followTime.value;followTime.value!==0&&R>0&&(followTime.value=0)}};""+new Date().valueOf();const onClear=()=>{state$2.times.forEach(B=>{const R=document.querySelector(`div[data-vf=vf${B.id}]`);R&&(R.classList.remove("follow-error"),R.classList.remove("follow-success"))})},getDefaultIndex=()=>{if(unitTestData.isSelectMeasureMode){data.endIndex=state$2.times.findIndex(R=>R.NoteToGraphicalNoteObjectId==state$2.section[1].NoteToGraphicalNoteObjectId);const B=state$2.times.findIndex(R=>R.NoteToGraphicalNoteObjectId==state$2.section[0].NoteToGraphicalNoteObjectId);return B>-1?B:0}return 0},handleStart=()=>{onClear(),data.start=!0,openToggleRecord(!0),data.index=getDefaultIndex(),data.list=[],setStepIndex(state.osmd,data.index),getNoteIndex(),refreshView()},handleEnd=()=>{data.start=!1,openToggleRecord(!1),data.index=getDefaultIndex(),setStepIndex(state.osmd,data.index),getNoteIndex()},next=()=>{state.osmd.product?state.osmd.cursor.setPosition(state$2.times[data.index].cursorBox):state.osmd.cursor.next(),refreshView()},getNoteIndex=()=>{const B=state$2.times[data.index];return B.frequency?(noteFrequency.value=B.frequency,state$2.fixedKey=B.realKey,{id:B.id,min:B.frequency-(B.frequency-B.noteElement.pitch.prevFrequency)*.1,max:B.frequency+(B.noteElement.pitch.nextFrequency-B.frequency)*.1}):(data.index=data.index+1,next(),getNoteIndex())};let checking=!1;const onFollowTime=B=>{var F;if(unitTestData.isSelectMeasureMode&&data.index>=data.endIndex){handleEnd();return}const R=(F=B==null?void 0:B.content)==null?void 0:F.frequency;audioFrequency.value=R,data.list.push(R),checked()},checked=()=>{if(checking)return;checking=!0;const B=getNoteIndex();for(let R=0;RB.min&&F{const F=document.querySelector(`div[data-vf=vf${B.id}]`);F&&(R?(F.classList.remove("follow-error"),F.classList.add("follow-success")):(F.classList.remove("follow-success"),F.classList.add("follow-error")))};var Follow=defineComponent({name:"follow",setup(B,{expose:R}){return onMounted(()=>{togglePlayer(),listenerMessage("cloudFollowTime",onFollowTime)}),onUnmounted(()=>{removeListenerMessage("cloudFollowTime",onFollowTime),togglePlayer(!0),onClear(),setStepIndex(state.osmd,0)}),R({data,handleEnd}),()=>createVNode(Teleport,{to:"#colexiu-detail-music-sheet"},{default:()=>[createVNode("div",{class:styles.follow},[createVNode(Transition,{name:"start",duration:300},{default:()=>[!data.start&&createVNode(Button,{style:{backgroundImage:`url(${iconFollwBtn})`,marginLeft:state$2.isSpecialShapedScreen?`${state$2.notchHeight/4}px`:""},class:[styles.button,styles.start,styles.followBtn],onClick:()=>handleStart()},null)]})])]})}});const musicJSON=reactive({json:"",svg:"",rended:!1}),MusicSheetRef=ref();var HomeIndex=defineComponent({name:"Colexiu",setup(){const B=useOriginSearch(),R=browser(),F=ref(!1);state$2.midiPlayIniting=!0;const D=ref(!0),G=ref(!1),U=ref(""),W=ref("init"),q=ref(""),Y=ref({}),Q=ref({}),[Z,K]=useDetail(B.id);watch(Z,async()=>{if(Z.value==="success"&&K.value.xmlFileUrl){Q.value=typeById[formatId(K.value.code||"")]||{};const{showFingering:ce,frozenMode:he,compulsionEvaluating:de}=useActivity(),[me,fe,ge]=await useFingering(ce.value?K.value.code:void 0);W.value=me.value,q.value=fe.value,Y.value=ge.value,state$2.frozenMode=he.value,G.value=de.value;const Se=await useXml(K.value.xmlFileUrl,K.value);if(Se.value)U.value=Se.value;else{D.value=!1,renderError.value=!0;return}}Z.value==="error"&&(renderError.value=!0)}),onMounted(()=>{window.appName="colexiu",event$1.on("settingFingeringChange",ie),postMessage$1({api:"setEventTracking",content:{type:"klx_xiaokuAI"}}),B.chenkuang&&(state$2.chenkuang=!0)}),onUnmounted(()=>{var ce,he;event$1.off("settingFingeringChange",ie),typeof((ce=state==null?void 0:state.audiosInstance)==null?void 0:ce.destroy)=="function"&&((he=state.audiosInstance)==null||he.destroy())});function J(ce,he){let de=!0;return function(){if(!de)return!1;de=!1,setTimeout(()=>{ce(),de=!0},he)}}const ie=J(()=>{const{direction:ce}=Q.value;ce==="vertical"&&(Toast("\u52A0\u8F7D\u4E2D\uFF0C\u8BF7\u7A0D\u540E..."),setTimeout(()=>{MusicSheetRef.value.reRender()},16))},300);useSpecialShapedScreen(),useSuspendPlay();const ne=()=>{window.isLoading=!1,postMessage$1({api:"cloudLoading",content:{show:!1,type:"fullscreen"}})},se=async ce=>new Promise(he=>{let de=[];request.get(`/musicSheetCategories/queryTree?page=1&rows=999&parentId=${ce}`).then(me=>{(me==null?void 0:me.code)==200?(de=me.data.map(fe=>fe.id),he(de)):he([])}).catch(me=>{he([])})});ref();const re=async ce=>{var Ee,ve,xe,Pe;ne(),state$2.initRendered=!0,console.time("\u83B7\u53D6\u6570\u636E"),state.osmd=ce;const he=(store_legacy.get("speeds")||{})[B.id],de=ce.bpm||ce.Sheet.userStartTempoInBPM;state$2.activeSpeed=he||K.value.playSpeed||de||100,state$2.baseSpeed=K.value.playSpeed||de||100,state$2.code=((Ee=K.value)==null?void 0:Ee.code)||"",state$2.activeDetail.originalSpeed=state$2.baseSpeed;const me=await se(49),{musicSheetCategoriesId:fe}=state$2.activeDetail;state$2.skipTick=me.includes(fe),console.log("\u{1F62F}\uFF5E",ce,state$2),state$2.renderType==="native"&&(state$2.times=getAllNodes(ce)),B.modeType==="json"||getHasCache(),console.timeEnd("\u83B7\u53D6\u6570\u636E"),console.log("\u{1F680} \uFF5E\u{1F440}~ detailState.times",state$2.times);const ge=((ve=state$2.times[state$2.times.length-1||0])==null?void 0:ve.endtime)||0;state$2.isAppPlay&&useMidi(ge,K.value.midiUrl),state.durationNum||(state.durationNum=ge),useCamera(),changeSpeed(state$2.activeSpeed),(((xe=state$2.setting)==null?void 0:xe.resets)||[]).includes("SPEED")&&state$2.activeDetail&&changeSpeed((Pe=state$2.activeDetail)==null?void 0:Pe.originalSpeed),setAudioInit();const Se=B.modelType;Se&&(modelType.value=Se),D.value=!1;try{restPromptMain(state$2.times)}catch{}Se&&Se=="evaluation"&&(state.evaluatingStatus=!0,nextTick(()=>{onChangeModelType(Se)})),nextTick(()=>{useFee(),B.chenkuang&&refreshView()})},ae=async()=>{D.value=!0},le=()=>{ne(),renderError.value=!0,D.value=!1};return watch(()=>state.evaluatingStatus,()=>{var ce;state$3.sett.fingering&&((ce=Q.value)==null?void 0:ce.direction)==="vertical"&&nextTick(()=>{MusicSheetRef.value.reRender()})}),()=>{D.value||Z.value;const ce=renderError.value||Z.value==="error",{width:he,paddingRight:de,paddingLeft:me,direction:fe}=Q.value,ge=W.value!=="init",Se=he||"0px",Ee=de||"0px",ve=me||"0px",xe=fe==="vertical",Pe=fe==="vertical"?"20px":"0px",ye=W.value==="show"&&state$3.sett.fingering&&!state.evaluatingStatus,Te=fe==="vertical"&&ye,Le={...xe&&{margin:"auto",marginRight:0},width:Q.value&&Te?`calc(100% - ${Se} - ${Ee} - ${ve} - ${Pe})`:""};return createVNode(Fragment,null,[createVNode("div",{class:[styles$3.container,state$3.sett.eyeProtection&&"eyeProtection",R.android&&"android"]},[createVNode(Transition,{name:"van-slide-down"},{default:()=>[!D.value&&createVNode(Buttons,{class:styles$3.buttons},null)]}),createVNode("div",{id:"colexiu-detail-music-sheet",class:[styles$3.musicSheet,{evaluating:state.evaluatingStatus||modelType.value==="follow"}],style:{paddingLeft:state$2.isSpecialShapedScreen?state$2.notchHeight/2+"px":"auto",paddingBottom:ye&&Q.value.height?Q.value.height:"40px",background:state$3.sett.camera?`rgba(${state$3.sett.eyeProtection?"253,244,229":"255,255,255"} ,${state$3.sett.opacity/100}) !important`:""}},[!!K.value.musicSheetName&&createVNode("div",{style:{width:D.value?"":Le.width},class:styles$3.headTitle},[K.value.musicSheetName]),state$2.partName?createVNode("div",{style:{width:D.value?"":Le.width},class:styles$3.partName},[state$2.partName]):null,createVNode(Skeleton,{class:styles$3.skeleton,rowWidth:"80%",title:!0,loading:Z.value==="loading"},null),createVNode(Skeleton,{class:styles$3.skeleton,row:6,loading:D.value},null),U.value&&ge&&createVNode(Fragment,null,[createVNode(MusicSheet,{ref:MusicSheetRef,style:Le,score:U.value,EngravingRules:{DYMusicScoreType:state$3.sett.type},opotions:{drawTitle:!1,drawComposer:!0,drawLyricist:!1,drawMetronomeMarks:!0,drawMeasureNumbers:!0,autoResize:!1},onStartRender:ae,onRenderError:le,onRerender:re},null),ye&&createVNode(Fingering,{code:K.value.code},null)]),modelType.value==="follow"&&createVNode(Follow,{ref:followRef},null),state$2.chenkuang&&createVNode("div",{style:{height:"100px"}},null)]),!D.value&&createVNode(ButtonsPlayer,null,null),createVNode(TickPopup,{score:U.value},null),createVNode(Permission,null,null),createVNode(HelperPopup,null,null),createVNode(MusicList,null,null),createVNode(AfterClassTraining,null,null),createVNode(Transition,{name:"van-slide-up",onAfterEnter:()=>{F.value=!0}},{default:()=>[!D.value&&modelType.value=="init"&&createVNode(ModelWraper,{onChangeModelType},null)]}),F.value&&!ce&&createVNode(Tips,null,null)]),createVNode(Transition,{name:"van-slide-up"},{default:()=>[soundEffectShow.value&&createVNode(SoundEffect,null,null)]}),!D.value&&createVNode(UnitTest,null,null),!B.lessonTrainingId&&!B.questionId&&K.value.musicSheetType=="CONCERT"&&createVNode(ToggleMusicSheet,null,null)])}}});let startTime=Date.now(),timer=null;const initBehaviorId=""+Date.now(),recordTotalTime=()=>{const B=useClientType();if(B=="web")return;const R=useOriginSearch(),F=getRequestHostname(),D=(Date.now()-startTime)/1e3;if(startTime=Date.now(),!(D<0))if(R.lessonTrainingId){const G=browser();request.post("/studentLessonTraining/lessonTrainingRecord",{prefix:F,requestType:"json",data:{materialType:"SONG",record:{clientType:B==null?void 0:B.toLocaleUpperCase(),practiceSource:"LESSON_TRAINING",feature:"PRACTICE",deviceType:G.android?"ANDROID":G.isApp?"IOS":"WEB",behaviorId:initBehaviorId,playTime:D,musicSheetId:R.id},courseScheduleId:R.courseScheduleId,lessonTrainingId:R.lessonTrainingId,materialId:R.materialId}})}else request.post("/musicPracticeRecord/save",{prefix:F,requestType:"json",data:{musicSheetId:R.id,sysMusicScoreId:R.id,feature:"PRACTICE",practiceSource:"PRACTICE",playTime:D,deviceType:getPlatform(),behaviorId:initBehaviorId}})},sendBackRecordTotalTime=()=>{clearInterval(timer),recordTotalTime()},userInfo=reactive({id:"",membershipDays:0,purchaseMemberRecord:!1,vipMember:!1}),renderError=ref(!1);var App=defineComponent({setup(){const B=async()=>{var F,D;if(!sessionStorage.getItem("Authorization")){const G=await promisefiyPostMessage({api:"getToken"});(F=G==null?void 0:G.content)!=null&&F.accessToken&&sessionStorage.setItem("Authorization",G.content.tokenType+" "+G.content.accessToken)}try{const G=await request.get("/user/getUserInfo");Object.assign(userInfo,(G==null?void 0:G.data)||{}),(D=G.data)!=null&&D.clientType&&(storeData.platformType=G.data.clientType)}catch(G){console.log(G),renderError.value=!0,window.isLoading=!1,postMessage$1({api:"cloudLoading",content:{show:!1,type:"fullscreen"}})}};return onMounted(()=>{B(),clearInterval(timer),timer=setInterval(()=>{recordTotalTime()},60*1e3)}),()=>createVNode(Fragment,null,[!!userInfo.id&&createVNode(Fragment,null,[createVNode(HomeIndex,null,null)]),renderError.value&&createVNode("div",{class:styles$3.errorWrap},[createVNode(Empty,null,null)])])}});export{promisefiyPostMessage as $,App as A,Button as B,getLeveByScoreMeasure as C,close$2 as D,Empty as E,Fragment as F,Grid as G,postMessage$1 as H,classnames as I,getVoiceChinesName as J,Empty$1 as K,Section as L,MusicSheet as M,reactive as N,store_legacy as O,Popup as P,NoticeBar as Q,event as R,Skeleton as S,Toast as T,OpenSheetMusicDisplay as U,styles$c as V,mergeProps as W,computed as X,BackIcon as Y,queryString as Z,nextTick as _,createVNode as a,changeSpeed as a$,index as a0,Canvg as a1,PageFormat as a2,Dialog as a3,getRequestHostname as a4,startRun as a5,truthProp as a6,getCurrentInstance as a7,inBrowser$1 as a8,onBeforeUnmount as a9,extend$2 as aA,mountComponent as aB,usePopupState as aC,Field as aD,Tabs as aE,Tab as aF,getTvIconUrl as aG,getEnvHostname as aH,score as aI,Popover as aJ,Player as aK,changeAllMode as aL,changeMode as aM,setPlayState as aN,resetPlayStatus as aO,setCurrentTime as aP,getFixTime as aQ,setCaptureMode as aR,clearIntervalTimeline as aS,event$1 as aT,getNoteByMeasuresSlursStart as aU,listenerMessage as aV,removeListenerMessage as aW,getLeveByScore as aX,Cell as aY,Switch as aZ,getDuration as a_,createNamespace as aa,isDef$1 as ab,addUnit as ac,withDirectives as ad,resolveDirective as ae,Icon as af,withInstall as ag,useXml as ah,svgtopng as ai,getRandomKey as aj,setTongjiTag as ak,cancelRaf as al,raf$2 as am,getSizeStyle as an,isObject$1 as ao,useTouch as ap,SwipeItem as aq,preventDefault as ar,clamp as as,Loading as at,unknownProp as au,useWindowSize as av,useExpose as aw,pick as ax,Swipe as ay,callInterceptor as az,browser as b,setAudioInit as b0,noteClick as b1,sectionChange as b2,ended as b3,Speed as b4,EventEmitter as b5,stopTick as b6,resolveComponent as b7,setPrefix as b8,List$1 as b9,CellGroup as ba,isVNode as bb,useReload as bc,noop$4 as bd,__vitePreload as be,relationships as bf,getVoicePartInfo as bg,MultipleAudio as bh,idIsInClassIds as bi,appoggianceFormate as bj,TickPopup as bk,Picker as bl,useChildren as bm,useScrollParent as bn,useClickAway as bo,useEventListener as bp,useRect as bq,useParent as br,Teleport as bs,getZIndexStyle as bt,vShow as bu,fieldProps as bv,lodash$1 as bw,toNext as bx,Sticky as by,Vex as bz,createApp as c,defineComponent as d,GridItem as e,formatZoom as f,createTextVNode as g,useSpecialShapedScreen as h,styles$3 as i,state$2 as j,state$3 as k,request as l,state as m,getAllNodes as n,onMounted as o,getParentNote as p,request$1$1 as q,ref as r,state$4 as s,toRefs as t,useOriginSearch as u,getCustomInfo as v,watch as w,formatXML as x,onlyVisible as y,getBoundingBoxByverticalNote as z};