web-music-score 6.0.0-pre.1 → 6.0.0-pre.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,87 @@
1
- /* WebMusicScore v6.0.0-pre.1 | (c) 2023-2025 Stefan Brockmann | MIT License | Includes: Tone.js (MIT License), Color Name to Code (MIT License) */
2
- "use strict";var WebMusicScore=(()=>{var Ds=Object.defineProperty,bg=Object.defineProperties,xg=Object.getOwnPropertyDescriptor,Ag=Object.getOwnPropertyDescriptors,Cg=Object.getOwnPropertyNames,Es=Object.getOwnPropertySymbols;var tu=Object.prototype.hasOwnProperty,Hh=Object.prototype.propertyIsEnumerable;var Kc=(i,t)=>(t=Symbol[i])?t:Symbol.for("Symbol."+i),_g=i=>{throw TypeError(i)},$h=Math.pow,Jc=(i,t,e)=>t in i?Ds(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,O=(i,t)=>{for(var e in t||(t={}))tu.call(t,e)&&Jc(i,e,t[e]);if(Es)for(var e of Es(t))Hh.call(t,e)&&Jc(i,e,t[e]);return i},Q=(i,t)=>bg(i,Ag(t));var Qr=(i,t)=>{var e={};for(var r in i)tu.call(i,r)&&t.indexOf(r)<0&&(e[r]=i[r]);if(i!=null&&Es)for(var r of Es(i))t.indexOf(r)<0&&Hh.call(i,r)&&(e[r]=i[r]);return e};var en=(i,t)=>{for(var e in t)Ds(i,e,{get:t[e],enumerable:!0})},vg=(i,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Cg(t))!tu.call(i,n)&&n!==e&&Ds(i,n,{get:()=>t[n],enumerable:!(r=xg(t,n))||r.enumerable});return i};var Sg=i=>vg(Ds({},"__esModule",{value:!0}),i);var d=(i,t,e)=>Jc(i,typeof t!="symbol"?t+"":t,e);var J=(i,t,e)=>new Promise((r,n)=>{var o=c=>{try{a(e.next(c))}catch(u){n(u)}},s=c=>{try{a(e.throw(c))}catch(u){n(u)}},a=c=>c.done?r(c.value):Promise.resolve(c.value).then(o,s);a((e=e.apply(i,t)).next())}),wg=function(i,t){this[0]=i,this[1]=t};var pe=i=>{var t=i[Kc("asyncIterator")],e=!1,r,n={};return t==null?(t=i[Kc("iterator")](),r=o=>n[o]=s=>t[o](s)):(t=t.call(i),r=o=>n[o]=s=>{if(e){if(e=!1,o==="throw")throw s;return s}return e=!0,{done:!1,value:new wg(new Promise(a=>{var c=t[o](s);c instanceof Object||_g("Object expected"),a(c)}),1)}}),n[Kc("iterator")]=()=>n,r("next"),"throw"in t?r("throw"):n.throw=o=>{throw o},"return"in t&&r("return"),n};var l0={};en(l0,{Audio:()=>Fo,Core:()=>hu,Pieces:()=>Yh,Score:()=>Vh,Theory:()=>xu});var Fo={};en(Fo,{addInstrument:()=>Rv,getCurrentInstrument:()=>Ov,getInstrumentList:()=>Nv,isMuted:()=>Dv,linearToDecibels:()=>Js,mute:()=>Mv,playNote:()=>Ua,stop:()=>za,unmute:()=>Ev,useInstrument:()=>Jf});var xu={};en(xu,{AccidentalType:()=>du,BeamGrouping:()=>Oi,Chord:()=>pu,DefaultGuitarNoteLabel:()=>GA,DefaultPitchNotation:()=>FA,DefaultTuningName:()=>pC,GuitarNoteLabel:()=>zs,GuitarNoteLabelList:()=>VA,Interval:()=>uo,KeySignature:()=>rr,Mode:()=>lu,Note:()=>U,NoteLength:()=>ir,NoteLengthProps:()=>Nt,PitchNotation:()=>ti,PitchNotationList:()=>PA,RhythmProps:()=>Kt,Scale:()=>ri,ScaleFactory:()=>ne,ScaleType:()=>Ti,SymbolSet:()=>Jr,TimeSignature:()=>ii,TimeSignatures:()=>po,TuningNameList:()=>lo,Tuplet:()=>Gr,alterTempoSpeed:()=>bu,getDefaultKeySignature:()=>Ys,getDefaultScale:()=>nC,getDefaultTempo:()=>Qs,getDefaultTimeSignature:()=>Xs,getPitchNotationName:()=>BA,getScale:()=>Pr,getScaleFactory:()=>Ml,getScaleFactoryList:()=>rC,getTempoString:()=>Ks,getTuningStrings:()=>$s,isNoteLength:()=>nr,isTupletRatio:()=>Zs,validateGuitarNoteLabel:()=>qA,validateIntervalQuality:()=>QA,validateNoteLength:()=>Br,validatePitchNotation:()=>_l,validateScaleType:()=>ho,validateTuningName:()=>fu,validateTupletRatio:()=>kl});var Zh=Object.defineProperty,Ig=(i,t,e)=>t in i?Zh(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,er=(i,t)=>{for(var e in t)Zh(i,e,{get:t[e],enumerable:!0})},ft=(i,t,e)=>Ig(i,typeof t!="symbol"?t+"":t,e),Xh={};er(Xh,{assert:()=>tb,doesNotThrow:()=>Tx,doesThrow:()=>Ix,fail:()=>nb,isArray:()=>yb,isArrayOrUndefined:()=>bb,isBigInt:()=>Gb,isBoolean:()=>Ob,isBooleanOrUndefined:()=>Rb,isDeepEqual:()=>sb,isDefined:()=>hb,isEmptyArray:()=>xb,isEmptyArrayOrUndefined:()=>Cb,isEmptyObject:()=>pb,isEmptyString:()=>Sb,isEmptyStringOrUndefined:()=>Tb,isEnumValue:()=>Pb,isEnumValueOrUndefined:()=>Fb,isEven:()=>Cx,isFalse:()=>Db,isFalseOrUndefined:()=>kb,isFinite:()=>Qb,isFloat:()=>Kb,isFunction:()=>Lb,isFunctionOrUndefined:()=>jb,isIncluded:()=>Sx,isIndex:()=>wx,isInfinity:()=>hx,isInteger:()=>Jb,isIntegerBetween:()=>ax,isIntegerBetweenExclusive:()=>cx,isIntegerEq:()=>rx,isIntegerGt:()=>ix,isIntegerGte:()=>nx,isIntegerLt:()=>ox,isIntegerLte:()=>sx,isIntegerOrUndefined:()=>ex,isMultipleOf:()=>_x,isNaNValue:()=>ux,isNeg:()=>mx,isNegInfinity:()=>dx,isNegZero:()=>xx,isNonEmptyArray:()=>Ab,isNonEmptyArrayOrUndefined:()=>_b,isNonEmptyString:()=>wb,isNonEmptyStringOrUndefined:()=>Nb,isNonNeg:()=>gx,isNonNull:()=>lb,isNonPos:()=>fx,isNull:()=>cb,isNullish:()=>ub,isNumber:()=>Vb,isNumberBetween:()=>Zb,isNumberBetweenExclusive:()=>Xb,isNumberEq:()=>Ub,isNumberGt:()=>zb,isNumberGte:()=>Yb,isNumberLt:()=>Hb,isNumberLte:()=>$b,isNumberOrUndefined:()=>Wb,isNumericString:()=>Bb,isObject:()=>db,isObjectOrUndefined:()=>fb,isOdd:()=>Ax,isPlainObject:()=>mb,isPos:()=>px,isPosInfinity:()=>lx,isPosZero:()=>bx,isPowerOfTwo:()=>vx,isSafeInteger:()=>tx,isSafeNumber:()=>qb,isStrictEqual:()=>ob,isString:()=>vb,isStringOrUndefined:()=>Ib,isTrue:()=>Mb,isTrueOrUndefined:()=>Eb,isTypedObject:()=>gb,isUndefined:()=>ab,isZero:()=>yx,require:()=>eb,requireDefined:()=>rb,requireElement:()=>ib,setErrorClass:()=>Jy});var Qh={};er(Qh,{charCount:()=>Zy,chunkString:()=>Yy,insertAt:()=>Hy,isString:()=>el,makeSentenceFromPascal:()=>Xy,removeAt:()=>$y,repeatString:()=>zy,replaceAt:()=>ou,splitByCaps:()=>Qy,splitByChars:()=>Ky,splitByStrings:()=>ol,stringify:()=>Gt,toCharArray:()=>Uy});var Kh={};er(Kh,{deepEqual:()=>Ps,getCtorName:()=>nl,hasProperties:()=>Wy,isObject:()=>wi});var y={};er(y,{doesNotThrow:()=>Vy,doesThrow:()=>Gy,isArray:()=>je,isArrayOrUndefined:()=>Gg,isBigInt:()=>sy,isBoolean:()=>Xg,isBooleanOrUndefined:()=>Qg,isDeepEqual:()=>ao,isDefined:()=>Dg,isEmptyArray:()=>Vg,isEmptyArrayOrUndefined:()=>Wg,isEmptyObject:()=>Lg,isEmptyString:()=>zg,isEmptyStringOrUndefined:()=>$g,isEnumValue:()=>iy,isEnumValueOrUndefined:()=>ny,isEven:()=>Ly,isFalse:()=>ty,isFalseOrUndefined:()=>ey,isFinite:()=>rn,isFloat:()=>gy,isFunction:()=>_r,isFunctionOrUndefined:()=>ry,isIncluded:()=>Fy,isIndex:()=>By,isInfinity:()=>Sy,isInteger:()=>Lt,isIntegerBetween:()=>rl,isIntegerBetweenExclusive:()=>vy,isIntegerEq:()=>xy,isIntegerGt:()=>Ay,isIntegerGte:()=>nu,isIntegerLt:()=>Cy,isIntegerLte:()=>_y,isIntegerOrUndefined:()=>by,isMultipleOf:()=>jy,isNaNValue:()=>il,isNeg:()=>Ny,isNegInfinity:()=>Iy,isNegZero:()=>Dy,isNonEmptyArray:()=>qg,isNonEmptyArrayOrUndefined:()=>Ug,isNonEmptyString:()=>Yg,isNonEmptyStringOrUndefined:()=>Zg,isNonNeg:()=>Ry,isNonNull:()=>kg,isNonPos:()=>Oy,isNull:()=>Mg,isNullish:()=>Eg,isNumber:()=>kt,isNumberBetween:()=>my,isNumberBetweenExclusive:()=>fy,isNumberEq:()=>uy,isNumberGt:()=>hy,isNumberGte:()=>ly,isNumberLt:()=>dy,isNumberLte:()=>py,isNumberOrUndefined:()=>cy,isNumericString:()=>oy,isObject:()=>wi,isObjectOrUndefined:()=>jg,isOdd:()=>ky,isPlainObject:()=>Pg,isPos:()=>Ty,isPosInfinity:()=>wy,isPosZero:()=>Ey,isPowerOfTwo:()=>Py,isSafeInteger:()=>yy,isSafeNumber:()=>ay,isStrictEqual:()=>Og,isString:()=>el,isStringOrUndefined:()=>Hg,isTrue:()=>Kg,isTrueOrUndefined:()=>Jg,isTypedObject:()=>Fg,isUndefined:()=>Rg,isZero:()=>My,tryOr:()=>qy});var Jh={};er(Jh,{forEachEnum:()=>Ng,getEnumEntries:()=>tl,getEnumKey:()=>Tg,getEnumKeys:()=>Fs,getEnumValues:()=>iu});function Fs(i){return Object.keys(i).filter(t=>isNaN(Number(t)))}function iu(i){return Fs(i).map(t=>i[t])}function tl(i){return Fs(i).map(t=>[t,i[t]])}function Tg(i,t){return Fs(i).find(e=>i[e]===t)}function Ng(i,t){for(let[e,r]of tl(i))t(e,r)}function Og(i,t){return i===t}function ao(i,t){return Ps(i,t)}function Rg(i){return i===void 0}function Mg(i){return i===null}function Eg(i){return i==null}function Dg(i){return i!==void 0}function kg(i){return i!==null}function wi(i){return typeof i=="object"&&i!==null&&!je(i)}function Lg(i){return wi(i)&&Object.keys(i).length===0}function jg(i){return i===void 0||wi(i)}function Pg(i){if(!wi(i))return!1;let t=Object.getPrototypeOf(i);return t===Object.prototype||t===null}function Fg(i,t){return wi(i)&&t.every(e=>e in i)}function Bg(i){return i instanceof Set}function je(i){return!!i&&Object.prototype.toString.call(i)==="[object Array]"}function Gg(i){return i===void 0||je(i)}function Vg(i){return je(i)&&i.length===0}function qg(i){return je(i)&&i.length>0}function Wg(i){return je(i)&&i.length===0||i===void 0}function Ug(i){return je(i)&&i.length>0||i===void 0}function el(i){return typeof i=="string"}function zg(i){return typeof i=="string"&&i.length===0}function Yg(i){return typeof i=="string"&&i.length>0}function Hg(i){return i===void 0||typeof i=="string"}function $g(i){return typeof i=="string"&&i.length===0||i===void 0}function Zg(i){return typeof i=="string"&&i.length>0||i===void 0}function Xg(i){return typeof i=="boolean"}function Qg(i){return i===void 0||typeof i=="boolean"}function Kg(i){return i===!0}function Jg(i){return i===!0||i===void 0}function ty(i){return i===!1}function ey(i){return i===!1||i===void 0}function _r(i){return typeof i=="function"}function ry(i){return i===void 0||typeof i=="function"}function iy(i,t){return iu(t).some(e=>e===i)}function ny(i,t){return i===void 0||iu(t).some(e=>e===i)}function oy(i){if(typeof i!="string"||i.trim()==="")return!1;let t=+i;return Number.isFinite(t)}function sy(i){return typeof i=="bigint"}function kt(i){return typeof i=="number"}function ay(i){return kt(i)&&Number.isSafeInteger(i)}function cy(i){return typeof i=="number"||i===void 0}function uy(i,t){return kt(i)&&i===t}function hy(i,t){return kt(i)&&kt(t)&&i>t}function ly(i,t){return kt(i)&&kt(t)&&i>=t}function dy(i,t){return kt(i)&&kt(t)&&i<t}function py(i,t){return kt(i)&&kt(t)&&i<=t}function my(i,t,e){return kt(i)&&kt(t)&&kt(e)&&i>=t&&i<=e}function fy(i,t,e){return kt(i)&&kt(t)&&kt(e)&&i>t&&i<e}function rn(i){return typeof i=="number"&&Number.isFinite(i)}function gy(i){return rn(i)&&!Lt(i)}function Lt(i){return typeof i=="number"&&rn(i)&&i===Math.trunc(i)}function yy(i){return Lt(i)&&Number.isSafeInteger(i)}function by(i){return typeof i=="number"&&rn(i)&&i===Math.trunc(i)||i===void 0}function xy(i,t){return Lt(i)&&i===t}function Ay(i,t){return Lt(i)&&kt(t)&&i>t}function nu(i,t){return Lt(i)&&kt(t)&&i>=t}function Cy(i,t){return Lt(i)&&kt(t)&&i<t}function _y(i,t){return Lt(i)&&kt(t)&&i<=t}function rl(i,t,e){return Lt(i)&&kt(t)&&kt(e)&&i>=t&&i<=e}function vy(i,t,e){return Lt(i)&&kt(t)&&kt(e)&&i>t&&i<e}function il(i){return typeof i=="number"&&Number.isNaN(i)}function Sy(i){return i===1/0||i===-1/0}function wy(i){return i===1/0}function Iy(i){return i===-1/0}function Ty(i){return typeof i=="number"&&i>0}function Ny(i){return typeof i=="number"&&i<0}function Oy(i){return typeof i=="number"&&i<=0}function Ry(i){return typeof i=="number"&&i>=0}function My(i){return typeof i=="number"&&i===0}function Ey(i){return typeof i=="number"&&i===0&&1/i===1/0}function Dy(i){return typeof i=="number"&&i===0&&1/i===-1/0}function ky(i){return Lt(i)&&Math.abs(i)%2===1}function Ly(i){return Lt(i)&&i%2===0}function jy(i,t){return typeof i=="number"&&typeof t=="number"&&i%t===0}function Py(i){return Lt(i)&&i>0&&(i&i-1)===0}function Fy(i,t){return je(t)?t.includes(i):Bg(t)?t.has(i):!1}function By(i,t){return je(t)?rl(i,0,t.length-1):nu(i,0)}function Gy(i){try{return i(),!1}catch(t){return!0}}function Vy(i){try{return i(),!0}catch(t){return!1}}function qy(i,t){try{return i()}catch(e){return _r(t)?t():t}}function Wy(i,t){return wi(i)&&t.every(e=>e in i)}function Ps(i,t){if(i===t)return!0;if(i===null||t===null||typeof i!="object"||typeof t!="object")return!1;if(Array.isArray(i)&&Array.isArray(t))return i.length!==t.length?!1:i.every((n,o)=>Ps(n,t[o]));if(Array.isArray(i)!==Array.isArray(t))return!1;let e=Object.keys(i),r=Object.keys(t);if(e.length!==r.length)return!1;for(let n of e)if(!Object.prototype.hasOwnProperty.call(t,n)||!Ps(i[n],t[n]))return!1;return!0}function nl(i){return i===null?"null":je(i)?"Array":typeof i!="object"?typeof i:Object.prototype.toString.call(i).slice(8,-1)||"Object"}function Uy(i){return i.split("")}function zy(i,t){if(!Lt(t)||t<0)throw new Error("repeatStr: Invalid repeatCount = "+t);return new Array(t+1).join(i)}function Yy(i,t){if(!Lt(t)||t<1)throw new Error("chunckString: Invalid chuckSize = "+t);let e=[];for(let r=0;r<i.length;r+=t)e.push(i.slice(r,r+t));return e}function ou(i,t,e,r){if(!Lt(e)||e<0)throw new Error("replaceAt: Invalid removeCount = "+e);if(!Lt(t)||t<0||t+e>i.length)throw new Error("replaceAt: Invalid pos = "+t+", removeCount = "+e+", str.length = "+i.length);return i.substring(0,t)+r+i.substring(t+e)}function Hy(i,t,e){return ou(i,t,0,e)}function $y(i,t,e){return ou(i,t,e,"")}function Zy(i,t){if(t.length!==1||i.length===0)return 0;let e=0;for(let r=0;r<i.length;r++)i[r]===t&&e++;return e}function Xy(i){if(i==="")return"";let t=i.charAt(0),e="",r=()=>{t!==""&&(e===""?e+=t.charAt(0).toUpperCase()+t.substring(1):e+=" "+t,t="")},n=o=>o.toUpperCase()!==o.toLowerCase()&&o===o.toUpperCase();for(let o=1;o<i.length;o++){let s=i.charAt(o);n(s)&&r(),t+=s.toLowerCase()}return r(),e}function Gt(i,t=5,e=new WeakSet){if(i===null)return"null";if(i===void 0)return"undefined";let r=typeof i;switch(r){case"boolean":return i?"true":"false";case"number":return il(i)?"NaN":rn(i)?i.toString():i<0?"-Infinity":"Infinity";case"bigint":return`${i}n`;case"string":return`"${i}"`;case"symbol":return i.description?`Symbol(${i.description})`:"Symbol()";case"function":return`[Function${i.name?` ${i.name}`:""}]`}if(e.has(i))return"[Circular]";if(t<=0)return"[Depth limit]";t--,e.add(i);let n=s=>Gt(s,t,e);if(je(i)){let s=i.map(a=>n(a)).join(", ");return s.length===0?"[ ]":`[ ${s} ]`}if(ArrayBuffer.isView(i)){if(i instanceof DataView)return`DataView(${i.byteLength})`;let s=Array.from(i).map(a=>n(a)).join(", ");return`${i.constructor.name}[ ${s} ]`}if(i instanceof ArrayBuffer)return`ArrayBuffer(${i.byteLength})`;if(i instanceof Map){let s=Array.from(i.entries()).map(([a,c])=>`${n(a)} => ${n(c)}`).join(", ");return s.length===0?`Map(${i.size}){ }`:`Map(${i.size}){ ${s} }`}if(i instanceof Set){let s=Array.from(i.values()).map(a=>n(a)).join(", ");return s.length===0?`Set(${i.size}){ }`:`Set(${i.size}){ ${s} }`}if(i instanceof WeakMap)return"WeakMap{ ? }";if(i instanceof WeakSet)return"WeakSet{ ? }";if(i instanceof Date)return`Date("${i.toISOString()}")`;if(i instanceof RegExp)return i.toString();if(i instanceof Error)return`${i.name}("${i.message}")`;if(i instanceof Promise)return"Promise{ ? }";if(i instanceof URL)return`URL("${i.href}")`;if(i instanceof URLSearchParams)return`URLSearchParams("${i.toString()}")`;if(i===Math)return"Math";if(i===JSON)return"JSON";if(i===Reflect)return"Reflect";if(i===Intl)return"Intl";if(typeof(i==null?void 0:i.toString)=="function"&&i.toString!==Object.prototype.toString)try{let s=i.toString();if(!/^\[object .+\]$/.test(s))return s}catch(s){}if(r==="object"){let s=nl(i),a=Object.entries(i).map(([c,u])=>`${n(c)}: ${n(u)}`);return a.length===0?`${s}{ }`:`${s}{ ${a.join(", ")} }`}return String(i)}function Qy(i){return i.split(/(?=[A-Z])/).filter(t=>!!t)}function ol(i,...t){if(t.length===0)return[i];let e=t.map(n=>n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")),r=new RegExp(e.join("|"),"g");return i.split(r)}function Ky(i,t){return ol(i,...t.split(""))}var L=Gt,sl=Error;function Jy(i){sl=i!=null?i:Error}function V(...i){let t=i.join(", ");throw new sl("Assertion Failed!"+(t===""?"":" "+t))}function tb(i,t){i||V(t)}function eb(i,t){return i==null&&V(`Expected ${L(i)} not to be nullish`,t),i}function rb(i,t){return i===void 0&&V(`Expected ${L(i)} not to be undefined`,t),i}function ib(i,t,e){return y.isIndex(i,t)||V(`Expected ${i} to be index for array ${L(t)}`,e),t[i]}function nb(i){V(i)}function ob(i,t,e){return y.isStrictEqual(i,t)||V(`Expected ${L(i)} to ne strict equal to ${t}`,e),i}function sb(i,t,e){return y.isDeepEqual(i,t)||V(`Expected ${L(i)} to deep equal with ${L(t)}`,e),i}function ab(i,t){return y.isUndefined(i)||V(`Expected ${L(i)} to be undefined`,t),i}function cb(i,t){return y.isNull(i)||V(`Expected ${L(i)} to be null`,t),i}function ub(i,t){return y.isNullish(i)||V(`Expected ${L(i)} to be null or undefined`,t),i}function hb(i,t){return y.isDefined(i)||V(`Expected ${L(i)} to be defined`,t),i}function lb(i,t){return y.isNonNull(i)||V(`Expected ${L(i)} to be defined`,t),i}function db(i,t){return y.isObject(i)||V(`Expected ${L(i)} to be object`,t),i}function pb(i,t){return y.isEmptyObject(i)||V(`Expected ${L(i)} to be empty object`,t),i}function mb(i,t){return y.isPlainObject(i)||V(`Expected ${L(i)} to be plain object`,t),i}function fb(i,t){return y.isObjectOrUndefined(i)||V(`Expected ${L(i)} to be object or undefined`,t),i}function gb(i,t,e){return y.isTypedObject(i,t)||V(`Expected ${L(i)} to have keys ${L(t)}`,e),i}function yb(i,t){return y.isArray(i)||V(`Expected ${L(i)} to be array`,t),i}function bb(i,t){return y.isArrayOrUndefined(i)||V(`Expected ${L(i)} to be array or undefined`,t),!0}function xb(i,t){y.isEmptyArray(i)||V(`Expected ${L(i)} to be empty array`,t)}function Ab(i,t){y.isNonEmptyArray(i)||V(`Expected ${L(i)} to be non-empty array`,t)}function Cb(i,t){y.isEmptyArrayOrUndefined(i)||V(`Expected ${L(i)} to be empty array or undefined`,t)}function _b(i,t){y.isNonEmptyArrayOrUndefined(i)||V(`Expected ${L(i)} to be non-empty array or undefined`,t)}function vb(i,t){return y.isString(i)||V(`Expected ${L(i)} to be string`,t),i}function Sb(i,t){return y.isEmptyString(i)||V(`Expected ${L(i)} to be empty string`,t),i}function wb(i,t){return y.isNonEmptyString(i)||V(`Expected ${L(i)} to be non-empty string`,t),i}function Ib(i,t){return y.isStringOrUndefined(i)||V(`Expected ${L(i)} to be string or undefined`,t),i}function Tb(i,t){return y.isEmptyStringOrUndefined(i)||V(`Expected ${L(i)} to be empty string or undefined`,t),i}function Nb(i,t){return y.isNonEmptyStringOrUndefined(i)||V(`Expected ${L(i)} to be non-empty string or undefined`,t),i}function Ob(i,t){return y.isBoolean(i)||V(`Expected ${L(i)} to be boolean`,t),i}function Rb(i,t){return y.isBooleanOrUndefined(i)||V(`Expected ${L(i)} to be boolean or undefined`,t),i}function Mb(i,t){return y.isTrue(i)||V(`Expected ${L(i)} to be true`,t),i}function Eb(i,t){return y.isTrueOrUndefined(i)||V(`Expected ${L(i)} to be true or undefined`,t),i}function Db(i,t){return y.isFalse(i)||V(`Expected ${L(i)} to be false`,t),i}function kb(i,t){return y.isFalseOrUndefined(i)||V(`Expected ${L(i)} to be false or undefined`,t),i}function Lb(i,t){return y.isFunction(i)||V(`Expected ${L(i)} to be function`,t),i}function jb(i,t){return y.isFunctionOrUndefined(i)||V(`Expected ${L(i)} to be function or undefined`,t),i}function Pb(i,t,e){return y.isEnumValue(i,t)||V(`Expected ${L(i)} to be enum val`,e),i}function Fb(i,t,e){return y.isEnumValueOrUndefined(i,t)||V(`Expected ${L(i)} to be enum val or undefined`,e),i}function Bb(i,t){return y.isNumericString(i)||V(`Expected ${L(i)} to be numeric string`,t),i}function Gb(i,t){return y.isBigInt(i)||V(`Expected ${L(i)} to be BigInt`,t),i}function Vb(i,t){return y.isNumber(i)||V(`Expected ${L(i)} to be number`,t),i}function qb(i,t){return y.isSafeNumber(i)||V(`Expected ${L(i)} to be safe number`,t),i}function Wb(i,t){return y.isNumberOrUndefined(i)||V(`Expected ${L(i)} to be number or undefined`,t),i}function Ub(i,t,e){return y.isNumberEq(i,t)||V(`Expected ${L(i)} to be number equal to ${L(t)}`,e),i}function zb(i,t,e){return y.isNumberGt(i,t)||V(`Expected ${L(i)} to be number > ${L(t)}`,e),i}function Yb(i,t,e){return y.isNumberGte(i,t)||V(`Expected ${L(i)} to be number >= ${L(t)}`,e),i}function Hb(i,t,e){return y.isNumberLt(i,t)||V(`Expected ${L(i)} to be number < ${L(t)}`,e),i}function $b(i,t,e){return y.isNumberLte(i,t)||V(`Expected ${L(i)} to be number <= ${L(t)}`,e),i}function Zb(i,t,e,r){return y.isNumberBetween(i,t,e)||V(`Expected number ${L(t)} <= ${L(i)} <= ${L(e)}`,r),i}function Xb(i,t,e,r){return y.isNumberBetweenExclusive(i,t,e)||V(`Expected number ${L(t)} < ${L(i)} < ${L(e)}`,r),i}function Qb(i,t){return y.isFinite(i)||V(`Expected ${L(i)} to be finite`,t),i}function Kb(i,t){return y.isFloat(i)||V(`Expected ${L(i)} to be float`,t),i}function Jb(i,t){return y.isInteger(i)||V(`Expected ${L(i)} to be integer`,t),i}function tx(i,t){return y.isSafeInteger(i)||V(`Expected ${L(i)} to be safe integer`,t),i}function ex(i,t){return y.isIntegerOrUndefined(i)||V(`Expected ${L(i)} to be integer or undefined`,t),i}function rx(i,t,e){return y.isIntegerEq(i,t)||V(`Expected ${L(i)} to be integer equal to ${L(t)}`,e),i}function ix(i,t,e){return y.isIntegerGt(i,t)||V(`Expected ${L(i)} to be integer > ${L(t)}`,e),i}function nx(i,t,e){return y.isIntegerGte(i,t)||V(`Expected ${L(i)} to be integer >= ${L(t)}`,e),i}function ox(i,t,e){return y.isIntegerLt(i,t)||V(`Expected ${L(i)} to be integer < ${L(t)}`,e),i}function sx(i,t,e){return y.isIntegerLte(i,t)||V(`Expected ${L(i)} to be integer <= ${L(t)}`,e),i}function ax(i,t,e,r){return y.isIntegerBetween(i,t,e)||V(`Expected integer ${L(t)} <= ${L(i)} <= ${L(e)}`,r),i}function cx(i,t,e,r){return y.isIntegerBetweenExclusive(i,t,e)||V(`Expected integer ${L(t)} < ${L(i)} < ${L(e)}`,r),i}function ux(i,t){return y.isNaNValue(i)||V(`Expected ${L(i)} to be NaN`,t),NaN}function hx(i,t){return y.isInfinity(i)||V(`Expected ${L(i)} to be +-Infinity`,t),i}function lx(i,t){return y.isPosInfinity(i)||V(`Expected ${L(i)} to be +Infinity`,t),i}function dx(i,t){return y.isNegInfinity(i)||V(`Expected ${L(i)} to be -Infinity`,t),i}function px(i,t){return y.isPos(i)||V(`Expected ${L(i)} to be positive (> 0)`,t),i}function mx(i,t){return y.isNeg(i)||V(`Expected ${L(i)} to be negative (< 0)`,t),i}function fx(i,t){return y.isNonPos(i)||V(`Expected ${L(i)} to be non-positive (<= 0)`,t),i}function gx(i,t){return y.isNonNeg(i)||V(`Expected ${L(i)} to be non-negative (>= 0)`,t),i}function yx(i,t){return y.isZero(i)||V(`Expected ${L(i)} to be 0`,t),i}function bx(i,t){return y.isPosZero(i)||V(`Expected ${L(i)} to be +0`,t),i}function xx(i,t){return y.isNegZero(i)||V(`Expected ${L(i)} to be -0`,t),i}function Ax(i,t){return y.isOdd(i)||V(`Expected ${L(i)} to odd`,t),i}function Cx(i,t){return y.isEven(i)||V(`Expected ${L(i)} to even`,t),i}function _x(i,t,e){return y.isMultipleOf(i,t)||V(`Expected ${L(i)} to be divisble bu ${L(t)}`,e),i}function vx(i,t){return y.isPowerOfTwo(i)||V(`Expected ${L(i)} to be power of two`,t),i}function Sx(i,t,e){return y.isIncluded(i,t)||V(`Expected ${L(i)} to be included in ${L(t)}`,e),i}function wx(...i){let t=i.shift(),e=y.isString(i[i.length-1])?i.pop():void 0,r=y.isArray(i[0])?i.shift():void 0;return y.isIndex(t,r)||V(r===void 0?`Expected ${t} to be index`:`Expected ${t} to be index for ${L(r)}`,e),t}function Ix(i,t){return y.doesThrow(i)||V("Expected to throw",t),!0}function Tx(i,t){return y.doesNotThrow(i)||V("Expected to throw",t),!0}var Nx={};er(Nx,{accept:()=>Dx,decline:()=>kx,erase:()=>al,eraseAll:()=>Bx,isConsentPending:()=>Ex,read:()=>jx,readBool:()=>Fx,readInt:()=>Px,save:()=>Lx,setExpireDays:()=>Mx});var Bs="ConsentCookie",tr,so,eu=Gs(Bs);tr=eu==="accept"||eu==="decline"?eu:void 0;function Ox(){return typeof document=="undefined"?[]:document.cookie.split(";").map(t=>t.trim())}function su(i,t){let e=i+"="+t.toString()+";sameSite=Lax;";return so&&(e+="expires="+so.toUTCString()+";"),typeof document!="undefined"&&(document.cookie=e),t}function Gs(i,t){let e=Ox().find(r=>r.startsWith(i+"="));return e===void 0?t:e.substring(i.length+1)}function Rx(i){typeof document!="undefined"&&(document.cookie=i+"=;expires=Thu, 01 Jan 1970 00:00:00 UTC;")}function Mx(i){so=new Date,so.setDate(so.getDate()+i)}function Ex(){return tr===void 0}function Dx(){tr="accept",su(Bs,tr)}function kx(){tr="decline",su(Bs,tr)}function Lx(i,t){return tr==="accept"&&su(i,t),t}function jx(i,t){var e;return tr==="accept"&&(e=Gs(i,t))!=null?e:t}function Px(i,t){if(tr==="accept"){let e=Gs(i);return e===void 0?t:parseInt(e)}else return t}function Fx(i,t){if(tr==="accept"){let e=Gs(i);return e===void 0?t:/true|1/i.test(e)}else return t}function al(i){(tr==="accept"||i===Bs)&&Rx(i)}function Bx(){typeof document!="undefined"&&document.cookie.split(";").forEach(i=>al(i.trim().split("=")[0]))}var Vs={};er(Vs,{DPI:()=>cl,FontSize:()=>ul,HostAddress:()=>Qx,IsMobileDevice:()=>Xx,IsTouchDevice:()=>Zx,PxPerMm:()=>au,ScrollbarWidth:()=>$x,mmToPx:()=>ks,pxToMm:()=>Kx,toPx:()=>Jx});function Gx(){try{let i=document.createElement("div");i.style.width="1in",document.body.appendChild(i);let t=i.offsetWidth;return i.remove(),t||96}catch(i){return 96}}function Vx(){try{let i=document.createElement("div");i.style.visibility="hidden",i.style.width="100px",document.body.appendChild(i);let t=i.offsetWidth;i.style.overflow="scroll";let e=document.createElement("div");e.style.width="100%",i.appendChild(e);let r=e.offsetWidth;return i.parentNode&&i.parentNode.removeChild(i),t-r}catch(i){return 0}}function qx(){try{let i=document.createElement("div");i.style.cssText="display:inline-block; padding:0; line-height:1; position:absolute; visibility:hidden; font-size:1em",i.appendChild(document.createTextNode("M")),document.body.appendChild(i);let t=i.offsetHeight;return document.body.removeChild(i),t}catch(i){return 16}}function Wx(){if(typeof window=="undefined")return!1;if("ontouchstart"in window||"DocumentTouch"in window||"createTouch"in document&&"createTouchList"in document)return!0;var i=" -webkit- -moz- -o- -ms- ".split(" "),t=function(r){return window.matchMedia(r).matches},e=["(",i.join("touch-enabled),("),"heartz",")"].join("");return t(e)}function Ux(){let i=navigator.userAgent||navigator.vendor||window.opera;return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(i)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(i.substr(0,4))}function zx(){return typeof location=="undefined"||!location.host?"localhost":`${location.protocol}//${location.host}`}var Yx=/^(mm|cm|in|inch|px|em)$/,Hx=/^([0-9\\.]+)(.*)$/,cl=Gx(),au=cl/25.4,$x=Vx(),ul=qx(),Zx=Wx(),Xx=Ux(),Qx=zx();function Kx(i){return i/au}function ks(i){return i*au}function Jx(i){if(typeof i=="number")return i;let t=NaN,e,r=i.toString().match(Hx);if(r&&r[1]){t=parseFloat(r[1]);let n=r[2]?r[2].toLowerCase():"undefined";e=Yx.test(n)?n:void 0,e||console.log("Unknown unit '"+n+"' => using 'px'.")}else t=parseFloat(i);switch(Xh.isFinite(t,"value in function toPx"),e){case"mm":return ks(t);case"cm":return ks(t)*10;case"in":case"inch":return ks(t)*25.4;case"em":return ul*t;default:case"px":return t}}var $={};er($,{Arr:()=>hl,Dom:()=>pl,Enum:()=>Jh,Math:()=>fl,Obj:()=>Kh,Str:()=>Qh});var hl={};er(hl,{arrayContains:()=>sA,chunckArray:()=>aA,duplicate:()=>eA,fillArray:()=>iA,getRangeArray:()=>oA,getSequenceArray:()=>nA,isArray:()=>je,mapRangeArray:()=>dl,mapSequenceArray:()=>ll,removeDuplicates:()=>rA,toArray:()=>tA});function tA(i){return je(i)?i:[i]}function eA(i){var t;return(t=i==null?void 0:i.slice())!=null?t:[]}function rA(i,t){return t!==void 0?i.filter((e,r,n)=>r===n.findIndex(o=>t(e,o))):i.filter((e,r,n)=>r===n.indexOf(e))}function iA(i,t){if(!Lt(t)||t<0)throw new Error("fillArray: Invalid fillCount = "+t);return new Array(t).fill(i)}function ll(i,t){if(!Lt(i)||i<0)throw new Error("mapSequenceArray: Invalid len = "+i);let e=new Array(i);for(let r=0;r<i;r++)e[r]=t(r);return e}function nA(i){return ll(i,t=>t)}function dl(i,t,e){if(!Lt(i))throw new Error("mapRangeArray: Invalid start = "+t);if(!Lt(t))throw new Error("mapRangeArray: Invalid end = "+t);let r=Math.abs(t-i)+1,n=new Array(r);for(let o=0,s=i,a=Math.sign(t-i);o<r;s+=a,o++)n[o]=e(s);return n}function oA(i,t){return dl(i,t,e=>e)}function sA(i,t){return i.indexOf(t)>=0}function aA(i,t){if(!Lt(t)||t<1)throw new Error("chunckArray: Invalid chunckSize = "+t);let e=[];for(let r=0;r<i.length;r+=t)e.push(i.slice(r,r+t));return e}var pl={};er(pl,{addClass:()=>cA,appendTo:()=>gA,getButton:()=>AA,getCanvas:()=>CA,getCanvasTextWidth:()=>wA,getDimension:()=>vA,getHeight:()=>mA,getOffset:()=>lA,getPadding:()=>_A,getWidth:()=>dA,hasClass:()=>cu,removeClass:()=>uA,removeFromParent:()=>yA,setHeight:()=>fA,setOffset:()=>hA,setRect:()=>xA,setVisibility:()=>bA,setWidth:()=>pA,styleLayoutChanged:()=>SA});function ml(i){var t;return typeof document=="undefined"?void 0:(t=document.getElementById(i))!=null?t:void 0}function Dt(i){return i===void 0?void 0:Vs.toPx(i)}function cu(i,t){return t.length===0?!1:i.classList?i.classList.contains(t):!!i.className.match(new RegExp("(\\s|^)"+t+"(\\s|$)"))}function cA(i,t){t.length!==0&&(i.classList?i.classList.add(t):cu(i,t)||(i.className+=" "+t))}function uA(i,t){if(t.length!==0){if(i.classList)i.classList.remove(t);else if(cu(i,t)){var e=new RegExp("(\\s|^)"+t+"(\\s|$)");i.className=i.className.replace(e," ")}}}function hA(i,t,e,r="px"){i.style.left=t+r,i.style.top=e+r}function lA(i){let{left:t,top:e}=i.getBoundingClientRect();if(typeof window!="undefined"&&(t+=window.pageXOffset,e+=window.pageYOffset),typeof document!="undefined"){let r=document.documentElement;t-=r.clientLeft,e-=r.clientTop}return{left:t,top:e}}function dA(i){if(i instanceof Window)return i.innerWidth;{let t=parseFloat(getComputedStyle(i,null).width.replace("px",""));return isNaN(t)?0:t}}function pA(i,t){i.style.width=t+"px"}function mA(i){if(i instanceof Window)return i.innerHeight;{let t=parseFloat(getComputedStyle(i,null).height.replace("px",""));return isNaN(t)?0:t}}function fA(i,t){i.style.height=t+"px"}function gA(i,t){t.appendChild(i)}function yA(i){i.remove()}function bA(i,t){i.style.display=t?"block":"none"}function xA(i,t,e,r,n,o="px"){i.style.left=t+o,i.style.top=e+o,i.style.width=r+o,i.style.height=n+o}function AA(i){let t=typeof i=="string"?ml(i):i;return t instanceof HTMLButtonElement?t:void 0}function CA(i){let t=typeof i=="string"?ml(i):i;return t instanceof HTMLCanvasElement?t:void 0}function _A(i){var s;if(!i)return{top:0,right:0,bottom:0,left:0};let t=Dt(i.paddingTop),e=Dt(i.paddingRight),r=Dt(i.paddingBottom),n=Dt(i.paddingLeft),o=((s=i.padding)!=null?s:"").toString().split(" ").filter(a=>a.length>0);switch(o.length){case 0:break;case 1:t!=null||(t=Dt(o[0])),e!=null||(e=Dt(o[0])),r!=null||(r=Dt(o[0])),n!=null||(n=Dt(o[0]));break;case 2:t!=null||(t=Dt(o[0])),e!=null||(e=Dt(o[1])),r!=null||(r=Dt(o[0])),n!=null||(n=Dt(o[1]));break;case 3:t!=null||(t=Dt(o[0])),e!=null||(e=Dt(o[1])),r!=null||(r=Dt(o[2])),n!=null||(n=Dt(o[1]));break;case 4:default:t!=null||(t=Dt(o[0])),e!=null||(e=Dt(o[1])),r!=null||(r=Dt(o[2])),n!=null||(n=Dt(o[3]));break}return t!=null||(t=0),e!=null||(e=0),r!=null||(r=0),n!=null||(n=0),{top:t,right:e,bottom:r,left:n}}function vA(i){let t=Dt(i==null?void 0:i.left),e=Dt(i==null?void 0:i.right),r=Dt(i==null?void 0:i.top),n=Dt(i==null?void 0:i.bottom),o=Dt(i==null?void 0:i.width),s=Dt(i==null?void 0:i.height);return o===void 0&&t!==void 0&&e!==void 0&&(o=e-t),s===void 0&&r!==void 0&&n!==void 0&&(s=n-r),{left:t,top:r,width:o,height:s}}function SA(i,t){return!i&&!t?!1:!i||!t?!0:i.left!==t.left||i.top!==t.top||i.right!==t.right||i.bottom!==t.bottom||i.width!==t.width||i.height!==t.height}var no;function wA(i,t){!no&&typeof document!="undefined"&&(no=document.createElement("canvas"));let e=no==null?void 0:no.getContext("2d");return e?(e.font=t,e.measureText(i).width):0}var fl={};er(fl,{avg:()=>DA,calcNormal:()=>EA,clamp:()=>ru,cmp:()=>kA,interpolateCoord:()=>RA,interpolateY:()=>MA,isInteger:()=>Lt,isNumber:()=>kt,linearToDecibels:()=>IA,mod:()=>TA,romanize:()=>NA,sum:()=>gl,toOrdinalNumber:()=>OA});function IA(i){if(isFinite(i))return i<=0?-1/0:20*Math.log10(i);throw new Error("linearToDecibel: Invalid linearVolume = "+i)}function TA(i,t){return(i%t+t)%t}function NA(i){if(!Lt(i)||i<0)throw new Error("romanize: Invalid n = "+i);for(var t=String(+i).split(""),e=["","C","CC","CCC","CD","D","DC","DCC","DCCC","CM","","X","XX","XXX","XL","L","LX","LXX","LXXX","XC","","I","II","III","IV","V","VI","VII","VIII","IX"],r="",n=3;n--;)r=(e[+t.pop()+n*10]||"")+r;return Array(+t.join("")+1).join("M")+r}function OA(i){if(!Lt(i))throw new Error("toOrdinalNumber: Invalid n = "+i);let t=i.toString(),e=Number(t.charAt(t.length-1));return i===1||i>=20&&e===1?t+"st":i===2||i>=20&&e===2?t+"nd":i===3||i>=20&&e===3?t+"rd":t+"th"}function RA(i,t,e,r,n){return{x:i+(e-i)*n,y:t+(r-t)*n}}function MA(i,t,e,r,n){let o=(n-i)/(e-i);return t+(r-t)*o}function ru(i,t,e){return Math.min(Math.max(i,t),e)}function EA(i,t,e,r){let n=e-i,s=-(r-t),a=n,c=Math.sqrt(s*s+a*a);return c>0?(s/=c,a/=c):(s=0,a=1),{nx:s,ny:a}}function gl(i){return i.reduce((t,e)=>e+t,0)}function DA(...i){return gl(i)/i.length}function kA(i,t){return i<t?-1:i>t?1:0}var Le=(i,t)=>i===t,jr=class{};var yl=class We extends jr{constructor(...t){if(super(),ft(this,"coords"),t.length<2)throw new TypeError("Vec needs minumum two coords!");this.coords=t}static vec2(t,e){return new We(t,e)}static vec3(t,e,r){return new We(t,e,r)}static zero(t){if(t<2)throw new TypeError("Vec.zero requires dimension >= 2");return new We(...Array(t).fill(0))}get dim(){return this.coords.length}get length(){return Math.hypot(...this.coords)}magnitude(){return this.length}get x(){return this.coords[0]}get y(){return this.coords[1]}get z(){if(this.coords[2]===void 0)throw new TypeError("Vec z-coord not available!");return this.coords[2]}add(...t){let e=t[0]instanceof We?t[0].coords:t;if(this.coords.length!==e.length)throw new TypeError("Coordinate length mismatch!");return new We(...this.coords.map((r,n)=>r+e[n]))}sub(...t){let e=t[0]instanceof We?t[0].coords:t;if(this.coords.length!==e.length)throw new TypeError("Coordinate length mismatch!");return new We(...this.coords.map((r,n)=>r-e[n]))}mul(t){return new We(...this.coords.map(e=>e*t))}div(t){return new We(...this.coords.map(e=>e/t))}dot(t){if(this.coords.length!==t.coords.length)throw new TypeError("Coordinate length mismatch!");return this.coords.reduce((e,r,n)=>e+r*t.coords[n],0)}distance(t){if(this.coords.length!==t.coords.length)throw new TypeError("Coordinate length mismatch!");return Math.hypot(...this.coords.map((e,r)=>e-t.coords[r]))}normalize(){let t=this.length;if(t===0)throw new TypeError("Cannot normalize zero-length vector!");return this.div(t)}static lerp(t,e,r){if(t.coords.length!==e.coords.length)throw new TypeError("Coordinate length mismatch!");if(!rn(r))throw new TypeError("Lerp t is not finite!");return t.add(e.sub(t).mul(r))}toLength(t){let e=this.length;return e===0?this:this.mul(t/e)}clamp(t,e,r){let n=this.length;if(n===0){if(t!==void 0){if(r&&r.coords.length!==this.coords.length)throw new TypeError("Coordinate length mismatch!");return(r&&r.length!==0?r.normalize():new We(1,...Array(this.coords.length-1).fill(0))).mul(t)}return this}return e!==void 0&&n>e?this.normalize().mul(e):t!==void 0&&n<t?this.normalize().mul(t):this}equals(t){return this.coords.length===t.coords.length&&this.coords.every((e,r)=>e===t.coords[r])}clone(){return new We(...this.coords)}toObject(){return{x:this.x,y:this.y,z:this.z}}[Symbol.iterator](){return this.coords[Symbol.iterator]()}toString(){return`Vec(${this.coords.join(", ")})`}},uu=class Ie{constructor(...t){if(ft(this,"x"),ft(this,"y"),ft(this,"width"),ft(this,"height"),t.length===0?this.x=this.y=this.width=this.height=0:t.length===2?(this.x=this.y=0,this.width=t[0],this.height=t[1]):(this.x=t[0],this.y=t[1],this.width=t[2],this.height=t[3]),this.width<0||this.height<0)throw new Error("Rect width and height must be non-negative.")}set(...t){if(t.length===0?this.x=this.y=this.width=this.height=0:t.length===2?(this.x=this.y=0,this.width=t[0],this.height=t[1]):(this.x=t[0],this.y=t[1],this.width=t[2],this.height=t[3]),this.width<0||this.height<0)throw new Error("Rect width and height must be non-negative.");return this}static fromPoints(t,e){let r=Math.min(t.x,e.x),n=Math.min(t.y,e.y),o=Math.abs(t.x-e.x),s=Math.abs(t.y-e.y);return new Ie(r,n,o,s)}static fromCenter(t,e,r,n){return new Ie(t-r/2,e-n/2,r,n)}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get centerX(){return this.x+this.width/2}get centerY(){return this.y+this.height/2}get center(){return{x:this.centerX,y:this.centerY}}get area(){return this.width*this.height}get isEmpty(){return this.width<=0||this.height<=0}containsPoint(t,e){return t>=this.left&&t<=this.right&&e>=this.top&&e<=this.bottom}containsRect(t){return t.left>=this.left&&t.right<=this.right&&t.top>=this.top&&t.bottom<=this.bottom}intersects(t){return!(t.right<this.left||t.left>this.right||t.bottom<this.top||t.top>this.bottom)}intersectionCopy(t){let e=Math.max(this.left,t.left),r=Math.max(this.top,t.top),n=Math.min(this.right,t.right),o=Math.min(this.bottom,t.bottom);return n<=e||o<=r?new Ie:new Ie(e,r,n-e,o-r)}unionCopy(t){let e=Math.min(this.left,t.left),r=Math.min(this.top,t.top),n=Math.max(this.right,t.right),o=Math.max(this.bottom,t.bottom);return new Ie(e,r,n-e,o-r)}insetCopy(t,e){return new Ie(this.x+t,this.y+e,this.width-2*t,this.height-2*e)}inflateCopy(t,e){return new Ie(this.x-t,this.y-e,this.width+2*t,this.height+2*e)}offsetInPlace(t,e){return this.x+=t,this.y+=e,this}offsetCopy(t,e){return new Ie(this.x+t,this.y+e,this.width,this.height)}scaleInPlace(t,e=t){return this.x=this.centerX-this.width*t/2,this.width*=t,this.y=this.centerY-this.height*e/2,this.height*=e,this}scaleCopy(t,e=t){return this.clone().scaleInPlace(t,e)}roundCopy(){let t=Math.round(this.left),e=Math.round(this.top),r=Math.round(this.right),n=Math.round(this.bottom);return new Ie(t,e,r-t,n-e)}floorCopy(){let t=Math.floor(this.left),e=Math.floor(this.top),r=Math.floor(this.right),n=Math.floor(this.bottom);return new Ie(t,e,r-t,n-e)}ceilCopy(){let t=Math.ceil(this.left),e=Math.ceil(this.top),r=Math.ceil(this.right),n=Math.ceil(this.bottom);return new Ie(t,e,r-t,n-e)}expandCopy(t,e){let r=Math.min(this.left,t),n=Math.min(this.top,e),o=Math.max(this.right,t),s=Math.max(this.bottom,e);return new Ie(r,n,o-r,s-n)}equals(t){return this.x===t.x&&this.y===t.y&&this.width===t.width&&this.height===t.height}clone(){return new Ie(this.x,this.y,this.width,this.height)}toString(){return`Rect(x=${this.x}, y=${this.y}, w=${this.width}, h=${this.height})`}toAnchoredRect(){return new G(this.left,this.right,this.top,this.bottom)}},G=class vi{constructor(...t){if(ft(this,"left"),ft(this,"anchorX"),ft(this,"right"),ft(this,"top"),ft(this,"anchorY"),ft(this,"bottom"),t.length===6)this.left=t[0],this.anchorX=t[1],this.right=t[2],this.top=t[3],this.anchorY=t[4],this.bottom=t[5];else if(t.length===4)this.left=t[0],this.right=t[1],this.anchorX=(this.left+this.right)/2,this.top=t[2],this.bottom=t[3],this.anchorY=(this.top+this.bottom)/2;else if(t.length===0)this.left=this.anchorX=this.right=0,this.top=this.anchorY=this.bottom=0;else throw new TypeError(`Invalid AnchoredRect args: ${t}`)}set(...t){if(t.length===6)this.left=t[0],this.anchorX=t[1],this.right=t[2],this.top=t[3],this.anchorY=t[4],this.bottom=t[5];else if(t.length===4)this.left=t[0],this.right=t[1],this.anchorX=(this.left+this.right)/2,this.top=t[2],this.bottom=t[3],this.anchorY=(this.top+this.bottom)/2;else if(t.length===0)this.left=this.anchorX=this.right=0,this.top=this.anchorY=this.bottom=0;else throw new TypeError(`Invalid AnchoredRect args: ${t}`);return this}static create(t,e,r,n){return new vi(t,t+r,e,e+n)}static createCentered(t,e,r,n){return new vi(t-r/2,t,t+r/2,e-n/2,e,e+n/2)}static createSections(t,e,r,n){return new vi(-t,0,e,-r,0,n)}get centerX(){return this.left+this.width/2}get centerY(){return this.top+this.height/2}get width(){return this.right-this.left}get height(){return this.bottom-this.top}get leftw(){return this.anchorX-this.left}get rightw(){return this.right-this.anchorX}get toph(){return this.anchorY-this.top}get bottomh(){return this.bottom-this.anchorY}contains(t,e){return t>=this.left&&t<=this.right&&e>=this.top&&e<=this.bottom}static overlap(t,e){return t.right>e.left&&t.left<e.right&&t.bottom>e.top&&t.top<e.bottom}static overlapX(t,e){return t.right>e.left&&t.left<e.right}static equals(t,e){return t==null&&e==null?!0:t==null||e==null?!1:t===e||t.left===e.left&&t.anchorX===e.anchorX&&t.right===e.right&&t.top===e.top&&t.anchorY===e.anchorY&&t.bottom===e.bottom}equals(t){return vi.equals(this,t)}static equalsEdges(t,e){return t==null&&e==null?!0:t==null||e==null?!1:t===e||t.left===e.left&&t.right===e.right&&t.top===e.top&&t.bottom===e.bottom}equalsEdges(t){return vi.equalsEdges(this,t)}clone(){return new vi(this.left,this.anchorX,this.right,this.top,this.anchorY,this.bottom)}offsetInPlace(t,e){return this.left+=t,this.anchorX+=t,this.right+=t,this.top+=e,this.anchorY+=e,this.bottom+=e,this}offsetCopy(t,e){return this.clone().offsetInPlace(t,e)}expandInPlace(t){return this.left=Math.min(this.left,t.left),this.right=Math.max(this.right,t.right),this.top=Math.min(this.top,t.top),this.bottom=Math.max(this.bottom,t.bottom),this}expandCopy(t){return this.clone().expandInPlace(t)}clipInPlace(t){return this.left=Math.max(this.left,t.left),this.right=Math.min(this.right,t.right),this.anchorX=ru(this.anchorX,this.left,this.right),this.top=Math.max(this.top,t.top),this.bottom=Math.min(this.bottom,t.bottom),this.anchorY=ru(this.anchorY,this.top,this.bottom),this}clipCopy(t){return this.clone().clipInPlace(t)}scaleInPlace(t,e=t){return this.left=this.anchorX-this.leftw*t,this.right=this.anchorX+this.rightw*t,this.top=this.anchorY-this.toph*e,this.bottom=this.anchorY+this.bottomh*e,this}scaleCopy(t,e=t){return this.clone().scaleInPlace(t,e)}getRect(){return this}toRect(){return new uu(this.left,this.right,this.width,this.height)}toString(){return`Rect(left=${this.left}, anchorX=${this.anchorX}, right=${this.right}, top=${this.top}, anchorY=${this.anchorY}, bottom=${this.bottom})`}},bl=class extends jr{constructor(i,t=1/0){super(),ft(this,"cache"),ft(this,"next"),ft(this,"prev"),ft(this,"head"),ft(this,"tail"),ft(this,"capacity"),ft(this,"size"),ft(this,"maxKeyLength"),this.cache=Object.create(null),this.next=Object.create(null),this.prev=Object.create(null),this.head=null,this.tail=null,this.capacity=i,this.size=0,this.maxKeyLength=t}get(i){if(!(i.length>this.maxKeyLength)&&this.cache[i]!==void 0)return this.touch(i),this.cache[i]}set(i,t){if(!(i.length>this.maxKeyLength)){if(this.cache[i]!==void 0){this.cache[i]=t,this.touch(i);return}this.size>=this.capacity&&this.evict(),this.cache[i]=t,this.addToTail(i),this.size++}}touch(i){this.tail!==i&&(this.removeKey(i),this.addToTail(i))}evict(){if(this.head!==null){let i=this.head;this.removeKey(i),delete this.cache[i],this.size--}}removeKey(i){let t=this.prev[i],e=this.next[i];t!==void 0?this.next[t]=e:this.head=e!=null?e:null,e!==void 0?this.prev[e]=t:this.tail=t!=null?t:null,delete this.prev[i],delete this.next[i]}addToTail(i){this.tail!==null?(this.next[this.tail]=i,this.prev[i]=this.tail):this.head=i,this.tail=i}*keys(){for(let i=this.head;i!=null;i=this.next[i])yield i}*values(){for(let i=this.head;i!=null;i=this.next[i])yield this.cache[i]}*entries(){for(let i=this.head;i!=null;i=this.next[i])yield[i,this.cache[i]]}*[Symbol.iterator](){yield*pe(this.entries())}toString(){let i=[...this.entries()];return i.length===0?"LRUCache(0){ }":`LRUCache(${i.length}){ ${i.map(t=>`${Gt(t[0])}: ${Gt(t[1])}`).join(", ")} }`}},vr=class Kr extends jr{constructor(t){if(super(),ft(this,"posVal"),ft(this,"hasPos"),ft(this,"valCount"),t instanceof Kr)this.posVal=t.posVal.slice(),this.hasPos=t.hasPos.slice(),this.valCount=t.valCount;else if(this.posVal=[],this.hasPos=[],this.valCount=0,t)for(let[e,r]of t)this.set(e,r)}static validateIndex(t){if(!nu(t,0))throw new Error(`Invalid index ${t} - must be an integer >= 0!`);return t}get posLen(){return this.hasPos.length}get size(){return this.valCount}get length(){return this.hasPos.length}trimRight(){let t=this.length;for(;t>0&&this.hasPos[t-1]!==!0;)t--;t<this.length&&(this.posVal.length=this.hasPos.length=t)}isEmpty(){return this.size===0}has(t){return Kr.validateIndex(t),this.hasPos[t]===!0}set(t,e){Kr.validateIndex(t),this.hasPos[t]!==!0&&this.valCount++,this.posVal[t]=e,this.hasPos[t]=!0}get(t){return Kr.validateIndex(t),this.hasPos[t]?this.posVal[t]:void 0}getOrDefault(t,e){var r;return(r=this.get(t))!=null?r:e}getOrCreate(t,e){if(!this.has(t)){let r=_r(e)?e():e;return this.set(t,r),r}return this.get(t)}delete(t){return Kr.validateIndex(t),this.hasPos[t]?(this.posVal[t]=void 0,this.hasPos[t]=!1,this.valCount--,this.trimRight(),!0):!1}clear(){this.posVal=[],this.hasPos=[],this.valCount=0}forEach(t,e){for(let[r,n]of this.entries())t.call(e,n,r,this)}*indices(){for(let t=0;t<this.posLen;t++)this.hasPos[t]&&(yield t)}*values(){for(let t=0;t<this.posLen;t++)this.hasPos[t]&&(yield this.posVal[t])}*entries(){for(let t=0;t<this.posLen;t++)this.hasPos[t]&&(yield[t,this.posVal[t]])}indicesArray(){return[...this.indices()]}valuesArray(){return[...this.values()]}entriesArray(){return[...this.entries()]}*kvKeys(){for(let t of this.indices())yield[t]}*kvValues(){for(let t of this.values())yield t}*kvEntries(){for(let[t,e]of this.entries())yield[[t],e]}*[Symbol.iterator](){yield*pe(this.entries())}clone(){return new Kr(this)}merge(t,e){for(let[r,n]of t.entries())this.has(r)&&e?this.set(r,e(this.get(r),n,r)):this.set(r,n);return this}some(t){for(let[e,r]of this.entries())if(t(r,e))return!0;return!1}every(t){for(let[e,r]of this.entries())if(!t(r,e))return!1;return!0}filter(t){let e=new this.constructor;for(let[r,n]of this.entries())t(n,r,this)&&e.set(r,n);return e}reduce(t,e){let r=this.entries(),n=r.next();if(n.done){if(arguments.length<2)throw new TypeError("Reduce of empty IndexArray with no initial value!");return e}let o,s;arguments.length<2?(o=n.value[1],s=r.next()):(o=e,s=n);for(let a=s;!a.done;a=r.next()){let[c,u]=a.value;o=t(o,u,c)}return o}mapToArray(t){let e=[];for(let[r,n]of this.entries())e.push(t(n,r));return e}map(t){let e=new Kr;for(let[r,n]of this.entries())e.set(r,t(n,r));return e}equals(t,e){if(this.size!==t.size)return!1;e!=null||(e=(n,o)=>n===o);let r=Math.max(this.posLen,t.posLen);for(let n=0;n<r;++n){let o=this.hasPos[n],s=t.hasPos[n];if(o!==s||o&&!e(this.posVal[n],t.posVal[n]))return!1}return!0}toArray(){return this.valuesArray()}toString(){let t=!0;for(let r=0;r<this.hasPos.length&&t;r++)this.hasPos[r]||(t=!1);if(t)return Gt(this.posVal.slice(0,this.hasPos.length));let e=this.entriesArray().map(([r,n])=>`${Gt(r)}: ${Gt(n)}`).join(", ");return e.length===0?"[ ]":`[ ${e} ]`}},xl=class Te extends jr{constructor(t){if(super(),ft(this,"posVal"),ft(this,"hasPos"),ft(this,"negVal"),ft(this,"hasNeg"),ft(this,"valCount"),t instanceof Te)this.negVal=t.negVal.slice(),this.hasNeg=t.hasNeg.slice(),this.posVal=t.posVal.slice(),this.hasPos=t.hasPos.slice(),this.valCount=t.valCount;else if(this.negVal=[],this.hasNeg=[],this.posVal=[],this.hasPos=[],this.valCount=0,t)for(let[e,r]of t)this.set(e,r)}static toNegIndex(t){return-t-1}static validateIndex(t){if(!Lt(t))throw new Error(`Invalid index ${t} - must be an integer!`);return t}get size(){return this.valCount}isEmpty(){return this.size===0}get posLen(){return this.hasPos.length}get negLen(){return this.hasNeg.length}has(t){return Te.validateIndex(t),t>=0?this.hasPos[t]===!0:this.hasNeg[Te.toNegIndex(t)]===!0}set(t,e){if(Te.validateIndex(t),t>=0)this.hasPos[t]!==!0&&this.valCount++,this.posVal[t]=e,this.hasPos[t]=!0;else{let r=Te.toNegIndex(t);this.hasNeg[r]!==!0&&this.valCount++,this.negVal[r]=e,this.hasNeg[r]=!0}}get(t){if(Te.validateIndex(t),t>=0)return this.hasPos[t]?this.posVal[t]:void 0;{let e=Te.toNegIndex(t);return this.hasNeg[e]?this.negVal[e]:void 0}}getOrDefault(t,e){var r;return(r=this.get(t))!=null?r:e}getOrCreate(t,e){if(!this.has(t)){let r=_r(e)?e():e;return this.set(t,r),r}return this.get(t)}delete(t){Te.validateIndex(t);let e=t>=0,r=e?this.posVal:this.negVal,n=e?this.hasPos:this.hasNeg,o=e?t:Te.toNegIndex(t);return n[o]?(r[o]=void 0,n[o]=!1,this.valCount--,!0):!1}clear(){this.negVal=[],this.hasNeg=[],this.posVal=[],this.hasPos=[],this.valCount=0}forEach(t,e){for(let[r,n]of this.entries())t.call(e,n,r,this)}*indices(){for(let t=this.negLen-1;t>=0;t--)this.hasNeg[t]&&(yield Te.toNegIndex(t));for(let t=0;t<this.posLen;t++)this.hasPos[t]&&(yield t)}*values(){for(let t=this.negLen-1;t>=0;t--)this.hasNeg[t]&&(yield this.negVal[t]);for(let t=0;t<this.posLen;t++)this.hasPos[t]&&(yield this.posVal[t])}*entries(){for(let t=this.negLen-1;t>=0;t--)this.hasNeg[t]&&(yield[Te.toNegIndex(t),this.negVal[t]]);for(let t=0;t<this.posLen;t++)this.hasPos[t]&&(yield[t,this.posVal[t]])}indicesArray(){return[...this.indices()]}valuesArray(){return[...this.values()]}entriesArray(){return[...this.entries()]}*kvKeys(){for(let t of this.indices())yield[t]}*kvValues(){for(let t of this.values())yield t}*kvEntries(){for(let[t,e]of this.entries())yield[[t],e]}*[Symbol.iterator](){yield*pe(this.entries())}clone(){return new Te(this)}merge(t,e){for(let[r,n]of t.entries())this.has(r)&&e?this.set(r,e(this.get(r),n,r)):this.set(r,n);return this}some(t){for(let[e,r]of this.entries())if(t(r,e))return!0;return!1}every(t){for(let[e,r]of this.entries())if(!t(r,e))return!1;return!0}filter(t){let e=new this.constructor;for(let[r,n]of this.entries())t(n,r,this)&&e.set(r,n);return e}reduce(t,e){let r=this.entries(),n=r.next();if(n.done){if(arguments.length<2)throw new TypeError("Reduce of empty SignedIndexArray with no initial value!");return e}let o,s;arguments.length<2?(o=n.value[1],s=r.next()):(o=e,s=n);for(let a=s;!a.done;a=r.next()){let[c,u]=a.value;o=t(o,u,c)}return o}mapToArray(t){let e=[];for(let[r,n]of this.entries())e.push(t(n,r));return e}map(t){let e=new Te;for(let[r,n]of this.entries())e.set(r,t(n,r));return e}equals(t,e){if(this.size!==t.size)return!1;e!=null||(e=(o,s)=>o===s);let r=Math.max(this.posLen,t.posLen);for(let o=0;o<r;++o){let s=this.hasPos[o],a=t.hasPos[o];if(s!==a||s&&!e(this.posVal[o],t.posVal[o]))return!1}let n=Math.max(this.negLen,t.negLen);for(let o=0;o<n;++o){let s=this.hasNeg[o],a=t.hasNeg[o];if(s!==a||s&&!e(this.negVal[o],t.negVal[o]))return!1}return!0}toArray(){return this.valuesArray()}toString(){let t=this.hasNeg.length===0;for(let r=0;r<this.hasPos.length&&t;r++)this.hasPos[r]||(t=!1);if(t)return Gt(this.posVal.slice(0,this.hasPos.length));let e=this.entriesArray().map(([r,n])=>`${Gt(r)}: ${Gt(n)}`).join(", ");return e.length===0?"[ ]":`[ ${e} ]`}};var lt=class oo extends jr{constructor(...t){super(),ft(this,"map"),ft(this,"keyEquals");let e=t.at(-1);this.keyEquals=_r(e)?t.pop():Le;let r=t[0];this.map=new Map(r)}static createDeep(t){return t?new oo(t,ao):new oo(ao)}has(t){if(this.keyEquals===Le||this.map.has(t))return this.map.has(t);for(let[e,r]of this.map)if(this.keyEquals(e,t))return!0;return!1}set(t,e){if(this.keyEquals===Le||this.map.has(t))return this.map.set(t,e),e;for(let r of this.map.keys())if(this.keyEquals(r,t))return this.map.set(r,e),e;return this.map.set(t,e),e}get(t){if(this.keyEquals===Le||this.map.has(t))return this.map.get(t);for(let[e,r]of this.map)if(this.keyEquals(e,t))return r}delete(t){if(this.keyEquals===Le||this.map.has(t))return this.map.delete(t);for(let e of this.map.keys())if(this.keyEquals(e,t))return this.map.delete(e);return this.map.delete(t)}getOrDefault(t,e){var r;return(r=this.get(t))!=null?r:e}getOrCreate(t,e){if(!this.has(t)){let r=_r(e)?e():e;return this.set(t,r)}return this.get(t)}clear(){this.map.clear()}get size(){return this.map.size}isEmpty(){return this.size===0}forEach(t,e){this.map.forEach((r,n)=>t.call(e,r,n,this))}*keys(){yield*pe(this.map.keys())}*values(){yield*pe(this.map.values())}*entries(){for(let[t,e]of this.map)yield[t,e]}keysArray(){return[...this.keys()]}valuesArray(){return[...this.values()]}entriesArray(){return[...this.entries()]}*kvKeys(){for(let t of this.keys())yield[t]}*kvValues(){for(let t of this.values())yield t}*kvEntries(){for(let[t,e]of this.entries())yield[[t],e]}*[Symbol.iterator](){yield*pe(this.entries())}clone(){return new oo(this,this.keyEquals)}merge(t,e){for(let[r,n]of t.entries())this.has(r)&&e?this.set(r,e(this.get(r),n,r)):this.set(r,n);return this}some(t){for(let[e,r]of this.map)if(t(r,e))return!0;return!1}every(t){for(let[e,r]of this.map)if(!t(r,e))return!1;return!0}filter(t){let e=new this.constructor;for(let[r,n]of this.map)t(n,r,this)&&e.set(r,n);return e}reduce(t,e){let r=this.entries(),n=r.next();if(n.done){if(arguments.length<2)throw new TypeError("Reduce of empty UniMap with no initial value!");return e}let o,s;arguments.length<2?(o=n.value[1],s=r.next()):(o=e,s=n);for(let a=s;!a.done;a=r.next()){let[c,u]=a.value;o=t(o,u,c)}return o}mapEntries(t){let e=[];for(let[r,n]of this.map)e.push(t(n,r));return e}mapValues(t){let e=new oo;for(let[r,n]of this.map)e.set(r,t(n,r));return e}toMap(){return new Map(this.map)}toString(){let t=[...this.map].map(([e,r])=>`${Gt(e)} => ${Gt(r)}`).join(", ");return t.length===0?`Map(${this.size}){ }`:`Map(${this.size}){ ${t} }`}},Al=class Ls extends jr{constructor(t){if(super(),ft(this,"map1"),ft(this,"key1Equals",Le),ft(this,"key2Equals",Le),this.map1=new lt(this.key1Equals),t instanceof Ls)for(let[e,r]of t.map1){let n=this.map1.set(e,new lt(this.key2Equals));for(let[o,s]of r)n.set(o,s)}else if(t)for(let[e,r,n]of t)this.set(e,r,n)}has(t,e){var r,n;return(n=(r=this.map1.get(t))==null?void 0:r.has(e))!=null?n:!1}set(t,e,r){return this.map1.getOrCreate(t,()=>new lt(this.key2Equals)).set(e,r)}get(t,e){var r;return(r=this.map1.get(t))==null?void 0:r.get(e)}getOrDefault(t,e,r){var n;return(n=this.get(t,e))!=null?n:r}getOrCreate(t,e,r){if(!this.has(t,e)){let n=_r(r)?r():r;return this.set(t,e,n),n}return this.get(t,e)}delete(t,e){if(e===void 0)return this.map1.delete(t);let r=this.map1.get(t);return r?r.delete(e):!1}clear(){this.map1.clear()}get size(){let t=0;for(let e of this.map1.values())t+=e.size;return t}isEmpty(){return this.size===0}forEach(t,e){this.map1.forEach((r,n)=>r.forEach((o,s)=>t.call(e,o,n,s,this)))}*keys(){for(let[t,e]of this.map1)for(let r of e.keys())yield[t,r]}*values(){for(let t of this.map1.values())for(let e of t.values())yield e}*entries(){for(let[t,e]of this.map1)for(let[r,n]of e)yield[t,r,n]}keysArray(){return[...this.keys()]}valuesArray(){return[...this.values()]}entriesArray(){return[...this.entries()]}*kvKeys(){for(let[t,e]of this.keys())yield[t,e]}*kvValues(){for(let t of this.values())yield t}*kvEntries(){for(let[t,e,r]of this.entries())yield[[t,e],r]}*[Symbol.iterator](){yield*pe(this.entries())}clone(){return new Ls(this)}merge(t,e){for(let[r,n,o]of t.entries())this.has(r,n)&&e?this.set(r,n,e(this.get(r,n),o,r,n)):this.set(r,n,o);return this}some(t){for(let[e,r]of this.map1)for(let[n,o]of r)if(t(o,e,n))return!0;return!1}every(t){for(let[e,r]of this.map1)for(let[n,o]of r)if(!t(o,e,n))return!1;return!0}filter(t){let e=new this.constructor;for(let[r,n]of this.map1)for(let[o,s]of n)t(s,r,o,this)&&e.set(r,o,s);return e}reduce(t,e){let r=this.entries(),n=r.next();if(n.done){if(arguments.length<2)throw new TypeError("Reduce of empty BiMap with no initial value!");return e}let o,s;arguments.length<2?(o=n.value[2],s=r.next()):(o=e,s=n);for(let a=s;!a.done;a=r.next()){let[c,u,h]=a.value;o=t(o,h,c,u)}return o}mapEntries(t){let e=[];for(let[r,n]of this.map1)for(let[o,s]of n)e.push(t(s,r,o));return e}mapValues(t){let e=new Ls;for(let[r,n]of this.map1)for(let[o,s]of n)e.set(r,o,t(s,r,o));return e}toMap(){let t=new Map;for(let[e,r]of this.map1)for(let[n,o]of r)t.set([e,n],o);return t}toString(){let t=[];for(let[e,r]of this.map1){let n=[...r].map(([o,s])=>`${Gt(o)} => ${Gt(s)}`).join(", ");t.push(`${Gt(e)} => { ${n} }`)}return t.length===0?`Map(${this.size}){ }`:`Map(${this.size}){ ${t} }`}},qs=class js extends jr{constructor(t){if(super(),ft(this,"map1"),ft(this,"key1Equals",Le),ft(this,"key2Equals",Le),ft(this,"key3Equals",Le),this.map1=new lt(this.key1Equals),t instanceof js)for(let[e,r]of t.map1){let n=this.map1.set(e,new lt(this.key2Equals));for(let[o,s]of r)n.set(o,new lt(s,this.key3Equals))}else if(t)for(let[e,r,n,o]of t)this.set(e,r,n,o)}has(t,e,r){var n,o,s;return(s=(o=(n=this.map1.get(t))==null?void 0:n.get(e))==null?void 0:o.has(r))!=null?s:!1}set(t,e,r,n){return this.map1.getOrCreate(t,()=>new lt(this.key2Equals)).getOrCreate(e,()=>new lt(this.key3Equals)).set(r,n),n}get(t,e,r){var n,o;return(o=(n=this.map1.get(t))==null?void 0:n.get(e))==null?void 0:o.get(r)}getOrDefault(t,e,r,n){var o;return(o=this.get(t,e,r))!=null?o:n}getOrCreate(t,e,r,n){if(!this.has(t,e,r)){let o=_r(n)?n():n;return this.set(t,e,r,o),o}return this.get(t,e,r)}delete(t,e,r){var n;if(r===void 0){if(e===void 0)return this.map1.delete(t);let o=this.map1.get(t);return o?o.delete(e):!1}else{if(e===void 0)return this.map1.delete(t);let o=(n=this.map1.get(t))==null?void 0:n.get(e);return o?o.delete(r):!1}}clear(){this.map1.clear()}get size(){let t=0;for(let e of this.map1.values())for(let r of e.values())t+=r.size;return t}isEmpty(){return this.size===0}forEach(t,e){this.map1.forEach((r,n)=>r.forEach((o,s)=>o.forEach((a,c)=>t.call(e,a,n,s,c,this))))}*keys(){for(let[t,e]of this.map1)for(let[r,n]of e)for(let o of n.keys())yield[t,r,o]}*values(){for(let t of this.map1.values())for(let e of t.values())for(let r of e.values())yield r}*entries(){for(let[t,e]of this.map1)for(let[r,n]of e)for(let[o,s]of n)yield[t,r,o,s]}keysArray(){return[...this.keys()]}valuesArray(){return[...this.values()]}entriesArray(){return[...this.entries()]}*kvKeys(){for(let[t,e,r]of this.keys())yield[t,e,r]}*kvValues(){for(let t of this.values())yield t}*kvEntries(){for(let[t,e,r,n]of this.entries())yield[[t,e,r],n]}*[Symbol.iterator](){yield*pe(this.entries())}clone(){return new js(this)}merge(t,e){for(let[r,n,o,s]of t.entries())this.has(r,n,o)&&e?this.set(r,n,o,e(this.get(r,n,o),s,r,n,o)):this.set(r,n,o,s);return this}some(t){for(let[e,r]of this.map1)for(let[n,o]of r)for(let[s,a]of o)if(t(a,e,n,s))return!0;return!1}every(t){for(let[e,r]of this.map1)for(let[n,o]of r)for(let[s,a]of o)if(!t(a,e,n,s))return!1;return!0}filter(t){let e=new this.constructor;for(let[r,n]of this.map1)for(let[o,s]of n)for(let[a,c]of s)t(c,r,o,a,this)&&e.set(r,o,a,c);return e}reduce(t,e){let r=this.entries(),n=r.next();if(n.done){if(arguments.length<2)throw new TypeError("Reduce of empty TriMap with no initial value!");return e}let o,s;arguments.length<2?(o=n.value[3],s=r.next()):(o=e,s=n);for(let a=s;!a.done;a=r.next()){let[c,u,h,l]=a.value;o=t(o,l,c,u,h)}return o}mapEntries(t){let e=[];for(let[r,n]of this.map1)for(let[o,s]of n)for(let[a,c]of s)e.push(t(c,r,o,a));return e}mapValues(t){let e=new js;for(let[r,n]of this.map1)for(let[o,s]of n)for(let[a,c]of s)e.set(r,o,a,t(c,r,o,a));return e}toMap(){let t=new Map;for(let[e,r]of this.map1)for(let[n,o]of r)for(let[s,a]of o)t.set([e,n,s],a);return t}toString(){let t=[];for(let[e,r]of this.map1)for(let[n,o]of r){let s=[...o].map(([a,c])=>`${Gt(a)} => ${Gt(c)}`).join(", ");t.push(`${Gt(e)} => ${Gt(n)} => { ${s} }`)}return t.length===0?`Map(${this.size}){ }`:`Map(${this.size}){ ${t.join(", ")} }`}},Ws=class Si extends jr{constructor(...t){super(),ft(this,"data"),ft(this,"equals");let e=t.at(-1);this.equals=_r(e)?t.pop():Le;let r=t[0];this.data=new Set(r)}static createDeep(t){return t?new Si(t,ao):new Si(ao)}has(t){return this.equals===Le?this.data.has(t):this.some(e=>this.equals(e,t))}add(t){return this.has(t)||this.data.add(t),t}set(t,e){if(!this.equals(t,e))throw new TypeError("ValueSet.set() requires key === value.");this.add(e)}get(t){return this.has(t)?t:void 0}getOrDefault(t,e){var r;return(r=this.get(t))!=null?r:e}getOrCreate(t,e){if(!this.has(t)){let r=_r(e)?e():e;return this.set(t,r),r}return this.get(t)}delete(t){if(this.equals===Le||this.data.has(t))return this.data.delete(t);for(let e of this.values())if(this.equals(e,t))return this.data.delete(e),!0;return!1}clear(){this.data.clear()}get size(){return this.data.size}isEmpty(){return this.size===0}forEach(t,e){this.data.forEach(r=>t.call(e,r,this))}*keys(){yield*pe(this.data.keys())}*values(){yield*pe(this.data.values())}*entries(){yield*pe(this.data.entries())}*kvKeys(){for(let t of this.keys())yield[t]}*kvValues(){for(let t of this.values())yield t}*kvEntries(){for(let[t,e]of this.entries())yield[[t],e]}*[Symbol.iterator](){yield*pe(this.values())}clone(){let t=new Si;for(let e of this.values())t.add(e);return t}merge(t){for(let e of t.values())this.add(e);return this}some(t){for(let e of this.data)if(t(e))return!0;return!1}every(t){for(let e of this.data)if(!t(e))return!1;return!0}filter(t){let e=new Si;for(let r of this.data)t(r,this)&&e.add(r);return e}reduce(t,e){let r=this.values(),n=r.next();if(n.done){if(arguments.length<2)throw new TypeError("Reduce of empty ValueSet with no initial value!");return e}let o,s;arguments.length<2?(o=n.value,s=r.next()):(o=e,s=n);for(let a=s;!a.done;a=r.next()){let c=a.value;o=t(o,c)}return o}mapValues(t){let e=new Si;for(let r of this.data)e.add(t(r));return e}mapToArray(t){let e=[];for(let r of this.values())e.push(t(r));return e}map(t){let e=new Si;for(let r of this.values())e.add(t(r));return e}toSet(){return new Set(this.data)}toArray(){return[...this.values()]}toString(){return Gt(this.data)}},LA=class extends jr{constructor(i){super(),this.base=i}isEmpty(){return this.base.isEmpty()}clear(){var i,t;(t=(i=this.base).clear)==null||t.call(i)}add(...i){let t=i.slice(0,-1),e=i[i.length-1],r=this.base.get(...t);return this.base.set(...t,r?[...r,e]:[e]),e}remove(...i){let t=i.slice(0,-1),e=i[i.length-1],r=this.base.get(...t);if(!r)return!1;let n=r.indexOf(e);return n===-1?!1:(r.splice(n,1),r.length===0&&this.base.delete(...t),!0)}getAll(...i){var t;return(t=this.base.get(...i))!=null?t:[]}*iterAll(...i){yield*pe(this.getAll(...i))}*values(){for(let i of this.keys())yield*pe(this.getAll(...i))}*keys(){for(let i of this.base.kvKeys())yield i}*entries(){for(let i of this.keys()){let t=this.getAll(...i);t.length>0&&(yield[i,t])}}[Symbol.iterator](){return this.entries()}toString(){let i=[];for(let t of this.keys()){let e=this.getAll(...t),r=Array.isArray(t)?Gt(t):"[ ]",n=Array.isArray(e)?Gt(e):"[ ]";i.push(`${r} => ${n}`)}return i.length===0?"MultiContainer{ }":`MultiContainer{ ${i.join(", ")} }`}};function Us(i){return new LA(i)}var hu={};en(hu,{MusicError:()=>N,MusicErrorType:()=>_t,init:()=>Ii});var _t=(c=>(c[c.Unknown=0]="Unknown",c[c.InvalidArg=1]="InvalidArg",c[c.Note=2]="Note",c[c.Scale=3]="Scale",c[c.KeySignature=4]="KeySignature",c[c.Timesignature=5]="Timesignature",c[c.Score=6]="Score",c[c.Audio=7]="Audio",c))(_t||{});function jA(i){return i===void 0?"":`[${_t[i]}] `}var N=class extends Error{constructor(...e){let[r,n]=e.length===1?[0,e[0]]:e;super(jA(r)+n);d(this,"type");Object.setPrototypeOf(this,new.target.prototype),this.name="MusicError",this.type=r}};var Cl=!1;function Ii(){Cl||(Cl=!0,console.log("%cWebMusicScore v6.0.0-pre.1 (iife) initialized.","background: black; color: white; padding: 2px;"))}var Jr=(e=>(e[e.Ascii=0]="Ascii",e[e.Unicode=1]="Unicode",e))(Jr||{}),ti=(e=>(e[e.Scientific=0]="Scientific",e[e.Helmholtz=1]="Helmholtz",e))(ti||{}),PA=$.Enum.getEnumValues(ti),FA=0;function _l(i){if(y.isEnumValue(i,ti))return i;throw new N(1,`Invalid pitchNotation: ${i}`)}function BA(i){return ti[_l(i)]}var zs=(r=>(r.Default="Default",r.OmitOctave="Omit Octave",r.Interval="Interval",r))(zs||{}),GA="Default",VA=$.Enum.getEnumValues(zs);function qA(i){if(y.isEnumValue(i,zs))return i;throw new N(5,`Invalid guitarNoteLabel: ${i}`)}function vl(i,t){return(i%t+t)%t}var Sl=12,wl=7,WA=new Map([[-2,"bb"],[-1,"b"],[0,""],[1,"#"],[2,"x"]]),UA=new Map([[-2,"\u{1D12B}"],[-1,"\u266D"],[0,""],[1,"\u266F"],[2,"\u{1D12A}"]]),Il=new Map([["",0],["bb",-2],["b",-1],["#",1],["x",2],["\u{1D12B}",-2],["\u266D",-1],["\u266F",1],["\u{1D12A}",2]]),co=["C","D","E","F","G","A","B"],Tl=[0,2,4,5,7,9,11],Nl=/^([A-G])((?:bb|𝄫|♭|b|#|♯|x|𝄪)?)?(-?\d+)?$/,dt=class dt{constructor(t,e,r){d(this,"diatonicClass");d(this,"accidental");d(this,"octave");if(typeof t=="number"&&typeof e=="number"&&r===void 0)dt.validateDiatonicId(t),this.diatonicClass=dt.getDiatonicClass(t),this.accidental=dt.validateAccidental(e),this.octave=dt.getOctaveFromDiatonicId(t);else if(typeof t=="number"&&typeof e=="number"&&typeof r=="number")this.diatonicClass=dt.validateDiatonicClass(t),this.accidental=dt.validateAccidental(e),this.octave=dt.validateOctave(r);else if(typeof t=="string"&&typeof e=="number"&&typeof r=="number")this.diatonicClass=dt.getDiatonicClass(t),this.accidental=dt.validateAccidental(e),this.octave=dt.validateOctave(r);else throw new N(2,`Invalid args: ${t}, ${e}, ${r}`)}get diatonicId(){return dt.getDiatonicIdInOctave(this.diatonicClass,this.octave)}get chromaticId(){return dt.getChromaticIdInOctave(Tl[this.diatonicClass]+this.accidental,this.octave)}get midiNumber(){return this.chromaticId}get chromaticClass(){return dt.getChromaticClass(Tl[this.diatonicClass]+this.accidental)}get noteLetter(){return co[this.diatonicClass]}format(t,e){let{noteLetter:r,octave:n}=this,o=dt.getAccidentalSymbol(this.accidental,e);return t===1?n>=3?r.toLowerCase()+o+"\u2032".repeat(n-3):r.toUpperCase()+o+"\u0375".repeat(2-n):r+o+n}formatOmitOctave(t){let e=co[this.diatonicClass],r=dt.getAccidentalSymbol(this.accidental,t);return e+r}static getNote(t){return this.noteCache.getOrCreate(t,()=>{let e=dt.parseNote(t);if(!e)throw new N(2,`Invalid note "${t}".`);if(e.octave===void 0)throw new N(2,`Invalid note "${t}" (missing octave).`);return new dt(e.noteLetter,e.accidental,e.octave)})}static isNote(t){let e=dt.parseNote(t);return e!==void 0&&e.octave!==void 0}static validateNote(t){if(this.isNote(t))return!0;throw new N(2,`Invalid note "${t}"`)}static getChromaticNote(t){return this.chromaticNoteCache.getOrCreate(t,()=>{let r=["C/B#","C#/Db","D","D#/Eb","E/Fb","F/E#","F#/Gb","G","G#/Ab","A","A#/Bb","B/Cb"][dt.getChromaticClass(t)].split("/")[0]+dt.getOctaveFromChromaticId(t);return dt.getNote(r)})}static getDiatonicClass(t){if(typeof t=="number")return vl(t,7);if(typeof t=="string"&&t.length>0)return co.indexOf(dt.validateNoteLetter(t[0]));throw new N(2,`Invalid arg: ${t}`)}static getOctaveFromDiatonicId(t){return Math.floor((t-wl)/7)}static getDiatonicIdInOctave(t,e){return dt.getDiatonicClass(t)+e*7+wl}static getChromaticClass(t){return vl(t,12)}static getOctaveFromChromaticId(t){return Math.floor((t-Sl)/12)}static getChromaticIdInOctave(t,e){return dt.getChromaticClass(t)+e*12+Sl}static equals(t,e){return t==null&&e==null?!0:t==null||e==null?!1:t===e||t.diatonicId===e.diatonicId&&t.accidental===e.accidental}static replaceAccidentalSymbols(t,e){return e===1?t.replace("bb","\u{1D12B}").replace("b","\u266D").replace("#","\u266F").replace("x","\u{1D12A}"):t.replace("\u{1D12B}","bb").replace("\u266D","b").replace("\u266F","#").replace("\u{1D12A}","x")}static isValidNoteName(t){return Nl.test(t)}static parseNote(t){var c;let e=Nl.exec(t);if(!e)return;let r=dt.validateNoteLetter(e[1]),n=e[2],o=dt.validateAccidental((c=Il.get(n))!=null?c:0),s=e[3],a=s?dt.validateOctave(+s):void 0;return{noteLetter:r,accidental:o,octave:a}}static getScientificNoteName(t,e){let r=dt.parseNote(t);if(!r)throw new N(2,`Invalid noteName: ${t}`);let{noteLetter:n,accidental:o,octave:s}=r;return n+dt.getAccidentalSymbol(o,e)+(s!=null?s:"")}static getAccidentalSymbol(t,e){return e===1?UA.get(t):WA.get(t)}static getAccidental(t){let e=Il.get(t);if(e===void 0)throw new N(2,`Invalid accidental: ${t}`);return e}static getNoteLetter(t){return co[dt.getDiatonicClass(t)]}static findNextDiatonicIdAbove(t,e,r){let n=dt.getDiatonicClass(t),o=dt.getDiatonicClass(e),s=r?n<=o?1:0:n<o?1:0;return dt.getDiatonicIdInOctave(n,dt.getOctaveFromDiatonicId(e)+s)}static validateDiatonicId(t){if(y.isInteger(t))return t;throw new N(2,`Invalid diatonicId: ${t}`)}static validateDiatonicClass(t){if(y.isIntegerBetween(t,0,6))return t;throw new N(2,`Invalid diatonicClass: ${t}`)}static validateChromaticId(t){if(y.isInteger(t))return t;throw new N(2,`Invalid chromaticId: ${t}`)}static validatechromaticClass(t){if(y.isIntegerBetween(t,0,11))return t;throw new N(2,`Invalid chromaticClass: ${t}`)}static validateNoteLetter(t){if(co.some(e=>e===t))return t;throw new N(2,`Invalid note: ${t}`)}static validateOctave(t){if(y.isInteger(t))return t;throw new N(2,`Invalid octave: ${t}`)}static validateAccidental(t){if(y.isIntegerBetween(t,-2,2))return t;throw new N(2,`Invalid accidental: ${t}`)}static sort(t){return t.slice().sort(dt.compareFunc)}static removeDuplicates(t){let e=[];return t.forEach(r=>{e.find(n=>dt.equals(r,n))===void 0&&e.push(r)}),e}static compareFunc(t,e){return t.diatonicId<e.diatonicId?-1:t.diatonicId>e.diatonicId?1:t.accidental<e.accidental?-1:t.accidental>e.accidental?1:0}};d(dt,"noteCache",new lt),d(dt,"chromaticNoteCache",new lt);var U=dt;function zA(i,t){let e=U.getChromaticClass(i)-new U(t,0).chromaticClass;for(;e>2;)e-=12;for(;e<-2;)e+=12;return U.validateAccidental(e)}var YA=/^(bb?|b?|#?|x?)([0-9]*)$/;function HA(i){var n,o;let t=YA.exec(""+i);if(!t)throw new N(4,`Invalid degree: ${i}`);let e=(o=U.getAccidental((n=t[1])!=null?n:""))!=null?o:0,r=+t[2];if(!y.isInteger(e)||e<-2||e>2||!y.isInteger(r)||r<1)throw new N(4,`Invalid degree: ${i}`);return{deg:r,acc:e}}var lu=(a=>(a[a.Ionian=1]="Ionian",a[a.Dorian=2]="Dorian",a[a.Phrygian=3]="Phrygian",a[a.Lydian=4]="Lydian",a[a.Mixolydian=5]="Mixolydian",a[a.Aeolian=6]="Aeolian",a[a.Locrian=7]="Locrian",a))(lu||{}),du=(r=>(r[r.Natural=0]="Natural",r[r.Flats=1]="Flats",r[r.Sharps=2]="Sharps",r))(du||{});function Ys(){return Pr("C","Major")}var ei=class ei{constructor(t,e){this.tonic=t;this.mode=e;d(this,"naturalScaleNotes");d(this,"accidentalByDiatonicClass");d(this,"orderedAccidentedNotes");if(!y.isEnumValue(e,lu))throw new N(4,`Invalid mode: ${e}`);let r=[2,2,1,2,2,2,1];for(let c=1;c<e;c++)r.push(r.shift());this.naturalScaleNotes=[],this.accidentalByDiatonicClass=[];let n=U.getDiatonicClass(t[0]),o=U.getNote(t+"0").chromaticId;for(let c=0;c<7;n++,o+=r[c],c++){let u=new U(U.getDiatonicClass(n),zA(o,n));if(Math.abs(u.accidental)>=2)throw new N(4,"Key signature contains double accidental.");this.naturalScaleNotes[c]=u,this.accidentalByDiatonicClass[u.diatonicClass]=u.accidental}let s=this.naturalScaleNotes.filter(c=>c.accidental>0).sort((c,u)=>{let h=ei.OrderOfSharps.indexOf(c.noteLetter),l=ei.OrderOfSharps.indexOf(u.noteLetter);if(h===-1||l===-1)throw new N(4,"Unexpected note in key signature.");return h-l}),a=this.naturalScaleNotes.filter(c=>c.accidental<0).sort((c,u)=>{let h=ei.OrderOfFlats.indexOf(c.noteLetter),l=ei.OrderOfFlats.indexOf(u.noteLetter);if(h===-1||l===-1)throw new N(4,"Unexpected note in key signature.");return h-l});if(s.length!==0&&a.length!==0)throw new N(4,"Key Signature has both sharps and flats.");this.orderedAccidentedNotes=a.length>0?a:s}getAccidentalType(){return this.orderedAccidentedNotes.length===0?0:this.orderedAccidentedNotes[0].accidental<0?1:2}getNaturalScaleNotes(){return this.naturalScaleNotes}getAccidental(t){var e;return(e=this.accidentalByDiatonicClass[U.getDiatonicClass(t)])!=null?e:0}getNumAccidentals(){return this.orderedAccidentedNotes.length}getOrderedAccidentalNotes(){return this.orderedAccidentedNotes}getNoteByDegree(t){let{deg:e,acc:r}=HA(t);if(r===0)return this.naturalScaleNotes[(e-1)%7];{let n=this.naturalScaleNotes[(e-1)%7];return new U(n.diatonicId,n.accidental+r)}}static equals(t,e){return t==null&&e==null?!0:t==null||e==null?!1:t===e||t.tonic===e.tonic&&t.mode===e.mode}};d(ei,"OrderOfSharps","FCGDAEB"),d(ei,"OrderOfFlats","BEADGCF");var rr=ei;var $A=new lt([["Major","M"],["minor","m"],["Perfect","P"],["diminished","d"],["Augmented","A"],["doubly diminished","dd"],["Doubly Augmented","AA"]]),ZA={1:{0:"Perfect",1:"Augmented","-1":"diminished",2:"Doubly Augmented","-2":"doubly diminished"},2:{2:"Major",1:"minor",3:"Augmented",0:"diminished",4:"Doubly Augmented","-1":"doubly diminished"},3:{4:"Major",3:"minor",5:"Augmented",2:"diminished",6:"Doubly Augmented",1:"doubly diminished"},4:{5:"Perfect",6:"Augmented",4:"diminished",7:"Doubly Augmented",3:"doubly diminished"},5:{7:"Perfect",8:"Augmented",6:"diminished",9:"Doubly Augmented",5:"doubly diminished"},6:{9:"Major",8:"minor",10:"Augmented",7:"diminished",11:"Doubly Augmented",6:"doubly diminished"},7:{11:"Major",10:"minor",12:"Augmented",9:"diminished",13:"Doubly Augmented",8:"doubly diminished"},8:{12:"Perfect",13:"Augmented",11:"diminished",14:"Doubly Augmented",10:"doubly diminished"}};function XA(i,t){for(;i<1;)i+=7,t+=12;for(;i>8;)i-=7,t-=12;let e=ZA[i];if(e)return e[t]}function QA(i){if(i==="Perfect"||i==="Major"||i==="minor"||i==="Augmented"||i==="diminished"||i==="Doubly Augmented"||i==="doubly diminished")return i;throw new N(1,`Invalid interval quality: ${i}`)}function KA(i){if(y.isIntegerGte(i,1))return $.Math.toOrdinalNumber(i);throw new N(1,`Invalid interval quantity: ${i}`)}var Hs=class extends Error{constructor(e){super(e);this.msg=e;this.name="InvalidInterval"}},uo=class i{constructor(t,e){this.note1=t;this.note2=e;d(this,"direction");d(this,"semitones");d(this,"quantity");d(this,"quality");e.diatonicId>=t.diatonicId?(this.direction=e.diatonicId===t.diatonicId?"Unison":"Ascending",this.quantity=e.diatonicId-t.diatonicId+1,this.semitones=e.chromaticId-t.chromaticId):(this.direction="Descending",this.quantity=t.diatonicId-e.diatonicId+1,this.semitones=t.chromaticId-e.chromaticId);let r=XA(this.quantity,this.semitones);if(r)this.quality=r;else throw new Hs("Unknown interval quality")}static get(t,e){try{return new i(t,e)}catch(r){if(r instanceof Hs)return;throw r}}toString(){let t=this.direction==="Unison"?"":this.direction+" ",e=this.quality+" ",r=this.direction==="Unison"?"Unison":KA(this.quantity);return t+e+r}toAbbrString(){let t=this.direction==="Descending"?"\u2193":"",e=$A.getOrDefault(this.quality,"?"),r=this.quantity;return t+e+r}};function JA(i){let t=U.getDiatonicClass("CCDDEFFGGAAB"[U.getChromaticClass(i)]),e=U.getOctaveFromChromaticId(i);return U.getDiatonicIdInOctave(t,e)}var tC=["Cb","C","C#","Db","D","D#","Eb","E","E#","Fb","F","F#","Gb","G","G#","Ab","A","A#","Bb","B","B#"],Ti=(g=>(g.Major="Major",g.NaturalMinor="Natural Minor",g.HarmonicMinor="Harmonic Minor",g.Ionian="Ionian",g.Dorian="Dorian",g.Phrygian="Phrygian",g.Lydian="Lydian",g.Mixolydian="Mixolydian",g.Aeolian="Aeolian",g.Locrian="Locrian",g.MajorPentatonic="Major Pentatonic",g.MinorPentatonic="Minor Pentatonic",g.MajorHexatonicBlues="Major Hexatonic Blues",g.MinorHexatonicBlues="Minor Hexatonic Blues",g.HeptatonicBlues="Heptatonic Blues",g))(Ti||{});function eC(i){switch(i){case"Major":return 1;case"Natural Minor":return 6;case"Harmonic Minor":return 6;case"Ionian":return 1;case"Dorian":return 2;case"Phrygian":return 3;case"Lydian":return 4;case"Mixolydian":return 5;case"Aeolian":return 6;case"Locrian":return 7;case"Major Pentatonic":return 1;case"Minor Pentatonic":return 6;case"Major Hexatonic Blues":return 1;case"Minor Hexatonic Blues":return 6;case"Heptatonic Blues":return 1;default:throw new N(3,`Invalid scaleType: ${i}`)}}var ri=class extends rr{constructor(e,r){super(e,eC(r));this.tonic=e;this.scaleType=r;d(this,"scaleDegrees");d(this,"scaleNotes");d(this,"chromaticClassDegree");d(this,"preferredChromaticIdNoteCache",new xl);switch(r){case"Harmonic Minor":this.scaleDegrees=[1,2,3,4,5,6,"#7"];break;case"Major Pentatonic":this.scaleDegrees=[1,2,3,5,6];break;case"Minor Pentatonic":this.scaleDegrees=[1,3,4,5,7];break;case"Major Hexatonic Blues":this.scaleDegrees=[1,2,"b3",3,5,6];break;case"Minor Hexatonic Blues":this.scaleDegrees=[1,3,4,"b5",5,7];break;case"Heptatonic Blues":this.scaleDegrees=[1,2,"b3",4,"b5",6,"b7"];break;default:this.scaleDegrees=[1,2,3,4,5,6,7];break}this.scaleNotes=this.scaleDegrees.map(n=>this.getNoteByDegree(n)),this.chromaticClassDegree=[0,1,2,3,4,5,6,7,8,9,10,11].map(n=>{let o=this.scaleNotes.findIndex(s=>s.chromaticClass===n);return o>=0?this.scaleDegrees[o]:void 0})}static equals(e,r){return e==null&&r==null?!0:e==null||r==null?!1:e===r||e.getScaleName()===r.getScaleName()}getScaleName(e){switch(e){case 1:return U.getScientificNoteName(this.tonic,e)+" "+this.scaleType;default:return this.tonic+" "+this.scaleType}}getScaleNotes(e,r){if(!y.isIntegerGte(r,1))throw new N(3,`Invalid numOctaves: ${r}`);let n=[];for(let s=1;s<=r;s++)n=[...n,...this.scaleNotes];n.push(this.scaleNotes[0]);let o=U.getNote(e).diatonicId;return n.map(s=>(o=U.findNextDiatonicIdAbove(s.diatonicId,o,!1),new U(o,s.accidental)))}getScaleOverview(){return this.getScaleNotes("C4",1).map(e=>e.formatOmitOctave(1)).join(" - ")}getScaleSteps(){let e=this.getScaleNotes("C4",1).map(n=>n.chromaticId),r=[];for(let n=0;n<e.length-1;n++)r.push($.Math.mod(e[n+1]-e[n],12));return r}getScaleStringSteps(){return this.getScaleSteps().map(e=>e===1?"H":e===2?"W":e.toString()+"H")}isScaleNote(e){return this.chromaticClassDegree[e.chromaticClass]!==void 0}isScaleRootNote(e){return String(this.chromaticClassDegree[e.chromaticClass])==="1"}getIntervalFromRootNote(e){let r=this.getScaleNotes("C0",1)[0];for(;e.chromaticId>=r.chromaticId+12;)e=new U(e.diatonicClass,e.accidental,e.octave-1);if(e.chromaticId<r.chromaticId)throw new N(3,"Note is below rootNote.");let n=uo.get(r,e);if(n===void 0)throw new N(3,"Interval is undefined.");return n}getPreferredChromaticNote(e){U.validateChromaticId(e);let r=this.preferredChromaticIdNoteCache.get(e);if(r)return r;let n=U.getOctaveFromChromaticId(e);if(r=this.scaleNotes.map(l=>l.noteLetter==="C"&&l.accidental<0?new U(l.diatonicClass,l.accidental,n+1):l.noteLetter==="B"&&l.accidental>0?new U(l.diatonicClass,l.accidental,n-1):new U(l.diatonicClass,l.accidental,n)).find(l=>U.getChromaticClass(e)===l.chromaticClass),r)return this.preferredChromaticIdNoteCache.set(e,r),r;let s=JA(e),a=s-2,c=s+2,h=this.getAccidentalType()===1?[0,-1,1,-2,2]:[0,1,-1,2,-2];for(let l=0;l<h.length;l++){let p=h[l];for(let m=Math.max(0,a);m<=c;m++)if(r=new U(m,p),e===r.chromaticId)return this.preferredChromaticIdNoteCache.set(e,r),r}return r=U.getChromaticNote(e),this.preferredChromaticIdNoteCache.set(e,r),r}},ne=class{constructor(t){this.type=t;d(this,"tonicList",[]);d(this,"scaleMap",new Map);let e=[],r=[],n=[];if(tC.forEach(s=>{try{let a=new ri(s,this.type);switch(a.getAccidentalType()){case 0:e.push(a);break;case 2:if(s.endsWith("b"))return;r.push(a);break;case 1:if(s.endsWith("#"))return;n.push(a);break}this.scaleMap.set(s,a)}catch(a){}}),e.length===0)throw new N(3,"Expected natural scale.");let o=(s,a)=>s.getNumAccidentals()-a.getNumAccidentals();this.tonicList=[...e.sort(o).map(s=>s.tonic),"- Sharps -",...r.sort(o).map(s=>s.tonic),"- Flats -",...n.sort(o).map(s=>s.tonic)]}getTonicList(){return this.tonicList}getDefaultTonic(){return this.tonicList[0]}getType(){return this.type}getScale(t){let e=this.scaleMap.get(t);if(e)return e;throw new N(3,`Invalid scale: ${t} ${this.type}`)}hasScale(t){return this.scaleMap.get(t)!==void 0}},Ol=[new ne("Major"),new ne("Natural Minor"),new ne("Harmonic Minor"),"- Modes -",new ne("Ionian"),new ne("Dorian"),new ne("Phrygian"),new ne("Lydian"),new ne("Mixolydian"),new ne("Aeolian"),new ne("Locrian"),"- Pentatonic -",new ne("Major Pentatonic"),new ne("Minor Pentatonic"),"- Blues -",new ne("Major Hexatonic Blues"),new ne("Minor Hexatonic Blues"),new ne("Heptatonic Blues")];function rC(){return Ol}var Rl=new lt;Ol.forEach(i=>{i instanceof ne&&Rl.set(i.getType(),i)});function Ml(i){let t=Rl.get(i);if(t)return t;throw new N(3,`Invalid scaleType: ${i}`)}function ho(i){if(y.isEnumValue(i,Ti))return i;throw new N(3,`Invalid scaleType: "${i}"`)}function Pr(i,t){let e,r;return t!==void 0?(e=i,r=ho(t)):(e=i.split(" ")[0],r=ho(i.substring(e.length+1))),Ml(r).getScale(e)}var iC=Pr("C","Major");function nC(){return iC}var Fr=(i,t)=>i.chromaticClass===t.chromaticClass,oC=["C","C#","Db","D","Eb","E","F","F#","Gb","G","Ab","A","Bb","B","Cb"].map(i=>U.getNote(i+"0")),sC=new vr;function aC(i){return sC.getOrCreate(i.chromaticClass,()=>{let t=oC.find(e=>Fr(e,i));if(!t)throw new N(1,`Invalid chord root note: ${i.formatOmitOctave(1)}`);return t})}function cC(i,t){let e=i.formatOmitOctave(0);return Pr(e,"Major").getNoteByDegree(t)}function uC(i){return $.Arr.removeDuplicates(i,Fr)}var hC=[{name:"5",degrees:[1,5]},{name:"",degrees:[1,3,5]},{name:"m",degrees:[1,"b3",5]},{name:"dim",degrees:[1,"b3","b5"]},{name:"aug",degrees:[1,3,"#5"]},{name:"sus2",degrees:[1,2,5]},{name:"sus4",degrees:[1,4,5]},{name:"6",degrees:[1,3,5,6]},{name:"m6",degrees:[1,"b3",5,6]},{name:"m(maj7)",degrees:[1,"b3",5,7]},{name:"7",degrees:[1,3,5,"b7"]},{name:"7\u266D5",degrees:[1,3,"b5","b7"]},{name:"7\u266F5",degrees:[1,3,"#5","b7"]},{name:"7sus2",degrees:[1,2,5,"b7"]},{name:"7sus4",degrees:[1,4,5,"b7"]},{name:"dim7",degrees:[1,"b3","b5","bb7"]},{name:"maj7",degrees:[1,3,5,7]},{name:"maj7\u266D5",degrees:[1,3,"b5",7]},{name:"maj7\u266F5",degrees:[1,3,"#5",7]},{name:"m7",degrees:[1,"b3",5,"b7"]},{name:"m7\u266D5",degrees:[1,"b3","b5","b7"]},{name:"m7\u266F5",degrees:[1,"b3","#5","b7"]},{name:"9",degrees:[1,3,5,"b7",9]},{name:"m9",degrees:[1,"b3",5,"b7",9]},{name:"7\u266F9",degrees:[1,3,5,"b7","#9"]},{name:"7\u266D9",degrees:[1,3,5,"b7","b9"]},{name:"11",degrees:[1,3,5,"b7",9,11]},{name:"m11",degrees:[1,"b3",5,"b7",9,11]},{name:"13",degrees:[1,3,5,"b7",9,11,13]},{name:"m13",degrees:[1,"b3",5,"b7",9,11,13]}];function lC(i,t){return i.degrees.every(e=>e!==t)?!0:i.degrees.length>=4&&t===5||i.degrees.length>=6&&t===9||i.degrees.length>=7&&t===11}var nn=class extends Error{constructor(e){super(e);this.msg=e;this.name="InvalidChordException"}},pu=class i{constructor(t,e,r,n){this.chordInfo=t;this.rootNote=r;d(this,"name");d(this,"notes");d(this,"omitNotes");d(this,"slashBassNote");this.name=t.name;let o=e.slice();!o.some(a=>Fr(a,n))&&o.push(n),this.notes=new Array(this.chordInfo.degrees.length),this.omitNotes=new Array(this.chordInfo.degrees.length);for(let a=0;a<t.degrees.length;a++){let c=t.degrees[a],u=this.notes[a]=cC(this.rootNote,c),h=o.findIndex(l=>Fr(l,u));if(h>=0)this.omitNotes[a]=!1,o.splice(h,1);else if(lC(t,c))this.omitNotes[a]=!0;else throw new nn("Missing chord note!");Fr(n,u)&&(n=u)}if(o.length>0)if(o.every(a=>Fr(a,n)))this.slashBassNote=n;else throw new nn("Got some extra notes that are not bass note!");else this.slashBassNote=Fr(n,this.rootNote)?void 0:n;if(t.name==="5"&&this.slashBassNote)throw new nn("Power chord no bass note allowed!")}static getChords(t){let e=[],r=U.sort(t),n=r[0],o=uC(r);for(let s=0;s<o.length;s++){let a=aC(o[s]);hC.forEach(c=>{try{let u=new i(c,o,a,n),h=e.findIndex(l=>l.replaceWith(u));h>=0?e[h]=u:e.push(u)}catch(u){if(!(u instanceof nn))throw u}})}return e}replaceWith(t){if(t.notes.length<this.notes.length)return!1;if(t.slashBassNote&&this.slashBassNote&&!Fr(t.slashBassNote,this.slashBassNote)||t.slashBassNote&&!this.slashBassNote||!t.slashBassNote&&this.slashBassNote)return!1;for(let e=0;e<this.notes.length;e++)if(!Fr(t.notes[e],this.notes[e])||t.omitNotes[e]!==this.omitNotes[e])return!1;return!0}toString(){let t=1,e=this.rootNote.formatOmitOctave(t),r=this.slashBassNote?"/"+this.slashBassNote.formatOmitOctave(t):"";return e+this.name+r}getDegreeNotationString(){let t=1,e=this.slashBassNote?this.slashBassNote.formatOmitOctave(t)+" - ":"",r=this.omitNotes.map((n,o)=>this.getDegreeStr(o)+"("+(n?"-":this.getNoteStr(o))+")").join(" - ");return e+r}getOmittedDegreesString(){let t=this.omitNotes.map((e,r)=>e?this.getDegreeStr(r)+"("+this.getNoteStr(r)+")":void 0).filter(e=>e!==void 0);return t.length>0?"Omits "+t.join(", "):""}getDegreeStr(t){return U.replaceAccidentalSymbols(""+this.chordInfo.degrees[t],1)}getNoteStr(t){return this.notes[t].formatOmitOctave(1)}};var mu={list:[{name:"Standard",strings:["E2","A2","D3","G3","B3","E4"]},{name:"B Standard",strings:["B1","E2","A2","D3","F#3","B3"]},{name:"C Standard",strings:["C2","F2","A#2","D#3","G3","C4"]},{name:"D Modal",strings:["D2","A2","D3","G3","A3","D4"]},{name:"D Standard",strings:["D2","G2","C3","F3","A3","D4"]},{name:"D# Standard",strings:["D#2","G#2","C#3","F#3","A#3","D#4"]},{name:"Double Drop D",strings:["D2","A2","D3","G3","B3","D4"]},{name:"Drop B",strings:["B1","F#2","B2","E3","G#3","C#4"]},{name:"Drop C",strings:["C2","G2","C3","F3","A3","D4"]},{name:"Drop D",strings:["D2","A2","D3","G3","B3","E4"]},{name:"Low C",strings:["C2","G2","D3","G3","A3","D4"]},{name:"New Standard",strings:["C2","G2","D3","A3","E4","G4"]},{name:"Open A",strings:["E2","A2","C#3","E3","A3","E4"]},{name:"Open A Minor",strings:["E2","A2","E3","A3","C4","E4"]},{name:"Open C",strings:["C2","G2","C3","G3","C4","E4"]},{name:"Open C Minor",strings:["C2","G2","C3","G3","C4","D#4"]},{name:"Open D",strings:["D2","A2","D3","F#3","A3","D4"]},{name:"Open D Minor",strings:["D2","A2","D3","F3","A3","D4"]},{name:"Open E",strings:["E2","B2","E3","G#3","B3","E4"]},{name:"Open E Minor",strings:["E2","B2","E3","G3","B3","E4"]},{name:"Open G",strings:["D2","G2","D3","G3","B3","D4"]},{name:"Open G Minor",strings:["D2","G2","D3","G3","A#3","D4"]}]};var lo=mu.list.map(i=>i.name),pC=lo[0];function fu(i){if(lo.indexOf(i)<0)throw new N(1,`Invalid tuning name: ${i}`);return i}var El=new bl(100);function $s(i){let t=El.get(i);if(!t){let e=mu.list.find(r=>r.name===i);if(!e)throw new N(1,`Invalid tuningName: ${i}`);if(t=e.strings.slice().reverse().map(r=>U.getNote(r)),!y.isIntegerEq(t.length,6))throw new N(0,`Tuning has ${t.length} strings.`);El.set(i,t)}return t}var Dl=12,mC=1188*7*5,ir=(k=>(k.Whole="1n",k.WholeTriplet="1t",k.WholeDot="1.",k.Whole2Dots="1..",k.Whole3Dots="1...",k.Whole4Dots="1....",k.Whole5Dots="1.....",k.Whole6Dots="1......",k.Half="2n",k.HalfTriplet="2t",k.HalfDot="2.",k.Half2Dots="2..",k.Half3Dots="2...",k.Half4Dots="2....",k.Half5Dots="2.....",k.Quarter="4n",k.QuarterTriplet="4t",k.QuarterDot="4.",k.Quarter2Dots="4..",k.Quarter3Dots="4...",k.Quarter4Dots="4....",k.Eighth="8n",k.EighthTriplet="8t",k.EighthDot="8.",k.Eighth2Dots="8..",k.Eighth3Dots="8...",k.Sixteenth="16n",k.SixteenthTriplet="16t",k.SixteenthDot="16.",k.Sixteenth2Dots="16..",k.ThirtySecond="32n",k.ThirtySecondTriplet="32t",k.ThirtySecondDot="32.",k.SixtyFourth="64n",k.SixtyFourthTriplet="64t",k))(ir||{});function nr(i){return y.isEnumValue(i,ir)}function Br(i){if(nr(i))return i;throw new N(1,`Invalid noteLength: ${i}`)}var me=class me{constructor(t){d(this,"noteLength");d(this,"noteSize");d(this,"ticks");d(this,"flagCount");d(this,"dotCount");d(this,"maxDotCount");d(this,"isTriplet");d(this,"hasStem");d(this,"isSolid");if(this.noteLength=Br(t),this.noteSize=parseInt(t),this.isTriplet=t.endsWith("t"),this.maxDotCount=this.isTriplet?0:Math.floor(Math.log2(me.ShortestNoteSize/this.noteSize)),this.dotCount=$.Str.charCount(t,"."),this.flagCount=this.noteSize>4?Math.floor(Math.log2(this.noteSize/4)):0,this.ticks=mC*me.ShortestNoteSize/this.noteSize,this.hasStem=this.noteSize>1,this.isSolid=this.noteSize>2,this.dotCount>this.maxDotCount)throw new N(2,`dotCount ${this.dotCount} > maxDotCount ${this.maxDotCount}, for noteLength "${this.noteLength}".`);if(this.isTriplet&&this.dotCount>0)throw new N(2,`noteLength "${this.noteLength}" is both triplet and dotted!`)}static get(t){return this.cache.getOrCreate(t,()=>new me(t))}static create(t,e=0){let r=typeof t=="number"?t:this.get(t).noteSize;return this.get(r+(y.isIntegerGte(e,1)?".".repeat(e):"n"))}static cmp(t,e){let r=t instanceof me?t.noteSize:typeof t=="number"?t:me.get(t).noteSize,n=e instanceof me?e.noteSize:typeof e=="number"?e:me.get(e).noteSize;return $.Math.cmp(n,r)}static equals(t,e){let r=t instanceof me?t.noteSize:typeof t=="number"?t:me.get(t).noteSize,n=e instanceof me?e.noteSize:typeof e=="number"?e:me.get(e).noteSize;return r===n}};d(me,"LongestNoteSize",Math.min(...$.Enum.getEnumValues(ir).map(t=>parseInt(t)))),d(me,"ShortestNoteSize",Math.max(...$.Enum.getEnumValues(ir).map(t=>parseInt(t)))),d(me,"cache",new lt);var Nt=me;function Zs(i){return y.isObject(i)&&y.isIntegerBetween(i.parts,2,Dl)&&y.isIntegerBetween(i.inTimeOf,2,Dl)}function kl(i){if(Zs(i))return i;throw new N(2,`Invalid tupletRatio ${JSON.stringify(i)}`)}var Gr={Duplet:{parts:2,inTimeOf:3},Triplet:{parts:3,inTimeOf:2},Quadruplet:{parts:4,inTimeOf:3}},Ni=class Ni{constructor(t,e,r){d(this,"noteLength");d(this,"noteSize");d(this,"dotCount");d(this,"tupletRatio");d(this,"ticks");d(this,"flagCount");d(this,"hasStem");d(this,"isSolidNoteHead");this.noteLength=Br(t);let n=Nt.get(t);if(this.noteSize=n.noteSize,this.ticks=n.ticks,this.flagCount=n.flagCount,this.dotCount=e!=null?e:n.dotCount,this.hasStem=n.hasStem,this.isSolidNoteHead=n.isSolid,y.isObject(r)?this.tupletRatio=kl(r):n.isTriplet?this.tupletRatio=Gr.Triplet:this.tupletRatio=void 0,this.dotCount>0&&this.tupletRatio!==void 0)throw new N(2,"Note cannot be both dotted and tuplet!");if(this.dotCount>n.maxDotCount)throw new N(2,`Too big dot count ${this.dotCount} for note length ${this.noteLength}.`);for(let o=this.ticks/2,s=1;s<=this.dotCount;s++,o/=2)this.ticks+=o;this.tupletRatio&&(this.ticks*=this.tupletRatio.inTimeOf/this.tupletRatio.parts)}toString(){let t=Ni.NoteSymbolMap.get(this.noteSize),e=".".repeat(this.dotCount);return t?t+e:""+this.noteSize+(e.length>0?e:"n")}static get(t,e,r){return e!==void 0||r!==void 0?new Ni(t,e,r):this.cache.getOrCreate(t,()=>new Ni(t))}static cmp(t,e){return $.Math.cmp(t.ticks,e.ticks)}static equals(t,e){return t.ticks===e.ticks}};d(Ni,"NoteSymbolMap",new vr([[1,"\u{1D15D}"],[2,"\u{1D15E}"],[4,"\u{1D15F}"],[8,"\u{1D160}"],[16,"\u{1D161}"],[32,"\u{1D162}"],[64,"\u{1D163}"],[128,"\u{1D164}"]])),d(Ni,"cache",new lt);var Kt=Ni;var po=(u=>(u._2_4="2/4",u._3_4="3/4",u._4_4="4/4",u._3_8="3/8",u._5_8="5/8",u._6_8="6/8",u._7_8="7/8",u._9_8="9/8",u._12_8="12/8",u))(po||{}),Oi=(n=>(n._2_3="2-3",n._3_2="3-2",n._2_2_3="2-2-3",n._3_2_2="3-2-2",n))(Oi||{}),ii=class{constructor(...t){d(this,"beatCount");d(this,"beatSize");d(this,"beatLength");d(this,"measureTicks");d(this,"beamGroupSizes",[]);let e;if(y.isEnumValue(t[0],po)){let o=t[0].split("/");this.beatCount=+o[0],this.beatSize=+o[1],y.isEnumValue(t[1],Oi)&&(e=t[1])}else if(y.isIntegerGte(t[0],2)&&y.isIntegerGte(t[1],2))this.beatCount=t[0],this.beatSize=t[1],y.isEnumValue(t[2],Oi)&&(e=t[2]);else throw new N(5,`Invalid args: ${t}`);if(y.isIntegerGte(this.beatCount,1)){if(!y.isIntegerGte(this.beatSize,1))throw new N(5,`Invalid beatSize: ${this.beatSize}`)}else throw new N(5,`Invalid beatCount: ${this.beatCount}`);let{noteLength:r,ticks:n}=Nt.create(this.beatSize);if(this.beatLength=r,this.measureTicks=this.beatCount*n,this.is(2,4))this.beamGroupSizes=[[2],[2]];else if(this.is(3,4))this.beamGroupSizes=[[2],[2],[2]];else if(this.is(4,4))this.beamGroupSizes=[[2,2],[2,2]];else if(this.is(3,8))this.beamGroupSizes=[[3]];else if(this.is(5,8)){if(!y.isUndefined(e)&&e!=="2-3"&&e!=="3-2")throw new N(5,`Invalid beam grouping "${e}" for time signature "${this.toString()}".`);this.beamGroupSizes=e==="3-2"?[[3],[2]]:[[2],[3]],e=void 0}else if(this.is(6,8))this.beamGroupSizes=[[3],[3]];else if(this.is(7,8)){if(!y.isUndefined(e)&&e!=="2-2-3"&&e!=="3-2-2")throw new N(5,`Invalid beam grouping "${e}" for time signature "${this.toString()}".`);this.beamGroupSizes=e==="3-2-2"?[[3],[2],[2]]:[[2],[2],[3]],e=void 0}else this.is(9,8)?this.beamGroupSizes=[[3],[3],[3]]:this.is(12,8)&&(this.beamGroupSizes=[[3],[3],[3],[3]]);if(this.beamGroupSizes.length===0)throw new N(5,`Unimplemented time signature "${this.toString()}".`);if(e!==void 0)throw new N(5,`Invalid beam grouping "${e}" for time signature "${this.toString()}".`)}is(t,e){return this.beatCount===t&&this.beatSize===e}toString(){return this.beatCount+"/"+this.beatSize}},gu;function Xs(){return gu||(gu=new ii(4,4)),gu}var yu;function Qs(){return yu||(yu={beatsPerMinute:120,options:{beatLength:"4n",dotCount:0}}),yu}function Ks(i){return Kt.get(i.options.beatLength,i.options.dotCount).toString()+"="+i.beatsPerMinute}function bu(i,t){return{beatsPerMinute:i.beatsPerMinute*t,options:{beatLength:i.options.beatLength,dotCount:i.options.dotCount}}}Ii();function Js(i){return!isFinite(i)||i<=0?-1/0:20*Math.log10(i)}var mo="15.1.22";var Au=(i,t,e)=>({endTime:t,insertTime:e,type:"exponentialRampToValue",value:i});var Cu=(i,t,e)=>({endTime:t,insertTime:e,type:"linearRampToValue",value:i});var on=(i,t)=>({startTime:t,type:"setValue",value:i});var fo=(i,t,e)=>({duration:e,startTime:t,type:"setValueCurve",values:i});var ta=(i,t,{startTime:e,target:r,timeConstant:n})=>r+(t-r)*Math.exp((e-i)/n);var Vr=i=>i.type==="exponentialRampToValue";var Ri=i=>i.type==="linearRampToValue";var or=i=>Vr(i)||Ri(i);var sn=i=>i.type==="setValue";var Ue=i=>i.type==="setValueCurve";var an=(i,t,e,r)=>{let n=i[t];return n===void 0?r:or(n)||sn(n)?n.value:Ue(n)?n.values[n.values.length-1]:ta(e,an(i,t-1,n.startTime,r),n)};var _u=(i,t,e,r,n)=>e===void 0?[r.insertTime,n]:or(e)?[e.endTime,e.value]:sn(e)?[e.startTime,e.value]:Ue(e)?[e.startTime+e.duration,e.values[e.values.length-1]]:[e.startTime,an(i,t-1,e.startTime,n)];var go=i=>i.type==="cancelAndHold";var yo=i=>i.type==="cancelScheduledValues";var qr=i=>go(i)||yo(i)?i.cancelTime:Vr(i)||Ri(i)?i.endTime:i.startTime;var vu=(i,t,e,{endTime:r,value:n})=>e===n?n:0<e&&0<n||e<0&&n<0?e*$h(n/e,(i-t)/(r-t)):0;var Su=(i,t,e,{endTime:r,value:n})=>e+(i-t)/(r-t)*(n-e);var Ll=(i,t)=>{let e=Math.floor(t),r=Math.ceil(t);return e===r?i[e]:(1-(t-e))*i[e]+(1-(r-t))*i[r]};var jl=(i,{duration:t,startTime:e,values:r})=>{let n=(i-e)/t*(r.length-1);return Ll(r,n)};var bo=i=>i.type==="setTarget";var xo=class{constructor(t){this._automationEvents=[],this._currenTime=0,this._defaultValue=t}[Symbol.iterator](){return this._automationEvents[Symbol.iterator]()}add(t){let e=qr(t);if(go(t)||yo(t)){let r=this._automationEvents.findIndex(o=>yo(t)&&Ue(o)?o.startTime+o.duration>=e:qr(o)>=e),n=this._automationEvents[r];if(r!==-1&&(this._automationEvents=this._automationEvents.slice(0,r)),go(t)){let o=this._automationEvents[this._automationEvents.length-1];if(n!==void 0&&or(n)){if(o!==void 0&&bo(o))throw new Error("The internal list is malformed.");let s=o===void 0?n.insertTime:Ue(o)?o.startTime+o.duration:qr(o),a=o===void 0?this._defaultValue:Ue(o)?o.values[o.values.length-1]:o.value,c=Vr(n)?vu(e,s,a,n):Su(e,s,a,n),u=Vr(n)?Au(c,e,this._currenTime):Cu(c,e,this._currenTime);this._automationEvents.push(u)}if(o!==void 0&&bo(o)&&this._automationEvents.push(on(this.getValue(e),e)),o!==void 0&&Ue(o)&&o.startTime+o.duration>e){let s=e-o.startTime,a=(o.values.length-1)/o.duration,c=Math.max(2,1+Math.ceil(s*a)),u=s/(c-1)*a,h=o.values.slice(0,c);if(u<1)for(let l=1;l<c;l+=1){let p=u*l%1;h[l]=o.values[l-1]*(1-p)+o.values[l]*p}this._automationEvents[this._automationEvents.length-1]=fo(h,o.startTime,s)}}}else{let r=this._automationEvents.findIndex(s=>qr(s)>e),n=r===-1?this._automationEvents[this._automationEvents.length-1]:this._automationEvents[r-1];if(n!==void 0&&Ue(n)&&qr(n)+n.duration>e)return!1;let o=Vr(t)?Au(t.value,t.endTime,this._currenTime):Ri(t)?Cu(t.value,e,this._currenTime):t;if(r===-1)this._automationEvents.push(o);else{if(Ue(t)&&e+t.duration>qr(this._automationEvents[r]))return!1;this._automationEvents.splice(r,0,o)}}return!0}flush(t){let e=this._automationEvents.findIndex(r=>qr(r)>t);if(e>1){let r=this._automationEvents.slice(e-1),n=r[0];bo(n)&&r.unshift(on(an(this._automationEvents,e-2,n.startTime,this._defaultValue),n.startTime)),this._automationEvents=r}}getValue(t){if(this._automationEvents.length===0)return this._defaultValue;let e=this._automationEvents.findIndex(s=>qr(s)>t),r=this._automationEvents[e],n=(e===-1?this._automationEvents.length:e)-1,o=this._automationEvents[n];if(o!==void 0&&bo(o)&&(r===void 0||!or(r)||r.insertTime>t))return ta(t,an(this._automationEvents,n-1,o.startTime,this._defaultValue),o);if(o!==void 0&&sn(o)&&(r===void 0||!or(r)))return o.value;if(o!==void 0&&Ue(o)&&(r===void 0||!or(r)||o.startTime+o.duration>t))return t<o.startTime+o.duration?jl(t,o):o.values[o.values.length-1];if(o!==void 0&&or(o)&&(r===void 0||!or(r)))return o.value;if(r!==void 0&&Vr(r)){let[s,a]=_u(this._automationEvents,n,o,r,this._defaultValue);return vu(t,s,a,r)}if(r!==void 0&&Ri(r)){let[s,a]=_u(this._automationEvents,n,o,r,this._defaultValue);return Su(t,s,a,r)}return this._defaultValue}};var wu=i=>({cancelTime:i,type:"cancelAndHold"});var Iu=i=>({cancelTime:i,type:"cancelScheduledValues"});var Tu=(i,t)=>({endTime:t,type:"exponentialRampToValue",value:i});var Nu=(i,t)=>({endTime:t,type:"linearRampToValue",value:i});var Ou=(i,t,e)=>({startTime:t,target:i,timeConstant:e,type:"setTarget"});var Pl=()=>new DOMException("","AbortError");var Fl=i=>(t,e,[r,n,o],s)=>{i(t[n],[e,r,o],a=>a[0]===e&&a[1]===r,s)};var Bl=i=>(t,e,r)=>{let n=[];for(let o=0;o<r.numberOfInputs;o+=1)n.push(new Set);i.set(t,{activeInputs:n,outputs:new Set,passiveInputs:new WeakMap,renderer:e})};var Gl=i=>(t,e)=>{i.set(t,{activeInputs:new Set,passiveInputs:new WeakMap,renderer:e})};var Sr=new WeakSet,ea=new WeakMap,cn=new WeakMap,ra=new WeakMap,Ao=new WeakMap,un=new WeakMap,ia=new WeakMap,Co=new WeakMap,_o=new WeakMap,vo=new WeakMap;var Vl={construct(){return Vl}},ql=i=>{try{let t=new Proxy(i,Vl);new t}catch(t){return!1}return!0};var Wl=/^import(?:(?:[\s]+[\w]+|(?:[\s]+[\w]+[\s]*,)?[\s]*\{[\s]*[\w]+(?:[\s]+as[\s]+[\w]+)?(?:[\s]*,[\s]*[\w]+(?:[\s]+as[\s]+[\w]+)?)*[\s]*}|(?:[\s]+[\w]+[\s]*,)?[\s]*\*[\s]+as[\s]+[\w]+)[\s]+from)?(?:[\s]*)("([^"\\]|\\.)+"|'([^'\\]|\\.)+')(?:[\s]*);?/,Ru=(i,t)=>{let e=[],r=i.replace(/^[\s]+/,""),n=r.match(Wl);for(;n!==null;){let o=n[1].slice(1,-1),s=n[0].replace(/([\s]+)?;?$/,"").replace(o,new URL(o,t).toString());e.push(s),r=r.slice(n[0].length).replace(/^[\s]+/,""),n=r.match(Wl)}return[e.join(";"),r]};var Ul=i=>{if(i!==void 0&&!Array.isArray(i))throw new TypeError("The parameterDescriptors property of given value for processorCtor is not an array.")},zl=i=>{if(!ql(i))throw new TypeError("The given value for processorCtor should be a constructor.");if(i.prototype===null||typeof i.prototype!="object")throw new TypeError("The given value for processorCtor should have a prototype.")},Yl=(i,t,e,r,n,o,s,a,c,u,h,l,p)=>{let m=0;return(f,g,b={credentials:"omit"})=>{let x=h.get(f);if(x!==void 0&&x.has(g))return Promise.resolve();let C=u.get(f);if(C!==void 0){let w=C.get(g);if(w!==void 0)return w}let S=o(f),T=S.audioWorklet===void 0?n(g).then(([w,v])=>{let[A,_]=Ru(w,v),E=`${A};((a,b)=>{(a[b]=a[b]||[]).push((AudioWorkletProcessor,global,registerProcessor,sampleRate,self,window)=>{${_}
1
+ /* WebMusicScore v6.0.0-pre.3 | (c) 2023-2025 Stefan Brockmann | MIT License | Includes: Tone.js (MIT License), Color Name to Code (MIT License) */
2
+ "use strict";var WebMusicScore=(()=>{var Ds=Object.defineProperty,bg=Object.defineProperties,xg=Object.getOwnPropertyDescriptor,Ag=Object.getOwnPropertyDescriptors,Cg=Object.getOwnPropertyNames,Es=Object.getOwnPropertySymbols;var tu=Object.prototype.hasOwnProperty,Hh=Object.prototype.propertyIsEnumerable;var Kc=(i,t)=>(t=Symbol[i])?t:Symbol.for("Symbol."+i),_g=i=>{throw TypeError(i)},$h=Math.pow,Jc=(i,t,e)=>t in i?Ds(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,O=(i,t)=>{for(var e in t||(t={}))tu.call(t,e)&&Jc(i,e,t[e]);if(Es)for(var e of Es(t))Hh.call(t,e)&&Jc(i,e,t[e]);return i},Q=(i,t)=>bg(i,Ag(t));var Qr=(i,t)=>{var e={};for(var r in i)tu.call(i,r)&&t.indexOf(r)<0&&(e[r]=i[r]);if(i!=null&&Es)for(var r of Es(i))t.indexOf(r)<0&&Hh.call(i,r)&&(e[r]=i[r]);return e};var en=(i,t)=>{for(var e in t)Ds(i,e,{get:t[e],enumerable:!0})},vg=(i,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Cg(t))!tu.call(i,n)&&n!==e&&Ds(i,n,{get:()=>t[n],enumerable:!(r=xg(t,n))||r.enumerable});return i};var Sg=i=>vg(Ds({},"__esModule",{value:!0}),i);var d=(i,t,e)=>Jc(i,typeof t!="symbol"?t+"":t,e);var J=(i,t,e)=>new Promise((r,n)=>{var o=c=>{try{a(e.next(c))}catch(u){n(u)}},s=c=>{try{a(e.throw(c))}catch(u){n(u)}},a=c=>c.done?r(c.value):Promise.resolve(c.value).then(o,s);a((e=e.apply(i,t)).next())}),wg=function(i,t){this[0]=i,this[1]=t};var pe=i=>{var t=i[Kc("asyncIterator")],e=!1,r,n={};return t==null?(t=i[Kc("iterator")](),r=o=>n[o]=s=>t[o](s)):(t=t.call(i),r=o=>n[o]=s=>{if(e){if(e=!1,o==="throw")throw s;return s}return e=!0,{done:!1,value:new wg(new Promise(a=>{var c=t[o](s);c instanceof Object||_g("Object expected"),a(c)}),1)}}),n[Kc("iterator")]=()=>n,r("next"),"throw"in t?r("throw"):n.throw=o=>{throw o},"return"in t&&r("return"),n};var d0={};en(d0,{Audio:()=>Fo,Core:()=>hu,Pieces:()=>Yh,Score:()=>Vh,Theory:()=>xu});var Fo={};en(Fo,{addInstrument:()=>Mv,getCurrentInstrument:()=>Rv,getInstrumentList:()=>Ov,isMuted:()=>kv,linearToDecibels:()=>Js,mute:()=>Ev,playNote:()=>Ua,stop:()=>za,unmute:()=>Dv,useInstrument:()=>Jf});var xu={};en(xu,{AccidentalType:()=>du,BeamGrouping:()=>Oi,Chord:()=>pu,DefaultGuitarNoteLabel:()=>VA,DefaultPitchNotation:()=>BA,DefaultTuningName:()=>mC,GuitarNoteLabel:()=>zs,GuitarNoteLabelList:()=>qA,Interval:()=>uo,KeySignature:()=>rr,Mode:()=>lu,Note:()=>U,NoteLength:()=>ir,NoteLengthProps:()=>Nt,PitchNotation:()=>ti,PitchNotationList:()=>FA,RhythmProps:()=>Kt,Scale:()=>ri,ScaleFactory:()=>ne,ScaleType:()=>Ti,SymbolSet:()=>Jr,TimeSignature:()=>ii,TimeSignatures:()=>po,TuningNameList:()=>lo,Tuplet:()=>Gr,alterTempoSpeed:()=>bu,getDefaultKeySignature:()=>Ys,getDefaultScale:()=>oC,getDefaultTempo:()=>Qs,getDefaultTimeSignature:()=>Xs,getPitchNotationName:()=>GA,getScale:()=>Pr,getScaleFactory:()=>Ml,getScaleFactoryList:()=>iC,getTempoString:()=>Ks,getTuningStrings:()=>$s,isNoteLength:()=>nr,isTupletRatio:()=>Zs,validateGuitarNoteLabel:()=>WA,validateIntervalQuality:()=>KA,validateNoteLength:()=>Br,validatePitchNotation:()=>_l,validateScaleType:()=>ho,validateTuningName:()=>fu,validateTupletRatio:()=>kl});var Zh=Object.defineProperty,Ig=(i,t,e)=>t in i?Zh(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,er=(i,t)=>{for(var e in t)Zh(i,e,{get:t[e],enumerable:!0})},ft=(i,t,e)=>Ig(i,typeof t!="symbol"?t+"":t,e),Xh={};er(Xh,{assert:()=>tb,doesNotThrow:()=>Tx,doesThrow:()=>Ix,fail:()=>nb,isArray:()=>yb,isArrayOrUndefined:()=>bb,isBigInt:()=>Gb,isBoolean:()=>Ob,isBooleanOrUndefined:()=>Rb,isDeepEqual:()=>sb,isDefined:()=>hb,isEmptyArray:()=>xb,isEmptyArrayOrUndefined:()=>Cb,isEmptyObject:()=>pb,isEmptyString:()=>Sb,isEmptyStringOrUndefined:()=>Tb,isEnumValue:()=>Pb,isEnumValueOrUndefined:()=>Fb,isEven:()=>Cx,isFalse:()=>Db,isFalseOrUndefined:()=>kb,isFinite:()=>Qb,isFloat:()=>Kb,isFunction:()=>Lb,isFunctionOrUndefined:()=>jb,isIncluded:()=>Sx,isIndex:()=>wx,isInfinity:()=>hx,isInteger:()=>Jb,isIntegerBetween:()=>ax,isIntegerBetweenExclusive:()=>cx,isIntegerEq:()=>rx,isIntegerGt:()=>ix,isIntegerGte:()=>nx,isIntegerLt:()=>ox,isIntegerLte:()=>sx,isIntegerOrUndefined:()=>ex,isMultipleOf:()=>_x,isNaNValue:()=>ux,isNeg:()=>mx,isNegInfinity:()=>dx,isNegZero:()=>xx,isNonEmptyArray:()=>Ab,isNonEmptyArrayOrUndefined:()=>_b,isNonEmptyString:()=>wb,isNonEmptyStringOrUndefined:()=>Nb,isNonNeg:()=>gx,isNonNull:()=>lb,isNonPos:()=>fx,isNull:()=>cb,isNullish:()=>ub,isNumber:()=>Vb,isNumberBetween:()=>Zb,isNumberBetweenExclusive:()=>Xb,isNumberEq:()=>Ub,isNumberGt:()=>zb,isNumberGte:()=>Yb,isNumberLt:()=>Hb,isNumberLte:()=>$b,isNumberOrUndefined:()=>Wb,isNumericString:()=>Bb,isObject:()=>db,isObjectOrUndefined:()=>fb,isOdd:()=>Ax,isPlainObject:()=>mb,isPos:()=>px,isPosInfinity:()=>lx,isPosZero:()=>bx,isPowerOfTwo:()=>vx,isSafeInteger:()=>tx,isSafeNumber:()=>qb,isStrictEqual:()=>ob,isString:()=>vb,isStringOrUndefined:()=>Ib,isTrue:()=>Mb,isTrueOrUndefined:()=>Eb,isTypedObject:()=>gb,isUndefined:()=>ab,isZero:()=>yx,require:()=>eb,requireDefined:()=>rb,requireElement:()=>ib,setErrorClass:()=>Jy});var Qh={};er(Qh,{charCount:()=>Zy,chunkString:()=>Yy,insertAt:()=>Hy,isString:()=>el,makeSentenceFromPascal:()=>Xy,removeAt:()=>$y,repeatString:()=>zy,replaceAt:()=>ou,splitByCaps:()=>Qy,splitByChars:()=>Ky,splitByStrings:()=>ol,stringify:()=>Gt,toCharArray:()=>Uy});var Kh={};er(Kh,{deepEqual:()=>Ps,getCtorName:()=>nl,hasProperties:()=>Wy,isObject:()=>wi});var y={};er(y,{doesNotThrow:()=>Vy,doesThrow:()=>Gy,isArray:()=>je,isArrayOrUndefined:()=>Gg,isBigInt:()=>sy,isBoolean:()=>Xg,isBooleanOrUndefined:()=>Qg,isDeepEqual:()=>ao,isDefined:()=>Dg,isEmptyArray:()=>Vg,isEmptyArrayOrUndefined:()=>Wg,isEmptyObject:()=>Lg,isEmptyString:()=>zg,isEmptyStringOrUndefined:()=>$g,isEnumValue:()=>iy,isEnumValueOrUndefined:()=>ny,isEven:()=>Ly,isFalse:()=>ty,isFalseOrUndefined:()=>ey,isFinite:()=>rn,isFloat:()=>gy,isFunction:()=>_r,isFunctionOrUndefined:()=>ry,isIncluded:()=>Fy,isIndex:()=>By,isInfinity:()=>Sy,isInteger:()=>Lt,isIntegerBetween:()=>rl,isIntegerBetweenExclusive:()=>vy,isIntegerEq:()=>xy,isIntegerGt:()=>Ay,isIntegerGte:()=>nu,isIntegerLt:()=>Cy,isIntegerLte:()=>_y,isIntegerOrUndefined:()=>by,isMultipleOf:()=>jy,isNaNValue:()=>il,isNeg:()=>Ny,isNegInfinity:()=>Iy,isNegZero:()=>Dy,isNonEmptyArray:()=>qg,isNonEmptyArrayOrUndefined:()=>Ug,isNonEmptyString:()=>Yg,isNonEmptyStringOrUndefined:()=>Zg,isNonNeg:()=>Ry,isNonNull:()=>kg,isNonPos:()=>Oy,isNull:()=>Mg,isNullish:()=>Eg,isNumber:()=>kt,isNumberBetween:()=>my,isNumberBetweenExclusive:()=>fy,isNumberEq:()=>uy,isNumberGt:()=>hy,isNumberGte:()=>ly,isNumberLt:()=>dy,isNumberLte:()=>py,isNumberOrUndefined:()=>cy,isNumericString:()=>oy,isObject:()=>wi,isObjectOrUndefined:()=>jg,isOdd:()=>ky,isPlainObject:()=>Pg,isPos:()=>Ty,isPosInfinity:()=>wy,isPosZero:()=>Ey,isPowerOfTwo:()=>Py,isSafeInteger:()=>yy,isSafeNumber:()=>ay,isStrictEqual:()=>Og,isString:()=>el,isStringOrUndefined:()=>Hg,isTrue:()=>Kg,isTrueOrUndefined:()=>Jg,isTypedObject:()=>Fg,isUndefined:()=>Rg,isZero:()=>My,tryOr:()=>qy});var Jh={};er(Jh,{forEachEnum:()=>Ng,getEnumEntries:()=>tl,getEnumKey:()=>Tg,getEnumKeys:()=>Fs,getEnumValues:()=>iu});function Fs(i){return Object.keys(i).filter(t=>isNaN(Number(t)))}function iu(i){return Fs(i).map(t=>i[t])}function tl(i){return Fs(i).map(t=>[t,i[t]])}function Tg(i,t){return Fs(i).find(e=>i[e]===t)}function Ng(i,t){for(let[e,r]of tl(i))t(e,r)}function Og(i,t){return i===t}function ao(i,t){return Ps(i,t)}function Rg(i){return i===void 0}function Mg(i){return i===null}function Eg(i){return i==null}function Dg(i){return i!==void 0}function kg(i){return i!==null}function wi(i){return typeof i=="object"&&i!==null&&!je(i)}function Lg(i){return wi(i)&&Object.keys(i).length===0}function jg(i){return i===void 0||wi(i)}function Pg(i){if(!wi(i))return!1;let t=Object.getPrototypeOf(i);return t===Object.prototype||t===null}function Fg(i,t){return wi(i)&&t.every(e=>e in i)}function Bg(i){return i instanceof Set}function je(i){return!!i&&Object.prototype.toString.call(i)==="[object Array]"}function Gg(i){return i===void 0||je(i)}function Vg(i){return je(i)&&i.length===0}function qg(i){return je(i)&&i.length>0}function Wg(i){return je(i)&&i.length===0||i===void 0}function Ug(i){return je(i)&&i.length>0||i===void 0}function el(i){return typeof i=="string"}function zg(i){return typeof i=="string"&&i.length===0}function Yg(i){return typeof i=="string"&&i.length>0}function Hg(i){return i===void 0||typeof i=="string"}function $g(i){return typeof i=="string"&&i.length===0||i===void 0}function Zg(i){return typeof i=="string"&&i.length>0||i===void 0}function Xg(i){return typeof i=="boolean"}function Qg(i){return i===void 0||typeof i=="boolean"}function Kg(i){return i===!0}function Jg(i){return i===!0||i===void 0}function ty(i){return i===!1}function ey(i){return i===!1||i===void 0}function _r(i){return typeof i=="function"}function ry(i){return i===void 0||typeof i=="function"}function iy(i,t){return iu(t).some(e=>e===i)}function ny(i,t){return i===void 0||iu(t).some(e=>e===i)}function oy(i){if(typeof i!="string"||i.trim()==="")return!1;let t=+i;return Number.isFinite(t)}function sy(i){return typeof i=="bigint"}function kt(i){return typeof i=="number"}function ay(i){return kt(i)&&Number.isSafeInteger(i)}function cy(i){return typeof i=="number"||i===void 0}function uy(i,t){return kt(i)&&i===t}function hy(i,t){return kt(i)&&kt(t)&&i>t}function ly(i,t){return kt(i)&&kt(t)&&i>=t}function dy(i,t){return kt(i)&&kt(t)&&i<t}function py(i,t){return kt(i)&&kt(t)&&i<=t}function my(i,t,e){return kt(i)&&kt(t)&&kt(e)&&i>=t&&i<=e}function fy(i,t,e){return kt(i)&&kt(t)&&kt(e)&&i>t&&i<e}function rn(i){return typeof i=="number"&&Number.isFinite(i)}function gy(i){return rn(i)&&!Lt(i)}function Lt(i){return typeof i=="number"&&rn(i)&&i===Math.trunc(i)}function yy(i){return Lt(i)&&Number.isSafeInteger(i)}function by(i){return typeof i=="number"&&rn(i)&&i===Math.trunc(i)||i===void 0}function xy(i,t){return Lt(i)&&i===t}function Ay(i,t){return Lt(i)&&kt(t)&&i>t}function nu(i,t){return Lt(i)&&kt(t)&&i>=t}function Cy(i,t){return Lt(i)&&kt(t)&&i<t}function _y(i,t){return Lt(i)&&kt(t)&&i<=t}function rl(i,t,e){return Lt(i)&&kt(t)&&kt(e)&&i>=t&&i<=e}function vy(i,t,e){return Lt(i)&&kt(t)&&kt(e)&&i>t&&i<e}function il(i){return typeof i=="number"&&Number.isNaN(i)}function Sy(i){return i===1/0||i===-1/0}function wy(i){return i===1/0}function Iy(i){return i===-1/0}function Ty(i){return typeof i=="number"&&i>0}function Ny(i){return typeof i=="number"&&i<0}function Oy(i){return typeof i=="number"&&i<=0}function Ry(i){return typeof i=="number"&&i>=0}function My(i){return typeof i=="number"&&i===0}function Ey(i){return typeof i=="number"&&i===0&&1/i===1/0}function Dy(i){return typeof i=="number"&&i===0&&1/i===-1/0}function ky(i){return Lt(i)&&Math.abs(i)%2===1}function Ly(i){return Lt(i)&&i%2===0}function jy(i,t){return typeof i=="number"&&typeof t=="number"&&i%t===0}function Py(i){return Lt(i)&&i>0&&(i&i-1)===0}function Fy(i,t){return je(t)?t.includes(i):Bg(t)?t.has(i):!1}function By(i,t){return je(t)?rl(i,0,t.length-1):nu(i,0)}function Gy(i){try{return i(),!1}catch(t){return!0}}function Vy(i){try{return i(),!0}catch(t){return!1}}function qy(i,t){try{return i()}catch(e){return _r(t)?t():t}}function Wy(i,t){return wi(i)&&t.every(e=>e in i)}function Ps(i,t){if(i===t)return!0;if(i===null||t===null||typeof i!="object"||typeof t!="object")return!1;if(Array.isArray(i)&&Array.isArray(t))return i.length!==t.length?!1:i.every((n,o)=>Ps(n,t[o]));if(Array.isArray(i)!==Array.isArray(t))return!1;let e=Object.keys(i),r=Object.keys(t);if(e.length!==r.length)return!1;for(let n of e)if(!Object.prototype.hasOwnProperty.call(t,n)||!Ps(i[n],t[n]))return!1;return!0}function nl(i){return i===null?"null":je(i)?"Array":typeof i!="object"?typeof i:Object.prototype.toString.call(i).slice(8,-1)||"Object"}function Uy(i){return i.split("")}function zy(i,t){if(!Lt(t)||t<0)throw new Error("repeatStr: Invalid repeatCount = "+t);return new Array(t+1).join(i)}function Yy(i,t){if(!Lt(t)||t<1)throw new Error("chunckString: Invalid chuckSize = "+t);let e=[];for(let r=0;r<i.length;r+=t)e.push(i.slice(r,r+t));return e}function ou(i,t,e,r){if(!Lt(e)||e<0)throw new Error("replaceAt: Invalid removeCount = "+e);if(!Lt(t)||t<0||t+e>i.length)throw new Error("replaceAt: Invalid pos = "+t+", removeCount = "+e+", str.length = "+i.length);return i.substring(0,t)+r+i.substring(t+e)}function Hy(i,t,e){return ou(i,t,0,e)}function $y(i,t,e){return ou(i,t,e,"")}function Zy(i,t){if(t.length!==1||i.length===0)return 0;let e=0;for(let r=0;r<i.length;r++)i[r]===t&&e++;return e}function Xy(i){if(i==="")return"";let t=i.charAt(0),e="",r=()=>{t!==""&&(e===""?e+=t.charAt(0).toUpperCase()+t.substring(1):e+=" "+t,t="")},n=o=>o.toUpperCase()!==o.toLowerCase()&&o===o.toUpperCase();for(let o=1;o<i.length;o++){let s=i.charAt(o);n(s)&&r(),t+=s.toLowerCase()}return r(),e}function Gt(i,t=5,e=new WeakSet){if(i===null)return"null";if(i===void 0)return"undefined";let r=typeof i;switch(r){case"boolean":return i?"true":"false";case"number":return il(i)?"NaN":rn(i)?i.toString():i<0?"-Infinity":"Infinity";case"bigint":return`${i}n`;case"string":return`"${i}"`;case"symbol":return i.description?`Symbol(${i.description})`:"Symbol()";case"function":return`[Function${i.name?` ${i.name}`:""}]`}if(e.has(i))return"[Circular]";if(t<=0)return"[Depth limit]";t--,e.add(i);let n=s=>Gt(s,t,e);if(je(i)){let s=i.map(a=>n(a)).join(", ");return s.length===0?"[ ]":`[ ${s} ]`}if(ArrayBuffer.isView(i)){if(i instanceof DataView)return`DataView(${i.byteLength})`;let s=Array.from(i).map(a=>n(a)).join(", ");return`${i.constructor.name}[ ${s} ]`}if(i instanceof ArrayBuffer)return`ArrayBuffer(${i.byteLength})`;if(i instanceof Map){let s=Array.from(i.entries()).map(([a,c])=>`${n(a)} => ${n(c)}`).join(", ");return s.length===0?`Map(${i.size}){ }`:`Map(${i.size}){ ${s} }`}if(i instanceof Set){let s=Array.from(i.values()).map(a=>n(a)).join(", ");return s.length===0?`Set(${i.size}){ }`:`Set(${i.size}){ ${s} }`}if(i instanceof WeakMap)return"WeakMap{ ? }";if(i instanceof WeakSet)return"WeakSet{ ? }";if(i instanceof Date)return`Date("${i.toISOString()}")`;if(i instanceof RegExp)return i.toString();if(i instanceof Error)return`${i.name}("${i.message}")`;if(i instanceof Promise)return"Promise{ ? }";if(i instanceof URL)return`URL("${i.href}")`;if(i instanceof URLSearchParams)return`URLSearchParams("${i.toString()}")`;if(i===Math)return"Math";if(i===JSON)return"JSON";if(i===Reflect)return"Reflect";if(i===Intl)return"Intl";if(typeof(i==null?void 0:i.toString)=="function"&&i.toString!==Object.prototype.toString)try{let s=i.toString();if(!/^\[object .+\]$/.test(s))return s}catch(s){}if(r==="object"){let s=nl(i),a=Object.entries(i).map(([c,u])=>`${n(c)}: ${n(u)}`);return a.length===0?`${s}{ }`:`${s}{ ${a.join(", ")} }`}return String(i)}function Qy(i){return i.split(/(?=[A-Z])/).filter(t=>!!t)}function ol(i,...t){if(t.length===0)return[i];let e=t.map(n=>n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")),r=new RegExp(e.join("|"),"g");return i.split(r)}function Ky(i,t){return ol(i,...t.split(""))}var L=Gt,sl=Error;function Jy(i){sl=i!=null?i:Error}function V(...i){let t=i.join(", ");throw new sl("Assertion Failed!"+(t===""?"":" "+t))}function tb(i,t){i||V(t)}function eb(i,t){return i==null&&V(`Expected ${L(i)} not to be nullish`,t),i}function rb(i,t){return i===void 0&&V(`Expected ${L(i)} not to be undefined`,t),i}function ib(i,t,e){return y.isIndex(i,t)||V(`Expected ${i} to be index for array ${L(t)}`,e),t[i]}function nb(i){V(i)}function ob(i,t,e){return y.isStrictEqual(i,t)||V(`Expected ${L(i)} to ne strict equal to ${t}`,e),i}function sb(i,t,e){return y.isDeepEqual(i,t)||V(`Expected ${L(i)} to deep equal with ${L(t)}`,e),i}function ab(i,t){return y.isUndefined(i)||V(`Expected ${L(i)} to be undefined`,t),i}function cb(i,t){return y.isNull(i)||V(`Expected ${L(i)} to be null`,t),i}function ub(i,t){return y.isNullish(i)||V(`Expected ${L(i)} to be null or undefined`,t),i}function hb(i,t){return y.isDefined(i)||V(`Expected ${L(i)} to be defined`,t),i}function lb(i,t){return y.isNonNull(i)||V(`Expected ${L(i)} to be defined`,t),i}function db(i,t){return y.isObject(i)||V(`Expected ${L(i)} to be object`,t),i}function pb(i,t){return y.isEmptyObject(i)||V(`Expected ${L(i)} to be empty object`,t),i}function mb(i,t){return y.isPlainObject(i)||V(`Expected ${L(i)} to be plain object`,t),i}function fb(i,t){return y.isObjectOrUndefined(i)||V(`Expected ${L(i)} to be object or undefined`,t),i}function gb(i,t,e){return y.isTypedObject(i,t)||V(`Expected ${L(i)} to have keys ${L(t)}`,e),i}function yb(i,t){return y.isArray(i)||V(`Expected ${L(i)} to be array`,t),i}function bb(i,t){return y.isArrayOrUndefined(i)||V(`Expected ${L(i)} to be array or undefined`,t),!0}function xb(i,t){y.isEmptyArray(i)||V(`Expected ${L(i)} to be empty array`,t)}function Ab(i,t){y.isNonEmptyArray(i)||V(`Expected ${L(i)} to be non-empty array`,t)}function Cb(i,t){y.isEmptyArrayOrUndefined(i)||V(`Expected ${L(i)} to be empty array or undefined`,t)}function _b(i,t){y.isNonEmptyArrayOrUndefined(i)||V(`Expected ${L(i)} to be non-empty array or undefined`,t)}function vb(i,t){return y.isString(i)||V(`Expected ${L(i)} to be string`,t),i}function Sb(i,t){return y.isEmptyString(i)||V(`Expected ${L(i)} to be empty string`,t),i}function wb(i,t){return y.isNonEmptyString(i)||V(`Expected ${L(i)} to be non-empty string`,t),i}function Ib(i,t){return y.isStringOrUndefined(i)||V(`Expected ${L(i)} to be string or undefined`,t),i}function Tb(i,t){return y.isEmptyStringOrUndefined(i)||V(`Expected ${L(i)} to be empty string or undefined`,t),i}function Nb(i,t){return y.isNonEmptyStringOrUndefined(i)||V(`Expected ${L(i)} to be non-empty string or undefined`,t),i}function Ob(i,t){return y.isBoolean(i)||V(`Expected ${L(i)} to be boolean`,t),i}function Rb(i,t){return y.isBooleanOrUndefined(i)||V(`Expected ${L(i)} to be boolean or undefined`,t),i}function Mb(i,t){return y.isTrue(i)||V(`Expected ${L(i)} to be true`,t),i}function Eb(i,t){return y.isTrueOrUndefined(i)||V(`Expected ${L(i)} to be true or undefined`,t),i}function Db(i,t){return y.isFalse(i)||V(`Expected ${L(i)} to be false`,t),i}function kb(i,t){return y.isFalseOrUndefined(i)||V(`Expected ${L(i)} to be false or undefined`,t),i}function Lb(i,t){return y.isFunction(i)||V(`Expected ${L(i)} to be function`,t),i}function jb(i,t){return y.isFunctionOrUndefined(i)||V(`Expected ${L(i)} to be function or undefined`,t),i}function Pb(i,t,e){return y.isEnumValue(i,t)||V(`Expected ${L(i)} to be enum val`,e),i}function Fb(i,t,e){return y.isEnumValueOrUndefined(i,t)||V(`Expected ${L(i)} to be enum val or undefined`,e),i}function Bb(i,t){return y.isNumericString(i)||V(`Expected ${L(i)} to be numeric string`,t),i}function Gb(i,t){return y.isBigInt(i)||V(`Expected ${L(i)} to be BigInt`,t),i}function Vb(i,t){return y.isNumber(i)||V(`Expected ${L(i)} to be number`,t),i}function qb(i,t){return y.isSafeNumber(i)||V(`Expected ${L(i)} to be safe number`,t),i}function Wb(i,t){return y.isNumberOrUndefined(i)||V(`Expected ${L(i)} to be number or undefined`,t),i}function Ub(i,t,e){return y.isNumberEq(i,t)||V(`Expected ${L(i)} to be number equal to ${L(t)}`,e),i}function zb(i,t,e){return y.isNumberGt(i,t)||V(`Expected ${L(i)} to be number > ${L(t)}`,e),i}function Yb(i,t,e){return y.isNumberGte(i,t)||V(`Expected ${L(i)} to be number >= ${L(t)}`,e),i}function Hb(i,t,e){return y.isNumberLt(i,t)||V(`Expected ${L(i)} to be number < ${L(t)}`,e),i}function $b(i,t,e){return y.isNumberLte(i,t)||V(`Expected ${L(i)} to be number <= ${L(t)}`,e),i}function Zb(i,t,e,r){return y.isNumberBetween(i,t,e)||V(`Expected number ${L(t)} <= ${L(i)} <= ${L(e)}`,r),i}function Xb(i,t,e,r){return y.isNumberBetweenExclusive(i,t,e)||V(`Expected number ${L(t)} < ${L(i)} < ${L(e)}`,r),i}function Qb(i,t){return y.isFinite(i)||V(`Expected ${L(i)} to be finite`,t),i}function Kb(i,t){return y.isFloat(i)||V(`Expected ${L(i)} to be float`,t),i}function Jb(i,t){return y.isInteger(i)||V(`Expected ${L(i)} to be integer`,t),i}function tx(i,t){return y.isSafeInteger(i)||V(`Expected ${L(i)} to be safe integer`,t),i}function ex(i,t){return y.isIntegerOrUndefined(i)||V(`Expected ${L(i)} to be integer or undefined`,t),i}function rx(i,t,e){return y.isIntegerEq(i,t)||V(`Expected ${L(i)} to be integer equal to ${L(t)}`,e),i}function ix(i,t,e){return y.isIntegerGt(i,t)||V(`Expected ${L(i)} to be integer > ${L(t)}`,e),i}function nx(i,t,e){return y.isIntegerGte(i,t)||V(`Expected ${L(i)} to be integer >= ${L(t)}`,e),i}function ox(i,t,e){return y.isIntegerLt(i,t)||V(`Expected ${L(i)} to be integer < ${L(t)}`,e),i}function sx(i,t,e){return y.isIntegerLte(i,t)||V(`Expected ${L(i)} to be integer <= ${L(t)}`,e),i}function ax(i,t,e,r){return y.isIntegerBetween(i,t,e)||V(`Expected integer ${L(t)} <= ${L(i)} <= ${L(e)}`,r),i}function cx(i,t,e,r){return y.isIntegerBetweenExclusive(i,t,e)||V(`Expected integer ${L(t)} < ${L(i)} < ${L(e)}`,r),i}function ux(i,t){return y.isNaNValue(i)||V(`Expected ${L(i)} to be NaN`,t),NaN}function hx(i,t){return y.isInfinity(i)||V(`Expected ${L(i)} to be +-Infinity`,t),i}function lx(i,t){return y.isPosInfinity(i)||V(`Expected ${L(i)} to be +Infinity`,t),i}function dx(i,t){return y.isNegInfinity(i)||V(`Expected ${L(i)} to be -Infinity`,t),i}function px(i,t){return y.isPos(i)||V(`Expected ${L(i)} to be positive (> 0)`,t),i}function mx(i,t){return y.isNeg(i)||V(`Expected ${L(i)} to be negative (< 0)`,t),i}function fx(i,t){return y.isNonPos(i)||V(`Expected ${L(i)} to be non-positive (<= 0)`,t),i}function gx(i,t){return y.isNonNeg(i)||V(`Expected ${L(i)} to be non-negative (>= 0)`,t),i}function yx(i,t){return y.isZero(i)||V(`Expected ${L(i)} to be 0`,t),i}function bx(i,t){return y.isPosZero(i)||V(`Expected ${L(i)} to be +0`,t),i}function xx(i,t){return y.isNegZero(i)||V(`Expected ${L(i)} to be -0`,t),i}function Ax(i,t){return y.isOdd(i)||V(`Expected ${L(i)} to odd`,t),i}function Cx(i,t){return y.isEven(i)||V(`Expected ${L(i)} to even`,t),i}function _x(i,t,e){return y.isMultipleOf(i,t)||V(`Expected ${L(i)} to be divisble bu ${L(t)}`,e),i}function vx(i,t){return y.isPowerOfTwo(i)||V(`Expected ${L(i)} to be power of two`,t),i}function Sx(i,t,e){return y.isIncluded(i,t)||V(`Expected ${L(i)} to be included in ${L(t)}`,e),i}function wx(...i){let t=i.shift(),e=y.isString(i[i.length-1])?i.pop():void 0,r=y.isArray(i[0])?i.shift():void 0;return y.isIndex(t,r)||V(r===void 0?`Expected ${t} to be index`:`Expected ${t} to be index for ${L(r)}`,e),t}function Ix(i,t){return y.doesThrow(i)||V("Expected to throw",t),!0}function Tx(i,t){return y.doesNotThrow(i)||V("Expected to throw",t),!0}var Nx={};er(Nx,{accept:()=>Dx,decline:()=>kx,erase:()=>al,eraseAll:()=>Bx,isConsentPending:()=>Ex,read:()=>jx,readBool:()=>Fx,readInt:()=>Px,save:()=>Lx,setExpireDays:()=>Mx});var Bs="ConsentCookie",tr,so,eu=Gs(Bs);tr=eu==="accept"||eu==="decline"?eu:void 0;function Ox(){return typeof document=="undefined"?[]:document.cookie.split(";").map(t=>t.trim())}function su(i,t){let e=i+"="+t.toString()+";sameSite=Lax;";return so&&(e+="expires="+so.toUTCString()+";"),typeof document!="undefined"&&(document.cookie=e),t}function Gs(i,t){let e=Ox().find(r=>r.startsWith(i+"="));return e===void 0?t:e.substring(i.length+1)}function Rx(i){typeof document!="undefined"&&(document.cookie=i+"=;expires=Thu, 01 Jan 1970 00:00:00 UTC;")}function Mx(i){so=new Date,so.setDate(so.getDate()+i)}function Ex(){return tr===void 0}function Dx(){tr="accept",su(Bs,tr)}function kx(){tr="decline",su(Bs,tr)}function Lx(i,t){return tr==="accept"&&su(i,t),t}function jx(i,t){var e;return tr==="accept"&&(e=Gs(i,t))!=null?e:t}function Px(i,t){if(tr==="accept"){let e=Gs(i);return e===void 0?t:parseInt(e)}else return t}function Fx(i,t){if(tr==="accept"){let e=Gs(i);return e===void 0?t:/true|1/i.test(e)}else return t}function al(i){(tr==="accept"||i===Bs)&&Rx(i)}function Bx(){typeof document!="undefined"&&document.cookie.split(";").forEach(i=>al(i.trim().split("=")[0]))}var Vs={};er(Vs,{DPI:()=>cl,FontSize:()=>ul,HostAddress:()=>Qx,IsMobileDevice:()=>Xx,IsTouchDevice:()=>Zx,PxPerMm:()=>au,ScrollbarWidth:()=>$x,mmToPx:()=>ks,pxToMm:()=>Kx,toPx:()=>Jx});function Gx(){try{let i=document.createElement("div");i.style.width="1in",document.body.appendChild(i);let t=i.offsetWidth;return i.remove(),t||96}catch(i){return 96}}function Vx(){try{let i=document.createElement("div");i.style.visibility="hidden",i.style.width="100px",document.body.appendChild(i);let t=i.offsetWidth;i.style.overflow="scroll";let e=document.createElement("div");e.style.width="100%",i.appendChild(e);let r=e.offsetWidth;return i.parentNode&&i.parentNode.removeChild(i),t-r}catch(i){return 0}}function qx(){try{let i=document.createElement("div");i.style.cssText="display:inline-block; padding:0; line-height:1; position:absolute; visibility:hidden; font-size:1em",i.appendChild(document.createTextNode("M")),document.body.appendChild(i);let t=i.offsetHeight;return document.body.removeChild(i),t}catch(i){return 16}}function Wx(){if(typeof window=="undefined")return!1;if("ontouchstart"in window||"DocumentTouch"in window||"createTouch"in document&&"createTouchList"in document)return!0;var i=" -webkit- -moz- -o- -ms- ".split(" "),t=function(r){return window.matchMedia(r).matches},e=["(",i.join("touch-enabled),("),"heartz",")"].join("");return t(e)}function Ux(){let i=navigator.userAgent||navigator.vendor||window.opera;return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(i)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(i.substr(0,4))}function zx(){return typeof location=="undefined"||!location.host?"localhost":`${location.protocol}//${location.host}`}var Yx=/^(mm|cm|in|inch|px|em)$/,Hx=/^([0-9\\.]+)(.*)$/,cl=Gx(),au=cl/25.4,$x=Vx(),ul=qx(),Zx=Wx(),Xx=Ux(),Qx=zx();function Kx(i){return i/au}function ks(i){return i*au}function Jx(i){if(typeof i=="number")return i;let t=NaN,e,r=i.toString().match(Hx);if(r&&r[1]){t=parseFloat(r[1]);let n=r[2]?r[2].toLowerCase():"undefined";e=Yx.test(n)?n:void 0,e||console.log("Unknown unit '"+n+"' => using 'px'.")}else t=parseFloat(i);switch(Xh.isFinite(t,"value in function toPx"),e){case"mm":return ks(t);case"cm":return ks(t)*10;case"in":case"inch":return ks(t)*25.4;case"em":return ul*t;default:case"px":return t}}var $={};er($,{Arr:()=>hl,Dom:()=>pl,Enum:()=>Jh,Math:()=>fl,Obj:()=>Kh,Str:()=>Qh});var hl={};er(hl,{arrayContains:()=>sA,chunckArray:()=>aA,duplicate:()=>eA,fillArray:()=>iA,getRangeArray:()=>oA,getSequenceArray:()=>nA,isArray:()=>je,mapRangeArray:()=>dl,mapSequenceArray:()=>ll,removeDuplicates:()=>rA,toArray:()=>tA});function tA(i){return je(i)?i:[i]}function eA(i){var t;return(t=i==null?void 0:i.slice())!=null?t:[]}function rA(i,t){return t!==void 0?i.filter((e,r,n)=>r===n.findIndex(o=>t(e,o))):i.filter((e,r,n)=>r===n.indexOf(e))}function iA(i,t){if(!Lt(t)||t<0)throw new Error("fillArray: Invalid fillCount = "+t);return new Array(t).fill(i)}function ll(i,t){if(!Lt(i)||i<0)throw new Error("mapSequenceArray: Invalid len = "+i);let e=new Array(i);for(let r=0;r<i;r++)e[r]=t(r);return e}function nA(i){return ll(i,t=>t)}function dl(i,t,e){if(!Lt(i))throw new Error("mapRangeArray: Invalid start = "+t);if(!Lt(t))throw new Error("mapRangeArray: Invalid end = "+t);let r=Math.abs(t-i)+1,n=new Array(r);for(let o=0,s=i,a=Math.sign(t-i);o<r;s+=a,o++)n[o]=e(s);return n}function oA(i,t){return dl(i,t,e=>e)}function sA(i,t){return i.indexOf(t)>=0}function aA(i,t){if(!Lt(t)||t<1)throw new Error("chunckArray: Invalid chunckSize = "+t);let e=[];for(let r=0;r<i.length;r+=t)e.push(i.slice(r,r+t));return e}var pl={};er(pl,{addClass:()=>cA,appendTo:()=>gA,getButton:()=>AA,getCanvas:()=>CA,getCanvasTextWidth:()=>wA,getDimension:()=>vA,getHeight:()=>mA,getOffset:()=>lA,getPadding:()=>_A,getWidth:()=>dA,hasClass:()=>cu,removeClass:()=>uA,removeFromParent:()=>yA,setHeight:()=>fA,setOffset:()=>hA,setRect:()=>xA,setVisibility:()=>bA,setWidth:()=>pA,styleLayoutChanged:()=>SA});function ml(i){var t;return typeof document=="undefined"?void 0:(t=document.getElementById(i))!=null?t:void 0}function Dt(i){return i===void 0?void 0:Vs.toPx(i)}function cu(i,t){return t.length===0?!1:i.classList?i.classList.contains(t):!!i.className.match(new RegExp("(\\s|^)"+t+"(\\s|$)"))}function cA(i,t){t.length!==0&&(i.classList?i.classList.add(t):cu(i,t)||(i.className+=" "+t))}function uA(i,t){if(t.length!==0){if(i.classList)i.classList.remove(t);else if(cu(i,t)){var e=new RegExp("(\\s|^)"+t+"(\\s|$)");i.className=i.className.replace(e," ")}}}function hA(i,t,e,r="px"){i.style.left=t+r,i.style.top=e+r}function lA(i){let{left:t,top:e}=i.getBoundingClientRect();if(typeof window!="undefined"&&(t+=window.pageXOffset,e+=window.pageYOffset),typeof document!="undefined"){let r=document.documentElement;t-=r.clientLeft,e-=r.clientTop}return{left:t,top:e}}function dA(i){if(i instanceof Window)return i.innerWidth;{let t=parseFloat(getComputedStyle(i,null).width.replace("px",""));return isNaN(t)?0:t}}function pA(i,t){i.style.width=t+"px"}function mA(i){if(i instanceof Window)return i.innerHeight;{let t=parseFloat(getComputedStyle(i,null).height.replace("px",""));return isNaN(t)?0:t}}function fA(i,t){i.style.height=t+"px"}function gA(i,t){t.appendChild(i)}function yA(i){i.remove()}function bA(i,t){i.style.display=t?"block":"none"}function xA(i,t,e,r,n,o="px"){i.style.left=t+o,i.style.top=e+o,i.style.width=r+o,i.style.height=n+o}function AA(i){let t=typeof i=="string"?ml(i):i;return t instanceof HTMLButtonElement?t:void 0}function CA(i){let t=typeof i=="string"?ml(i):i;return t instanceof HTMLCanvasElement?t:void 0}function _A(i){var s;if(!i)return{top:0,right:0,bottom:0,left:0};let t=Dt(i.paddingTop),e=Dt(i.paddingRight),r=Dt(i.paddingBottom),n=Dt(i.paddingLeft),o=((s=i.padding)!=null?s:"").toString().split(" ").filter(a=>a.length>0);switch(o.length){case 0:break;case 1:t!=null||(t=Dt(o[0])),e!=null||(e=Dt(o[0])),r!=null||(r=Dt(o[0])),n!=null||(n=Dt(o[0]));break;case 2:t!=null||(t=Dt(o[0])),e!=null||(e=Dt(o[1])),r!=null||(r=Dt(o[0])),n!=null||(n=Dt(o[1]));break;case 3:t!=null||(t=Dt(o[0])),e!=null||(e=Dt(o[1])),r!=null||(r=Dt(o[2])),n!=null||(n=Dt(o[1]));break;case 4:default:t!=null||(t=Dt(o[0])),e!=null||(e=Dt(o[1])),r!=null||(r=Dt(o[2])),n!=null||(n=Dt(o[3]));break}return t!=null||(t=0),e!=null||(e=0),r!=null||(r=0),n!=null||(n=0),{top:t,right:e,bottom:r,left:n}}function vA(i){let t=Dt(i==null?void 0:i.left),e=Dt(i==null?void 0:i.right),r=Dt(i==null?void 0:i.top),n=Dt(i==null?void 0:i.bottom),o=Dt(i==null?void 0:i.width),s=Dt(i==null?void 0:i.height);return o===void 0&&t!==void 0&&e!==void 0&&(o=e-t),s===void 0&&r!==void 0&&n!==void 0&&(s=n-r),{left:t,top:r,width:o,height:s}}function SA(i,t){return!i&&!t?!1:!i||!t?!0:i.left!==t.left||i.top!==t.top||i.right!==t.right||i.bottom!==t.bottom||i.width!==t.width||i.height!==t.height}var no;function wA(i,t){!no&&typeof document!="undefined"&&(no=document.createElement("canvas"));let e=no==null?void 0:no.getContext("2d");return e?(e.font=t,e.measureText(i).width):0}var fl={};er(fl,{avg:()=>DA,calcNormal:()=>EA,clamp:()=>ru,cmp:()=>kA,interpolateCoord:()=>RA,interpolateY:()=>MA,isInteger:()=>Lt,isNumber:()=>kt,linearToDecibels:()=>IA,mod:()=>TA,romanize:()=>NA,sum:()=>gl,toOrdinalNumber:()=>OA});function IA(i){if(isFinite(i))return i<=0?-1/0:20*Math.log10(i);throw new Error("linearToDecibel: Invalid linearVolume = "+i)}function TA(i,t){return(i%t+t)%t}function NA(i){if(!Lt(i)||i<0)throw new Error("romanize: Invalid n = "+i);for(var t=String(+i).split(""),e=["","C","CC","CCC","CD","D","DC","DCC","DCCC","CM","","X","XX","XXX","XL","L","LX","LXX","LXXX","XC","","I","II","III","IV","V","VI","VII","VIII","IX"],r="",n=3;n--;)r=(e[+t.pop()+n*10]||"")+r;return Array(+t.join("")+1).join("M")+r}function OA(i){if(!Lt(i))throw new Error("toOrdinalNumber: Invalid n = "+i);let t=i.toString(),e=Number(t.charAt(t.length-1));return i===1||i>=20&&e===1?t+"st":i===2||i>=20&&e===2?t+"nd":i===3||i>=20&&e===3?t+"rd":t+"th"}function RA(i,t,e,r,n){return{x:i+(e-i)*n,y:t+(r-t)*n}}function MA(i,t,e,r,n){let o=(n-i)/(e-i);return t+(r-t)*o}function ru(i,t,e){return Math.min(Math.max(i,t),e)}function EA(i,t,e,r){let n=e-i,s=-(r-t),a=n,c=Math.sqrt(s*s+a*a);return c>0?(s/=c,a/=c):(s=0,a=1),{nx:s,ny:a}}function gl(i){return i.reduce((t,e)=>e+t,0)}function DA(...i){return gl(i)/i.length}function kA(i,t){return i<t?-1:i>t?1:0}var Le=(i,t)=>i===t,jr=class{};var yl=class We extends jr{constructor(...t){if(super(),ft(this,"coords"),t.length<2)throw new TypeError("Vec needs minumum two coords!");this.coords=t}static vec2(t,e){return new We(t,e)}static vec3(t,e,r){return new We(t,e,r)}static zero(t){if(t<2)throw new TypeError("Vec.zero requires dimension >= 2");return new We(...Array(t).fill(0))}get dim(){return this.coords.length}get length(){return Math.hypot(...this.coords)}magnitude(){return this.length}get x(){return this.coords[0]}get y(){return this.coords[1]}get z(){if(this.coords[2]===void 0)throw new TypeError("Vec z-coord not available!");return this.coords[2]}add(...t){let e=t[0]instanceof We?t[0].coords:t;if(this.coords.length!==e.length)throw new TypeError("Coordinate length mismatch!");return new We(...this.coords.map((r,n)=>r+e[n]))}sub(...t){let e=t[0]instanceof We?t[0].coords:t;if(this.coords.length!==e.length)throw new TypeError("Coordinate length mismatch!");return new We(...this.coords.map((r,n)=>r-e[n]))}mul(t){return new We(...this.coords.map(e=>e*t))}div(t){return new We(...this.coords.map(e=>e/t))}dot(t){if(this.coords.length!==t.coords.length)throw new TypeError("Coordinate length mismatch!");return this.coords.reduce((e,r,n)=>e+r*t.coords[n],0)}distance(t){if(this.coords.length!==t.coords.length)throw new TypeError("Coordinate length mismatch!");return Math.hypot(...this.coords.map((e,r)=>e-t.coords[r]))}normalize(){let t=this.length;if(t===0)throw new TypeError("Cannot normalize zero-length vector!");return this.div(t)}static lerp(t,e,r){if(t.coords.length!==e.coords.length)throw new TypeError("Coordinate length mismatch!");if(!rn(r))throw new TypeError("Lerp t is not finite!");return t.add(e.sub(t).mul(r))}toLength(t){let e=this.length;return e===0?this:this.mul(t/e)}clamp(t,e,r){let n=this.length;if(n===0){if(t!==void 0){if(r&&r.coords.length!==this.coords.length)throw new TypeError("Coordinate length mismatch!");return(r&&r.length!==0?r.normalize():new We(1,...Array(this.coords.length-1).fill(0))).mul(t)}return this}return e!==void 0&&n>e?this.normalize().mul(e):t!==void 0&&n<t?this.normalize().mul(t):this}equals(t){return this.coords.length===t.coords.length&&this.coords.every((e,r)=>e===t.coords[r])}clone(){return new We(...this.coords)}toObject(){return{x:this.x,y:this.y,z:this.z}}[Symbol.iterator](){return this.coords[Symbol.iterator]()}toString(){return`Vec(${this.coords.join(", ")})`}},uu=class Ie{constructor(...t){if(ft(this,"x"),ft(this,"y"),ft(this,"width"),ft(this,"height"),t.length===0?this.x=this.y=this.width=this.height=0:t.length===2?(this.x=this.y=0,this.width=t[0],this.height=t[1]):(this.x=t[0],this.y=t[1],this.width=t[2],this.height=t[3]),this.width<0||this.height<0)throw new Error("Rect width and height must be non-negative.")}set(...t){if(t.length===0?this.x=this.y=this.width=this.height=0:t.length===2?(this.x=this.y=0,this.width=t[0],this.height=t[1]):(this.x=t[0],this.y=t[1],this.width=t[2],this.height=t[3]),this.width<0||this.height<0)throw new Error("Rect width and height must be non-negative.");return this}static fromPoints(t,e){let r=Math.min(t.x,e.x),n=Math.min(t.y,e.y),o=Math.abs(t.x-e.x),s=Math.abs(t.y-e.y);return new Ie(r,n,o,s)}static fromCenter(t,e,r,n){return new Ie(t-r/2,e-n/2,r,n)}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get centerX(){return this.x+this.width/2}get centerY(){return this.y+this.height/2}get center(){return{x:this.centerX,y:this.centerY}}get area(){return this.width*this.height}get isEmpty(){return this.width<=0||this.height<=0}containsPoint(t,e){return t>=this.left&&t<=this.right&&e>=this.top&&e<=this.bottom}containsRect(t){return t.left>=this.left&&t.right<=this.right&&t.top>=this.top&&t.bottom<=this.bottom}intersects(t){return!(t.right<this.left||t.left>this.right||t.bottom<this.top||t.top>this.bottom)}intersectionCopy(t){let e=Math.max(this.left,t.left),r=Math.max(this.top,t.top),n=Math.min(this.right,t.right),o=Math.min(this.bottom,t.bottom);return n<=e||o<=r?new Ie:new Ie(e,r,n-e,o-r)}unionCopy(t){let e=Math.min(this.left,t.left),r=Math.min(this.top,t.top),n=Math.max(this.right,t.right),o=Math.max(this.bottom,t.bottom);return new Ie(e,r,n-e,o-r)}insetCopy(t,e){return new Ie(this.x+t,this.y+e,this.width-2*t,this.height-2*e)}inflateCopy(t,e){return new Ie(this.x-t,this.y-e,this.width+2*t,this.height+2*e)}offsetInPlace(t,e){return this.x+=t,this.y+=e,this}offsetCopy(t,e){return new Ie(this.x+t,this.y+e,this.width,this.height)}scaleInPlace(t,e=t){return this.x=this.centerX-this.width*t/2,this.width*=t,this.y=this.centerY-this.height*e/2,this.height*=e,this}scaleCopy(t,e=t){return this.clone().scaleInPlace(t,e)}roundCopy(){let t=Math.round(this.left),e=Math.round(this.top),r=Math.round(this.right),n=Math.round(this.bottom);return new Ie(t,e,r-t,n-e)}floorCopy(){let t=Math.floor(this.left),e=Math.floor(this.top),r=Math.floor(this.right),n=Math.floor(this.bottom);return new Ie(t,e,r-t,n-e)}ceilCopy(){let t=Math.ceil(this.left),e=Math.ceil(this.top),r=Math.ceil(this.right),n=Math.ceil(this.bottom);return new Ie(t,e,r-t,n-e)}expandCopy(t,e){let r=Math.min(this.left,t),n=Math.min(this.top,e),o=Math.max(this.right,t),s=Math.max(this.bottom,e);return new Ie(r,n,o-r,s-n)}equals(t){return this.x===t.x&&this.y===t.y&&this.width===t.width&&this.height===t.height}clone(){return new Ie(this.x,this.y,this.width,this.height)}toString(){return`Rect(x=${this.x}, y=${this.y}, w=${this.width}, h=${this.height})`}toAnchoredRect(){return new G(this.left,this.right,this.top,this.bottom)}},G=class vi{constructor(...t){if(ft(this,"left"),ft(this,"anchorX"),ft(this,"right"),ft(this,"top"),ft(this,"anchorY"),ft(this,"bottom"),t.length===6)this.left=t[0],this.anchorX=t[1],this.right=t[2],this.top=t[3],this.anchorY=t[4],this.bottom=t[5];else if(t.length===4)this.left=t[0],this.right=t[1],this.anchorX=(this.left+this.right)/2,this.top=t[2],this.bottom=t[3],this.anchorY=(this.top+this.bottom)/2;else if(t.length===0)this.left=this.anchorX=this.right=0,this.top=this.anchorY=this.bottom=0;else throw new TypeError(`Invalid AnchoredRect args: ${t}`)}set(...t){if(t.length===6)this.left=t[0],this.anchorX=t[1],this.right=t[2],this.top=t[3],this.anchorY=t[4],this.bottom=t[5];else if(t.length===4)this.left=t[0],this.right=t[1],this.anchorX=(this.left+this.right)/2,this.top=t[2],this.bottom=t[3],this.anchorY=(this.top+this.bottom)/2;else if(t.length===0)this.left=this.anchorX=this.right=0,this.top=this.anchorY=this.bottom=0;else throw new TypeError(`Invalid AnchoredRect args: ${t}`);return this}static create(t,e,r,n){return new vi(t,t+r,e,e+n)}static createCentered(t,e,r,n){return new vi(t-r/2,t,t+r/2,e-n/2,e,e+n/2)}static createSections(t,e,r,n){return new vi(-t,0,e,-r,0,n)}get centerX(){return this.left+this.width/2}get centerY(){return this.top+this.height/2}get width(){return this.right-this.left}get height(){return this.bottom-this.top}get leftw(){return this.anchorX-this.left}get rightw(){return this.right-this.anchorX}get toph(){return this.anchorY-this.top}get bottomh(){return this.bottom-this.anchorY}contains(t,e){return t>=this.left&&t<=this.right&&e>=this.top&&e<=this.bottom}static overlap(t,e){return t.right>e.left&&t.left<e.right&&t.bottom>e.top&&t.top<e.bottom}static overlapX(t,e){return t.right>e.left&&t.left<e.right}static equals(t,e){return t==null&&e==null?!0:t==null||e==null?!1:t===e||t.left===e.left&&t.anchorX===e.anchorX&&t.right===e.right&&t.top===e.top&&t.anchorY===e.anchorY&&t.bottom===e.bottom}equals(t){return vi.equals(this,t)}static equalsEdges(t,e){return t==null&&e==null?!0:t==null||e==null?!1:t===e||t.left===e.left&&t.right===e.right&&t.top===e.top&&t.bottom===e.bottom}equalsEdges(t){return vi.equalsEdges(this,t)}clone(){return new vi(this.left,this.anchorX,this.right,this.top,this.anchorY,this.bottom)}offsetInPlace(t,e){return this.left+=t,this.anchorX+=t,this.right+=t,this.top+=e,this.anchorY+=e,this.bottom+=e,this}offsetCopy(t,e){return this.clone().offsetInPlace(t,e)}expandInPlace(t){return this.left=Math.min(this.left,t.left),this.right=Math.max(this.right,t.right),this.top=Math.min(this.top,t.top),this.bottom=Math.max(this.bottom,t.bottom),this}expandCopy(t){return this.clone().expandInPlace(t)}clipInPlace(t){return this.left=Math.max(this.left,t.left),this.right=Math.min(this.right,t.right),this.anchorX=ru(this.anchorX,this.left,this.right),this.top=Math.max(this.top,t.top),this.bottom=Math.min(this.bottom,t.bottom),this.anchorY=ru(this.anchorY,this.top,this.bottom),this}clipCopy(t){return this.clone().clipInPlace(t)}scaleInPlace(t,e=t){return this.left=this.anchorX-this.leftw*t,this.right=this.anchorX+this.rightw*t,this.top=this.anchorY-this.toph*e,this.bottom=this.anchorY+this.bottomh*e,this}scaleCopy(t,e=t){return this.clone().scaleInPlace(t,e)}getRect(){return this}toRect(){return new uu(this.left,this.right,this.width,this.height)}toString(){return`Rect(left=${this.left}, anchorX=${this.anchorX}, right=${this.right}, top=${this.top}, anchorY=${this.anchorY}, bottom=${this.bottom})`}},bl=class extends jr{constructor(i,t=1/0){super(),ft(this,"cache"),ft(this,"next"),ft(this,"prev"),ft(this,"head"),ft(this,"tail"),ft(this,"capacity"),ft(this,"size"),ft(this,"maxKeyLength"),this.cache=Object.create(null),this.next=Object.create(null),this.prev=Object.create(null),this.head=null,this.tail=null,this.capacity=i,this.size=0,this.maxKeyLength=t}get(i){if(!(i.length>this.maxKeyLength)&&this.cache[i]!==void 0)return this.touch(i),this.cache[i]}set(i,t){if(!(i.length>this.maxKeyLength)){if(this.cache[i]!==void 0){this.cache[i]=t,this.touch(i);return}this.size>=this.capacity&&this.evict(),this.cache[i]=t,this.addToTail(i),this.size++}}touch(i){this.tail!==i&&(this.removeKey(i),this.addToTail(i))}evict(){if(this.head!==null){let i=this.head;this.removeKey(i),delete this.cache[i],this.size--}}removeKey(i){let t=this.prev[i],e=this.next[i];t!==void 0?this.next[t]=e:this.head=e!=null?e:null,e!==void 0?this.prev[e]=t:this.tail=t!=null?t:null,delete this.prev[i],delete this.next[i]}addToTail(i){this.tail!==null?(this.next[this.tail]=i,this.prev[i]=this.tail):this.head=i,this.tail=i}*keys(){for(let i=this.head;i!=null;i=this.next[i])yield i}*values(){for(let i=this.head;i!=null;i=this.next[i])yield this.cache[i]}*entries(){for(let i=this.head;i!=null;i=this.next[i])yield[i,this.cache[i]]}*[Symbol.iterator](){yield*pe(this.entries())}toString(){let i=[...this.entries()];return i.length===0?"LRUCache(0){ }":`LRUCache(${i.length}){ ${i.map(t=>`${Gt(t[0])}: ${Gt(t[1])}`).join(", ")} }`}},vr=class Kr extends jr{constructor(t){if(super(),ft(this,"posVal"),ft(this,"hasPos"),ft(this,"valCount"),t instanceof Kr)this.posVal=t.posVal.slice(),this.hasPos=t.hasPos.slice(),this.valCount=t.valCount;else if(this.posVal=[],this.hasPos=[],this.valCount=0,t)for(let[e,r]of t)this.set(e,r)}static validateIndex(t){if(!nu(t,0))throw new Error(`Invalid index ${t} - must be an integer >= 0!`);return t}get posLen(){return this.hasPos.length}get size(){return this.valCount}get length(){return this.hasPos.length}trimRight(){let t=this.length;for(;t>0&&this.hasPos[t-1]!==!0;)t--;t<this.length&&(this.posVal.length=this.hasPos.length=t)}isEmpty(){return this.size===0}has(t){return Kr.validateIndex(t),this.hasPos[t]===!0}set(t,e){Kr.validateIndex(t),this.hasPos[t]!==!0&&this.valCount++,this.posVal[t]=e,this.hasPos[t]=!0}get(t){return Kr.validateIndex(t),this.hasPos[t]?this.posVal[t]:void 0}getOrDefault(t,e){var r;return(r=this.get(t))!=null?r:e}getOrCreate(t,e){if(!this.has(t)){let r=_r(e)?e():e;return this.set(t,r),r}return this.get(t)}delete(t){return Kr.validateIndex(t),this.hasPos[t]?(this.posVal[t]=void 0,this.hasPos[t]=!1,this.valCount--,this.trimRight(),!0):!1}clear(){this.posVal=[],this.hasPos=[],this.valCount=0}forEach(t,e){for(let[r,n]of this.entries())t.call(e,n,r,this)}*indices(){for(let t=0;t<this.posLen;t++)this.hasPos[t]&&(yield t)}*values(){for(let t=0;t<this.posLen;t++)this.hasPos[t]&&(yield this.posVal[t])}*entries(){for(let t=0;t<this.posLen;t++)this.hasPos[t]&&(yield[t,this.posVal[t]])}indicesArray(){return[...this.indices()]}valuesArray(){return[...this.values()]}entriesArray(){return[...this.entries()]}*kvKeys(){for(let t of this.indices())yield[t]}*kvValues(){for(let t of this.values())yield t}*kvEntries(){for(let[t,e]of this.entries())yield[[t],e]}*[Symbol.iterator](){yield*pe(this.entries())}clone(){return new Kr(this)}merge(t,e){for(let[r,n]of t.entries())this.has(r)&&e?this.set(r,e(this.get(r),n,r)):this.set(r,n);return this}some(t){for(let[e,r]of this.entries())if(t(r,e))return!0;return!1}every(t){for(let[e,r]of this.entries())if(!t(r,e))return!1;return!0}filter(t){let e=new this.constructor;for(let[r,n]of this.entries())t(n,r,this)&&e.set(r,n);return e}reduce(t,e){let r=this.entries(),n=r.next();if(n.done){if(arguments.length<2)throw new TypeError("Reduce of empty IndexArray with no initial value!");return e}let o,s;arguments.length<2?(o=n.value[1],s=r.next()):(o=e,s=n);for(let a=s;!a.done;a=r.next()){let[c,u]=a.value;o=t(o,u,c)}return o}mapToArray(t){let e=[];for(let[r,n]of this.entries())e.push(t(n,r));return e}map(t){let e=new Kr;for(let[r,n]of this.entries())e.set(r,t(n,r));return e}equals(t,e){if(this.size!==t.size)return!1;e!=null||(e=(n,o)=>n===o);let r=Math.max(this.posLen,t.posLen);for(let n=0;n<r;++n){let o=this.hasPos[n],s=t.hasPos[n];if(o!==s||o&&!e(this.posVal[n],t.posVal[n]))return!1}return!0}toArray(){return this.valuesArray()}toString(){let t=!0;for(let r=0;r<this.hasPos.length&&t;r++)this.hasPos[r]||(t=!1);if(t)return Gt(this.posVal.slice(0,this.hasPos.length));let e=this.entriesArray().map(([r,n])=>`${Gt(r)}: ${Gt(n)}`).join(", ");return e.length===0?"[ ]":`[ ${e} ]`}},xl=class Te extends jr{constructor(t){if(super(),ft(this,"posVal"),ft(this,"hasPos"),ft(this,"negVal"),ft(this,"hasNeg"),ft(this,"valCount"),t instanceof Te)this.negVal=t.negVal.slice(),this.hasNeg=t.hasNeg.slice(),this.posVal=t.posVal.slice(),this.hasPos=t.hasPos.slice(),this.valCount=t.valCount;else if(this.negVal=[],this.hasNeg=[],this.posVal=[],this.hasPos=[],this.valCount=0,t)for(let[e,r]of t)this.set(e,r)}static toNegIndex(t){return-t-1}static validateIndex(t){if(!Lt(t))throw new Error(`Invalid index ${t} - must be an integer!`);return t}get size(){return this.valCount}isEmpty(){return this.size===0}get posLen(){return this.hasPos.length}get negLen(){return this.hasNeg.length}has(t){return Te.validateIndex(t),t>=0?this.hasPos[t]===!0:this.hasNeg[Te.toNegIndex(t)]===!0}set(t,e){if(Te.validateIndex(t),t>=0)this.hasPos[t]!==!0&&this.valCount++,this.posVal[t]=e,this.hasPos[t]=!0;else{let r=Te.toNegIndex(t);this.hasNeg[r]!==!0&&this.valCount++,this.negVal[r]=e,this.hasNeg[r]=!0}}get(t){if(Te.validateIndex(t),t>=0)return this.hasPos[t]?this.posVal[t]:void 0;{let e=Te.toNegIndex(t);return this.hasNeg[e]?this.negVal[e]:void 0}}getOrDefault(t,e){var r;return(r=this.get(t))!=null?r:e}getOrCreate(t,e){if(!this.has(t)){let r=_r(e)?e():e;return this.set(t,r),r}return this.get(t)}delete(t){Te.validateIndex(t);let e=t>=0,r=e?this.posVal:this.negVal,n=e?this.hasPos:this.hasNeg,o=e?t:Te.toNegIndex(t);return n[o]?(r[o]=void 0,n[o]=!1,this.valCount--,!0):!1}clear(){this.negVal=[],this.hasNeg=[],this.posVal=[],this.hasPos=[],this.valCount=0}forEach(t,e){for(let[r,n]of this.entries())t.call(e,n,r,this)}*indices(){for(let t=this.negLen-1;t>=0;t--)this.hasNeg[t]&&(yield Te.toNegIndex(t));for(let t=0;t<this.posLen;t++)this.hasPos[t]&&(yield t)}*values(){for(let t=this.negLen-1;t>=0;t--)this.hasNeg[t]&&(yield this.negVal[t]);for(let t=0;t<this.posLen;t++)this.hasPos[t]&&(yield this.posVal[t])}*entries(){for(let t=this.negLen-1;t>=0;t--)this.hasNeg[t]&&(yield[Te.toNegIndex(t),this.negVal[t]]);for(let t=0;t<this.posLen;t++)this.hasPos[t]&&(yield[t,this.posVal[t]])}indicesArray(){return[...this.indices()]}valuesArray(){return[...this.values()]}entriesArray(){return[...this.entries()]}*kvKeys(){for(let t of this.indices())yield[t]}*kvValues(){for(let t of this.values())yield t}*kvEntries(){for(let[t,e]of this.entries())yield[[t],e]}*[Symbol.iterator](){yield*pe(this.entries())}clone(){return new Te(this)}merge(t,e){for(let[r,n]of t.entries())this.has(r)&&e?this.set(r,e(this.get(r),n,r)):this.set(r,n);return this}some(t){for(let[e,r]of this.entries())if(t(r,e))return!0;return!1}every(t){for(let[e,r]of this.entries())if(!t(r,e))return!1;return!0}filter(t){let e=new this.constructor;for(let[r,n]of this.entries())t(n,r,this)&&e.set(r,n);return e}reduce(t,e){let r=this.entries(),n=r.next();if(n.done){if(arguments.length<2)throw new TypeError("Reduce of empty SignedIndexArray with no initial value!");return e}let o,s;arguments.length<2?(o=n.value[1],s=r.next()):(o=e,s=n);for(let a=s;!a.done;a=r.next()){let[c,u]=a.value;o=t(o,u,c)}return o}mapToArray(t){let e=[];for(let[r,n]of this.entries())e.push(t(n,r));return e}map(t){let e=new Te;for(let[r,n]of this.entries())e.set(r,t(n,r));return e}equals(t,e){if(this.size!==t.size)return!1;e!=null||(e=(o,s)=>o===s);let r=Math.max(this.posLen,t.posLen);for(let o=0;o<r;++o){let s=this.hasPos[o],a=t.hasPos[o];if(s!==a||s&&!e(this.posVal[o],t.posVal[o]))return!1}let n=Math.max(this.negLen,t.negLen);for(let o=0;o<n;++o){let s=this.hasNeg[o],a=t.hasNeg[o];if(s!==a||s&&!e(this.negVal[o],t.negVal[o]))return!1}return!0}toArray(){return this.valuesArray()}toString(){let t=this.hasNeg.length===0;for(let r=0;r<this.hasPos.length&&t;r++)this.hasPos[r]||(t=!1);if(t)return Gt(this.posVal.slice(0,this.hasPos.length));let e=this.entriesArray().map(([r,n])=>`${Gt(r)}: ${Gt(n)}`).join(", ");return e.length===0?"[ ]":`[ ${e} ]`}};var lt=class oo extends jr{constructor(...t){super(),ft(this,"map"),ft(this,"keyEquals");let e=t.at(-1);this.keyEquals=_r(e)?t.pop():Le;let r=t[0];this.map=new Map(r)}static createDeep(t){return t?new oo(t,ao):new oo(ao)}has(t){if(this.keyEquals===Le||this.map.has(t))return this.map.has(t);for(let[e,r]of this.map)if(this.keyEquals(e,t))return!0;return!1}set(t,e){if(this.keyEquals===Le||this.map.has(t))return this.map.set(t,e),e;for(let r of this.map.keys())if(this.keyEquals(r,t))return this.map.set(r,e),e;return this.map.set(t,e),e}get(t){if(this.keyEquals===Le||this.map.has(t))return this.map.get(t);for(let[e,r]of this.map)if(this.keyEquals(e,t))return r}delete(t){if(this.keyEquals===Le||this.map.has(t))return this.map.delete(t);for(let e of this.map.keys())if(this.keyEquals(e,t))return this.map.delete(e);return this.map.delete(t)}getOrDefault(t,e){var r;return(r=this.get(t))!=null?r:e}getOrCreate(t,e){if(!this.has(t)){let r=_r(e)?e():e;return this.set(t,r)}return this.get(t)}clear(){this.map.clear()}get size(){return this.map.size}isEmpty(){return this.size===0}forEach(t,e){this.map.forEach((r,n)=>t.call(e,r,n,this))}*keys(){yield*pe(this.map.keys())}*values(){yield*pe(this.map.values())}*entries(){for(let[t,e]of this.map)yield[t,e]}keysArray(){return[...this.keys()]}valuesArray(){return[...this.values()]}entriesArray(){return[...this.entries()]}*kvKeys(){for(let t of this.keys())yield[t]}*kvValues(){for(let t of this.values())yield t}*kvEntries(){for(let[t,e]of this.entries())yield[[t],e]}*[Symbol.iterator](){yield*pe(this.entries())}clone(){return new oo(this,this.keyEquals)}merge(t,e){for(let[r,n]of t.entries())this.has(r)&&e?this.set(r,e(this.get(r),n,r)):this.set(r,n);return this}some(t){for(let[e,r]of this.map)if(t(r,e))return!0;return!1}every(t){for(let[e,r]of this.map)if(!t(r,e))return!1;return!0}filter(t){let e=new this.constructor;for(let[r,n]of this.map)t(n,r,this)&&e.set(r,n);return e}reduce(t,e){let r=this.entries(),n=r.next();if(n.done){if(arguments.length<2)throw new TypeError("Reduce of empty UniMap with no initial value!");return e}let o,s;arguments.length<2?(o=n.value[1],s=r.next()):(o=e,s=n);for(let a=s;!a.done;a=r.next()){let[c,u]=a.value;o=t(o,u,c)}return o}mapEntries(t){let e=[];for(let[r,n]of this.map)e.push(t(n,r));return e}mapValues(t){let e=new oo;for(let[r,n]of this.map)e.set(r,t(n,r));return e}toMap(){return new Map(this.map)}toString(){let t=[...this.map].map(([e,r])=>`${Gt(e)} => ${Gt(r)}`).join(", ");return t.length===0?`Map(${this.size}){ }`:`Map(${this.size}){ ${t} }`}},Al=class Ls extends jr{constructor(t){if(super(),ft(this,"map1"),ft(this,"key1Equals",Le),ft(this,"key2Equals",Le),this.map1=new lt(this.key1Equals),t instanceof Ls)for(let[e,r]of t.map1){let n=this.map1.set(e,new lt(this.key2Equals));for(let[o,s]of r)n.set(o,s)}else if(t)for(let[e,r,n]of t)this.set(e,r,n)}has(t,e){var r,n;return(n=(r=this.map1.get(t))==null?void 0:r.has(e))!=null?n:!1}set(t,e,r){return this.map1.getOrCreate(t,()=>new lt(this.key2Equals)).set(e,r)}get(t,e){var r;return(r=this.map1.get(t))==null?void 0:r.get(e)}getOrDefault(t,e,r){var n;return(n=this.get(t,e))!=null?n:r}getOrCreate(t,e,r){if(!this.has(t,e)){let n=_r(r)?r():r;return this.set(t,e,n),n}return this.get(t,e)}delete(t,e){if(e===void 0)return this.map1.delete(t);let r=this.map1.get(t);return r?r.delete(e):!1}clear(){this.map1.clear()}get size(){let t=0;for(let e of this.map1.values())t+=e.size;return t}isEmpty(){return this.size===0}forEach(t,e){this.map1.forEach((r,n)=>r.forEach((o,s)=>t.call(e,o,n,s,this)))}*keys(){for(let[t,e]of this.map1)for(let r of e.keys())yield[t,r]}*values(){for(let t of this.map1.values())for(let e of t.values())yield e}*entries(){for(let[t,e]of this.map1)for(let[r,n]of e)yield[t,r,n]}keysArray(){return[...this.keys()]}valuesArray(){return[...this.values()]}entriesArray(){return[...this.entries()]}*kvKeys(){for(let[t,e]of this.keys())yield[t,e]}*kvValues(){for(let t of this.values())yield t}*kvEntries(){for(let[t,e,r]of this.entries())yield[[t,e],r]}*[Symbol.iterator](){yield*pe(this.entries())}clone(){return new Ls(this)}merge(t,e){for(let[r,n,o]of t.entries())this.has(r,n)&&e?this.set(r,n,e(this.get(r,n),o,r,n)):this.set(r,n,o);return this}some(t){for(let[e,r]of this.map1)for(let[n,o]of r)if(t(o,e,n))return!0;return!1}every(t){for(let[e,r]of this.map1)for(let[n,o]of r)if(!t(o,e,n))return!1;return!0}filter(t){let e=new this.constructor;for(let[r,n]of this.map1)for(let[o,s]of n)t(s,r,o,this)&&e.set(r,o,s);return e}reduce(t,e){let r=this.entries(),n=r.next();if(n.done){if(arguments.length<2)throw new TypeError("Reduce of empty BiMap with no initial value!");return e}let o,s;arguments.length<2?(o=n.value[2],s=r.next()):(o=e,s=n);for(let a=s;!a.done;a=r.next()){let[c,u,h]=a.value;o=t(o,h,c,u)}return o}mapEntries(t){let e=[];for(let[r,n]of this.map1)for(let[o,s]of n)e.push(t(s,r,o));return e}mapValues(t){let e=new Ls;for(let[r,n]of this.map1)for(let[o,s]of n)e.set(r,o,t(s,r,o));return e}toMap(){let t=new Map;for(let[e,r]of this.map1)for(let[n,o]of r)t.set([e,n],o);return t}toString(){let t=[];for(let[e,r]of this.map1){let n=[...r].map(([o,s])=>`${Gt(o)} => ${Gt(s)}`).join(", ");t.push(`${Gt(e)} => { ${n} }`)}return t.length===0?`Map(${this.size}){ }`:`Map(${this.size}){ ${t} }`}},qs=class js extends jr{constructor(t){if(super(),ft(this,"map1"),ft(this,"key1Equals",Le),ft(this,"key2Equals",Le),ft(this,"key3Equals",Le),this.map1=new lt(this.key1Equals),t instanceof js)for(let[e,r]of t.map1){let n=this.map1.set(e,new lt(this.key2Equals));for(let[o,s]of r)n.set(o,new lt(s,this.key3Equals))}else if(t)for(let[e,r,n,o]of t)this.set(e,r,n,o)}has(t,e,r){var n,o,s;return(s=(o=(n=this.map1.get(t))==null?void 0:n.get(e))==null?void 0:o.has(r))!=null?s:!1}set(t,e,r,n){return this.map1.getOrCreate(t,()=>new lt(this.key2Equals)).getOrCreate(e,()=>new lt(this.key3Equals)).set(r,n),n}get(t,e,r){var n,o;return(o=(n=this.map1.get(t))==null?void 0:n.get(e))==null?void 0:o.get(r)}getOrDefault(t,e,r,n){var o;return(o=this.get(t,e,r))!=null?o:n}getOrCreate(t,e,r,n){if(!this.has(t,e,r)){let o=_r(n)?n():n;return this.set(t,e,r,o),o}return this.get(t,e,r)}delete(t,e,r){var n;if(r===void 0){if(e===void 0)return this.map1.delete(t);let o=this.map1.get(t);return o?o.delete(e):!1}else{if(e===void 0)return this.map1.delete(t);let o=(n=this.map1.get(t))==null?void 0:n.get(e);return o?o.delete(r):!1}}clear(){this.map1.clear()}get size(){let t=0;for(let e of this.map1.values())for(let r of e.values())t+=r.size;return t}isEmpty(){return this.size===0}forEach(t,e){this.map1.forEach((r,n)=>r.forEach((o,s)=>o.forEach((a,c)=>t.call(e,a,n,s,c,this))))}*keys(){for(let[t,e]of this.map1)for(let[r,n]of e)for(let o of n.keys())yield[t,r,o]}*values(){for(let t of this.map1.values())for(let e of t.values())for(let r of e.values())yield r}*entries(){for(let[t,e]of this.map1)for(let[r,n]of e)for(let[o,s]of n)yield[t,r,o,s]}keysArray(){return[...this.keys()]}valuesArray(){return[...this.values()]}entriesArray(){return[...this.entries()]}*kvKeys(){for(let[t,e,r]of this.keys())yield[t,e,r]}*kvValues(){for(let t of this.values())yield t}*kvEntries(){for(let[t,e,r,n]of this.entries())yield[[t,e,r],n]}*[Symbol.iterator](){yield*pe(this.entries())}clone(){return new js(this)}merge(t,e){for(let[r,n,o,s]of t.entries())this.has(r,n,o)&&e?this.set(r,n,o,e(this.get(r,n,o),s,r,n,o)):this.set(r,n,o,s);return this}some(t){for(let[e,r]of this.map1)for(let[n,o]of r)for(let[s,a]of o)if(t(a,e,n,s))return!0;return!1}every(t){for(let[e,r]of this.map1)for(let[n,o]of r)for(let[s,a]of o)if(!t(a,e,n,s))return!1;return!0}filter(t){let e=new this.constructor;for(let[r,n]of this.map1)for(let[o,s]of n)for(let[a,c]of s)t(c,r,o,a,this)&&e.set(r,o,a,c);return e}reduce(t,e){let r=this.entries(),n=r.next();if(n.done){if(arguments.length<2)throw new TypeError("Reduce of empty TriMap with no initial value!");return e}let o,s;arguments.length<2?(o=n.value[3],s=r.next()):(o=e,s=n);for(let a=s;!a.done;a=r.next()){let[c,u,h,l]=a.value;o=t(o,l,c,u,h)}return o}mapEntries(t){let e=[];for(let[r,n]of this.map1)for(let[o,s]of n)for(let[a,c]of s)e.push(t(c,r,o,a));return e}mapValues(t){let e=new js;for(let[r,n]of this.map1)for(let[o,s]of n)for(let[a,c]of s)e.set(r,o,a,t(c,r,o,a));return e}toMap(){let t=new Map;for(let[e,r]of this.map1)for(let[n,o]of r)for(let[s,a]of o)t.set([e,n,s],a);return t}toString(){let t=[];for(let[e,r]of this.map1)for(let[n,o]of r){let s=[...o].map(([a,c])=>`${Gt(a)} => ${Gt(c)}`).join(", ");t.push(`${Gt(e)} => ${Gt(n)} => { ${s} }`)}return t.length===0?`Map(${this.size}){ }`:`Map(${this.size}){ ${t.join(", ")} }`}},Ws=class Si extends jr{constructor(...t){super(),ft(this,"data"),ft(this,"equals");let e=t.at(-1);this.equals=_r(e)?t.pop():Le;let r=t[0];this.data=new Set(r)}static createDeep(t){return t?new Si(t,ao):new Si(ao)}has(t){return this.equals===Le?this.data.has(t):this.some(e=>this.equals(e,t))}add(t){return this.has(t)||this.data.add(t),t}set(t,e){if(!this.equals(t,e))throw new TypeError("ValueSet.set() requires key === value.");this.add(e)}get(t){return this.has(t)?t:void 0}getOrDefault(t,e){var r;return(r=this.get(t))!=null?r:e}getOrCreate(t,e){if(!this.has(t)){let r=_r(e)?e():e;return this.set(t,r),r}return this.get(t)}delete(t){if(this.equals===Le||this.data.has(t))return this.data.delete(t);for(let e of this.values())if(this.equals(e,t))return this.data.delete(e),!0;return!1}clear(){this.data.clear()}get size(){return this.data.size}isEmpty(){return this.size===0}forEach(t,e){this.data.forEach(r=>t.call(e,r,this))}*keys(){yield*pe(this.data.keys())}*values(){yield*pe(this.data.values())}*entries(){yield*pe(this.data.entries())}*kvKeys(){for(let t of this.keys())yield[t]}*kvValues(){for(let t of this.values())yield t}*kvEntries(){for(let[t,e]of this.entries())yield[[t],e]}*[Symbol.iterator](){yield*pe(this.values())}clone(){let t=new Si;for(let e of this.values())t.add(e);return t}merge(t){for(let e of t.values())this.add(e);return this}some(t){for(let e of this.data)if(t(e))return!0;return!1}every(t){for(let e of this.data)if(!t(e))return!1;return!0}filter(t){let e=new Si;for(let r of this.data)t(r,this)&&e.add(r);return e}reduce(t,e){let r=this.values(),n=r.next();if(n.done){if(arguments.length<2)throw new TypeError("Reduce of empty ValueSet with no initial value!");return e}let o,s;arguments.length<2?(o=n.value,s=r.next()):(o=e,s=n);for(let a=s;!a.done;a=r.next()){let c=a.value;o=t(o,c)}return o}mapValues(t){let e=new Si;for(let r of this.data)e.add(t(r));return e}mapToArray(t){let e=[];for(let r of this.values())e.push(t(r));return e}map(t){let e=new Si;for(let r of this.values())e.add(t(r));return e}toSet(){return new Set(this.data)}toArray(){return[...this.values()]}toString(){return Gt(this.data)}},LA=class extends jr{constructor(i){super(),this.base=i}isEmpty(){return this.base.isEmpty()}clear(){var i,t;(t=(i=this.base).clear)==null||t.call(i)}add(...i){let t=i.slice(0,-1),e=i[i.length-1],r=this.base.get(...t);return this.base.set(...t,r?[...r,e]:[e]),e}remove(...i){let t=i.slice(0,-1),e=i[i.length-1],r=this.base.get(...t);if(!r)return!1;let n=r.indexOf(e);return n===-1?!1:(r.splice(n,1),r.length===0&&this.base.delete(...t),!0)}getAll(...i){var t;return(t=this.base.get(...i))!=null?t:[]}*iterAll(...i){yield*pe(this.getAll(...i))}*values(){for(let i of this.keys())yield*pe(this.getAll(...i))}*keys(){for(let i of this.base.kvKeys())yield i}*entries(){for(let i of this.keys()){let t=this.getAll(...i);t.length>0&&(yield[i,t])}}[Symbol.iterator](){return this.entries()}toString(){let i=[];for(let t of this.keys()){let e=this.getAll(...t),r=Array.isArray(t)?Gt(t):"[ ]",n=Array.isArray(e)?Gt(e):"[ ]";i.push(`${r} => ${n}`)}return i.length===0?"MultiContainer{ }":`MultiContainer{ ${i.join(", ")} }`}};function Us(i){return new LA(i)}var hu={};en(hu,{MusicError:()=>N,MusicErrorType:()=>_t,init:()=>Ii});function jA(i,t){if(i===""||t===""||typeof document=="undefined"||document.getElementById(i))return;let e=document.createElement("style");e.id=i,e.textContent=t,document.head.appendChild(e)}jA("wms-custom-css",`
3
+ /* Add custom wms-button and wms-button-group styles */
4
+
5
+ .wms-button {
6
+ display: inline-flex;
7
+ align-items: center;
8
+ justify-content: center;
9
+ padding: 0.4rem 0.8rem; /* medium size */
10
+ font-size: 1rem; /* readable */
11
+ font-weight: 600; /* semi-bold for clarity */
12
+ cursor: pointer;
13
+ border: 1px solid #444; /* subtle border */
14
+ border-radius: 4px; /* slight rounding */
15
+ background-color: #1e88e5; /* primary color (blue) */
16
+ color: white; /* text color */
17
+ transition: background 0.2s ease, transform 0.1s ease;
18
+ }
19
+
20
+ .wms-button:disabled,
21
+ .wms-button.disabled {
22
+ background-color: #b0bec5; /* grayish color */
23
+ border-color: #90a4ae; /* subtle border */
24
+ color: #eceff1; /* light text */
25
+ cursor: not-allowed; /* indicates disabled */
26
+ opacity: 0.7; /* slightly faded */
27
+ pointer-events: none; /* prevent clicks */
28
+ transform: none; /* no press effect */
29
+ }
30
+
31
+ .wms-button:hover {
32
+ background-color: #1565c0; /* slightly darker */
33
+ }
34
+
35
+ .wms-button:active {
36
+ transform: scale(0.97); /* subtle press effect */
37
+ }
38
+
39
+ .wms-button--sm { padding: 0.25rem 0.5rem; font-size: 0.875rem; }
40
+ .wms-button--lg { padding: 0.5rem 1rem; font-size: 1.125rem; }
41
+
42
+ .wms-button-group {
43
+ display: inline-flex;
44
+ }
45
+
46
+ .wms-button-group > .wms-button {
47
+ border-radius: 0;
48
+ margin: 0;
49
+ }
50
+
51
+ .wms-button-group > .wms-button:first-child {
52
+ border-top-left-radius: 4px;
53
+ border-bottom-left-radius: 4px;
54
+ }
55
+
56
+ .wms-button-group > .wms-button:last-child {
57
+ border-top-right-radius: 4px;
58
+ border-bottom-right-radius: 4px;
59
+ }
60
+
61
+ /* Add ifm-button-group for infima (for Docusaurus) */
62
+
63
+ .ifm-button-group {
64
+ display: inline-flex;
65
+ align-items: stretch;
66
+ }
67
+
68
+ .ifm-button-group > .button {
69
+ border-radius: 0;
70
+ margin: 0;
71
+ }
72
+
73
+ .ifm-button-group > .button:first-child {
74
+ border-top-left-radius: var(--ifm-button-border-radius);
75
+ border-bottom-left-radius: var(--ifm-button-border-radius);
76
+ }
77
+
78
+ .ifm-button-group > .button:last-child {
79
+ border-top-right-radius: var(--ifm-button-border-radius);
80
+ border-bottom-right-radius: var(--ifm-button-border-radius);
81
+ }
82
+ `);var _t=(c=>(c[c.Unknown=0]="Unknown",c[c.InvalidArg=1]="InvalidArg",c[c.Note=2]="Note",c[c.Scale=3]="Scale",c[c.KeySignature=4]="KeySignature",c[c.Timesignature=5]="Timesignature",c[c.Score=6]="Score",c[c.Audio=7]="Audio",c))(_t||{});function PA(i){return i===void 0?"":`[${_t[i]}] `}var N=class extends Error{constructor(...e){let[r,n]=e.length===1?[0,e[0]]:e;super(PA(r)+n);d(this,"type");Object.setPrototypeOf(this,new.target.prototype),this.name="MusicError",this.type=r}};var Cl=!1;function Ii(){Cl||(Cl=!0,console.log("%cWebMusicScore v6.0.0-pre.3 (iife) initialized.","background: black; color: white; padding: 2px;"))}var Jr=(e=>(e[e.Ascii=0]="Ascii",e[e.Unicode=1]="Unicode",e))(Jr||{}),ti=(e=>(e[e.Scientific=0]="Scientific",e[e.Helmholtz=1]="Helmholtz",e))(ti||{}),FA=$.Enum.getEnumValues(ti),BA=0;function _l(i){if(y.isEnumValue(i,ti))return i;throw new N(1,`Invalid pitchNotation: ${i}`)}function GA(i){return ti[_l(i)]}var zs=(r=>(r.Default="Default",r.OmitOctave="Omit Octave",r.Interval="Interval",r))(zs||{}),VA="Default",qA=$.Enum.getEnumValues(zs);function WA(i){if(y.isEnumValue(i,zs))return i;throw new N(5,`Invalid guitarNoteLabel: ${i}`)}function vl(i,t){return(i%t+t)%t}var Sl=12,wl=7,UA=new Map([[-2,"bb"],[-1,"b"],[0,""],[1,"#"],[2,"x"]]),zA=new Map([[-2,"\u{1D12B}"],[-1,"\u266D"],[0,""],[1,"\u266F"],[2,"\u{1D12A}"]]),Il=new Map([["",0],["bb",-2],["b",-1],["#",1],["x",2],["\u{1D12B}",-2],["\u266D",-1],["\u266F",1],["\u{1D12A}",2]]),co=["C","D","E","F","G","A","B"],Tl=[0,2,4,5,7,9,11],Nl=/^([A-G])((?:bb|𝄫|♭|b|#|♯|x|𝄪)?)?(-?\d+)?$/,dt=class dt{constructor(t,e,r){d(this,"diatonicClass");d(this,"accidental");d(this,"octave");if(typeof t=="number"&&typeof e=="number"&&r===void 0)dt.validateDiatonicId(t),this.diatonicClass=dt.getDiatonicClass(t),this.accidental=dt.validateAccidental(e),this.octave=dt.getOctaveFromDiatonicId(t);else if(typeof t=="number"&&typeof e=="number"&&typeof r=="number")this.diatonicClass=dt.validateDiatonicClass(t),this.accidental=dt.validateAccidental(e),this.octave=dt.validateOctave(r);else if(typeof t=="string"&&typeof e=="number"&&typeof r=="number")this.diatonicClass=dt.getDiatonicClass(t),this.accidental=dt.validateAccidental(e),this.octave=dt.validateOctave(r);else throw new N(2,`Invalid args: ${t}, ${e}, ${r}`)}get diatonicId(){return dt.getDiatonicIdInOctave(this.diatonicClass,this.octave)}get chromaticId(){return dt.getChromaticIdInOctave(Tl[this.diatonicClass]+this.accidental,this.octave)}get midiNumber(){return this.chromaticId}get chromaticClass(){return dt.getChromaticClass(Tl[this.diatonicClass]+this.accidental)}get noteLetter(){return co[this.diatonicClass]}format(t,e){let{noteLetter:r,octave:n}=this,o=dt.getAccidentalSymbol(this.accidental,e);return t===1?n>=3?r.toLowerCase()+o+"\u2032".repeat(n-3):r.toUpperCase()+o+"\u0375".repeat(2-n):r+o+n}formatOmitOctave(t){let e=co[this.diatonicClass],r=dt.getAccidentalSymbol(this.accidental,t);return e+r}static getNote(t){return this.noteCache.getOrCreate(t,()=>{let e=dt.parseNote(t);if(!e)throw new N(2,`Invalid note "${t}".`);if(e.octave===void 0)throw new N(2,`Invalid note "${t}" (missing octave).`);return new dt(e.noteLetter,e.accidental,e.octave)})}static isNote(t){let e=dt.parseNote(t);return e!==void 0&&e.octave!==void 0}static validateNote(t){if(this.isNote(t))return!0;throw new N(2,`Invalid note "${t}"`)}static getChromaticNote(t){return this.chromaticNoteCache.getOrCreate(t,()=>{let r=["C/B#","C#/Db","D","D#/Eb","E/Fb","F/E#","F#/Gb","G","G#/Ab","A","A#/Bb","B/Cb"][dt.getChromaticClass(t)].split("/")[0]+dt.getOctaveFromChromaticId(t);return dt.getNote(r)})}static getDiatonicClass(t){if(typeof t=="number")return vl(t,7);if(typeof t=="string"&&t.length>0)return co.indexOf(dt.validateNoteLetter(t[0]));throw new N(2,`Invalid arg: ${t}`)}static getOctaveFromDiatonicId(t){return Math.floor((t-wl)/7)}static getDiatonicIdInOctave(t,e){return dt.getDiatonicClass(t)+e*7+wl}static getChromaticClass(t){return vl(t,12)}static getOctaveFromChromaticId(t){return Math.floor((t-Sl)/12)}static getChromaticIdInOctave(t,e){return dt.getChromaticClass(t)+e*12+Sl}static equals(t,e){return t==null&&e==null?!0:t==null||e==null?!1:t===e||t.diatonicId===e.diatonicId&&t.accidental===e.accidental}static replaceAccidentalSymbols(t,e){return e===1?t.replace("bb","\u{1D12B}").replace("b","\u266D").replace("#","\u266F").replace("x","\u{1D12A}"):t.replace("\u{1D12B}","bb").replace("\u266D","b").replace("\u266F","#").replace("\u{1D12A}","x")}static isValidNoteName(t){return Nl.test(t)}static parseNote(t){var c;let e=Nl.exec(t);if(!e)return;let r=dt.validateNoteLetter(e[1]),n=e[2],o=dt.validateAccidental((c=Il.get(n))!=null?c:0),s=e[3],a=s?dt.validateOctave(+s):void 0;return{noteLetter:r,accidental:o,octave:a}}static getScientificNoteName(t,e){let r=dt.parseNote(t);if(!r)throw new N(2,`Invalid noteName: ${t}`);let{noteLetter:n,accidental:o,octave:s}=r;return n+dt.getAccidentalSymbol(o,e)+(s!=null?s:"")}static getAccidentalSymbol(t,e){return e===1?zA.get(t):UA.get(t)}static getAccidental(t){let e=Il.get(t);if(e===void 0)throw new N(2,`Invalid accidental: ${t}`);return e}static getNoteLetter(t){return co[dt.getDiatonicClass(t)]}static findNextDiatonicIdAbove(t,e,r){let n=dt.getDiatonicClass(t),o=dt.getDiatonicClass(e),s=r?n<=o?1:0:n<o?1:0;return dt.getDiatonicIdInOctave(n,dt.getOctaveFromDiatonicId(e)+s)}static validateDiatonicId(t){if(y.isInteger(t))return t;throw new N(2,`Invalid diatonicId: ${t}`)}static validateDiatonicClass(t){if(y.isIntegerBetween(t,0,6))return t;throw new N(2,`Invalid diatonicClass: ${t}`)}static validateChromaticId(t){if(y.isInteger(t))return t;throw new N(2,`Invalid chromaticId: ${t}`)}static validatechromaticClass(t){if(y.isIntegerBetween(t,0,11))return t;throw new N(2,`Invalid chromaticClass: ${t}`)}static validateNoteLetter(t){if(co.some(e=>e===t))return t;throw new N(2,`Invalid note: ${t}`)}static validateOctave(t){if(y.isInteger(t))return t;throw new N(2,`Invalid octave: ${t}`)}static validateAccidental(t){if(y.isIntegerBetween(t,-2,2))return t;throw new N(2,`Invalid accidental: ${t}`)}static sort(t){return t.slice().sort(dt.compareFunc)}static removeDuplicates(t){let e=[];return t.forEach(r=>{e.find(n=>dt.equals(r,n))===void 0&&e.push(r)}),e}static compareFunc(t,e){return t.diatonicId<e.diatonicId?-1:t.diatonicId>e.diatonicId?1:t.accidental<e.accidental?-1:t.accidental>e.accidental?1:0}};d(dt,"noteCache",new lt),d(dt,"chromaticNoteCache",new lt);var U=dt;function YA(i,t){let e=U.getChromaticClass(i)-new U(t,0).chromaticClass;for(;e>2;)e-=12;for(;e<-2;)e+=12;return U.validateAccidental(e)}var HA=/^(bb?|b?|#?|x?)([0-9]*)$/;function $A(i){var n,o;let t=HA.exec(""+i);if(!t)throw new N(4,`Invalid degree: ${i}`);let e=(o=U.getAccidental((n=t[1])!=null?n:""))!=null?o:0,r=+t[2];if(!y.isInteger(e)||e<-2||e>2||!y.isInteger(r)||r<1)throw new N(4,`Invalid degree: ${i}`);return{deg:r,acc:e}}var lu=(a=>(a[a.Ionian=1]="Ionian",a[a.Dorian=2]="Dorian",a[a.Phrygian=3]="Phrygian",a[a.Lydian=4]="Lydian",a[a.Mixolydian=5]="Mixolydian",a[a.Aeolian=6]="Aeolian",a[a.Locrian=7]="Locrian",a))(lu||{}),du=(r=>(r[r.Natural=0]="Natural",r[r.Flats=1]="Flats",r[r.Sharps=2]="Sharps",r))(du||{});function Ys(){return Pr("C","Major")}var ei=class ei{constructor(t,e){this.tonic=t;this.mode=e;d(this,"naturalScaleNotes");d(this,"accidentalByDiatonicClass");d(this,"orderedAccidentedNotes");if(!y.isEnumValue(e,lu))throw new N(4,`Invalid mode: ${e}`);let r=[2,2,1,2,2,2,1];for(let c=1;c<e;c++)r.push(r.shift());this.naturalScaleNotes=[],this.accidentalByDiatonicClass=[];let n=U.getDiatonicClass(t[0]),o=U.getNote(t+"0").chromaticId;for(let c=0;c<7;n++,o+=r[c],c++){let u=new U(U.getDiatonicClass(n),YA(o,n));if(Math.abs(u.accidental)>=2)throw new N(4,"Key signature contains double accidental.");this.naturalScaleNotes[c]=u,this.accidentalByDiatonicClass[u.diatonicClass]=u.accidental}let s=this.naturalScaleNotes.filter(c=>c.accidental>0).sort((c,u)=>{let h=ei.OrderOfSharps.indexOf(c.noteLetter),l=ei.OrderOfSharps.indexOf(u.noteLetter);if(h===-1||l===-1)throw new N(4,"Unexpected note in key signature.");return h-l}),a=this.naturalScaleNotes.filter(c=>c.accidental<0).sort((c,u)=>{let h=ei.OrderOfFlats.indexOf(c.noteLetter),l=ei.OrderOfFlats.indexOf(u.noteLetter);if(h===-1||l===-1)throw new N(4,"Unexpected note in key signature.");return h-l});if(s.length!==0&&a.length!==0)throw new N(4,"Key Signature has both sharps and flats.");this.orderedAccidentedNotes=a.length>0?a:s}getAccidentalType(){return this.orderedAccidentedNotes.length===0?0:this.orderedAccidentedNotes[0].accidental<0?1:2}getNaturalScaleNotes(){return this.naturalScaleNotes}getAccidental(t){var e;return(e=this.accidentalByDiatonicClass[U.getDiatonicClass(t)])!=null?e:0}getNumAccidentals(){return this.orderedAccidentedNotes.length}getOrderedAccidentalNotes(){return this.orderedAccidentedNotes}getNoteByDegree(t){let{deg:e,acc:r}=$A(t);if(r===0)return this.naturalScaleNotes[(e-1)%7];{let n=this.naturalScaleNotes[(e-1)%7];return new U(n.diatonicId,n.accidental+r)}}static equals(t,e){return t==null&&e==null?!0:t==null||e==null?!1:t===e||t.tonic===e.tonic&&t.mode===e.mode}};d(ei,"OrderOfSharps","FCGDAEB"),d(ei,"OrderOfFlats","BEADGCF");var rr=ei;var ZA=new lt([["Major","M"],["minor","m"],["Perfect","P"],["diminished","d"],["Augmented","A"],["doubly diminished","dd"],["Doubly Augmented","AA"]]),XA={1:{0:"Perfect",1:"Augmented","-1":"diminished",2:"Doubly Augmented","-2":"doubly diminished"},2:{2:"Major",1:"minor",3:"Augmented",0:"diminished",4:"Doubly Augmented","-1":"doubly diminished"},3:{4:"Major",3:"minor",5:"Augmented",2:"diminished",6:"Doubly Augmented",1:"doubly diminished"},4:{5:"Perfect",6:"Augmented",4:"diminished",7:"Doubly Augmented",3:"doubly diminished"},5:{7:"Perfect",8:"Augmented",6:"diminished",9:"Doubly Augmented",5:"doubly diminished"},6:{9:"Major",8:"minor",10:"Augmented",7:"diminished",11:"Doubly Augmented",6:"doubly diminished"},7:{11:"Major",10:"minor",12:"Augmented",9:"diminished",13:"Doubly Augmented",8:"doubly diminished"},8:{12:"Perfect",13:"Augmented",11:"diminished",14:"Doubly Augmented",10:"doubly diminished"}};function QA(i,t){for(;i<1;)i+=7,t+=12;for(;i>8;)i-=7,t-=12;let e=XA[i];if(e)return e[t]}function KA(i){if(i==="Perfect"||i==="Major"||i==="minor"||i==="Augmented"||i==="diminished"||i==="Doubly Augmented"||i==="doubly diminished")return i;throw new N(1,`Invalid interval quality: ${i}`)}function JA(i){if(y.isIntegerGte(i,1))return $.Math.toOrdinalNumber(i);throw new N(1,`Invalid interval quantity: ${i}`)}var Hs=class extends Error{constructor(e){super(e);this.msg=e;this.name="InvalidInterval"}},uo=class i{constructor(t,e){this.note1=t;this.note2=e;d(this,"direction");d(this,"semitones");d(this,"quantity");d(this,"quality");e.diatonicId>=t.diatonicId?(this.direction=e.diatonicId===t.diatonicId?"Unison":"Ascending",this.quantity=e.diatonicId-t.diatonicId+1,this.semitones=e.chromaticId-t.chromaticId):(this.direction="Descending",this.quantity=t.diatonicId-e.diatonicId+1,this.semitones=t.chromaticId-e.chromaticId);let r=QA(this.quantity,this.semitones);if(r)this.quality=r;else throw new Hs("Unknown interval quality")}static get(t,e){try{return new i(t,e)}catch(r){if(r instanceof Hs)return;throw r}}toString(){let t=this.direction==="Unison"?"":this.direction+" ",e=this.quality+" ",r=this.direction==="Unison"?"Unison":JA(this.quantity);return t+e+r}toAbbrString(){let t=this.direction==="Descending"?"\u2193":"",e=ZA.getOrDefault(this.quality,"?"),r=this.quantity;return t+e+r}};function tC(i){let t=U.getDiatonicClass("CCDDEFFGGAAB"[U.getChromaticClass(i)]),e=U.getOctaveFromChromaticId(i);return U.getDiatonicIdInOctave(t,e)}var eC=["Cb","C","C#","Db","D","D#","Eb","E","E#","Fb","F","F#","Gb","G","G#","Ab","A","A#","Bb","B","B#"],Ti=(g=>(g.Major="Major",g.NaturalMinor="Natural Minor",g.HarmonicMinor="Harmonic Minor",g.Ionian="Ionian",g.Dorian="Dorian",g.Phrygian="Phrygian",g.Lydian="Lydian",g.Mixolydian="Mixolydian",g.Aeolian="Aeolian",g.Locrian="Locrian",g.MajorPentatonic="Major Pentatonic",g.MinorPentatonic="Minor Pentatonic",g.MajorHexatonicBlues="Major Hexatonic Blues",g.MinorHexatonicBlues="Minor Hexatonic Blues",g.HeptatonicBlues="Heptatonic Blues",g))(Ti||{});function rC(i){switch(i){case"Major":return 1;case"Natural Minor":return 6;case"Harmonic Minor":return 6;case"Ionian":return 1;case"Dorian":return 2;case"Phrygian":return 3;case"Lydian":return 4;case"Mixolydian":return 5;case"Aeolian":return 6;case"Locrian":return 7;case"Major Pentatonic":return 1;case"Minor Pentatonic":return 6;case"Major Hexatonic Blues":return 1;case"Minor Hexatonic Blues":return 6;case"Heptatonic Blues":return 1;default:throw new N(3,`Invalid scaleType: ${i}`)}}var ri=class extends rr{constructor(e,r){super(e,rC(r));this.tonic=e;this.scaleType=r;d(this,"scaleDegrees");d(this,"scaleNotes");d(this,"chromaticClassDegree");d(this,"preferredChromaticIdNoteCache",new xl);switch(r){case"Harmonic Minor":this.scaleDegrees=[1,2,3,4,5,6,"#7"];break;case"Major Pentatonic":this.scaleDegrees=[1,2,3,5,6];break;case"Minor Pentatonic":this.scaleDegrees=[1,3,4,5,7];break;case"Major Hexatonic Blues":this.scaleDegrees=[1,2,"b3",3,5,6];break;case"Minor Hexatonic Blues":this.scaleDegrees=[1,3,4,"b5",5,7];break;case"Heptatonic Blues":this.scaleDegrees=[1,2,"b3",4,"b5",6,"b7"];break;default:this.scaleDegrees=[1,2,3,4,5,6,7];break}this.scaleNotes=this.scaleDegrees.map(n=>this.getNoteByDegree(n)),this.chromaticClassDegree=[0,1,2,3,4,5,6,7,8,9,10,11].map(n=>{let o=this.scaleNotes.findIndex(s=>s.chromaticClass===n);return o>=0?this.scaleDegrees[o]:void 0})}static equals(e,r){return e==null&&r==null?!0:e==null||r==null?!1:e===r||e.getScaleName()===r.getScaleName()}getScaleName(e){switch(e){case 1:return U.getScientificNoteName(this.tonic,e)+" "+this.scaleType;default:return this.tonic+" "+this.scaleType}}getScaleNotes(e,r){if(!y.isIntegerGte(r,1))throw new N(3,`Invalid numOctaves: ${r}`);let n=[];for(let s=1;s<=r;s++)n=[...n,...this.scaleNotes];n.push(this.scaleNotes[0]);let o=U.getNote(e).diatonicId;return n.map(s=>(o=U.findNextDiatonicIdAbove(s.diatonicId,o,!1),new U(o,s.accidental)))}getScaleOverview(){return this.getScaleNotes("C4",1).map(e=>e.formatOmitOctave(1)).join(" - ")}getScaleSteps(){let e=this.getScaleNotes("C4",1).map(n=>n.chromaticId),r=[];for(let n=0;n<e.length-1;n++)r.push($.Math.mod(e[n+1]-e[n],12));return r}getScaleStringSteps(){return this.getScaleSteps().map(e=>e===1?"H":e===2?"W":e.toString()+"H")}isScaleNote(e){return this.chromaticClassDegree[e.chromaticClass]!==void 0}isScaleRootNote(e){return String(this.chromaticClassDegree[e.chromaticClass])==="1"}getIntervalFromRootNote(e){let r=this.getScaleNotes("C0",1)[0];for(;e.chromaticId>=r.chromaticId+12;)e=new U(e.diatonicClass,e.accidental,e.octave-1);if(e.chromaticId<r.chromaticId)throw new N(3,"Note is below rootNote.");let n=uo.get(r,e);if(n===void 0)throw new N(3,"Interval is undefined.");return n}getPreferredChromaticNote(e){U.validateChromaticId(e);let r=this.preferredChromaticIdNoteCache.get(e);if(r)return r;let n=U.getOctaveFromChromaticId(e);if(r=this.scaleNotes.map(l=>l.noteLetter==="C"&&l.accidental<0?new U(l.diatonicClass,l.accidental,n+1):l.noteLetter==="B"&&l.accidental>0?new U(l.diatonicClass,l.accidental,n-1):new U(l.diatonicClass,l.accidental,n)).find(l=>U.getChromaticClass(e)===l.chromaticClass),r)return this.preferredChromaticIdNoteCache.set(e,r),r;let s=tC(e),a=s-2,c=s+2,h=this.getAccidentalType()===1?[0,-1,1,-2,2]:[0,1,-1,2,-2];for(let l=0;l<h.length;l++){let p=h[l];for(let m=Math.max(0,a);m<=c;m++)if(r=new U(m,p),e===r.chromaticId)return this.preferredChromaticIdNoteCache.set(e,r),r}return r=U.getChromaticNote(e),this.preferredChromaticIdNoteCache.set(e,r),r}},ne=class{constructor(t){this.type=t;d(this,"tonicList",[]);d(this,"scaleMap",new Map);let e=[],r=[],n=[];if(eC.forEach(s=>{try{let a=new ri(s,this.type);switch(a.getAccidentalType()){case 0:e.push(a);break;case 2:if(s.endsWith("b"))return;r.push(a);break;case 1:if(s.endsWith("#"))return;n.push(a);break}this.scaleMap.set(s,a)}catch(a){}}),e.length===0)throw new N(3,"Expected natural scale.");let o=(s,a)=>s.getNumAccidentals()-a.getNumAccidentals();this.tonicList=[...e.sort(o).map(s=>s.tonic),"- Sharps -",...r.sort(o).map(s=>s.tonic),"- Flats -",...n.sort(o).map(s=>s.tonic)]}getTonicList(){return this.tonicList}getDefaultTonic(){return this.tonicList[0]}getType(){return this.type}getScale(t){let e=this.scaleMap.get(t);if(e)return e;throw new N(3,`Invalid scale: ${t} ${this.type}`)}hasScale(t){return this.scaleMap.get(t)!==void 0}},Ol=[new ne("Major"),new ne("Natural Minor"),new ne("Harmonic Minor"),"- Modes -",new ne("Ionian"),new ne("Dorian"),new ne("Phrygian"),new ne("Lydian"),new ne("Mixolydian"),new ne("Aeolian"),new ne("Locrian"),"- Pentatonic -",new ne("Major Pentatonic"),new ne("Minor Pentatonic"),"- Blues -",new ne("Major Hexatonic Blues"),new ne("Minor Hexatonic Blues"),new ne("Heptatonic Blues")];function iC(){return Ol}var Rl=new lt;Ol.forEach(i=>{i instanceof ne&&Rl.set(i.getType(),i)});function Ml(i){let t=Rl.get(i);if(t)return t;throw new N(3,`Invalid scaleType: ${i}`)}function ho(i){if(y.isEnumValue(i,Ti))return i;throw new N(3,`Invalid scaleType: "${i}"`)}function Pr(i,t){let e,r;return t!==void 0?(e=i,r=ho(t)):(e=i.split(" ")[0],r=ho(i.substring(e.length+1))),Ml(r).getScale(e)}var nC=Pr("C","Major");function oC(){return nC}var Fr=(i,t)=>i.chromaticClass===t.chromaticClass,sC=["C","C#","Db","D","Eb","E","F","F#","Gb","G","Ab","A","Bb","B","Cb"].map(i=>U.getNote(i+"0")),aC=new vr;function cC(i){return aC.getOrCreate(i.chromaticClass,()=>{let t=sC.find(e=>Fr(e,i));if(!t)throw new N(1,`Invalid chord root note: ${i.formatOmitOctave(1)}`);return t})}function uC(i,t){let e=i.formatOmitOctave(0);return Pr(e,"Major").getNoteByDegree(t)}function hC(i){return $.Arr.removeDuplicates(i,Fr)}var lC=[{name:"5",degrees:[1,5]},{name:"",degrees:[1,3,5]},{name:"m",degrees:[1,"b3",5]},{name:"dim",degrees:[1,"b3","b5"]},{name:"aug",degrees:[1,3,"#5"]},{name:"sus2",degrees:[1,2,5]},{name:"sus4",degrees:[1,4,5]},{name:"6",degrees:[1,3,5,6]},{name:"m6",degrees:[1,"b3",5,6]},{name:"m(maj7)",degrees:[1,"b3",5,7]},{name:"7",degrees:[1,3,5,"b7"]},{name:"7\u266D5",degrees:[1,3,"b5","b7"]},{name:"7\u266F5",degrees:[1,3,"#5","b7"]},{name:"7sus2",degrees:[1,2,5,"b7"]},{name:"7sus4",degrees:[1,4,5,"b7"]},{name:"dim7",degrees:[1,"b3","b5","bb7"]},{name:"maj7",degrees:[1,3,5,7]},{name:"maj7\u266D5",degrees:[1,3,"b5",7]},{name:"maj7\u266F5",degrees:[1,3,"#5",7]},{name:"m7",degrees:[1,"b3",5,"b7"]},{name:"m7\u266D5",degrees:[1,"b3","b5","b7"]},{name:"m7\u266F5",degrees:[1,"b3","#5","b7"]},{name:"9",degrees:[1,3,5,"b7",9]},{name:"m9",degrees:[1,"b3",5,"b7",9]},{name:"7\u266F9",degrees:[1,3,5,"b7","#9"]},{name:"7\u266D9",degrees:[1,3,5,"b7","b9"]},{name:"11",degrees:[1,3,5,"b7",9,11]},{name:"m11",degrees:[1,"b3",5,"b7",9,11]},{name:"13",degrees:[1,3,5,"b7",9,11,13]},{name:"m13",degrees:[1,"b3",5,"b7",9,11,13]}];function dC(i,t){return i.degrees.every(e=>e!==t)?!0:i.degrees.length>=4&&t===5||i.degrees.length>=6&&t===9||i.degrees.length>=7&&t===11}var nn=class extends Error{constructor(e){super(e);this.msg=e;this.name="InvalidChordException"}},pu=class i{constructor(t,e,r,n){this.chordInfo=t;this.rootNote=r;d(this,"name");d(this,"notes");d(this,"omitNotes");d(this,"slashBassNote");this.name=t.name;let o=e.slice();!o.some(a=>Fr(a,n))&&o.push(n),this.notes=new Array(this.chordInfo.degrees.length),this.omitNotes=new Array(this.chordInfo.degrees.length);for(let a=0;a<t.degrees.length;a++){let c=t.degrees[a],u=this.notes[a]=uC(this.rootNote,c),h=o.findIndex(l=>Fr(l,u));if(h>=0)this.omitNotes[a]=!1,o.splice(h,1);else if(dC(t,c))this.omitNotes[a]=!0;else throw new nn("Missing chord note!");Fr(n,u)&&(n=u)}if(o.length>0)if(o.every(a=>Fr(a,n)))this.slashBassNote=n;else throw new nn("Got some extra notes that are not bass note!");else this.slashBassNote=Fr(n,this.rootNote)?void 0:n;if(t.name==="5"&&this.slashBassNote)throw new nn("Power chord no bass note allowed!")}static getChords(t){let e=[],r=U.sort(t),n=r[0],o=hC(r);for(let s=0;s<o.length;s++){let a=cC(o[s]);lC.forEach(c=>{try{let u=new i(c,o,a,n),h=e.findIndex(l=>l.replaceWith(u));h>=0?e[h]=u:e.push(u)}catch(u){if(!(u instanceof nn))throw u}})}return e}replaceWith(t){if(t.notes.length<this.notes.length)return!1;if(t.slashBassNote&&this.slashBassNote&&!Fr(t.slashBassNote,this.slashBassNote)||t.slashBassNote&&!this.slashBassNote||!t.slashBassNote&&this.slashBassNote)return!1;for(let e=0;e<this.notes.length;e++)if(!Fr(t.notes[e],this.notes[e])||t.omitNotes[e]!==this.omitNotes[e])return!1;return!0}toString(){let t=1,e=this.rootNote.formatOmitOctave(t),r=this.slashBassNote?"/"+this.slashBassNote.formatOmitOctave(t):"";return e+this.name+r}getDegreeNotationString(){let t=1,e=this.slashBassNote?this.slashBassNote.formatOmitOctave(t)+" - ":"",r=this.omitNotes.map((n,o)=>this.getDegreeStr(o)+"("+(n?"-":this.getNoteStr(o))+")").join(" - ");return e+r}getOmittedDegreesString(){let t=this.omitNotes.map((e,r)=>e?this.getDegreeStr(r)+"("+this.getNoteStr(r)+")":void 0).filter(e=>e!==void 0);return t.length>0?"Omits "+t.join(", "):""}getDegreeStr(t){return U.replaceAccidentalSymbols(""+this.chordInfo.degrees[t],1)}getNoteStr(t){return this.notes[t].formatOmitOctave(1)}};var mu={list:[{name:"Standard",strings:["E2","A2","D3","G3","B3","E4"]},{name:"B Standard",strings:["B1","E2","A2","D3","F#3","B3"]},{name:"C Standard",strings:["C2","F2","A#2","D#3","G3","C4"]},{name:"D Modal",strings:["D2","A2","D3","G3","A3","D4"]},{name:"D Standard",strings:["D2","G2","C3","F3","A3","D4"]},{name:"D# Standard",strings:["D#2","G#2","C#3","F#3","A#3","D#4"]},{name:"Double Drop D",strings:["D2","A2","D3","G3","B3","D4"]},{name:"Drop B",strings:["B1","F#2","B2","E3","G#3","C#4"]},{name:"Drop C",strings:["C2","G2","C3","F3","A3","D4"]},{name:"Drop D",strings:["D2","A2","D3","G3","B3","E4"]},{name:"Low C",strings:["C2","G2","D3","G3","A3","D4"]},{name:"New Standard",strings:["C2","G2","D3","A3","E4","G4"]},{name:"Open A",strings:["E2","A2","C#3","E3","A3","E4"]},{name:"Open A Minor",strings:["E2","A2","E3","A3","C4","E4"]},{name:"Open C",strings:["C2","G2","C3","G3","C4","E4"]},{name:"Open C Minor",strings:["C2","G2","C3","G3","C4","D#4"]},{name:"Open D",strings:["D2","A2","D3","F#3","A3","D4"]},{name:"Open D Minor",strings:["D2","A2","D3","F3","A3","D4"]},{name:"Open E",strings:["E2","B2","E3","G#3","B3","E4"]},{name:"Open E Minor",strings:["E2","B2","E3","G3","B3","E4"]},{name:"Open G",strings:["D2","G2","D3","G3","B3","D4"]},{name:"Open G Minor",strings:["D2","G2","D3","G3","A#3","D4"]}]};var lo=mu.list.map(i=>i.name),mC=lo[0];function fu(i){if(lo.indexOf(i)<0)throw new N(1,`Invalid tuning name: ${i}`);return i}var El=new bl(100);function $s(i){let t=El.get(i);if(!t){let e=mu.list.find(r=>r.name===i);if(!e)throw new N(1,`Invalid tuningName: ${i}`);if(t=e.strings.slice().reverse().map(r=>U.getNote(r)),!y.isIntegerEq(t.length,6))throw new N(0,`Tuning has ${t.length} strings.`);El.set(i,t)}return t}var Dl=12,fC=1188*7*5,ir=(k=>(k.Whole="1n",k.WholeTriplet="1t",k.WholeDot="1.",k.Whole2Dots="1..",k.Whole3Dots="1...",k.Whole4Dots="1....",k.Whole5Dots="1.....",k.Whole6Dots="1......",k.Half="2n",k.HalfTriplet="2t",k.HalfDot="2.",k.Half2Dots="2..",k.Half3Dots="2...",k.Half4Dots="2....",k.Half5Dots="2.....",k.Quarter="4n",k.QuarterTriplet="4t",k.QuarterDot="4.",k.Quarter2Dots="4..",k.Quarter3Dots="4...",k.Quarter4Dots="4....",k.Eighth="8n",k.EighthTriplet="8t",k.EighthDot="8.",k.Eighth2Dots="8..",k.Eighth3Dots="8...",k.Sixteenth="16n",k.SixteenthTriplet="16t",k.SixteenthDot="16.",k.Sixteenth2Dots="16..",k.ThirtySecond="32n",k.ThirtySecondTriplet="32t",k.ThirtySecondDot="32.",k.SixtyFourth="64n",k.SixtyFourthTriplet="64t",k))(ir||{});function nr(i){return y.isEnumValue(i,ir)}function Br(i){if(nr(i))return i;throw new N(1,`Invalid noteLength: ${i}`)}var me=class me{constructor(t){d(this,"noteLength");d(this,"noteSize");d(this,"ticks");d(this,"flagCount");d(this,"dotCount");d(this,"maxDotCount");d(this,"isTriplet");d(this,"hasStem");d(this,"isSolid");if(this.noteLength=Br(t),this.noteSize=parseInt(t),this.isTriplet=t.endsWith("t"),this.maxDotCount=this.isTriplet?0:Math.floor(Math.log2(me.ShortestNoteSize/this.noteSize)),this.dotCount=$.Str.charCount(t,"."),this.flagCount=this.noteSize>4?Math.floor(Math.log2(this.noteSize/4)):0,this.ticks=fC*me.ShortestNoteSize/this.noteSize,this.hasStem=this.noteSize>1,this.isSolid=this.noteSize>2,this.dotCount>this.maxDotCount)throw new N(2,`dotCount ${this.dotCount} > maxDotCount ${this.maxDotCount}, for noteLength "${this.noteLength}".`);if(this.isTriplet&&this.dotCount>0)throw new N(2,`noteLength "${this.noteLength}" is both triplet and dotted!`)}static get(t){return this.cache.getOrCreate(t,()=>new me(t))}static create(t,e=0){let r=typeof t=="number"?t:this.get(t).noteSize;return this.get(r+(y.isIntegerGte(e,1)?".".repeat(e):"n"))}static cmp(t,e){let r=t instanceof me?t.noteSize:typeof t=="number"?t:me.get(t).noteSize,n=e instanceof me?e.noteSize:typeof e=="number"?e:me.get(e).noteSize;return $.Math.cmp(n,r)}static equals(t,e){let r=t instanceof me?t.noteSize:typeof t=="number"?t:me.get(t).noteSize,n=e instanceof me?e.noteSize:typeof e=="number"?e:me.get(e).noteSize;return r===n}};d(me,"LongestNoteSize",Math.min(...$.Enum.getEnumValues(ir).map(t=>parseInt(t)))),d(me,"ShortestNoteSize",Math.max(...$.Enum.getEnumValues(ir).map(t=>parseInt(t)))),d(me,"cache",new lt);var Nt=me;function Zs(i){return y.isObject(i)&&y.isIntegerBetween(i.parts,2,Dl)&&y.isIntegerBetween(i.inTimeOf,2,Dl)}function kl(i){if(Zs(i))return i;throw new N(2,`Invalid tupletRatio ${JSON.stringify(i)}`)}var Gr={Duplet:{parts:2,inTimeOf:3},Triplet:{parts:3,inTimeOf:2},Quadruplet:{parts:4,inTimeOf:3}},Ni=class Ni{constructor(t,e,r){d(this,"noteLength");d(this,"noteSize");d(this,"dotCount");d(this,"tupletRatio");d(this,"ticks");d(this,"flagCount");d(this,"hasStem");d(this,"isSolidNoteHead");this.noteLength=Br(t);let n=Nt.get(t);if(this.noteSize=n.noteSize,this.ticks=n.ticks,this.flagCount=n.flagCount,this.dotCount=e!=null?e:n.dotCount,this.hasStem=n.hasStem,this.isSolidNoteHead=n.isSolid,y.isObject(r)?this.tupletRatio=kl(r):n.isTriplet?this.tupletRatio=Gr.Triplet:this.tupletRatio=void 0,this.dotCount>0&&this.tupletRatio!==void 0)throw new N(2,"Note cannot be both dotted and tuplet!");if(this.dotCount>n.maxDotCount)throw new N(2,`Too big dot count ${this.dotCount} for note length ${this.noteLength}.`);for(let o=this.ticks/2,s=1;s<=this.dotCount;s++,o/=2)this.ticks+=o;this.tupletRatio&&(this.ticks*=this.tupletRatio.inTimeOf/this.tupletRatio.parts)}toString(){let t=Ni.NoteSymbolMap.get(this.noteSize),e=".".repeat(this.dotCount);return t?t+e:""+this.noteSize+(e.length>0?e:"n")}static get(t,e,r){return e!==void 0||r!==void 0?new Ni(t,e,r):this.cache.getOrCreate(t,()=>new Ni(t))}static cmp(t,e){return $.Math.cmp(t.ticks,e.ticks)}static equals(t,e){return t.ticks===e.ticks}};d(Ni,"NoteSymbolMap",new vr([[1,"\u{1D15D}"],[2,"\u{1D15E}"],[4,"\u{1D15F}"],[8,"\u{1D160}"],[16,"\u{1D161}"],[32,"\u{1D162}"],[64,"\u{1D163}"],[128,"\u{1D164}"]])),d(Ni,"cache",new lt);var Kt=Ni;var po=(u=>(u._2_4="2/4",u._3_4="3/4",u._4_4="4/4",u._3_8="3/8",u._5_8="5/8",u._6_8="6/8",u._7_8="7/8",u._9_8="9/8",u._12_8="12/8",u))(po||{}),Oi=(n=>(n._2_3="2-3",n._3_2="3-2",n._2_2_3="2-2-3",n._3_2_2="3-2-2",n))(Oi||{}),ii=class{constructor(...t){d(this,"beatCount");d(this,"beatSize");d(this,"beatLength");d(this,"measureTicks");d(this,"beamGroupSizes",[]);let e;if(y.isEnumValue(t[0],po)){let o=t[0].split("/");this.beatCount=+o[0],this.beatSize=+o[1],y.isEnumValue(t[1],Oi)&&(e=t[1])}else if(y.isIntegerGte(t[0],2)&&y.isIntegerGte(t[1],2))this.beatCount=t[0],this.beatSize=t[1],y.isEnumValue(t[2],Oi)&&(e=t[2]);else throw new N(5,`Invalid args: ${t}`);if(y.isIntegerGte(this.beatCount,1)){if(!y.isIntegerGte(this.beatSize,1))throw new N(5,`Invalid beatSize: ${this.beatSize}`)}else throw new N(5,`Invalid beatCount: ${this.beatCount}`);let{noteLength:r,ticks:n}=Nt.create(this.beatSize);if(this.beatLength=r,this.measureTicks=this.beatCount*n,this.is(2,4))this.beamGroupSizes=[[2],[2]];else if(this.is(3,4))this.beamGroupSizes=[[2],[2],[2]];else if(this.is(4,4))this.beamGroupSizes=[[2,2],[2,2]];else if(this.is(3,8))this.beamGroupSizes=[[3]];else if(this.is(5,8)){if(!y.isUndefined(e)&&e!=="2-3"&&e!=="3-2")throw new N(5,`Invalid beam grouping "${e}" for time signature "${this.toString()}".`);this.beamGroupSizes=e==="3-2"?[[3],[2]]:[[2],[3]],e=void 0}else if(this.is(6,8))this.beamGroupSizes=[[3],[3]];else if(this.is(7,8)){if(!y.isUndefined(e)&&e!=="2-2-3"&&e!=="3-2-2")throw new N(5,`Invalid beam grouping "${e}" for time signature "${this.toString()}".`);this.beamGroupSizes=e==="3-2-2"?[[3],[2],[2]]:[[2],[2],[3]],e=void 0}else this.is(9,8)?this.beamGroupSizes=[[3],[3],[3]]:this.is(12,8)&&(this.beamGroupSizes=[[3],[3],[3],[3]]);if(this.beamGroupSizes.length===0)throw new N(5,`Unimplemented time signature "${this.toString()}".`);if(e!==void 0)throw new N(5,`Invalid beam grouping "${e}" for time signature "${this.toString()}".`)}is(t,e){return this.beatCount===t&&this.beatSize===e}toString(){return this.beatCount+"/"+this.beatSize}},gu;function Xs(){return gu||(gu=new ii(4,4)),gu}var yu;function Qs(){return yu||(yu={beatsPerMinute:120,options:{beatLength:"4n",dotCount:0}}),yu}function Ks(i){return Kt.get(i.options.beatLength,i.options.dotCount).toString()+"="+i.beatsPerMinute}function bu(i,t){return{beatsPerMinute:i.beatsPerMinute*t,options:{beatLength:i.options.beatLength,dotCount:i.options.dotCount}}}Ii();function Js(i){return!isFinite(i)||i<=0?-1/0:20*Math.log10(i)}var mo="15.1.22";var Au=(i,t,e)=>({endTime:t,insertTime:e,type:"exponentialRampToValue",value:i});var Cu=(i,t,e)=>({endTime:t,insertTime:e,type:"linearRampToValue",value:i});var on=(i,t)=>({startTime:t,type:"setValue",value:i});var fo=(i,t,e)=>({duration:e,startTime:t,type:"setValueCurve",values:i});var ta=(i,t,{startTime:e,target:r,timeConstant:n})=>r+(t-r)*Math.exp((e-i)/n);var Vr=i=>i.type==="exponentialRampToValue";var Ri=i=>i.type==="linearRampToValue";var or=i=>Vr(i)||Ri(i);var sn=i=>i.type==="setValue";var Ue=i=>i.type==="setValueCurve";var an=(i,t,e,r)=>{let n=i[t];return n===void 0?r:or(n)||sn(n)?n.value:Ue(n)?n.values[n.values.length-1]:ta(e,an(i,t-1,n.startTime,r),n)};var _u=(i,t,e,r,n)=>e===void 0?[r.insertTime,n]:or(e)?[e.endTime,e.value]:sn(e)?[e.startTime,e.value]:Ue(e)?[e.startTime+e.duration,e.values[e.values.length-1]]:[e.startTime,an(i,t-1,e.startTime,n)];var go=i=>i.type==="cancelAndHold";var yo=i=>i.type==="cancelScheduledValues";var qr=i=>go(i)||yo(i)?i.cancelTime:Vr(i)||Ri(i)?i.endTime:i.startTime;var vu=(i,t,e,{endTime:r,value:n})=>e===n?n:0<e&&0<n||e<0&&n<0?e*$h(n/e,(i-t)/(r-t)):0;var Su=(i,t,e,{endTime:r,value:n})=>e+(i-t)/(r-t)*(n-e);var Ll=(i,t)=>{let e=Math.floor(t),r=Math.ceil(t);return e===r?i[e]:(1-(t-e))*i[e]+(1-(r-t))*i[r]};var jl=(i,{duration:t,startTime:e,values:r})=>{let n=(i-e)/t*(r.length-1);return Ll(r,n)};var bo=i=>i.type==="setTarget";var xo=class{constructor(t){this._automationEvents=[],this._currenTime=0,this._defaultValue=t}[Symbol.iterator](){return this._automationEvents[Symbol.iterator]()}add(t){let e=qr(t);if(go(t)||yo(t)){let r=this._automationEvents.findIndex(o=>yo(t)&&Ue(o)?o.startTime+o.duration>=e:qr(o)>=e),n=this._automationEvents[r];if(r!==-1&&(this._automationEvents=this._automationEvents.slice(0,r)),go(t)){let o=this._automationEvents[this._automationEvents.length-1];if(n!==void 0&&or(n)){if(o!==void 0&&bo(o))throw new Error("The internal list is malformed.");let s=o===void 0?n.insertTime:Ue(o)?o.startTime+o.duration:qr(o),a=o===void 0?this._defaultValue:Ue(o)?o.values[o.values.length-1]:o.value,c=Vr(n)?vu(e,s,a,n):Su(e,s,a,n),u=Vr(n)?Au(c,e,this._currenTime):Cu(c,e,this._currenTime);this._automationEvents.push(u)}if(o!==void 0&&bo(o)&&this._automationEvents.push(on(this.getValue(e),e)),o!==void 0&&Ue(o)&&o.startTime+o.duration>e){let s=e-o.startTime,a=(o.values.length-1)/o.duration,c=Math.max(2,1+Math.ceil(s*a)),u=s/(c-1)*a,h=o.values.slice(0,c);if(u<1)for(let l=1;l<c;l+=1){let p=u*l%1;h[l]=o.values[l-1]*(1-p)+o.values[l]*p}this._automationEvents[this._automationEvents.length-1]=fo(h,o.startTime,s)}}}else{let r=this._automationEvents.findIndex(s=>qr(s)>e),n=r===-1?this._automationEvents[this._automationEvents.length-1]:this._automationEvents[r-1];if(n!==void 0&&Ue(n)&&qr(n)+n.duration>e)return!1;let o=Vr(t)?Au(t.value,t.endTime,this._currenTime):Ri(t)?Cu(t.value,e,this._currenTime):t;if(r===-1)this._automationEvents.push(o);else{if(Ue(t)&&e+t.duration>qr(this._automationEvents[r]))return!1;this._automationEvents.splice(r,0,o)}}return!0}flush(t){let e=this._automationEvents.findIndex(r=>qr(r)>t);if(e>1){let r=this._automationEvents.slice(e-1),n=r[0];bo(n)&&r.unshift(on(an(this._automationEvents,e-2,n.startTime,this._defaultValue),n.startTime)),this._automationEvents=r}}getValue(t){if(this._automationEvents.length===0)return this._defaultValue;let e=this._automationEvents.findIndex(s=>qr(s)>t),r=this._automationEvents[e],n=(e===-1?this._automationEvents.length:e)-1,o=this._automationEvents[n];if(o!==void 0&&bo(o)&&(r===void 0||!or(r)||r.insertTime>t))return ta(t,an(this._automationEvents,n-1,o.startTime,this._defaultValue),o);if(o!==void 0&&sn(o)&&(r===void 0||!or(r)))return o.value;if(o!==void 0&&Ue(o)&&(r===void 0||!or(r)||o.startTime+o.duration>t))return t<o.startTime+o.duration?jl(t,o):o.values[o.values.length-1];if(o!==void 0&&or(o)&&(r===void 0||!or(r)))return o.value;if(r!==void 0&&Vr(r)){let[s,a]=_u(this._automationEvents,n,o,r,this._defaultValue);return vu(t,s,a,r)}if(r!==void 0&&Ri(r)){let[s,a]=_u(this._automationEvents,n,o,r,this._defaultValue);return Su(t,s,a,r)}return this._defaultValue}};var wu=i=>({cancelTime:i,type:"cancelAndHold"});var Iu=i=>({cancelTime:i,type:"cancelScheduledValues"});var Tu=(i,t)=>({endTime:t,type:"exponentialRampToValue",value:i});var Nu=(i,t)=>({endTime:t,type:"linearRampToValue",value:i});var Ou=(i,t,e)=>({startTime:t,target:i,timeConstant:e,type:"setTarget"});var Pl=()=>new DOMException("","AbortError");var Fl=i=>(t,e,[r,n,o],s)=>{i(t[n],[e,r,o],a=>a[0]===e&&a[1]===r,s)};var Bl=i=>(t,e,r)=>{let n=[];for(let o=0;o<r.numberOfInputs;o+=1)n.push(new Set);i.set(t,{activeInputs:n,outputs:new Set,passiveInputs:new WeakMap,renderer:e})};var Gl=i=>(t,e)=>{i.set(t,{activeInputs:new Set,passiveInputs:new WeakMap,renderer:e})};var Sr=new WeakSet,ea=new WeakMap,cn=new WeakMap,ra=new WeakMap,Ao=new WeakMap,un=new WeakMap,ia=new WeakMap,Co=new WeakMap,_o=new WeakMap,vo=new WeakMap;var Vl={construct(){return Vl}},ql=i=>{try{let t=new Proxy(i,Vl);new t}catch(t){return!1}return!0};var Wl=/^import(?:(?:[\s]+[\w]+|(?:[\s]+[\w]+[\s]*,)?[\s]*\{[\s]*[\w]+(?:[\s]+as[\s]+[\w]+)?(?:[\s]*,[\s]*[\w]+(?:[\s]+as[\s]+[\w]+)?)*[\s]*}|(?:[\s]+[\w]+[\s]*,)?[\s]*\*[\s]+as[\s]+[\w]+)[\s]+from)?(?:[\s]*)("([^"\\]|\\.)+"|'([^'\\]|\\.)+')(?:[\s]*);?/,Ru=(i,t)=>{let e=[],r=i.replace(/^[\s]+/,""),n=r.match(Wl);for(;n!==null;){let o=n[1].slice(1,-1),s=n[0].replace(/([\s]+)?;?$/,"").replace(o,new URL(o,t).toString());e.push(s),r=r.slice(n[0].length).replace(/^[\s]+/,""),n=r.match(Wl)}return[e.join(";"),r]};var Ul=i=>{if(i!==void 0&&!Array.isArray(i))throw new TypeError("The parameterDescriptors property of given value for processorCtor is not an array.")},zl=i=>{if(!ql(i))throw new TypeError("The given value for processorCtor should be a constructor.");if(i.prototype===null||typeof i.prototype!="object")throw new TypeError("The given value for processorCtor should have a prototype.")},Yl=(i,t,e,r,n,o,s,a,c,u,h,l,p)=>{let m=0;return(f,g,b={credentials:"omit"})=>{let x=h.get(f);if(x!==void 0&&x.has(g))return Promise.resolve();let C=u.get(f);if(C!==void 0){let w=C.get(g);if(w!==void 0)return w}let S=o(f),T=S.audioWorklet===void 0?n(g).then(([w,v])=>{let[A,_]=Ru(w,v),E=`${A};((a,b)=>{(a[b]=a[b]||[]).push((AudioWorkletProcessor,global,registerProcessor,sampleRate,self,window)=>{${_}
3
83
  })})(window,'_AWGS')`;return e(E)}).then(()=>{let w=p._AWGS.pop();if(w===void 0)throw new SyntaxError;r(S.currentTime,S.sampleRate,()=>w(class{},void 0,(v,A)=>{if(v.trim()==="")throw t();let _=_o.get(S);if(_!==void 0){if(_.has(v))throw t();zl(A),Ul(A.parameterDescriptors),_.set(v,A)}else zl(A),Ul(A.parameterDescriptors),_o.set(S,new Map([[v,A]]))},S.sampleRate,void 0,void 0))}):Promise.all([n(g),Promise.resolve(i(l,l))]).then(([[w,v],A])=>{let _=m+1;m=_;let[E,q]=Ru(w,v),D=`${E};((AudioWorkletProcessor,registerProcessor)=>{${q}
4
- })(${A?"AudioWorkletProcessor":"class extends AudioWorkletProcessor {__b=new WeakSet();constructor(){super();(p=>p.postMessage=(q=>(m,t)=>q.call(p,m,t?t.filter(u=>!this.__b.has(u)):t))(p.postMessage))(this.port)}}"},(n,p)=>registerProcessor(n,class extends p{${A?"":"__c = (a) => a.forEach(e=>this.__b.add(e.buffer));"}process(i,o,p){${A?"":"i.forEach(this.__c);o.forEach(this.__c);this.__c(Object.values(p));"}return super.process(i.map(j=>j.some(k=>k.length===0)?[]:j),o,p)}}));registerProcessor('__sac${_}',class extends AudioWorkletProcessor{process(){return !1}})`,j=new Blob([D],{type:"application/javascript; charset=utf-8"}),F=URL.createObjectURL(j);return S.audioWorklet.addModule(F,b).then(()=>{if(a(S))return S;let W=s(S);return W.audioWorklet.addModule(F,b).then(()=>W)}).then(W=>{if(c===null)throw new SyntaxError;try{new c(W,`__sac${_}`)}catch(K){throw new SyntaxError}}).finally(()=>URL.revokeObjectURL(F))});return C===void 0?u.set(f,new Map([[g,T]])):C.set(g,T),T.then(()=>{let w=h.get(f);w===void 0?h.set(f,new Set([g])):w.add(g)}).finally(()=>{let w=u.get(f);w!==void 0&&w.delete(g)}),T}};var Jt=(i,t)=>{let e=i.get(t);if(e===void 0)throw new Error("A value with the given key could not be found.");return e};var ni=(i,t)=>{let e=Array.from(i).filter(t);if(e.length>1)throw Error("More than one element was found.");if(e.length===0)throw Error("No element was found.");let[r]=e;return i.delete(r),r};var na=(i,t,e,r)=>{let n=Jt(i,t),o=ni(n,s=>s[0]===e&&s[1]===r);return n.size===0&&i.delete(t),o};var wr=i=>Jt(ia,i);var sr=i=>{if(Sr.has(i))throw new Error("The AudioNode is already stored.");Sr.add(i),wr(i).forEach(t=>t(!0))};var oa=i=>"port"in i;var Ir=i=>{if(!Sr.has(i))throw new Error("The AudioNode is not stored.");Sr.delete(i),wr(i).forEach(t=>t(!1))};var So=(i,t)=>{!oa(i)&&t.every(e=>e.size===0)&&Ir(i)};var Hl=(i,t,e,r,n,o,s,a,c,u,h,l,p)=>{let m=new WeakMap;return(f,g,b,x,C)=>{let{activeInputs:S,passiveInputs:T}=o(g),{outputs:w}=o(f),v=a(f),A=_=>{let E=c(g),q=c(f);if(_){let M=na(T,f,b,x);i(S,f,M,!1),!C&&!l(f)&&e(q,E,b,x),p(g)&&sr(g)}else{let M=r(S,f,b,x);t(T,x,M,!1),!C&&!l(f)&&n(q,E,b,x);let R=s(g);if(R===0)h(g)&&So(g,S);else{let B=m.get(g);B!==void 0&&clearTimeout(B),m.set(g,setTimeout(()=>{h(g)&&So(g,S)},R*1e3))}}};return u(w,[g,b,x],_=>_[0]===g&&_[1]===b&&_[2]===x,!0)?(v.add(A),h(f)?i(S,f,[b,x,A],!0):t(T,x,[f,b,A],!0),!0):!1}};var $l=i=>(t,e,[r,n,o],s)=>{let a=t.get(r);a===void 0?t.set(r,new Set([[n,e,o]])):i(a,[n,e,o],c=>c[0]===n&&c[1]===e,s)};var Zl=i=>(t,e)=>{let r=i(t,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});e.connect(r).connect(t.destination);let n=()=>{e.removeEventListener("ended",n),e.disconnect(r),r.disconnect()};e.addEventListener("ended",n)};var Xl=i=>(t,e)=>{i(t).add(e)};var fC={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",fftSize:2048,maxDecibels:-30,minDecibels:-100,smoothingTimeConstant:.8},Ql=(i,t,e,r,n,o)=>class extends i{constructor(a,c){let u=n(a),h=O(O({},fC),c),l=r(u,h),p=o(u)?t():null;super(a,!1,l,p),this._nativeAnalyserNode=l}get fftSize(){return this._nativeAnalyserNode.fftSize}set fftSize(a){this._nativeAnalyserNode.fftSize=a}get frequencyBinCount(){return this._nativeAnalyserNode.frequencyBinCount}get maxDecibels(){return this._nativeAnalyserNode.maxDecibels}set maxDecibels(a){let c=this._nativeAnalyserNode.maxDecibels;if(this._nativeAnalyserNode.maxDecibels=a,!(a>this._nativeAnalyserNode.minDecibels))throw this._nativeAnalyserNode.maxDecibels=c,e()}get minDecibels(){return this._nativeAnalyserNode.minDecibels}set minDecibels(a){let c=this._nativeAnalyserNode.minDecibels;if(this._nativeAnalyserNode.minDecibels=a,!(this._nativeAnalyserNode.maxDecibels>a))throw this._nativeAnalyserNode.minDecibels=c,e()}get smoothingTimeConstant(){return this._nativeAnalyserNode.smoothingTimeConstant}set smoothingTimeConstant(a){this._nativeAnalyserNode.smoothingTimeConstant=a}getByteFrequencyData(a){this._nativeAnalyserNode.getByteFrequencyData(a)}getByteTimeDomainData(a){this._nativeAnalyserNode.getByteTimeDomainData(a)}getFloatFrequencyData(a){this._nativeAnalyserNode.getFloatFrequencyData(a)}getFloatTimeDomainData(a){this._nativeAnalyserNode.getFloatTimeDomainData(a)}};var vt=(i,t)=>i.context===t;var Kl=(i,t,e)=>()=>{let r=new WeakMap,n=(o,s)=>J(null,null,function*(){let a=t(o);if(!vt(a,s)){let u={channelCount:a.channelCount,channelCountMode:a.channelCountMode,channelInterpretation:a.channelInterpretation,fftSize:a.fftSize,maxDecibels:a.maxDecibels,minDecibels:a.minDecibels,smoothingTimeConstant:a.smoothingTimeConstant};a=i(s,u)}return r.set(s,a),yield e(o,s,a),a});return{render(o,s){let a=r.get(s);return a!==void 0?Promise.resolve(a):n(o,s)}}};var hn=i=>{try{i.copyToChannel(new Float32Array(1),0,-1)}catch(t){return!1}return!0};var ze=()=>new DOMException("","IndexSizeError");var ln=i=>{i.getChannelData=(t=>e=>{try{return t.call(i,e)}catch(r){throw r.code===12?ze():r}})(i.getChannelData)};var gC={numberOfChannels:1},Jl=(i,t,e,r,n,o,s,a)=>{let c=null;return class td{constructor(h){if(n===null)throw new Error("Missing the native OfflineAudioContext constructor.");let{length:l,numberOfChannels:p,sampleRate:m}=O(O({},gC),h);c===null&&(c=new n(1,1,44100));let f=r!==null&&t(o,o)?new r({length:l,numberOfChannels:p,sampleRate:m}):c.createBuffer(p,l,m);if(f.numberOfChannels===0)throw e();return typeof f.copyFromChannel!="function"?(s(f),ln(f)):t(hn,()=>hn(f))||a(f),i.add(f),f}static[Symbol.hasInstance](h){return h!==null&&typeof h=="object"&&Object.getPrototypeOf(h)===td.prototype||i.has(h)}}};var $t=-34028234663852886e22,Ut=-$t;var xe=i=>Sr.has(i);var yC={buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1},ed=(i,t,e,r,n,o,s,a)=>class extends i{constructor(u,h){let l=o(u),p=O(O({},yC),h),m=n(l,p),f=s(l),g=f?t():null;super(u,!1,m,g),this._audioBufferSourceNodeRenderer=g,this._isBufferNullified=!1,this._isBufferSet=p.buffer!==null,this._nativeAudioBufferSourceNode=m,this._onended=null,this._playbackRate=e(this,f,m.playbackRate,Ut,$t)}get buffer(){return this._isBufferNullified?null:this._nativeAudioBufferSourceNode.buffer}set buffer(u){if(this._nativeAudioBufferSourceNode.buffer=u,u!==null){if(this._isBufferSet)throw r();this._isBufferSet=!0}}get loop(){return this._nativeAudioBufferSourceNode.loop}set loop(u){this._nativeAudioBufferSourceNode.loop=u}get loopEnd(){return this._nativeAudioBufferSourceNode.loopEnd}set loopEnd(u){this._nativeAudioBufferSourceNode.loopEnd=u}get loopStart(){return this._nativeAudioBufferSourceNode.loopStart}set loopStart(u){this._nativeAudioBufferSourceNode.loopStart=u}get onended(){return this._onended}set onended(u){let h=typeof u=="function"?a(this,u):null;this._nativeAudioBufferSourceNode.onended=h;let l=this._nativeAudioBufferSourceNode.onended;this._onended=l!==null&&l===h?u:l}get playbackRate(){return this._playbackRate}start(u=0,h=0,l){if(this._nativeAudioBufferSourceNode.start(u,h,l),this._audioBufferSourceNodeRenderer!==null&&(this._audioBufferSourceNodeRenderer.start=l===void 0?[u,h]:[u,h,l]),this.context.state!=="closed"){sr(this);let p=()=>{this._nativeAudioBufferSourceNode.removeEventListener("ended",p),xe(this)&&Ir(this)};this._nativeAudioBufferSourceNode.addEventListener("ended",p)}}stop(u=0){this._nativeAudioBufferSourceNode.stop(u),this._audioBufferSourceNodeRenderer!==null&&(this._audioBufferSourceNodeRenderer.stop=u)}};var rd=(i,t,e,r,n)=>()=>{let o=new WeakMap,s=null,a=null,c=(u,h)=>J(null,null,function*(){let l=e(u),p=vt(l,h);if(!p){let m={buffer:l.buffer,channelCount:l.channelCount,channelCountMode:l.channelCountMode,channelInterpretation:l.channelInterpretation,loop:l.loop,loopEnd:l.loopEnd,loopStart:l.loopStart,playbackRate:l.playbackRate.value};l=t(h,m),s!==null&&l.start(...s),a!==null&&l.stop(a)}return o.set(h,l),p?yield i(h,u.playbackRate,l.playbackRate):yield r(h,u.playbackRate,l.playbackRate),yield n(u,h,l),l});return{set start(u){s=u},set stop(u){a=u},render(u,h){let l=o.get(h);return l!==void 0?Promise.resolve(l):c(u,h)}}};var id=i=>"playbackRate"in i;var nd=i=>"frequency"in i&&"gain"in i;var od=i=>"offset"in i;var sd=i=>!("frequency"in i)&&"gain"in i;var ad=i=>"detune"in i&&"frequency"in i&&!("gain"in i);var cd=i=>"pan"in i;var oe=i=>Jt(ea,i);var oi=i=>Jt(ra,i);var sa=(i,t)=>{let{activeInputs:e}=oe(i);e.forEach(n=>n.forEach(([o])=>{t.includes(i)||sa(o,[...t,i])}));let r=id(i)?[i.playbackRate]:oa(i)?Array.from(i.parameters.values()):nd(i)?[i.Q,i.detune,i.frequency,i.gain]:od(i)?[i.offset]:sd(i)?[i.gain]:ad(i)?[i.detune,i.frequency]:cd(i)?[i.pan]:[];for(let n of r){let o=oi(n);o!==void 0&&o.activeInputs.forEach(([s])=>sa(s,t))}xe(i)&&Ir(i)};var si=i=>{sa(i.destination,[])};var aa=i=>i===void 0||typeof i=="number"||typeof i=="string"&&(i==="balanced"||i==="interactive"||i==="playback");var ud=(i,t,e,r,n,o,s,a,c)=>class extends i{constructor(h={}){if(c===null)throw new Error("Missing the native AudioContext constructor.");let l;try{l=new c(h)}catch(f){throw f.code===12&&f.message==="sampleRate is not in range"?e():f}if(l===null)throw r();if(!aa(h.latencyHint))throw new TypeError(`The provided value '${h.latencyHint}' is not a valid enum value of type AudioContextLatencyCategory.`);if(h.sampleRate!==void 0&&l.sampleRate!==h.sampleRate)throw e();super(l,2);let{latencyHint:p}=h,{sampleRate:m}=l;if(this._baseLatency=typeof l.baseLatency=="number"?l.baseLatency:p==="balanced"?512/m:p==="interactive"||p===void 0?256/m:p==="playback"?1024/m:Math.max(2,Math.min(128,Math.round(p*m/128)))*128/m,this._nativeAudioContext=l,c.name==="webkitAudioContext"?(this._nativeGainNode=l.createGain(),this._nativeOscillatorNode=l.createOscillator(),this._nativeGainNode.gain.value=1e-37,this._nativeOscillatorNode.connect(this._nativeGainNode).connect(l.destination),this._nativeOscillatorNode.start()):(this._nativeGainNode=null,this._nativeOscillatorNode=null),this._state=null,l.state==="running"){this._state="suspended";let f=()=>{this._state==="suspended"&&(this._state=null),l.removeEventListener("statechange",f)};l.addEventListener("statechange",f)}}get baseLatency(){return this._baseLatency}get state(){return this._state!==null?this._state:this._nativeAudioContext.state}close(){return this.state==="closed"?this._nativeAudioContext.close().then(()=>{throw t()}):(this._state==="suspended"&&(this._state=null),this._nativeAudioContext.close().then(()=>{this._nativeGainNode!==null&&this._nativeOscillatorNode!==null&&(this._nativeOscillatorNode.stop(),this._nativeGainNode.disconnect(),this._nativeOscillatorNode.disconnect()),si(this)}))}createMediaElementSource(h){return new n(this,{mediaElement:h})}createMediaStreamDestination(){return new o(this)}createMediaStreamSource(h){return new s(this,{mediaStream:h})}createMediaStreamTrackSource(h){return new a(this,{mediaStreamTrack:h})}resume(){return this._state==="suspended"?new Promise((h,l)=>{let p=()=>{this._nativeAudioContext.removeEventListener("statechange",p),this._nativeAudioContext.state==="running"?h():this.resume().then(h,l)};this._nativeAudioContext.addEventListener("statechange",p)}):this._nativeAudioContext.resume().catch(h=>{throw h===void 0||h.code===15?t():h})}suspend(){return this._nativeAudioContext.suspend().catch(h=>{throw h===void 0?t():h})}};var hd=(i,t,e,r,n,o,s,a)=>class extends i{constructor(u,h){let l=o(u),p=s(l),m=n(l,h,p),f=p?t(a):null;super(u,!1,m,f),this._isNodeOfNativeOfflineAudioContext=p,this._nativeAudioDestinationNode=m}get channelCount(){return this._nativeAudioDestinationNode.channelCount}set channelCount(u){if(this._isNodeOfNativeOfflineAudioContext)throw r();if(u>this._nativeAudioDestinationNode.maxChannelCount)throw e();this._nativeAudioDestinationNode.channelCount=u}get channelCountMode(){return this._nativeAudioDestinationNode.channelCountMode}set channelCountMode(u){if(this._isNodeOfNativeOfflineAudioContext)throw r();this._nativeAudioDestinationNode.channelCountMode=u}get maxChannelCount(){return this._nativeAudioDestinationNode.maxChannelCount}};var ld=i=>{let t=new WeakMap,e=(r,n)=>J(null,null,function*(){let o=n.destination;return t.set(n,o),yield i(r,n,o),o});return{render(r,n){let o=t.get(n);return o!==void 0?Promise.resolve(o):e(r,n)}}};var dd=(i,t,e,r,n,o,s,a)=>(c,u)=>{let h=u.listener,l=()=>{let w=new Float32Array(1),v=t(u,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:9}),A=s(u),_=!1,E=[0,0,-1,0,1,0],q=[0,0,0],M=()=>{if(_)return;_=!0;let j=r(u,256,9,0);j.onaudioprocess=({inputBuffer:F})=>{let W=[o(F,w,0),o(F,w,1),o(F,w,2),o(F,w,3),o(F,w,4),o(F,w,5)];W.some((k,nt)=>k!==E[nt])&&(h.setOrientation(...W),E=W);let K=[o(F,w,6),o(F,w,7),o(F,w,8)];K.some((k,nt)=>k!==q[nt])&&(h.setPosition(...K),q=K)},v.connect(j)},R=j=>F=>{F!==E[j]&&(E[j]=F,h.setOrientation(...E))},B=j=>F=>{F!==q[j]&&(q[j]=F,h.setPosition(...q))},D=(j,F,W)=>{let K=e(u,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:F});K.connect(v,0,j),K.start(),Object.defineProperty(K.offset,"defaultValue",{get(){return F}});let k=i({context:c},A,K.offset,Ut,$t);return a(k,"value",nt=>()=>nt.call(k),nt=>mt=>{try{nt.call(k,mt)}catch(Ct){if(Ct.code!==9)throw Ct}M(),A&&W(mt)}),k.cancelAndHoldAtTime=(nt=>A?()=>{throw n()}:(...mt)=>{let Ct=nt.apply(k,mt);return M(),Ct})(k.cancelAndHoldAtTime),k.cancelScheduledValues=(nt=>A?()=>{throw n()}:(...mt)=>{let Ct=nt.apply(k,mt);return M(),Ct})(k.cancelScheduledValues),k.exponentialRampToValueAtTime=(nt=>A?()=>{throw n()}:(...mt)=>{let Ct=nt.apply(k,mt);return M(),Ct})(k.exponentialRampToValueAtTime),k.linearRampToValueAtTime=(nt=>A?()=>{throw n()}:(...mt)=>{let Ct=nt.apply(k,mt);return M(),Ct})(k.linearRampToValueAtTime),k.setTargetAtTime=(nt=>A?()=>{throw n()}:(...mt)=>{let Ct=nt.apply(k,mt);return M(),Ct})(k.setTargetAtTime),k.setValueAtTime=(nt=>A?()=>{throw n()}:(...mt)=>{let Ct=nt.apply(k,mt);return M(),Ct})(k.setValueAtTime),k.setValueCurveAtTime=(nt=>A?()=>{throw n()}:(...mt)=>{let Ct=nt.apply(k,mt);return M(),Ct})(k.setValueCurveAtTime),k};return{forwardX:D(0,0,R(0)),forwardY:D(1,0,R(1)),forwardZ:D(2,-1,R(2)),positionX:D(6,0,B(0)),positionY:D(7,0,B(1)),positionZ:D(8,0,B(2)),upX:D(3,0,R(3)),upY:D(4,1,R(4)),upZ:D(5,0,R(5))}},{forwardX:p,forwardY:m,forwardZ:f,positionX:g,positionY:b,positionZ:x,upX:C,upY:S,upZ:T}=h.forwardX===void 0?l():h;return{get forwardX(){return p},get forwardY(){return m},get forwardZ(){return f},get positionX(){return g},get positionY(){return b},get positionZ(){return x},get upX(){return C},get upY(){return S},get upZ(){return T}}};var Mi=i=>"context"in i;var ai=i=>Mi(i[0]);var ar=(i,t,e,r)=>{for(let n of i)if(e(n)){if(r)return!1;throw Error("The set contains at least one similar element.")}return i.add(t),!0};var Mu=(i,t,[e,r],n)=>{ar(i,[t,e,r],o=>o[0]===t&&o[1]===e,n)};var Eu=(i,[t,e,r],n)=>{let o=i.get(t);o===void 0?i.set(t,new Set([[e,r]])):ar(o,[e,r],s=>s[0]===e,n)};var Ye=i=>"inputs"in i;var dn=(i,t,e,r)=>{if(Ye(t)){let n=t.inputs[r];return i.connect(n,e,0),[n,e,0]}return i.connect(t,e,r),[t,e,r]};var Du=(i,t,e)=>{for(let r of i)if(r[0]===t&&r[1]===e)return i.delete(r),r;return null};var pd=(i,t,e)=>ni(i,r=>r[0]===t&&r[1]===e);var ku=(i,t)=>{if(!wr(i).delete(t))throw new Error("Missing the expected event listener.")};var Lu=(i,t,e)=>{let r=Jt(i,t),n=ni(r,o=>o[0]===e);return r.size===0&&i.delete(t),n};var pn=(i,t,e,r)=>{Ye(t)?i.disconnect(t.inputs[r],e,0):i.disconnect(t,e,r)};var Rt=i=>Jt(cn,i);var Ei=i=>Jt(Ao,i);var Wr=i=>Co.has(i);var mn=i=>!Sr.has(i);var ju=(i,t)=>new Promise(e=>{if(t!==null)e(!0);else{let r=i.createScriptProcessor(256,1,1),n=i.createGain(),o=i.createBuffer(1,2,44100),s=o.getChannelData(0);s[0]=1,s[1]=1;let a=i.createBufferSource();a.buffer=o,a.loop=!0,a.connect(r).connect(i.destination),a.connect(n),a.disconnect(n),r.onaudioprocess=c=>{let u=c.inputBuffer.getChannelData(0);Array.prototype.some.call(u,h=>h===1)?e(!0):e(!1),a.stop(),r.onaudioprocess=null,a.disconnect(r),r.disconnect(i.destination)},a.start()}});var ca=(i,t)=>{let e=new Map;for(let r of i)for(let n of r){let o=e.get(n);e.set(n,o===void 0?1:o+1)}e.forEach((r,n)=>t(n,r))};var Di=i=>"context"in i;var md=i=>{let t=new Map;i.connect=(e=>(r,n=0,o=0)=>{let s=Di(r)?e(r,n,o):e(r,n),a=t.get(r);return a===void 0?t.set(r,[{input:o,output:n}]):a.every(c=>c.input!==o||c.output!==n)&&a.push({input:o,output:n}),s})(i.connect.bind(i)),i.disconnect=(e=>(r,n,o)=>{if(e.apply(i),r===void 0)t.clear();else if(typeof r=="number")for(let[s,a]of t){let c=a.filter(u=>u.output!==r);c.length===0?t.delete(s):t.set(s,c)}else if(t.has(r))if(n===void 0)t.delete(r);else{let s=t.get(r);if(s!==void 0){let a=s.filter(c=>c.output!==n&&(c.input!==o||o===void 0));a.length===0?t.delete(r):t.set(r,a)}}for(let[s,a]of t)a.forEach(c=>{Di(s)?i.connect(s,c.output,c.input):i.connect(s,c.output)})})(i.disconnect)};var bC=(i,t,e,r)=>{let{activeInputs:n,passiveInputs:o}=oi(t),{outputs:s}=oe(i),a=wr(i),c=u=>{let h=Rt(i),l=Ei(t);if(u){let p=Lu(o,i,e);Mu(n,i,p,!1),!r&&!Wr(i)&&h.connect(l,e)}else{let p=pd(n,i,e);Eu(o,p,!1),!r&&!Wr(i)&&h.disconnect(l,e)}};return ar(s,[t,e],u=>u[0]===t&&u[1]===e,!0)?(a.add(c),xe(i)?Mu(n,i,[e,c],!0):Eu(o,[i,e,c],!0),!0):!1},xC=(i,t,e,r)=>{let{activeInputs:n,passiveInputs:o}=oe(t),s=Du(n[r],i,e);return s===null?[na(o,i,e,r)[2],!1]:[s[2],!0]},AC=(i,t,e)=>{let{activeInputs:r,passiveInputs:n}=oi(t),o=Du(r,i,e);return o===null?[Lu(n,i,e)[1],!1]:[o[2],!0]},Pu=(i,t,e,r,n)=>{let[o,s]=xC(i,e,r,n);if(o!==null&&(ku(i,o),s&&!t&&!Wr(i)&&pn(Rt(i),Rt(e),r,n)),xe(e)){let{activeInputs:a}=oe(e);So(e,a)}},Fu=(i,t,e,r)=>{let[n,o]=AC(i,e,r);n!==null&&(ku(i,n),o&&!t&&!Wr(i)&&Rt(i).disconnect(Ei(e),r))},CC=(i,t)=>{let e=oe(i),r=[];for(let n of e.outputs)ai(n)?Pu(i,t,...n):Fu(i,t,...n),r.push(n[0]);return e.outputs.clear(),r},_C=(i,t,e)=>{let r=oe(i),n=[];for(let o of r.outputs)o[1]===e&&(ai(o)?Pu(i,t,...o):Fu(i,t,...o),n.push(o[0]),r.outputs.delete(o));return n},vC=(i,t,e,r,n)=>{let o=oe(i);return Array.from(o.outputs).filter(s=>s[0]===e&&(r===void 0||s[1]===r)&&(n===void 0||s[2]===n)).map(s=>(ai(s)?Pu(i,t,...s):Fu(i,t,...s),o.outputs.delete(s),s[0]))},fd=(i,t,e,r,n,o,s,a,c,u,h,l,p,m,f,g)=>class extends u{constructor(x,C,S,T){super(S),this._context=x,this._nativeAudioNode=S;let w=h(x);l(w)&&e(ju,()=>ju(w,g))!==!0&&md(S),cn.set(this,S),ia.set(this,new Set),x.state!=="closed"&&C&&sr(this),i(this,T,S)}get channelCount(){return this._nativeAudioNode.channelCount}set channelCount(x){this._nativeAudioNode.channelCount=x}get channelCountMode(){return this._nativeAudioNode.channelCountMode}set channelCountMode(x){this._nativeAudioNode.channelCountMode=x}get channelInterpretation(){return this._nativeAudioNode.channelInterpretation}set channelInterpretation(x){this._nativeAudioNode.channelInterpretation=x}get context(){return this._context}get numberOfInputs(){return this._nativeAudioNode.numberOfInputs}get numberOfOutputs(){return this._nativeAudioNode.numberOfOutputs}connect(x,C=0,S=0){if(C<0||C>=this._nativeAudioNode.numberOfOutputs)throw n();let T=h(this._context),w=f(T);if(p(x)||m(x))throw o();if(Mi(x)){let _=Rt(x);try{let q=dn(this._nativeAudioNode,_,C,S),M=mn(this);(w||M)&&this._nativeAudioNode.disconnect(...q),this.context.state!=="closed"&&!M&&mn(x)&&sr(x)}catch(q){throw q.code===12?o():q}if(t(this,x,C,S,w)){let q=c([this],x);ca(q,r(w))}return x}let v=Ei(x);if(v.name==="playbackRate"&&v.maxValue===1024)throw s();try{this._nativeAudioNode.connect(v,C),(w||mn(this))&&this._nativeAudioNode.disconnect(v,C)}catch(_){throw _.code===12?o():_}if(bC(this,x,C,w)){let _=c([this],x);ca(_,r(w))}}disconnect(x,C,S){let T,w=h(this._context),v=f(w);if(x===void 0)T=CC(this,v);else if(typeof x=="number"){if(x<0||x>=this.numberOfOutputs)throw n();T=_C(this,v,x)}else{if(C!==void 0&&(C<0||C>=this.numberOfOutputs)||Mi(x)&&S!==void 0&&(S<0||S>=x.numberOfInputs))throw n();if(T=vC(this,v,x,C,S),T.length===0)throw o()}for(let A of T){let _=c([this],A);ca(_,a)}}};var gd=(i,t,e,r,n,o,s,a,c,u,h,l,p)=>(m,f,g,b=null,x=null)=>{let C=g.value,S=new xo(C),T=f?r(S):null,w={get defaultValue(){return C},get maxValue(){return b===null?g.maxValue:b},get minValue(){return x===null?g.minValue:x},get value(){return g.value},set value(v){g.value=v,w.setValueAtTime(v,m.context.currentTime)},cancelAndHoldAtTime(v){if(typeof g.cancelAndHoldAtTime=="function")T===null&&S.flush(m.context.currentTime),S.add(n(v)),g.cancelAndHoldAtTime(v);else{let A=Array.from(S).pop();T===null&&S.flush(m.context.currentTime),S.add(n(v));let _=Array.from(S).pop();g.cancelScheduledValues(v),A!==_&&_!==void 0&&(_.type==="exponentialRampToValue"?g.exponentialRampToValueAtTime(_.value,_.endTime):_.type==="linearRampToValue"?g.linearRampToValueAtTime(_.value,_.endTime):_.type==="setValue"?g.setValueAtTime(_.value,_.startTime):_.type==="setValueCurve"&&g.setValueCurveAtTime(_.values,_.startTime,_.duration))}return w},cancelScheduledValues(v){return T===null&&S.flush(m.context.currentTime),S.add(o(v)),g.cancelScheduledValues(v),w},exponentialRampToValueAtTime(v,A){if(v===0)throw new RangeError;if(!Number.isFinite(A)||A<0)throw new RangeError;let _=m.context.currentTime;return T===null&&S.flush(_),Array.from(S).length===0&&(S.add(u(C,_)),g.setValueAtTime(C,_)),S.add(s(v,A)),g.exponentialRampToValueAtTime(v,A),w},linearRampToValueAtTime(v,A){let _=m.context.currentTime;return T===null&&S.flush(_),Array.from(S).length===0&&(S.add(u(C,_)),g.setValueAtTime(C,_)),S.add(a(v,A)),g.linearRampToValueAtTime(v,A),w},setTargetAtTime(v,A,_){return T===null&&S.flush(m.context.currentTime),S.add(c(v,A,_)),g.setTargetAtTime(v,A,_),w},setValueAtTime(v,A){return T===null&&S.flush(m.context.currentTime),S.add(u(v,A)),g.setValueAtTime(v,A),w},setValueCurveAtTime(v,A,_){let E=v instanceof Float32Array?v:new Float32Array(v);if(l!==null&&l.name==="webkitAudioContext"){let q=A+_,M=m.context.sampleRate,R=Math.ceil(A*M),B=Math.floor(q*M),D=B-R,j=new Float32Array(D);for(let W=0;W<D;W+=1){let K=(E.length-1)/_*((R+W)/M-A),k=Math.floor(K),nt=Math.ceil(K);j[W]=k===nt?E[k]:(1-(K-k))*E[k]+(1-(nt-K))*E[nt]}T===null&&S.flush(m.context.currentTime),S.add(h(j,A,_)),g.setValueCurveAtTime(j,A,_);let F=B/M;F<q&&p(w,j[j.length-1],F),p(w,E[E.length-1],q)}else T===null&&S.flush(m.context.currentTime),S.add(h(E,A,_)),g.setValueCurveAtTime(E,A,_);return w}};return e.set(w,g),t.set(w,m),i(w,T),w};var yd=i=>({replay(t){for(let e of i)if(e.type==="exponentialRampToValue"){let{endTime:r,value:n}=e;t.exponentialRampToValueAtTime(n,r)}else if(e.type==="linearRampToValue"){let{endTime:r,value:n}=e;t.linearRampToValueAtTime(n,r)}else if(e.type==="setTarget"){let{startTime:r,target:n,timeConstant:o}=e;t.setTargetAtTime(n,r,o)}else if(e.type==="setValue"){let{startTime:r,value:n}=e;t.setValueAtTime(n,r)}else if(e.type==="setValueCurve"){let{duration:r,startTime:n,values:o}=e;t.setValueCurveAtTime(o,n,r)}else throw new Error("Can't apply an unknown automation.")}});var fn=class{constructor(t){this._map=new Map(t)}get size(){return this._map.size}entries(){return this._map.entries()}forEach(t,e=null){return this._map.forEach((r,n)=>t.call(e,r,n,this))}get(t){return this._map.get(t)}has(t){return this._map.has(t)}keys(){return this._map.keys()}values(){return this._map.values()}};var SC={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:1,numberOfOutputs:1,parameterData:{},processorOptions:{}},bd=(i,t,e,r,n,o,s,a,c,u,h,l,p,m)=>class extends t{constructor(g,b,x){var C;let S=a(g),T=c(S),w=h(O(O({},SC),x));p(w);let v=_o.get(S),A=v==null?void 0:v.get(b),_=T||S.state!=="closed"?S:(C=s(S))!==null&&C!==void 0?C:S,E=n(_,T?null:g.baseLatency,u,b,A,w),q=T?r(b,w,A):null;super(g,!0,E,q);let M=[];E.parameters.forEach((B,D)=>{let j=e(this,T,B);M.push([D,j])}),this._nativeAudioWorkletNode=E,this._onprocessorerror=null,this._parameters=new fn(M),T&&i(S,this);let{activeInputs:R}=o(this);l(E,R)}get onprocessorerror(){return this._onprocessorerror}set onprocessorerror(g){let b=typeof g=="function"?m(this,g):null;this._nativeAudioWorkletNode.onprocessorerror=b;let x=this._nativeAudioWorkletNode.onprocessorerror;this._onprocessorerror=x!==null&&x===b?g:x}get parameters(){return this._parameters===null?this._nativeAudioWorkletNode.parameters:this._parameters}get port(){return this._nativeAudioWorkletNode.port}};function gn(i,t,e,r,n){if(typeof i.copyFromChannel=="function")t[e].byteLength===0&&(t[e]=new Float32Array(128)),i.copyFromChannel(t[e],r,n);else{let o=i.getChannelData(r);if(t[e].byteLength===0)t[e]=o.slice(n,n+128);else{let s=new Float32Array(o.buffer,n*Float32Array.BYTES_PER_ELEMENT,128);t[e].set(s)}}}var ua=(i,t,e,r,n)=>{typeof i.copyToChannel=="function"?t[e].byteLength!==0&&i.copyToChannel(t[e],r,n):t[e].byteLength!==0&&i.getChannelData(r).set(t[e],n)};var yn=(i,t)=>{let e=[];for(let r=0;r<i;r+=1){let n=[],o=typeof t=="number"?t:t[r];for(let s=0;s<o;s+=1)n.push(new Float32Array(128));e.push(n)}return e};var xd=(i,t)=>{let e=Jt(vo,i),r=Rt(t);return Jt(e,r)};var wC=(i,t,e,r,n,o,s)=>J(null,null,function*(){let a=t===null?Math.ceil(i.context.length/128)*128:t.length,c=r.channelCount*r.numberOfInputs,u=n.reduce((b,x)=>b+x,0),h=u===0?null:e.createBuffer(u,a,e.sampleRate);if(o===void 0)throw new Error("Missing the processor constructor.");let l=oe(i),p=yield xd(e,i),m=yn(r.numberOfInputs,r.channelCount),f=yn(r.numberOfOutputs,n),g=Array.from(i.parameters.keys()).reduce((b,x)=>Q(O({},b),{[x]:new Float32Array(128)}),{});for(let b=0;b<a;b+=128){if(r.numberOfInputs>0&&t!==null)for(let x=0;x<r.numberOfInputs;x+=1)for(let C=0;C<r.channelCount;C+=1)gn(t,m[x],C,C,b);o.parameterDescriptors!==void 0&&t!==null&&o.parameterDescriptors.forEach(({name:x},C)=>{gn(t,g,x,c+C,b)});for(let x=0;x<r.numberOfInputs;x+=1)for(let C=0;C<n[x];C+=1)f[x][C].byteLength===0&&(f[x][C]=new Float32Array(128));try{let x=m.map((S,T)=>l.activeInputs[T].size===0?[]:S),C=s(b/e.sampleRate,e.sampleRate,()=>p.process(x,f,g));if(h!==null)for(let S=0,T=0;S<r.numberOfOutputs;S+=1){for(let w=0;w<n[S];w+=1)ua(h,f[S],w,T+w,b);T+=n[S]}if(!C)break}catch(x){i.dispatchEvent(new ErrorEvent("processorerror",{colno:x.colno,filename:x.filename,lineno:x.lineno,message:x.message}));break}}return h}),Ad=(i,t,e,r,n,o,s,a,c,u,h,l,p,m,f,g)=>(b,x,C)=>{let S=new WeakMap,T=null,w=(v,A)=>J(null,null,function*(){let _=h(v),E=null,q=vt(_,A),M=Array.isArray(x.outputChannelCount)?x.outputChannelCount:Array.from(x.outputChannelCount);if(l===null){let R=M.reduce((F,W)=>F+W,0),B=n(A,{channelCount:Math.max(1,R),channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:Math.max(1,R)}),D=[];for(let F=0;F<v.numberOfOutputs;F+=1)D.push(r(A,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:M[F]}));let j=s(A,{channelCount:x.channelCount,channelCountMode:x.channelCountMode,channelInterpretation:x.channelInterpretation,gain:1});j.connect=t.bind(null,D),j.disconnect=c.bind(null,D),E=[B,D,j]}else q||(_=new l(A,b));if(S.set(A,E===null?_:E[2]),E!==null){if(T===null){if(C===void 0)throw new Error("Missing the processor constructor.");if(p===null)throw new Error("Missing the native OfflineAudioContext constructor.");let W=v.channelCount*v.numberOfInputs,K=C.parameterDescriptors===void 0?0:C.parameterDescriptors.length,k=W+K;T=wC(v,k===0?null:yield J(null,null,function*(){let mt=new p(k,Math.ceil(v.context.length/128)*128,A.sampleRate),Ct=[],Ht=[];for(let Ot=0;Ot<x.numberOfInputs;Ot+=1)Ct.push(s(mt,{channelCount:x.channelCount,channelCountMode:x.channelCountMode,channelInterpretation:x.channelInterpretation,gain:1})),Ht.push(n(mt,{channelCount:x.channelCount,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:x.channelCount}));let De=yield Promise.all(Array.from(v.parameters.values()).map(Ot=>J(null,null,function*(){let ut=o(mt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:Ot.value});return yield m(mt,Ot,ut.offset),ut}))),ke=r(mt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:Math.max(1,W+K)});for(let Ot=0;Ot<x.numberOfInputs;Ot+=1){Ct[Ot].connect(Ht[Ot]);for(let ut=0;ut<x.channelCount;ut+=1)Ht[Ot].connect(ke,ut,Ot*x.channelCount+ut)}for(let[Ot,ut]of De.entries())ut.connect(ke,0,W+Ot),ut.start(0);return ke.connect(mt.destination),yield Promise.all(Ct.map(Ot=>f(v,mt,Ot))),g(mt)}),A,x,M,C,u)}let R=yield T,B=e(A,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),[D,j,F]=E;R!==null&&(B.buffer=R,B.start(0)),B.connect(D);for(let W=0,K=0;W<v.numberOfOutputs;W+=1){let k=j[W];for(let nt=0;nt<M[W];nt+=1)D.connect(k,K+nt,nt);K+=M[W]}return F}if(q)for(let[R,B]of v.parameters.entries())yield i(A,B,_.parameters.get(R));else for(let[R,B]of v.parameters.entries())yield m(A,B,_.parameters.get(R));return yield f(v,A,_),_});return{render(v,A){a(A,v);let _=S.get(A);return _!==void 0?Promise.resolve(_):w(v,A)}}};var Cd=(i,t,e,r,n,o,s,a,c,u,h,l,p,m,f,g,b,x,C,S)=>class extends f{constructor(w,v){super(w,v),this._nativeContext=w,this._audioWorklet=i===void 0?void 0:{addModule:(A,_)=>i(this,A,_)}}get audioWorklet(){return this._audioWorklet}createAnalyser(){return new t(this)}createBiquadFilter(){return new n(this)}createBuffer(w,v,A){return new e({length:v,numberOfChannels:w,sampleRate:A})}createBufferSource(){return new r(this)}createChannelMerger(w=6){return new o(this,{numberOfInputs:w})}createChannelSplitter(w=6){return new s(this,{numberOfOutputs:w})}createConstantSource(){return new a(this)}createConvolver(){return new c(this)}createDelay(w=1){return new h(this,{maxDelayTime:w})}createDynamicsCompressor(){return new l(this)}createGain(){return new p(this)}createIIRFilter(w,v){return new m(this,{feedback:v,feedforward:w})}createOscillator(){return new g(this)}createPanner(){return new b(this)}createPeriodicWave(w,v,A={disableNormalization:!1}){return new x(this,Q(O({},A),{imag:v,real:w}))}createStereoPanner(){return new C(this)}createWaveShaper(){return new S(this)}decodeAudioData(w,v,A){return u(this._nativeContext,w).then(_=>(typeof v=="function"&&v(_),_),_=>{throw typeof A=="function"&&A(_),_})}};var IC={Q:1,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",detune:0,frequency:350,gain:0,type:"lowpass"},_d=(i,t,e,r,n,o,s,a)=>class extends i{constructor(u,h){let l=o(u),p=O(O({},IC),h),m=n(l,p),f=s(l),g=f?e():null;super(u,!1,m,g),this._Q=t(this,f,m.Q,Ut,$t),this._detune=t(this,f,m.detune,1200*Math.log2(Ut),-1200*Math.log2(Ut)),this._frequency=t(this,f,m.frequency,u.sampleRate/2,0),this._gain=t(this,f,m.gain,40*Math.log10(Ut),$t),this._nativeBiquadFilterNode=m,a(this,1)}get detune(){return this._detune}get frequency(){return this._frequency}get gain(){return this._gain}get Q(){return this._Q}get type(){return this._nativeBiquadFilterNode.type}set type(u){this._nativeBiquadFilterNode.type=u}getFrequencyResponse(u,h,l){try{this._nativeBiquadFilterNode.getFrequencyResponse(u,h,l)}catch(p){throw p.code===11?r():p}if(u.length!==h.length||h.length!==l.length)throw r()}};var vd=(i,t,e,r,n)=>()=>{let o=new WeakMap,s=(a,c)=>J(null,null,function*(){let u=e(a),h=vt(u,c);if(!h){let l={Q:u.Q.value,channelCount:u.channelCount,channelCountMode:u.channelCountMode,channelInterpretation:u.channelInterpretation,detune:u.detune.value,frequency:u.frequency.value,gain:u.gain.value,type:u.type};u=t(c,l)}return o.set(c,u),h?(yield i(c,a.Q,u.Q),yield i(c,a.detune,u.detune),yield i(c,a.frequency,u.frequency),yield i(c,a.gain,u.gain)):(yield r(c,a.Q,u.Q),yield r(c,a.detune,u.detune),yield r(c,a.frequency,u.frequency),yield r(c,a.gain,u.gain)),yield n(a,c,u),u});return{render(a,c){let u=o.get(c);return u!==void 0?Promise.resolve(u):s(a,c)}}};var Sd=(i,t)=>(e,r)=>{let n=t.get(e);if(n!==void 0)return n;let o=i.get(e);if(o!==void 0)return o;try{let s=r();return s instanceof Promise?(i.set(e,s),s.catch(()=>!1).then(a=>(i.delete(e),t.set(e,a),a))):(t.set(e,s),s)}catch(s){return t.set(e,!1),!1}};var TC={channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:6},wd=(i,t,e,r,n)=>class extends i{constructor(s,a){let c=r(s),u=O(O({},TC),a),h=e(c,u),l=n(c)?t():null;super(s,!1,h,l)}};var Id=(i,t,e)=>()=>{let r=new WeakMap,n=(o,s)=>J(null,null,function*(){let a=t(o);if(!vt(a,s)){let u={channelCount:a.channelCount,channelCountMode:a.channelCountMode,channelInterpretation:a.channelInterpretation,numberOfInputs:a.numberOfInputs};a=i(s,u)}return r.set(s,a),yield e(o,s,a),a});return{render(o,s){let a=r.get(s);return a!==void 0?Promise.resolve(a):n(o,s)}}};var NC={channelCount:6,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:6},Td=(i,t,e,r,n,o)=>class extends i{constructor(a,c){let u=r(a),h=o(O(O({},NC),c)),l=e(u,h),p=n(u)?t():null;super(a,!1,l,p)}};var Nd=(i,t,e)=>()=>{let r=new WeakMap,n=(o,s)=>J(null,null,function*(){let a=t(o);if(!vt(a,s)){let u={channelCount:a.channelCount,channelCountMode:a.channelCountMode,channelInterpretation:a.channelInterpretation,numberOfOutputs:a.numberOfOutputs};a=i(s,u)}return r.set(s,a),yield e(o,s,a),a});return{render(o,s){let a=r.get(s);return a!==void 0?Promise.resolve(a):n(o,s)}}};var Od=i=>(t,e,r)=>i(e,t,r);var Rd=i=>(t,e,r=0,n=0)=>{let o=t[r];if(o===void 0)throw i();return Di(e)?o.connect(e,0,n):o.connect(e,0)};var Md=i=>(t,e)=>{let r=i(t,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),n=t.createBuffer(1,2,44100);return r.buffer=n,r.loop=!0,r.connect(e),r.start(),()=>{r.stop(),r.disconnect(e)}};var OC={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",offset:1},Ed=(i,t,e,r,n,o,s)=>class extends i{constructor(c,u){let h=n(c),l=O(O({},OC),u),p=r(h,l),m=o(h),f=m?e():null;super(c,!1,p,f),this._constantSourceNodeRenderer=f,this._nativeConstantSourceNode=p,this._offset=t(this,m,p.offset,Ut,$t),this._onended=null}get offset(){return this._offset}get onended(){return this._onended}set onended(c){let u=typeof c=="function"?s(this,c):null;this._nativeConstantSourceNode.onended=u;let h=this._nativeConstantSourceNode.onended;this._onended=h!==null&&h===u?c:h}start(c=0){if(this._nativeConstantSourceNode.start(c),this._constantSourceNodeRenderer!==null&&(this._constantSourceNodeRenderer.start=c),this.context.state!=="closed"){sr(this);let u=()=>{this._nativeConstantSourceNode.removeEventListener("ended",u),xe(this)&&Ir(this)};this._nativeConstantSourceNode.addEventListener("ended",u)}}stop(c=0){this._nativeConstantSourceNode.stop(c),this._constantSourceNodeRenderer!==null&&(this._constantSourceNodeRenderer.stop=c)}};var Dd=(i,t,e,r,n)=>()=>{let o=new WeakMap,s=null,a=null,c=(u,h)=>J(null,null,function*(){let l=e(u),p=vt(l,h);if(!p){let m={channelCount:l.channelCount,channelCountMode:l.channelCountMode,channelInterpretation:l.channelInterpretation,offset:l.offset.value};l=t(h,m),s!==null&&l.start(s),a!==null&&l.stop(a)}return o.set(h,l),p?yield i(h,u.offset,l.offset):yield r(h,u.offset,l.offset),yield n(u,h,l),l});return{set start(u){s=u},set stop(u){a=u},render(u,h){let l=o.get(h);return l!==void 0?Promise.resolve(l):c(u,h)}}};var kd=i=>t=>(i[0]=t,i[0]);var RC={buffer:null,channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",disableNormalization:!1},Ld=(i,t,e,r,n,o)=>class extends i{constructor(a,c){let u=r(a),h=O(O({},RC),c),l=e(u,h),m=n(u)?t():null;super(a,!1,l,m),this._isBufferNullified=!1,this._nativeConvolverNode=l,h.buffer!==null&&o(this,h.buffer.duration)}get buffer(){return this._isBufferNullified?null:this._nativeConvolverNode.buffer}set buffer(a){if(this._nativeConvolverNode.buffer=a,a===null&&this._nativeConvolverNode.buffer!==null){let c=this._nativeConvolverNode.context;this._nativeConvolverNode.buffer=c.createBuffer(1,1,c.sampleRate),this._isBufferNullified=!0,o(this,0)}else this._isBufferNullified=!1,o(this,this._nativeConvolverNode.buffer===null?0:this._nativeConvolverNode.buffer.duration)}get normalize(){return this._nativeConvolverNode.normalize}set normalize(a){this._nativeConvolverNode.normalize=a}};var jd=(i,t,e)=>()=>{let r=new WeakMap,n=(o,s)=>J(null,null,function*(){let a=t(o);if(!vt(a,s)){let u={buffer:a.buffer,channelCount:a.channelCount,channelCountMode:a.channelCountMode,channelInterpretation:a.channelInterpretation,disableNormalization:!a.normalize};a=i(s,u)}return r.set(s,a),Ye(a)?yield e(o,s,a.inputs[0]):yield e(o,s,a),a});return{render(o,s){let a=r.get(s);return a!==void 0?Promise.resolve(a):n(o,s)}}};var Pd=(i,t)=>(e,r,n)=>{if(t===null)throw new Error("Missing the native OfflineAudioContext constructor.");try{return new t(e,r,n)}catch(o){throw o.name==="SyntaxError"?i():o}};var Fd=()=>new DOMException("","DataCloneError");var Bu=i=>{let{port1:t,port2:e}=new MessageChannel;return new Promise(r=>{let n=()=>{e.onmessage=null,t.close(),e.close(),r()};e.onmessage=()=>n();try{t.postMessage(i,[i])}catch(o){}finally{n()}})};var Bd=(i,t,e,r,n,o,s,a,c,u,h)=>(l,p)=>{let m=s(l)?l:o(l);if(n.has(p)){let f=e();return Promise.reject(f)}try{n.add(p)}catch(f){}return t(c,()=>c(m))?m.decodeAudioData(p).then(f=>(Bu(p).catch(()=>{}),t(a,()=>a(f))||h(f),i.add(f),f)):new Promise((f,g)=>{let b=()=>J(null,null,function*(){try{yield Bu(p)}catch(C){}}),x=C=>{g(C),b()};try{m.decodeAudioData(p,C=>{typeof C.copyFromChannel!="function"&&(u(C),ln(C)),i.add(C),b().then(()=>f(C))},C=>{x(C===null?r():C)})}catch(C){x(C)}})};var Gd=(i,t,e,r,n,o,s,a)=>(c,u)=>{let h=t.get(c);if(h===void 0)throw new Error("Missing the expected cycle count.");let l=o(c.context),p=a(l);if(h===u){if(t.delete(c),!p&&s(c)){let m=r(c),{outputs:f}=e(c);for(let g of f)if(ai(g)){let b=r(g[0]);i(m,b,g[1],g[2])}else{let b=n(g[0]);m.connect(b,g[1])}}}else t.set(c,h-u)};var MC={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",delayTime:0,maxDelayTime:1},Vd=(i,t,e,r,n,o,s)=>class extends i{constructor(c,u){let h=n(c),l=O(O({},MC),u),p=r(h,l),m=o(h),f=m?e(l.maxDelayTime):null;super(c,!1,p,f),this._delayTime=t(this,m,p.delayTime),s(this,l.maxDelayTime)}get delayTime(){return this._delayTime}};var qd=(i,t,e,r,n)=>o=>{let s=new WeakMap,a=(c,u)=>J(null,null,function*(){let h=e(c),l=vt(h,u);if(!l){let p={channelCount:h.channelCount,channelCountMode:h.channelCountMode,channelInterpretation:h.channelInterpretation,delayTime:h.delayTime.value,maxDelayTime:o};h=t(u,p)}return s.set(u,h),l?yield i(u,c.delayTime,h.delayTime):yield r(u,c.delayTime,h.delayTime),yield n(c,u,h),h});return{render(c,u){let h=s.get(u);return h!==void 0?Promise.resolve(h):a(c,u)}}};var Wd=i=>(t,e,r,n)=>i(t[n],o=>o[0]===e&&o[1]===r);var Ud=i=>(t,e)=>{i(t).delete(e)};var zd=i=>"delayTime"in i;var Yd=(i,t,e)=>function r(n,o){let s=Mi(o)?o:e(i,o);if(zd(s))return[];if(n[0]===s)return[n];if(n.includes(s))return[];let{outputs:a}=t(s);return Array.from(a).map(c=>r([...n,s],c[0])).reduce((c,u)=>c.concat(u),[])};var ha=(i,t,e)=>{let r=t[e];if(r===void 0)throw i();return r},Hd=i=>(t,e=void 0,r=void 0,n=0)=>e===void 0?t.forEach(o=>o.disconnect()):typeof e=="number"?ha(i,t,e).disconnect():Di(e)?r===void 0?t.forEach(o=>o.disconnect(e)):n===void 0?ha(i,t,r).disconnect(e,0):ha(i,t,r).disconnect(e,0,n):r===void 0?t.forEach(o=>o.disconnect(e)):ha(i,t,r).disconnect(e,0);var EC={attack:.003,channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",knee:30,ratio:12,release:.25,threshold:-24},$d=(i,t,e,r,n,o,s,a)=>class extends i{constructor(u,h){let l=o(u),p=O(O({},EC),h),m=r(l,p),f=s(l),g=f?e():null;super(u,!1,m,g),this._attack=t(this,f,m.attack),this._knee=t(this,f,m.knee),this._nativeDynamicsCompressorNode=m,this._ratio=t(this,f,m.ratio),this._release=t(this,f,m.release),this._threshold=t(this,f,m.threshold),a(this,.006)}get attack(){return this._attack}get channelCount(){return this._nativeDynamicsCompressorNode.channelCount}set channelCount(u){let h=this._nativeDynamicsCompressorNode.channelCount;if(this._nativeDynamicsCompressorNode.channelCount=u,u>2)throw this._nativeDynamicsCompressorNode.channelCount=h,n()}get channelCountMode(){return this._nativeDynamicsCompressorNode.channelCountMode}set channelCountMode(u){let h=this._nativeDynamicsCompressorNode.channelCountMode;if(this._nativeDynamicsCompressorNode.channelCountMode=u,u==="max")throw this._nativeDynamicsCompressorNode.channelCountMode=h,n()}get knee(){return this._knee}get ratio(){return this._ratio}get reduction(){return typeof this._nativeDynamicsCompressorNode.reduction.value=="number"?this._nativeDynamicsCompressorNode.reduction.value:this._nativeDynamicsCompressorNode.reduction}get release(){return this._release}get threshold(){return this._threshold}};var Zd=(i,t,e,r,n)=>()=>{let o=new WeakMap,s=(a,c)=>J(null,null,function*(){let u=e(a),h=vt(u,c);if(!h){let l={attack:u.attack.value,channelCount:u.channelCount,channelCountMode:u.channelCountMode,channelInterpretation:u.channelInterpretation,knee:u.knee.value,ratio:u.ratio.value,release:u.release.value,threshold:u.threshold.value};u=t(c,l)}return o.set(c,u),h?(yield i(c,a.attack,u.attack),yield i(c,a.knee,u.knee),yield i(c,a.ratio,u.ratio),yield i(c,a.release,u.release),yield i(c,a.threshold,u.threshold)):(yield r(c,a.attack,u.attack),yield r(c,a.knee,u.knee),yield r(c,a.ratio,u.ratio),yield r(c,a.release,u.release),yield r(c,a.threshold,u.threshold)),yield n(a,c,u),u});return{render(a,c){let u=o.get(c);return u!==void 0?Promise.resolve(u):s(a,c)}}};var Xd=()=>new DOMException("","EncodingError");var Qd=i=>t=>new Promise((e,r)=>{if(i===null){r(new SyntaxError);return}let n=i.document.head;if(n===null)r(new SyntaxError);else{let o=i.document.createElement("script"),s=new Blob([t],{type:"application/javascript"}),a=URL.createObjectURL(s),c=i.onerror,u=()=>{i.onerror=c,URL.revokeObjectURL(a)};i.onerror=(h,l,p,m,f)=>{if(l===a||l===i.location.href&&p===1&&m===1)return u(),r(f),!1;if(c!==null)return c(h,l,p,m,f)},o.onerror=()=>{u(),r(new SyntaxError)},o.onload=()=>{u(),e()},o.src=a,o.type="module",n.appendChild(o)}});var Kd=i=>class{constructor(e){this._nativeEventTarget=e,this._listeners=new WeakMap}addEventListener(e,r,n){if(r!==null){let o=this._listeners.get(r);o===void 0&&(o=i(this,r),typeof r=="function"&&this._listeners.set(r,o)),this._nativeEventTarget.addEventListener(e,o,n)}}dispatchEvent(e){return this._nativeEventTarget.dispatchEvent(e)}removeEventListener(e,r,n){let o=r===null?void 0:this._listeners.get(r);this._nativeEventTarget.removeEventListener(e,o===void 0?null:o,n)}};var Jd=i=>(t,e,r)=>{Object.defineProperties(i,{currentFrame:{configurable:!0,get(){return Math.round(t*e)}},currentTime:{configurable:!0,get(){return t}}});try{return r()}finally{i!==null&&(delete i.currentFrame,delete i.currentTime)}};var tp=i=>t=>J(null,null,function*(){try{let e=yield fetch(t);if(e.ok)return[yield e.text(),e.url]}catch(e){}throw i()});var DC={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",gain:1},ep=(i,t,e,r,n,o)=>class extends i{constructor(a,c){let u=n(a),h=O(O({},DC),c),l=r(u,h),p=o(u),m=p?e():null;super(a,!1,l,m),this._gain=t(this,p,l.gain,Ut,$t)}get gain(){return this._gain}};var rp=(i,t,e,r,n)=>()=>{let o=new WeakMap,s=(a,c)=>J(null,null,function*(){let u=e(a),h=vt(u,c);if(!h){let l={channelCount:u.channelCount,channelCountMode:u.channelCountMode,channelInterpretation:u.channelInterpretation,gain:u.gain.value};u=t(c,l)}return o.set(c,u),h?yield i(c,a.gain,u.gain):yield r(c,a.gain,u.gain),yield n(a,c,u),u});return{render(a,c){let u=o.get(c);return u!==void 0?Promise.resolve(u):s(a,c)}}};var ip=(i,t)=>e=>t(i,e);var np=i=>t=>{let e=i(t);if(e.renderer===null)throw new Error("Missing the renderer of the given AudioNode in the audio graph.");return e.renderer};var op=i=>t=>{var e;return(e=i.get(t))!==null&&e!==void 0?e:0};var sp=i=>t=>{let e=i(t);if(e.renderer===null)throw new Error("Missing the renderer of the given AudioParam in the audio graph.");return e.renderer};var ap=i=>t=>i.get(t);var Ft=()=>new DOMException("","InvalidStateError");var cp=i=>t=>{let e=i.get(t);if(e===void 0)throw Ft();return e};var up=(i,t)=>e=>{let r=i.get(e);if(r!==void 0)return r;if(t===null)throw new Error("Missing the native OfflineAudioContext constructor.");return r=new t(1,1,44100),i.set(e,r),r};var hp=i=>t=>{let e=i.get(t);if(e===void 0)throw new Error("The context has no set of AudioWorkletNodes.");return e};var bn=()=>new DOMException("","InvalidAccessError");var lp=i=>{i.getFrequencyResponse=(t=>(e,r,n)=>{if(e.length!==r.length||r.length!==n.length)throw bn();return t.call(i,e,r,n)})(i.getFrequencyResponse)};var kC={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers"},dp=(i,t,e,r,n,o)=>class extends i{constructor(a,c){let u=r(a),h=n(u),l=O(O({},kC),c),p=t(u,h?null:a.baseLatency,l),m=h?e(l.feedback,l.feedforward):null;super(a,!1,p,m),lp(p),this._nativeIIRFilterNode=p,o(this,1)}getFrequencyResponse(a,c,u){return this._nativeIIRFilterNode.getFrequencyResponse(a,c,u)}};var la=(i,t,e,r,n,o,s,a,c,u,h)=>{let l=u.length,p=a;for(let m=0;m<l;m+=1){let f=e[0]*u[m];for(let g=1;g<n;g+=1){let b=p-g&c-1;f+=e[g]*o[b],f-=i[g]*s[b]}for(let g=n;g<r;g+=1)f+=e[g]*o[p-g&c-1];for(let g=n;g<t;g+=1)f-=i[g]*s[p-g&c-1];o[p]=u[m],s[p]=f,p=p+1&c-1,h[m]=f}return p};var LC=(i,t,e,r)=>{let n=e instanceof Float64Array?e:new Float64Array(e),o=r instanceof Float64Array?r:new Float64Array(r),s=n.length,a=o.length,c=Math.min(s,a);if(n[0]!==1){for(let f=0;f<s;f+=1)o[f]/=n[0];for(let f=1;f<a;f+=1)n[f]/=n[0]}let u=32,h=new Float32Array(u),l=new Float32Array(u),p=t.createBuffer(i.numberOfChannels,i.length,i.sampleRate),m=i.numberOfChannels;for(let f=0;f<m;f+=1){let g=i.getChannelData(f),b=p.getChannelData(f);h.fill(0),l.fill(0),la(n,s,o,a,c,h,l,0,u,g,b)}return p},pp=(i,t,e,r,n)=>(o,s)=>{let a=new WeakMap,c=null,u=(h,l)=>J(null,null,function*(){let p=null,m=t(h),f=vt(m,l);if(l.createIIRFilter===void 0?p=i(l,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}):f||(m=l.createIIRFilter(s,o)),a.set(l,p===null?m:p),p!==null){if(c===null){if(e===null)throw new Error("Missing the native OfflineAudioContext constructor.");let b=new e(h.context.destination.channelCount,h.context.length,l.sampleRate);c=J(null,null,function*(){yield r(h,b,b.destination);let x=yield n(b);return LC(x,l,o,s)})}let g=yield c;return p.buffer=g,p.start(0),p}return yield r(h,l,m),m});return{render(h,l){let p=a.get(l);return p!==void 0?Promise.resolve(p):u(h,l)}}};var mp=(i,t,e,r,n,o)=>s=>(a,c)=>{let u=i.get(a);if(u===void 0){if(!s&&o(a)){let h=r(a),{outputs:l}=e(a);for(let p of l)if(ai(p)){let m=r(p[0]);t(h,m,p[1],p[2])}else{let m=n(p[0]);h.disconnect(m,p[1])}}i.set(a,c)}else i.set(a,u+c)};var fp=(i,t)=>e=>{let r=i.get(e);return t(r)||t(e)};var gp=(i,t)=>e=>i.has(e)||t(e);var yp=(i,t)=>e=>i.has(e)||t(e);var bp=(i,t)=>e=>{let r=i.get(e);return t(r)||t(e)};var xp=i=>t=>i!==null&&t instanceof i;var Ap=i=>t=>i!==null&&typeof i.AudioNode=="function"&&t instanceof i.AudioNode;var Cp=i=>t=>i!==null&&typeof i.AudioParam=="function"&&t instanceof i.AudioParam;var _p=(i,t)=>e=>i(e)||t(e);var vp=i=>t=>i!==null&&t instanceof i;var Sp=i=>i!==null&&i.isSecureContext;var wp=(i,t,e,r)=>class extends i{constructor(o,s){let a=e(o),c=t(a,s);if(r(a))throw TypeError();super(o,!0,c,null),this._nativeMediaElementAudioSourceNode=c}get mediaElement(){return this._nativeMediaElementAudioSourceNode.mediaElement}};var jC={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers"},Ip=(i,t,e,r)=>class extends i{constructor(o,s){let a=e(o);if(r(a))throw new TypeError;let c=O(O({},jC),s),u=t(a,c);super(o,!1,u,null),this._nativeMediaStreamAudioDestinationNode=u}get stream(){return this._nativeMediaStreamAudioDestinationNode.stream}};var Tp=(i,t,e,r)=>class extends i{constructor(o,s){let a=e(o),c=t(a,s);if(r(a))throw new TypeError;super(o,!0,c,null),this._nativeMediaStreamAudioSourceNode=c}get mediaStream(){return this._nativeMediaStreamAudioSourceNode.mediaStream}};var Np=(i,t,e)=>class extends i{constructor(n,o){let s=e(n),a=t(s,o);super(n,!0,a,null)}};var Op=(i,t,e,r,n)=>class extends r{constructor(s={}){if(n===null)throw new Error("Missing the native AudioContext constructor.");let a;try{a=new n(s)}catch(h){throw h.code===12&&h.message==="sampleRate is not in range"?t():h}if(a===null)throw e();if(!aa(s.latencyHint))throw new TypeError(`The provided value '${s.latencyHint}' is not a valid enum value of type AudioContextLatencyCategory.`);if(s.sampleRate!==void 0&&a.sampleRate!==s.sampleRate)throw t();super(a,2);let{latencyHint:c}=s,{sampleRate:u}=a;if(this._baseLatency=typeof a.baseLatency=="number"?a.baseLatency:c==="balanced"?512/u:c==="interactive"||c===void 0?256/u:c==="playback"?1024/u:Math.max(2,Math.min(128,Math.round(c*u/128)))*128/u,this._nativeAudioContext=a,n.name==="webkitAudioContext"?(this._nativeGainNode=a.createGain(),this._nativeOscillatorNode=a.createOscillator(),this._nativeGainNode.gain.value=1e-37,this._nativeOscillatorNode.connect(this._nativeGainNode).connect(a.destination),this._nativeOscillatorNode.start()):(this._nativeGainNode=null,this._nativeOscillatorNode=null),this._state=null,a.state==="running"){this._state="suspended";let h=()=>{this._state==="suspended"&&(this._state=null),a.removeEventListener("statechange",h)};a.addEventListener("statechange",h)}}get baseLatency(){return this._baseLatency}get state(){return this._state!==null?this._state:this._nativeAudioContext.state}close(){return this.state==="closed"?this._nativeAudioContext.close().then(()=>{throw i()}):(this._state==="suspended"&&(this._state=null),this._nativeAudioContext.close().then(()=>{this._nativeGainNode!==null&&this._nativeOscillatorNode!==null&&(this._nativeOscillatorNode.stop(),this._nativeGainNode.disconnect(),this._nativeOscillatorNode.disconnect()),si(this)}))}resume(){return this._state==="suspended"?new Promise((s,a)=>{let c=()=>{this._nativeAudioContext.removeEventListener("statechange",c),this._nativeAudioContext.state==="running"?s():this.resume().then(s,a)};this._nativeAudioContext.addEventListener("statechange",c)}):this._nativeAudioContext.resume().catch(s=>{throw s===void 0||s.code===15?i():s})}suspend(){return this._nativeAudioContext.suspend().catch(s=>{throw s===void 0?i():s})}};var Rp=(i,t,e,r,n,o)=>class extends e{constructor(a,c){super(a),this._nativeContext=a,un.set(this,a),r(a)&&n.set(a,new Set),this._destination=new i(this,c),this._listener=t(this,a),this._onstatechange=null}get currentTime(){return this._nativeContext.currentTime}get destination(){return this._destination}get listener(){return this._listener}get onstatechange(){return this._onstatechange}set onstatechange(a){let c=typeof a=="function"?o(this,a):null;this._nativeContext.onstatechange=c;let u=this._nativeContext.onstatechange;this._onstatechange=u!==null&&u===c?a:u}get sampleRate(){return this._nativeContext.sampleRate}get state(){return this._nativeContext.state}};var cr=i=>{let t=new Uint32Array([1179011410,40,1163280727,544501094,16,131073,44100,176400,1048580,1635017060,4,0]);try{let e=i.decodeAudioData(t.buffer,()=>{});return e===void 0?!1:(e.catch(()=>{}),!0)}catch(e){}return!1};var PC={numberOfChannels:1},Mp=(i,t,e,r,n)=>class extends r{constructor(s){let{length:a,numberOfChannels:c,sampleRate:u}=O(O({},PC),s),h=e(c,a,u);i(cr,()=>cr(h))||h.addEventListener("statechange",(()=>{let l=0,p=m=>{this._state==="running"&&(l>0?(h.removeEventListener("statechange",p),m.stopImmediatePropagation(),this._waitForThePromiseToSettle(m)):l+=1)};return p})()),super(h,c),this._length=a,this._nativeOfflineAudioContext=h,this._state=null}get length(){return this._nativeOfflineAudioContext.length===void 0?this._length:this._nativeOfflineAudioContext.length}get state(){return this._state===null?this._nativeOfflineAudioContext.state:this._state}startRendering(){return this._state==="running"?Promise.reject(t()):(this._state="running",n(this.destination,this._nativeOfflineAudioContext).finally(()=>{this._state=null,si(this)}))}_waitForThePromiseToSettle(s){this._state===null?this._nativeOfflineAudioContext.dispatchEvent(s):setTimeout(()=>this._waitForThePromiseToSettle(s))}};var Ep=(i,t)=>(e,r,n)=>{let o=new Set;return e.connect=(s=>(a,c=0,u=0)=>{let h=o.size===0;if(t(a))return s.call(e,a,c,u),i(o,[a,c,u],l=>l[0]===a&&l[1]===c&&l[2]===u,!0),h&&r(),a;s.call(e,a,c),i(o,[a,c],l=>l[0]===a&&l[1]===c,!0),h&&r()})(e.connect),e.disconnect=(s=>(a,c,u)=>{let h=o.size>0;if(a===void 0)s.apply(e),o.clear();else if(typeof a=="number"){s.call(e,a);for(let p of o)p[1]===a&&o.delete(p)}else{t(a)?s.call(e,a,c,u):s.call(e,a,c);for(let p of o)p[0]===a&&(c===void 0||p[1]===c)&&(u===void 0||p[2]===u)&&o.delete(p)}let l=o.size===0;h&&l&&n()})(e.disconnect),e};var St=(i,t,e)=>{let r=t[e];r!==void 0&&r!==i[e]&&(i[e]=r)};var gt=(i,t)=>{St(i,t,"channelCount"),St(i,t,"channelCountMode"),St(i,t,"channelInterpretation")};var Gu=i=>typeof i.getFloatTimeDomainData=="function";var Dp=i=>{i.getFloatTimeDomainData=t=>{let e=new Uint8Array(t.length);i.getByteTimeDomainData(e);let r=Math.max(e.length,i.fftSize);for(let n=0;n<r;n+=1)t[n]=(e[n]-128)*.0078125;return t}};var kp=(i,t)=>(e,r)=>{let n=e.createAnalyser();if(gt(n,r),!(r.maxDecibels>r.minDecibels))throw t();return St(n,r,"fftSize"),St(n,r,"maxDecibels"),St(n,r,"minDecibels"),St(n,r,"smoothingTimeConstant"),i(Gu,()=>Gu(n))||Dp(n),n};var Lp=i=>i===null?null:i.hasOwnProperty("AudioBuffer")?i.AudioBuffer:null;var Tt=(i,t,e)=>{let r=t[e];r!==void 0&&r!==i[e].value&&(i[e].value=r)};var jp=i=>{i.start=(t=>{let e=!1;return(r=0,n=0,o)=>{if(e)throw Ft();t.call(i,r,n,o),e=!0}})(i.start)};var xn=i=>{i.start=(t=>(e=0,r=0,n)=>{if(typeof n=="number"&&n<0||r<0||e<0)throw new RangeError("The parameters can't be negative.");t.call(i,e,r,n)})(i.start)};var An=i=>{i.stop=(t=>(e=0)=>{if(e<0)throw new RangeError("The parameter can't be negative.");t.call(i,e)})(i.stop)};var Pp=(i,t,e,r,n,o,s,a,c,u,h)=>(l,p)=>{let m=l.createBufferSource();return gt(m,p),Tt(m,p,"playbackRate"),St(m,p,"buffer"),St(m,p,"loop"),St(m,p,"loopEnd"),St(m,p,"loopStart"),t(e,()=>e(l))||jp(m),t(r,()=>r(l))||c(m),t(n,()=>n(l))||u(m,l),t(o,()=>o(l))||xn(m),t(s,()=>s(l))||h(m,l),t(a,()=>a(l))||An(m),i(l,m),m};var Fp=i=>i===null?null:i.hasOwnProperty("AudioContext")?i.AudioContext:i.hasOwnProperty("webkitAudioContext")?i.webkitAudioContext:null;var Bp=(i,t)=>(e,r,n)=>{let o=e.destination;if(o.channelCount!==r)try{o.channelCount=r}catch(a){}n&&o.channelCountMode!=="explicit"&&(o.channelCountMode="explicit"),o.maxChannelCount===0&&Object.defineProperty(o,"maxChannelCount",{value:r});let s=i(e,{channelCount:r,channelCountMode:o.channelCountMode,channelInterpretation:o.channelInterpretation,gain:1});return t(s,"channelCount",a=>()=>a.call(s),a=>c=>{a.call(s,c);try{o.channelCount=c}catch(u){if(c>o.maxChannelCount)throw u}}),t(s,"channelCountMode",a=>()=>a.call(s),a=>c=>{a.call(s,c),o.channelCountMode=c}),t(s,"channelInterpretation",a=>()=>a.call(s),a=>c=>{a.call(s,c),o.channelInterpretation=c}),Object.defineProperty(s,"maxChannelCount",{get:()=>o.maxChannelCount}),s.connect(o),s};var Gp=i=>i===null?null:i.hasOwnProperty("AudioWorkletNode")?i.AudioWorkletNode:null;var Vp=i=>{let{port1:t}=new MessageChannel;try{t.postMessage(i)}finally{t.close()}};var qp=(i,t,e,r,n)=>(o,s,a,c,u,h)=>{if(a!==null)try{let l=new a(o,c,h),p=new Map,m=null;if(Object.defineProperties(l,{channelCount:{get:()=>h.channelCount,set:()=>{throw i()}},channelCountMode:{get:()=>"explicit",set:()=>{throw i()}},onprocessorerror:{get:()=>m,set:f=>{typeof m=="function"&&l.removeEventListener("processorerror",m),m=typeof f=="function"?f:null,typeof m=="function"&&l.addEventListener("processorerror",m)}}}),l.addEventListener=(f=>(...g)=>{if(g[0]==="processorerror"){let b=typeof g[1]=="function"?g[1]:typeof g[1]=="object"&&g[1]!==null&&typeof g[1].handleEvent=="function"?g[1].handleEvent:null;if(b!==null){let x=p.get(g[1]);x!==void 0?g[1]=x:(g[1]=C=>{C.type==="error"?(Object.defineProperties(C,{type:{value:"processorerror"}}),b(C)):b(new ErrorEvent(g[0],O({},C)))},p.set(b,g[1]))}}return f.call(l,"error",g[1],g[2]),f.call(l,...g)})(l.addEventListener),l.removeEventListener=(f=>(...g)=>{if(g[0]==="processorerror"){let b=p.get(g[1]);b!==void 0&&(p.delete(g[1]),g[1]=b)}return f.call(l,"error",g[1],g[2]),f.call(l,g[0],g[1],g[2])})(l.removeEventListener),h.numberOfOutputs!==0){let f=e(o,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});return l.connect(f).connect(o.destination),n(l,()=>f.disconnect(),()=>f.connect(o.destination))}return l}catch(l){throw l.code===11?r():l}if(u===void 0)throw r();return Vp(h),t(o,s,u,h)};var da=(i,t)=>i===null?512:Math.max(512,Math.min(16384,Math.pow(2,Math.round(Math.log2(i*t)))));var Wp=i=>new Promise((t,e)=>{let{port1:r,port2:n}=new MessageChannel;r.onmessage=({data:o})=>{r.close(),n.close(),t(o)},r.onmessageerror=({data:o})=>{r.close(),n.close(),e(o)},n.postMessage(i)});var Up=(i,t)=>J(null,null,function*(){let e=yield Wp(t);return new i(e)});var zp=(i,t,e,r)=>{let n=vo.get(i);n===void 0&&(n=new WeakMap,vo.set(i,n));let o=Up(e,r);return n.set(t,o),o};var Yp=(i,t,e,r,n,o,s,a,c,u,h,l,p)=>(m,f,g,b)=>{if(b.numberOfInputs===0&&b.numberOfOutputs===0)throw c();let x=Array.isArray(b.outputChannelCount)?b.outputChannelCount:Array.from(b.outputChannelCount);if(x.some(H=>H<1))throw c();if(x.length!==b.numberOfOutputs)throw t();if(b.channelCountMode!=="explicit")throw c();let C=b.channelCount*b.numberOfInputs,S=x.reduce((H,at)=>H+at,0),T=g.parameterDescriptors===void 0?0:g.parameterDescriptors.length;if(C+T>6||S>6)throw c();let w=new MessageChannel,v=[],A=[];for(let H=0;H<b.numberOfInputs;H+=1)v.push(s(m,{channelCount:b.channelCount,channelCountMode:b.channelCountMode,channelInterpretation:b.channelInterpretation,gain:1})),A.push(n(m,{channelCount:b.channelCount,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:b.channelCount}));let _=[];if(g.parameterDescriptors!==void 0)for(let{defaultValue:H,maxValue:at,minValue:ie,name:Bt}of g.parameterDescriptors){let It=o(m,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:b.parameterData[Bt]!==void 0?b.parameterData[Bt]:H===void 0?0:H});Object.defineProperties(It.offset,{defaultValue:{get:()=>H===void 0?0:H},maxValue:{get:()=>at===void 0?Ut:at},minValue:{get:()=>ie===void 0?$t:ie}}),_.push(It)}let E=r(m,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:Math.max(1,C+T)}),q=da(f,m.sampleRate),M=a(m,q,C+T,Math.max(1,S)),R=n(m,{channelCount:Math.max(1,S),channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:Math.max(1,S)}),B=[];for(let H=0;H<b.numberOfOutputs;H+=1)B.push(r(m,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:x[H]}));for(let H=0;H<b.numberOfInputs;H+=1){v[H].connect(A[H]);for(let at=0;at<b.channelCount;at+=1)A[H].connect(E,at,H*b.channelCount+at)}let D=new fn(g.parameterDescriptors===void 0?[]:g.parameterDescriptors.map(({name:H},at)=>{let ie=_[at];return ie.connect(E,0,C+at),ie.start(0),[H,ie.offset]}));E.connect(M);let j=b.channelInterpretation,F=null,W=b.numberOfOutputs===0?[M]:B,K={get bufferSize(){return q},get channelCount(){return b.channelCount},set channelCount(H){throw e()},get channelCountMode(){return b.channelCountMode},set channelCountMode(H){throw e()},get channelInterpretation(){return j},set channelInterpretation(H){for(let at of v)at.channelInterpretation=H;j=H},get context(){return M.context},get inputs(){return v},get numberOfInputs(){return b.numberOfInputs},get numberOfOutputs(){return b.numberOfOutputs},get onprocessorerror(){return F},set onprocessorerror(H){typeof F=="function"&&K.removeEventListener("processorerror",F),F=typeof H=="function"?H:null,typeof F=="function"&&K.addEventListener("processorerror",F)},get parameters(){return D},get port(){return w.port2},addEventListener(...H){return M.addEventListener(H[0],H[1],H[2])},connect:i.bind(null,W),disconnect:u.bind(null,W),dispatchEvent(...H){return M.dispatchEvent(H[0])},removeEventListener(...H){return M.removeEventListener(H[0],H[1],H[2])}},k=new Map;w.port1.addEventListener=(H=>(...at)=>{if(at[0]==="message"){let ie=typeof at[1]=="function"?at[1]:typeof at[1]=="object"&&at[1]!==null&&typeof at[1].handleEvent=="function"?at[1].handleEvent:null;if(ie!==null){let Bt=k.get(at[1]);Bt!==void 0?at[1]=Bt:(at[1]=It=>{h(m.currentTime,m.sampleRate,()=>ie(It))},k.set(ie,at[1]))}}return H.call(w.port1,at[0],at[1],at[2])})(w.port1.addEventListener),w.port1.removeEventListener=(H=>(...at)=>{if(at[0]==="message"){let ie=k.get(at[1]);ie!==void 0&&(k.delete(at[1]),at[1]=ie)}return H.call(w.port1,at[0],at[1],at[2])})(w.port1.removeEventListener);let nt=null;Object.defineProperty(w.port1,"onmessage",{get:()=>nt,set:H=>{typeof nt=="function"&&w.port1.removeEventListener("message",nt),nt=typeof H=="function"?H:null,typeof nt=="function"&&(w.port1.addEventListener("message",nt),w.port1.start())}}),g.prototype.port=w.port1;let mt=null;zp(m,K,g,b).then(H=>mt=H);let Ht=yn(b.numberOfInputs,b.channelCount),De=yn(b.numberOfOutputs,x),ke=g.parameterDescriptors===void 0?[]:g.parameterDescriptors.reduce((H,{name:at})=>Q(O({},H),{[at]:new Float32Array(128)}),{}),Ot=!0,ut=()=>{b.numberOfOutputs>0&&M.disconnect(R);for(let H=0,at=0;H<b.numberOfOutputs;H+=1){let ie=B[H];for(let Bt=0;Bt<x[H];Bt+=1)R.disconnect(ie,at+Bt,Bt);at+=x[H]}},Ki=new Map;M.onaudioprocess=({inputBuffer:H,outputBuffer:at})=>{if(mt!==null){let ie=l(K);for(let Bt=0;Bt<q;Bt+=128){for(let It=0;It<b.numberOfInputs;It+=1)for(let Wt=0;Wt<b.channelCount;Wt+=1)gn(H,Ht[It],Wt,Wt,Bt);g.parameterDescriptors!==void 0&&g.parameterDescriptors.forEach(({name:It},Wt)=>{gn(H,ke,It,C+Wt,Bt)});for(let It=0;It<b.numberOfInputs;It+=1)for(let Wt=0;Wt<x[It];Wt+=1)De[It][Wt].byteLength===0&&(De[It][Wt]=new Float32Array(128));try{let It=Ht.map((qe,Xr)=>{if(ie[Xr].size>0)return Ki.set(Xr,q/128),qe;let Qc=Ki.get(Xr);return Qc===void 0?[]:(qe.every(gg=>gg.every(yg=>yg===0))&&(Qc===1?Ki.delete(Xr):Ki.set(Xr,Qc-1)),qe)});Ot=h(m.currentTime+Bt/m.sampleRate,m.sampleRate,()=>mt.process(It,De,ke));for(let qe=0,Xr=0;qe<b.numberOfOutputs;qe+=1){for(let io=0;io<x[qe];io+=1)ua(at,De[qe],io,Xr+io,Bt);Xr+=x[qe]}}catch(It){Ot=!1,K.dispatchEvent(new ErrorEvent("processorerror",{colno:It.colno,filename:It.filename,lineno:It.lineno,message:It.message}))}if(!Ot){for(let It=0;It<b.numberOfInputs;It+=1){v[It].disconnect(A[It]);for(let Wt=0;Wt<b.channelCount;Wt+=1)A[Bt].disconnect(E,Wt,It*b.channelCount+Wt)}if(g.parameterDescriptors!==void 0){let It=g.parameterDescriptors.length;for(let Wt=0;Wt<It;Wt+=1){let qe=_[Wt];qe.disconnect(E,0,C+Wt),qe.stop()}}E.disconnect(M),M.onaudioprocess=null,to?ut():tn();break}}}};let to=!1,et=s(m,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0}),Ji=()=>M.connect(et).connect(m.destination),tn=()=>{M.disconnect(et),et.disconnect()},eo=()=>{if(Ot){tn(),b.numberOfOutputs>0&&M.connect(R);for(let H=0,at=0;H<b.numberOfOutputs;H+=1){let ie=B[H];for(let Bt=0;Bt<x[H];Bt+=1)R.connect(ie,at+Bt,Bt);at+=x[H]}}to=!0},ro=()=>{Ot&&(Ji(),ut()),to=!1};return Ji(),p(K,eo,ro)};var Vu=(i,t)=>{let e=i.createBiquadFilter();return gt(e,t),Tt(e,t,"Q"),Tt(e,t,"detune"),Tt(e,t,"frequency"),Tt(e,t,"gain"),St(e,t,"type"),e};var Hp=(i,t)=>(e,r)=>{let n=e.createChannelMerger(r.numberOfInputs);return i!==null&&i.name==="webkitAudioContext"&&t(e,n),gt(n,r),n};var $p=i=>{let t=i.numberOfOutputs;Object.defineProperty(i,"channelCount",{get:()=>t,set:e=>{if(e!==t)throw Ft()}}),Object.defineProperty(i,"channelCountMode",{get:()=>"explicit",set:e=>{if(e!=="explicit")throw Ft()}}),Object.defineProperty(i,"channelInterpretation",{get:()=>"discrete",set:e=>{if(e!=="discrete")throw Ft()}})};var Cn=(i,t)=>{let e=i.createChannelSplitter(t.numberOfOutputs);return gt(e,t),$p(e),e};var Zp=(i,t,e,r,n)=>(o,s)=>{if(o.createConstantSource===void 0)return e(o,s);let a=o.createConstantSource();return gt(a,s),Tt(a,s,"offset"),t(r,()=>r(o))||xn(a),t(n,()=>n(o))||An(a),i(o,a),a};var He=(i,t)=>(i.connect=t.connect.bind(t),i.disconnect=t.disconnect.bind(t),i);var Xp=(i,t,e,r)=>(n,a)=>{var c=a,{offset:o}=c,s=Qr(c,["offset"]);let u=n.createBuffer(1,2,44100),h=t(n,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),l=e(n,Q(O({},s),{gain:o})),p=u.getChannelData(0);p[0]=1,p[1]=1,h.buffer=u,h.loop=!0;let m={get bufferSize(){},get channelCount(){return l.channelCount},set channelCount(b){l.channelCount=b},get channelCountMode(){return l.channelCountMode},set channelCountMode(b){l.channelCountMode=b},get channelInterpretation(){return l.channelInterpretation},set channelInterpretation(b){l.channelInterpretation=b},get context(){return l.context},get inputs(){return[]},get numberOfInputs(){return h.numberOfInputs},get numberOfOutputs(){return l.numberOfOutputs},get offset(){return l.gain},get onended(){return h.onended},set onended(b){h.onended=b},addEventListener(...b){return h.addEventListener(b[0],b[1],b[2])},dispatchEvent(...b){return h.dispatchEvent(b[0])},removeEventListener(...b){return h.removeEventListener(b[0],b[1],b[2])},start(b=0){h.start.call(h,b)},stop(b=0){h.stop.call(h,b)}},f=()=>h.connect(l),g=()=>h.disconnect(l);return i(n,h),r(He(m,l),f,g)};var Qp=(i,t)=>(e,r)=>{let n=e.createConvolver();if(gt(n,r),r.disableNormalization===n.normalize&&(n.normalize=!r.disableNormalization),St(n,r,"buffer"),r.channelCount>2||(t(n,"channelCount",o=>()=>o.call(n),o=>s=>{if(s>2)throw i();return o.call(n,s)}),r.channelCountMode==="max"))throw i();return t(n,"channelCountMode",o=>()=>o.call(n),o=>s=>{if(s==="max")throw i();return o.call(n,s)}),n};var qu=(i,t)=>{let e=i.createDelay(t.maxDelayTime);return gt(e,t),Tt(e,t,"delayTime"),e};var Kp=i=>(t,e)=>{let r=t.createDynamicsCompressor();if(gt(r,e),e.channelCount>2||e.channelCountMode==="max")throw i();return Tt(r,e,"attack"),Tt(r,e,"knee"),Tt(r,e,"ratio"),Tt(r,e,"release"),Tt(r,e,"threshold"),r};var Ae=(i,t)=>{let e=i.createGain();return gt(e,t),Tt(e,t,"gain"),e};var Jp=i=>(t,e,r)=>{if(t.createIIRFilter===void 0)return i(t,e,r);let n=t.createIIRFilter(r.feedforward,r.feedback);return gt(n,r),n};function FC(i,t){let e=t[0]*t[0]+t[1]*t[1];return[(i[0]*t[0]+i[1]*t[1])/e,(i[1]*t[0]-i[0]*t[1])/e]}function BC(i,t){return[i[0]*t[0]-i[1]*t[1],i[0]*t[1]+i[1]*t[0]]}function tm(i,t){let e=[0,0];for(let r=i.length-1;r>=0;r-=1)e=BC(e,t),e[0]+=i[r];return e}var em=(i,t,e,r)=>(n,o,{channelCount:s,channelCountMode:a,channelInterpretation:c,feedback:u,feedforward:h})=>{let l=da(o,n.sampleRate),p=u instanceof Float64Array?u:new Float64Array(u),m=h instanceof Float64Array?h:new Float64Array(h),f=p.length,g=m.length,b=Math.min(f,g);if(f===0||f>20)throw r();if(p[0]===0)throw t();if(g===0||g>20)throw r();if(m[0]===0)throw t();if(p[0]!==1){for(let _=0;_<g;_+=1)m[_]/=p[0];for(let _=1;_<f;_+=1)p[_]/=p[0]}let x=e(n,l,s,s);x.channelCount=s,x.channelCountMode=a,x.channelInterpretation=c;let C=32,S=[],T=[],w=[];for(let _=0;_<s;_+=1){S.push(0);let E=new Float32Array(C),q=new Float32Array(C);E.fill(0),q.fill(0),T.push(E),w.push(q)}x.onaudioprocess=_=>{let E=_.inputBuffer,q=_.outputBuffer,M=E.numberOfChannels;for(let R=0;R<M;R+=1){let B=E.getChannelData(R),D=q.getChannelData(R);S[R]=la(p,f,m,g,b,T[R],w[R],S[R],C,B,D)}};let v=n.sampleRate/2;return He({get bufferSize(){return l},get channelCount(){return x.channelCount},set channelCount(_){x.channelCount=_},get channelCountMode(){return x.channelCountMode},set channelCountMode(_){x.channelCountMode=_},get channelInterpretation(){return x.channelInterpretation},set channelInterpretation(_){x.channelInterpretation=_},get context(){return x.context},get inputs(){return[x]},get numberOfInputs(){return x.numberOfInputs},get numberOfOutputs(){return x.numberOfOutputs},addEventListener(..._){return x.addEventListener(_[0],_[1],_[2])},dispatchEvent(..._){return x.dispatchEvent(_[0])},getFrequencyResponse(_,E,q){if(_.length!==E.length||E.length!==q.length)throw i();let M=_.length;for(let R=0;R<M;R+=1){let B=-Math.PI*(_[R]/v),D=[Math.cos(B),Math.sin(B)],j=tm(m,D),F=tm(p,D),W=FC(j,F);E[R]=Math.sqrt(W[0]*W[0]+W[1]*W[1]),q[R]=Math.atan2(W[1],W[0])}},removeEventListener(..._){return x.removeEventListener(_[0],_[1],_[2])}},x)};var rm=(i,t)=>i.createMediaElementSource(t.mediaElement);var im=(i,t)=>{let e=i.createMediaStreamDestination();return gt(e,t),e.numberOfOutputs===1&&Object.defineProperty(e,"numberOfOutputs",{get:()=>0}),e};var nm=(i,{mediaStream:t})=>{let e=t.getAudioTracks();e.sort((o,s)=>o.id<s.id?-1:o.id>s.id?1:0);let r=e.slice(0,1),n=i.createMediaStreamSource(new MediaStream(r));return Object.defineProperty(n,"mediaStream",{value:t}),n};var om=(i,t)=>(e,{mediaStreamTrack:r})=>{if(typeof e.createMediaStreamTrackSource=="function")return e.createMediaStreamTrackSource(r);let n=new MediaStream([r]),o=e.createMediaStreamSource(n);if(r.kind!=="audio")throw i();if(t(e))throw new TypeError;return o};var sm=i=>i===null?null:i.hasOwnProperty("OfflineAudioContext")?i.OfflineAudioContext:i.hasOwnProperty("webkitOfflineAudioContext")?i.webkitOfflineAudioContext:null;var am=(i,t,e,r,n,o)=>(s,a)=>{let c=s.createOscillator();return gt(c,a),Tt(c,a,"detune"),Tt(c,a,"frequency"),a.periodicWave!==void 0?c.setPeriodicWave(a.periodicWave):St(c,a,"type"),t(e,()=>e(s))||xn(c),t(r,()=>r(s))||o(c,s),t(n,()=>n(s))||An(c),i(s,c),c};var cm=i=>(t,e)=>{let r=t.createPanner();return r.orientationX===void 0?i(t,e):(gt(r,e),Tt(r,e,"orientationX"),Tt(r,e,"orientationY"),Tt(r,e,"orientationZ"),Tt(r,e,"positionX"),Tt(r,e,"positionY"),Tt(r,e,"positionZ"),St(r,e,"coneInnerAngle"),St(r,e,"coneOuterAngle"),St(r,e,"coneOuterGain"),St(r,e,"distanceModel"),St(r,e,"maxDistance"),St(r,e,"panningModel"),St(r,e,"refDistance"),St(r,e,"rolloffFactor"),r)};var um=(i,t,e,r,n,o,s,a,c,u)=>(h,q)=>{var M=q,{coneInnerAngle:l,coneOuterAngle:p,coneOuterGain:m,distanceModel:f,maxDistance:g,orientationX:b,orientationY:x,orientationZ:C,panningModel:S,positionX:T,positionY:w,positionZ:v,refDistance:A,rolloffFactor:_}=M,E=Qr(M,["coneInnerAngle","coneOuterAngle","coneOuterGain","distanceModel","maxDistance","orientationX","orientationY","orientationZ","panningModel","positionX","positionY","positionZ","refDistance","rolloffFactor"]);let R=h.createPanner();if(E.channelCount>2||E.channelCountMode==="max")throw s();gt(R,E);let B={channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete"},D=e(h,Q(O({},B),{channelInterpretation:"speakers",numberOfInputs:6})),j=r(h,Q(O({},E),{gain:1})),F=r(h,Q(O({},B),{gain:1})),W=r(h,Q(O({},B),{gain:0})),K=r(h,Q(O({},B),{gain:0})),k=r(h,Q(O({},B),{gain:0})),nt=r(h,Q(O({},B),{gain:0})),mt=r(h,Q(O({},B),{gain:0})),Ct=n(h,256,6,1),Ht=o(h,Q(O({},B),{curve:new Float32Array([1,1]),oversample:"none"})),De=[b,x,C],ke=[T,w,v],Ot=new Float32Array(1);Ct.onaudioprocess=({inputBuffer:et})=>{let Ji=[c(et,Ot,0),c(et,Ot,1),c(et,Ot,2)];Ji.some((eo,ro)=>eo!==De[ro])&&(R.setOrientation(...Ji),De=Ji);let tn=[c(et,Ot,3),c(et,Ot,4),c(et,Ot,5)];tn.some((eo,ro)=>eo!==ke[ro])&&(R.setPosition(...tn),ke=tn)},Object.defineProperty(W.gain,"defaultValue",{get:()=>0}),Object.defineProperty(K.gain,"defaultValue",{get:()=>0}),Object.defineProperty(k.gain,"defaultValue",{get:()=>0}),Object.defineProperty(nt.gain,"defaultValue",{get:()=>0}),Object.defineProperty(mt.gain,"defaultValue",{get:()=>0});let ut={get bufferSize(){},get channelCount(){return R.channelCount},set channelCount(et){if(et>2)throw s();j.channelCount=et,R.channelCount=et},get channelCountMode(){return R.channelCountMode},set channelCountMode(et){if(et==="max")throw s();j.channelCountMode=et,R.channelCountMode=et},get channelInterpretation(){return R.channelInterpretation},set channelInterpretation(et){j.channelInterpretation=et,R.channelInterpretation=et},get coneInnerAngle(){return R.coneInnerAngle},set coneInnerAngle(et){R.coneInnerAngle=et},get coneOuterAngle(){return R.coneOuterAngle},set coneOuterAngle(et){R.coneOuterAngle=et},get coneOuterGain(){return R.coneOuterGain},set coneOuterGain(et){if(et<0||et>1)throw t();R.coneOuterGain=et},get context(){return R.context},get distanceModel(){return R.distanceModel},set distanceModel(et){R.distanceModel=et},get inputs(){return[j]},get maxDistance(){return R.maxDistance},set maxDistance(et){if(et<0)throw new RangeError;R.maxDistance=et},get numberOfInputs(){return R.numberOfInputs},get numberOfOutputs(){return R.numberOfOutputs},get orientationX(){return F.gain},get orientationY(){return W.gain},get orientationZ(){return K.gain},get panningModel(){return R.panningModel},set panningModel(et){R.panningModel=et},get positionX(){return k.gain},get positionY(){return nt.gain},get positionZ(){return mt.gain},get refDistance(){return R.refDistance},set refDistance(et){if(et<0)throw new RangeError;R.refDistance=et},get rolloffFactor(){return R.rolloffFactor},set rolloffFactor(et){if(et<0)throw new RangeError;R.rolloffFactor=et},addEventListener(...et){return j.addEventListener(et[0],et[1],et[2])},dispatchEvent(...et){return j.dispatchEvent(et[0])},removeEventListener(...et){return j.removeEventListener(et[0],et[1],et[2])}};l!==ut.coneInnerAngle&&(ut.coneInnerAngle=l),p!==ut.coneOuterAngle&&(ut.coneOuterAngle=p),m!==ut.coneOuterGain&&(ut.coneOuterGain=m),f!==ut.distanceModel&&(ut.distanceModel=f),g!==ut.maxDistance&&(ut.maxDistance=g),b!==ut.orientationX.value&&(ut.orientationX.value=b),x!==ut.orientationY.value&&(ut.orientationY.value=x),C!==ut.orientationZ.value&&(ut.orientationZ.value=C),S!==ut.panningModel&&(ut.panningModel=S),T!==ut.positionX.value&&(ut.positionX.value=T),w!==ut.positionY.value&&(ut.positionY.value=w),v!==ut.positionZ.value&&(ut.positionZ.value=v),A!==ut.refDistance&&(ut.refDistance=A),_!==ut.rolloffFactor&&(ut.rolloffFactor=_),(De[0]!==1||De[1]!==0||De[2]!==0)&&R.setOrientation(...De),(ke[0]!==0||ke[1]!==0||ke[2]!==0)&&R.setPosition(...ke);let Ki=()=>{j.connect(R),i(j,Ht,0,0),Ht.connect(F).connect(D,0,0),Ht.connect(W).connect(D,0,1),Ht.connect(K).connect(D,0,2),Ht.connect(k).connect(D,0,3),Ht.connect(nt).connect(D,0,4),Ht.connect(mt).connect(D,0,5),D.connect(Ct).connect(h.destination)},to=()=>{j.disconnect(R),a(j,Ht,0,0),Ht.disconnect(F),F.disconnect(D),Ht.disconnect(W),W.disconnect(D),Ht.disconnect(K),K.disconnect(D),Ht.disconnect(k),k.disconnect(D),Ht.disconnect(nt),nt.disconnect(D),Ht.disconnect(mt),mt.disconnect(D),D.disconnect(Ct),Ct.disconnect(h.destination)};return u(He(ut,R),Ki,to)};var hm=i=>(t,{disableNormalization:e,imag:r,real:n})=>{let o=r instanceof Float32Array?r:new Float32Array(r),s=n instanceof Float32Array?n:new Float32Array(n),a=t.createPeriodicWave(s,o,{disableNormalization:e});if(Array.from(r).length<2)throw i();return a};var _n=(i,t,e,r)=>i.createScriptProcessor(t,e,r);var lm=(i,t)=>(e,r)=>{let n=r.channelCountMode;if(n==="clamped-max")throw t();if(e.createStereoPanner===void 0)return i(e,r);let o=e.createStereoPanner();return gt(o,r),Tt(o,r,"pan"),Object.defineProperty(o,"channelCountMode",{get:()=>n,set:s=>{if(s!==n)throw t()}}),o};var dm=(i,t,e,r,n,o)=>{let a=new Float32Array([1,1]),c=Math.PI/2,u={channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete"},h=Q(O({},u),{oversample:"none"}),l=(f,g,b,x)=>{let C=new Float32Array(16385),S=new Float32Array(16385);for(let E=0;E<16385;E+=1){let q=E/16384*c;C[E]=Math.cos(q),S[E]=Math.sin(q)}let T=e(f,Q(O({},u),{gain:0})),w=r(f,Q(O({},h),{curve:C})),v=r(f,Q(O({},h),{curve:a})),A=e(f,Q(O({},u),{gain:0})),_=r(f,Q(O({},h),{curve:S}));return{connectGraph(){g.connect(T),g.connect(v.inputs===void 0?v:v.inputs[0]),g.connect(A),v.connect(b),b.connect(w.inputs===void 0?w:w.inputs[0]),b.connect(_.inputs===void 0?_:_.inputs[0]),w.connect(T.gain),_.connect(A.gain),T.connect(x,0,0),A.connect(x,0,1)},disconnectGraph(){g.disconnect(T),g.disconnect(v.inputs===void 0?v:v.inputs[0]),g.disconnect(A),v.disconnect(b),b.disconnect(w.inputs===void 0?w:w.inputs[0]),b.disconnect(_.inputs===void 0?_:_.inputs[0]),w.disconnect(T.gain),_.disconnect(A.gain),T.disconnect(x,0,0),A.disconnect(x,0,1)}}},p=(f,g,b,x)=>{let C=new Float32Array(16385),S=new Float32Array(16385),T=new Float32Array(16385),w=new Float32Array(16385),v=Math.floor(16385/2);for(let W=0;W<16385;W+=1)if(W>v){let K=(W-v)/(16384-v)*c;C[W]=Math.cos(K),S[W]=Math.sin(K),T[W]=0,w[W]=1}else{let K=W/(16384-v)*c;C[W]=1,S[W]=0,T[W]=Math.cos(K),w[W]=Math.sin(K)}let A=t(f,{channelCount:2,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:2}),_=e(f,Q(O({},u),{gain:0})),E=r(f,Q(O({},h),{curve:C})),q=e(f,Q(O({},u),{gain:0})),M=r(f,Q(O({},h),{curve:S})),R=r(f,Q(O({},h),{curve:a})),B=e(f,Q(O({},u),{gain:0})),D=r(f,Q(O({},h),{curve:T})),j=e(f,Q(O({},u),{gain:0})),F=r(f,Q(O({},h),{curve:w}));return{connectGraph(){g.connect(A),g.connect(R.inputs===void 0?R:R.inputs[0]),A.connect(_,0),A.connect(q,0),A.connect(B,1),A.connect(j,1),R.connect(b),b.connect(E.inputs===void 0?E:E.inputs[0]),b.connect(M.inputs===void 0?M:M.inputs[0]),b.connect(D.inputs===void 0?D:D.inputs[0]),b.connect(F.inputs===void 0?F:F.inputs[0]),E.connect(_.gain),M.connect(q.gain),D.connect(B.gain),F.connect(j.gain),_.connect(x,0,0),B.connect(x,0,0),q.connect(x,0,1),j.connect(x,0,1)},disconnectGraph(){g.disconnect(A),g.disconnect(R.inputs===void 0?R:R.inputs[0]),A.disconnect(_,0),A.disconnect(q,0),A.disconnect(B,1),A.disconnect(j,1),R.disconnect(b),b.disconnect(E.inputs===void 0?E:E.inputs[0]),b.disconnect(M.inputs===void 0?M:M.inputs[0]),b.disconnect(D.inputs===void 0?D:D.inputs[0]),b.disconnect(F.inputs===void 0?F:F.inputs[0]),E.disconnect(_.gain),M.disconnect(q.gain),D.disconnect(B.gain),F.disconnect(j.gain),_.disconnect(x,0,0),B.disconnect(x,0,0),q.disconnect(x,0,1),j.disconnect(x,0,1)}}},m=(f,g,b,x,C)=>{if(g===1)return l(f,b,x,C);if(g===2)return p(f,b,x,C);throw n()};return(f,S)=>{var T=S,{channelCount:g,channelCountMode:b,pan:x}=T,C=Qr(T,["channelCount","channelCountMode","pan"]);if(b==="max")throw n();let w=i(f,Q(O({},C),{channelCount:1,channelCountMode:b,numberOfInputs:2})),v=e(f,Q(O({},C),{channelCount:g,channelCountMode:b,gain:1})),A=e(f,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:x}),{connectGraph:_,disconnectGraph:E}=m(f,g,v,A,w);Object.defineProperty(A.gain,"defaultValue",{get:()=>0}),Object.defineProperty(A.gain,"maxValue",{get:()=>1}),Object.defineProperty(A.gain,"minValue",{get:()=>-1});let q={get bufferSize(){},get channelCount(){return v.channelCount},set channelCount(D){v.channelCount!==D&&(M&&E(),{connectGraph:_,disconnectGraph:E}=m(f,D,v,A,w),M&&_()),v.channelCount=D},get channelCountMode(){return v.channelCountMode},set channelCountMode(D){if(D==="clamped-max"||D==="max")throw n();v.channelCountMode=D},get channelInterpretation(){return v.channelInterpretation},set channelInterpretation(D){v.channelInterpretation=D},get context(){return v.context},get inputs(){return[v]},get numberOfInputs(){return v.numberOfInputs},get numberOfOutputs(){return v.numberOfOutputs},get pan(){return A.gain},addEventListener(...D){return v.addEventListener(D[0],D[1],D[2])},dispatchEvent(...D){return v.dispatchEvent(D[0])},removeEventListener(...D){return v.removeEventListener(D[0],D[1],D[2])}},M=!1,R=()=>{_(),M=!0},B=()=>{E(),M=!1};return o(He(q,w),R,B)}};var pm=(i,t,e,r,n,o,s)=>(a,c)=>{let u=a.createWaveShaper();if(o!==null&&o.name==="webkitAudioContext"&&a.createGain().gain.automationRate===void 0)return e(a,c);gt(u,c);let h=c.curve===null||c.curve instanceof Float32Array?c.curve:new Float32Array(c.curve);if(h!==null&&h.length<2)throw t();St(u,{curve:h},"curve"),St(u,c,"oversample");let l=null,p=!1;return s(u,"curve",g=>()=>g.call(u),g=>b=>(g.call(u,b),p&&(r(b)&&l===null?l=i(a,u):!r(b)&&l!==null&&(l(),l=null)),b)),n(u,()=>{p=!0,r(u.curve)&&(l=i(a,u))},()=>{p=!1,l!==null&&(l(),l=null)})};var mm=(i,t,e,r,n)=>(o,u)=>{var h=u,{curve:s,oversample:a}=h,c=Qr(h,["curve","oversample"]);let l=o.createWaveShaper(),p=o.createWaveShaper();gt(l,c),gt(p,c);let m=e(o,Q(O({},c),{gain:1})),f=e(o,Q(O({},c),{gain:-1})),g=e(o,Q(O({},c),{gain:1})),b=e(o,Q(O({},c),{gain:-1})),x=null,C=!1,S=null,T={get bufferSize(){},get channelCount(){return l.channelCount},set channelCount(A){m.channelCount=A,f.channelCount=A,l.channelCount=A,g.channelCount=A,p.channelCount=A,b.channelCount=A},get channelCountMode(){return l.channelCountMode},set channelCountMode(A){m.channelCountMode=A,f.channelCountMode=A,l.channelCountMode=A,g.channelCountMode=A,p.channelCountMode=A,b.channelCountMode=A},get channelInterpretation(){return l.channelInterpretation},set channelInterpretation(A){m.channelInterpretation=A,f.channelInterpretation=A,l.channelInterpretation=A,g.channelInterpretation=A,p.channelInterpretation=A,b.channelInterpretation=A},get context(){return l.context},get curve(){return S},set curve(A){if(A!==null&&A.length<2)throw t();if(A===null)l.curve=A,p.curve=A;else{let _=A.length,E=new Float32Array(_+2-_%2),q=new Float32Array(_+2-_%2);E[0]=A[0],q[0]=-A[_-1];let M=Math.ceil((_+1)/2),R=(_+1)/2-1;for(let B=1;B<M;B+=1){let D=B/M*R,j=Math.floor(D),F=Math.ceil(D);E[B]=j===F?A[j]:(1-(D-j))*A[j]+(1-(F-D))*A[F],q[B]=j===F?-A[_-1-j]:-((1-(D-j))*A[_-1-j])-(1-(F-D))*A[_-1-F]}E[M]=_%2===1?A[M-1]:(A[M-2]+A[M-1])/2,l.curve=E,p.curve=q}S=A,C&&(r(S)&&x===null?x=i(o,m):x!==null&&(x(),x=null))},get inputs(){return[m]},get numberOfInputs(){return l.numberOfInputs},get numberOfOutputs(){return l.numberOfOutputs},get oversample(){return l.oversample},set oversample(A){l.oversample=A,p.oversample=A},addEventListener(...A){return m.addEventListener(A[0],A[1],A[2])},dispatchEvent(...A){return m.dispatchEvent(A[0])},removeEventListener(...A){return m.removeEventListener(A[0],A[1],A[2])}};s!==null&&(T.curve=s instanceof Float32Array?s:new Float32Array(s)),a!==T.oversample&&(T.oversample=a);let w=()=>{m.connect(l).connect(g),m.connect(f).connect(p).connect(b).connect(g),C=!0,r(S)&&(x=i(o,m))},v=()=>{m.disconnect(l),l.disconnect(g),m.disconnect(f),f.disconnect(p),p.disconnect(b),b.disconnect(g),C=!1,x!==null&&(x(),x=null)};return n(He(T,g),w,v)};var ue=()=>new DOMException("","NotSupportedError");var GC={numberOfChannels:1},fm=(i,t,e,r,n)=>class extends i{constructor(s,a,c){let u;if(typeof s=="number"&&a!==void 0&&c!==void 0)u={length:a,numberOfChannels:s,sampleRate:c};else if(typeof s=="object")u=s;else throw new Error("The given parameters are not valid.");let{length:h,numberOfChannels:l,sampleRate:p}=O(O({},GC),u),m=r(l,h,p);t(cr,()=>cr(m))||m.addEventListener("statechange",(()=>{let f=0,g=b=>{this._state==="running"&&(f>0?(m.removeEventListener("statechange",g),b.stopImmediatePropagation(),this._waitForThePromiseToSettle(b)):f+=1)};return g})()),super(m,l),this._length=h,this._nativeOfflineAudioContext=m,this._state=null}get length(){return this._nativeOfflineAudioContext.length===void 0?this._length:this._nativeOfflineAudioContext.length}get state(){return this._state===null?this._nativeOfflineAudioContext.state:this._state}startRendering(){return this._state==="running"?Promise.reject(e()):(this._state="running",n(this.destination,this._nativeOfflineAudioContext).finally(()=>{this._state=null,si(this)}))}_waitForThePromiseToSettle(s){this._state===null?this._nativeOfflineAudioContext.dispatchEvent(s):setTimeout(()=>this._waitForThePromiseToSettle(s))}};var VC={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",detune:0,frequency:440,periodicWave:void 0,type:"sine"},gm=(i,t,e,r,n,o,s)=>class extends i{constructor(c,u){let h=n(c),l=O(O({},VC),u),p=e(h,l),m=o(h),f=m?r():null,g=c.sampleRate/2;super(c,!1,p,f),this._detune=t(this,m,p.detune,153600,-153600),this._frequency=t(this,m,p.frequency,g,-g),this._nativeOscillatorNode=p,this._onended=null,this._oscillatorNodeRenderer=f,this._oscillatorNodeRenderer!==null&&l.periodicWave!==void 0&&(this._oscillatorNodeRenderer.periodicWave=l.periodicWave)}get detune(){return this._detune}get frequency(){return this._frequency}get onended(){return this._onended}set onended(c){let u=typeof c=="function"?s(this,c):null;this._nativeOscillatorNode.onended=u;let h=this._nativeOscillatorNode.onended;this._onended=h!==null&&h===u?c:h}get type(){return this._nativeOscillatorNode.type}set type(c){this._nativeOscillatorNode.type=c,this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.periodicWave=null)}setPeriodicWave(c){this._nativeOscillatorNode.setPeriodicWave(c),this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.periodicWave=c)}start(c=0){if(this._nativeOscillatorNode.start(c),this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.start=c),this.context.state!=="closed"){sr(this);let u=()=>{this._nativeOscillatorNode.removeEventListener("ended",u),xe(this)&&Ir(this)};this._nativeOscillatorNode.addEventListener("ended",u)}}stop(c=0){this._nativeOscillatorNode.stop(c),this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.stop=c)}};var ym=(i,t,e,r,n)=>()=>{let o=new WeakMap,s=null,a=null,c=null,u=(h,l)=>J(null,null,function*(){let p=e(h),m=vt(p,l);if(!m){let f={channelCount:p.channelCount,channelCountMode:p.channelCountMode,channelInterpretation:p.channelInterpretation,detune:p.detune.value,frequency:p.frequency.value,periodicWave:s===null?void 0:s,type:p.type};p=t(l,f),a!==null&&p.start(a),c!==null&&p.stop(c)}return o.set(l,p),m?(yield i(l,h.detune,p.detune),yield i(l,h.frequency,p.frequency)):(yield r(l,h.detune,p.detune),yield r(l,h.frequency,p.frequency)),yield n(h,l,p),p});return{set periodicWave(h){s=h},set start(h){a=h},set stop(h){c=h},render(h,l){let p=o.get(l);return p!==void 0?Promise.resolve(p):u(h,l)}}};var qC={channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",coneInnerAngle:360,coneOuterAngle:360,coneOuterGain:0,distanceModel:"inverse",maxDistance:1e4,orientationX:1,orientationY:0,orientationZ:0,panningModel:"equalpower",positionX:0,positionY:0,positionZ:0,refDistance:1,rolloffFactor:1},bm=(i,t,e,r,n,o,s)=>class extends i{constructor(c,u){let h=n(c),l=O(O({},qC),u),p=e(h,l),m=o(h),f=m?r():null;super(c,!1,p,f),this._nativePannerNode=p,this._orientationX=t(this,m,p.orientationX,Ut,$t),this._orientationY=t(this,m,p.orientationY,Ut,$t),this._orientationZ=t(this,m,p.orientationZ,Ut,$t),this._positionX=t(this,m,p.positionX,Ut,$t),this._positionY=t(this,m,p.positionY,Ut,$t),this._positionZ=t(this,m,p.positionZ,Ut,$t),s(this,1)}get coneInnerAngle(){return this._nativePannerNode.coneInnerAngle}set coneInnerAngle(c){this._nativePannerNode.coneInnerAngle=c}get coneOuterAngle(){return this._nativePannerNode.coneOuterAngle}set coneOuterAngle(c){this._nativePannerNode.coneOuterAngle=c}get coneOuterGain(){return this._nativePannerNode.coneOuterGain}set coneOuterGain(c){this._nativePannerNode.coneOuterGain=c}get distanceModel(){return this._nativePannerNode.distanceModel}set distanceModel(c){this._nativePannerNode.distanceModel=c}get maxDistance(){return this._nativePannerNode.maxDistance}set maxDistance(c){this._nativePannerNode.maxDistance=c}get orientationX(){return this._orientationX}get orientationY(){return this._orientationY}get orientationZ(){return this._orientationZ}get panningModel(){return this._nativePannerNode.panningModel}set panningModel(c){this._nativePannerNode.panningModel=c}get positionX(){return this._positionX}get positionY(){return this._positionY}get positionZ(){return this._positionZ}get refDistance(){return this._nativePannerNode.refDistance}set refDistance(c){this._nativePannerNode.refDistance=c}get rolloffFactor(){return this._nativePannerNode.rolloffFactor}set rolloffFactor(c){this._nativePannerNode.rolloffFactor=c}};var xm=(i,t,e,r,n,o,s,a,c,u)=>()=>{let h=new WeakMap,l=null,p=(m,f)=>J(null,null,function*(){let g=null,b=o(m),x={channelCount:b.channelCount,channelCountMode:b.channelCountMode,channelInterpretation:b.channelInterpretation},C=Q(O({},x),{coneInnerAngle:b.coneInnerAngle,coneOuterAngle:b.coneOuterAngle,coneOuterGain:b.coneOuterGain,distanceModel:b.distanceModel,maxDistance:b.maxDistance,panningModel:b.panningModel,refDistance:b.refDistance,rolloffFactor:b.rolloffFactor}),S=vt(b,f);if("bufferSize"in b)g=r(f,Q(O({},x),{gain:1}));else if(!S){let T=Q(O({},C),{orientationX:b.orientationX.value,orientationY:b.orientationY.value,orientationZ:b.orientationZ.value,positionX:b.positionX.value,positionY:b.positionY.value,positionZ:b.positionZ.value});b=n(f,T)}if(h.set(f,g===null?b:g),g!==null){if(l===null){if(s===null)throw new Error("Missing the native OfflineAudioContext constructor.");let M=new s(6,m.context.length,f.sampleRate),R=t(M,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:6});R.connect(M.destination),l=J(null,null,function*(){let B=yield Promise.all([m.orientationX,m.orientationY,m.orientationZ,m.positionX,m.positionY,m.positionZ].map((D,j)=>J(null,null,function*(){let F=e(M,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:j===0?1:0});return yield a(M,D,F.offset),F})));for(let D=0;D<6;D+=1)B[D].connect(R,0,D),B[D].start(0);return u(M)})}let T=yield l,w=r(f,Q(O({},x),{gain:1}));yield c(m,f,w);let v=[];for(let M=0;M<T.numberOfChannels;M+=1)v.push(T.getChannelData(M));let A=[v[0][0],v[1][0],v[2][0]],_=[v[3][0],v[4][0],v[5][0]],E=r(f,Q(O({},x),{gain:1})),q=n(f,Q(O({},C),{orientationX:A[0],orientationY:A[1],orientationZ:A[2],positionX:_[0],positionY:_[1],positionZ:_[2]}));w.connect(E).connect(q.inputs[0]),q.connect(g);for(let M=128;M<T.length;M+=128){let R=[v[0][M],v[1][M],v[2][M]],B=[v[3][M],v[4][M],v[5][M]];if(R.some((D,j)=>D!==A[j])||B.some((D,j)=>D!==_[j])){A=R,_=B;let D=M/f.sampleRate;E.gain.setValueAtTime(0,D),E=r(f,Q(O({},x),{gain:0})),q=n(f,Q(O({},C),{orientationX:A[0],orientationY:A[1],orientationZ:A[2],positionX:_[0],positionY:_[1],positionZ:_[2]})),E.gain.setValueAtTime(1,D),w.connect(E).connect(q.inputs[0]),q.connect(g)}}return g}return S?(yield i(f,m.orientationX,b.orientationX),yield i(f,m.orientationY,b.orientationY),yield i(f,m.orientationZ,b.orientationZ),yield i(f,m.positionX,b.positionX),yield i(f,m.positionY,b.positionY),yield i(f,m.positionZ,b.positionZ)):(yield a(f,m.orientationX,b.orientationX),yield a(f,m.orientationY,b.orientationY),yield a(f,m.orientationZ,b.orientationZ),yield a(f,m.positionX,b.positionX),yield a(f,m.positionY,b.positionY),yield a(f,m.positionZ,b.positionZ)),Ye(b)?yield c(m,f,b.inputs[0]):yield c(m,f,b),b});return{render(m,f){let g=h.get(f);return g!==void 0?Promise.resolve(g):p(m,f)}}};var WC={disableNormalization:!1},Am=(i,t,e,r)=>class Cm{constructor(o,s){let a=t(o),c=r(O(O({},WC),s)),u=i(a,c);return e.add(u),u}static[Symbol.hasInstance](o){return o!==null&&typeof o=="object"&&Object.getPrototypeOf(o)===Cm.prototype||e.has(o)}};var _m=(i,t)=>(e,r,n)=>(i(r).replay(n),t(r,e,n));var vm=(i,t,e)=>(r,n,o)=>J(null,null,function*(){let s=i(r);yield Promise.all(s.activeInputs.map((a,c)=>Array.from(a).map(l=>J(null,[l],function*([u,h]){let m=yield t(u).render(u,n),f=r.context.destination;!e(u)&&(r!==f||!e(r))&&m.connect(o,h,c)}))).reduce((a,c)=>[...a,...c],[]))});var Sm=(i,t,e)=>(r,n,o)=>J(null,null,function*(){let s=t(r);yield Promise.all(Array.from(s.activeInputs).map(u=>J(null,[u],function*([a,c]){let l=yield i(a).render(a,n);e(a)||l.connect(o,c)})))});var wm=(i,t,e,r)=>n=>i(cr,()=>cr(n))?Promise.resolve(i(r,r)).then(o=>{if(!o){let s=e(n,512,0,1);n.oncomplete=()=>{s.onaudioprocess=null,s.disconnect()},s.onaudioprocess=()=>n.currentTime,s.connect(n.destination)}return n.startRendering()}):new Promise(o=>{let s=t(n,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});n.oncomplete=a=>{s.disconnect(),o(a.renderedBuffer)},s.connect(n.destination),n.startRendering()});var Im=i=>(t,e)=>{i.set(t,e)};var Tm=i=>(t,e)=>i.set(t,e);var Nm=(i,t,e,r,n,o,s,a)=>(c,u)=>e(c).render(c,u).then(()=>Promise.all(Array.from(r(u)).map(h=>e(h).render(h,u)))).then(()=>n(u)).then(h=>(typeof h.copyFromChannel!="function"?(s(h),ln(h)):t(o,()=>o(h))||a(h),i.add(h),h));var UC={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers",pan:0},Om=(i,t,e,r,n,o)=>class extends i{constructor(a,c){let u=n(a),h=O(O({},UC),c),l=e(u,h),p=o(u),m=p?r():null;super(a,!1,l,m),this._pan=t(this,p,l.pan)}get pan(){return this._pan}};var Rm=(i,t,e,r,n)=>()=>{let o=new WeakMap,s=(a,c)=>J(null,null,function*(){let u=e(a),h=vt(u,c);if(!h){let l={channelCount:u.channelCount,channelCountMode:u.channelCountMode,channelInterpretation:u.channelInterpretation,pan:u.pan.value};u=t(c,l)}return o.set(c,u),h?yield i(c,a.pan,u.pan):yield r(c,a.pan,u.pan),Ye(u)?yield n(a,c,u.inputs[0]):yield n(a,c,u),u});return{render(a,c){let u=o.get(c);return u!==void 0?Promise.resolve(u):s(a,c)}}};var Mm=i=>()=>{if(i===null)return!1;try{new i({length:1,sampleRate:44100})}catch(t){return!1}return!0};var Em=(i,t)=>()=>J(null,null,function*(){if(i===null)return!0;if(t===null)return!1;let e=new Blob(['class A extends AudioWorkletProcessor{process(i){this.port.postMessage(i,[i[0][0].buffer])}}registerProcessor("a",A)'],{type:"application/javascript; charset=utf-8"}),r=new t(1,128,44100),n=URL.createObjectURL(e),o=!1,s=!1;try{yield r.audioWorklet.addModule(n);let a=new i(r,"a",{numberOfOutputs:0}),c=r.createOscillator();a.port.onmessage=()=>o=!0,a.onprocessorerror=()=>s=!0,c.connect(a),c.start(0),yield r.startRendering(),yield new Promise(u=>setTimeout(u))}catch(a){}finally{URL.revokeObjectURL(n)}return o&&!s});var Dm=(i,t)=>()=>{if(t===null)return Promise.resolve(!1);let e=new t(1,1,44100),r=i(e,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});return new Promise(n=>{e.oncomplete=()=>{r.disconnect(),n(e.currentTime!==0)},e.startRendering()})};var Wu=()=>new DOMException("","UnknownError");var zC={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",curve:null,oversample:"none"},km=(i,t,e,r,n,o,s)=>class extends i{constructor(c,u){let h=n(c),l=O(O({},zC),u),p=e(h,l),f=o(h)?r():null;super(c,!0,p,f),this._isCurveNullified=!1,this._nativeWaveShaperNode=p,s(this,1)}get curve(){return this._isCurveNullified?null:this._nativeWaveShaperNode.curve}set curve(c){if(c===null)this._isCurveNullified=!0,this._nativeWaveShaperNode.curve=new Float32Array([0,0]);else{if(c.length<2)throw t();this._isCurveNullified=!1,this._nativeWaveShaperNode.curve=c}}get oversample(){return this._nativeWaveShaperNode.oversample}set oversample(c){this._nativeWaveShaperNode.oversample=c}};var Lm=(i,t,e)=>()=>{let r=new WeakMap,n=(o,s)=>J(null,null,function*(){let a=t(o);if(!vt(a,s)){let u={channelCount:a.channelCount,channelCountMode:a.channelCountMode,channelInterpretation:a.channelInterpretation,curve:a.curve,oversample:a.oversample};a=i(s,u)}return r.set(s,a),Ye(a)?yield e(o,s,a.inputs[0]):yield e(o,s,a),a});return{render(o,s){let a=r.get(s);return a!==void 0?Promise.resolve(a):n(o,s)}}};var jm=()=>typeof window=="undefined"?null:window;var Pm=(i,t)=>e=>{e.copyFromChannel=(r,n,o=0)=>{let s=i(o),a=i(n);if(a>=e.numberOfChannels)throw t();let c=e.length,u=e.getChannelData(a),h=r.length;for(let l=s<0?-s:0;l+s<c&&l<h;l+=1)r[l]=u[l+s]},e.copyToChannel=(r,n,o=0)=>{let s=i(o),a=i(n);if(a>=e.numberOfChannels)throw t();let c=e.length,u=e.getChannelData(a),h=r.length;for(let l=s<0?-s:0;l+s<c&&l<h;l+=1)u[l+s]=r[l]}};var Fm=i=>t=>{t.copyFromChannel=(e=>(r,n,o=0)=>{let s=i(o),a=i(n);if(s<t.length)return e.call(t,r,a,s)})(t.copyFromChannel),t.copyToChannel=(e=>(r,n,o=0)=>{let s=i(o),a=i(n);if(s<t.length)return e.call(t,r,a,s)})(t.copyToChannel)};var Bm=i=>(t,e)=>{let r=e.createBuffer(1,1,44100);t.buffer===null&&(t.buffer=r),i(t,"buffer",n=>()=>{let o=n.call(t);return o===r?null:o},n=>o=>n.call(t,o===null?r:o))};var Gm=(i,t)=>(e,r)=>{r.channelCount=1,r.channelCountMode="explicit",Object.defineProperty(r,"channelCount",{get:()=>1,set:()=>{throw i()}}),Object.defineProperty(r,"channelCountMode",{get:()=>"explicit",set:()=>{throw i()}});let n=e.createBufferSource();t(r,()=>{let a=r.numberOfInputs;for(let c=0;c<a;c+=1)n.connect(r,0,c)},()=>n.disconnect(r))};var Uu=(i,t,e)=>i.copyFromChannel===void 0?i.getChannelData(e)[0]:(i.copyFromChannel(t,e),t[0]);var zu=i=>{if(i===null)return!1;let t=i.length;return t%2!==0?i[Math.floor(t/2)]!==0:i[t/2-1]+i[t/2]!==0};var vn=(i,t,e,r)=>{let n=i;for(;!n.hasOwnProperty(t);)n=Object.getPrototypeOf(n);let{get:o,set:s}=Object.getOwnPropertyDescriptor(n,t);Object.defineProperty(i,t,{get:e(o),set:r(s)})};var Vm=i=>Q(O({},i),{outputChannelCount:i.outputChannelCount!==void 0?i.outputChannelCount:i.numberOfInputs===1&&i.numberOfOutputs===1?[i.channelCount]:Array.from({length:i.numberOfOutputs},()=>1)});var qm=i=>Q(O({},i),{channelCount:i.numberOfOutputs});var Wm=i=>{let{imag:t,real:e}=i;return t===void 0?e===void 0?Q(O({},i),{imag:[0,0],real:[0,0]}):Q(O({},i),{imag:Array.from(e,()=>0),real:e}):e===void 0?Q(O({},i),{imag:t,real:Array.from(t,()=>0)}):Q(O({},i),{imag:t,real:e})};var Yu=(i,t,e)=>{try{i.setValueAtTime(t,e)}catch(r){if(r.code!==9)throw r;Yu(i,t,e+1e-7)}};var Um=i=>{let t=i.createBufferSource();t.start();try{t.start()}catch(e){return!0}return!1};var zm=i=>{let t=i.createBufferSource(),e=i.createBuffer(1,1,44100);t.buffer=e;try{t.start(0,1)}catch(r){return!1}return!0};var Ym=i=>{let t=i.createBufferSource();t.start();try{t.stop()}catch(e){return!1}return!0};var pa=i=>{let t=i.createOscillator();try{t.start(-1)}catch(e){return e instanceof RangeError}return!1};var Hu=i=>{let t=i.createBuffer(1,1,44100),e=i.createBufferSource();e.buffer=t,e.start(),e.stop();try{return e.stop(),!0}catch(r){return!1}};var ma=i=>{let t=i.createOscillator();try{t.stop(-1)}catch(e){return e instanceof RangeError}return!1};var Hm=i=>{let{port1:t,port2:e}=new MessageChannel;try{t.postMessage(i)}finally{t.close(),e.close()}};var $m=i=>{i.start=(t=>(e=0,r=0,n)=>{let o=i.buffer,s=o===null?r:Math.min(o.duration,r);o!==null&&s>o.duration-.5/i.context.sampleRate?t.call(i,e,0,0):t.call(i,e,s,n)})(i.start)};var $u=(i,t)=>{let e=t.createGain();i.connect(e);let r=(n=>()=>{n.call(i,e),i.removeEventListener("ended",r)})(i.disconnect);i.addEventListener("ended",r),He(i,e),i.stop=(n=>{let o=!1;return(s=0)=>{if(o)try{n.call(i,s)}catch(a){e.gain.setValueAtTime(0,s)}else n.call(i,s),o=!0}})(i.stop)};var ki=(i,t)=>e=>{let r={value:i};return Object.defineProperties(e,{currentTarget:r,target:r}),typeof t=="function"?t.call(i,e):t.handleEvent.call(i,e)};var YC=Fl(ar),HC=$l(ar),$C=Wd(ni),Xm=new WeakMap,ZC=op(Xm),$e=Sd(new Map,new WeakMap),Tr=jm(),Qm=kp($e,ze),Zu=np(oe),he=vm(oe,Zu,Wr),XC=Kl(Qm,Rt,he),jt=cp(un),Ur=sm(Tr),Mt=vp(Ur),Km=new WeakMap,Jm=Kd(ki),Sn=Fp(Tr),Xu=xp(Sn),Qu=Ap(Tr),tf=Cp(Tr),wo=Gp(Tr),Zt=fd(Bl(ea),Hl(YC,HC,dn,$C,pn,oe,ZC,wr,Rt,ar,xe,Wr,mn),$e,mp(Co,pn,oe,Rt,Ei,xe),ze,bn,ue,Gd(dn,Co,oe,Rt,Ei,jt,xe,Mt),Yd(Km,oe,Jt),Jm,jt,Xu,Qu,tf,Mt,wo),QC=Ql(Zt,XC,ze,Qm,jt,Mt);var Ku=new WeakSet,Zm=Lp(Tr),ef=kd(new Uint32Array(1)),Ju=Pm(ef,ze),th=Fm(ef),eh=Jl(Ku,$e,ue,Zm,Ur,Mm(Zm),Ju,th);var fa=Zl(Ae),rf=Sm(Zu,oi,Wr),Nr=Od(rf),wn=Pp(fa,$e,Um,zm,Ym,pa,Hu,ma,$m,Bm(vn),$u),Or=_m(sp(oi),rf),KC=rd(Nr,wn,Rt,Or,he),ur=gd(Gl(ra),Km,Ao,yd,wu,Iu,Tu,Nu,Ou,on,fo,Sn,Yu),JC=ed(Zt,KC,ur,Ft,wn,jt,Mt,ki);var t_=hd(Zt,ld,ze,Ft,Bp(Ae,vn),jt,Mt,he),e_=vd(Nr,Vu,Rt,Or,he),Li=Tm(Xm),r_=_d(Zt,ur,e_,bn,Vu,jt,Mt,Li),ci=Ep(ar,Qu),i_=Gm(Ft,ci),ui=Hp(Sn,i_),n_=Id(ui,Rt,he),o_=wd(Zt,n_,ui,jt,Mt),s_=Nd(Cn,Rt,he),a_=Td(Zt,s_,Cn,jt,Mt,qm),c_=Xp(fa,wn,Ae,ci),In=Zp(fa,$e,c_,pa,ma),u_=Dd(Nr,In,Rt,Or,he),h_=Ed(Zt,ur,u_,In,jt,Mt,ki),nf=Qp(ue,vn),l_=jd(nf,Rt,he),d_=Ld(Zt,l_,nf,jt,Mt,Li),p_=qd(Nr,qu,Rt,Or,he),m_=Vd(Zt,ur,p_,qu,jt,Mt,Li),of=Kp(ue),f_=Zd(Nr,of,Rt,Or,he),g_=$d(Zt,ur,f_,of,ue,jt,Mt,Li),y_=rp(Nr,Ae,Rt,Or,he),b_=ep(Zt,ur,y_,Ae,jt,Mt),x_=em(bn,Ft,_n,ue),ga=wm($e,Ae,_n,Dm(Ae,Ur)),A_=pp(wn,Rt,Ur,he,ga),C_=Jp(x_),__=dp(Zt,C_,A_,jt,Mt,Li),v_=dd(ur,ui,In,_n,ue,Uu,Mt,vn),sf=new WeakMap,rh=Rp(t_,v_,Jm,Mt,sf,ki),af=am(fa,$e,pa,Hu,ma,$u),S_=ym(Nr,af,Rt,Or,he),w_=gm(Zt,ur,af,S_,jt,Mt,ki),cf=Md(wn),I_=mm(cf,Ft,Ae,zu,ci),ya=pm(cf,Ft,I_,zu,ci,Sn,vn),T_=um(dn,Ft,ui,Ae,_n,ya,ue,pn,Uu,ci),uf=cm(T_),N_=xm(Nr,ui,In,Ae,uf,Rt,Ur,Or,he,ga),O_=bm(Zt,ur,uf,N_,jt,Mt,Li),R_=hm(ze),M_=Am(R_,jt,new WeakSet,Wm),E_=dm(ui,Cn,Ae,ya,ue,ci),hf=lm(E_,ue),D_=Rm(Nr,hf,Rt,Or,he),k_=Om(Zt,ur,hf,D_,jt,Mt),L_=Lm(ya,Rt,he),j_=km(Zt,Ft,ya,L_,jt,Mt,Li),lf=Sp(Tr),ih=Jd(Tr),df=new WeakMap,P_=up(df,Ur),F_=lf?Yl($e,ue,Qd(Tr),ih,tp(Pl),jt,P_,Mt,wo,new WeakMap,new WeakMap,Em(wo,Ur),Tr):void 0,B_=_p(Xu,Mt),G_=Bd(Ku,$e,Fd,Xd,new WeakSet,jt,B_,hn,cr,Ju,th),pf=Cd(F_,QC,eh,JC,r_,o_,a_,h_,d_,G_,m_,g_,b_,__,rh,w_,O_,M_,k_,j_),V_=wp(Zt,rm,jt,Mt),q_=Ip(Zt,im,jt,Mt),W_=Tp(Zt,nm,jt,Mt),U_=om(Ft,Mt),z_=Np(Zt,U_,jt),mf=ud(pf,Ft,ue,Wu,V_,q_,W_,z_,Sn);var nh=hp(sf),Y_=Xl(nh),ff=Rd(ze),H_=Ud(nh),gf=Hd(ze),yf=new WeakMap,$_=ip(yf,Jt),Z_=Yp(ff,ze,Ft,ui,Cn,In,Ae,_n,ue,gf,ih,$_,ci),X_=qp(Ft,Z_,Ae,ue,ci),Q_=Ad(Nr,ff,wn,ui,Cn,In,Ae,H_,gf,ih,Rt,wo,Ur,Or,he,ga),K_=ap(df),J_=Im(yf),oh=lf?bd(Y_,Zt,ur,Q_,X_,oe,K_,jt,Mt,wo,Vm,J_,Hm,ki):void 0;var fU=Op(Ft,ue,Wu,rh,Sn);var bf=Pd(ue,Ur),xf=Nm(Ku,$e,Zu,nh,ga,hn,Ju,th),gU=Mp($e,Ft,bf,rh,xf);var Af=fm(pf,$e,Ft,bf,xf);var Cf=fp(un,Xu),_f=gp(cn,Qu),vf=yp(Ao,tf),Sf=bp(un,Mt);function Xt(i){return i===void 0}function it(i){return i!==void 0}function wf(i){return typeof i=="function"}function le(i){return typeof i=="number"}function hr(i){return Object.prototype.toString.call(i)==="[object Object]"&&i.constructor===Object}function sh(i){return typeof i=="boolean"}function Vt(i){return Array.isArray(i)}function fe(i){return typeof i=="string"}function Io(i){return fe(i)&&/^([a-g]{1}(?:b|#|x|bb)?)(-?[0-9]+)/i.test(i)}function Y(i,t){if(!i)throw new Error(t)}function zt(i,t,e=1/0){if(!(t<=i&&i<=e))throw new RangeError(`Value must be within [${t}, ${e}], got: ${i}`)}function ba(i){!i.isOffline&&i.state!=="running"&&ji('The AudioContext is "suspended". Invoke Tone.start() from a user action to start the audio.')}var Tf=!1,If=!1;function ah(i){Tf=i}function Nf(i){Xt(i)&&Tf&&!If&&(If=!0,ji("Events scheduled inside of scheduled callbacks should use the passed in scheduling time. See https://github.com/Tonejs/Tone.js/wiki/Accurate-Timing"))}var Of=console;function Rf(...i){Of.log(...i)}function ji(...i){Of.warn(...i)}function Mf(i){return new mf(i)}function Ef(i,t,e){return new Af(i,t,e)}var ge=typeof self=="object"?self:null,Df=ge&&(ge.hasOwnProperty("AudioContext")||ge.hasOwnProperty("webkitAudioContext"));function kf(i,t,e){return Y(it(oh),"AudioWorkletNode only works in a secure context (https or localhost)"),new(i instanceof(ge==null?void 0:ge.BaseAudioContext)?ge==null?void 0:ge.AudioWorkletNode:oh)(i,t,e)}function ye(i,t,e,r){var n=arguments.length,o=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(i,t,e,r);else for(var a=i.length-1;a>=0;a--)(s=i[a])&&(o=(n<3?s(o):n>3?s(t,e,o):s(t,e))||o);return n>3&&o&&Object.defineProperty(t,e,o),o}function yt(i,t,e,r){function n(o){return o instanceof e?o:new e(function(s){s(o)})}return new(e||(e=Promise))(function(o,s){function a(h){try{u(r.next(h))}catch(l){s(l)}}function c(h){try{u(r.throw(h))}catch(l){s(l)}}function u(h){h.done?o(h.value):n(h.value).then(a,c)}u((r=r.apply(i,t||[])).next())})}var xa=class{constructor(t,e,r,n){this._callback=t,this._type=e,this._minimumUpdateInterval=Math.max(128/(n||44100),.001),this.updateInterval=r,this._createClock()}_createWorker(){let t=new Blob([`
84
+ })(${A?"AudioWorkletProcessor":"class extends AudioWorkletProcessor {__b=new WeakSet();constructor(){super();(p=>p.postMessage=(q=>(m,t)=>q.call(p,m,t?t.filter(u=>!this.__b.has(u)):t))(p.postMessage))(this.port)}}"},(n,p)=>registerProcessor(n,class extends p{${A?"":"__c = (a) => a.forEach(e=>this.__b.add(e.buffer));"}process(i,o,p){${A?"":"i.forEach(this.__c);o.forEach(this.__c);this.__c(Object.values(p));"}return super.process(i.map(j=>j.some(k=>k.length===0)?[]:j),o,p)}}));registerProcessor('__sac${_}',class extends AudioWorkletProcessor{process(){return !1}})`,j=new Blob([D],{type:"application/javascript; charset=utf-8"}),F=URL.createObjectURL(j);return S.audioWorklet.addModule(F,b).then(()=>{if(a(S))return S;let W=s(S);return W.audioWorklet.addModule(F,b).then(()=>W)}).then(W=>{if(c===null)throw new SyntaxError;try{new c(W,`__sac${_}`)}catch(K){throw new SyntaxError}}).finally(()=>URL.revokeObjectURL(F))});return C===void 0?u.set(f,new Map([[g,T]])):C.set(g,T),T.then(()=>{let w=h.get(f);w===void 0?h.set(f,new Set([g])):w.add(g)}).finally(()=>{let w=u.get(f);w!==void 0&&w.delete(g)}),T}};var Jt=(i,t)=>{let e=i.get(t);if(e===void 0)throw new Error("A value with the given key could not be found.");return e};var ni=(i,t)=>{let e=Array.from(i).filter(t);if(e.length>1)throw Error("More than one element was found.");if(e.length===0)throw Error("No element was found.");let[r]=e;return i.delete(r),r};var na=(i,t,e,r)=>{let n=Jt(i,t),o=ni(n,s=>s[0]===e&&s[1]===r);return n.size===0&&i.delete(t),o};var wr=i=>Jt(ia,i);var sr=i=>{if(Sr.has(i))throw new Error("The AudioNode is already stored.");Sr.add(i),wr(i).forEach(t=>t(!0))};var oa=i=>"port"in i;var Ir=i=>{if(!Sr.has(i))throw new Error("The AudioNode is not stored.");Sr.delete(i),wr(i).forEach(t=>t(!1))};var So=(i,t)=>{!oa(i)&&t.every(e=>e.size===0)&&Ir(i)};var Hl=(i,t,e,r,n,o,s,a,c,u,h,l,p)=>{let m=new WeakMap;return(f,g,b,x,C)=>{let{activeInputs:S,passiveInputs:T}=o(g),{outputs:w}=o(f),v=a(f),A=_=>{let E=c(g),q=c(f);if(_){let M=na(T,f,b,x);i(S,f,M,!1),!C&&!l(f)&&e(q,E,b,x),p(g)&&sr(g)}else{let M=r(S,f,b,x);t(T,x,M,!1),!C&&!l(f)&&n(q,E,b,x);let R=s(g);if(R===0)h(g)&&So(g,S);else{let B=m.get(g);B!==void 0&&clearTimeout(B),m.set(g,setTimeout(()=>{h(g)&&So(g,S)},R*1e3))}}};return u(w,[g,b,x],_=>_[0]===g&&_[1]===b&&_[2]===x,!0)?(v.add(A),h(f)?i(S,f,[b,x,A],!0):t(T,x,[f,b,A],!0),!0):!1}};var $l=i=>(t,e,[r,n,o],s)=>{let a=t.get(r);a===void 0?t.set(r,new Set([[n,e,o]])):i(a,[n,e,o],c=>c[0]===n&&c[1]===e,s)};var Zl=i=>(t,e)=>{let r=i(t,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});e.connect(r).connect(t.destination);let n=()=>{e.removeEventListener("ended",n),e.disconnect(r),r.disconnect()};e.addEventListener("ended",n)};var Xl=i=>(t,e)=>{i(t).add(e)};var gC={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",fftSize:2048,maxDecibels:-30,minDecibels:-100,smoothingTimeConstant:.8},Ql=(i,t,e,r,n,o)=>class extends i{constructor(a,c){let u=n(a),h=O(O({},gC),c),l=r(u,h),p=o(u)?t():null;super(a,!1,l,p),this._nativeAnalyserNode=l}get fftSize(){return this._nativeAnalyserNode.fftSize}set fftSize(a){this._nativeAnalyserNode.fftSize=a}get frequencyBinCount(){return this._nativeAnalyserNode.frequencyBinCount}get maxDecibels(){return this._nativeAnalyserNode.maxDecibels}set maxDecibels(a){let c=this._nativeAnalyserNode.maxDecibels;if(this._nativeAnalyserNode.maxDecibels=a,!(a>this._nativeAnalyserNode.minDecibels))throw this._nativeAnalyserNode.maxDecibels=c,e()}get minDecibels(){return this._nativeAnalyserNode.minDecibels}set minDecibels(a){let c=this._nativeAnalyserNode.minDecibels;if(this._nativeAnalyserNode.minDecibels=a,!(this._nativeAnalyserNode.maxDecibels>a))throw this._nativeAnalyserNode.minDecibels=c,e()}get smoothingTimeConstant(){return this._nativeAnalyserNode.smoothingTimeConstant}set smoothingTimeConstant(a){this._nativeAnalyserNode.smoothingTimeConstant=a}getByteFrequencyData(a){this._nativeAnalyserNode.getByteFrequencyData(a)}getByteTimeDomainData(a){this._nativeAnalyserNode.getByteTimeDomainData(a)}getFloatFrequencyData(a){this._nativeAnalyserNode.getFloatFrequencyData(a)}getFloatTimeDomainData(a){this._nativeAnalyserNode.getFloatTimeDomainData(a)}};var vt=(i,t)=>i.context===t;var Kl=(i,t,e)=>()=>{let r=new WeakMap,n=(o,s)=>J(null,null,function*(){let a=t(o);if(!vt(a,s)){let u={channelCount:a.channelCount,channelCountMode:a.channelCountMode,channelInterpretation:a.channelInterpretation,fftSize:a.fftSize,maxDecibels:a.maxDecibels,minDecibels:a.minDecibels,smoothingTimeConstant:a.smoothingTimeConstant};a=i(s,u)}return r.set(s,a),yield e(o,s,a),a});return{render(o,s){let a=r.get(s);return a!==void 0?Promise.resolve(a):n(o,s)}}};var hn=i=>{try{i.copyToChannel(new Float32Array(1),0,-1)}catch(t){return!1}return!0};var ze=()=>new DOMException("","IndexSizeError");var ln=i=>{i.getChannelData=(t=>e=>{try{return t.call(i,e)}catch(r){throw r.code===12?ze():r}})(i.getChannelData)};var yC={numberOfChannels:1},Jl=(i,t,e,r,n,o,s,a)=>{let c=null;return class td{constructor(h){if(n===null)throw new Error("Missing the native OfflineAudioContext constructor.");let{length:l,numberOfChannels:p,sampleRate:m}=O(O({},yC),h);c===null&&(c=new n(1,1,44100));let f=r!==null&&t(o,o)?new r({length:l,numberOfChannels:p,sampleRate:m}):c.createBuffer(p,l,m);if(f.numberOfChannels===0)throw e();return typeof f.copyFromChannel!="function"?(s(f),ln(f)):t(hn,()=>hn(f))||a(f),i.add(f),f}static[Symbol.hasInstance](h){return h!==null&&typeof h=="object"&&Object.getPrototypeOf(h)===td.prototype||i.has(h)}}};var $t=-34028234663852886e22,Ut=-$t;var xe=i=>Sr.has(i);var bC={buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1},ed=(i,t,e,r,n,o,s,a)=>class extends i{constructor(u,h){let l=o(u),p=O(O({},bC),h),m=n(l,p),f=s(l),g=f?t():null;super(u,!1,m,g),this._audioBufferSourceNodeRenderer=g,this._isBufferNullified=!1,this._isBufferSet=p.buffer!==null,this._nativeAudioBufferSourceNode=m,this._onended=null,this._playbackRate=e(this,f,m.playbackRate,Ut,$t)}get buffer(){return this._isBufferNullified?null:this._nativeAudioBufferSourceNode.buffer}set buffer(u){if(this._nativeAudioBufferSourceNode.buffer=u,u!==null){if(this._isBufferSet)throw r();this._isBufferSet=!0}}get loop(){return this._nativeAudioBufferSourceNode.loop}set loop(u){this._nativeAudioBufferSourceNode.loop=u}get loopEnd(){return this._nativeAudioBufferSourceNode.loopEnd}set loopEnd(u){this._nativeAudioBufferSourceNode.loopEnd=u}get loopStart(){return this._nativeAudioBufferSourceNode.loopStart}set loopStart(u){this._nativeAudioBufferSourceNode.loopStart=u}get onended(){return this._onended}set onended(u){let h=typeof u=="function"?a(this,u):null;this._nativeAudioBufferSourceNode.onended=h;let l=this._nativeAudioBufferSourceNode.onended;this._onended=l!==null&&l===h?u:l}get playbackRate(){return this._playbackRate}start(u=0,h=0,l){if(this._nativeAudioBufferSourceNode.start(u,h,l),this._audioBufferSourceNodeRenderer!==null&&(this._audioBufferSourceNodeRenderer.start=l===void 0?[u,h]:[u,h,l]),this.context.state!=="closed"){sr(this);let p=()=>{this._nativeAudioBufferSourceNode.removeEventListener("ended",p),xe(this)&&Ir(this)};this._nativeAudioBufferSourceNode.addEventListener("ended",p)}}stop(u=0){this._nativeAudioBufferSourceNode.stop(u),this._audioBufferSourceNodeRenderer!==null&&(this._audioBufferSourceNodeRenderer.stop=u)}};var rd=(i,t,e,r,n)=>()=>{let o=new WeakMap,s=null,a=null,c=(u,h)=>J(null,null,function*(){let l=e(u),p=vt(l,h);if(!p){let m={buffer:l.buffer,channelCount:l.channelCount,channelCountMode:l.channelCountMode,channelInterpretation:l.channelInterpretation,loop:l.loop,loopEnd:l.loopEnd,loopStart:l.loopStart,playbackRate:l.playbackRate.value};l=t(h,m),s!==null&&l.start(...s),a!==null&&l.stop(a)}return o.set(h,l),p?yield i(h,u.playbackRate,l.playbackRate):yield r(h,u.playbackRate,l.playbackRate),yield n(u,h,l),l});return{set start(u){s=u},set stop(u){a=u},render(u,h){let l=o.get(h);return l!==void 0?Promise.resolve(l):c(u,h)}}};var id=i=>"playbackRate"in i;var nd=i=>"frequency"in i&&"gain"in i;var od=i=>"offset"in i;var sd=i=>!("frequency"in i)&&"gain"in i;var ad=i=>"detune"in i&&"frequency"in i&&!("gain"in i);var cd=i=>"pan"in i;var oe=i=>Jt(ea,i);var oi=i=>Jt(ra,i);var sa=(i,t)=>{let{activeInputs:e}=oe(i);e.forEach(n=>n.forEach(([o])=>{t.includes(i)||sa(o,[...t,i])}));let r=id(i)?[i.playbackRate]:oa(i)?Array.from(i.parameters.values()):nd(i)?[i.Q,i.detune,i.frequency,i.gain]:od(i)?[i.offset]:sd(i)?[i.gain]:ad(i)?[i.detune,i.frequency]:cd(i)?[i.pan]:[];for(let n of r){let o=oi(n);o!==void 0&&o.activeInputs.forEach(([s])=>sa(s,t))}xe(i)&&Ir(i)};var si=i=>{sa(i.destination,[])};var aa=i=>i===void 0||typeof i=="number"||typeof i=="string"&&(i==="balanced"||i==="interactive"||i==="playback");var ud=(i,t,e,r,n,o,s,a,c)=>class extends i{constructor(h={}){if(c===null)throw new Error("Missing the native AudioContext constructor.");let l;try{l=new c(h)}catch(f){throw f.code===12&&f.message==="sampleRate is not in range"?e():f}if(l===null)throw r();if(!aa(h.latencyHint))throw new TypeError(`The provided value '${h.latencyHint}' is not a valid enum value of type AudioContextLatencyCategory.`);if(h.sampleRate!==void 0&&l.sampleRate!==h.sampleRate)throw e();super(l,2);let{latencyHint:p}=h,{sampleRate:m}=l;if(this._baseLatency=typeof l.baseLatency=="number"?l.baseLatency:p==="balanced"?512/m:p==="interactive"||p===void 0?256/m:p==="playback"?1024/m:Math.max(2,Math.min(128,Math.round(p*m/128)))*128/m,this._nativeAudioContext=l,c.name==="webkitAudioContext"?(this._nativeGainNode=l.createGain(),this._nativeOscillatorNode=l.createOscillator(),this._nativeGainNode.gain.value=1e-37,this._nativeOscillatorNode.connect(this._nativeGainNode).connect(l.destination),this._nativeOscillatorNode.start()):(this._nativeGainNode=null,this._nativeOscillatorNode=null),this._state=null,l.state==="running"){this._state="suspended";let f=()=>{this._state==="suspended"&&(this._state=null),l.removeEventListener("statechange",f)};l.addEventListener("statechange",f)}}get baseLatency(){return this._baseLatency}get state(){return this._state!==null?this._state:this._nativeAudioContext.state}close(){return this.state==="closed"?this._nativeAudioContext.close().then(()=>{throw t()}):(this._state==="suspended"&&(this._state=null),this._nativeAudioContext.close().then(()=>{this._nativeGainNode!==null&&this._nativeOscillatorNode!==null&&(this._nativeOscillatorNode.stop(),this._nativeGainNode.disconnect(),this._nativeOscillatorNode.disconnect()),si(this)}))}createMediaElementSource(h){return new n(this,{mediaElement:h})}createMediaStreamDestination(){return new o(this)}createMediaStreamSource(h){return new s(this,{mediaStream:h})}createMediaStreamTrackSource(h){return new a(this,{mediaStreamTrack:h})}resume(){return this._state==="suspended"?new Promise((h,l)=>{let p=()=>{this._nativeAudioContext.removeEventListener("statechange",p),this._nativeAudioContext.state==="running"?h():this.resume().then(h,l)};this._nativeAudioContext.addEventListener("statechange",p)}):this._nativeAudioContext.resume().catch(h=>{throw h===void 0||h.code===15?t():h})}suspend(){return this._nativeAudioContext.suspend().catch(h=>{throw h===void 0?t():h})}};var hd=(i,t,e,r,n,o,s,a)=>class extends i{constructor(u,h){let l=o(u),p=s(l),m=n(l,h,p),f=p?t(a):null;super(u,!1,m,f),this._isNodeOfNativeOfflineAudioContext=p,this._nativeAudioDestinationNode=m}get channelCount(){return this._nativeAudioDestinationNode.channelCount}set channelCount(u){if(this._isNodeOfNativeOfflineAudioContext)throw r();if(u>this._nativeAudioDestinationNode.maxChannelCount)throw e();this._nativeAudioDestinationNode.channelCount=u}get channelCountMode(){return this._nativeAudioDestinationNode.channelCountMode}set channelCountMode(u){if(this._isNodeOfNativeOfflineAudioContext)throw r();this._nativeAudioDestinationNode.channelCountMode=u}get maxChannelCount(){return this._nativeAudioDestinationNode.maxChannelCount}};var ld=i=>{let t=new WeakMap,e=(r,n)=>J(null,null,function*(){let o=n.destination;return t.set(n,o),yield i(r,n,o),o});return{render(r,n){let o=t.get(n);return o!==void 0?Promise.resolve(o):e(r,n)}}};var dd=(i,t,e,r,n,o,s,a)=>(c,u)=>{let h=u.listener,l=()=>{let w=new Float32Array(1),v=t(u,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:9}),A=s(u),_=!1,E=[0,0,-1,0,1,0],q=[0,0,0],M=()=>{if(_)return;_=!0;let j=r(u,256,9,0);j.onaudioprocess=({inputBuffer:F})=>{let W=[o(F,w,0),o(F,w,1),o(F,w,2),o(F,w,3),o(F,w,4),o(F,w,5)];W.some((k,nt)=>k!==E[nt])&&(h.setOrientation(...W),E=W);let K=[o(F,w,6),o(F,w,7),o(F,w,8)];K.some((k,nt)=>k!==q[nt])&&(h.setPosition(...K),q=K)},v.connect(j)},R=j=>F=>{F!==E[j]&&(E[j]=F,h.setOrientation(...E))},B=j=>F=>{F!==q[j]&&(q[j]=F,h.setPosition(...q))},D=(j,F,W)=>{let K=e(u,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:F});K.connect(v,0,j),K.start(),Object.defineProperty(K.offset,"defaultValue",{get(){return F}});let k=i({context:c},A,K.offset,Ut,$t);return a(k,"value",nt=>()=>nt.call(k),nt=>mt=>{try{nt.call(k,mt)}catch(Ct){if(Ct.code!==9)throw Ct}M(),A&&W(mt)}),k.cancelAndHoldAtTime=(nt=>A?()=>{throw n()}:(...mt)=>{let Ct=nt.apply(k,mt);return M(),Ct})(k.cancelAndHoldAtTime),k.cancelScheduledValues=(nt=>A?()=>{throw n()}:(...mt)=>{let Ct=nt.apply(k,mt);return M(),Ct})(k.cancelScheduledValues),k.exponentialRampToValueAtTime=(nt=>A?()=>{throw n()}:(...mt)=>{let Ct=nt.apply(k,mt);return M(),Ct})(k.exponentialRampToValueAtTime),k.linearRampToValueAtTime=(nt=>A?()=>{throw n()}:(...mt)=>{let Ct=nt.apply(k,mt);return M(),Ct})(k.linearRampToValueAtTime),k.setTargetAtTime=(nt=>A?()=>{throw n()}:(...mt)=>{let Ct=nt.apply(k,mt);return M(),Ct})(k.setTargetAtTime),k.setValueAtTime=(nt=>A?()=>{throw n()}:(...mt)=>{let Ct=nt.apply(k,mt);return M(),Ct})(k.setValueAtTime),k.setValueCurveAtTime=(nt=>A?()=>{throw n()}:(...mt)=>{let Ct=nt.apply(k,mt);return M(),Ct})(k.setValueCurveAtTime),k};return{forwardX:D(0,0,R(0)),forwardY:D(1,0,R(1)),forwardZ:D(2,-1,R(2)),positionX:D(6,0,B(0)),positionY:D(7,0,B(1)),positionZ:D(8,0,B(2)),upX:D(3,0,R(3)),upY:D(4,1,R(4)),upZ:D(5,0,R(5))}},{forwardX:p,forwardY:m,forwardZ:f,positionX:g,positionY:b,positionZ:x,upX:C,upY:S,upZ:T}=h.forwardX===void 0?l():h;return{get forwardX(){return p},get forwardY(){return m},get forwardZ(){return f},get positionX(){return g},get positionY(){return b},get positionZ(){return x},get upX(){return C},get upY(){return S},get upZ(){return T}}};var Mi=i=>"context"in i;var ai=i=>Mi(i[0]);var ar=(i,t,e,r)=>{for(let n of i)if(e(n)){if(r)return!1;throw Error("The set contains at least one similar element.")}return i.add(t),!0};var Mu=(i,t,[e,r],n)=>{ar(i,[t,e,r],o=>o[0]===t&&o[1]===e,n)};var Eu=(i,[t,e,r],n)=>{let o=i.get(t);o===void 0?i.set(t,new Set([[e,r]])):ar(o,[e,r],s=>s[0]===e,n)};var Ye=i=>"inputs"in i;var dn=(i,t,e,r)=>{if(Ye(t)){let n=t.inputs[r];return i.connect(n,e,0),[n,e,0]}return i.connect(t,e,r),[t,e,r]};var Du=(i,t,e)=>{for(let r of i)if(r[0]===t&&r[1]===e)return i.delete(r),r;return null};var pd=(i,t,e)=>ni(i,r=>r[0]===t&&r[1]===e);var ku=(i,t)=>{if(!wr(i).delete(t))throw new Error("Missing the expected event listener.")};var Lu=(i,t,e)=>{let r=Jt(i,t),n=ni(r,o=>o[0]===e);return r.size===0&&i.delete(t),n};var pn=(i,t,e,r)=>{Ye(t)?i.disconnect(t.inputs[r],e,0):i.disconnect(t,e,r)};var Rt=i=>Jt(cn,i);var Ei=i=>Jt(Ao,i);var Wr=i=>Co.has(i);var mn=i=>!Sr.has(i);var ju=(i,t)=>new Promise(e=>{if(t!==null)e(!0);else{let r=i.createScriptProcessor(256,1,1),n=i.createGain(),o=i.createBuffer(1,2,44100),s=o.getChannelData(0);s[0]=1,s[1]=1;let a=i.createBufferSource();a.buffer=o,a.loop=!0,a.connect(r).connect(i.destination),a.connect(n),a.disconnect(n),r.onaudioprocess=c=>{let u=c.inputBuffer.getChannelData(0);Array.prototype.some.call(u,h=>h===1)?e(!0):e(!1),a.stop(),r.onaudioprocess=null,a.disconnect(r),r.disconnect(i.destination)},a.start()}});var ca=(i,t)=>{let e=new Map;for(let r of i)for(let n of r){let o=e.get(n);e.set(n,o===void 0?1:o+1)}e.forEach((r,n)=>t(n,r))};var Di=i=>"context"in i;var md=i=>{let t=new Map;i.connect=(e=>(r,n=0,o=0)=>{let s=Di(r)?e(r,n,o):e(r,n),a=t.get(r);return a===void 0?t.set(r,[{input:o,output:n}]):a.every(c=>c.input!==o||c.output!==n)&&a.push({input:o,output:n}),s})(i.connect.bind(i)),i.disconnect=(e=>(r,n,o)=>{if(e.apply(i),r===void 0)t.clear();else if(typeof r=="number")for(let[s,a]of t){let c=a.filter(u=>u.output!==r);c.length===0?t.delete(s):t.set(s,c)}else if(t.has(r))if(n===void 0)t.delete(r);else{let s=t.get(r);if(s!==void 0){let a=s.filter(c=>c.output!==n&&(c.input!==o||o===void 0));a.length===0?t.delete(r):t.set(r,a)}}for(let[s,a]of t)a.forEach(c=>{Di(s)?i.connect(s,c.output,c.input):i.connect(s,c.output)})})(i.disconnect)};var xC=(i,t,e,r)=>{let{activeInputs:n,passiveInputs:o}=oi(t),{outputs:s}=oe(i),a=wr(i),c=u=>{let h=Rt(i),l=Ei(t);if(u){let p=Lu(o,i,e);Mu(n,i,p,!1),!r&&!Wr(i)&&h.connect(l,e)}else{let p=pd(n,i,e);Eu(o,p,!1),!r&&!Wr(i)&&h.disconnect(l,e)}};return ar(s,[t,e],u=>u[0]===t&&u[1]===e,!0)?(a.add(c),xe(i)?Mu(n,i,[e,c],!0):Eu(o,[i,e,c],!0),!0):!1},AC=(i,t,e,r)=>{let{activeInputs:n,passiveInputs:o}=oe(t),s=Du(n[r],i,e);return s===null?[na(o,i,e,r)[2],!1]:[s[2],!0]},CC=(i,t,e)=>{let{activeInputs:r,passiveInputs:n}=oi(t),o=Du(r,i,e);return o===null?[Lu(n,i,e)[1],!1]:[o[2],!0]},Pu=(i,t,e,r,n)=>{let[o,s]=AC(i,e,r,n);if(o!==null&&(ku(i,o),s&&!t&&!Wr(i)&&pn(Rt(i),Rt(e),r,n)),xe(e)){let{activeInputs:a}=oe(e);So(e,a)}},Fu=(i,t,e,r)=>{let[n,o]=CC(i,e,r);n!==null&&(ku(i,n),o&&!t&&!Wr(i)&&Rt(i).disconnect(Ei(e),r))},_C=(i,t)=>{let e=oe(i),r=[];for(let n of e.outputs)ai(n)?Pu(i,t,...n):Fu(i,t,...n),r.push(n[0]);return e.outputs.clear(),r},vC=(i,t,e)=>{let r=oe(i),n=[];for(let o of r.outputs)o[1]===e&&(ai(o)?Pu(i,t,...o):Fu(i,t,...o),n.push(o[0]),r.outputs.delete(o));return n},SC=(i,t,e,r,n)=>{let o=oe(i);return Array.from(o.outputs).filter(s=>s[0]===e&&(r===void 0||s[1]===r)&&(n===void 0||s[2]===n)).map(s=>(ai(s)?Pu(i,t,...s):Fu(i,t,...s),o.outputs.delete(s),s[0]))},fd=(i,t,e,r,n,o,s,a,c,u,h,l,p,m,f,g)=>class extends u{constructor(x,C,S,T){super(S),this._context=x,this._nativeAudioNode=S;let w=h(x);l(w)&&e(ju,()=>ju(w,g))!==!0&&md(S),cn.set(this,S),ia.set(this,new Set),x.state!=="closed"&&C&&sr(this),i(this,T,S)}get channelCount(){return this._nativeAudioNode.channelCount}set channelCount(x){this._nativeAudioNode.channelCount=x}get channelCountMode(){return this._nativeAudioNode.channelCountMode}set channelCountMode(x){this._nativeAudioNode.channelCountMode=x}get channelInterpretation(){return this._nativeAudioNode.channelInterpretation}set channelInterpretation(x){this._nativeAudioNode.channelInterpretation=x}get context(){return this._context}get numberOfInputs(){return this._nativeAudioNode.numberOfInputs}get numberOfOutputs(){return this._nativeAudioNode.numberOfOutputs}connect(x,C=0,S=0){if(C<0||C>=this._nativeAudioNode.numberOfOutputs)throw n();let T=h(this._context),w=f(T);if(p(x)||m(x))throw o();if(Mi(x)){let _=Rt(x);try{let q=dn(this._nativeAudioNode,_,C,S),M=mn(this);(w||M)&&this._nativeAudioNode.disconnect(...q),this.context.state!=="closed"&&!M&&mn(x)&&sr(x)}catch(q){throw q.code===12?o():q}if(t(this,x,C,S,w)){let q=c([this],x);ca(q,r(w))}return x}let v=Ei(x);if(v.name==="playbackRate"&&v.maxValue===1024)throw s();try{this._nativeAudioNode.connect(v,C),(w||mn(this))&&this._nativeAudioNode.disconnect(v,C)}catch(_){throw _.code===12?o():_}if(xC(this,x,C,w)){let _=c([this],x);ca(_,r(w))}}disconnect(x,C,S){let T,w=h(this._context),v=f(w);if(x===void 0)T=_C(this,v);else if(typeof x=="number"){if(x<0||x>=this.numberOfOutputs)throw n();T=vC(this,v,x)}else{if(C!==void 0&&(C<0||C>=this.numberOfOutputs)||Mi(x)&&S!==void 0&&(S<0||S>=x.numberOfInputs))throw n();if(T=SC(this,v,x,C,S),T.length===0)throw o()}for(let A of T){let _=c([this],A);ca(_,a)}}};var gd=(i,t,e,r,n,o,s,a,c,u,h,l,p)=>(m,f,g,b=null,x=null)=>{let C=g.value,S=new xo(C),T=f?r(S):null,w={get defaultValue(){return C},get maxValue(){return b===null?g.maxValue:b},get minValue(){return x===null?g.minValue:x},get value(){return g.value},set value(v){g.value=v,w.setValueAtTime(v,m.context.currentTime)},cancelAndHoldAtTime(v){if(typeof g.cancelAndHoldAtTime=="function")T===null&&S.flush(m.context.currentTime),S.add(n(v)),g.cancelAndHoldAtTime(v);else{let A=Array.from(S).pop();T===null&&S.flush(m.context.currentTime),S.add(n(v));let _=Array.from(S).pop();g.cancelScheduledValues(v),A!==_&&_!==void 0&&(_.type==="exponentialRampToValue"?g.exponentialRampToValueAtTime(_.value,_.endTime):_.type==="linearRampToValue"?g.linearRampToValueAtTime(_.value,_.endTime):_.type==="setValue"?g.setValueAtTime(_.value,_.startTime):_.type==="setValueCurve"&&g.setValueCurveAtTime(_.values,_.startTime,_.duration))}return w},cancelScheduledValues(v){return T===null&&S.flush(m.context.currentTime),S.add(o(v)),g.cancelScheduledValues(v),w},exponentialRampToValueAtTime(v,A){if(v===0)throw new RangeError;if(!Number.isFinite(A)||A<0)throw new RangeError;let _=m.context.currentTime;return T===null&&S.flush(_),Array.from(S).length===0&&(S.add(u(C,_)),g.setValueAtTime(C,_)),S.add(s(v,A)),g.exponentialRampToValueAtTime(v,A),w},linearRampToValueAtTime(v,A){let _=m.context.currentTime;return T===null&&S.flush(_),Array.from(S).length===0&&(S.add(u(C,_)),g.setValueAtTime(C,_)),S.add(a(v,A)),g.linearRampToValueAtTime(v,A),w},setTargetAtTime(v,A,_){return T===null&&S.flush(m.context.currentTime),S.add(c(v,A,_)),g.setTargetAtTime(v,A,_),w},setValueAtTime(v,A){return T===null&&S.flush(m.context.currentTime),S.add(u(v,A)),g.setValueAtTime(v,A),w},setValueCurveAtTime(v,A,_){let E=v instanceof Float32Array?v:new Float32Array(v);if(l!==null&&l.name==="webkitAudioContext"){let q=A+_,M=m.context.sampleRate,R=Math.ceil(A*M),B=Math.floor(q*M),D=B-R,j=new Float32Array(D);for(let W=0;W<D;W+=1){let K=(E.length-1)/_*((R+W)/M-A),k=Math.floor(K),nt=Math.ceil(K);j[W]=k===nt?E[k]:(1-(K-k))*E[k]+(1-(nt-K))*E[nt]}T===null&&S.flush(m.context.currentTime),S.add(h(j,A,_)),g.setValueCurveAtTime(j,A,_);let F=B/M;F<q&&p(w,j[j.length-1],F),p(w,E[E.length-1],q)}else T===null&&S.flush(m.context.currentTime),S.add(h(E,A,_)),g.setValueCurveAtTime(E,A,_);return w}};return e.set(w,g),t.set(w,m),i(w,T),w};var yd=i=>({replay(t){for(let e of i)if(e.type==="exponentialRampToValue"){let{endTime:r,value:n}=e;t.exponentialRampToValueAtTime(n,r)}else if(e.type==="linearRampToValue"){let{endTime:r,value:n}=e;t.linearRampToValueAtTime(n,r)}else if(e.type==="setTarget"){let{startTime:r,target:n,timeConstant:o}=e;t.setTargetAtTime(n,r,o)}else if(e.type==="setValue"){let{startTime:r,value:n}=e;t.setValueAtTime(n,r)}else if(e.type==="setValueCurve"){let{duration:r,startTime:n,values:o}=e;t.setValueCurveAtTime(o,n,r)}else throw new Error("Can't apply an unknown automation.")}});var fn=class{constructor(t){this._map=new Map(t)}get size(){return this._map.size}entries(){return this._map.entries()}forEach(t,e=null){return this._map.forEach((r,n)=>t.call(e,r,n,this))}get(t){return this._map.get(t)}has(t){return this._map.has(t)}keys(){return this._map.keys()}values(){return this._map.values()}};var wC={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:1,numberOfOutputs:1,parameterData:{},processorOptions:{}},bd=(i,t,e,r,n,o,s,a,c,u,h,l,p,m)=>class extends t{constructor(g,b,x){var C;let S=a(g),T=c(S),w=h(O(O({},wC),x));p(w);let v=_o.get(S),A=v==null?void 0:v.get(b),_=T||S.state!=="closed"?S:(C=s(S))!==null&&C!==void 0?C:S,E=n(_,T?null:g.baseLatency,u,b,A,w),q=T?r(b,w,A):null;super(g,!0,E,q);let M=[];E.parameters.forEach((B,D)=>{let j=e(this,T,B);M.push([D,j])}),this._nativeAudioWorkletNode=E,this._onprocessorerror=null,this._parameters=new fn(M),T&&i(S,this);let{activeInputs:R}=o(this);l(E,R)}get onprocessorerror(){return this._onprocessorerror}set onprocessorerror(g){let b=typeof g=="function"?m(this,g):null;this._nativeAudioWorkletNode.onprocessorerror=b;let x=this._nativeAudioWorkletNode.onprocessorerror;this._onprocessorerror=x!==null&&x===b?g:x}get parameters(){return this._parameters===null?this._nativeAudioWorkletNode.parameters:this._parameters}get port(){return this._nativeAudioWorkletNode.port}};function gn(i,t,e,r,n){if(typeof i.copyFromChannel=="function")t[e].byteLength===0&&(t[e]=new Float32Array(128)),i.copyFromChannel(t[e],r,n);else{let o=i.getChannelData(r);if(t[e].byteLength===0)t[e]=o.slice(n,n+128);else{let s=new Float32Array(o.buffer,n*Float32Array.BYTES_PER_ELEMENT,128);t[e].set(s)}}}var ua=(i,t,e,r,n)=>{typeof i.copyToChannel=="function"?t[e].byteLength!==0&&i.copyToChannel(t[e],r,n):t[e].byteLength!==0&&i.getChannelData(r).set(t[e],n)};var yn=(i,t)=>{let e=[];for(let r=0;r<i;r+=1){let n=[],o=typeof t=="number"?t:t[r];for(let s=0;s<o;s+=1)n.push(new Float32Array(128));e.push(n)}return e};var xd=(i,t)=>{let e=Jt(vo,i),r=Rt(t);return Jt(e,r)};var IC=(i,t,e,r,n,o,s)=>J(null,null,function*(){let a=t===null?Math.ceil(i.context.length/128)*128:t.length,c=r.channelCount*r.numberOfInputs,u=n.reduce((b,x)=>b+x,0),h=u===0?null:e.createBuffer(u,a,e.sampleRate);if(o===void 0)throw new Error("Missing the processor constructor.");let l=oe(i),p=yield xd(e,i),m=yn(r.numberOfInputs,r.channelCount),f=yn(r.numberOfOutputs,n),g=Array.from(i.parameters.keys()).reduce((b,x)=>Q(O({},b),{[x]:new Float32Array(128)}),{});for(let b=0;b<a;b+=128){if(r.numberOfInputs>0&&t!==null)for(let x=0;x<r.numberOfInputs;x+=1)for(let C=0;C<r.channelCount;C+=1)gn(t,m[x],C,C,b);o.parameterDescriptors!==void 0&&t!==null&&o.parameterDescriptors.forEach(({name:x},C)=>{gn(t,g,x,c+C,b)});for(let x=0;x<r.numberOfInputs;x+=1)for(let C=0;C<n[x];C+=1)f[x][C].byteLength===0&&(f[x][C]=new Float32Array(128));try{let x=m.map((S,T)=>l.activeInputs[T].size===0?[]:S),C=s(b/e.sampleRate,e.sampleRate,()=>p.process(x,f,g));if(h!==null)for(let S=0,T=0;S<r.numberOfOutputs;S+=1){for(let w=0;w<n[S];w+=1)ua(h,f[S],w,T+w,b);T+=n[S]}if(!C)break}catch(x){i.dispatchEvent(new ErrorEvent("processorerror",{colno:x.colno,filename:x.filename,lineno:x.lineno,message:x.message}));break}}return h}),Ad=(i,t,e,r,n,o,s,a,c,u,h,l,p,m,f,g)=>(b,x,C)=>{let S=new WeakMap,T=null,w=(v,A)=>J(null,null,function*(){let _=h(v),E=null,q=vt(_,A),M=Array.isArray(x.outputChannelCount)?x.outputChannelCount:Array.from(x.outputChannelCount);if(l===null){let R=M.reduce((F,W)=>F+W,0),B=n(A,{channelCount:Math.max(1,R),channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:Math.max(1,R)}),D=[];for(let F=0;F<v.numberOfOutputs;F+=1)D.push(r(A,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:M[F]}));let j=s(A,{channelCount:x.channelCount,channelCountMode:x.channelCountMode,channelInterpretation:x.channelInterpretation,gain:1});j.connect=t.bind(null,D),j.disconnect=c.bind(null,D),E=[B,D,j]}else q||(_=new l(A,b));if(S.set(A,E===null?_:E[2]),E!==null){if(T===null){if(C===void 0)throw new Error("Missing the processor constructor.");if(p===null)throw new Error("Missing the native OfflineAudioContext constructor.");let W=v.channelCount*v.numberOfInputs,K=C.parameterDescriptors===void 0?0:C.parameterDescriptors.length,k=W+K;T=IC(v,k===0?null:yield J(null,null,function*(){let mt=new p(k,Math.ceil(v.context.length/128)*128,A.sampleRate),Ct=[],Ht=[];for(let Ot=0;Ot<x.numberOfInputs;Ot+=1)Ct.push(s(mt,{channelCount:x.channelCount,channelCountMode:x.channelCountMode,channelInterpretation:x.channelInterpretation,gain:1})),Ht.push(n(mt,{channelCount:x.channelCount,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:x.channelCount}));let De=yield Promise.all(Array.from(v.parameters.values()).map(Ot=>J(null,null,function*(){let ut=o(mt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:Ot.value});return yield m(mt,Ot,ut.offset),ut}))),ke=r(mt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:Math.max(1,W+K)});for(let Ot=0;Ot<x.numberOfInputs;Ot+=1){Ct[Ot].connect(Ht[Ot]);for(let ut=0;ut<x.channelCount;ut+=1)Ht[Ot].connect(ke,ut,Ot*x.channelCount+ut)}for(let[Ot,ut]of De.entries())ut.connect(ke,0,W+Ot),ut.start(0);return ke.connect(mt.destination),yield Promise.all(Ct.map(Ot=>f(v,mt,Ot))),g(mt)}),A,x,M,C,u)}let R=yield T,B=e(A,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),[D,j,F]=E;R!==null&&(B.buffer=R,B.start(0)),B.connect(D);for(let W=0,K=0;W<v.numberOfOutputs;W+=1){let k=j[W];for(let nt=0;nt<M[W];nt+=1)D.connect(k,K+nt,nt);K+=M[W]}return F}if(q)for(let[R,B]of v.parameters.entries())yield i(A,B,_.parameters.get(R));else for(let[R,B]of v.parameters.entries())yield m(A,B,_.parameters.get(R));return yield f(v,A,_),_});return{render(v,A){a(A,v);let _=S.get(A);return _!==void 0?Promise.resolve(_):w(v,A)}}};var Cd=(i,t,e,r,n,o,s,a,c,u,h,l,p,m,f,g,b,x,C,S)=>class extends f{constructor(w,v){super(w,v),this._nativeContext=w,this._audioWorklet=i===void 0?void 0:{addModule:(A,_)=>i(this,A,_)}}get audioWorklet(){return this._audioWorklet}createAnalyser(){return new t(this)}createBiquadFilter(){return new n(this)}createBuffer(w,v,A){return new e({length:v,numberOfChannels:w,sampleRate:A})}createBufferSource(){return new r(this)}createChannelMerger(w=6){return new o(this,{numberOfInputs:w})}createChannelSplitter(w=6){return new s(this,{numberOfOutputs:w})}createConstantSource(){return new a(this)}createConvolver(){return new c(this)}createDelay(w=1){return new h(this,{maxDelayTime:w})}createDynamicsCompressor(){return new l(this)}createGain(){return new p(this)}createIIRFilter(w,v){return new m(this,{feedback:v,feedforward:w})}createOscillator(){return new g(this)}createPanner(){return new b(this)}createPeriodicWave(w,v,A={disableNormalization:!1}){return new x(this,Q(O({},A),{imag:v,real:w}))}createStereoPanner(){return new C(this)}createWaveShaper(){return new S(this)}decodeAudioData(w,v,A){return u(this._nativeContext,w).then(_=>(typeof v=="function"&&v(_),_),_=>{throw typeof A=="function"&&A(_),_})}};var TC={Q:1,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",detune:0,frequency:350,gain:0,type:"lowpass"},_d=(i,t,e,r,n,o,s,a)=>class extends i{constructor(u,h){let l=o(u),p=O(O({},TC),h),m=n(l,p),f=s(l),g=f?e():null;super(u,!1,m,g),this._Q=t(this,f,m.Q,Ut,$t),this._detune=t(this,f,m.detune,1200*Math.log2(Ut),-1200*Math.log2(Ut)),this._frequency=t(this,f,m.frequency,u.sampleRate/2,0),this._gain=t(this,f,m.gain,40*Math.log10(Ut),$t),this._nativeBiquadFilterNode=m,a(this,1)}get detune(){return this._detune}get frequency(){return this._frequency}get gain(){return this._gain}get Q(){return this._Q}get type(){return this._nativeBiquadFilterNode.type}set type(u){this._nativeBiquadFilterNode.type=u}getFrequencyResponse(u,h,l){try{this._nativeBiquadFilterNode.getFrequencyResponse(u,h,l)}catch(p){throw p.code===11?r():p}if(u.length!==h.length||h.length!==l.length)throw r()}};var vd=(i,t,e,r,n)=>()=>{let o=new WeakMap,s=(a,c)=>J(null,null,function*(){let u=e(a),h=vt(u,c);if(!h){let l={Q:u.Q.value,channelCount:u.channelCount,channelCountMode:u.channelCountMode,channelInterpretation:u.channelInterpretation,detune:u.detune.value,frequency:u.frequency.value,gain:u.gain.value,type:u.type};u=t(c,l)}return o.set(c,u),h?(yield i(c,a.Q,u.Q),yield i(c,a.detune,u.detune),yield i(c,a.frequency,u.frequency),yield i(c,a.gain,u.gain)):(yield r(c,a.Q,u.Q),yield r(c,a.detune,u.detune),yield r(c,a.frequency,u.frequency),yield r(c,a.gain,u.gain)),yield n(a,c,u),u});return{render(a,c){let u=o.get(c);return u!==void 0?Promise.resolve(u):s(a,c)}}};var Sd=(i,t)=>(e,r)=>{let n=t.get(e);if(n!==void 0)return n;let o=i.get(e);if(o!==void 0)return o;try{let s=r();return s instanceof Promise?(i.set(e,s),s.catch(()=>!1).then(a=>(i.delete(e),t.set(e,a),a))):(t.set(e,s),s)}catch(s){return t.set(e,!1),!1}};var NC={channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:6},wd=(i,t,e,r,n)=>class extends i{constructor(s,a){let c=r(s),u=O(O({},NC),a),h=e(c,u),l=n(c)?t():null;super(s,!1,h,l)}};var Id=(i,t,e)=>()=>{let r=new WeakMap,n=(o,s)=>J(null,null,function*(){let a=t(o);if(!vt(a,s)){let u={channelCount:a.channelCount,channelCountMode:a.channelCountMode,channelInterpretation:a.channelInterpretation,numberOfInputs:a.numberOfInputs};a=i(s,u)}return r.set(s,a),yield e(o,s,a),a});return{render(o,s){let a=r.get(s);return a!==void 0?Promise.resolve(a):n(o,s)}}};var OC={channelCount:6,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:6},Td=(i,t,e,r,n,o)=>class extends i{constructor(a,c){let u=r(a),h=o(O(O({},OC),c)),l=e(u,h),p=n(u)?t():null;super(a,!1,l,p)}};var Nd=(i,t,e)=>()=>{let r=new WeakMap,n=(o,s)=>J(null,null,function*(){let a=t(o);if(!vt(a,s)){let u={channelCount:a.channelCount,channelCountMode:a.channelCountMode,channelInterpretation:a.channelInterpretation,numberOfOutputs:a.numberOfOutputs};a=i(s,u)}return r.set(s,a),yield e(o,s,a),a});return{render(o,s){let a=r.get(s);return a!==void 0?Promise.resolve(a):n(o,s)}}};var Od=i=>(t,e,r)=>i(e,t,r);var Rd=i=>(t,e,r=0,n=0)=>{let o=t[r];if(o===void 0)throw i();return Di(e)?o.connect(e,0,n):o.connect(e,0)};var Md=i=>(t,e)=>{let r=i(t,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),n=t.createBuffer(1,2,44100);return r.buffer=n,r.loop=!0,r.connect(e),r.start(),()=>{r.stop(),r.disconnect(e)}};var RC={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",offset:1},Ed=(i,t,e,r,n,o,s)=>class extends i{constructor(c,u){let h=n(c),l=O(O({},RC),u),p=r(h,l),m=o(h),f=m?e():null;super(c,!1,p,f),this._constantSourceNodeRenderer=f,this._nativeConstantSourceNode=p,this._offset=t(this,m,p.offset,Ut,$t),this._onended=null}get offset(){return this._offset}get onended(){return this._onended}set onended(c){let u=typeof c=="function"?s(this,c):null;this._nativeConstantSourceNode.onended=u;let h=this._nativeConstantSourceNode.onended;this._onended=h!==null&&h===u?c:h}start(c=0){if(this._nativeConstantSourceNode.start(c),this._constantSourceNodeRenderer!==null&&(this._constantSourceNodeRenderer.start=c),this.context.state!=="closed"){sr(this);let u=()=>{this._nativeConstantSourceNode.removeEventListener("ended",u),xe(this)&&Ir(this)};this._nativeConstantSourceNode.addEventListener("ended",u)}}stop(c=0){this._nativeConstantSourceNode.stop(c),this._constantSourceNodeRenderer!==null&&(this._constantSourceNodeRenderer.stop=c)}};var Dd=(i,t,e,r,n)=>()=>{let o=new WeakMap,s=null,a=null,c=(u,h)=>J(null,null,function*(){let l=e(u),p=vt(l,h);if(!p){let m={channelCount:l.channelCount,channelCountMode:l.channelCountMode,channelInterpretation:l.channelInterpretation,offset:l.offset.value};l=t(h,m),s!==null&&l.start(s),a!==null&&l.stop(a)}return o.set(h,l),p?yield i(h,u.offset,l.offset):yield r(h,u.offset,l.offset),yield n(u,h,l),l});return{set start(u){s=u},set stop(u){a=u},render(u,h){let l=o.get(h);return l!==void 0?Promise.resolve(l):c(u,h)}}};var kd=i=>t=>(i[0]=t,i[0]);var MC={buffer:null,channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",disableNormalization:!1},Ld=(i,t,e,r,n,o)=>class extends i{constructor(a,c){let u=r(a),h=O(O({},MC),c),l=e(u,h),m=n(u)?t():null;super(a,!1,l,m),this._isBufferNullified=!1,this._nativeConvolverNode=l,h.buffer!==null&&o(this,h.buffer.duration)}get buffer(){return this._isBufferNullified?null:this._nativeConvolverNode.buffer}set buffer(a){if(this._nativeConvolverNode.buffer=a,a===null&&this._nativeConvolverNode.buffer!==null){let c=this._nativeConvolverNode.context;this._nativeConvolverNode.buffer=c.createBuffer(1,1,c.sampleRate),this._isBufferNullified=!0,o(this,0)}else this._isBufferNullified=!1,o(this,this._nativeConvolverNode.buffer===null?0:this._nativeConvolverNode.buffer.duration)}get normalize(){return this._nativeConvolverNode.normalize}set normalize(a){this._nativeConvolverNode.normalize=a}};var jd=(i,t,e)=>()=>{let r=new WeakMap,n=(o,s)=>J(null,null,function*(){let a=t(o);if(!vt(a,s)){let u={buffer:a.buffer,channelCount:a.channelCount,channelCountMode:a.channelCountMode,channelInterpretation:a.channelInterpretation,disableNormalization:!a.normalize};a=i(s,u)}return r.set(s,a),Ye(a)?yield e(o,s,a.inputs[0]):yield e(o,s,a),a});return{render(o,s){let a=r.get(s);return a!==void 0?Promise.resolve(a):n(o,s)}}};var Pd=(i,t)=>(e,r,n)=>{if(t===null)throw new Error("Missing the native OfflineAudioContext constructor.");try{return new t(e,r,n)}catch(o){throw o.name==="SyntaxError"?i():o}};var Fd=()=>new DOMException("","DataCloneError");var Bu=i=>{let{port1:t,port2:e}=new MessageChannel;return new Promise(r=>{let n=()=>{e.onmessage=null,t.close(),e.close(),r()};e.onmessage=()=>n();try{t.postMessage(i,[i])}catch(o){}finally{n()}})};var Bd=(i,t,e,r,n,o,s,a,c,u,h)=>(l,p)=>{let m=s(l)?l:o(l);if(n.has(p)){let f=e();return Promise.reject(f)}try{n.add(p)}catch(f){}return t(c,()=>c(m))?m.decodeAudioData(p).then(f=>(Bu(p).catch(()=>{}),t(a,()=>a(f))||h(f),i.add(f),f)):new Promise((f,g)=>{let b=()=>J(null,null,function*(){try{yield Bu(p)}catch(C){}}),x=C=>{g(C),b()};try{m.decodeAudioData(p,C=>{typeof C.copyFromChannel!="function"&&(u(C),ln(C)),i.add(C),b().then(()=>f(C))},C=>{x(C===null?r():C)})}catch(C){x(C)}})};var Gd=(i,t,e,r,n,o,s,a)=>(c,u)=>{let h=t.get(c);if(h===void 0)throw new Error("Missing the expected cycle count.");let l=o(c.context),p=a(l);if(h===u){if(t.delete(c),!p&&s(c)){let m=r(c),{outputs:f}=e(c);for(let g of f)if(ai(g)){let b=r(g[0]);i(m,b,g[1],g[2])}else{let b=n(g[0]);m.connect(b,g[1])}}}else t.set(c,h-u)};var EC={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",delayTime:0,maxDelayTime:1},Vd=(i,t,e,r,n,o,s)=>class extends i{constructor(c,u){let h=n(c),l=O(O({},EC),u),p=r(h,l),m=o(h),f=m?e(l.maxDelayTime):null;super(c,!1,p,f),this._delayTime=t(this,m,p.delayTime),s(this,l.maxDelayTime)}get delayTime(){return this._delayTime}};var qd=(i,t,e,r,n)=>o=>{let s=new WeakMap,a=(c,u)=>J(null,null,function*(){let h=e(c),l=vt(h,u);if(!l){let p={channelCount:h.channelCount,channelCountMode:h.channelCountMode,channelInterpretation:h.channelInterpretation,delayTime:h.delayTime.value,maxDelayTime:o};h=t(u,p)}return s.set(u,h),l?yield i(u,c.delayTime,h.delayTime):yield r(u,c.delayTime,h.delayTime),yield n(c,u,h),h});return{render(c,u){let h=s.get(u);return h!==void 0?Promise.resolve(h):a(c,u)}}};var Wd=i=>(t,e,r,n)=>i(t[n],o=>o[0]===e&&o[1]===r);var Ud=i=>(t,e)=>{i(t).delete(e)};var zd=i=>"delayTime"in i;var Yd=(i,t,e)=>function r(n,o){let s=Mi(o)?o:e(i,o);if(zd(s))return[];if(n[0]===s)return[n];if(n.includes(s))return[];let{outputs:a}=t(s);return Array.from(a).map(c=>r([...n,s],c[0])).reduce((c,u)=>c.concat(u),[])};var ha=(i,t,e)=>{let r=t[e];if(r===void 0)throw i();return r},Hd=i=>(t,e=void 0,r=void 0,n=0)=>e===void 0?t.forEach(o=>o.disconnect()):typeof e=="number"?ha(i,t,e).disconnect():Di(e)?r===void 0?t.forEach(o=>o.disconnect(e)):n===void 0?ha(i,t,r).disconnect(e,0):ha(i,t,r).disconnect(e,0,n):r===void 0?t.forEach(o=>o.disconnect(e)):ha(i,t,r).disconnect(e,0);var DC={attack:.003,channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",knee:30,ratio:12,release:.25,threshold:-24},$d=(i,t,e,r,n,o,s,a)=>class extends i{constructor(u,h){let l=o(u),p=O(O({},DC),h),m=r(l,p),f=s(l),g=f?e():null;super(u,!1,m,g),this._attack=t(this,f,m.attack),this._knee=t(this,f,m.knee),this._nativeDynamicsCompressorNode=m,this._ratio=t(this,f,m.ratio),this._release=t(this,f,m.release),this._threshold=t(this,f,m.threshold),a(this,.006)}get attack(){return this._attack}get channelCount(){return this._nativeDynamicsCompressorNode.channelCount}set channelCount(u){let h=this._nativeDynamicsCompressorNode.channelCount;if(this._nativeDynamicsCompressorNode.channelCount=u,u>2)throw this._nativeDynamicsCompressorNode.channelCount=h,n()}get channelCountMode(){return this._nativeDynamicsCompressorNode.channelCountMode}set channelCountMode(u){let h=this._nativeDynamicsCompressorNode.channelCountMode;if(this._nativeDynamicsCompressorNode.channelCountMode=u,u==="max")throw this._nativeDynamicsCompressorNode.channelCountMode=h,n()}get knee(){return this._knee}get ratio(){return this._ratio}get reduction(){return typeof this._nativeDynamicsCompressorNode.reduction.value=="number"?this._nativeDynamicsCompressorNode.reduction.value:this._nativeDynamicsCompressorNode.reduction}get release(){return this._release}get threshold(){return this._threshold}};var Zd=(i,t,e,r,n)=>()=>{let o=new WeakMap,s=(a,c)=>J(null,null,function*(){let u=e(a),h=vt(u,c);if(!h){let l={attack:u.attack.value,channelCount:u.channelCount,channelCountMode:u.channelCountMode,channelInterpretation:u.channelInterpretation,knee:u.knee.value,ratio:u.ratio.value,release:u.release.value,threshold:u.threshold.value};u=t(c,l)}return o.set(c,u),h?(yield i(c,a.attack,u.attack),yield i(c,a.knee,u.knee),yield i(c,a.ratio,u.ratio),yield i(c,a.release,u.release),yield i(c,a.threshold,u.threshold)):(yield r(c,a.attack,u.attack),yield r(c,a.knee,u.knee),yield r(c,a.ratio,u.ratio),yield r(c,a.release,u.release),yield r(c,a.threshold,u.threshold)),yield n(a,c,u),u});return{render(a,c){let u=o.get(c);return u!==void 0?Promise.resolve(u):s(a,c)}}};var Xd=()=>new DOMException("","EncodingError");var Qd=i=>t=>new Promise((e,r)=>{if(i===null){r(new SyntaxError);return}let n=i.document.head;if(n===null)r(new SyntaxError);else{let o=i.document.createElement("script"),s=new Blob([t],{type:"application/javascript"}),a=URL.createObjectURL(s),c=i.onerror,u=()=>{i.onerror=c,URL.revokeObjectURL(a)};i.onerror=(h,l,p,m,f)=>{if(l===a||l===i.location.href&&p===1&&m===1)return u(),r(f),!1;if(c!==null)return c(h,l,p,m,f)},o.onerror=()=>{u(),r(new SyntaxError)},o.onload=()=>{u(),e()},o.src=a,o.type="module",n.appendChild(o)}});var Kd=i=>class{constructor(e){this._nativeEventTarget=e,this._listeners=new WeakMap}addEventListener(e,r,n){if(r!==null){let o=this._listeners.get(r);o===void 0&&(o=i(this,r),typeof r=="function"&&this._listeners.set(r,o)),this._nativeEventTarget.addEventListener(e,o,n)}}dispatchEvent(e){return this._nativeEventTarget.dispatchEvent(e)}removeEventListener(e,r,n){let o=r===null?void 0:this._listeners.get(r);this._nativeEventTarget.removeEventListener(e,o===void 0?null:o,n)}};var Jd=i=>(t,e,r)=>{Object.defineProperties(i,{currentFrame:{configurable:!0,get(){return Math.round(t*e)}},currentTime:{configurable:!0,get(){return t}}});try{return r()}finally{i!==null&&(delete i.currentFrame,delete i.currentTime)}};var tp=i=>t=>J(null,null,function*(){try{let e=yield fetch(t);if(e.ok)return[yield e.text(),e.url]}catch(e){}throw i()});var kC={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",gain:1},ep=(i,t,e,r,n,o)=>class extends i{constructor(a,c){let u=n(a),h=O(O({},kC),c),l=r(u,h),p=o(u),m=p?e():null;super(a,!1,l,m),this._gain=t(this,p,l.gain,Ut,$t)}get gain(){return this._gain}};var rp=(i,t,e,r,n)=>()=>{let o=new WeakMap,s=(a,c)=>J(null,null,function*(){let u=e(a),h=vt(u,c);if(!h){let l={channelCount:u.channelCount,channelCountMode:u.channelCountMode,channelInterpretation:u.channelInterpretation,gain:u.gain.value};u=t(c,l)}return o.set(c,u),h?yield i(c,a.gain,u.gain):yield r(c,a.gain,u.gain),yield n(a,c,u),u});return{render(a,c){let u=o.get(c);return u!==void 0?Promise.resolve(u):s(a,c)}}};var ip=(i,t)=>e=>t(i,e);var np=i=>t=>{let e=i(t);if(e.renderer===null)throw new Error("Missing the renderer of the given AudioNode in the audio graph.");return e.renderer};var op=i=>t=>{var e;return(e=i.get(t))!==null&&e!==void 0?e:0};var sp=i=>t=>{let e=i(t);if(e.renderer===null)throw new Error("Missing the renderer of the given AudioParam in the audio graph.");return e.renderer};var ap=i=>t=>i.get(t);var Ft=()=>new DOMException("","InvalidStateError");var cp=i=>t=>{let e=i.get(t);if(e===void 0)throw Ft();return e};var up=(i,t)=>e=>{let r=i.get(e);if(r!==void 0)return r;if(t===null)throw new Error("Missing the native OfflineAudioContext constructor.");return r=new t(1,1,44100),i.set(e,r),r};var hp=i=>t=>{let e=i.get(t);if(e===void 0)throw new Error("The context has no set of AudioWorkletNodes.");return e};var bn=()=>new DOMException("","InvalidAccessError");var lp=i=>{i.getFrequencyResponse=(t=>(e,r,n)=>{if(e.length!==r.length||r.length!==n.length)throw bn();return t.call(i,e,r,n)})(i.getFrequencyResponse)};var LC={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers"},dp=(i,t,e,r,n,o)=>class extends i{constructor(a,c){let u=r(a),h=n(u),l=O(O({},LC),c),p=t(u,h?null:a.baseLatency,l),m=h?e(l.feedback,l.feedforward):null;super(a,!1,p,m),lp(p),this._nativeIIRFilterNode=p,o(this,1)}getFrequencyResponse(a,c,u){return this._nativeIIRFilterNode.getFrequencyResponse(a,c,u)}};var la=(i,t,e,r,n,o,s,a,c,u,h)=>{let l=u.length,p=a;for(let m=0;m<l;m+=1){let f=e[0]*u[m];for(let g=1;g<n;g+=1){let b=p-g&c-1;f+=e[g]*o[b],f-=i[g]*s[b]}for(let g=n;g<r;g+=1)f+=e[g]*o[p-g&c-1];for(let g=n;g<t;g+=1)f-=i[g]*s[p-g&c-1];o[p]=u[m],s[p]=f,p=p+1&c-1,h[m]=f}return p};var jC=(i,t,e,r)=>{let n=e instanceof Float64Array?e:new Float64Array(e),o=r instanceof Float64Array?r:new Float64Array(r),s=n.length,a=o.length,c=Math.min(s,a);if(n[0]!==1){for(let f=0;f<s;f+=1)o[f]/=n[0];for(let f=1;f<a;f+=1)n[f]/=n[0]}let u=32,h=new Float32Array(u),l=new Float32Array(u),p=t.createBuffer(i.numberOfChannels,i.length,i.sampleRate),m=i.numberOfChannels;for(let f=0;f<m;f+=1){let g=i.getChannelData(f),b=p.getChannelData(f);h.fill(0),l.fill(0),la(n,s,o,a,c,h,l,0,u,g,b)}return p},pp=(i,t,e,r,n)=>(o,s)=>{let a=new WeakMap,c=null,u=(h,l)=>J(null,null,function*(){let p=null,m=t(h),f=vt(m,l);if(l.createIIRFilter===void 0?p=i(l,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}):f||(m=l.createIIRFilter(s,o)),a.set(l,p===null?m:p),p!==null){if(c===null){if(e===null)throw new Error("Missing the native OfflineAudioContext constructor.");let b=new e(h.context.destination.channelCount,h.context.length,l.sampleRate);c=J(null,null,function*(){yield r(h,b,b.destination);let x=yield n(b);return jC(x,l,o,s)})}let g=yield c;return p.buffer=g,p.start(0),p}return yield r(h,l,m),m});return{render(h,l){let p=a.get(l);return p!==void 0?Promise.resolve(p):u(h,l)}}};var mp=(i,t,e,r,n,o)=>s=>(a,c)=>{let u=i.get(a);if(u===void 0){if(!s&&o(a)){let h=r(a),{outputs:l}=e(a);for(let p of l)if(ai(p)){let m=r(p[0]);t(h,m,p[1],p[2])}else{let m=n(p[0]);h.disconnect(m,p[1])}}i.set(a,c)}else i.set(a,u+c)};var fp=(i,t)=>e=>{let r=i.get(e);return t(r)||t(e)};var gp=(i,t)=>e=>i.has(e)||t(e);var yp=(i,t)=>e=>i.has(e)||t(e);var bp=(i,t)=>e=>{let r=i.get(e);return t(r)||t(e)};var xp=i=>t=>i!==null&&t instanceof i;var Ap=i=>t=>i!==null&&typeof i.AudioNode=="function"&&t instanceof i.AudioNode;var Cp=i=>t=>i!==null&&typeof i.AudioParam=="function"&&t instanceof i.AudioParam;var _p=(i,t)=>e=>i(e)||t(e);var vp=i=>t=>i!==null&&t instanceof i;var Sp=i=>i!==null&&i.isSecureContext;var wp=(i,t,e,r)=>class extends i{constructor(o,s){let a=e(o),c=t(a,s);if(r(a))throw TypeError();super(o,!0,c,null),this._nativeMediaElementAudioSourceNode=c}get mediaElement(){return this._nativeMediaElementAudioSourceNode.mediaElement}};var PC={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers"},Ip=(i,t,e,r)=>class extends i{constructor(o,s){let a=e(o);if(r(a))throw new TypeError;let c=O(O({},PC),s),u=t(a,c);super(o,!1,u,null),this._nativeMediaStreamAudioDestinationNode=u}get stream(){return this._nativeMediaStreamAudioDestinationNode.stream}};var Tp=(i,t,e,r)=>class extends i{constructor(o,s){let a=e(o),c=t(a,s);if(r(a))throw new TypeError;super(o,!0,c,null),this._nativeMediaStreamAudioSourceNode=c}get mediaStream(){return this._nativeMediaStreamAudioSourceNode.mediaStream}};var Np=(i,t,e)=>class extends i{constructor(n,o){let s=e(n),a=t(s,o);super(n,!0,a,null)}};var Op=(i,t,e,r,n)=>class extends r{constructor(s={}){if(n===null)throw new Error("Missing the native AudioContext constructor.");let a;try{a=new n(s)}catch(h){throw h.code===12&&h.message==="sampleRate is not in range"?t():h}if(a===null)throw e();if(!aa(s.latencyHint))throw new TypeError(`The provided value '${s.latencyHint}' is not a valid enum value of type AudioContextLatencyCategory.`);if(s.sampleRate!==void 0&&a.sampleRate!==s.sampleRate)throw t();super(a,2);let{latencyHint:c}=s,{sampleRate:u}=a;if(this._baseLatency=typeof a.baseLatency=="number"?a.baseLatency:c==="balanced"?512/u:c==="interactive"||c===void 0?256/u:c==="playback"?1024/u:Math.max(2,Math.min(128,Math.round(c*u/128)))*128/u,this._nativeAudioContext=a,n.name==="webkitAudioContext"?(this._nativeGainNode=a.createGain(),this._nativeOscillatorNode=a.createOscillator(),this._nativeGainNode.gain.value=1e-37,this._nativeOscillatorNode.connect(this._nativeGainNode).connect(a.destination),this._nativeOscillatorNode.start()):(this._nativeGainNode=null,this._nativeOscillatorNode=null),this._state=null,a.state==="running"){this._state="suspended";let h=()=>{this._state==="suspended"&&(this._state=null),a.removeEventListener("statechange",h)};a.addEventListener("statechange",h)}}get baseLatency(){return this._baseLatency}get state(){return this._state!==null?this._state:this._nativeAudioContext.state}close(){return this.state==="closed"?this._nativeAudioContext.close().then(()=>{throw i()}):(this._state==="suspended"&&(this._state=null),this._nativeAudioContext.close().then(()=>{this._nativeGainNode!==null&&this._nativeOscillatorNode!==null&&(this._nativeOscillatorNode.stop(),this._nativeGainNode.disconnect(),this._nativeOscillatorNode.disconnect()),si(this)}))}resume(){return this._state==="suspended"?new Promise((s,a)=>{let c=()=>{this._nativeAudioContext.removeEventListener("statechange",c),this._nativeAudioContext.state==="running"?s():this.resume().then(s,a)};this._nativeAudioContext.addEventListener("statechange",c)}):this._nativeAudioContext.resume().catch(s=>{throw s===void 0||s.code===15?i():s})}suspend(){return this._nativeAudioContext.suspend().catch(s=>{throw s===void 0?i():s})}};var Rp=(i,t,e,r,n,o)=>class extends e{constructor(a,c){super(a),this._nativeContext=a,un.set(this,a),r(a)&&n.set(a,new Set),this._destination=new i(this,c),this._listener=t(this,a),this._onstatechange=null}get currentTime(){return this._nativeContext.currentTime}get destination(){return this._destination}get listener(){return this._listener}get onstatechange(){return this._onstatechange}set onstatechange(a){let c=typeof a=="function"?o(this,a):null;this._nativeContext.onstatechange=c;let u=this._nativeContext.onstatechange;this._onstatechange=u!==null&&u===c?a:u}get sampleRate(){return this._nativeContext.sampleRate}get state(){return this._nativeContext.state}};var cr=i=>{let t=new Uint32Array([1179011410,40,1163280727,544501094,16,131073,44100,176400,1048580,1635017060,4,0]);try{let e=i.decodeAudioData(t.buffer,()=>{});return e===void 0?!1:(e.catch(()=>{}),!0)}catch(e){}return!1};var FC={numberOfChannels:1},Mp=(i,t,e,r,n)=>class extends r{constructor(s){let{length:a,numberOfChannels:c,sampleRate:u}=O(O({},FC),s),h=e(c,a,u);i(cr,()=>cr(h))||h.addEventListener("statechange",(()=>{let l=0,p=m=>{this._state==="running"&&(l>0?(h.removeEventListener("statechange",p),m.stopImmediatePropagation(),this._waitForThePromiseToSettle(m)):l+=1)};return p})()),super(h,c),this._length=a,this._nativeOfflineAudioContext=h,this._state=null}get length(){return this._nativeOfflineAudioContext.length===void 0?this._length:this._nativeOfflineAudioContext.length}get state(){return this._state===null?this._nativeOfflineAudioContext.state:this._state}startRendering(){return this._state==="running"?Promise.reject(t()):(this._state="running",n(this.destination,this._nativeOfflineAudioContext).finally(()=>{this._state=null,si(this)}))}_waitForThePromiseToSettle(s){this._state===null?this._nativeOfflineAudioContext.dispatchEvent(s):setTimeout(()=>this._waitForThePromiseToSettle(s))}};var Ep=(i,t)=>(e,r,n)=>{let o=new Set;return e.connect=(s=>(a,c=0,u=0)=>{let h=o.size===0;if(t(a))return s.call(e,a,c,u),i(o,[a,c,u],l=>l[0]===a&&l[1]===c&&l[2]===u,!0),h&&r(),a;s.call(e,a,c),i(o,[a,c],l=>l[0]===a&&l[1]===c,!0),h&&r()})(e.connect),e.disconnect=(s=>(a,c,u)=>{let h=o.size>0;if(a===void 0)s.apply(e),o.clear();else if(typeof a=="number"){s.call(e,a);for(let p of o)p[1]===a&&o.delete(p)}else{t(a)?s.call(e,a,c,u):s.call(e,a,c);for(let p of o)p[0]===a&&(c===void 0||p[1]===c)&&(u===void 0||p[2]===u)&&o.delete(p)}let l=o.size===0;h&&l&&n()})(e.disconnect),e};var St=(i,t,e)=>{let r=t[e];r!==void 0&&r!==i[e]&&(i[e]=r)};var gt=(i,t)=>{St(i,t,"channelCount"),St(i,t,"channelCountMode"),St(i,t,"channelInterpretation")};var Gu=i=>typeof i.getFloatTimeDomainData=="function";var Dp=i=>{i.getFloatTimeDomainData=t=>{let e=new Uint8Array(t.length);i.getByteTimeDomainData(e);let r=Math.max(e.length,i.fftSize);for(let n=0;n<r;n+=1)t[n]=(e[n]-128)*.0078125;return t}};var kp=(i,t)=>(e,r)=>{let n=e.createAnalyser();if(gt(n,r),!(r.maxDecibels>r.minDecibels))throw t();return St(n,r,"fftSize"),St(n,r,"maxDecibels"),St(n,r,"minDecibels"),St(n,r,"smoothingTimeConstant"),i(Gu,()=>Gu(n))||Dp(n),n};var Lp=i=>i===null?null:i.hasOwnProperty("AudioBuffer")?i.AudioBuffer:null;var Tt=(i,t,e)=>{let r=t[e];r!==void 0&&r!==i[e].value&&(i[e].value=r)};var jp=i=>{i.start=(t=>{let e=!1;return(r=0,n=0,o)=>{if(e)throw Ft();t.call(i,r,n,o),e=!0}})(i.start)};var xn=i=>{i.start=(t=>(e=0,r=0,n)=>{if(typeof n=="number"&&n<0||r<0||e<0)throw new RangeError("The parameters can't be negative.");t.call(i,e,r,n)})(i.start)};var An=i=>{i.stop=(t=>(e=0)=>{if(e<0)throw new RangeError("The parameter can't be negative.");t.call(i,e)})(i.stop)};var Pp=(i,t,e,r,n,o,s,a,c,u,h)=>(l,p)=>{let m=l.createBufferSource();return gt(m,p),Tt(m,p,"playbackRate"),St(m,p,"buffer"),St(m,p,"loop"),St(m,p,"loopEnd"),St(m,p,"loopStart"),t(e,()=>e(l))||jp(m),t(r,()=>r(l))||c(m),t(n,()=>n(l))||u(m,l),t(o,()=>o(l))||xn(m),t(s,()=>s(l))||h(m,l),t(a,()=>a(l))||An(m),i(l,m),m};var Fp=i=>i===null?null:i.hasOwnProperty("AudioContext")?i.AudioContext:i.hasOwnProperty("webkitAudioContext")?i.webkitAudioContext:null;var Bp=(i,t)=>(e,r,n)=>{let o=e.destination;if(o.channelCount!==r)try{o.channelCount=r}catch(a){}n&&o.channelCountMode!=="explicit"&&(o.channelCountMode="explicit"),o.maxChannelCount===0&&Object.defineProperty(o,"maxChannelCount",{value:r});let s=i(e,{channelCount:r,channelCountMode:o.channelCountMode,channelInterpretation:o.channelInterpretation,gain:1});return t(s,"channelCount",a=>()=>a.call(s),a=>c=>{a.call(s,c);try{o.channelCount=c}catch(u){if(c>o.maxChannelCount)throw u}}),t(s,"channelCountMode",a=>()=>a.call(s),a=>c=>{a.call(s,c),o.channelCountMode=c}),t(s,"channelInterpretation",a=>()=>a.call(s),a=>c=>{a.call(s,c),o.channelInterpretation=c}),Object.defineProperty(s,"maxChannelCount",{get:()=>o.maxChannelCount}),s.connect(o),s};var Gp=i=>i===null?null:i.hasOwnProperty("AudioWorkletNode")?i.AudioWorkletNode:null;var Vp=i=>{let{port1:t}=new MessageChannel;try{t.postMessage(i)}finally{t.close()}};var qp=(i,t,e,r,n)=>(o,s,a,c,u,h)=>{if(a!==null)try{let l=new a(o,c,h),p=new Map,m=null;if(Object.defineProperties(l,{channelCount:{get:()=>h.channelCount,set:()=>{throw i()}},channelCountMode:{get:()=>"explicit",set:()=>{throw i()}},onprocessorerror:{get:()=>m,set:f=>{typeof m=="function"&&l.removeEventListener("processorerror",m),m=typeof f=="function"?f:null,typeof m=="function"&&l.addEventListener("processorerror",m)}}}),l.addEventListener=(f=>(...g)=>{if(g[0]==="processorerror"){let b=typeof g[1]=="function"?g[1]:typeof g[1]=="object"&&g[1]!==null&&typeof g[1].handleEvent=="function"?g[1].handleEvent:null;if(b!==null){let x=p.get(g[1]);x!==void 0?g[1]=x:(g[1]=C=>{C.type==="error"?(Object.defineProperties(C,{type:{value:"processorerror"}}),b(C)):b(new ErrorEvent(g[0],O({},C)))},p.set(b,g[1]))}}return f.call(l,"error",g[1],g[2]),f.call(l,...g)})(l.addEventListener),l.removeEventListener=(f=>(...g)=>{if(g[0]==="processorerror"){let b=p.get(g[1]);b!==void 0&&(p.delete(g[1]),g[1]=b)}return f.call(l,"error",g[1],g[2]),f.call(l,g[0],g[1],g[2])})(l.removeEventListener),h.numberOfOutputs!==0){let f=e(o,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});return l.connect(f).connect(o.destination),n(l,()=>f.disconnect(),()=>f.connect(o.destination))}return l}catch(l){throw l.code===11?r():l}if(u===void 0)throw r();return Vp(h),t(o,s,u,h)};var da=(i,t)=>i===null?512:Math.max(512,Math.min(16384,Math.pow(2,Math.round(Math.log2(i*t)))));var Wp=i=>new Promise((t,e)=>{let{port1:r,port2:n}=new MessageChannel;r.onmessage=({data:o})=>{r.close(),n.close(),t(o)},r.onmessageerror=({data:o})=>{r.close(),n.close(),e(o)},n.postMessage(i)});var Up=(i,t)=>J(null,null,function*(){let e=yield Wp(t);return new i(e)});var zp=(i,t,e,r)=>{let n=vo.get(i);n===void 0&&(n=new WeakMap,vo.set(i,n));let o=Up(e,r);return n.set(t,o),o};var Yp=(i,t,e,r,n,o,s,a,c,u,h,l,p)=>(m,f,g,b)=>{if(b.numberOfInputs===0&&b.numberOfOutputs===0)throw c();let x=Array.isArray(b.outputChannelCount)?b.outputChannelCount:Array.from(b.outputChannelCount);if(x.some(H=>H<1))throw c();if(x.length!==b.numberOfOutputs)throw t();if(b.channelCountMode!=="explicit")throw c();let C=b.channelCount*b.numberOfInputs,S=x.reduce((H,at)=>H+at,0),T=g.parameterDescriptors===void 0?0:g.parameterDescriptors.length;if(C+T>6||S>6)throw c();let w=new MessageChannel,v=[],A=[];for(let H=0;H<b.numberOfInputs;H+=1)v.push(s(m,{channelCount:b.channelCount,channelCountMode:b.channelCountMode,channelInterpretation:b.channelInterpretation,gain:1})),A.push(n(m,{channelCount:b.channelCount,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:b.channelCount}));let _=[];if(g.parameterDescriptors!==void 0)for(let{defaultValue:H,maxValue:at,minValue:ie,name:Bt}of g.parameterDescriptors){let It=o(m,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:b.parameterData[Bt]!==void 0?b.parameterData[Bt]:H===void 0?0:H});Object.defineProperties(It.offset,{defaultValue:{get:()=>H===void 0?0:H},maxValue:{get:()=>at===void 0?Ut:at},minValue:{get:()=>ie===void 0?$t:ie}}),_.push(It)}let E=r(m,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:Math.max(1,C+T)}),q=da(f,m.sampleRate),M=a(m,q,C+T,Math.max(1,S)),R=n(m,{channelCount:Math.max(1,S),channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:Math.max(1,S)}),B=[];for(let H=0;H<b.numberOfOutputs;H+=1)B.push(r(m,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:x[H]}));for(let H=0;H<b.numberOfInputs;H+=1){v[H].connect(A[H]);for(let at=0;at<b.channelCount;at+=1)A[H].connect(E,at,H*b.channelCount+at)}let D=new fn(g.parameterDescriptors===void 0?[]:g.parameterDescriptors.map(({name:H},at)=>{let ie=_[at];return ie.connect(E,0,C+at),ie.start(0),[H,ie.offset]}));E.connect(M);let j=b.channelInterpretation,F=null,W=b.numberOfOutputs===0?[M]:B,K={get bufferSize(){return q},get channelCount(){return b.channelCount},set channelCount(H){throw e()},get channelCountMode(){return b.channelCountMode},set channelCountMode(H){throw e()},get channelInterpretation(){return j},set channelInterpretation(H){for(let at of v)at.channelInterpretation=H;j=H},get context(){return M.context},get inputs(){return v},get numberOfInputs(){return b.numberOfInputs},get numberOfOutputs(){return b.numberOfOutputs},get onprocessorerror(){return F},set onprocessorerror(H){typeof F=="function"&&K.removeEventListener("processorerror",F),F=typeof H=="function"?H:null,typeof F=="function"&&K.addEventListener("processorerror",F)},get parameters(){return D},get port(){return w.port2},addEventListener(...H){return M.addEventListener(H[0],H[1],H[2])},connect:i.bind(null,W),disconnect:u.bind(null,W),dispatchEvent(...H){return M.dispatchEvent(H[0])},removeEventListener(...H){return M.removeEventListener(H[0],H[1],H[2])}},k=new Map;w.port1.addEventListener=(H=>(...at)=>{if(at[0]==="message"){let ie=typeof at[1]=="function"?at[1]:typeof at[1]=="object"&&at[1]!==null&&typeof at[1].handleEvent=="function"?at[1].handleEvent:null;if(ie!==null){let Bt=k.get(at[1]);Bt!==void 0?at[1]=Bt:(at[1]=It=>{h(m.currentTime,m.sampleRate,()=>ie(It))},k.set(ie,at[1]))}}return H.call(w.port1,at[0],at[1],at[2])})(w.port1.addEventListener),w.port1.removeEventListener=(H=>(...at)=>{if(at[0]==="message"){let ie=k.get(at[1]);ie!==void 0&&(k.delete(at[1]),at[1]=ie)}return H.call(w.port1,at[0],at[1],at[2])})(w.port1.removeEventListener);let nt=null;Object.defineProperty(w.port1,"onmessage",{get:()=>nt,set:H=>{typeof nt=="function"&&w.port1.removeEventListener("message",nt),nt=typeof H=="function"?H:null,typeof nt=="function"&&(w.port1.addEventListener("message",nt),w.port1.start())}}),g.prototype.port=w.port1;let mt=null;zp(m,K,g,b).then(H=>mt=H);let Ht=yn(b.numberOfInputs,b.channelCount),De=yn(b.numberOfOutputs,x),ke=g.parameterDescriptors===void 0?[]:g.parameterDescriptors.reduce((H,{name:at})=>Q(O({},H),{[at]:new Float32Array(128)}),{}),Ot=!0,ut=()=>{b.numberOfOutputs>0&&M.disconnect(R);for(let H=0,at=0;H<b.numberOfOutputs;H+=1){let ie=B[H];for(let Bt=0;Bt<x[H];Bt+=1)R.disconnect(ie,at+Bt,Bt);at+=x[H]}},Ki=new Map;M.onaudioprocess=({inputBuffer:H,outputBuffer:at})=>{if(mt!==null){let ie=l(K);for(let Bt=0;Bt<q;Bt+=128){for(let It=0;It<b.numberOfInputs;It+=1)for(let Wt=0;Wt<b.channelCount;Wt+=1)gn(H,Ht[It],Wt,Wt,Bt);g.parameterDescriptors!==void 0&&g.parameterDescriptors.forEach(({name:It},Wt)=>{gn(H,ke,It,C+Wt,Bt)});for(let It=0;It<b.numberOfInputs;It+=1)for(let Wt=0;Wt<x[It];Wt+=1)De[It][Wt].byteLength===0&&(De[It][Wt]=new Float32Array(128));try{let It=Ht.map((qe,Xr)=>{if(ie[Xr].size>0)return Ki.set(Xr,q/128),qe;let Qc=Ki.get(Xr);return Qc===void 0?[]:(qe.every(gg=>gg.every(yg=>yg===0))&&(Qc===1?Ki.delete(Xr):Ki.set(Xr,Qc-1)),qe)});Ot=h(m.currentTime+Bt/m.sampleRate,m.sampleRate,()=>mt.process(It,De,ke));for(let qe=0,Xr=0;qe<b.numberOfOutputs;qe+=1){for(let io=0;io<x[qe];io+=1)ua(at,De[qe],io,Xr+io,Bt);Xr+=x[qe]}}catch(It){Ot=!1,K.dispatchEvent(new ErrorEvent("processorerror",{colno:It.colno,filename:It.filename,lineno:It.lineno,message:It.message}))}if(!Ot){for(let It=0;It<b.numberOfInputs;It+=1){v[It].disconnect(A[It]);for(let Wt=0;Wt<b.channelCount;Wt+=1)A[Bt].disconnect(E,Wt,It*b.channelCount+Wt)}if(g.parameterDescriptors!==void 0){let It=g.parameterDescriptors.length;for(let Wt=0;Wt<It;Wt+=1){let qe=_[Wt];qe.disconnect(E,0,C+Wt),qe.stop()}}E.disconnect(M),M.onaudioprocess=null,to?ut():tn();break}}}};let to=!1,et=s(m,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0}),Ji=()=>M.connect(et).connect(m.destination),tn=()=>{M.disconnect(et),et.disconnect()},eo=()=>{if(Ot){tn(),b.numberOfOutputs>0&&M.connect(R);for(let H=0,at=0;H<b.numberOfOutputs;H+=1){let ie=B[H];for(let Bt=0;Bt<x[H];Bt+=1)R.connect(ie,at+Bt,Bt);at+=x[H]}}to=!0},ro=()=>{Ot&&(Ji(),ut()),to=!1};return Ji(),p(K,eo,ro)};var Vu=(i,t)=>{let e=i.createBiquadFilter();return gt(e,t),Tt(e,t,"Q"),Tt(e,t,"detune"),Tt(e,t,"frequency"),Tt(e,t,"gain"),St(e,t,"type"),e};var Hp=(i,t)=>(e,r)=>{let n=e.createChannelMerger(r.numberOfInputs);return i!==null&&i.name==="webkitAudioContext"&&t(e,n),gt(n,r),n};var $p=i=>{let t=i.numberOfOutputs;Object.defineProperty(i,"channelCount",{get:()=>t,set:e=>{if(e!==t)throw Ft()}}),Object.defineProperty(i,"channelCountMode",{get:()=>"explicit",set:e=>{if(e!=="explicit")throw Ft()}}),Object.defineProperty(i,"channelInterpretation",{get:()=>"discrete",set:e=>{if(e!=="discrete")throw Ft()}})};var Cn=(i,t)=>{let e=i.createChannelSplitter(t.numberOfOutputs);return gt(e,t),$p(e),e};var Zp=(i,t,e,r,n)=>(o,s)=>{if(o.createConstantSource===void 0)return e(o,s);let a=o.createConstantSource();return gt(a,s),Tt(a,s,"offset"),t(r,()=>r(o))||xn(a),t(n,()=>n(o))||An(a),i(o,a),a};var He=(i,t)=>(i.connect=t.connect.bind(t),i.disconnect=t.disconnect.bind(t),i);var Xp=(i,t,e,r)=>(n,a)=>{var c=a,{offset:o}=c,s=Qr(c,["offset"]);let u=n.createBuffer(1,2,44100),h=t(n,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),l=e(n,Q(O({},s),{gain:o})),p=u.getChannelData(0);p[0]=1,p[1]=1,h.buffer=u,h.loop=!0;let m={get bufferSize(){},get channelCount(){return l.channelCount},set channelCount(b){l.channelCount=b},get channelCountMode(){return l.channelCountMode},set channelCountMode(b){l.channelCountMode=b},get channelInterpretation(){return l.channelInterpretation},set channelInterpretation(b){l.channelInterpretation=b},get context(){return l.context},get inputs(){return[]},get numberOfInputs(){return h.numberOfInputs},get numberOfOutputs(){return l.numberOfOutputs},get offset(){return l.gain},get onended(){return h.onended},set onended(b){h.onended=b},addEventListener(...b){return h.addEventListener(b[0],b[1],b[2])},dispatchEvent(...b){return h.dispatchEvent(b[0])},removeEventListener(...b){return h.removeEventListener(b[0],b[1],b[2])},start(b=0){h.start.call(h,b)},stop(b=0){h.stop.call(h,b)}},f=()=>h.connect(l),g=()=>h.disconnect(l);return i(n,h),r(He(m,l),f,g)};var Qp=(i,t)=>(e,r)=>{let n=e.createConvolver();if(gt(n,r),r.disableNormalization===n.normalize&&(n.normalize=!r.disableNormalization),St(n,r,"buffer"),r.channelCount>2||(t(n,"channelCount",o=>()=>o.call(n),o=>s=>{if(s>2)throw i();return o.call(n,s)}),r.channelCountMode==="max"))throw i();return t(n,"channelCountMode",o=>()=>o.call(n),o=>s=>{if(s==="max")throw i();return o.call(n,s)}),n};var qu=(i,t)=>{let e=i.createDelay(t.maxDelayTime);return gt(e,t),Tt(e,t,"delayTime"),e};var Kp=i=>(t,e)=>{let r=t.createDynamicsCompressor();if(gt(r,e),e.channelCount>2||e.channelCountMode==="max")throw i();return Tt(r,e,"attack"),Tt(r,e,"knee"),Tt(r,e,"ratio"),Tt(r,e,"release"),Tt(r,e,"threshold"),r};var Ae=(i,t)=>{let e=i.createGain();return gt(e,t),Tt(e,t,"gain"),e};var Jp=i=>(t,e,r)=>{if(t.createIIRFilter===void 0)return i(t,e,r);let n=t.createIIRFilter(r.feedforward,r.feedback);return gt(n,r),n};function BC(i,t){let e=t[0]*t[0]+t[1]*t[1];return[(i[0]*t[0]+i[1]*t[1])/e,(i[1]*t[0]-i[0]*t[1])/e]}function GC(i,t){return[i[0]*t[0]-i[1]*t[1],i[0]*t[1]+i[1]*t[0]]}function tm(i,t){let e=[0,0];for(let r=i.length-1;r>=0;r-=1)e=GC(e,t),e[0]+=i[r];return e}var em=(i,t,e,r)=>(n,o,{channelCount:s,channelCountMode:a,channelInterpretation:c,feedback:u,feedforward:h})=>{let l=da(o,n.sampleRate),p=u instanceof Float64Array?u:new Float64Array(u),m=h instanceof Float64Array?h:new Float64Array(h),f=p.length,g=m.length,b=Math.min(f,g);if(f===0||f>20)throw r();if(p[0]===0)throw t();if(g===0||g>20)throw r();if(m[0]===0)throw t();if(p[0]!==1){for(let _=0;_<g;_+=1)m[_]/=p[0];for(let _=1;_<f;_+=1)p[_]/=p[0]}let x=e(n,l,s,s);x.channelCount=s,x.channelCountMode=a,x.channelInterpretation=c;let C=32,S=[],T=[],w=[];for(let _=0;_<s;_+=1){S.push(0);let E=new Float32Array(C),q=new Float32Array(C);E.fill(0),q.fill(0),T.push(E),w.push(q)}x.onaudioprocess=_=>{let E=_.inputBuffer,q=_.outputBuffer,M=E.numberOfChannels;for(let R=0;R<M;R+=1){let B=E.getChannelData(R),D=q.getChannelData(R);S[R]=la(p,f,m,g,b,T[R],w[R],S[R],C,B,D)}};let v=n.sampleRate/2;return He({get bufferSize(){return l},get channelCount(){return x.channelCount},set channelCount(_){x.channelCount=_},get channelCountMode(){return x.channelCountMode},set channelCountMode(_){x.channelCountMode=_},get channelInterpretation(){return x.channelInterpretation},set channelInterpretation(_){x.channelInterpretation=_},get context(){return x.context},get inputs(){return[x]},get numberOfInputs(){return x.numberOfInputs},get numberOfOutputs(){return x.numberOfOutputs},addEventListener(..._){return x.addEventListener(_[0],_[1],_[2])},dispatchEvent(..._){return x.dispatchEvent(_[0])},getFrequencyResponse(_,E,q){if(_.length!==E.length||E.length!==q.length)throw i();let M=_.length;for(let R=0;R<M;R+=1){let B=-Math.PI*(_[R]/v),D=[Math.cos(B),Math.sin(B)],j=tm(m,D),F=tm(p,D),W=BC(j,F);E[R]=Math.sqrt(W[0]*W[0]+W[1]*W[1]),q[R]=Math.atan2(W[1],W[0])}},removeEventListener(..._){return x.removeEventListener(_[0],_[1],_[2])}},x)};var rm=(i,t)=>i.createMediaElementSource(t.mediaElement);var im=(i,t)=>{let e=i.createMediaStreamDestination();return gt(e,t),e.numberOfOutputs===1&&Object.defineProperty(e,"numberOfOutputs",{get:()=>0}),e};var nm=(i,{mediaStream:t})=>{let e=t.getAudioTracks();e.sort((o,s)=>o.id<s.id?-1:o.id>s.id?1:0);let r=e.slice(0,1),n=i.createMediaStreamSource(new MediaStream(r));return Object.defineProperty(n,"mediaStream",{value:t}),n};var om=(i,t)=>(e,{mediaStreamTrack:r})=>{if(typeof e.createMediaStreamTrackSource=="function")return e.createMediaStreamTrackSource(r);let n=new MediaStream([r]),o=e.createMediaStreamSource(n);if(r.kind!=="audio")throw i();if(t(e))throw new TypeError;return o};var sm=i=>i===null?null:i.hasOwnProperty("OfflineAudioContext")?i.OfflineAudioContext:i.hasOwnProperty("webkitOfflineAudioContext")?i.webkitOfflineAudioContext:null;var am=(i,t,e,r,n,o)=>(s,a)=>{let c=s.createOscillator();return gt(c,a),Tt(c,a,"detune"),Tt(c,a,"frequency"),a.periodicWave!==void 0?c.setPeriodicWave(a.periodicWave):St(c,a,"type"),t(e,()=>e(s))||xn(c),t(r,()=>r(s))||o(c,s),t(n,()=>n(s))||An(c),i(s,c),c};var cm=i=>(t,e)=>{let r=t.createPanner();return r.orientationX===void 0?i(t,e):(gt(r,e),Tt(r,e,"orientationX"),Tt(r,e,"orientationY"),Tt(r,e,"orientationZ"),Tt(r,e,"positionX"),Tt(r,e,"positionY"),Tt(r,e,"positionZ"),St(r,e,"coneInnerAngle"),St(r,e,"coneOuterAngle"),St(r,e,"coneOuterGain"),St(r,e,"distanceModel"),St(r,e,"maxDistance"),St(r,e,"panningModel"),St(r,e,"refDistance"),St(r,e,"rolloffFactor"),r)};var um=(i,t,e,r,n,o,s,a,c,u)=>(h,q)=>{var M=q,{coneInnerAngle:l,coneOuterAngle:p,coneOuterGain:m,distanceModel:f,maxDistance:g,orientationX:b,orientationY:x,orientationZ:C,panningModel:S,positionX:T,positionY:w,positionZ:v,refDistance:A,rolloffFactor:_}=M,E=Qr(M,["coneInnerAngle","coneOuterAngle","coneOuterGain","distanceModel","maxDistance","orientationX","orientationY","orientationZ","panningModel","positionX","positionY","positionZ","refDistance","rolloffFactor"]);let R=h.createPanner();if(E.channelCount>2||E.channelCountMode==="max")throw s();gt(R,E);let B={channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete"},D=e(h,Q(O({},B),{channelInterpretation:"speakers",numberOfInputs:6})),j=r(h,Q(O({},E),{gain:1})),F=r(h,Q(O({},B),{gain:1})),W=r(h,Q(O({},B),{gain:0})),K=r(h,Q(O({},B),{gain:0})),k=r(h,Q(O({},B),{gain:0})),nt=r(h,Q(O({},B),{gain:0})),mt=r(h,Q(O({},B),{gain:0})),Ct=n(h,256,6,1),Ht=o(h,Q(O({},B),{curve:new Float32Array([1,1]),oversample:"none"})),De=[b,x,C],ke=[T,w,v],Ot=new Float32Array(1);Ct.onaudioprocess=({inputBuffer:et})=>{let Ji=[c(et,Ot,0),c(et,Ot,1),c(et,Ot,2)];Ji.some((eo,ro)=>eo!==De[ro])&&(R.setOrientation(...Ji),De=Ji);let tn=[c(et,Ot,3),c(et,Ot,4),c(et,Ot,5)];tn.some((eo,ro)=>eo!==ke[ro])&&(R.setPosition(...tn),ke=tn)},Object.defineProperty(W.gain,"defaultValue",{get:()=>0}),Object.defineProperty(K.gain,"defaultValue",{get:()=>0}),Object.defineProperty(k.gain,"defaultValue",{get:()=>0}),Object.defineProperty(nt.gain,"defaultValue",{get:()=>0}),Object.defineProperty(mt.gain,"defaultValue",{get:()=>0});let ut={get bufferSize(){},get channelCount(){return R.channelCount},set channelCount(et){if(et>2)throw s();j.channelCount=et,R.channelCount=et},get channelCountMode(){return R.channelCountMode},set channelCountMode(et){if(et==="max")throw s();j.channelCountMode=et,R.channelCountMode=et},get channelInterpretation(){return R.channelInterpretation},set channelInterpretation(et){j.channelInterpretation=et,R.channelInterpretation=et},get coneInnerAngle(){return R.coneInnerAngle},set coneInnerAngle(et){R.coneInnerAngle=et},get coneOuterAngle(){return R.coneOuterAngle},set coneOuterAngle(et){R.coneOuterAngle=et},get coneOuterGain(){return R.coneOuterGain},set coneOuterGain(et){if(et<0||et>1)throw t();R.coneOuterGain=et},get context(){return R.context},get distanceModel(){return R.distanceModel},set distanceModel(et){R.distanceModel=et},get inputs(){return[j]},get maxDistance(){return R.maxDistance},set maxDistance(et){if(et<0)throw new RangeError;R.maxDistance=et},get numberOfInputs(){return R.numberOfInputs},get numberOfOutputs(){return R.numberOfOutputs},get orientationX(){return F.gain},get orientationY(){return W.gain},get orientationZ(){return K.gain},get panningModel(){return R.panningModel},set panningModel(et){R.panningModel=et},get positionX(){return k.gain},get positionY(){return nt.gain},get positionZ(){return mt.gain},get refDistance(){return R.refDistance},set refDistance(et){if(et<0)throw new RangeError;R.refDistance=et},get rolloffFactor(){return R.rolloffFactor},set rolloffFactor(et){if(et<0)throw new RangeError;R.rolloffFactor=et},addEventListener(...et){return j.addEventListener(et[0],et[1],et[2])},dispatchEvent(...et){return j.dispatchEvent(et[0])},removeEventListener(...et){return j.removeEventListener(et[0],et[1],et[2])}};l!==ut.coneInnerAngle&&(ut.coneInnerAngle=l),p!==ut.coneOuterAngle&&(ut.coneOuterAngle=p),m!==ut.coneOuterGain&&(ut.coneOuterGain=m),f!==ut.distanceModel&&(ut.distanceModel=f),g!==ut.maxDistance&&(ut.maxDistance=g),b!==ut.orientationX.value&&(ut.orientationX.value=b),x!==ut.orientationY.value&&(ut.orientationY.value=x),C!==ut.orientationZ.value&&(ut.orientationZ.value=C),S!==ut.panningModel&&(ut.panningModel=S),T!==ut.positionX.value&&(ut.positionX.value=T),w!==ut.positionY.value&&(ut.positionY.value=w),v!==ut.positionZ.value&&(ut.positionZ.value=v),A!==ut.refDistance&&(ut.refDistance=A),_!==ut.rolloffFactor&&(ut.rolloffFactor=_),(De[0]!==1||De[1]!==0||De[2]!==0)&&R.setOrientation(...De),(ke[0]!==0||ke[1]!==0||ke[2]!==0)&&R.setPosition(...ke);let Ki=()=>{j.connect(R),i(j,Ht,0,0),Ht.connect(F).connect(D,0,0),Ht.connect(W).connect(D,0,1),Ht.connect(K).connect(D,0,2),Ht.connect(k).connect(D,0,3),Ht.connect(nt).connect(D,0,4),Ht.connect(mt).connect(D,0,5),D.connect(Ct).connect(h.destination)},to=()=>{j.disconnect(R),a(j,Ht,0,0),Ht.disconnect(F),F.disconnect(D),Ht.disconnect(W),W.disconnect(D),Ht.disconnect(K),K.disconnect(D),Ht.disconnect(k),k.disconnect(D),Ht.disconnect(nt),nt.disconnect(D),Ht.disconnect(mt),mt.disconnect(D),D.disconnect(Ct),Ct.disconnect(h.destination)};return u(He(ut,R),Ki,to)};var hm=i=>(t,{disableNormalization:e,imag:r,real:n})=>{let o=r instanceof Float32Array?r:new Float32Array(r),s=n instanceof Float32Array?n:new Float32Array(n),a=t.createPeriodicWave(s,o,{disableNormalization:e});if(Array.from(r).length<2)throw i();return a};var _n=(i,t,e,r)=>i.createScriptProcessor(t,e,r);var lm=(i,t)=>(e,r)=>{let n=r.channelCountMode;if(n==="clamped-max")throw t();if(e.createStereoPanner===void 0)return i(e,r);let o=e.createStereoPanner();return gt(o,r),Tt(o,r,"pan"),Object.defineProperty(o,"channelCountMode",{get:()=>n,set:s=>{if(s!==n)throw t()}}),o};var dm=(i,t,e,r,n,o)=>{let a=new Float32Array([1,1]),c=Math.PI/2,u={channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete"},h=Q(O({},u),{oversample:"none"}),l=(f,g,b,x)=>{let C=new Float32Array(16385),S=new Float32Array(16385);for(let E=0;E<16385;E+=1){let q=E/16384*c;C[E]=Math.cos(q),S[E]=Math.sin(q)}let T=e(f,Q(O({},u),{gain:0})),w=r(f,Q(O({},h),{curve:C})),v=r(f,Q(O({},h),{curve:a})),A=e(f,Q(O({},u),{gain:0})),_=r(f,Q(O({},h),{curve:S}));return{connectGraph(){g.connect(T),g.connect(v.inputs===void 0?v:v.inputs[0]),g.connect(A),v.connect(b),b.connect(w.inputs===void 0?w:w.inputs[0]),b.connect(_.inputs===void 0?_:_.inputs[0]),w.connect(T.gain),_.connect(A.gain),T.connect(x,0,0),A.connect(x,0,1)},disconnectGraph(){g.disconnect(T),g.disconnect(v.inputs===void 0?v:v.inputs[0]),g.disconnect(A),v.disconnect(b),b.disconnect(w.inputs===void 0?w:w.inputs[0]),b.disconnect(_.inputs===void 0?_:_.inputs[0]),w.disconnect(T.gain),_.disconnect(A.gain),T.disconnect(x,0,0),A.disconnect(x,0,1)}}},p=(f,g,b,x)=>{let C=new Float32Array(16385),S=new Float32Array(16385),T=new Float32Array(16385),w=new Float32Array(16385),v=Math.floor(16385/2);for(let W=0;W<16385;W+=1)if(W>v){let K=(W-v)/(16384-v)*c;C[W]=Math.cos(K),S[W]=Math.sin(K),T[W]=0,w[W]=1}else{let K=W/(16384-v)*c;C[W]=1,S[W]=0,T[W]=Math.cos(K),w[W]=Math.sin(K)}let A=t(f,{channelCount:2,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:2}),_=e(f,Q(O({},u),{gain:0})),E=r(f,Q(O({},h),{curve:C})),q=e(f,Q(O({},u),{gain:0})),M=r(f,Q(O({},h),{curve:S})),R=r(f,Q(O({},h),{curve:a})),B=e(f,Q(O({},u),{gain:0})),D=r(f,Q(O({},h),{curve:T})),j=e(f,Q(O({},u),{gain:0})),F=r(f,Q(O({},h),{curve:w}));return{connectGraph(){g.connect(A),g.connect(R.inputs===void 0?R:R.inputs[0]),A.connect(_,0),A.connect(q,0),A.connect(B,1),A.connect(j,1),R.connect(b),b.connect(E.inputs===void 0?E:E.inputs[0]),b.connect(M.inputs===void 0?M:M.inputs[0]),b.connect(D.inputs===void 0?D:D.inputs[0]),b.connect(F.inputs===void 0?F:F.inputs[0]),E.connect(_.gain),M.connect(q.gain),D.connect(B.gain),F.connect(j.gain),_.connect(x,0,0),B.connect(x,0,0),q.connect(x,0,1),j.connect(x,0,1)},disconnectGraph(){g.disconnect(A),g.disconnect(R.inputs===void 0?R:R.inputs[0]),A.disconnect(_,0),A.disconnect(q,0),A.disconnect(B,1),A.disconnect(j,1),R.disconnect(b),b.disconnect(E.inputs===void 0?E:E.inputs[0]),b.disconnect(M.inputs===void 0?M:M.inputs[0]),b.disconnect(D.inputs===void 0?D:D.inputs[0]),b.disconnect(F.inputs===void 0?F:F.inputs[0]),E.disconnect(_.gain),M.disconnect(q.gain),D.disconnect(B.gain),F.disconnect(j.gain),_.disconnect(x,0,0),B.disconnect(x,0,0),q.disconnect(x,0,1),j.disconnect(x,0,1)}}},m=(f,g,b,x,C)=>{if(g===1)return l(f,b,x,C);if(g===2)return p(f,b,x,C);throw n()};return(f,S)=>{var T=S,{channelCount:g,channelCountMode:b,pan:x}=T,C=Qr(T,["channelCount","channelCountMode","pan"]);if(b==="max")throw n();let w=i(f,Q(O({},C),{channelCount:1,channelCountMode:b,numberOfInputs:2})),v=e(f,Q(O({},C),{channelCount:g,channelCountMode:b,gain:1})),A=e(f,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:x}),{connectGraph:_,disconnectGraph:E}=m(f,g,v,A,w);Object.defineProperty(A.gain,"defaultValue",{get:()=>0}),Object.defineProperty(A.gain,"maxValue",{get:()=>1}),Object.defineProperty(A.gain,"minValue",{get:()=>-1});let q={get bufferSize(){},get channelCount(){return v.channelCount},set channelCount(D){v.channelCount!==D&&(M&&E(),{connectGraph:_,disconnectGraph:E}=m(f,D,v,A,w),M&&_()),v.channelCount=D},get channelCountMode(){return v.channelCountMode},set channelCountMode(D){if(D==="clamped-max"||D==="max")throw n();v.channelCountMode=D},get channelInterpretation(){return v.channelInterpretation},set channelInterpretation(D){v.channelInterpretation=D},get context(){return v.context},get inputs(){return[v]},get numberOfInputs(){return v.numberOfInputs},get numberOfOutputs(){return v.numberOfOutputs},get pan(){return A.gain},addEventListener(...D){return v.addEventListener(D[0],D[1],D[2])},dispatchEvent(...D){return v.dispatchEvent(D[0])},removeEventListener(...D){return v.removeEventListener(D[0],D[1],D[2])}},M=!1,R=()=>{_(),M=!0},B=()=>{E(),M=!1};return o(He(q,w),R,B)}};var pm=(i,t,e,r,n,o,s)=>(a,c)=>{let u=a.createWaveShaper();if(o!==null&&o.name==="webkitAudioContext"&&a.createGain().gain.automationRate===void 0)return e(a,c);gt(u,c);let h=c.curve===null||c.curve instanceof Float32Array?c.curve:new Float32Array(c.curve);if(h!==null&&h.length<2)throw t();St(u,{curve:h},"curve"),St(u,c,"oversample");let l=null,p=!1;return s(u,"curve",g=>()=>g.call(u),g=>b=>(g.call(u,b),p&&(r(b)&&l===null?l=i(a,u):!r(b)&&l!==null&&(l(),l=null)),b)),n(u,()=>{p=!0,r(u.curve)&&(l=i(a,u))},()=>{p=!1,l!==null&&(l(),l=null)})};var mm=(i,t,e,r,n)=>(o,u)=>{var h=u,{curve:s,oversample:a}=h,c=Qr(h,["curve","oversample"]);let l=o.createWaveShaper(),p=o.createWaveShaper();gt(l,c),gt(p,c);let m=e(o,Q(O({},c),{gain:1})),f=e(o,Q(O({},c),{gain:-1})),g=e(o,Q(O({},c),{gain:1})),b=e(o,Q(O({},c),{gain:-1})),x=null,C=!1,S=null,T={get bufferSize(){},get channelCount(){return l.channelCount},set channelCount(A){m.channelCount=A,f.channelCount=A,l.channelCount=A,g.channelCount=A,p.channelCount=A,b.channelCount=A},get channelCountMode(){return l.channelCountMode},set channelCountMode(A){m.channelCountMode=A,f.channelCountMode=A,l.channelCountMode=A,g.channelCountMode=A,p.channelCountMode=A,b.channelCountMode=A},get channelInterpretation(){return l.channelInterpretation},set channelInterpretation(A){m.channelInterpretation=A,f.channelInterpretation=A,l.channelInterpretation=A,g.channelInterpretation=A,p.channelInterpretation=A,b.channelInterpretation=A},get context(){return l.context},get curve(){return S},set curve(A){if(A!==null&&A.length<2)throw t();if(A===null)l.curve=A,p.curve=A;else{let _=A.length,E=new Float32Array(_+2-_%2),q=new Float32Array(_+2-_%2);E[0]=A[0],q[0]=-A[_-1];let M=Math.ceil((_+1)/2),R=(_+1)/2-1;for(let B=1;B<M;B+=1){let D=B/M*R,j=Math.floor(D),F=Math.ceil(D);E[B]=j===F?A[j]:(1-(D-j))*A[j]+(1-(F-D))*A[F],q[B]=j===F?-A[_-1-j]:-((1-(D-j))*A[_-1-j])-(1-(F-D))*A[_-1-F]}E[M]=_%2===1?A[M-1]:(A[M-2]+A[M-1])/2,l.curve=E,p.curve=q}S=A,C&&(r(S)&&x===null?x=i(o,m):x!==null&&(x(),x=null))},get inputs(){return[m]},get numberOfInputs(){return l.numberOfInputs},get numberOfOutputs(){return l.numberOfOutputs},get oversample(){return l.oversample},set oversample(A){l.oversample=A,p.oversample=A},addEventListener(...A){return m.addEventListener(A[0],A[1],A[2])},dispatchEvent(...A){return m.dispatchEvent(A[0])},removeEventListener(...A){return m.removeEventListener(A[0],A[1],A[2])}};s!==null&&(T.curve=s instanceof Float32Array?s:new Float32Array(s)),a!==T.oversample&&(T.oversample=a);let w=()=>{m.connect(l).connect(g),m.connect(f).connect(p).connect(b).connect(g),C=!0,r(S)&&(x=i(o,m))},v=()=>{m.disconnect(l),l.disconnect(g),m.disconnect(f),f.disconnect(p),p.disconnect(b),b.disconnect(g),C=!1,x!==null&&(x(),x=null)};return n(He(T,g),w,v)};var ue=()=>new DOMException("","NotSupportedError");var VC={numberOfChannels:1},fm=(i,t,e,r,n)=>class extends i{constructor(s,a,c){let u;if(typeof s=="number"&&a!==void 0&&c!==void 0)u={length:a,numberOfChannels:s,sampleRate:c};else if(typeof s=="object")u=s;else throw new Error("The given parameters are not valid.");let{length:h,numberOfChannels:l,sampleRate:p}=O(O({},VC),u),m=r(l,h,p);t(cr,()=>cr(m))||m.addEventListener("statechange",(()=>{let f=0,g=b=>{this._state==="running"&&(f>0?(m.removeEventListener("statechange",g),b.stopImmediatePropagation(),this._waitForThePromiseToSettle(b)):f+=1)};return g})()),super(m,l),this._length=h,this._nativeOfflineAudioContext=m,this._state=null}get length(){return this._nativeOfflineAudioContext.length===void 0?this._length:this._nativeOfflineAudioContext.length}get state(){return this._state===null?this._nativeOfflineAudioContext.state:this._state}startRendering(){return this._state==="running"?Promise.reject(e()):(this._state="running",n(this.destination,this._nativeOfflineAudioContext).finally(()=>{this._state=null,si(this)}))}_waitForThePromiseToSettle(s){this._state===null?this._nativeOfflineAudioContext.dispatchEvent(s):setTimeout(()=>this._waitForThePromiseToSettle(s))}};var qC={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",detune:0,frequency:440,periodicWave:void 0,type:"sine"},gm=(i,t,e,r,n,o,s)=>class extends i{constructor(c,u){let h=n(c),l=O(O({},qC),u),p=e(h,l),m=o(h),f=m?r():null,g=c.sampleRate/2;super(c,!1,p,f),this._detune=t(this,m,p.detune,153600,-153600),this._frequency=t(this,m,p.frequency,g,-g),this._nativeOscillatorNode=p,this._onended=null,this._oscillatorNodeRenderer=f,this._oscillatorNodeRenderer!==null&&l.periodicWave!==void 0&&(this._oscillatorNodeRenderer.periodicWave=l.periodicWave)}get detune(){return this._detune}get frequency(){return this._frequency}get onended(){return this._onended}set onended(c){let u=typeof c=="function"?s(this,c):null;this._nativeOscillatorNode.onended=u;let h=this._nativeOscillatorNode.onended;this._onended=h!==null&&h===u?c:h}get type(){return this._nativeOscillatorNode.type}set type(c){this._nativeOscillatorNode.type=c,this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.periodicWave=null)}setPeriodicWave(c){this._nativeOscillatorNode.setPeriodicWave(c),this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.periodicWave=c)}start(c=0){if(this._nativeOscillatorNode.start(c),this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.start=c),this.context.state!=="closed"){sr(this);let u=()=>{this._nativeOscillatorNode.removeEventListener("ended",u),xe(this)&&Ir(this)};this._nativeOscillatorNode.addEventListener("ended",u)}}stop(c=0){this._nativeOscillatorNode.stop(c),this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.stop=c)}};var ym=(i,t,e,r,n)=>()=>{let o=new WeakMap,s=null,a=null,c=null,u=(h,l)=>J(null,null,function*(){let p=e(h),m=vt(p,l);if(!m){let f={channelCount:p.channelCount,channelCountMode:p.channelCountMode,channelInterpretation:p.channelInterpretation,detune:p.detune.value,frequency:p.frequency.value,periodicWave:s===null?void 0:s,type:p.type};p=t(l,f),a!==null&&p.start(a),c!==null&&p.stop(c)}return o.set(l,p),m?(yield i(l,h.detune,p.detune),yield i(l,h.frequency,p.frequency)):(yield r(l,h.detune,p.detune),yield r(l,h.frequency,p.frequency)),yield n(h,l,p),p});return{set periodicWave(h){s=h},set start(h){a=h},set stop(h){c=h},render(h,l){let p=o.get(l);return p!==void 0?Promise.resolve(p):u(h,l)}}};var WC={channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",coneInnerAngle:360,coneOuterAngle:360,coneOuterGain:0,distanceModel:"inverse",maxDistance:1e4,orientationX:1,orientationY:0,orientationZ:0,panningModel:"equalpower",positionX:0,positionY:0,positionZ:0,refDistance:1,rolloffFactor:1},bm=(i,t,e,r,n,o,s)=>class extends i{constructor(c,u){let h=n(c),l=O(O({},WC),u),p=e(h,l),m=o(h),f=m?r():null;super(c,!1,p,f),this._nativePannerNode=p,this._orientationX=t(this,m,p.orientationX,Ut,$t),this._orientationY=t(this,m,p.orientationY,Ut,$t),this._orientationZ=t(this,m,p.orientationZ,Ut,$t),this._positionX=t(this,m,p.positionX,Ut,$t),this._positionY=t(this,m,p.positionY,Ut,$t),this._positionZ=t(this,m,p.positionZ,Ut,$t),s(this,1)}get coneInnerAngle(){return this._nativePannerNode.coneInnerAngle}set coneInnerAngle(c){this._nativePannerNode.coneInnerAngle=c}get coneOuterAngle(){return this._nativePannerNode.coneOuterAngle}set coneOuterAngle(c){this._nativePannerNode.coneOuterAngle=c}get coneOuterGain(){return this._nativePannerNode.coneOuterGain}set coneOuterGain(c){this._nativePannerNode.coneOuterGain=c}get distanceModel(){return this._nativePannerNode.distanceModel}set distanceModel(c){this._nativePannerNode.distanceModel=c}get maxDistance(){return this._nativePannerNode.maxDistance}set maxDistance(c){this._nativePannerNode.maxDistance=c}get orientationX(){return this._orientationX}get orientationY(){return this._orientationY}get orientationZ(){return this._orientationZ}get panningModel(){return this._nativePannerNode.panningModel}set panningModel(c){this._nativePannerNode.panningModel=c}get positionX(){return this._positionX}get positionY(){return this._positionY}get positionZ(){return this._positionZ}get refDistance(){return this._nativePannerNode.refDistance}set refDistance(c){this._nativePannerNode.refDistance=c}get rolloffFactor(){return this._nativePannerNode.rolloffFactor}set rolloffFactor(c){this._nativePannerNode.rolloffFactor=c}};var xm=(i,t,e,r,n,o,s,a,c,u)=>()=>{let h=new WeakMap,l=null,p=(m,f)=>J(null,null,function*(){let g=null,b=o(m),x={channelCount:b.channelCount,channelCountMode:b.channelCountMode,channelInterpretation:b.channelInterpretation},C=Q(O({},x),{coneInnerAngle:b.coneInnerAngle,coneOuterAngle:b.coneOuterAngle,coneOuterGain:b.coneOuterGain,distanceModel:b.distanceModel,maxDistance:b.maxDistance,panningModel:b.panningModel,refDistance:b.refDistance,rolloffFactor:b.rolloffFactor}),S=vt(b,f);if("bufferSize"in b)g=r(f,Q(O({},x),{gain:1}));else if(!S){let T=Q(O({},C),{orientationX:b.orientationX.value,orientationY:b.orientationY.value,orientationZ:b.orientationZ.value,positionX:b.positionX.value,positionY:b.positionY.value,positionZ:b.positionZ.value});b=n(f,T)}if(h.set(f,g===null?b:g),g!==null){if(l===null){if(s===null)throw new Error("Missing the native OfflineAudioContext constructor.");let M=new s(6,m.context.length,f.sampleRate),R=t(M,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:6});R.connect(M.destination),l=J(null,null,function*(){let B=yield Promise.all([m.orientationX,m.orientationY,m.orientationZ,m.positionX,m.positionY,m.positionZ].map((D,j)=>J(null,null,function*(){let F=e(M,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:j===0?1:0});return yield a(M,D,F.offset),F})));for(let D=0;D<6;D+=1)B[D].connect(R,0,D),B[D].start(0);return u(M)})}let T=yield l,w=r(f,Q(O({},x),{gain:1}));yield c(m,f,w);let v=[];for(let M=0;M<T.numberOfChannels;M+=1)v.push(T.getChannelData(M));let A=[v[0][0],v[1][0],v[2][0]],_=[v[3][0],v[4][0],v[5][0]],E=r(f,Q(O({},x),{gain:1})),q=n(f,Q(O({},C),{orientationX:A[0],orientationY:A[1],orientationZ:A[2],positionX:_[0],positionY:_[1],positionZ:_[2]}));w.connect(E).connect(q.inputs[0]),q.connect(g);for(let M=128;M<T.length;M+=128){let R=[v[0][M],v[1][M],v[2][M]],B=[v[3][M],v[4][M],v[5][M]];if(R.some((D,j)=>D!==A[j])||B.some((D,j)=>D!==_[j])){A=R,_=B;let D=M/f.sampleRate;E.gain.setValueAtTime(0,D),E=r(f,Q(O({},x),{gain:0})),q=n(f,Q(O({},C),{orientationX:A[0],orientationY:A[1],orientationZ:A[2],positionX:_[0],positionY:_[1],positionZ:_[2]})),E.gain.setValueAtTime(1,D),w.connect(E).connect(q.inputs[0]),q.connect(g)}}return g}return S?(yield i(f,m.orientationX,b.orientationX),yield i(f,m.orientationY,b.orientationY),yield i(f,m.orientationZ,b.orientationZ),yield i(f,m.positionX,b.positionX),yield i(f,m.positionY,b.positionY),yield i(f,m.positionZ,b.positionZ)):(yield a(f,m.orientationX,b.orientationX),yield a(f,m.orientationY,b.orientationY),yield a(f,m.orientationZ,b.orientationZ),yield a(f,m.positionX,b.positionX),yield a(f,m.positionY,b.positionY),yield a(f,m.positionZ,b.positionZ)),Ye(b)?yield c(m,f,b.inputs[0]):yield c(m,f,b),b});return{render(m,f){let g=h.get(f);return g!==void 0?Promise.resolve(g):p(m,f)}}};var UC={disableNormalization:!1},Am=(i,t,e,r)=>class Cm{constructor(o,s){let a=t(o),c=r(O(O({},UC),s)),u=i(a,c);return e.add(u),u}static[Symbol.hasInstance](o){return o!==null&&typeof o=="object"&&Object.getPrototypeOf(o)===Cm.prototype||e.has(o)}};var _m=(i,t)=>(e,r,n)=>(i(r).replay(n),t(r,e,n));var vm=(i,t,e)=>(r,n,o)=>J(null,null,function*(){let s=i(r);yield Promise.all(s.activeInputs.map((a,c)=>Array.from(a).map(l=>J(null,[l],function*([u,h]){let m=yield t(u).render(u,n),f=r.context.destination;!e(u)&&(r!==f||!e(r))&&m.connect(o,h,c)}))).reduce((a,c)=>[...a,...c],[]))});var Sm=(i,t,e)=>(r,n,o)=>J(null,null,function*(){let s=t(r);yield Promise.all(Array.from(s.activeInputs).map(u=>J(null,[u],function*([a,c]){let l=yield i(a).render(a,n);e(a)||l.connect(o,c)})))});var wm=(i,t,e,r)=>n=>i(cr,()=>cr(n))?Promise.resolve(i(r,r)).then(o=>{if(!o){let s=e(n,512,0,1);n.oncomplete=()=>{s.onaudioprocess=null,s.disconnect()},s.onaudioprocess=()=>n.currentTime,s.connect(n.destination)}return n.startRendering()}):new Promise(o=>{let s=t(n,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});n.oncomplete=a=>{s.disconnect(),o(a.renderedBuffer)},s.connect(n.destination),n.startRendering()});var Im=i=>(t,e)=>{i.set(t,e)};var Tm=i=>(t,e)=>i.set(t,e);var Nm=(i,t,e,r,n,o,s,a)=>(c,u)=>e(c).render(c,u).then(()=>Promise.all(Array.from(r(u)).map(h=>e(h).render(h,u)))).then(()=>n(u)).then(h=>(typeof h.copyFromChannel!="function"?(s(h),ln(h)):t(o,()=>o(h))||a(h),i.add(h),h));var zC={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers",pan:0},Om=(i,t,e,r,n,o)=>class extends i{constructor(a,c){let u=n(a),h=O(O({},zC),c),l=e(u,h),p=o(u),m=p?r():null;super(a,!1,l,m),this._pan=t(this,p,l.pan)}get pan(){return this._pan}};var Rm=(i,t,e,r,n)=>()=>{let o=new WeakMap,s=(a,c)=>J(null,null,function*(){let u=e(a),h=vt(u,c);if(!h){let l={channelCount:u.channelCount,channelCountMode:u.channelCountMode,channelInterpretation:u.channelInterpretation,pan:u.pan.value};u=t(c,l)}return o.set(c,u),h?yield i(c,a.pan,u.pan):yield r(c,a.pan,u.pan),Ye(u)?yield n(a,c,u.inputs[0]):yield n(a,c,u),u});return{render(a,c){let u=o.get(c);return u!==void 0?Promise.resolve(u):s(a,c)}}};var Mm=i=>()=>{if(i===null)return!1;try{new i({length:1,sampleRate:44100})}catch(t){return!1}return!0};var Em=(i,t)=>()=>J(null,null,function*(){if(i===null)return!0;if(t===null)return!1;let e=new Blob(['class A extends AudioWorkletProcessor{process(i){this.port.postMessage(i,[i[0][0].buffer])}}registerProcessor("a",A)'],{type:"application/javascript; charset=utf-8"}),r=new t(1,128,44100),n=URL.createObjectURL(e),o=!1,s=!1;try{yield r.audioWorklet.addModule(n);let a=new i(r,"a",{numberOfOutputs:0}),c=r.createOscillator();a.port.onmessage=()=>o=!0,a.onprocessorerror=()=>s=!0,c.connect(a),c.start(0),yield r.startRendering(),yield new Promise(u=>setTimeout(u))}catch(a){}finally{URL.revokeObjectURL(n)}return o&&!s});var Dm=(i,t)=>()=>{if(t===null)return Promise.resolve(!1);let e=new t(1,1,44100),r=i(e,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});return new Promise(n=>{e.oncomplete=()=>{r.disconnect(),n(e.currentTime!==0)},e.startRendering()})};var Wu=()=>new DOMException("","UnknownError");var YC={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",curve:null,oversample:"none"},km=(i,t,e,r,n,o,s)=>class extends i{constructor(c,u){let h=n(c),l=O(O({},YC),u),p=e(h,l),f=o(h)?r():null;super(c,!0,p,f),this._isCurveNullified=!1,this._nativeWaveShaperNode=p,s(this,1)}get curve(){return this._isCurveNullified?null:this._nativeWaveShaperNode.curve}set curve(c){if(c===null)this._isCurveNullified=!0,this._nativeWaveShaperNode.curve=new Float32Array([0,0]);else{if(c.length<2)throw t();this._isCurveNullified=!1,this._nativeWaveShaperNode.curve=c}}get oversample(){return this._nativeWaveShaperNode.oversample}set oversample(c){this._nativeWaveShaperNode.oversample=c}};var Lm=(i,t,e)=>()=>{let r=new WeakMap,n=(o,s)=>J(null,null,function*(){let a=t(o);if(!vt(a,s)){let u={channelCount:a.channelCount,channelCountMode:a.channelCountMode,channelInterpretation:a.channelInterpretation,curve:a.curve,oversample:a.oversample};a=i(s,u)}return r.set(s,a),Ye(a)?yield e(o,s,a.inputs[0]):yield e(o,s,a),a});return{render(o,s){let a=r.get(s);return a!==void 0?Promise.resolve(a):n(o,s)}}};var jm=()=>typeof window=="undefined"?null:window;var Pm=(i,t)=>e=>{e.copyFromChannel=(r,n,o=0)=>{let s=i(o),a=i(n);if(a>=e.numberOfChannels)throw t();let c=e.length,u=e.getChannelData(a),h=r.length;for(let l=s<0?-s:0;l+s<c&&l<h;l+=1)r[l]=u[l+s]},e.copyToChannel=(r,n,o=0)=>{let s=i(o),a=i(n);if(a>=e.numberOfChannels)throw t();let c=e.length,u=e.getChannelData(a),h=r.length;for(let l=s<0?-s:0;l+s<c&&l<h;l+=1)u[l+s]=r[l]}};var Fm=i=>t=>{t.copyFromChannel=(e=>(r,n,o=0)=>{let s=i(o),a=i(n);if(s<t.length)return e.call(t,r,a,s)})(t.copyFromChannel),t.copyToChannel=(e=>(r,n,o=0)=>{let s=i(o),a=i(n);if(s<t.length)return e.call(t,r,a,s)})(t.copyToChannel)};var Bm=i=>(t,e)=>{let r=e.createBuffer(1,1,44100);t.buffer===null&&(t.buffer=r),i(t,"buffer",n=>()=>{let o=n.call(t);return o===r?null:o},n=>o=>n.call(t,o===null?r:o))};var Gm=(i,t)=>(e,r)=>{r.channelCount=1,r.channelCountMode="explicit",Object.defineProperty(r,"channelCount",{get:()=>1,set:()=>{throw i()}}),Object.defineProperty(r,"channelCountMode",{get:()=>"explicit",set:()=>{throw i()}});let n=e.createBufferSource();t(r,()=>{let a=r.numberOfInputs;for(let c=0;c<a;c+=1)n.connect(r,0,c)},()=>n.disconnect(r))};var Uu=(i,t,e)=>i.copyFromChannel===void 0?i.getChannelData(e)[0]:(i.copyFromChannel(t,e),t[0]);var zu=i=>{if(i===null)return!1;let t=i.length;return t%2!==0?i[Math.floor(t/2)]!==0:i[t/2-1]+i[t/2]!==0};var vn=(i,t,e,r)=>{let n=i;for(;!n.hasOwnProperty(t);)n=Object.getPrototypeOf(n);let{get:o,set:s}=Object.getOwnPropertyDescriptor(n,t);Object.defineProperty(i,t,{get:e(o),set:r(s)})};var Vm=i=>Q(O({},i),{outputChannelCount:i.outputChannelCount!==void 0?i.outputChannelCount:i.numberOfInputs===1&&i.numberOfOutputs===1?[i.channelCount]:Array.from({length:i.numberOfOutputs},()=>1)});var qm=i=>Q(O({},i),{channelCount:i.numberOfOutputs});var Wm=i=>{let{imag:t,real:e}=i;return t===void 0?e===void 0?Q(O({},i),{imag:[0,0],real:[0,0]}):Q(O({},i),{imag:Array.from(e,()=>0),real:e}):e===void 0?Q(O({},i),{imag:t,real:Array.from(t,()=>0)}):Q(O({},i),{imag:t,real:e})};var Yu=(i,t,e)=>{try{i.setValueAtTime(t,e)}catch(r){if(r.code!==9)throw r;Yu(i,t,e+1e-7)}};var Um=i=>{let t=i.createBufferSource();t.start();try{t.start()}catch(e){return!0}return!1};var zm=i=>{let t=i.createBufferSource(),e=i.createBuffer(1,1,44100);t.buffer=e;try{t.start(0,1)}catch(r){return!1}return!0};var Ym=i=>{let t=i.createBufferSource();t.start();try{t.stop()}catch(e){return!1}return!0};var pa=i=>{let t=i.createOscillator();try{t.start(-1)}catch(e){return e instanceof RangeError}return!1};var Hu=i=>{let t=i.createBuffer(1,1,44100),e=i.createBufferSource();e.buffer=t,e.start(),e.stop();try{return e.stop(),!0}catch(r){return!1}};var ma=i=>{let t=i.createOscillator();try{t.stop(-1)}catch(e){return e instanceof RangeError}return!1};var Hm=i=>{let{port1:t,port2:e}=new MessageChannel;try{t.postMessage(i)}finally{t.close(),e.close()}};var $m=i=>{i.start=(t=>(e=0,r=0,n)=>{let o=i.buffer,s=o===null?r:Math.min(o.duration,r);o!==null&&s>o.duration-.5/i.context.sampleRate?t.call(i,e,0,0):t.call(i,e,s,n)})(i.start)};var $u=(i,t)=>{let e=t.createGain();i.connect(e);let r=(n=>()=>{n.call(i,e),i.removeEventListener("ended",r)})(i.disconnect);i.addEventListener("ended",r),He(i,e),i.stop=(n=>{let o=!1;return(s=0)=>{if(o)try{n.call(i,s)}catch(a){e.gain.setValueAtTime(0,s)}else n.call(i,s),o=!0}})(i.stop)};var ki=(i,t)=>e=>{let r={value:i};return Object.defineProperties(e,{currentTarget:r,target:r}),typeof t=="function"?t.call(i,e):t.handleEvent.call(i,e)};var HC=Fl(ar),$C=$l(ar),ZC=Wd(ni),Xm=new WeakMap,XC=op(Xm),$e=Sd(new Map,new WeakMap),Tr=jm(),Qm=kp($e,ze),Zu=np(oe),he=vm(oe,Zu,Wr),QC=Kl(Qm,Rt,he),jt=cp(un),Ur=sm(Tr),Mt=vp(Ur),Km=new WeakMap,Jm=Kd(ki),Sn=Fp(Tr),Xu=xp(Sn),Qu=Ap(Tr),tf=Cp(Tr),wo=Gp(Tr),Zt=fd(Bl(ea),Hl(HC,$C,dn,ZC,pn,oe,XC,wr,Rt,ar,xe,Wr,mn),$e,mp(Co,pn,oe,Rt,Ei,xe),ze,bn,ue,Gd(dn,Co,oe,Rt,Ei,jt,xe,Mt),Yd(Km,oe,Jt),Jm,jt,Xu,Qu,tf,Mt,wo),KC=Ql(Zt,QC,ze,Qm,jt,Mt);var Ku=new WeakSet,Zm=Lp(Tr),ef=kd(new Uint32Array(1)),Ju=Pm(ef,ze),th=Fm(ef),eh=Jl(Ku,$e,ue,Zm,Ur,Mm(Zm),Ju,th);var fa=Zl(Ae),rf=Sm(Zu,oi,Wr),Nr=Od(rf),wn=Pp(fa,$e,Um,zm,Ym,pa,Hu,ma,$m,Bm(vn),$u),Or=_m(sp(oi),rf),JC=rd(Nr,wn,Rt,Or,he),ur=gd(Gl(ra),Km,Ao,yd,wu,Iu,Tu,Nu,Ou,on,fo,Sn,Yu),t_=ed(Zt,JC,ur,Ft,wn,jt,Mt,ki);var e_=hd(Zt,ld,ze,Ft,Bp(Ae,vn),jt,Mt,he),r_=vd(Nr,Vu,Rt,Or,he),Li=Tm(Xm),i_=_d(Zt,ur,r_,bn,Vu,jt,Mt,Li),ci=Ep(ar,Qu),n_=Gm(Ft,ci),ui=Hp(Sn,n_),o_=Id(ui,Rt,he),s_=wd(Zt,o_,ui,jt,Mt),a_=Nd(Cn,Rt,he),c_=Td(Zt,a_,Cn,jt,Mt,qm),u_=Xp(fa,wn,Ae,ci),In=Zp(fa,$e,u_,pa,ma),h_=Dd(Nr,In,Rt,Or,he),l_=Ed(Zt,ur,h_,In,jt,Mt,ki),nf=Qp(ue,vn),d_=jd(nf,Rt,he),p_=Ld(Zt,d_,nf,jt,Mt,Li),m_=qd(Nr,qu,Rt,Or,he),f_=Vd(Zt,ur,m_,qu,jt,Mt,Li),of=Kp(ue),g_=Zd(Nr,of,Rt,Or,he),y_=$d(Zt,ur,g_,of,ue,jt,Mt,Li),b_=rp(Nr,Ae,Rt,Or,he),x_=ep(Zt,ur,b_,Ae,jt,Mt),A_=em(bn,Ft,_n,ue),ga=wm($e,Ae,_n,Dm(Ae,Ur)),C_=pp(wn,Rt,Ur,he,ga),__=Jp(A_),v_=dp(Zt,__,C_,jt,Mt,Li),S_=dd(ur,ui,In,_n,ue,Uu,Mt,vn),sf=new WeakMap,rh=Rp(e_,S_,Jm,Mt,sf,ki),af=am(fa,$e,pa,Hu,ma,$u),w_=ym(Nr,af,Rt,Or,he),I_=gm(Zt,ur,af,w_,jt,Mt,ki),cf=Md(wn),T_=mm(cf,Ft,Ae,zu,ci),ya=pm(cf,Ft,T_,zu,ci,Sn,vn),N_=um(dn,Ft,ui,Ae,_n,ya,ue,pn,Uu,ci),uf=cm(N_),O_=xm(Nr,ui,In,Ae,uf,Rt,Ur,Or,he,ga),R_=bm(Zt,ur,uf,O_,jt,Mt,Li),M_=hm(ze),E_=Am(M_,jt,new WeakSet,Wm),D_=dm(ui,Cn,Ae,ya,ue,ci),hf=lm(D_,ue),k_=Rm(Nr,hf,Rt,Or,he),L_=Om(Zt,ur,hf,k_,jt,Mt),j_=Lm(ya,Rt,he),P_=km(Zt,Ft,ya,j_,jt,Mt,Li),lf=Sp(Tr),ih=Jd(Tr),df=new WeakMap,F_=up(df,Ur),B_=lf?Yl($e,ue,Qd(Tr),ih,tp(Pl),jt,F_,Mt,wo,new WeakMap,new WeakMap,Em(wo,Ur),Tr):void 0,G_=_p(Xu,Mt),V_=Bd(Ku,$e,Fd,Xd,new WeakSet,jt,G_,hn,cr,Ju,th),pf=Cd(B_,KC,eh,t_,i_,s_,c_,l_,p_,V_,f_,y_,x_,v_,rh,I_,R_,E_,L_,P_),q_=wp(Zt,rm,jt,Mt),W_=Ip(Zt,im,jt,Mt),U_=Tp(Zt,nm,jt,Mt),z_=om(Ft,Mt),Y_=Np(Zt,z_,jt),mf=ud(pf,Ft,ue,Wu,q_,W_,U_,Y_,Sn);var nh=hp(sf),H_=Xl(nh),ff=Rd(ze),$_=Ud(nh),gf=Hd(ze),yf=new WeakMap,Z_=ip(yf,Jt),X_=Yp(ff,ze,Ft,ui,Cn,In,Ae,_n,ue,gf,ih,Z_,ci),Q_=qp(Ft,X_,Ae,ue,ci),K_=Ad(Nr,ff,wn,ui,Cn,In,Ae,$_,gf,ih,Rt,wo,Ur,Or,he,ga),J_=ap(df),tv=Im(yf),oh=lf?bd(H_,Zt,ur,K_,Q_,oe,J_,jt,Mt,wo,Vm,tv,Hm,ki):void 0;var yU=Op(Ft,ue,Wu,rh,Sn);var bf=Pd(ue,Ur),xf=Nm(Ku,$e,Zu,nh,ga,hn,Ju,th),bU=Mp($e,Ft,bf,rh,xf);var Af=fm(pf,$e,Ft,bf,xf);var Cf=fp(un,Xu),_f=gp(cn,Qu),vf=yp(Ao,tf),Sf=bp(un,Mt);function Xt(i){return i===void 0}function it(i){return i!==void 0}function wf(i){return typeof i=="function"}function le(i){return typeof i=="number"}function hr(i){return Object.prototype.toString.call(i)==="[object Object]"&&i.constructor===Object}function sh(i){return typeof i=="boolean"}function Vt(i){return Array.isArray(i)}function fe(i){return typeof i=="string"}function Io(i){return fe(i)&&/^([a-g]{1}(?:b|#|x|bb)?)(-?[0-9]+)/i.test(i)}function Y(i,t){if(!i)throw new Error(t)}function zt(i,t,e=1/0){if(!(t<=i&&i<=e))throw new RangeError(`Value must be within [${t}, ${e}], got: ${i}`)}function ba(i){!i.isOffline&&i.state!=="running"&&ji('The AudioContext is "suspended". Invoke Tone.start() from a user action to start the audio.')}var Tf=!1,If=!1;function ah(i){Tf=i}function Nf(i){Xt(i)&&Tf&&!If&&(If=!0,ji("Events scheduled inside of scheduled callbacks should use the passed in scheduling time. See https://github.com/Tonejs/Tone.js/wiki/Accurate-Timing"))}var Of=console;function Rf(...i){Of.log(...i)}function ji(...i){Of.warn(...i)}function Mf(i){return new mf(i)}function Ef(i,t,e){return new Af(i,t,e)}var ge=typeof self=="object"?self:null,Df=ge&&(ge.hasOwnProperty("AudioContext")||ge.hasOwnProperty("webkitAudioContext"));function kf(i,t,e){return Y(it(oh),"AudioWorkletNode only works in a secure context (https or localhost)"),new(i instanceof(ge==null?void 0:ge.BaseAudioContext)?ge==null?void 0:ge.AudioWorkletNode:oh)(i,t,e)}function ye(i,t,e,r){var n=arguments.length,o=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(i,t,e,r);else for(var a=i.length-1;a>=0;a--)(s=i[a])&&(o=(n<3?s(o):n>3?s(t,e,o):s(t,e))||o);return n>3&&o&&Object.defineProperty(t,e,o),o}function yt(i,t,e,r){function n(o){return o instanceof e?o:new e(function(s){s(o)})}return new(e||(e=Promise))(function(o,s){function a(h){try{u(r.next(h))}catch(l){s(l)}}function c(h){try{u(r.throw(h))}catch(l){s(l)}}function u(h){h.done?o(h.value):n(h.value).then(a,c)}u((r=r.apply(i,t||[])).next())})}var xa=class{constructor(t,e,r,n){this._callback=t,this._type=e,this._minimumUpdateInterval=Math.max(128/(n||44100),.001),this.updateInterval=r,this._createClock()}_createWorker(){let t=new Blob([`
5
85
  // the initial timeout time
6
86
  let timeoutTime = ${(this._updateInterval*1e3).toFixed(1)};
7
87
  // onmessage callback
@@ -16,7 +96,7 @@
16
96
  }
17
97
  // call tick initially
18
98
  tick();
19
- `],{type:"text/javascript"}),e=URL.createObjectURL(t),r=new Worker(e);r.onmessage=this._callback.bind(this),this._worker=r}_createTimeout(){this._timeout=setTimeout(()=>{this._createTimeout(),this._callback()},this._updateInterval*1e3)}_createClock(){if(this._type==="worker")try{this._createWorker()}catch(t){this._type="timeout",this._createClock()}else this._type==="timeout"&&this._createTimeout()}_disposeClock(){this._timeout&&clearTimeout(this._timeout),this._worker&&(this._worker.terminate(),this._worker.onmessage=null)}get updateInterval(){return this._updateInterval}set updateInterval(t){var e;this._updateInterval=Math.max(t,this._minimumUpdateInterval),this._type==="worker"&&((e=this._worker)===null||e===void 0||e.postMessage(this._updateInterval*1e3))}get type(){return this._type}set type(t){this._disposeClock(),this._type=t,this._createClock()}dispose(){this._disposeClock()}};function lr(i){return vf(i)}function Rr(i){return _f(i)}function Tn(i){return Sf(i)}function hi(i){return Cf(i)}function Lf(i){return i instanceof eh}function rv(i,t){return i==="value"||lr(t)||Rr(t)||Lf(t)}function Ze(i,...t){if(!t.length)return i;let e=t.shift();if(hr(i)&&hr(e))for(let r in e)rv(r,e[r])?i[r]=e[r]:hr(e[r])?(i[r]||Object.assign(i,{[r]:{}}),Ze(i[r],e[r])):Object.assign(i,{[r]:e[r]});return Ze(i,...t)}function jf(i,t){return i.length===t.length&&i.every((e,r)=>t[r]===e)}function I(i,t,e=[],r){let n={},o=Array.from(t);if(hr(o[0])&&r&&!Reflect.has(o[0],r)&&(Object.keys(o[0]).some(a=>Reflect.has(i,a))||(Ze(n,{[r]:o[0]}),e.splice(e.indexOf(r),1),o.shift())),o.length===1&&hr(o[0]))Ze(n,o[0]);else for(let s=0;s<e.length;s++)it(o[s])&&(n[e[s]]=o[s]);return Ze(i,n)}function Pf(i){return i.constructor.getDefaults()}function Pe(i,t){return Xt(i)?t:i}function dr(i,t){return t.forEach(e=>{Reflect.has(i,e)&&delete i[e]}),i}var se=class{constructor(){this.debug=!1,this._wasDisposed=!1}static getDefaults(){return{}}log(...t){(this.debug||ge&&this.toString()===ge.TONE_DEBUG_CLASS)&&Rf(this,...t)}dispose(){return this._wasDisposed=!0,this}get disposed(){return this._wasDisposed}toString(){return this.name}};se.version=mo;function zr(i,t){return i>t+1e-6}function To(i,t){return zr(i,t)||Ce(i,t)}function Pi(i,t){return i+1e-6<t}function Ce(i,t){return Math.abs(i-t)<1e-6}function ch(i,t,e){return Math.max(Math.min(i,e),t)}var te=class i extends se{constructor(){super(),this.name="Timeline",this._timeline=[];let t=I(i.getDefaults(),arguments,["memory"]);this.memory=t.memory,this.increasing=t.increasing}static getDefaults(){return{memory:1/0,increasing:!1}}get length(){return this._timeline.length}add(t){if(Y(Reflect.has(t,"time"),"Timeline: events must have a time attribute"),t.time=t.time.valueOf(),this.increasing&&this.length){let e=this._timeline[this.length-1];Y(To(t.time,e.time),"The time must be greater than or equal to the last scheduled time"),this._timeline.push(t)}else{let e=this._search(t.time);this._timeline.splice(e+1,0,t)}if(this.length>this.memory){let e=this.length-this.memory;this._timeline.splice(0,e)}return this}remove(t){let e=this._timeline.indexOf(t);return e!==-1&&this._timeline.splice(e,1),this}get(t,e="time"){let r=this._search(t,e);return r!==-1?this._timeline[r]:null}peek(){return this._timeline[0]}shift(){return this._timeline.shift()}getAfter(t,e="time"){let r=this._search(t,e);return r+1<this._timeline.length?this._timeline[r+1]:null}getBefore(t){let e=this._timeline.length;if(e>0&&this._timeline[e-1].time<t)return this._timeline[e-1];let r=this._search(t);return r-1>=0?this._timeline[r-1]:null}cancel(t){if(this._timeline.length>1){let e=this._search(t);if(e>=0)if(Ce(this._timeline[e].time,t)){for(let r=e;r>=0&&Ce(this._timeline[r].time,t);r--)e=r;this._timeline=this._timeline.slice(0,e)}else this._timeline=this._timeline.slice(0,e+1);else this._timeline=[]}else this._timeline.length===1&&To(this._timeline[0].time,t)&&(this._timeline=[]);return this}cancelBefore(t){let e=this._search(t);return e>=0&&(this._timeline=this._timeline.slice(e+1)),this}previousEvent(t){let e=this._timeline.indexOf(t);return e>0?this._timeline[e-1]:null}_search(t,e="time"){if(this._timeline.length===0)return-1;let r=0,n=this._timeline.length,o=n;if(n>0&&this._timeline[n-1][e]<=t)return n-1;for(;r<o;){let s=Math.floor(r+(o-r)/2),a=this._timeline[s],c=this._timeline[s+1];if(Ce(a[e],t)){for(let u=s;u<this._timeline.length;u++){let h=this._timeline[u];if(Ce(h[e],t))s=u;else break}return s}else{if(Pi(a[e],t)&&zr(c[e],t))return s;zr(a[e],t)?o=s:r=s+1}}return-1}_iterate(t,e=0,r=this._timeline.length-1){this._timeline.slice(e,r+1).forEach(t)}forEach(t){return this._iterate(t),this}forEachBefore(t,e){let r=this._search(t);return r!==-1&&this._iterate(e,0,r),this}forEachAfter(t,e){let r=this._search(t);return this._iterate(e,r+1),this}forEachBetween(t,e,r){let n=this._search(t),o=this._search(e);return n!==-1&&o!==-1?(this._timeline[n].time!==t&&(n+=1),this._timeline[o].time===e&&(o-=1),this._iterate(r,n,o)):n===-1&&this._iterate(r,0,o),this}forEachFrom(t,e){let r=this._search(t);for(;r>=0&&this._timeline[r].time>=t;)r--;return this._iterate(e,r+1),this}forEachAtTime(t,e){let r=this._search(t);if(r!==-1&&Ce(this._timeline[r].time,t)){let n=r;for(let o=r;o>=0&&Ce(this._timeline[o].time,t);o--)n=o;this._iterate(o=>{e(o)},n,r)}return this}dispose(){return super.dispose(),this._timeline=[],this}};var Ff=[];function li(i){Ff.push(i)}function Bf(i){Ff.forEach(t=>t(i))}var Gf=[];function di(i){Gf.push(i)}function Vf(i){Gf.forEach(t=>t(i))}var pi=class i extends se{constructor(){super(...arguments),this.name="Emitter"}on(t,e){return t.split(/\W+/).forEach(n=>{Xt(this._events)&&(this._events={}),this._events.hasOwnProperty(n)||(this._events[n]=[]),this._events[n].push(e)}),this}once(t,e){let r=(...n)=>{e(...n),this.off(t,r)};return this.on(t,r),this}off(t,e){return t.split(/\W+/).forEach(n=>{if(Xt(this._events)&&(this._events={}),this._events.hasOwnProperty(n))if(Xt(e))this._events[n]=[];else{let o=this._events[n];for(let s=o.length-1;s>=0;s--)o[s]===e&&o.splice(s,1)}}),this}emit(t,...e){if(this._events&&this._events.hasOwnProperty(t)){let r=this._events[t].slice(0);for(let n=0,o=r.length;n<o;n++)r[n].apply(this,e)}return this}static mixin(t){["on","once","off","emit"].forEach(e=>{let r=Object.getOwnPropertyDescriptor(i.prototype,e);Object.defineProperty(t.prototype,e,r)})}dispose(){return super.dispose(),this._events=void 0,this}};var Nn=class extends pi{constructor(){super(...arguments),this.isOffline=!1}toJSON(){return{}}};var Fi=class i extends Nn{constructor(){var t,e;super(),this.name="Context",this._constants=new Map,this._timeouts=new te,this._timeoutIds=0,this._initialized=!1,this._closeStarted=!1,this.isOffline=!1,this._workletPromise=null;let r=I(i.getDefaults(),arguments,["context"]);r.context?(this._context=r.context,this._latencyHint=((t=arguments[0])===null||t===void 0?void 0:t.latencyHint)||""):(this._context=Mf({latencyHint:r.latencyHint}),this._latencyHint=r.latencyHint),this._ticker=new xa(this.emit.bind(this,"tick"),r.clockSource,r.updateInterval,this._context.sampleRate),this.on("tick",this._timeoutLoop.bind(this)),this._context.onstatechange=()=>{this.emit("statechange",this.state)},this[!((e=arguments[0])===null||e===void 0)&&e.hasOwnProperty("updateInterval")?"_lookAhead":"lookAhead"]=r.lookAhead}static getDefaults(){return{clockSource:"worker",latencyHint:"interactive",lookAhead:.1,updateInterval:.05}}initialize(){return this._initialized||(Bf(this),this._initialized=!0),this}createAnalyser(){return this._context.createAnalyser()}createOscillator(){return this._context.createOscillator()}createBufferSource(){return this._context.createBufferSource()}createBiquadFilter(){return this._context.createBiquadFilter()}createBuffer(t,e,r){return this._context.createBuffer(t,e,r)}createChannelMerger(t){return this._context.createChannelMerger(t)}createChannelSplitter(t){return this._context.createChannelSplitter(t)}createConstantSource(){return this._context.createConstantSource()}createConvolver(){return this._context.createConvolver()}createDelay(t){return this._context.createDelay(t)}createDynamicsCompressor(){return this._context.createDynamicsCompressor()}createGain(){return this._context.createGain()}createIIRFilter(t,e){return this._context.createIIRFilter(t,e)}createPanner(){return this._context.createPanner()}createPeriodicWave(t,e,r){return this._context.createPeriodicWave(t,e,r)}createStereoPanner(){return this._context.createStereoPanner()}createWaveShaper(){return this._context.createWaveShaper()}createMediaStreamSource(t){return Y(hi(this._context),"Not available if OfflineAudioContext"),this._context.createMediaStreamSource(t)}createMediaElementSource(t){return Y(hi(this._context),"Not available if OfflineAudioContext"),this._context.createMediaElementSource(t)}createMediaStreamDestination(){return Y(hi(this._context),"Not available if OfflineAudioContext"),this._context.createMediaStreamDestination()}decodeAudioData(t){return this._context.decodeAudioData(t)}get currentTime(){return this._context.currentTime}get state(){return this._context.state}get sampleRate(){return this._context.sampleRate}get listener(){return this.initialize(),this._listener}set listener(t){Y(!this._initialized,"The listener cannot be set after initialization."),this._listener=t}get transport(){return this.initialize(),this._transport}set transport(t){Y(!this._initialized,"The transport cannot be set after initialization."),this._transport=t}get draw(){return this.initialize(),this._draw}set draw(t){Y(!this._initialized,"Draw cannot be set after initialization."),this._draw=t}get destination(){return this.initialize(),this._destination}set destination(t){Y(!this._initialized,"The destination cannot be set after initialization."),this._destination=t}createAudioWorkletNode(t,e){return kf(this.rawContext,t,e)}addAudioWorkletModule(t){return yt(this,void 0,void 0,function*(){Y(it(this.rawContext.audioWorklet),"AudioWorkletNode is only available in a secure context (https or localhost)"),this._workletPromise||(this._workletPromise=this.rawContext.audioWorklet.addModule(t)),yield this._workletPromise})}workletsAreReady(){return yt(this,void 0,void 0,function*(){(yield this._workletPromise)?this._workletPromise:Promise.resolve()})}get updateInterval(){return this._ticker.updateInterval}set updateInterval(t){this._ticker.updateInterval=t}get clockSource(){return this._ticker.type}set clockSource(t){this._ticker.type=t}get lookAhead(){return this._lookAhead}set lookAhead(t){this._lookAhead=t,this.updateInterval=t?t/2:.01}get latencyHint(){return this._latencyHint}get rawContext(){return this._context}now(){return this._context.currentTime+this._lookAhead}immediate(){return this._context.currentTime}resume(){return hi(this._context)?this._context.resume():Promise.resolve()}close(){return yt(this,void 0,void 0,function*(){hi(this._context)&&this.state!=="closed"&&!this._closeStarted&&(this._closeStarted=!0,yield this._context.close()),this._initialized&&Vf(this)})}getConstant(t){if(this._constants.has(t))return this._constants.get(t);{let e=this._context.createBuffer(1,128,this._context.sampleRate),r=e.getChannelData(0);for(let o=0;o<r.length;o++)r[o]=t;let n=this._context.createBufferSource();return n.channelCount=1,n.channelCountMode="explicit",n.buffer=e,n.loop=!0,n.start(0),this._constants.set(t,n),n}}dispose(){return super.dispose(),this._ticker.dispose(),this._timeouts.dispose(),Object.keys(this._constants).map(t=>this._constants[t].disconnect()),this.close(),this}_timeoutLoop(){let t=this.now();this._timeouts.forEachBefore(t,e=>{e.callback(),this._timeouts.remove(e)})}setTimeout(t,e){this._timeoutIds++;let r=this.now();return this._timeouts.add({callback:t,id:this._timeoutIds,time:r+e}),this._timeoutIds}clearTimeout(t){return this._timeouts.forEach(e=>{e.id===t&&this._timeouts.remove(e)}),this}clearInterval(t){return this.clearTimeout(t)}setInterval(t,e){let r=++this._timeoutIds,n=()=>{let o=this.now();this._timeouts.add({callback:()=>{t(),n()},id:r,time:o+e})};return n(),r}};var Aa=class extends Nn{constructor(){super(...arguments),this.lookAhead=0,this.latencyHint=0,this.isOffline=!1}createAnalyser(){return{}}createOscillator(){return{}}createBufferSource(){return{}}createBiquadFilter(){return{}}createBuffer(t,e,r){return{}}createChannelMerger(t){return{}}createChannelSplitter(t){return{}}createConstantSource(){return{}}createConvolver(){return{}}createDelay(t){return{}}createDynamicsCompressor(){return{}}createGain(){return{}}createIIRFilter(t,e){return{}}createPanner(){return{}}createPeriodicWave(t,e,r){return{}}createStereoPanner(){return{}}createWaveShaper(){return{}}createMediaStreamSource(t){return{}}createMediaElementSource(t){return{}}createMediaStreamDestination(){return{}}decodeAudioData(t){return Promise.resolve({})}createAudioWorkletNode(t,e){return{}}get rawContext(){return{}}addAudioWorkletModule(t){return yt(this,void 0,void 0,function*(){return Promise.resolve()})}resume(){return Promise.resolve()}setTimeout(t,e){return 0}clearTimeout(t){return this}setInterval(t,e){return 0}clearInterval(t){return this}getConstant(t){return{}}get currentTime(){return 0}get state(){return{}}get sampleRate(){return 0}get listener(){return{}}get transport(){return{}}get draw(){return{}}set draw(t){}get destination(){return{}}set destination(t){}now(){return 0}immediate(){return 0}};function z(i,t){Vt(t)?t.forEach(e=>z(i,e)):Object.defineProperty(i,t,{enumerable:!0,writable:!1})}function Bi(i,t){Vt(t)?t.forEach(e=>Bi(i,e)):Object.defineProperty(i,t,{writable:!0})}var ot=()=>{};var Yt=class i extends se{constructor(){super(),this.name="ToneAudioBuffer",this.onload=ot;let t=I(i.getDefaults(),arguments,["url","onload","onerror"]);this.reverse=t.reverse,this.onload=t.onload,fe(t.url)?this.load(t.url).catch(t.onerror):t.url&&this.set(t.url)}static getDefaults(){return{onerror:ot,onload:ot,reverse:!1}}get sampleRate(){return this._buffer?this._buffer.sampleRate:Qt().sampleRate}set(t){return t instanceof i?t.loaded?this._buffer=t.get():t.onload=()=>{this.set(t),this.onload(this)}:this._buffer=t,this._reversed&&this._reverse(),this}get(){return this._buffer}load(t){return yt(this,void 0,void 0,function*(){let e=i.load(t).then(r=>{this.set(r),this.onload(this)});i.downloads.push(e);try{yield e}finally{let r=i.downloads.indexOf(e);i.downloads.splice(r,1)}return this})}dispose(){return super.dispose(),this._buffer=void 0,this}fromArray(t){let e=Vt(t)&&t[0].length>0,r=e?t.length:1,n=e?t[0].length:t.length,o=Qt(),s=o.createBuffer(r,n,o.sampleRate),a=!e&&r===1?[t]:t;for(let c=0;c<r;c++)s.copyToChannel(a[c],c);return this._buffer=s,this}toMono(t){if(le(t))this.fromArray(this.toArray(t));else{let e=new Float32Array(this.length),r=this.numberOfChannels;for(let n=0;n<r;n++){let o=this.toArray(n);for(let s=0;s<o.length;s++)e[s]+=o[s]}e=e.map(n=>n/r),this.fromArray(e)}return this}toArray(t){if(le(t))return this.getChannelData(t);if(this.numberOfChannels===1)return this.toArray(0);{let e=[];for(let r=0;r<this.numberOfChannels;r++)e[r]=this.getChannelData(r);return e}}getChannelData(t){return this._buffer?this._buffer.getChannelData(t):new Float32Array(0)}slice(t,e=this.duration){Y(this.loaded,"Buffer is not loaded");let r=Math.floor(t*this.sampleRate),n=Math.floor(e*this.sampleRate);Y(r<n,"The start time must be less than the end time");let o=n-r,s=Qt().createBuffer(this.numberOfChannels,o,this.sampleRate);for(let a=0;a<this.numberOfChannels;a++)s.copyToChannel(this.getChannelData(a).subarray(r,n),a);return new i(s)}_reverse(){if(this.loaded)for(let t=0;t<this.numberOfChannels;t++)this.getChannelData(t).reverse();return this}get loaded(){return this.length>0}get duration(){return this._buffer?this._buffer.duration:0}get length(){return this._buffer?this._buffer.length:0}get numberOfChannels(){return this._buffer?this._buffer.numberOfChannels:0}get reverse(){return this._reversed}set reverse(t){this._reversed!==t&&(this._reversed=t,this._reverse())}static fromArray(t){return new i().fromArray(t)}static fromUrl(t){return yt(this,void 0,void 0,function*(){return yield new i().load(t)})}static load(t){return yt(this,void 0,void 0,function*(){let e=i.baseUrl===""||i.baseUrl.endsWith("/")?i.baseUrl:i.baseUrl+"/",r=yield fetch(e+t);if(!r.ok)throw new Error(`could not load url: ${t}`);let n=yield r.arrayBuffer();return yield Qt().decodeAudioData(n)})}static supportsType(t){let e=t.split("."),r=e[e.length-1];return document.createElement("audio").canPlayType("audio/"+r)!==""}static loaded(){return yt(this,void 0,void 0,function*(){for(yield Promise.resolve();i.downloads.length;)yield i.downloads[0]})}};Yt.baseUrl="";Yt.downloads=[];var pr=class extends Fi{constructor(){super({clockSource:"offline",context:Tn(arguments[0])?arguments[0]:Ef(arguments[0],arguments[1]*arguments[2],arguments[2]),lookAhead:0,updateInterval:Tn(arguments[0])?128/arguments[0].sampleRate:128/arguments[2]}),this.name="OfflineContext",this._currentTime=0,this.isOffline=!0,this._duration=Tn(arguments[0])?arguments[0].length/arguments[0].sampleRate:arguments[1]}now(){return this._currentTime}get currentTime(){return this._currentTime}_renderClock(t){return yt(this,void 0,void 0,function*(){let e=0;for(;this._duration-this._currentTime>=0;){this.emit("tick"),this._currentTime+=128/this.sampleRate,e++;let r=Math.floor(this.sampleRate/128);t&&e%r===0&&(yield new Promise(n=>setTimeout(n,1)))}})}render(){return yt(this,arguments,void 0,function*(t=!0){yield this.workletsAreReady(),yield this._renderClock(t);let e=yield this._context.startRendering();return new Yt(e)})}close(){return Promise.resolve()}};var qf=new Aa,On=qf;function Qt(){return On===qf&&Df&&uh(new Fi),On}function uh(i,t=!1){t&&On.dispose(),hi(i)?On=new Fi(i):Tn(i)?On=new pr(i):On=i}if(ge&&!ge.TONE_SILENCE_LOGGING){let i="v";mo==="dev"&&(i="");let t=` * Tone.js ${i}${mo} * `;console.log(`%c${t}`,"background: #000; color: #fff")}function Rn(i){return Math.pow(10,i/20)}function Mn(i){return 20*(Math.log(i)/Math.LN10)}function Gi(i){return Math.pow(2,i/12)}var Ca=440;function Wf(){return Ca}function Uf(i){Ca=i}function mr(i){return Math.round(hh(i))}function hh(i){return 69+12*Math.log2(i/Ca)}function No(i){return Ca*Math.pow(2,(i-69)/12)}var _a=class i extends se{constructor(t,e,r){super(),this.defaultUnits="s",this._val=e,this._units=r,this.context=t,this._expressions=this._getExpressions()}_getExpressions(){return{hz:{method:t=>this._frequencyToUnits(parseFloat(t)),regexp:/^(\d+(?:\.\d+)?)hz$/i},i:{method:t=>this._ticksToUnits(parseInt(t,10)),regexp:/^(\d+)i$/i},m:{method:t=>this._beatsToUnits(parseInt(t,10)*this._getTimeSignature()),regexp:/^(\d+)m$/i},n:{method:(t,e)=>{let r=parseInt(t,10),n=e==="."?1.5:1;return r===1?this._beatsToUnits(this._getTimeSignature())*n:this._beatsToUnits(4/r)*n},regexp:/^(\d+)n(\.?)$/i},number:{method:t=>this._expressions[this.defaultUnits].method.call(this,t),regexp:/^(\d+(?:\.\d+)?)$/},s:{method:t=>this._secondsToUnits(parseFloat(t)),regexp:/^(\d+(?:\.\d+)?)s$/},samples:{method:t=>parseInt(t,10)/this.context.sampleRate,regexp:/^(\d+)samples$/},t:{method:t=>{let e=parseInt(t,10);return this._beatsToUnits(8/(Math.floor(e)*3))},regexp:/^(\d+)t$/i},tr:{method:(t,e,r)=>{let n=0;return t&&t!=="0"&&(n+=this._beatsToUnits(this._getTimeSignature()*parseFloat(t))),e&&e!=="0"&&(n+=this._beatsToUnits(parseFloat(e))),r&&r!=="0"&&(n+=this._beatsToUnits(parseFloat(r)/4)),n},regexp:/^(\d+(?:\.\d+)?):(\d+(?:\.\d+)?):?(\d+(?:\.\d+)?)?$/}}}valueOf(){if(this._val instanceof i&&this.fromType(this._val),Xt(this._val))return this._noArg();if(fe(this._val)&&Xt(this._units)){for(let t in this._expressions)if(this._expressions[t].regexp.test(this._val.trim())){this._units=t;break}}else if(hr(this._val)){let t=0;for(let e in this._val)if(it(this._val[e])){let r=this._val[e],n=new this.constructor(this.context,e).valueOf()*r;t+=n}return t}if(it(this._units)){let t=this._expressions[this._units],e=this._val.toString().trim().match(t.regexp);return e?t.method.apply(this,e.slice(1)):t.method.call(this,this._val)}else return fe(this._val)?parseFloat(this._val):this._val}_frequencyToUnits(t){return 1/t}_beatsToUnits(t){return 60/this._getBpm()*t}_secondsToUnits(t){return t}_ticksToUnits(t){return t*this._beatsToUnits(1)/this._getPPQ()}_noArg(){return this._now()}_getBpm(){return this.context.transport.bpm.value}_getTimeSignature(){return this.context.transport.timeSignature}_getPPQ(){return this.context.transport.PPQ}fromType(t){switch(this._units=void 0,this.defaultUnits){case"s":this._val=t.toSeconds();break;case"i":this._val=t.toTicks();break;case"hz":this._val=t.toFrequency();break;case"midi":this._val=t.toMidi();break}return this}toFrequency(){return 1/this.toSeconds()}toSamples(){return this.toSeconds()*this.context.sampleRate}toMilliseconds(){return this.toSeconds()*1e3}};var Fe=class i extends _a{constructor(){super(...arguments),this.name="TimeClass"}_getExpressions(){return Object.assign(super._getExpressions(),{now:{method:t=>this._now()+new this.constructor(this.context,t).valueOf(),regexp:/^\+(.+)/},quantize:{method:t=>{let e=new i(this.context,t).valueOf();return this._secondsToUnits(this.context.transport.nextSubdivision(e))},regexp:/^@(.+)/}})}quantize(t,e=1){let r=new this.constructor(this.context,t).valueOf(),n=this.valueOf(),a=Math.round(n/r)*r-n;return n+a*e}toNotation(){let t=this.toSeconds(),e=["1m"];for(let o=1;o<9;o++){let s=Math.pow(2,o);e.push(s+"n."),e.push(s+"n"),e.push(s+"t")}e.push("0");let r=e[0],n=new i(this.context,e[0]).toSeconds();return e.forEach(o=>{let s=new i(this.context,o).toSeconds();Math.abs(s-t)<Math.abs(n-t)&&(r=o,n=s)}),r}toBarsBeatsSixteenths(){let t=this._beatsToUnits(1),e=this.valueOf()/t;e=parseFloat(e.toFixed(4));let r=Math.floor(e/this._getTimeSignature()),n=e%1*4;e=Math.floor(e)%this._getTimeSignature();let o=n.toString();return o.length>3&&(n=parseFloat(parseFloat(o).toFixed(3))),[r,e,n].join(":")}toTicks(){let t=this._beatsToUnits(1);return this.valueOf()/t*this._getPPQ()}toSeconds(){return this.valueOf()}toMidi(){return mr(this.toFrequency())}_now(){return this.context.now()}};var _e=class i extends Fe{constructor(){super(...arguments),this.name="Frequency",this.defaultUnits="hz"}static get A4(){return Wf()}static set A4(t){Uf(t)}_getExpressions(){return Object.assign({},super._getExpressions(),{midi:{regexp:/^(\d+(?:\.\d+)?midi)/,method(t){return this.defaultUnits==="midi"?t:i.mtof(t)}},note:{regexp:/^([a-g]{1}(?:b|#|##|x|bb|###|#x|x#|bbb)?)(-?[0-9]+)/i,method(t,e){let n=iv[t.toLowerCase()]+(parseInt(e,10)+1)*12;return this.defaultUnits==="midi"?n:i.mtof(n)}},tr:{regexp:/^(\d+(?:\.\d+)?):(\d+(?:\.\d+)?):?(\d+(?:\.\d+)?)?/,method(t,e,r){let n=1;return t&&t!=="0"&&(n*=this._beatsToUnits(this._getTimeSignature()*parseFloat(t))),e&&e!=="0"&&(n*=this._beatsToUnits(parseFloat(e))),r&&r!=="0"&&(n*=this._beatsToUnits(parseFloat(r)/4)),n}}})}transpose(t){return new i(this.context,this.valueOf()*Gi(t))}harmonize(t){return t.map(e=>this.transpose(e))}toMidi(){return mr(this.valueOf())}toNote(){let t=this.toFrequency(),e=Math.log2(t/i.A4),r=Math.round(12*e)+57,n=Math.floor(r/12);return n<0&&(r+=-12*n),nv[r%12]+n.toString()}toSeconds(){return 1/super.toSeconds()}toTicks(){let t=this._beatsToUnits(1),e=this.valueOf()/t;return Math.floor(e*this._getPPQ())}_noArg(){return 0}_frequencyToUnits(t){return t}_ticksToUnits(t){return 1/(t*60/(this._getBpm()*this._getPPQ()))}_beatsToUnits(t){return 1/super._beatsToUnits(t)}_secondsToUnits(t){return 1/t}static mtof(t){return No(t)}static ftom(t){return mr(t)}},iv={cbbb:-3,cbb:-2,cb:-1,c:0,"c#":1,cx:2,"c##":2,"c###":3,"cx#":3,"c#x":3,dbbb:-1,dbb:0,db:1,d:2,"d#":3,dx:4,"d##":4,"d###":5,"dx#":5,"d#x":5,ebbb:1,ebb:2,eb:3,e:4,"e#":5,ex:6,"e##":6,"e###":7,"ex#":7,"e#x":7,fbbb:2,fbb:3,fb:4,f:5,"f#":6,fx:7,"f##":7,"f###":8,"fx#":8,"f#x":8,gbbb:4,gbb:5,gb:6,g:7,"g#":8,gx:9,"g##":9,"g###":10,"gx#":10,"g#x":10,abbb:6,abb:7,ab:8,a:9,"a#":10,ax:11,"a##":11,"a###":12,"ax#":12,"a#x":12,bbbb:8,bbb:9,bb:10,b:11,"b#":12,bx:13,"b##":13,"b###":14,"bx#":14,"b#x":14},nv=["C","C#","D","D#","E","F","F#","G","G#","A","A#","B"];var Xe=class extends Fe{constructor(){super(...arguments),this.name="TransportTime"}_now(){return this.context.transport.seconds}};var ee=class i extends se{constructor(){super();let t=I(i.getDefaults(),arguments,["context"]);this.defaultContext?this.context=this.defaultContext:this.context=t.context}static getDefaults(){return{context:Qt()}}now(){return this.context.currentTime+this.context.lookAhead}immediate(){return this.context.currentTime}get sampleTime(){return 1/this.context.sampleRate}get blockTime(){return 128/this.context.sampleRate}toSeconds(t){return Nf(t),new Fe(this.context,t).toSeconds()}toFrequency(t){return new _e(this.context,t).toFrequency()}toTicks(t){return new Xe(this.context,t).toTicks()}_getPartialProperties(t){let e=this.get();return Object.keys(e).forEach(r=>{Xt(t[r])&&delete e[r]}),e}get(){let t=Pf(this);return Object.keys(t).forEach(e=>{if(Reflect.has(this,e)){let r=this[e];it(r)&&it(r.value)&&it(r.setValueAtTime)?t[e]=r.value:r instanceof i?t[e]=r._getPartialProperties(t[e]):Vt(r)||le(r)||fe(r)||sh(r)?t[e]=r:delete t[e]}}),t}set(t){return Object.keys(t).forEach(e=>{Reflect.has(this,e)&&it(this[e])&&(this[e]&&it(this[e].value)&&it(this[e].setValueAtTime)?this[e].value!==t[e]&&(this[e].value=t[e]):this[e]instanceof i?this[e].set(t[e]):this[e]=t[e])}),this}};var Mr=class extends te{constructor(t="stopped"){super(),this.name="StateTimeline",this._initial=t,this.setStateAtTime(this._initial,0)}getValueAtTime(t){let e=this.get(t);return e!==null?e.state:this._initial}setStateAtTime(t,e,r){return zt(e,0),this.add(Object.assign({},r,{state:t,time:e})),this}getLastState(t,e){let r=this._search(e);for(let n=r;n>=0;n--){let o=this._timeline[n];if(o.state===t)return o}}getNextState(t,e){let r=this._search(e);if(r!==-1)for(let n=r;n<this._timeline.length;n++){let o=this._timeline[n];if(o.state===t)return o}}};var ht=class i extends ee{constructor(){let t=I(i.getDefaults(),arguments,["param","units","convert"]);for(super(t),this.name="Param",this.overridden=!1,this._minOutput=1e-7,Y(it(t.param)&&(lr(t.param)||t.param instanceof i),"param must be an AudioParam");!lr(t.param);)t.param=t.param._param;this._swappable=it(t.swappable)?t.swappable:!1,this._swappable?(this.input=this.context.createGain(),this._param=t.param,this.input.connect(this._param)):this._param=this.input=t.param,this._events=new te(1e3),this._initialValue=this._param.defaultValue,this.units=t.units,this.convert=t.convert,this._minValue=t.minValue,this._maxValue=t.maxValue,it(t.value)&&t.value!==this._toType(this._initialValue)&&this.setValueAtTime(t.value,0)}static getDefaults(){return Object.assign(ee.getDefaults(),{convert:!0,units:"number"})}get value(){let t=this.now();return this.getValueAtTime(t)}set value(t){this.cancelScheduledValues(this.now()),this.setValueAtTime(t,this.now())}get minValue(){return it(this._minValue)?this._minValue:this.units==="time"||this.units==="frequency"||this.units==="normalRange"||this.units==="positive"||this.units==="transportTime"||this.units==="ticks"||this.units==="bpm"||this.units==="hertz"||this.units==="samples"?0:this.units==="audioRange"?-1:this.units==="decibels"?-1/0:this._param.minValue}get maxValue(){return it(this._maxValue)?this._maxValue:this.units==="normalRange"||this.units==="audioRange"?1:this._param.maxValue}_is(t,e){return this.units===e}_assertRange(t){return it(this.maxValue)&&it(this.minValue)&&zt(t,this._fromType(this.minValue),this._fromType(this.maxValue)),t}_fromType(t){return this.convert&&!this.overridden?this._is(t,"time")?this.toSeconds(t):this._is(t,"decibels")?Rn(t):this._is(t,"frequency")?this.toFrequency(t):t:this.overridden?0:t}_toType(t){return this.convert&&this.units==="decibels"?Mn(t):t}setValueAtTime(t,e){let r=this.toSeconds(e),n=this._fromType(t);return Y(isFinite(n)&&isFinite(r),`Invalid argument(s) to setValueAtTime: ${JSON.stringify(t)}, ${JSON.stringify(e)}`),this._assertRange(n),this.log(this.units,"setValueAtTime",t,r),this._events.add({time:r,type:"setValueAtTime",value:n}),this._param.setValueAtTime(n,r),this}getValueAtTime(t){let e=Math.max(this.toSeconds(t),0),r=this._events.getAfter(e),n=this._events.get(e),o=this._initialValue;if(n===null)o=this._initialValue;else if(n.type==="setTargetAtTime"&&(r===null||r.type==="setValueAtTime")){let s=this._events.getBefore(n.time),a;s===null?a=this._initialValue:a=s.value,n.type==="setTargetAtTime"&&(o=this._exponentialApproach(n.time,a,n.value,n.constant,e))}else if(r===null)o=n.value;else if(r.type==="linearRampToValueAtTime"||r.type==="exponentialRampToValueAtTime"){let s=n.value;if(n.type==="setTargetAtTime"){let a=this._events.getBefore(n.time);a===null?s=this._initialValue:s=a.value}r.type==="linearRampToValueAtTime"?o=this._linearInterpolate(n.time,s,r.time,r.value,e):o=this._exponentialInterpolate(n.time,s,r.time,r.value,e)}else o=n.value;return this._toType(o)}setRampPoint(t){t=this.toSeconds(t);let e=this.getValueAtTime(t);return this.cancelAndHoldAtTime(t),this._fromType(e)===0&&(e=this._toType(this._minOutput)),this.setValueAtTime(e,t),this}linearRampToValueAtTime(t,e){let r=this._fromType(t),n=this.toSeconds(e);return Y(isFinite(r)&&isFinite(n),`Invalid argument(s) to linearRampToValueAtTime: ${JSON.stringify(t)}, ${JSON.stringify(e)}`),this._assertRange(r),this._events.add({time:n,type:"linearRampToValueAtTime",value:r}),this.log(this.units,"linearRampToValueAtTime",t,n),this._param.linearRampToValueAtTime(r,n),this}exponentialRampToValueAtTime(t,e){let r=this._fromType(t);r=Ce(r,0)?this._minOutput:r,this._assertRange(r);let n=this.toSeconds(e);return Y(isFinite(r)&&isFinite(n),`Invalid argument(s) to exponentialRampToValueAtTime: ${JSON.stringify(t)}, ${JSON.stringify(e)}`),this._events.add({time:n,type:"exponentialRampToValueAtTime",value:r}),this.log(this.units,"exponentialRampToValueAtTime",t,n),this._param.exponentialRampToValueAtTime(r,n),this}exponentialRampTo(t,e,r){return r=this.toSeconds(r),this.setRampPoint(r),this.exponentialRampToValueAtTime(t,r+this.toSeconds(e)),this}linearRampTo(t,e,r){return r=this.toSeconds(r),this.setRampPoint(r),this.linearRampToValueAtTime(t,r+this.toSeconds(e)),this}targetRampTo(t,e,r){return r=this.toSeconds(r),this.setRampPoint(r),this.exponentialApproachValueAtTime(t,r,e),this}exponentialApproachValueAtTime(t,e,r){e=this.toSeconds(e),r=this.toSeconds(r);let n=Math.log(r+1)/Math.log(200);return this.setTargetAtTime(t,e,n),this.cancelAndHoldAtTime(e+r*.9),this.linearRampToValueAtTime(t,e+r),this}setTargetAtTime(t,e,r){let n=this._fromType(t);Y(isFinite(r)&&r>0,"timeConstant must be a number greater than 0");let o=this.toSeconds(e);return this._assertRange(n),Y(isFinite(n)&&isFinite(o),`Invalid argument(s) to setTargetAtTime: ${JSON.stringify(t)}, ${JSON.stringify(e)}`),this._events.add({constant:r,time:o,type:"setTargetAtTime",value:n}),this.log(this.units,"setTargetAtTime",t,o,r),this._param.setTargetAtTime(n,o,r),this}setValueCurveAtTime(t,e,r,n=1){r=this.toSeconds(r),e=this.toSeconds(e);let o=this._fromType(t[0])*n;this.setValueAtTime(this._toType(o),e);let s=r/(t.length-1);for(let a=1;a<t.length;a++){let c=this._fromType(t[a])*n;this.linearRampToValueAtTime(this._toType(c),e+a*s)}return this}cancelScheduledValues(t){let e=this.toSeconds(t);return Y(isFinite(e),`Invalid argument to cancelScheduledValues: ${JSON.stringify(t)}`),this._events.cancel(e),this._param.cancelScheduledValues(e),this.log(this.units,"cancelScheduledValues",e),this}cancelAndHoldAtTime(t){let e=this.toSeconds(t),r=this._fromType(this.getValueAtTime(e));Y(isFinite(e),`Invalid argument to cancelAndHoldAtTime: ${JSON.stringify(t)}`),this.log(this.units,"cancelAndHoldAtTime",e,"value="+r);let n=this._events.get(e),o=this._events.getAfter(e);return n&&Ce(n.time,e)?o?(this._param.cancelScheduledValues(o.time),this._events.cancel(o.time)):(this._param.cancelAndHoldAtTime(e),this._events.cancel(e+this.sampleTime)):o&&(this._param.cancelScheduledValues(o.time),this._events.cancel(o.time),o.type==="linearRampToValueAtTime"?this.linearRampToValueAtTime(this._toType(r),e):o.type==="exponentialRampToValueAtTime"&&this.exponentialRampToValueAtTime(this._toType(r),e)),this._events.add({time:e,type:"setValueAtTime",value:r}),this._param.setValueAtTime(r,e),this}rampTo(t,e=.1,r){return this.units==="frequency"||this.units==="bpm"||this.units==="decibels"?this.exponentialRampTo(t,e,r):this.linearRampTo(t,e,r),this}apply(t){let e=this.context.currentTime;t.setValueAtTime(this.getValueAtTime(e),e);let r=this._events.get(e);if(r&&r.type==="setTargetAtTime"){let n=this._events.getAfter(r.time),o=n?n.time:e+2,s=(o-e)/10;for(let a=e;a<o;a+=s)t.linearRampToValueAtTime(this.getValueAtTime(a),a)}return this._events.forEachAfter(this.context.currentTime,n=>{n.type==="cancelScheduledValues"?t.cancelScheduledValues(n.time):n.type==="setTargetAtTime"?t.setTargetAtTime(n.value,n.time,n.constant):t[n.type](n.value,n.time)}),this}setParam(t){Y(this._swappable,"The Param must be assigned as 'swappable' in the constructor");let e=this.input;return e.disconnect(this._param),this.apply(t),this._param=t,e.connect(this._param),this}dispose(){return super.dispose(),this._events.dispose(),this}get defaultValue(){return this._toType(this._param.defaultValue)}_exponentialApproach(t,e,r,n,o){return r+(e-r)*Math.exp(-(o-t)/n)}_linearInterpolate(t,e,r,n,o){return e+(n-e)*((o-t)/(r-t))}_exponentialInterpolate(t,e,r,n,o){return e*Math.pow(n/e,(o-t)/(r-t))}};var P=class i extends ee{constructor(){super(...arguments),this._internalChannels=[]}get numberOfInputs(){return it(this.input)?lr(this.input)||this.input instanceof ht?1:this.input.numberOfInputs:0}get numberOfOutputs(){return it(this.output)?this.output.numberOfOutputs:0}_isAudioNode(t){return it(t)&&(t instanceof i||Rr(t))}_getInternalNodes(){let t=this._internalChannels.slice(0);return this._isAudioNode(this.input)&&t.push(this.input),this._isAudioNode(this.output)&&this.input!==this.output&&t.push(this.output),t}_setChannelProperties(t){this._getInternalNodes().forEach(r=>{r.channelCount=t.channelCount,r.channelCountMode=t.channelCountMode,r.channelInterpretation=t.channelInterpretation})}_getChannelProperties(){let t=this._getInternalNodes();Y(t.length>0,"ToneAudioNode does not have any internal nodes");let e=t[0];return{channelCount:e.channelCount,channelCountMode:e.channelCountMode,channelInterpretation:e.channelInterpretation}}get channelCount(){return this._getChannelProperties().channelCount}set channelCount(t){let e=this._getChannelProperties();this._setChannelProperties(Object.assign(e,{channelCount:t}))}get channelCountMode(){return this._getChannelProperties().channelCountMode}set channelCountMode(t){let e=this._getChannelProperties();this._setChannelProperties(Object.assign(e,{channelCountMode:t}))}get channelInterpretation(){return this._getChannelProperties().channelInterpretation}set channelInterpretation(t){let e=this._getChannelProperties();this._setChannelProperties(Object.assign(e,{channelInterpretation:t}))}connect(t,e=0,r=0){return de(this,t,e,r),this}toDestination(){return this.connect(this.context.destination),this}toMaster(){return ji("toMaster() has been renamed toDestination()"),this.toDestination()}disconnect(t,e=0,r=0){return zf(this,t,e,r),this}chain(...t){return Qe(this,...t),this}fan(...t){return t.forEach(e=>this.connect(e)),this}dispose(){return super.dispose(),it(this.input)&&(this.input instanceof i?this.input.dispose():Rr(this.input)&&this.input.disconnect()),it(this.output)&&(this.output instanceof i?this.output.dispose():Rr(this.output)&&this.output.disconnect()),this._internalChannels=[],this}};function Qe(...i){let t=i.shift();i.reduce((e,r)=>(e instanceof P?e.connect(r):Rr(e)&&de(e,r),r),t)}function de(i,t,e=0,r=0){for(Y(it(i),"Cannot connect from undefined node"),Y(it(t),"Cannot connect to undefined node"),(t instanceof P||Rr(t))&&Y(t.numberOfInputs>0,"Cannot connect to node with no inputs"),Y(i.numberOfOutputs>0,"Cannot connect from node with no outputs");t instanceof P||t instanceof ht;)it(t.input)&&(t=t.input);for(;i instanceof P;)it(i.output)&&(i=i.output);lr(t)?i.connect(t,e):i.connect(t,e,r)}function zf(i,t,e=0,r=0){if(it(t))for(;t instanceof P;)t=t.input;for(;!Rr(i);)it(i.output)&&(i=i.output);lr(t)?i.disconnect(t,e):Rr(t)?i.disconnect(t,e,r):i.disconnect()}var Z=class i extends P{constructor(){let t=I(i.getDefaults(),arguments,["gain","units"]);super(t),this.name="Gain",this._gainNode=this.context.createGain(),this.input=this._gainNode,this.output=this._gainNode,this.gain=new ht({context:this.context,convert:t.convert,param:this._gainNode.gain,units:t.units,value:t.gain,minValue:t.minValue,maxValue:t.maxValue}),z(this,"gain")}static getDefaults(){return Object.assign(P.getDefaults(),{convert:!0,gain:1,units:"gain"})}dispose(){return super.dispose(),this._gainNode.disconnect(),this.gain.dispose(),this}};var fr=class extends P{constructor(t){super(t),this.onended=ot,this._startTime=-1,this._stopTime=-1,this._timeout=-1,this.output=new Z({context:this.context,gain:0}),this._gainNode=this.output,this.getStateAtTime=function(e){let r=this.toSeconds(e);return this._startTime!==-1&&r>=this._startTime&&(this._stopTime===-1||r<=this._stopTime)?"started":"stopped"},this._fadeIn=t.fadeIn,this._fadeOut=t.fadeOut,this._curve=t.curve,this.onended=t.onended}static getDefaults(){return Object.assign(P.getDefaults(),{curve:"linear",fadeIn:0,fadeOut:0,onended:ot})}_startGain(t,e=1){Y(this._startTime===-1,"Source cannot be started more than once");let r=this.toSeconds(this._fadeIn);return this._startTime=t+r,this._startTime=Math.max(this._startTime,this.context.currentTime),r>0?(this._gainNode.gain.setValueAtTime(0,t),this._curve==="linear"?this._gainNode.gain.linearRampToValueAtTime(e,t+r):this._gainNode.gain.exponentialApproachValueAtTime(e,t,r)):this._gainNode.gain.setValueAtTime(e,t),this}stop(t){return this.log("stop",t),this._stopGain(this.toSeconds(t)),this}_stopGain(t){Y(this._startTime!==-1,"'start' must be called before 'stop'"),this.cancelStop();let e=this.toSeconds(this._fadeOut);return this._stopTime=this.toSeconds(t)+e,this._stopTime=Math.max(this._stopTime,this.now()),e>0?this._curve==="linear"?this._gainNode.gain.linearRampTo(0,e,t):this._gainNode.gain.targetRampTo(0,e,t):(this._gainNode.gain.cancelAndHoldAtTime(t),this._gainNode.gain.setValueAtTime(0,t)),this.context.clearTimeout(this._timeout),this._timeout=this.context.setTimeout(()=>{let r=this._curve==="exponential"?e*2:0;this._stopSource(this.now()+r),this._onended()},this._stopTime-this.context.currentTime),this}_onended(){if(this.onended!==ot&&(this.onended(this),this.onended=ot,!this.context.isOffline)){let t=()=>this.dispose();typeof requestIdleCallback!="undefined"?requestIdleCallback(t):setTimeout(t,10)}}get state(){return this.getStateAtTime(this.now())}cancelStop(){return this.log("cancelStop"),Y(this._startTime!==-1,"Source is not started"),this._gainNode.gain.cancelScheduledValues(this._startTime+this.sampleTime),this.context.clearTimeout(this._timeout),this._stopTime=-1,this}dispose(){return super.dispose(),this._gainNode.dispose(),this.onended=ot,this}};var Oo=class i extends fr{constructor(){let t=I(i.getDefaults(),arguments,["offset"]);super(t),this.name="ToneConstantSource",this._source=this.context.createConstantSource(),de(this._source,this._gainNode),this.offset=new ht({context:this.context,convert:t.convert,param:this._source.offset,units:t.units,value:t.offset,minValue:t.minValue,maxValue:t.maxValue})}static getDefaults(){return Object.assign(fr.getDefaults(),{convert:!0,offset:1,units:"number"})}start(t){let e=this.toSeconds(t);return this.log("start",e),this._startGain(e),this._source.start(e),this}_stopSource(t){this._source.stop(t)}dispose(){return super.dispose(),this.state==="started"&&this.stop(),this._source.disconnect(),this.offset.dispose(),this}};var rt=class i extends P{constructor(){let t=I(i.getDefaults(),arguments,["value","units"]);super(t),this.name="Signal",this.override=!0,this.output=this._constantSource=new Oo({context:this.context,convert:t.convert,offset:t.value,units:t.units,minValue:t.minValue,maxValue:t.maxValue}),this._constantSource.start(0),this.input=this._param=this._constantSource.offset}static getDefaults(){return Object.assign(P.getDefaults(),{convert:!0,units:"number",value:0})}connect(t,e=0,r=0){return En(this,t,e,r),this}dispose(){return super.dispose(),this._param.dispose(),this._constantSource.dispose(),this}setValueAtTime(t,e){return this._param.setValueAtTime(t,e),this}getValueAtTime(t){return this._param.getValueAtTime(t)}setRampPoint(t){return this._param.setRampPoint(t),this}linearRampToValueAtTime(t,e){return this._param.linearRampToValueAtTime(t,e),this}exponentialRampToValueAtTime(t,e){return this._param.exponentialRampToValueAtTime(t,e),this}exponentialRampTo(t,e,r){return this._param.exponentialRampTo(t,e,r),this}linearRampTo(t,e,r){return this._param.linearRampTo(t,e,r),this}targetRampTo(t,e,r){return this._param.targetRampTo(t,e,r),this}exponentialApproachValueAtTime(t,e,r){return this._param.exponentialApproachValueAtTime(t,e,r),this}setTargetAtTime(t,e,r){return this._param.setTargetAtTime(t,e,r),this}setValueCurveAtTime(t,e,r,n){return this._param.setValueCurveAtTime(t,e,r,n),this}cancelScheduledValues(t){return this._param.cancelScheduledValues(t),this}cancelAndHoldAtTime(t){return this._param.cancelAndHoldAtTime(t),this}rampTo(t,e,r){return this._param.rampTo(t,e,r),this}get value(){return this._param.value}set value(t){this._param.value=t}get convert(){return this._param.convert}set convert(t){this._param.convert=t}get units(){return this._param.units}get overridden(){return this._param.overridden}set overridden(t){this._param.overridden=t}get maxValue(){return this._param.maxValue}get minValue(){return this._param.minValue}apply(t){return this._param.apply(t),this}};function En(i,t,e,r){(t instanceof ht||lr(t)||t instanceof rt&&t.override)&&(t.cancelScheduledValues(0),t.setValueAtTime(0,0),t instanceof rt&&(t.overridden=!0)),de(i,t,e,r)}var va=class i extends ht{constructor(){let t=I(i.getDefaults(),arguments,["value"]);super(t),this.name="TickParam",this._events=new te(1/0),this._multiplier=1,this._multiplier=t.multiplier,this._events.cancel(0),this._events.add({ticks:0,time:0,type:"setValueAtTime",value:this._fromType(t.value)}),this.setValueAtTime(t.value,0)}static getDefaults(){return Object.assign(ht.getDefaults(),{multiplier:1,units:"hertz",value:1})}setTargetAtTime(t,e,r){e=this.toSeconds(e),this.setRampPoint(e);let n=this._fromType(t),o=this._events.get(e),s=Math.round(Math.max(1/r,1));for(let a=0;a<=s;a++){let c=r*a+e,u=this._exponentialApproach(o.time,o.value,n,r,c);this.linearRampToValueAtTime(this._toType(u),c)}return this}setValueAtTime(t,e){let r=this.toSeconds(e);super.setValueAtTime(t,e);let n=this._events.get(r),o=this._events.previousEvent(n),s=this._getTicksUntilEvent(o,r);return n.ticks=Math.max(s,0),this}linearRampToValueAtTime(t,e){let r=this.toSeconds(e);super.linearRampToValueAtTime(t,e);let n=this._events.get(r),o=this._events.previousEvent(n),s=this._getTicksUntilEvent(o,r);return n.ticks=Math.max(s,0),this}exponentialRampToValueAtTime(t,e){e=this.toSeconds(e);let r=this._fromType(t),n=this._events.get(e),o=Math.round(Math.max((e-n.time)*10,1)),s=(e-n.time)/o;for(let a=0;a<=o;a++){let c=s*a+n.time,u=this._exponentialInterpolate(n.time,n.value,e,r,c);this.linearRampToValueAtTime(this._toType(u),c)}return this}_getTicksUntilEvent(t,e){if(t===null)t={ticks:0,time:0,type:"setValueAtTime",value:0};else if(Xt(t.ticks)){let s=this._events.previousEvent(t);t.ticks=this._getTicksUntilEvent(s,t.time)}let r=this._fromType(this.getValueAtTime(t.time)),n=this._fromType(this.getValueAtTime(e)),o=this._events.get(e);return o&&o.time===e&&o.type==="setValueAtTime"&&(n=this._fromType(this.getValueAtTime(e-this.sampleTime))),.5*(e-t.time)*(r+n)+t.ticks}getTicksAtTime(t){let e=this.toSeconds(t),r=this._events.get(e);return Math.max(this._getTicksUntilEvent(r,e),0)}getDurationOfTicks(t,e){let r=this.toSeconds(e),n=this.getTicksAtTime(e);return this.getTimeOfTick(n+t)-r}getTimeOfTick(t){let e=this._events.get(t,"ticks"),r=this._events.getAfter(t,"ticks");if(e&&e.ticks===t)return e.time;if(e&&r&&r.type==="linearRampToValueAtTime"&&e.value!==r.value){let n=this._fromType(this.getValueAtTime(e.time)),s=(this._fromType(this.getValueAtTime(r.time))-n)/(r.time-e.time),a=Math.sqrt(Math.pow(n,2)-2*s*(e.ticks-t)),c=(-n+a)/s,u=(-n-a)/s;return(c>0?c:u)+e.time}else return e?e.value===0?1/0:e.time+(t-e.ticks)/e.value:t/this._initialValue}ticksToTime(t,e){return this.getDurationOfTicks(t,e)}timeToTicks(t,e){let r=this.toSeconds(e),n=this.toSeconds(t),o=this.getTicksAtTime(r);return this.getTicksAtTime(r+n)-o}_fromType(t){return this.units==="bpm"&&this.multiplier?1/(60/t/this.multiplier):super._fromType(t)}_toType(t){return this.units==="bpm"&&this.multiplier?t/this.multiplier*60:super._toType(t)}get multiplier(){return this._multiplier}set multiplier(t){let e=this.value;this._multiplier=t,this.cancelScheduledValues(0),this.setValueAtTime(e,0)}};var Sa=class i extends rt{constructor(){let t=I(i.getDefaults(),arguments,["value"]);super(t),this.name="TickSignal",this.input=this._param=new va({context:this.context,convert:t.convert,multiplier:t.multiplier,param:this._constantSource.offset,units:t.units,value:t.value})}static getDefaults(){return Object.assign(rt.getDefaults(),{multiplier:1,units:"hertz",value:1})}ticksToTime(t,e){return this._param.ticksToTime(t,e)}timeToTicks(t,e){return this._param.timeToTicks(t,e)}getTimeOfTick(t){return this._param.getTimeOfTick(t)}getDurationOfTicks(t,e){return this._param.getDurationOfTicks(t,e)}getTicksAtTime(t){return this._param.getTicksAtTime(t)}get multiplier(){return this._param.multiplier}set multiplier(t){this._param.multiplier=t}dispose(){return super.dispose(),this._param.dispose(),this}};var wa=class i extends ee{constructor(){let t=I(i.getDefaults(),arguments,["frequency"]);super(t),this.name="TickSource",this._state=new Mr,this._tickOffset=new te,this._ticksAtTime=new te,this._secondsAtTime=new te,this.frequency=new Sa({context:this.context,units:t.units,value:t.frequency}),z(this,"frequency"),this._state.setStateAtTime("stopped",0),this.setTicksAtTime(0,0)}static getDefaults(){return Object.assign({frequency:1,units:"hertz"},ee.getDefaults())}get state(){return this.getStateAtTime(this.now())}start(t,e){let r=this.toSeconds(t);return this._state.getValueAtTime(r)!=="started"&&(this._state.setStateAtTime("started",r),it(e)&&this.setTicksAtTime(e,r),this._ticksAtTime.cancel(r),this._secondsAtTime.cancel(r)),this}stop(t){let e=this.toSeconds(t);if(this._state.getValueAtTime(e)==="stopped"){let r=this._state.get(e);r&&r.time>0&&(this._tickOffset.cancel(r.time),this._state.cancel(r.time))}return this._state.cancel(e),this._state.setStateAtTime("stopped",e),this.setTicksAtTime(0,e),this._ticksAtTime.cancel(e),this._secondsAtTime.cancel(e),this}pause(t){let e=this.toSeconds(t);return this._state.getValueAtTime(e)==="started"&&(this._state.setStateAtTime("paused",e),this._ticksAtTime.cancel(e),this._secondsAtTime.cancel(e)),this}cancel(t){return t=this.toSeconds(t),this._state.cancel(t),this._tickOffset.cancel(t),this._ticksAtTime.cancel(t),this._secondsAtTime.cancel(t),this}getTicksAtTime(t){let e=this.toSeconds(t),r=this._state.getLastState("stopped",e),n=this._ticksAtTime.get(e),o={state:"paused",time:e};this._state.add(o);let s=n||r,a=n?n.ticks:0,c=null;return this._state.forEachBetween(s.time,e+this.sampleTime,u=>{let h=s.time,l=this._tickOffset.get(u.time);l&&l.time>=s.time&&(a=l.ticks,h=l.time),s.state==="started"&&u.state!=="started"&&(a+=this.frequency.getTicksAtTime(u.time)-this.frequency.getTicksAtTime(h),u.time!==o.time&&(c={state:u.state,time:u.time,ticks:a})),s=u}),this._state.remove(o),c&&this._ticksAtTime.add(c),a}get ticks(){return this.getTicksAtTime(this.now())}set ticks(t){this.setTicksAtTime(t,this.now())}get seconds(){return this.getSecondsAtTime(this.now())}set seconds(t){let e=this.now(),r=this.frequency.timeToTicks(t,e);this.setTicksAtTime(r,e)}getSecondsAtTime(t){t=this.toSeconds(t);let e=this._state.getLastState("stopped",t),r={state:"paused",time:t};this._state.add(r);let n=this._secondsAtTime.get(t),o=n||e,s=n?n.seconds:0,a=null;return this._state.forEachBetween(o.time,t+this.sampleTime,c=>{let u=o.time,h=this._tickOffset.get(c.time);h&&h.time>=o.time&&(s=h.seconds,u=h.time),o.state==="started"&&c.state!=="started"&&(s+=c.time-u,c.time!==r.time&&(a={state:c.state,time:c.time,seconds:s})),o=c}),this._state.remove(r),a&&this._secondsAtTime.add(a),s}setTicksAtTime(t,e){return e=this.toSeconds(e),this._tickOffset.cancel(e),this._tickOffset.add({seconds:this.frequency.getDurationOfTicks(t,e),ticks:t,time:e}),this._ticksAtTime.cancel(e),this._secondsAtTime.cancel(e),this}getStateAtTime(t){return t=this.toSeconds(t),this._state.getValueAtTime(t)}getTimeOfTick(t,e=this.now()){let r=this._tickOffset.get(e),n=this._state.get(e),o=Math.max(r.time,n.time),s=this.frequency.getTicksAtTime(o)+t-r.ticks;return this.frequency.getTimeOfTick(s)}forEachTickBetween(t,e,r){let n=this._state.get(t);this._state.forEachBetween(t,e,s=>{n&&n.state==="started"&&s.state!=="started"&&this.forEachTickBetween(Math.max(n.time,t),s.time-this.sampleTime,r),n=s});let o=null;if(n&&n.state==="started"){let s=Math.max(n.time,t),a=this.frequency.getTicksAtTime(s),c=this.frequency.getTicksAtTime(n.time),u=a-c,h=Math.ceil(u)-u;h=Ce(h,1)?0:h;let l=this.frequency.getTimeOfTick(a+h);for(;l<e;){try{r(l,Math.round(this.getTicksAtTime(l)))}catch(p){o=p;break}l+=this.frequency.getDurationOfTicks(1,l)}}if(o)throw o;return this}dispose(){return super.dispose(),this._state.dispose(),this._tickOffset.dispose(),this._ticksAtTime.dispose(),this._secondsAtTime.dispose(),this.frequency.dispose(),this}};var Dn=class i extends ee{constructor(){let t=I(i.getDefaults(),arguments,["callback","frequency"]);super(t),this.name="Clock",this.callback=ot,this._lastUpdate=0,this._state=new Mr("stopped"),this._boundLoop=this._loop.bind(this),this.callback=t.callback,this._tickSource=new wa({context:this.context,frequency:t.frequency,units:t.units}),this._lastUpdate=0,this.frequency=this._tickSource.frequency,z(this,"frequency"),this._state.setStateAtTime("stopped",0),this.context.on("tick",this._boundLoop)}static getDefaults(){return Object.assign(ee.getDefaults(),{callback:ot,frequency:1,units:"hertz"})}get state(){return this._state.getValueAtTime(this.now())}start(t,e){ba(this.context);let r=this.toSeconds(t);return this.log("start",r),this._state.getValueAtTime(r)!=="started"&&(this._state.setStateAtTime("started",r),this._tickSource.start(r,e),r<this._lastUpdate&&this.emit("start",r,e)),this}stop(t){let e=this.toSeconds(t);return this.log("stop",e),this._state.cancel(e),this._state.setStateAtTime("stopped",e),this._tickSource.stop(e),e<this._lastUpdate&&this.emit("stop",e),this}pause(t){let e=this.toSeconds(t);return this._state.getValueAtTime(e)==="started"&&(this._state.setStateAtTime("paused",e),this._tickSource.pause(e),e<this._lastUpdate&&this.emit("pause",e)),this}get ticks(){return Math.ceil(this.getTicksAtTime(this.now()))}set ticks(t){this._tickSource.ticks=t}get seconds(){return this._tickSource.seconds}set seconds(t){this._tickSource.seconds=t}getSecondsAtTime(t){return this._tickSource.getSecondsAtTime(t)}setTicksAtTime(t,e){return this._tickSource.setTicksAtTime(t,e),this}getTimeOfTick(t,e=this.now()){return this._tickSource.getTimeOfTick(t,e)}getTicksAtTime(t){return this._tickSource.getTicksAtTime(t)}nextTickTime(t,e){let r=this.toSeconds(e),n=this.getTicksAtTime(r);return this._tickSource.getTimeOfTick(n+t,r)}_loop(){let t=this._lastUpdate,e=this.now();this._lastUpdate=e,this.log("loop",t,e),t!==e&&(this._state.forEachBetween(t,e,r=>{switch(r.state){case"started":let n=this._tickSource.getTicksAtTime(r.time);this.emit("start",r.time,n);break;case"stopped":r.time!==0&&this.emit("stop",r.time);break;case"paused":this.emit("pause",r.time);break}}),this._tickSource.forEachTickBetween(t,e,(r,n)=>{this.callback(r,n)}))}getStateAtTime(t){let e=this.toSeconds(t);return this._state.getValueAtTime(e)}dispose(){return super.dispose(),this.context.off("tick",this._boundLoop),this._tickSource.dispose(),this._state.dispose(),this}};pi.mixin(Dn);var Ke=class i extends P{constructor(){let t=I(i.getDefaults(),arguments,["volume"]);super(t),this.name="Volume",this.input=this.output=new Z({context:this.context,gain:t.volume,units:"decibels"}),this.volume=this.output.gain,z(this,"volume"),this._unmutedVolume=t.volume,this.mute=t.mute}static getDefaults(){return Object.assign(P.getDefaults(),{mute:!1,volume:0})}get mute(){return this.volume.value===-1/0}set mute(t){!this.mute&&t?(this._unmutedVolume=this.volume.value,this.volume.value=-1/0):this.mute&&!t&&(this.volume.value=this._unmutedVolume)}dispose(){return super.dispose(),this.input.dispose(),this.volume.dispose(),this}};var lh=class i extends P{constructor(){let t=I(i.getDefaults(),arguments);super(t),this.name="Destination",this.input=new Ke({context:this.context}),this.output=new Z({context:this.context}),this.volume=this.input.volume,Qe(this.input,this.output,this.context.rawContext.destination),this.mute=t.mute,this._internalChannels=[this.input,this.context.rawContext.destination,this.output]}static getDefaults(){return Object.assign(P.getDefaults(),{mute:!1,volume:0})}get mute(){return this.input.mute}set mute(t){this.input.mute=t}chain(...t){return this.input.disconnect(),t.unshift(this.input),t.push(this.output),Qe(...t),this}get maxChannelCount(){return this.context.rawContext.destination.maxChannelCount}dispose(){return super.dispose(),this.volume.dispose(),this}};li(i=>{i.destination=new lh({context:i})});di(i=>{i.destination.dispose()});var dh=class extends P{constructor(){super(...arguments),this.name="Listener",this.positionX=new ht({context:this.context,param:this.context.rawContext.listener.positionX}),this.positionY=new ht({context:this.context,param:this.context.rawContext.listener.positionY}),this.positionZ=new ht({context:this.context,param:this.context.rawContext.listener.positionZ}),this.forwardX=new ht({context:this.context,param:this.context.rawContext.listener.forwardX}),this.forwardY=new ht({context:this.context,param:this.context.rawContext.listener.forwardY}),this.forwardZ=new ht({context:this.context,param:this.context.rawContext.listener.forwardZ}),this.upX=new ht({context:this.context,param:this.context.rawContext.listener.upX}),this.upY=new ht({context:this.context,param:this.context.rawContext.listener.upY}),this.upZ=new ht({context:this.context,param:this.context.rawContext.listener.upZ})}static getDefaults(){return Object.assign(P.getDefaults(),{positionX:0,positionY:0,positionZ:0,forwardX:0,forwardY:0,forwardZ:-1,upX:0,upY:1,upZ:0})}dispose(){return super.dispose(),this.positionX.dispose(),this.positionY.dispose(),this.positionZ.dispose(),this.forwardX.dispose(),this.forwardY.dispose(),this.forwardZ.dispose(),this.upX.dispose(),this.upY.dispose(),this.upZ.dispose(),this}};li(i=>{i.listener=new dh({context:i})});di(i=>{i.listener.dispose()});var kn=class i extends se{constructor(){super(),this.name="ToneAudioBuffers",this._buffers=new Map,this._loadingCount=0;let t=I(i.getDefaults(),arguments,["urls","onload","baseUrl"],"urls");this.baseUrl=t.baseUrl,Object.keys(t.urls).forEach(e=>{this._loadingCount++;let r=t.urls[e];this.add(e,r,this._bufferLoaded.bind(this,t.onload),t.onerror)})}static getDefaults(){return{baseUrl:"",onerror:ot,onload:ot,urls:{}}}has(t){return this._buffers.has(t.toString())}get(t){return Y(this.has(t),`ToneAudioBuffers has no buffer named: ${t}`),this._buffers.get(t.toString())}_bufferLoaded(t){this._loadingCount--,this._loadingCount===0&&t&&t()}get loaded(){return Array.from(this._buffers).every(([t,e])=>e.loaded)}add(t,e,r=ot,n=ot){return fe(e)?(this.baseUrl&&e.trim().substring(0,11).toLowerCase()==="data:audio/"&&(this.baseUrl=""),this._buffers.set(t.toString(),new Yt(this.baseUrl+e,r,n))):this._buffers.set(t.toString(),new Yt(e,r,n)),this}dispose(){return super.dispose(),this._buffers.forEach(t=>t.dispose()),this._buffers.clear(),this}};var Ro=class i extends _e{constructor(){super(...arguments),this.name="MidiClass",this.defaultUnits="midi"}_frequencyToUnits(t){return mr(super._frequencyToUnits(t))}_ticksToUnits(t){return mr(super._ticksToUnits(t))}_beatsToUnits(t){return mr(super._beatsToUnits(t))}_secondsToUnits(t){return mr(super._secondsToUnits(t))}toMidi(){return this.valueOf()}toFrequency(){return No(this.toMidi())}transpose(t){return new i(this.context,this.toMidi()+t)}};var Be=class extends Xe{constructor(){super(...arguments),this.name="Ticks",this.defaultUnits="i"}_now(){return this.context.transport.ticks}_beatsToUnits(t){return this._getPPQ()*t}_secondsToUnits(t){return Math.floor(t/(60/this._getBpm())*this._getPPQ())}_ticksToUnits(t){return t}toTicks(){return this.valueOf()}toSeconds(){return this.valueOf()/this._getPPQ()*(60/this._getBpm())}};var ph=class extends ee{constructor(){super(...arguments),this.name="Draw",this.expiration=.25,this.anticipation=.008,this._events=new te,this._boundDrawLoop=this._drawLoop.bind(this),this._animationFrame=-1}schedule(t,e){return this._events.add({callback:t,time:this.toSeconds(e)}),this._events.length===1&&(this._animationFrame=requestAnimationFrame(this._boundDrawLoop)),this}cancel(t){return this._events.cancel(this.toSeconds(t)),this}_drawLoop(){let t=this.context.currentTime;this._events.forEachBefore(t+this.anticipation,e=>{t-e.time<=this.expiration&&e.callback(),this._events.remove(e)}),this._events.length>0&&(this._animationFrame=requestAnimationFrame(this._boundDrawLoop))}dispose(){return super.dispose(),this._events.dispose(),cancelAnimationFrame(this._animationFrame),this}};li(i=>{i.draw=new ph({context:i})});di(i=>{i.draw.dispose()});var Ia=class extends se{constructor(){super(...arguments),this.name="IntervalTimeline",this._root=null,this._length=0}add(t){Y(it(t.time),"Events must have a time property"),Y(it(t.duration),"Events must have a duration parameter"),t.time=t.time.valueOf();let e=new mh(t.time,t.time+t.duration,t);for(this._root===null?this._root=e:this._root.insert(e),this._length++;e!==null;)e.updateHeight(),e.updateMax(),this._rebalance(e),e=e.parent;return this}remove(t){if(this._root!==null){let e=[];this._root.search(t.time,e);for(let r of e)if(r.event===t){this._removeNode(r),this._length--;break}}return this}get length(){return this._length}cancel(t){return this.forEachFrom(t,e=>this.remove(e)),this}_setRoot(t){this._root=t,this._root!==null&&(this._root.parent=null)}_replaceNodeInParent(t,e){t.parent!==null?(t.isLeftChild()?t.parent.left=e:t.parent.right=e,this._rebalance(t.parent)):this._setRoot(e)}_removeNode(t){if(t.left===null&&t.right===null)this._replaceNodeInParent(t,null);else if(t.right===null)this._replaceNodeInParent(t,t.left);else if(t.left===null)this._replaceNodeInParent(t,t.right);else{let e=t.getBalance(),r,n=null;if(e>0)if(t.left.right===null)r=t.left,r.right=t.right,n=r;else{for(r=t.left.right;r.right!==null;)r=r.right;r.parent&&(r.parent.right=r.left,n=r.parent,r.left=t.left,r.right=t.right)}else if(t.right.left===null)r=t.right,r.left=t.left,n=r;else{for(r=t.right.left;r.left!==null;)r=r.left;r.parent&&(r.parent.left=r.right,n=r.parent,r.left=t.left,r.right=t.right)}t.parent!==null?t.isLeftChild()?t.parent.left=r:t.parent.right=r:this._setRoot(r),n&&this._rebalance(n)}t.dispose()}_rotateLeft(t){let e=t.parent,r=t.isLeftChild(),n=t.right;n&&(t.right=n.left,n.left=t),e!==null?r?e.left=n:e.right=n:this._setRoot(n)}_rotateRight(t){let e=t.parent,r=t.isLeftChild(),n=t.left;n&&(t.left=n.right,n.right=t),e!==null?r?e.left=n:e.right=n:this._setRoot(n)}_rebalance(t){let e=t.getBalance();e>1&&t.left?t.left.getBalance()<0?this._rotateLeft(t.left):this._rotateRight(t):e<-1&&t.right&&(t.right.getBalance()>0?this._rotateRight(t.right):this._rotateLeft(t))}get(t){if(this._root!==null){let e=[];if(this._root.search(t,e),e.length>0){let r=e[0];for(let n=1;n<e.length;n++)e[n].low>r.low&&(r=e[n]);return r.event}}return null}forEach(t){if(this._root!==null){let e=[];this._root.traverse(r=>e.push(r)),e.forEach(r=>{r.event&&t(r.event)})}return this}forEachAtTime(t,e){if(this._root!==null){let r=[];this._root.search(t,r),r.forEach(n=>{n.event&&e(n.event)})}return this}forEachFrom(t,e){if(this._root!==null){let r=[];this._root.searchAfter(t,r),r.forEach(n=>{n.event&&e(n.event)})}return this}dispose(){return super.dispose(),this._root!==null&&this._root.traverse(t=>t.dispose()),this._root=null,this}},mh=class{constructor(t,e,r){this._left=null,this._right=null,this.parent=null,this.height=0,this.event=r,this.low=t,this.high=e,this.max=this.high}insert(t){t.low<=this.low?this.left===null?this.left=t:this.left.insert(t):this.right===null?this.right=t:this.right.insert(t)}search(t,e){t>this.max||(this.left!==null&&this.left.search(t,e),this.low<=t&&this.high>t&&e.push(this),!(this.low>t)&&this.right!==null&&this.right.search(t,e))}searchAfter(t,e){this.low>=t&&(e.push(this),this.left!==null&&this.left.searchAfter(t,e)),this.right!==null&&this.right.searchAfter(t,e)}traverse(t){t(this),this.left!==null&&this.left.traverse(t),this.right!==null&&this.right.traverse(t)}updateHeight(){this.left!==null&&this.right!==null?this.height=Math.max(this.left.height,this.right.height)+1:this.right!==null?this.height=this.right.height+1:this.left!==null?this.height=this.left.height+1:this.height=0}updateMax(){this.max=this.high,this.left!==null&&(this.max=Math.max(this.max,this.left.max)),this.right!==null&&(this.max=Math.max(this.max,this.right.max))}getBalance(){let t=0;return this.left!==null&&this.right!==null?t=this.left.height-this.right.height:this.left!==null?t=this.left.height+1:this.right!==null&&(t=-(this.right.height+1)),t}isLeftChild(){return this.parent!==null&&this.parent.left===this}get left(){return this._left}set left(t){this._left=t,t!==null&&(t.parent=this),this.updateHeight(),this.updateMax()}get right(){return this._right}set right(t){this._right=t,t!==null&&(t.parent=this),this.updateHeight(),this.updateMax()}dispose(){this.parent=null,this._left=null,this._right=null,this.event=null}};var Ta=class extends se{constructor(t){super(),this.name="TimelineValue",this._timeline=new te({memory:10}),this._initialValue=t}set(t,e){return this._timeline.add({value:t,time:e}),this}get(t){let e=this._timeline.get(t);return e?e.value:this._initialValue}};var be=class i extends P{constructor(){super(I(i.getDefaults(),arguments,["context"]))}connect(t,e=0,r=0){return En(this,t,e,r),this}};var Ne=class i extends be{constructor(){let t=I(i.getDefaults(),arguments,["mapping","length"]);super(t),this.name="WaveShaper",this._shaper=this.context.createWaveShaper(),this.input=this._shaper,this.output=this._shaper,Vt(t.mapping)||t.mapping instanceof Float32Array?this.curve=Float32Array.from(t.mapping):wf(t.mapping)&&this.setMap(t.mapping,t.length)}static getDefaults(){return Object.assign(rt.getDefaults(),{length:1024})}setMap(t,e=1024){let r=new Float32Array(e);for(let n=0,o=e;n<o;n++){let s=n/(o-1)*2-1;r[n]=t(s,n)}return this.curve=r,this}get curve(){return this._shaper.curve}set curve(t){this._shaper.curve=t}get oversample(){return this._shaper.oversample}set oversample(t){let e=["none","2x","4x"].some(r=>r.includes(t));Y(e,"oversampling must be either 'none', '2x', or '4x'"),this._shaper.oversample=t}dispose(){return super.dispose(),this._shaper.disconnect(),this}};var Ln=class i extends be{constructor(){let t=I(i.getDefaults(),arguments,["value"]);super(t),this.name="Pow",this._exponentScaler=this.input=this.output=new Ne({context:this.context,mapping:this._expFunc(t.value),length:8192}),this._exponent=t.value}static getDefaults(){return Object.assign(be.getDefaults(),{value:1})}_expFunc(t){return e=>Math.pow(Math.abs(e),t)}get value(){return this._exponent}set value(t){this._exponent=t,this._exponentScaler.setMap(this._expFunc(this._exponent))}dispose(){return super.dispose(),this._exponentScaler.dispose(),this}};var Yr=class i{constructor(t,e){this.id=i._eventId++,this._remainderTime=0;let r=Object.assign(i.getDefaults(),e);this.transport=t,this.callback=r.callback,this._once=r.once,this.time=Math.floor(r.time),this._remainderTime=r.time-this.time}static getDefaults(){return{callback:ot,once:!1,time:0}}get floatTime(){return this.time+this._remainderTime}invoke(t){if(this.callback){let e=this.transport.bpm.getDurationOfTicks(1,t);this.callback(t+this._remainderTime*e),this._once&&this.transport.clear(this.id)}}dispose(){return this.callback=void 0,this}};Yr._eventId=0;var Na=class i extends Yr{constructor(t,e){super(t,e),this._currentId=-1,this._nextId=-1,this._nextTick=this.time,this._boundRestart=this._restart.bind(this);let r=Object.assign(i.getDefaults(),e);this.duration=r.duration,this._interval=r.interval,this._nextTick=r.time,this.transport.on("start",this._boundRestart),this.transport.on("loopStart",this._boundRestart),this.transport.on("ticks",this._boundRestart),this.context=this.transport.context,this._restart()}static getDefaults(){return Object.assign({},Yr.getDefaults(),{duration:1/0,interval:1,once:!1})}invoke(t){this._createEvents(t),super.invoke(t)}_createEvent(){return Pi(this._nextTick,this.floatTime+this.duration)?this.transport.scheduleOnce(this.invoke.bind(this),new Be(this.context,this._nextTick).toSeconds()):-1}_createEvents(t){Pi(this._nextTick+this._interval,this.floatTime+this.duration)&&(this._nextTick+=this._interval,this._currentId=this._nextId,this._nextId=this.transport.scheduleOnce(this.invoke.bind(this),new Be(this.context,this._nextTick).toSeconds()))}_restart(t){this.transport.clear(this._currentId),this.transport.clear(this._nextId),this._nextTick=this.floatTime;let e=this.transport.getTicksAtTime(t);zr(e,this.time)&&(this._nextTick=this.floatTime+Math.ceil((e-this.floatTime)/this._interval)*this._interval),this._currentId=this._createEvent(),this._nextTick+=this._interval,this._nextId=this._createEvent()}dispose(){return super.dispose(),this.transport.clear(this._currentId),this.transport.clear(this._nextId),this.transport.off("start",this._boundRestart),this.transport.off("loopStart",this._boundRestart),this.transport.off("ticks",this._boundRestart),this}};var Oa=class i extends ee{constructor(){let t=I(i.getDefaults(),arguments);super(t),this.name="Transport",this._loop=new Ta(!1),this._loopStart=0,this._loopEnd=0,this._scheduledEvents={},this._timeline=new te,this._repeatedEvents=new Ia,this._syncedSignals=[],this._swingAmount=0,this._ppq=t.ppq,this._clock=new Dn({callback:this._processTick.bind(this),context:this.context,frequency:0,units:"bpm"}),this._bindClockEvents(),this.bpm=this._clock.frequency,this._clock.frequency.multiplier=t.ppq,this.bpm.setValueAtTime(t.bpm,0),z(this,"bpm"),this._timeSignature=t.timeSignature,this._swingTicks=t.ppq/2}static getDefaults(){return Object.assign(ee.getDefaults(),{bpm:120,loopEnd:"4m",loopStart:0,ppq:192,swing:0,swingSubdivision:"8n",timeSignature:4})}_processTick(t,e){if(this._loop.get(t)&&e>=this._loopEnd&&(this.emit("loopEnd",t),this._clock.setTicksAtTime(this._loopStart,t),e=this._loopStart,this.emit("loopStart",t,this._clock.getSecondsAtTime(t)),this.emit("loop",t)),this._swingAmount>0&&e%this._ppq!==0&&e%(this._swingTicks*2)!==0){let r=e%(this._swingTicks*2)/(this._swingTicks*2),n=Math.sin(r*Math.PI)*this._swingAmount;t+=new Be(this.context,this._swingTicks*2/3).toSeconds()*n}ah(!0),this._timeline.forEachAtTime(e,r=>r.invoke(t)),ah(!1)}schedule(t,e){let r=new Yr(this,{callback:t,time:new Xe(this.context,e).toTicks()});return this._addEvent(r,this._timeline)}scheduleRepeat(t,e,r,n=1/0){let o=new Na(this,{callback:t,duration:new Fe(this.context,n).toTicks(),interval:new Fe(this.context,e).toTicks(),time:new Xe(this.context,r).toTicks()});return this._addEvent(o,this._repeatedEvents)}scheduleOnce(t,e){let r=new Yr(this,{callback:t,once:!0,time:new Xe(this.context,e).toTicks()});return this._addEvent(r,this._timeline)}clear(t){if(this._scheduledEvents.hasOwnProperty(t)){let e=this._scheduledEvents[t.toString()];e.timeline.remove(e.event),e.event.dispose(),delete this._scheduledEvents[t.toString()]}return this}_addEvent(t,e){return this._scheduledEvents[t.id.toString()]={event:t,timeline:e},e.add(t),t.id}cancel(t=0){let e=this.toTicks(t);return this._timeline.forEachFrom(e,r=>this.clear(r.id)),this._repeatedEvents.forEachFrom(e,r=>this.clear(r.id)),this}_bindClockEvents(){this._clock.on("start",(t,e)=>{e=new Be(this.context,e).toSeconds(),this.emit("start",t,e)}),this._clock.on("stop",t=>{this.emit("stop",t)}),this._clock.on("pause",t=>{this.emit("pause",t)})}get state(){return this._clock.getStateAtTime(this.now())}start(t,e){this.context.resume();let r;return it(e)&&(r=this.toTicks(e)),this._clock.start(t,r),this}stop(t){return this._clock.stop(t),this}pause(t){return this._clock.pause(t),this}toggle(t){return t=this.toSeconds(t),this._clock.getStateAtTime(t)!=="started"?this.start(t):this.stop(t),this}get timeSignature(){return this._timeSignature}set timeSignature(t){Vt(t)&&(t=t[0]/t[1]*4),this._timeSignature=t}get loopStart(){return new Fe(this.context,this._loopStart,"i").toSeconds()}set loopStart(t){this._loopStart=this.toTicks(t)}get loopEnd(){return new Fe(this.context,this._loopEnd,"i").toSeconds()}set loopEnd(t){this._loopEnd=this.toTicks(t)}get loop(){return this._loop.get(this.now())}set loop(t){this._loop.set(t,this.now())}setLoopPoints(t,e){return this.loopStart=t,this.loopEnd=e,this}get swing(){return this._swingAmount}set swing(t){this._swingAmount=t}get swingSubdivision(){return new Be(this.context,this._swingTicks).toNotation()}set swingSubdivision(t){this._swingTicks=this.toTicks(t)}get position(){let t=this.now(),e=this._clock.getTicksAtTime(t);return new Be(this.context,e).toBarsBeatsSixteenths()}set position(t){let e=this.toTicks(t);this.ticks=e}get seconds(){return this._clock.seconds}set seconds(t){let e=this.now(),r=this._clock.frequency.timeToTicks(t,e);this.ticks=r}get progress(){if(this.loop){let t=this.now();return(this._clock.getTicksAtTime(t)-this._loopStart)/(this._loopEnd-this._loopStart)}else return 0}get ticks(){return this._clock.ticks}set ticks(t){if(this._clock.ticks!==t){let e=this.now();if(this.state==="started"){let r=this._clock.getTicksAtTime(e),n=this._clock.frequency.getDurationOfTicks(Math.ceil(r)-r,e),o=e+n;this.emit("stop",o),this._clock.setTicksAtTime(t,o),this.emit("start",o,this._clock.getSecondsAtTime(o))}else this.emit("ticks",e),this._clock.setTicksAtTime(t,e)}}getTicksAtTime(t){return this._clock.getTicksAtTime(t)}getSecondsAtTime(t){return this._clock.getSecondsAtTime(t)}get PPQ(){return this._clock.frequency.multiplier}set PPQ(t){this._clock.frequency.multiplier=t}nextSubdivision(t){if(t=this.toTicks(t),this.state!=="started")return 0;{let e=this.now(),r=this.getTicksAtTime(e),n=t-r%t;return this._clock.nextTickTime(n,e)}}syncSignal(t,e){let r=this.now(),n=this.bpm,o=1/(60/n.getValueAtTime(r)/this.PPQ),s=[];if(t.units==="time"){let c=.015625/o,u=new Z(c),h=new Ln(-1),l=new Z(c);n.chain(u,h,l),n=l,o=1/o,s=[u,h,l]}e||(t.getValueAtTime(r)!==0?e=t.getValueAtTime(r)/o:e=0);let a=new Z(e);return n.connect(a),a.connect(t._param),s.push(a),this._syncedSignals.push({initial:t.value,nodes:s,signal:t}),t.value=0,this}unsyncSignal(t){for(let e=this._syncedSignals.length-1;e>=0;e--){let r=this._syncedSignals[e];r.signal===t&&(r.nodes.forEach(n=>n.dispose()),r.signal.value=r.initial,this._syncedSignals.splice(e,1))}return this}dispose(){return super.dispose(),this._clock.dispose(),Bi(this,"bpm"),this._timeline.dispose(),this._repeatedEvents.dispose(),this}};pi.mixin(Oa);li(i=>{i.transport=new Oa({context:i})});di(i=>{i.transport.dispose()});var wt=class extends P{constructor(t){super(t),this.input=void 0,this._state=new Mr("stopped"),this._synced=!1,this._scheduled=[],this._syncedStart=ot,this._syncedStop=ot,this._state.memory=100,this._state.increasing=!0,this._volume=this.output=new Ke({context:this.context,mute:t.mute,volume:t.volume}),this.volume=this._volume.volume,z(this,"volume"),this.onstop=t.onstop}static getDefaults(){return Object.assign(P.getDefaults(),{mute:!1,onstop:ot,volume:0})}get state(){return this._synced?this.context.transport.state==="started"?this._state.getValueAtTime(this.context.transport.seconds):"stopped":this._state.getValueAtTime(this.now())}get mute(){return this._volume.mute}set mute(t){this._volume.mute=t}_clampToCurrentTime(t){return this._synced?t:Math.max(t,this.context.currentTime)}start(t,e,r){let n=Xt(t)&&this._synced?this.context.transport.seconds:this.toSeconds(t);if(n=this._clampToCurrentTime(n),!this._synced&&this._state.getValueAtTime(n)==="started")Y(zr(n,this._state.get(n).time),"Start time must be strictly greater than previous start time"),this._state.cancel(n),this._state.setStateAtTime("started",n),this.log("restart",n),this.restart(n,e,r);else if(this.log("start",n),this._state.setStateAtTime("started",n),this._synced){let o=this._state.get(n);o&&(o.offset=this.toSeconds(Pe(e,0)),o.duration=r?this.toSeconds(r):void 0);let s=this.context.transport.schedule(a=>{this._start(a,e,r)},n);this._scheduled.push(s),this.context.transport.state==="started"&&this.context.transport.getSecondsAtTime(this.immediate())>n&&this._syncedStart(this.now(),this.context.transport.seconds)}else ba(this.context),this._start(n,e,r);return this}stop(t){let e=Xt(t)&&this._synced?this.context.transport.seconds:this.toSeconds(t);if(e=this._clampToCurrentTime(e),this._state.getValueAtTime(e)==="started"||it(this._state.getNextState("started",e))){if(this.log("stop",e),!this._synced)this._stop(e);else{let r=this.context.transport.schedule(this._stop.bind(this),e);this._scheduled.push(r)}this._state.cancel(e),this._state.setStateAtTime("stopped",e)}return this}restart(t,e,r){return t=this.toSeconds(t),this._state.getValueAtTime(t)==="started"&&(this._state.cancel(t),this._restart(t,e,r)),this}sync(){return this._synced||(this._synced=!0,this._syncedStart=(t,e)=>{if(zr(e,0)){let r=this._state.get(e);if(r&&r.state==="started"&&r.time!==e){let n=e-this.toSeconds(r.time),o;r.duration&&(o=this.toSeconds(r.duration)-n),this._start(t,this.toSeconds(r.offset)+n,o)}}},this._syncedStop=t=>{let e=this.context.transport.getSecondsAtTime(Math.max(t-this.sampleTime,0));this._state.getValueAtTime(e)==="started"&&this._stop(t)},this.context.transport.on("start",this._syncedStart),this.context.transport.on("loopStart",this._syncedStart),this.context.transport.on("stop",this._syncedStop),this.context.transport.on("pause",this._syncedStop),this.context.transport.on("loopEnd",this._syncedStop)),this}unsync(){return this._synced&&(this.context.transport.off("stop",this._syncedStop),this.context.transport.off("pause",this._syncedStop),this.context.transport.off("loopEnd",this._syncedStop),this.context.transport.off("start",this._syncedStart),this.context.transport.off("loopStart",this._syncedStart)),this._synced=!1,this._scheduled.forEach(t=>this.context.transport.clear(t)),this._scheduled=[],this._state.cancel(0),this._stop(0),this}dispose(){return super.dispose(),this.onstop=ot,this.unsync(),this._volume.dispose(),this._state.dispose(),this}};var Er=class i extends fr{constructor(){let t=I(i.getDefaults(),arguments,["url","onload"]);super(t),this.name="ToneBufferSource",this._source=this.context.createBufferSource(),this._internalChannels=[this._source],this._sourceStarted=!1,this._sourceStopped=!1,de(this._source,this._gainNode),this._source.onended=()=>this._stopSource(),this.playbackRate=new ht({context:this.context,param:this._source.playbackRate,units:"positive",value:t.playbackRate}),this.loop=t.loop,this.loopStart=t.loopStart,this.loopEnd=t.loopEnd,this._buffer=new Yt(t.url,t.onload,t.onerror),this._internalChannels.push(this._source)}static getDefaults(){return Object.assign(fr.getDefaults(),{url:new Yt,loop:!1,loopEnd:0,loopStart:0,onload:ot,onerror:ot,playbackRate:1})}get fadeIn(){return this._fadeIn}set fadeIn(t){this._fadeIn=t}get fadeOut(){return this._fadeOut}set fadeOut(t){this._fadeOut=t}get curve(){return this._curve}set curve(t){this._curve=t}start(t,e,r,n=1){Y(this.buffer.loaded,"buffer is either not set or not loaded");let o=this.toSeconds(t);this._startGain(o,n),this.loop?e=Pe(e,this.loopStart):e=Pe(e,0);let s=Math.max(this.toSeconds(e),0);if(this.loop){let a=this.toSeconds(this.loopEnd)||this.buffer.duration,c=this.toSeconds(this.loopStart),u=a-c;To(s,a)&&(s=(s-c)%u+c),Ce(s,this.buffer.duration)&&(s=0)}if(this._source.buffer=this.buffer.get(),this._source.loopEnd=this.toSeconds(this.loopEnd)||this.buffer.duration,Pi(s,this.buffer.duration)&&(this._sourceStarted=!0,this._source.start(o,s)),it(r)){let a=this.toSeconds(r);a=Math.max(a,0),this.stop(o+a)}return this}_stopSource(t){!this._sourceStopped&&this._sourceStarted&&(this._sourceStopped=!0,this._source.stop(this.toSeconds(t)),this._onended())}get loopStart(){return this._source.loopStart}set loopStart(t){this._source.loopStart=this.toSeconds(t)}get loopEnd(){return this._source.loopEnd}set loopEnd(t){this._source.loopEnd=this.toSeconds(t)}get buffer(){return this._buffer}set buffer(t){this._buffer.set(t)}get loop(){return this._source.loop}set loop(t){this._source.loop=t,this._sourceStarted&&this.cancelStop()}dispose(){return super.dispose(),this._source.onended=null,this._source.disconnect(),this._buffer.dispose(),this.playbackRate.dispose(),this}};var Vi=class i extends wt{constructor(){let t=I(i.getDefaults(),arguments,["type"]);super(t),this.name="Noise",this._source=null,this._playbackRate=t.playbackRate,this.type=t.type,this._fadeIn=t.fadeIn,this._fadeOut=t.fadeOut}static getDefaults(){return Object.assign(wt.getDefaults(),{fadeIn:0,fadeOut:0,playbackRate:1,type:"white"})}get type(){return this._type}set type(t){if(Y(t in Yf,"Noise: invalid type: "+t),this._type!==t&&(this._type=t,this.state==="started")){let e=this.now();this._stop(e),this._start(e)}}get playbackRate(){return this._playbackRate}set playbackRate(t){this._playbackRate=t,this._source&&(this._source.playbackRate.value=t)}_start(t){let e=Yf[this._type];this._source=new Er({url:e,context:this.context,fadeIn:this._fadeIn,fadeOut:this._fadeOut,loop:!0,onended:()=>this.onstop(this),playbackRate:this._playbackRate}).connect(this.output),this._source.start(this.toSeconds(t),Math.random()*(e.duration-.001))}_stop(t){this._source&&(this._source.stop(this.toSeconds(t)),this._source=null)}get fadeIn(){return this._fadeIn}set fadeIn(t){this._fadeIn=t,this._source&&(this._source.fadeIn=this._fadeIn)}get fadeOut(){return this._fadeOut}set fadeOut(t){this._fadeOut=t,this._source&&(this._source.fadeOut=this._fadeOut)}_restart(t){this._stop(t),this._start(t)}dispose(){return super.dispose(),this._source&&this._source.disconnect(),this}},jn=44100*5,fh=2,Hr={brown:null,pink:null,white:null},Yf={get brown(){if(!Hr.brown){let i=[];for(let t=0;t<fh;t++){let e=new Float32Array(jn);i[t]=e;let r=0;for(let n=0;n<jn;n++){let o=Math.random()*2-1;e[n]=(r+.02*o)/1.02,r=e[n],e[n]*=3.5}}Hr.brown=new Yt().fromArray(i)}return Hr.brown},get pink(){if(!Hr.pink){let i=[];for(let t=0;t<fh;t++){let e=new Float32Array(jn);i[t]=e;let r,n,o,s,a,c,u;r=n=o=s=a=c=u=0;for(let h=0;h<jn;h++){let l=Math.random()*2-1;r=.99886*r+l*.0555179,n=.99332*n+l*.0750759,o=.969*o+l*.153852,s=.8665*s+l*.3104856,a=.55*a+l*.5329522,c=-.7616*c-l*.016898,e[h]=r+n+o+s+a+c+u+l*.5362,e[h]*=.11,u=l*.115926}}Hr.pink=new Yt().fromArray(i)}return Hr.pink},get white(){if(!Hr.white){let i=[];for(let t=0;t<fh;t++){let e=new Float32Array(jn);i[t]=e;for(let r=0;r<jn;r++)e[r]=Math.random()*2-1}Hr.white=new Yt().fromArray(i)}return Hr.white}};function Oe(i,t){return yt(this,void 0,void 0,function*(){let e=t/i.context.sampleRate,r=new pr(1,e,i.context.sampleRate);return new i.constructor(Object.assign(i.get(),{frequency:2/e,detune:0,context:r})).toDestination().start(0),(yield r.render()).getChannelData(0)})}var Mo=class i extends fr{constructor(){let t=I(i.getDefaults(),arguments,["frequency","type"]);super(t),this.name="ToneOscillatorNode",this._oscillator=this.context.createOscillator(),this._internalChannels=[this._oscillator],de(this._oscillator,this._gainNode),this.type=t.type,this.frequency=new ht({context:this.context,param:this._oscillator.frequency,units:"frequency",value:t.frequency}),this.detune=new ht({context:this.context,param:this._oscillator.detune,units:"cents",value:t.detune}),z(this,["frequency","detune"])}static getDefaults(){return Object.assign(fr.getDefaults(),{detune:0,frequency:440,type:"sine"})}start(t){let e=this.toSeconds(t);return this.log("start",e),this._startGain(e),this._oscillator.start(e),this}_stopSource(t){this._oscillator.stop(t)}setPeriodicWave(t){return this._oscillator.setPeriodicWave(t),this}get type(){return this._oscillator.type}set type(t){this._oscillator.type=t}dispose(){return super.dispose(),this.state==="started"&&this.stop(),this._oscillator.disconnect(),this.frequency.dispose(),this.detune.dispose(),this}};var qt=class i extends wt{constructor(){let t=I(i.getDefaults(),arguments,["frequency","type"]);super(t),this.name="Oscillator",this._oscillator=null,this.frequency=new rt({context:this.context,units:"frequency",value:t.frequency}),z(this,"frequency"),this.detune=new rt({context:this.context,units:"cents",value:t.detune}),z(this,"detune"),this._partials=t.partials,this._partialCount=t.partialCount,this._type=t.type,t.partialCount&&t.type!=="custom"&&(this._type=this.baseType+t.partialCount.toString()),this.phase=t.phase}static getDefaults(){return Object.assign(wt.getDefaults(),{detune:0,frequency:440,partialCount:0,partials:[],phase:0,type:"sine"})}_start(t){let e=this.toSeconds(t),r=new Mo({context:this.context,onended:()=>this.onstop(this)});this._oscillator=r,this._wave?this._oscillator.setPeriodicWave(this._wave):this._oscillator.type=this._type,this._oscillator.connect(this.output),this.frequency.connect(this._oscillator.frequency),this.detune.connect(this._oscillator.detune),this._oscillator.start(e)}_stop(t){let e=this.toSeconds(t);this._oscillator&&this._oscillator.stop(e)}_restart(t){let e=this.toSeconds(t);return this.log("restart",e),this._oscillator&&this._oscillator.cancelStop(),this._state.cancel(e),this}syncFrequency(){return this.context.transport.syncSignal(this.frequency),this}unsyncFrequency(){return this.context.transport.unsyncSignal(this.frequency),this}_getCachedPeriodicWave(){if(this._type==="custom")return i._periodicWaveCache.find(e=>e.phase===this._phase&&jf(e.partials,this._partials));{let t=i._periodicWaveCache.find(e=>e.type===this._type&&e.phase===this._phase);return this._partialCount=t?t.partialCount:this._partialCount,t}}get type(){return this._type}set type(t){this._type=t;let e=["sine","square","sawtooth","triangle"].indexOf(t)!==-1;if(this._phase===0&&e)this._wave=void 0,this._partialCount=0,this._oscillator!==null&&(this._oscillator.type=t);else{let r=this._getCachedPeriodicWave();if(it(r)){let{partials:n,wave:o}=r;this._wave=o,this._partials=n,this._oscillator!==null&&this._oscillator.setPeriodicWave(this._wave)}else{let[n,o]=this._getRealImaginary(t,this._phase),s=this.context.createPeriodicWave(n,o);this._wave=s,this._oscillator!==null&&this._oscillator.setPeriodicWave(this._wave),i._periodicWaveCache.push({imag:o,partialCount:this._partialCount,partials:this._partials,phase:this._phase,real:n,type:this._type,wave:this._wave}),i._periodicWaveCache.length>100&&i._periodicWaveCache.shift()}}}get baseType(){return this._type.replace(this.partialCount.toString(),"")}set baseType(t){this.partialCount&&this._type!=="custom"&&t!=="custom"?this.type=t+this.partialCount:this.type=t}get partialCount(){return this._partialCount}set partialCount(t){zt(t,0);let e=this._type,r=/^(sine|triangle|square|sawtooth)(\d+)$/.exec(this._type);if(r&&(e=r[1]),this._type!=="custom")t===0?this.type=e:this.type=e+t.toString();else{let n=new Float32Array(t);this._partials.forEach((o,s)=>n[s]=o),this._partials=Array.from(n),this.type=this._type}}_getRealImaginary(t,e){let n=2048,o=new Float32Array(n),s=new Float32Array(n),a=1;if(t==="custom"){if(a=this._partials.length+1,this._partialCount=this._partials.length,n=a,this._partials.length===0)return[o,s]}else{let c=/^(sine|triangle|square|sawtooth)(\d+)$/.exec(t);c?(a=parseInt(c[2],10)+1,this._partialCount=parseInt(c[2],10),t=c[1],a=Math.max(a,2),n=a):this._partialCount=0,this._partials=[]}for(let c=1;c<n;++c){let u=2/(c*Math.PI),h;switch(t){case"sine":h=c<=a?1:0,this._partials[c-1]=h;break;case"square":h=c&1?2*u:0,this._partials[c-1]=h;break;case"sawtooth":h=u*(c&1?1:-1),this._partials[c-1]=h;break;case"triangle":c&1?h=2*(u*u)*(c-1>>1&1?-1:1):h=0,this._partials[c-1]=h;break;case"custom":h=this._partials[c-1];break;default:throw new TypeError("Oscillator: invalid type: "+t)}h!==0?(o[c]=-h*Math.sin(e*c),s[c]=h*Math.cos(e*c)):(o[c]=0,s[c]=0)}return[o,s]}_inverseFFT(t,e,r){let n=0,o=t.length;for(let s=0;s<o;s++)n+=t[s]*Math.cos(s*r)+e[s]*Math.sin(s*r);return n}getInitialValue(){let[t,e]=this._getRealImaginary(this._type,0),r=0,n=Math.PI*2,o=32;for(let s=0;s<o;s++)r=Math.max(this._inverseFFT(t,e,s/o*n),r);return ch(-this._inverseFFT(t,e,this._phase)/r,-1,1)}get partials(){return this._partials.slice(0,this.partialCount)}set partials(t){this._partials=t,this._partialCount=this._partials.length,t.length&&(this.type="custom")}get phase(){return this._phase*(180/Math.PI)}set phase(t){this._phase=t*Math.PI/180,this.type=this._type}asArray(){return yt(this,arguments,void 0,function*(t=1024){return Oe(this,t)})}dispose(){return super.dispose(),this._oscillator!==null&&this._oscillator.dispose(),this._wave=void 0,this.frequency.dispose(),this.detune.dispose(),this}};qt._periodicWaveCache=[];var Pn=class extends be{constructor(){super(...arguments),this.name="AudioToGain",this._norm=new Ne({context:this.context,mapping:t=>(t+1)/2}),this.input=this._norm,this.output=this._norm}dispose(){return super.dispose(),this._norm.dispose(),this}};var re=class i extends rt{constructor(){let t=I(i.getDefaults(),arguments,["value"]);super(t),this.name="Multiply",this.override=!1,this._mult=this.input=this.output=new Z({context:this.context,minValue:t.minValue,maxValue:t.maxValue}),this.factor=this._param=this._mult.gain,this.factor.setValueAtTime(t.value,0)}static getDefaults(){return Object.assign(rt.getDefaults(),{value:0})}dispose(){return super.dispose(),this._mult.dispose(),this}};var Eo=class i extends wt{constructor(){let t=I(i.getDefaults(),arguments,["frequency","type","modulationType"]);super(t),this.name="AMOscillator",this._modulationScale=new Pn({context:this.context}),this._modulationNode=new Z({context:this.context}),this._carrier=new qt({context:this.context,detune:t.detune,frequency:t.frequency,onstop:()=>this.onstop(this),phase:t.phase,type:t.type}),this.frequency=this._carrier.frequency,this.detune=this._carrier.detune,this._modulator=new qt({context:this.context,phase:t.phase,type:t.modulationType}),this.harmonicity=new re({context:this.context,units:"positive",value:t.harmonicity}),this.frequency.chain(this.harmonicity,this._modulator.frequency),this._modulator.chain(this._modulationScale,this._modulationNode.gain),this._carrier.chain(this._modulationNode,this.output),z(this,["frequency","detune","harmonicity"])}static getDefaults(){return Object.assign(qt.getDefaults(),{harmonicity:1,modulationType:"square"})}_start(t){this._modulator.start(t),this._carrier.start(t)}_stop(t){this._modulator.stop(t),this._carrier.stop(t)}_restart(t){this._modulator.restart(t),this._carrier.restart(t)}get type(){return this._carrier.type}set type(t){this._carrier.type=t}get baseType(){return this._carrier.baseType}set baseType(t){this._carrier.baseType=t}get partialCount(){return this._carrier.partialCount}set partialCount(t){this._carrier.partialCount=t}get modulationType(){return this._modulator.type}set modulationType(t){this._modulator.type=t}get phase(){return this._carrier.phase}set phase(t){this._carrier.phase=t,this._modulator.phase=t}get partials(){return this._carrier.partials}set partials(t){this._carrier.partials=t}asArray(){return yt(this,arguments,void 0,function*(t=1024){return Oe(this,t)})}dispose(){return super.dispose(),this.frequency.dispose(),this.detune.dispose(),this.harmonicity.dispose(),this._carrier.dispose(),this._modulator.dispose(),this._modulationNode.dispose(),this._modulationScale.dispose(),this}};var Fn=class i extends wt{constructor(){let t=I(i.getDefaults(),arguments,["frequency","type","modulationType"]);super(t),this.name="FMOscillator",this._modulationNode=new Z({context:this.context,gain:0}),this._carrier=new qt({context:this.context,detune:t.detune,frequency:0,onstop:()=>this.onstop(this),phase:t.phase,type:t.type}),this.detune=this._carrier.detune,this.frequency=new rt({context:this.context,units:"frequency",value:t.frequency}),this._modulator=new qt({context:this.context,phase:t.phase,type:t.modulationType}),this.harmonicity=new re({context:this.context,units:"positive",value:t.harmonicity}),this.modulationIndex=new re({context:this.context,units:"positive",value:t.modulationIndex}),this.frequency.connect(this._carrier.frequency),this.frequency.chain(this.harmonicity,this._modulator.frequency),this.frequency.chain(this.modulationIndex,this._modulationNode),this._modulator.connect(this._modulationNode.gain),this._modulationNode.connect(this._carrier.frequency),this._carrier.connect(this.output),this.detune.connect(this._modulator.detune),z(this,["modulationIndex","frequency","detune","harmonicity"])}static getDefaults(){return Object.assign(qt.getDefaults(),{harmonicity:1,modulationIndex:2,modulationType:"square"})}_start(t){this._modulator.start(t),this._carrier.start(t)}_stop(t){this._modulator.stop(t),this._carrier.stop(t)}_restart(t){return this._modulator.restart(t),this._carrier.restart(t),this}get type(){return this._carrier.type}set type(t){this._carrier.type=t}get baseType(){return this._carrier.baseType}set baseType(t){this._carrier.baseType=t}get partialCount(){return this._carrier.partialCount}set partialCount(t){this._carrier.partialCount=t}get modulationType(){return this._modulator.type}set modulationType(t){this._modulator.type=t}get phase(){return this._carrier.phase}set phase(t){this._carrier.phase=t,this._modulator.phase=t}get partials(){return this._carrier.partials}set partials(t){this._carrier.partials=t}asArray(){return yt(this,arguments,void 0,function*(t=1024){return Oe(this,t)})}dispose(){return super.dispose(),this.frequency.dispose(),this.harmonicity.dispose(),this._carrier.dispose(),this._modulator.dispose(),this._modulationNode.dispose(),this.modulationIndex.dispose(),this}};var qi=class i extends wt{constructor(){let t=I(i.getDefaults(),arguments,["frequency","width"]);super(t),this.name="PulseOscillator",this._widthGate=new Z({context:this.context,gain:0}),this._thresh=new Ne({context:this.context,mapping:e=>e<=0?-1:1}),this.width=new rt({context:this.context,units:"audioRange",value:t.width}),this._triangle=new qt({context:this.context,detune:t.detune,frequency:t.frequency,onstop:()=>this.onstop(this),phase:t.phase,type:"triangle"}),this.frequency=this._triangle.frequency,this.detune=this._triangle.detune,this._triangle.chain(this._thresh,this.output),this.width.chain(this._widthGate,this._thresh),z(this,["width","frequency","detune"])}static getDefaults(){return Object.assign(wt.getDefaults(),{detune:0,frequency:440,phase:0,type:"pulse",width:.2})}_start(t){t=this.toSeconds(t),this._triangle.start(t),this._widthGate.gain.setValueAtTime(1,t)}_stop(t){t=this.toSeconds(t),this._triangle.stop(t),this._widthGate.gain.cancelScheduledValues(t),this._widthGate.gain.setValueAtTime(0,t)}_restart(t){this._triangle.restart(t),this._widthGate.gain.cancelScheduledValues(t),this._widthGate.gain.setValueAtTime(1,t)}get phase(){return this._triangle.phase}set phase(t){this._triangle.phase=t}get type(){return"pulse"}get baseType(){return"pulse"}get partials(){return[]}get partialCount(){return 0}set carrierType(t){this._triangle.type=t}asArray(){return yt(this,arguments,void 0,function*(t=1024){return Oe(this,t)})}dispose(){return super.dispose(),this._triangle.dispose(),this.width.dispose(),this._widthGate.dispose(),this._thresh.dispose(),this}};var Do=class i extends wt{constructor(){let t=I(i.getDefaults(),arguments,["frequency","type","spread"]);super(t),this.name="FatOscillator",this._oscillators=[],this.frequency=new rt({context:this.context,units:"frequency",value:t.frequency}),this.detune=new rt({context:this.context,units:"cents",value:t.detune}),this._spread=t.spread,this._type=t.type,this._phase=t.phase,this._partials=t.partials,this._partialCount=t.partialCount,this.count=t.count,z(this,["frequency","detune"])}static getDefaults(){return Object.assign(qt.getDefaults(),{count:3,spread:20,type:"sawtooth"})}_start(t){t=this.toSeconds(t),this._forEach(e=>e.start(t))}_stop(t){t=this.toSeconds(t),this._forEach(e=>e.stop(t))}_restart(t){this._forEach(e=>e.restart(t))}_forEach(t){for(let e=0;e<this._oscillators.length;e++)t(this._oscillators[e],e)}get type(){return this._type}set type(t){this._type=t,this._forEach(e=>e.type=t)}get spread(){return this._spread}set spread(t){if(this._spread=t,this._oscillators.length>1){let e=-t/2,r=t/(this._oscillators.length-1);this._forEach((n,o)=>n.detune.value=e+r*o)}}get count(){return this._oscillators.length}set count(t){if(zt(t,1),this._oscillators.length!==t){this._forEach(e=>e.dispose()),this._oscillators=[];for(let e=0;e<t;e++){let r=new qt({context:this.context,volume:-6-t*1.1,type:this._type,phase:this._phase+e/t*360,partialCount:this._partialCount,onstop:e===0?()=>this.onstop(this):ot});this.type==="custom"&&(r.partials=this._partials),this.frequency.connect(r.frequency),this.detune.connect(r.detune),r.detune.overridden=!1,r.connect(this.output),this._oscillators[e]=r}this.spread=this._spread,this.state==="started"&&this._forEach(e=>e.start())}}get phase(){return this._phase}set phase(t){this._phase=t,this._forEach((e,r)=>e.phase=this._phase+r/this.count*360)}get baseType(){return this._oscillators[0].baseType}set baseType(t){this._forEach(e=>e.baseType=t),this._type=this._oscillators[0].type}get partials(){return this._oscillators[0].partials}set partials(t){this._partials=t,this._partialCount=this._partials.length,t.length&&(this._type="custom",this._forEach(e=>e.partials=t))}get partialCount(){return this._oscillators[0].partialCount}set partialCount(t){this._partialCount=t,this._forEach(e=>e.partialCount=t),this._type=this._oscillators[0].type}asArray(){return yt(this,arguments,void 0,function*(t=1024){return Oe(this,t)})}dispose(){return super.dispose(),this.frequency.dispose(),this.detune.dispose(),this._forEach(t=>t.dispose()),this}};var ko=class i extends wt{constructor(){let t=I(i.getDefaults(),arguments,["frequency","modulationFrequency"]);super(t),this.name="PWMOscillator",this.sourceType="pwm",this._scale=new re({context:this.context,value:2}),this._pulse=new qi({context:this.context,frequency:t.modulationFrequency}),this._pulse.carrierType="sine",this.modulationFrequency=this._pulse.frequency,this._modulator=new qt({context:this.context,detune:t.detune,frequency:t.frequency,onstop:()=>this.onstop(this),phase:t.phase}),this.frequency=this._modulator.frequency,this.detune=this._modulator.detune,this._modulator.chain(this._scale,this._pulse.width),this._pulse.connect(this.output),z(this,["modulationFrequency","frequency","detune"])}static getDefaults(){return Object.assign(wt.getDefaults(),{detune:0,frequency:440,modulationFrequency:.4,phase:0,type:"pwm"})}_start(t){t=this.toSeconds(t),this._modulator.start(t),this._pulse.start(t)}_stop(t){t=this.toSeconds(t),this._modulator.stop(t),this._pulse.stop(t)}_restart(t){this._modulator.restart(t),this._pulse.restart(t)}get type(){return"pwm"}get baseType(){return"pwm"}get partials(){return[]}get partialCount(){return 0}get phase(){return this._modulator.phase}set phase(t){this._modulator.phase=t}asArray(){return yt(this,arguments,void 0,function*(t=1024){return Oe(this,t)})}dispose(){return super.dispose(),this._pulse.dispose(),this._scale.dispose(),this._modulator.dispose(),this}};var Hf={am:Eo,fat:Do,fm:Fn,oscillator:qt,pulse:qi,pwm:ko},Wi=class i extends wt{constructor(){let t=I(i.getDefaults(),arguments,["frequency","type"]);super(t),this.name="OmniOscillator",this.frequency=new rt({context:this.context,units:"frequency",value:t.frequency}),this.detune=new rt({context:this.context,units:"cents",value:t.detune}),z(this,["frequency","detune"]),this.set(t)}static getDefaults(){return Object.assign(qt.getDefaults(),Fn.getDefaults(),Eo.getDefaults(),Do.getDefaults(),qi.getDefaults(),ko.getDefaults())}_start(t){this._oscillator.start(t)}_stop(t){this._oscillator.stop(t)}_restart(t){return this._oscillator.restart(t),this}get type(){let t="";return["am","fm","fat"].some(e=>this._sourceType===e)&&(t=this._sourceType),t+this._oscillator.type}set type(t){t.substr(0,2)==="fm"?(this._createNewOscillator("fm"),this._oscillator=this._oscillator,this._oscillator.type=t.substr(2)):t.substr(0,2)==="am"?(this._createNewOscillator("am"),this._oscillator=this._oscillator,this._oscillator.type=t.substr(2)):t.substr(0,3)==="fat"?(this._createNewOscillator("fat"),this._oscillator=this._oscillator,this._oscillator.type=t.substr(3)):t==="pwm"?(this._createNewOscillator("pwm"),this._oscillator=this._oscillator):t==="pulse"?this._createNewOscillator("pulse"):(this._createNewOscillator("oscillator"),this._oscillator=this._oscillator,this._oscillator.type=t)}get partials(){return this._oscillator.partials}set partials(t){!this._getOscType(this._oscillator,"pulse")&&!this._getOscType(this._oscillator,"pwm")&&(this._oscillator.partials=t)}get partialCount(){return this._oscillator.partialCount}set partialCount(t){!this._getOscType(this._oscillator,"pulse")&&!this._getOscType(this._oscillator,"pwm")&&(this._oscillator.partialCount=t)}set(t){return Reflect.has(t,"type")&&t.type&&(this.type=t.type),super.set(t),this}_createNewOscillator(t){if(t!==this._sourceType){this._sourceType=t;let e=Hf[t],r=this.now();if(this._oscillator){let n=this._oscillator;n.stop(r),this.context.setTimeout(()=>n.dispose(),this.blockTime)}this._oscillator=new e({context:this.context}),this.frequency.connect(this._oscillator.frequency),this.detune.connect(this._oscillator.detune),this._oscillator.connect(this.output),this._oscillator.onstop=()=>this.onstop(this),this.state==="started"&&this._oscillator.start(r)}}get phase(){return this._oscillator.phase}set phase(t){this._oscillator.phase=t}get sourceType(){return this._sourceType}set sourceType(t){let e="sine";this._oscillator.type!=="pwm"&&this._oscillator.type!=="pulse"&&(e=this._oscillator.type),t==="fm"?this.type="fm"+e:t==="am"?this.type="am"+e:t==="fat"?this.type="fat"+e:t==="oscillator"?this.type=e:t==="pulse"?this.type="pulse":t==="pwm"&&(this.type="pwm")}_getOscType(t,e){return t instanceof Hf[e]}get baseType(){return this._oscillator.baseType}set baseType(t){!this._getOscType(this._oscillator,"pulse")&&!this._getOscType(this._oscillator,"pwm")&&t!=="pulse"&&t!=="pwm"&&(this._oscillator.baseType=t)}get width(){if(this._getOscType(this._oscillator,"pulse"))return this._oscillator.width}get count(){if(this._getOscType(this._oscillator,"fat"))return this._oscillator.count}set count(t){this._getOscType(this._oscillator,"fat")&&le(t)&&(this._oscillator.count=t)}get spread(){if(this._getOscType(this._oscillator,"fat"))return this._oscillator.spread}set spread(t){this._getOscType(this._oscillator,"fat")&&le(t)&&(this._oscillator.spread=t)}get modulationType(){if(this._getOscType(this._oscillator,"fm")||this._getOscType(this._oscillator,"am"))return this._oscillator.modulationType}set modulationType(t){(this._getOscType(this._oscillator,"fm")||this._getOscType(this._oscillator,"am"))&&fe(t)&&(this._oscillator.modulationType=t)}get modulationIndex(){if(this._getOscType(this._oscillator,"fm"))return this._oscillator.modulationIndex}get harmonicity(){if(this._getOscType(this._oscillator,"fm")||this._getOscType(this._oscillator,"am"))return this._oscillator.harmonicity}get modulationFrequency(){if(this._getOscType(this._oscillator,"pwm"))return this._oscillator.modulationFrequency}asArray(){return yt(this,arguments,void 0,function*(t=1024){return Oe(this,t)})}dispose(){return super.dispose(),this.detune.dispose(),this.frequency.dispose(),this._oscillator.dispose(),this}};function Ma(i,t=1/0){let e=new WeakMap;return function(r,n){Reflect.defineProperty(r,n,{configurable:!0,enumerable:!0,get:function(){return e.get(this)},set:function(o){zt(o,i,t),e.set(this,o)}})}}function Re(i,t=1/0){let e=new WeakMap;return function(r,n){Reflect.defineProperty(r,n,{configurable:!0,enumerable:!0,get:function(){return e.get(this)},set:function(o){zt(this.toSeconds(o),i,t),e.set(this,o)}})}}var Lo=class i extends wt{constructor(){let t=I(i.getDefaults(),arguments,["url","onload"]);super(t),this.name="Player",this._activeSources=new Set,this._buffer=new Yt({onload:this._onload.bind(this,t.onload),onerror:t.onerror,reverse:t.reverse,url:t.url}),this.autostart=t.autostart,this._loop=t.loop,this._loopStart=t.loopStart,this._loopEnd=t.loopEnd,this._playbackRate=t.playbackRate,this.fadeIn=t.fadeIn,this.fadeOut=t.fadeOut}static getDefaults(){return Object.assign(wt.getDefaults(),{autostart:!1,fadeIn:0,fadeOut:0,loop:!1,loopEnd:0,loopStart:0,onload:ot,onerror:ot,playbackRate:1,reverse:!1})}load(t){return yt(this,void 0,void 0,function*(){return yield this._buffer.load(t),this._onload(),this})}_onload(t=ot){t(),this.autostart&&this.start()}_onSourceEnd(t){this.onstop(this),this._activeSources.delete(t),this._activeSources.size===0&&!this._synced&&this._state.getValueAtTime(this.now())==="started"&&(this._state.cancel(this.now()),this._state.setStateAtTime("stopped",this.now()))}start(t,e,r){return super.start(t,e,r),this}_start(t,e,r){this._loop?e=Pe(e,this._loopStart):e=Pe(e,0);let n=this.toSeconds(e),o=r;r=Pe(r,Math.max(this._buffer.duration-n,0));let s=this.toSeconds(r);s=s/this._playbackRate,t=this.toSeconds(t);let a=new Er({url:this._buffer,context:this.context,fadeIn:this.fadeIn,fadeOut:this.fadeOut,loop:this._loop,loopEnd:this._loopEnd,loopStart:this._loopStart,onended:this._onSourceEnd.bind(this),playbackRate:this._playbackRate}).connect(this.output);!this._loop&&!this._synced&&(this._state.cancel(t+s),this._state.setStateAtTime("stopped",t+s,{implicitEnd:!0})),this._activeSources.add(a),this._loop&&Xt(o)?a.start(t,n):a.start(t,n,s-this.toSeconds(this.fadeOut))}_stop(t){let e=this.toSeconds(t);this._activeSources.forEach(r=>r.stop(e))}restart(t,e,r){return super.restart(t,e,r),this}_restart(t,e,r){var n;(n=[...this._activeSources].pop())===null||n===void 0||n.stop(t),this._start(t,e,r)}seek(t,e){let r=this.toSeconds(e);if(this._state.getValueAtTime(r)==="started"){let n=this.toSeconds(t);this._stop(r),this._start(r,n)}return this}setLoopPoints(t,e){return this.loopStart=t,this.loopEnd=e,this}get loopStart(){return this._loopStart}set loopStart(t){this._loopStart=t,this.buffer.loaded&&zt(this.toSeconds(t),0,this.buffer.duration),this._activeSources.forEach(e=>{e.loopStart=t})}get loopEnd(){return this._loopEnd}set loopEnd(t){this._loopEnd=t,this.buffer.loaded&&zt(this.toSeconds(t),0,this.buffer.duration),this._activeSources.forEach(e=>{e.loopEnd=t})}get buffer(){return this._buffer}set buffer(t){this._buffer.set(t)}get loop(){return this._loop}set loop(t){if(this._loop!==t&&(this._loop=t,this._activeSources.forEach(e=>{e.loop=t}),t)){let e=this._state.getNextState("stopped",this.now());e&&this._state.cancel(e.time)}}get playbackRate(){return this._playbackRate}set playbackRate(t){this._playbackRate=t;let e=this.now(),r=this._state.getNextState("stopped",e);r&&r.implicitEnd&&(this._state.cancel(r.time),this._activeSources.forEach(n=>n.cancelStop())),this._activeSources.forEach(n=>{n.playbackRate.setValueAtTime(t,e)})}get reverse(){return this._buffer.reverse}set reverse(t){this._buffer.reverse=t}get loaded(){return this._buffer.loaded}dispose(){return super.dispose(),this._activeSources.forEach(t=>t.dispose()),this._activeSources.clear(),this._buffer.dispose(),this}};ye([Re(0)],Lo.prototype,"fadeIn",void 0);ye([Re(0)],Lo.prototype,"fadeOut",void 0);var Ea=class extends be{constructor(){super(...arguments),this.name="GainToAudio",this._norm=new Ne({context:this.context,mapping:t=>Math.abs(t)*2-1}),this.input=this._norm,this.output=this._norm}dispose(){return super.dispose(),this._norm.dispose(),this}};var ve=class i extends P{constructor(){let t=I(i.getDefaults(),arguments,["attack","decay","sustain","release"]);super(t),this.name="Envelope",this._sig=new rt({context:this.context,value:0}),this.output=this._sig,this.input=void 0,this.attack=t.attack,this.decay=t.decay,this.sustain=t.sustain,this.release=t.release,this.attackCurve=t.attackCurve,this.releaseCurve=t.releaseCurve,this.decayCurve=t.decayCurve}static getDefaults(){return Object.assign(P.getDefaults(),{attack:.01,attackCurve:"linear",decay:.1,decayCurve:"exponential",release:1,releaseCurve:"exponential",sustain:.5})}get value(){return this.getValueAtTime(this.now())}_getCurve(t,e){if(fe(t))return t;{let r;for(r in Da)if(Da[r][e]===t)return r;return t}}_setCurve(t,e,r){if(fe(r)&&Reflect.has(Da,r)){let n=Da[r];hr(n)?t!=="_decayCurve"&&(this[t]=n[e]):this[t]=n}else if(Vt(r)&&t!=="_decayCurve")this[t]=r;else throw new Error("Envelope: invalid curve: "+r)}get attackCurve(){return this._getCurve(this._attackCurve,"In")}set attackCurve(t){this._setCurve("_attackCurve","In",t)}get releaseCurve(){return this._getCurve(this._releaseCurve,"Out")}set releaseCurve(t){this._setCurve("_releaseCurve","Out",t)}get decayCurve(){return this._getCurve(this._decayCurve,"Out")}set decayCurve(t){this._setCurve("_decayCurve","Out",t)}triggerAttack(t,e=1){this.log("triggerAttack",t,e),t=this.toSeconds(t);let n=this.toSeconds(this.attack),o=this.toSeconds(this.decay),s=this.getValueAtTime(t);if(s>0){let a=1/n;n=(1-s)/a}if(n<this.sampleTime)this._sig.cancelScheduledValues(t),this._sig.setValueAtTime(e,t);else if(this._attackCurve==="linear")this._sig.linearRampTo(e,n,t);else if(this._attackCurve==="exponential")this._sig.targetRampTo(e,n,t);else{this._sig.cancelAndHoldAtTime(t);let a=this._attackCurve;for(let c=1;c<a.length;c++)if(a[c-1]<=s&&s<=a[c]){a=this._attackCurve.slice(c),a[0]=s;break}this._sig.setValueCurveAtTime(a,t,n,e)}if(o&&this.sustain<1){let a=e*this.sustain,c=t+n;this.log("decay",c),this._decayCurve==="linear"?this._sig.linearRampToValueAtTime(a,o+c):this._sig.exponentialApproachValueAtTime(a,c,o)}return this}triggerRelease(t){this.log("triggerRelease",t),t=this.toSeconds(t);let e=this.getValueAtTime(t);if(e>0){let r=this.toSeconds(this.release);r<this.sampleTime?this._sig.setValueAtTime(0,t):this._releaseCurve==="linear"?this._sig.linearRampTo(0,r,t):this._releaseCurve==="exponential"?this._sig.targetRampTo(0,r,t):(Y(Vt(this._releaseCurve),"releaseCurve must be either 'linear', 'exponential' or an array"),this._sig.cancelAndHoldAtTime(t),this._sig.setValueCurveAtTime(this._releaseCurve,t,r,e))}return this}getValueAtTime(t){return this._sig.getValueAtTime(t)}triggerAttackRelease(t,e,r=1){return e=this.toSeconds(e),this.triggerAttack(e,r),this.triggerRelease(e+this.toSeconds(t)),this}cancel(t){return this._sig.cancelScheduledValues(this.toSeconds(t)),this}connect(t,e=0,r=0){return En(this,t,e,r),this}asArray(){return yt(this,arguments,void 0,function*(t=1024){let e=t/this.context.sampleRate,r=new pr(1,e,this.context.sampleRate),n=this.toSeconds(this.attack)+this.toSeconds(this.decay),o=n+this.toSeconds(this.release),s=o*.1,a=o+s,c=new this.constructor(Object.assign(this.get(),{attack:e*this.toSeconds(this.attack)/a,decay:e*this.toSeconds(this.decay)/a,release:e*this.toSeconds(this.release)/a,context:r}));return c._sig.toDestination(),c.triggerAttackRelease(e*(n+s)/a,0),(yield r.render()).getChannelData(0)})}dispose(){return super.dispose(),this._sig.dispose(),this}};ye([Re(0)],ve.prototype,"attack",void 0);ye([Re(0)],ve.prototype,"decay",void 0);ye([Ma(0,1)],ve.prototype,"sustain",void 0);ye([Re(0)],ve.prototype,"release",void 0);var Da=(()=>{let t,e,r=[];for(t=0;t<128;t++)r[t]=Math.sin(t/127*(Math.PI/2));let n=[],o=6.4;for(t=0;t<127;t++){e=t/127;let p=Math.sin(e*(Math.PI*2)*o-Math.PI/2)+1;n[t]=p/10+e*.83}n[127]=1;let s=[],a=5;for(t=0;t<128;t++)s[t]=Math.ceil(t/127*a)/a;let c=[];for(t=0;t<128;t++)e=t/127,c[t]=.5*(1-Math.cos(Math.PI*e));let u=[];for(t=0;t<128;t++){e=t/127;let p=Math.pow(e,3)*4+.2,m=Math.cos(p*Math.PI*2*e);u[t]=Math.abs(m*(1-e))}function h(p){let m=new Array(p.length);for(let f=0;f<p.length;f++)m[f]=1-p[f];return m}function l(p){return p.slice(0).reverse()}return{bounce:{In:h(u),Out:u},cosine:{In:r,Out:l(r)},exponential:"exponential",linear:"linear",ripple:{In:n,Out:h(n)},sine:{In:c,Out:h(c)},step:{In:s,Out:h(s)}}})();var Ge=class i extends P{constructor(){let t=I(i.getDefaults(),arguments);super(t),this._scheduledEvents=[],this._synced=!1,this._original_triggerAttack=this.triggerAttack,this._original_triggerRelease=this.triggerRelease,this._syncedRelease=e=>this._original_triggerRelease(e),this._volume=this.output=new Ke({context:this.context,volume:t.volume}),this.volume=this._volume.volume,z(this,"volume")}static getDefaults(){return Object.assign(P.getDefaults(),{volume:0})}sync(){return this._syncState()&&(this._syncMethod("triggerAttack",1),this._syncMethod("triggerRelease",0),this.context.transport.on("stop",this._syncedRelease),this.context.transport.on("pause",this._syncedRelease),this.context.transport.on("loopEnd",this._syncedRelease)),this}_syncState(){let t=!1;return this._synced||(this._synced=!0,t=!0),t}_syncMethod(t,e){let r=this["_original_"+t]=this[t];this[t]=(...n)=>{let o=n[e],s=this.context.transport.schedule(a=>{n[e]=a,r.apply(this,n)},o);this._scheduledEvents.push(s)}}unsync(){return this._scheduledEvents.forEach(t=>this.context.transport.clear(t)),this._scheduledEvents=[],this._synced&&(this._synced=!1,this.triggerAttack=this._original_triggerAttack,this.triggerRelease=this._original_triggerRelease,this.context.transport.off("stop",this._syncedRelease),this.context.transport.off("pause",this._syncedRelease),this.context.transport.off("loopEnd",this._syncedRelease)),this}triggerAttackRelease(t,e,r,n){let o=this.toSeconds(r),s=this.toSeconds(e);return this.triggerAttack(t,o,n),this.triggerRelease(o+s),this}dispose(){return super.dispose(),this._volume.dispose(),this.unsync(),this._scheduledEvents=[],this}};var Me=class i extends Ge{constructor(){let t=I(i.getDefaults(),arguments);super(t),this.portamento=t.portamento,this.onsilence=t.onsilence}static getDefaults(){return Object.assign(Ge.getDefaults(),{detune:0,onsilence:ot,portamento:0})}triggerAttack(t,e,r=1){this.log("triggerAttack",t,e,r);let n=this.toSeconds(e);return this._triggerEnvelopeAttack(n,r),this.setNote(t,n),this}triggerRelease(t){this.log("triggerRelease",t);let e=this.toSeconds(t);return this._triggerEnvelopeRelease(e),this}setNote(t,e){let r=this.toSeconds(e),n=t instanceof _e?t.toFrequency():t;if(this.portamento>0&&this.getLevelAtTime(r)>.05){let o=this.toSeconds(this.portamento);this.frequency.exponentialRampTo(n,o,r)}else this.frequency.setValueAtTime(n,r);return this}};ye([Re(0)],Me.prototype,"portamento",void 0);var Bn=class i extends ve{constructor(){super(I(i.getDefaults(),arguments,["attack","decay","sustain","release"])),this.name="AmplitudeEnvelope",this._gainNode=new Z({context:this.context,gain:0}),this.output=this._gainNode,this.input=this._gainNode,this._sig.connect(this._gainNode.gain),this.output=this._gainNode,this.input=this._gainNode}dispose(){return super.dispose(),this._gainNode.dispose(),this}};var Dr=class i extends Me{constructor(){let t=I(i.getDefaults(),arguments);super(t),this.name="Synth",this.oscillator=new Wi(Object.assign({context:this.context,detune:t.detune,onstop:()=>this.onsilence(this)},t.oscillator)),this.frequency=this.oscillator.frequency,this.detune=this.oscillator.detune,this.envelope=new Bn(Object.assign({context:this.context},t.envelope)),this.oscillator.chain(this.envelope,this.output),z(this,["oscillator","frequency","detune","envelope"])}static getDefaults(){return Object.assign(Me.getDefaults(),{envelope:Object.assign(dr(ve.getDefaults(),Object.keys(P.getDefaults())),{attack:.005,decay:.1,release:1,sustain:.3}),oscillator:Object.assign(dr(Wi.getDefaults(),[...Object.keys(wt.getDefaults()),"frequency","detune"]),{type:"triangle"})})}_triggerEnvelopeAttack(t,e){if(this.envelope.triggerAttack(t,e),this.oscillator.start(t),this.envelope.sustain===0){let r=this.toSeconds(this.envelope.attack),n=this.toSeconds(this.envelope.decay);this.oscillator.stop(t+r+n)}}_triggerEnvelopeRelease(t){this.envelope.triggerRelease(t),this.oscillator.stop(t+this.toSeconds(this.envelope.release))}getLevelAtTime(t){return t=this.toSeconds(t),this.envelope.getValueAtTime(t)}dispose(){return super.dispose(),this.oscillator.dispose(),this.envelope.dispose(),this}};var jo=class i extends P{constructor(){let t=I(i.getDefaults(),arguments,["frequency","type"]);super(t),this.name="BiquadFilter",this._filter=this.context.createBiquadFilter(),this.input=this.output=this._filter,this.Q=new ht({context:this.context,units:"number",value:t.Q,param:this._filter.Q}),this.frequency=new ht({context:this.context,units:"frequency",value:t.frequency,param:this._filter.frequency}),this.detune=new ht({context:this.context,units:"cents",value:t.detune,param:this._filter.detune}),this.gain=new ht({context:this.context,units:"decibels",convert:!1,value:t.gain,param:this._filter.gain}),this.type=t.type}static getDefaults(){return Object.assign(P.getDefaults(),{Q:1,type:"lowpass",frequency:350,detune:0,gain:0})}get type(){return this._filter.type}set type(t){Y(["lowpass","highpass","bandpass","lowshelf","highshelf","notch","allpass","peaking"].indexOf(t)!==-1,`Invalid filter type: ${t}`),this._filter.type=t}getFrequencyResponse(t=128){let e=new Float32Array(t);for(let s=0;s<t;s++){let c=Math.pow(s/t,2)*19980+20;e[s]=c}let r=new Float32Array(t),n=new Float32Array(t),o=this.context.createBiquadFilter();return o.type=this.type,o.Q.value=this.Q.value,o.frequency.value=this.frequency.value,o.gain.value=this.gain.value,o.getFrequencyResponse(e,r,n),r}dispose(){return super.dispose(),this._filter.disconnect(),this.Q.dispose(),this.frequency.dispose(),this.gain.dispose(),this.detune.dispose(),this}};var $r=class i extends P{constructor(){let t=I(i.getDefaults(),arguments,["frequency","type","rolloff"]);super(t),this.name="Filter",this.input=new Z({context:this.context}),this.output=new Z({context:this.context}),this._filters=[],this._filters=[],this.Q=new rt({context:this.context,units:"positive",value:t.Q}),this.frequency=new rt({context:this.context,units:"frequency",value:t.frequency}),this.detune=new rt({context:this.context,units:"cents",value:t.detune}),this.gain=new rt({context:this.context,units:"decibels",convert:!1,value:t.gain}),this._type=t.type,this.rolloff=t.rolloff,z(this,["detune","frequency","gain","Q"])}static getDefaults(){return Object.assign(P.getDefaults(),{Q:1,detune:0,frequency:350,gain:0,rolloff:-12,type:"lowpass"})}get type(){return this._type}set type(t){Y(["lowpass","highpass","bandpass","lowshelf","highshelf","notch","allpass","peaking"].indexOf(t)!==-1,`Invalid filter type: ${t}`),this._type=t,this._filters.forEach(r=>r.type=t)}get rolloff(){return this._rolloff}set rolloff(t){let e=le(t)?t:parseInt(t,10),r=[-12,-24,-48,-96],n=r.indexOf(e);Y(n!==-1,`rolloff can only be ${r.join(", ")}`),n+=1,this._rolloff=e,this.input.disconnect(),this._filters.forEach(o=>o.disconnect()),this._filters=new Array(n);for(let o=0;o<n;o++){let s=new jo({context:this.context});s.type=this._type,this.frequency.connect(s.frequency),this.detune.connect(s.detune),this.Q.connect(s.Q),this.gain.connect(s.gain),this._filters[o]=s}this._internalChannels=this._filters,Qe(this.input,...this._internalChannels,this.output)}getFrequencyResponse(t=128){let e=new jo({context:this.context,frequency:this.frequency.value,gain:this.gain.value,Q:this.Q.value,type:this._type,detune:this.detune.value}),r=new Float32Array(t).map(()=>1);return this._filters.forEach(()=>{e.getFrequencyResponse(t).forEach((o,s)=>r[s]*=o)}),e.dispose(),r}dispose(){return super.dispose(),this._filters.forEach(t=>{t.dispose()}),Bi(this,["detune","frequency","gain","Q"]),this.frequency.dispose(),this.Q.dispose(),this.detune.dispose(),this.gain.dispose(),this}};var ka=class i extends Dr{constructor(){let t=I(i.getDefaults(),arguments);super(t),this.name="MembraneSynth",this.portamento=0,this.pitchDecay=t.pitchDecay,this.octaves=t.octaves,z(this,["oscillator","envelope"])}static getDefaults(){return Ze(Me.getDefaults(),Dr.getDefaults(),{envelope:{attack:.001,attackCurve:"exponential",decay:.4,release:1.4,sustain:.01},octaves:10,oscillator:{type:"sine"},pitchDecay:.05})}setNote(t,e){let r=this.toSeconds(e),n=this.toFrequency(t instanceof _e?t.toFrequency():t),o=n*this.octaves;return this.oscillator.frequency.setValueAtTime(o,r),this.oscillator.frequency.exponentialRampToValueAtTime(n,r+this.toSeconds(this.pitchDecay)),this}dispose(){return super.dispose(),this}};ye([Ma(0)],ka.prototype,"octaves",void 0);ye([Re(0)],ka.prototype,"pitchDecay",void 0);var $f=new Set;function Vn(i){$f.add(i)}function La(i,t){let e=`registerProcessor("${i}", ${t})`;$f.add(e)}var av=`
99
+ `],{type:"text/javascript"}),e=URL.createObjectURL(t),r=new Worker(e);r.onmessage=this._callback.bind(this),this._worker=r}_createTimeout(){this._timeout=setTimeout(()=>{this._createTimeout(),this._callback()},this._updateInterval*1e3)}_createClock(){if(this._type==="worker")try{this._createWorker()}catch(t){this._type="timeout",this._createClock()}else this._type==="timeout"&&this._createTimeout()}_disposeClock(){this._timeout&&clearTimeout(this._timeout),this._worker&&(this._worker.terminate(),this._worker.onmessage=null)}get updateInterval(){return this._updateInterval}set updateInterval(t){var e;this._updateInterval=Math.max(t,this._minimumUpdateInterval),this._type==="worker"&&((e=this._worker)===null||e===void 0||e.postMessage(this._updateInterval*1e3))}get type(){return this._type}set type(t){this._disposeClock(),this._type=t,this._createClock()}dispose(){this._disposeClock()}};function lr(i){return vf(i)}function Rr(i){return _f(i)}function Tn(i){return Sf(i)}function hi(i){return Cf(i)}function Lf(i){return i instanceof eh}function iv(i,t){return i==="value"||lr(t)||Rr(t)||Lf(t)}function Ze(i,...t){if(!t.length)return i;let e=t.shift();if(hr(i)&&hr(e))for(let r in e)iv(r,e[r])?i[r]=e[r]:hr(e[r])?(i[r]||Object.assign(i,{[r]:{}}),Ze(i[r],e[r])):Object.assign(i,{[r]:e[r]});return Ze(i,...t)}function jf(i,t){return i.length===t.length&&i.every((e,r)=>t[r]===e)}function I(i,t,e=[],r){let n={},o=Array.from(t);if(hr(o[0])&&r&&!Reflect.has(o[0],r)&&(Object.keys(o[0]).some(a=>Reflect.has(i,a))||(Ze(n,{[r]:o[0]}),e.splice(e.indexOf(r),1),o.shift())),o.length===1&&hr(o[0]))Ze(n,o[0]);else for(let s=0;s<e.length;s++)it(o[s])&&(n[e[s]]=o[s]);return Ze(i,n)}function Pf(i){return i.constructor.getDefaults()}function Pe(i,t){return Xt(i)?t:i}function dr(i,t){return t.forEach(e=>{Reflect.has(i,e)&&delete i[e]}),i}var se=class{constructor(){this.debug=!1,this._wasDisposed=!1}static getDefaults(){return{}}log(...t){(this.debug||ge&&this.toString()===ge.TONE_DEBUG_CLASS)&&Rf(this,...t)}dispose(){return this._wasDisposed=!0,this}get disposed(){return this._wasDisposed}toString(){return this.name}};se.version=mo;function zr(i,t){return i>t+1e-6}function To(i,t){return zr(i,t)||Ce(i,t)}function Pi(i,t){return i+1e-6<t}function Ce(i,t){return Math.abs(i-t)<1e-6}function ch(i,t,e){return Math.max(Math.min(i,e),t)}var te=class i extends se{constructor(){super(),this.name="Timeline",this._timeline=[];let t=I(i.getDefaults(),arguments,["memory"]);this.memory=t.memory,this.increasing=t.increasing}static getDefaults(){return{memory:1/0,increasing:!1}}get length(){return this._timeline.length}add(t){if(Y(Reflect.has(t,"time"),"Timeline: events must have a time attribute"),t.time=t.time.valueOf(),this.increasing&&this.length){let e=this._timeline[this.length-1];Y(To(t.time,e.time),"The time must be greater than or equal to the last scheduled time"),this._timeline.push(t)}else{let e=this._search(t.time);this._timeline.splice(e+1,0,t)}if(this.length>this.memory){let e=this.length-this.memory;this._timeline.splice(0,e)}return this}remove(t){let e=this._timeline.indexOf(t);return e!==-1&&this._timeline.splice(e,1),this}get(t,e="time"){let r=this._search(t,e);return r!==-1?this._timeline[r]:null}peek(){return this._timeline[0]}shift(){return this._timeline.shift()}getAfter(t,e="time"){let r=this._search(t,e);return r+1<this._timeline.length?this._timeline[r+1]:null}getBefore(t){let e=this._timeline.length;if(e>0&&this._timeline[e-1].time<t)return this._timeline[e-1];let r=this._search(t);return r-1>=0?this._timeline[r-1]:null}cancel(t){if(this._timeline.length>1){let e=this._search(t);if(e>=0)if(Ce(this._timeline[e].time,t)){for(let r=e;r>=0&&Ce(this._timeline[r].time,t);r--)e=r;this._timeline=this._timeline.slice(0,e)}else this._timeline=this._timeline.slice(0,e+1);else this._timeline=[]}else this._timeline.length===1&&To(this._timeline[0].time,t)&&(this._timeline=[]);return this}cancelBefore(t){let e=this._search(t);return e>=0&&(this._timeline=this._timeline.slice(e+1)),this}previousEvent(t){let e=this._timeline.indexOf(t);return e>0?this._timeline[e-1]:null}_search(t,e="time"){if(this._timeline.length===0)return-1;let r=0,n=this._timeline.length,o=n;if(n>0&&this._timeline[n-1][e]<=t)return n-1;for(;r<o;){let s=Math.floor(r+(o-r)/2),a=this._timeline[s],c=this._timeline[s+1];if(Ce(a[e],t)){for(let u=s;u<this._timeline.length;u++){let h=this._timeline[u];if(Ce(h[e],t))s=u;else break}return s}else{if(Pi(a[e],t)&&zr(c[e],t))return s;zr(a[e],t)?o=s:r=s+1}}return-1}_iterate(t,e=0,r=this._timeline.length-1){this._timeline.slice(e,r+1).forEach(t)}forEach(t){return this._iterate(t),this}forEachBefore(t,e){let r=this._search(t);return r!==-1&&this._iterate(e,0,r),this}forEachAfter(t,e){let r=this._search(t);return this._iterate(e,r+1),this}forEachBetween(t,e,r){let n=this._search(t),o=this._search(e);return n!==-1&&o!==-1?(this._timeline[n].time!==t&&(n+=1),this._timeline[o].time===e&&(o-=1),this._iterate(r,n,o)):n===-1&&this._iterate(r,0,o),this}forEachFrom(t,e){let r=this._search(t);for(;r>=0&&this._timeline[r].time>=t;)r--;return this._iterate(e,r+1),this}forEachAtTime(t,e){let r=this._search(t);if(r!==-1&&Ce(this._timeline[r].time,t)){let n=r;for(let o=r;o>=0&&Ce(this._timeline[o].time,t);o--)n=o;this._iterate(o=>{e(o)},n,r)}return this}dispose(){return super.dispose(),this._timeline=[],this}};var Ff=[];function li(i){Ff.push(i)}function Bf(i){Ff.forEach(t=>t(i))}var Gf=[];function di(i){Gf.push(i)}function Vf(i){Gf.forEach(t=>t(i))}var pi=class i extends se{constructor(){super(...arguments),this.name="Emitter"}on(t,e){return t.split(/\W+/).forEach(n=>{Xt(this._events)&&(this._events={}),this._events.hasOwnProperty(n)||(this._events[n]=[]),this._events[n].push(e)}),this}once(t,e){let r=(...n)=>{e(...n),this.off(t,r)};return this.on(t,r),this}off(t,e){return t.split(/\W+/).forEach(n=>{if(Xt(this._events)&&(this._events={}),this._events.hasOwnProperty(n))if(Xt(e))this._events[n]=[];else{let o=this._events[n];for(let s=o.length-1;s>=0;s--)o[s]===e&&o.splice(s,1)}}),this}emit(t,...e){if(this._events&&this._events.hasOwnProperty(t)){let r=this._events[t].slice(0);for(let n=0,o=r.length;n<o;n++)r[n].apply(this,e)}return this}static mixin(t){["on","once","off","emit"].forEach(e=>{let r=Object.getOwnPropertyDescriptor(i.prototype,e);Object.defineProperty(t.prototype,e,r)})}dispose(){return super.dispose(),this._events=void 0,this}};var Nn=class extends pi{constructor(){super(...arguments),this.isOffline=!1}toJSON(){return{}}};var Fi=class i extends Nn{constructor(){var t,e;super(),this.name="Context",this._constants=new Map,this._timeouts=new te,this._timeoutIds=0,this._initialized=!1,this._closeStarted=!1,this.isOffline=!1,this._workletPromise=null;let r=I(i.getDefaults(),arguments,["context"]);r.context?(this._context=r.context,this._latencyHint=((t=arguments[0])===null||t===void 0?void 0:t.latencyHint)||""):(this._context=Mf({latencyHint:r.latencyHint}),this._latencyHint=r.latencyHint),this._ticker=new xa(this.emit.bind(this,"tick"),r.clockSource,r.updateInterval,this._context.sampleRate),this.on("tick",this._timeoutLoop.bind(this)),this._context.onstatechange=()=>{this.emit("statechange",this.state)},this[!((e=arguments[0])===null||e===void 0)&&e.hasOwnProperty("updateInterval")?"_lookAhead":"lookAhead"]=r.lookAhead}static getDefaults(){return{clockSource:"worker",latencyHint:"interactive",lookAhead:.1,updateInterval:.05}}initialize(){return this._initialized||(Bf(this),this._initialized=!0),this}createAnalyser(){return this._context.createAnalyser()}createOscillator(){return this._context.createOscillator()}createBufferSource(){return this._context.createBufferSource()}createBiquadFilter(){return this._context.createBiquadFilter()}createBuffer(t,e,r){return this._context.createBuffer(t,e,r)}createChannelMerger(t){return this._context.createChannelMerger(t)}createChannelSplitter(t){return this._context.createChannelSplitter(t)}createConstantSource(){return this._context.createConstantSource()}createConvolver(){return this._context.createConvolver()}createDelay(t){return this._context.createDelay(t)}createDynamicsCompressor(){return this._context.createDynamicsCompressor()}createGain(){return this._context.createGain()}createIIRFilter(t,e){return this._context.createIIRFilter(t,e)}createPanner(){return this._context.createPanner()}createPeriodicWave(t,e,r){return this._context.createPeriodicWave(t,e,r)}createStereoPanner(){return this._context.createStereoPanner()}createWaveShaper(){return this._context.createWaveShaper()}createMediaStreamSource(t){return Y(hi(this._context),"Not available if OfflineAudioContext"),this._context.createMediaStreamSource(t)}createMediaElementSource(t){return Y(hi(this._context),"Not available if OfflineAudioContext"),this._context.createMediaElementSource(t)}createMediaStreamDestination(){return Y(hi(this._context),"Not available if OfflineAudioContext"),this._context.createMediaStreamDestination()}decodeAudioData(t){return this._context.decodeAudioData(t)}get currentTime(){return this._context.currentTime}get state(){return this._context.state}get sampleRate(){return this._context.sampleRate}get listener(){return this.initialize(),this._listener}set listener(t){Y(!this._initialized,"The listener cannot be set after initialization."),this._listener=t}get transport(){return this.initialize(),this._transport}set transport(t){Y(!this._initialized,"The transport cannot be set after initialization."),this._transport=t}get draw(){return this.initialize(),this._draw}set draw(t){Y(!this._initialized,"Draw cannot be set after initialization."),this._draw=t}get destination(){return this.initialize(),this._destination}set destination(t){Y(!this._initialized,"The destination cannot be set after initialization."),this._destination=t}createAudioWorkletNode(t,e){return kf(this.rawContext,t,e)}addAudioWorkletModule(t){return yt(this,void 0,void 0,function*(){Y(it(this.rawContext.audioWorklet),"AudioWorkletNode is only available in a secure context (https or localhost)"),this._workletPromise||(this._workletPromise=this.rawContext.audioWorklet.addModule(t)),yield this._workletPromise})}workletsAreReady(){return yt(this,void 0,void 0,function*(){(yield this._workletPromise)?this._workletPromise:Promise.resolve()})}get updateInterval(){return this._ticker.updateInterval}set updateInterval(t){this._ticker.updateInterval=t}get clockSource(){return this._ticker.type}set clockSource(t){this._ticker.type=t}get lookAhead(){return this._lookAhead}set lookAhead(t){this._lookAhead=t,this.updateInterval=t?t/2:.01}get latencyHint(){return this._latencyHint}get rawContext(){return this._context}now(){return this._context.currentTime+this._lookAhead}immediate(){return this._context.currentTime}resume(){return hi(this._context)?this._context.resume():Promise.resolve()}close(){return yt(this,void 0,void 0,function*(){hi(this._context)&&this.state!=="closed"&&!this._closeStarted&&(this._closeStarted=!0,yield this._context.close()),this._initialized&&Vf(this)})}getConstant(t){if(this._constants.has(t))return this._constants.get(t);{let e=this._context.createBuffer(1,128,this._context.sampleRate),r=e.getChannelData(0);for(let o=0;o<r.length;o++)r[o]=t;let n=this._context.createBufferSource();return n.channelCount=1,n.channelCountMode="explicit",n.buffer=e,n.loop=!0,n.start(0),this._constants.set(t,n),n}}dispose(){return super.dispose(),this._ticker.dispose(),this._timeouts.dispose(),Object.keys(this._constants).map(t=>this._constants[t].disconnect()),this.close(),this}_timeoutLoop(){let t=this.now();this._timeouts.forEachBefore(t,e=>{e.callback(),this._timeouts.remove(e)})}setTimeout(t,e){this._timeoutIds++;let r=this.now();return this._timeouts.add({callback:t,id:this._timeoutIds,time:r+e}),this._timeoutIds}clearTimeout(t){return this._timeouts.forEach(e=>{e.id===t&&this._timeouts.remove(e)}),this}clearInterval(t){return this.clearTimeout(t)}setInterval(t,e){let r=++this._timeoutIds,n=()=>{let o=this.now();this._timeouts.add({callback:()=>{t(),n()},id:r,time:o+e})};return n(),r}};var Aa=class extends Nn{constructor(){super(...arguments),this.lookAhead=0,this.latencyHint=0,this.isOffline=!1}createAnalyser(){return{}}createOscillator(){return{}}createBufferSource(){return{}}createBiquadFilter(){return{}}createBuffer(t,e,r){return{}}createChannelMerger(t){return{}}createChannelSplitter(t){return{}}createConstantSource(){return{}}createConvolver(){return{}}createDelay(t){return{}}createDynamicsCompressor(){return{}}createGain(){return{}}createIIRFilter(t,e){return{}}createPanner(){return{}}createPeriodicWave(t,e,r){return{}}createStereoPanner(){return{}}createWaveShaper(){return{}}createMediaStreamSource(t){return{}}createMediaElementSource(t){return{}}createMediaStreamDestination(){return{}}decodeAudioData(t){return Promise.resolve({})}createAudioWorkletNode(t,e){return{}}get rawContext(){return{}}addAudioWorkletModule(t){return yt(this,void 0,void 0,function*(){return Promise.resolve()})}resume(){return Promise.resolve()}setTimeout(t,e){return 0}clearTimeout(t){return this}setInterval(t,e){return 0}clearInterval(t){return this}getConstant(t){return{}}get currentTime(){return 0}get state(){return{}}get sampleRate(){return 0}get listener(){return{}}get transport(){return{}}get draw(){return{}}set draw(t){}get destination(){return{}}set destination(t){}now(){return 0}immediate(){return 0}};function z(i,t){Vt(t)?t.forEach(e=>z(i,e)):Object.defineProperty(i,t,{enumerable:!0,writable:!1})}function Bi(i,t){Vt(t)?t.forEach(e=>Bi(i,e)):Object.defineProperty(i,t,{writable:!0})}var ot=()=>{};var Yt=class i extends se{constructor(){super(),this.name="ToneAudioBuffer",this.onload=ot;let t=I(i.getDefaults(),arguments,["url","onload","onerror"]);this.reverse=t.reverse,this.onload=t.onload,fe(t.url)?this.load(t.url).catch(t.onerror):t.url&&this.set(t.url)}static getDefaults(){return{onerror:ot,onload:ot,reverse:!1}}get sampleRate(){return this._buffer?this._buffer.sampleRate:Qt().sampleRate}set(t){return t instanceof i?t.loaded?this._buffer=t.get():t.onload=()=>{this.set(t),this.onload(this)}:this._buffer=t,this._reversed&&this._reverse(),this}get(){return this._buffer}load(t){return yt(this,void 0,void 0,function*(){let e=i.load(t).then(r=>{this.set(r),this.onload(this)});i.downloads.push(e);try{yield e}finally{let r=i.downloads.indexOf(e);i.downloads.splice(r,1)}return this})}dispose(){return super.dispose(),this._buffer=void 0,this}fromArray(t){let e=Vt(t)&&t[0].length>0,r=e?t.length:1,n=e?t[0].length:t.length,o=Qt(),s=o.createBuffer(r,n,o.sampleRate),a=!e&&r===1?[t]:t;for(let c=0;c<r;c++)s.copyToChannel(a[c],c);return this._buffer=s,this}toMono(t){if(le(t))this.fromArray(this.toArray(t));else{let e=new Float32Array(this.length),r=this.numberOfChannels;for(let n=0;n<r;n++){let o=this.toArray(n);for(let s=0;s<o.length;s++)e[s]+=o[s]}e=e.map(n=>n/r),this.fromArray(e)}return this}toArray(t){if(le(t))return this.getChannelData(t);if(this.numberOfChannels===1)return this.toArray(0);{let e=[];for(let r=0;r<this.numberOfChannels;r++)e[r]=this.getChannelData(r);return e}}getChannelData(t){return this._buffer?this._buffer.getChannelData(t):new Float32Array(0)}slice(t,e=this.duration){Y(this.loaded,"Buffer is not loaded");let r=Math.floor(t*this.sampleRate),n=Math.floor(e*this.sampleRate);Y(r<n,"The start time must be less than the end time");let o=n-r,s=Qt().createBuffer(this.numberOfChannels,o,this.sampleRate);for(let a=0;a<this.numberOfChannels;a++)s.copyToChannel(this.getChannelData(a).subarray(r,n),a);return new i(s)}_reverse(){if(this.loaded)for(let t=0;t<this.numberOfChannels;t++)this.getChannelData(t).reverse();return this}get loaded(){return this.length>0}get duration(){return this._buffer?this._buffer.duration:0}get length(){return this._buffer?this._buffer.length:0}get numberOfChannels(){return this._buffer?this._buffer.numberOfChannels:0}get reverse(){return this._reversed}set reverse(t){this._reversed!==t&&(this._reversed=t,this._reverse())}static fromArray(t){return new i().fromArray(t)}static fromUrl(t){return yt(this,void 0,void 0,function*(){return yield new i().load(t)})}static load(t){return yt(this,void 0,void 0,function*(){let e=i.baseUrl===""||i.baseUrl.endsWith("/")?i.baseUrl:i.baseUrl+"/",r=yield fetch(e+t);if(!r.ok)throw new Error(`could not load url: ${t}`);let n=yield r.arrayBuffer();return yield Qt().decodeAudioData(n)})}static supportsType(t){let e=t.split("."),r=e[e.length-1];return document.createElement("audio").canPlayType("audio/"+r)!==""}static loaded(){return yt(this,void 0,void 0,function*(){for(yield Promise.resolve();i.downloads.length;)yield i.downloads[0]})}};Yt.baseUrl="";Yt.downloads=[];var pr=class extends Fi{constructor(){super({clockSource:"offline",context:Tn(arguments[0])?arguments[0]:Ef(arguments[0],arguments[1]*arguments[2],arguments[2]),lookAhead:0,updateInterval:Tn(arguments[0])?128/arguments[0].sampleRate:128/arguments[2]}),this.name="OfflineContext",this._currentTime=0,this.isOffline=!0,this._duration=Tn(arguments[0])?arguments[0].length/arguments[0].sampleRate:arguments[1]}now(){return this._currentTime}get currentTime(){return this._currentTime}_renderClock(t){return yt(this,void 0,void 0,function*(){let e=0;for(;this._duration-this._currentTime>=0;){this.emit("tick"),this._currentTime+=128/this.sampleRate,e++;let r=Math.floor(this.sampleRate/128);t&&e%r===0&&(yield new Promise(n=>setTimeout(n,1)))}})}render(){return yt(this,arguments,void 0,function*(t=!0){yield this.workletsAreReady(),yield this._renderClock(t);let e=yield this._context.startRendering();return new Yt(e)})}close(){return Promise.resolve()}};var qf=new Aa,On=qf;function Qt(){return On===qf&&Df&&uh(new Fi),On}function uh(i,t=!1){t&&On.dispose(),hi(i)?On=new Fi(i):Tn(i)?On=new pr(i):On=i}if(ge&&!ge.TONE_SILENCE_LOGGING){let i="v";mo==="dev"&&(i="");let t=` * Tone.js ${i}${mo} * `;console.log(`%c${t}`,"background: #000; color: #fff")}function Rn(i){return Math.pow(10,i/20)}function Mn(i){return 20*(Math.log(i)/Math.LN10)}function Gi(i){return Math.pow(2,i/12)}var Ca=440;function Wf(){return Ca}function Uf(i){Ca=i}function mr(i){return Math.round(hh(i))}function hh(i){return 69+12*Math.log2(i/Ca)}function No(i){return Ca*Math.pow(2,(i-69)/12)}var _a=class i extends se{constructor(t,e,r){super(),this.defaultUnits="s",this._val=e,this._units=r,this.context=t,this._expressions=this._getExpressions()}_getExpressions(){return{hz:{method:t=>this._frequencyToUnits(parseFloat(t)),regexp:/^(\d+(?:\.\d+)?)hz$/i},i:{method:t=>this._ticksToUnits(parseInt(t,10)),regexp:/^(\d+)i$/i},m:{method:t=>this._beatsToUnits(parseInt(t,10)*this._getTimeSignature()),regexp:/^(\d+)m$/i},n:{method:(t,e)=>{let r=parseInt(t,10),n=e==="."?1.5:1;return r===1?this._beatsToUnits(this._getTimeSignature())*n:this._beatsToUnits(4/r)*n},regexp:/^(\d+)n(\.?)$/i},number:{method:t=>this._expressions[this.defaultUnits].method.call(this,t),regexp:/^(\d+(?:\.\d+)?)$/},s:{method:t=>this._secondsToUnits(parseFloat(t)),regexp:/^(\d+(?:\.\d+)?)s$/},samples:{method:t=>parseInt(t,10)/this.context.sampleRate,regexp:/^(\d+)samples$/},t:{method:t=>{let e=parseInt(t,10);return this._beatsToUnits(8/(Math.floor(e)*3))},regexp:/^(\d+)t$/i},tr:{method:(t,e,r)=>{let n=0;return t&&t!=="0"&&(n+=this._beatsToUnits(this._getTimeSignature()*parseFloat(t))),e&&e!=="0"&&(n+=this._beatsToUnits(parseFloat(e))),r&&r!=="0"&&(n+=this._beatsToUnits(parseFloat(r)/4)),n},regexp:/^(\d+(?:\.\d+)?):(\d+(?:\.\d+)?):?(\d+(?:\.\d+)?)?$/}}}valueOf(){if(this._val instanceof i&&this.fromType(this._val),Xt(this._val))return this._noArg();if(fe(this._val)&&Xt(this._units)){for(let t in this._expressions)if(this._expressions[t].regexp.test(this._val.trim())){this._units=t;break}}else if(hr(this._val)){let t=0;for(let e in this._val)if(it(this._val[e])){let r=this._val[e],n=new this.constructor(this.context,e).valueOf()*r;t+=n}return t}if(it(this._units)){let t=this._expressions[this._units],e=this._val.toString().trim().match(t.regexp);return e?t.method.apply(this,e.slice(1)):t.method.call(this,this._val)}else return fe(this._val)?parseFloat(this._val):this._val}_frequencyToUnits(t){return 1/t}_beatsToUnits(t){return 60/this._getBpm()*t}_secondsToUnits(t){return t}_ticksToUnits(t){return t*this._beatsToUnits(1)/this._getPPQ()}_noArg(){return this._now()}_getBpm(){return this.context.transport.bpm.value}_getTimeSignature(){return this.context.transport.timeSignature}_getPPQ(){return this.context.transport.PPQ}fromType(t){switch(this._units=void 0,this.defaultUnits){case"s":this._val=t.toSeconds();break;case"i":this._val=t.toTicks();break;case"hz":this._val=t.toFrequency();break;case"midi":this._val=t.toMidi();break}return this}toFrequency(){return 1/this.toSeconds()}toSamples(){return this.toSeconds()*this.context.sampleRate}toMilliseconds(){return this.toSeconds()*1e3}};var Fe=class i extends _a{constructor(){super(...arguments),this.name="TimeClass"}_getExpressions(){return Object.assign(super._getExpressions(),{now:{method:t=>this._now()+new this.constructor(this.context,t).valueOf(),regexp:/^\+(.+)/},quantize:{method:t=>{let e=new i(this.context,t).valueOf();return this._secondsToUnits(this.context.transport.nextSubdivision(e))},regexp:/^@(.+)/}})}quantize(t,e=1){let r=new this.constructor(this.context,t).valueOf(),n=this.valueOf(),a=Math.round(n/r)*r-n;return n+a*e}toNotation(){let t=this.toSeconds(),e=["1m"];for(let o=1;o<9;o++){let s=Math.pow(2,o);e.push(s+"n."),e.push(s+"n"),e.push(s+"t")}e.push("0");let r=e[0],n=new i(this.context,e[0]).toSeconds();return e.forEach(o=>{let s=new i(this.context,o).toSeconds();Math.abs(s-t)<Math.abs(n-t)&&(r=o,n=s)}),r}toBarsBeatsSixteenths(){let t=this._beatsToUnits(1),e=this.valueOf()/t;e=parseFloat(e.toFixed(4));let r=Math.floor(e/this._getTimeSignature()),n=e%1*4;e=Math.floor(e)%this._getTimeSignature();let o=n.toString();return o.length>3&&(n=parseFloat(parseFloat(o).toFixed(3))),[r,e,n].join(":")}toTicks(){let t=this._beatsToUnits(1);return this.valueOf()/t*this._getPPQ()}toSeconds(){return this.valueOf()}toMidi(){return mr(this.toFrequency())}_now(){return this.context.now()}};var _e=class i extends Fe{constructor(){super(...arguments),this.name="Frequency",this.defaultUnits="hz"}static get A4(){return Wf()}static set A4(t){Uf(t)}_getExpressions(){return Object.assign({},super._getExpressions(),{midi:{regexp:/^(\d+(?:\.\d+)?midi)/,method(t){return this.defaultUnits==="midi"?t:i.mtof(t)}},note:{regexp:/^([a-g]{1}(?:b|#|##|x|bb|###|#x|x#|bbb)?)(-?[0-9]+)/i,method(t,e){let n=nv[t.toLowerCase()]+(parseInt(e,10)+1)*12;return this.defaultUnits==="midi"?n:i.mtof(n)}},tr:{regexp:/^(\d+(?:\.\d+)?):(\d+(?:\.\d+)?):?(\d+(?:\.\d+)?)?/,method(t,e,r){let n=1;return t&&t!=="0"&&(n*=this._beatsToUnits(this._getTimeSignature()*parseFloat(t))),e&&e!=="0"&&(n*=this._beatsToUnits(parseFloat(e))),r&&r!=="0"&&(n*=this._beatsToUnits(parseFloat(r)/4)),n}}})}transpose(t){return new i(this.context,this.valueOf()*Gi(t))}harmonize(t){return t.map(e=>this.transpose(e))}toMidi(){return mr(this.valueOf())}toNote(){let t=this.toFrequency(),e=Math.log2(t/i.A4),r=Math.round(12*e)+57,n=Math.floor(r/12);return n<0&&(r+=-12*n),ov[r%12]+n.toString()}toSeconds(){return 1/super.toSeconds()}toTicks(){let t=this._beatsToUnits(1),e=this.valueOf()/t;return Math.floor(e*this._getPPQ())}_noArg(){return 0}_frequencyToUnits(t){return t}_ticksToUnits(t){return 1/(t*60/(this._getBpm()*this._getPPQ()))}_beatsToUnits(t){return 1/super._beatsToUnits(t)}_secondsToUnits(t){return 1/t}static mtof(t){return No(t)}static ftom(t){return mr(t)}},nv={cbbb:-3,cbb:-2,cb:-1,c:0,"c#":1,cx:2,"c##":2,"c###":3,"cx#":3,"c#x":3,dbbb:-1,dbb:0,db:1,d:2,"d#":3,dx:4,"d##":4,"d###":5,"dx#":5,"d#x":5,ebbb:1,ebb:2,eb:3,e:4,"e#":5,ex:6,"e##":6,"e###":7,"ex#":7,"e#x":7,fbbb:2,fbb:3,fb:4,f:5,"f#":6,fx:7,"f##":7,"f###":8,"fx#":8,"f#x":8,gbbb:4,gbb:5,gb:6,g:7,"g#":8,gx:9,"g##":9,"g###":10,"gx#":10,"g#x":10,abbb:6,abb:7,ab:8,a:9,"a#":10,ax:11,"a##":11,"a###":12,"ax#":12,"a#x":12,bbbb:8,bbb:9,bb:10,b:11,"b#":12,bx:13,"b##":13,"b###":14,"bx#":14,"b#x":14},ov=["C","C#","D","D#","E","F","F#","G","G#","A","A#","B"];var Xe=class extends Fe{constructor(){super(...arguments),this.name="TransportTime"}_now(){return this.context.transport.seconds}};var ee=class i extends se{constructor(){super();let t=I(i.getDefaults(),arguments,["context"]);this.defaultContext?this.context=this.defaultContext:this.context=t.context}static getDefaults(){return{context:Qt()}}now(){return this.context.currentTime+this.context.lookAhead}immediate(){return this.context.currentTime}get sampleTime(){return 1/this.context.sampleRate}get blockTime(){return 128/this.context.sampleRate}toSeconds(t){return Nf(t),new Fe(this.context,t).toSeconds()}toFrequency(t){return new _e(this.context,t).toFrequency()}toTicks(t){return new Xe(this.context,t).toTicks()}_getPartialProperties(t){let e=this.get();return Object.keys(e).forEach(r=>{Xt(t[r])&&delete e[r]}),e}get(){let t=Pf(this);return Object.keys(t).forEach(e=>{if(Reflect.has(this,e)){let r=this[e];it(r)&&it(r.value)&&it(r.setValueAtTime)?t[e]=r.value:r instanceof i?t[e]=r._getPartialProperties(t[e]):Vt(r)||le(r)||fe(r)||sh(r)?t[e]=r:delete t[e]}}),t}set(t){return Object.keys(t).forEach(e=>{Reflect.has(this,e)&&it(this[e])&&(this[e]&&it(this[e].value)&&it(this[e].setValueAtTime)?this[e].value!==t[e]&&(this[e].value=t[e]):this[e]instanceof i?this[e].set(t[e]):this[e]=t[e])}),this}};var Mr=class extends te{constructor(t="stopped"){super(),this.name="StateTimeline",this._initial=t,this.setStateAtTime(this._initial,0)}getValueAtTime(t){let e=this.get(t);return e!==null?e.state:this._initial}setStateAtTime(t,e,r){return zt(e,0),this.add(Object.assign({},r,{state:t,time:e})),this}getLastState(t,e){let r=this._search(e);for(let n=r;n>=0;n--){let o=this._timeline[n];if(o.state===t)return o}}getNextState(t,e){let r=this._search(e);if(r!==-1)for(let n=r;n<this._timeline.length;n++){let o=this._timeline[n];if(o.state===t)return o}}};var ht=class i extends ee{constructor(){let t=I(i.getDefaults(),arguments,["param","units","convert"]);for(super(t),this.name="Param",this.overridden=!1,this._minOutput=1e-7,Y(it(t.param)&&(lr(t.param)||t.param instanceof i),"param must be an AudioParam");!lr(t.param);)t.param=t.param._param;this._swappable=it(t.swappable)?t.swappable:!1,this._swappable?(this.input=this.context.createGain(),this._param=t.param,this.input.connect(this._param)):this._param=this.input=t.param,this._events=new te(1e3),this._initialValue=this._param.defaultValue,this.units=t.units,this.convert=t.convert,this._minValue=t.minValue,this._maxValue=t.maxValue,it(t.value)&&t.value!==this._toType(this._initialValue)&&this.setValueAtTime(t.value,0)}static getDefaults(){return Object.assign(ee.getDefaults(),{convert:!0,units:"number"})}get value(){let t=this.now();return this.getValueAtTime(t)}set value(t){this.cancelScheduledValues(this.now()),this.setValueAtTime(t,this.now())}get minValue(){return it(this._minValue)?this._minValue:this.units==="time"||this.units==="frequency"||this.units==="normalRange"||this.units==="positive"||this.units==="transportTime"||this.units==="ticks"||this.units==="bpm"||this.units==="hertz"||this.units==="samples"?0:this.units==="audioRange"?-1:this.units==="decibels"?-1/0:this._param.minValue}get maxValue(){return it(this._maxValue)?this._maxValue:this.units==="normalRange"||this.units==="audioRange"?1:this._param.maxValue}_is(t,e){return this.units===e}_assertRange(t){return it(this.maxValue)&&it(this.minValue)&&zt(t,this._fromType(this.minValue),this._fromType(this.maxValue)),t}_fromType(t){return this.convert&&!this.overridden?this._is(t,"time")?this.toSeconds(t):this._is(t,"decibels")?Rn(t):this._is(t,"frequency")?this.toFrequency(t):t:this.overridden?0:t}_toType(t){return this.convert&&this.units==="decibels"?Mn(t):t}setValueAtTime(t,e){let r=this.toSeconds(e),n=this._fromType(t);return Y(isFinite(n)&&isFinite(r),`Invalid argument(s) to setValueAtTime: ${JSON.stringify(t)}, ${JSON.stringify(e)}`),this._assertRange(n),this.log(this.units,"setValueAtTime",t,r),this._events.add({time:r,type:"setValueAtTime",value:n}),this._param.setValueAtTime(n,r),this}getValueAtTime(t){let e=Math.max(this.toSeconds(t),0),r=this._events.getAfter(e),n=this._events.get(e),o=this._initialValue;if(n===null)o=this._initialValue;else if(n.type==="setTargetAtTime"&&(r===null||r.type==="setValueAtTime")){let s=this._events.getBefore(n.time),a;s===null?a=this._initialValue:a=s.value,n.type==="setTargetAtTime"&&(o=this._exponentialApproach(n.time,a,n.value,n.constant,e))}else if(r===null)o=n.value;else if(r.type==="linearRampToValueAtTime"||r.type==="exponentialRampToValueAtTime"){let s=n.value;if(n.type==="setTargetAtTime"){let a=this._events.getBefore(n.time);a===null?s=this._initialValue:s=a.value}r.type==="linearRampToValueAtTime"?o=this._linearInterpolate(n.time,s,r.time,r.value,e):o=this._exponentialInterpolate(n.time,s,r.time,r.value,e)}else o=n.value;return this._toType(o)}setRampPoint(t){t=this.toSeconds(t);let e=this.getValueAtTime(t);return this.cancelAndHoldAtTime(t),this._fromType(e)===0&&(e=this._toType(this._minOutput)),this.setValueAtTime(e,t),this}linearRampToValueAtTime(t,e){let r=this._fromType(t),n=this.toSeconds(e);return Y(isFinite(r)&&isFinite(n),`Invalid argument(s) to linearRampToValueAtTime: ${JSON.stringify(t)}, ${JSON.stringify(e)}`),this._assertRange(r),this._events.add({time:n,type:"linearRampToValueAtTime",value:r}),this.log(this.units,"linearRampToValueAtTime",t,n),this._param.linearRampToValueAtTime(r,n),this}exponentialRampToValueAtTime(t,e){let r=this._fromType(t);r=Ce(r,0)?this._minOutput:r,this._assertRange(r);let n=this.toSeconds(e);return Y(isFinite(r)&&isFinite(n),`Invalid argument(s) to exponentialRampToValueAtTime: ${JSON.stringify(t)}, ${JSON.stringify(e)}`),this._events.add({time:n,type:"exponentialRampToValueAtTime",value:r}),this.log(this.units,"exponentialRampToValueAtTime",t,n),this._param.exponentialRampToValueAtTime(r,n),this}exponentialRampTo(t,e,r){return r=this.toSeconds(r),this.setRampPoint(r),this.exponentialRampToValueAtTime(t,r+this.toSeconds(e)),this}linearRampTo(t,e,r){return r=this.toSeconds(r),this.setRampPoint(r),this.linearRampToValueAtTime(t,r+this.toSeconds(e)),this}targetRampTo(t,e,r){return r=this.toSeconds(r),this.setRampPoint(r),this.exponentialApproachValueAtTime(t,r,e),this}exponentialApproachValueAtTime(t,e,r){e=this.toSeconds(e),r=this.toSeconds(r);let n=Math.log(r+1)/Math.log(200);return this.setTargetAtTime(t,e,n),this.cancelAndHoldAtTime(e+r*.9),this.linearRampToValueAtTime(t,e+r),this}setTargetAtTime(t,e,r){let n=this._fromType(t);Y(isFinite(r)&&r>0,"timeConstant must be a number greater than 0");let o=this.toSeconds(e);return this._assertRange(n),Y(isFinite(n)&&isFinite(o),`Invalid argument(s) to setTargetAtTime: ${JSON.stringify(t)}, ${JSON.stringify(e)}`),this._events.add({constant:r,time:o,type:"setTargetAtTime",value:n}),this.log(this.units,"setTargetAtTime",t,o,r),this._param.setTargetAtTime(n,o,r),this}setValueCurveAtTime(t,e,r,n=1){r=this.toSeconds(r),e=this.toSeconds(e);let o=this._fromType(t[0])*n;this.setValueAtTime(this._toType(o),e);let s=r/(t.length-1);for(let a=1;a<t.length;a++){let c=this._fromType(t[a])*n;this.linearRampToValueAtTime(this._toType(c),e+a*s)}return this}cancelScheduledValues(t){let e=this.toSeconds(t);return Y(isFinite(e),`Invalid argument to cancelScheduledValues: ${JSON.stringify(t)}`),this._events.cancel(e),this._param.cancelScheduledValues(e),this.log(this.units,"cancelScheduledValues",e),this}cancelAndHoldAtTime(t){let e=this.toSeconds(t),r=this._fromType(this.getValueAtTime(e));Y(isFinite(e),`Invalid argument to cancelAndHoldAtTime: ${JSON.stringify(t)}`),this.log(this.units,"cancelAndHoldAtTime",e,"value="+r);let n=this._events.get(e),o=this._events.getAfter(e);return n&&Ce(n.time,e)?o?(this._param.cancelScheduledValues(o.time),this._events.cancel(o.time)):(this._param.cancelAndHoldAtTime(e),this._events.cancel(e+this.sampleTime)):o&&(this._param.cancelScheduledValues(o.time),this._events.cancel(o.time),o.type==="linearRampToValueAtTime"?this.linearRampToValueAtTime(this._toType(r),e):o.type==="exponentialRampToValueAtTime"&&this.exponentialRampToValueAtTime(this._toType(r),e)),this._events.add({time:e,type:"setValueAtTime",value:r}),this._param.setValueAtTime(r,e),this}rampTo(t,e=.1,r){return this.units==="frequency"||this.units==="bpm"||this.units==="decibels"?this.exponentialRampTo(t,e,r):this.linearRampTo(t,e,r),this}apply(t){let e=this.context.currentTime;t.setValueAtTime(this.getValueAtTime(e),e);let r=this._events.get(e);if(r&&r.type==="setTargetAtTime"){let n=this._events.getAfter(r.time),o=n?n.time:e+2,s=(o-e)/10;for(let a=e;a<o;a+=s)t.linearRampToValueAtTime(this.getValueAtTime(a),a)}return this._events.forEachAfter(this.context.currentTime,n=>{n.type==="cancelScheduledValues"?t.cancelScheduledValues(n.time):n.type==="setTargetAtTime"?t.setTargetAtTime(n.value,n.time,n.constant):t[n.type](n.value,n.time)}),this}setParam(t){Y(this._swappable,"The Param must be assigned as 'swappable' in the constructor");let e=this.input;return e.disconnect(this._param),this.apply(t),this._param=t,e.connect(this._param),this}dispose(){return super.dispose(),this._events.dispose(),this}get defaultValue(){return this._toType(this._param.defaultValue)}_exponentialApproach(t,e,r,n,o){return r+(e-r)*Math.exp(-(o-t)/n)}_linearInterpolate(t,e,r,n,o){return e+(n-e)*((o-t)/(r-t))}_exponentialInterpolate(t,e,r,n,o){return e*Math.pow(n/e,(o-t)/(r-t))}};var P=class i extends ee{constructor(){super(...arguments),this._internalChannels=[]}get numberOfInputs(){return it(this.input)?lr(this.input)||this.input instanceof ht?1:this.input.numberOfInputs:0}get numberOfOutputs(){return it(this.output)?this.output.numberOfOutputs:0}_isAudioNode(t){return it(t)&&(t instanceof i||Rr(t))}_getInternalNodes(){let t=this._internalChannels.slice(0);return this._isAudioNode(this.input)&&t.push(this.input),this._isAudioNode(this.output)&&this.input!==this.output&&t.push(this.output),t}_setChannelProperties(t){this._getInternalNodes().forEach(r=>{r.channelCount=t.channelCount,r.channelCountMode=t.channelCountMode,r.channelInterpretation=t.channelInterpretation})}_getChannelProperties(){let t=this._getInternalNodes();Y(t.length>0,"ToneAudioNode does not have any internal nodes");let e=t[0];return{channelCount:e.channelCount,channelCountMode:e.channelCountMode,channelInterpretation:e.channelInterpretation}}get channelCount(){return this._getChannelProperties().channelCount}set channelCount(t){let e=this._getChannelProperties();this._setChannelProperties(Object.assign(e,{channelCount:t}))}get channelCountMode(){return this._getChannelProperties().channelCountMode}set channelCountMode(t){let e=this._getChannelProperties();this._setChannelProperties(Object.assign(e,{channelCountMode:t}))}get channelInterpretation(){return this._getChannelProperties().channelInterpretation}set channelInterpretation(t){let e=this._getChannelProperties();this._setChannelProperties(Object.assign(e,{channelInterpretation:t}))}connect(t,e=0,r=0){return de(this,t,e,r),this}toDestination(){return this.connect(this.context.destination),this}toMaster(){return ji("toMaster() has been renamed toDestination()"),this.toDestination()}disconnect(t,e=0,r=0){return zf(this,t,e,r),this}chain(...t){return Qe(this,...t),this}fan(...t){return t.forEach(e=>this.connect(e)),this}dispose(){return super.dispose(),it(this.input)&&(this.input instanceof i?this.input.dispose():Rr(this.input)&&this.input.disconnect()),it(this.output)&&(this.output instanceof i?this.output.dispose():Rr(this.output)&&this.output.disconnect()),this._internalChannels=[],this}};function Qe(...i){let t=i.shift();i.reduce((e,r)=>(e instanceof P?e.connect(r):Rr(e)&&de(e,r),r),t)}function de(i,t,e=0,r=0){for(Y(it(i),"Cannot connect from undefined node"),Y(it(t),"Cannot connect to undefined node"),(t instanceof P||Rr(t))&&Y(t.numberOfInputs>0,"Cannot connect to node with no inputs"),Y(i.numberOfOutputs>0,"Cannot connect from node with no outputs");t instanceof P||t instanceof ht;)it(t.input)&&(t=t.input);for(;i instanceof P;)it(i.output)&&(i=i.output);lr(t)?i.connect(t,e):i.connect(t,e,r)}function zf(i,t,e=0,r=0){if(it(t))for(;t instanceof P;)t=t.input;for(;!Rr(i);)it(i.output)&&(i=i.output);lr(t)?i.disconnect(t,e):Rr(t)?i.disconnect(t,e,r):i.disconnect()}var Z=class i extends P{constructor(){let t=I(i.getDefaults(),arguments,["gain","units"]);super(t),this.name="Gain",this._gainNode=this.context.createGain(),this.input=this._gainNode,this.output=this._gainNode,this.gain=new ht({context:this.context,convert:t.convert,param:this._gainNode.gain,units:t.units,value:t.gain,minValue:t.minValue,maxValue:t.maxValue}),z(this,"gain")}static getDefaults(){return Object.assign(P.getDefaults(),{convert:!0,gain:1,units:"gain"})}dispose(){return super.dispose(),this._gainNode.disconnect(),this.gain.dispose(),this}};var fr=class extends P{constructor(t){super(t),this.onended=ot,this._startTime=-1,this._stopTime=-1,this._timeout=-1,this.output=new Z({context:this.context,gain:0}),this._gainNode=this.output,this.getStateAtTime=function(e){let r=this.toSeconds(e);return this._startTime!==-1&&r>=this._startTime&&(this._stopTime===-1||r<=this._stopTime)?"started":"stopped"},this._fadeIn=t.fadeIn,this._fadeOut=t.fadeOut,this._curve=t.curve,this.onended=t.onended}static getDefaults(){return Object.assign(P.getDefaults(),{curve:"linear",fadeIn:0,fadeOut:0,onended:ot})}_startGain(t,e=1){Y(this._startTime===-1,"Source cannot be started more than once");let r=this.toSeconds(this._fadeIn);return this._startTime=t+r,this._startTime=Math.max(this._startTime,this.context.currentTime),r>0?(this._gainNode.gain.setValueAtTime(0,t),this._curve==="linear"?this._gainNode.gain.linearRampToValueAtTime(e,t+r):this._gainNode.gain.exponentialApproachValueAtTime(e,t,r)):this._gainNode.gain.setValueAtTime(e,t),this}stop(t){return this.log("stop",t),this._stopGain(this.toSeconds(t)),this}_stopGain(t){Y(this._startTime!==-1,"'start' must be called before 'stop'"),this.cancelStop();let e=this.toSeconds(this._fadeOut);return this._stopTime=this.toSeconds(t)+e,this._stopTime=Math.max(this._stopTime,this.now()),e>0?this._curve==="linear"?this._gainNode.gain.linearRampTo(0,e,t):this._gainNode.gain.targetRampTo(0,e,t):(this._gainNode.gain.cancelAndHoldAtTime(t),this._gainNode.gain.setValueAtTime(0,t)),this.context.clearTimeout(this._timeout),this._timeout=this.context.setTimeout(()=>{let r=this._curve==="exponential"?e*2:0;this._stopSource(this.now()+r),this._onended()},this._stopTime-this.context.currentTime),this}_onended(){if(this.onended!==ot&&(this.onended(this),this.onended=ot,!this.context.isOffline)){let t=()=>this.dispose();typeof requestIdleCallback!="undefined"?requestIdleCallback(t):setTimeout(t,10)}}get state(){return this.getStateAtTime(this.now())}cancelStop(){return this.log("cancelStop"),Y(this._startTime!==-1,"Source is not started"),this._gainNode.gain.cancelScheduledValues(this._startTime+this.sampleTime),this.context.clearTimeout(this._timeout),this._stopTime=-1,this}dispose(){return super.dispose(),this._gainNode.dispose(),this.onended=ot,this}};var Oo=class i extends fr{constructor(){let t=I(i.getDefaults(),arguments,["offset"]);super(t),this.name="ToneConstantSource",this._source=this.context.createConstantSource(),de(this._source,this._gainNode),this.offset=new ht({context:this.context,convert:t.convert,param:this._source.offset,units:t.units,value:t.offset,minValue:t.minValue,maxValue:t.maxValue})}static getDefaults(){return Object.assign(fr.getDefaults(),{convert:!0,offset:1,units:"number"})}start(t){let e=this.toSeconds(t);return this.log("start",e),this._startGain(e),this._source.start(e),this}_stopSource(t){this._source.stop(t)}dispose(){return super.dispose(),this.state==="started"&&this.stop(),this._source.disconnect(),this.offset.dispose(),this}};var rt=class i extends P{constructor(){let t=I(i.getDefaults(),arguments,["value","units"]);super(t),this.name="Signal",this.override=!0,this.output=this._constantSource=new Oo({context:this.context,convert:t.convert,offset:t.value,units:t.units,minValue:t.minValue,maxValue:t.maxValue}),this._constantSource.start(0),this.input=this._param=this._constantSource.offset}static getDefaults(){return Object.assign(P.getDefaults(),{convert:!0,units:"number",value:0})}connect(t,e=0,r=0){return En(this,t,e,r),this}dispose(){return super.dispose(),this._param.dispose(),this._constantSource.dispose(),this}setValueAtTime(t,e){return this._param.setValueAtTime(t,e),this}getValueAtTime(t){return this._param.getValueAtTime(t)}setRampPoint(t){return this._param.setRampPoint(t),this}linearRampToValueAtTime(t,e){return this._param.linearRampToValueAtTime(t,e),this}exponentialRampToValueAtTime(t,e){return this._param.exponentialRampToValueAtTime(t,e),this}exponentialRampTo(t,e,r){return this._param.exponentialRampTo(t,e,r),this}linearRampTo(t,e,r){return this._param.linearRampTo(t,e,r),this}targetRampTo(t,e,r){return this._param.targetRampTo(t,e,r),this}exponentialApproachValueAtTime(t,e,r){return this._param.exponentialApproachValueAtTime(t,e,r),this}setTargetAtTime(t,e,r){return this._param.setTargetAtTime(t,e,r),this}setValueCurveAtTime(t,e,r,n){return this._param.setValueCurveAtTime(t,e,r,n),this}cancelScheduledValues(t){return this._param.cancelScheduledValues(t),this}cancelAndHoldAtTime(t){return this._param.cancelAndHoldAtTime(t),this}rampTo(t,e,r){return this._param.rampTo(t,e,r),this}get value(){return this._param.value}set value(t){this._param.value=t}get convert(){return this._param.convert}set convert(t){this._param.convert=t}get units(){return this._param.units}get overridden(){return this._param.overridden}set overridden(t){this._param.overridden=t}get maxValue(){return this._param.maxValue}get minValue(){return this._param.minValue}apply(t){return this._param.apply(t),this}};function En(i,t,e,r){(t instanceof ht||lr(t)||t instanceof rt&&t.override)&&(t.cancelScheduledValues(0),t.setValueAtTime(0,0),t instanceof rt&&(t.overridden=!0)),de(i,t,e,r)}var va=class i extends ht{constructor(){let t=I(i.getDefaults(),arguments,["value"]);super(t),this.name="TickParam",this._events=new te(1/0),this._multiplier=1,this._multiplier=t.multiplier,this._events.cancel(0),this._events.add({ticks:0,time:0,type:"setValueAtTime",value:this._fromType(t.value)}),this.setValueAtTime(t.value,0)}static getDefaults(){return Object.assign(ht.getDefaults(),{multiplier:1,units:"hertz",value:1})}setTargetAtTime(t,e,r){e=this.toSeconds(e),this.setRampPoint(e);let n=this._fromType(t),o=this._events.get(e),s=Math.round(Math.max(1/r,1));for(let a=0;a<=s;a++){let c=r*a+e,u=this._exponentialApproach(o.time,o.value,n,r,c);this.linearRampToValueAtTime(this._toType(u),c)}return this}setValueAtTime(t,e){let r=this.toSeconds(e);super.setValueAtTime(t,e);let n=this._events.get(r),o=this._events.previousEvent(n),s=this._getTicksUntilEvent(o,r);return n.ticks=Math.max(s,0),this}linearRampToValueAtTime(t,e){let r=this.toSeconds(e);super.linearRampToValueAtTime(t,e);let n=this._events.get(r),o=this._events.previousEvent(n),s=this._getTicksUntilEvent(o,r);return n.ticks=Math.max(s,0),this}exponentialRampToValueAtTime(t,e){e=this.toSeconds(e);let r=this._fromType(t),n=this._events.get(e),o=Math.round(Math.max((e-n.time)*10,1)),s=(e-n.time)/o;for(let a=0;a<=o;a++){let c=s*a+n.time,u=this._exponentialInterpolate(n.time,n.value,e,r,c);this.linearRampToValueAtTime(this._toType(u),c)}return this}_getTicksUntilEvent(t,e){if(t===null)t={ticks:0,time:0,type:"setValueAtTime",value:0};else if(Xt(t.ticks)){let s=this._events.previousEvent(t);t.ticks=this._getTicksUntilEvent(s,t.time)}let r=this._fromType(this.getValueAtTime(t.time)),n=this._fromType(this.getValueAtTime(e)),o=this._events.get(e);return o&&o.time===e&&o.type==="setValueAtTime"&&(n=this._fromType(this.getValueAtTime(e-this.sampleTime))),.5*(e-t.time)*(r+n)+t.ticks}getTicksAtTime(t){let e=this.toSeconds(t),r=this._events.get(e);return Math.max(this._getTicksUntilEvent(r,e),0)}getDurationOfTicks(t,e){let r=this.toSeconds(e),n=this.getTicksAtTime(e);return this.getTimeOfTick(n+t)-r}getTimeOfTick(t){let e=this._events.get(t,"ticks"),r=this._events.getAfter(t,"ticks");if(e&&e.ticks===t)return e.time;if(e&&r&&r.type==="linearRampToValueAtTime"&&e.value!==r.value){let n=this._fromType(this.getValueAtTime(e.time)),s=(this._fromType(this.getValueAtTime(r.time))-n)/(r.time-e.time),a=Math.sqrt(Math.pow(n,2)-2*s*(e.ticks-t)),c=(-n+a)/s,u=(-n-a)/s;return(c>0?c:u)+e.time}else return e?e.value===0?1/0:e.time+(t-e.ticks)/e.value:t/this._initialValue}ticksToTime(t,e){return this.getDurationOfTicks(t,e)}timeToTicks(t,e){let r=this.toSeconds(e),n=this.toSeconds(t),o=this.getTicksAtTime(r);return this.getTicksAtTime(r+n)-o}_fromType(t){return this.units==="bpm"&&this.multiplier?1/(60/t/this.multiplier):super._fromType(t)}_toType(t){return this.units==="bpm"&&this.multiplier?t/this.multiplier*60:super._toType(t)}get multiplier(){return this._multiplier}set multiplier(t){let e=this.value;this._multiplier=t,this.cancelScheduledValues(0),this.setValueAtTime(e,0)}};var Sa=class i extends rt{constructor(){let t=I(i.getDefaults(),arguments,["value"]);super(t),this.name="TickSignal",this.input=this._param=new va({context:this.context,convert:t.convert,multiplier:t.multiplier,param:this._constantSource.offset,units:t.units,value:t.value})}static getDefaults(){return Object.assign(rt.getDefaults(),{multiplier:1,units:"hertz",value:1})}ticksToTime(t,e){return this._param.ticksToTime(t,e)}timeToTicks(t,e){return this._param.timeToTicks(t,e)}getTimeOfTick(t){return this._param.getTimeOfTick(t)}getDurationOfTicks(t,e){return this._param.getDurationOfTicks(t,e)}getTicksAtTime(t){return this._param.getTicksAtTime(t)}get multiplier(){return this._param.multiplier}set multiplier(t){this._param.multiplier=t}dispose(){return super.dispose(),this._param.dispose(),this}};var wa=class i extends ee{constructor(){let t=I(i.getDefaults(),arguments,["frequency"]);super(t),this.name="TickSource",this._state=new Mr,this._tickOffset=new te,this._ticksAtTime=new te,this._secondsAtTime=new te,this.frequency=new Sa({context:this.context,units:t.units,value:t.frequency}),z(this,"frequency"),this._state.setStateAtTime("stopped",0),this.setTicksAtTime(0,0)}static getDefaults(){return Object.assign({frequency:1,units:"hertz"},ee.getDefaults())}get state(){return this.getStateAtTime(this.now())}start(t,e){let r=this.toSeconds(t);return this._state.getValueAtTime(r)!=="started"&&(this._state.setStateAtTime("started",r),it(e)&&this.setTicksAtTime(e,r),this._ticksAtTime.cancel(r),this._secondsAtTime.cancel(r)),this}stop(t){let e=this.toSeconds(t);if(this._state.getValueAtTime(e)==="stopped"){let r=this._state.get(e);r&&r.time>0&&(this._tickOffset.cancel(r.time),this._state.cancel(r.time))}return this._state.cancel(e),this._state.setStateAtTime("stopped",e),this.setTicksAtTime(0,e),this._ticksAtTime.cancel(e),this._secondsAtTime.cancel(e),this}pause(t){let e=this.toSeconds(t);return this._state.getValueAtTime(e)==="started"&&(this._state.setStateAtTime("paused",e),this._ticksAtTime.cancel(e),this._secondsAtTime.cancel(e)),this}cancel(t){return t=this.toSeconds(t),this._state.cancel(t),this._tickOffset.cancel(t),this._ticksAtTime.cancel(t),this._secondsAtTime.cancel(t),this}getTicksAtTime(t){let e=this.toSeconds(t),r=this._state.getLastState("stopped",e),n=this._ticksAtTime.get(e),o={state:"paused",time:e};this._state.add(o);let s=n||r,a=n?n.ticks:0,c=null;return this._state.forEachBetween(s.time,e+this.sampleTime,u=>{let h=s.time,l=this._tickOffset.get(u.time);l&&l.time>=s.time&&(a=l.ticks,h=l.time),s.state==="started"&&u.state!=="started"&&(a+=this.frequency.getTicksAtTime(u.time)-this.frequency.getTicksAtTime(h),u.time!==o.time&&(c={state:u.state,time:u.time,ticks:a})),s=u}),this._state.remove(o),c&&this._ticksAtTime.add(c),a}get ticks(){return this.getTicksAtTime(this.now())}set ticks(t){this.setTicksAtTime(t,this.now())}get seconds(){return this.getSecondsAtTime(this.now())}set seconds(t){let e=this.now(),r=this.frequency.timeToTicks(t,e);this.setTicksAtTime(r,e)}getSecondsAtTime(t){t=this.toSeconds(t);let e=this._state.getLastState("stopped",t),r={state:"paused",time:t};this._state.add(r);let n=this._secondsAtTime.get(t),o=n||e,s=n?n.seconds:0,a=null;return this._state.forEachBetween(o.time,t+this.sampleTime,c=>{let u=o.time,h=this._tickOffset.get(c.time);h&&h.time>=o.time&&(s=h.seconds,u=h.time),o.state==="started"&&c.state!=="started"&&(s+=c.time-u,c.time!==r.time&&(a={state:c.state,time:c.time,seconds:s})),o=c}),this._state.remove(r),a&&this._secondsAtTime.add(a),s}setTicksAtTime(t,e){return e=this.toSeconds(e),this._tickOffset.cancel(e),this._tickOffset.add({seconds:this.frequency.getDurationOfTicks(t,e),ticks:t,time:e}),this._ticksAtTime.cancel(e),this._secondsAtTime.cancel(e),this}getStateAtTime(t){return t=this.toSeconds(t),this._state.getValueAtTime(t)}getTimeOfTick(t,e=this.now()){let r=this._tickOffset.get(e),n=this._state.get(e),o=Math.max(r.time,n.time),s=this.frequency.getTicksAtTime(o)+t-r.ticks;return this.frequency.getTimeOfTick(s)}forEachTickBetween(t,e,r){let n=this._state.get(t);this._state.forEachBetween(t,e,s=>{n&&n.state==="started"&&s.state!=="started"&&this.forEachTickBetween(Math.max(n.time,t),s.time-this.sampleTime,r),n=s});let o=null;if(n&&n.state==="started"){let s=Math.max(n.time,t),a=this.frequency.getTicksAtTime(s),c=this.frequency.getTicksAtTime(n.time),u=a-c,h=Math.ceil(u)-u;h=Ce(h,1)?0:h;let l=this.frequency.getTimeOfTick(a+h);for(;l<e;){try{r(l,Math.round(this.getTicksAtTime(l)))}catch(p){o=p;break}l+=this.frequency.getDurationOfTicks(1,l)}}if(o)throw o;return this}dispose(){return super.dispose(),this._state.dispose(),this._tickOffset.dispose(),this._ticksAtTime.dispose(),this._secondsAtTime.dispose(),this.frequency.dispose(),this}};var Dn=class i extends ee{constructor(){let t=I(i.getDefaults(),arguments,["callback","frequency"]);super(t),this.name="Clock",this.callback=ot,this._lastUpdate=0,this._state=new Mr("stopped"),this._boundLoop=this._loop.bind(this),this.callback=t.callback,this._tickSource=new wa({context:this.context,frequency:t.frequency,units:t.units}),this._lastUpdate=0,this.frequency=this._tickSource.frequency,z(this,"frequency"),this._state.setStateAtTime("stopped",0),this.context.on("tick",this._boundLoop)}static getDefaults(){return Object.assign(ee.getDefaults(),{callback:ot,frequency:1,units:"hertz"})}get state(){return this._state.getValueAtTime(this.now())}start(t,e){ba(this.context);let r=this.toSeconds(t);return this.log("start",r),this._state.getValueAtTime(r)!=="started"&&(this._state.setStateAtTime("started",r),this._tickSource.start(r,e),r<this._lastUpdate&&this.emit("start",r,e)),this}stop(t){let e=this.toSeconds(t);return this.log("stop",e),this._state.cancel(e),this._state.setStateAtTime("stopped",e),this._tickSource.stop(e),e<this._lastUpdate&&this.emit("stop",e),this}pause(t){let e=this.toSeconds(t);return this._state.getValueAtTime(e)==="started"&&(this._state.setStateAtTime("paused",e),this._tickSource.pause(e),e<this._lastUpdate&&this.emit("pause",e)),this}get ticks(){return Math.ceil(this.getTicksAtTime(this.now()))}set ticks(t){this._tickSource.ticks=t}get seconds(){return this._tickSource.seconds}set seconds(t){this._tickSource.seconds=t}getSecondsAtTime(t){return this._tickSource.getSecondsAtTime(t)}setTicksAtTime(t,e){return this._tickSource.setTicksAtTime(t,e),this}getTimeOfTick(t,e=this.now()){return this._tickSource.getTimeOfTick(t,e)}getTicksAtTime(t){return this._tickSource.getTicksAtTime(t)}nextTickTime(t,e){let r=this.toSeconds(e),n=this.getTicksAtTime(r);return this._tickSource.getTimeOfTick(n+t,r)}_loop(){let t=this._lastUpdate,e=this.now();this._lastUpdate=e,this.log("loop",t,e),t!==e&&(this._state.forEachBetween(t,e,r=>{switch(r.state){case"started":let n=this._tickSource.getTicksAtTime(r.time);this.emit("start",r.time,n);break;case"stopped":r.time!==0&&this.emit("stop",r.time);break;case"paused":this.emit("pause",r.time);break}}),this._tickSource.forEachTickBetween(t,e,(r,n)=>{this.callback(r,n)}))}getStateAtTime(t){let e=this.toSeconds(t);return this._state.getValueAtTime(e)}dispose(){return super.dispose(),this.context.off("tick",this._boundLoop),this._tickSource.dispose(),this._state.dispose(),this}};pi.mixin(Dn);var Ke=class i extends P{constructor(){let t=I(i.getDefaults(),arguments,["volume"]);super(t),this.name="Volume",this.input=this.output=new Z({context:this.context,gain:t.volume,units:"decibels"}),this.volume=this.output.gain,z(this,"volume"),this._unmutedVolume=t.volume,this.mute=t.mute}static getDefaults(){return Object.assign(P.getDefaults(),{mute:!1,volume:0})}get mute(){return this.volume.value===-1/0}set mute(t){!this.mute&&t?(this._unmutedVolume=this.volume.value,this.volume.value=-1/0):this.mute&&!t&&(this.volume.value=this._unmutedVolume)}dispose(){return super.dispose(),this.input.dispose(),this.volume.dispose(),this}};var lh=class i extends P{constructor(){let t=I(i.getDefaults(),arguments);super(t),this.name="Destination",this.input=new Ke({context:this.context}),this.output=new Z({context:this.context}),this.volume=this.input.volume,Qe(this.input,this.output,this.context.rawContext.destination),this.mute=t.mute,this._internalChannels=[this.input,this.context.rawContext.destination,this.output]}static getDefaults(){return Object.assign(P.getDefaults(),{mute:!1,volume:0})}get mute(){return this.input.mute}set mute(t){this.input.mute=t}chain(...t){return this.input.disconnect(),t.unshift(this.input),t.push(this.output),Qe(...t),this}get maxChannelCount(){return this.context.rawContext.destination.maxChannelCount}dispose(){return super.dispose(),this.volume.dispose(),this}};li(i=>{i.destination=new lh({context:i})});di(i=>{i.destination.dispose()});var dh=class extends P{constructor(){super(...arguments),this.name="Listener",this.positionX=new ht({context:this.context,param:this.context.rawContext.listener.positionX}),this.positionY=new ht({context:this.context,param:this.context.rawContext.listener.positionY}),this.positionZ=new ht({context:this.context,param:this.context.rawContext.listener.positionZ}),this.forwardX=new ht({context:this.context,param:this.context.rawContext.listener.forwardX}),this.forwardY=new ht({context:this.context,param:this.context.rawContext.listener.forwardY}),this.forwardZ=new ht({context:this.context,param:this.context.rawContext.listener.forwardZ}),this.upX=new ht({context:this.context,param:this.context.rawContext.listener.upX}),this.upY=new ht({context:this.context,param:this.context.rawContext.listener.upY}),this.upZ=new ht({context:this.context,param:this.context.rawContext.listener.upZ})}static getDefaults(){return Object.assign(P.getDefaults(),{positionX:0,positionY:0,positionZ:0,forwardX:0,forwardY:0,forwardZ:-1,upX:0,upY:1,upZ:0})}dispose(){return super.dispose(),this.positionX.dispose(),this.positionY.dispose(),this.positionZ.dispose(),this.forwardX.dispose(),this.forwardY.dispose(),this.forwardZ.dispose(),this.upX.dispose(),this.upY.dispose(),this.upZ.dispose(),this}};li(i=>{i.listener=new dh({context:i})});di(i=>{i.listener.dispose()});var kn=class i extends se{constructor(){super(),this.name="ToneAudioBuffers",this._buffers=new Map,this._loadingCount=0;let t=I(i.getDefaults(),arguments,["urls","onload","baseUrl"],"urls");this.baseUrl=t.baseUrl,Object.keys(t.urls).forEach(e=>{this._loadingCount++;let r=t.urls[e];this.add(e,r,this._bufferLoaded.bind(this,t.onload),t.onerror)})}static getDefaults(){return{baseUrl:"",onerror:ot,onload:ot,urls:{}}}has(t){return this._buffers.has(t.toString())}get(t){return Y(this.has(t),`ToneAudioBuffers has no buffer named: ${t}`),this._buffers.get(t.toString())}_bufferLoaded(t){this._loadingCount--,this._loadingCount===0&&t&&t()}get loaded(){return Array.from(this._buffers).every(([t,e])=>e.loaded)}add(t,e,r=ot,n=ot){return fe(e)?(this.baseUrl&&e.trim().substring(0,11).toLowerCase()==="data:audio/"&&(this.baseUrl=""),this._buffers.set(t.toString(),new Yt(this.baseUrl+e,r,n))):this._buffers.set(t.toString(),new Yt(e,r,n)),this}dispose(){return super.dispose(),this._buffers.forEach(t=>t.dispose()),this._buffers.clear(),this}};var Ro=class i extends _e{constructor(){super(...arguments),this.name="MidiClass",this.defaultUnits="midi"}_frequencyToUnits(t){return mr(super._frequencyToUnits(t))}_ticksToUnits(t){return mr(super._ticksToUnits(t))}_beatsToUnits(t){return mr(super._beatsToUnits(t))}_secondsToUnits(t){return mr(super._secondsToUnits(t))}toMidi(){return this.valueOf()}toFrequency(){return No(this.toMidi())}transpose(t){return new i(this.context,this.toMidi()+t)}};var Be=class extends Xe{constructor(){super(...arguments),this.name="Ticks",this.defaultUnits="i"}_now(){return this.context.transport.ticks}_beatsToUnits(t){return this._getPPQ()*t}_secondsToUnits(t){return Math.floor(t/(60/this._getBpm())*this._getPPQ())}_ticksToUnits(t){return t}toTicks(){return this.valueOf()}toSeconds(){return this.valueOf()/this._getPPQ()*(60/this._getBpm())}};var ph=class extends ee{constructor(){super(...arguments),this.name="Draw",this.expiration=.25,this.anticipation=.008,this._events=new te,this._boundDrawLoop=this._drawLoop.bind(this),this._animationFrame=-1}schedule(t,e){return this._events.add({callback:t,time:this.toSeconds(e)}),this._events.length===1&&(this._animationFrame=requestAnimationFrame(this._boundDrawLoop)),this}cancel(t){return this._events.cancel(this.toSeconds(t)),this}_drawLoop(){let t=this.context.currentTime;this._events.forEachBefore(t+this.anticipation,e=>{t-e.time<=this.expiration&&e.callback(),this._events.remove(e)}),this._events.length>0&&(this._animationFrame=requestAnimationFrame(this._boundDrawLoop))}dispose(){return super.dispose(),this._events.dispose(),cancelAnimationFrame(this._animationFrame),this}};li(i=>{i.draw=new ph({context:i})});di(i=>{i.draw.dispose()});var Ia=class extends se{constructor(){super(...arguments),this.name="IntervalTimeline",this._root=null,this._length=0}add(t){Y(it(t.time),"Events must have a time property"),Y(it(t.duration),"Events must have a duration parameter"),t.time=t.time.valueOf();let e=new mh(t.time,t.time+t.duration,t);for(this._root===null?this._root=e:this._root.insert(e),this._length++;e!==null;)e.updateHeight(),e.updateMax(),this._rebalance(e),e=e.parent;return this}remove(t){if(this._root!==null){let e=[];this._root.search(t.time,e);for(let r of e)if(r.event===t){this._removeNode(r),this._length--;break}}return this}get length(){return this._length}cancel(t){return this.forEachFrom(t,e=>this.remove(e)),this}_setRoot(t){this._root=t,this._root!==null&&(this._root.parent=null)}_replaceNodeInParent(t,e){t.parent!==null?(t.isLeftChild()?t.parent.left=e:t.parent.right=e,this._rebalance(t.parent)):this._setRoot(e)}_removeNode(t){if(t.left===null&&t.right===null)this._replaceNodeInParent(t,null);else if(t.right===null)this._replaceNodeInParent(t,t.left);else if(t.left===null)this._replaceNodeInParent(t,t.right);else{let e=t.getBalance(),r,n=null;if(e>0)if(t.left.right===null)r=t.left,r.right=t.right,n=r;else{for(r=t.left.right;r.right!==null;)r=r.right;r.parent&&(r.parent.right=r.left,n=r.parent,r.left=t.left,r.right=t.right)}else if(t.right.left===null)r=t.right,r.left=t.left,n=r;else{for(r=t.right.left;r.left!==null;)r=r.left;r.parent&&(r.parent.left=r.right,n=r.parent,r.left=t.left,r.right=t.right)}t.parent!==null?t.isLeftChild()?t.parent.left=r:t.parent.right=r:this._setRoot(r),n&&this._rebalance(n)}t.dispose()}_rotateLeft(t){let e=t.parent,r=t.isLeftChild(),n=t.right;n&&(t.right=n.left,n.left=t),e!==null?r?e.left=n:e.right=n:this._setRoot(n)}_rotateRight(t){let e=t.parent,r=t.isLeftChild(),n=t.left;n&&(t.left=n.right,n.right=t),e!==null?r?e.left=n:e.right=n:this._setRoot(n)}_rebalance(t){let e=t.getBalance();e>1&&t.left?t.left.getBalance()<0?this._rotateLeft(t.left):this._rotateRight(t):e<-1&&t.right&&(t.right.getBalance()>0?this._rotateRight(t.right):this._rotateLeft(t))}get(t){if(this._root!==null){let e=[];if(this._root.search(t,e),e.length>0){let r=e[0];for(let n=1;n<e.length;n++)e[n].low>r.low&&(r=e[n]);return r.event}}return null}forEach(t){if(this._root!==null){let e=[];this._root.traverse(r=>e.push(r)),e.forEach(r=>{r.event&&t(r.event)})}return this}forEachAtTime(t,e){if(this._root!==null){let r=[];this._root.search(t,r),r.forEach(n=>{n.event&&e(n.event)})}return this}forEachFrom(t,e){if(this._root!==null){let r=[];this._root.searchAfter(t,r),r.forEach(n=>{n.event&&e(n.event)})}return this}dispose(){return super.dispose(),this._root!==null&&this._root.traverse(t=>t.dispose()),this._root=null,this}},mh=class{constructor(t,e,r){this._left=null,this._right=null,this.parent=null,this.height=0,this.event=r,this.low=t,this.high=e,this.max=this.high}insert(t){t.low<=this.low?this.left===null?this.left=t:this.left.insert(t):this.right===null?this.right=t:this.right.insert(t)}search(t,e){t>this.max||(this.left!==null&&this.left.search(t,e),this.low<=t&&this.high>t&&e.push(this),!(this.low>t)&&this.right!==null&&this.right.search(t,e))}searchAfter(t,e){this.low>=t&&(e.push(this),this.left!==null&&this.left.searchAfter(t,e)),this.right!==null&&this.right.searchAfter(t,e)}traverse(t){t(this),this.left!==null&&this.left.traverse(t),this.right!==null&&this.right.traverse(t)}updateHeight(){this.left!==null&&this.right!==null?this.height=Math.max(this.left.height,this.right.height)+1:this.right!==null?this.height=this.right.height+1:this.left!==null?this.height=this.left.height+1:this.height=0}updateMax(){this.max=this.high,this.left!==null&&(this.max=Math.max(this.max,this.left.max)),this.right!==null&&(this.max=Math.max(this.max,this.right.max))}getBalance(){let t=0;return this.left!==null&&this.right!==null?t=this.left.height-this.right.height:this.left!==null?t=this.left.height+1:this.right!==null&&(t=-(this.right.height+1)),t}isLeftChild(){return this.parent!==null&&this.parent.left===this}get left(){return this._left}set left(t){this._left=t,t!==null&&(t.parent=this),this.updateHeight(),this.updateMax()}get right(){return this._right}set right(t){this._right=t,t!==null&&(t.parent=this),this.updateHeight(),this.updateMax()}dispose(){this.parent=null,this._left=null,this._right=null,this.event=null}};var Ta=class extends se{constructor(t){super(),this.name="TimelineValue",this._timeline=new te({memory:10}),this._initialValue=t}set(t,e){return this._timeline.add({value:t,time:e}),this}get(t){let e=this._timeline.get(t);return e?e.value:this._initialValue}};var be=class i extends P{constructor(){super(I(i.getDefaults(),arguments,["context"]))}connect(t,e=0,r=0){return En(this,t,e,r),this}};var Ne=class i extends be{constructor(){let t=I(i.getDefaults(),arguments,["mapping","length"]);super(t),this.name="WaveShaper",this._shaper=this.context.createWaveShaper(),this.input=this._shaper,this.output=this._shaper,Vt(t.mapping)||t.mapping instanceof Float32Array?this.curve=Float32Array.from(t.mapping):wf(t.mapping)&&this.setMap(t.mapping,t.length)}static getDefaults(){return Object.assign(rt.getDefaults(),{length:1024})}setMap(t,e=1024){let r=new Float32Array(e);for(let n=0,o=e;n<o;n++){let s=n/(o-1)*2-1;r[n]=t(s,n)}return this.curve=r,this}get curve(){return this._shaper.curve}set curve(t){this._shaper.curve=t}get oversample(){return this._shaper.oversample}set oversample(t){let e=["none","2x","4x"].some(r=>r.includes(t));Y(e,"oversampling must be either 'none', '2x', or '4x'"),this._shaper.oversample=t}dispose(){return super.dispose(),this._shaper.disconnect(),this}};var Ln=class i extends be{constructor(){let t=I(i.getDefaults(),arguments,["value"]);super(t),this.name="Pow",this._exponentScaler=this.input=this.output=new Ne({context:this.context,mapping:this._expFunc(t.value),length:8192}),this._exponent=t.value}static getDefaults(){return Object.assign(be.getDefaults(),{value:1})}_expFunc(t){return e=>Math.pow(Math.abs(e),t)}get value(){return this._exponent}set value(t){this._exponent=t,this._exponentScaler.setMap(this._expFunc(this._exponent))}dispose(){return super.dispose(),this._exponentScaler.dispose(),this}};var Yr=class i{constructor(t,e){this.id=i._eventId++,this._remainderTime=0;let r=Object.assign(i.getDefaults(),e);this.transport=t,this.callback=r.callback,this._once=r.once,this.time=Math.floor(r.time),this._remainderTime=r.time-this.time}static getDefaults(){return{callback:ot,once:!1,time:0}}get floatTime(){return this.time+this._remainderTime}invoke(t){if(this.callback){let e=this.transport.bpm.getDurationOfTicks(1,t);this.callback(t+this._remainderTime*e),this._once&&this.transport.clear(this.id)}}dispose(){return this.callback=void 0,this}};Yr._eventId=0;var Na=class i extends Yr{constructor(t,e){super(t,e),this._currentId=-1,this._nextId=-1,this._nextTick=this.time,this._boundRestart=this._restart.bind(this);let r=Object.assign(i.getDefaults(),e);this.duration=r.duration,this._interval=r.interval,this._nextTick=r.time,this.transport.on("start",this._boundRestart),this.transport.on("loopStart",this._boundRestart),this.transport.on("ticks",this._boundRestart),this.context=this.transport.context,this._restart()}static getDefaults(){return Object.assign({},Yr.getDefaults(),{duration:1/0,interval:1,once:!1})}invoke(t){this._createEvents(t),super.invoke(t)}_createEvent(){return Pi(this._nextTick,this.floatTime+this.duration)?this.transport.scheduleOnce(this.invoke.bind(this),new Be(this.context,this._nextTick).toSeconds()):-1}_createEvents(t){Pi(this._nextTick+this._interval,this.floatTime+this.duration)&&(this._nextTick+=this._interval,this._currentId=this._nextId,this._nextId=this.transport.scheduleOnce(this.invoke.bind(this),new Be(this.context,this._nextTick).toSeconds()))}_restart(t){this.transport.clear(this._currentId),this.transport.clear(this._nextId),this._nextTick=this.floatTime;let e=this.transport.getTicksAtTime(t);zr(e,this.time)&&(this._nextTick=this.floatTime+Math.ceil((e-this.floatTime)/this._interval)*this._interval),this._currentId=this._createEvent(),this._nextTick+=this._interval,this._nextId=this._createEvent()}dispose(){return super.dispose(),this.transport.clear(this._currentId),this.transport.clear(this._nextId),this.transport.off("start",this._boundRestart),this.transport.off("loopStart",this._boundRestart),this.transport.off("ticks",this._boundRestart),this}};var Oa=class i extends ee{constructor(){let t=I(i.getDefaults(),arguments);super(t),this.name="Transport",this._loop=new Ta(!1),this._loopStart=0,this._loopEnd=0,this._scheduledEvents={},this._timeline=new te,this._repeatedEvents=new Ia,this._syncedSignals=[],this._swingAmount=0,this._ppq=t.ppq,this._clock=new Dn({callback:this._processTick.bind(this),context:this.context,frequency:0,units:"bpm"}),this._bindClockEvents(),this.bpm=this._clock.frequency,this._clock.frequency.multiplier=t.ppq,this.bpm.setValueAtTime(t.bpm,0),z(this,"bpm"),this._timeSignature=t.timeSignature,this._swingTicks=t.ppq/2}static getDefaults(){return Object.assign(ee.getDefaults(),{bpm:120,loopEnd:"4m",loopStart:0,ppq:192,swing:0,swingSubdivision:"8n",timeSignature:4})}_processTick(t,e){if(this._loop.get(t)&&e>=this._loopEnd&&(this.emit("loopEnd",t),this._clock.setTicksAtTime(this._loopStart,t),e=this._loopStart,this.emit("loopStart",t,this._clock.getSecondsAtTime(t)),this.emit("loop",t)),this._swingAmount>0&&e%this._ppq!==0&&e%(this._swingTicks*2)!==0){let r=e%(this._swingTicks*2)/(this._swingTicks*2),n=Math.sin(r*Math.PI)*this._swingAmount;t+=new Be(this.context,this._swingTicks*2/3).toSeconds()*n}ah(!0),this._timeline.forEachAtTime(e,r=>r.invoke(t)),ah(!1)}schedule(t,e){let r=new Yr(this,{callback:t,time:new Xe(this.context,e).toTicks()});return this._addEvent(r,this._timeline)}scheduleRepeat(t,e,r,n=1/0){let o=new Na(this,{callback:t,duration:new Fe(this.context,n).toTicks(),interval:new Fe(this.context,e).toTicks(),time:new Xe(this.context,r).toTicks()});return this._addEvent(o,this._repeatedEvents)}scheduleOnce(t,e){let r=new Yr(this,{callback:t,once:!0,time:new Xe(this.context,e).toTicks()});return this._addEvent(r,this._timeline)}clear(t){if(this._scheduledEvents.hasOwnProperty(t)){let e=this._scheduledEvents[t.toString()];e.timeline.remove(e.event),e.event.dispose(),delete this._scheduledEvents[t.toString()]}return this}_addEvent(t,e){return this._scheduledEvents[t.id.toString()]={event:t,timeline:e},e.add(t),t.id}cancel(t=0){let e=this.toTicks(t);return this._timeline.forEachFrom(e,r=>this.clear(r.id)),this._repeatedEvents.forEachFrom(e,r=>this.clear(r.id)),this}_bindClockEvents(){this._clock.on("start",(t,e)=>{e=new Be(this.context,e).toSeconds(),this.emit("start",t,e)}),this._clock.on("stop",t=>{this.emit("stop",t)}),this._clock.on("pause",t=>{this.emit("pause",t)})}get state(){return this._clock.getStateAtTime(this.now())}start(t,e){this.context.resume();let r;return it(e)&&(r=this.toTicks(e)),this._clock.start(t,r),this}stop(t){return this._clock.stop(t),this}pause(t){return this._clock.pause(t),this}toggle(t){return t=this.toSeconds(t),this._clock.getStateAtTime(t)!=="started"?this.start(t):this.stop(t),this}get timeSignature(){return this._timeSignature}set timeSignature(t){Vt(t)&&(t=t[0]/t[1]*4),this._timeSignature=t}get loopStart(){return new Fe(this.context,this._loopStart,"i").toSeconds()}set loopStart(t){this._loopStart=this.toTicks(t)}get loopEnd(){return new Fe(this.context,this._loopEnd,"i").toSeconds()}set loopEnd(t){this._loopEnd=this.toTicks(t)}get loop(){return this._loop.get(this.now())}set loop(t){this._loop.set(t,this.now())}setLoopPoints(t,e){return this.loopStart=t,this.loopEnd=e,this}get swing(){return this._swingAmount}set swing(t){this._swingAmount=t}get swingSubdivision(){return new Be(this.context,this._swingTicks).toNotation()}set swingSubdivision(t){this._swingTicks=this.toTicks(t)}get position(){let t=this.now(),e=this._clock.getTicksAtTime(t);return new Be(this.context,e).toBarsBeatsSixteenths()}set position(t){let e=this.toTicks(t);this.ticks=e}get seconds(){return this._clock.seconds}set seconds(t){let e=this.now(),r=this._clock.frequency.timeToTicks(t,e);this.ticks=r}get progress(){if(this.loop){let t=this.now();return(this._clock.getTicksAtTime(t)-this._loopStart)/(this._loopEnd-this._loopStart)}else return 0}get ticks(){return this._clock.ticks}set ticks(t){if(this._clock.ticks!==t){let e=this.now();if(this.state==="started"){let r=this._clock.getTicksAtTime(e),n=this._clock.frequency.getDurationOfTicks(Math.ceil(r)-r,e),o=e+n;this.emit("stop",o),this._clock.setTicksAtTime(t,o),this.emit("start",o,this._clock.getSecondsAtTime(o))}else this.emit("ticks",e),this._clock.setTicksAtTime(t,e)}}getTicksAtTime(t){return this._clock.getTicksAtTime(t)}getSecondsAtTime(t){return this._clock.getSecondsAtTime(t)}get PPQ(){return this._clock.frequency.multiplier}set PPQ(t){this._clock.frequency.multiplier=t}nextSubdivision(t){if(t=this.toTicks(t),this.state!=="started")return 0;{let e=this.now(),r=this.getTicksAtTime(e),n=t-r%t;return this._clock.nextTickTime(n,e)}}syncSignal(t,e){let r=this.now(),n=this.bpm,o=1/(60/n.getValueAtTime(r)/this.PPQ),s=[];if(t.units==="time"){let c=.015625/o,u=new Z(c),h=new Ln(-1),l=new Z(c);n.chain(u,h,l),n=l,o=1/o,s=[u,h,l]}e||(t.getValueAtTime(r)!==0?e=t.getValueAtTime(r)/o:e=0);let a=new Z(e);return n.connect(a),a.connect(t._param),s.push(a),this._syncedSignals.push({initial:t.value,nodes:s,signal:t}),t.value=0,this}unsyncSignal(t){for(let e=this._syncedSignals.length-1;e>=0;e--){let r=this._syncedSignals[e];r.signal===t&&(r.nodes.forEach(n=>n.dispose()),r.signal.value=r.initial,this._syncedSignals.splice(e,1))}return this}dispose(){return super.dispose(),this._clock.dispose(),Bi(this,"bpm"),this._timeline.dispose(),this._repeatedEvents.dispose(),this}};pi.mixin(Oa);li(i=>{i.transport=new Oa({context:i})});di(i=>{i.transport.dispose()});var wt=class extends P{constructor(t){super(t),this.input=void 0,this._state=new Mr("stopped"),this._synced=!1,this._scheduled=[],this._syncedStart=ot,this._syncedStop=ot,this._state.memory=100,this._state.increasing=!0,this._volume=this.output=new Ke({context:this.context,mute:t.mute,volume:t.volume}),this.volume=this._volume.volume,z(this,"volume"),this.onstop=t.onstop}static getDefaults(){return Object.assign(P.getDefaults(),{mute:!1,onstop:ot,volume:0})}get state(){return this._synced?this.context.transport.state==="started"?this._state.getValueAtTime(this.context.transport.seconds):"stopped":this._state.getValueAtTime(this.now())}get mute(){return this._volume.mute}set mute(t){this._volume.mute=t}_clampToCurrentTime(t){return this._synced?t:Math.max(t,this.context.currentTime)}start(t,e,r){let n=Xt(t)&&this._synced?this.context.transport.seconds:this.toSeconds(t);if(n=this._clampToCurrentTime(n),!this._synced&&this._state.getValueAtTime(n)==="started")Y(zr(n,this._state.get(n).time),"Start time must be strictly greater than previous start time"),this._state.cancel(n),this._state.setStateAtTime("started",n),this.log("restart",n),this.restart(n,e,r);else if(this.log("start",n),this._state.setStateAtTime("started",n),this._synced){let o=this._state.get(n);o&&(o.offset=this.toSeconds(Pe(e,0)),o.duration=r?this.toSeconds(r):void 0);let s=this.context.transport.schedule(a=>{this._start(a,e,r)},n);this._scheduled.push(s),this.context.transport.state==="started"&&this.context.transport.getSecondsAtTime(this.immediate())>n&&this._syncedStart(this.now(),this.context.transport.seconds)}else ba(this.context),this._start(n,e,r);return this}stop(t){let e=Xt(t)&&this._synced?this.context.transport.seconds:this.toSeconds(t);if(e=this._clampToCurrentTime(e),this._state.getValueAtTime(e)==="started"||it(this._state.getNextState("started",e))){if(this.log("stop",e),!this._synced)this._stop(e);else{let r=this.context.transport.schedule(this._stop.bind(this),e);this._scheduled.push(r)}this._state.cancel(e),this._state.setStateAtTime("stopped",e)}return this}restart(t,e,r){return t=this.toSeconds(t),this._state.getValueAtTime(t)==="started"&&(this._state.cancel(t),this._restart(t,e,r)),this}sync(){return this._synced||(this._synced=!0,this._syncedStart=(t,e)=>{if(zr(e,0)){let r=this._state.get(e);if(r&&r.state==="started"&&r.time!==e){let n=e-this.toSeconds(r.time),o;r.duration&&(o=this.toSeconds(r.duration)-n),this._start(t,this.toSeconds(r.offset)+n,o)}}},this._syncedStop=t=>{let e=this.context.transport.getSecondsAtTime(Math.max(t-this.sampleTime,0));this._state.getValueAtTime(e)==="started"&&this._stop(t)},this.context.transport.on("start",this._syncedStart),this.context.transport.on("loopStart",this._syncedStart),this.context.transport.on("stop",this._syncedStop),this.context.transport.on("pause",this._syncedStop),this.context.transport.on("loopEnd",this._syncedStop)),this}unsync(){return this._synced&&(this.context.transport.off("stop",this._syncedStop),this.context.transport.off("pause",this._syncedStop),this.context.transport.off("loopEnd",this._syncedStop),this.context.transport.off("start",this._syncedStart),this.context.transport.off("loopStart",this._syncedStart)),this._synced=!1,this._scheduled.forEach(t=>this.context.transport.clear(t)),this._scheduled=[],this._state.cancel(0),this._stop(0),this}dispose(){return super.dispose(),this.onstop=ot,this.unsync(),this._volume.dispose(),this._state.dispose(),this}};var Er=class i extends fr{constructor(){let t=I(i.getDefaults(),arguments,["url","onload"]);super(t),this.name="ToneBufferSource",this._source=this.context.createBufferSource(),this._internalChannels=[this._source],this._sourceStarted=!1,this._sourceStopped=!1,de(this._source,this._gainNode),this._source.onended=()=>this._stopSource(),this.playbackRate=new ht({context:this.context,param:this._source.playbackRate,units:"positive",value:t.playbackRate}),this.loop=t.loop,this.loopStart=t.loopStart,this.loopEnd=t.loopEnd,this._buffer=new Yt(t.url,t.onload,t.onerror),this._internalChannels.push(this._source)}static getDefaults(){return Object.assign(fr.getDefaults(),{url:new Yt,loop:!1,loopEnd:0,loopStart:0,onload:ot,onerror:ot,playbackRate:1})}get fadeIn(){return this._fadeIn}set fadeIn(t){this._fadeIn=t}get fadeOut(){return this._fadeOut}set fadeOut(t){this._fadeOut=t}get curve(){return this._curve}set curve(t){this._curve=t}start(t,e,r,n=1){Y(this.buffer.loaded,"buffer is either not set or not loaded");let o=this.toSeconds(t);this._startGain(o,n),this.loop?e=Pe(e,this.loopStart):e=Pe(e,0);let s=Math.max(this.toSeconds(e),0);if(this.loop){let a=this.toSeconds(this.loopEnd)||this.buffer.duration,c=this.toSeconds(this.loopStart),u=a-c;To(s,a)&&(s=(s-c)%u+c),Ce(s,this.buffer.duration)&&(s=0)}if(this._source.buffer=this.buffer.get(),this._source.loopEnd=this.toSeconds(this.loopEnd)||this.buffer.duration,Pi(s,this.buffer.duration)&&(this._sourceStarted=!0,this._source.start(o,s)),it(r)){let a=this.toSeconds(r);a=Math.max(a,0),this.stop(o+a)}return this}_stopSource(t){!this._sourceStopped&&this._sourceStarted&&(this._sourceStopped=!0,this._source.stop(this.toSeconds(t)),this._onended())}get loopStart(){return this._source.loopStart}set loopStart(t){this._source.loopStart=this.toSeconds(t)}get loopEnd(){return this._source.loopEnd}set loopEnd(t){this._source.loopEnd=this.toSeconds(t)}get buffer(){return this._buffer}set buffer(t){this._buffer.set(t)}get loop(){return this._source.loop}set loop(t){this._source.loop=t,this._sourceStarted&&this.cancelStop()}dispose(){return super.dispose(),this._source.onended=null,this._source.disconnect(),this._buffer.dispose(),this.playbackRate.dispose(),this}};var Vi=class i extends wt{constructor(){let t=I(i.getDefaults(),arguments,["type"]);super(t),this.name="Noise",this._source=null,this._playbackRate=t.playbackRate,this.type=t.type,this._fadeIn=t.fadeIn,this._fadeOut=t.fadeOut}static getDefaults(){return Object.assign(wt.getDefaults(),{fadeIn:0,fadeOut:0,playbackRate:1,type:"white"})}get type(){return this._type}set type(t){if(Y(t in Yf,"Noise: invalid type: "+t),this._type!==t&&(this._type=t,this.state==="started")){let e=this.now();this._stop(e),this._start(e)}}get playbackRate(){return this._playbackRate}set playbackRate(t){this._playbackRate=t,this._source&&(this._source.playbackRate.value=t)}_start(t){let e=Yf[this._type];this._source=new Er({url:e,context:this.context,fadeIn:this._fadeIn,fadeOut:this._fadeOut,loop:!0,onended:()=>this.onstop(this),playbackRate:this._playbackRate}).connect(this.output),this._source.start(this.toSeconds(t),Math.random()*(e.duration-.001))}_stop(t){this._source&&(this._source.stop(this.toSeconds(t)),this._source=null)}get fadeIn(){return this._fadeIn}set fadeIn(t){this._fadeIn=t,this._source&&(this._source.fadeIn=this._fadeIn)}get fadeOut(){return this._fadeOut}set fadeOut(t){this._fadeOut=t,this._source&&(this._source.fadeOut=this._fadeOut)}_restart(t){this._stop(t),this._start(t)}dispose(){return super.dispose(),this._source&&this._source.disconnect(),this}},jn=44100*5,fh=2,Hr={brown:null,pink:null,white:null},Yf={get brown(){if(!Hr.brown){let i=[];for(let t=0;t<fh;t++){let e=new Float32Array(jn);i[t]=e;let r=0;for(let n=0;n<jn;n++){let o=Math.random()*2-1;e[n]=(r+.02*o)/1.02,r=e[n],e[n]*=3.5}}Hr.brown=new Yt().fromArray(i)}return Hr.brown},get pink(){if(!Hr.pink){let i=[];for(let t=0;t<fh;t++){let e=new Float32Array(jn);i[t]=e;let r,n,o,s,a,c,u;r=n=o=s=a=c=u=0;for(let h=0;h<jn;h++){let l=Math.random()*2-1;r=.99886*r+l*.0555179,n=.99332*n+l*.0750759,o=.969*o+l*.153852,s=.8665*s+l*.3104856,a=.55*a+l*.5329522,c=-.7616*c-l*.016898,e[h]=r+n+o+s+a+c+u+l*.5362,e[h]*=.11,u=l*.115926}}Hr.pink=new Yt().fromArray(i)}return Hr.pink},get white(){if(!Hr.white){let i=[];for(let t=0;t<fh;t++){let e=new Float32Array(jn);i[t]=e;for(let r=0;r<jn;r++)e[r]=Math.random()*2-1}Hr.white=new Yt().fromArray(i)}return Hr.white}};function Oe(i,t){return yt(this,void 0,void 0,function*(){let e=t/i.context.sampleRate,r=new pr(1,e,i.context.sampleRate);return new i.constructor(Object.assign(i.get(),{frequency:2/e,detune:0,context:r})).toDestination().start(0),(yield r.render()).getChannelData(0)})}var Mo=class i extends fr{constructor(){let t=I(i.getDefaults(),arguments,["frequency","type"]);super(t),this.name="ToneOscillatorNode",this._oscillator=this.context.createOscillator(),this._internalChannels=[this._oscillator],de(this._oscillator,this._gainNode),this.type=t.type,this.frequency=new ht({context:this.context,param:this._oscillator.frequency,units:"frequency",value:t.frequency}),this.detune=new ht({context:this.context,param:this._oscillator.detune,units:"cents",value:t.detune}),z(this,["frequency","detune"])}static getDefaults(){return Object.assign(fr.getDefaults(),{detune:0,frequency:440,type:"sine"})}start(t){let e=this.toSeconds(t);return this.log("start",e),this._startGain(e),this._oscillator.start(e),this}_stopSource(t){this._oscillator.stop(t)}setPeriodicWave(t){return this._oscillator.setPeriodicWave(t),this}get type(){return this._oscillator.type}set type(t){this._oscillator.type=t}dispose(){return super.dispose(),this.state==="started"&&this.stop(),this._oscillator.disconnect(),this.frequency.dispose(),this.detune.dispose(),this}};var qt=class i extends wt{constructor(){let t=I(i.getDefaults(),arguments,["frequency","type"]);super(t),this.name="Oscillator",this._oscillator=null,this.frequency=new rt({context:this.context,units:"frequency",value:t.frequency}),z(this,"frequency"),this.detune=new rt({context:this.context,units:"cents",value:t.detune}),z(this,"detune"),this._partials=t.partials,this._partialCount=t.partialCount,this._type=t.type,t.partialCount&&t.type!=="custom"&&(this._type=this.baseType+t.partialCount.toString()),this.phase=t.phase}static getDefaults(){return Object.assign(wt.getDefaults(),{detune:0,frequency:440,partialCount:0,partials:[],phase:0,type:"sine"})}_start(t){let e=this.toSeconds(t),r=new Mo({context:this.context,onended:()=>this.onstop(this)});this._oscillator=r,this._wave?this._oscillator.setPeriodicWave(this._wave):this._oscillator.type=this._type,this._oscillator.connect(this.output),this.frequency.connect(this._oscillator.frequency),this.detune.connect(this._oscillator.detune),this._oscillator.start(e)}_stop(t){let e=this.toSeconds(t);this._oscillator&&this._oscillator.stop(e)}_restart(t){let e=this.toSeconds(t);return this.log("restart",e),this._oscillator&&this._oscillator.cancelStop(),this._state.cancel(e),this}syncFrequency(){return this.context.transport.syncSignal(this.frequency),this}unsyncFrequency(){return this.context.transport.unsyncSignal(this.frequency),this}_getCachedPeriodicWave(){if(this._type==="custom")return i._periodicWaveCache.find(e=>e.phase===this._phase&&jf(e.partials,this._partials));{let t=i._periodicWaveCache.find(e=>e.type===this._type&&e.phase===this._phase);return this._partialCount=t?t.partialCount:this._partialCount,t}}get type(){return this._type}set type(t){this._type=t;let e=["sine","square","sawtooth","triangle"].indexOf(t)!==-1;if(this._phase===0&&e)this._wave=void 0,this._partialCount=0,this._oscillator!==null&&(this._oscillator.type=t);else{let r=this._getCachedPeriodicWave();if(it(r)){let{partials:n,wave:o}=r;this._wave=o,this._partials=n,this._oscillator!==null&&this._oscillator.setPeriodicWave(this._wave)}else{let[n,o]=this._getRealImaginary(t,this._phase),s=this.context.createPeriodicWave(n,o);this._wave=s,this._oscillator!==null&&this._oscillator.setPeriodicWave(this._wave),i._periodicWaveCache.push({imag:o,partialCount:this._partialCount,partials:this._partials,phase:this._phase,real:n,type:this._type,wave:this._wave}),i._periodicWaveCache.length>100&&i._periodicWaveCache.shift()}}}get baseType(){return this._type.replace(this.partialCount.toString(),"")}set baseType(t){this.partialCount&&this._type!=="custom"&&t!=="custom"?this.type=t+this.partialCount:this.type=t}get partialCount(){return this._partialCount}set partialCount(t){zt(t,0);let e=this._type,r=/^(sine|triangle|square|sawtooth)(\d+)$/.exec(this._type);if(r&&(e=r[1]),this._type!=="custom")t===0?this.type=e:this.type=e+t.toString();else{let n=new Float32Array(t);this._partials.forEach((o,s)=>n[s]=o),this._partials=Array.from(n),this.type=this._type}}_getRealImaginary(t,e){let n=2048,o=new Float32Array(n),s=new Float32Array(n),a=1;if(t==="custom"){if(a=this._partials.length+1,this._partialCount=this._partials.length,n=a,this._partials.length===0)return[o,s]}else{let c=/^(sine|triangle|square|sawtooth)(\d+)$/.exec(t);c?(a=parseInt(c[2],10)+1,this._partialCount=parseInt(c[2],10),t=c[1],a=Math.max(a,2),n=a):this._partialCount=0,this._partials=[]}for(let c=1;c<n;++c){let u=2/(c*Math.PI),h;switch(t){case"sine":h=c<=a?1:0,this._partials[c-1]=h;break;case"square":h=c&1?2*u:0,this._partials[c-1]=h;break;case"sawtooth":h=u*(c&1?1:-1),this._partials[c-1]=h;break;case"triangle":c&1?h=2*(u*u)*(c-1>>1&1?-1:1):h=0,this._partials[c-1]=h;break;case"custom":h=this._partials[c-1];break;default:throw new TypeError("Oscillator: invalid type: "+t)}h!==0?(o[c]=-h*Math.sin(e*c),s[c]=h*Math.cos(e*c)):(o[c]=0,s[c]=0)}return[o,s]}_inverseFFT(t,e,r){let n=0,o=t.length;for(let s=0;s<o;s++)n+=t[s]*Math.cos(s*r)+e[s]*Math.sin(s*r);return n}getInitialValue(){let[t,e]=this._getRealImaginary(this._type,0),r=0,n=Math.PI*2,o=32;for(let s=0;s<o;s++)r=Math.max(this._inverseFFT(t,e,s/o*n),r);return ch(-this._inverseFFT(t,e,this._phase)/r,-1,1)}get partials(){return this._partials.slice(0,this.partialCount)}set partials(t){this._partials=t,this._partialCount=this._partials.length,t.length&&(this.type="custom")}get phase(){return this._phase*(180/Math.PI)}set phase(t){this._phase=t*Math.PI/180,this.type=this._type}asArray(){return yt(this,arguments,void 0,function*(t=1024){return Oe(this,t)})}dispose(){return super.dispose(),this._oscillator!==null&&this._oscillator.dispose(),this._wave=void 0,this.frequency.dispose(),this.detune.dispose(),this}};qt._periodicWaveCache=[];var Pn=class extends be{constructor(){super(...arguments),this.name="AudioToGain",this._norm=new Ne({context:this.context,mapping:t=>(t+1)/2}),this.input=this._norm,this.output=this._norm}dispose(){return super.dispose(),this._norm.dispose(),this}};var re=class i extends rt{constructor(){let t=I(i.getDefaults(),arguments,["value"]);super(t),this.name="Multiply",this.override=!1,this._mult=this.input=this.output=new Z({context:this.context,minValue:t.minValue,maxValue:t.maxValue}),this.factor=this._param=this._mult.gain,this.factor.setValueAtTime(t.value,0)}static getDefaults(){return Object.assign(rt.getDefaults(),{value:0})}dispose(){return super.dispose(),this._mult.dispose(),this}};var Eo=class i extends wt{constructor(){let t=I(i.getDefaults(),arguments,["frequency","type","modulationType"]);super(t),this.name="AMOscillator",this._modulationScale=new Pn({context:this.context}),this._modulationNode=new Z({context:this.context}),this._carrier=new qt({context:this.context,detune:t.detune,frequency:t.frequency,onstop:()=>this.onstop(this),phase:t.phase,type:t.type}),this.frequency=this._carrier.frequency,this.detune=this._carrier.detune,this._modulator=new qt({context:this.context,phase:t.phase,type:t.modulationType}),this.harmonicity=new re({context:this.context,units:"positive",value:t.harmonicity}),this.frequency.chain(this.harmonicity,this._modulator.frequency),this._modulator.chain(this._modulationScale,this._modulationNode.gain),this._carrier.chain(this._modulationNode,this.output),z(this,["frequency","detune","harmonicity"])}static getDefaults(){return Object.assign(qt.getDefaults(),{harmonicity:1,modulationType:"square"})}_start(t){this._modulator.start(t),this._carrier.start(t)}_stop(t){this._modulator.stop(t),this._carrier.stop(t)}_restart(t){this._modulator.restart(t),this._carrier.restart(t)}get type(){return this._carrier.type}set type(t){this._carrier.type=t}get baseType(){return this._carrier.baseType}set baseType(t){this._carrier.baseType=t}get partialCount(){return this._carrier.partialCount}set partialCount(t){this._carrier.partialCount=t}get modulationType(){return this._modulator.type}set modulationType(t){this._modulator.type=t}get phase(){return this._carrier.phase}set phase(t){this._carrier.phase=t,this._modulator.phase=t}get partials(){return this._carrier.partials}set partials(t){this._carrier.partials=t}asArray(){return yt(this,arguments,void 0,function*(t=1024){return Oe(this,t)})}dispose(){return super.dispose(),this.frequency.dispose(),this.detune.dispose(),this.harmonicity.dispose(),this._carrier.dispose(),this._modulator.dispose(),this._modulationNode.dispose(),this._modulationScale.dispose(),this}};var Fn=class i extends wt{constructor(){let t=I(i.getDefaults(),arguments,["frequency","type","modulationType"]);super(t),this.name="FMOscillator",this._modulationNode=new Z({context:this.context,gain:0}),this._carrier=new qt({context:this.context,detune:t.detune,frequency:0,onstop:()=>this.onstop(this),phase:t.phase,type:t.type}),this.detune=this._carrier.detune,this.frequency=new rt({context:this.context,units:"frequency",value:t.frequency}),this._modulator=new qt({context:this.context,phase:t.phase,type:t.modulationType}),this.harmonicity=new re({context:this.context,units:"positive",value:t.harmonicity}),this.modulationIndex=new re({context:this.context,units:"positive",value:t.modulationIndex}),this.frequency.connect(this._carrier.frequency),this.frequency.chain(this.harmonicity,this._modulator.frequency),this.frequency.chain(this.modulationIndex,this._modulationNode),this._modulator.connect(this._modulationNode.gain),this._modulationNode.connect(this._carrier.frequency),this._carrier.connect(this.output),this.detune.connect(this._modulator.detune),z(this,["modulationIndex","frequency","detune","harmonicity"])}static getDefaults(){return Object.assign(qt.getDefaults(),{harmonicity:1,modulationIndex:2,modulationType:"square"})}_start(t){this._modulator.start(t),this._carrier.start(t)}_stop(t){this._modulator.stop(t),this._carrier.stop(t)}_restart(t){return this._modulator.restart(t),this._carrier.restart(t),this}get type(){return this._carrier.type}set type(t){this._carrier.type=t}get baseType(){return this._carrier.baseType}set baseType(t){this._carrier.baseType=t}get partialCount(){return this._carrier.partialCount}set partialCount(t){this._carrier.partialCount=t}get modulationType(){return this._modulator.type}set modulationType(t){this._modulator.type=t}get phase(){return this._carrier.phase}set phase(t){this._carrier.phase=t,this._modulator.phase=t}get partials(){return this._carrier.partials}set partials(t){this._carrier.partials=t}asArray(){return yt(this,arguments,void 0,function*(t=1024){return Oe(this,t)})}dispose(){return super.dispose(),this.frequency.dispose(),this.harmonicity.dispose(),this._carrier.dispose(),this._modulator.dispose(),this._modulationNode.dispose(),this.modulationIndex.dispose(),this}};var qi=class i extends wt{constructor(){let t=I(i.getDefaults(),arguments,["frequency","width"]);super(t),this.name="PulseOscillator",this._widthGate=new Z({context:this.context,gain:0}),this._thresh=new Ne({context:this.context,mapping:e=>e<=0?-1:1}),this.width=new rt({context:this.context,units:"audioRange",value:t.width}),this._triangle=new qt({context:this.context,detune:t.detune,frequency:t.frequency,onstop:()=>this.onstop(this),phase:t.phase,type:"triangle"}),this.frequency=this._triangle.frequency,this.detune=this._triangle.detune,this._triangle.chain(this._thresh,this.output),this.width.chain(this._widthGate,this._thresh),z(this,["width","frequency","detune"])}static getDefaults(){return Object.assign(wt.getDefaults(),{detune:0,frequency:440,phase:0,type:"pulse",width:.2})}_start(t){t=this.toSeconds(t),this._triangle.start(t),this._widthGate.gain.setValueAtTime(1,t)}_stop(t){t=this.toSeconds(t),this._triangle.stop(t),this._widthGate.gain.cancelScheduledValues(t),this._widthGate.gain.setValueAtTime(0,t)}_restart(t){this._triangle.restart(t),this._widthGate.gain.cancelScheduledValues(t),this._widthGate.gain.setValueAtTime(1,t)}get phase(){return this._triangle.phase}set phase(t){this._triangle.phase=t}get type(){return"pulse"}get baseType(){return"pulse"}get partials(){return[]}get partialCount(){return 0}set carrierType(t){this._triangle.type=t}asArray(){return yt(this,arguments,void 0,function*(t=1024){return Oe(this,t)})}dispose(){return super.dispose(),this._triangle.dispose(),this.width.dispose(),this._widthGate.dispose(),this._thresh.dispose(),this}};var Do=class i extends wt{constructor(){let t=I(i.getDefaults(),arguments,["frequency","type","spread"]);super(t),this.name="FatOscillator",this._oscillators=[],this.frequency=new rt({context:this.context,units:"frequency",value:t.frequency}),this.detune=new rt({context:this.context,units:"cents",value:t.detune}),this._spread=t.spread,this._type=t.type,this._phase=t.phase,this._partials=t.partials,this._partialCount=t.partialCount,this.count=t.count,z(this,["frequency","detune"])}static getDefaults(){return Object.assign(qt.getDefaults(),{count:3,spread:20,type:"sawtooth"})}_start(t){t=this.toSeconds(t),this._forEach(e=>e.start(t))}_stop(t){t=this.toSeconds(t),this._forEach(e=>e.stop(t))}_restart(t){this._forEach(e=>e.restart(t))}_forEach(t){for(let e=0;e<this._oscillators.length;e++)t(this._oscillators[e],e)}get type(){return this._type}set type(t){this._type=t,this._forEach(e=>e.type=t)}get spread(){return this._spread}set spread(t){if(this._spread=t,this._oscillators.length>1){let e=-t/2,r=t/(this._oscillators.length-1);this._forEach((n,o)=>n.detune.value=e+r*o)}}get count(){return this._oscillators.length}set count(t){if(zt(t,1),this._oscillators.length!==t){this._forEach(e=>e.dispose()),this._oscillators=[];for(let e=0;e<t;e++){let r=new qt({context:this.context,volume:-6-t*1.1,type:this._type,phase:this._phase+e/t*360,partialCount:this._partialCount,onstop:e===0?()=>this.onstop(this):ot});this.type==="custom"&&(r.partials=this._partials),this.frequency.connect(r.frequency),this.detune.connect(r.detune),r.detune.overridden=!1,r.connect(this.output),this._oscillators[e]=r}this.spread=this._spread,this.state==="started"&&this._forEach(e=>e.start())}}get phase(){return this._phase}set phase(t){this._phase=t,this._forEach((e,r)=>e.phase=this._phase+r/this.count*360)}get baseType(){return this._oscillators[0].baseType}set baseType(t){this._forEach(e=>e.baseType=t),this._type=this._oscillators[0].type}get partials(){return this._oscillators[0].partials}set partials(t){this._partials=t,this._partialCount=this._partials.length,t.length&&(this._type="custom",this._forEach(e=>e.partials=t))}get partialCount(){return this._oscillators[0].partialCount}set partialCount(t){this._partialCount=t,this._forEach(e=>e.partialCount=t),this._type=this._oscillators[0].type}asArray(){return yt(this,arguments,void 0,function*(t=1024){return Oe(this,t)})}dispose(){return super.dispose(),this.frequency.dispose(),this.detune.dispose(),this._forEach(t=>t.dispose()),this}};var ko=class i extends wt{constructor(){let t=I(i.getDefaults(),arguments,["frequency","modulationFrequency"]);super(t),this.name="PWMOscillator",this.sourceType="pwm",this._scale=new re({context:this.context,value:2}),this._pulse=new qi({context:this.context,frequency:t.modulationFrequency}),this._pulse.carrierType="sine",this.modulationFrequency=this._pulse.frequency,this._modulator=new qt({context:this.context,detune:t.detune,frequency:t.frequency,onstop:()=>this.onstop(this),phase:t.phase}),this.frequency=this._modulator.frequency,this.detune=this._modulator.detune,this._modulator.chain(this._scale,this._pulse.width),this._pulse.connect(this.output),z(this,["modulationFrequency","frequency","detune"])}static getDefaults(){return Object.assign(wt.getDefaults(),{detune:0,frequency:440,modulationFrequency:.4,phase:0,type:"pwm"})}_start(t){t=this.toSeconds(t),this._modulator.start(t),this._pulse.start(t)}_stop(t){t=this.toSeconds(t),this._modulator.stop(t),this._pulse.stop(t)}_restart(t){this._modulator.restart(t),this._pulse.restart(t)}get type(){return"pwm"}get baseType(){return"pwm"}get partials(){return[]}get partialCount(){return 0}get phase(){return this._modulator.phase}set phase(t){this._modulator.phase=t}asArray(){return yt(this,arguments,void 0,function*(t=1024){return Oe(this,t)})}dispose(){return super.dispose(),this._pulse.dispose(),this._scale.dispose(),this._modulator.dispose(),this}};var Hf={am:Eo,fat:Do,fm:Fn,oscillator:qt,pulse:qi,pwm:ko},Wi=class i extends wt{constructor(){let t=I(i.getDefaults(),arguments,["frequency","type"]);super(t),this.name="OmniOscillator",this.frequency=new rt({context:this.context,units:"frequency",value:t.frequency}),this.detune=new rt({context:this.context,units:"cents",value:t.detune}),z(this,["frequency","detune"]),this.set(t)}static getDefaults(){return Object.assign(qt.getDefaults(),Fn.getDefaults(),Eo.getDefaults(),Do.getDefaults(),qi.getDefaults(),ko.getDefaults())}_start(t){this._oscillator.start(t)}_stop(t){this._oscillator.stop(t)}_restart(t){return this._oscillator.restart(t),this}get type(){let t="";return["am","fm","fat"].some(e=>this._sourceType===e)&&(t=this._sourceType),t+this._oscillator.type}set type(t){t.substr(0,2)==="fm"?(this._createNewOscillator("fm"),this._oscillator=this._oscillator,this._oscillator.type=t.substr(2)):t.substr(0,2)==="am"?(this._createNewOscillator("am"),this._oscillator=this._oscillator,this._oscillator.type=t.substr(2)):t.substr(0,3)==="fat"?(this._createNewOscillator("fat"),this._oscillator=this._oscillator,this._oscillator.type=t.substr(3)):t==="pwm"?(this._createNewOscillator("pwm"),this._oscillator=this._oscillator):t==="pulse"?this._createNewOscillator("pulse"):(this._createNewOscillator("oscillator"),this._oscillator=this._oscillator,this._oscillator.type=t)}get partials(){return this._oscillator.partials}set partials(t){!this._getOscType(this._oscillator,"pulse")&&!this._getOscType(this._oscillator,"pwm")&&(this._oscillator.partials=t)}get partialCount(){return this._oscillator.partialCount}set partialCount(t){!this._getOscType(this._oscillator,"pulse")&&!this._getOscType(this._oscillator,"pwm")&&(this._oscillator.partialCount=t)}set(t){return Reflect.has(t,"type")&&t.type&&(this.type=t.type),super.set(t),this}_createNewOscillator(t){if(t!==this._sourceType){this._sourceType=t;let e=Hf[t],r=this.now();if(this._oscillator){let n=this._oscillator;n.stop(r),this.context.setTimeout(()=>n.dispose(),this.blockTime)}this._oscillator=new e({context:this.context}),this.frequency.connect(this._oscillator.frequency),this.detune.connect(this._oscillator.detune),this._oscillator.connect(this.output),this._oscillator.onstop=()=>this.onstop(this),this.state==="started"&&this._oscillator.start(r)}}get phase(){return this._oscillator.phase}set phase(t){this._oscillator.phase=t}get sourceType(){return this._sourceType}set sourceType(t){let e="sine";this._oscillator.type!=="pwm"&&this._oscillator.type!=="pulse"&&(e=this._oscillator.type),t==="fm"?this.type="fm"+e:t==="am"?this.type="am"+e:t==="fat"?this.type="fat"+e:t==="oscillator"?this.type=e:t==="pulse"?this.type="pulse":t==="pwm"&&(this.type="pwm")}_getOscType(t,e){return t instanceof Hf[e]}get baseType(){return this._oscillator.baseType}set baseType(t){!this._getOscType(this._oscillator,"pulse")&&!this._getOscType(this._oscillator,"pwm")&&t!=="pulse"&&t!=="pwm"&&(this._oscillator.baseType=t)}get width(){if(this._getOscType(this._oscillator,"pulse"))return this._oscillator.width}get count(){if(this._getOscType(this._oscillator,"fat"))return this._oscillator.count}set count(t){this._getOscType(this._oscillator,"fat")&&le(t)&&(this._oscillator.count=t)}get spread(){if(this._getOscType(this._oscillator,"fat"))return this._oscillator.spread}set spread(t){this._getOscType(this._oscillator,"fat")&&le(t)&&(this._oscillator.spread=t)}get modulationType(){if(this._getOscType(this._oscillator,"fm")||this._getOscType(this._oscillator,"am"))return this._oscillator.modulationType}set modulationType(t){(this._getOscType(this._oscillator,"fm")||this._getOscType(this._oscillator,"am"))&&fe(t)&&(this._oscillator.modulationType=t)}get modulationIndex(){if(this._getOscType(this._oscillator,"fm"))return this._oscillator.modulationIndex}get harmonicity(){if(this._getOscType(this._oscillator,"fm")||this._getOscType(this._oscillator,"am"))return this._oscillator.harmonicity}get modulationFrequency(){if(this._getOscType(this._oscillator,"pwm"))return this._oscillator.modulationFrequency}asArray(){return yt(this,arguments,void 0,function*(t=1024){return Oe(this,t)})}dispose(){return super.dispose(),this.detune.dispose(),this.frequency.dispose(),this._oscillator.dispose(),this}};function Ma(i,t=1/0){let e=new WeakMap;return function(r,n){Reflect.defineProperty(r,n,{configurable:!0,enumerable:!0,get:function(){return e.get(this)},set:function(o){zt(o,i,t),e.set(this,o)}})}}function Re(i,t=1/0){let e=new WeakMap;return function(r,n){Reflect.defineProperty(r,n,{configurable:!0,enumerable:!0,get:function(){return e.get(this)},set:function(o){zt(this.toSeconds(o),i,t),e.set(this,o)}})}}var Lo=class i extends wt{constructor(){let t=I(i.getDefaults(),arguments,["url","onload"]);super(t),this.name="Player",this._activeSources=new Set,this._buffer=new Yt({onload:this._onload.bind(this,t.onload),onerror:t.onerror,reverse:t.reverse,url:t.url}),this.autostart=t.autostart,this._loop=t.loop,this._loopStart=t.loopStart,this._loopEnd=t.loopEnd,this._playbackRate=t.playbackRate,this.fadeIn=t.fadeIn,this.fadeOut=t.fadeOut}static getDefaults(){return Object.assign(wt.getDefaults(),{autostart:!1,fadeIn:0,fadeOut:0,loop:!1,loopEnd:0,loopStart:0,onload:ot,onerror:ot,playbackRate:1,reverse:!1})}load(t){return yt(this,void 0,void 0,function*(){return yield this._buffer.load(t),this._onload(),this})}_onload(t=ot){t(),this.autostart&&this.start()}_onSourceEnd(t){this.onstop(this),this._activeSources.delete(t),this._activeSources.size===0&&!this._synced&&this._state.getValueAtTime(this.now())==="started"&&(this._state.cancel(this.now()),this._state.setStateAtTime("stopped",this.now()))}start(t,e,r){return super.start(t,e,r),this}_start(t,e,r){this._loop?e=Pe(e,this._loopStart):e=Pe(e,0);let n=this.toSeconds(e),o=r;r=Pe(r,Math.max(this._buffer.duration-n,0));let s=this.toSeconds(r);s=s/this._playbackRate,t=this.toSeconds(t);let a=new Er({url:this._buffer,context:this.context,fadeIn:this.fadeIn,fadeOut:this.fadeOut,loop:this._loop,loopEnd:this._loopEnd,loopStart:this._loopStart,onended:this._onSourceEnd.bind(this),playbackRate:this._playbackRate}).connect(this.output);!this._loop&&!this._synced&&(this._state.cancel(t+s),this._state.setStateAtTime("stopped",t+s,{implicitEnd:!0})),this._activeSources.add(a),this._loop&&Xt(o)?a.start(t,n):a.start(t,n,s-this.toSeconds(this.fadeOut))}_stop(t){let e=this.toSeconds(t);this._activeSources.forEach(r=>r.stop(e))}restart(t,e,r){return super.restart(t,e,r),this}_restart(t,e,r){var n;(n=[...this._activeSources].pop())===null||n===void 0||n.stop(t),this._start(t,e,r)}seek(t,e){let r=this.toSeconds(e);if(this._state.getValueAtTime(r)==="started"){let n=this.toSeconds(t);this._stop(r),this._start(r,n)}return this}setLoopPoints(t,e){return this.loopStart=t,this.loopEnd=e,this}get loopStart(){return this._loopStart}set loopStart(t){this._loopStart=t,this.buffer.loaded&&zt(this.toSeconds(t),0,this.buffer.duration),this._activeSources.forEach(e=>{e.loopStart=t})}get loopEnd(){return this._loopEnd}set loopEnd(t){this._loopEnd=t,this.buffer.loaded&&zt(this.toSeconds(t),0,this.buffer.duration),this._activeSources.forEach(e=>{e.loopEnd=t})}get buffer(){return this._buffer}set buffer(t){this._buffer.set(t)}get loop(){return this._loop}set loop(t){if(this._loop!==t&&(this._loop=t,this._activeSources.forEach(e=>{e.loop=t}),t)){let e=this._state.getNextState("stopped",this.now());e&&this._state.cancel(e.time)}}get playbackRate(){return this._playbackRate}set playbackRate(t){this._playbackRate=t;let e=this.now(),r=this._state.getNextState("stopped",e);r&&r.implicitEnd&&(this._state.cancel(r.time),this._activeSources.forEach(n=>n.cancelStop())),this._activeSources.forEach(n=>{n.playbackRate.setValueAtTime(t,e)})}get reverse(){return this._buffer.reverse}set reverse(t){this._buffer.reverse=t}get loaded(){return this._buffer.loaded}dispose(){return super.dispose(),this._activeSources.forEach(t=>t.dispose()),this._activeSources.clear(),this._buffer.dispose(),this}};ye([Re(0)],Lo.prototype,"fadeIn",void 0);ye([Re(0)],Lo.prototype,"fadeOut",void 0);var Ea=class extends be{constructor(){super(...arguments),this.name="GainToAudio",this._norm=new Ne({context:this.context,mapping:t=>Math.abs(t)*2-1}),this.input=this._norm,this.output=this._norm}dispose(){return super.dispose(),this._norm.dispose(),this}};var ve=class i extends P{constructor(){let t=I(i.getDefaults(),arguments,["attack","decay","sustain","release"]);super(t),this.name="Envelope",this._sig=new rt({context:this.context,value:0}),this.output=this._sig,this.input=void 0,this.attack=t.attack,this.decay=t.decay,this.sustain=t.sustain,this.release=t.release,this.attackCurve=t.attackCurve,this.releaseCurve=t.releaseCurve,this.decayCurve=t.decayCurve}static getDefaults(){return Object.assign(P.getDefaults(),{attack:.01,attackCurve:"linear",decay:.1,decayCurve:"exponential",release:1,releaseCurve:"exponential",sustain:.5})}get value(){return this.getValueAtTime(this.now())}_getCurve(t,e){if(fe(t))return t;{let r;for(r in Da)if(Da[r][e]===t)return r;return t}}_setCurve(t,e,r){if(fe(r)&&Reflect.has(Da,r)){let n=Da[r];hr(n)?t!=="_decayCurve"&&(this[t]=n[e]):this[t]=n}else if(Vt(r)&&t!=="_decayCurve")this[t]=r;else throw new Error("Envelope: invalid curve: "+r)}get attackCurve(){return this._getCurve(this._attackCurve,"In")}set attackCurve(t){this._setCurve("_attackCurve","In",t)}get releaseCurve(){return this._getCurve(this._releaseCurve,"Out")}set releaseCurve(t){this._setCurve("_releaseCurve","Out",t)}get decayCurve(){return this._getCurve(this._decayCurve,"Out")}set decayCurve(t){this._setCurve("_decayCurve","Out",t)}triggerAttack(t,e=1){this.log("triggerAttack",t,e),t=this.toSeconds(t);let n=this.toSeconds(this.attack),o=this.toSeconds(this.decay),s=this.getValueAtTime(t);if(s>0){let a=1/n;n=(1-s)/a}if(n<this.sampleTime)this._sig.cancelScheduledValues(t),this._sig.setValueAtTime(e,t);else if(this._attackCurve==="linear")this._sig.linearRampTo(e,n,t);else if(this._attackCurve==="exponential")this._sig.targetRampTo(e,n,t);else{this._sig.cancelAndHoldAtTime(t);let a=this._attackCurve;for(let c=1;c<a.length;c++)if(a[c-1]<=s&&s<=a[c]){a=this._attackCurve.slice(c),a[0]=s;break}this._sig.setValueCurveAtTime(a,t,n,e)}if(o&&this.sustain<1){let a=e*this.sustain,c=t+n;this.log("decay",c),this._decayCurve==="linear"?this._sig.linearRampToValueAtTime(a,o+c):this._sig.exponentialApproachValueAtTime(a,c,o)}return this}triggerRelease(t){this.log("triggerRelease",t),t=this.toSeconds(t);let e=this.getValueAtTime(t);if(e>0){let r=this.toSeconds(this.release);r<this.sampleTime?this._sig.setValueAtTime(0,t):this._releaseCurve==="linear"?this._sig.linearRampTo(0,r,t):this._releaseCurve==="exponential"?this._sig.targetRampTo(0,r,t):(Y(Vt(this._releaseCurve),"releaseCurve must be either 'linear', 'exponential' or an array"),this._sig.cancelAndHoldAtTime(t),this._sig.setValueCurveAtTime(this._releaseCurve,t,r,e))}return this}getValueAtTime(t){return this._sig.getValueAtTime(t)}triggerAttackRelease(t,e,r=1){return e=this.toSeconds(e),this.triggerAttack(e,r),this.triggerRelease(e+this.toSeconds(t)),this}cancel(t){return this._sig.cancelScheduledValues(this.toSeconds(t)),this}connect(t,e=0,r=0){return En(this,t,e,r),this}asArray(){return yt(this,arguments,void 0,function*(t=1024){let e=t/this.context.sampleRate,r=new pr(1,e,this.context.sampleRate),n=this.toSeconds(this.attack)+this.toSeconds(this.decay),o=n+this.toSeconds(this.release),s=o*.1,a=o+s,c=new this.constructor(Object.assign(this.get(),{attack:e*this.toSeconds(this.attack)/a,decay:e*this.toSeconds(this.decay)/a,release:e*this.toSeconds(this.release)/a,context:r}));return c._sig.toDestination(),c.triggerAttackRelease(e*(n+s)/a,0),(yield r.render()).getChannelData(0)})}dispose(){return super.dispose(),this._sig.dispose(),this}};ye([Re(0)],ve.prototype,"attack",void 0);ye([Re(0)],ve.prototype,"decay",void 0);ye([Ma(0,1)],ve.prototype,"sustain",void 0);ye([Re(0)],ve.prototype,"release",void 0);var Da=(()=>{let t,e,r=[];for(t=0;t<128;t++)r[t]=Math.sin(t/127*(Math.PI/2));let n=[],o=6.4;for(t=0;t<127;t++){e=t/127;let p=Math.sin(e*(Math.PI*2)*o-Math.PI/2)+1;n[t]=p/10+e*.83}n[127]=1;let s=[],a=5;for(t=0;t<128;t++)s[t]=Math.ceil(t/127*a)/a;let c=[];for(t=0;t<128;t++)e=t/127,c[t]=.5*(1-Math.cos(Math.PI*e));let u=[];for(t=0;t<128;t++){e=t/127;let p=Math.pow(e,3)*4+.2,m=Math.cos(p*Math.PI*2*e);u[t]=Math.abs(m*(1-e))}function h(p){let m=new Array(p.length);for(let f=0;f<p.length;f++)m[f]=1-p[f];return m}function l(p){return p.slice(0).reverse()}return{bounce:{In:h(u),Out:u},cosine:{In:r,Out:l(r)},exponential:"exponential",linear:"linear",ripple:{In:n,Out:h(n)},sine:{In:c,Out:h(c)},step:{In:s,Out:h(s)}}})();var Ge=class i extends P{constructor(){let t=I(i.getDefaults(),arguments);super(t),this._scheduledEvents=[],this._synced=!1,this._original_triggerAttack=this.triggerAttack,this._original_triggerRelease=this.triggerRelease,this._syncedRelease=e=>this._original_triggerRelease(e),this._volume=this.output=new Ke({context:this.context,volume:t.volume}),this.volume=this._volume.volume,z(this,"volume")}static getDefaults(){return Object.assign(P.getDefaults(),{volume:0})}sync(){return this._syncState()&&(this._syncMethod("triggerAttack",1),this._syncMethod("triggerRelease",0),this.context.transport.on("stop",this._syncedRelease),this.context.transport.on("pause",this._syncedRelease),this.context.transport.on("loopEnd",this._syncedRelease)),this}_syncState(){let t=!1;return this._synced||(this._synced=!0,t=!0),t}_syncMethod(t,e){let r=this["_original_"+t]=this[t];this[t]=(...n)=>{let o=n[e],s=this.context.transport.schedule(a=>{n[e]=a,r.apply(this,n)},o);this._scheduledEvents.push(s)}}unsync(){return this._scheduledEvents.forEach(t=>this.context.transport.clear(t)),this._scheduledEvents=[],this._synced&&(this._synced=!1,this.triggerAttack=this._original_triggerAttack,this.triggerRelease=this._original_triggerRelease,this.context.transport.off("stop",this._syncedRelease),this.context.transport.off("pause",this._syncedRelease),this.context.transport.off("loopEnd",this._syncedRelease)),this}triggerAttackRelease(t,e,r,n){let o=this.toSeconds(r),s=this.toSeconds(e);return this.triggerAttack(t,o,n),this.triggerRelease(o+s),this}dispose(){return super.dispose(),this._volume.dispose(),this.unsync(),this._scheduledEvents=[],this}};var Me=class i extends Ge{constructor(){let t=I(i.getDefaults(),arguments);super(t),this.portamento=t.portamento,this.onsilence=t.onsilence}static getDefaults(){return Object.assign(Ge.getDefaults(),{detune:0,onsilence:ot,portamento:0})}triggerAttack(t,e,r=1){this.log("triggerAttack",t,e,r);let n=this.toSeconds(e);return this._triggerEnvelopeAttack(n,r),this.setNote(t,n),this}triggerRelease(t){this.log("triggerRelease",t);let e=this.toSeconds(t);return this._triggerEnvelopeRelease(e),this}setNote(t,e){let r=this.toSeconds(e),n=t instanceof _e?t.toFrequency():t;if(this.portamento>0&&this.getLevelAtTime(r)>.05){let o=this.toSeconds(this.portamento);this.frequency.exponentialRampTo(n,o,r)}else this.frequency.setValueAtTime(n,r);return this}};ye([Re(0)],Me.prototype,"portamento",void 0);var Bn=class i extends ve{constructor(){super(I(i.getDefaults(),arguments,["attack","decay","sustain","release"])),this.name="AmplitudeEnvelope",this._gainNode=new Z({context:this.context,gain:0}),this.output=this._gainNode,this.input=this._gainNode,this._sig.connect(this._gainNode.gain),this.output=this._gainNode,this.input=this._gainNode}dispose(){return super.dispose(),this._gainNode.dispose(),this}};var Dr=class i extends Me{constructor(){let t=I(i.getDefaults(),arguments);super(t),this.name="Synth",this.oscillator=new Wi(Object.assign({context:this.context,detune:t.detune,onstop:()=>this.onsilence(this)},t.oscillator)),this.frequency=this.oscillator.frequency,this.detune=this.oscillator.detune,this.envelope=new Bn(Object.assign({context:this.context},t.envelope)),this.oscillator.chain(this.envelope,this.output),z(this,["oscillator","frequency","detune","envelope"])}static getDefaults(){return Object.assign(Me.getDefaults(),{envelope:Object.assign(dr(ve.getDefaults(),Object.keys(P.getDefaults())),{attack:.005,decay:.1,release:1,sustain:.3}),oscillator:Object.assign(dr(Wi.getDefaults(),[...Object.keys(wt.getDefaults()),"frequency","detune"]),{type:"triangle"})})}_triggerEnvelopeAttack(t,e){if(this.envelope.triggerAttack(t,e),this.oscillator.start(t),this.envelope.sustain===0){let r=this.toSeconds(this.envelope.attack),n=this.toSeconds(this.envelope.decay);this.oscillator.stop(t+r+n)}}_triggerEnvelopeRelease(t){this.envelope.triggerRelease(t),this.oscillator.stop(t+this.toSeconds(this.envelope.release))}getLevelAtTime(t){return t=this.toSeconds(t),this.envelope.getValueAtTime(t)}dispose(){return super.dispose(),this.oscillator.dispose(),this.envelope.dispose(),this}};var jo=class i extends P{constructor(){let t=I(i.getDefaults(),arguments,["frequency","type"]);super(t),this.name="BiquadFilter",this._filter=this.context.createBiquadFilter(),this.input=this.output=this._filter,this.Q=new ht({context:this.context,units:"number",value:t.Q,param:this._filter.Q}),this.frequency=new ht({context:this.context,units:"frequency",value:t.frequency,param:this._filter.frequency}),this.detune=new ht({context:this.context,units:"cents",value:t.detune,param:this._filter.detune}),this.gain=new ht({context:this.context,units:"decibels",convert:!1,value:t.gain,param:this._filter.gain}),this.type=t.type}static getDefaults(){return Object.assign(P.getDefaults(),{Q:1,type:"lowpass",frequency:350,detune:0,gain:0})}get type(){return this._filter.type}set type(t){Y(["lowpass","highpass","bandpass","lowshelf","highshelf","notch","allpass","peaking"].indexOf(t)!==-1,`Invalid filter type: ${t}`),this._filter.type=t}getFrequencyResponse(t=128){let e=new Float32Array(t);for(let s=0;s<t;s++){let c=Math.pow(s/t,2)*19980+20;e[s]=c}let r=new Float32Array(t),n=new Float32Array(t),o=this.context.createBiquadFilter();return o.type=this.type,o.Q.value=this.Q.value,o.frequency.value=this.frequency.value,o.gain.value=this.gain.value,o.getFrequencyResponse(e,r,n),r}dispose(){return super.dispose(),this._filter.disconnect(),this.Q.dispose(),this.frequency.dispose(),this.gain.dispose(),this.detune.dispose(),this}};var $r=class i extends P{constructor(){let t=I(i.getDefaults(),arguments,["frequency","type","rolloff"]);super(t),this.name="Filter",this.input=new Z({context:this.context}),this.output=new Z({context:this.context}),this._filters=[],this._filters=[],this.Q=new rt({context:this.context,units:"positive",value:t.Q}),this.frequency=new rt({context:this.context,units:"frequency",value:t.frequency}),this.detune=new rt({context:this.context,units:"cents",value:t.detune}),this.gain=new rt({context:this.context,units:"decibels",convert:!1,value:t.gain}),this._type=t.type,this.rolloff=t.rolloff,z(this,["detune","frequency","gain","Q"])}static getDefaults(){return Object.assign(P.getDefaults(),{Q:1,detune:0,frequency:350,gain:0,rolloff:-12,type:"lowpass"})}get type(){return this._type}set type(t){Y(["lowpass","highpass","bandpass","lowshelf","highshelf","notch","allpass","peaking"].indexOf(t)!==-1,`Invalid filter type: ${t}`),this._type=t,this._filters.forEach(r=>r.type=t)}get rolloff(){return this._rolloff}set rolloff(t){let e=le(t)?t:parseInt(t,10),r=[-12,-24,-48,-96],n=r.indexOf(e);Y(n!==-1,`rolloff can only be ${r.join(", ")}`),n+=1,this._rolloff=e,this.input.disconnect(),this._filters.forEach(o=>o.disconnect()),this._filters=new Array(n);for(let o=0;o<n;o++){let s=new jo({context:this.context});s.type=this._type,this.frequency.connect(s.frequency),this.detune.connect(s.detune),this.Q.connect(s.Q),this.gain.connect(s.gain),this._filters[o]=s}this._internalChannels=this._filters,Qe(this.input,...this._internalChannels,this.output)}getFrequencyResponse(t=128){let e=new jo({context:this.context,frequency:this.frequency.value,gain:this.gain.value,Q:this.Q.value,type:this._type,detune:this.detune.value}),r=new Float32Array(t).map(()=>1);return this._filters.forEach(()=>{e.getFrequencyResponse(t).forEach((o,s)=>r[s]*=o)}),e.dispose(),r}dispose(){return super.dispose(),this._filters.forEach(t=>{t.dispose()}),Bi(this,["detune","frequency","gain","Q"]),this.frequency.dispose(),this.Q.dispose(),this.detune.dispose(),this.gain.dispose(),this}};var ka=class i extends Dr{constructor(){let t=I(i.getDefaults(),arguments);super(t),this.name="MembraneSynth",this.portamento=0,this.pitchDecay=t.pitchDecay,this.octaves=t.octaves,z(this,["oscillator","envelope"])}static getDefaults(){return Ze(Me.getDefaults(),Dr.getDefaults(),{envelope:{attack:.001,attackCurve:"exponential",decay:.4,release:1.4,sustain:.01},octaves:10,oscillator:{type:"sine"},pitchDecay:.05})}setNote(t,e){let r=this.toSeconds(e),n=this.toFrequency(t instanceof _e?t.toFrequency():t),o=n*this.octaves;return this.oscillator.frequency.setValueAtTime(o,r),this.oscillator.frequency.exponentialRampToValueAtTime(n,r+this.toSeconds(this.pitchDecay)),this}dispose(){return super.dispose(),this}};ye([Ma(0)],ka.prototype,"octaves",void 0);ye([Re(0)],ka.prototype,"pitchDecay",void 0);var $f=new Set;function Vn(i){$f.add(i)}function La(i,t){let e=`registerProcessor("${i}", ${t})`;$f.add(e)}var cv=`
20
100
  /**
21
101
  * The base AudioWorkletProcessor for use in Tone.js. Works with the {@link ToneAudioWorklet}.
22
102
  */
@@ -46,7 +126,7 @@
46
126
  };
47
127
  }
48
128
  }
49
- `;Vn(av);var cv=`
129
+ `;Vn(cv);var uv=`
50
130
  /**
51
131
  * Abstract class for a single input/output processor.
52
132
  * has a 'generate' function which processes one sample at a time
@@ -113,7 +193,7 @@
113
193
  return !this.disposed;
114
194
  }
115
195
  };
116
- `;Vn(cv);var uv=`
196
+ `;Vn(uv);var hv=`
117
197
  /**
118
198
  * A multichannel buffer for use within an AudioWorkletProcessor as a delay line
119
199
  */
@@ -157,7 +237,7 @@
157
237
  return this.buffer[channel][readHead];
158
238
  }
159
239
  }
160
- `;Vn(uv);var Zf="feedback-comb-filter",hv=`
240
+ `;Vn(hv);var Zf="feedback-comb-filter",lv=`
161
241
  class FeedbackCombFilterWorklet extends SingleIOProcessor {
162
242
 
163
243
  constructor(options) {
@@ -187,7 +267,7 @@
187
267
  return delayedSample;
188
268
  }
189
269
  }
190
- `;La(Zf,hv);var ja=class i extends Ge{constructor(){let t=I(i.getDefaults(),arguments,["voice","options"]);super(t),this.name="PolySynth",this._availableVoices=[],this._activeVoices=[],this._voices=[],this._gcTimeout=-1,this._averageActiveVoices=0,this._syncedRelease=n=>this.releaseAll(n),Y(!le(t.voice),"DEPRECATED: The polyphony count is no longer the first argument.");let e=t.voice.getDefaults();this.options=Object.assign(e,t.options),this.voice=t.voice,this.maxPolyphony=t.maxPolyphony,this._dummyVoice=this._getNextAvailableVoice();let r=this._voices.indexOf(this._dummyVoice);this._voices.splice(r,1),this._gcTimeout=this.context.setInterval(this._collectGarbage.bind(this),1)}static getDefaults(){return Object.assign(Ge.getDefaults(),{maxPolyphony:32,options:{},voice:Dr})}get activeVoices(){return this._activeVoices.length}_makeVoiceAvailable(t){this._availableVoices.push(t);let e=this._activeVoices.findIndex(r=>r.voice===t);this._activeVoices.splice(e,1)}_getNextAvailableVoice(){if(this._availableVoices.length)return this._availableVoices.shift();if(this._voices.length<this.maxPolyphony){let t=new this.voice(Object.assign(this.options,{context:this.context,onsilence:this._makeVoiceAvailable.bind(this)}));return Y(t instanceof Me,"Voice must extend Monophonic class"),t.connect(this.output),this._voices.push(t),t}else ji("Max polyphony exceeded. Note dropped.")}_collectGarbage(){if(this._averageActiveVoices=Math.max(this._averageActiveVoices*.95,this.activeVoices),this._availableVoices.length&&this._voices.length>Math.ceil(this._averageActiveVoices+1)){let t=this._availableVoices.shift(),e=this._voices.indexOf(t);this._voices.splice(e,1),this.context.isOffline||t.dispose()}}_triggerAttack(t,e,r){t.forEach(n=>{let o=new Ro(this.context,n).toMidi(),s=this._getNextAvailableVoice();s&&(s.triggerAttack(n,e,r),this._activeVoices.push({midi:o,voice:s,released:!1}),this.log("triggerAttack",n,e))})}_triggerRelease(t,e){t.forEach(r=>{let n=new Ro(this.context,r).toMidi(),o=this._activeVoices.find(({midi:s,released:a})=>s===n&&!a);o&&(o.voice.triggerRelease(e),o.released=!0,this.log("triggerRelease",r,e))})}_scheduleEvent(t,e,r,n){Y(!this.disposed,"Synth was already disposed"),r<=this.now()?t==="attack"?this._triggerAttack(e,r,n):this._triggerRelease(e,r):this.context.setTimeout(()=>{this.disposed||this._scheduleEvent(t,e,r,n)},r-this.now())}triggerAttack(t,e,r){Array.isArray(t)||(t=[t]);let n=this.toSeconds(e);return this._scheduleEvent("attack",t,n,r),this}triggerRelease(t,e){Array.isArray(t)||(t=[t]);let r=this.toSeconds(e);return this._scheduleEvent("release",t,r),this}triggerAttackRelease(t,e,r,n){let o=this.toSeconds(r);if(this.triggerAttack(t,o,n),Vt(e)){Y(Vt(t),"If the duration is an array, the notes must also be an array"),t=t;for(let s=0;s<t.length;s++){let a=e[Math.min(s,e.length-1)],c=this.toSeconds(a);Y(c>0,"The duration must be greater than 0"),this.triggerRelease(t[s],o+c)}}else{let s=this.toSeconds(e);Y(s>0,"The duration must be greater than 0"),this.triggerRelease(t,o+s)}return this}sync(){return this._syncState()&&(this._syncMethod("triggerAttack",1),this._syncMethod("triggerRelease",1),this.context.transport.on("stop",this._syncedRelease),this.context.transport.on("pause",this._syncedRelease),this.context.transport.on("loopEnd",this._syncedRelease)),this}set(t){let e=dr(t,["onsilence","context"]);return this.options=Ze(this.options,e),this._voices.forEach(r=>r.set(e)),this._dummyVoice.set(e),this}get(){return this._dummyVoice.get()}releaseAll(t){let e=this.toSeconds(t);return this._activeVoices.forEach(({voice:r})=>{r.triggerRelease(e)}),this}dispose(){return super.dispose(),this._dummyVoice.dispose(),this._voices.forEach(t=>t.dispose()),this._activeVoices=[],this._availableVoices=[],this.context.clearInterval(this._gcTimeout),this}};var Pa=class i extends Ge{constructor(){let t=I(i.getDefaults(),arguments,["urls","onload","baseUrl"],"urls");super(t),this.name="Sampler",this._activeSources=new Map;let e={};Object.keys(t.urls).forEach(r=>{let n=parseInt(r,10);if(Y(Io(r)||le(n)&&isFinite(n),`url key is neither a note or midi pitch: ${r}`),Io(r)){let o=new _e(this.context,r).toMidi();e[o]=t.urls[r]}else le(n)&&isFinite(n)&&(e[n]=t.urls[n])}),this._buffers=new kn({urls:e,onload:t.onload,baseUrl:t.baseUrl,onerror:t.onerror}),this.attack=t.attack,this.release=t.release,this.curve=t.curve,this._buffers.loaded&&Promise.resolve().then(t.onload)}static getDefaults(){return Object.assign(Ge.getDefaults(),{attack:0,baseUrl:"",curve:"exponential",onload:ot,onerror:ot,release:.1,urls:{}})}_findClosest(t){let r=0;for(;r<96;){if(this._buffers.has(t+r))return-r;if(this._buffers.has(t-r))return r;r++}throw new Error(`No available buffers for note: ${t}`)}triggerAttack(t,e,r=1){return this.log("triggerAttack",t,e,r),Array.isArray(t)||(t=[t]),t.forEach(n=>{let o=hh(new _e(this.context,n).toFrequency()),s=Math.round(o),a=o-s,c=this._findClosest(s),u=s-c,h=this._buffers.get(u),l=Gi(c+a),p=new Er({url:h,context:this.context,curve:this.curve,fadeIn:this.attack,fadeOut:this.release,playbackRate:l}).connect(this.output);p.start(e,0,h.duration/l,r),Vt(this._activeSources.get(s))||this._activeSources.set(s,[]),this._activeSources.get(s).push(p),p.onended=()=>{if(this._activeSources&&this._activeSources.has(s)){let m=this._activeSources.get(s),f=m.indexOf(p);f!==-1&&m.splice(f,1)}}}),this}triggerRelease(t,e){return this.log("triggerRelease",t,e),Array.isArray(t)||(t=[t]),t.forEach(r=>{let n=new _e(this.context,r).toMidi();if(this._activeSources.has(n)&&this._activeSources.get(n).length){let o=this._activeSources.get(n);e=this.toSeconds(e),o.forEach(s=>{s.stop(e)}),this._activeSources.set(n,[])}}),this}releaseAll(t){let e=this.toSeconds(t);return this._activeSources.forEach(r=>{for(;r.length;)r.shift().stop(e)}),this}sync(){return this._syncState()&&(this._syncMethod("triggerAttack",1),this._syncMethod("triggerRelease",1)),this}triggerAttackRelease(t,e,r,n=1){let o=this.toSeconds(r);return this.triggerAttack(t,o,n),Vt(e)?(Y(Vt(t),"notes must be an array when duration is array"),t.forEach((s,a)=>{let c=e[Math.min(a,e.length-1)];this.triggerRelease(s,o+this.toSeconds(c))})):this.triggerRelease(t,o+this.toSeconds(e)),this}add(t,e,r){if(Y(Io(t)||isFinite(t),`note must be a pitch or midi: ${t}`),Io(t)){let n=new _e(this.context,t).toMidi();this._buffers.add(n,e,r)}else this._buffers.add(t,e,r);return this}get loaded(){return this._buffers.loaded}dispose(){return super.dispose(),this._buffers.dispose(),this._activeSources.forEach(t=>{t.forEach(e=>e.dispose())}),this._activeSources.clear(),this}};ye([Re(0)],Pa.prototype,"attack",void 0);ye([Re(0)],Pa.prototype,"release",void 0);var qn=class i extends P{constructor(){let t=I(i.getDefaults(),arguments,["fade"]);super(t),this.name="CrossFade",this._panner=this.context.createStereoPanner(),this._split=this.context.createChannelSplitter(2),this._g2a=new Ea({context:this.context}),this.a=new Z({context:this.context,gain:0}),this.b=new Z({context:this.context,gain:0}),this.output=new Z({context:this.context}),this._internalChannels=[this.a,this.b],this.fade=new rt({context:this.context,units:"normalRange",value:t.fade}),z(this,"fade"),this.context.getConstant(1).connect(this._panner),this._panner.connect(this._split),this._panner.channelCount=1,this._panner.channelCountMode="explicit",de(this._split,this.a.gain,0),de(this._split,this.b.gain,1),this.fade.chain(this._g2a,this._panner.pan),this.a.connect(this.output),this.b.connect(this.output)}static getDefaults(){return Object.assign(P.getDefaults(),{fade:.5})}dispose(){return super.dispose(),this.a.dispose(),this.b.dispose(),this.output.dispose(),this.fade.dispose(),this._g2a.dispose(),this._panner.disconnect(),this._split.disconnect(),this}};var Ee=class extends P{constructor(t){super(t),this.name="Effect",this._dryWet=new qn({context:this.context}),this.wet=this._dryWet.fade,this.effectSend=new Z({context:this.context}),this.effectReturn=new Z({context:this.context}),this.input=new Z({context:this.context}),this.output=this._dryWet,this.input.fan(this._dryWet.a,this.effectSend),this.effectReturn.connect(this._dryWet.b),this.wet.setValueAtTime(t.wet,0),this._internalChannels=[this.effectReturn,this.effectSend],z(this,"wet")}static getDefaults(){return Object.assign(P.getDefaults(),{wet:1})}connectEffect(t){return this._internalChannels.push(t),this.effectSend.chain(t,this.effectReturn),this}dispose(){return super.dispose(),this._dryWet.dispose(),this.effectSend.dispose(),this.effectReturn.dispose(),this.wet.dispose(),this}};var Po=class i extends P{constructor(){let t=I(i.getDefaults(),arguments,["pan"]);super(t),this.name="Panner",this._panner=this.context.createStereoPanner(),this.input=this._panner,this.output=this._panner,this.pan=new ht({context:this.context,param:this._panner.pan,value:t.pan,minValue:-1,maxValue:1}),this._panner.channelCount=t.channelCount,this._panner.channelCountMode="explicit",z(this,"pan")}static getDefaults(){return Object.assign(P.getDefaults(),{pan:0,channelCount:1})}dispose(){return super.dispose(),this._panner.disconnect(),this.pan.dispose(),this}};var Qf="bit-crusher",yv=`
270
+ `;La(Zf,lv);var ja=class i extends Ge{constructor(){let t=I(i.getDefaults(),arguments,["voice","options"]);super(t),this.name="PolySynth",this._availableVoices=[],this._activeVoices=[],this._voices=[],this._gcTimeout=-1,this._averageActiveVoices=0,this._syncedRelease=n=>this.releaseAll(n),Y(!le(t.voice),"DEPRECATED: The polyphony count is no longer the first argument.");let e=t.voice.getDefaults();this.options=Object.assign(e,t.options),this.voice=t.voice,this.maxPolyphony=t.maxPolyphony,this._dummyVoice=this._getNextAvailableVoice();let r=this._voices.indexOf(this._dummyVoice);this._voices.splice(r,1),this._gcTimeout=this.context.setInterval(this._collectGarbage.bind(this),1)}static getDefaults(){return Object.assign(Ge.getDefaults(),{maxPolyphony:32,options:{},voice:Dr})}get activeVoices(){return this._activeVoices.length}_makeVoiceAvailable(t){this._availableVoices.push(t);let e=this._activeVoices.findIndex(r=>r.voice===t);this._activeVoices.splice(e,1)}_getNextAvailableVoice(){if(this._availableVoices.length)return this._availableVoices.shift();if(this._voices.length<this.maxPolyphony){let t=new this.voice(Object.assign(this.options,{context:this.context,onsilence:this._makeVoiceAvailable.bind(this)}));return Y(t instanceof Me,"Voice must extend Monophonic class"),t.connect(this.output),this._voices.push(t),t}else ji("Max polyphony exceeded. Note dropped.")}_collectGarbage(){if(this._averageActiveVoices=Math.max(this._averageActiveVoices*.95,this.activeVoices),this._availableVoices.length&&this._voices.length>Math.ceil(this._averageActiveVoices+1)){let t=this._availableVoices.shift(),e=this._voices.indexOf(t);this._voices.splice(e,1),this.context.isOffline||t.dispose()}}_triggerAttack(t,e,r){t.forEach(n=>{let o=new Ro(this.context,n).toMidi(),s=this._getNextAvailableVoice();s&&(s.triggerAttack(n,e,r),this._activeVoices.push({midi:o,voice:s,released:!1}),this.log("triggerAttack",n,e))})}_triggerRelease(t,e){t.forEach(r=>{let n=new Ro(this.context,r).toMidi(),o=this._activeVoices.find(({midi:s,released:a})=>s===n&&!a);o&&(o.voice.triggerRelease(e),o.released=!0,this.log("triggerRelease",r,e))})}_scheduleEvent(t,e,r,n){Y(!this.disposed,"Synth was already disposed"),r<=this.now()?t==="attack"?this._triggerAttack(e,r,n):this._triggerRelease(e,r):this.context.setTimeout(()=>{this.disposed||this._scheduleEvent(t,e,r,n)},r-this.now())}triggerAttack(t,e,r){Array.isArray(t)||(t=[t]);let n=this.toSeconds(e);return this._scheduleEvent("attack",t,n,r),this}triggerRelease(t,e){Array.isArray(t)||(t=[t]);let r=this.toSeconds(e);return this._scheduleEvent("release",t,r),this}triggerAttackRelease(t,e,r,n){let o=this.toSeconds(r);if(this.triggerAttack(t,o,n),Vt(e)){Y(Vt(t),"If the duration is an array, the notes must also be an array"),t=t;for(let s=0;s<t.length;s++){let a=e[Math.min(s,e.length-1)],c=this.toSeconds(a);Y(c>0,"The duration must be greater than 0"),this.triggerRelease(t[s],o+c)}}else{let s=this.toSeconds(e);Y(s>0,"The duration must be greater than 0"),this.triggerRelease(t,o+s)}return this}sync(){return this._syncState()&&(this._syncMethod("triggerAttack",1),this._syncMethod("triggerRelease",1),this.context.transport.on("stop",this._syncedRelease),this.context.transport.on("pause",this._syncedRelease),this.context.transport.on("loopEnd",this._syncedRelease)),this}set(t){let e=dr(t,["onsilence","context"]);return this.options=Ze(this.options,e),this._voices.forEach(r=>r.set(e)),this._dummyVoice.set(e),this}get(){return this._dummyVoice.get()}releaseAll(t){let e=this.toSeconds(t);return this._activeVoices.forEach(({voice:r})=>{r.triggerRelease(e)}),this}dispose(){return super.dispose(),this._dummyVoice.dispose(),this._voices.forEach(t=>t.dispose()),this._activeVoices=[],this._availableVoices=[],this.context.clearInterval(this._gcTimeout),this}};var Pa=class i extends Ge{constructor(){let t=I(i.getDefaults(),arguments,["urls","onload","baseUrl"],"urls");super(t),this.name="Sampler",this._activeSources=new Map;let e={};Object.keys(t.urls).forEach(r=>{let n=parseInt(r,10);if(Y(Io(r)||le(n)&&isFinite(n),`url key is neither a note or midi pitch: ${r}`),Io(r)){let o=new _e(this.context,r).toMidi();e[o]=t.urls[r]}else le(n)&&isFinite(n)&&(e[n]=t.urls[n])}),this._buffers=new kn({urls:e,onload:t.onload,baseUrl:t.baseUrl,onerror:t.onerror}),this.attack=t.attack,this.release=t.release,this.curve=t.curve,this._buffers.loaded&&Promise.resolve().then(t.onload)}static getDefaults(){return Object.assign(Ge.getDefaults(),{attack:0,baseUrl:"",curve:"exponential",onload:ot,onerror:ot,release:.1,urls:{}})}_findClosest(t){let r=0;for(;r<96;){if(this._buffers.has(t+r))return-r;if(this._buffers.has(t-r))return r;r++}throw new Error(`No available buffers for note: ${t}`)}triggerAttack(t,e,r=1){return this.log("triggerAttack",t,e,r),Array.isArray(t)||(t=[t]),t.forEach(n=>{let o=hh(new _e(this.context,n).toFrequency()),s=Math.round(o),a=o-s,c=this._findClosest(s),u=s-c,h=this._buffers.get(u),l=Gi(c+a),p=new Er({url:h,context:this.context,curve:this.curve,fadeIn:this.attack,fadeOut:this.release,playbackRate:l}).connect(this.output);p.start(e,0,h.duration/l,r),Vt(this._activeSources.get(s))||this._activeSources.set(s,[]),this._activeSources.get(s).push(p),p.onended=()=>{if(this._activeSources&&this._activeSources.has(s)){let m=this._activeSources.get(s),f=m.indexOf(p);f!==-1&&m.splice(f,1)}}}),this}triggerRelease(t,e){return this.log("triggerRelease",t,e),Array.isArray(t)||(t=[t]),t.forEach(r=>{let n=new _e(this.context,r).toMidi();if(this._activeSources.has(n)&&this._activeSources.get(n).length){let o=this._activeSources.get(n);e=this.toSeconds(e),o.forEach(s=>{s.stop(e)}),this._activeSources.set(n,[])}}),this}releaseAll(t){let e=this.toSeconds(t);return this._activeSources.forEach(r=>{for(;r.length;)r.shift().stop(e)}),this}sync(){return this._syncState()&&(this._syncMethod("triggerAttack",1),this._syncMethod("triggerRelease",1)),this}triggerAttackRelease(t,e,r,n=1){let o=this.toSeconds(r);return this.triggerAttack(t,o,n),Vt(e)?(Y(Vt(t),"notes must be an array when duration is array"),t.forEach((s,a)=>{let c=e[Math.min(a,e.length-1)];this.triggerRelease(s,o+this.toSeconds(c))})):this.triggerRelease(t,o+this.toSeconds(e)),this}add(t,e,r){if(Y(Io(t)||isFinite(t),`note must be a pitch or midi: ${t}`),Io(t)){let n=new _e(this.context,t).toMidi();this._buffers.add(n,e,r)}else this._buffers.add(t,e,r);return this}get loaded(){return this._buffers.loaded}dispose(){return super.dispose(),this._buffers.dispose(),this._activeSources.forEach(t=>{t.forEach(e=>e.dispose())}),this._activeSources.clear(),this}};ye([Re(0)],Pa.prototype,"attack",void 0);ye([Re(0)],Pa.prototype,"release",void 0);var qn=class i extends P{constructor(){let t=I(i.getDefaults(),arguments,["fade"]);super(t),this.name="CrossFade",this._panner=this.context.createStereoPanner(),this._split=this.context.createChannelSplitter(2),this._g2a=new Ea({context:this.context}),this.a=new Z({context:this.context,gain:0}),this.b=new Z({context:this.context,gain:0}),this.output=new Z({context:this.context}),this._internalChannels=[this.a,this.b],this.fade=new rt({context:this.context,units:"normalRange",value:t.fade}),z(this,"fade"),this.context.getConstant(1).connect(this._panner),this._panner.connect(this._split),this._panner.channelCount=1,this._panner.channelCountMode="explicit",de(this._split,this.a.gain,0),de(this._split,this.b.gain,1),this.fade.chain(this._g2a,this._panner.pan),this.a.connect(this.output),this.b.connect(this.output)}static getDefaults(){return Object.assign(P.getDefaults(),{fade:.5})}dispose(){return super.dispose(),this.a.dispose(),this.b.dispose(),this.output.dispose(),this.fade.dispose(),this._g2a.dispose(),this._panner.disconnect(),this._split.disconnect(),this}};var Ee=class extends P{constructor(t){super(t),this.name="Effect",this._dryWet=new qn({context:this.context}),this.wet=this._dryWet.fade,this.effectSend=new Z({context:this.context}),this.effectReturn=new Z({context:this.context}),this.input=new Z({context:this.context}),this.output=this._dryWet,this.input.fan(this._dryWet.a,this.effectSend),this.effectReturn.connect(this._dryWet.b),this.wet.setValueAtTime(t.wet,0),this._internalChannels=[this.effectReturn,this.effectSend],z(this,"wet")}static getDefaults(){return Object.assign(P.getDefaults(),{wet:1})}connectEffect(t){return this._internalChannels.push(t),this.effectSend.chain(t,this.effectReturn),this}dispose(){return super.dispose(),this._dryWet.dispose(),this.effectSend.dispose(),this.effectReturn.dispose(),this.wet.dispose(),this}};var Po=class i extends P{constructor(){let t=I(i.getDefaults(),arguments,["pan"]);super(t),this.name="Panner",this._panner=this.context.createStereoPanner(),this.input=this._panner,this.output=this._panner,this.pan=new ht({context:this.context,param:this._panner.pan,value:t.pan,minValue:-1,maxValue:1}),this._panner.channelCount=t.channelCount,this._panner.channelCountMode="explicit",z(this,"pan")}static getDefaults(){return Object.assign(P.getDefaults(),{pan:0,channelCount:1})}dispose(){return super.dispose(),this._panner.disconnect(),this.pan.dispose(),this}};var Qf="bit-crusher",bv=`
191
271
  class BitCrusherWorklet extends SingleIOProcessor {
192
272
 
193
273
  static get parameterDescriptors() {
@@ -206,8 +286,8 @@
206
286
  return val;
207
287
  }
208
288
  }
209
- `;La(Qf,yv);var mi=class i extends P{constructor(){let t=I(i.getDefaults(),arguments,["channels"]);super(t),this.name="Merge",this._merger=this.output=this.input=this.context.createChannelMerger(t.channels)}static getDefaults(){return Object.assign(P.getDefaults(),{channels:2})}dispose(){return super.dispose(),this._merger.disconnect(),this}};var Brt=[1557/44100,1617/44100,1491/44100,1422/44100,1277/44100,1356/44100,1188/44100,1116/44100];var Hrt=[1687/25e3,1601/25e3,2053/25e3,2251/25e3];var Ga=class i extends Ee{constructor(){let t=I(i.getDefaults(),arguments,["decay"]);super(t),this.name="Reverb",this._convolver=this.context.createConvolver(),this.ready=Promise.resolve();let e=this.toSeconds(t.decay);zt(e,.001),this._decay=e;let r=this.toSeconds(t.preDelay);zt(r,0),this._preDelay=r,this.generate(),this.connectEffect(this._convolver)}static getDefaults(){return Object.assign(Ee.getDefaults(),{decay:1.5,preDelay:.01})}get decay(){return this._decay}set decay(t){t=this.toSeconds(t),zt(t,.001),this._decay=t,this.generate()}get preDelay(){return this._preDelay}set preDelay(t){t=this.toSeconds(t),zt(t,0),this._preDelay=t,this.generate()}generate(){return yt(this,void 0,void 0,function*(){let t=this.ready,e=new pr(2,this._decay+this._preDelay,this.context.sampleRate),r=new Vi({context:e}),n=new Vi({context:e}),o=new mi({context:e});r.connect(o,0,0),n.connect(o,0,1);let s=new Z({context:e}).toDestination();o.connect(s),r.start(0),n.start(0),s.gain.setValueAtTime(0,0),s.gain.setValueAtTime(1,this._preDelay),s.gain.exponentialApproachValueAtTime(0,this._preDelay,this.decay);let a=e.render();return this.ready=a.then(ot),yield t,this._convolver.buffer=(yield a).get(),this})}dispose(){return super.dispose(),this._convolver.disconnect(),this}};var Wn=class i extends P{constructor(){let t=I(i.getDefaults(),arguments,["solo"]);super(t),this.name="Solo",this.input=this.output=new Z({context:this.context}),i._allSolos.has(this.context)||i._allSolos.set(this.context,new Set),i._allSolos.get(this.context).add(this),this.solo=t.solo}static getDefaults(){return Object.assign(P.getDefaults(),{solo:!1})}get solo(){return this._isSoloed()}set solo(t){t?this._addSolo():this._removeSolo(),i._allSolos.get(this.context).forEach(e=>e._updateSolo())}get muted(){return this.input.gain.value===0}_addSolo(){i._soloed.has(this.context)||i._soloed.set(this.context,new Set),i._soloed.get(this.context).add(this)}_removeSolo(){i._soloed.has(this.context)&&i._soloed.get(this.context).delete(this)}_isSoloed(){return i._soloed.has(this.context)&&i._soloed.get(this.context).has(this)}_noSolos(){return!i._soloed.has(this.context)||i._soloed.has(this.context)&&i._soloed.get(this.context).size===0}_updateSolo(){this._isSoloed()?this.input.gain.value=1:this._noSolos()?this.input.gain.value=1:this.input.gain.value=0}dispose(){return super.dispose(),i._allSolos.get(this.context).delete(this),this._removeSolo(),this}};Wn._allSolos=new Map;Wn._soloed=new Map;var Va=class i extends P{constructor(){let t=I(i.getDefaults(),arguments,["pan","volume"]);super(t),this.name="PanVol",this._panner=this.input=new Po({context:this.context,pan:t.pan,channelCount:t.channelCount}),this.pan=this._panner.pan,this._volume=this.output=new Ke({context:this.context,volume:t.volume}),this.volume=this._volume.volume,this._panner.connect(this._volume),this.mute=t.mute,z(this,["pan","volume"])}static getDefaults(){return Object.assign(P.getDefaults(),{mute:!1,pan:0,volume:0,channelCount:1})}get mute(){return this._volume.mute}set mute(t){this._volume.mute=t}dispose(){return super.dispose(),this._panner.dispose(),this.pan.dispose(),this._volume.dispose(),this.volume.dispose(),this}};var Ah=class i extends P{constructor(){let t=I(i.getDefaults(),arguments,["volume","pan"]);super(t),this.name="Channel",this._solo=this.input=new Wn({solo:t.solo,context:this.context}),this._panVol=this.output=new Va({context:this.context,pan:t.pan,volume:t.volume,mute:t.mute,channelCount:t.channelCount}),this.pan=this._panVol.pan,this.volume=this._panVol.volume,this._solo.connect(this._panVol),z(this,["pan","volume"])}static getDefaults(){return Object.assign(P.getDefaults(),{pan:0,volume:0,mute:!1,solo:!1,channelCount:1})}get solo(){return this._solo.solo}set solo(t){this._solo.solo=t}get muted(){return this._solo.muted||this.mute}get mute(){return this._panVol.mute}set mute(t){this._panVol.mute=t}_getBus(t){return i.buses.has(t)||i.buses.set(t,new Z({context:this.context})),i.buses.get(t)}send(t,e=0){let r=this._getBus(t),n=new Z({context:this.context,units:"decibels",gain:e});return this.connect(n),n.connect(r),n}receive(t){return this._getBus(t).connect(this),this}dispose(){return super.dispose(),this._panVol.dispose(),this.pan.dispose(),this.volume.dispose(),this._solo.dispose(),this}};Ah.buses=new Map;var Dat=Qt().transport;var kat=Qt().destination,Lat=Qt().destination;var jat=Qt().listener;var Pat=Qt().draw;var Fat=Qt();var Ch=class{constructor(){d(this,"audioSource");try{let t=new Ga({decay:3,wet:.4}).toDestination(),e=new $r(800,"lowpass").connect(t);this.audioSource=new ja(Dr,{oscillator:{type:"triangle"},envelope:{attack:.001,decay:2,sustain:.1,release:1.2}}).connect(e)}catch(t){this.audioSource=void 0,console.error(t)}}getName(){return"Synthesizer"}playNote(t,e,r){try{this.audioSource&&(this.audioSource.volume.value=Js(r),this.audioSource.triggerAttackRelease(t,e))}catch(n){}}stop(){try{this.audioSource&&this.audioSource.releaseAll()}catch(t){}}},_h=new Ch;Ii();function wv(i){return typeof i=="string"?i:(typeof i=="number"&&(i=U.getChromaticNote(i)),i.format(0,0))}var qa=[_h],Un=_h,Iv=(function(t,e,r){var o;let n=parseInt((o=r.split("/")[1])!=null?o:"4");return 60*(1/t)/(e*(1/n))})(2,80,"4/4"),Tv=1,Wa=!1;function Nv(){return qa.map(i=>i.getName())}function Ov(){return Un.getName()}function Rv(i){(y.isArray(i)?i:[i]).forEach(t=>{if(!$.Obj.hasProperties(t,["getName","playNote","stop"])||!y.isFunction(t.getName)||!y.isFunction(t.playNote)||!y.isFunction(t.stop))throw new N(7,"Invalid instrument object: "+t);qa.some(e=>e.getName()===t.getName())?console.warn(`Instrument "${t.getName()}" already added!`):qa.push(t),Jf(t.getName())})}function Jf(i){if(i===Un.getName())return;Un.stop();let t=qa.find(e=>e.getName()===i);t&&(Un=t)}function Ua(i,t,e){Wa||Un.playNote(wv(i),t!=null?t:Iv,e!=null?e:Tv)}function za(){Un.stop()}function Mv(){za(),Wa=!0}function Ev(){Wa=!1}function Dv(){return Wa}var Vh={};en(Vh,{Annotation:()=>Hn,Arpeggio:()=>fi,Clef:()=>Ui,Connective:()=>gi,DocumentBuilder:()=>Ar,DynamicsAnnotation:()=>Uo,Fermata:()=>Wo,Label:()=>Yo,LyricsAlign:()=>qo,LyricsHyphen:()=>Yn,MAccidental:()=>$o,MArpeggio:()=>ts,MBarLineLeft:()=>ls,MBarLineRight:()=>hs,MBeamGroup:()=>fs,MConnective:()=>xs,MDocument:()=>Zr,MEnding:()=>ps,MExtensionLine:()=>bs,MFermata:()=>ys,MHeader:()=>Ts,MImage:()=>Ho,MLyrics:()=>As,MMeasure:()=>_s,MNoteGroup:()=>is,MPlaybackButtons:()=>Gh,MPlayer:()=>Jn,MRenderContext:()=>Bh,MRest:()=>es,MRhythmColumn:()=>ss,MScoreRow:()=>Is,MScoreRowGroup:()=>ws,MSpecialText:()=>as,MStaff:()=>vs,MStaffBarLine:()=>ds,MStaffBeamGroup:()=>gs,MStaffNoteGroup:()=>ns,MStaffRest:()=>rs,MStaffSignature:()=>Ko,MTab:()=>Ss,MTabNoteGroup:()=>os,MTabRhythm:()=>Cs,MTabSignature:()=>Jo,MText:()=>Zo,MusicInterface:()=>xt,Navigation:()=>br,NoteAnchor:()=>Je,PlayState:()=>Za,ScoreEvent:()=>Os,ScoreObjectEvent:()=>Yi,ScoreStaffPosEvent:()=>zi,StaffPreset:()=>zn,Stem:()=>gr,TempoAnnotation:()=>zo,TieType:()=>yr,VerticalPosition:()=>Vo,getStringNumbers:()=>Ha,getVerseNumbers:()=>eg,getVoiceIds:()=>ae,isStringNumber:()=>Go,isVerseNumber:()=>$a,isVoiceId:()=>Ve,setColor:()=>kv,validateStringNumber:()=>Lv,validateVerseNumber:()=>jv,validateVoiceId:()=>Bo});var tg={DrawDebugRects:!1,DisableBeams:!1},ct={DocumentScale:1,MinStaffWidth:75,MinColumnsWidth:10,ColumnWidthScale:1.7,PostMeasureBreakWidth:10,NoteDotSpace:.5,NoteAccSpace:.5,NoteHeadWidth:2,NoteHeadHeight:1.3,DiamondNoteHeadSize:1.8,DotSize:.8,StemHeight:7,FlagWidth:1.5,FlagHeight:4,FlagSeparation:2,BeamSeparation:1.25,BeamAngleFactor:.5,BeamThickness:4,RestDotSpace:.5,LedgerLineWidth:3.6,StubTieLength:5,StaffHeight:8,TabHeight:20},X={HilightStaffPos:"#55cc55",HilightObject:"#55cc55",PlayCursor:"#44aa44",Background:"white",Header_Title:"black",Header_Composer:"black",Header_Arranger:"black",RowGroup_Instrument:"black",RowGroup_Frame:"black",Staff_Frame:"black",Staff_Note:"black",Staff_Rest:"black",Staff_Connective:"black",Staff_Signature_Clef:"black",Staff_Signature_Key:"black",Staff_Signature_Time:"black",Staff_Signature_Tempo:"black",Staff_Signature_MeasureNum:"black",Staff_Element_Fermata:"black",Staff_Element_Annotation:"black",Staff_Element_Navigation:"black",Staff_Element_Label:"black",Tab_Frame:"black",Tab_Note:"black",Tab_Rest:"black",Tab_Connective:"black",Tab_Tuning:"black",Tab_Signature_Time:"black",Tab_Signature_Tempo:"black",Tab_Signature_MeasureNum:"black",Tab_Element_Fermata:"black",Tab_Element_Annotation:"black",Tab_Element_Navigation:"black",Tab_Element_Label:"black"};function Ya(i,t){return i.toLocaleLowerCase()===t.toLocaleLowerCase()}function kv(i,...t){let e=t.length===1&&Ya(t[0],"background"),r=t.length===0;Ya(i,"")&&(i=e?"white":"black");let n=!0;for(let o in X){let s=o.split("_"),a=t.length>0&&t.every(u=>s.some(h=>Ya(u,h))),c=s.length===1&&Ya(s[0],"background");(r&&!c||a)&&(X[o]=i,n=!1)}n&&console.error(`Color attrs ${$.Str.stringify(t)} did not match any color.`)}var zn=(s=>(s.Treble="treble",s.Bass="bass",s.Grand="grand",s.GuitarTreble="guitarTreble",s.GuitarTab="guitarTab",s.GuitarCombined="guitarCombined",s))(zn||{}),Ui=(e=>(e.G="G",e.F="F",e))(Ui||{});function ae(){return[0,1,2,3]}function Ve(i){return y.isIncluded(i,ae())}function Bo(i){if(Ve(i))return i;throw new N(6,`Voice id ${i} is invalid!`)}function Ha(){return[1,2,3,4,5,6]}function Go(i){return y.isIncluded(i,Ha())}function Lv(i){if(Go(i))return i;throw new N(6,`String number ${i} is invalid!`)}function eg(){return[1,2,3]}function $a(i){return y.isIncluded(i,eg())}function jv(i){if($a(i))return i;throw new N(6,`Verse number ${i} is invalid!`)}var gr=(r=>(r.Auto="auto",r.Up="up",r.Down="down",r))(gr||{}),fi=(e=>(e.Up="up",e.Down="down",e))(fi||{}),yr=(e=>(e.Stub="stub",e.ToMeasureEnd="toMeasureEnd",e))(yr||{}),Je=(o=>(o.Auto="auto",o.Above="above",o.Center="center",o.Below="below",o.StemTip="stemTip",o))(Je||{}),gi=(r=>(r.Tie="tie",r.Slur="slur",r.Slide="slide",r))(gi||{}),Vo=(n=>(n.Auto="auto",n.Above="above",n.Below="below",n.Both="both",n))(Vo||{}),qo=(r=>(r.Left="left",r.Center="center",r.Right="right",r))(qo||{}),Yn=(e=>(e.Hyphen="-",e.Extender="---",e))(Yn||{}),Wo=(e=>(e.AtNote="atNote",e.AtMeasureEnd="atMeasureEnd",e))(Wo||{}),br=(l=>(l.DC_al_Fine="D.C. al Fine",l.DC_al_Coda="D.C. al Coda",l.DS_al_Fine="D.S. al Fine",l.DS_al_Coda="D.S. al Coda",l.Coda="Coda",l.toCoda="toCoda",l.Segno="Segno",l.Fine="Fine",l.StartRepeat="startRepeat",l.EndRepeat="endRepeat",l.Ending="ending",l))(br||{}),Hn=(e=>(e.Dynamics="dynamics",e.Tempo="tempo",e))(Hn||{}),Uo=(p=>(p.cresc="cresc.",p.decresc="decresc.",p.dim="dim.",p.ppp="ppp",p.pp="pp",p.p="p",p.mp="mp",p.m="m",p.mf="mf",p.f="f",p.ff="ff",p.fff="fff",p))(Uo||{}),zo=(r=>(r.accel="accel.",r.rit="rit.",r.a_tempo="a tempo",r))(zo||{}),Yo=(e=>(e.Note="note",e.Chord="chord",e))(Yo||{}),Za=(r=>(r[r.Playing=0]="Playing",r[r.Paused=1]="Paused",r[r.Stopped=2]="Stopped",r))(Za||{});var Xa=class{constructor(t){d(this,"head");d(this,"tail");this.head=t,this.tail=[]}getHead(){return this.head}getTails(){return this.tail}addTail(t){this.tail.push(t)}detachTail(t){let e=this.tail.indexOf(t);e>=0&&this.tail.splice(e,1)}},tt=class{constructor(t){this.parent=t;d(this,"anchoredLayoutObjects",[]);d(this,"link");d(this,"userData",{});d(this,"rect",new G);d(this,"needRectUpdate",!0)}getParent(){return this.parent}requestRectUpdate(){this.needRectUpdate=!0}updateRect(){}forceRectUpdate(){this.needRectUpdate=!0,this.updateRect(),this.needRectUpdate=!1}getRect(){return this.needRectUpdate&&this.forceRectUpdate(),this.rect}offsetX(t){this.offset(t,0)}offsetY(t){this.offset(0,t)}setLeft(t){this.offset(t-this.getRect().left,0)}setRight(t){this.offset(t-this.getRect().right,0)}setTop(t){this.offset(0,t-this.getRect().top)}setBottom(t){this.offset(0,t-this.getRect().bottom)}setAnchor(t,e){this.offset(t-this.getRect().anchorX,e-this.getRect().anchorY)}setAnchorX(t){this.offset(t-this.getRect().anchorX,0)}setAnchorY(t){this.offset(0,t-this.getRect().anchorY)}setCenter(t,e){this.offset(t-this.getRect().centerX,e-this.getRect().centerY)}setCenterX(t){this.offset(t-this.getRect().centerX,0)}setCenterY(t){this.offset(0,t-this.getRect().centerY)}getShapeRects(){return[this.rect]}addAnchoredLayoutObject(t){this.anchoredLayoutObjects.push(t)}getAnchoredLayoutObjects(){return this.anchoredLayoutObjects}setLink(t){this.link=t}getLink(){return this.link}isLinked(){return this.link!==null}};var Qa;(function(i){i.AliceBlue="aliceblue",i.AntiqueWhite="antiquewhite",i.Aqua="aqua",i.Aquamarine="aquamarine",i.Azure="azure",i.Beige="beige",i.Bisque="bisque",i.Black="black",i.BlanchedAlmond="blanchedalmond",i.Blue="blue",i.BlueViolet="blueviolet",i.Brown="brown",i.BurlyWood="burlywood",i.CadetBlue="cadetblue",i.Chartreuse="chartreuse",i.Chocolate="chocolate",i.Coral="coral",i.CornflowerBlue="cornflowerblue",i.CornSilk="cornsilk",i.Crimson="crimson",i.Cyan="cyan",i.DarkBlue="darkblue",i.DarkCyan="darkcyan",i.DarkGoldenRod="darkgoldenrod",i.DarkGray="darkgray",i.DarkGreen="darkgreen",i.DarkGrey="darkgrey",i.DarkKhaki="darkkhaki",i.DarkMagenta="darkmagenta",i.DarkOliveGreen="darkolivegreen",i.DarkOrange="darkorange",i.DarkOrchid="darkorchid",i.DarkRed="darkred",i.DarkSalmon="darksalmon",i.DarkSeaGreen="darkseagreen",i.DarkSlateBlue="darkslateblue",i.DarkSlateGray="darkslategray",i.DarkSlateGrey="darkslategrey",i.DarkTurquoise="darkturquoise",i.DarkViolet="darkviolet",i.DeepPink="deeppink",i.DeepSkyBlue="deepskyblue",i.DimGray="dimgray",i.DimGrey="dimgrey",i.DodgerBlue="dodgerblue",i.FireBrick="firebrick",i.FloralWhite="floralwhite",i.ForestGreen="forestgreen",i.Fuchsia="fuchsia",i.Gainsboro="gainsboro",i.GhostWhite="ghostwhite",i.Gold="gold",i.GoldenRod="goldenrod",i.Gray="gray",i.Green="green",i.GreenYellow="greenyellow",i.Grey="grey",i.Honeydew="honeydew",i.HotPink="hotpink",i.IndianRed="indianred",i.Indigo="indigo",i.Ivory="ivory",i.Khaki="khaki",i.Lavender="lavender",i.LavenderBlush="lavenderblush",i.LawnGreen="lawngreen",i.LemonChiffon="lemonchiffon",i.LightBlue="lightblue",i.LightCoral="lightcoral",i.LightCyan="lightcyan",i.LightGoldenRodYellow="lightgoldenrodyellow",i.LightGray="lightgray",i.LightGreen="lightgreen",i.LightGrey="lightgrey",i.LightPink="lightpink",i.LightSalmon="lightsalmon",i.LightSeaGreen="lightseagreen",i.LightSkyBlue="lightskyblue",i.LightSlateGray="lightslategray",i.LightSlateGrey="lightslategrey",i.LightSteelBlue="lightsteelblue",i.LightYellow="lightyellow",i.Lime="lime",i.LimeGreen="limegreen",i.Linen="linen",i.Magenta="magenta",i.Maroon="maroon",i.MediumAquamarine="mediumaquamarine",i.MediumBlue="mediumblue",i.MediumOrchid="mediumorchid",i.MediumPurple="mediumpurple",i.MediumSeaGreen="mediumseagreen",i.MediumSlateBlue="mediumslateblue",i.MediumSpringGreen="mediumspringgreen",i.MediumTurquoise="mediumturquoise",i.MediumVioletRed="mediumvioletred",i.MidnightBlue="midnightblue",i.MintCream="mintcream",i.MistyRose="mistyrose",i.Moccasin="moccasin",i.NavajoWhite="navajowhite",i.Navy="navy",i.OldLace="oldlace",i.Olive="olive",i.OliveDrab="olivedrab",i.Orange="orange",i.OrangeRed="orangered",i.Orchid="orchid",i.PaleGoldenRod="palegoldenrod",i.PaleGreen="palegreen",i.PaleTurquoise="paleturquoise",i.PaleVioletRed="palevioletred",i.PapayaWhip="papayawhip",i.PeachPuff="peachpuff",i.Peru="peru",i.Pink="pink",i.Plum="plum",i.PowderBlue="powderblue",i.Purple="purple",i.RebeccaPurple="rebeccapurple",i.Red="red",i.RosyBrown="rosybrown",i.RoyalBlue="royalblue",i.SaddleBrown="saddlebrown",i.Salmon="salmon",i.SandyBrown="sandybrown",i.SeaGreen="seagreen",i.SeaShell="seashell",i.Sienna="sienna",i.Silver="silver",i.SkyBlue="skyblue",i.SlateBlue="slateblue",i.SlateGray="slategray",i.SlateGrey="slategrey",i.Snow="snow",i.SpringGreen="springgreen",i.SteelBlue="steelblue",i.Tan="tan",i.Teal="teal",i.Thistle="thistle",i.Tomato="tomato",i.Turquoise="turquoise",i.Violet="violet",i.Wheat="wheat",i.White="white",i.WhiteSmoke="whitesmoke",i.Yellow="yellow",i.YellowGreen="yellowgreen"})(Qa=Qa||(Qa={}));var yi;(function(i){i.Hex="hex",i.RGB="rgb",i.Array="array"})(yi=yi||(yi={}));var vh={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};for(let i in vh)Object.freeze(vh[i]);var rg=Object.freeze(vh);var Sh=rg;var wh={hash:!0,lowercase:!1,short:!1};function Ih(i,t){let e=O(O({},wh),t),{hash:r,lowercase:n,short:o}=e,s=i.map(a=>{let c=a.toString(16);return c=c.length===1?`0${c}`:c,c}).join("");if(o){let a=[...s];a[0]===a[1]&&a[2]===a[3]&&a[4]===a[5]&&(s=`${a[0]}${a[2]}${a[4]}`)}return s=n?s.toLowerCase():s.toUpperCase(),r&&(s=`#${s}`),s}function Th(i,t=1){return t=Math.min(1,Math.max(0,t)),t<1?`rgba(${i[0]}, ${i[1]}, ${i[2]}, ${t})`:`rgb(${i[0]}, ${i[1]}, ${i[2]})`}var Pv=Q(O({},wh),{fallback:!0,alpha:1,format:yi.Hex});function Nh(i,t={}){let e=O(O({},Pv),t),{fallback:r,format:n,hash:o,lowercase:s,short:a,alpha:c}=e;i=`${i}`;let u=i.toLowerCase().replaceAll(/[^a-z]/g,""),h=Sh[u];if(!h){if(!r)throw new Error(`no matching color found for '${i}'`);let l=i.toLowerCase().replaceAll(/[^\da-f]/g,"");h=(l.length<=3?[l.slice(0,1).repeat(2),l.slice(1,2).repeat(2),l.slice(2,3).repeat(2)]:[l.slice(0,2),l.slice(2,4),l.slice(4,6)]).map(p=>Number.parseInt(p.length<2?`${"0".repeat(2-p.length)}${p}`:p,16))}switch(n){case yi.Array:return[...h];case yi.RGB:return Th(h,c);default:return Ih(h,{hash:o,lowercase:s,short:a})}}var ig="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAACWCAYAAACCe+v6AAADHXpUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHja7ZZRcu0mDIbfWUWXgCSExHIwmJnu4C6/Pxg7J2kyTdv7GJhjsJCF0CfZJ5y//hzhDzRK5iGpeS45R7RUUuGKicerHetKMa3ratL2Gr2Xh5L3AkMkU/O6LbzlJ+SY074vexO69W9D94QqZvq2UOuWH+/lxzbI/tHQ9kDo2jn2/cA2JLw9Std92x7l4vbuaH2fGYqXyN9+SYyzZrKEa+JolgvmzjEZ4tmno6NxWYb0CugjuO9vVYZPfApJxFUkXV7K/IlUjBlXrAYokhhuFMK5UFbgI1DCBXha9kY1PsF8jc1bjL5o3zlWxCbjnMov1J7xQ97k/HnePLOdBg81z3tB3mON+Rk/lZPehu4Fefbh1529PTu/k4vE9BqK8Ip7jO5jHRqnqCkjFnkf6j7KmkHvmFFcT2V0izkgax2T2Qu6xxobcqrHhko7MC/EoDsoUadKg841NmpwMfHJhpG5BZYldEAq3GQmQ5qdBpsU6eLImHblkPDjC61ty9qukcceYieoMsEY4ZH/3MN3FceYtUQU/YoT0gJ+8axOeBEJ+OcANTCgsYOqK8B3/9gm18lMV5gdB6zxCJeJQ+ktuWSBFigqxgsyWd8GECJsrXCGBARiJlHK8MiYjQiBdACqcJ0l8QECpModTnISyYCD6sDeeMZoqbLyJcZbVVJAsWYUrYNQBayUFPljyZFDVUWTqmY1dS1as+RZeTlbnq/namLJ1LIZ3tlWrLp4cvXs5u7Fa+EieH1rQZ0WL6XUik0rLFc8XaFQ68GHHOnQIx92+FHCURvSp6WmLTdr3kqrnbt0FHjP3br30utJJ1LpTKee+bTTz3LWgVQbMtLQkYeF4aOM+lCjXbYf+7+gRpsaL1JT0R5qkJrdJmi+TnQyAzFOBOAGaiCGxJ7MolNKPMlNZvgeoSqU4aROOJ0mMRBMJ7EOethtcoHr7+EWzBc3/r/kwkT3TXJ/5/YZtT6/Em0Ru8pwBjUKqg/rp1f2Oj+vX47hnxS+O/4Y+jH0Y+jrcYwROv51hb8AKbCqdGIdCl0AAAGFaUNDUElDQyBwcm9maWxlAAB4nH2RPUjDQBzFX1O1UqoOdhBxyFCd7OAH0rFUsQgWSluhVQeTS7+gSUOS4uIouBYc/FisOrg46+rgKgiCHyCuLk6KLlLi/5JCi1gPjvvx7t7j7h0gNCpMNXuigKpZRioeE7O5VdH3ij74MYgpRCRm6on0YgZdx9c9PHy9C/Os7uf+HANK3mSARySOMt2wiDeI5zYtnfM+cZCVJIX4nHjSoAsSP3JddvmNc9FhgWcGjUxqnjhILBY7WO5gVjJU4lnikKJqlC9kXVY4b3FWKzXWuid/YSCvraS5TnMMcSwhgSREyKihjAoshGnVSDGRov1YF/+o40+SSyZXGYwcC6hCheT4wf/gd7dmYWbaTQrEgN4X2/4YB3y7QLNu29/Htt08AbzPwJXW9lcbQOST9HpbCx0BQ9vAxXVbk/eAyx1g5EmXDMmRvDSFQgF4P6NvygHDt4B/ze2ttY/TByBDXS3fAAeHwESRste7vLu/s7d/z7T6+wEMNXLkxtwRywAADzRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDQuNC4wLUV4aXYyIj4KIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgIHhtbG5zOkdJTVA9Imh0dHA6Ly93d3cuZ2ltcC5vcmcveG1wLyIKICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICB4bXBNTTpEb2N1bWVudElEPSJnaW1wOmRvY2lkOmdpbXA6NDA3ODVjMzYtNDAxZC00YTZlLTkxODctMDQ1NTI4MmM0ZGY2IgogICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjhiZTJkYzc1LTVlYjQtNDk0Yy1iNWRlLWQ2MzZkNzZhNjI2YiIKICAgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOmU3YWE0MWNhLTNiYjMtNGU5Yi05NDQxLTllNTNmZTJiZjM5ZiIKICAgZGM6Rm9ybWF0PSJpbWFnZS9wbmciCiAgIEdJTVA6QVBJPSIyLjAiCiAgIEdJTVA6UGxhdGZvcm09IldpbmRvd3MiCiAgIEdJTVA6VGltZVN0YW1wPSIxNjg2NDA4NjA5MzE2NDM4IgogICBHSU1QOlZlcnNpb249IjIuMTAuMzQiCiAgIHRpZmY6T3JpZW50YXRpb249IjEiCiAgIHhtcDpDcmVhdG9yVG9vbD0iR0lNUCAyLjEwIgogICB4bXA6TWV0YWRhdGFEYXRlPSIyMDIzOjA2OjEwVDE3OjUwOjA5KzAzOjAwIgogICB4bXA6TW9kaWZ5RGF0ZT0iMjAyMzowNjoxMFQxNzo1MDowOSswMzowMCI+CiAgIDx4bXBNTTpIaXN0b3J5PgogICAgPHJkZjpTZXE+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjI3MzY2YmY0LWVkZDMtNDE5OC05NjJhLWU5ZTM5MTBlNThiZSIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iR2ltcCAyLjEwIChXaW5kb3dzKSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyMi0wOC0yMlQwMjo1NTozNiIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo5NjVlMTM3OS0wZDlmLTQ5ODItYWQ3MC05MzhjOWMzOWE0ZjMiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoV2luZG93cykiCiAgICAgIHN0RXZ0OndoZW49IjIwMjItMDktMTFUMTY6MzU6MDAiLz4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MTBmYmEwYTMtOTI5Yi00NTRlLThjNGMtOGVkOGM4YWJhZGRjIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKFdpbmRvd3MpIgogICAgICBzdEV2dDp3aGVuPSIyMDIzLTA2LTEwVDE3OjUwOjA5Ii8+CiAgICA8L3JkZjpTZXE+CiAgIDwveG1wTU06SGlzdG9yeT4KICA8L3JkZjpEZXNjcmlwdGlvbj4KIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/Ppn4NIQAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQfnBgoOMgm5WlWBAAAAGXRFWHRDb21tZW50AENyZWF0ZWQgd2l0aCBHSU1QV4EOFwAACHtJREFUeNrtnXuQVmMcxz+77cauTWUpbGSVu2w3BpnUEBq3chkmBjGayG1GBuNWLtUgw5SJkBkjl4QKg1wyQyarK0lRSlstU20bWam9+OM8O3P6vc8553nOe97tnO18Z84f57zP7XvOc/ndnueFfQx5e6neUmAI0B3oDPwD/AJ8Dvzcml5we+Al4D+gyeOaB1S0BrLHAut9iLqvf4ERSSZbBmwwJOu+RieV8JwQZJuARjXWE4WBIck2X38AByaJ8MwsCTcBTyWFbCFQFwHhv4DiKBqUn2PCPYEin9+bgI3AUuBPn3TtgMuT8IWv8vlq7wLdRPrTgPke6d9JAuFbPBo/3UfKK1TCh8yzIQmEb/cYjx0C8pUDuzV5D477GN6mefY+UBuQby0wV/O8U9wJr9E8W2iY92vNs45xJ6zTfKoN827UPNsdd8K1SlJyo8Awb7XhEIkVYYAVmjXVBPtr1uyqJBBeLu5LDPMdppkPdiaRcHvDfKeJ+++SIFoCLBP3R1toWW58lhQFogiodwkPlYZf1y1w/AcclCQVcYWQtILwqiA8M2lGgDcFgSN90nbXiJUXRdWQ/BYiLMdxH5+0k8VavRb4JGmEl4j7vh7pRgDni2fj1RyQKBwiuqjui/Un015dBbQloXCbaTdrZuUajTp4IwnGbEHmKPX8QmCHhuwC9p4rKBI8IghdB0zCsT1Lsg0+4zwxuEiQqqcVmGWDlAETk+zSJE9Ublyjuqof2TrgxKQT7anMNSZfd1iSiZYCUwy+avP1dJLJXglsxdyV8hHQJolEDwBewc5v9J3Klzj0xYnTsCG7W4mdicMdwC7CeQaPTBLRAjUxZeMKvSwpZPcDPghBUGpE45JAthjH92NLdiUwSDz7NO5k24YkuwTHGZYvtKMtcSabD7wVguy37OkilU7v8rgSfjoE2c816+wkkebKOJK9NgTZ2Wpykxgu0k2IG9lTcMIBbchOx9tTWKHpBbFBoZpwbMi+iL9FtEC8wG1xIvyQJdlJhuVWinzd4kD2cJxYZlOyky3KfkHkvSoOhF+2IPu8Zdk3x82O1QV96JDumhJSu5KB4XsVEwzJziCcy2Z/8UK3K5G1PZnhDi2iBW02IDvPY501xY8BuvJ6JcY+AQzAPCDGGucZkF2GefiCxFk4AWoN2K0AG4HHiSBATWJqQMXr1Qxui3Jlv8o2nHiHIl4UFeF1+G/ACOMGuZVoYqfd12qgX7ZkuwZUMjyEoWBaxETd1y5gVDaEr/YpfGqIyW9ODsm6r7FhCY/z6T625tTpLUS2+bo3DOHZHoVdYFnOqBYmG3rbz1JNQbZ2p2MsZfAor604G8OMsUVTyEBLwjMsv4r7vkapl28AH+PEWNqu1++ZNjRPk3mFJdnjDBu4HBipVoUGsewVaGb6fjgRPSsMSQ8wNb/KjA9bEp5osIzcLUitEml6BNQxxGPoWVtROmoynmFJ+CefRvytxFaJt0W6GwwtqE8GkA56cZSSGVxiI74FhTUM9ch3f0irCerleNU3wbZL2xrJzwhp+hks0s6PaBitMsnsXk7WWlY8xKPi7fjvOZI94x/sHOQFPobGw+U4kHBvrrDVRrw2RE4L6C3V7Ln3sBg43qLeeuAxj996BxHeJCYxm2i4Gh8RMwjL/BpqgA/VpKgTgnwJuzdXtbWUWpZpntUCiwwlPDf6WBLeBSzWPO8URFjuHOthUWm1ptJFaizZErb9wvJjNaMkiLDck2CrYD8n7k13hUrCvUIYB3Vdui6I8FI1qzbjUstKXwe+EV3aBKtE40pwjsKwwQEeuoEv4d3ALNf9ycCpFpU24ngRVrvkYNN8y7Ps1rqlb3MQYXCc3m7YytOb1FCYa2lhzHbiqjAoU4s2GoG+D+Fg85VGijq/ssh7qEboqLGZB6QDvBLHdZpLnK6R0EzlgNs0hGfZVJ6v1lV3ARNzTLhYo0sfY5h3sYWy4ole7Blh16ismrnEStFok/ou05BdR8iA1QfJDN2/PoeEZZTQkwZL0RoN4bvCNiCPzONlGpVJNBe7Tu4TdX1h2bbmmLCCbMfWAvTew6iDQy/QzLReZJ/RtKk+pFiagXZqmdCdyzGG8J5Eic6aOuSe4yK8A+RGRfn2/SqqwdmbVBZBPX/gHbh2MfAbEbtbTAQEr7itehyX6DDCn6zyCZlhUHcoTc7Ltj2WHKNcLexBRvaFaqxdr0Q/k2OixmNudN9uo+BEMcsOAB4AzrXIU6vUxlrVU3YqJaMEOELZoUzW0PeBezz04JyjN07o0mZy7zD7EjiTmKAQOAfHJlyJ/xmWtsHlo1UPCI28FnoBJym9urtaYspwdrOUKkmprerC/6pl7lel/HdxlTORBB/7aIJnLSQuK40orlisUWRaNXpoxnHX1ky4DZlhTkNbc5duwAlNjLRb58f8Ky/e1wgv2dcmrr6aiSur3agFOWxsL6XM91a6crUSCWfi+H9NoDtEsIKY7YI52sNQ4D5uZpBFeTKMamScyJqeFL4L8yOjfhB5x8Rp0ppoaPEoBF4j86A/HerEfUlcCB8GXGGRvqPSZYPQIeAF7DXC/bE3fJsY2eWsvCEuhMtC9oouAROgPPxveVwIN4TM53f08tnifgfmh/nmnPC6kPk2+fx2k7ifpWb4WKAT9mG+foFvMqqvkRj+pYntFp0HPMrZj8wg1VieEd8Tc6NdFXr3TCFOgLc77TZifE7AaAOyv+MY9iS64pxBK7vyJXHWcLy8eu4T0dybo9vhBMBMJvMwwEbgzqSodnfhvxOtDieQzOv3ncRkE7UNytV4tJ295+LsnUgsugKPAt/jvQm7DmcX2+Bcj7eWRjFwAo4rtYOa1avUMrSTFClSpEiRIkWKFClSpEiRIkWKFClSpEiRIkWKFClSpEiRIgL8D6ed2EKeJMaTAAAAAElFTkSuQmCC";var ng="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAABGCAYAAACQRffVAAADInpUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHja7VdbktwgDPznFDkCkgCJ4/AwVblBjp8GY+/OZFPZPD7yMVADWIiWUEt2jTu+fR3uCxplTi5EtZRT8mghh8wFC/Nnq2skH9a4mrS9R49yF9LeYIhkap6Pmbf8gBxr2s95G6FL/wK6FlSwim8bpWx5fZTXDcj2DLQ3hE7Lvu8DG0h4exTO57Y9Stn04Wp93xmKp8jefkGUU0ykAWNgr5oy1sY+KOLZp6PcznP31S7B9XypMnziQ0g8RpFweinzJ1IwJ4wk4qA4hUXiGlmWGTiUEG4Fbj6BR/F3MN/H5i1GP2mfuZaHkXFM5XdXu+envOn147y5VzsN3JU3lvaGPNLq0z1/KKd4AV0bctvh95at3ZYf5ENWdt3Nvad7jG5jXRq3KCEhFmlf6rrKWkGvziiuUwldfXLANSxmz+jmi2/Iqe4bKq1inYnB/aBAnQoNOtbcqMHFwAcrZubmWJbQQFLmhlQgCbPTYJUsXQwp0c4cEr59oWU2L3ONzHfnO0GVCWCEI3/c3WcVx5i1ROTtjBM8g188qxNeeAL9c4IaGKGxgxpXgK/+3CavAgbjCrPhgsVXd0LUSG/JJYvoSW/EfFY9ad8ACBFMRzhDAgZ8IomU4JEyKxECaSCowHWWwBUMUIzc4SQHkQRyUB2wjTNKS5Ujn2K8VSU4FGsSBTdZCsgKISJ/NBhyqESJIcaYokaLOZYkaVZeSprm67moaNCoSVXNadZiYsGiJVMzy1YyZ8HrO2bUabaccykwWoBccLpAoZTKVWqosaaq1Wp2tTSkTwstttS0WcutdO7SUeA9de3Wcy8HHUilIxzxSIceduSjDKTakBFGHGmoGzbyKDdrtMv2uf8Ga7RZ48XUVNSbNUhVLwiar5M4OQNjHAiEK1gDY0jsyZk3CoEnc5MzfI9QFZHhZJzkdJqMgcFwEMdBN3ebOcfl3/Dm1BZv/LfMuUndJ5n7kbePWOvzK9EWY2cZzqB6QfVh/7DCVubn9aez+5XCZ+cX0AvoBfQCegG9gP57oIEPJ/4Bue+bLIaQwqExNwAAAYVpQ0NQSUNDIHByb2ZpbGUAAHicfZE9SMNAHMVfU7UiFQeLijhkqE4WREUcSxWLYKG0FVp1MLn0Q2jSkKS4OAquBQc/FqsOLs66OrgKguAHiKuLk6KLlPi/pNAixoPjfry797h7Bwj1MlPNjiigapaRisfEbG5FDLyiC0EMYgIDEjP1RHohA8/xdQ8fX+8iPMv73J+jV8mbDPCJxFGmGxbxOvHMpqVz3icOsZKkEJ8Tjxt0QeJHrssuv3EuOizwzJCRSc0Rh4jFYhvLbcxKhko8TRxWVI3yhazLCuctzmq5ypr35C8M5rXlNNdpjiCORSSQhAgZVWygDAsRWjVSTKRoP+bhH3b8SXLJ5NoAI8c8KlAhOX7wP/jdrVmYmnSTgjGg88W2P0aBwC7QqNn297FtN04A/zNwpbX8lTow+0l6raWFj4C+beDiuqXJe8DlDjD0pEuG5Eh+mkKhALyf0TflgP5boGfV7a25j9MHIENdLd0AB4fAWJGy1zze3d3e279nmv39ANCccsygwwDVAAAQE2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNC40LjAtRXhpdjIiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6R0lNUD0iaHR0cDovL3d3dy5naW1wLm9yZy94bXAvIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgIHhtcE1NOkRvY3VtZW50SUQ9ImdpbXA6ZG9jaWQ6Z2ltcDo0MDc4NWMzNi00MDFkLTRhNmUtOTE4Ny0wNDU1MjgyYzRkZjYiCiAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Nzg3YjYxN2YtMjg1MS00YzhlLTg2MTYtZWM3NGMwYzYwMWVlIgogICB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6ZTdhYTQxY2EtM2JiMy00ZTliLTk0NDEtOWU1M2ZlMmJmMzlmIgogICBkYzpGb3JtYXQ9ImltYWdlL3BuZyIKICAgR0lNUDpBUEk9IjIuMCIKICAgR0lNUDpQbGF0Zm9ybT0iV2luZG93cyIKICAgR0lNUDpUaW1lU3RhbXA9IjE2ODY2MTM5NDcxOTU2ODAiCiAgIEdJTVA6VmVyc2lvbj0iMi4xMC4zNCIKICAgdGlmZjpPcmllbnRhdGlvbj0iMSIKICAgeG1wOkNyZWF0b3JUb29sPSJHSU1QIDIuMTAiCiAgIHhtcDpNZXRhZGF0YURhdGU9IjIwMjM6MDY6MTNUMDI6NTI6MjUrMDM6MDAiCiAgIHhtcDpNb2RpZnlEYXRlPSIyMDIzOjA2OjEzVDAyOjUyOjI1KzAzOjAwIj4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MjczNjZiZjQtZWRkMy00MTk4LTk2MmEtZTllMzkxMGU1OGJlIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKFdpbmRvd3MpIgogICAgICBzdEV2dDp3aGVuPSIyMDIyLTA4LTIyVDAyOjU1OjM2Ii8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjk2NWUxMzc5LTBkOWYtNDk4Mi1hZDcwLTkzOGM5YzM5YTRmMyIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iR2ltcCAyLjEwIChXaW5kb3dzKSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyMi0wOS0xMVQxNjozNTowMCIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDoxMGZiYTBhMy05MjliLTQ1NGUtOGM0Yy04ZWQ4YzhhYmFkZGMiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoV2luZG93cykiCiAgICAgIHN0RXZ0OndoZW49IjIwMjMtMDYtMTBUMTc6NTA6MDkiLz4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MDBmYjM4YTMtZjZiMi00NjQ1LTliMTYtMjlhNWE0ODZlMjhhIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKFdpbmRvd3MpIgogICAgICBzdEV2dDp3aGVuPSIyMDIzLTA2LTEzVDAyOjUyOjI3Ii8+CiAgICA8L3JkZjpTZXE+CiAgIDwveG1wTU06SGlzdG9yeT4KICA8L3JkZjpEZXNjcmlwdGlvbj4KIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PsIRrtIAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQfnBgwXNBsqJURsAAAAGXRFWHRDb21tZW50AENyZWF0ZWQgd2l0aCBHSU1QV4EOFwAABF9JREFUeNrtmluIF1Ucxz9/E8P1VnnJ9dJWC4Frmq2JJmqolGEILoQvK2gZeXlRCSm1Fx9UEsJQERWsXhRftECs0Gq70EK9ZHlbFyHbds3VVXFX91+7664P81tYhpnfmft//st84TzMzDm/8/vOnPO7nYEMGTJkyJAhQ4YMGSJBLkJZw4FyYAIwDHgU+A9oAxqBv4C7xfyySoBlwKfAFaAb6DG0euAzoAoYXCxEnwH2A60eCGrtFrALGJNWokNEwY6QRO2tFXgPGJAmss8DlyImam/fASPTQHaeGJueBFod8FQhrfSLwM+ynDX8L1/oV+BP4LZY58eBUUAlMB94ycPSvQTMERmJ4jGgwYPh2Qg84VFmGbAP6DTI/aoQS/lzg1JfA2MDyn4ZuGaQvyZJspUGv3oKGBhyjmeBJmWOmxLMJIITiiIXIgwaZgFdylxbDeNHANXAZmAVUBpEiScNe2xRxC/3Y2WuRmUlLRHD1rd/HljvV4F3FAVqYlhNo4B7Pl/wdPEMbmOq/ShwRBH0Vkxb6LAy536fW64HuOpn8vOKoLKYCC9Q5rzs0L/JQxDjyYPkgHYXAW0xGslByrLuFuPUFw0eCI92mmiAQ4LgZoEbYyTcAZxVPsJk271ag7x6cWueCLvhfsyu8LzybKLtersUF9ywxe2BnXBnAZOUJuXZeNv1OSki3LLdzwPrgONuguw+7g7wAHjEoW+vEagAXgeelr1yUSZoCUn4hvJsqMO9byRaWyLGtFkiwOtBJnYzBKcVg/ZuSMIrlHl3RrWMnFK1OqX/q8oXOAisDqFLVxL7xonw9yHk7Q5RoxpuyLdjI3wmhLzBwMqAY0ck4SGcCNeKIQqKOTF84RtxEu4BPgohc2QM467HSRjgqBL5mBDUPU1Rnl1JwqBNUuJqrW0M+OLdYuk8Cdas38Rf4b3FR0HP/nLdZNYaioKbxSVuA6ZGQfoNvNWlO6VvEKxW5O5yGbNc4ml7ZrUtCtLjgGMSdjop9Q+wMIT8GoXwKw79ZxrKUG9r+a8flMoyr5AA4ybwo1QgggYHpZJ6Ou3Ta5IpddvufwEsVWQ2xFisCI1Nypf6RMmsIql4JI0S8bFuSs9UvmCgikeh8b6i8C/KuKOYD+VShzGSwLsprRnByYYYoSqNhE8qCv/kYfxrYjT7jmuPIC+PBWsVsl1YRzBeE45qqWGtwjo1SR0WoZ8a7KAfYa5h7/2OVaPuF1gqtS83srclpi565IAP0c+b7wOz+wPZckOc3Jt0LC52oiXABx7y6VasGnfRYgiwwRAu9raGqPLXQmAGcADvvyN+m9bgXnP4i4E9wN8+KiJ5WQG5QilumnioJP9lwHPANKw/fF7A+fxJw2ms/y9SFdiPBf4Vn9hJNL8T/iFxbyoxgej+m6zBOtnLpXlvhiXcDOyVJV8UCEL4KnBI/OnAtBP0q+ADMTq/SfshrdUFr4TzwJdY9d57WIdYzRIk1GMdeXSQIUOGDBmSwUMtd8u2ArdcUAAAAABJRU5ErkJggg==";var Fv=new lt([[0,ig],[1,ng]]),Bv=i=>Fv.getOrDefault(i,""),Gv=new Al;function Vv(i,t=1){let e=Nh(i).replace("#",""),r=parseInt(e.slice(0,2),16),n=parseInt(e.slice(2,4),16),o=parseInt(e.slice(4,6),16),s=Math.round(t*255);return[r,n,o,s]}function qv(i,t){return!i&&!t?!0:!i||!t?!1:i.scoreRow===t.scoreRow&&i.diatonicId===t.diatonicId}function Wv(i,t){return!i&&!t?!0:!i||!t?!1:i.length===t.length&&i.every((e,r)=>e===t[r])}var Ka=class{constructor(t){this.mi=t;d(this,"devicePixelRatio");d(this,"fontSize");d(this,"unitSize");d(this,"_lineWidth");d(this,"scoreEventListener");d(this,"canvas");d(this,"ctx");d(this,"mdoc");d(this,"cursorRect");d(this,"mousePos");d(this,"curStaffPos");d(this,"curObjects");d(this,"hilightedStaffPos");d(this,"hilightedObj");d(this,"usingTouch",!1);d(this,"onClickFn");d(this,"onMouseMoveFn");d(this,"onMouseLeaveFn");d(this,"onTouchEndFn");this.devicePixelRatio=typeof window!="undefined"?window.devicePixelRatio:1,this.fontSize=Vs.FontSize*ct.DocumentScale*this.devicePixelRatio,this.unitSize=this.fontSize*.3,this._lineWidth=this.unitSize*.2,this.onClickFn=this.onClick.bind(this),this.onMouseMoveFn=this.onMouseMove.bind(this),this.onMouseLeaveFn=this.onMouseLeave.bind(this),this.onTouchEndFn=this.onTouchEnd.bind(this)}getMusicInterface(){return this.mi}get doc(){var t;return(t=this.mdoc)==null?void 0:t.getMusicObject()}getImageAsset(t,e){var r;return e!=null||(e=""),(r=Gv.getOrCreate(t,e,()=>{let n={src:Bv(t),color:e,loaded:!1,colorized:!1},o=new Image;return o.src=n.src,o.onload=()=>{n.img=o,this.onImageLoaded(n)},o.onerror=()=>{console.error("Failed to load image: "+n.src)},n}))==null?void 0:r.img}forceDraw(){var t;(t=this.doc)==null||t.requestFullLayout(),this.draw()}onImageLoaded(t){if(t.loaded||!t.img)return;if(t.colorized||t.color===""){this.forceDraw(),t.loaded=!0;return}let[e,r,n,o]=Vv(t.color),s=40;if(typeof document=="undefined"){console.error("Failed to colorize image: document is undefined.");return}let a=document.createElement("canvas");a.width=t.img.width,a.height=t.img.height;let c=a.getContext("2d");if(c==null){console.error("Failed to colorize image: ctx = null.");return}c.drawImage(t.img,0,0);let u=c.getImageData(0,0,a.width,a.height),h=u.data;for(let l=0;l<h.length;l+=4){let p=h[l],m=h[l+1],f=h[l+2];h[l+3]!==0&&p<s&&m<s&&f<s&&(h[l+0]=e,h[l+1]=r,h[l+2]=n)}c.putImageData(u,0,0),t.img.src=a.toDataURL("image/png"),t.img.onload=()=>{t.colorized=!0,this.onImageLoaded(t)},t.img.onerror=()=>{console.error("Failed to colorize image.")}}setDocument(t){if(this.mdoc===t)return;this.updateCursorRect(void 0);let e=this.mdoc;this.mdoc=t,e&&e.getMusicObject().setRenderContext(void 0),t&&t.getMusicObject().setRenderContext(this)}setCanvas(t){var e,r;this.canvas!==t&&(this.canvas&&(this.canvas.removeEventListener("click",this.onClickFn),this.canvas.removeEventListener("mousemove",this.onMouseMoveFn),this.canvas.removeEventListener("mouseleave",this.onMouseLeaveFn),this.canvas.removeEventListener("touchend",this.onTouchEndFn)),this.canvas=t,this.canvas.addEventListener("click",this.onClickFn),this.canvas.addEventListener("mousemove",this.onMouseMoveFn),this.canvas.addEventListener("mouseleave",this.onMouseLeaveFn),this.canvas.addEventListener("touchend",this.onTouchEndFn),this.canvas.style.position="relative"),this.ctx=(r=(e=this.canvas)==null?void 0:e.getContext("2d"))!=null?r:void 0}setScoreEventListener(t){this.scoreEventListener=t}needMouseInput(){return this.scoreEventListener!==void 0}getMousePos(t){return new yl(t.offsetX,t.offsetY)}updateCurStaffPos(t,e){let r=!qv(t,this.curStaffPos);if(r&&this.curStaffPos&&this.scoreEventListener){let{scoreRow:n,diatonicId:o}=this.curStaffPos;this.scoreEventListener(new zi("leave",this.getMusicInterface(),n.getMusicInterface(),o))}if(r&&t&&this.scoreEventListener){let{scoreRow:n,diatonicId:o}=t;this.scoreEventListener(new zi("enter",this.getMusicInterface(),n.getMusicInterface(),o))}if(e&&t&&this.scoreEventListener){let{scoreRow:n,diatonicId:o}=t;this.scoreEventListener(new zi("click",this.getMusicInterface(),n.getMusicInterface(),o))}return this.curStaffPos=t,r}updateCurObjects(t,e){let r=!Wv(t,this.curObjects);return r&&this.curObjects&&this.curObjects.length>0&&this.scoreEventListener&&this.scoreEventListener(new Yi("leave",this.getMusicInterface(),this.curObjects.map(n=>n.getMusicInterface()))),r&&t&&t.length>0&&this.scoreEventListener&&this.scoreEventListener(new Yi("enter",this.getMusicInterface(),t.map(n=>n.getMusicInterface()))),e&&t&&t.length>0&&this.scoreEventListener&&this.scoreEventListener(new Yi("click",this.getMusicInterface(),t.map(n=>n.getMusicInterface()))),this.curObjects=t,r}onClick(t){let{doc:e}=this;if(!(!this.needMouseInput()||!e)&&(this.mousePos=this.txFromScreenCoord(this.getMousePos(t)),this.scoreEventListener)){let r=e.pick(this.mousePos.x,this.mousePos.y),n=e.pickStaffPosAt(this.mousePos.x,this.mousePos.y),o=this.updateCurStaffPos(n,!0),s=this.updateCurObjects(r,!0);(o||s)&&this.draw()}}onMouseMove(t){let{doc:e}=this;if(!(!this.needMouseInput()||!e)&&(this.mousePos=this.txFromScreenCoord(this.getMousePos(t)),!this.usingTouch)){let r=e.pick(this.mousePos.x,this.mousePos.y),n=e.pickStaffPosAt(this.mousePos.x,this.mousePos.y),o=this.updateCurStaffPos(n,!1),s=this.updateCurObjects(r,!1);(o||s)&&this.draw()}}onMouseLeave(t){if(!this.needMouseInput())return;this.mousePos=void 0;let e=this.updateCurStaffPos(void 0,!1),r=this.updateCurObjects(void 0,!1);(e||r)&&this.draw()}onTouchEnd(t){this.usingTouch=!0}hilightObject(t){this.hilightedObj=t}hilightStaffPos(t){this.hilightedStaffPos=t}updateCursorRect(t){this.cursorRect=t,this.draw()}updateCanvasSize(){let{canvas:t,doc:e}=this;if(t&&e){let r=e.getRect(),n=r.width+1,o=r.height+1;t.width=n,t.height=o,t.style.width=n/this.devicePixelRatio+"px",t.style.height=o/this.devicePixelRatio+"px"}}draw(){try{let{doc:t}=this;t&&(t.layout(),this.updateCanvasSize(),this.clearCanvas(),this.drawHilightStaffPosRect(),this.drawHilightObjectRect(),this.drawPlayCursor(),t.drawContent())}catch(t){console.error("Render failed!",t)}}drawHilightStaffPosRect(){let{mousePos:t,hilightedStaffPos:e,unitSize:r}=this;if(!e)return;let{scoreRow:n,diatonicId:o}=e,s=n.getStaff(o);s&&(this.fillColor(X.HilightStaffPos),this.fillRect(s.row.getRect().left,s.getDiatonicIdY(o)-r,s.row.getRect().width,2*r),t!==void 0&&this.drawLedgerLines(s,o,t.x))}drawHilightObjectRect(){let{hilightedObj:t}=this;if(!t)return;let e=t.getRect();this.lineColor(X.HilightObject),this.strokeRect(e.left,e.top,e.width,e.height)}drawPlayCursor(){let{cursorRect:t}=this;t&&this.color(X.PlayCursor).lineWidth(2).strokeLine(t.centerX,t.top,t.centerX,t.bottom)}txFromScreenCoord(t){return t.mul(this.devicePixelRatio)}txToScreenCoord(t){return t.div(this.devicePixelRatio)}clearCanvas(){this.ctx&&(this.ctx.canvas.style.background=X.Background,this.ctx.clearRect(0,0,this.ctx.canvas.width,this.ctx.canvas.height))}drawDebugRect(t){tg.DrawDebugRects&&this.color("red").lineWidth(1).strokeRect(t.left,t.top,t.width,t.height)}drawLedgerLines(t,e,r){let{unitSize:n}=this,o=n*ct.LedgerLineWidth;if(e>=t.topLineDiatonicId+2){for(let s=t.topLineDiatonicId+2;s<=e;s+=2)if(t.containsDiatonicId(s)){let a=t.getDiatonicIdY(s);this.strokeLine(r-o/2,a,r+o/2,a)}}else if(e<=t.bottomLineDiatonicId-2){for(let s=t.bottomLineDiatonicId-2;s>=e;s-=2)if(t.containsDiatonicId(s)){let a=t.getDiatonicIdY(s);this.strokeLine(r-o/2,a,r+o/2,a)}}}getRestRect(t){let{unitSize:e}=this,{flagCount:r}=Nt.get(Br(t+"n")),n=0,o=0,s=0,a=0;if(Nt.equals(t,"1n"))n=e,o=e,s=0,a=e;else if(Nt.equals(t,"2n"))n=e,o=e,s=e,a=0;else if(Nt.equals(t,"4n"))n=e*1,o=e*1,s=e*3.2,a=e*3;else{let c=1-r%2;n=e*(1+r*.25),o=e*(1+r*.125),s=e*(.5+r-c),a=e*(1+r+c)}return new G(-n,0,o,-s,0,a)}drawRest(t,e,r){let{unitSize:n}=this,{flagCount:o}=Nt.get(Br(t+"n"));if(Nt.equals(t,"1n"))this.fillRect(e-n,r,n*2,n);else if(Nt.equals(t,"2n"))this.fillRect(e-n,r-n,n*2,n);else if(Nt.equals(t,"4n"))this.beginPath(),this.moveTo(e-n*.6,r-n*3.2),this.lineTo(e+n*.7,r-n*1.5),this.quadraticCurveTo(e-n*.8,r-n*.5,e+n*1,r+n*1.5),this.lineTo(e-n*1,r-n*.75),this.quadraticCurveTo(e+n*.2,r-n*1.5,e-n*.6,r-n*3.2),this.moveTo(e+n*1,r+n*1.5),this.quadraticCurveTo(e-n*.8,r+n*1,e-n*.2,r+n*2.8),this.bezierCurveTo(e-n*1.8,r+n*1.5,e-n*.6,r-n*.2,e+n*.9,r+n*1.5),this.fill(),this.stroke();else if(o>0){let s=1-o%2,a=u=>e+(-u*.25+.5)*n,c=u=>r+(u+s)*n;this.beginPath(),this.moveTo(a(1+o),c(1+o)),this.lineTo(a(-.5-o),c(-.5-o)),this.stroke();for(let u=0;u<o;u++){let h=o-u*2;this.beginPath(),this.moveTo(a(h-2.5),c(h-2.5)),this.quadraticCurveTo(a(h-.5)+n*.25,c(h-1.5),a(h-1.5)-n*1.5,c(h-1.5)),this.stroke(),this.beginPath(),this.arc(a(h-2)-n*1.5,c(h-2),n*.5,0,Math.PI*2),this.fill()}}}drawFlag(t,e){let r=t.left,o=t.right-r,s=e==="up"?t.top:t.bottom,a=e==="up"?t.bottom:t.top;this.beginPath(),this.moveTo(r,s),this.bezierCurveTo(r,s*.75+a*.25,r+o*1.5,s*.5+a*.5,r+o*.5,a),this.stroke()}color(t){return this.ctx&&(this.ctx.strokeStyle=this.ctx.fillStyle=t),this}lineColor(t){return this.ctx&&(this.ctx.strokeStyle=t),this}fillColor(t){return this.ctx&&(this.ctx.fillStyle=t),this}lineWidth(t){return this.ctx&&(this.ctx.lineWidth=this._lineWidth*(t!=null?t:1)),this}font(t){return this.ctx&&(this.ctx.font=t),this}beginPath(){return this.ctx&&this.ctx.beginPath(),this}stroke(){return this.ctx&&this.ctx.stroke(),this}fill(){return this.ctx&&this.ctx.fill(),this}moveTo(t,e){return this.ctx&&this.ctx.moveTo(t,e),this}lineTo(t,e){return this.ctx&&this.ctx.lineTo(t,e),this}bezierCurveTo(t,e,r,n,o,s){return this.ctx&&this.ctx.bezierCurveTo(t,e,r,n,o,s),this}quadraticCurveTo(t,e,r,n){return this.ctx&&this.ctx.quadraticCurveTo(t,e,r,n),this}fillRect(t,e,r,n){return this.ctx&&this.ctx.fillRect(t,e,r,n),this}setLineDash(t){return this.ctx&&this.ctx.setLineDash(t),this}drawImage(t,e,r,n,o){return this.ctx&&this.ctx.drawImage(t,e,r,n,o),this}ellipse(t,e,r,n,o,s,a){return this.ctx&&this.ctx.ellipse(t,e,r,n,o,s,a),this}clip(){return this.ctx&&this.ctx.clip(),this}save(){return this.ctx&&this.ctx.save(),this}restore(){return this.ctx&&this.ctx.restore(),this}rect(t,e,r,n){return this.ctx&&this.ctx.rect(t,e,r,n),this}scale(t,e){return this.ctx&&this.ctx.scale(t,e),this}strokeRect(t,e,r,n){return this.ctx&&this.ctx.strokeRect(t,e,r,n),this}fillText(t,e,r){return this.ctx&&this.ctx.fillText(t,e,r),this}getTextWidth(t,e){if(this.ctx){let r=this.ctx.font;this.ctx.font=e;let n=this.ctx.measureText(t);return this.ctx.font=r,n.width}else return $.Dom.getCanvasTextWidth(t,e)}arc(t,e,r,n,o){return this.ctx&&this.ctx.arc(t,e,r,n,o),this}fillCircle(t,e,r){return this.ctx?(this.ctx.beginPath(),this.ctx.arc(t,e,r,0,2*Math.PI),this.ctx.fill(),this):this}strokeLine(t,e,r,n){return this.ctx?(this.ctx.beginPath(),this.ctx.moveTo(t,e),this.ctx.lineTo(r,n),this.ctx.stroke(),this):this}strokePartialLine(t,e,r,n,o,s){if(!this.ctx)return this;let a=t+(r-t)*o,c=e+(n-e)*o,u=t+(r-t)*s,h=e+(n-e)*s;return this.ctx.beginPath(),this.ctx.moveTo(a,c),this.ctx.lineTo(u,h),this.ctx.stroke(),this}drawBracket(t,e){if(!this.ctx)return this;let{left:r,right:n,width:o,top:s,bottom:a,height:c,anchorY:u}=t;switch([")","]","}",">"].includes(e)&&([r,n,o]=[n,r,-o]),e){case"(":case")":this.ctx.beginPath(),this.ctx.moveTo(n,s),this.ctx.bezierCurveTo(r-o*.2,s+c*.3,r-o*.2,s+c*.7,n,a),this.ctx.stroke();break;case"{":case"}":this.ctx.beginPath(),this.ctx.moveTo(n,s),this.ctx.bezierCurveTo(r+o*.1,s,r+o*.8,u,r,u),this.ctx.moveTo(n,a),this.ctx.bezierCurveTo(r+o*.1,a,r+o*.8,u,r,u),this.ctx.stroke();break;case"[":case"]":this.ctx.beginPath(),this.ctx.moveTo(n,s),this.ctx.lineTo(r,s),this.ctx.lineTo(r,a),this.ctx.lineTo(n,a),this.ctx.stroke();break;case"<":case">":this.ctx.beginPath(),this.ctx.moveTo(n,s),this.ctx.lineTo(r,u),this.ctx.lineTo(n,a),this.ctx.stroke();break}return this}};var Ja=class{constructor(t){this.measure=t;d(this,"accidentalByDiatonicId",[])}getAccidentalFromKeySignature(t){let r=this.measure.getKeySignature().getOrderedAccidentalNotes().find(n=>n.diatonicClass===U.getDiatonicClass(t));return r?r.accidental:void 0}setAccidental(t){this.accidentalByDiatonicId[t.diatonicId]=t.accidental}needAccidental(t){var r,n;let e=(n=(r=this.accidentalByDiatonicId[t.diatonicId])!=null?r:this.getAccidentalFromKeySignature(t.diatonicId))!=null?n:0;return t.accidental!==e}};var tc=class extends tt{constructor(e,r,n,o,s){super(e);this.image=r;this.anchorX=n;this.anchorY=o;this.imageScale=s;d(this,"mi");this.mi=new Ho(this)}getMusicInterface(){return this.mi}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){let{anchorX:r,anchorY:n,image:o,imageScale:s}=this,{unitSize:a}=e;try{let c=o.naturalWidth*s*a,u=o.naturalHeight*s*a;this.rect=G.createSections(c*r,c*(1-r),u*n,u*(1-n))}catch(c){this.rect=new G}}offset(e,r){this.rect.offsetInPlace(e,r)}draw(e){let r=this.rect;e.drawDebugRect(r),e.drawImage(this.image,r.anchorX-r.leftw,r.anchorY-r.toph,r.width,r.height)}};var Hi=class extends tt{constructor(e,r,n,o="black"){super(e);this.diatonicId=r;this.accidental=n;this.color=o;d(this,"mi");this.mi=new $o(this)}getMusicInterface(){return this.mi}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){let{unitSize:r}=e;switch(this.accidental){case-2:this.rect=G.createSections(r*1.25,r*1.25,r*4,r*1.2);break;case-1:this.rect=G.createSections(r*.75,r*.75,r*4,r*1.2);break;case 0:this.rect=G.createSections(r*.75,r*.75,r*2.2,r*2.2);break;case 1:this.rect=G.createSections(r*.75,r*.75,r*2,r*2);break;case 2:this.rect=G.createSections(r*1,r*1,r*1,r*1);break;default:throw new N(6,"Invalid accidental value: "+this.accidental)}}offset(e,r){this.rect.offsetInPlace(e,r)}draw(e){e.drawDebugRect(this.rect);let{unitSize:r}=e,{accidental:n}=this,o=this.rect.anchorX,s=this.rect.anchorY;e.color(this.color);let a=(c,u)=>{e.lineWidth(1).beginPath().moveTo(c-r*.75,u-r*4).lineTo(c-r*.75,u+r*1.1).bezierCurveTo(c+r*.75,u-r*0,c+r*.75,u-r*2.2,c-r*.75,u-r*.5).stroke()};n===-2?(a(o-r*.5,s),a(o+r*.5,s)):n===-1&&a(o,s),n===0?e.beginPath().lineWidth(1).moveTo(o-r*.5,s-r*2.2).lineTo(o-r*.5,s+r*1).moveTo(o+r*.5,s+r*2.2).lineTo(o+r*.5,s-r*1).stroke().beginPath().lineWidth(2).moveTo(o-r*.5,s+r*1).lineTo(o+r*.5,s+r*.6).moveTo(o+r*.5,s-r*1).lineTo(o-r*.5,s-r*.6).stroke():n===1?e.lineWidth(1).beginPath().moveTo(o-r*.3,s-r*1.6).lineTo(o-r*.3,s+r*2).moveTo(o+r*.3,s-r*2).lineTo(o+r*.3,s+r*1.6).stroke().lineWidth(2).beginPath().moveTo(o-r*.75,s-r*.5).lineTo(o+r*.75,s-r*.9).moveTo(o-r*.75,s+r*.9).lineTo(o+r*.75,s+r*.5).stroke():n===2&&e.lineWidth(1).beginPath().moveTo(o-r*.75,s-r*.75).lineTo(o+r*.75,s+r*.75).moveTo(o-r*.75,s+r*.75).lineTo(o+r*.75,s-r*.75).stroke().fillRect(o-r*1,s-r*1,r*.7,r*.7).fillRect(o+r*.3,s-r*1,r*.7,r*.7).fillRect(o-r*1,s+r*.3,r*.7,r*.7).fillRect(o+r*.3,s+r*.3,r*.7,r*.7)}};var Uv=.5,st=class extends tt{constructor(e,r,n,o){var a,c,u,h,l,p;super(e);this.anchorX=n;this.anchorY=o;d(this,"text");d(this,"scale");d(this,"color");d(this,"bold");d(this,"italic");d(this,"boxed");d(this,"padding");d(this,"bgcolor");d(this,"font","");d(this,"textLines");d(this,"lineWidths",[]);d(this,"lineHeight",0);d(this,"mi");let s=typeof r=="string"?{text:r}:r;this.text=s.text,this.scale=(a=s.scale)!=null?a:1,this.color=(c=s.color)!=null?c:"black",this.bold=(u=s.bold)!=null?u:!1,this.italic=(h=s.italic)!=null?h:!1,this.boxed=(l=s.boxed)!=null?l:!1,this.padding=(p=s.padding)!=null?p:this.boxed?Uv:0,this.bgcolor=s.bgcolor,(!isFinite(this.padding)||this.padding<0)&&(this.padding=0),this.textLines=this.text.split(`
210
- `),this.textLines.length===0&&(this.textLines=[""]),this.rect=new G,this.mi=new Zo(this)}getMusicInterface(){return this.mi}getText(){return this.text}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){let{scale:r,anchorX:n,anchorY:o,bold:s,italic:a}=this,c=e.fontSize*r;this.font=(a?"italic ":"")+(s?"bold ":"")+c+"px Times New Roman",this.lineWidths=this.textLines.map(p=>e.getTextWidth(p,this.font)),this.lineHeight=c;let u=this.padding*e.unitSize,h=u+Math.max(...this.lineWidths)+u,l=u+this.lineHeight*this.textLines.length+u;(this.boxed==="square"||this.boxed==="circle")&&(l=h=Math.max(l,h)),this.rect=G.createSections(h*n,h*(1-n),l*o,l*(1-o))}offset(e,r){this.rect.offsetInPlace(e,r)}draw(e){var b;e.drawDebugRect(this.rect),e.lineWidth(1).font(this.font);let{rect:r,padding:n,lineHeight:o,lineWidths:s,anchorX:a,anchorY:c,italic:u}=this;this.bgcolor!==void 0&&(e.save(),e.fillColor((b=this.bgcolor)!=null?b:"black"),e.beginPath(),e.fillRect(r.left,r.top,r.width,r.height),e.fill(),e.restore());let l=this.textLines.length*o,p=-o*(u?.25:.2),m=n*e.unitSize,f=(r.left+m)*(1-a)+(r.right-m)*a,g=(r.top+m)*(1-c)+(r.bottom-m)*c;switch(e.color(this.color),this.textLines.forEach((x,C)=>{let S=f-s[C]*a,T=g-l*c+o*(C+1)+p;e.fillText(x,S,T)}),this.boxed){case"square":case"rectangle":e.strokeRect(r.left,r.top,r.width,r.height);break;case"circle":case"ellipse":e.beginPath(),e.ellipse(r.centerX,r.centerY,r.width/2,r.height/2,0,0,2*Math.PI),e.stroke();break}}};var Xo=class extends tt{constructor(e,r){super(e);this.measure=e;this.staff=r;d(this,"clefImage");d(this,"eightBelowClef");d(this,"measureNumber");d(this,"ksNeutralizeAccidentals",[]);d(this,"ksNewAccidentals",[]);d(this,"beatCountText");d(this,"beatSizeText");d(this,"tempoText");d(this,"mi");this.mi=new Ko(this)}get doc(){return this.measure.doc}getMusicInterface(){return this.mi}updateClefImage(e,r){if(r){let n=X.Staff_Signature_Clef;["black","#000","#000000"].includes(n)&&(n="");let o=e.getImageAsset(this.staff.clefImageAsset,n);this.clefImage=o?new tc(this,o,0,.5,.1):void 0,this.eightBelowClef=this.clefImage&&this.staff.isOctaveDown?new st(this,{text:"8",color:n},.5,0):void 0}else this.clefImage=void 0}updateMeasureNumber(e){if(e){let r=X.Staff_Signature_MeasureNum,n=this.measure.getMeasureNumber().toString();this.measureNumber=new st(this,{text:n,color:r},0,1)}else this.measureNumber=void 0}updateKeySignature(e){if(e){let{measure:r}=this,n=X.Staff_Signature_Key,o=r.getPrevMeasure(),s=o?o.getKeySignature():void 0,a=r.getKeySignature();this.ksNeutralizeAccidentals=[],this.ksNewAccidentals=[],s&&!rr.equals(a,s)&&s.getOrderedAccidentalNotes().forEach(c=>{this.ksNeutralizeAccidentals.push(new Hi(this,this.getAccidentalDiatonicId(c),0,n))}),a.getOrderedAccidentalNotes().forEach(c=>{this.ksNewAccidentals.push(new Hi(this,this.getAccidentalDiatonicId(c),c.accidental,n))})}else this.ksNeutralizeAccidentals=[],this.ksNewAccidentals=[]}updateTimeSignature(e){if(e){let r=this.measure.getTimeSignature(),n=X.Staff_Signature_Time,o=r.beatCount.toString();this.beatCountText=new st(this,{text:o,color:n,scale:1.4},.5,.5);let s=r.beatSize.toString();this.beatSizeText=new st(this,{text:s,color:n,scale:1.4},.5,.5)}else this.beatCountText=this.beatSizeText=void 0}updateTempo(e){if(e){let r=X.Staff_Signature_Tempo,n=Ks(this.measure.getTempo());this.tempoText=new st(this,{text:n,color:r},.5,1)}else this.tempoText=void 0}getAccidentalDiatonicId(e){let{clef:r}=this.staff.staffConfig,n;if(r==="G"?e.accidental>0?n=this.staff.bottomLineDiatonicId+3:e.accidental<0&&(n=this.staff.bottomLineDiatonicId+1):r==="F"&&(e.accidental>0?n=this.staff.bottomLineDiatonicId+1:e.accidental<0&&(n=this.staff.bottomLineDiatonicId-1)),n!==void 0)return U.findNextDiatonicIdAbove(e.diatonicId,n,!1);throw new N(6,"Cannot get accidental diatonicId because note has no accidental.")}pick(e,r){if(!this.rect.contains(e,r))return[];if(this.eightBelowClef){let n=this.eightBelowClef.pick(e,r);if(n.length>0)return[this,...n]}if(this.clefImage){let n=this.clefImage.pick(e,r);if(n.length>0)return[this,...n]}for(let n=0;n<this.ksNeutralizeAccidentals.length;n++){let o=this.ksNeutralizeAccidentals[n].pick(e,r);if(o.length>0)return[this,...o]}for(let n=0;n<this.ksNewAccidentals.length;n++){let o=this.ksNewAccidentals[n].pick(e,r);if(o.length>0)return[this,...o]}if(this.beatCountText){let n=this.beatCountText.pick(e,r);if(n.length>0)return[this,...n]}if(this.beatSizeText){let n=this.beatSizeText.pick(e,r);if(n.length>0)return[this,...n]}if(this.tempoText){let n=this.tempoText.pick(e,r);if(n.length>0)return[this,...n]}if(this.measureNumber){let n=this.measureNumber.pick(e,r);if(n.length>0)return[this,...n]}return[this]}layout(e){var u,h,l,p,m,f;let{unitSize:r}=e,{staff:n}=this,o=r,s=0;if(this.rect=new G,this.clefImage&&(s+=o,this.clefImage.layout(e),this.clefImage.setAnchor(s,n.getDiatonicIdY(n.clefLineDiatonicId)),this.rect.expandInPlace(this.clefImage.getRect()),s=this.rect.right,this.eightBelowClef)){let g=this.clefImage.getRect();this.eightBelowClef.layout(e),this.eightBelowClef.setCenterX(g.centerX),this.eightBelowClef.setTop(Math.max(g.anchorY+g.height*.3,n.getBottomLineY())),this.rect.expandInPlace(this.eightBelowClef.getRect())}this.measureNumber&&(this.measureNumber.layout(e),this.measureNumber.setLeft(0),this.measureNumber.setBottom(Math.min(n.getTopLineY(),this.clefImage?this.clefImage.getRect().top:n.getTopLineY())),this.rect.expandInPlace(this.measureNumber.getRect()),s=Math.max(s,this.rect.right)),this.ksNeutralizeAccidentals.length>0&&(s+=o,this.ksNeutralizeAccidentals.forEach(g=>{g.layout(e),g.setLeft(s),g.setAnchorY(n.getDiatonicIdY(g.diatonicId)),this.rect.expandInPlace(g.getRect()),s=this.rect.right})),this.ksNewAccidentals&&(s+=o,this.ksNewAccidentals.forEach(g=>{g.layout(e),g.setLeft(s),g.setAnchorY(n.getDiatonicIdY(g.diatonicId)),this.rect.expandInPlace(g.getRect()),s=this.rect.right}));let a=s;(u=this.beatCountText)==null||u.layout(e),(h=this.beatSizeText)==null||h.layout(e);let c=Math.max((p=(l=this.beatCountText)==null?void 0:l.getRect().width)!=null?p:0,(f=(m=this.beatSizeText)==null?void 0:m.getRect().width)!=null?f:0);this.beatCountText&&(this.beatCountText.setCenter(s+c/2+o,n.getDiatonicIdY(n.middleLineDiatonicId+2)),this.rect.expandInPlace(this.beatCountText.getRect()),a=Math.max(a,this.rect.right)),this.beatSizeText&&(this.beatSizeText.setCenter(s+c/2+o,n.getDiatonicIdY(n.bottomLineDiatonicId+2)),this.rect.expandInPlace(this.beatSizeText.getRect()),a=Math.max(a,this.rect.right)),s=a,this.tempoText&&(this.tempoText.layout(e),this.tempoText.setCenterX(s),this.tempoText.setBottom(n.getTopLineY()),this.clefImage&&G.overlap(this.clefImage.getRect(),this.tempoText.getRect())&&this.tempoText.setBottom(this.clefImage.getRect().top),[...this.ksNeutralizeAccidentals,...this.ksNewAccidentals].forEach(g=>{this.tempoText&&G.overlap(g.getRect(),this.tempoText.getRect())&&this.tempoText.setBottom(g.getRect().top)}),this.rect.expandInPlace(this.tempoText.getRect())),this.rect.right+=o}offset(e,r){var n,o,s,a,c,u;(n=this.clefImage)==null||n.offset(e,r),(o=this.eightBelowClef)==null||o.offset(e,r),(s=this.measureNumber)==null||s.offset(e,r),this.ksNeutralizeAccidentals.forEach(h=>h.offset(e,r)),this.ksNewAccidentals.forEach(h=>h.offset(e,r)),(a=this.beatCountText)==null||a.offset(e,r),(c=this.beatSizeText)==null||c.offset(e,r),(u=this.tempoText)==null||u.offset(e,r),this.rect.offsetInPlace(e,r)}draw(e){var r,n,o,s,a,c;(r=this.clefImage)==null||r.draw(e),(n=this.eightBelowClef)==null||n.draw(e),(o=this.measureNumber)==null||o.draw(e),this.ksNeutralizeAccidentals.forEach(u=>u.draw(e)),this.ksNewAccidentals.forEach(u=>u.draw(e)),(s=this.beatCountText)==null||s.draw(e),(a=this.beatSizeText)==null||a.draw(e),(c=this.tempoText)==null||c.draw(e)}},Qo=class extends tt{constructor(e,r){super(e);this.measure=e;this.tab=r;d(this,"measureNumber");d(this,"beatCountText");d(this,"beatSizeText");d(this,"tempoText");d(this,"mi");this.mi=new Jo(this)}getMusicInterface(){return this.mi}get doc(){return this.measure.doc}updateMeasureNumber(e){if(e){let r=X.Tab_Signature_MeasureNum,n=this.measure.getMeasureNumber().toString();this.measureNumber=new st(this,{text:n,color:r},0,1)}else this.measureNumber=void 0}updateTimeSignature(e){if(e){let r=this.measure.getTimeSignature(),n=X.Tab_Signature_Time,o=r.beatCount.toString();this.beatCountText=new st(this,{text:o,color:n,scale:1.4},.5,.5);let s=r.beatSize.toString();this.beatSizeText=new st(this,{text:s,color:n,scale:1.4},.5,.5)}else this.beatCountText=this.beatSizeText=void 0}updateTempo(e){if(e){let r=X.Tab_Signature_Tempo,n=Ks(this.measure.getTempo());this.tempoText=new st(this,{text:n,color:r},0,1)}else this.tempoText=void 0}pick(e,r){if(!this.rect.contains(e,r))return[];if(this.beatCountText){let n=this.beatCountText.pick(e,r);if(n.length>0)return[this,...n]}if(this.beatSizeText){let n=this.beatSizeText.pick(e,r);if(n.length>0)return[this,...n]}if(this.tempoText){let n=this.tempoText.pick(e,r);if(n.length>0)return[this,...n]}if(this.measureNumber){let n=this.measureNumber.pick(e,r);if(n.length>0)return[this,...n]}return[this]}layout(e){var u,h,l,p,m,f;let{unitSize:r}=e,{tab:n}=this,o=r,s=0,a=n.getTopLineY();this.rect=new G,this.measureNumber&&(this.measureNumber.layout(e),this.measureNumber.setLeft(0),this.measureNumber.setBottom(a),this.rect.expandInPlace(this.measureNumber.getRect()),s=Math.max(s,this.rect.right)),(u=this.beatCountText)==null||u.layout(e),(h=this.beatSizeText)==null||h.layout(e);let c=Math.max((p=(l=this.beatCountText)==null?void 0:l.getRect().width)!=null?p:0,(f=(m=this.beatSizeText)==null?void 0:m.getRect().width)!=null?f:0);this.beatCountText&&(this.beatCountText.setCenter(0+c/2+o,n.getRect().anchorY-this.beatCountText.getRect().bottomh),this.rect.expandInPlace(this.beatCountText.getRect())),this.beatSizeText&&(this.beatSizeText.setCenter(0+c/2+o,n.getRect().anchorY+this.beatSizeText.getRect().toph),this.rect.expandInPlace(this.beatSizeText.getRect())),this.tempoText&&(this.tempoText.layout(e),this.tempoText.setLeft(s+r*2),this.tempoText.setBottom(a),this.rect.expandInPlace(this.tempoText.getRect())),this.rect.right+=o}offset(e,r){var n,o,s,a;(n=this.measureNumber)==null||n.offset(e,r),(o=this.beatCountText)==null||o.offset(e,r),(s=this.beatSizeText)==null||s.offset(e,r),(a=this.tempoText)==null||a.offset(e,r),this.rect.offsetInPlace(e,r)}draw(e){var r,n,o,s;(r=this.measureNumber)==null||r.draw(e),(n=this.beatCountText)==null||n.draw(e),(o=this.beatSizeText)==null||o.draw(e),(s=this.tempoText)==null||s.draw(e)}};var ec=class extends tt{constructor(e,r,n){super(e);this.col=e;this.line=r;this.arpeggioDir=n;d(this,"topArrowHeight",0);d(this,"bottomArrowHeight",0);d(this,"cycleHeight",0);d(this,"numCycles",0);d(this,"color","black");d(this,"mi");this.mi=new ts(this)}getMusicInterface(){return this.mi}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){let{unitSize:r}=e;this.topArrowHeight=this.arpeggioDir==="up"?r:0,this.bottomArrowHeight=this.arpeggioDir==="down"?r:0;let n=this.line.getTopLineY(),o=this.line.getBottomLineY();this.cycleHeight=r*2,this.numCycles=Math.ceil((o-n)/this.cycleHeight)+2;let s=r*2,a=this.numCycles*this.cycleHeight;this.rect=new G(-s/2,s/2,-a/2-this.topArrowHeight,a/2+this.bottomArrowHeight)}offset(e,r){this.rect.offsetInPlace(e,r)}draw(e){let{rect:r,topArrowHeight:n,bottomArrowHeight:o}=this;e.drawDebugRect(this.rect),e.color(this.color),e.lineWidth(2),e.beginPath();for(let s=0,a=r.top+n;s<this.numCycles;s++,a+=this.cycleHeight)e.moveTo(r.anchorX,a),e.quadraticCurveTo(r.left,a+this.cycleHeight/4,r.anchorX,a+this.cycleHeight/2),e.quadraticCurveTo(r.right,a+this.cycleHeight*3/4,r.anchorX,a+this.cycleHeight);e.stroke(),n>0&&(e.beginPath(),e.moveTo(r.anchorX,r.top),e.lineTo(r.right,r.top+n),e.lineTo(r.left,r.top+n),e.fill()),o>0&&(e.beginPath(),e.moveTo(r.anchorX,r.bottom),e.lineTo(r.left,r.bottom-o),e.lineTo(r.right,r.bottom-o),e.fill())}};function zv(i){return typeof i=="number"?U.getChromaticNote(i).diatonicId:typeof i=="string"?U.getNote(i).diatonicId:i instanceof U?i.diatonicId:void 0}var rc=class extends tt{constructor(e,r){super(e);this.staff=e;this.rest=r;d(this,"restRect",new G);d(this,"dotRects",[]);d(this,"mi");e.addObject(this),this.mi=new rs(this)}getMusicInterface(){return this.mi}pick(e,r){return this.getRect().contains(e,r)?[this]:[]}offset(e,r){this.restRect.offsetInPlace(e,r),this.dotRects.forEach(n=>n.offsetInPlace(e,r)),this.requestRectUpdate(),this.rest.requestRectUpdate()}updateRect(){this.rect=this.restRect.clone(),this.dotRects.forEach(e=>this.rect.expandInPlace(e))}},$n=class $n extends tt{constructor(e,r,n,o,s){var c,u,h,l;super(e);this.col=e;this.voiceId=r;this.options=o;d(this,"color");d(this,"hide");d(this,"oldStyleTriplet");d(this,"rhythmProps");d(this,"setDiatonicId");d(this,"runningDiatonicId");d(this,"runningStemDir");d(this,"beamGroup");d(this,"staffObjects",[]);d(this,"mi");this.setDiatonicId=(u=zv((c=this.options)==null?void 0:c.staffPos))!=null?u:$n.UndefinedDiatonicId;let a=this.row.getStaves().filter(p=>p.containsVoiceId(this.voiceId));this.setDiatonicId!==$n.UndefinedDiatonicId&&a.length>0&&a[0].isSpace(this.setDiatonicId)&&(this.setDiatonicId+=this.setDiatonicId>=a[0].middleLineDiatonicId?1:-1),this.runningDiatonicId=this.setDiatonicId,this.runningStemDir="up",this.color=(h=o==null?void 0:o.color)!=null?h:X.Staff_Rest,this.hide=(l=o==null?void 0:o.hide)!=null?l:!1,this.oldStyleTriplet=s===void 0&&Nt.get(n).isTriplet,this.rhythmProps=Kt.get(n,void 0,(s!=null?s:this.oldStyleTriplet)?Gr.Triplet:void 0),this.mi=new es(this)}getMusicInterface(){return this.mi}get doc(){return this.col.doc}get measure(){return this.col.measure}get row(){return this.col.row}get noteLength(){return this.rhythmProps.noteLength}getDiatonicId(e){return this.runningDiatonicId===$n.UndefinedDiatonicId?e?Nt.equals(this.noteLength,"1n")?e.middleLineDiatonicId+2:e.middleLineDiatonicId:U.getNote("G4").diatonicId:this.runningDiatonicId}get stemDir(){return this.runningStemDir}updateRunningArguments(e,r,n){this.runningDiatonicId=e,this.runningStemDir=r}getStaticObjects(e){let r=[];return this.staffObjects.forEach(n=>{n.staff===e&&r.push(n)}),r}pick(e,r){if(!this.getRect().contains(e,r))return[];for(let n=0;n<this.staffObjects.length;n++){let o=this.staffObjects[n].pick(e,r);if(o.length>0)return[this,...o]}return[]}getBeamGroup(){return this.beamGroup}setBeamGroup(e){this.beamGroup=e}resetBeamGroup(){this.beamGroup=void 0}getBeamCoords(){return this.staffObjects.map(e=>{let r=e.staff,n=e.getRect().anchorX,o=this.stemDir==="up"?e.getRect().top:e.getRect().bottom,s=Math.abs(e.getRect().anchorY-o);return{staff:r,x:n,y:o,stemHeight:s}})}hasTuplet(){return this.rhythmProps.tupletRatio!==void 0}isEmpty(){return this.staffObjects.length===0}visibleInStaff(e){return e.containsVoiceId(this.voiceId)&&this.staffObjects.some(r=>r instanceof rc&&r.staff===e)}getRestDotVerticalDisplacement(e){switch(e){case 1:return 1;case 2:return-1;case 4:return-1;case 8:return-1;case 16:return-1;case 32:return-3;case 64:return-3;default:throw new N(6,`Get rest dot vertical displacement: Invalid note size: ${e}`)}}updateAccidentalState(e){}layout(e,r){if(this.requestRectUpdate(),this.staffObjects.length=0,this.hide)return;let{unitSize:n}=e,{noteSize:o,dotCount:s}=this.rhythmProps;this.row.getStaves().forEach(a=>{let c=this.getDiatonicId(a);if(!a.containsDiatonicId(c)||!a.containsVoiceId(this.voiceId))return;let u=new rc(a,this);u.restRect=e.getRestRect(o);for(let h=0;h<s;h++){let l=ct.DotSize*n,p=u.restRect.rightw+(ct.RestDotSpace+ct.DotSize*n)+h*ct.DotSize*n*1.5,m=this.getRestDotVerticalDisplacement(o)*n;u.dotRects.push(G.createCentered(p,m,l,l))}u.setAnchor(0,a.getDiatonicIdY(c)),this.staffObjects.push(u),this.measure.addStaticObject(a,u)})}updateRect(){if(this.staffObjects.length===0)this.rect=new G;else if(this.rect=this.staffObjects[0].getRect().clone(),this.staffObjects.length>1)for(let e=1;e<this.staffObjects.length;e++)this.rect.expandInPlace(this.staffObjects[e].getRect())}offset(e,r){this.staffObjects.forEach(n=>n.offset(e,0)),this.requestRectUpdate()}draw(e){if(this.staffObjects.length===0)return;e.drawDebugRect(this.getRect());let{noteSize:r}=this.rhythmProps;e.color(this.color).lineWidth(1),this.staffObjects.forEach(n=>{let{dotRects:o,restRect:s}=n;e.drawRest(r,s.anchorX,s.anchorY),o.forEach(a=>e.fillCircle(a.anchorX,a.anchorY,a.width/2))})}};d($n,"UndefinedDiatonicId",1/0);var ce=$n;function Yv(i){return y.isEnumValue(i,fi)?i:i===!0?"up":void 0}function Hv(i,t){let e=$.Arr.isArray(t)?t:t!==void 0?[t]:[],r=i.map((n,o)=>({note:n,string:e[o]}));return r=$.Arr.removeDuplicates(r,(n,o)=>U.equals(n.note,o.note)).sort((n,o)=>U.compareFunc(n.note,o.note)),{sortedNotes:r.map(n=>n.note),sortedStrings:r.every(n=>n.string===void 0)?void 0:r.map(n=>n.string)}}var ic=class extends tt{constructor(e,r){super(e);this.staff=e;this.noteGroup=r;d(this,"noteHeadRects",[]);d(this,"dotRects",[]);d(this,"accidentals",[]);d(this,"stemTip");d(this,"stemBase");d(this,"flagRects",[]);d(this,"prevTopNoteY",0);d(this,"prevBottomNoteY",0);d(this,"mi");this.mi=new ns(this)}getMusicInterface(){return this.mi}pick(e,r){if(!this.getRect().contains(e,r))return[];for(let n=0;n<this.accidentals.length;n++){let o=this.accidentals[n].pick(e,r);if(o.length>0)return[this,...o]}return[this]}updateRect(){this.rect=this.noteHeadRects[0].clone(),this.noteHeadRects.forEach(e=>this.rect.expandInPlace(e)),this.stemTip&&this.rect.expandInPlace(this.stemTip),this.stemBase&&this.rect.expandInPlace(this.stemBase),this.dotRects.forEach(e=>this.rect.expandInPlace(e)),this.flagRects.forEach(e=>this.rect.expandInPlace(e)),this.accidentals.forEach(e=>this.rect.expandInPlace(e.getRect()))}getRect(){let e=this.noteHeadRects[0],r=this.noteHeadRects[this.noteHeadRects.length-1];return(this.prevTopNoteY!==r.anchorY||this.prevBottomNoteY!==e.anchorY)&&(this.prevTopNoteY=r.anchorY,this.prevBottomNoteY=e.anchorY,this.requestRectUpdate()),super.getRect()}offset(e,r){var n,o;this.noteHeadRects.forEach(s=>s.offsetInPlace(e,r)),this.dotRects.forEach(s=>s.offsetInPlace(e,r)),this.accidentals.forEach(s=>s.offset(e,r)),(n=this.stemTip)==null||n.offsetInPlace(e,r),(o=this.stemBase)==null||o.offsetInPlace(e,r),this.flagRects.forEach(s=>s.offsetInPlace(e,r)),this.requestRectUpdate(),this.noteGroup.requestRectUpdate()}},Oh=class extends tt{constructor(e,r){super(e);this.tab=e;this.noteGroup=r;d(this,"fretNumbers",[]);d(this,"mi");this.mi=new os(this)}getMusicInterface(){return this.mi}pick(e,r){return this.getRect().contains(e,r)?[this]:[]}updateRect(){this.rect=this.fretNumbers[0].getRect().clone(),this.fretNumbers.forEach(e=>this.rect.expandInPlace(e.getRect()))}offset(e,r){this.fretNumbers.forEach(n=>n.offset(e,r)),this.requestRectUpdate(),this.noteGroup.requestRectUpdate()}},At=class i extends tt{constructor(e,r,n,o,s,a){var h,l,p;super(e);this.col=e;this.voiceId=r;this.notes=n;this.options=s;d(this,"setDiatonicId");d(this,"setStringsNumbers");d(this,"runningDiatonicId");d(this,"runningStemDir");d(this,"runningStringNumbers");d(this,"color");d(this,"staccato");d(this,"diamond");d(this,"arpeggio");d(this,"oldStyleTriplet");d(this,"rhythmProps");d(this,"startConnnectives",[]);d(this,"runningConnectives",[]);d(this,"leftBeamCount",0);d(this,"rightBeamCount",0);d(this,"beamGroup");d(this,"staffObjects",[]);d(this,"tabObjects",[]);d(this,"isNoteDisplaced");d(this,"mi");if(!y.isIntegerGte(n.length,1))throw new N(6,"Cannot create note group object because notes array is empty.");let{sortedNotes:c,sortedStrings:u}=Hv(n,s==null?void 0:s.string);this.notes=c,this.setStringsNumbers=u,this.isNoteDisplaced=this.notes.map(()=>!1),this.setDiatonicId=Math.round((this.minDiatonicId+this.maxDiatonicId)/2),this.runningDiatonicId=this.setDiatonicId,this.runningStemDir="up",this.runningStringNumbers=[],this.color=(h=s==null?void 0:s.color)!=null?h:X.Staff_Note,this.staccato=(l=s==null?void 0:s.staccato)!=null?l:!1,this.diamond=(p=s==null?void 0:s.diamond)!=null?p:!1,this.arpeggio=Yv(s==null?void 0:s.arpeggio),this.oldStyleTriplet=a===void 0&&Nt.get(o).isTriplet,this.rhythmProps=Kt.get(o,void 0,(a!=null?a:this.oldStyleTriplet)?Gr.Triplet:void 0),this.mi=new is(this)}getMusicInterface(){return this.mi}get doc(){return this.col.doc}get measure(){return this.col.measure}get row(){return this.col.row}get minDiatonicId(){return this.notes[0].diatonicId}get maxDiatonicId(){return this.notes[this.notes.length-1].diatonicId}getDiatonicId(e){return this.runningDiatonicId}get stemDir(){return this.runningStemDir}setNoteDisplacement(e,r){let n=this.notes.indexOf(e);n>=0&&(this.isNoteDisplaced[n]=r)}enableConnective(e){return e.containsVoiceId(this.voiceId)&&(e instanceof Pt||e.containsDiatonicId(this.runningDiatonicId))}startConnective(e){if(!this.row.hasStaff&&e.connective==="tie")throw new N(6,"Ties not implemented for guitar tabs alone, staff is required!");if(!this.row.hasStaff&&e.connective==="slur")throw new N(6,"Slurs not implemented for guitar tabs alone, staff is required!");this.startConnnectives.push(e),this.doc.addConnectiveProps(e)}updateRunningArguments(e,r,n){this.runningDiatonicId=e===ce.UndefinedDiatonicId?this.setDiatonicId:e,this.runningStemDir=r,this.runningStringNumbers=n}pick(e,r){if(!this.getRect().contains(e,r))return[];for(let n=0;n<this.staffObjects.length;n++){let o=this.staffObjects[n].pick(e,r);if(o.length>0)return[this,...o]}for(let n=0;n<this.tabObjects.length;n++){let o=this.tabObjects[n].pick(e,r);if(o.length>0)return[this,...o]}return[]}getTopNote(){return this.notes[this.notes.length-1]}getBottomNote(){return this.notes[0]}getConnectiveAnchorPoint(e,r,n,o,s){var a;if(r instanceof Et){if(n<0||n>=this.notes.length)throw new N(6,"Invalid noteIndex: "+n);let c=this.staffObjects.find(w=>w.staff===r);if(!c||n<0||n>=c.noteHeadRects.length){let w=this.getRect();return{x:w.anchorX,y:w.bottom}}let u=c.noteHeadRects[n],h=c.stemTip,l=this.stemDir,p=h!==void 0,m=p?l==="up"?"right":"left":void 0,f=u.height/2,g=u.anchorX,b=u.anchorY,x=u.left-f,C=u.right+f,S=u.top-f,T=u.bottom+f;switch(o==="auto"?o="below":o==="stemTip"&&!p&&(o=l==="up"?"above":"below"),o){case"center":return s==="left"?{x:C,y:b}:{x,y:b};case"above":return!p||l==="down"?{x:g,y:S}:{x:s==="left"&&m==="right"?C:s==="right"&&m==="left"?x:g,y:S};case"below":return!p||l==="up"?{x:g,y:T}:{x:s==="left"&&m==="right"?C:s==="right"&&m==="left"?x:g,y:T};case"stemTip":return{x:g,y:h.anchorY+(l==="up"?-f:f)};default:throw new N(6,"Invalid noteAnchor: "+o)}}else if(r instanceof Pt){let c=(a=this.tabObjects.find(m=>m.tab===r))==null?void 0:a.fretNumbers[n];if(!c)return{x:0,y:0};let u=c.getRect(),h=s==="right"?u.left:u.right,l,p=.9;if(e.connective==="slide"){let m=e.noteGroups[0].getFretNumber(r,0),f=e.noteGroups[1].getFretNumber(r,0),g=m===void 0||f===void 0||m<=f;s==="left"?l=(g?u.anchorY+u.bottomh:u.anchorY-u.toph)*p:l=(g?u.anchorY-u.toph:u.anchorY+u.bottomh)*p}else l=u.anchorY+u.bottomh*p;return{x:h,y:l}}else return{x:0,y:0}}getFretNumberString(e){return this.runningStringNumbers[e]}getFretNumber(e,r){let n=this.tabObjects.find(s=>s.tab===e),o=n==null?void 0:n.fretNumbers[r];return o?parseInt(o.getText()):void 0}getNextNoteGroup(){let e=this.measure.getVoiceSymbols(this.voiceId).filter(o=>o instanceof i),r=e.indexOf(this);if(r<0)return;if(r<e.length-1)return e[r+1];let n=this.measure.getNextMeasure();for(;n;){let o=n.getVoiceSymbols(this.voiceId).filter(s=>s instanceof i);if(o.length>0)return o[0];n=n.getNextMeasure()}}collectConnectiveProps(){this.startConnnectives.forEach(e=>{this.runningConnectives.push(e);let r=this.getNextNoteGroup();for(;r&&e.addNoteGroup(r);)r.runningConnectives.push(e),r=r.getNextNoteGroup()})}removeConnectiveProps(){this.runningConnectives=[]}getPlaySlur(){let e=this.runningConnectives.filter(r=>r.connective==="slur").map(r=>r.startsWith(this)?"first":"slurred");return e.indexOf("first")>=0?"first":e.indexOf("slurred")>=0?"slurred":void 0}getBeamGroup(){return this.beamGroup}setBeamGroup(e){this.beamGroup=e}resetBeamGroup(){this.leftBeamCount=this.rightBeamCount=0,this.beamGroup=void 0}getBeamCoords(){return this.staffObjects.map(e=>{var a,c,u,h;let r=e.staff,n=(c=(a=e.stemTip)==null?void 0:a.anchorX)!=null?c:e.noteHeadRects[0].anchorX,o=(h=(u=e.stemTip)==null?void 0:u.anchorY)!=null?h:this.stemDir==="up"?e.getRect().top:e.getRect().bottom,s=this.stemDir==="up"?Math.abs(e.noteHeadRects[0].anchorY-o):Math.abs(e.noteHeadRects[e.noteHeadRects.length-1].anchorY-o);return{staff:r,x:n,y:o,stemHeight:s}})}getStemHeight(e){let{unitSize:r}=e,{flagCount:n,hasStem:o}=this.rhythmProps;if(o){let s=this.hasBeamCount()?ct.BeamSeparation:ct.FlagSeparation;return(ct.StemHeight+Math.max(0,n-1)*s)*r}else return 0}hasBeamCount(){return this.leftBeamCount>0||this.rightBeamCount>0}getLeftBeamCount(){return this.leftBeamCount}getRightBeamCount(){return this.rightBeamCount}setLeftBeamCount(e){this.leftBeamCount=e}setRightBeamCount(e){this.rightBeamCount=e}hasTuplet(){return this.rhythmProps.tupletRatio!==void 0}isEmpty(){return this.staffObjects.length===0&&this.tabObjects.length===0}visibleInStaff(e){return e.containsVoiceId(this.voiceId)&&this.staffObjects.some(r=>r instanceof ic&&r.staff===e)}getPlayTicks(e){let r=this.runningConnectives.filter(n=>n.connective==="tie").map(n=>{let o=n.noteGroups,s=o.indexOf(this);if(s<0)return 0;if(n.span==="stub"||n.span==="toMeasureEnd")return Math.max(this.rhythmProps.ticks,this.measure.getMeasureTicks()-this.col.positionTicks);let a=o[s-1];return a&&a.notes.some(c=>U.equals(c,e))?0:(o=o.slice(s),s=o.findIndex(c=>c.notes.every(u=>!U.equals(u,e))),s>=0&&(o=o.slice(0,s)),$.Math.sum(o.map(c=>c.rhythmProps.ticks)))});return r.length===0?this.rhythmProps.ticks:Math.max(...r)}updateAccidentalState(e){this.notes.forEach(r=>{e.needAccidental(r)&&e.setAccidental(r)})}layout(e,r){this.requestRectUpdate();let{unitSize:n}=e,{row:o,stemDir:s}=this,{dotCount:a,flagCount:c,hasStem:u}=this.rhythmProps,h=ct.DotSize*n,l=(this.diamond?ct.DiamondNoteHeadSize:ct.NoteHeadWidth)*n,p=(this.diamond?ct.DiamondNoteHeadSize:ct.NoteHeadHeight)*n;this.staffObjects.length=0,o.getStaves().forEach(m=>{if(!m.containsDiatonicId(this.runningDiatonicId)||!m.containsVoiceId(this.voiceId))return;let f=new ic(m,this),g=m,b=m;this.notes.forEach((A,_)=>{var F;let E=_===0,q=_===this.notes.length-1,M=(F=m.getActualStaff(A.diatonicId))!=null?F:m,R=this.isNoteDisplaced[_]?l*(s==="down"?-1:1):0,B=M.getDiatonicIdY(A.diatonicId),D=M.isLine(A.diatonicId);E&&s==="up"&&(g=M),q&&s==="up"&&(b=M),E&&s==="down"&&(b=M),q&&s==="down"&&(g=M);let j=f.noteHeadRects[_]=G.createCentered(R,B,l,p);if(M.addObject(j),r.needAccidental(A)){let W=f.accidentals[_]=new Hi(this,A.diatonicId,A.accidental,this.color);W&&(W.layout(e),W.setAnchor(-j.leftw-n*ct.NoteAccSpace-W.getRect().rightw,B)),M.addObject(W)}for(let W=0;W<a;W++){let K=j.right+ct.NoteDotSpace*n+h/2+W*h*1.5,k=B+this.getDotVerticalDisplacement(m,A.diatonicId,s)*n,nt=G.createCentered(K,k,h,h);f.dotRects.push(nt),M.addObject(nt)}if(this.staccato){if(s==="up"&&E){let W=R,K=B+n*(D?3:2),k=G.createCentered(W,K,h,h);f.dotRects.push(k),g.addObject(k)}else if(s==="down"&&q){let W=R,K=B-n*(D?3:2),k=G.createCentered(W,K,h,h);f.dotRects.push(k),g.addObject(k)}}});let x=f.noteHeadRects[0].anchorY,C=f.noteHeadRects[f.noteHeadRects.length-1].anchorY,S=s==="up"?l/2:-l/2,T=this.getStemHeight(e),w=s==="up"?C-T:x+T,v=s==="up"?x:C;if(u&&(f.stemTip=new G(S,S,w,w),f.stemBase=new G(S,S,v,v),b.addObject(f.stemTip),g.addObject(f.stemBase)),!this.hasBeamCount()){let A=c===0?0:ct.FlagWidth*n,_=c===0?0:ct.FlagHeight*n;for(let E=0;E<c;E++){let q=E*n*ct.FlagSeparation,M=f.flagRects[E]=s==="up"?new G(S,S+A,w+q,w+_+q):new G(S,S+A,w-_-q,w-q);b.addObject(M)}}this.staffObjects.push(f),this.measure.addStaticObject(m,f)}),this.tabObjects.length=0,o.getTabs().forEach(m=>{if(!m.containsVoiceId(this.voiceId))return;let f=new Oh(m,this),g=X.Background,b=X.Tab_Note;this.notes.forEach((x,C)=>{let S=this.runningStringNumbers[C];if(y.isIntegerBetween(S,1,6)){let T=x.chromaticId-m.getTuningStrings()[S-1].chromaticId,w=new st(this,{text:String(T),color:b,bgcolor:g},.5,.5);w.layout(e),w.setAnchor(this.col.getRect().anchorX,m.getStringY(S-1)),f.fretNumbers.push(w)}}),f.fretNumbers.length>0&&(this.tabObjects.push(f),m.addObject(f),this.measure.addStaticObject(m,f))})}updateRect(){if(this.staffObjects.length>0)this.rect=this.staffObjects[0].noteHeadRects[0].clone();else if(this.tabObjects.length>0&&this.tabObjects[0].fretNumbers.length>0)this.rect=this.tabObjects[0].fretNumbers[0].getRect().clone();else{this.rect=new G;return}this.staffObjects.forEach(e=>this.rect.expandInPlace(e.getRect())),this.tabObjects.forEach(e=>this.rect.expandInPlace(e.getRect()))}setStemTipY(e,r){let n=this.staffObjects.find(o=>o.staff===e);this.hasBeamCount()&&(n!=null&&n.stemTip)&&r!==n.stemTip.anchorY&&(n.stemTip.top=n.stemTip.anchorY=n.stemTip.bottom=r,this.requestRectUpdate(),this.col.requestRectUpdate())}offset(e,r){this.staffObjects.forEach(n=>n.offset(e,0)),this.tabObjects.forEach(n=>n.offset(e,0)),this.requestRectUpdate()}draw(e){e.drawDebugRect(this.getRect());let{stemDir:r}=this,{isSolidNoteHead:n}=this.rhythmProps;this.staffObjects.forEach(o=>{o.accidentals.forEach(s=>s.draw(e)),e.color(this.color),e.lineWidth(1),o.noteHeadRects.forEach(s=>{this.diamond?n?(e.beginPath(),e.moveTo(s.anchorX,s.top),e.lineTo(s.right,s.anchorY),e.lineTo(s.anchorX,s.bottom),e.lineTo(s.left,s.anchorY),e.lineTo(s.anchorX,s.top),e.fill()):(e.beginPath(),e.lineWidth(2.5),e.moveTo(s.anchorX,s.top),e.lineTo(s.right,s.anchorY),e.moveTo(s.left,s.anchorY),e.lineTo(s.anchorX,s.bottom),e.stroke(),e.beginPath(),e.lineWidth(1),e.moveTo(s.right,s.anchorY),e.lineTo(s.anchorX,s.bottom),e.moveTo(s.anchorX,s.top),e.lineTo(s.left,s.anchorY),e.stroke()):(e.beginPath(),e.ellipse(s.anchorX,s.anchorY,s.leftw,s.toph,-.3,0,Math.PI*2),n?e.fill():e.stroke())}),o.dotRects.forEach(s=>e.fillCircle(s.anchorX,s.anchorY,s.width/2)),o.stemTip&&o.stemBase&&(e.beginPath(),e.moveTo(o.stemBase.anchorX,o.stemBase.anchorY),e.lineTo(o.stemTip.anchorX,o.stemTip.anchorY),e.stroke()),o.flagRects.forEach(s=>e.drawFlag(s,r==="up"?"up":"down"))}),this.tabObjects.forEach(o=>o.fretNumbers.forEach(s=>s.draw(e)))}getDotVerticalDisplacement(e,r,n){return e.isLine(r)?n==="up"?-1:1:0}static hasSameNotes(e,r){if(e.notes.length!==r.notes.length)return!1;for(let n=0;n<e.notes.length;n++){let o=e.notes[n],s=r.notes[n];if(o.diatonicId!==s.diatonicId||o.accidental!==s.accidental)return!1}return!0}};var kr=class extends tt{constructor(e,r){super(e);this.measure=e;this.positionTicks=r;d(this,"voiceSymbol",new vr);d(this,"lyricsObject",new qs);d(this,"minDiatonicId");d(this,"maxDiatonicId");d(this,"staffMinDiatonicId",new lt);d(this,"staffMaxDiatonicId",new lt);d(this,"arpeggioDir");d(this,"arpeggios",[]);d(this,"playerProps");d(this,"needLayout",!0);d(this,"shapeRects",[]);d(this,"mi");this.playerProps=new Zn(this),this.mi=new ss(this)}getMusicInterface(){return this.mi}getPlayerProps(){return this.playerProps}getNextColumnInMeasure(){let e=this.measure.getColumns().indexOf(this);if(e>=0&&e<this.measure.getColumnCount())return this.measure.getColumn(e+1);throw new N(6,"Cannot get next column in measure because current column's id in mesure is invalid.")}getNextColumn(){var r;let e=this.getNextColumnInMeasure();return e||((r=this.measure.getNextMeasure())==null?void 0:r.getColumn(0))}getTicksToNextColumn(){let e=this.getNextColumnInMeasure(),r=this.positionTicks,n=e?e.positionTicks:this.measure.getConsumedTicks();return Math.max(0,n-r)}getShapeRects(){return this.forceRectUpdate(),this.shapeRects}get doc(){return this.measure.doc}get row(){return this.measure.row}pick(e,r){let n=this.getRect().contains(e,r);for(let o=0;o<this.voiceSymbol.length;o++){let s=this.voiceSymbol.get(o);if(s instanceof ce){let a=s.pick(e,r);if(a.length>0)return n?[this,...a]:a}}if(!n)return[];for(let o=0;o<this.voiceSymbol.length;o++){let s=this.voiceSymbol.get(o);if(s instanceof At){let a=s.pick(e,r);if(a.length>0)return[this,...a]}}for(let o=0;o<this.arpeggios.length;o++){let s=this.arpeggios[o].pick(e,r);if(s.length>0)return[this,...s]}return[]}hasArpeggio(){return this.arpeggioDir!==void 0}getArpeggioDir(){var e;return(e=this.arpeggioDir)!=null?e:"up"}setVoiceSymbol(e,r){Bo(e),this.voiceSymbol.set(e,r),r instanceof ce&&!r.hide?this.row.getStaves().forEach(n=>{let o=r.getDiatonicId(n);this.minDiatonicId=this.minDiatonicId===void 0?o:Math.min(this.minDiatonicId,o),this.maxDiatonicId=this.maxDiatonicId===void 0?o:Math.max(this.maxDiatonicId,o)}):r instanceof At&&(this.minDiatonicId=this.minDiatonicId===void 0?r.notes[0].diatonicId:Math.min(this.minDiatonicId,r.notes[0].diatonicId),this.maxDiatonicId=this.maxDiatonicId===void 0?r.notes[r.notes.length-1].diatonicId:Math.max(this.maxDiatonicId,r.notes[r.notes.length-1].diatonicId),r.arpeggio!==void 0&&(this.arpeggioDir=r.arpeggio),this.updateNoteDisplacements()),this.requestLayout(),this.requestRectUpdate()}getVoiceSymbol(e){return this.voiceSymbol.get(e)}getLyricsObject(e,r,n){return this.lyricsObject.get(e,r,n)}addLyricsObject(e){this.lyricsObject.set(e.verse,e.line,e.vpos,e)}updateNoteDisplacements(){let e=[];this.voiceSymbol.forEach(n=>{n instanceof At&&n.notes.forEach(o=>{n.setNoteDisplacement(o,!1),e.push({noteGroup:n,note:o})})});let r=(n,o)=>{let s=U.compareFunc(n.note,o.note);return s===0?n.noteGroup.stemDir===o.noteGroup.stemDir?0:n.noteGroup.stemDir==="up"?1:-1:s};if(e.sort(r),!(e.length<2)){for(let n=0;n<e.length;n++){let o=e[n],s=e[n+1];s&&o.note.diatonicId===s.note.diatonicId&&(o.isDisplaced=s.isDisplaced=!1)}for(let n=0;n<e.length;n++){let o=e[n-1],s=e[n],a=e[n+1];s.isDisplaced===void 0&&(o&&s.note.diatonicId-o.note.diatonicId<=1?s.isDisplaced=!o.isDisplaced:a&&a.note.diatonicId-s.note.diatonicId<=1&&(s.isDisplaced=!a.isDisplaced))}e.forEach(n=>{var o;return n.noteGroup.setNoteDisplacement(n.note,(o=n.isDisplaced)!=null?o:!1)})}}isEmpty(){return this.voiceSymbol.size===0||this.voiceSymbol.every(e=>e.isEmpty())}getPlayerNotes(){let e=[];function r(n,o,s,a){if(o<=0)return;e.some(u=>n.diatonicId===u.note.diatonicId&&n.accidental===u.note.accidental?(u.ticks=Math.max(u.ticks,o),!0):!1)||e.push({note:n,ticks:o,staccato:s,slur:a})}return ae().forEach(n=>{let o=this.getVoiceSymbol(n);if(o instanceof At){let s=o.getPlaySlur();o.notes.forEach(a=>{let c=o.getPlayTicks(a),u=o.staccato;r(a,c,u,s)})}}),e.sort((n,o)=>U.compareFunc(n.note,o.note)),this.hasArpeggio()&&this.getArpeggioDir()==="down"&&e.reverse(),e}requestLayout(){this.needLayout||(this.needLayout=!0,this.measure.requestLayout())}layout(e,r){if(!this.needLayout)return;let{row:n}=this;this.rect=new G,this.requestRectUpdate();let o=0,s=0;if(this.voiceSymbol.forEach(h=>{h.layout(e,r);let l=h.getRect();o=Math.max(o,l.leftw),s=Math.max(s,l.rightw)}),this.arpeggioDir!==void 0){this.arpeggios=n.getNotationLines().map(l=>new ec(this,l,this.getArpeggioDir())),this.arpeggios.forEach(l=>l.layout(e));let h=this.arpeggios.map(l=>l.getRect().width).reduce((l,p)=>Math.max(l,p))+e.unitSize;this.arpeggios.forEach(l=>{l.setAnchor(-o-h/2,l.line.getRect().anchorY),l.line.addObject(l),this.measure.addStaticObject(l.line,l)}),o+=h}else this.arpeggios=[];let a=this.voiceSymbol.mapToArray(h=>h.rhythmProps.noteSize),c=Math.min(8,Math.max(1,...a)),u=Math.ceil(8/c)*ct.NoteHeadWidth*e.unitSize*.75;o=Math.max(o,u/2),s=Math.max(s,u/2),o*=ct.ColumnWidthScale,s*=ct.ColumnWidthScale,this.rect.left=-o,this.rect.anchorX=0,this.rect.right=s,this.requestRectUpdate(),this.voiceSymbol.forEach(h=>h.updateAccidentalState(r)),this.row.getStaves().forEach(h=>{let l,p;this.voiceSymbol.forEach(m=>{if(m.visibleInStaff(h)){if(m instanceof At)l=l===void 0?m.minDiatonicId:Math.min(l,m.minDiatonicId),p=p===void 0?m.maxDiatonicId:Math.max(p,m.maxDiatonicId);else if(m instanceof ce){let f=m.getDiatonicId(h);l=l===void 0?f:Math.min(l,f),p=p===void 0?f:Math.max(p,f)}}}),l!==void 0?this.staffMinDiatonicId.set(h,l):this.staffMinDiatonicId.delete(h),p!==void 0?this.staffMaxDiatonicId.set(h,p):this.staffMaxDiatonicId.delete(h)})}layoutReserveSpace(e){let r=this.measure.getColumns(),n=e.unitSize;this.getAnchoredLayoutObjects().forEach(o=>{if(o.layoutGroup.reserveSpace){let s=r.indexOf(this);if(s<0)return;let a=o.getRect().leftw-this.getRect().leftw;if(a>0){let u=r[s-1];u&&u.getAnchoredLayoutObjects().forEach(h=>{if(h.layoutGroupId===o.layoutGroupId){let l=h.getRect().rightw-u.getRect().rightw;this.rect.left-=Math.max(l+a,0)+n,this.requestRectUpdate()}})}let c=o.getRect().rightw-this.getRect().rightw;if(c>0){let u=r[s+1];u&&u.getAnchoredLayoutObjects().forEach(h=>{if(h.layoutGroupId===o.layoutGroupId){let l=h.getRect().leftw-u.getRect().leftw;this.rect.right+=Math.max(c+l,0)+n,this.requestRectUpdate()}})}}})}layoutDone(){this.needLayout=!1}updateRect(){this.shapeRects=[...this.voiceSymbol.filter(e=>e!==void 0).mapToArray(e=>e.getRect().clone()),...this.arpeggios.map(e=>e.getRect().clone())],this.rect.top=Math.min(...this.shapeRects.map(e=>e.top)),this.rect.bottom=Math.max(...this.shapeRects.map(e=>e.bottom)),this.rect.anchorY=(this.rect.top+this.rect.bottom)/2}offset(e,r){this.voiceSymbol.forEach(n=>n.offset(e,0)),this.arpeggios.forEach(n=>n.offset(e,0)),this.shapeRects.forEach(n=>n.offsetInPlace(e,r)),this.rect.offsetInPlace(e,r)}draw(e){e.color(X.Staff_Frame),this.row.getStaves().forEach(r=>{let n=this.staffMinDiatonicId.get(r),o=this.staffMaxDiatonicId.get(r);n!==void 0&&e.drawLedgerLines(r,n,this.getRect().anchorX),o!==void 0&&e.drawLedgerLines(r,o,this.getRect().anchorX)}),this.voiceSymbol.forEach(r=>r.draw(e)),this.arpeggios.forEach(r=>r.draw(e))}};var Lr=class Lr extends tt{constructor(e,r,n="black"){super(e);this.text=r;this.color=n;d(this,"components",[]);d(this,"mi");switch(this.text){case Lr.Coda:this.components=[new st(this,{text:"\u{1D10C}",scale:1.7,color:n},.5,.3),new st(this,{text:" Coda",color:n},0,1)];break;case Lr.toCoda:this.components=[new st(this,{text:"toCoda ",color:n},1,1),new st(this,{text:"\u{1D10C}",scale:1.7,color:n},.5,.3)];break;case Lr.Segno:this.components=[new st(this,{text:"\u{1D10B}",scale:1.1,color:n},.5,1)];break;default:this.components=[];break}this.mi=new as(this)}getMusicInterface(){return this.mi}getText(){return this.text}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){switch(this.text){case Lr.Coda:{let r=this.components[0],n=this.components[1];r.layout(e),n.layout(e),r.setAnchorY(n.getRect().centerY),n.setLeft(r.getRect().right),this.rect=new G(r.getRect().left,r.getRect().anchorX,n.getRect().right,n.getRect().top,n.getRect().anchorY,n.getRect().bottom);break}case Lr.toCoda:{let r=this.components[0],n=this.components[1];r.layout(e),n.layout(e),n.setAnchorY(r.getRect().centerY),r.setRight(n.getRect().left),this.rect=new G(r.getRect().left,n.getRect().anchorX,n.getRect().right,r.getRect().top,r.getRect().anchorY,r.getRect().bottom);break}default:{let r=this.components[0];r.layout(e),this.rect=r.getRect().clone();break}}}offset(e,r){this.components.forEach(n=>n.offset(e,r)),this.rect.offsetInPlace(e,r)}draw(e){e.drawDebugRect(this.rect),this.components.forEach(r=>r.draw(e))}};d(Lr,"toCoda","\u{1D10C} toCoda"),d(Lr,"Coda","Coda \u{1D10C}"),d(Lr,"Segno","\u{1D10B}");var Se=Lr;function Mh(i){return i instanceof st||i instanceof Se?i.getText():i instanceof bi?"[measure]":""}var Rh=class{constructor(t){this.startColumn=t;d(this,"columnRange");d(this,"stopObject");this.columnRange=[t]}get endColumn(){return this.columnRange[this.columnRange.length-1]}addColumn(t){this.endColumn!==t&&this.columnRange.push(t)}setStopObject(t){this.stopObject=t}},nc=class nc extends Xa{constructor(e,r,n,o,s,a){super(e.musicObj);this.headObj=e;d(this,"length");d(this,"visible");d(this,"lineStyle");d(this,"linePos");d(this,"startColumn");this.length=n+1,this.visible=o,this.lineStyle=s,this.linePos=a,this.startColumn=r}isVisible(){return this.visible}getLineStyle(){return this.lineStyle}getLinePos(){return this.linePos}whatStopped(e){let r=e.measure,n=r.getColumns(),o=e.getAnchoredLayoutObjects().filter(s=>s!==this.headObj&&s.layoutGroupId===this.headObj.layoutGroupId).map(s=>s.musicObj).filter(s=>s instanceof st||s instanceof Se)[0];return o||(e===n[n.length-1]&&r.hasEndSection()||r.hasEndSong()||nc.StopNavigations.some(s=>r.hasNavigation(s))?r.getBarLineRight():void 0)}getRange(){let{startColumn:e,length:r}=this,n=e,o=new Rh(n),s=r;for(;;){if(s<=0)return o;let a=this.whatStopped(n);if(a!==void 0)return o.setStopObject(a),o;if(s-=n.getTicksToNextColumn(),n=n.getNextColumn(),!n)return o;s>0&&o.addColumn(n)}}};d(nc,"StopNavigations",["endRepeat","ending"]);var $i=nc;function cs(i){switch(i){case"D.C. al Coda":return"D.C. al Coda";case"D.C. al Fine":return"D.C. al Fine";case"D.S. al Coda":return"D.S. al Coda";case"D.S. al Fine":return"D.S. al Fine";case"Fine":return"Fine";case"Segno":return Se.Segno;case"Coda":return Se.Coda;case"toCoda":return Se.toCoda;default:return i[0].toUpperCase()+i.substring(1)}}function us(i){if(/^(p+|f+|m|mp|mf)$/.test(i)){let t=.5-$.Str.charCount(i,"p")*.1+$.Str.charCount(i,"f")*.1;return $.Math.clamp(t,0,1)}else return}function og(i){return y.isEnumValue(i,Uo)?"dynamics":y.isEnumValue(i,zo)?"tempo":void 0}function sg(i,t){return typeof window=="undefined"?void 0:window.setTimeout(i,t)}function ag(i){typeof window!="undefined"&&window.clearTimeout(i)}var $v=2,Zv=2,Xv=.5,Qv=.5;function Kv(i,t){let e=Kt.get(t.options.beatLength,t.options.dotCount).ticks,r=t.beatsPerMinute*e;return 60*i/r}function Eh(){return us("m")}function Jv(i){return i*1.25}var t0=.5,Zn=class{constructor(t){this.col=t;d(this,"speed");d(this,"volume");this.speed=1,this.volume=Eh()}get measure(){return this.col.measure}reset(){this.speed=1,this.volume=Eh()}setSpeed(t){this.speed=t}getSpeed(){return this.speed}getTempo(){let t=$.Math.clamp(this.getSpeed(),.1,10);return bu(this.measure.getTempo(),t)}setVolume(t){this.volume=t}getVolume(){return this.volume}hasFermata(){return this.measure.hasFermata(this.col)}getFermataHoldTicks(){if(!this.hasFermata())return 0;let{col:t}=this;if(t instanceof xr)return this.measure.getMeasureTicks()/2;{let r=ae().map(n=>t.getVoiceSymbol(n)).filter(n=>!!n).map(n=>n.rhythmProps.ticks);return r.length===0?0:$.Math.sum(r)/r.length}}},oc=class i{constructor(){d(this,"playTimer");d(this,"playPos");d(this,"playState",2);d(this,"doc");d(this,"cursorPositionChangeListener");d(this,"playStateChnageListener");d(this,"playerColumnSequence",[])}setDocument(t){this.doc=t,this.doc.resetMeasures(),this.playerColumnSequence=this.collectPlayerColumnSequence(),this.updatePlayerProps()}setCursorPositionChangeListener(t){this.cursorPositionChangeListener=t}setPlayStateChnageListener(t){this.playStateChnageListener=t}notifyCursorPositionChanged(){this.cursorPositionChangeListener&&this.cursorPositionChangeListener(this.getCursorRect())}notifyPlayStateChanged(){let t=this.playPos!==void 0&&this.playTimer!==void 0?0:this.playPos!==void 0&&this.playTimer===void 0?1:2;this.playState!==t&&(this.playStateChnageListener&&this.playStateChnageListener(t),this.playState=t)}collectPlayerMeasureSequence(){var a;if(!this.doc)return[];let t=[],e=this.doc.getFirstMeasure(),r=e,n,o=!1,s=!1;for(;e;){if(e.incPassCount(),e.getEnding()){let u=e.getPassCount();e=i.getMeasureByEndingPassage(e,u)}if(e)if(t.push(e),e.hasNavigation("startRepeat")&&(r=e),e.hasNavigation("Segno")&&(n=e),s&&e.hasNavigation("toCoda"))for(;e&&!e.hasNavigation("Coda");)e=e.getNextMeasure();else if(o&&e.hasNavigation("Fine"))e=void 0;else if(e.hasNavigation("D.C. al Coda"))s=!0,e=this.doc.getFirstMeasure();else if(e.hasNavigation("D.C. al Fine"))o=!0,e=this.doc.getFirstMeasure();else if(e.hasNavigation("D.S. al Coda"))s=!0,e=n;else if(e.hasNavigation("D.S. al Fine"))o=!0,e=n;else if(e.hasNavigation("endRepeat")){let u=e.getPassCount(),h=e.getEndRepeatPlayCount()-1,l=((a=e.getNextMeasure())==null?void 0:a.hasNavigation("ending"))===!0;u<=h||l?e=r:e=e.getNextMeasure()}else e.hasEndSong()?e=void 0:e=e.getNextMeasure()}return t}collectPlayerColumnSequence(){let t=this.collectPlayerMeasureSequence(),e=[];for(let r=0;r<t.length;r++){let n=t[r];e=e.concat(n.getColumns()),n.hasFermata(n.getBarLineRight())&&e.push(n.getBarLineRight())}return e}updatePlayerProps(){if(this.playerColumnSequence.forEach(a=>a.getPlayerProps().reset()),!this.doc)return;let t=1,e=Eh(),r=new lt,n=new lt,o=(a,c)=>r.getOrCreate(a,[]).push(c),s=(a,c)=>n.getOrCreate(a,[]).push(c);this.playerColumnSequence.forEach(a=>{if(!(a instanceof kr))return;a.getAnchoredLayoutObjects().forEach(h=>{let l=Mh(h.musicObj),p;if(l==="a tempo")t=1;else if((p=us(l))!==void 0)e=p;else if(h.musicObj.getLink()instanceof $i){let f=h.musicObj.getLink().getRange(),g=f.stopObject?Mh(f.stopObject):"",b=$.Math.sum(f.columnRange.map(x=>x.getTicksToNextColumn()));switch(l){case"accel.":{let x=t,C=x*$v,S=0;f.columnRange.forEach(T=>{S+=T.getTicksToNextColumn(),o(T,x+(C-x)*S/b)});break}case"rit.":{let x=t,C=x/Zv,S=0;f.columnRange.forEach(T=>{S+=T.getTicksToNextColumn(),o(T,x+(C-x)*S/b)});break}case"cresc.":{let x=e,C=x+Xv;f.stopObject&&(p=us(g))!==void 0&&p>x&&(C=p);let S=0;f.columnRange.forEach(T=>{S+=T.getTicksToNextColumn(),s(T,x+(C-x)*S/b)});break}case"decresc.":case"dim.":{let x=e,C=x-Qv;f.stopObject&&(p=us(g))!==void 0&&p<x&&(C=p);let S=0;f.columnRange.forEach(T=>{S+=T.getTicksToNextColumn(),s(T,x+(C-x)*S/b)});break}}}});let c=r.getOrDefault(a,[]);c.length>0&&(t=$.Math.sum(c)/c.length);let u=n.getOrDefault(a,[]);u.length>0&&(e=$.Math.sum(u)/u.length),a.getPlayerProps().setSpeed(t),a.getPlayerProps().setVolume(e)})}static getMeasureByEndingPassage(t,e){for(let r=t;;r=r.getNextMeasure()){let n=r==null?void 0:r.getEnding();if(n&&n.hasPassage(e))return r;let o=r==null?void 0:r.getNextMeasure();if(!r||r.hasEndSong()||r.hasEndSection()||!o||o.hasNavigation("startRepeat"))return}}playStep(){if(this.notifyCursorPositionChanged(),this.notifyPlayStateChanged(),this.playPos===void 0){this.stop();return}let t=this.playerColumnSequence[this.playPos];if(!t){this.stop();return}let e=(s,a)=>{let c=Kv(s,a);return Math.max(0,c)},r=t.getPlayerProps().getTempo(),n=t.getPlayerProps().getFermataHoldTicks(),o;t instanceof xr?o=e(n,r):(t.getPlayerNotes().forEach((a,c)=>{let u=t.hasArpeggio()?Kt.get("32n").ticks*c:0,h=e(a.ticks+n-u,r);if(h>0){a.staccato&&(h=Math.min(e(Kt.get("8n").ticks,r)/2,h/2));let l=Jv(t.getPlayerProps().getVolume());if(a.slur==="slurred"&&(l*=t0),u>0){let p=e(u,r);sg(()=>Ua(a.note,h,l),p*1e3)}else Ua(a.note,h,l)}}),o=e(t.getTicksToNextColumn()+n,r)),this.playTimer=sg(()=>this.playStep(),o*1e3),this.playPos=this.getNextPlayPosition(this.playPos),this.notifyPlayStateChanged()}play(){if(this.playState===0)this.stop();else if(this.playState===1){this.playStep();return}let{doc:t}=this;if(!t)return;t.getFirstMeasure()?(this.playPos=0,this.playStep()):this.playPos=void 0,this.notifyPlayStateChanged()}pause(){this.playTimer&&(ag(this.playTimer),this.playTimer=void 0),this.notifyCursorPositionChanged(),this.notifyPlayStateChanged()}stop(){this.playPos=void 0,this.playTimer&&(ag(this.playTimer),this.playTimer=void 0),this.notifyCursorPositionChanged(),this.notifyPlayStateChanged()}getNextPlayPosition(t){return this.playPos!==void 0&&++this.playPos>=this.playerColumnSequence.length&&(this.playPos=void 0),this.playPos}getCursorRect(){if(this.playPos===void 0)return;let t=this.playerColumnSequence[this.playPos];if(!t)return;let e=t.measure,r=t.getRect().anchorX,{top:n,height:o}=e.row.getRect();return new uu(r,n,0,o)}};var Dh=class extends tt{constructor(e,r,n){super(r);this.barLine=e;this.line=r;this.rowGroup=n;d(this,"vlines",[]);d(this,"dots",[]);d(this,"mi");r.addObject(this),this.mi=new ds(this)}getMusicInterface(){return this.mi}pick(e,r){return this.getRect().contains(e,r)?[this]:[]}updateRect(){this.rect=new G(0,0,this.line.getTopLineY(),this.line.getBottomLineY()),this.vlines.forEach(e=>this.rect.expandInPlace(new G(e.left,e.left+e.width,this.rect.top,this.rect.bottom))),this.dots.forEach(e=>this.rect.expandInPlace(new G(e.x-e.r,e.x+e.r,e.y-e.r,e.y+e.r)))}offset(e,r){this.vlines.forEach(n=>n.left+=e),this.dots.forEach(n=>{n.x+=e,n.y+=r}),this.rect.offsetInPlace(e,r)}},sc=class extends tt{constructor(e){super(e);this.measure=e;d(this,"notationLineObjects",[]);d(this,"notationLineObjectsByGrp",new lt);d(this,"barLineType",0)}get doc(){return this.measure.doc}get row(){return this.measure.row}pick(e,r){if(!this.getRect().contains(e,r))return[];for(let n=0;n<this.notationLineObjects.length;n++){let o=this.notationLineObjects[n].pick(e,r);if(o.length>0)return[this,...o]}return[this]}layout(e){this.requestRectUpdate(),this.barLineType=this.solveBarLineType();let{unitSize:r,_lineWidth:n}=e,{measure:o,barLineType:s}=this,{row:a}=o,c=n,u=.7*r,h=.7*r,p=ct.DotSize*r/2;this.notationLineObjects=[],this.notationLineObjectsByGrp.clear(),a.getRowGroups().forEach(m=>{m.lines.forEach(f=>{let g=new Dh(this,f,m);this.notationLineObjects.push(g),this.notationLineObjectsByGrp.getOrCreate(m,[]).push(g);let b,x,C=(T,w)=>{g.vlines.push({left:T,width:w})},S=T=>{for(let w=-1;w<=1;w+=2){let v=b+w*x;g.dots.push({x:T,y:v,r:p})}};switch(f instanceof Et?(b=f.getMiddleLineY(),x=f.getDiatonicSpacing()):(b=(f.getBottomLineY()+f.getTopLineY())/2,x=(f.getBottomLineY()-f.getTopLineY())/6),s){case 0:break;case 1:C(-c,c);break;case 2:C(-c-h-c,c),C(-c,c);break;case 3:C(-c-h-u,c),C(-u,u);break;case 4:C(0,u),C(u+h,c),S(u+h+c+h+p);break;case 5:C(-c-h-u,c),C(-u,u),S(-c-h-u-h-p);break;case 6:C(-u/2,u),C(-u/2-h-c,c),C(u/2+h,c),S(-u/2-h-c-h-p),S(u/2+h+c+h+p);break}g.forceRectUpdate()})})}updateRect(){if(this.notationLineObjects.length>0){this.rect=this.notationLineObjects[0].getRect().clone();for(let e=1;e<this.notationLineObjects.length;e++)this.rect.expandInPlace(this.notationLineObjects[e].getRect())}else this.rect=new G}offset(e,r){this.notationLineObjects.forEach(n=>n.offset(e,0)),this.requestRectUpdate()}draw(e){this.barLineType!==0&&(e.drawDebugRect(this.getRect()),this.notationLineObjects.forEach(r=>{r.vlines.forEach(n=>r.line.drawVerticalLine(e,n.left,n.width)),r.dots.forEach(n=>e.fillCircle(n.x,n.y,n.r))}))}},xi=class extends sc{constructor(e){super(e);d(this,"mi");this.mi=new ls(this)}getMusicInterface(){return this.mi}solveBarLineType(){let e=this.measure,r=e.getPrevMeasure();return e.hasNavigation("startRepeat")?r&&r.row===e.row&&r.hasNavigation("endRepeat")?0:4:0}},xr=class extends sc{constructor(e){super(e);d(this,"playerProps");d(this,"mi");this.playerProps=new Zn(this),this.mi=new hs(this)}getMusicInterface(){return this.mi}getPlayerProps(){return this.playerProps}solveBarLineType(){let e=this.measure,r=e.getNextMeasure();return e.hasNavigation("endRepeat")?r&&r.row===e.row&&r.hasNavigation("startRepeat")?6:5:!e.doc.hasSingleMeasure()&&(e.hasEndSong()||!e.getNextMeasure())?3:e.hasEndSection()||e===e.row.getLastMeasure()&&r&&r.row===e.row.getNextRow()&&r.hasNavigation("startRepeat")?2:r&&r.hasNavigation("startRepeat")?0:1}};var Zi=class extends tt{constructor(e,r,n){super(e);this.measure=e;this.color=r;this.passages=n;d(this,"endingText");d(this,"shapeRects",[]);d(this,"mi");if(this.mi=new ps(this),y.isIntegerGte(n.length,1)){if(!this.passages.every(s=>y.isIntegerGte(s,1)))throw new N(6,"Invalid passages: "+this.passages)}else throw new N(6,"Passages is empty.");this.passages.sort((s,a)=>s-a);let o=this.passages.map(s=>s+".").join("");this.endingText=new st(this,{text:o,color:r},0,1)}getMusicInterface(){return this.mi}getShapeRects(){return this.shapeRects}isSingleMeasureEnding(){let{measure:e}=this,r=e.getNextMeasure();return(r==null?void 0:r.hasNavigation("ending"))===!0||e.hasNavigation("endRepeat")||e.isLastMeasure()}hasPassage(e){return this.passages.some(r=>r===e)}getHighestPassage(){return Math.max(0,...this.passages)}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){this.rect=new G,this.shapeRects=[this.rect.clone()]}layoutFitToMeasure(e){let{unitSize:r}=e,{measure:n}=this;this.endingText.layout(e);let o=this.endingText.getRect(),s=n.getColumnsContentRect(),a=o.height;this.rect=new G(s.left+r,s.right-r,-a,0),this.endingText.setLeft(this.rect.left+r/2),this.endingText.setBottom(this.rect.bottom),this.shapeRects=[new G(this.rect.left,this.rect.left+1,this.rect.top,this.rect.bottom),new G(this.rect.left,this.rect.right,this.rect.top,this.rect.top+1),new G(this.rect.right-1,this.rect.right,this.rect.top,this.rect.bottom),this.endingText.getRect().clone()]}offset(e,r){this.endingText.offset(e,r),this.shapeRects.forEach(n=>n.offsetInPlace(e,r)),this.rect.offsetInPlace(e,r)}draw(e){let{rect:r}=this;e.drawDebugRect(this.rect),e.color(this.color).lineWidth(1),e.beginPath(),e.moveTo(r.left,r.bottom),e.lineTo(r.left,r.top),e.lineTo(r.right,r.top),this.isSingleMeasureEnding()&&e.lineTo(r.right,r.bottom),e.stroke(),this.endingText.draw(e)}};var e0=(i,t)=>{let e=ct.BeamAngleFactor;if(!Number.isFinite(e)||e===0)return t;{let r=i/t/e;return r=Math.sign(r)*Math.sqrt(Math.abs(r)),i/r*e}},ms=class{constructor(t,e,r,n,o){this.staff=t;this.beamGroup=e;this.symbol=r;this.x=n;this.y=o;d(this,"topBeamsHeight",0);d(this,"bottomBeamsHeight",0);t.addObject(this)}offset(t,e){this.x+=t,this.y+=e,this.beamGroup.requestRectUpdate()}getRect(){return new G(this.x,this.x,this.x,this.y-this.topBeamsHeight,this.y,this.y+this.bottomBeamsHeight)}},kh=class extends tt{constructor(e,r){super(e);this.staff=e;this.beamGroup=r;d(this,"tupletNumber");d(this,"tupletNumberOffsetY",0);d(this,"points",[]);d(this,"mi");e.addObject(this),this.mi=new gs(this)}getMusicInterface(){return this.mi}pick(e,r){return this.getRect().contains(e,r)?[this]:[]}offset(e,r){var n;this.points.forEach(o=>o.offset(e,0)),(n=this.tupletNumber)==null||n.offset(e,r),this.requestRectUpdate(),this.beamGroup.requestRectUpdate()}updateRect(){this.points.length>0?this.rect=this.points[0].getRect().clone():this.tupletNumber&&(this.rect=this.tupletNumber.getRect().clone()),this.points.forEach(e=>this.rect.expandInPlace(e.getRect())),this.tupletNumber&&this.rect.expandInPlace(this.tupletNumber.getRect())}},Ai=class{constructor(t,e){this.beamGroup=t;this.message=e}},Xi=class i extends tt{constructor(e,r){super(e[0].measure);this.symbols=e;this.tupletRatio=r;d(this,"mi");d(this,"type");d(this,"staffObjects",[]);this.mi=new fs(this);let n=r?"Tuplet":"BeamGroup";if(e.every(o=>o.measure===e[0].measure)){if(e.length<2)throw new N(6,`${n} needs minimum 2 symbols, but ${e.length} given.`)}else throw new N(6,`All ${n} symbols are not in same measure.`);if(r!==void 0){let o=e.length<3||e.some(s=>!(s instanceof At))||e.some(s=>s.rhythmProps.flagCount!==e[0].rhythmProps.flagCount);e.length>=3&&e[0]instanceof At&&e[e.length-1]instanceof At&&e[0].rhythmProps.flagCount===e[e.length-1].rhythmProps.flagCount&&(o=!1),e.some(s=>Nt.cmp(s.rhythmProps.noteLength,"4n")>=0)&&(o=!0),this.type=o?2:1,this.setTupletBeamCounts()}else this.type=0,this.setBeamCounts();if(e.every(o=>o.getBeamGroup()===void 0))e.forEach(o=>o.setBeamGroup(this)),e[0].measure.addBeamGroup(this);else throw new N(6,`Cannot add ${n} because some symbol already has one.`);if(this.type===0&&this.symbols.filter(o=>o instanceof At).some((o,s)=>{let a=s===0,c=s===this.symbols.length-1;if(a&&o.getRightBeamCount()===0||c&&o.getLeftBeamCount()===0||!a&&!c&&(o.getLeftBeamCount()===0||o.getRightBeamCount()===0))throw new Ai(this,"Beam has zero left or right beam count!")}),e.some(o=>o.voiceId!==e[0].voiceId))throw this.type===0?new Ai(this,"Beam symbols have different voiceId."):new N(6,"Tuplet symbols have different voiceId.");e[0].row.getStaves().forEach(o=>{o.getActualStaff(e[0].getDiatonicId(o))&&o.containsVoiceId(e[0].voiceId)&&e.forEach(s=>{let a=o.getActualStaff(s.getDiatonicId(o));if(!a||!a.containsVoiceId(s.voiceId))throw new Ai(this,"Some of beam or tuplet symbols are not visible!")})})}get stemDir(){return this.symbols[0].stemDir}get showTupletRatio(){var e;return((e=this.tupletRatio)==null?void 0:e.showRatio)===!0}static createBeam(e){if(e.length>1&&e.every(r=>!r.hasTuplet()))try{return new i(e,void 0),!0}catch(r){if(r instanceof Ai)r.beamGroup.detach();else throw r}return!1}static createOldStyleTriplet(e){try{let r=e.slice(0,2),n=r.map(a=>a.rhythmProps.noteSize);if(r.length===2&&r.every(a=>a.oldStyleTriplet&&a.getBeamGroup()===void 0)&&(n[0]*2===n[1]||n[1]*2===n[0]))return new i(r,Gr.Triplet),2;let o=e.slice(0,3),s=o.map(a=>a.rhythmProps.noteSize);if(o.length===3&&o.every(a=>a.oldStyleTriplet&&a.getBeamGroup()===void 0)&&s.every(a=>a===s[0]))return new i(o,Gr.Triplet),3}catch(r){if(r instanceof Ai)console.error(r.message),r.beamGroup.detach();else throw r}return 0}static createTuplet(e,r){try{new i(e,r)}catch(n){if(n instanceof Ai)console.error(n.message),n.beamGroup.detach();else throw n}}getMusicInterface(){return this.mi}detach(){this.getSymbols().forEach(e=>e.resetBeamGroup())}isEmpty(){return this.staffObjects.length===0}pick(e,r){if(!this.getRect().contains(e,r))return[];for(let n=0;n<this.staffObjects.length;n++){let o=this.staffObjects[n].pick(e,r);if(o.length>0)return[this,...o]}return[this]}getType(){return this.type}isTuplet(){return this.type===1||this.type===2}getTupletRatioText(){var e,r,n;return this.showTupletRatio?String((e=this.tupletRatio)==null?void 0:e.parts)+":"+String((r=this.tupletRatio)==null?void 0:r.inTimeOf):String((n=this.tupletRatio)==null?void 0:n.parts)}getSymbols(){return this.symbols}getFirstSymbol(){return this.symbols[0]}getLastSymbol(){return this.symbols[this.symbols.length-1]}get color(){return this.symbols[0].color}layout(e){this.requestRectUpdate(),this.staffObjects.length=0;let r=this.getSymbols();if(r.length===0)return;let{unitSize:n}=e,{stemDir:o,type:s}=this,a=r.map(c=>c.getBeamCoords());a[0].map(c=>c==null?void 0:c.staff).forEach((c,u)=>{var B,D;if(!c)return;let h=a.map(j=>{var F;return(F=j[u])==null?void 0:F.x}),l=a.map(j=>{var F;return(F=j[u])==null?void 0:F.y}),p=a.map(j=>{var F;return(F=j[u])==null?void 0:F.staff}),m=a.map(j=>{var F;return(F=j[u])==null?void 0:F.stemHeight}),f=r[0],g=h[0],b=l[0],x=p[0],C=r[r.length-1],S=h[h.length-1],T=l[l.length-1],w=p[l.length-1];if(g===void 0||b===void 0||x===void 0||S===void 0||T===void 0||w===void 0)return;let v=(B=m[0])!=null?B:0,A=(D=m[m.length-1])!=null?D:0;if(s!==2){let j=v<A?Math.sqrt(A-v):0,F=A<v?Math.sqrt(v-A):0;o==="up"&&(j*=-1,F*=-1),j!==0&&(b+=j,l[0]+=j),F!==0&&(T+=F,l[l.length-1]+=F)}let _=n*2*(o==="up"?-1:1),E=(T+b)/2,q=e0(S-g,T-b)/2;b=E-q,T=E+q;let M=0;l.forEach((j,F)=>{let W=h[F];if(W!==void 0&&j!==void 0){let K=$.Math.interpolateY(g,b,S,T,W),k=j-K;o==="up"&&k<0?M=Math.min(M,k):o==="down"&&k>0&&(M=Math.max(M,k))}}),b+=M,T+=M,l=l.map(j=>j===void 0?void 0:j+M);let R=new kh(c,this);if(s===2){let j=n/(S-g),F=$.Math.interpolateCoord(g,b+_,S,T+_,-j),W=$.Math.interpolateCoord(g,b+_,S,T+_,1+j);R.points.push(new ms(x,this,f,F.x,F.y)),R.points.push(new ms(w,this,C,W.x,W.y)),R.tupletNumberOffsetY=0}else if(s===0||s===1){M*=.5;let j=e._lineWidth*ct.BeamThickness,F=W=>{let K=r[W];if(K instanceof At){let k=K instanceof At?Math.max(K.getLeftBeamCount(),K.getRightBeamCount()):0;return ct.BeamSeparation*n*(o==="up"?k-1:0)}else return 0};r.forEach((W,K)=>{let k=p[K],nt=h[K],mt=l[K];if(k&&nt!==void 0&&mt!==void 0){let Ct=new ms(k,this,W,nt,mt);switch(o){case"up":Ct.topBeamsHeight=j/2,Ct.bottomBeamsHeight=j/2+F(K);break;case"down":Ct.topBeamsHeight=j/2+F(K),Ct.bottomBeamsHeight=j/2;break}R.points.push(Ct)}}),R.tupletNumberOffsetY=_}this.isTuplet()&&(R.tupletNumber=new st(this,this.getTupletRatioText(),.5,.5),R.tupletNumber.layout(e),R.tupletNumber.offset((g+S)/2,(b+T)/2+R.tupletNumberOffsetY)),R.points.length>=2&&this.staffObjects.push(R)})}updateRect(){if(this.staffObjects.length===0)this.rect=new G;else{this.staffObjects.forEach(e=>e.updateRect()),this.rect=this.staffObjects[0].getRect().clone();for(let e=1;e<this.staffObjects.length;e++)this.rect.expandInPlace(this.staffObjects[e].getRect())}}updateStemTips(){this.staffObjects.forEach(e=>{let r=e.points[0],n=e.points[e.points.length-1];this.type!==2&&e.points.forEach(o=>{o.symbol instanceof At&&(o!==r&&o!==n&&(o.y=$.Math.interpolateY(r.x,r.y,n.x,n.y,o.x)),o.symbol.setStemTipY(o.staff,o.y))}),e.tupletNumber&&e.tupletNumber.setAnchorY((r.y+n.y)/2+e.tupletNumberOffsetY)})}offset(e,r){this.staffObjects.forEach(n=>n.offset(e,0)),this.requestRectUpdate()}draw(e){let{unitSize:r}=e,{stemDir:n,color:o,type:s}=this;if(s===2){e.color(o).lineWidth(1);let a=(n==="up"?1:-1)*r;this.staffObjects.forEach(c=>{let{x:u,y:h}=c.points[0],{x:l,y:p}=c.points[c.points.length-1];if(c.tupletNumber){let m=c.tupletNumber.getRect().width/(l-u)*1.2,f=$.Math.interpolateCoord(u,h,l,p,.5-m/2),g=$.Math.interpolateCoord(u,h,l,p,.5+m/2);e.strokeLine(u,h,f.x,f.y),e.strokeLine(g.x,g.y,l,p)}else e.strokeLine(u,h,l,p);e.strokeLine(u,h,u,h+a),e.strokeLine(l,p,l,p+a)})}else(s===0||s===1)&&(e.color(o).lineWidth(ct.BeamThickness),this.staffObjects.forEach(a=>{let c=a.points.filter(f=>f.symbol instanceof At),{x:u,y:h}=c[0],{x:l,y:p}=c[c.length-1],m=ct.BeamSeparation*r*(n==="up"?1:-1)*(1+.5*Math.abs(Math.atan2(p-h,l-u)));for(let f=0;f<c.length-1;f++){let{x:g,y:b,symbol:x}=c[f],{x:C,y:S,symbol:T}=c[f+1],w=x.getRightBeamCount(),v=T.getLeftBeamCount();for(let A=0;A<Math.max(w,v);A++)A<w&&A<v?e.strokeLine(g,b,C,S):w>v?e.strokePartialLine(g,b,C,S,0,.25):v>w&&e.strokePartialLine(g,b,C,S,.75,1),b+=m,S+=m}}));this.staffObjects.forEach(a=>{var c;return(c=a.tupletNumber)==null?void 0:c.draw(e)})}setBeamCounts(){let e=(o,s)=>{let{flagCount:a,noteSize:c,dotCount:u}=o.rhythmProps,{flagCount:h,noteSize:l,dotCount:p}=s.rhythmProps;return a>0&&h>0&&u>0&&p===0&&c*Math.pow(2,u)===l},r=this.symbols.filter(o=>o instanceof At);for(let o=0;o<r.length;o++){let s=r[o],a=r[o-1],c=r[o+1];s&&(s.setLeftBeamCount(0),s.setRightBeamCount(0),a&&(a.rhythmProps.flagCount===s.rhythmProps.flagCount||e(a,s)||e(s,a)?s.setLeftBeamCount(s.rhythmProps.flagCount):s.setLeftBeamCount(Math.min(a.rhythmProps.flagCount,s.rhythmProps.flagCount))),c&&(c.rhythmProps.flagCount===s.rhythmProps.flagCount||e(c,s)||e(s,c)?s.setRightBeamCount(s.rhythmProps.flagCount):s.setRightBeamCount(Math.min(c.rhythmProps.flagCount,s.rhythmProps.flagCount))))}let n;do{n=!1;for(let o=0;o<r.length;o++){let s=r[o],a=r[o-1],c=r[o+1];s&&s.getLeftBeamCount()!==s.rhythmProps.flagCount&&s.getRightBeamCount()!==s.rhythmProps.flagCount&&(s.setLeftBeamCount(0),s.setRightBeamCount(0),a&&a.getRightBeamCount()>0&&(a.setRightBeamCount(0),n=!0),c&&c.getLeftBeamCount()>0&&(c.setLeftBeamCount(0),n=!0))}}while(n)}setTupletBeamCounts(){let e=this.getType(),r=this.getSymbols();e===1?r.forEach((n,o)=>{n instanceof At&&(n.setLeftBeamCount(o===0?0:n.rhythmProps.flagCount),n.setRightBeamCount(o===r.length-1?0:n.rhythmProps.flagCount))}):e===2&&r.forEach(n=>{n instanceof At&&(n.setLeftBeamCount(0),n.setRightBeamCount(0))})}};var Ci=class extends tt{constructor(e,r,n){super(e);this.pos=r;this.color=n;d(this,"mi");this.mi=new ys(this)}getMusicInterface(){return this.mi}static getFermataPositions(e){let{measure:r}=e,{row:n}=r;return n.getTopStaff()!==n.getBottomStaff()?[0,1]:[0]}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){let{unitSize:r}=e,n=r*4,o=r*3;this.rect=new G(-n/2,n/2,-o,0)}offset(e,r){this.rect.offsetInPlace(e,r)}draw(e){let{unitSize:r}=e,n=this.pos===1,o=(n?r:-r)*.7,s=this.rect.left,a=this.rect.right,c=(n?this.rect.bottom:this.rect.top)+o,u=(n?this.rect.top:this.rect.bottom)+o,h=u-c;e.drawDebugRect(this.rect),e.color(this.color).lineWidth(1),e.beginPath(),e.moveTo(s,u),e.bezierCurveTo(s,c,a,c,a,u),e.bezierCurveTo(a,c+h/5,s,c+h/5,s,u),e.stroke(),e.fill();let l=h/6;e.fillCircle((s+a)/2,u-l,Math.abs(l))}};function r0(i){return i instanceof st||i instanceof Se}function ug(i){return i instanceof xr||i instanceof st||i instanceof Se}var Xn=class extends tt{constructor(e,r,n,o){super(e);this.measure=e;this.line=r;this.extension=n;this.cols=o;d(this,"mi");n.addTail(this),this.mi=new bs(this)}get row(){return this.measure.row}getMusicInterface(){return this.mi}getLineLeft(e){let r=this.cols[0];if(r0(r))return r.getRect().right+e.unitSize;if(r instanceof xi)return r.getRect().anchorX;if(r instanceof kr){let n=r.measure.getColumns();if(r===n[0])return r.measure.getRect().left}return r.getRect().right}getLineRight(e){let r=this.cols[this.cols.length-1];if(ug(r))return r.getRect().left-e.unitSize;if(r instanceof kr){let n=r.measure.getColumns();if(r===n[n.length-1])return r.measure.getRect().right;let o=r.getNextColumn();if(o&&o.measure===r.measure)return(r.getRect().right+o.getRect().left)/2}return r.getRect().anchorX}layoutFitToMeasure(e){let r=e.unitSize,n=this.getLineLeft(e),o=this.getLineRight(e);[n,o]=[Math.min(n,o),Math.max(n,o)],this.rect=new G(n,o,-r/2,r/2)}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){this.rect=new G}offset(e,r){this.rect.offsetInPlace(e,r)}draw(e){let{rect:r}=this,n=this.extension.headObj.musicObj,o=String(n.userData["extension-color"]);this.extension.getLineStyle()==="dashed"&&e.setLineDash([7,3]),e.color(o).lineWidth(1),e.strokeLine(r.left,r.anchorY,r.right,r.anchorY),e.setLineDash([]);let s=this.extension.getTails(),a=s[s.length-1];if(this===a&&!ug(this.cols[this.cols.length-1])){let c=r.anchorY>this.line.getRect().anchorY?-e.unitSize:e.unitSize;e.strokeLine(r.right,r.anchorY,r.right,r.anchorY+c)}}};var Qi=class extends tt{constructor(e,r,n,o,s,...a){var c;super(n);this.connectiveProps=e;this.measure=n;d(this,"lx",0);d(this,"ly",0);d(this,"rx",0);d(this,"ry",0);d(this,"cp1x",0);d(this,"cp1y",0);d(this,"cp2x",0);d(this,"cp2y",0);d(this,"arcHeight",0);d(this,"line");d(this,"leftNoteGroup");d(this,"leftNoteId");d(this,"rightNoteGroup");d(this,"rightNoteId");d(this,"tieType");d(this,"mi");this.line=(c=this.measure.row.findMatchingLine(r))!=null?c:r,this.leftNoteGroup=o,this.leftNoteId=s,a[0]instanceof At&&typeof a[1]=="number"?(this.rightNoteGroup=a[0],this.rightNoteId=a[1],this.tieType=void 0):y.isEnumValue(a[0],yr)&&(this.rightNoteGroup=void 0,this.rightNoteId=void 0,this.tieType=a[0]),this.measure.addConnectiveObject(this),this.mi=new xs(this)}getMusicInterface(){return this.mi}get doc(){return this.measure.doc}isInsideMeasure(){return this.rightNoteGroup===void 0||this.leftNoteGroup.measure===this.rightNoteGroup.measure}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){let{unitSize:r}=e,{measure:n,line:o,leftNoteGroup:s,leftNoteId:a,rightNoteGroup:c,rightNoteId:u,connectiveProps:h}=this,{noteAnchor:l,arcDir:p}=h,{row:m}=n,f=m.getPrevRow(),g=m.getNextRow(),b=m.getConnectivesContentRect(),x,C;x=s.getConnectiveAnchorPoint(h,o,a,l,"left"),c!==void 0&&u!==void 0?C=c.getConnectiveAnchorPoint(h,o,u,l,"right"):C=this.tieType==="toMeasureEnd"?{x:n.getColumnsContentRect().right,y:x.y}:{x:x.x+r*ct.StubTieLength,y:x.y};let S,T,w,v;if(c===void 0)S=x.x,T=x.y,w=C.x,v=C.y;else if(s.row===m&&c.row===m)S=x.x,T=x.y,w=C.x,v=C.y;else if(s.row===f&&c.row===m){let R=f.getConnectivesContentRect().right-x.x,B=C.x-b.left;S=b.left,T=x.y+(C.y-x.y)*R/(R+B),w=C.x,v=C.y}else if(s.row===m&&c.row===g){let M=g.getConnectivesContentRect(),R=b.right-x.x,B=C.x-M.left;S=x.x,T=x.y,w=b.right,v=x.y+(C.y-x.y)*R/(R+B)}else throw new N(6,"Cannot layout connective object because no valid left and right note groups.");let _=(p==="up"?-1:1)*r*Math.log2(w-S)/3;this.lx=S,this.ly=T,this.rx=w,this.ry=v,this.arcHeight=this.connectiveProps.connective==="slide"?0:_;let{nx:E,ny:q}=$.Math.calcNormal(S,T,w,v);this.cp1x=S*.7+w*.3+E*this.arcHeight,this.cp1y=T*.7+v*.3+q*this.arcHeight,this.cp2x=S*.3+w*.7+E*this.arcHeight,this.cp2y=T*.3+v*.7+q*this.arcHeight,this.rect=new G(Math.min(this.lx,this.cp1x,this.cp2x,this.rx),Math.max(this.lx,this.cp1x,this.cp2x,this.rx),Math.min(this.ly,this.cp1y,this.cp2y,this.ry),Math.max(this.ly,this.cp1y,this.cp2y,this.ry)),this.line.addObject(this)}offset(e,r){this.lx+=e,this.ly+=r,this.rx+=e,this.ry+=r,this.cp1x+=e,this.cp1y+=r,this.cp2x+=e,this.cp2y+=r,this.rect.offsetInPlace(e,r)}draw(e){if(this.rightNoteGroup!==void 0){if(this.leftNoteGroup.measure!==this.rightNoteGroup.measure){if(this.leftNoteGroup.row.getNextRow()!==this.rightNoteGroup.row){if(this.measure!==this.rightNoteGroup.measure)return}}}let{rect:r}=this,{_lineWidth:n}=e;e.drawDebugRect(r);let o=n*1.5,s=n*.25;e.lineWidth(1),e.color(this.line instanceof Pt?X.Tab_Connective:X.Staff_Connective),this.arcHeight===0?(e.beginPath(),e.moveTo(this.lx,this.ly),e.lineTo(this.rx,this.ry),e.stroke()):(e.beginPath(),e.moveTo(this.lx,this.ly-s),e.bezierCurveTo(this.cp1x,this.cp1y-o,this.cp2x,this.cp2y-o,this.rx,this.ry-s),e.lineTo(this.rx,this.ry+s),e.bezierCurveTo(this.cp2x,this.cp2y+o,this.cp1x,this.cp1y+o,this.lx,this.ly+s),e.fill())}};var Qn=class{constructor(t,e,r,n){this.connective=t;this.span=e;this.noteAnchor=r;d(this,"noteGroups");d(this,"arcDir","down");this.noteGroups=[n]}getStartNoteGroup(){return this.noteGroups[0]}startsWith(t){return this.noteGroups[0]===t}addNoteGroup(t){return this.span==="stub"||this.span==="toMeasureEnd"?!1:this.span>this.noteGroups.length?(this.noteGroups.push(t),!0):!1}computeParams(t){let{stemDir:e}=this.noteGroups[0],{hasStem:r}=this.noteGroups[0].rhythmProps;if(this.noteAnchor==="stemTip")this.arcDir=e==="up"?"up":"down";else if(this.noteAnchor==="auto")this.arcDir=e==="up"||!r?"down":"up",this.noteGroups[0].notes.length>1?this.noteAnchor="center":this.connective==="slide"?this.noteAnchor="center":this.arcDir==="up"?this.noteAnchor="above":this.noteAnchor="below";else if(this.noteAnchor==="center"){let n=t instanceof Et?t:void 0,o=this.noteGroups[0].getDiatonicId(n);this.arcDir=!n||o<n.middleLineDiatonicId?"down":"up"}else this.noteAnchor==="above"?this.arcDir="up":this.noteAnchor==="below"&&(this.arcDir="down")}removeConnectives(){this.noteGroups.forEach(t=>{t.measure.removeConnectiveObjects(),t.removeConnectiveProps()}),this.noteGroups.length=1}createConnectives(){if(this.noteGroups.length===0)return;this.getStartNoteGroup().collectConnectiveProps();let{connective:t,span:e}=this;this.noteGroups[0].row.getNotationLines().forEach(r=>{if(this.computeParams(r),t==="tie"){if(y.isEnumValue(e,yr)){let n=this.noteGroups[0];for(let o=0;o<n.notes.length;o++)this.createObjConnectiveWithTieType(r,n,o,e)}else if(this.noteGroups.length>=2)for(let n=0;n<this.noteGroups.length-1;n++){let o=this.noteGroups[n],s=this.noteGroups[n+1];o.notes.forEach((a,c)=>{let u=s.notes.findIndex(h=>U.equals(h,a));u>=0&&this.createObjConnective(r,o,c,s,u)})}}else if(t==="slur"){if(typeof e=="number"&&e>=2&&this.noteGroups.length===e){let n=this.noteGroups[0],o=this.noteGroups[this.noteGroups.length-1];this.createObjConnective(r,n,0,o,0)}}else if(t==="slide"&&this.noteGroups.length>=2)for(let n=0;n<this.noteGroups.length-1;n++){let o=this.noteGroups[n],s=this.noteGroups[n+1];this.createObjConnective(r,o,0,s,0)}})}createObjConnectiveWithTieType(t,e,r,n){if(e.enableConnective(t))t instanceof Et?new Qi(this,t,e.measure,e,r,n):t instanceof Pt&&e.getFretNumberString(r)!==void 0&&new Qi(this,t,e.measure,e,r,n);else return}createObjConnective(t,e,r,n,o){let s=(a,c,u,h,l)=>{if(c.enableConnective(t)&&h.enableConnective(t)){if(t instanceof Et)new Qi(this,t,a,c,u,h,l);else if(t instanceof Pt){let p=c.getFretNumberString(u),m=h.getFretNumberString(l);p!==void 0&&m!==void 0&&(p===m||this.connective==="slur")&&new Qi(this,t,a,c,u,h,l)}}else return};if(e.measure===n.measure)s(e.measure,e,r,n,o);else if(e.measure.getNextMeasure()===n.measure)s(e.measure,e,r,n,o),s(n.measure,e,r,n,o);else throw new N(6,"Cannot create connective because it is jumping measures.")}};var ac=class extends tt{constructor(e,r,n,o,s,a,c){super(e);this.col=e;this.verse=r;this.line=n;this.vpos=o;d(this,"nextLyricsObject");d(this,"rhythmProps");d(this,"color","black");d(this,"hyphen");d(this,"text");d(this,"mi");this.rhythmProps=Kt.get(s);let u=(c==null?void 0:c.align)==="left"?0:(c==null?void 0:c.align)==="right"?1:.5;this.hyphen=y.isEnumValue(c==null?void 0:c.hyphen,Yn)?c==null?void 0:c.hyphen:void 0,this.text=new st(this,{text:a,color:this.color,scale:.8},u,0),this.rect=this.text.getRect().clone(),this.mi=new As(this)}getMusicInterface(){return this.mi}get measure(){return this.col.measure}getText(){return this.text.getText()}setNextLyricsObject(e){this.nextLyricsObject=e}pick(e,r){return this.getRect().contains(e,r)?[this]:[]}layout(e){this.text.layout(e),this.rect=this.text.getRect().clone()}offset(e,r){this.text.offset(e,r),this.rect.offsetInPlace(e,r)}draw(e){var r;if(this.text.draw(e),this.hyphen!==void 0){e.color(this.color).lineWidth(1);let n=this.getRect(),o=(r=this.nextLyricsObject)==null?void 0:r.getRect(),s=e.unitSize*1.5,a=o?(o.left-n.right)*.85:s,c=this.hyphen==="-"?Math.min(s,a):a;if(c>0){let u=o?(n.right+o.left)/2:n.right+c/.85,h=n.centerY;e.moveTo(u-c/2,h),e.lineTo(u+c/2,h),e.stroke()}}}};var Kn=class extends tt{constructor(e,r){super(e);this.measure=e;this.tab=r;d(this,"voiceId");d(this,"mi");d(this,"tupletPartsTextObjMap",new lt);this.voiceId=ae().filter(n=>r.containsVoiceId(n)),this.rect=new G,this.mi=new Cs(this)}getMusicInterface(){return this.mi}get doc(){return this.measure.doc}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){let r=this.measure.getColumns(),n=ae().map(o=>$.Math.sum(r.map(s=>s.getVoiceSymbol(o)?1:0)));this.voiceId.sort((o,s)=>$.Math.cmp(n[o],n[s])),this.rect=new G}hasTuplets(){return this.measure.getBeamGroups().some(e=>e.isTuplet())}layoutFitToMeasure(e){let{unitSize:r,fontSize:n}=e,{measure:o}=this,s=o.getColumnsContentRect(),a=r*5;this.rect.left=s.left,this.rect.anchorX=s.centerX,this.rect.right=s.right,this.rect.top=this.hasTuplets()?-n:0,this.rect.anchorY=0,this.rect.bottom=a}offset(e,r){this.rect.offsetInPlace(e,r)}draw(e){e.drawDebugRect(this.rect),e.lineWidth(1);let{unitSize:r,fontSize:n}=e,o=r,s=r,a=r*.25,{bottom:c,anchorY:u}=this.getRect(),h=u,l=c,p=this.measure.getColumns();for(let m=0;m<p.length;m++){let f=p[m],g=this.voiceId.map(C=>f.getVoiceSymbol(C)).find(C=>C!==void 0);if(!g)continue;let b=g.getBeamGroup(),x=b?b.getSymbols():[g];for(let C=0;C<x.length;C++){let S=x[C],T=x[C+1],w=S.col.getRect().anchorX;if(S instanceof At){if(e.lineWidth(1),e.color(X.Tab_Note),S.rhythmProps.noteSize>=2&&(e.lineWidth(S.rhythmProps.noteSize===4?2:1),e.strokeLine(w,l,w,h)),x.length===1)for(let v=0;v<S.rhythmProps.flagCount;v++)e.drawFlag(new G(w,w+o,h+v*o,h+(v+2)*o),"up");for(let v=0;v<S.rhythmProps.dotCount;v++)e.fillCircle(w+s*(v+1),l-a,a)}else if(S instanceof ce){e.lineWidth(1),e.color(X.Tab_Rest);let v=w,A=(h+l)/2,_=.65;e.save(),e.scale(_,_),e.drawRest(S.rhythmProps.noteSize,v/_,A/_),e.restore();for(let E=0;E<S.rhythmProps.dotCount;E++)v+=s*1.5,e.fillCircle(v,A+s,a)}if(T){let v=S,A=T,_=v.col.getRect().anchorX,E=A.col.getRect().anchorX,q=v.hasTuplet()?1:v instanceof At?v.getRightBeamCount():1,M=A.hasTuplet()?1:A instanceof At?A.getLeftBeamCount():1,R=Math.max(q,M);e.color(X.Tab_Note),e.lineWidth(2);for(let B=0;B<R;B++){let D=M>q&&B>=q?.75:0,j=q>M&&B>=M?.25:1;e.strokePartialLine(_,h+B*o,E,h+B*o,D,j)}e.lineWidth(1);for(let B=0;B<v.rhythmProps.dotCount;B++)e.fillCircle(_+s*(B+1),l-a,a);for(let B=0;B<A.rhythmProps.dotCount;B++)e.fillCircle(E+s*(B+1),l-a,a)}if(b&&b.isTuplet()){e.color(X.Tab_Note);let v=(x[0].col.getRect().anchorX+x[x.length-1].col.getRect().anchorX)/2,A=b.getTupletRatioText(),_=this.tupletPartsTextObjMap.get(A);_||(this.tupletPartsTextObjMap.set(A,_=new st(this,{text:A,scale:.75},.5,.5)),_.layout(e)),_.setCenter(v,h-n/2),_.draw(e)}x.length>1&&(m=p.indexOf(x[x.length-1].col),m<0&&(m=p.length))}}}};function i0(i){switch(i){case"bottom":return .8;case"middle":return .5}}function n0(i){if(typeof i=="string"&&(i=[i]),y.isArray(i)){let t=0;for(let e=0;e<i.length;){let r=i[e],n=i[e+1];if(typeof r=="string"){e++;let o=Kt.get(r).ticks;typeof n=="number"&&(e++,o*=n),t+=o}else e++}return t}else return i}function o0(i){switch(i){case 1:return 8;case 2:return 9;case 3:return 10;default:throw new N(0,"VerseNumber is not 1, 2 or 3.")}}var Lh=class{constructor(){d(this,"tabTuning_0",0);d(this,"signature_1",0);d(this,"leftBarLine_2",0);d(this,"padding_3",0);d(this,"columnsMin_4",0);d(this,"padding_5",0);d(this,"rightBarLine_6",0)}get leftSolid(){return this.tabTuning_0+this.signature_1+this.leftBarLine_2+this.padding_3}get columnsMin(){return this.columnsMin_4}get rightSolid(){return this.padding_5+this.rightBarLine_6}},bi=class extends tt{constructor(e,r){super(e);this.row=e;this.options=r;d(this,"prevMeasure");d(this,"nextMeasure");d(this,"keySignature",Ys());d(this,"timeSignature",Xs());d(this,"tempo",Qs());d(this,"alterKeySignature");d(this,"alterTimeSignature");d(this,"alterTempo");d(this,"signatures",[]);d(this,"tabStringNotes",[]);d(this,"barLineLeft");d(this,"columns",[]);d(this,"barLineRight");d(this,"connectives",[]);d(this,"beamGroups",[]);d(this,"measureId");d(this,"regions",new Lh);d(this,"needLayout",!0);d(this,"voiceSymbols",Us(new vr));d(this,"lastAddedRhythmColumn");d(this,"lastAddedRhythmSymbol");d(this,"addExtensionTo",[]);d(this,"layoutObjects",[]);d(this,"postMeasureBreakWidth",0);d(this,"passCount",0);d(this,"needBeamsUpdate",!0);d(this,"navigationSet",new Ws);d(this,"isEndSong",!1);d(this,"isEndSection",!1);d(this,"endRepeatPlayCount",2);d(this,"endRepeatPlayCountText");d(this,"staticObjectsCache",new lt);d(this,"lyricsObjectsCache",new qs);d(this,"mi");this.mi=new _s(this),this.prevMeasure=e.doc.getLastMeasure(),this.prevMeasure&&(this.prevMeasure.nextMeasure=this),this.barLineLeft=new xi(this),this.barLineRight=new xr(this),this.measureId=this.prevMeasure?this.prevMeasure.measureId+1:0,this.updateKeySignature(),this.updateTimeSignature(),this.updateTempo(),this.row.getTabs().forEach(n=>{this.addLayoutObject(new Kn(this,n),n,0,0)})}getMusicInterface(){return this.mi}get doc(){return this.row.doc}isPartialMeasure(){return this.getConsumedTicks()<this.getMeasureTicks()}isUpBeat(){return this===this.doc.getFirstMeasure()}resetPassCount(){this.passCount=0}incPassCount(){this.passCount++}getPassCount(){return this.passCount}updateRunningArguments(e){var n;e!=null||(e=[]);let r=$.Math.sum(ae().map(o=>this.getVoiceSymbols(o).length>0?1:0));ae().forEach(o=>{var h;let s=()=>{let l=this.row.getStaves().filter(m=>m.containsVoiceId(o)),p=this.row.getTabs().filter(m=>m.containsVoiceId(o));return l.length>0?l[0].middleLineDiatonicId:p.length>0?p[0].getTuningStrings()[3].diatonicId:U.getNote("G4").diatonicId},a=()=>"auto",c=()=>[],u=(h=e[o])!=null?h:e[o]={diatonicId:s(),stemDir:a(),stringNumbers:c()};this.getVoiceSymbols(o).forEach((l,p,m)=>{var b,x;if(l.setDiatonicId===ce.UndefinedDiatonicId?r<2&&(u.diatonicId=ce.UndefinedDiatonicId):u.diatonicId=l.setDiatonicId,l instanceof At)switch(l.setStringsNumbers&&(u.stringNumbers=l.setStringsNumbers),(b=l.options)==null?void 0:b.stem){case"up":case"up":u.stemDir="up";break;case"down":case"down":u.stemDir="down";break;case"auto":case"auto":u.stemDir="auto";break}let f=(x=l.getBeamGroup())==null?void 0:x.getSymbols(),g;f===void 0?g=u.stemDir==="auto"?this.row.solveAutoStemDir([l]):u.stemDir:l===f[0]?g=u.stemDir==="auto"?this.row.solveAutoStemDir(f):u.stemDir:g=f[0].stemDir,l.updateRunningArguments(u.diatonicId,g,u.stringNumbers)})}),(n=this.getNextMeasure())==null||n.updateRunningArguments(e)}pick(e,r){if(!this.getRect().contains(e,r))return[];for(let n=0;n<this.signatures.length;n++){let o=this.signatures[n].pick(e,r);if(o.length>0)return[this,...o]}for(let n=0;n<this.tabStringNotes.length;n++){let o=this.tabStringNotes[n].pick(e,r);if(o.length>0)return[this,...o]}for(let n=0;n<this.columns.length;n++){let o=this.columns[n].pick(e,r);if(o.length>0)return[this,...o]}if(this.barLineLeft){let n=this.barLineLeft.pick(e,r);if(n.length>0)return[this,...n]}if(this.barLineRight){let n=this.barLineRight.pick(e,r);if(n.length>0)return[this,...n]}if(this.endRepeatPlayCountText){let n=this.endRepeatPlayCountText.pick(e,r);if(n.length>0)return[this,...n]}for(let n=0;n<this.connectives.length;n++){let o=this.connectives[n].pick(e,r);if(o.length>0)return[this,...o]}for(let n=0;n<this.beamGroups.length;n++){let o=this.beamGroups[n].pick(e,r);if(o.length>0)return[this,...o]}for(let n=0;n<this.layoutObjects.length;n++){let o=this.layoutObjects[n].musicObj.pick(e,r);if(o.length>0)return[this,...o]}return[this]}getMeasureNumber(){let e=this.doc.getFirstMeasure();return e&&e.isPartialMeasure()?this.measureId:this.measureId+1}getColumns(){return this.columns}getColumnCount(){return this.columns.length}getColumn(e){return this.getColumns()[e]}isFirstMeasure(){return this.prevMeasure===void 0}isLastMeasure(){return this.nextMeasure===void 0}isFirstMeasureInRow(){return this===this.row.getFirstMeasure()}isLastMeasureInRow(){return this===this.row.getLastMeasure()}getNextMeasure(){return this.nextMeasure}getPrevMeasure(){return this.prevMeasure}getKeySignature(){return this.keySignature}setKeySignature(...e){var r;if((r=this.getPrevMeasure())==null||r.endSection(),e[0]instanceof rr)this.alterKeySignature=e[0];else if(e[0]instanceof ri)this.alterKeySignature=e[0];else if(y.isNonEmptyString(e[0])){if(e.length===1)this.alterKeySignature=Pr(e[0]);else if(e.length===2)try{let n=""+e[0],o=ho(""+e[1]);this.alterKeySignature=Pr(n,o)}catch(n){throw new N(6,"Cannot set key signature because invalid args: "+e)}}this.updateKeySignature()}updateKeySignature(){this.keySignature=this.prevMeasure?this.prevMeasure.keySignature:Ys(),this.alterKeySignature&&(this.keySignature=this.alterKeySignature),this.nextMeasure&&this.nextMeasure.updateKeySignature(),this.requestLayout()}getTimeSignature(){return this.timeSignature}setTimeSignature(e){var r;(r=this.getPrevMeasure())==null||r.endSection(),this.alterTimeSignature=e,this.updateTimeSignature()}updateTimeSignature(){this.timeSignature=this.prevMeasure?this.prevMeasure.timeSignature:Xs(),this.alterTimeSignature&&(this.timeSignature=this.alterTimeSignature),this.nextMeasure&&this.nextMeasure.updateTimeSignature(),this.requestLayout()}getTempo(){return this.tempo}setTempo(e,r){var n;if((n=this.getPrevMeasure())==null||n.endSection(),r===void 0)this.alterTempo={beatsPerMinute:e};else{let o=Nt.get(r).dotCount,s={beatLength:Br(r),dotCount:o>0?o:void 0};this.alterTempo={beatsPerMinute:e,options:s}}this.updateTempo()}updateTempo(){var e;if(this.tempo=this.prevMeasure?this.prevMeasure.tempo:Qs(),this.alterTempo){let r=this.alterTempo.beatsPerMinute,n,o;this.alterTempo.options?(n=this.alterTempo.options.beatLength,o=(e=this.alterTempo.options.dotCount)!=null?e:0):this.alterTimeSignature?(n=this.alterTimeSignature.beatLength,o=0):(n=this.tempo.options.beatLength,o=this.tempo.options.dotCount),this.tempo={beatsPerMinute:r,options:{beatLength:n,dotCount:o}}}this.nextMeasure&&this.nextMeasure.updateTempo(),this.requestLayout()}hasPostMeasureBreak(){return this.isEndSong&&this!==this.row.getLastMeasure()}getPostMeasureBreakWidth(){return this.postMeasureBreakWidth}addLayoutObject(e,r,n,o){let s=new uc(e,r,n,o);return this.layoutObjects.push(s),this.requestLayout(),this.requestRectUpdate(),s}forEachStaffGroup(e,r,n){let o=this.row.getNotationLines(),s=(a,c,u=[])=>{if(typeof a=="number")o[a]&&n(o[a],c);else if(typeof a=="string"&&a.length>0){let h=o.filter(l=>l.name===a);if(h.forEach(l=>n(l,c)),h.length===0){let l=this.doc.getStaffGroup(a);if(l&&!u.includes(a)){let p=[...u,a];(y.isArray(l.staffsTabsAndGroups)?l.staffsTabsAndGroups:[l.staffsTabsAndGroups]).forEach(m=>{switch(l.verticalPosition){case"above":s(m,0,p);break;case"below":s(m,1,p);break;case"both":s(m,0,p),s(m,1,p);break;case"auto":s(m,r,p);break}})}}}};e===void 0?o.length>=2&&o[0]instanceof Et&&o[1]instanceof Et&&o[0].staffConfig.grandId!==void 0&&o[0].staffConfig.grandId===o[1].staffConfig.grandId?s(r===1?1:0,r):s(0,r):y.isArray(e)?e.forEach(a=>s(a,r)):s(e,r)}addFermata(e,r){let n=r==="atMeasureEnd"?this.barLineRight:this.lastAddedRhythmColumn;if(!n)throw new N(6,"Cannot add Fermata because anchor is undefined.");this.forEachStaffGroup(e,0,(o,s)=>{let a=o instanceof Pt?X.Staff_Element_Fermata:X.Tab_Element_Fermata;this.addLayoutObject(new Ci(n,s,a),o,1,s)}),this.disableExtension(),this.requestLayout()}hasFermata(e){return this.layoutObjects.some(r=>r.musicObj instanceof Ci&&r.anchor===e)}addNavigation(e,r,...n){let o;switch(r){case"ending":if(this.navigationSet.has(r))throw new N(6,"Cannot add ending beasure measure already has one.");let s=this,a=n;o={createObj:c=>{let u=c instanceof Pt?X.Staff_Element_Navigation:X.Tab_Element_Navigation;return new Zi(s,u,a)},layoutGroupId:4,defaultVerticalPos:0};break;case"D.C. al Coda":case"D.C. al Fine":case"D.S. al Coda":case"D.S. al Fine":{let c=this.barLineRight,u=cs(r);o={createObj:h=>{let l=h instanceof Pt?X.Staff_Element_Navigation:X.Tab_Element_Navigation;return new st(c,{text:u,color:l},1,1)},layoutGroupId:3,defaultVerticalPos:0},this.addNavigation(e,"endRepeat"),this.endSong();break}case"Fine":{let c=this.barLineRight,u=cs(r);o={createObj:h=>{let l=h instanceof Pt?X.Staff_Element_Navigation:X.Tab_Element_Navigation;return new st(c,{text:u,color:l},1,1)},layoutGroupId:3,defaultVerticalPos:0};break}case"Segno":case"Coda":{let c=this.barLineLeft,u=cs(r);o={createObj:h=>{let l=h instanceof Pt?X.Staff_Element_Navigation:X.Tab_Element_Navigation;return new Se(c,u,l)},layoutGroupId:3,defaultVerticalPos:0};break}case"toCoda":{let c=this.barLineRight,u=cs(r);o={createObj:h=>{let l=h instanceof Pt?X.Staff_Element_Navigation:X.Tab_Element_Navigation;return new Se(c,u,l)},layoutGroupId:3,defaultVerticalPos:0};break}case"endRepeat":if(n.length===0)this.endRepeatPlayCount=2;else if(y.isIntegerGte(n[0],2))this.endRepeatPlayCount=n[0];else throw new N(6,"Invalid end repeat play count (should be 2 or greater integer): "+n[0]);if(this.endRepeatPlayCount!==2){let u={text:`${this.endRepeatPlayCount}x`,scale:.8,color:X.Staff_Frame};this.endRepeatPlayCountText=new st(this,u,.5,1)}break}o&&this.forEachStaffGroup(e,o.defaultVerticalPos,(s,a)=>{this.addLayoutObject(o.createObj(s),s,o.layoutGroupId,a)}),this.navigationSet.add(r),this.disableExtension()}hasNavigation(e){return this.navigationSet.has(e)}addAnnotation(e,r,n){let o=this.lastAddedRhythmColumn;if(o){if(n.length===0)throw new N(6,"Cannot add annotation because annotation text is empty.")}else throw new N(6,"Cannot add annotation because anchor is undefined.");let s={text:n},a,c,u;switch(r){case"dynamics":a=6,c=0,s.italic=!0,u="bottom";break;case"tempo":a=5,c=0,s.italic=!0,u="bottom";break}let h=.5,l=i0(u);this.disableExtension(),this.forEachStaffGroup(e,c,(p,m)=>{let f=p instanceof Pt?X.Staff_Element_Annotation:X.Tab_Element_Annotation;s.color=f;let g=new st(o,s,h,l),b=this.addLayoutObject(g,p,a,m);this.enableExtension(b,f)})}addLabel(e,r,n){let o=this.lastAddedRhythmColumn;if(o){if(n.length===0)throw new N(6,"Cannot add label because label text is empty.")}else throw new N(6,"Cannot add label because anchor is undefined.");let s={text:n},a,c;switch(r){case"note":a=2,c=1;break;case"chord":a=7,c=0;break}this.disableExtension(),this.forEachStaffGroup(e,c,(u,h)=>{let l=u instanceof Pt?X.Staff_Element_Label:X.Tab_Element_Label;s.color=l;let p=new st(o,s,.5,1),m=this.addLayoutObject(p,u,a,h);this.enableExtension(m,l)})}addConnective(e,...r){let n=this.lastAddedRhythmSymbol;if(!(n instanceof At))throw new N(6,"Connective can be added to note group only.");if(e==="tie"){let o=y.isInteger(r[0])||y.isEnumValue(r[0],yr)?r[0]:2,s=y.isEnumValue(r[1],Je)?r[1]:"auto";n.startConnective(new Qn("tie",o,s,n))}else if(e==="slur"){let o=y.isInteger(r[0])?r[0]:2,s=y.isEnumValue(r[1],Je)?r[1]:"auto";n.startConnective(new Qn("slur",o,s,n))}else if(e==="slide"){let o=y.isEnumValue(r[0],Je)?r[0]:"auto";n.startConnective(new Qn("slide",2,o,n))}}addExtension(e,r){if(this.addExtensionTo.forEach(n=>{let{layoutObj:o,color:s}=n,{musicObj:a}=o;a.userData["extension-color"]=s;let c=a.getParent();if(a instanceof st&&c instanceof kr){let u="dashed",h="bottom",l=new $i(o,c,n0(e),r,u,h);a.setLink(l)}else throw new N(6,"Cannot add extension becaue no compatible music object to attach it to.")}),this.addExtensionTo.length===0)throw new N(6,"Cannot add extension because music object to attach it to is undefined.");this.disableExtension(),this.requestLayout()}enableExtension(e,r){this.addExtensionTo.push({layoutObj:e,color:r})}disableExtension(){this.addExtensionTo=[]}getEnding(){return this.layoutObjects.map(e=>e.musicObj).find(e=>e instanceof Zi)}getEndRepeatPlayCount(){return this.endRepeatPlayCount}endSong(){this.isEndSong=!0,this.requestLayout(),this.disableExtension()}hasEndSong(){return this.isEndSong}endSection(){this.isEndSection=!0,this.requestLayout(),this.disableExtension()}hasEndSection(){return this.isEndSection}endRow(){this.doc.requestNewRow(),this.disableExtension()}addRhythmSymbol(e){let{col:r,voiceId:n}=e;r.setVoiceSymbol(n,e),this.voiceSymbols.add(n,e),e.oldStyleTriplet&&this.createOldStyleTriplets(n),this.requestBeamsUpdate(),this.lastAddedRhythmColumn=r,this.lastAddedRhythmSymbol=e}addNoteGroup(e,r,n,o,s){let a=r.map(h=>typeof h=="string"?U.getNote(h):h),c=this.getRhythmColumn(e),u=new At(c,e,a,n,o,s);return this.addRhythmSymbol(u),u}addRest(e,r,n,o){let s=this.getRhythmColumn(e),a=new ce(s,e,r,n,o);return this.addRhythmSymbol(a),a}addLyrics(e,r,n,o,s){this.forEachStaffGroup(e,1,(a,c)=>{var p;let u=this.getRhythmColumn({verse:r,line:a,vpos:c}),h=new ac(u,r,a,c,Br(n),o,s);u.addLyricsObject(h);let l=this.lyricsObjectsCache.getOrCreate(a,c,r,[]);l.push(h),l.sort((m,f)=>$.Math.cmp(m.col.positionTicks,f.col.positionTicks)),(p=h.measure.getPrevLyricsObject(h))==null||p.setNextLyricsObject(h),this.addLayoutObject(h,a,o0(r),c),this.lastAddedRhythmColumn=u})}getRhythmColumn(e){let r=0;for(let n=this.columns.length-1;n>=0&&r===0;n--){let o=this.columns[n],s=typeof e=="number"?o.getVoiceSymbol(e):o.getLyricsObject(e.verse,e.line,e.vpos);s&&(r=o.positionTicks+s.rhythmProps.ticks)}for(let n=0;n<=this.columns.length;n++){let o=this.columns[n];if(o&&o.positionTicks===r)return o;if(!o||o.positionTicks>r){let s=new kr(this,r);return this.columns.splice(n,0,s),s}}throw new N(6,"Error in rhythm column. Should never get here.")}getMeasureTicks(){return this.getTimeSignature().measureTicks}getConsumedTicks(e){let r=0;return this.columns.forEach(n=>{ae().forEach(o=>{let s=n.getVoiceSymbol(o);s&&(e===void 0||e===o)&&(r=Math.max(r,n.positionTicks+s.rhythmProps.ticks))})}),r}getColumnsContentRect(){return new G(this.barLineLeft.getRect().anchorX,this.barLineRight.getRect().anchorX,this.getRect().top,this.getRect().bottom)}getLeftSolidWidth(){return this.regions.leftSolid}getMinColumnsWidth(){return this.regions.columnsMin}getRightSolidWidth(){return this.regions.rightSolid}getTotalSolidWidth(){return this.getLeftSolidWidth()+this.getRightSolidWidth()}getMinWidth(){return this.getLeftSolidWidth()+this.getMinColumnsWidth()+this.getRightSolidWidth()}getStaffLineLeft(){let e=this.getPrevMeasure();return e&&e.row===this.row&&!e.hasPostMeasureBreak()?e.getStaffLineRight():this.getRect().left+this.regions.tabTuning_0}getStaffLineRight(){return this.barLineRight.getRect().anchorX}getPrevLyricsObject(e){var c;let{line:r,verse:n,vpos:o}=e,s=this.lyricsObjectsCache.getOrDefault(r,o,n,[]),a=s.indexOf(e);if(a>0)return s[a-1];if(a===0){let u=(c=e.measure.getPrevMeasure())==null?void 0:c.lyricsObjectsCache.get(r,o,n);if(u&&u.length>0)return u[u.length-1]}}getStaticObjects(e){let r=this.layoutObjects.filter(o=>o.line===e&&o.isPositionResolved()).map(o=>o.musicObj),n=r.length>0?[...this.staticObjectsCache.getOrDefault(e,[]),...r]:this.staticObjectsCache.getOrDefault(e,[]);return n.forEach(o=>o.getRect()),n}addStaticObject(e,r){this.staticObjectsCache.getOrCreate(e,[]).push(r)}removeLayoutObjects(e){this.layoutObjects=this.layoutObjects.filter(r=>{if(r.musicObj===e){let n=r.musicObj.getLink();return n&&n.detachTail(r.musicObj),r.layoutGroup.remove(r),!1}else return!0})}addConnectiveObject(e){this.connectives.push(e),this.requestLayout()}removeConnectiveObjects(){this.connectives.length>0&&(this.connectives=[],this.requestLayout())}createExtensions(){this.layoutObjects.forEach(e=>{let{musicObj:r,measure:n,layoutGroupId:o,verticalPos:s,line:a}=e;if(r.getLink()instanceof $i){let c=r.getLink();if(c.getHead()!==r||(c.getTails().forEach(l=>n.removeLayoutObjects(l)),!c.isVisible()))return;let u=c.getRange(),h=u.columnRange.slice();for(let l=!0;h.length>1;l=!1){let{measure:p}=h[0],m=h.findIndex(C=>C.measure!==p),f=h.splice(0,m>0?m:h.length);if(f.length<2)continue;let g=p.row.findMatchingLine(a);if(!g)continue;let b=h.length===0,x=[...l?[r]:[],...f,...b&&u.stopObject?[u.stopObject]:[]];p.addLayoutObject(new Xn(p,g,c,x),g,o,s)}}})}addBeamGroup(e){this.beamGroups.push(e)}requestBeamsUpdate(){this.needBeamsUpdate=!0}createOldStyleTriplets(e){let r=this.getVoiceSymbols(e);for(let n=0;n<r.length;)if(r[n].oldStyleTriplet){let o=Xi.createOldStyleTriplet(r.slice(n,n+3));n+=o===0?1:o}else n++;this.requestLayout()}getBeamGroups(){return this.beamGroups}createBeams(){if(!this.needBeamsUpdate)return;this.beamGroups=this.beamGroups.filter(r=>r.isTuplet()?!0:(r.detach(),!1));let e=this.getTimeSignature();!this.needBeamsUpdate||e.beamGroupSizes.length===0||(ae().forEach(r=>{let n=this.getVoiceSymbols(r).slice();if(n.length<2)return;let o=this.isUpBeat()?Math.max(0,this.getMeasureTicks()-this.getConsumedTicks()):0,s=0;for(let a=0;a<e.beamGroupSizes.length;a++){let c=e.beamGroupSizes[a],u=[c];c.length>1&&u.unshift([$.Math.sum(c)]);let h=!1,l=s;for(;u.length>0&&!h;){let p=u.shift();s=l,p.forEach(m=>{let f=m*Nt.get("8n").ticks,g=s+f,b=n.filter(C=>{let S=o+C.col.positionTicks,T=S+C.rhythmProps.ticks;return S>=s&&T<=g});$.Math.sum(b.map(C=>C.rhythmProps.ticks))===f&&b.every(C=>C instanceof At)&&(b.every(C=>C.rhythmProps.flagCount===1)||u.length===0)&&Xi.createBeam(b)&&(h=!0),s+=f})}}}),this.needBeamsUpdate=!1,this.requestLayout())}getBarLineLeft(){return this.barLineLeft}getBarLineRight(){return this.barLineRight}getVoiceSymbols(e){return this.voiceSymbols.getAll(e)}completeRests(e){if(e===void 0){this.getConsumedTicks()===0?this.completeRests(0):this.completeRests(ae().filter(r=>this.getConsumedTicks(r)>0));return}else if(y.isArray(e)){e.forEach(r=>this.completeRests(r));return}else{Bo(e);let r=this.getMeasureTicks(),n=this.getConsumedTicks(e),o=r-n,s=[];for(;o>0;)for(let a=Nt.LongestNoteSize;a<=Nt.ShortestNoteSize;a*=2){let c=Nt.create(a).noteLength;for(let u=Nt.get(c).maxDotCount;u>=0;u--){let h=Kt.get(c,u);for(;h.ticks<=o;)s.push(h),o-=h.ticks}}s.reverse().forEach(a=>this.addRest(e,Nt.create(a.noteLength,a.dotCount).noteLength))}}requestLayout(){this.needLayout||(this.needLayout=!0,this.row.requestLayout())}layout(e){var m;if(!this.needLayout)return;this.staticObjectsCache.clear(),this.requestRectUpdate();let{unitSize:r}=e;this.postMeasureBreakWidth=this.hasPostMeasureBreak()?ct.PostMeasureBreakWidth*r:0;let n=this.isFirstMeasureInRow(),o=((m=this.getPrevMeasure())==null?void 0:m.hasPostMeasureBreak())===!0;this.regions.tabTuning_0=n&&this.row.hasTab?r*4:0;let s=n||o,a=this.options.showNumber===!1?!1:this.options.showNumber===!0||n&&!this.row.isFirstRow(),c=n||o||!!this.alterKeySignature,u=!!this.alterTimeSignature,h=!!this.alterTempo;this.signatures=[],this.row.getNotationLines().forEach((f,g)=>{if(f instanceof Et&&(s||a||c||u||h)){let b=this.signatures.filter(C=>C instanceof Xo).find(C=>C.staff===f),x=b!=null?b:new Xo(this,f);x.staff.addObject(x),x.updateClefImage(e,s),x.updateMeasureNumber(a&&g===0),x.updateKeySignature(c),x.updateTimeSignature(u),x.updateTempo(h&&g===0),x.layout(e),this.signatures.push(x)}else if(f instanceof Pt&&(a||u||h)){let b=this.signatures.filter(C=>C instanceof Qo).find(C=>C.tab===f),x=b!=null?b:new Qo(this,f);x.tab.addObject(x),x.updateMeasureNumber(a&&g===0),x.updateTimeSignature(u),x.updateTempo(h&&g===0),x.layout(e),this.signatures.push(x)}}),this.tabStringNotes.length=0,this.isFirstMeasureInRow()&&this.row.getTabs().forEach(f=>{for(let g=0;g<6;g++){let b=f.getTuningStrings()[g].format(1,1),x=X.Tab_Tuning,C=new st(this,{text:b,scale:.8,color:x},1,.5);C.layout(e),C.setRight(this.regions.tabTuning_0*.8),C.setCenterY(f.getStringY(g)),this.tabStringNotes.push(C),f.addObject(C)}}),this.barLineLeft.layout(e);let l=new Ja(this);this.columns.forEach(f=>f.layout(e,l)),this.columns.forEach(f=>f.layoutReserveSpace(e)),this.barLineRight.layout(e),this.endRepeatPlayCountText&&this.endRepeatPlayCountText.layout(e),this.layoutObjects.forEach(f=>f.layout(e));let p=e.unitSize;this.regions.signature_1=Math.max(0,...this.signatures.map(f=>f.getRect().width)),this.regions.leftBarLine_2=this.barLineLeft.getRect().width,this.regions.padding_3=p,this.regions.columnsMin_4=Math.max(ct.MinColumnsWidth*r,this.columns.map(f=>f.getRect().width).reduce((f,g)=>f+g)),this.regions.padding_5=p,this.regions.rightBarLine_6=this.barLineRight.getRect().width}layoutWidth(e,r){if(!this.needLayout)return;r=Math.max(r,this.getMinWidth()),this.rect=new G,this.rect.anchorX=this.rect.left+r/2,this.rect.right=this.rect.left+r,this.signatures.forEach(l=>{l.setLeft(this.rect.left+this.regions.tabTuning_0),l.setAnchorY(this.rect.anchorY)});let n=Math.max(0,...this.signatures.map(l=>l.getRect().width));this.barLineLeft.setLeft(this.rect.left+this.regions.tabTuning_0+n),this.barLineLeft.setAnchorY(this.rect.anchorY),this.barLineRight.setRight(this.rect.right),this.barLineRight.setAnchorY(this.rect.anchorY),this.endRepeatPlayCountText&&(this.endRepeatPlayCountText.setCenterX(this.barLineRight.getRect().left),this.endRepeatPlayCountText.setBottom(this.barLineRight.getRect().top));let o=this.rect.left+this.regions.leftSolid,a=this.rect.right-this.regions.rightSolid-o,c=this.regions.columnsMin,u=a/c,h=o;this.columns.forEach(l=>{let p=l.getRect(),m=h+p.leftw*u;l.setAnchor(m,this.rect.anchorY),h+=p.width*u}),ae().forEach(l=>{let p=this.getVoiceSymbols(l),m=p.length===1&&p[0]instanceof ce?p[0]:void 0;!m||ae().map(g=>m.col.getVoiceSymbol(g)).filter(g=>g!==void 0&&g!==m).length===0||m.setAnchorX(this.getColumnsContentRect().centerX)})}layoutConnectives(e){this.needLayout&&this.connectives.forEach(r=>{r.layout(e),this.rect.top=Math.min(this.rect.top,r.getRect().top),this.rect.bottom=Math.max(this.rect.bottom,r.getRect().bottom)})}layoutBeams(e){this.needLayout&&this.beamGroups.forEach(r=>{r.layout(e),this.rect.top=Math.min(this.rect.top,r.getRect().top),this.rect.bottom=Math.max(this.rect.bottom,r.getRect().bottom)})}alignStemsToBeams(){this.beamGroups.forEach(e=>e.updateStemTips())}layoutDone(){this.columns.forEach(e=>e.layoutDone()),this.needLayout=!1}updateRect(){this.rect.top=Math.min(...this.signatures.map(e=>e.getRect().top),...this.tabStringNotes.map(e=>e.getRect().top),this.barLineLeft.getRect().top,...this.columns.filter(e=>!e.isEmpty()).map(e=>e.getRect().top),this.barLineRight.getRect().top,...this.connectives.map(e=>e.getRect().top),...this.beamGroups.filter(e=>!e.isEmpty()).map(e=>e.getRect().top),...this.layoutObjects.filter(e=>e.isPositionResolved()).map(e=>e.musicObj.getRect().top)),this.rect.bottom=Math.max(...this.signatures.map(e=>e.getRect().bottom),...this.tabStringNotes.map(e=>e.getRect().bottom),this.barLineLeft.getRect().bottom,...this.columns.filter(e=>!e.isEmpty()).map(e=>e.getRect().bottom),this.barLineRight.getRect().bottom,...this.connectives.map(e=>e.getRect().bottom),...this.beamGroups.filter(e=>!e.isEmpty()).map(e=>e.getRect().bottom),...this.layoutObjects.filter(e=>e.isPositionResolved()).map(e=>e.musicObj.getRect().bottom)),this.isLastMeasureInRow()&&(this.rect.right=Math.max(this.rect.right,...this.layoutObjects.filter(e=>e.isPositionResolved()&&e.musicObj instanceof Ci).map(e=>e.musicObj.getRect().right))),this.row.getNotationLines().forEach(e=>{this.rect.top=Math.min(this.rect.top,e.calcTop()),this.rect.bottom=Math.max(this.rect.bottom,e.calcBottom())}),this.row.requestRectUpdate()}offset(e,r){this.signatures.forEach(n=>n.offset(e,0)),this.tabStringNotes.forEach(n=>n.offset(e,0)),this.barLineLeft.offset(e,r),this.columns.forEach(n=>n.offset(e,r)),this.barLineRight.offset(e,r),this.endRepeatPlayCountText&&this.endRepeatPlayCountText.offset(e,r),this.connectives.forEach(n=>n.offset(e,0)),this.beamGroups.forEach(n=>n.offset(e,r)),this.layoutObjects.forEach(n=>n.offset(e,0)),this.rect.offsetInPlace(e,r),this.requestRectUpdate()}draw(e){e.drawDebugRect(this.getRect()),e.lineWidth(1);let r=this.getStaffLineLeft(),n=this.getStaffLineRight(),o=(s,a)=>e.color(a).strokeLine(r,s,n,s);this.row.getNotationLines().forEach(s=>{if(s instanceof Et)for(let a=s.bottomLineDiatonicId;a<=s.topLineDiatonicId;a+=2)o(s.getDiatonicIdY(a),X.Staff_Frame);else if(s instanceof Pt)for(let a=0;a<6;a++)o(s.getStringY(a),X.Tab_Frame)}),this.isFirstMeasureInRow()&&this.row.getNotationLines().length===1&&this.row.getTabs().forEach(s=>{if(s.getRowGroup().hasBrace)return;let c=this.getStaffLineLeft(),u=s.getTopLineY(),h=s.getBottomLineY();e.color(X.Tab_Frame).lineWidth(1).strokeLine(c,u,c,h)}),this.signatures.forEach(s=>s.draw(e)),this.tabStringNotes.forEach(s=>s.draw(e)),this.barLineLeft.draw(e),this.columns.forEach(s=>s.draw(e)),this.barLineRight.draw(e),this.endRepeatPlayCountText&&this.endRepeatPlayCountText.draw(e),this.connectives.forEach(s=>s.draw(e)),this.layoutObjects.forEach(s=>s.musicObj.draw(e)),this.beamGroups.forEach(s=>s.draw(e))}};var cc=(l=>(l[l.TabRhythm=0]="TabRhythm",l[l.Fermata=1]="Fermata",l[l.NoteLabel=2]="NoteLabel",l[l.Navigation=3]="Navigation",l[l.Ending=4]="Ending",l[l.TempoAnnotation=5]="TempoAnnotation",l[l.DynamicsAnnotation=6]="DynamicsAnnotation",l[l.ChordLabel=7]="ChordLabel",l[l.LyricsVerse1=8]="LyricsVerse1",l[l.LyricsVerse2=9]="LyricsVerse2",l[l.LyricsVerse3=10]="LyricsVerse3",l))(cc||{}),jh=new lt([[0,{rowAlign:!0}],[1,{reserveSpace:!0}],[2,{reserveSpace:!0}],[3,{rowAlign:!0}],[4,{rowAlign:!0,padding:2}],[5,{rowAlign:!0,padding:2}],[6,{rowAlign:!0,padding:2}],[7,{reserveSpace:!0,rowAlign:!0}],[8,{reserveSpace:!0,rowAlign:!0}],[9,{reserveSpace:!0,rowAlign:!0}],[10,{reserveSpace:!0,rowAlign:!0}]]);function s0(i){for(;i;){if(i instanceof bi)return i;i=i.getParent()}throw new N(6,"Parent measure is required but not found!")}var hc=class{constructor(t,e,r){this.groupName=t;this.staffsTabsAndGroups=e;this.verticalPosition=r}},uc=class{constructor(t,e,r,n){this.musicObj=t;this.line=e;this.layoutGroupId=r;this.verticalPos=n;d(this,"anchor");d(this,"measure");d(this,"row");d(this,"layoutGroup");d(this,"positionResolved",!0);this.measure=s0(this.musicObj),this.row=this.measure.row;let o=this.musicObj.getParent();if(!o)throw new N(6,"Parent music object is required as an anchor.");this.anchor=o,this.anchor.addAnchoredLayoutObject(this),this.layoutGroup=this.line.getLayoutGroup(r),this.layoutGroup.add(this)}resetPositionResolved(){this.positionResolved=!1}setPositionResolved(){this.positionResolved=!0}isPositionResolved(){return this.positionResolved}resolveClosestToStaffY(t){let{musicObj:e,measure:r,verticalPos:n,line:o}=this,s=o.getTopLineY(),a=o.getBottomLineY(),c=t.unitSize*2,u=n===1?a+c+e.getRect().toph:s-c-e.getRect().bottomh,h=r.getStaticObjects(o),l=e.getShapeRects();return h.forEach(p=>{let m=p.getShapeRects();l.forEach(f=>{m.forEach(g=>{G.overlapX(f,g)&&(u=n===1?Math.max(u,g.bottom+f.toph+f.anchorY):Math.min(u,g.top-f.bottomh-f.anchorY))})})}),u}layout(t){this.line.addObject(this)}offset(t,e){this.musicObj.offset(t,e)}setAnchorY(t){this.musicObj.setAnchorY(t)}getRect(){return this.musicObj.getRect()}},lc=class{constructor(t){this.layoutGroupId=t;d(this,"layoutObject",Us(new vr));d(this,"rowAlign");d(this,"reserveSpace");d(this,"padding");var e,r,n,o;this.rowAlign=((e=jh.get(t))==null?void 0:e.rowAlign)===!0,this.reserveSpace=((r=jh.get(t))==null?void 0:r.reserveSpace)===!0,this.padding=(o=(n=jh.get(t))==null?void 0:n.padding)!=null?o:0}getLayoutObjects(t){return this.layoutObject.getAll(t)}add(t){this.layoutObject.add(t.verticalPos,t)}remove(t){this.layoutObject.remove(t.verticalPos,t)}layout(t){for(let e of this.layoutObject.values())e.resetPositionResolved(),e.musicObj.layout(t)}getPadding(t){return this.padding*t.unitSize}};var dc=class extends tt{constructor(e){super(e);this.row=e;d(this,"objects",[]);d(this,"layoutGroups",new lt)}getRowGroup(){return this.row.getRowGroupByLineId(this.id)}addObject(e){this.objects.push(e)}removeObjects(){this.objects.length=0}getLayoutGroup(e){return this.layoutGroups.getOrCreate(e,()=>new lc(e))}resetLayoutGroups(e){this.layoutGroups.forEach(r=>r.layout(e))}layoutLayoutGroups(e){for(let r of $.Enum.getEnumValues(cc)){let n=this.getLayoutGroup(r);n&&(this.layoutLayoutGroup(e,n,0),this.layoutLayoutGroup(e,n,1))}}setObjectY(e,r){r!==void 0&&(e.setAnchorY(r-e.getRect().anchorY),e.setPositionResolved())}alignObjectsY(e,r,n){let o=r.filter(u=>!u.isPositionResolved()&&u.verticalPos===n);if(o.length===0)return;let s=n===1?1:-1,a=o.map(u=>u.resolveClosestToStaffY(e)+u.layoutGroup.getPadding(e)*s),c=n===1?Math.max(...a):Math.min(...a);o.forEach(u=>this.setObjectY(u,c))}layoutLayoutGroup(e,r,n){let o=r.getLayoutObjects(n).filter(s=>!s.isPositionResolved());o.forEach(s=>{let{musicObj:a,anchor:c}=s;a instanceof Zi||a instanceof Xn||a instanceof Kn?a.layoutFitToMeasure(e):a.setAnchorX(c.getRect().anchorX)}),r.rowAlign?this.alignObjectsY(e,o,n):o.forEach(s=>{let a=s.musicObj.getLink();if(a&&a.getHead()===s.musicObj){let c=[a.getHead(),...a.getTails()],u=o.filter(h=>c.some(l=>l===h.musicObj));this.alignObjectsY(e,u,n)}else this.alignObjectsY(e,[s],n)})}drawVerticalLine(e,r,n,o=!1){e.color(this.getConfig().type==="tab"?X.Tab_Frame:X.Staff_Frame);let s=this.row.getNotationLines().indexOf(this),a=s>=0?this.row.getNotationLines()[s+1]:void 0,c=this.getRowGroup().lines.length>1,u=this instanceof Et&&this.isGrandTreble(),h=this.getTopLineY(),l=a&&(o||c||u)?a.getTopLineY():this.getBottomLineY();e.fillRect(r,h,n,l-h)}},Et=class extends dc{constructor(e,r,n){super(e);this.staffConfig=r;this.id=n;d(this,"clefImageAsset");d(this,"clefLineDiatonicId");d(this,"topLineDiatonicId");d(this,"middleLineDiatonicId");d(this,"bottomLineDiatonicId");d(this,"minDiatonicId");d(this,"maxDiatonicId");d(this,"joinedGrandStaff");d(this,"topLineY",0);d(this,"bottomLineY",0);d(this,"mi");let o=(s,a)=>U.getNote(s).diatonicId-(a?7:0);if(r.clef==="G")this.clefImageAsset=0,this.clefLineDiatonicId=o("G4",r.isOctaveDown===!0),this.middleLineDiatonicId=this.clefLineDiatonicId+2;else if(r.clef==="F")this.clefImageAsset=1,this.clefLineDiatonicId=o("F3",r.isOctaveDown===!0),this.middleLineDiatonicId=this.clefLineDiatonicId-2;else throw new N(6,`Invalid staffConfig.clef ${r.clef}.`);this.topLineDiatonicId=this.middleLineDiatonicId+4,this.bottomLineDiatonicId=this.middleLineDiatonicId-4,this.minDiatonicId=r.minNote!==void 0?Math.min(o(r.minNote,!1),this.bottomLineDiatonicId):void 0,this.maxDiatonicId=r.maxNote!==void 0?Math.max(o(r.maxNote,!1),this.topLineDiatonicId):void 0,this.mi=new vs(this)}getMusicInterface(){return this.mi}get isOctaveDown(){return this.staffConfig.isOctaveDown===!0}get name(){var e;return(e=this.staffConfig.name)!=null?e:""}getConfig(){return this.staffConfig}getTopLineY(){return this.topLineY}getMiddleLineY(){return(this.topLineY+this.bottomLineY)/2}getBottomLineY(){return this.bottomLineY}joinGrandStaff(e){e!==this&&(this.joinedGrandStaff=e)}isGrandTreble(){return this.joinedGrandStaff!==void 0&&this.staffConfig.clef==="G"}isGrandBass(){return this.joinedGrandStaff!==void 0&&this.staffConfig.clef==="F"}getLineSpacing(){return(this.bottomLineY-this.topLineY)/4}getDiatonicSpacing(){return this.getLineSpacing()/2}containsDiatonicId(e){return U.validateDiatonicId(e),(this.minDiatonicId===void 0||e>=this.minDiatonicId)&&(this.maxDiatonicId===void 0||e<=this.maxDiatonicId)}getDiatonicIdY(e){if(this.containsDiatonicId(e))return this.bottomLineY+(this.bottomLineDiatonicId-e)*this.getDiatonicSpacing();if(this.joinedGrandStaff&&this.joinedGrandStaff.containsDiatonicId(e))return this.joinedGrandStaff.getDiatonicIdY(e);throw new N(6,"Staff does not contain diatonicId "+e)}getActualStaff(e){if(this.containsDiatonicId(e))return this;if(this.joinedGrandStaff&&this.joinedGrandStaff.containsDiatonicId(e))return this.joinedGrandStaff;throw new N(6,"Staff does not contain diatonicId "+e)}getDiatonicIdAt(e){let r=Math.round(this.bottomLineDiatonicId-(e-this.bottomLineY)/this.getDiatonicSpacing());return this.containsDiatonicId(r)?r:void 0}isLine(e){return e%2===this.middleLineDiatonicId%2}isSpace(e){return e%2!==this.middleLineDiatonicId%2}containsVoiceId(e){return y.isUndefined(this.staffConfig.voiceId)||$.Arr.toArray(this.staffConfig.voiceId).includes(e)}calcTop(){let e=this.topLineY;if(this.objects.forEach(r=>e=Math.min(e,r.getRect().top)),this.maxDiatonicId!==void 0){let r=this.getDiatonicIdY(this.maxDiatonicId),n=this.getDiatonicIdY(this.maxDiatonicId-1);e=Math.min(e,r-Math.abs(n-r)+1)}return e}calcBottom(){let e=this.bottomLineY;if(this.objects.forEach(r=>e=Math.max(e,r.getRect().bottom)),this.minDiatonicId!==void 0){let r=this.getDiatonicIdY(this.minDiatonicId),n=this.getDiatonicIdY(this.minDiatonicId+1);e=Math.max(e,r+Math.abs(n-r)-1)}return e}pick(e,r){return this.getRect().contains(e,r)?[this]:[]}layoutHeight(e){let{unitSize:r}=e,n=r*ct.StaffHeight;this.topLineY=-n/2,this.bottomLineY=n/2,this.rect=new G(0,0,this.topLineY,this.bottomLineY)}layoutWidth(e){this.rect.left=this.row.getRect().left,this.rect.right=this.row.getRect().right}offset(e,r){this.topLineY+=r,this.bottomLineY+=r,this.objects.forEach(n=>{n.offsetInPlace?n.offsetInPlace(0,r):n.offset&&n.offset(0,r)}),this.rect.offsetInPlace(e,r)}draw(e){}},Pt=class extends dc{constructor(e,r,n){super(e);this.tabConfig=r;this.id=n;d(this,"top",0);d(this,"bottom",0);d(this,"tuningName");d(this,"tuningStrings");d(this,"mi");y.isArray(r.tuning)?(this.tuningName=void 0,this.tuningStrings=r.tuning.map(o=>U.getNote(o)).reverse()):typeof r.tuning=="string"?(this.tuningName=fu(r.tuning),this.tuningStrings=$s(this.tuningName)):(this.tuningName="Standard",this.tuningStrings=$s(this.tuningName)),this.mi=new Ss(this)}getMusicInterface(){return this.mi}get name(){var e;return(e=this.tabConfig.name)!=null?e:""}getConfig(){return this.tabConfig}getTuningName(){return this.tuningName}getTuningStrings(){return this.tuningStrings}getStringY(e){return this.top+(this.bottom-this.top)/6*(e+.5)}getTopStringY(){return this.getStringY(0)}getBottomStringY(){return this.getStringY(5)}getTopLineY(){return this.getTopStringY()}getBottomLineY(){return this.getBottomStringY()}getTop(){return this.top}getBottom(){return this.bottom}containsVoiceId(e){return y.isUndefined(this.tabConfig.voiceId)||$.Arr.toArray(this.tabConfig.voiceId).includes(e)}containsDiatonicId(e){return!0}calcTop(){let{top:e}=this;return this.objects.forEach(r=>e=Math.min(e,r.getRect().top)),e}calcBottom(){let{bottom:e}=this;return this.objects.forEach(r=>e=Math.max(e,r.getRect().bottom)),e}pick(e,r){return this.getRect().contains(e,r)?[this]:[]}layoutHeight(e){let{unitSize:r}=e,n=r*ct.TabHeight;this.top=-n/2,this.bottom=n/2,this.rect=new G(0,0,this.top,this.bottom)}layoutWidth(e){this.rect.left=this.row.getRect().left,this.rect.right=this.row.getRect().right}offset(e,r){this.top+=r,this.bottom+=r,this.objects.forEach(n=>{n.offsetInPlace?n.offsetInPlace(0,r):n.offset&&n.offset(0,r)}),this.rect.offsetInPlace(e,r)}draw(e){}};function a0(i){let t=(i.startsWith("!{")?i.substring(2):i.startsWith("!")?i.substring(1):i).trim(),e=i.startsWith("!"),r=i.startsWith("!{");return{instrName:t,hideInstr:e,hideBrace:r}}var pc=class extends tt{constructor(e){var s;super(e[0].row);this.lines=e;d(this,"space",0);d(this,"instrument");d(this,"hasBrace");d(this,"instrText");d(this,"braceRect",new G);d(this,"mi");let r=X.RowGroup_Instrument,n=a0((s=e[0].getConfig().instrument)!=null?s:"");this.instrument=n.instrName,this.hasBrace=n.hideBrace?!1:this.hasInstrument&&e.length>=2;let o=n.hideInstr?"":this.instrument;this.instrText=new st(this,{text:o,color:r,scale:1},1,.5),this.mi=new ws(this)}getMusicInterface(){return this.mi}get row(){return this.lines[0].row}get hasInstrument(){return this.instrument.length>0}hasNotationLine(e){return this.lines.includes(e)}pick(e,r){if(!this.getRect().contains(e,r))return[];let n=this.instrText.pick(e,r);return n.length>0?[this,...n]:[this]}updateRect(){this.instrText.setRight(this.braceRect.left-this.space),this.instrText.setCenterY(this.braceRect.anchorY),this.rect=this.instrText.getRect().clone().expandInPlace(this.braceRect)}layout(e){this.space=e.unitSize,this.instrText.layout(e),this.braceRect=new G(-(this.hasBrace?e.unitSize*5:0),0,0,0),this.forceRectUpdate()}layoutToNotationLines(){this.braceRect.top=this.lines[0].getTopLineY(),this.braceRect.bottom=this.lines[this.lines.length-1].getBottomLineY(),this.braceRect.anchorY=this.braceRect.centerY,this.forceRectUpdate()}offset(e,r){this.instrText.offset(e,r),this.braceRect.offsetInPlace(e,r),this.rect.offsetInPlace(e,r)}draw(e){if(this.instrText.draw(e),this.hasBrace){let r=this.braceRect;e.color(X.RowGroup_Frame).lineWidth(1).drawBracket(r,"{")}}};var mc=class{constructor(){d(this,"instrWidth",0);d(this,"staffWidth",0)}resetWidths(){this.instrWidth=this.staffWidth=0}addRowInstrWidth(t){this.instrWidth=Math.max(this.instrWidth,t)}addRowstaffWidth(t){this.staffWidth=Math.max(this.staffWidth,t)}get instrLeft(){return 0}get instrRight(){return this.instrWidth}get staffLeft(){return this.instrRight}get staffRight(){return this.staffLeft+this.staffWidth}get left(){return this.instrLeft}get right(){return this.staffRight}get width(){return this.instrWidth+this.staffWidth}},fc=class extends tt{constructor(e,r,n){super(e);this.doc=e;this.prevRow=r;this.scoreConfig=n;d(this,"nextRow");d(this,"notationLines");d(this,"rowGroups");d(this,"staves");d(this,"tabs");d(this,"measures",[]);d(this,"rowGroupByLine");d(this,"needLayout",!0);d(this,"mi");this.notationLines=this.createNotationLines(),this.staves=this.notationLines.filter(s=>s instanceof Et),this.tabs=this.notationLines.filter(s=>s instanceof Pt);let o=[];for(let s=0;s<this.notationLines.length;s++){let a=this.notationLines[s],c=o[o.length-1];c===void 0||c[0].getConfig().instrument===void 0||c[0].getConfig().instrument!==a.getConfig().instrument?o.push([a]):c.push(a)}this.rowGroups=o.filter(s=>s.length>0).map(s=>new pc(s)),this.rowGroupByLine=this.notationLines.map(s=>this.rowGroups.find(a=>a.lines.includes(s))),this.prevRow&&(this.prevRow.nextRow=this),this.mi=new Is(this)}getMusicInterface(){return this.mi}createNotationLines(){let e=this.scoreConfig.map((r,n)=>r.type==="staff"?new Et(this,r,n):new Pt(this,r,n));for(let r=0;r<e.length-1;r++){let n=e[r],o=e[r+1];n instanceof Et&&o instanceof Et&&n.staffConfig.grandId!==void 0&&n.staffConfig.grandId===o.staffConfig.grandId&&(n.joinGrandStaff(o),o.joinGrandStaff(n))}return e}getNotationLines(){return this.notationLines}getRowGroups(){return this.rowGroups}getRowGroupByLineId(e){return this.rowGroupByLine[e]}findMatchingLine(e){return e.row===this?e:this.notationLines.find(r=>$.Obj.deepEqual(e.row.scoreConfig,r.row.scoreConfig)&&e.id===r.id||y.isNonEmptyString(e.getConfig().name)&&e.getConfig().name===r.getConfig().name&&e.getConfig().type===r.getConfig().type)}get regions(){return this.doc.regions}getStaves(){return this.staves}getTabs(){return this.tabs}get hasStaff(){return this.staves.length>0}get hasTab(){return this.tabs.length>0}getTopStaff(){let e=this.staves[0];if(e)return e;throw new N(6,"Top staff is required!")}getBottomStaff(){let e=this.staves[this.staves.length-1];if(e)return e;throw new N(6,"Bottom staff is required!")}getStaff(e){U.validateDiatonicId(e);for(let r=0;r<this.notationLines.length;r++){let n=this.notationLines[r];if(n instanceof Et&&n.containsDiatonicId(e))return n}}resetLayoutGroups(e){this.notationLines.forEach(r=>r.resetLayoutGroups(e))}layoutLayoutGroups(e){this.notationLines.forEach(r=>r.layoutLayoutGroups(e))}pick(e,r){if(!this.getRect().contains(e,r))return[];for(let n=0;n<this.measures.length;n++){let o=this.measures[n].pick(e,r);if(o.length>0)return[this,...o]}for(let n=0;n<this.rowGroups.length;n++){let o=this.rowGroups[n].pick(e,r);if(o.length>0)return[this,...o]}for(let n=0;n<this.notationLines.length;n++){let o=this.notationLines[n].pick(e,r);if(o.length>0)return[this,...o]}return[this]}getConnectivesContentRect(){let e=this.getRect(),r=this.getFirstMeasure(),n=r?r.getColumnsContentRect().left:e.left;return new G(n,(n+e.right)/2,e.right,e.top,e.anchorY,e.bottom)}getDiatonicIdAt(e){for(let r=0;r<this.notationLines.length;r++){let n=this.notationLines[r],o=n instanceof Et?n.getDiatonicIdAt(e):void 0;if(o!==void 0)return o}}addMeasure(e){this.measures.push(e)}getMeasures(){return this.measures}isFirstRow(){return this===this.doc.getFirstRow()}isLastRow(){return this===this.doc.getLastRow()}getPrevRow(){return this.prevRow}getNextRow(){return this.nextRow}getFirstMeasure(){return this.measures.length>0?this.measures[0]:void 0}getLastMeasure(){return this.measures.length>0?this.measures[this.measures.length-1]:void 0}solveAutoStemDir(e){if(e.length===0)return"up";{let r=e[0].voiceId,n=e.filter(u=>u instanceof At).map(u=>u.setDiatonicId),o=e.filter(u=>u instanceof ce&&u.setDiatonicId!==ce.UndefinedDiatonicId).map(u=>u.setDiatonicId);if(n.length===0&&o.length===0)return"up";let s=n.length>0?n:o,a=Math.floor($.Math.avg(...s)),c=this.getStaves().filter(u=>u.containsVoiceId(r)&&u.containsDiatonicId(a));return c.length>0?a>=c[0].middleLineDiatonicId?"down":"up":"up"}}requestLayout(){this.needLayout||(this.needLayout=!0,this.doc.requestLayout())}layout(e){if(!this.needLayout)return;this.requestRectUpdate(),this.notationLines.forEach(n=>{n.removeObjects(),n.layoutHeight(e)}),this.rowGroups.forEach(n=>{n.layout(e),this.regions.addRowInstrWidth(n.getRect().width)}),this.measures.forEach(n=>n.layout(e));let r=this.measures.map(n=>n.getMinWidth()+n.getPostMeasureBreakWidth()).reduce((n,o)=>n+o);this.regions.addRowstaffWidth(r)}layoutStretch(e){if(!this.needLayout)return;this.rect=new G(this.regions.left,this.regions.right,0,0),this.notationLines.forEach(a=>a.layoutWidth(e)),this.rowGroups.forEach(a=>a.setRight(this.regions.instrRight));let r=this.regions.staffWidth,n=0;this.measures.forEach(a=>{r-=a.getTotalSolidWidth()+a.getPostMeasureBreakWidth(),n+=a.getMinColumnsWidth()});let o=r/n,s=this.regions.staffLeft;this.measures.forEach(a=>{let c=a.getTotalSolidWidth()+a.getMinColumnsWidth()*o;a.layoutWidth(e,c);let u=a.getRect();a.setLeft(s),a.setAnchorY(0),s+=u.width,s+=a.getPostMeasureBreakWidth()}),this.measures.forEach(a=>{a.layoutConnectives(e),a.layoutBeams(e)})}updateRect(){var a;let e=this.regions.left,r=this.regions.right,n=0,o=0,s=(a=this.getLastMeasure())==null?void 0:a.getBarLineRight().getAnchoredLayoutObjects().map(c=>c.musicObj).find(c=>c instanceof Ci);s&&(r=Math.max(r,s.getRect().right)),this.measures.length>0&&(n=Math.min(...this.measures.map(c=>c.getRect().top)),o=Math.max(...this.measures.map(c=>c.getRect().bottom))),this.rect=new G(e,r,n,o)}alignStemsToBeams(){this.measures.forEach(e=>e.alignStemsToBeams())}layoutSetNotationLines(e){let{unitSize:r}=e;for(let n=1;n<this.notationLines.length;n++){let o=this.notationLines[n-1],s=this.notationLines[n];if(o instanceof Et&&s instanceof Et&&o.staffConfig.grandId!==void 0&&o.staffConfig.grandId===s.staffConfig.grandId){let a=o.getBottomLineY()-s.getTopLineY()+r*6;s.offsetY(a)}else{let a=o.calcBottom()-s.calcTop()+r*3;s.offsetY(a)}}this.measures.forEach(n=>{n.requestRectUpdate(),n.getBarLineLeft().requestRectUpdate(),n.getBarLineRight().requestRectUpdate(),n.getColumns().forEach(o=>{o.requestRectUpdate(),ae().forEach(s=>{var a;return(a=o.getVoiceSymbol(s))==null?void 0:a.requestRectUpdate()})})}),this.rowGroups.forEach(n=>n.layoutToNotationLines()),this.alignStemsToBeams(),this.requestRectUpdate()}layoutDone(){this.measures.forEach(e=>e.layoutDone()),this.needLayout=!1}offset(e,r){this.measures.forEach(n=>n.offset(e,r)),this.rect.offsetInPlace(e,r),this.notationLines.forEach(n=>n.offset(e,r)),this.rowGroups.forEach(n=>n.offset(e,r))}getStaffLineLeft(){var e;return(e=this.getFirstMeasure())==null?void 0:e.getStaffLineLeft()}draw(e){e.drawDebugRect(this.getRect());let{left:r,top:n,width:o,height:s}=this.getRect(),a=e._lineWidth;e.save(),e.rect(r-a,n,o+2*a,s),e.clip(),this.measures.forEach(u=>u.draw(e)),this.notationLines.forEach(u=>u.draw(e));let c=this.getStaffLineLeft();c!==void 0&&this.notationLines.length>1&&this.notationLines.forEach(u=>u.drawVerticalLine(e,c,e._lineWidth,!0)),this.rowGroups.forEach(u=>u.draw(e)),e.restore()}};var gc=class extends tt{constructor(e,r,n,o){super(e);this.doc=e;this.title=r;this.composer=n;this.arranger=o;d(this,"titleText");d(this,"composerText");d(this,"arrangerText");d(this,"mi");this.mi=new Ts(this);let s=X.Header_Title,a=X.Header_Composer,c=X.Header_Arranger;this.titleText=this.title?new st(this,{text:this.title,color:s,scale:2},.5,0):void 0,this.composerText=this.composer?new st(this,{text:this.composer,color:a},1,0):void 0,this.arrangerText=this.arranger?new st(this,{text:"Arr.: "+this.arranger,color:c},1,0):void 0}getMusicInterface(){return this.mi}pick(e,r){if(!this.rect.contains(e,r))return[];if(this.titleText){let n=this.titleText.pick(e,r);if(n)return[this,...n]}if(this.composerText){let n=this.composerText.pick(e,r);if(n)return[this,...n]}if(this.arrangerText){let n=this.arrangerText.pick(e,r);if(n)return[this,...n]}return[this]}layout(e){let r=0,n=this.doc.regions.staffLeft,o=this.doc.regions.staffRight;this.rect=new G(n,o,0,0),this.titleText&&(this.titleText.layout(e),this.titleText.setCenterX((n+o)/2),this.titleText.setTop(r),r+=this.titleText.getRect().height,this.rect.expandInPlace(this.titleText.getRect())),this.composerText&&(this.composerText.layout(e),this.composerText.setRight(o),this.composerText.setTop(r),r+=this.composerText.getRect().height,this.rect.expandInPlace(this.composerText.getRect())),this.arrangerText&&(this.arrangerText.layout(e),this.arrangerText.setRight(o),this.arrangerText.setTop(r),r+=this.arrangerText.getRect().height,this.rect.expandInPlace(this.arrangerText.getRect()))}offset(e,r){this.titleText&&this.titleText.offset(e,r),this.composerText&&this.composerText.offset(e,r),this.arrangerText&&this.arrangerText.offset(e,r),this.rect.offsetInPlace(e,r)}draw(e){this.titleText&&this.titleText.draw(e),this.composerText&&this.composerText.draw(e),this.arrangerText&&this.arrangerText.draw(e)}};var yc=class extends tt{constructor(){super(void 0);d(this,"needLayout",!0);d(this,"ctx");d(this,"regions",new mc);d(this,"rows",[]);d(this,"measures",[]);d(this,"measuresPerRow",1/0);d(this,"curScoreConfig",[{type:"staff",clef:"G"}]);d(this,"header");d(this,"newRowRequested",!1);d(this,"allConnectiveProps",[]);d(this,"staffGroups",new lt);d(this,"mi");this.mi=new Zr(this)}getMusicInterface(){return this.mi}setScoreConfiguration(e){if(y.isEnumValue(e,zn))switch(e){default:case"treble":this.curScoreConfig=[{type:"staff",clef:"G"}];break;case"bass":this.curScoreConfig=[{type:"staff",clef:"F"}];break;case"grand":this.curScoreConfig=[{type:"staff",clef:"G",grandId:"grand1"},{type:"staff",clef:"F",grandId:"grand1"}];break;case"guitarTreble":this.curScoreConfig=[{type:"staff",clef:"G",isOctaveDown:!0}];break;case"guitarTab":this.curScoreConfig=[{type:"tab",tuning:"Standard"}];break;case"guitarCombined":this.curScoreConfig=[{type:"staff",clef:"G",isOctaveDown:!0},{type:"tab",tuning:"Standard"}];break}else y.isArray(e)?this.curScoreConfig=e:this.curScoreConfig=[e];for(let r=0,n=[];r<this.curScoreConfig.length;){let o=this.curScoreConfig[r],s=this.curScoreConfig[r+1];if(o&&s&&o.type==="staff"&&s.type==="staff"&&o.grandId!==void 0&&o.grandId===s.grandId){if(n.includes(o.grandId))throw new N(6,`Grand staff error: grandId "${o.grandId}" already used!`);if(o.clef!=="G")throw new N(6,`Grand staff error: Invalid treble clef "${o.clef}"!`);if(s.clef!=="F")throw new N(6,`Grand staff error: Invalid treble clef "${o.clef}"!`);if(o.isOctaveDown||s.isOctaveDown)throw new N(6,"Grand staff error: cannot use isOctaveDown option!");n.push(o.grandId),o.minNote="C4",s.maxNote="B3",r+=2}else{if(o&&o.type==="staff"&&o.grandId!==void 0)throw new N(6,`Grand staff error: invalid use of grandId "${o.grandId}"!`);r++}}this.requestNewRow()}setMeasuresPerRow(e){this.measuresPerRow=e}addConnectiveProps(e){this.allConnectiveProps.push(e)}setRenderContext(e){if(this.ctx===e)return;let r=this.ctx;this.ctx=e,r&&r.setDocument(void 0),e&&e.setDocument(this.mi),this.requestFullLayout()}setHeader(e,r,n){this.header=new gc(this,e,r,n),this.requestLayout()}getTitle(){var e;return(e=this.header)==null?void 0:e.title}getComposer(){var e;return(e=this.header)==null?void 0:e.composer}getArranger(){var e;return(e=this.header)==null?void 0:e.arranger}hasSingleMeasure(){return this.measures.length===1}getFirstMeasure(){return this.measures.length>0?this.measures[0]:void 0}getLastMeasure(){return this.measures.length>0?this.measures[this.measures.length-1]:void 0}addNewRow(e){let r=new fc(this,e,this.curScoreConfig);return this.rows.push(r),r}getFirstRow(){return this.rows.length===0?this.addNewRow(void 0):this.rows[0]}getLastRow(){return this.rows.length===0?this.addNewRow(void 0):this.rows[this.rows.length-1]}getRows(){return this.rows}getMeasures(){return this.measures}requestNewRow(){this.newRowRequested=!0}addMeasure(e){let r=this.rows[this.rows.length-1];(!r||this.newRowRequested&&r.getMeasures().length>0||r.getMeasures().length>=this.measuresPerRow)&&(r=this.addNewRow(r),this.newRowRequested=!1);let n=new bi(r,e);return this.measures.push(n),r.addMeasure(n),this.requestLayout(),n}addStaffGroup(e,r,n){this.staffGroups.set(e,new hc(e,r,n))}getStaffGroup(e){return this.staffGroups.get(e)}getVoiceSymbols(e){let r=[];return this.forEachMeasure(n=>r=r.concat(n.getVoiceSymbols(e))),r}removeLayoutObjects(e){this.forEachMeasure(r=>r.removeLayoutObjects(e))}forEachMeasure(e){let r=this.getFirstMeasure();for(;r;)e(r),r=r.getNextMeasure()}resetMeasures(){this.measures.forEach(e=>e.resetPassCount())}updateCursorRect(e){this.ctx&&this.ctx.updateCursorRect(e)}requestLayout(){this.needLayout=!0}requestFullLayout(){this.rows.forEach(e=>e.requestLayout()),this.forEachMeasure(e=>{e.getColumns().forEach(r=>r.requestLayout()),e.requestLayout()}),this.requestLayout()}layout(){var n;if(!this.needLayout)return;let{ctx:e}=this;if(!e)return;let{unitSize:r}=e;this.forEachMeasure(o=>o.createBeams()),(n=this.getFirstMeasure())==null||n.updateRunningArguments(),this.forEachMeasure(o=>o.createExtensions()),this.allConnectiveProps.forEach(o=>o.removeConnectives()),this.allConnectiveProps.forEach(o=>o.createConnectives()),this.rows.forEach(o=>o.resetLayoutGroups(e)),this.regions.resetWidths(),this.regions.addRowstaffWidth(ct.MinStaffWidth*r),this.rows.forEach(o=>o.layout(e)),this.rows.forEach(o=>o.layoutStretch(e)),this.rows.forEach(o=>o.layoutLayoutGroups(e)),this.rows.forEach(o=>o.layoutSetNotationLines(e)),this.rect=new G,this.header&&(this.header.layout(e),this.rect.expandInPlace(this.header.getRect())),this.rows.forEach(o=>{o.setLeft(0),o.setTop(this.rect.bottom+r*2),this.rect.expandInPlace(o.getRect())}),this.rows.forEach(o=>o.layoutDone()),this.needLayout=!1}offset(e,r){}drawContent(){let{ctx:e}=this;e&&(this.rows.forEach(r=>r.draw(e)),this.header&&this.header.draw(e))}pickStaffPosAt(e,r){if(this.rect.contains(e,r))for(let n=0;n<this.rows.length;n++){let o=this.rows[n];if(!o.hasStaff||!o.getRect().contains(e,r))continue;let s=o.getDiatonicIdAt(r);if(s!==void 0)return{scoreRow:o,diatonicId:s}}}pick(e,r){if(!this.rect.contains(e,r))return[];if(this.header){let n=this.header.pick(e,r);if(n.length>0)return[this,...n]}for(let n=0;n<this.rows.length;n++){let o=this.rows[n].pick(e,r);if(o.length>0)return[this,...o]}return[this]}};var pg="";function bt(i,...t){let e=t.map(r=>JSON.stringify(r)).join(", ");pg=`DocumentBuilder.${i}(${e})`}function pt(...i){i.forEach(t=>{if(!t)throw new N(6,pg)})}function mg(i,t){if(!i)throw new N(6,t)}function _i(i,t,e){mg(!y.isTypedObject(i,[t]),e)}function fg(i){pt(y.isObject(i),y.isStringOrUndefined(i.name),y.isUndefined(i.voiceId)||Ve(i.voiceId)||y.isArray(i.voiceId)&&i.voiceId.every(t=>Ve(t))),_i(i,"voiceIds","Baseconfig.voiceIds was removed. Use BaseConfig.voiceId instead."),y.isArray(i.voiceId)&&(i.voiceId=$.Arr.removeDuplicates(i.voiceId)),pt(y.isStringOrUndefined(i.instrument))}function hg(i){fg(i),pt(y.isObject(i),y.isStrictEqual(i.type,"staff"),y.isEnumValue(i.clef,Ui),y.isBooleanOrUndefined(i.isOctaveDown),y.isUndefined(i.minNote)||U.isNote(i.minNote),y.isUndefined(i.maxNote)||U.isNote(i.maxNote),y.isStringOrUndefined(i.grandId)),_i(i,"isGrand","StaffConfig.isGrand was removed. Use StaffConfig.grandId instead.")}function lg(i){fg(i),pt(y.isObject(i),y.isStrictEqual(i.type,"tab"),y.isUndefined(i.tuning)||y.isString(i.tuning)&&y.isIncluded(i.tuning,lo)||y.isArray(i.tuning)&&y.isStrictEqual(i.tuning.length,Ha().length&&i.tuning.every(t=>U.isNote(t))))}function bc(i){pt(y.isObject(i),y.isEnumValueOrUndefined(i.stem,gr),y.isStringOrUndefined(i.color),y.isBooleanOrUndefined(i.arpeggio)||y.isEnumValue(i.arpeggio,fi),y.isBooleanOrUndefined(i.staccato),y.isBooleanOrUndefined(i.diamond),y.isUndefined(i.string)||Go(i.string)||y.isEmptyArray(i.string)||y.isNonEmptyArray(i.string)&&i.string.every(t=>Go(t))),_i(i,"dotted","NoteOptions.dotted was removed."),_i(i,"triplet","NoteOptions.triplet was removed."),_i(i,"tieSpan",'NoteOptions.tieSpan was removed. Use addConnective("tie", tieSpan)'),_i(i,"slurSpan",'NoteOptions.slurSpan was removed. Use addConnective("slur", slurSpan)')}function dg(i){pt(y.isObject(i),y.isStringOrUndefined(i.staffPos)||y.isInteger(i.staffPos)||i.staffPos instanceof U,y.isStringOrUndefined(i.color),y.isBooleanOrUndefined(i.hide)),_i(i,"dotted","RestOptions.dotted was removed."),_i(i,"triplet","RestOptions.triplet was removed.")}function c0(i){pt(y.isObject(i),y.isEnumValueOrUndefined(i.align,qo),y.isEnumValueOrUndefined(i.hyphen,Yn))}function u0(i){pt(y.isObject(i),y.isBooleanOrUndefined(i.showNumber))}function Ns(i){pt(y.isStringOrUndefined(i)||y.isIntegerGte(i,0)||y.isNonEmptyArray(i)&&i.every(t=>y.isString(t)||y.isIntegerGte(t,0)))}var xc=class xc{constructor(){d(this,"doc");d(this,"currentLyricsAlign","center");this.doc=new yc}setScoreConfiguration(t){return bt("setScoreConfiguration",t),y.isEnumValue(t,zn)?this.doc.setScoreConfiguration(t):y.isObject(t)&&t.type==="staff"?(hg(t),this.doc.setScoreConfiguration(t)):y.isObject(t)&&t.type==="tab"?(lg(t),this.doc.setScoreConfiguration(t)):y.isNonEmptyArray(t)?(t.forEach(e=>{y.isObject(e)&&e.type==="staff"?hg(e):y.isObject(e)&&e.type==="tab"?lg(e):pt(!1)}),this.doc.setScoreConfiguration(t)):pt(!1),this}getMeasure(){var t;return(t=this.doc.getLastMeasure())!=null?t:this.doc.addMeasure(xc.DefaultMeasureOptions)}getDocument(){return this.doc.getMusicInterface()}setHeader(t,e,r){return bt("setHeader",t,e,r),pt(y.isStringOrUndefined(t),y.isStringOrUndefined(e),y.isStringOrUndefined(r)),this.doc.setHeader(t,e,r),this}setMeasuresPerRow(t){return bt("setMeasuresPerRow",t),pt(y.isIntegerGte(t,1)||y.isPosInfinity(t)),this.doc.setMeasuresPerRow(t),this}addMeasure(t){return bt("addMeasure",t),t!=null||(t={}),u0(t),this.doc.addMeasure(t),this}setKeySignature(...t){return bt("setKeySignature",...t),pt(t[0]instanceof ri||t[0]instanceof rr||y.isNonEmptyString(t[0])&&y.isEnumValueOrUndefined(t[1],Ti)),this.getMeasure().setKeySignature(...t),this}setTimeSignature(...t){return bt("setTimeSignature",...t),t[0]instanceof ii?this.getMeasure().setTimeSignature(t[0]):y.isEnumValue(t[0],po)&&y.isEnumValueOrUndefined(t[1],Oi)?this.getMeasure().setTimeSignature(new ii(t[0],t[1])):y.isIntegerGte(t[0],1)&&y.isIntegerGte(t[1],1)&&y.isEnumValueOrUndefined(t[2],Oi)?this.getMeasure().setTimeSignature(new ii(t[0],t[1],t[2])):pt(!1),this}setTempo(t,e){return bt("setTempo",t,e),pt(y.isIntegerGte(t,1),y.isUndefined(e)||nr(e)),this.getMeasure().setTempo(t,e),this}addNote(t,e,r,n){if(bt("addNote",t,e,r,n),pt(Ve(t),e instanceof U||y.isNonEmptyString(e)||y.isArray(e)&&e.every(o=>o instanceof U||y.isNonEmptyString(o)),nr(r)),n!=null||(n={}),bc(n),y.isArray(e)){let o=n.string;e.forEach((s,a)=>{n.string=y.isArray(o)?o[a]:o,this.getMeasure().addNoteGroup(t,[s],r,n)})}else this.getMeasure().addNoteGroup(t,[e],r,n);return this}addChord(t,e,r,n){return bt("addChord",t,e,r,n),pt(Ve(t),y.isNonEmptyArray(e)&&e.every(o=>o instanceof U||y.isNonEmptyString(o)),nr(r)),n!=null||(n={}),bc(n),this.getMeasure().addNoteGroup(t,e,r,n),this}addRest(t,e,r){return bt("addRest",t,e,r),pt(Ve(t),nr(e)),r!=null||(r={}),dg(r),this.getMeasure().addRest(t,e,r),this}addTuplet(t,e,r){bt("addTuplet",t,e),pt(Ve(t),y.isFunction(r),Zs(e)&&y.isBooleanOrUndefined(e.showRatio));let n=[],o={addNote:(s,a,c)=>{if(bt("addTuplet => addNote",s,a,c),pt(s instanceof U||y.isNonEmptyString(s)||y.isArray(s)&&s.every(u=>u instanceof U||y.isNonEmptyString(u)),nr(a)),c!=null||(c={}),bc(c),y.isArray(s)){let u=c.string;s.forEach((h,l)=>{c.string=y.isArray(u)?u[l]:u;let p=this.getMeasure().addNoteGroup(t,[h],a,c,e);n.push(p)})}else{let u=this.getMeasure().addNoteGroup(t,[s],a,c,e);n.push(u)}return o},addChord:(s,a,c)=>{bt("addTuplet => addChord",s,a,c),pt(y.isNonEmptyArray(s)&&s.every(h=>h instanceof U||y.isNonEmptyString(h)),nr(a)),c!=null||(c={}),bc(c);let u=this.getMeasure().addNoteGroup(t,s,a,c,e);return n.push(u),o},addRest:(s,a)=>{bt("addTuplet => addRest",s,a),pt(nr(s)),a!=null||(a={}),dg(a);let c=this.getMeasure().addRest(t,s,a,e);return n.push(c),o}};return r(o),Xi.createTuplet(n,e),this}addLyricsInternal(t,e,r,n,o){var s;return Ns(t),pt($a(e),y.isEnumValue(r,ir),y.isString(n)||y.isArray(n)&&n.every(a=>y.isString(a))),o!=null||(o={}),c0(o),o.align!==void 0?this.currentLyricsAlign=o.align:(s=o.align)!=null||(o.align=this.currentLyricsAlign),y.isArray(n)?n.forEach(a=>this.getMeasure().addLyrics(t,e,r,a,o)):this.getMeasure().addLyrics(t,e,r,n,o),this}addLyrics(t,e,r,n){return bt("addLyrics",t,e,r,n),this.addLyricsInternal(void 0,t,e,r!=null?r:"",n)}addLyricsTo(t,e,r,n,o){return bt("addLyricsTo",e,r,n,o),this.addLyricsInternal(t,e,r,n!=null?n:"",o)}addFermataInternal(t,e){return Ns(t),pt(y.isEnumValue(e,Wo)),this.getMeasure().addFermata(t,e),this}addFermata(t="atNote"){return bt("addFermata",t),this.addFermataInternal(void 0,t)}addFermataTo(t,e="atNote"){return bt("addFermataTo",t,e),this.addFermataInternal(t,e)}addNavigationInternal(t,e,...r){return Ns(t),pt(y.isStrictEqual(e,"endRepeat")&&y.isStrictEqual(r.length,1)||y.isStrictEqual(e,"ending")&&y.isIntegerGte(r.length,1)&&r.every(n=>y.isIntegerGte(n,1))||y.isEnumValue(e,br)&&y.isEmptyArray(r)),this.getMeasure().addNavigation(t,e,...r),this}addNavigation(t,...e){return bt("addNavigation",t,...e),this.addNavigationInternal(void 0,t,...e)}addNavigationTo(t,e,...r){return bt("addNavigationTo",t,e,...r),this.addNavigationInternal(t,e,...r)}addAnnotationInternal(t,e,r){if(e!=null||(e=og(r)),e===void 0)throw new N(6,`Annotation text "${r}" is not known annotation.`);return Ns(t),pt(y.isEnumValue(e,Hn),y.isNonEmptyString(r)),this.getMeasure().addAnnotation(t,e,r),this}addAnnotation(...t){return bt("addAnnotation",...t),t.length===1?this.addAnnotationInternal(void 0,void 0,t[0]):this.addAnnotationInternal(void 0,t[0],t[1])}addAnnotationTo(t,...e){return bt("addAnnotationTo",t,...e),e.length===1?this.addAnnotationInternal(t,void 0,e[0]):this.addAnnotationInternal(t,e[0],e[1])}addLabelInternal(t,e,r){return Ns(t),pt(y.isEnumValue(e,Yo),y.isNonEmptyString(r)),this.getMeasure().addLabel(t,e,r),this}addLabel(t,e){return bt("addLabel",t,e),this.addLabelInternal(void 0,t,e)}addLabelTo(t,e,r){return bt("addLabelTo",t,e,r),this.addLabelInternal(t,e,r)}addConnective(t,...e){if(bt("addConnective",t,...e),pt(y.isEnumValue(t,gi)),t==="tie"){pt(y.isIntegerOrUndefined(e[0])||y.isEnumValue(e[0],yr)),pt(y.isEnumValueOrUndefined(e[1],Je));let r=e[0],n=e[1];this.getMeasure().addConnective(t,r,n)}else if(t==="slur"){pt(y.isIntegerOrUndefined(e[0])),pt(y.isEnumValueOrUndefined(e[1],Je));let r=e[0],n=e[1];this.getMeasure().addConnective(t,r,n)}else if(t==="slide"){pt(y.isEnumValueOrUndefined(e[0],Je));let r=e[0];this.getMeasure().addConnective(t,r)}return this}addExtension(t){bt("addExtension"),mg(y.isFunctionOrUndefined(t),"addExtension() has new usage, e.g. addExtension(ext => ext.measures(2)).");let e=0,r=!0,n={notes:(o,s)=>(bt("addExtension.notes",o,s),pt(nr(o)),pt(y.isUndefined(s)||y.isNumber(s)&&s>=0),e+=Kt.get(o).ticks*(s!=null?s:1),n),measures:o=>(bt("addExtension.measures",o),pt(y.isNumber(o)&&o>=1),e+=this.getMeasure().getMeasureTicks()*o,n),infinity:()=>(bt("addExtension.infinity"),e=1/0,n),hide:()=>(bt("addExtension.hide"),r=!1,n)};return t?t(n):e=1/0,this.getMeasure().addExtension(e,r),this}addStaffGroup(t,e,r="auto"){return bt("addStaffGroup",t,e,r),pt(y.isNonEmptyString(t),y.isNonEmptyString(e)||y.isIntegerGte(e,0)||y.isNonEmptyArray(e)&&e.every(n=>y.isNonEmptyString(n)||y.isIntegerGte(n,0)),y.isEnumValue(r,Vo)),this.doc.addStaffGroup(t,e,r),this}endSong(){return bt("endSong"),this.getMeasure().endSong(),this}endSection(){return bt("endSection"),this.getMeasure().endSection(),this}endRow(){var t;return bt("endRow"),(t=this.doc.getLastMeasure())==null||t.endRow(),this}completeRests(t){return bt("completeRests",t),pt(y.isUndefined(t)||Ve(t)||y.isArray(t)&&t.every(e=>Ve(e))),this.getMeasure().completeRests(t),this}addScaleArpeggio(t,e,r){bt("addScaleArpeggio",t,e,r),pt(y.isNonEmptyString(e),y.isIntegerGte(r,1));let n=this.getMeasure().getTimeSignature(),o=t.getScaleNotes(e,r);for(let s=0;s<o.length;s++){s%n.beatCount===0&&s>0&&this.addMeasure();let a=o[s];this.addNote(0,a,n.beatLength),this.addLabel("note",a.formatOmitOctave(1))}return this}};d(xc,"DefaultMeasureOptions",{});var Ar=xc;var Os=class{constructor(t){this.type=t}},zi=class extends Os{constructor(e,r,n,o){super(e);this.renderContext=r;this.scoreRow=n;this.diatonicId=o}},Yi=class extends Os{constructor(e,r,n){super(e);this.renderContext=r;this.objects=n;if(arguments.length===0)throw new N(6,"Empty array in score object event!")}get topObject(){return this.objects[this.objects.length-1]}findObject(e){return this.objects.find(r=>e(r))}};function Ph(i,t,e){if(!i)throw new N(6,`Invalid arg: ${t} = ${e}`)}function Fh(i){if(i instanceof Et||i instanceof Pt)return i.getMusicInterface();throw new N(6,"Notation line not staff nor tab.")}var xt=class{constructor(t){this.name=t}getParent(){var t;return(t=this.getMusicObject().getParent())==null?void 0:t.getMusicInterface()}},Ac=class Ac extends xt{constructor(e){super(Ac.Name);this.obj=e}getMusicObject(){return this.obj}getAccidental(){return this.obj.accidental}};d(Ac,"Name","Accidental");var $o=Ac,Cc=class Cc extends xt{constructor(e){super(Cc.Name);this.obj=e}getMusicObject(){return this.obj}};d(Cc,"Name","Connective");var xs=Cc,_c=class _c extends xt{constructor(e){super(_c.Name);this.obj=e}getMusicObject(){return this.obj}getRhythmColumn(){return this.obj.col.getMusicInterface()}getNotationLine(){return Fh(this.obj.line)}};d(_c,"Name","Arpeggio");var ts=_c,vc=class vc extends xt{constructor(e){super(vc.Name);this.obj=e}getMusicObject(){return this.obj}};d(vc,"Name","BeamGroup");var fs=vc,Sc=class Sc extends xt{constructor(e){super(Sc.Name);this.obj=e}getMusicObject(){return this.obj}getStaff(){return this.obj.staff.getMusicInterface()}};d(Sc,"Name","StaffBeamGroup");var gs=Sc,wc=class wc extends xt{constructor(e){super(wc.Name);this.obj=e}getMusicObject(){return this.obj}getTitle(){return this.obj.getTitle()}getComposer(){return this.obj.getComposer()}getArranger(){return this.obj.getArranger()}getRows(){return this.obj.getRows().map(e=>e.getMusicInterface())}getMeasures(){return this.obj.getMeasures().map(e=>e.getMusicInterface())}play(e){return Ph(y.isFunctionOrUndefined(e),"playStateChangeListener",e),new Jn(this,e).play()}};d(wc,"Name","Document");var Zr=wc,Ic=class Ic extends xt{constructor(e){super(Ic.Name);this.obj=e}getMusicObject(){return this.obj}getPassages(){return this.obj.passages}hasPassage(e){return Ph(y.isIntegerGte(e,1),"passage",e),this.obj.hasPassage(e)}};d(Ic,"Name","Ending");var ps=Ic,Tc=class Tc extends xt{constructor(e){super(Tc.Name);this.obj=e}getMusicObject(){return this.obj}};d(Tc,"Name","Fermata");var ys=Tc,Nc=class Nc extends xt{constructor(e){super(Nc.Name);this.obj=e}getMusicObject(){return this.obj}getTitle(){return this.obj.title}getComposer(){return this.obj.composer}getArranger(){return this.obj.arranger}};d(Nc,"Name","Header");var Ts=Nc,Oc=class Oc extends xt{constructor(e){super(Oc.Name);this.obj=e}getMusicObject(){return this.obj}};d(Oc,"Name","Image");var Ho=Oc,Rc=class Rc extends xt{constructor(e){super(Rc.Name);this.obj=e}getMusicObject(){return this.obj}getMeasureNumber(){return this.obj.getMeasureNumber()}getRhythmColumns(){return this.obj.getColumns().map(e=>e.getMusicInterface())}getRow(){return this.obj.row.getMusicInterface()}};d(Rc,"Name","Measure");var _s=Rc,Mc=class Mc extends xt{constructor(e){super(Mc.Name);this.obj=e}getMusicObject(){return this.obj}};d(Mc,"Name","BarLineRight");var hs=Mc,Ec=class Ec extends xt{constructor(e){super(Ec.Name);this.obj=e}getMusicObject(){return this.obj}};d(Ec,"Name","BarLineLeft");var ls=Ec,Dc=class Dc extends xt{constructor(e){super(Dc.Name);this.obj=e}getMusicObject(){return this.obj}getBarLine(){let e=this.obj.barLine;if(e instanceof xi||e instanceof xr)return e.getMusicInterface();throw new N(6,"Bar line not left nor right.")}getNotationLine(){return Fh(this.obj.line)}};d(Dc,"Name","StaffBarLine");var ds=Dc,kc=class kc extends xt{constructor(e){super(kc.Name);this.obj=e}getMusicObject(){return this.obj}getNotes(){return this.obj.notes}getRhythmProps(){return this.obj.rhythmProps}getRhythmColumn(){return this.obj.col.getMusicInterface()}getMeasure(){return this.obj.measure.getMusicInterface()}};d(kc,"Name","NoteGroup");var is=kc,Lc=class Lc extends xt{constructor(e){super(Lc.Name);this.obj=e}getMusicObject(){return this.obj}getNoteGroup(){return this.obj.noteGroup.getMusicInterface()}getRhythmColumn(){return this.getNoteGroup().getRhythmColumn()}getMeasure(){return this.getNoteGroup().getMeasure()}getStaff(){return this.obj.staff.getMusicInterface()}};d(Lc,"Name","StaffNoteGroup");var ns=Lc,jc=class jc extends xt{constructor(e){super(jc.Name);this.obj=e}getMusicObject(){return this.obj}getNoteGroup(){return this.obj.noteGroup.getMusicInterface()}getRhythmColumn(){return this.getNoteGroup().getRhythmColumn()}getMeasure(){return this.getNoteGroup().getMeasure()}getTab(){return this.obj.tab.getMusicInterface()}};d(jc,"Name","TabNoteGroup");var os=jc,Pc=class Pc extends xt{constructor(e){super(Pc.Name);this.obj=e}getMusicObject(){return this.obj}getRhythmProps(){return this.obj.rhythmProps}getRhythmColumn(){return this.obj.col.getMusicInterface()}getMeasure(){return this.obj.measure.getMusicInterface()}};d(Pc,"Name","Rest");var es=Pc,Fc=class Fc extends xt{constructor(e){super(Fc.Name);this.obj=e}getMusicObject(){return this.obj}getRest(){return this.obj.rest.getMusicInterface()}getRhythmColumn(){return this.getRest().getRhythmColumn()}getMeasure(){return this.getRest().getMeasure()}getStaff(){return this.obj.staff.getMusicInterface()}};d(Fc,"Name","StaffRest");var rs=Fc,Bc=class Bc extends xt{constructor(e){super(Bc.Name);this.obj=e}getMusicObject(){return this.obj}getRhythmSymbol(e){var r;return Ph(Ve(e),"voiceId",e),(r=this.obj.getVoiceSymbol(e))==null?void 0:r.getMusicInterface()}getMeasure(){return this.obj.measure.getMusicInterface()}};d(Bc,"Name","RhythmColumn");var ss=Bc,Gc=class Gc extends xt{constructor(e){super(Gc.Name);this.obj=e}getMusicObject(){return this.obj}getDocument(){return this.obj.doc.getMusicInterface()}getMeasures(){return this.obj.getMeasures().map(e=>e.getMusicInterface())}getNotationLines(){return this.obj.getNotationLines().map(e=>Fh(e))}};d(Gc,"Name","ScoreRow");var Is=Gc,Vc=class Vc extends xt{constructor(e){super(Vc.Name);this.obj=e}getMusicObject(){return this.obj}getInstrument(){return this.obj.instrument}};d(Vc,"Name","ScoreRowGroup");var ws=Vc,qc=class qc extends xt{constructor(e){super(qc.Name);this.obj=e}getMusicObject(){return this.obj}getId(){return this.obj.id}getName(){return this.obj.name.length>0?this.obj.name:void 0}getRow(){return this.obj.row.getMusicInterface()}};d(qc,"Name","Staff");var vs=qc,Wc=class Wc extends xt{constructor(e){super(Wc.Name);this.obj=e}getMusicObject(){return this.obj}getId(){return this.obj.id}getName(){return this.obj.name.length>0?this.obj.name:void 0}getRow(){return this.obj.row.getMusicInterface()}};d(Wc,"Name","Tab");var Ss=Wc,Uc=class Uc extends xt{constructor(e){super(Uc.Name);this.obj=e}getMusicObject(){return this.obj}getStaff(){return this.obj.staff.getMusicInterface()}};d(Uc,"Name","StaffSignature");var Ko=Uc,zc=class zc extends xt{constructor(e){super(zc.Name);this.obj=e}getMusicObject(){return this.obj}getTab(){return this.obj.tab.getMusicInterface()}};d(zc,"Name","TabSignature");var Jo=zc,Yc=class Yc extends xt{constructor(e){super(Yc.Name);this.obj=e}getMusicObject(){return this.obj}getMeasure(){return this.obj.measure.getMusicInterface()}getTab(){return this.obj.tab.getMusicInterface()}};d(Yc,"Name","TabRhythm");var Cs=Yc,Hc=class Hc extends xt{constructor(e){super(Hc.Name);this.obj=e}getMusicObject(){return this.obj}getText(){return this.obj.getText()}};d(Hc,"Name","SpecialText");var as=Hc,$c=class $c extends xt{constructor(e){super($c.Name);this.obj=e}getMusicObject(){return this.obj}getText(){return this.obj.getText()}};d($c,"Name","Text");var Zo=$c,Zc=class Zc extends xt{constructor(e){super(Zc.Name);this.obj=e}getMusicObject(){return this.obj}getText(){return this.obj.getText()}};d(Zc,"Name","Lyrics");var As=Zc,Xc=class Xc extends xt{constructor(e){super(Xc.Name);this.obj=e}getMusicObject(){return this.obj}};d(Xc,"Name","ExtensionLine");var bs=Xc;function Cr(i,t,e){if(!i)throw new N(6,`Invalid arg: ${t} = ${e}`)}function Rs(i,t){if(i==null)throw new TypeError(t);return i}var Ms=class Ms{constructor(t,e){d(this,"player");Cr(t instanceof Zr,"doc",t),Cr(y.isFunctionOrUndefined(e),"playStateChangeListener",e),this.player=new oc,this.player.setDocument(t.getMusicObject()),this.player.setCursorPositionChangeListener(r=>{t.getMusicObject().updateCursorRect(r)}),e&&this.player.setPlayStateChnageListener(e)}static stopAll(){this.currentlyPlaying.forEach(t=>t.stop()),za()}play(){return Ms.currentlyPlaying.add(this),this.player.play(),this}pause(){return this.player.pause(),this}stop(){return this.player.stop(),Ms.currentlyPlaying.delete(this),this}};d(Ms,"currentlyPlaying",new Ws);var Jn=Ms,Bh=class{constructor(){d(this,"ctx");this.ctx=new Ka(this)}setDocument(t){return Cr(y.isUndefined(t)||t instanceof Zr,"doc",t),this.ctx.setDocument(t),this}setCanvas(t){return t=Rs($.Dom.getCanvas(t),typeof t=="string"?"Cannot set render canvas because invalid canvas id: "+t:"Cannot set render canvas because given canvas is undefined."),this.ctx.setCanvas(t),this}setScoreEventListener(t){Cr(y.isFunctionOrUndefined(t),"scoreEventListener",t),this.ctx.setScoreEventListener(t)}hilightObject(t){this.ctx.hilightObject(t==null?void 0:t.getMusicObject())}hilightStaffPos(t){this.ctx.hilightStaffPos(t?{scoreRow:t.scoreRow.getMusicObject(),diatonicId:t.diatonicId}:void 0)}draw(){try{this.ctx.draw()}catch(t){console.log("Draw failed in music render context!",t)}}},we=class we{constructor(){d(this,"playButton");d(this,"stopButton");d(this,"playStopButton");d(this,"pauseButton");d(this,"onPlay");d(this,"onStop");d(this,"onPlayStop");d(this,"onPause");d(this,"playLabel","Play");d(this,"stopLabel","Stop");d(this,"pauseLabel","Pause");d(this,"playState",2);d(this,"player");this.onPlay=()=>{var t;return(t=this.player)==null?void 0:t.play()},this.onStop=()=>{var t;return(t=this.player)==null?void 0:t.stop()},this.onPlayStop=()=>{var t,e;this.playState===0?(t=this.player)==null||t.stop():(e=this.player)==null||e.play()},this.onPause=()=>{var t;return(t=this.player)==null?void 0:t.pause()},this.updateButtons()}setDocument(t){return Cr(y.isUndefined(t)||t instanceof Zr,"doc",t),this.onStop(),t?this.player=new Jn(t,e=>{this.playState=e,this.updateButtons()}):this.player=void 0,this.updateButtons(),this}detachDocument(){this.setDocument(void 0)}updateButtons(){this.playButton&&(this.playButton.disabled=this.player?this.playState===0:!0,this.playButton.innerText=this.playLabel),this.stopButton&&(this.stopButton.disabled=this.player?this.playState===2:!0,this.stopButton.innerText=this.stopLabel),this.playStopButton&&(this.playStopButton.disabled=!this.player,this.playStopButton.innerText=this.playState===0?this.stopLabel:this.playLabel),this.pauseButton&&(this.pauseButton.disabled=this.player?this.playState!==0:!0,this.pauseButton.innerText=this.pauseLabel)}setPlayButton(t,e){return Cr(y.isStringOrUndefined(e),"btnLabel",e),we.removeOnClickListeners(this.playButton,this.onPlay),this.playButton=Rs($.Dom.getButton(t),"Play button required!"),this.playLabel=e!=null?e:"Play",we.removeOnClickListeners(this.playButton,"all"),we.addOnClickListener(this.playButton,this.onPlay),this.updateButtons(),this}setStopButton(t,e){return Cr(y.isStringOrUndefined(e),"btnLabel",e),we.removeOnClickListeners(this.stopButton,this.onStop),this.stopButton=Rs($.Dom.getButton(t),"Stop button required!"),this.stopLabel=e!=null?e:"Stop",we.removeOnClickListeners(this.stopButton,"all"),we.addOnClickListener(this.stopButton,this.onStop),this.updateButtons(),this}setPlayStopButton(t,e,r){return Cr(y.isStringOrUndefined(e),"playLabel",e),Cr(y.isStringOrUndefined(r),"stopLabel",r),we.removeOnClickListeners(this.playStopButton,this.onPlayStop),this.playStopButton=Rs($.Dom.getButton(t),"Play/stop button required!"),this.playLabel=e!=null?e:"Play",this.stopLabel=r!=null?r:"Stop",we.removeOnClickListeners(this.playStopButton,"all"),we.addOnClickListener(this.playStopButton,this.onPlayStop),this.updateButtons(),this}setPauseButton(t,e){return Cr(y.isStringOrUndefined(e),"btnLabel",e),we.removeOnClickListeners(this.pauseButton,this.onPause),this.pauseButton=Rs($.Dom.getButton(t),"Pause button required!"),this.pauseLabel=e!=null?e:"Pause",we.removeOnClickListeners(this.pauseButton,"all"),we.addOnClickListener(this.pauseButton,this.onPause),this.updateButtons(),this}static removeOnClickListeners(t,e){if(!t)return;let r=this.savedOnClickListeners.getOrDefault(t,[]);r=r.filter(n=>e===n||e==="all"?(t.removeEventListener("click",n),!1):!0),this.savedOnClickListeners.set(t,r)}static addOnClickListener(t,e){Cr(y.isFunction(e),"onClick",e),t.addEventListener("click",e),this.savedOnClickListeners.getOrCreate(t,[]).push(e)}};d(we,"savedOnClickListeners",new lt);var Gh=we;Ii();var Yh={};en(Yh,{createAll:()=>h0,createAndanteByDiabelli:()=>qh,createCanonInD:()=>Wh,createFrereJacques:()=>Uh,createGreensleeves:()=>zh});function qh(){return new Ar().setScoreConfiguration("guitarTreble").setHeader("Andante","A. Diabelli").addMeasure().setKeySignature("D","Major").setTimeSignature("3/4").setTempo(80).addRest(0,"8n",{staffPos:"G4"}).addAnnotation("dynamics","p").addNote(0,"F#4","8n",{stem:"up"}).addNote(0,"G4","8n").addConnective("slur",2,"below").addNote(0,"F#4","8n").addNote(0,"E4","8n").addNote(0,"D4","8n").addNote(1,"D3","2.",{stem:"down"}).addMeasure().addNote(0,"C#4","8n").addConnective("slur",2,"below").addNote(0,"D4","8n").addNote(0,"E4","8n").addNote(0,"F#4","8n").addNote(0,"G4","4n").addNote(1,"A2","2.").addMeasure().addRest(0,"8n",{staffPos:"B3"}).addAnnotation("dynamics","f").addNote(0,"A3","8n").addNote(0,"G#3","8n").addConnective("slur",2,"below").addNote(0,"A3","8n").addNote(0,"B3","8n").addNote(0,"C#4","8n").addNote(1,"A2","2.").endRow().addMeasure().addNote(0,"D4","8n",{string:3}).addNote(0,"E4","8n").addNote(0,"F#4","8n").addNote(0,"G4","8n").addNote(0,"A4","4n").addNote(1,"D3","2.").addMeasure().addRest(0,"8n",{staffPos:"G4"}).addAnnotation("dynamics","p").addNote(0,"F#4","8n").addNote(0,"G4","8n").addConnective("slur",2,"below").addNote(0,"F#4","8n").addNote(0,"E4","8n").addNote(0,"D4","8n").addNote(1,"D3","2.").addMeasure().addNote(0,"C#4","8n").addConnective("slur",2,"below").addNote(0,"D4","8n").addNote(0,"E4","8n").addNote(0,"F#4","8n").addNote(0,"G4","4n").addNote(1,"A2","2.").endRow().addMeasure().addRest(0,"8n",{staffPos:"B3"}).addAnnotation("dynamics","f").addNote(0,"A3","8n").addNote(0,"G#3","8n").addConnective("slur",2,"below").addNote(0,"A3","8n").addNote(0,"B3","8n").addNote(0,"C#4","8n").addNote(1,"A2","2.").addMeasure().addNote(0,"D4","4n").addRest(1,"4n",{staffPos:"D3"}).addNote(0,"D3","4n").addNote(1,"D3","4n").addRest(1,"4n",{staffPos:"B3"}).addNavigation("endRepeat").addMeasure().addRest(0,"8n",{staffPos:"D4"}).addAnnotation("dynamics","f").addNote(0,"D4","8n").addNote(0,"E4","8n").addConnective("slur",2,"below").addNote(0,"D4","8n").addNote(0,"C#4","8n").addNote(0,"B3","8n").addNote(1,"E2","2.").endRow().addMeasure().addNote(0,"C#4","8n").addConnective("slur",2,"below").addNote(0,"D4","8n").addNote(0,"E4","8n").addNote(0,"F#4","8n").addNote(0,"E4","4n").addNote(1,"A2","2.").addMeasure().addRest(0,"8n",{staffPos:"B3"}).addAnnotation("dynamics","p").addNote(0,"E3","8n").addNote(0,"D#3","8n").addConnective("slur",2,"below").addNote(0,"E3","8n").addNote(0,"F#3","8n").addNote(0,"G#3","8n").addNote(1,"E2","2.").addMeasure().addNote(0,"A3","8n").addConnective("slur",2,"below").addNote(0,"G#3","8n").addNote(0,"A3","8n").addNote(0,"B3","8n").addNote(0,"C#4","4n").addNote(1,"A2","2.").endRow().addMeasure().addRest(0,"8n",{staffPos:"G4"}).addAnnotation("dynamics","f").addNote(0,"G4","8n").addNote(0,"A4","8n").addConnective("slur",2,"below").addNote(0,"G4","8n").addNote(0,"F#4","8n").addNote(0,"E4","8n").addNote(1,"A2","2.").addMeasure().addNote(0,"D4","8n").addNote(0,"C#4","8n").addNote(0,"D4","8n").addNote(0,"E4","8n").addNote(0,"F#4","4n").addNote(1,"D3","2.").addMeasure().addRest(0,"8n",{staffPos:"B3"}).addAnnotation("dynamics","ff").addNote(0,"A3","8n").addNote(0,"G#3","8n").addConnective("slur",2,"below").addNote(0,"A3","8n").addNote(0,"B3","8n").addNote(0,"C#4","8n").addNote(1,"A2","2.").addMeasure().addNote(0,"D4","4n").addRest(1,"4n",{staffPos:"D3"}).addNote(0,"D3","4n").addNote(1,"D3","4n").addRest(1,"4n",{staffPos:"B3"}).endSong().getDocument()}function Wh(){return new Ar().setHeader("Canon in D","Pachelbel").setScoreConfiguration([{type:"staff",clef:"G",voiceId:0,instrument:"Piano"},{type:"staff",clef:"F",voiceId:1,instrument:"Piano"}]).addMeasure().setKeySignature("D Major").setTimeSignature("4/4").setTempo(50,"2n").completeRests(0).addNote(1,["D3","F#3","A3","D4"],"8n").addNote(1,["A2","C#3","E3","A3"],"8n").addMeasure({showNumber:!0}).completeRests(0).addNote(1,["B2","D3","F#3","B3"],"8n").addNote(1,["F#2","A2","C#3","F#3"],"8n").addMeasure().completeRests(0).addNote(1,["G2","B2","D3","G3"],"8n").addNote(1,["D2","F#2","A2","D3"],"8n").addMeasure({showNumber:!0}).completeRests(0).addNote(1,["G2","B2","D3","G3"],"8n").addNote(1,["A2","C#3","E3","A3"],"8n").addMeasure().addNote(0,["F#5","E5"],"2n").addNote(1,["D3","F#3","A3","D4"],"8n").addNote(1,["A2","C#3","E3","A3"],"8n").endRow().addMeasure({showNumber:!0}).addNote(0,["D5","C#5"],"2n").addNote(1,["B2","D3","F#3","B3"],"8n").addNote(1,["F#2","A2","C#3","F#3"],"8n").addMeasure().addNote(0,["B4","A4"],"2n").addNote(1,["G2","B2","D3","G3"],"8n").addNote(1,["D2","F#2","A2","D3"],"8n").addMeasure({showNumber:!0}).addNote(0,["B4","C#5"],"2n").addNote(1,["G2","B2","D3","G3"],"8n").addNote(1,["A2","C#3","E3","A3"],"8n").addMeasure().addChord(0,["F#5","D5"],"2n").addChord(0,["E5","C#5"],"2n").addNote(1,["D3","F#3","A3","D4"],"8n").addNote(1,["A2","C#3","E3","A3"],"8n").addMeasure({showNumber:!0}).addChord(0,["D5","B4"],"2n").addChord(0,["C#5","A4"],"2n").addNote(1,["B2","D3","F#3","B3"],"8n").addNote(1,["F#2","A2","C#3","F#3"],"8n").endRow().addMeasure({showNumber:!1}).addChord(0,["B4","G4"],"2n").addChord(0,["A4","F#4"],"2n").addNote(1,["G2","B2","D3","G3"],"8n").addNote(1,["D2","F#2","A2","D3"],"8n").addMeasure({showNumber:!0}).addChord(0,["B4","G4"],"2n").addChord(0,["C#5","A4"],"2n").addNote(1,["G2","B2","D3","G3"],"8n").addNote(1,["A2","C#3","E3","A3"],"8n").addMeasure().addNote(0,["D4","F#4","A4","G4"],"4n").addNote(1,["D3","A2"],"2n").addMeasure({showNumber:!0}).addNote(0,["F#4","D4","F#4","E4"],"4n").addNote(1,["B2","F#2"],"2n").addMeasure().addNote(0,["D4","B3","D4","A4"],"4n").addNote(1,["G2","D2"],"2n").addMeasure({showNumber:!0}).addNote(0,["G4","B4","A4","G4"],"4n").addNote(1,["G2","A2"],"2n").addMeasure().addNote(0,["F#4","D4","E4","C#5"],"4n").addNote(1,["D3","A2"],"2n").endRow().addMeasure({showNumber:!0}).addNote(0,["D5","F#5","A5","A4"],"4n").addNote(1,["B2","F#2"],"2n").addMeasure().addNote(0,["B4","G4","A4","F#4"],"4n").addNote(1,["G2","D2"],"2n").addMeasure({showNumber:!0}).addNote(0,["D4","D5","C#5"],"4n").addRest(0,"4n").addNote(1,["G2","A2"],"2n").addMeasure().addNote(0,["D5","C#5","D5","D4"],"8n").addNote(0,["C#4","A4","E4","F#4"],"8n").addNote(1,["D3","A2"],"2n").addMeasure({showNumber:!0}).addNote(0,["D4","D5","C#5","B4"],"8n").addNote(0,["C#5","F#5","A5","B5"],"8n").addNote(1,["B2","F#2"],"2n").addMeasure().addNote(0,["G5","F#5","E5","G5"],"8n").addNote(0,["F#5","E5","D5","C#5"],"8n").addNote(1,["G2","D2"],"2n").endRow().addMeasure({showNumber:!0}).addNote(0,["B4","A4","G4","F#4"],"8n").addNote(0,["E4","G4","F#4","E4"],"8n").addNote(1,["G2","A2"],"2n").addMeasure().addNote(0,["D4","E4","F#4","G4"],"8n").addNote(0,["A4","E4","A4","G4"],"8n").addNote(1,["D3","A2"],"2n").addMeasure({showNumber:!0}).addNote(0,["F#4","B4","A4","G4"],"8n").addNote(0,["A4","G4","F#4","E4"],"8n").addNote(1,["B2","F#2"],"2n").addMeasure().addNote(0,["D4","B3","B4","C#5"],"8n").addNote(0,["D5","C#5","B4","A4"],"8n").addNote(1,["G2","D2"],"2n").addMeasure({showNumber:!0}).addNote(0,["G4","F#4","E4","B4"],"8n").addNote(0,["A4","B4","A4","G4"],"8n").addNote(1,["G2","A2"],"2n").endRow().addMeasure({showNumber:!1}).addNote(0,"F#4","4n").addNote(0,"F#5","4n").addNote(0,"E5","2n").addNote(1,["D3","A2"],"2n").addMeasure({showNumber:!0}).addRest(0,"4n",{staffPos:"B4"}).addNote(0,"D5","4n").addNote(0,"F#5","2n").addNote(1,["B2","F#2"],"2n").addMeasure().addNote(0,["B5","A5"],"2n").addNote(1,["G2","D2"],"2n").addMeasure({showNumber:!0}).addNote(0,["B5","C#6"],"2n").addNote(1,["G2","A2"],"2n").addMeasure().addNote(0,["D6","D5"],"4n").addNote(0,"C#5","2n").addNote(1,["D3","A2"],"2n").addMeasure({showNumber:!0}).addRest(0,"4n",{staffPos:"B4"}).addNote(0,"B4","4n").addNote(0,"D5","2n").addNote(1,["B2","F#2"],"2n").addMeasure().addNote(0,"D5","2n").addRest(0,"4n",{staffPos:"B4"}).addNote(0,"D5","4n").addNote(1,["G2","D2"],"2n").addMeasure({showNumber:!0}).addNote(0,["D5","F#5","E5","A5"],"4n").addNote(1,["G2","A2"],"2n").endRow().addMeasure({showNumber:!1}).addNote(0,"A5","8n").addNote(0,["F#5","G5"],"16n").addNote(0,"A5","8n").addNote(0,["F#5","G5"],"16n").addNote(0,["A5","A4","B4","C#5"],"16n").addNote(0,["D5","E5","F#5","G5"],"16n").addNote(1,["D3","A2"],"2n").addMeasure({showNumber:!0}).addNote(0,"F#5","8n").addNote(0,["D5","E5"],"16n").addNote(0,"F#5","8n").addNote(0,["F#4","G4"],"16n").addNote(0,["A4","B4","A4","G4"],"16n").addNote(0,["A4","F#4","G4","A4"],"16n").addNote(1,["B2","F#2"],"2n").addMeasure().addNote(0,"G4","8n").addNote(0,["B4","A4"],"16n").addNote(0,"G4","8n").addNote(0,["F#4","E4"],"16n").addNote(0,["F#4","E4","D4","E4"],"16n").addNote(0,["F#4","G4","A4","B4"],"16n").addNote(1,["G2","D2"],"2n").endRow().addMeasure({showNumber:!0}).addNote(0,"G4","8n").addNote(0,["B4","A4"],"16n").addNote(0,"B4","8n").addNote(0,["C#5","D5"],"16n").addNote(0,["A4","B4","C#5","D5"],"16n").addNote(0,["E5","F#5","G5","A5"],"16n").addNote(1,["G2","A2"],"2n").addMeasure().addNote(0,"F#5","8n").addNote(0,["D5","E5"],"16n").addNote(0,"F#5","8n").addNote(0,["E5","D5"],"16n").addNote(0,["E5","C#5","D5","E5"],"16n").addNote(0,["F#5","E5","D5","C#5"],"16n").addNote(1,["D3","A2"],"2n").addMeasure({showNumber:!0}).addNote(0,"D5","8n").addNote(0,["B4","C#5"],"16n").addNote(0,"D5","8n").addNote(0,["D4","E4"],"16n").addNote(0,["F#4","G4","F#4","E4"],"16n").addNote(0,["F#4","D5","C#5","D5"],"16n").addNote(1,["B2","F#2"],"2n").endRow().addMeasure({showNumber:!1}).addNote(0,"B4","8n").addNote(0,["D5","C#5"],"16n").addNote(0,"B4","8n").addNote(0,["A4","G4"],"16n").addNote(0,["A4","G4","F#4","G4"],"16n").addNote(0,["A4","B4","C#5","D5"],"16n").addNote(1,["G2","D2"],"2n").addMeasure({showNumber:!0}).addNote(0,"B4","8n").addNote(0,["D5","C#5"],"16n").addNote(0,"D5","8n").addNote(0,["C#5","B4"],"16n").addNote(0,["C#5","D5","E5","D5"],"16n").addNote(0,["C#5","D5","B4","C#5"],"16n").addNote(1,["G2","A2"],"2n").addMeasure().addNavigation("startRepeat").addNote(0,"D5","4.").addNote(0,"A5","8n").addNote(0,["A5","B5","A5","G5"],"8n").addNote(1,["D3","A2"],"2n").addMeasure({showNumber:!0}).addNote(0,"F#5","4.").addNote(0,"F#5","8n").addNote(0,["F#5","G5","F#5","E5"],"8n").addNote(1,["B2","F#2"],"2n").endRow().addMeasure({showNumber:!1}).addNote(0,"D5","4.").addNote(0,"D5","8n").addNote(0,["D5","A5"],"4n").addNote(1,["G2","D2"],"2n").addMeasure({showNumber:!0}).addNote(0,["D5","C5","B5","C5"],"8n").addNote(0,"C#5","2n").addNote(1,["G2","A2"],"2n").addNavigation("endRepeat").addMeasure().addNote(0,"D5","1n").addNote(1,"D3","1n").getDocument()}function Uh(){return new Ar().setHeader("Fr\xE8re Jacques","Traditional").setScoreConfiguration([{type:"staff",clef:"G",voiceId:0,instrument:"!{Piano"},{type:"staff",clef:"F",voiceId:1,instrument:"!{Piano"}]).setMeasuresPerRow(2).addMeasure().setKeySignature("D Major").setTimeSignature("4/4").addNote(0,"D4","4n",{stem:"up"}).addLyrics(1,"4n","Are").addNote(0,"E4","4n").addLyrics(1,"4n","you").addNote(0,"F#4","4n").addLyrics(1,"4n","sleep",{hyphen:"-"}).addNote(0,"D4","4n").addLyrics(1,"4n","ing?").addRest(1,"1n",{staffPos:"F3"}).addMeasure().addNote(0,"D4","4n").addLyrics(1,"4n","Are").addNote(0,"E4","4n").addLyrics(1,"4n","you").addNote(0,"F#4","4n").addLyrics(1,"4n","sleep",{hyphen:"-"}).addNote(0,"D4","4n").addLyrics(1,"4n","ing?").addRest(1,"1n",{staffPos:"F3"}).addMeasure().addNavigation("startRepeat").addNote(0,"F#4","4n").addLyrics(1,"4n","Bro",{hyphen:"-"}).addNote(0,"G4","4n").addLyrics(1,"4n","ther").addNote(0,"A4","2n").addLyrics(1,"4n","John?").addNote(1,"D3","4n",{stem:"down"}).addLyricsTo(1,1,"4n","Are").addNote(1,"E3","4n").addLyricsTo(1,1,"4n","you").addNote(1,"F#3","4n").addLyricsTo(1,1,"4n","sleep",{hyphen:"-"}).addNote(1,"D3","4n").addLyricsTo(1,1,"4n","ing?").addMeasure().addNote(0,"F#4","4n").addLyrics(1,"4n","Bro",{hyphen:"-"}).addNote(0,"G4","4n").addLyrics(1,"4n","ther").addNote(0,"A4","2n").addLyrics(1,"4n","John?").addNote(1,"D3","4n").addLyricsTo(1,1,"4n","Are").addNote(1,"E3","4n").addLyricsTo(1,1,"4n","you").addNote(1,"F#3","4n").addLyricsTo(1,1,"4n","sleep",{hyphen:"-"}).addNote(1,"D3","4n").addLyricsTo(1,1,"4n","ing?").addMeasure().addNote(0,"A4","8n").addLyrics(1,"8n","Morn",{hyphen:"-"}).addNote(0,"B4","8n").addLyrics(1,"8n","ing").addNote(0,"A4","8n").addLyrics(1,"8n","bells").addNote(0,"G4","8n").addLyrics(1,"8n","are").addNote(0,"F#4","4n").addLyrics(1,"4n","ring",{hyphen:"-"}).addNote(0,"D4","4n").addLyrics(1,"4n","ing!").addNote(1,"F#3","4n").addLyricsTo(1,1,"4n","Bro",{hyphen:"-"}).addNote(1,"G3","4n").addLyricsTo(1,1,"4n","ther").addNote(1,"A3","2n").addLyricsTo(1,1,"2n","John?").addMeasure().addNote(0,"A4","8n").addLyrics(1,"8n","Morn",{hyphen:"-"}).addNote(0,"B4","8n").addLyrics(1,"8n","ing").addNote(0,"A4","8n").addLyrics(1,"8n","bells").addNote(0,"G4","8n").addLyrics(1,"8n","are").addNote(0,"F#4","4n").addLyrics(1,"4n","ring",{hyphen:"-"}).addNote(0,"D4","4n").addLyrics(1,"4n","ing!").addNote(1,"F#3","4n").addLyricsTo(1,1,"4n","Bro",{hyphen:"-"}).addNote(1,"G3","4n").addLyricsTo(1,1,"4n","ther").addNote(1,"A3","2n").addLyricsTo(1,1,"2n","John?").addMeasure().addNote(0,"D4","4n").addLyrics(1,"4n","Ding").addChord(0,["C#4","A4"],"4n").addLyrics(1,"4n","ding").addNote(0,"D4","4n").addLyrics(1,"4n","dong!").addRest(0,"4n").addNote(1,"A3","8n").addLyricsTo(1,1,"8n","Morn",{hyphen:"-"}).addNote(1,"B3","8n").addLyricsTo(1,1,"8n","ing").addNote(1,"A3","8n").addLyricsTo(1,1,"8n","bells").addNote(1,"G3","8n").addLyricsTo(1,1,"8n","are").addNote(1,"F#3","4n").addLyricsTo(1,1,"4n","ring",{hyphen:"-"}).addNote(1,"D3","4n").addLyricsTo(1,1,"4n","ing!").addMeasure().addNote(0,"D4","4n").addLyrics(1,"4n","Ding").addChord(0,["C#4","A4"],"4n").addLyrics(1,"4n","ding").addNote(0,"D4","4n").addLyrics(1,"4n","dong!").addRest(0,"4n").addNote(1,"A3","8n").addLyricsTo(1,1,"8n","Morn",{hyphen:"-"}).addNote(1,"B3","8n").addLyricsTo(1,1,"8n","ing").addNote(1,"A3","8n").addLyricsTo(1,1,"8n","bells").addNote(1,"G3","8n").addLyricsTo(1,1,"8n","are").addNote(1,"F#3","4n").addLyricsTo(1,1,"4n","ring",{hyphen:"-"}).addNote(1,"D3","4n").addLyricsTo(1,1,"4n","ing!").addMeasure().setMeasuresPerRow(4).addNote(0,"D4","4n").addLyrics(1,"4n","Are").addNote(0,"E4","4n").addLyrics(1,"4n","you").addNote(0,"F#4","4n").addLyrics(1,"4n","sleep",{hyphen:"-"}).addNote(0,"D4","4n").addLyrics(1,"4n","ing?").addNote(1,"D3","4n").addLyricsTo(1,1,"4n","Ding").addChord(1,["C#3","A3"],"4n").addLyricsTo(1,1,"4n","ding").addNote(1,"D3","4n").addLyricsTo(1,1,"4n","dong!").addRest(1,"4n").addMeasure().addNavigation("endRepeat").addNote(0,"D4","4n").addLyrics(1,"4n","Are").addNote(0,"E4","4n").addLyrics(1,"4n","you").addNote(0,"F#4","4n").addLyrics(1,"4n","sleep",{hyphen:"-"}).addNote(0,"D4","4n").addLyrics(1,"4n","ing?").addNote(1,"D3","4n").addLyricsTo(1,1,"4n","Ding").addChord(1,["C#3","A3"],"4n").addLyricsTo(1,1,"4n","ding").addNote(1,"D3","4n").addLyricsTo(1,1,"4n","dong!").addRest(1,"4n").addMeasure().addNote(0,"F#4","4n").addLyrics(1,"4n","YES").addNote(0,"D4","4n").addLyrics(1,"4n","I'm").addNote(0,"F#4","4n").addLyrics(1,"4n","SLEEP",{hyphen:"-"}).addNote(0,"D4","4n").addLyrics(1,"4n","ING").addNote(1,"A3","4n").addNote(1,"F#3","4n").addNote(1,"A3","4n").addNote(1,"F#3","4n").addMeasure().addNote(0,"A3","4n").addLyrics(1,"4n","Please").addNote(0,"C#4","8n").addLyrics(1,"8n","GO").addNote(0,"C#4","8n").addLyrics(1,"8n","A",{hyphen:"-"}).addNote(0,"D4","2n").addLyrics(1,"4n","WAY!").addNote(1,"D3","4n").addNote(1,"E3","4n").addNote(1,"F#3","2n").getDocument()}function zh(){return new Ar().setScoreConfiguration("guitarTreble").setHeader("Greensleeves").addMeasure().setKeySignature("C","Major").setTimeSignature("6/8").setTempo(140).addNote(0,"A3","8n").addMeasure().addNavigation("startRepeat").addNote(0,"C4","4n",{stem:"up"}).addLabel("chord","Am").addNote(0,"D4","8n").addNote(0,"E4","8.").addNote(0,"F4","16n").addNote(0,"E4","8n").addNote(1,"A2","8n",{stem:"down"}).addNote(1,"E3","4n").addNote(1,"A2","8n").addNote(1,"E3","4n").addMeasure().addNote(0,"D4","4n",{stem:"up"}).addLabel("chord","G").addNote(0,"B3","8n").addNote(0,"G3","8.").addLabel("chord","Em").addNote(0,"A3","16n").addNote(0,"B3","8n").addNote(1,"G2","8n",{stem:"down"}).addNote(1,"D3","4n").addNote(1,"E2","8n").addNote(1,"B2","4n").addMeasure().addNote(0,"C4","4n",{stem:"up"}).addLabel("chord","Am").addNote(0,"A3","8n").addNote(0,"A3","8.").addLabel("chord","F").addNote(0,"G#3","16n").addNote(0,"A3","8n").addNote(1,"A2","8n",{stem:"down"}).addNote(1,"E3","4n").addNote(1,"F2","8n").addNote(1,"A2","4n").addMeasure().addNote(0,"B3","4n",{stem:"up"}).addLabel("chord","E").addNote(0,"G#3","8n").addNote(0,"E3","4n").addNote(0,"A3","8n").addNote(1,"E2","8n",{stem:"down"}).addNote(1,"B2","4n").addNote(1,"E2","8n").addNote(1,"B2","4n").endRow().addMeasure().addNote(0,"C4","4n",{stem:"up"}).addLabel("chord","Am").addNote(0,"D4","8n").addNote(0,"E4","8.").addNote(0,"F4","16n").addNote(0,"E4","8n").addNote(1,"A2","8n",{stem:"down"}).addNote(1,"E3","4n").addNote(1,"A2","8n").addNote(1,"E3","4n").addMeasure().addNote(0,"D4","4n",{stem:"up"}).addLabel("chord","G").addNote(0,"B3","8n").addNote(0,"G3","8.").addLabel("chord","Em").addNote(0,"A3","16n").addNote(0,"B3","8n").addNote(1,"G2","8n",{stem:"down"}).addNote(1,"D3","4n").addNote(1,"E2","8n").addNote(1,"B2","4n").addMeasure().addNote(0,"C4","8.",{stem:"up"}).addLabel("chord","Am").addNote(0,"B3","16n").addNote(0,"A3","8n").addNote(0,"G#3","8.").addLabel("chord","E").addNote(0,"F#3","16n").addNote(0,"G#3","8n").addNote(1,"A2","8n",{stem:"down"}).addNote(1,"E3","4n").addNote(1,"E2","8n").addNote(1,"B2","4n").addMeasure().addNote(0,"A3","4.",{stem:"up"}).addLabel("chord","Am").addNote(0,"A3","4.").addNote(1,"A2","8n",{stem:"down"}).addNote(1,"E3","8n").addNote(1,"C4","8n").addNote(1,"A2","4.").endRow().addMeasure().addChord(0,["C3","E3","G3","C4","G4"],"4.",{arpeggio:"up",stem:"up"}).addLabel("chord","C").addNote(0,"G4","8.").addNote(0,"F#4","16n").addNote(0,"E4","8n").addRest(1,"4.",{hide:!0}).addNote(1,"C3","8n",{stem:"down"}).addNote(1,"G3","4n").addMeasure().addNote(0,"D4","4n",{stem:"up"}).addLabel("chord","G").addNote(0,"B3","8n").addNote(0,"G3","8.").addLabel("chord","Em").addNote(0,"A3","16n").addNote(0,"B3","8n").addNote(1,"G2","8n",{stem:"down"}).addNote(1,"D3","4n").addNote(1,"E2","8n").addNote(1,"B2","4n").addMeasure().addNote(0,"C4","4n",{stem:"up"}).addLabel("chord","Am").addNote(0,"A3","8n").addNote(0,"A3","8.").addLabel("chord","F").addNote(0,"G#3","16n").addNote(0,"A3","8n").addNote(1,"A2","8n",{stem:"down"}).addNote(1,"E3","4n").addNote(1,"F2","8n").addNote(1,"A2","4n").addMeasure().addNote(0,"B3","4n",{stem:"up"}).addLabel("chord","E").addNote(0,"G#3","8n").addNote(0,"E3","4.").addNote(1,"E2","8n",{stem:"down"}).addNote(1,"B2","4n").addNote(1,"E2","8n").addNote(1,"B2","8n").addNote(1,"E3","8n").endRow().addMeasure().addNote(0,"G4","4.",{stem:"up"}).addLabel("chord","C").addNote(0,"G4","8.").addNote(0,"F#4","16n").addNote(0,"E4","8n").addNote(1,"C3","8n",{stem:"down"}).addNote(1,"G3","8n").addNote(1,"C4","8n").addNote(1,"C3","8n").addNote(1,"G3","4n").addMeasure().addNote(0,"D4","4n",{stem:"up"}).addLabel("chord","G").addNote(0,"B3","8n").addNote(0,"G3","8.").addLabel("chord","Em").addNote(0,"A3","16n").addNote(0,"B3","8n").addNote(1,"G2","8n",{stem:"down"}).addNote(1,"D3","4n").addNote(1,"E2","8n").addNote(1,"B2","4n").addMeasure().addNote(0,"C4","8.",{stem:"up"}).addLabel("chord","Am").addNote(0,"B3","16n").addNote(0,"A3","8n").addNote(0,"G#3","8.").addLabel("chord","E").addNote(0,"F#3","16n").addNote(0,"G#3","8n").addNote(1,"A2","8n",{stem:"down"}).addNote(1,"E3","4n").addNote(1,"E2","8n").addNote(1,"B2","4n").addMeasure().addNavigation("ending",1).addNavigation("endRepeat").addNote(0,"A3","4.",{stem:"up"}).addLabel("chord","Am").addNote(0,"A3","4n").addNote(0,"A3","8n").addNote(1,"A2","8n",{stem:"down"}).addNote(1,"E3","8n").addNote(1,"C4","8n").addNote(1,"A2","4.").addMeasure().addNavigation("ending",2).addNote(0,"A3","4.",{stem:"up"}).addLabel("chord","Am").addNote(0,"A3","4.").addFermata().addNote(1,"A2","8n",{stem:"down"}).addNote(1,"E3","8n").addNote(1,"C4","8n").addNote(1,"A2","4.").getDocument()}function h0(){return[qh(),Wh(),Uh(),zh()]}return Sg(l0);})();
289
+ `;La(Qf,bv);var mi=class i extends P{constructor(){let t=I(i.getDefaults(),arguments,["channels"]);super(t),this.name="Merge",this._merger=this.output=this.input=this.context.createChannelMerger(t.channels)}static getDefaults(){return Object.assign(P.getDefaults(),{channels:2})}dispose(){return super.dispose(),this._merger.disconnect(),this}};var Vrt=[1557/44100,1617/44100,1491/44100,1422/44100,1277/44100,1356/44100,1188/44100,1116/44100];var Zrt=[1687/25e3,1601/25e3,2053/25e3,2251/25e3];var Ga=class i extends Ee{constructor(){let t=I(i.getDefaults(),arguments,["decay"]);super(t),this.name="Reverb",this._convolver=this.context.createConvolver(),this.ready=Promise.resolve();let e=this.toSeconds(t.decay);zt(e,.001),this._decay=e;let r=this.toSeconds(t.preDelay);zt(r,0),this._preDelay=r,this.generate(),this.connectEffect(this._convolver)}static getDefaults(){return Object.assign(Ee.getDefaults(),{decay:1.5,preDelay:.01})}get decay(){return this._decay}set decay(t){t=this.toSeconds(t),zt(t,.001),this._decay=t,this.generate()}get preDelay(){return this._preDelay}set preDelay(t){t=this.toSeconds(t),zt(t,0),this._preDelay=t,this.generate()}generate(){return yt(this,void 0,void 0,function*(){let t=this.ready,e=new pr(2,this._decay+this._preDelay,this.context.sampleRate),r=new Vi({context:e}),n=new Vi({context:e}),o=new mi({context:e});r.connect(o,0,0),n.connect(o,0,1);let s=new Z({context:e}).toDestination();o.connect(s),r.start(0),n.start(0),s.gain.setValueAtTime(0,0),s.gain.setValueAtTime(1,this._preDelay),s.gain.exponentialApproachValueAtTime(0,this._preDelay,this.decay);let a=e.render();return this.ready=a.then(ot),yield t,this._convolver.buffer=(yield a).get(),this})}dispose(){return super.dispose(),this._convolver.disconnect(),this}};var Wn=class i extends P{constructor(){let t=I(i.getDefaults(),arguments,["solo"]);super(t),this.name="Solo",this.input=this.output=new Z({context:this.context}),i._allSolos.has(this.context)||i._allSolos.set(this.context,new Set),i._allSolos.get(this.context).add(this),this.solo=t.solo}static getDefaults(){return Object.assign(P.getDefaults(),{solo:!1})}get solo(){return this._isSoloed()}set solo(t){t?this._addSolo():this._removeSolo(),i._allSolos.get(this.context).forEach(e=>e._updateSolo())}get muted(){return this.input.gain.value===0}_addSolo(){i._soloed.has(this.context)||i._soloed.set(this.context,new Set),i._soloed.get(this.context).add(this)}_removeSolo(){i._soloed.has(this.context)&&i._soloed.get(this.context).delete(this)}_isSoloed(){return i._soloed.has(this.context)&&i._soloed.get(this.context).has(this)}_noSolos(){return!i._soloed.has(this.context)||i._soloed.has(this.context)&&i._soloed.get(this.context).size===0}_updateSolo(){this._isSoloed()?this.input.gain.value=1:this._noSolos()?this.input.gain.value=1:this.input.gain.value=0}dispose(){return super.dispose(),i._allSolos.get(this.context).delete(this),this._removeSolo(),this}};Wn._allSolos=new Map;Wn._soloed=new Map;var Va=class i extends P{constructor(){let t=I(i.getDefaults(),arguments,["pan","volume"]);super(t),this.name="PanVol",this._panner=this.input=new Po({context:this.context,pan:t.pan,channelCount:t.channelCount}),this.pan=this._panner.pan,this._volume=this.output=new Ke({context:this.context,volume:t.volume}),this.volume=this._volume.volume,this._panner.connect(this._volume),this.mute=t.mute,z(this,["pan","volume"])}static getDefaults(){return Object.assign(P.getDefaults(),{mute:!1,pan:0,volume:0,channelCount:1})}get mute(){return this._volume.mute}set mute(t){this._volume.mute=t}dispose(){return super.dispose(),this._panner.dispose(),this.pan.dispose(),this._volume.dispose(),this.volume.dispose(),this}};var Ah=class i extends P{constructor(){let t=I(i.getDefaults(),arguments,["volume","pan"]);super(t),this.name="Channel",this._solo=this.input=new Wn({solo:t.solo,context:this.context}),this._panVol=this.output=new Va({context:this.context,pan:t.pan,volume:t.volume,mute:t.mute,channelCount:t.channelCount}),this.pan=this._panVol.pan,this.volume=this._panVol.volume,this._solo.connect(this._panVol),z(this,["pan","volume"])}static getDefaults(){return Object.assign(P.getDefaults(),{pan:0,volume:0,mute:!1,solo:!1,channelCount:1})}get solo(){return this._solo.solo}set solo(t){this._solo.solo=t}get muted(){return this._solo.muted||this.mute}get mute(){return this._panVol.mute}set mute(t){this._panVol.mute=t}_getBus(t){return i.buses.has(t)||i.buses.set(t,new Z({context:this.context})),i.buses.get(t)}send(t,e=0){let r=this._getBus(t),n=new Z({context:this.context,units:"decibels",gain:e});return this.connect(n),n.connect(r),n}receive(t){return this._getBus(t).connect(this),this}dispose(){return super.dispose(),this._panVol.dispose(),this.pan.dispose(),this.volume.dispose(),this._solo.dispose(),this}};Ah.buses=new Map;var Lat=Qt().transport;var jat=Qt().destination,Pat=Qt().destination;var Fat=Qt().listener;var Bat=Qt().draw;var Gat=Qt();var Ch=class{constructor(){d(this,"audioSource");try{let t=new Ga({decay:3,wet:.4}).toDestination(),e=new $r(800,"lowpass").connect(t);this.audioSource=new ja(Dr,{oscillator:{type:"triangle"},envelope:{attack:.001,decay:2,sustain:.1,release:1.2}}).connect(e)}catch(t){this.audioSource=void 0,console.error(t)}}getName(){return"Synthesizer"}playNote(t,e,r){try{this.audioSource&&(this.audioSource.volume.value=Js(r),this.audioSource.triggerAttackRelease(t,e))}catch(n){}}stop(){try{this.audioSource&&this.audioSource.releaseAll()}catch(t){}}},_h=new Ch;Ii();function Iv(i){return typeof i=="string"?i:(typeof i=="number"&&(i=U.getChromaticNote(i)),i.format(0,0))}var qa=[_h],Un=_h,Tv=(function(t,e,r){var o;let n=parseInt((o=r.split("/")[1])!=null?o:"4");return 60*(1/t)/(e*(1/n))})(2,80,"4/4"),Nv=1,Wa=!1;function Ov(){return qa.map(i=>i.getName())}function Rv(){return Un.getName()}function Mv(i){(y.isArray(i)?i:[i]).forEach(t=>{if(!$.Obj.hasProperties(t,["getName","playNote","stop"])||!y.isFunction(t.getName)||!y.isFunction(t.playNote)||!y.isFunction(t.stop))throw new N(7,"Invalid instrument object: "+t);qa.some(e=>e.getName()===t.getName())?console.warn(`Instrument "${t.getName()}" already added!`):qa.push(t),Jf(t.getName())})}function Jf(i){if(i===Un.getName())return;Un.stop();let t=qa.find(e=>e.getName()===i);t&&(Un=t)}function Ua(i,t,e){Wa||Un.playNote(Iv(i),t!=null?t:Tv,e!=null?e:Nv)}function za(){Un.stop()}function Ev(){za(),Wa=!0}function Dv(){Wa=!1}function kv(){return Wa}var Vh={};en(Vh,{Annotation:()=>Hn,Arpeggio:()=>fi,Clef:()=>Ui,Connective:()=>gi,DocumentBuilder:()=>Ar,DynamicsAnnotation:()=>Uo,Fermata:()=>Wo,Label:()=>Yo,LyricsAlign:()=>qo,LyricsHyphen:()=>Yn,MAccidental:()=>$o,MArpeggio:()=>ts,MBarLineLeft:()=>ls,MBarLineRight:()=>hs,MBeamGroup:()=>fs,MConnective:()=>xs,MDocument:()=>Zr,MEnding:()=>ps,MExtensionLine:()=>bs,MFermata:()=>ys,MHeader:()=>Ts,MImage:()=>Ho,MLyrics:()=>As,MMeasure:()=>_s,MNoteGroup:()=>is,MPlaybackButtons:()=>Gh,MPlayer:()=>Jn,MRenderContext:()=>Bh,MRest:()=>es,MRhythmColumn:()=>ss,MScoreRow:()=>Is,MScoreRowGroup:()=>ws,MSpecialText:()=>as,MStaff:()=>vs,MStaffBarLine:()=>ds,MStaffBeamGroup:()=>gs,MStaffNoteGroup:()=>ns,MStaffRest:()=>rs,MStaffSignature:()=>Ko,MTab:()=>Ss,MTabNoteGroup:()=>os,MTabRhythm:()=>Cs,MTabSignature:()=>Jo,MText:()=>Zo,MusicInterface:()=>xt,Navigation:()=>br,NoteAnchor:()=>Je,PlayState:()=>Za,ScoreEvent:()=>Os,ScoreObjectEvent:()=>Yi,ScoreStaffPosEvent:()=>zi,StaffPreset:()=>zn,Stem:()=>gr,TempoAnnotation:()=>zo,TieType:()=>yr,VerticalPosition:()=>Vo,getStringNumbers:()=>Ha,getVerseNumbers:()=>eg,getVoiceIds:()=>ae,isStringNumber:()=>Go,isVerseNumber:()=>$a,isVoiceId:()=>Ve,setColor:()=>Lv,validateStringNumber:()=>jv,validateVerseNumber:()=>Pv,validateVoiceId:()=>Bo});var tg={DrawDebugRects:!1,DisableBeams:!1},ct={DocumentScale:1,MinStaffWidth:75,MinColumnsWidth:10,ColumnWidthScale:1.7,PostMeasureBreakWidth:10,NoteDotSpace:.5,NoteAccSpace:.5,NoteHeadWidth:2,NoteHeadHeight:1.3,DiamondNoteHeadSize:1.8,DotSize:.8,StemHeight:7,FlagWidth:1.5,FlagHeight:4,FlagSeparation:2,BeamSeparation:1.25,BeamAngleFactor:.5,BeamThickness:4,RestDotSpace:.5,LedgerLineWidth:3.6,StubTieLength:5,StaffHeight:8,TabHeight:20},X={HilightStaffPos:"#55cc55",HilightObject:"#55cc55",PlayCursor:"#44aa44",Background:"white",Header_Title:"black",Header_Composer:"black",Header_Arranger:"black",RowGroup_Instrument:"black",RowGroup_Frame:"black",Staff_Frame:"black",Staff_Note:"black",Staff_Rest:"black",Staff_Connective:"black",Staff_Signature_Clef:"black",Staff_Signature_Key:"black",Staff_Signature_Time:"black",Staff_Signature_Tempo:"black",Staff_Signature_MeasureNum:"black",Staff_Element_Fermata:"black",Staff_Element_Annotation:"black",Staff_Element_Navigation:"black",Staff_Element_Label:"black",Tab_Frame:"black",Tab_Note:"black",Tab_Rest:"black",Tab_Connective:"black",Tab_Tuning:"black",Tab_Signature_Time:"black",Tab_Signature_Tempo:"black",Tab_Signature_MeasureNum:"black",Tab_Element_Fermata:"black",Tab_Element_Annotation:"black",Tab_Element_Navigation:"black",Tab_Element_Label:"black"};function Ya(i,t){return i.toLocaleLowerCase()===t.toLocaleLowerCase()}function Lv(i,...t){let e=t.length===1&&Ya(t[0],"background"),r=t.length===0;Ya(i,"")&&(i=e?"white":"black");let n=!0;for(let o in X){let s=o.split("_"),a=t.length>0&&t.every(u=>s.some(h=>Ya(u,h))),c=s.length===1&&Ya(s[0],"background");(r&&!c||a)&&(X[o]=i,n=!1)}n&&console.error(`Color attrs ${$.Str.stringify(t)} did not match any color.`)}var zn=(s=>(s.Treble="treble",s.Bass="bass",s.Grand="grand",s.GuitarTreble="guitarTreble",s.GuitarTab="guitarTab",s.GuitarCombined="guitarCombined",s))(zn||{}),Ui=(e=>(e.G="G",e.F="F",e))(Ui||{});function ae(){return[0,1,2,3]}function Ve(i){return y.isIncluded(i,ae())}function Bo(i){if(Ve(i))return i;throw new N(6,`Voice id ${i} is invalid!`)}function Ha(){return[1,2,3,4,5,6]}function Go(i){return y.isIncluded(i,Ha())}function jv(i){if(Go(i))return i;throw new N(6,`String number ${i} is invalid!`)}function eg(){return[1,2,3]}function $a(i){return y.isIncluded(i,eg())}function Pv(i){if($a(i))return i;throw new N(6,`Verse number ${i} is invalid!`)}var gr=(r=>(r.Auto="auto",r.Up="up",r.Down="down",r))(gr||{}),fi=(e=>(e.Up="up",e.Down="down",e))(fi||{}),yr=(e=>(e.Stub="stub",e.ToMeasureEnd="toMeasureEnd",e))(yr||{}),Je=(o=>(o.Auto="auto",o.Above="above",o.Center="center",o.Below="below",o.StemTip="stemTip",o))(Je||{}),gi=(r=>(r.Tie="tie",r.Slur="slur",r.Slide="slide",r))(gi||{}),Vo=(n=>(n.Auto="auto",n.Above="above",n.Below="below",n.Both="both",n))(Vo||{}),qo=(r=>(r.Left="left",r.Center="center",r.Right="right",r))(qo||{}),Yn=(e=>(e.Hyphen="-",e.Extender="---",e))(Yn||{}),Wo=(e=>(e.AtNote="atNote",e.AtMeasureEnd="atMeasureEnd",e))(Wo||{}),br=(l=>(l.DC_al_Fine="D.C. al Fine",l.DC_al_Coda="D.C. al Coda",l.DS_al_Fine="D.S. al Fine",l.DS_al_Coda="D.S. al Coda",l.Coda="Coda",l.toCoda="toCoda",l.Segno="Segno",l.Fine="Fine",l.StartRepeat="startRepeat",l.EndRepeat="endRepeat",l.Ending="ending",l))(br||{}),Hn=(e=>(e.Dynamics="dynamics",e.Tempo="tempo",e))(Hn||{}),Uo=(p=>(p.cresc="cresc.",p.decresc="decresc.",p.dim="dim.",p.ppp="ppp",p.pp="pp",p.p="p",p.mp="mp",p.m="m",p.mf="mf",p.f="f",p.ff="ff",p.fff="fff",p))(Uo||{}),zo=(r=>(r.accel="accel.",r.rit="rit.",r.a_tempo="a tempo",r))(zo||{}),Yo=(e=>(e.Note="note",e.Chord="chord",e))(Yo||{}),Za=(r=>(r[r.Playing=0]="Playing",r[r.Paused=1]="Paused",r[r.Stopped=2]="Stopped",r))(Za||{});var Xa=class{constructor(t){d(this,"head");d(this,"tail");this.head=t,this.tail=[]}getHead(){return this.head}getTails(){return this.tail}addTail(t){this.tail.push(t)}detachTail(t){let e=this.tail.indexOf(t);e>=0&&this.tail.splice(e,1)}},tt=class{constructor(t){this.parent=t;d(this,"anchoredLayoutObjects",[]);d(this,"link");d(this,"userData",{});d(this,"rect",new G);d(this,"needRectUpdate",!0)}getParent(){return this.parent}requestRectUpdate(){this.needRectUpdate=!0}updateRect(){}forceRectUpdate(){this.needRectUpdate=!0,this.updateRect(),this.needRectUpdate=!1}getRect(){return this.needRectUpdate&&this.forceRectUpdate(),this.rect}offsetX(t){this.offset(t,0)}offsetY(t){this.offset(0,t)}setLeft(t){this.offset(t-this.getRect().left,0)}setRight(t){this.offset(t-this.getRect().right,0)}setTop(t){this.offset(0,t-this.getRect().top)}setBottom(t){this.offset(0,t-this.getRect().bottom)}setAnchor(t,e){this.offset(t-this.getRect().anchorX,e-this.getRect().anchorY)}setAnchorX(t){this.offset(t-this.getRect().anchorX,0)}setAnchorY(t){this.offset(0,t-this.getRect().anchorY)}setCenter(t,e){this.offset(t-this.getRect().centerX,e-this.getRect().centerY)}setCenterX(t){this.offset(t-this.getRect().centerX,0)}setCenterY(t){this.offset(0,t-this.getRect().centerY)}getShapeRects(){return[this.rect]}addAnchoredLayoutObject(t){this.anchoredLayoutObjects.push(t)}getAnchoredLayoutObjects(){return this.anchoredLayoutObjects}setLink(t){this.link=t}getLink(){return this.link}isLinked(){return this.link!==null}};var Qa;(function(i){i.AliceBlue="aliceblue",i.AntiqueWhite="antiquewhite",i.Aqua="aqua",i.Aquamarine="aquamarine",i.Azure="azure",i.Beige="beige",i.Bisque="bisque",i.Black="black",i.BlanchedAlmond="blanchedalmond",i.Blue="blue",i.BlueViolet="blueviolet",i.Brown="brown",i.BurlyWood="burlywood",i.CadetBlue="cadetblue",i.Chartreuse="chartreuse",i.Chocolate="chocolate",i.Coral="coral",i.CornflowerBlue="cornflowerblue",i.CornSilk="cornsilk",i.Crimson="crimson",i.Cyan="cyan",i.DarkBlue="darkblue",i.DarkCyan="darkcyan",i.DarkGoldenRod="darkgoldenrod",i.DarkGray="darkgray",i.DarkGreen="darkgreen",i.DarkGrey="darkgrey",i.DarkKhaki="darkkhaki",i.DarkMagenta="darkmagenta",i.DarkOliveGreen="darkolivegreen",i.DarkOrange="darkorange",i.DarkOrchid="darkorchid",i.DarkRed="darkred",i.DarkSalmon="darksalmon",i.DarkSeaGreen="darkseagreen",i.DarkSlateBlue="darkslateblue",i.DarkSlateGray="darkslategray",i.DarkSlateGrey="darkslategrey",i.DarkTurquoise="darkturquoise",i.DarkViolet="darkviolet",i.DeepPink="deeppink",i.DeepSkyBlue="deepskyblue",i.DimGray="dimgray",i.DimGrey="dimgrey",i.DodgerBlue="dodgerblue",i.FireBrick="firebrick",i.FloralWhite="floralwhite",i.ForestGreen="forestgreen",i.Fuchsia="fuchsia",i.Gainsboro="gainsboro",i.GhostWhite="ghostwhite",i.Gold="gold",i.GoldenRod="goldenrod",i.Gray="gray",i.Green="green",i.GreenYellow="greenyellow",i.Grey="grey",i.Honeydew="honeydew",i.HotPink="hotpink",i.IndianRed="indianred",i.Indigo="indigo",i.Ivory="ivory",i.Khaki="khaki",i.Lavender="lavender",i.LavenderBlush="lavenderblush",i.LawnGreen="lawngreen",i.LemonChiffon="lemonchiffon",i.LightBlue="lightblue",i.LightCoral="lightcoral",i.LightCyan="lightcyan",i.LightGoldenRodYellow="lightgoldenrodyellow",i.LightGray="lightgray",i.LightGreen="lightgreen",i.LightGrey="lightgrey",i.LightPink="lightpink",i.LightSalmon="lightsalmon",i.LightSeaGreen="lightseagreen",i.LightSkyBlue="lightskyblue",i.LightSlateGray="lightslategray",i.LightSlateGrey="lightslategrey",i.LightSteelBlue="lightsteelblue",i.LightYellow="lightyellow",i.Lime="lime",i.LimeGreen="limegreen",i.Linen="linen",i.Magenta="magenta",i.Maroon="maroon",i.MediumAquamarine="mediumaquamarine",i.MediumBlue="mediumblue",i.MediumOrchid="mediumorchid",i.MediumPurple="mediumpurple",i.MediumSeaGreen="mediumseagreen",i.MediumSlateBlue="mediumslateblue",i.MediumSpringGreen="mediumspringgreen",i.MediumTurquoise="mediumturquoise",i.MediumVioletRed="mediumvioletred",i.MidnightBlue="midnightblue",i.MintCream="mintcream",i.MistyRose="mistyrose",i.Moccasin="moccasin",i.NavajoWhite="navajowhite",i.Navy="navy",i.OldLace="oldlace",i.Olive="olive",i.OliveDrab="olivedrab",i.Orange="orange",i.OrangeRed="orangered",i.Orchid="orchid",i.PaleGoldenRod="palegoldenrod",i.PaleGreen="palegreen",i.PaleTurquoise="paleturquoise",i.PaleVioletRed="palevioletred",i.PapayaWhip="papayawhip",i.PeachPuff="peachpuff",i.Peru="peru",i.Pink="pink",i.Plum="plum",i.PowderBlue="powderblue",i.Purple="purple",i.RebeccaPurple="rebeccapurple",i.Red="red",i.RosyBrown="rosybrown",i.RoyalBlue="royalblue",i.SaddleBrown="saddlebrown",i.Salmon="salmon",i.SandyBrown="sandybrown",i.SeaGreen="seagreen",i.SeaShell="seashell",i.Sienna="sienna",i.Silver="silver",i.SkyBlue="skyblue",i.SlateBlue="slateblue",i.SlateGray="slategray",i.SlateGrey="slategrey",i.Snow="snow",i.SpringGreen="springgreen",i.SteelBlue="steelblue",i.Tan="tan",i.Teal="teal",i.Thistle="thistle",i.Tomato="tomato",i.Turquoise="turquoise",i.Violet="violet",i.Wheat="wheat",i.White="white",i.WhiteSmoke="whitesmoke",i.Yellow="yellow",i.YellowGreen="yellowgreen"})(Qa=Qa||(Qa={}));var yi;(function(i){i.Hex="hex",i.RGB="rgb",i.Array="array"})(yi=yi||(yi={}));var vh={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};for(let i in vh)Object.freeze(vh[i]);var rg=Object.freeze(vh);var Sh=rg;var wh={hash:!0,lowercase:!1,short:!1};function Ih(i,t){let e=O(O({},wh),t),{hash:r,lowercase:n,short:o}=e,s=i.map(a=>{let c=a.toString(16);return c=c.length===1?`0${c}`:c,c}).join("");if(o){let a=[...s];a[0]===a[1]&&a[2]===a[3]&&a[4]===a[5]&&(s=`${a[0]}${a[2]}${a[4]}`)}return s=n?s.toLowerCase():s.toUpperCase(),r&&(s=`#${s}`),s}function Th(i,t=1){return t=Math.min(1,Math.max(0,t)),t<1?`rgba(${i[0]}, ${i[1]}, ${i[2]}, ${t})`:`rgb(${i[0]}, ${i[1]}, ${i[2]})`}var Fv=Q(O({},wh),{fallback:!0,alpha:1,format:yi.Hex});function Nh(i,t={}){let e=O(O({},Fv),t),{fallback:r,format:n,hash:o,lowercase:s,short:a,alpha:c}=e;i=`${i}`;let u=i.toLowerCase().replaceAll(/[^a-z]/g,""),h=Sh[u];if(!h){if(!r)throw new Error(`no matching color found for '${i}'`);let l=i.toLowerCase().replaceAll(/[^\da-f]/g,"");h=(l.length<=3?[l.slice(0,1).repeat(2),l.slice(1,2).repeat(2),l.slice(2,3).repeat(2)]:[l.slice(0,2),l.slice(2,4),l.slice(4,6)]).map(p=>Number.parseInt(p.length<2?`${"0".repeat(2-p.length)}${p}`:p,16))}switch(n){case yi.Array:return[...h];case yi.RGB:return Th(h,c);default:return Ih(h,{hash:o,lowercase:s,short:a})}}var ig="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAACWCAYAAACCe+v6AAADHXpUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHja7ZZRcu0mDIbfWUWXgCSExHIwmJnu4C6/Pxg7J2kyTdv7GJhjsJCF0CfZJ5y//hzhDzRK5iGpeS45R7RUUuGKicerHetKMa3ratL2Gr2Xh5L3AkMkU/O6LbzlJ+SY074vexO69W9D94QqZvq2UOuWH+/lxzbI/tHQ9kDo2jn2/cA2JLw9Std92x7l4vbuaH2fGYqXyN9+SYyzZrKEa+JolgvmzjEZ4tmno6NxWYb0CugjuO9vVYZPfApJxFUkXV7K/IlUjBlXrAYokhhuFMK5UFbgI1DCBXha9kY1PsF8jc1bjL5o3zlWxCbjnMov1J7xQ97k/HnePLOdBg81z3tB3mON+Rk/lZPehu4Fefbh1529PTu/k4vE9BqK8Ip7jO5jHRqnqCkjFnkf6j7KmkHvmFFcT2V0izkgax2T2Qu6xxobcqrHhko7MC/EoDsoUadKg841NmpwMfHJhpG5BZYldEAq3GQmQ5qdBpsU6eLImHblkPDjC61ty9qukcceYieoMsEY4ZH/3MN3FceYtUQU/YoT0gJ+8axOeBEJ+OcANTCgsYOqK8B3/9gm18lMV5gdB6zxCJeJQ+ktuWSBFigqxgsyWd8GECJsrXCGBARiJlHK8MiYjQiBdACqcJ0l8QECpModTnISyYCD6sDeeMZoqbLyJcZbVVJAsWYUrYNQBayUFPljyZFDVUWTqmY1dS1as+RZeTlbnq/namLJ1LIZ3tlWrLp4cvXs5u7Fa+EieH1rQZ0WL6XUik0rLFc8XaFQ68GHHOnQIx92+FHCURvSp6WmLTdr3kqrnbt0FHjP3br30utJJ1LpTKee+bTTz3LWgVQbMtLQkYeF4aOM+lCjXbYf+7+gRpsaL1JT0R5qkJrdJmi+TnQyAzFOBOAGaiCGxJ7MolNKPMlNZvgeoSqU4aROOJ0mMRBMJ7EOethtcoHr7+EWzBc3/r/kwkT3TXJ/5/YZtT6/Em0Ru8pwBjUKqg/rp1f2Oj+vX47hnxS+O/4Y+jH0Y+jrcYwROv51hb8AKbCqdGIdCl0AAAGFaUNDUElDQyBwcm9maWxlAAB4nH2RPUjDQBzFX1O1UqoOdhBxyFCd7OAH0rFUsQgWSluhVQeTS7+gSUOS4uIouBYc/FisOrg46+rgKgiCHyCuLk6KLlLi/5JCi1gPjvvx7t7j7h0gNCpMNXuigKpZRioeE7O5VdH3ij74MYgpRCRm6on0YgZdx9c9PHy9C/Os7uf+HANK3mSARySOMt2wiDeI5zYtnfM+cZCVJIX4nHjSoAsSP3JddvmNc9FhgWcGjUxqnjhILBY7WO5gVjJU4lnikKJqlC9kXVY4b3FWKzXWuid/YSCvraS5TnMMcSwhgSREyKihjAoshGnVSDGRov1YF/+o40+SSyZXGYwcC6hCheT4wf/gd7dmYWbaTQrEgN4X2/4YB3y7QLNu29/Htt08AbzPwJXW9lcbQOST9HpbCx0BQ9vAxXVbk/eAyx1g5EmXDMmRvDSFQgF4P6NvygHDt4B/ze2ttY/TByBDXS3fAAeHwESRste7vLu/s7d/z7T6+wEMNXLkxtwRywAADzRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDQuNC4wLUV4aXYyIj4KIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgIHhtbG5zOkdJTVA9Imh0dHA6Ly93d3cuZ2ltcC5vcmcveG1wLyIKICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICB4bXBNTTpEb2N1bWVudElEPSJnaW1wOmRvY2lkOmdpbXA6NDA3ODVjMzYtNDAxZC00YTZlLTkxODctMDQ1NTI4MmM0ZGY2IgogICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjhiZTJkYzc1LTVlYjQtNDk0Yy1iNWRlLWQ2MzZkNzZhNjI2YiIKICAgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOmU3YWE0MWNhLTNiYjMtNGU5Yi05NDQxLTllNTNmZTJiZjM5ZiIKICAgZGM6Rm9ybWF0PSJpbWFnZS9wbmciCiAgIEdJTVA6QVBJPSIyLjAiCiAgIEdJTVA6UGxhdGZvcm09IldpbmRvd3MiCiAgIEdJTVA6VGltZVN0YW1wPSIxNjg2NDA4NjA5MzE2NDM4IgogICBHSU1QOlZlcnNpb249IjIuMTAuMzQiCiAgIHRpZmY6T3JpZW50YXRpb249IjEiCiAgIHhtcDpDcmVhdG9yVG9vbD0iR0lNUCAyLjEwIgogICB4bXA6TWV0YWRhdGFEYXRlPSIyMDIzOjA2OjEwVDE3OjUwOjA5KzAzOjAwIgogICB4bXA6TW9kaWZ5RGF0ZT0iMjAyMzowNjoxMFQxNzo1MDowOSswMzowMCI+CiAgIDx4bXBNTTpIaXN0b3J5PgogICAgPHJkZjpTZXE+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjI3MzY2YmY0LWVkZDMtNDE5OC05NjJhLWU5ZTM5MTBlNThiZSIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iR2ltcCAyLjEwIChXaW5kb3dzKSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyMi0wOC0yMlQwMjo1NTozNiIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo5NjVlMTM3OS0wZDlmLTQ5ODItYWQ3MC05MzhjOWMzOWE0ZjMiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoV2luZG93cykiCiAgICAgIHN0RXZ0OndoZW49IjIwMjItMDktMTFUMTY6MzU6MDAiLz4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MTBmYmEwYTMtOTI5Yi00NTRlLThjNGMtOGVkOGM4YWJhZGRjIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKFdpbmRvd3MpIgogICAgICBzdEV2dDp3aGVuPSIyMDIzLTA2LTEwVDE3OjUwOjA5Ii8+CiAgICA8L3JkZjpTZXE+CiAgIDwveG1wTU06SGlzdG9yeT4KICA8L3JkZjpEZXNjcmlwdGlvbj4KIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/Ppn4NIQAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQfnBgoOMgm5WlWBAAAAGXRFWHRDb21tZW50AENyZWF0ZWQgd2l0aCBHSU1QV4EOFwAACHtJREFUeNrtnXuQVmMcxz+77cauTWUpbGSVu2w3BpnUEBq3chkmBjGayG1GBuNWLtUgw5SJkBkjl4QKg1wyQyarK0lRSlstU20bWam9+OM8O3P6vc8553nOe97tnO18Z84f57zP7XvOc/ndnueFfQx5e6neUmAI0B3oDPwD/AJ8Dvzcml5we+Al4D+gyeOaB1S0BrLHAut9iLqvf4ERSSZbBmwwJOu+RieV8JwQZJuARjXWE4WBIck2X38AByaJ8MwsCTcBTyWFbCFQFwHhv4DiKBqUn2PCPYEin9+bgI3AUuBPn3TtgMuT8IWv8vlq7wLdRPrTgPke6d9JAuFbPBo/3UfKK1TCh8yzIQmEb/cYjx0C8pUDuzV5D477GN6mefY+UBuQby0wV/O8U9wJr9E8W2iY92vNs45xJ6zTfKoN827UPNsdd8K1SlJyo8Awb7XhEIkVYYAVmjXVBPtr1uyqJBBeLu5LDPMdppkPdiaRcHvDfKeJ+++SIFoCLBP3R1toWW58lhQFogiodwkPlYZf1y1w/AcclCQVcYWQtILwqiA8M2lGgDcFgSN90nbXiJUXRdWQ/BYiLMdxH5+0k8VavRb4JGmEl4j7vh7pRgDni2fj1RyQKBwiuqjui/Un015dBbQloXCbaTdrZuUajTp4IwnGbEHmKPX8QmCHhuwC9p4rKBI8IghdB0zCsT1Lsg0+4zwxuEiQqqcVmGWDlAETk+zSJE9Ublyjuqof2TrgxKQT7anMNSZfd1iSiZYCUwy+avP1dJLJXglsxdyV8hHQJolEDwBewc5v9J3Klzj0xYnTsCG7W4mdicMdwC7CeQaPTBLRAjUxZeMKvSwpZPcDPghBUGpE45JAthjH92NLdiUwSDz7NO5k24YkuwTHGZYvtKMtcSabD7wVguy37OkilU7v8rgSfjoE2c816+wkkebKOJK9NgTZ2Wpykxgu0k2IG9lTcMIBbchOx9tTWKHpBbFBoZpwbMi+iL9FtEC8wG1xIvyQJdlJhuVWinzd4kD2cJxYZlOyky3KfkHkvSoOhF+2IPu8Zdk3x82O1QV96JDumhJSu5KB4XsVEwzJziCcy2Z/8UK3K5G1PZnhDi2iBW02IDvPY501xY8BuvJ6JcY+AQzAPCDGGucZkF2GefiCxFk4AWoN2K0AG4HHiSBATWJqQMXr1Qxui3Jlv8o2nHiHIl4UFeF1+G/ACOMGuZVoYqfd12qgX7ZkuwZUMjyEoWBaxETd1y5gVDaEr/YpfGqIyW9ODsm6r7FhCY/z6T625tTpLUS2+bo3DOHZHoVdYFnOqBYmG3rbz1JNQbZ2p2MsZfAor604G8OMsUVTyEBLwjMsv4r7vkapl28AH+PEWNqu1++ZNjRPk3mFJdnjDBu4HBipVoUGsewVaGb6fjgRPSsMSQ8wNb/KjA9bEp5osIzcLUitEml6BNQxxGPoWVtROmoynmFJ+CefRvytxFaJt0W6GwwtqE8GkA56cZSSGVxiI74FhTUM9ch3f0irCerleNU3wbZL2xrJzwhp+hks0s6PaBitMsnsXk7WWlY8xKPi7fjvOZI94x/sHOQFPobGw+U4kHBvrrDVRrw2RE4L6C3V7Ln3sBg43qLeeuAxj996BxHeJCYxm2i4Gh8RMwjL/BpqgA/VpKgTgnwJuzdXtbWUWpZpntUCiwwlPDf6WBLeBSzWPO8URFjuHOthUWm1ptJFaizZErb9wvJjNaMkiLDck2CrYD8n7k13hUrCvUIYB3Vdui6I8FI1qzbjUstKXwe+EV3aBKtE40pwjsKwwQEeuoEv4d3ALNf9ycCpFpU24ngRVrvkYNN8y7Ps1rqlb3MQYXCc3m7YytOb1FCYa2lhzHbiqjAoU4s2GoG+D+Fg85VGijq/ssh7qEboqLGZB6QDvBLHdZpLnK6R0EzlgNs0hGfZVJ6v1lV3ARNzTLhYo0sfY5h3sYWy4ole7Blh16ismrnEStFok/ou05BdR8iA1QfJDN2/PoeEZZTQkwZL0RoN4bvCNiCPzONlGpVJNBe7Tu4TdX1h2bbmmLCCbMfWAvTew6iDQy/QzLReZJ/RtKk+pFiagXZqmdCdyzGG8J5Eic6aOuSe4yK8A+RGRfn2/SqqwdmbVBZBPX/gHbh2MfAbEbtbTAQEr7itehyX6DDCn6zyCZlhUHcoTc7Ltj2WHKNcLexBRvaFaqxdr0Q/k2OixmNudN9uo+BEMcsOAB4AzrXIU6vUxlrVU3YqJaMEOELZoUzW0PeBezz04JyjN07o0mZy7zD7EjiTmKAQOAfHJlyJ/xmWtsHlo1UPCI28FnoBJym9urtaYspwdrOUKkmprerC/6pl7lel/HdxlTORBB/7aIJnLSQuK40orlisUWRaNXpoxnHX1ky4DZlhTkNbc5duwAlNjLRb58f8Ky/e1wgv2dcmrr6aiSur3agFOWxsL6XM91a6crUSCWfi+H9NoDtEsIKY7YI52sNQ4D5uZpBFeTKMamScyJqeFL4L8yOjfhB5x8Rp0ppoaPEoBF4j86A/HerEfUlcCB8GXGGRvqPSZYPQIeAF7DXC/bE3fJsY2eWsvCEuhMtC9oouAROgPPxveVwIN4TM53f08tnifgfmh/nmnPC6kPk2+fx2k7ifpWb4WKAT9mG+foFvMqqvkRj+pYntFp0HPMrZj8wg1VieEd8Tc6NdFXr3TCFOgLc77TZifE7AaAOyv+MY9iS64pxBK7vyJXHWcLy8eu4T0dybo9vhBMBMJvMwwEbgzqSodnfhvxOtDieQzOv3ncRkE7UNytV4tJ295+LsnUgsugKPAt/jvQm7DmcX2+Bcj7eWRjFwAo4rtYOa1avUMrSTFClSpEiRIkWKFClSpEiRIkWKFClSpEiRIkWKFClSpEiRIgL8D6ed2EKeJMaTAAAAAElFTkSuQmCC";var ng="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAABGCAYAAACQRffVAAADInpUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHja7VdbktwgDPznFDkCkgCJ4/AwVblBjp8GY+/OZFPZPD7yMVADWIiWUEt2jTu+fR3uCxplTi5EtZRT8mghh8wFC/Nnq2skH9a4mrS9R49yF9LeYIhkap6Pmbf8gBxr2s95G6FL/wK6FlSwim8bpWx5fZTXDcj2DLQ3hE7Lvu8DG0h4exTO57Y9Stn04Wp93xmKp8jefkGUU0ykAWNgr5oy1sY+KOLZp6PcznP31S7B9XypMnziQ0g8RpFweinzJ1IwJ4wk4qA4hUXiGlmWGTiUEG4Fbj6BR/F3MN/H5i1GP2mfuZaHkXFM5XdXu+envOn147y5VzsN3JU3lvaGPNLq0z1/KKd4AV0bctvh95at3ZYf5ENWdt3Nvad7jG5jXRq3KCEhFmlf6rrKWkGvziiuUwldfXLANSxmz+jmi2/Iqe4bKq1inYnB/aBAnQoNOtbcqMHFwAcrZubmWJbQQFLmhlQgCbPTYJUsXQwp0c4cEr59oWU2L3ONzHfnO0GVCWCEI3/c3WcVx5i1ROTtjBM8g188qxNeeAL9c4IaGKGxgxpXgK/+3CavAgbjCrPhgsVXd0LUSG/JJYvoSW/EfFY9ad8ACBFMRzhDAgZ8IomU4JEyKxECaSCowHWWwBUMUIzc4SQHkQRyUB2wjTNKS5Ujn2K8VSU4FGsSBTdZCsgKISJ/NBhyqESJIcaYokaLOZYkaVZeSprm67moaNCoSVXNadZiYsGiJVMzy1YyZ8HrO2bUabaccykwWoBccLpAoZTKVWqosaaq1Wp2tTSkTwstttS0WcutdO7SUeA9de3Wcy8HHUilIxzxSIceduSjDKTakBFGHGmoGzbyKDdrtMv2uf8Ga7RZ48XUVNSbNUhVLwiar5M4OQNjHAiEK1gDY0jsyZk3CoEnc5MzfI9QFZHhZJzkdJqMgcFwEMdBN3ebOcfl3/Dm1BZv/LfMuUndJ5n7kbePWOvzK9EWY2cZzqB6QfVh/7DCVubn9aez+5XCZ+cX0AvoBfQCegG9gP57oIEPJ/4Bue+bLIaQwqExNwAAAYVpQ0NQSUNDIHByb2ZpbGUAAHicfZE9SMNAHMVfU7UiFQeLijhkqE4WREUcSxWLYKG0FVp1MLn0Q2jSkKS4OAquBQc/FqsOLs66OrgKguAHiKuLk6KLlPi/pNAixoPjfry797h7Bwj1MlPNjiigapaRisfEbG5FDLyiC0EMYgIDEjP1RHohA8/xdQ8fX+8iPMv73J+jV8mbDPCJxFGmGxbxOvHMpqVz3icOsZKkEJ8Tjxt0QeJHrssuv3EuOizwzJCRSc0Rh4jFYhvLbcxKhko8TRxWVI3yhazLCuctzmq5ypr35C8M5rXlNNdpjiCORSSQhAgZVWygDAsRWjVSTKRoP+bhH3b8SXLJ5NoAI8c8KlAhOX7wP/jdrVmYmnSTgjGg88W2P0aBwC7QqNn297FtN04A/zNwpbX8lTow+0l6raWFj4C+beDiuqXJe8DlDjD0pEuG5Eh+mkKhALyf0TflgP5boGfV7a25j9MHIENdLd0AB4fAWJGy1zze3d3e279nmv39ANCccsygwwDVAAAQE2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNC40LjAtRXhpdjIiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6R0lNUD0iaHR0cDovL3d3dy5naW1wLm9yZy94bXAvIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgIHhtcE1NOkRvY3VtZW50SUQ9ImdpbXA6ZG9jaWQ6Z2ltcDo0MDc4NWMzNi00MDFkLTRhNmUtOTE4Ny0wNDU1MjgyYzRkZjYiCiAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Nzg3YjYxN2YtMjg1MS00YzhlLTg2MTYtZWM3NGMwYzYwMWVlIgogICB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6ZTdhYTQxY2EtM2JiMy00ZTliLTk0NDEtOWU1M2ZlMmJmMzlmIgogICBkYzpGb3JtYXQ9ImltYWdlL3BuZyIKICAgR0lNUDpBUEk9IjIuMCIKICAgR0lNUDpQbGF0Zm9ybT0iV2luZG93cyIKICAgR0lNUDpUaW1lU3RhbXA9IjE2ODY2MTM5NDcxOTU2ODAiCiAgIEdJTVA6VmVyc2lvbj0iMi4xMC4zNCIKICAgdGlmZjpPcmllbnRhdGlvbj0iMSIKICAgeG1wOkNyZWF0b3JUb29sPSJHSU1QIDIuMTAiCiAgIHhtcDpNZXRhZGF0YURhdGU9IjIwMjM6MDY6MTNUMDI6NTI6MjUrMDM6MDAiCiAgIHhtcDpNb2RpZnlEYXRlPSIyMDIzOjA2OjEzVDAyOjUyOjI1KzAzOjAwIj4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MjczNjZiZjQtZWRkMy00MTk4LTk2MmEtZTllMzkxMGU1OGJlIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKFdpbmRvd3MpIgogICAgICBzdEV2dDp3aGVuPSIyMDIyLTA4LTIyVDAyOjU1OjM2Ii8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjk2NWUxMzc5LTBkOWYtNDk4Mi1hZDcwLTkzOGM5YzM5YTRmMyIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iR2ltcCAyLjEwIChXaW5kb3dzKSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyMi0wOS0xMVQxNjozNTowMCIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDoxMGZiYTBhMy05MjliLTQ1NGUtOGM0Yy04ZWQ4YzhhYmFkZGMiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoV2luZG93cykiCiAgICAgIHN0RXZ0OndoZW49IjIwMjMtMDYtMTBUMTc6NTA6MDkiLz4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MDBmYjM4YTMtZjZiMi00NjQ1LTliMTYtMjlhNWE0ODZlMjhhIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKFdpbmRvd3MpIgogICAgICBzdEV2dDp3aGVuPSIyMDIzLTA2LTEzVDAyOjUyOjI3Ii8+CiAgICA8L3JkZjpTZXE+CiAgIDwveG1wTU06SGlzdG9yeT4KICA8L3JkZjpEZXNjcmlwdGlvbj4KIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PsIRrtIAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQfnBgwXNBsqJURsAAAAGXRFWHRDb21tZW50AENyZWF0ZWQgd2l0aCBHSU1QV4EOFwAABF9JREFUeNrtmluIF1Ucxz9/E8P1VnnJ9dJWC4Frmq2JJmqolGEILoQvK2gZeXlRCSm1Fx9UEsJQERWsXhRftECs0Gq70EK9ZHlbFyHbds3VVXFX91+7664P81tYhpnfmft//st84TzMzDm/8/vOnPO7nYEMGTJkyJAhQ4YMGSJBLkJZw4FyYAIwDHgU+A9oAxqBv4C7xfyySoBlwKfAFaAb6DG0euAzoAoYXCxEnwH2A60eCGrtFrALGJNWokNEwY6QRO2tFXgPGJAmss8DlyImam/fASPTQHaeGJueBFod8FQhrfSLwM+ynDX8L1/oV+BP4LZY58eBUUAlMB94ycPSvQTMERmJ4jGgwYPh2Qg84VFmGbAP6DTI/aoQS/lzg1JfA2MDyn4ZuGaQvyZJspUGv3oKGBhyjmeBJmWOmxLMJIITiiIXIgwaZgFdylxbDeNHANXAZmAVUBpEiScNe2xRxC/3Y2WuRmUlLRHD1rd/HljvV4F3FAVqYlhNo4B7Pl/wdPEMbmOq/ShwRBH0Vkxb6LAy536fW64HuOpn8vOKoLKYCC9Q5rzs0L/JQxDjyYPkgHYXAW0xGslByrLuFuPUFw0eCI92mmiAQ4LgZoEbYyTcAZxVPsJk271ag7x6cWueCLvhfsyu8LzybKLtersUF9ywxe2BnXBnAZOUJuXZeNv1OSki3LLdzwPrgONuguw+7g7wAHjEoW+vEagAXgeelr1yUSZoCUn4hvJsqMO9byRaWyLGtFkiwOtBJnYzBKcVg/ZuSMIrlHl3RrWMnFK1OqX/q8oXOAisDqFLVxL7xonw9yHk7Q5RoxpuyLdjI3wmhLzBwMqAY0ck4SGcCNeKIQqKOTF84RtxEu4BPgohc2QM467HSRjgqBL5mBDUPU1Rnl1JwqBNUuJqrW0M+OLdYuk8Cdas38Rf4b3FR0HP/nLdZNYaioKbxSVuA6ZGQfoNvNWlO6VvEKxW5O5yGbNc4ml7ZrUtCtLjgGMSdjop9Q+wMIT8GoXwKw79ZxrKUG9r+a8flMoyr5AA4ybwo1QgggYHpZJ6Ou3Ta5IpddvufwEsVWQ2xFisCI1Nypf6RMmsIql4JI0S8bFuSs9UvmCgikeh8b6i8C/KuKOYD+VShzGSwLsprRnByYYYoSqNhE8qCv/kYfxrYjT7jmuPIC+PBWsVsl1YRzBeE45qqWGtwjo1SR0WoZ8a7KAfYa5h7/2OVaPuF1gqtS83srclpi565IAP0c+b7wOz+wPZckOc3Jt0LC52oiXABx7y6VasGnfRYgiwwRAu9raGqPLXQmAGcADvvyN+m9bgXnP4i4E9wN8+KiJ5WQG5QilumnioJP9lwHPANKw/fF7A+fxJw2ms/y9SFdiPBf4Vn9hJNL8T/iFxbyoxgej+m6zBOtnLpXlvhiXcDOyVJV8UCEL4KnBI/OnAtBP0q+ADMTq/SfshrdUFr4TzwJdY9d57WIdYzRIk1GMdeXSQIUOGDBmSwUMtd8u2ArdcUAAAAABJRU5ErkJggg==";var Bv=new lt([[0,ig],[1,ng]]),Gv=i=>Bv.getOrDefault(i,""),Vv=new Al;function qv(i,t=1){let e=Nh(i).replace("#",""),r=parseInt(e.slice(0,2),16),n=parseInt(e.slice(2,4),16),o=parseInt(e.slice(4,6),16),s=Math.round(t*255);return[r,n,o,s]}function Wv(i,t){return!i&&!t?!0:!i||!t?!1:i.scoreRow===t.scoreRow&&i.diatonicId===t.diatonicId}function Uv(i,t){return!i&&!t?!0:!i||!t?!1:i.length===t.length&&i.every((e,r)=>e===t[r])}var Ka=class{constructor(t){this.mi=t;d(this,"devicePixelRatio");d(this,"fontSize");d(this,"unitSize");d(this,"_lineWidth");d(this,"scoreEventListener");d(this,"canvas");d(this,"ctx");d(this,"mdoc");d(this,"cursorRect");d(this,"mousePos");d(this,"curStaffPos");d(this,"curObjects");d(this,"hilightedStaffPos");d(this,"hilightedObj");d(this,"usingTouch",!1);d(this,"onClickFn");d(this,"onMouseMoveFn");d(this,"onMouseLeaveFn");d(this,"onTouchEndFn");this.devicePixelRatio=typeof window!="undefined"?window.devicePixelRatio:1,this.fontSize=Vs.FontSize*ct.DocumentScale*this.devicePixelRatio,this.unitSize=this.fontSize*.3,this._lineWidth=this.unitSize*.2,this.onClickFn=this.onClick.bind(this),this.onMouseMoveFn=this.onMouseMove.bind(this),this.onMouseLeaveFn=this.onMouseLeave.bind(this),this.onTouchEndFn=this.onTouchEnd.bind(this)}getMusicInterface(){return this.mi}get doc(){var t;return(t=this.mdoc)==null?void 0:t.getMusicObject()}getImageAsset(t,e){var r;return e!=null||(e=""),(r=Vv.getOrCreate(t,e,()=>{let n={src:Gv(t),color:e,loaded:!1,colorized:!1},o=new Image;return o.src=n.src,o.onload=()=>{n.img=o,this.onImageLoaded(n)},o.onerror=()=>{console.error("Failed to load image: "+n.src)},n}))==null?void 0:r.img}forceDraw(){var t;(t=this.doc)==null||t.requestFullLayout(),this.draw()}onImageLoaded(t){if(t.loaded||!t.img)return;if(t.colorized||t.color===""){this.forceDraw(),t.loaded=!0;return}let[e,r,n,o]=qv(t.color),s=40;if(typeof document=="undefined"){console.error("Failed to colorize image: document is undefined.");return}let a=document.createElement("canvas");a.width=t.img.width,a.height=t.img.height;let c=a.getContext("2d");if(c==null){console.error("Failed to colorize image: ctx = null.");return}c.drawImage(t.img,0,0);let u=c.getImageData(0,0,a.width,a.height),h=u.data;for(let l=0;l<h.length;l+=4){let p=h[l],m=h[l+1],f=h[l+2];h[l+3]!==0&&p<s&&m<s&&f<s&&(h[l+0]=e,h[l+1]=r,h[l+2]=n)}c.putImageData(u,0,0),t.img.src=a.toDataURL("image/png"),t.img.onload=()=>{t.colorized=!0,this.onImageLoaded(t)},t.img.onerror=()=>{console.error("Failed to colorize image.")}}setDocument(t){if(this.mdoc===t)return;this.updateCursorRect(void 0);let e=this.mdoc;this.mdoc=t,e&&e.getMusicObject().setRenderContext(void 0),t&&t.getMusicObject().setRenderContext(this)}setCanvas(t){var e,r;this.canvas!==t&&(this.canvas&&(this.canvas.removeEventListener("click",this.onClickFn),this.canvas.removeEventListener("mousemove",this.onMouseMoveFn),this.canvas.removeEventListener("mouseleave",this.onMouseLeaveFn),this.canvas.removeEventListener("touchend",this.onTouchEndFn)),this.canvas=t,this.canvas.addEventListener("click",this.onClickFn),this.canvas.addEventListener("mousemove",this.onMouseMoveFn),this.canvas.addEventListener("mouseleave",this.onMouseLeaveFn),this.canvas.addEventListener("touchend",this.onTouchEndFn),this.canvas.style.position="relative"),this.ctx=(r=(e=this.canvas)==null?void 0:e.getContext("2d"))!=null?r:void 0}setScoreEventListener(t){this.scoreEventListener=t}needMouseInput(){return this.scoreEventListener!==void 0}getMousePos(t){return new yl(t.offsetX,t.offsetY)}updateCurStaffPos(t,e){let r=!Wv(t,this.curStaffPos);if(r&&this.curStaffPos&&this.scoreEventListener){let{scoreRow:n,diatonicId:o}=this.curStaffPos;this.scoreEventListener(new zi("leave",this.getMusicInterface(),n.getMusicInterface(),o))}if(r&&t&&this.scoreEventListener){let{scoreRow:n,diatonicId:o}=t;this.scoreEventListener(new zi("enter",this.getMusicInterface(),n.getMusicInterface(),o))}if(e&&t&&this.scoreEventListener){let{scoreRow:n,diatonicId:o}=t;this.scoreEventListener(new zi("click",this.getMusicInterface(),n.getMusicInterface(),o))}return this.curStaffPos=t,r}updateCurObjects(t,e){let r=!Uv(t,this.curObjects);return r&&this.curObjects&&this.curObjects.length>0&&this.scoreEventListener&&this.scoreEventListener(new Yi("leave",this.getMusicInterface(),this.curObjects.map(n=>n.getMusicInterface()))),r&&t&&t.length>0&&this.scoreEventListener&&this.scoreEventListener(new Yi("enter",this.getMusicInterface(),t.map(n=>n.getMusicInterface()))),e&&t&&t.length>0&&this.scoreEventListener&&this.scoreEventListener(new Yi("click",this.getMusicInterface(),t.map(n=>n.getMusicInterface()))),this.curObjects=t,r}onClick(t){let{doc:e}=this;if(!(!this.needMouseInput()||!e)&&(this.mousePos=this.txFromScreenCoord(this.getMousePos(t)),this.scoreEventListener)){let r=e.pick(this.mousePos.x,this.mousePos.y),n=e.pickStaffPosAt(this.mousePos.x,this.mousePos.y),o=this.updateCurStaffPos(n,!0),s=this.updateCurObjects(r,!0);(o||s)&&this.draw()}}onMouseMove(t){let{doc:e}=this;if(!(!this.needMouseInput()||!e)&&(this.mousePos=this.txFromScreenCoord(this.getMousePos(t)),!this.usingTouch)){let r=e.pick(this.mousePos.x,this.mousePos.y),n=e.pickStaffPosAt(this.mousePos.x,this.mousePos.y),o=this.updateCurStaffPos(n,!1),s=this.updateCurObjects(r,!1);(o||s)&&this.draw()}}onMouseLeave(t){if(!this.needMouseInput())return;this.mousePos=void 0;let e=this.updateCurStaffPos(void 0,!1),r=this.updateCurObjects(void 0,!1);(e||r)&&this.draw()}onTouchEnd(t){this.usingTouch=!0}hilightObject(t){this.hilightedObj=t}hilightStaffPos(t){this.hilightedStaffPos=t}updateCursorRect(t){this.cursorRect=t,this.draw()}updateCanvasSize(){let{canvas:t,doc:e}=this;if(t&&e){let r=e.getRect(),n=r.width+1,o=r.height+1;t.width=n,t.height=o,t.style.width=n/this.devicePixelRatio+"px",t.style.height=o/this.devicePixelRatio+"px"}}draw(){try{let{doc:t}=this;t&&(t.layout(),this.updateCanvasSize(),this.clearCanvas(),this.drawHilightStaffPosRect(),this.drawHilightObjectRect(),this.drawPlayCursor(),t.drawContent())}catch(t){console.error("Render failed!",t)}}drawHilightStaffPosRect(){let{mousePos:t,hilightedStaffPos:e,unitSize:r}=this;if(!e)return;let{scoreRow:n,diatonicId:o}=e,s=n.getStaff(o);s&&(this.fillColor(X.HilightStaffPos),this.fillRect(s.row.getRect().left,s.getDiatonicIdY(o)-r,s.row.getRect().width,2*r),t!==void 0&&this.drawLedgerLines(s,o,t.x))}drawHilightObjectRect(){let{hilightedObj:t}=this;if(!t)return;let e=t.getRect();this.lineColor(X.HilightObject),this.strokeRect(e.left,e.top,e.width,e.height)}drawPlayCursor(){let{cursorRect:t}=this;t&&this.color(X.PlayCursor).lineWidth(2).strokeLine(t.centerX,t.top,t.centerX,t.bottom)}txFromScreenCoord(t){return t.mul(this.devicePixelRatio)}txToScreenCoord(t){return t.div(this.devicePixelRatio)}clearCanvas(){this.ctx&&(this.ctx.canvas.style.background=X.Background,this.ctx.clearRect(0,0,this.ctx.canvas.width,this.ctx.canvas.height))}drawDebugRect(t){tg.DrawDebugRects&&this.color("red").lineWidth(1).strokeRect(t.left,t.top,t.width,t.height)}drawLedgerLines(t,e,r){let{unitSize:n}=this,o=n*ct.LedgerLineWidth;if(e>=t.topLineDiatonicId+2){for(let s=t.topLineDiatonicId+2;s<=e;s+=2)if(t.containsDiatonicId(s)){let a=t.getDiatonicIdY(s);this.strokeLine(r-o/2,a,r+o/2,a)}}else if(e<=t.bottomLineDiatonicId-2){for(let s=t.bottomLineDiatonicId-2;s>=e;s-=2)if(t.containsDiatonicId(s)){let a=t.getDiatonicIdY(s);this.strokeLine(r-o/2,a,r+o/2,a)}}}getRestRect(t){let{unitSize:e}=this,{flagCount:r}=Nt.get(Br(t+"n")),n=0,o=0,s=0,a=0;if(Nt.equals(t,"1n"))n=e,o=e,s=0,a=e;else if(Nt.equals(t,"2n"))n=e,o=e,s=e,a=0;else if(Nt.equals(t,"4n"))n=e*1,o=e*1,s=e*3.2,a=e*3;else{let c=1-r%2;n=e*(1+r*.25),o=e*(1+r*.125),s=e*(.5+r-c),a=e*(1+r+c)}return new G(-n,0,o,-s,0,a)}drawRest(t,e,r){let{unitSize:n}=this,{flagCount:o}=Nt.get(Br(t+"n"));if(Nt.equals(t,"1n"))this.fillRect(e-n,r,n*2,n);else if(Nt.equals(t,"2n"))this.fillRect(e-n,r-n,n*2,n);else if(Nt.equals(t,"4n"))this.beginPath(),this.moveTo(e-n*.6,r-n*3.2),this.lineTo(e+n*.7,r-n*1.5),this.quadraticCurveTo(e-n*.8,r-n*.5,e+n*1,r+n*1.5),this.lineTo(e-n*1,r-n*.75),this.quadraticCurveTo(e+n*.2,r-n*1.5,e-n*.6,r-n*3.2),this.moveTo(e+n*1,r+n*1.5),this.quadraticCurveTo(e-n*.8,r+n*1,e-n*.2,r+n*2.8),this.bezierCurveTo(e-n*1.8,r+n*1.5,e-n*.6,r-n*.2,e+n*.9,r+n*1.5),this.fill(),this.stroke();else if(o>0){let s=1-o%2,a=u=>e+(-u*.25+.5)*n,c=u=>r+(u+s)*n;this.beginPath(),this.moveTo(a(1+o),c(1+o)),this.lineTo(a(-.5-o),c(-.5-o)),this.stroke();for(let u=0;u<o;u++){let h=o-u*2;this.beginPath(),this.moveTo(a(h-2.5),c(h-2.5)),this.quadraticCurveTo(a(h-.5)+n*.25,c(h-1.5),a(h-1.5)-n*1.5,c(h-1.5)),this.stroke(),this.beginPath(),this.arc(a(h-2)-n*1.5,c(h-2),n*.5,0,Math.PI*2),this.fill()}}}drawFlag(t,e){let r=t.left,o=t.right-r,s=e==="up"?t.top:t.bottom,a=e==="up"?t.bottom:t.top;this.beginPath(),this.moveTo(r,s),this.bezierCurveTo(r,s*.75+a*.25,r+o*1.5,s*.5+a*.5,r+o*.5,a),this.stroke()}color(t){return this.ctx&&(this.ctx.strokeStyle=this.ctx.fillStyle=t),this}lineColor(t){return this.ctx&&(this.ctx.strokeStyle=t),this}fillColor(t){return this.ctx&&(this.ctx.fillStyle=t),this}lineWidth(t){return this.ctx&&(this.ctx.lineWidth=this._lineWidth*(t!=null?t:1)),this}font(t){return this.ctx&&(this.ctx.font=t),this}beginPath(){return this.ctx&&this.ctx.beginPath(),this}stroke(){return this.ctx&&this.ctx.stroke(),this}fill(){return this.ctx&&this.ctx.fill(),this}moveTo(t,e){return this.ctx&&this.ctx.moveTo(t,e),this}lineTo(t,e){return this.ctx&&this.ctx.lineTo(t,e),this}bezierCurveTo(t,e,r,n,o,s){return this.ctx&&this.ctx.bezierCurveTo(t,e,r,n,o,s),this}quadraticCurveTo(t,e,r,n){return this.ctx&&this.ctx.quadraticCurveTo(t,e,r,n),this}fillRect(t,e,r,n){return this.ctx&&this.ctx.fillRect(t,e,r,n),this}setLineDash(t){return this.ctx&&this.ctx.setLineDash(t),this}drawImage(t,e,r,n,o){return this.ctx&&this.ctx.drawImage(t,e,r,n,o),this}ellipse(t,e,r,n,o,s,a){return this.ctx&&this.ctx.ellipse(t,e,r,n,o,s,a),this}clip(){return this.ctx&&this.ctx.clip(),this}save(){return this.ctx&&this.ctx.save(),this}restore(){return this.ctx&&this.ctx.restore(),this}rect(t,e,r,n){return this.ctx&&this.ctx.rect(t,e,r,n),this}scale(t,e){return this.ctx&&this.ctx.scale(t,e),this}strokeRect(t,e,r,n){return this.ctx&&this.ctx.strokeRect(t,e,r,n),this}fillText(t,e,r){return this.ctx&&this.ctx.fillText(t,e,r),this}getTextWidth(t,e){if(this.ctx){let r=this.ctx.font;this.ctx.font=e;let n=this.ctx.measureText(t);return this.ctx.font=r,n.width}else return $.Dom.getCanvasTextWidth(t,e)}arc(t,e,r,n,o){return this.ctx&&this.ctx.arc(t,e,r,n,o),this}fillCircle(t,e,r){return this.ctx?(this.ctx.beginPath(),this.ctx.arc(t,e,r,0,2*Math.PI),this.ctx.fill(),this):this}strokeLine(t,e,r,n){return this.ctx?(this.ctx.beginPath(),this.ctx.moveTo(t,e),this.ctx.lineTo(r,n),this.ctx.stroke(),this):this}strokePartialLine(t,e,r,n,o,s){if(!this.ctx)return this;let a=t+(r-t)*o,c=e+(n-e)*o,u=t+(r-t)*s,h=e+(n-e)*s;return this.ctx.beginPath(),this.ctx.moveTo(a,c),this.ctx.lineTo(u,h),this.ctx.stroke(),this}drawBracket(t,e){if(!this.ctx)return this;let{left:r,right:n,width:o,top:s,bottom:a,height:c,anchorY:u}=t;switch([")","]","}",">"].includes(e)&&([r,n,o]=[n,r,-o]),e){case"(":case")":this.ctx.beginPath(),this.ctx.moveTo(n,s),this.ctx.bezierCurveTo(r-o*.2,s+c*.3,r-o*.2,s+c*.7,n,a),this.ctx.stroke();break;case"{":case"}":this.ctx.beginPath(),this.ctx.moveTo(n,s),this.ctx.bezierCurveTo(r+o*.1,s,r+o*.8,u,r,u),this.ctx.moveTo(n,a),this.ctx.bezierCurveTo(r+o*.1,a,r+o*.8,u,r,u),this.ctx.stroke();break;case"[":case"]":this.ctx.beginPath(),this.ctx.moveTo(n,s),this.ctx.lineTo(r,s),this.ctx.lineTo(r,a),this.ctx.lineTo(n,a),this.ctx.stroke();break;case"<":case">":this.ctx.beginPath(),this.ctx.moveTo(n,s),this.ctx.lineTo(r,u),this.ctx.lineTo(n,a),this.ctx.stroke();break}return this}};var Ja=class{constructor(t){this.measure=t;d(this,"accidentalByDiatonicId",[])}getAccidentalFromKeySignature(t){let r=this.measure.getKeySignature().getOrderedAccidentalNotes().find(n=>n.diatonicClass===U.getDiatonicClass(t));return r?r.accidental:void 0}setAccidental(t){this.accidentalByDiatonicId[t.diatonicId]=t.accidental}needAccidental(t){var r,n;let e=(n=(r=this.accidentalByDiatonicId[t.diatonicId])!=null?r:this.getAccidentalFromKeySignature(t.diatonicId))!=null?n:0;return t.accidental!==e}};var tc=class extends tt{constructor(e,r,n,o,s){super(e);this.image=r;this.anchorX=n;this.anchorY=o;this.imageScale=s;d(this,"mi");this.mi=new Ho(this)}getMusicInterface(){return this.mi}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){let{anchorX:r,anchorY:n,image:o,imageScale:s}=this,{unitSize:a}=e;try{let c=o.naturalWidth*s*a,u=o.naturalHeight*s*a;this.rect=G.createSections(c*r,c*(1-r),u*n,u*(1-n))}catch(c){this.rect=new G}}offset(e,r){this.rect.offsetInPlace(e,r)}draw(e){let r=this.rect;e.drawDebugRect(r),e.drawImage(this.image,r.anchorX-r.leftw,r.anchorY-r.toph,r.width,r.height)}};var Hi=class extends tt{constructor(e,r,n,o="black"){super(e);this.diatonicId=r;this.accidental=n;this.color=o;d(this,"mi");this.mi=new $o(this)}getMusicInterface(){return this.mi}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){let{unitSize:r}=e;switch(this.accidental){case-2:this.rect=G.createSections(r*1.25,r*1.25,r*4,r*1.2);break;case-1:this.rect=G.createSections(r*.75,r*.75,r*4,r*1.2);break;case 0:this.rect=G.createSections(r*.75,r*.75,r*2.2,r*2.2);break;case 1:this.rect=G.createSections(r*.75,r*.75,r*2,r*2);break;case 2:this.rect=G.createSections(r*1,r*1,r*1,r*1);break;default:throw new N(6,"Invalid accidental value: "+this.accidental)}}offset(e,r){this.rect.offsetInPlace(e,r)}draw(e){e.drawDebugRect(this.rect);let{unitSize:r}=e,{accidental:n}=this,o=this.rect.anchorX,s=this.rect.anchorY;e.color(this.color);let a=(c,u)=>{e.lineWidth(1).beginPath().moveTo(c-r*.75,u-r*4).lineTo(c-r*.75,u+r*1.1).bezierCurveTo(c+r*.75,u-r*0,c+r*.75,u-r*2.2,c-r*.75,u-r*.5).stroke()};n===-2?(a(o-r*.5,s),a(o+r*.5,s)):n===-1&&a(o,s),n===0?e.beginPath().lineWidth(1).moveTo(o-r*.5,s-r*2.2).lineTo(o-r*.5,s+r*1).moveTo(o+r*.5,s+r*2.2).lineTo(o+r*.5,s-r*1).stroke().beginPath().lineWidth(2).moveTo(o-r*.5,s+r*1).lineTo(o+r*.5,s+r*.6).moveTo(o+r*.5,s-r*1).lineTo(o-r*.5,s-r*.6).stroke():n===1?e.lineWidth(1).beginPath().moveTo(o-r*.3,s-r*1.6).lineTo(o-r*.3,s+r*2).moveTo(o+r*.3,s-r*2).lineTo(o+r*.3,s+r*1.6).stroke().lineWidth(2).beginPath().moveTo(o-r*.75,s-r*.5).lineTo(o+r*.75,s-r*.9).moveTo(o-r*.75,s+r*.9).lineTo(o+r*.75,s+r*.5).stroke():n===2&&e.lineWidth(1).beginPath().moveTo(o-r*.75,s-r*.75).lineTo(o+r*.75,s+r*.75).moveTo(o-r*.75,s+r*.75).lineTo(o+r*.75,s-r*.75).stroke().fillRect(o-r*1,s-r*1,r*.7,r*.7).fillRect(o+r*.3,s-r*1,r*.7,r*.7).fillRect(o-r*1,s+r*.3,r*.7,r*.7).fillRect(o+r*.3,s+r*.3,r*.7,r*.7)}};var zv=.5,st=class extends tt{constructor(e,r,n,o){var a,c,u,h,l,p;super(e);this.anchorX=n;this.anchorY=o;d(this,"text");d(this,"scale");d(this,"color");d(this,"bold");d(this,"italic");d(this,"boxed");d(this,"padding");d(this,"bgcolor");d(this,"font","");d(this,"textLines");d(this,"lineWidths",[]);d(this,"lineHeight",0);d(this,"mi");let s=typeof r=="string"?{text:r}:r;this.text=s.text,this.scale=(a=s.scale)!=null?a:1,this.color=(c=s.color)!=null?c:"black",this.bold=(u=s.bold)!=null?u:!1,this.italic=(h=s.italic)!=null?h:!1,this.boxed=(l=s.boxed)!=null?l:!1,this.padding=(p=s.padding)!=null?p:this.boxed?zv:0,this.bgcolor=s.bgcolor,(!isFinite(this.padding)||this.padding<0)&&(this.padding=0),this.textLines=this.text.split(`
290
+ `),this.textLines.length===0&&(this.textLines=[""]),this.rect=new G,this.mi=new Zo(this)}getMusicInterface(){return this.mi}getText(){return this.text}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){let{scale:r,anchorX:n,anchorY:o,bold:s,italic:a}=this,c=e.fontSize*r;this.font=(a?"italic ":"")+(s?"bold ":"")+c+"px Times New Roman",this.lineWidths=this.textLines.map(p=>e.getTextWidth(p,this.font)),this.lineHeight=c;let u=this.padding*e.unitSize,h=u+Math.max(...this.lineWidths)+u,l=u+this.lineHeight*this.textLines.length+u;(this.boxed==="square"||this.boxed==="circle")&&(l=h=Math.max(l,h)),this.rect=G.createSections(h*n,h*(1-n),l*o,l*(1-o))}offset(e,r){this.rect.offsetInPlace(e,r)}draw(e){var b;e.drawDebugRect(this.rect),e.lineWidth(1).font(this.font);let{rect:r,padding:n,lineHeight:o,lineWidths:s,anchorX:a,anchorY:c,italic:u}=this;this.bgcolor!==void 0&&(e.save(),e.fillColor((b=this.bgcolor)!=null?b:"black"),e.beginPath(),e.fillRect(r.left,r.top,r.width,r.height),e.fill(),e.restore());let l=this.textLines.length*o,p=-o*(u?.25:.2),m=n*e.unitSize,f=(r.left+m)*(1-a)+(r.right-m)*a,g=(r.top+m)*(1-c)+(r.bottom-m)*c;switch(e.color(this.color),this.textLines.forEach((x,C)=>{let S=f-s[C]*a,T=g-l*c+o*(C+1)+p;e.fillText(x,S,T)}),this.boxed){case"square":case"rectangle":e.strokeRect(r.left,r.top,r.width,r.height);break;case"circle":case"ellipse":e.beginPath(),e.ellipse(r.centerX,r.centerY,r.width/2,r.height/2,0,0,2*Math.PI),e.stroke();break}}};var Xo=class extends tt{constructor(e,r){super(e);this.measure=e;this.staff=r;d(this,"clefImage");d(this,"eightBelowClef");d(this,"measureNumber");d(this,"ksNeutralizeAccidentals",[]);d(this,"ksNewAccidentals",[]);d(this,"beatCountText");d(this,"beatSizeText");d(this,"tempoText");d(this,"mi");this.mi=new Ko(this)}get doc(){return this.measure.doc}getMusicInterface(){return this.mi}updateClefImage(e,r){if(r){let n=X.Staff_Signature_Clef;["black","#000","#000000"].includes(n)&&(n="");let o=e.getImageAsset(this.staff.clefImageAsset,n);this.clefImage=o?new tc(this,o,0,.5,.1):void 0,this.eightBelowClef=this.clefImage&&this.staff.isOctaveDown?new st(this,{text:"8",color:n},.5,0):void 0}else this.clefImage=void 0}updateMeasureNumber(e){if(e){let r=X.Staff_Signature_MeasureNum,n=this.measure.getMeasureNumber().toString();this.measureNumber=new st(this,{text:n,color:r},0,1)}else this.measureNumber=void 0}updateKeySignature(e){if(e){let{measure:r}=this,n=X.Staff_Signature_Key,o=r.getPrevMeasure(),s=o?o.getKeySignature():void 0,a=r.getKeySignature();this.ksNeutralizeAccidentals=[],this.ksNewAccidentals=[],s&&!rr.equals(a,s)&&s.getOrderedAccidentalNotes().forEach(c=>{this.ksNeutralizeAccidentals.push(new Hi(this,this.getAccidentalDiatonicId(c),0,n))}),a.getOrderedAccidentalNotes().forEach(c=>{this.ksNewAccidentals.push(new Hi(this,this.getAccidentalDiatonicId(c),c.accidental,n))})}else this.ksNeutralizeAccidentals=[],this.ksNewAccidentals=[]}updateTimeSignature(e){if(e){let r=this.measure.getTimeSignature(),n=X.Staff_Signature_Time,o=r.beatCount.toString();this.beatCountText=new st(this,{text:o,color:n,scale:1.4},.5,.5);let s=r.beatSize.toString();this.beatSizeText=new st(this,{text:s,color:n,scale:1.4},.5,.5)}else this.beatCountText=this.beatSizeText=void 0}updateTempo(e){if(e){let r=X.Staff_Signature_Tempo,n=Ks(this.measure.getTempo());this.tempoText=new st(this,{text:n,color:r},.5,1)}else this.tempoText=void 0}getAccidentalDiatonicId(e){let{clef:r}=this.staff.staffConfig,n;if(r==="G"?e.accidental>0?n=this.staff.bottomLineDiatonicId+3:e.accidental<0&&(n=this.staff.bottomLineDiatonicId+1):r==="F"&&(e.accidental>0?n=this.staff.bottomLineDiatonicId+1:e.accidental<0&&(n=this.staff.bottomLineDiatonicId-1)),n!==void 0)return U.findNextDiatonicIdAbove(e.diatonicId,n,!1);throw new N(6,"Cannot get accidental diatonicId because note has no accidental.")}pick(e,r){if(!this.rect.contains(e,r))return[];if(this.eightBelowClef){let n=this.eightBelowClef.pick(e,r);if(n.length>0)return[this,...n]}if(this.clefImage){let n=this.clefImage.pick(e,r);if(n.length>0)return[this,...n]}for(let n=0;n<this.ksNeutralizeAccidentals.length;n++){let o=this.ksNeutralizeAccidentals[n].pick(e,r);if(o.length>0)return[this,...o]}for(let n=0;n<this.ksNewAccidentals.length;n++){let o=this.ksNewAccidentals[n].pick(e,r);if(o.length>0)return[this,...o]}if(this.beatCountText){let n=this.beatCountText.pick(e,r);if(n.length>0)return[this,...n]}if(this.beatSizeText){let n=this.beatSizeText.pick(e,r);if(n.length>0)return[this,...n]}if(this.tempoText){let n=this.tempoText.pick(e,r);if(n.length>0)return[this,...n]}if(this.measureNumber){let n=this.measureNumber.pick(e,r);if(n.length>0)return[this,...n]}return[this]}layout(e){var u,h,l,p,m,f;let{unitSize:r}=e,{staff:n}=this,o=r,s=0;if(this.rect=new G,this.clefImage&&(s+=o,this.clefImage.layout(e),this.clefImage.setAnchor(s,n.getDiatonicIdY(n.clefLineDiatonicId)),this.rect.expandInPlace(this.clefImage.getRect()),s=this.rect.right,this.eightBelowClef)){let g=this.clefImage.getRect();this.eightBelowClef.layout(e),this.eightBelowClef.setCenterX(g.centerX),this.eightBelowClef.setTop(Math.max(g.anchorY+g.height*.3,n.getBottomLineY())),this.rect.expandInPlace(this.eightBelowClef.getRect())}this.measureNumber&&(this.measureNumber.layout(e),this.measureNumber.setLeft(0),this.measureNumber.setBottom(Math.min(n.getTopLineY(),this.clefImage?this.clefImage.getRect().top:n.getTopLineY())),this.rect.expandInPlace(this.measureNumber.getRect()),s=Math.max(s,this.rect.right)),this.ksNeutralizeAccidentals.length>0&&(s+=o,this.ksNeutralizeAccidentals.forEach(g=>{g.layout(e),g.setLeft(s),g.setAnchorY(n.getDiatonicIdY(g.diatonicId)),this.rect.expandInPlace(g.getRect()),s=this.rect.right})),this.ksNewAccidentals&&(s+=o,this.ksNewAccidentals.forEach(g=>{g.layout(e),g.setLeft(s),g.setAnchorY(n.getDiatonicIdY(g.diatonicId)),this.rect.expandInPlace(g.getRect()),s=this.rect.right}));let a=s;(u=this.beatCountText)==null||u.layout(e),(h=this.beatSizeText)==null||h.layout(e);let c=Math.max((p=(l=this.beatCountText)==null?void 0:l.getRect().width)!=null?p:0,(f=(m=this.beatSizeText)==null?void 0:m.getRect().width)!=null?f:0);this.beatCountText&&(this.beatCountText.setCenter(s+c/2+o,n.getDiatonicIdY(n.middleLineDiatonicId+2)),this.rect.expandInPlace(this.beatCountText.getRect()),a=Math.max(a,this.rect.right)),this.beatSizeText&&(this.beatSizeText.setCenter(s+c/2+o,n.getDiatonicIdY(n.bottomLineDiatonicId+2)),this.rect.expandInPlace(this.beatSizeText.getRect()),a=Math.max(a,this.rect.right)),s=a,this.tempoText&&(this.tempoText.layout(e),this.tempoText.setCenterX(s),this.tempoText.setBottom(n.getTopLineY()),this.clefImage&&G.overlap(this.clefImage.getRect(),this.tempoText.getRect())&&this.tempoText.setBottom(this.clefImage.getRect().top),[...this.ksNeutralizeAccidentals,...this.ksNewAccidentals].forEach(g=>{this.tempoText&&G.overlap(g.getRect(),this.tempoText.getRect())&&this.tempoText.setBottom(g.getRect().top)}),this.rect.expandInPlace(this.tempoText.getRect())),this.rect.right+=o}offset(e,r){var n,o,s,a,c,u;(n=this.clefImage)==null||n.offset(e,r),(o=this.eightBelowClef)==null||o.offset(e,r),(s=this.measureNumber)==null||s.offset(e,r),this.ksNeutralizeAccidentals.forEach(h=>h.offset(e,r)),this.ksNewAccidentals.forEach(h=>h.offset(e,r)),(a=this.beatCountText)==null||a.offset(e,r),(c=this.beatSizeText)==null||c.offset(e,r),(u=this.tempoText)==null||u.offset(e,r),this.rect.offsetInPlace(e,r)}draw(e){var r,n,o,s,a,c;(r=this.clefImage)==null||r.draw(e),(n=this.eightBelowClef)==null||n.draw(e),(o=this.measureNumber)==null||o.draw(e),this.ksNeutralizeAccidentals.forEach(u=>u.draw(e)),this.ksNewAccidentals.forEach(u=>u.draw(e)),(s=this.beatCountText)==null||s.draw(e),(a=this.beatSizeText)==null||a.draw(e),(c=this.tempoText)==null||c.draw(e)}},Qo=class extends tt{constructor(e,r){super(e);this.measure=e;this.tab=r;d(this,"measureNumber");d(this,"beatCountText");d(this,"beatSizeText");d(this,"tempoText");d(this,"mi");this.mi=new Jo(this)}getMusicInterface(){return this.mi}get doc(){return this.measure.doc}updateMeasureNumber(e){if(e){let r=X.Tab_Signature_MeasureNum,n=this.measure.getMeasureNumber().toString();this.measureNumber=new st(this,{text:n,color:r},0,1)}else this.measureNumber=void 0}updateTimeSignature(e){if(e){let r=this.measure.getTimeSignature(),n=X.Tab_Signature_Time,o=r.beatCount.toString();this.beatCountText=new st(this,{text:o,color:n,scale:1.4},.5,.5);let s=r.beatSize.toString();this.beatSizeText=new st(this,{text:s,color:n,scale:1.4},.5,.5)}else this.beatCountText=this.beatSizeText=void 0}updateTempo(e){if(e){let r=X.Tab_Signature_Tempo,n=Ks(this.measure.getTempo());this.tempoText=new st(this,{text:n,color:r},0,1)}else this.tempoText=void 0}pick(e,r){if(!this.rect.contains(e,r))return[];if(this.beatCountText){let n=this.beatCountText.pick(e,r);if(n.length>0)return[this,...n]}if(this.beatSizeText){let n=this.beatSizeText.pick(e,r);if(n.length>0)return[this,...n]}if(this.tempoText){let n=this.tempoText.pick(e,r);if(n.length>0)return[this,...n]}if(this.measureNumber){let n=this.measureNumber.pick(e,r);if(n.length>0)return[this,...n]}return[this]}layout(e){var u,h,l,p,m,f;let{unitSize:r}=e,{tab:n}=this,o=r,s=0,a=n.getTopLineY();this.rect=new G,this.measureNumber&&(this.measureNumber.layout(e),this.measureNumber.setLeft(0),this.measureNumber.setBottom(a),this.rect.expandInPlace(this.measureNumber.getRect()),s=Math.max(s,this.rect.right)),(u=this.beatCountText)==null||u.layout(e),(h=this.beatSizeText)==null||h.layout(e);let c=Math.max((p=(l=this.beatCountText)==null?void 0:l.getRect().width)!=null?p:0,(f=(m=this.beatSizeText)==null?void 0:m.getRect().width)!=null?f:0);this.beatCountText&&(this.beatCountText.setCenter(0+c/2+o,n.getRect().anchorY-this.beatCountText.getRect().bottomh),this.rect.expandInPlace(this.beatCountText.getRect())),this.beatSizeText&&(this.beatSizeText.setCenter(0+c/2+o,n.getRect().anchorY+this.beatSizeText.getRect().toph),this.rect.expandInPlace(this.beatSizeText.getRect())),this.tempoText&&(this.tempoText.layout(e),this.tempoText.setLeft(s+r*2),this.tempoText.setBottom(a),this.rect.expandInPlace(this.tempoText.getRect())),this.rect.right+=o}offset(e,r){var n,o,s,a;(n=this.measureNumber)==null||n.offset(e,r),(o=this.beatCountText)==null||o.offset(e,r),(s=this.beatSizeText)==null||s.offset(e,r),(a=this.tempoText)==null||a.offset(e,r),this.rect.offsetInPlace(e,r)}draw(e){var r,n,o,s;(r=this.measureNumber)==null||r.draw(e),(n=this.beatCountText)==null||n.draw(e),(o=this.beatSizeText)==null||o.draw(e),(s=this.tempoText)==null||s.draw(e)}};var ec=class extends tt{constructor(e,r,n){super(e);this.col=e;this.line=r;this.arpeggioDir=n;d(this,"topArrowHeight",0);d(this,"bottomArrowHeight",0);d(this,"cycleHeight",0);d(this,"numCycles",0);d(this,"color","black");d(this,"mi");this.mi=new ts(this)}getMusicInterface(){return this.mi}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){let{unitSize:r}=e;this.topArrowHeight=this.arpeggioDir==="up"?r:0,this.bottomArrowHeight=this.arpeggioDir==="down"?r:0;let n=this.line.getTopLineY(),o=this.line.getBottomLineY();this.cycleHeight=r*2,this.numCycles=Math.ceil((o-n)/this.cycleHeight)+2;let s=r*2,a=this.numCycles*this.cycleHeight;this.rect=new G(-s/2,s/2,-a/2-this.topArrowHeight,a/2+this.bottomArrowHeight)}offset(e,r){this.rect.offsetInPlace(e,r)}draw(e){let{rect:r,topArrowHeight:n,bottomArrowHeight:o}=this;e.drawDebugRect(this.rect),e.color(this.color),e.lineWidth(2),e.beginPath();for(let s=0,a=r.top+n;s<this.numCycles;s++,a+=this.cycleHeight)e.moveTo(r.anchorX,a),e.quadraticCurveTo(r.left,a+this.cycleHeight/4,r.anchorX,a+this.cycleHeight/2),e.quadraticCurveTo(r.right,a+this.cycleHeight*3/4,r.anchorX,a+this.cycleHeight);e.stroke(),n>0&&(e.beginPath(),e.moveTo(r.anchorX,r.top),e.lineTo(r.right,r.top+n),e.lineTo(r.left,r.top+n),e.fill()),o>0&&(e.beginPath(),e.moveTo(r.anchorX,r.bottom),e.lineTo(r.left,r.bottom-o),e.lineTo(r.right,r.bottom-o),e.fill())}};function Yv(i){return typeof i=="number"?U.getChromaticNote(i).diatonicId:typeof i=="string"?U.getNote(i).diatonicId:i instanceof U?i.diatonicId:void 0}var rc=class extends tt{constructor(e,r){super(e);this.staff=e;this.rest=r;d(this,"restRect",new G);d(this,"dotRects",[]);d(this,"mi");e.addObject(this),this.mi=new rs(this)}getMusicInterface(){return this.mi}pick(e,r){return this.getRect().contains(e,r)?[this]:[]}offset(e,r){this.restRect.offsetInPlace(e,r),this.dotRects.forEach(n=>n.offsetInPlace(e,r)),this.requestRectUpdate(),this.rest.requestRectUpdate()}updateRect(){this.rect=this.restRect.clone(),this.dotRects.forEach(e=>this.rect.expandInPlace(e))}},$n=class $n extends tt{constructor(e,r,n,o,s){var c,u,h,l;super(e);this.col=e;this.voiceId=r;this.options=o;d(this,"color");d(this,"hide");d(this,"oldStyleTriplet");d(this,"rhythmProps");d(this,"setDiatonicId");d(this,"runningDiatonicId");d(this,"runningStemDir");d(this,"beamGroup");d(this,"staffObjects",[]);d(this,"mi");this.setDiatonicId=(u=Yv((c=this.options)==null?void 0:c.staffPos))!=null?u:$n.UndefinedDiatonicId;let a=this.row.getStaves().filter(p=>p.containsVoiceId(this.voiceId));this.setDiatonicId!==$n.UndefinedDiatonicId&&a.length>0&&a[0].isSpace(this.setDiatonicId)&&(this.setDiatonicId+=this.setDiatonicId>=a[0].middleLineDiatonicId?1:-1),this.runningDiatonicId=this.setDiatonicId,this.runningStemDir="up",this.color=(h=o==null?void 0:o.color)!=null?h:X.Staff_Rest,this.hide=(l=o==null?void 0:o.hide)!=null?l:!1,this.oldStyleTriplet=s===void 0&&Nt.get(n).isTriplet,this.rhythmProps=Kt.get(n,void 0,(s!=null?s:this.oldStyleTriplet)?Gr.Triplet:void 0),this.mi=new es(this)}getMusicInterface(){return this.mi}get doc(){return this.col.doc}get measure(){return this.col.measure}get row(){return this.col.row}get noteLength(){return this.rhythmProps.noteLength}getDiatonicId(e){return this.runningDiatonicId===$n.UndefinedDiatonicId?e?Nt.equals(this.noteLength,"1n")?e.middleLineDiatonicId+2:e.middleLineDiatonicId:U.getNote("G4").diatonicId:this.runningDiatonicId}get stemDir(){return this.runningStemDir}updateRunningArguments(e,r,n){this.runningDiatonicId=e,this.runningStemDir=r}getStaticObjects(e){let r=[];return this.staffObjects.forEach(n=>{n.staff===e&&r.push(n)}),r}pick(e,r){if(!this.getRect().contains(e,r))return[];for(let n=0;n<this.staffObjects.length;n++){let o=this.staffObjects[n].pick(e,r);if(o.length>0)return[this,...o]}return[]}getBeamGroup(){return this.beamGroup}setBeamGroup(e){this.beamGroup=e}resetBeamGroup(){this.beamGroup=void 0}getBeamCoords(){return this.staffObjects.map(e=>{let r=e.staff,n=e.getRect().anchorX,o=this.stemDir==="up"?e.getRect().top:e.getRect().bottom,s=Math.abs(e.getRect().anchorY-o);return{staff:r,x:n,y:o,stemHeight:s}})}hasTuplet(){return this.rhythmProps.tupletRatio!==void 0}isEmpty(){return this.staffObjects.length===0}visibleInStaff(e){return e.containsVoiceId(this.voiceId)&&this.staffObjects.some(r=>r instanceof rc&&r.staff===e)}getRestDotVerticalDisplacement(e){switch(e){case 1:return 1;case 2:return-1;case 4:return-1;case 8:return-1;case 16:return-1;case 32:return-3;case 64:return-3;default:throw new N(6,`Get rest dot vertical displacement: Invalid note size: ${e}`)}}updateAccidentalState(e){}layout(e,r){if(this.requestRectUpdate(),this.staffObjects.length=0,this.hide)return;let{unitSize:n}=e,{noteSize:o,dotCount:s}=this.rhythmProps;this.row.getStaves().forEach(a=>{let c=this.getDiatonicId(a);if(!a.containsDiatonicId(c)||!a.containsVoiceId(this.voiceId))return;let u=new rc(a,this);u.restRect=e.getRestRect(o);for(let h=0;h<s;h++){let l=ct.DotSize*n,p=u.restRect.rightw+(ct.RestDotSpace+ct.DotSize*n)+h*ct.DotSize*n*1.5,m=this.getRestDotVerticalDisplacement(o)*n;u.dotRects.push(G.createCentered(p,m,l,l))}u.setAnchor(0,a.getDiatonicIdY(c)),this.staffObjects.push(u),this.measure.addStaticObject(a,u)})}updateRect(){if(this.staffObjects.length===0)this.rect=new G;else if(this.rect=this.staffObjects[0].getRect().clone(),this.staffObjects.length>1)for(let e=1;e<this.staffObjects.length;e++)this.rect.expandInPlace(this.staffObjects[e].getRect())}offset(e,r){this.staffObjects.forEach(n=>n.offset(e,0)),this.requestRectUpdate()}draw(e){if(this.staffObjects.length===0)return;e.drawDebugRect(this.getRect());let{noteSize:r}=this.rhythmProps;e.color(this.color).lineWidth(1),this.staffObjects.forEach(n=>{let{dotRects:o,restRect:s}=n;e.drawRest(r,s.anchorX,s.anchorY),o.forEach(a=>e.fillCircle(a.anchorX,a.anchorY,a.width/2))})}};d($n,"UndefinedDiatonicId",1/0);var ce=$n;function Hv(i){return y.isEnumValue(i,fi)?i:i===!0?"up":void 0}function $v(i,t){let e=$.Arr.isArray(t)?t:t!==void 0?[t]:[],r=i.map((n,o)=>({note:n,string:e[o]}));return r=$.Arr.removeDuplicates(r,(n,o)=>U.equals(n.note,o.note)).sort((n,o)=>U.compareFunc(n.note,o.note)),{sortedNotes:r.map(n=>n.note),sortedStrings:r.every(n=>n.string===void 0)?void 0:r.map(n=>n.string)}}var ic=class extends tt{constructor(e,r){super(e);this.staff=e;this.noteGroup=r;d(this,"noteHeadRects",[]);d(this,"dotRects",[]);d(this,"accidentals",[]);d(this,"stemTip");d(this,"stemBase");d(this,"flagRects",[]);d(this,"prevTopNoteY",0);d(this,"prevBottomNoteY",0);d(this,"mi");this.mi=new ns(this)}getMusicInterface(){return this.mi}pick(e,r){if(!this.getRect().contains(e,r))return[];for(let n=0;n<this.accidentals.length;n++){let o=this.accidentals[n].pick(e,r);if(o.length>0)return[this,...o]}return[this]}updateRect(){this.rect=this.noteHeadRects[0].clone(),this.noteHeadRects.forEach(e=>this.rect.expandInPlace(e)),this.stemTip&&this.rect.expandInPlace(this.stemTip),this.stemBase&&this.rect.expandInPlace(this.stemBase),this.dotRects.forEach(e=>this.rect.expandInPlace(e)),this.flagRects.forEach(e=>this.rect.expandInPlace(e)),this.accidentals.forEach(e=>this.rect.expandInPlace(e.getRect()))}getRect(){let e=this.noteHeadRects[0],r=this.noteHeadRects[this.noteHeadRects.length-1];return(this.prevTopNoteY!==r.anchorY||this.prevBottomNoteY!==e.anchorY)&&(this.prevTopNoteY=r.anchorY,this.prevBottomNoteY=e.anchorY,this.requestRectUpdate()),super.getRect()}offset(e,r){var n,o;this.noteHeadRects.forEach(s=>s.offsetInPlace(e,r)),this.dotRects.forEach(s=>s.offsetInPlace(e,r)),this.accidentals.forEach(s=>s.offset(e,r)),(n=this.stemTip)==null||n.offsetInPlace(e,r),(o=this.stemBase)==null||o.offsetInPlace(e,r),this.flagRects.forEach(s=>s.offsetInPlace(e,r)),this.requestRectUpdate(),this.noteGroup.requestRectUpdate()}},Oh=class extends tt{constructor(e,r){super(e);this.tab=e;this.noteGroup=r;d(this,"fretNumbers",[]);d(this,"mi");this.mi=new os(this)}getMusicInterface(){return this.mi}pick(e,r){return this.getRect().contains(e,r)?[this]:[]}updateRect(){this.rect=this.fretNumbers[0].getRect().clone(),this.fretNumbers.forEach(e=>this.rect.expandInPlace(e.getRect()))}offset(e,r){this.fretNumbers.forEach(n=>n.offset(e,r)),this.requestRectUpdate(),this.noteGroup.requestRectUpdate()}},At=class i extends tt{constructor(e,r,n,o,s,a){var h,l,p;super(e);this.col=e;this.voiceId=r;this.notes=n;this.options=s;d(this,"setDiatonicId");d(this,"setStringsNumbers");d(this,"runningDiatonicId");d(this,"runningStemDir");d(this,"runningStringNumbers");d(this,"color");d(this,"staccato");d(this,"diamond");d(this,"arpeggio");d(this,"oldStyleTriplet");d(this,"rhythmProps");d(this,"startConnnectives",[]);d(this,"runningConnectives",[]);d(this,"leftBeamCount",0);d(this,"rightBeamCount",0);d(this,"beamGroup");d(this,"staffObjects",[]);d(this,"tabObjects",[]);d(this,"isNoteDisplaced");d(this,"mi");if(!y.isIntegerGte(n.length,1))throw new N(6,"Cannot create note group object because notes array is empty.");let{sortedNotes:c,sortedStrings:u}=$v(n,s==null?void 0:s.string);this.notes=c,this.setStringsNumbers=u,this.isNoteDisplaced=this.notes.map(()=>!1),this.setDiatonicId=Math.round((this.minDiatonicId+this.maxDiatonicId)/2),this.runningDiatonicId=this.setDiatonicId,this.runningStemDir="up",this.runningStringNumbers=[],this.color=(h=s==null?void 0:s.color)!=null?h:X.Staff_Note,this.staccato=(l=s==null?void 0:s.staccato)!=null?l:!1,this.diamond=(p=s==null?void 0:s.diamond)!=null?p:!1,this.arpeggio=Hv(s==null?void 0:s.arpeggio),this.oldStyleTriplet=a===void 0&&Nt.get(o).isTriplet,this.rhythmProps=Kt.get(o,void 0,(a!=null?a:this.oldStyleTriplet)?Gr.Triplet:void 0),this.mi=new is(this)}getMusicInterface(){return this.mi}get doc(){return this.col.doc}get measure(){return this.col.measure}get row(){return this.col.row}get minDiatonicId(){return this.notes[0].diatonicId}get maxDiatonicId(){return this.notes[this.notes.length-1].diatonicId}getDiatonicId(e){return this.runningDiatonicId}get stemDir(){return this.runningStemDir}setNoteDisplacement(e,r){let n=this.notes.indexOf(e);n>=0&&(this.isNoteDisplaced[n]=r)}enableConnective(e){return e.containsVoiceId(this.voiceId)&&(e instanceof Pt||e.containsDiatonicId(this.runningDiatonicId))}startConnective(e){if(!this.row.hasStaff&&e.connective==="tie")throw new N(6,"Ties not implemented for guitar tabs alone, staff is required!");if(!this.row.hasStaff&&e.connective==="slur")throw new N(6,"Slurs not implemented for guitar tabs alone, staff is required!");this.startConnnectives.push(e),this.doc.addConnectiveProps(e)}updateRunningArguments(e,r,n){this.runningDiatonicId=e===ce.UndefinedDiatonicId?this.setDiatonicId:e,this.runningStemDir=r,this.runningStringNumbers=n}pick(e,r){if(!this.getRect().contains(e,r))return[];for(let n=0;n<this.staffObjects.length;n++){let o=this.staffObjects[n].pick(e,r);if(o.length>0)return[this,...o]}for(let n=0;n<this.tabObjects.length;n++){let o=this.tabObjects[n].pick(e,r);if(o.length>0)return[this,...o]}return[]}getTopNote(){return this.notes[this.notes.length-1]}getBottomNote(){return this.notes[0]}getConnectiveAnchorPoint(e,r,n,o,s){var a;if(r instanceof Et){if(n<0||n>=this.notes.length)throw new N(6,"Invalid noteIndex: "+n);let c=this.staffObjects.find(w=>w.staff===r);if(!c||n<0||n>=c.noteHeadRects.length){let w=this.getRect();return{x:w.anchorX,y:w.bottom}}let u=c.noteHeadRects[n],h=c.stemTip,l=this.stemDir,p=h!==void 0,m=p?l==="up"?"right":"left":void 0,f=u.height/2,g=u.anchorX,b=u.anchorY,x=u.left-f,C=u.right+f,S=u.top-f,T=u.bottom+f;switch(o==="auto"?o="below":o==="stemTip"&&!p&&(o=l==="up"?"above":"below"),o){case"center":return s==="left"?{x:C,y:b}:{x,y:b};case"above":return!p||l==="down"?{x:g,y:S}:{x:s==="left"&&m==="right"?C:s==="right"&&m==="left"?x:g,y:S};case"below":return!p||l==="up"?{x:g,y:T}:{x:s==="left"&&m==="right"?C:s==="right"&&m==="left"?x:g,y:T};case"stemTip":return{x:g,y:h.anchorY+(l==="up"?-f:f)};default:throw new N(6,"Invalid noteAnchor: "+o)}}else if(r instanceof Pt){let c=(a=this.tabObjects.find(m=>m.tab===r))==null?void 0:a.fretNumbers[n];if(!c)return{x:0,y:0};let u=c.getRect(),h=s==="right"?u.left:u.right,l,p=.9;if(e.connective==="slide"){let m=e.noteGroups[0].getFretNumber(r,0),f=e.noteGroups[1].getFretNumber(r,0),g=m===void 0||f===void 0||m<=f;s==="left"?l=(g?u.anchorY+u.bottomh:u.anchorY-u.toph)*p:l=(g?u.anchorY-u.toph:u.anchorY+u.bottomh)*p}else l=u.anchorY+u.bottomh*p;return{x:h,y:l}}else return{x:0,y:0}}getFretNumberString(e){return this.runningStringNumbers[e]}getFretNumber(e,r){let n=this.tabObjects.find(s=>s.tab===e),o=n==null?void 0:n.fretNumbers[r];return o?parseInt(o.getText()):void 0}getNextNoteGroup(){let e=this.measure.getVoiceSymbols(this.voiceId).filter(o=>o instanceof i),r=e.indexOf(this);if(r<0)return;if(r<e.length-1)return e[r+1];let n=this.measure.getNextMeasure();for(;n;){let o=n.getVoiceSymbols(this.voiceId).filter(s=>s instanceof i);if(o.length>0)return o[0];n=n.getNextMeasure()}}collectConnectiveProps(){this.startConnnectives.forEach(e=>{this.runningConnectives.push(e);let r=this.getNextNoteGroup();for(;r&&e.addNoteGroup(r);)r.runningConnectives.push(e),r=r.getNextNoteGroup()})}removeConnectiveProps(){this.runningConnectives=[]}getPlaySlur(){let e=this.runningConnectives.filter(r=>r.connective==="slur").map(r=>r.startsWith(this)?"first":"slurred");return e.indexOf("first")>=0?"first":e.indexOf("slurred")>=0?"slurred":void 0}getBeamGroup(){return this.beamGroup}setBeamGroup(e){this.beamGroup=e}resetBeamGroup(){this.leftBeamCount=this.rightBeamCount=0,this.beamGroup=void 0}getBeamCoords(){return this.staffObjects.map(e=>{var a,c,u,h;let r=e.staff,n=(c=(a=e.stemTip)==null?void 0:a.anchorX)!=null?c:e.noteHeadRects[0].anchorX,o=(h=(u=e.stemTip)==null?void 0:u.anchorY)!=null?h:this.stemDir==="up"?e.getRect().top:e.getRect().bottom,s=this.stemDir==="up"?Math.abs(e.noteHeadRects[0].anchorY-o):Math.abs(e.noteHeadRects[e.noteHeadRects.length-1].anchorY-o);return{staff:r,x:n,y:o,stemHeight:s}})}getStemHeight(e){let{unitSize:r}=e,{flagCount:n,hasStem:o}=this.rhythmProps;if(o){let s=this.hasBeamCount()?ct.BeamSeparation:ct.FlagSeparation;return(ct.StemHeight+Math.max(0,n-1)*s)*r}else return 0}hasBeamCount(){return this.leftBeamCount>0||this.rightBeamCount>0}getLeftBeamCount(){return this.leftBeamCount}getRightBeamCount(){return this.rightBeamCount}setLeftBeamCount(e){this.leftBeamCount=e}setRightBeamCount(e){this.rightBeamCount=e}hasTuplet(){return this.rhythmProps.tupletRatio!==void 0}isEmpty(){return this.staffObjects.length===0&&this.tabObjects.length===0}visibleInStaff(e){return e.containsVoiceId(this.voiceId)&&this.staffObjects.some(r=>r instanceof ic&&r.staff===e)}getPlayTicks(e){let r=this.runningConnectives.filter(n=>n.connective==="tie").map(n=>{let o=n.noteGroups,s=o.indexOf(this);if(s<0)return 0;if(n.span==="stub"||n.span==="toMeasureEnd")return Math.max(this.rhythmProps.ticks,this.measure.getMeasureTicks()-this.col.positionTicks);let a=o[s-1];return a&&a.notes.some(c=>U.equals(c,e))?0:(o=o.slice(s),s=o.findIndex(c=>c.notes.every(u=>!U.equals(u,e))),s>=0&&(o=o.slice(0,s)),$.Math.sum(o.map(c=>c.rhythmProps.ticks)))});return r.length===0?this.rhythmProps.ticks:Math.max(...r)}updateAccidentalState(e){this.notes.forEach(r=>{e.needAccidental(r)&&e.setAccidental(r)})}layout(e,r){this.requestRectUpdate();let{unitSize:n}=e,{row:o,stemDir:s}=this,{dotCount:a,flagCount:c,hasStem:u}=this.rhythmProps,h=ct.DotSize*n,l=(this.diamond?ct.DiamondNoteHeadSize:ct.NoteHeadWidth)*n,p=(this.diamond?ct.DiamondNoteHeadSize:ct.NoteHeadHeight)*n;this.staffObjects.length=0,o.getStaves().forEach(m=>{if(!m.containsDiatonicId(this.runningDiatonicId)||!m.containsVoiceId(this.voiceId))return;let f=new ic(m,this),g=m,b=m;this.notes.forEach((A,_)=>{var F;let E=_===0,q=_===this.notes.length-1,M=(F=m.getActualStaff(A.diatonicId))!=null?F:m,R=this.isNoteDisplaced[_]?l*(s==="down"?-1:1):0,B=M.getDiatonicIdY(A.diatonicId),D=M.isLine(A.diatonicId);E&&s==="up"&&(g=M),q&&s==="up"&&(b=M),E&&s==="down"&&(b=M),q&&s==="down"&&(g=M);let j=f.noteHeadRects[_]=G.createCentered(R,B,l,p);if(M.addObject(j),r.needAccidental(A)){let W=f.accidentals[_]=new Hi(this,A.diatonicId,A.accidental,this.color);W&&(W.layout(e),W.setAnchor(-j.leftw-n*ct.NoteAccSpace-W.getRect().rightw,B)),M.addObject(W)}for(let W=0;W<a;W++){let K=j.right+ct.NoteDotSpace*n+h/2+W*h*1.5,k=B+this.getDotVerticalDisplacement(m,A.diatonicId,s)*n,nt=G.createCentered(K,k,h,h);f.dotRects.push(nt),M.addObject(nt)}if(this.staccato){if(s==="up"&&E){let W=R,K=B+n*(D?3:2),k=G.createCentered(W,K,h,h);f.dotRects.push(k),g.addObject(k)}else if(s==="down"&&q){let W=R,K=B-n*(D?3:2),k=G.createCentered(W,K,h,h);f.dotRects.push(k),g.addObject(k)}}});let x=f.noteHeadRects[0].anchorY,C=f.noteHeadRects[f.noteHeadRects.length-1].anchorY,S=s==="up"?l/2:-l/2,T=this.getStemHeight(e),w=s==="up"?C-T:x+T,v=s==="up"?x:C;if(u&&(f.stemTip=new G(S,S,w,w),f.stemBase=new G(S,S,v,v),b.addObject(f.stemTip),g.addObject(f.stemBase)),!this.hasBeamCount()){let A=c===0?0:ct.FlagWidth*n,_=c===0?0:ct.FlagHeight*n;for(let E=0;E<c;E++){let q=E*n*ct.FlagSeparation,M=f.flagRects[E]=s==="up"?new G(S,S+A,w+q,w+_+q):new G(S,S+A,w-_-q,w-q);b.addObject(M)}}this.staffObjects.push(f),this.measure.addStaticObject(m,f)}),this.tabObjects.length=0,o.getTabs().forEach(m=>{if(!m.containsVoiceId(this.voiceId))return;let f=new Oh(m,this),g=X.Background,b=X.Tab_Note;this.notes.forEach((x,C)=>{let S=this.runningStringNumbers[C];if(y.isIntegerBetween(S,1,6)){let T=x.chromaticId-m.getTuningStrings()[S-1].chromaticId,w=new st(this,{text:String(T),color:b,bgcolor:g},.5,.5);w.layout(e),w.setAnchor(this.col.getRect().anchorX,m.getStringY(S-1)),f.fretNumbers.push(w)}}),f.fretNumbers.length>0&&(this.tabObjects.push(f),m.addObject(f),this.measure.addStaticObject(m,f))})}updateRect(){if(this.staffObjects.length>0)this.rect=this.staffObjects[0].noteHeadRects[0].clone();else if(this.tabObjects.length>0&&this.tabObjects[0].fretNumbers.length>0)this.rect=this.tabObjects[0].fretNumbers[0].getRect().clone();else{this.rect=new G;return}this.staffObjects.forEach(e=>this.rect.expandInPlace(e.getRect())),this.tabObjects.forEach(e=>this.rect.expandInPlace(e.getRect()))}setStemTipY(e,r){let n=this.staffObjects.find(o=>o.staff===e);this.hasBeamCount()&&(n!=null&&n.stemTip)&&r!==n.stemTip.anchorY&&(n.stemTip.top=n.stemTip.anchorY=n.stemTip.bottom=r,this.requestRectUpdate(),this.col.requestRectUpdate())}offset(e,r){this.staffObjects.forEach(n=>n.offset(e,0)),this.tabObjects.forEach(n=>n.offset(e,0)),this.requestRectUpdate()}draw(e){e.drawDebugRect(this.getRect());let{stemDir:r}=this,{isSolidNoteHead:n}=this.rhythmProps;this.staffObjects.forEach(o=>{o.accidentals.forEach(s=>s.draw(e)),e.color(this.color),e.lineWidth(1),o.noteHeadRects.forEach(s=>{this.diamond?n?(e.beginPath(),e.moveTo(s.anchorX,s.top),e.lineTo(s.right,s.anchorY),e.lineTo(s.anchorX,s.bottom),e.lineTo(s.left,s.anchorY),e.lineTo(s.anchorX,s.top),e.fill()):(e.beginPath(),e.lineWidth(2.5),e.moveTo(s.anchorX,s.top),e.lineTo(s.right,s.anchorY),e.moveTo(s.left,s.anchorY),e.lineTo(s.anchorX,s.bottom),e.stroke(),e.beginPath(),e.lineWidth(1),e.moveTo(s.right,s.anchorY),e.lineTo(s.anchorX,s.bottom),e.moveTo(s.anchorX,s.top),e.lineTo(s.left,s.anchorY),e.stroke()):(e.beginPath(),e.ellipse(s.anchorX,s.anchorY,s.leftw,s.toph,-.3,0,Math.PI*2),n?e.fill():e.stroke())}),o.dotRects.forEach(s=>e.fillCircle(s.anchorX,s.anchorY,s.width/2)),o.stemTip&&o.stemBase&&(e.beginPath(),e.moveTo(o.stemBase.anchorX,o.stemBase.anchorY),e.lineTo(o.stemTip.anchorX,o.stemTip.anchorY),e.stroke()),o.flagRects.forEach(s=>e.drawFlag(s,r==="up"?"up":"down"))}),this.tabObjects.forEach(o=>o.fretNumbers.forEach(s=>s.draw(e)))}getDotVerticalDisplacement(e,r,n){return e.isLine(r)?n==="up"?-1:1:0}static hasSameNotes(e,r){if(e.notes.length!==r.notes.length)return!1;for(let n=0;n<e.notes.length;n++){let o=e.notes[n],s=r.notes[n];if(o.diatonicId!==s.diatonicId||o.accidental!==s.accidental)return!1}return!0}};var kr=class extends tt{constructor(e,r){super(e);this.measure=e;this.positionTicks=r;d(this,"voiceSymbol",new vr);d(this,"lyricsObject",new qs);d(this,"minDiatonicId");d(this,"maxDiatonicId");d(this,"staffMinDiatonicId",new lt);d(this,"staffMaxDiatonicId",new lt);d(this,"arpeggioDir");d(this,"arpeggios",[]);d(this,"playerProps");d(this,"needLayout",!0);d(this,"shapeRects",[]);d(this,"mi");this.playerProps=new Zn(this),this.mi=new ss(this)}getMusicInterface(){return this.mi}getPlayerProps(){return this.playerProps}getNextColumnInMeasure(){let e=this.measure.getColumns().indexOf(this);if(e>=0&&e<this.measure.getColumnCount())return this.measure.getColumn(e+1);throw new N(6,"Cannot get next column in measure because current column's id in mesure is invalid.")}getNextColumn(){var r;let e=this.getNextColumnInMeasure();return e||((r=this.measure.getNextMeasure())==null?void 0:r.getColumn(0))}getTicksToNextColumn(){let e=this.getNextColumnInMeasure(),r=this.positionTicks,n=e?e.positionTicks:this.measure.getConsumedTicks();return Math.max(0,n-r)}getShapeRects(){return this.forceRectUpdate(),this.shapeRects}get doc(){return this.measure.doc}get row(){return this.measure.row}pick(e,r){let n=this.getRect().contains(e,r);for(let o=0;o<this.voiceSymbol.length;o++){let s=this.voiceSymbol.get(o);if(s instanceof ce){let a=s.pick(e,r);if(a.length>0)return n?[this,...a]:a}}if(!n)return[];for(let o=0;o<this.voiceSymbol.length;o++){let s=this.voiceSymbol.get(o);if(s instanceof At){let a=s.pick(e,r);if(a.length>0)return[this,...a]}}for(let o=0;o<this.arpeggios.length;o++){let s=this.arpeggios[o].pick(e,r);if(s.length>0)return[this,...s]}return[]}hasArpeggio(){return this.arpeggioDir!==void 0}getArpeggioDir(){var e;return(e=this.arpeggioDir)!=null?e:"up"}setVoiceSymbol(e,r){Bo(e),this.voiceSymbol.set(e,r),r instanceof ce&&!r.hide?this.row.getStaves().forEach(n=>{let o=r.getDiatonicId(n);this.minDiatonicId=this.minDiatonicId===void 0?o:Math.min(this.minDiatonicId,o),this.maxDiatonicId=this.maxDiatonicId===void 0?o:Math.max(this.maxDiatonicId,o)}):r instanceof At&&(this.minDiatonicId=this.minDiatonicId===void 0?r.notes[0].diatonicId:Math.min(this.minDiatonicId,r.notes[0].diatonicId),this.maxDiatonicId=this.maxDiatonicId===void 0?r.notes[r.notes.length-1].diatonicId:Math.max(this.maxDiatonicId,r.notes[r.notes.length-1].diatonicId),r.arpeggio!==void 0&&(this.arpeggioDir=r.arpeggio),this.updateNoteDisplacements()),this.requestLayout(),this.requestRectUpdate()}getVoiceSymbol(e){return this.voiceSymbol.get(e)}getLyricsObject(e,r,n){return this.lyricsObject.get(e,r,n)}addLyricsObject(e){this.lyricsObject.set(e.verse,e.line,e.vpos,e)}updateNoteDisplacements(){let e=[];this.voiceSymbol.forEach(n=>{n instanceof At&&n.notes.forEach(o=>{n.setNoteDisplacement(o,!1),e.push({noteGroup:n,note:o})})});let r=(n,o)=>{let s=U.compareFunc(n.note,o.note);return s===0?n.noteGroup.stemDir===o.noteGroup.stemDir?0:n.noteGroup.stemDir==="up"?1:-1:s};if(e.sort(r),!(e.length<2)){for(let n=0;n<e.length;n++){let o=e[n],s=e[n+1];s&&o.note.diatonicId===s.note.diatonicId&&(o.isDisplaced=s.isDisplaced=!1)}for(let n=0;n<e.length;n++){let o=e[n-1],s=e[n],a=e[n+1];s.isDisplaced===void 0&&(o&&s.note.diatonicId-o.note.diatonicId<=1?s.isDisplaced=!o.isDisplaced:a&&a.note.diatonicId-s.note.diatonicId<=1&&(s.isDisplaced=!a.isDisplaced))}e.forEach(n=>{var o;return n.noteGroup.setNoteDisplacement(n.note,(o=n.isDisplaced)!=null?o:!1)})}}isEmpty(){return this.voiceSymbol.size===0||this.voiceSymbol.every(e=>e.isEmpty())}getPlayerNotes(){let e=[];function r(n,o,s,a){if(o<=0)return;e.some(u=>n.diatonicId===u.note.diatonicId&&n.accidental===u.note.accidental?(u.ticks=Math.max(u.ticks,o),!0):!1)||e.push({note:n,ticks:o,staccato:s,slur:a})}return ae().forEach(n=>{let o=this.getVoiceSymbol(n);if(o instanceof At){let s=o.getPlaySlur();o.notes.forEach(a=>{let c=o.getPlayTicks(a),u=o.staccato;r(a,c,u,s)})}}),e.sort((n,o)=>U.compareFunc(n.note,o.note)),this.hasArpeggio()&&this.getArpeggioDir()==="down"&&e.reverse(),e}requestLayout(){this.needLayout||(this.needLayout=!0,this.measure.requestLayout())}layout(e,r){if(!this.needLayout)return;let{row:n}=this;this.rect=new G,this.requestRectUpdate();let o=0,s=0;if(this.voiceSymbol.forEach(h=>{h.layout(e,r);let l=h.getRect();o=Math.max(o,l.leftw),s=Math.max(s,l.rightw)}),this.arpeggioDir!==void 0){this.arpeggios=n.getNotationLines().map(l=>new ec(this,l,this.getArpeggioDir())),this.arpeggios.forEach(l=>l.layout(e));let h=this.arpeggios.map(l=>l.getRect().width).reduce((l,p)=>Math.max(l,p))+e.unitSize;this.arpeggios.forEach(l=>{l.setAnchor(-o-h/2,l.line.getRect().anchorY),l.line.addObject(l),this.measure.addStaticObject(l.line,l)}),o+=h}else this.arpeggios=[];let a=this.voiceSymbol.mapToArray(h=>h.rhythmProps.noteSize),c=Math.min(8,Math.max(1,...a)),u=Math.ceil(8/c)*ct.NoteHeadWidth*e.unitSize*.75;o=Math.max(o,u/2),s=Math.max(s,u/2),o*=ct.ColumnWidthScale,s*=ct.ColumnWidthScale,this.rect.left=-o,this.rect.anchorX=0,this.rect.right=s,this.requestRectUpdate(),this.voiceSymbol.forEach(h=>h.updateAccidentalState(r)),this.row.getStaves().forEach(h=>{let l,p;this.voiceSymbol.forEach(m=>{if(m.visibleInStaff(h)){if(m instanceof At)l=l===void 0?m.minDiatonicId:Math.min(l,m.minDiatonicId),p=p===void 0?m.maxDiatonicId:Math.max(p,m.maxDiatonicId);else if(m instanceof ce){let f=m.getDiatonicId(h);l=l===void 0?f:Math.min(l,f),p=p===void 0?f:Math.max(p,f)}}}),l!==void 0?this.staffMinDiatonicId.set(h,l):this.staffMinDiatonicId.delete(h),p!==void 0?this.staffMaxDiatonicId.set(h,p):this.staffMaxDiatonicId.delete(h)})}layoutReserveSpace(e){let r=this.measure.getColumns(),n=e.unitSize;this.getAnchoredLayoutObjects().forEach(o=>{if(o.layoutGroup.reserveSpace){let s=r.indexOf(this);if(s<0)return;let a=o.getRect().leftw-this.getRect().leftw;if(a>0){let u=r[s-1];u&&u.getAnchoredLayoutObjects().forEach(h=>{if(h.layoutGroupId===o.layoutGroupId){let l=h.getRect().rightw-u.getRect().rightw;this.rect.left-=Math.max(l+a,0)+n,this.requestRectUpdate()}})}let c=o.getRect().rightw-this.getRect().rightw;if(c>0){let u=r[s+1];u&&u.getAnchoredLayoutObjects().forEach(h=>{if(h.layoutGroupId===o.layoutGroupId){let l=h.getRect().leftw-u.getRect().leftw;this.rect.right+=Math.max(c+l,0)+n,this.requestRectUpdate()}})}}})}layoutDone(){this.needLayout=!1}updateRect(){this.shapeRects=[...this.voiceSymbol.filter(e=>e!==void 0).mapToArray(e=>e.getRect().clone()),...this.arpeggios.map(e=>e.getRect().clone())],this.rect.top=Math.min(...this.shapeRects.map(e=>e.top)),this.rect.bottom=Math.max(...this.shapeRects.map(e=>e.bottom)),this.rect.anchorY=(this.rect.top+this.rect.bottom)/2}offset(e,r){this.voiceSymbol.forEach(n=>n.offset(e,0)),this.arpeggios.forEach(n=>n.offset(e,0)),this.shapeRects.forEach(n=>n.offsetInPlace(e,r)),this.rect.offsetInPlace(e,r)}draw(e){e.color(X.Staff_Frame),this.row.getStaves().forEach(r=>{let n=this.staffMinDiatonicId.get(r),o=this.staffMaxDiatonicId.get(r);n!==void 0&&e.drawLedgerLines(r,n,this.getRect().anchorX),o!==void 0&&e.drawLedgerLines(r,o,this.getRect().anchorX)}),this.voiceSymbol.forEach(r=>r.draw(e)),this.arpeggios.forEach(r=>r.draw(e))}};var Lr=class Lr extends tt{constructor(e,r,n="black"){super(e);this.text=r;this.color=n;d(this,"components",[]);d(this,"mi");switch(this.text){case Lr.Coda:this.components=[new st(this,{text:"\u{1D10C}",scale:1.7,color:n},.5,.3),new st(this,{text:" Coda",color:n},0,1)];break;case Lr.toCoda:this.components=[new st(this,{text:"toCoda ",color:n},1,1),new st(this,{text:"\u{1D10C}",scale:1.7,color:n},.5,.3)];break;case Lr.Segno:this.components=[new st(this,{text:"\u{1D10B}",scale:1.1,color:n},.5,1)];break;default:this.components=[];break}this.mi=new as(this)}getMusicInterface(){return this.mi}getText(){return this.text}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){switch(this.text){case Lr.Coda:{let r=this.components[0],n=this.components[1];r.layout(e),n.layout(e),r.setAnchorY(n.getRect().centerY),n.setLeft(r.getRect().right),this.rect=new G(r.getRect().left,r.getRect().anchorX,n.getRect().right,n.getRect().top,n.getRect().anchorY,n.getRect().bottom);break}case Lr.toCoda:{let r=this.components[0],n=this.components[1];r.layout(e),n.layout(e),n.setAnchorY(r.getRect().centerY),r.setRight(n.getRect().left),this.rect=new G(r.getRect().left,n.getRect().anchorX,n.getRect().right,r.getRect().top,r.getRect().anchorY,r.getRect().bottom);break}default:{let r=this.components[0];r.layout(e),this.rect=r.getRect().clone();break}}}offset(e,r){this.components.forEach(n=>n.offset(e,r)),this.rect.offsetInPlace(e,r)}draw(e){e.drawDebugRect(this.rect),this.components.forEach(r=>r.draw(e))}};d(Lr,"toCoda","\u{1D10C} toCoda"),d(Lr,"Coda","Coda \u{1D10C}"),d(Lr,"Segno","\u{1D10B}");var Se=Lr;function Mh(i){return i instanceof st||i instanceof Se?i.getText():i instanceof bi?"[measure]":""}var Rh=class{constructor(t){this.startColumn=t;d(this,"columnRange");d(this,"stopObject");this.columnRange=[t]}get endColumn(){return this.columnRange[this.columnRange.length-1]}addColumn(t){this.endColumn!==t&&this.columnRange.push(t)}setStopObject(t){this.stopObject=t}},nc=class nc extends Xa{constructor(e,r,n,o,s,a){super(e.musicObj);this.headObj=e;d(this,"length");d(this,"visible");d(this,"lineStyle");d(this,"linePos");d(this,"startColumn");this.length=n+1,this.visible=o,this.lineStyle=s,this.linePos=a,this.startColumn=r}isVisible(){return this.visible}getLineStyle(){return this.lineStyle}getLinePos(){return this.linePos}whatStopped(e){let r=e.measure,n=r.getColumns(),o=e.getAnchoredLayoutObjects().filter(s=>s!==this.headObj&&s.layoutGroupId===this.headObj.layoutGroupId).map(s=>s.musicObj).filter(s=>s instanceof st||s instanceof Se)[0];return o||(e===n[n.length-1]&&r.hasEndSection()||r.hasEndSong()||nc.StopNavigations.some(s=>r.hasNavigation(s))?r.getBarLineRight():void 0)}getRange(){let{startColumn:e,length:r}=this,n=e,o=new Rh(n),s=r;for(;;){if(s<=0)return o;let a=this.whatStopped(n);if(a!==void 0)return o.setStopObject(a),o;if(s-=n.getTicksToNextColumn(),n=n.getNextColumn(),!n)return o;s>0&&o.addColumn(n)}}};d(nc,"StopNavigations",["endRepeat","ending"]);var $i=nc;function cs(i){switch(i){case"D.C. al Coda":return"D.C. al Coda";case"D.C. al Fine":return"D.C. al Fine";case"D.S. al Coda":return"D.S. al Coda";case"D.S. al Fine":return"D.S. al Fine";case"Fine":return"Fine";case"Segno":return Se.Segno;case"Coda":return Se.Coda;case"toCoda":return Se.toCoda;default:return i[0].toUpperCase()+i.substring(1)}}function us(i){if(/^(p+|f+|m|mp|mf)$/.test(i)){let t=.5-$.Str.charCount(i,"p")*.1+$.Str.charCount(i,"f")*.1;return $.Math.clamp(t,0,1)}else return}function og(i){return y.isEnumValue(i,Uo)?"dynamics":y.isEnumValue(i,zo)?"tempo":void 0}function sg(i,t){return typeof window=="undefined"?void 0:window.setTimeout(i,t)}function ag(i){typeof window!="undefined"&&window.clearTimeout(i)}var Zv=2,Xv=2,Qv=.5,Kv=.5;function Jv(i,t){let e=Kt.get(t.options.beatLength,t.options.dotCount).ticks,r=t.beatsPerMinute*e;return 60*i/r}function Eh(){return us("m")}function t0(i){return i*1.25}var e0=.5,Zn=class{constructor(t){this.col=t;d(this,"speed");d(this,"volume");this.speed=1,this.volume=Eh()}get measure(){return this.col.measure}reset(){this.speed=1,this.volume=Eh()}setSpeed(t){this.speed=t}getSpeed(){return this.speed}getTempo(){let t=$.Math.clamp(this.getSpeed(),.1,10);return bu(this.measure.getTempo(),t)}setVolume(t){this.volume=t}getVolume(){return this.volume}hasFermata(){return this.measure.hasFermata(this.col)}getFermataHoldTicks(){if(!this.hasFermata())return 0;let{col:t}=this;if(t instanceof xr)return this.measure.getMeasureTicks()/2;{let r=ae().map(n=>t.getVoiceSymbol(n)).filter(n=>!!n).map(n=>n.rhythmProps.ticks);return r.length===0?0:$.Math.sum(r)/r.length}}},oc=class i{constructor(){d(this,"playTimer");d(this,"playPos");d(this,"playState",2);d(this,"doc");d(this,"cursorPositionChangeListener");d(this,"playStateChnageListener");d(this,"playerColumnSequence",[])}setDocument(t){this.doc=t,this.doc.resetMeasures(),this.playerColumnSequence=this.collectPlayerColumnSequence(),this.updatePlayerProps()}setCursorPositionChangeListener(t){this.cursorPositionChangeListener=t}setPlayStateChnageListener(t){this.playStateChnageListener=t}notifyCursorPositionChanged(){this.cursorPositionChangeListener&&this.cursorPositionChangeListener(this.getCursorRect())}notifyPlayStateChanged(){let t=this.playPos!==void 0&&this.playTimer!==void 0?0:this.playPos!==void 0&&this.playTimer===void 0?1:2;this.playState!==t&&(this.playStateChnageListener&&this.playStateChnageListener(t),this.playState=t)}collectPlayerMeasureSequence(){var a;if(!this.doc)return[];let t=[],e=this.doc.getFirstMeasure(),r=e,n,o=!1,s=!1;for(;e;){if(e.incPassCount(),e.getEnding()){let u=e.getPassCount();e=i.getMeasureByEndingPassage(e,u)}if(e)if(t.push(e),e.hasNavigation("startRepeat")&&(r=e),e.hasNavigation("Segno")&&(n=e),s&&e.hasNavigation("toCoda"))for(;e&&!e.hasNavigation("Coda");)e=e.getNextMeasure();else if(o&&e.hasNavigation("Fine"))e=void 0;else if(e.hasNavigation("D.C. al Coda"))s=!0,e=this.doc.getFirstMeasure();else if(e.hasNavigation("D.C. al Fine"))o=!0,e=this.doc.getFirstMeasure();else if(e.hasNavigation("D.S. al Coda"))s=!0,e=n;else if(e.hasNavigation("D.S. al Fine"))o=!0,e=n;else if(e.hasNavigation("endRepeat")){let u=e.getPassCount(),h=e.getEndRepeatPlayCount()-1,l=((a=e.getNextMeasure())==null?void 0:a.hasNavigation("ending"))===!0;u<=h||l?e=r:e=e.getNextMeasure()}else e.hasEndSong()?e=void 0:e=e.getNextMeasure()}return t}collectPlayerColumnSequence(){let t=this.collectPlayerMeasureSequence(),e=[];for(let r=0;r<t.length;r++){let n=t[r];e=e.concat(n.getColumns()),n.hasFermata(n.getBarLineRight())&&e.push(n.getBarLineRight())}return e}updatePlayerProps(){if(this.playerColumnSequence.forEach(a=>a.getPlayerProps().reset()),!this.doc)return;let t=1,e=Eh(),r=new lt,n=new lt,o=(a,c)=>r.getOrCreate(a,[]).push(c),s=(a,c)=>n.getOrCreate(a,[]).push(c);this.playerColumnSequence.forEach(a=>{if(!(a instanceof kr))return;a.getAnchoredLayoutObjects().forEach(h=>{let l=Mh(h.musicObj),p;if(l==="a tempo")t=1;else if((p=us(l))!==void 0)e=p;else if(h.musicObj.getLink()instanceof $i){let f=h.musicObj.getLink().getRange(),g=f.stopObject?Mh(f.stopObject):"",b=$.Math.sum(f.columnRange.map(x=>x.getTicksToNextColumn()));switch(l){case"accel.":{let x=t,C=x*Zv,S=0;f.columnRange.forEach(T=>{S+=T.getTicksToNextColumn(),o(T,x+(C-x)*S/b)});break}case"rit.":{let x=t,C=x/Xv,S=0;f.columnRange.forEach(T=>{S+=T.getTicksToNextColumn(),o(T,x+(C-x)*S/b)});break}case"cresc.":{let x=e,C=x+Qv;f.stopObject&&(p=us(g))!==void 0&&p>x&&(C=p);let S=0;f.columnRange.forEach(T=>{S+=T.getTicksToNextColumn(),s(T,x+(C-x)*S/b)});break}case"decresc.":case"dim.":{let x=e,C=x-Kv;f.stopObject&&(p=us(g))!==void 0&&p<x&&(C=p);let S=0;f.columnRange.forEach(T=>{S+=T.getTicksToNextColumn(),s(T,x+(C-x)*S/b)});break}}}});let c=r.getOrDefault(a,[]);c.length>0&&(t=$.Math.sum(c)/c.length);let u=n.getOrDefault(a,[]);u.length>0&&(e=$.Math.sum(u)/u.length),a.getPlayerProps().setSpeed(t),a.getPlayerProps().setVolume(e)})}static getMeasureByEndingPassage(t,e){for(let r=t;;r=r.getNextMeasure()){let n=r==null?void 0:r.getEnding();if(n&&n.hasPassage(e))return r;let o=r==null?void 0:r.getNextMeasure();if(!r||r.hasEndSong()||r.hasEndSection()||!o||o.hasNavigation("startRepeat"))return}}playStep(){if(this.notifyCursorPositionChanged(),this.notifyPlayStateChanged(),this.playPos===void 0){this.stop();return}let t=this.playerColumnSequence[this.playPos];if(!t){this.stop();return}let e=(s,a)=>{let c=Jv(s,a);return Math.max(0,c)},r=t.getPlayerProps().getTempo(),n=t.getPlayerProps().getFermataHoldTicks(),o;t instanceof xr?o=e(n,r):(t.getPlayerNotes().forEach((a,c)=>{let u=t.hasArpeggio()?Kt.get("32n").ticks*c:0,h=e(a.ticks+n-u,r);if(h>0){a.staccato&&(h=Math.min(e(Kt.get("8n").ticks,r)/2,h/2));let l=t0(t.getPlayerProps().getVolume());if(a.slur==="slurred"&&(l*=e0),u>0){let p=e(u,r);sg(()=>Ua(a.note,h,l),p*1e3)}else Ua(a.note,h,l)}}),o=e(t.getTicksToNextColumn()+n,r)),this.playTimer=sg(()=>this.playStep(),o*1e3),this.playPos=this.getNextPlayPosition(this.playPos),this.notifyPlayStateChanged()}play(){if(this.playState===0)this.stop();else if(this.playState===1){this.playStep();return}let{doc:t}=this;if(!t)return;t.getFirstMeasure()?(this.playPos=0,this.playStep()):this.playPos=void 0,this.notifyPlayStateChanged()}pause(){this.playTimer&&(ag(this.playTimer),this.playTimer=void 0),this.notifyCursorPositionChanged(),this.notifyPlayStateChanged()}stop(){this.playPos=void 0,this.playTimer&&(ag(this.playTimer),this.playTimer=void 0),this.notifyCursorPositionChanged(),this.notifyPlayStateChanged()}getNextPlayPosition(t){return this.playPos!==void 0&&++this.playPos>=this.playerColumnSequence.length&&(this.playPos=void 0),this.playPos}getCursorRect(){if(this.playPos===void 0)return;let t=this.playerColumnSequence[this.playPos];if(!t)return;let e=t.measure,r=t.getRect().anchorX,{top:n,height:o}=e.row.getRect();return new uu(r,n,0,o)}};var Dh=class extends tt{constructor(e,r,n){super(r);this.barLine=e;this.line=r;this.rowGroup=n;d(this,"vlines",[]);d(this,"dots",[]);d(this,"mi");r.addObject(this),this.mi=new ds(this)}getMusicInterface(){return this.mi}pick(e,r){return this.getRect().contains(e,r)?[this]:[]}updateRect(){this.rect=new G(0,0,this.line.getTopLineY(),this.line.getBottomLineY()),this.vlines.forEach(e=>this.rect.expandInPlace(new G(e.left,e.left+e.width,this.rect.top,this.rect.bottom))),this.dots.forEach(e=>this.rect.expandInPlace(new G(e.x-e.r,e.x+e.r,e.y-e.r,e.y+e.r)))}offset(e,r){this.vlines.forEach(n=>n.left+=e),this.dots.forEach(n=>{n.x+=e,n.y+=r}),this.rect.offsetInPlace(e,r)}},sc=class extends tt{constructor(e){super(e);this.measure=e;d(this,"notationLineObjects",[]);d(this,"notationLineObjectsByGrp",new lt);d(this,"barLineType",0)}get doc(){return this.measure.doc}get row(){return this.measure.row}pick(e,r){if(!this.getRect().contains(e,r))return[];for(let n=0;n<this.notationLineObjects.length;n++){let o=this.notationLineObjects[n].pick(e,r);if(o.length>0)return[this,...o]}return[this]}layout(e){this.requestRectUpdate(),this.barLineType=this.solveBarLineType();let{unitSize:r,_lineWidth:n}=e,{measure:o,barLineType:s}=this,{row:a}=o,c=n,u=.7*r,h=.7*r,p=ct.DotSize*r/2;this.notationLineObjects=[],this.notationLineObjectsByGrp.clear(),a.getRowGroups().forEach(m=>{m.lines.forEach(f=>{let g=new Dh(this,f,m);this.notationLineObjects.push(g),this.notationLineObjectsByGrp.getOrCreate(m,[]).push(g);let b,x,C=(T,w)=>{g.vlines.push({left:T,width:w})},S=T=>{for(let w=-1;w<=1;w+=2){let v=b+w*x;g.dots.push({x:T,y:v,r:p})}};switch(f instanceof Et?(b=f.getMiddleLineY(),x=f.getDiatonicSpacing()):(b=(f.getBottomLineY()+f.getTopLineY())/2,x=(f.getBottomLineY()-f.getTopLineY())/6),s){case 0:break;case 1:C(-c,c);break;case 2:C(-c-h-c,c),C(-c,c);break;case 3:C(-c-h-u,c),C(-u,u);break;case 4:C(0,u),C(u+h,c),S(u+h+c+h+p);break;case 5:C(-c-h-u,c),C(-u,u),S(-c-h-u-h-p);break;case 6:C(-u/2,u),C(-u/2-h-c,c),C(u/2+h,c),S(-u/2-h-c-h-p),S(u/2+h+c+h+p);break}g.forceRectUpdate()})})}updateRect(){if(this.notationLineObjects.length>0){this.rect=this.notationLineObjects[0].getRect().clone();for(let e=1;e<this.notationLineObjects.length;e++)this.rect.expandInPlace(this.notationLineObjects[e].getRect())}else this.rect=new G}offset(e,r){this.notationLineObjects.forEach(n=>n.offset(e,0)),this.requestRectUpdate()}draw(e){this.barLineType!==0&&(e.drawDebugRect(this.getRect()),this.notationLineObjects.forEach(r=>{r.vlines.forEach(n=>r.line.drawVerticalLine(e,n.left,n.width)),r.dots.forEach(n=>e.fillCircle(n.x,n.y,n.r))}))}},xi=class extends sc{constructor(e){super(e);d(this,"mi");this.mi=new ls(this)}getMusicInterface(){return this.mi}solveBarLineType(){let e=this.measure,r=e.getPrevMeasure();return e.hasNavigation("startRepeat")?r&&r.row===e.row&&r.hasNavigation("endRepeat")?0:4:0}},xr=class extends sc{constructor(e){super(e);d(this,"playerProps");d(this,"mi");this.playerProps=new Zn(this),this.mi=new hs(this)}getMusicInterface(){return this.mi}getPlayerProps(){return this.playerProps}solveBarLineType(){let e=this.measure,r=e.getNextMeasure();return e.hasNavigation("endRepeat")?r&&r.row===e.row&&r.hasNavigation("startRepeat")?6:5:!e.doc.hasSingleMeasure()&&(e.hasEndSong()||!e.getNextMeasure())?3:e.hasEndSection()||e===e.row.getLastMeasure()&&r&&r.row===e.row.getNextRow()&&r.hasNavigation("startRepeat")?2:r&&r.hasNavigation("startRepeat")?0:1}};var Zi=class extends tt{constructor(e,r,n){super(e);this.measure=e;this.color=r;this.passages=n;d(this,"endingText");d(this,"shapeRects",[]);d(this,"mi");if(this.mi=new ps(this),y.isIntegerGte(n.length,1)){if(!this.passages.every(s=>y.isIntegerGte(s,1)))throw new N(6,"Invalid passages: "+this.passages)}else throw new N(6,"Passages is empty.");this.passages.sort((s,a)=>s-a);let o=this.passages.map(s=>s+".").join("");this.endingText=new st(this,{text:o,color:r},0,1)}getMusicInterface(){return this.mi}getShapeRects(){return this.shapeRects}isSingleMeasureEnding(){let{measure:e}=this,r=e.getNextMeasure();return(r==null?void 0:r.hasNavigation("ending"))===!0||e.hasNavigation("endRepeat")||e.isLastMeasure()}hasPassage(e){return this.passages.some(r=>r===e)}getHighestPassage(){return Math.max(0,...this.passages)}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){this.rect=new G,this.shapeRects=[this.rect.clone()]}layoutFitToMeasure(e){let{unitSize:r}=e,{measure:n}=this;this.endingText.layout(e);let o=this.endingText.getRect(),s=n.getColumnsContentRect(),a=o.height;this.rect=new G(s.left+r,s.right-r,-a,0),this.endingText.setLeft(this.rect.left+r/2),this.endingText.setBottom(this.rect.bottom),this.shapeRects=[new G(this.rect.left,this.rect.left+1,this.rect.top,this.rect.bottom),new G(this.rect.left,this.rect.right,this.rect.top,this.rect.top+1),new G(this.rect.right-1,this.rect.right,this.rect.top,this.rect.bottom),this.endingText.getRect().clone()]}offset(e,r){this.endingText.offset(e,r),this.shapeRects.forEach(n=>n.offsetInPlace(e,r)),this.rect.offsetInPlace(e,r)}draw(e){let{rect:r}=this;e.drawDebugRect(this.rect),e.color(this.color).lineWidth(1),e.beginPath(),e.moveTo(r.left,r.bottom),e.lineTo(r.left,r.top),e.lineTo(r.right,r.top),this.isSingleMeasureEnding()&&e.lineTo(r.right,r.bottom),e.stroke(),this.endingText.draw(e)}};var r0=(i,t)=>{let e=ct.BeamAngleFactor;if(!Number.isFinite(e)||e===0)return t;{let r=i/t/e;return r=Math.sign(r)*Math.sqrt(Math.abs(r)),i/r*e}},ms=class{constructor(t,e,r,n,o){this.staff=t;this.beamGroup=e;this.symbol=r;this.x=n;this.y=o;d(this,"topBeamsHeight",0);d(this,"bottomBeamsHeight",0);t.addObject(this)}offset(t,e){this.x+=t,this.y+=e,this.beamGroup.requestRectUpdate()}getRect(){return new G(this.x,this.x,this.x,this.y-this.topBeamsHeight,this.y,this.y+this.bottomBeamsHeight)}},kh=class extends tt{constructor(e,r){super(e);this.staff=e;this.beamGroup=r;d(this,"tupletNumber");d(this,"tupletNumberOffsetY",0);d(this,"points",[]);d(this,"mi");e.addObject(this),this.mi=new gs(this)}getMusicInterface(){return this.mi}pick(e,r){return this.getRect().contains(e,r)?[this]:[]}offset(e,r){var n;this.points.forEach(o=>o.offset(e,0)),(n=this.tupletNumber)==null||n.offset(e,r),this.requestRectUpdate(),this.beamGroup.requestRectUpdate()}updateRect(){this.points.length>0?this.rect=this.points[0].getRect().clone():this.tupletNumber&&(this.rect=this.tupletNumber.getRect().clone()),this.points.forEach(e=>this.rect.expandInPlace(e.getRect())),this.tupletNumber&&this.rect.expandInPlace(this.tupletNumber.getRect())}},Ai=class{constructor(t,e){this.beamGroup=t;this.message=e}},Xi=class i extends tt{constructor(e,r){super(e[0].measure);this.symbols=e;this.tupletRatio=r;d(this,"mi");d(this,"type");d(this,"staffObjects",[]);this.mi=new fs(this);let n=r?"Tuplet":"BeamGroup";if(e.every(o=>o.measure===e[0].measure)){if(e.length<2)throw new N(6,`${n} needs minimum 2 symbols, but ${e.length} given.`)}else throw new N(6,`All ${n} symbols are not in same measure.`);if(r!==void 0){let o=e.length<3||e.some(s=>!(s instanceof At))||e.some(s=>s.rhythmProps.flagCount!==e[0].rhythmProps.flagCount);e.length>=3&&e[0]instanceof At&&e[e.length-1]instanceof At&&e[0].rhythmProps.flagCount===e[e.length-1].rhythmProps.flagCount&&(o=!1),e.some(s=>Nt.cmp(s.rhythmProps.noteLength,"4n")>=0)&&(o=!0),this.type=o?2:1,this.setTupletBeamCounts()}else this.type=0,this.setBeamCounts();if(e.every(o=>o.getBeamGroup()===void 0))e.forEach(o=>o.setBeamGroup(this)),e[0].measure.addBeamGroup(this);else throw new N(6,`Cannot add ${n} because some symbol already has one.`);if(this.type===0&&this.symbols.filter(o=>o instanceof At).some((o,s)=>{let a=s===0,c=s===this.symbols.length-1;if(a&&o.getRightBeamCount()===0||c&&o.getLeftBeamCount()===0||!a&&!c&&(o.getLeftBeamCount()===0||o.getRightBeamCount()===0))throw new Ai(this,"Beam has zero left or right beam count!")}),e.some(o=>o.voiceId!==e[0].voiceId))throw this.type===0?new Ai(this,"Beam symbols have different voiceId."):new N(6,"Tuplet symbols have different voiceId.");e[0].row.getStaves().forEach(o=>{o.getActualStaff(e[0].getDiatonicId(o))&&o.containsVoiceId(e[0].voiceId)&&e.forEach(s=>{let a=o.getActualStaff(s.getDiatonicId(o));if(!a||!a.containsVoiceId(s.voiceId))throw new Ai(this,"Some of beam or tuplet symbols are not visible!")})})}get stemDir(){return this.symbols[0].stemDir}get showTupletRatio(){var e;return((e=this.tupletRatio)==null?void 0:e.showRatio)===!0}static createBeam(e){if(e.length>1&&e.every(r=>!r.hasTuplet()))try{return new i(e,void 0),!0}catch(r){if(r instanceof Ai)r.beamGroup.detach();else throw r}return!1}static createOldStyleTriplet(e){try{let r=e.slice(0,2),n=r.map(a=>a.rhythmProps.noteSize);if(r.length===2&&r.every(a=>a.oldStyleTriplet&&a.getBeamGroup()===void 0)&&(n[0]*2===n[1]||n[1]*2===n[0]))return new i(r,Gr.Triplet),2;let o=e.slice(0,3),s=o.map(a=>a.rhythmProps.noteSize);if(o.length===3&&o.every(a=>a.oldStyleTriplet&&a.getBeamGroup()===void 0)&&s.every(a=>a===s[0]))return new i(o,Gr.Triplet),3}catch(r){if(r instanceof Ai)console.error(r.message),r.beamGroup.detach();else throw r}return 0}static createTuplet(e,r){try{new i(e,r)}catch(n){if(n instanceof Ai)console.error(n.message),n.beamGroup.detach();else throw n}}getMusicInterface(){return this.mi}detach(){this.getSymbols().forEach(e=>e.resetBeamGroup())}isEmpty(){return this.staffObjects.length===0}pick(e,r){if(!this.getRect().contains(e,r))return[];for(let n=0;n<this.staffObjects.length;n++){let o=this.staffObjects[n].pick(e,r);if(o.length>0)return[this,...o]}return[this]}getType(){return this.type}isTuplet(){return this.type===1||this.type===2}getTupletRatioText(){var e,r,n;return this.showTupletRatio?String((e=this.tupletRatio)==null?void 0:e.parts)+":"+String((r=this.tupletRatio)==null?void 0:r.inTimeOf):String((n=this.tupletRatio)==null?void 0:n.parts)}getSymbols(){return this.symbols}getFirstSymbol(){return this.symbols[0]}getLastSymbol(){return this.symbols[this.symbols.length-1]}get color(){return this.symbols[0].color}layout(e){this.requestRectUpdate(),this.staffObjects.length=0;let r=this.getSymbols();if(r.length===0)return;let{unitSize:n}=e,{stemDir:o,type:s}=this,a=r.map(c=>c.getBeamCoords());a[0].map(c=>c==null?void 0:c.staff).forEach((c,u)=>{var B,D;if(!c)return;let h=a.map(j=>{var F;return(F=j[u])==null?void 0:F.x}),l=a.map(j=>{var F;return(F=j[u])==null?void 0:F.y}),p=a.map(j=>{var F;return(F=j[u])==null?void 0:F.staff}),m=a.map(j=>{var F;return(F=j[u])==null?void 0:F.stemHeight}),f=r[0],g=h[0],b=l[0],x=p[0],C=r[r.length-1],S=h[h.length-1],T=l[l.length-1],w=p[l.length-1];if(g===void 0||b===void 0||x===void 0||S===void 0||T===void 0||w===void 0)return;let v=(B=m[0])!=null?B:0,A=(D=m[m.length-1])!=null?D:0;if(s!==2){let j=v<A?Math.sqrt(A-v):0,F=A<v?Math.sqrt(v-A):0;o==="up"&&(j*=-1,F*=-1),j!==0&&(b+=j,l[0]+=j),F!==0&&(T+=F,l[l.length-1]+=F)}let _=n*2*(o==="up"?-1:1),E=(T+b)/2,q=r0(S-g,T-b)/2;b=E-q,T=E+q;let M=0;l.forEach((j,F)=>{let W=h[F];if(W!==void 0&&j!==void 0){let K=$.Math.interpolateY(g,b,S,T,W),k=j-K;o==="up"&&k<0?M=Math.min(M,k):o==="down"&&k>0&&(M=Math.max(M,k))}}),b+=M,T+=M,l=l.map(j=>j===void 0?void 0:j+M);let R=new kh(c,this);if(s===2){let j=n/(S-g),F=$.Math.interpolateCoord(g,b+_,S,T+_,-j),W=$.Math.interpolateCoord(g,b+_,S,T+_,1+j);R.points.push(new ms(x,this,f,F.x,F.y)),R.points.push(new ms(w,this,C,W.x,W.y)),R.tupletNumberOffsetY=0}else if(s===0||s===1){M*=.5;let j=e._lineWidth*ct.BeamThickness,F=W=>{let K=r[W];if(K instanceof At){let k=K instanceof At?Math.max(K.getLeftBeamCount(),K.getRightBeamCount()):0;return ct.BeamSeparation*n*(o==="up"?k-1:0)}else return 0};r.forEach((W,K)=>{let k=p[K],nt=h[K],mt=l[K];if(k&&nt!==void 0&&mt!==void 0){let Ct=new ms(k,this,W,nt,mt);switch(o){case"up":Ct.topBeamsHeight=j/2,Ct.bottomBeamsHeight=j/2+F(K);break;case"down":Ct.topBeamsHeight=j/2+F(K),Ct.bottomBeamsHeight=j/2;break}R.points.push(Ct)}}),R.tupletNumberOffsetY=_}this.isTuplet()&&(R.tupletNumber=new st(this,this.getTupletRatioText(),.5,.5),R.tupletNumber.layout(e),R.tupletNumber.offset((g+S)/2,(b+T)/2+R.tupletNumberOffsetY)),R.points.length>=2&&this.staffObjects.push(R)})}updateRect(){if(this.staffObjects.length===0)this.rect=new G;else{this.staffObjects.forEach(e=>e.updateRect()),this.rect=this.staffObjects[0].getRect().clone();for(let e=1;e<this.staffObjects.length;e++)this.rect.expandInPlace(this.staffObjects[e].getRect())}}updateStemTips(){this.staffObjects.forEach(e=>{let r=e.points[0],n=e.points[e.points.length-1];this.type!==2&&e.points.forEach(o=>{o.symbol instanceof At&&(o!==r&&o!==n&&(o.y=$.Math.interpolateY(r.x,r.y,n.x,n.y,o.x)),o.symbol.setStemTipY(o.staff,o.y))}),e.tupletNumber&&e.tupletNumber.setAnchorY((r.y+n.y)/2+e.tupletNumberOffsetY)})}offset(e,r){this.staffObjects.forEach(n=>n.offset(e,0)),this.requestRectUpdate()}draw(e){let{unitSize:r}=e,{stemDir:n,color:o,type:s}=this;if(s===2){e.color(o).lineWidth(1);let a=(n==="up"?1:-1)*r;this.staffObjects.forEach(c=>{let{x:u,y:h}=c.points[0],{x:l,y:p}=c.points[c.points.length-1];if(c.tupletNumber){let m=c.tupletNumber.getRect().width/(l-u)*1.2,f=$.Math.interpolateCoord(u,h,l,p,.5-m/2),g=$.Math.interpolateCoord(u,h,l,p,.5+m/2);e.strokeLine(u,h,f.x,f.y),e.strokeLine(g.x,g.y,l,p)}else e.strokeLine(u,h,l,p);e.strokeLine(u,h,u,h+a),e.strokeLine(l,p,l,p+a)})}else(s===0||s===1)&&(e.color(o).lineWidth(ct.BeamThickness),this.staffObjects.forEach(a=>{let c=a.points.filter(f=>f.symbol instanceof At),{x:u,y:h}=c[0],{x:l,y:p}=c[c.length-1],m=ct.BeamSeparation*r*(n==="up"?1:-1)*(1+.5*Math.abs(Math.atan2(p-h,l-u)));for(let f=0;f<c.length-1;f++){let{x:g,y:b,symbol:x}=c[f],{x:C,y:S,symbol:T}=c[f+1],w=x.getRightBeamCount(),v=T.getLeftBeamCount();for(let A=0;A<Math.max(w,v);A++)A<w&&A<v?e.strokeLine(g,b,C,S):w>v?e.strokePartialLine(g,b,C,S,0,.25):v>w&&e.strokePartialLine(g,b,C,S,.75,1),b+=m,S+=m}}));this.staffObjects.forEach(a=>{var c;return(c=a.tupletNumber)==null?void 0:c.draw(e)})}setBeamCounts(){let e=(o,s)=>{let{flagCount:a,noteSize:c,dotCount:u}=o.rhythmProps,{flagCount:h,noteSize:l,dotCount:p}=s.rhythmProps;return a>0&&h>0&&u>0&&p===0&&c*Math.pow(2,u)===l},r=this.symbols.filter(o=>o instanceof At);for(let o=0;o<r.length;o++){let s=r[o],a=r[o-1],c=r[o+1];s&&(s.setLeftBeamCount(0),s.setRightBeamCount(0),a&&(a.rhythmProps.flagCount===s.rhythmProps.flagCount||e(a,s)||e(s,a)?s.setLeftBeamCount(s.rhythmProps.flagCount):s.setLeftBeamCount(Math.min(a.rhythmProps.flagCount,s.rhythmProps.flagCount))),c&&(c.rhythmProps.flagCount===s.rhythmProps.flagCount||e(c,s)||e(s,c)?s.setRightBeamCount(s.rhythmProps.flagCount):s.setRightBeamCount(Math.min(c.rhythmProps.flagCount,s.rhythmProps.flagCount))))}let n;do{n=!1;for(let o=0;o<r.length;o++){let s=r[o],a=r[o-1],c=r[o+1];s&&s.getLeftBeamCount()!==s.rhythmProps.flagCount&&s.getRightBeamCount()!==s.rhythmProps.flagCount&&(s.setLeftBeamCount(0),s.setRightBeamCount(0),a&&a.getRightBeamCount()>0&&(a.setRightBeamCount(0),n=!0),c&&c.getLeftBeamCount()>0&&(c.setLeftBeamCount(0),n=!0))}}while(n)}setTupletBeamCounts(){let e=this.getType(),r=this.getSymbols();e===1?r.forEach((n,o)=>{n instanceof At&&(n.setLeftBeamCount(o===0?0:n.rhythmProps.flagCount),n.setRightBeamCount(o===r.length-1?0:n.rhythmProps.flagCount))}):e===2&&r.forEach(n=>{n instanceof At&&(n.setLeftBeamCount(0),n.setRightBeamCount(0))})}};var Ci=class extends tt{constructor(e,r,n){super(e);this.pos=r;this.color=n;d(this,"mi");this.mi=new ys(this)}getMusicInterface(){return this.mi}static getFermataPositions(e){let{measure:r}=e,{row:n}=r;return n.getTopStaff()!==n.getBottomStaff()?[0,1]:[0]}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){let{unitSize:r}=e,n=r*4,o=r*3;this.rect=new G(-n/2,n/2,-o,0)}offset(e,r){this.rect.offsetInPlace(e,r)}draw(e){let{unitSize:r}=e,n=this.pos===1,o=(n?r:-r)*.7,s=this.rect.left,a=this.rect.right,c=(n?this.rect.bottom:this.rect.top)+o,u=(n?this.rect.top:this.rect.bottom)+o,h=u-c;e.drawDebugRect(this.rect),e.color(this.color).lineWidth(1),e.beginPath(),e.moveTo(s,u),e.bezierCurveTo(s,c,a,c,a,u),e.bezierCurveTo(a,c+h/5,s,c+h/5,s,u),e.stroke(),e.fill();let l=h/6;e.fillCircle((s+a)/2,u-l,Math.abs(l))}};function i0(i){return i instanceof st||i instanceof Se}function ug(i){return i instanceof xr||i instanceof st||i instanceof Se}var Xn=class extends tt{constructor(e,r,n,o){super(e);this.measure=e;this.line=r;this.extension=n;this.cols=o;d(this,"mi");n.addTail(this),this.mi=new bs(this)}get row(){return this.measure.row}getMusicInterface(){return this.mi}getLineLeft(e){let r=this.cols[0];if(i0(r))return r.getRect().right+e.unitSize;if(r instanceof xi)return r.getRect().anchorX;if(r instanceof kr){let n=r.measure.getColumns();if(r===n[0])return r.measure.getRect().left}return r.getRect().right}getLineRight(e){let r=this.cols[this.cols.length-1];if(ug(r))return r.getRect().left-e.unitSize;if(r instanceof kr){let n=r.measure.getColumns();if(r===n[n.length-1])return r.measure.getRect().right;let o=r.getNextColumn();if(o&&o.measure===r.measure)return(r.getRect().right+o.getRect().left)/2}return r.getRect().anchorX}layoutFitToMeasure(e){let r=e.unitSize,n=this.getLineLeft(e),o=this.getLineRight(e);[n,o]=[Math.min(n,o),Math.max(n,o)],this.rect=new G(n,o,-r/2,r/2)}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){this.rect=new G}offset(e,r){this.rect.offsetInPlace(e,r)}draw(e){let{rect:r}=this,n=this.extension.headObj.musicObj,o=String(n.userData["extension-color"]);this.extension.getLineStyle()==="dashed"&&e.setLineDash([7,3]),e.color(o).lineWidth(1),e.strokeLine(r.left,r.anchorY,r.right,r.anchorY),e.setLineDash([]);let s=this.extension.getTails(),a=s[s.length-1];if(this===a&&!ug(this.cols[this.cols.length-1])){let c=r.anchorY>this.line.getRect().anchorY?-e.unitSize:e.unitSize;e.strokeLine(r.right,r.anchorY,r.right,r.anchorY+c)}}};var Qi=class extends tt{constructor(e,r,n,o,s,...a){var c;super(n);this.connectiveProps=e;this.measure=n;d(this,"lx",0);d(this,"ly",0);d(this,"rx",0);d(this,"ry",0);d(this,"cp1x",0);d(this,"cp1y",0);d(this,"cp2x",0);d(this,"cp2y",0);d(this,"arcHeight",0);d(this,"line");d(this,"leftNoteGroup");d(this,"leftNoteId");d(this,"rightNoteGroup");d(this,"rightNoteId");d(this,"tieType");d(this,"mi");this.line=(c=this.measure.row.findMatchingLine(r))!=null?c:r,this.leftNoteGroup=o,this.leftNoteId=s,a[0]instanceof At&&typeof a[1]=="number"?(this.rightNoteGroup=a[0],this.rightNoteId=a[1],this.tieType=void 0):y.isEnumValue(a[0],yr)&&(this.rightNoteGroup=void 0,this.rightNoteId=void 0,this.tieType=a[0]),this.measure.addConnectiveObject(this),this.mi=new xs(this)}getMusicInterface(){return this.mi}get doc(){return this.measure.doc}isInsideMeasure(){return this.rightNoteGroup===void 0||this.leftNoteGroup.measure===this.rightNoteGroup.measure}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){let{unitSize:r}=e,{measure:n,line:o,leftNoteGroup:s,leftNoteId:a,rightNoteGroup:c,rightNoteId:u,connectiveProps:h}=this,{noteAnchor:l,arcDir:p}=h,{row:m}=n,f=m.getPrevRow(),g=m.getNextRow(),b=m.getConnectivesContentRect(),x,C;x=s.getConnectiveAnchorPoint(h,o,a,l,"left"),c!==void 0&&u!==void 0?C=c.getConnectiveAnchorPoint(h,o,u,l,"right"):C=this.tieType==="toMeasureEnd"?{x:n.getColumnsContentRect().right,y:x.y}:{x:x.x+r*ct.StubTieLength,y:x.y};let S,T,w,v;if(c===void 0)S=x.x,T=x.y,w=C.x,v=C.y;else if(s.row===m&&c.row===m)S=x.x,T=x.y,w=C.x,v=C.y;else if(s.row===f&&c.row===m){let R=f.getConnectivesContentRect().right-x.x,B=C.x-b.left;S=b.left,T=x.y+(C.y-x.y)*R/(R+B),w=C.x,v=C.y}else if(s.row===m&&c.row===g){let M=g.getConnectivesContentRect(),R=b.right-x.x,B=C.x-M.left;S=x.x,T=x.y,w=b.right,v=x.y+(C.y-x.y)*R/(R+B)}else throw new N(6,"Cannot layout connective object because no valid left and right note groups.");let _=(p==="up"?-1:1)*r*Math.log2(w-S)/3;this.lx=S,this.ly=T,this.rx=w,this.ry=v,this.arcHeight=this.connectiveProps.connective==="slide"?0:_;let{nx:E,ny:q}=$.Math.calcNormal(S,T,w,v);this.cp1x=S*.7+w*.3+E*this.arcHeight,this.cp1y=T*.7+v*.3+q*this.arcHeight,this.cp2x=S*.3+w*.7+E*this.arcHeight,this.cp2y=T*.3+v*.7+q*this.arcHeight,this.rect=new G(Math.min(this.lx,this.cp1x,this.cp2x,this.rx),Math.max(this.lx,this.cp1x,this.cp2x,this.rx),Math.min(this.ly,this.cp1y,this.cp2y,this.ry),Math.max(this.ly,this.cp1y,this.cp2y,this.ry)),this.line.addObject(this)}offset(e,r){this.lx+=e,this.ly+=r,this.rx+=e,this.ry+=r,this.cp1x+=e,this.cp1y+=r,this.cp2x+=e,this.cp2y+=r,this.rect.offsetInPlace(e,r)}draw(e){if(this.rightNoteGroup!==void 0){if(this.leftNoteGroup.measure!==this.rightNoteGroup.measure){if(this.leftNoteGroup.row.getNextRow()!==this.rightNoteGroup.row){if(this.measure!==this.rightNoteGroup.measure)return}}}let{rect:r}=this,{_lineWidth:n}=e;e.drawDebugRect(r);let o=n*1.5,s=n*.25;e.lineWidth(1),e.color(this.line instanceof Pt?X.Tab_Connective:X.Staff_Connective),this.arcHeight===0?(e.beginPath(),e.moveTo(this.lx,this.ly),e.lineTo(this.rx,this.ry),e.stroke()):(e.beginPath(),e.moveTo(this.lx,this.ly-s),e.bezierCurveTo(this.cp1x,this.cp1y-o,this.cp2x,this.cp2y-o,this.rx,this.ry-s),e.lineTo(this.rx,this.ry+s),e.bezierCurveTo(this.cp2x,this.cp2y+o,this.cp1x,this.cp1y+o,this.lx,this.ly+s),e.fill())}};var Qn=class{constructor(t,e,r,n){this.connective=t;this.span=e;this.noteAnchor=r;d(this,"noteGroups");d(this,"arcDir","down");this.noteGroups=[n]}getStartNoteGroup(){return this.noteGroups[0]}startsWith(t){return this.noteGroups[0]===t}addNoteGroup(t){return this.span==="stub"||this.span==="toMeasureEnd"?!1:this.span>this.noteGroups.length?(this.noteGroups.push(t),!0):!1}computeParams(t){let{stemDir:e}=this.noteGroups[0],{hasStem:r}=this.noteGroups[0].rhythmProps;if(this.noteAnchor==="stemTip")this.arcDir=e==="up"?"up":"down";else if(this.noteAnchor==="auto")this.arcDir=e==="up"||!r?"down":"up",this.noteGroups[0].notes.length>1?this.noteAnchor="center":this.connective==="slide"?this.noteAnchor="center":this.arcDir==="up"?this.noteAnchor="above":this.noteAnchor="below";else if(this.noteAnchor==="center"){let n=t instanceof Et?t:void 0,o=this.noteGroups[0].getDiatonicId(n);this.arcDir=!n||o<n.middleLineDiatonicId?"down":"up"}else this.noteAnchor==="above"?this.arcDir="up":this.noteAnchor==="below"&&(this.arcDir="down")}removeConnectives(){this.noteGroups.forEach(t=>{t.measure.removeConnectiveObjects(),t.removeConnectiveProps()}),this.noteGroups.length=1}createConnectives(){if(this.noteGroups.length===0)return;this.getStartNoteGroup().collectConnectiveProps();let{connective:t,span:e}=this;this.noteGroups[0].row.getNotationLines().forEach(r=>{if(this.computeParams(r),t==="tie"){if(y.isEnumValue(e,yr)){let n=this.noteGroups[0];for(let o=0;o<n.notes.length;o++)this.createObjConnectiveWithTieType(r,n,o,e)}else if(this.noteGroups.length>=2)for(let n=0;n<this.noteGroups.length-1;n++){let o=this.noteGroups[n],s=this.noteGroups[n+1];o.notes.forEach((a,c)=>{let u=s.notes.findIndex(h=>U.equals(h,a));u>=0&&this.createObjConnective(r,o,c,s,u)})}}else if(t==="slur"){if(typeof e=="number"&&e>=2&&this.noteGroups.length===e){let n=this.noteGroups[0],o=this.noteGroups[this.noteGroups.length-1];this.createObjConnective(r,n,0,o,0)}}else if(t==="slide"&&this.noteGroups.length>=2)for(let n=0;n<this.noteGroups.length-1;n++){let o=this.noteGroups[n],s=this.noteGroups[n+1];this.createObjConnective(r,o,0,s,0)}})}createObjConnectiveWithTieType(t,e,r,n){if(e.enableConnective(t))t instanceof Et?new Qi(this,t,e.measure,e,r,n):t instanceof Pt&&e.getFretNumberString(r)!==void 0&&new Qi(this,t,e.measure,e,r,n);else return}createObjConnective(t,e,r,n,o){let s=(a,c,u,h,l)=>{if(c.enableConnective(t)&&h.enableConnective(t)){if(t instanceof Et)new Qi(this,t,a,c,u,h,l);else if(t instanceof Pt){let p=c.getFretNumberString(u),m=h.getFretNumberString(l);p!==void 0&&m!==void 0&&(p===m||this.connective==="slur")&&new Qi(this,t,a,c,u,h,l)}}else return};if(e.measure===n.measure)s(e.measure,e,r,n,o);else if(e.measure.getNextMeasure()===n.measure)s(e.measure,e,r,n,o),s(n.measure,e,r,n,o);else throw new N(6,"Cannot create connective because it is jumping measures.")}};var ac=class extends tt{constructor(e,r,n,o,s,a,c){super(e);this.col=e;this.verse=r;this.line=n;this.vpos=o;d(this,"nextLyricsObject");d(this,"rhythmProps");d(this,"color","black");d(this,"hyphen");d(this,"text");d(this,"mi");this.rhythmProps=Kt.get(s);let u=(c==null?void 0:c.align)==="left"?0:(c==null?void 0:c.align)==="right"?1:.5;this.hyphen=y.isEnumValue(c==null?void 0:c.hyphen,Yn)?c==null?void 0:c.hyphen:void 0,this.text=new st(this,{text:a,color:this.color,scale:.8},u,0),this.rect=this.text.getRect().clone(),this.mi=new As(this)}getMusicInterface(){return this.mi}get measure(){return this.col.measure}getText(){return this.text.getText()}setNextLyricsObject(e){this.nextLyricsObject=e}pick(e,r){return this.getRect().contains(e,r)?[this]:[]}layout(e){this.text.layout(e),this.rect=this.text.getRect().clone()}offset(e,r){this.text.offset(e,r),this.rect.offsetInPlace(e,r)}draw(e){var r;if(this.text.draw(e),this.hyphen!==void 0){e.color(this.color).lineWidth(1);let n=this.getRect(),o=(r=this.nextLyricsObject)==null?void 0:r.getRect(),s=e.unitSize*1.5,a=o?(o.left-n.right)*.85:s,c=this.hyphen==="-"?Math.min(s,a):a;if(c>0){let u=o?(n.right+o.left)/2:n.right+c/.85,h=n.centerY;e.moveTo(u-c/2,h),e.lineTo(u+c/2,h),e.stroke()}}}};var Kn=class extends tt{constructor(e,r){super(e);this.measure=e;this.tab=r;d(this,"voiceId");d(this,"mi");d(this,"tupletPartsTextObjMap",new lt);this.voiceId=ae().filter(n=>r.containsVoiceId(n)),this.rect=new G,this.mi=new Cs(this)}getMusicInterface(){return this.mi}get doc(){return this.measure.doc}pick(e,r){return this.rect.contains(e,r)?[this]:[]}layout(e){let r=this.measure.getColumns(),n=ae().map(o=>$.Math.sum(r.map(s=>s.getVoiceSymbol(o)?1:0)));this.voiceId.sort((o,s)=>$.Math.cmp(n[o],n[s])),this.rect=new G}hasTuplets(){return this.measure.getBeamGroups().some(e=>e.isTuplet())}layoutFitToMeasure(e){let{unitSize:r,fontSize:n}=e,{measure:o}=this,s=o.getColumnsContentRect(),a=r*5;this.rect.left=s.left,this.rect.anchorX=s.centerX,this.rect.right=s.right,this.rect.top=this.hasTuplets()?-n:0,this.rect.anchorY=0,this.rect.bottom=a}offset(e,r){this.rect.offsetInPlace(e,r)}draw(e){e.drawDebugRect(this.rect),e.lineWidth(1);let{unitSize:r,fontSize:n}=e,o=r,s=r,a=r*.25,{bottom:c,anchorY:u}=this.getRect(),h=u,l=c,p=this.measure.getColumns();for(let m=0;m<p.length;m++){let f=p[m],g=this.voiceId.map(C=>f.getVoiceSymbol(C)).find(C=>C!==void 0);if(!g)continue;let b=g.getBeamGroup(),x=b?b.getSymbols():[g];for(let C=0;C<x.length;C++){let S=x[C],T=x[C+1],w=S.col.getRect().anchorX;if(S instanceof At){if(e.lineWidth(1),e.color(X.Tab_Note),S.rhythmProps.noteSize>=2&&(e.lineWidth(S.rhythmProps.noteSize===4?2:1),e.strokeLine(w,l,w,h)),x.length===1)for(let v=0;v<S.rhythmProps.flagCount;v++)e.drawFlag(new G(w,w+o,h+v*o,h+(v+2)*o),"up");for(let v=0;v<S.rhythmProps.dotCount;v++)e.fillCircle(w+s*(v+1),l-a,a)}else if(S instanceof ce){e.lineWidth(1),e.color(X.Tab_Rest);let v=w,A=(h+l)/2,_=.65;e.save(),e.scale(_,_),e.drawRest(S.rhythmProps.noteSize,v/_,A/_),e.restore();for(let E=0;E<S.rhythmProps.dotCount;E++)v+=s*1.5,e.fillCircle(v,A+s,a)}if(T){let v=S,A=T,_=v.col.getRect().anchorX,E=A.col.getRect().anchorX,q=v.hasTuplet()?1:v instanceof At?v.getRightBeamCount():1,M=A.hasTuplet()?1:A instanceof At?A.getLeftBeamCount():1,R=Math.max(q,M);e.color(X.Tab_Note),e.lineWidth(2);for(let B=0;B<R;B++){let D=M>q&&B>=q?.75:0,j=q>M&&B>=M?.25:1;e.strokePartialLine(_,h+B*o,E,h+B*o,D,j)}e.lineWidth(1);for(let B=0;B<v.rhythmProps.dotCount;B++)e.fillCircle(_+s*(B+1),l-a,a);for(let B=0;B<A.rhythmProps.dotCount;B++)e.fillCircle(E+s*(B+1),l-a,a)}if(b&&b.isTuplet()){e.color(X.Tab_Note);let v=(x[0].col.getRect().anchorX+x[x.length-1].col.getRect().anchorX)/2,A=b.getTupletRatioText(),_=this.tupletPartsTextObjMap.get(A);_||(this.tupletPartsTextObjMap.set(A,_=new st(this,{text:A,scale:.75},.5,.5)),_.layout(e)),_.setCenter(v,h-n/2),_.draw(e)}x.length>1&&(m=p.indexOf(x[x.length-1].col),m<0&&(m=p.length))}}}};function n0(i){switch(i){case"bottom":return .8;case"middle":return .5}}function o0(i){if(typeof i=="string"&&(i=[i]),y.isArray(i)){let t=0;for(let e=0;e<i.length;){let r=i[e],n=i[e+1];if(typeof r=="string"){e++;let o=Kt.get(r).ticks;typeof n=="number"&&(e++,o*=n),t+=o}else e++}return t}else return i}function s0(i){switch(i){case 1:return 8;case 2:return 9;case 3:return 10;default:throw new N(0,"VerseNumber is not 1, 2 or 3.")}}var Lh=class{constructor(){d(this,"tabTuning_0",0);d(this,"signature_1",0);d(this,"leftBarLine_2",0);d(this,"padding_3",0);d(this,"columnsMin_4",0);d(this,"padding_5",0);d(this,"rightBarLine_6",0)}get leftSolid(){return this.tabTuning_0+this.signature_1+this.leftBarLine_2+this.padding_3}get columnsMin(){return this.columnsMin_4}get rightSolid(){return this.padding_5+this.rightBarLine_6}},bi=class extends tt{constructor(e,r){super(e);this.row=e;this.options=r;d(this,"prevMeasure");d(this,"nextMeasure");d(this,"keySignature",Ys());d(this,"timeSignature",Xs());d(this,"tempo",Qs());d(this,"alterKeySignature");d(this,"alterTimeSignature");d(this,"alterTempo");d(this,"signatures",[]);d(this,"tabStringNotes",[]);d(this,"barLineLeft");d(this,"columns",[]);d(this,"barLineRight");d(this,"connectives",[]);d(this,"beamGroups",[]);d(this,"measureId");d(this,"regions",new Lh);d(this,"needLayout",!0);d(this,"voiceSymbols",Us(new vr));d(this,"lastAddedRhythmColumn");d(this,"lastAddedRhythmSymbol");d(this,"addExtensionTo",[]);d(this,"layoutObjects",[]);d(this,"postMeasureBreakWidth",0);d(this,"passCount",0);d(this,"needBeamsUpdate",!0);d(this,"navigationSet",new Ws);d(this,"isEndSong",!1);d(this,"isEndSection",!1);d(this,"endRepeatPlayCount",2);d(this,"endRepeatPlayCountText");d(this,"staticObjectsCache",new lt);d(this,"lyricsObjectsCache",new qs);d(this,"mi");this.mi=new _s(this),this.prevMeasure=e.doc.getLastMeasure(),this.prevMeasure&&(this.prevMeasure.nextMeasure=this),this.barLineLeft=new xi(this),this.barLineRight=new xr(this),this.measureId=this.prevMeasure?this.prevMeasure.measureId+1:0,this.updateKeySignature(),this.updateTimeSignature(),this.updateTempo(),this.row.getTabs().forEach(n=>{this.addLayoutObject(new Kn(this,n),n,0,0)})}getMusicInterface(){return this.mi}get doc(){return this.row.doc}isPartialMeasure(){return this.getConsumedTicks()<this.getMeasureTicks()}isUpBeat(){return this===this.doc.getFirstMeasure()}resetPassCount(){this.passCount=0}incPassCount(){this.passCount++}getPassCount(){return this.passCount}updateRunningArguments(e){var n;e!=null||(e=[]);let r=$.Math.sum(ae().map(o=>this.getVoiceSymbols(o).length>0?1:0));ae().forEach(o=>{var h;let s=()=>{let l=this.row.getStaves().filter(m=>m.containsVoiceId(o)),p=this.row.getTabs().filter(m=>m.containsVoiceId(o));return l.length>0?l[0].middleLineDiatonicId:p.length>0?p[0].getTuningStrings()[3].diatonicId:U.getNote("G4").diatonicId},a=()=>"auto",c=()=>[],u=(h=e[o])!=null?h:e[o]={diatonicId:s(),stemDir:a(),stringNumbers:c()};this.getVoiceSymbols(o).forEach((l,p,m)=>{var b,x;if(l.setDiatonicId===ce.UndefinedDiatonicId?r<2&&(u.diatonicId=ce.UndefinedDiatonicId):u.diatonicId=l.setDiatonicId,l instanceof At)switch(l.setStringsNumbers&&(u.stringNumbers=l.setStringsNumbers),(b=l.options)==null?void 0:b.stem){case"up":case"up":u.stemDir="up";break;case"down":case"down":u.stemDir="down";break;case"auto":case"auto":u.stemDir="auto";break}let f=(x=l.getBeamGroup())==null?void 0:x.getSymbols(),g;f===void 0?g=u.stemDir==="auto"?this.row.solveAutoStemDir([l]):u.stemDir:l===f[0]?g=u.stemDir==="auto"?this.row.solveAutoStemDir(f):u.stemDir:g=f[0].stemDir,l.updateRunningArguments(u.diatonicId,g,u.stringNumbers)})}),(n=this.getNextMeasure())==null||n.updateRunningArguments(e)}pick(e,r){if(!this.getRect().contains(e,r))return[];for(let n=0;n<this.signatures.length;n++){let o=this.signatures[n].pick(e,r);if(o.length>0)return[this,...o]}for(let n=0;n<this.tabStringNotes.length;n++){let o=this.tabStringNotes[n].pick(e,r);if(o.length>0)return[this,...o]}for(let n=0;n<this.columns.length;n++){let o=this.columns[n].pick(e,r);if(o.length>0)return[this,...o]}if(this.barLineLeft){let n=this.barLineLeft.pick(e,r);if(n.length>0)return[this,...n]}if(this.barLineRight){let n=this.barLineRight.pick(e,r);if(n.length>0)return[this,...n]}if(this.endRepeatPlayCountText){let n=this.endRepeatPlayCountText.pick(e,r);if(n.length>0)return[this,...n]}for(let n=0;n<this.connectives.length;n++){let o=this.connectives[n].pick(e,r);if(o.length>0)return[this,...o]}for(let n=0;n<this.beamGroups.length;n++){let o=this.beamGroups[n].pick(e,r);if(o.length>0)return[this,...o]}for(let n=0;n<this.layoutObjects.length;n++){let o=this.layoutObjects[n].musicObj.pick(e,r);if(o.length>0)return[this,...o]}return[this]}getMeasureNumber(){let e=this.doc.getFirstMeasure();return e&&e.isPartialMeasure()?this.measureId:this.measureId+1}getColumns(){return this.columns}getColumnCount(){return this.columns.length}getColumn(e){return this.getColumns()[e]}isFirstMeasure(){return this.prevMeasure===void 0}isLastMeasure(){return this.nextMeasure===void 0}isFirstMeasureInRow(){return this===this.row.getFirstMeasure()}isLastMeasureInRow(){return this===this.row.getLastMeasure()}getNextMeasure(){return this.nextMeasure}getPrevMeasure(){return this.prevMeasure}getKeySignature(){return this.keySignature}setKeySignature(...e){var r;if((r=this.getPrevMeasure())==null||r.endSection(),e[0]instanceof rr)this.alterKeySignature=e[0];else if(e[0]instanceof ri)this.alterKeySignature=e[0];else if(y.isNonEmptyString(e[0])){if(e.length===1)this.alterKeySignature=Pr(e[0]);else if(e.length===2)try{let n=""+e[0],o=ho(""+e[1]);this.alterKeySignature=Pr(n,o)}catch(n){throw new N(6,"Cannot set key signature because invalid args: "+e)}}this.updateKeySignature()}updateKeySignature(){this.keySignature=this.prevMeasure?this.prevMeasure.keySignature:Ys(),this.alterKeySignature&&(this.keySignature=this.alterKeySignature),this.nextMeasure&&this.nextMeasure.updateKeySignature(),this.requestLayout()}getTimeSignature(){return this.timeSignature}setTimeSignature(e){var r;(r=this.getPrevMeasure())==null||r.endSection(),this.alterTimeSignature=e,this.updateTimeSignature()}updateTimeSignature(){this.timeSignature=this.prevMeasure?this.prevMeasure.timeSignature:Xs(),this.alterTimeSignature&&(this.timeSignature=this.alterTimeSignature),this.nextMeasure&&this.nextMeasure.updateTimeSignature(),this.requestLayout()}getTempo(){return this.tempo}setTempo(e,r){var n;if((n=this.getPrevMeasure())==null||n.endSection(),r===void 0)this.alterTempo={beatsPerMinute:e};else{let o=Nt.get(r).dotCount,s={beatLength:Br(r),dotCount:o>0?o:void 0};this.alterTempo={beatsPerMinute:e,options:s}}this.updateTempo()}updateTempo(){var e;if(this.tempo=this.prevMeasure?this.prevMeasure.tempo:Qs(),this.alterTempo){let r=this.alterTempo.beatsPerMinute,n,o;this.alterTempo.options?(n=this.alterTempo.options.beatLength,o=(e=this.alterTempo.options.dotCount)!=null?e:0):this.alterTimeSignature?(n=this.alterTimeSignature.beatLength,o=0):(n=this.tempo.options.beatLength,o=this.tempo.options.dotCount),this.tempo={beatsPerMinute:r,options:{beatLength:n,dotCount:o}}}this.nextMeasure&&this.nextMeasure.updateTempo(),this.requestLayout()}hasPostMeasureBreak(){return this.isEndSong&&this!==this.row.getLastMeasure()}getPostMeasureBreakWidth(){return this.postMeasureBreakWidth}addLayoutObject(e,r,n,o){let s=new uc(e,r,n,o);return this.layoutObjects.push(s),this.requestLayout(),this.requestRectUpdate(),s}forEachStaffGroup(e,r,n){let o=this.row.getNotationLines(),s=(a,c,u=[])=>{if(typeof a=="number")o[a]&&n(o[a],c);else if(typeof a=="string"&&a.length>0){let h=o.filter(l=>l.name===a);if(h.forEach(l=>n(l,c)),h.length===0){let l=this.doc.getStaffGroup(a);if(l&&!u.includes(a)){let p=[...u,a];(y.isArray(l.staffsTabsAndGroups)?l.staffsTabsAndGroups:[l.staffsTabsAndGroups]).forEach(m=>{switch(l.verticalPosition){case"above":s(m,0,p);break;case"below":s(m,1,p);break;case"both":s(m,0,p),s(m,1,p);break;case"auto":s(m,r,p);break}})}}}};e===void 0?o.length>=2&&o[0]instanceof Et&&o[1]instanceof Et&&o[0].staffConfig.grandId!==void 0&&o[0].staffConfig.grandId===o[1].staffConfig.grandId?s(r===1?1:0,r):s(0,r):y.isArray(e)?e.forEach(a=>s(a,r)):s(e,r)}addFermata(e,r){let n=r==="atMeasureEnd"?this.barLineRight:this.lastAddedRhythmColumn;if(!n)throw new N(6,"Cannot add Fermata because anchor is undefined.");this.forEachStaffGroup(e,0,(o,s)=>{let a=o instanceof Pt?X.Staff_Element_Fermata:X.Tab_Element_Fermata;this.addLayoutObject(new Ci(n,s,a),o,1,s)}),this.disableExtension(),this.requestLayout()}hasFermata(e){return this.layoutObjects.some(r=>r.musicObj instanceof Ci&&r.anchor===e)}addNavigation(e,r,...n){let o;switch(r){case"ending":if(this.navigationSet.has(r))throw new N(6,"Cannot add ending beasure measure already has one.");let s=this,a=n;o={createObj:c=>{let u=c instanceof Pt?X.Staff_Element_Navigation:X.Tab_Element_Navigation;return new Zi(s,u,a)},layoutGroupId:4,defaultVerticalPos:0};break;case"D.C. al Coda":case"D.C. al Fine":case"D.S. al Coda":case"D.S. al Fine":{let c=this.barLineRight,u=cs(r);o={createObj:h=>{let l=h instanceof Pt?X.Staff_Element_Navigation:X.Tab_Element_Navigation;return new st(c,{text:u,color:l},1,1)},layoutGroupId:3,defaultVerticalPos:0},this.addNavigation(e,"endRepeat"),this.endSong();break}case"Fine":{let c=this.barLineRight,u=cs(r);o={createObj:h=>{let l=h instanceof Pt?X.Staff_Element_Navigation:X.Tab_Element_Navigation;return new st(c,{text:u,color:l},1,1)},layoutGroupId:3,defaultVerticalPos:0};break}case"Segno":case"Coda":{let c=this.barLineLeft,u=cs(r);o={createObj:h=>{let l=h instanceof Pt?X.Staff_Element_Navigation:X.Tab_Element_Navigation;return new Se(c,u,l)},layoutGroupId:3,defaultVerticalPos:0};break}case"toCoda":{let c=this.barLineRight,u=cs(r);o={createObj:h=>{let l=h instanceof Pt?X.Staff_Element_Navigation:X.Tab_Element_Navigation;return new Se(c,u,l)},layoutGroupId:3,defaultVerticalPos:0};break}case"endRepeat":if(n.length===0)this.endRepeatPlayCount=2;else if(y.isIntegerGte(n[0],2))this.endRepeatPlayCount=n[0];else throw new N(6,"Invalid end repeat play count (should be 2 or greater integer): "+n[0]);if(this.endRepeatPlayCount!==2){let u={text:`${this.endRepeatPlayCount}x`,scale:.8,color:X.Staff_Frame};this.endRepeatPlayCountText=new st(this,u,.5,1)}break}o&&this.forEachStaffGroup(e,o.defaultVerticalPos,(s,a)=>{this.addLayoutObject(o.createObj(s),s,o.layoutGroupId,a)}),this.navigationSet.add(r),this.disableExtension()}hasNavigation(e){return this.navigationSet.has(e)}addAnnotation(e,r,n){let o=this.lastAddedRhythmColumn;if(o){if(n.length===0)throw new N(6,"Cannot add annotation because annotation text is empty.")}else throw new N(6,"Cannot add annotation because anchor is undefined.");let s={text:n},a,c,u;switch(r){case"dynamics":a=6,c=0,s.italic=!0,u="bottom";break;case"tempo":a=5,c=0,s.italic=!0,u="bottom";break}let h=.5,l=n0(u);this.disableExtension(),this.forEachStaffGroup(e,c,(p,m)=>{let f=p instanceof Pt?X.Staff_Element_Annotation:X.Tab_Element_Annotation;s.color=f;let g=new st(o,s,h,l),b=this.addLayoutObject(g,p,a,m);this.enableExtension(b,f)})}addLabel(e,r,n){let o=this.lastAddedRhythmColumn;if(o){if(n.length===0)throw new N(6,"Cannot add label because label text is empty.")}else throw new N(6,"Cannot add label because anchor is undefined.");let s={text:n},a,c;switch(r){case"note":a=2,c=1;break;case"chord":a=7,c=0;break}this.disableExtension(),this.forEachStaffGroup(e,c,(u,h)=>{let l=u instanceof Pt?X.Staff_Element_Label:X.Tab_Element_Label;s.color=l;let p=new st(o,s,.5,1),m=this.addLayoutObject(p,u,a,h);this.enableExtension(m,l)})}addConnective(e,...r){let n=this.lastAddedRhythmSymbol;if(!(n instanceof At))throw new N(6,"Connective can be added to note group only.");if(e==="tie"){let o=y.isInteger(r[0])||y.isEnumValue(r[0],yr)?r[0]:2,s=y.isEnumValue(r[1],Je)?r[1]:"auto";n.startConnective(new Qn("tie",o,s,n))}else if(e==="slur"){let o=y.isInteger(r[0])?r[0]:2,s=y.isEnumValue(r[1],Je)?r[1]:"auto";n.startConnective(new Qn("slur",o,s,n))}else if(e==="slide"){let o=y.isEnumValue(r[0],Je)?r[0]:"auto";n.startConnective(new Qn("slide",2,o,n))}}addExtension(e,r){if(this.addExtensionTo.forEach(n=>{let{layoutObj:o,color:s}=n,{musicObj:a}=o;a.userData["extension-color"]=s;let c=a.getParent();if(a instanceof st&&c instanceof kr){let u="dashed",h="bottom",l=new $i(o,c,o0(e),r,u,h);a.setLink(l)}else throw new N(6,"Cannot add extension becaue no compatible music object to attach it to.")}),this.addExtensionTo.length===0)throw new N(6,"Cannot add extension because music object to attach it to is undefined.");this.disableExtension(),this.requestLayout()}enableExtension(e,r){this.addExtensionTo.push({layoutObj:e,color:r})}disableExtension(){this.addExtensionTo=[]}getEnding(){return this.layoutObjects.map(e=>e.musicObj).find(e=>e instanceof Zi)}getEndRepeatPlayCount(){return this.endRepeatPlayCount}endSong(){this.isEndSong=!0,this.requestLayout(),this.disableExtension()}hasEndSong(){return this.isEndSong}endSection(){this.isEndSection=!0,this.requestLayout(),this.disableExtension()}hasEndSection(){return this.isEndSection}endRow(){this.doc.requestNewRow(),this.disableExtension()}addRhythmSymbol(e){let{col:r,voiceId:n}=e;r.setVoiceSymbol(n,e),this.voiceSymbols.add(n,e),e.oldStyleTriplet&&this.createOldStyleTriplets(n),this.requestBeamsUpdate(),this.lastAddedRhythmColumn=r,this.lastAddedRhythmSymbol=e}addNoteGroup(e,r,n,o,s){let a=r.map(h=>typeof h=="string"?U.getNote(h):h),c=this.getRhythmColumn(e),u=new At(c,e,a,n,o,s);return this.addRhythmSymbol(u),u}addRest(e,r,n,o){let s=this.getRhythmColumn(e),a=new ce(s,e,r,n,o);return this.addRhythmSymbol(a),a}addLyrics(e,r,n,o,s){this.forEachStaffGroup(e,1,(a,c)=>{var p;let u=this.getRhythmColumn({verse:r,line:a,vpos:c}),h=new ac(u,r,a,c,Br(n),o,s);u.addLyricsObject(h);let l=this.lyricsObjectsCache.getOrCreate(a,c,r,[]);l.push(h),l.sort((m,f)=>$.Math.cmp(m.col.positionTicks,f.col.positionTicks)),(p=h.measure.getPrevLyricsObject(h))==null||p.setNextLyricsObject(h),this.addLayoutObject(h,a,s0(r),c),this.lastAddedRhythmColumn=u})}getRhythmColumn(e){let r=0;for(let n=this.columns.length-1;n>=0&&r===0;n--){let o=this.columns[n],s=typeof e=="number"?o.getVoiceSymbol(e):o.getLyricsObject(e.verse,e.line,e.vpos);s&&(r=o.positionTicks+s.rhythmProps.ticks)}for(let n=0;n<=this.columns.length;n++){let o=this.columns[n];if(o&&o.positionTicks===r)return o;if(!o||o.positionTicks>r){let s=new kr(this,r);return this.columns.splice(n,0,s),s}}throw new N(6,"Error in rhythm column. Should never get here.")}getMeasureTicks(){return this.getTimeSignature().measureTicks}getConsumedTicks(e){let r=0;return this.columns.forEach(n=>{ae().forEach(o=>{let s=n.getVoiceSymbol(o);s&&(e===void 0||e===o)&&(r=Math.max(r,n.positionTicks+s.rhythmProps.ticks))})}),r}getColumnsContentRect(){return new G(this.barLineLeft.getRect().anchorX,this.barLineRight.getRect().anchorX,this.getRect().top,this.getRect().bottom)}getLeftSolidWidth(){return this.regions.leftSolid}getMinColumnsWidth(){return this.regions.columnsMin}getRightSolidWidth(){return this.regions.rightSolid}getTotalSolidWidth(){return this.getLeftSolidWidth()+this.getRightSolidWidth()}getMinWidth(){return this.getLeftSolidWidth()+this.getMinColumnsWidth()+this.getRightSolidWidth()}getStaffLineLeft(){let e=this.getPrevMeasure();return e&&e.row===this.row&&!e.hasPostMeasureBreak()?e.getStaffLineRight():this.getRect().left+this.regions.tabTuning_0}getStaffLineRight(){return this.barLineRight.getRect().anchorX}getPrevLyricsObject(e){var c;let{line:r,verse:n,vpos:o}=e,s=this.lyricsObjectsCache.getOrDefault(r,o,n,[]),a=s.indexOf(e);if(a>0)return s[a-1];if(a===0){let u=(c=e.measure.getPrevMeasure())==null?void 0:c.lyricsObjectsCache.get(r,o,n);if(u&&u.length>0)return u[u.length-1]}}getStaticObjects(e){let r=this.layoutObjects.filter(o=>o.line===e&&o.isPositionResolved()).map(o=>o.musicObj),n=r.length>0?[...this.staticObjectsCache.getOrDefault(e,[]),...r]:this.staticObjectsCache.getOrDefault(e,[]);return n.forEach(o=>o.getRect()),n}addStaticObject(e,r){this.staticObjectsCache.getOrCreate(e,[]).push(r)}removeLayoutObjects(e){this.layoutObjects=this.layoutObjects.filter(r=>{if(r.musicObj===e){let n=r.musicObj.getLink();return n&&n.detachTail(r.musicObj),r.layoutGroup.remove(r),!1}else return!0})}addConnectiveObject(e){this.connectives.push(e),this.requestLayout()}removeConnectiveObjects(){this.connectives.length>0&&(this.connectives=[],this.requestLayout())}createExtensions(){this.layoutObjects.forEach(e=>{let{musicObj:r,measure:n,layoutGroupId:o,verticalPos:s,line:a}=e;if(r.getLink()instanceof $i){let c=r.getLink();if(c.getHead()!==r||(c.getTails().forEach(l=>n.removeLayoutObjects(l)),!c.isVisible()))return;let u=c.getRange(),h=u.columnRange.slice();for(let l=!0;h.length>1;l=!1){let{measure:p}=h[0],m=h.findIndex(C=>C.measure!==p),f=h.splice(0,m>0?m:h.length);if(f.length<2)continue;let g=p.row.findMatchingLine(a);if(!g)continue;let b=h.length===0,x=[...l?[r]:[],...f,...b&&u.stopObject?[u.stopObject]:[]];p.addLayoutObject(new Xn(p,g,c,x),g,o,s)}}})}addBeamGroup(e){this.beamGroups.push(e)}requestBeamsUpdate(){this.needBeamsUpdate=!0}createOldStyleTriplets(e){let r=this.getVoiceSymbols(e);for(let n=0;n<r.length;)if(r[n].oldStyleTriplet){let o=Xi.createOldStyleTriplet(r.slice(n,n+3));n+=o===0?1:o}else n++;this.requestLayout()}getBeamGroups(){return this.beamGroups}createBeams(){if(!this.needBeamsUpdate)return;this.beamGroups=this.beamGroups.filter(r=>r.isTuplet()?!0:(r.detach(),!1));let e=this.getTimeSignature();!this.needBeamsUpdate||e.beamGroupSizes.length===0||(ae().forEach(r=>{let n=this.getVoiceSymbols(r).slice();if(n.length<2)return;let o=this.isUpBeat()?Math.max(0,this.getMeasureTicks()-this.getConsumedTicks()):0,s=0;for(let a=0;a<e.beamGroupSizes.length;a++){let c=e.beamGroupSizes[a],u=[c];c.length>1&&u.unshift([$.Math.sum(c)]);let h=!1,l=s;for(;u.length>0&&!h;){let p=u.shift();s=l,p.forEach(m=>{let f=m*Nt.get("8n").ticks,g=s+f,b=n.filter(C=>{let S=o+C.col.positionTicks,T=S+C.rhythmProps.ticks;return S>=s&&T<=g});$.Math.sum(b.map(C=>C.rhythmProps.ticks))===f&&b.every(C=>C instanceof At)&&(b.every(C=>C.rhythmProps.flagCount===1)||u.length===0)&&Xi.createBeam(b)&&(h=!0),s+=f})}}}),this.needBeamsUpdate=!1,this.requestLayout())}getBarLineLeft(){return this.barLineLeft}getBarLineRight(){return this.barLineRight}getVoiceSymbols(e){return this.voiceSymbols.getAll(e)}completeRests(e){if(e===void 0){this.getConsumedTicks()===0?this.completeRests(0):this.completeRests(ae().filter(r=>this.getConsumedTicks(r)>0));return}else if(y.isArray(e)){e.forEach(r=>this.completeRests(r));return}else{Bo(e);let r=this.getMeasureTicks(),n=this.getConsumedTicks(e),o=r-n,s=[];for(;o>0;)for(let a=Nt.LongestNoteSize;a<=Nt.ShortestNoteSize;a*=2){let c=Nt.create(a).noteLength;for(let u=Nt.get(c).maxDotCount;u>=0;u--){let h=Kt.get(c,u);for(;h.ticks<=o;)s.push(h),o-=h.ticks}}s.reverse().forEach(a=>this.addRest(e,Nt.create(a.noteLength,a.dotCount).noteLength))}}requestLayout(){this.needLayout||(this.needLayout=!0,this.row.requestLayout())}layout(e){var m;if(!this.needLayout)return;this.staticObjectsCache.clear(),this.requestRectUpdate();let{unitSize:r}=e;this.postMeasureBreakWidth=this.hasPostMeasureBreak()?ct.PostMeasureBreakWidth*r:0;let n=this.isFirstMeasureInRow(),o=((m=this.getPrevMeasure())==null?void 0:m.hasPostMeasureBreak())===!0;this.regions.tabTuning_0=n&&this.row.hasTab?r*4:0;let s=n||o,a=this.options.showNumber===!1?!1:this.options.showNumber===!0||n&&!this.row.isFirstRow(),c=n||o||!!this.alterKeySignature,u=!!this.alterTimeSignature,h=!!this.alterTempo;this.signatures=[],this.row.getNotationLines().forEach((f,g)=>{if(f instanceof Et&&(s||a||c||u||h)){let b=this.signatures.filter(C=>C instanceof Xo).find(C=>C.staff===f),x=b!=null?b:new Xo(this,f);x.staff.addObject(x),x.updateClefImage(e,s),x.updateMeasureNumber(a&&g===0),x.updateKeySignature(c),x.updateTimeSignature(u),x.updateTempo(h&&g===0),x.layout(e),this.signatures.push(x)}else if(f instanceof Pt&&(a||u||h)){let b=this.signatures.filter(C=>C instanceof Qo).find(C=>C.tab===f),x=b!=null?b:new Qo(this,f);x.tab.addObject(x),x.updateMeasureNumber(a&&g===0),x.updateTimeSignature(u),x.updateTempo(h&&g===0),x.layout(e),this.signatures.push(x)}}),this.tabStringNotes.length=0,this.isFirstMeasureInRow()&&this.row.getTabs().forEach(f=>{for(let g=0;g<6;g++){let b=f.getTuningStrings()[g].format(1,1),x=X.Tab_Tuning,C=new st(this,{text:b,scale:.8,color:x},1,.5);C.layout(e),C.setRight(this.regions.tabTuning_0*.8),C.setCenterY(f.getStringY(g)),this.tabStringNotes.push(C),f.addObject(C)}}),this.barLineLeft.layout(e);let l=new Ja(this);this.columns.forEach(f=>f.layout(e,l)),this.columns.forEach(f=>f.layoutReserveSpace(e)),this.barLineRight.layout(e),this.endRepeatPlayCountText&&this.endRepeatPlayCountText.layout(e),this.layoutObjects.forEach(f=>f.layout(e));let p=e.unitSize;this.regions.signature_1=Math.max(0,...this.signatures.map(f=>f.getRect().width)),this.regions.leftBarLine_2=this.barLineLeft.getRect().width,this.regions.padding_3=p,this.regions.columnsMin_4=Math.max(ct.MinColumnsWidth*r,this.columns.map(f=>f.getRect().width).reduce((f,g)=>f+g,0)),this.regions.padding_5=p,this.regions.rightBarLine_6=this.barLineRight.getRect().width}layoutWidth(e,r){if(!this.needLayout)return;r=Math.max(r,this.getMinWidth()),this.rect=new G,this.rect.anchorX=this.rect.left+r/2,this.rect.right=this.rect.left+r,this.signatures.forEach(l=>{l.setLeft(this.rect.left+this.regions.tabTuning_0),l.setAnchorY(this.rect.anchorY)});let n=Math.max(0,...this.signatures.map(l=>l.getRect().width));this.barLineLeft.setLeft(this.rect.left+this.regions.tabTuning_0+n),this.barLineLeft.setAnchorY(this.rect.anchorY),this.barLineRight.setRight(this.rect.right),this.barLineRight.setAnchorY(this.rect.anchorY),this.endRepeatPlayCountText&&(this.endRepeatPlayCountText.setCenterX(this.barLineRight.getRect().left),this.endRepeatPlayCountText.setBottom(this.barLineRight.getRect().top));let o=this.rect.left+this.regions.leftSolid,a=this.rect.right-this.regions.rightSolid-o,c=this.regions.columnsMin,u=a/c,h=o;this.columns.forEach(l=>{let p=l.getRect(),m=h+p.leftw*u;l.setAnchor(m,this.rect.anchorY),h+=p.width*u}),ae().forEach(l=>{let p=this.getVoiceSymbols(l),m=p.length===1&&p[0]instanceof ce?p[0]:void 0;!m||ae().map(g=>m.col.getVoiceSymbol(g)).filter(g=>g!==void 0&&g!==m).length===0||m.setAnchorX(this.getColumnsContentRect().centerX)})}layoutConnectives(e){this.needLayout&&this.connectives.forEach(r=>{r.layout(e),this.rect.top=Math.min(this.rect.top,r.getRect().top),this.rect.bottom=Math.max(this.rect.bottom,r.getRect().bottom)})}layoutBeams(e){this.needLayout&&this.beamGroups.forEach(r=>{r.layout(e),this.rect.top=Math.min(this.rect.top,r.getRect().top),this.rect.bottom=Math.max(this.rect.bottom,r.getRect().bottom)})}alignStemsToBeams(){this.beamGroups.forEach(e=>e.updateStemTips())}layoutDone(){this.columns.forEach(e=>e.layoutDone()),this.needLayout=!1}updateRect(){this.rect.top=Math.min(...this.signatures.map(e=>e.getRect().top),...this.tabStringNotes.map(e=>e.getRect().top),this.barLineLeft.getRect().top,...this.columns.filter(e=>!e.isEmpty()).map(e=>e.getRect().top),this.barLineRight.getRect().top,...this.connectives.map(e=>e.getRect().top),...this.beamGroups.filter(e=>!e.isEmpty()).map(e=>e.getRect().top),...this.layoutObjects.filter(e=>e.isPositionResolved()).map(e=>e.musicObj.getRect().top)),this.rect.bottom=Math.max(...this.signatures.map(e=>e.getRect().bottom),...this.tabStringNotes.map(e=>e.getRect().bottom),this.barLineLeft.getRect().bottom,...this.columns.filter(e=>!e.isEmpty()).map(e=>e.getRect().bottom),this.barLineRight.getRect().bottom,...this.connectives.map(e=>e.getRect().bottom),...this.beamGroups.filter(e=>!e.isEmpty()).map(e=>e.getRect().bottom),...this.layoutObjects.filter(e=>e.isPositionResolved()).map(e=>e.musicObj.getRect().bottom)),this.isLastMeasureInRow()&&(this.rect.right=Math.max(this.rect.right,...this.layoutObjects.filter(e=>e.isPositionResolved()&&e.musicObj instanceof Ci).map(e=>e.musicObj.getRect().right))),this.row.getNotationLines().forEach(e=>{this.rect.top=Math.min(this.rect.top,e.calcTop()),this.rect.bottom=Math.max(this.rect.bottom,e.calcBottom())}),this.row.requestRectUpdate()}offset(e,r){this.signatures.forEach(n=>n.offset(e,0)),this.tabStringNotes.forEach(n=>n.offset(e,0)),this.barLineLeft.offset(e,r),this.columns.forEach(n=>n.offset(e,r)),this.barLineRight.offset(e,r),this.endRepeatPlayCountText&&this.endRepeatPlayCountText.offset(e,r),this.connectives.forEach(n=>n.offset(e,0)),this.beamGroups.forEach(n=>n.offset(e,r)),this.layoutObjects.forEach(n=>n.offset(e,0)),this.rect.offsetInPlace(e,r),this.requestRectUpdate()}draw(e){e.drawDebugRect(this.getRect()),e.lineWidth(1);let r=this.getStaffLineLeft(),n=this.getStaffLineRight(),o=(s,a)=>e.color(a).strokeLine(r,s,n,s);this.row.getNotationLines().forEach(s=>{if(s instanceof Et)for(let a=s.bottomLineDiatonicId;a<=s.topLineDiatonicId;a+=2)o(s.getDiatonicIdY(a),X.Staff_Frame);else if(s instanceof Pt)for(let a=0;a<6;a++)o(s.getStringY(a),X.Tab_Frame)}),this.isFirstMeasureInRow()&&this.row.getNotationLines().length===1&&this.row.getTabs().forEach(s=>{if(s.getRowGroup().hasBrace)return;let c=this.getStaffLineLeft(),u=s.getTopLineY(),h=s.getBottomLineY();e.color(X.Tab_Frame).lineWidth(1).strokeLine(c,u,c,h)}),this.signatures.forEach(s=>s.draw(e)),this.tabStringNotes.forEach(s=>s.draw(e)),this.barLineLeft.draw(e),this.columns.forEach(s=>s.draw(e)),this.barLineRight.draw(e),this.endRepeatPlayCountText&&this.endRepeatPlayCountText.draw(e),this.connectives.forEach(s=>s.draw(e)),this.layoutObjects.forEach(s=>s.musicObj.draw(e)),this.beamGroups.forEach(s=>s.draw(e))}};var cc=(l=>(l[l.TabRhythm=0]="TabRhythm",l[l.Fermata=1]="Fermata",l[l.NoteLabel=2]="NoteLabel",l[l.Navigation=3]="Navigation",l[l.Ending=4]="Ending",l[l.TempoAnnotation=5]="TempoAnnotation",l[l.DynamicsAnnotation=6]="DynamicsAnnotation",l[l.ChordLabel=7]="ChordLabel",l[l.LyricsVerse1=8]="LyricsVerse1",l[l.LyricsVerse2=9]="LyricsVerse2",l[l.LyricsVerse3=10]="LyricsVerse3",l))(cc||{}),jh=new lt([[0,{rowAlign:!0}],[1,{reserveSpace:!0}],[2,{reserveSpace:!0}],[3,{rowAlign:!0}],[4,{rowAlign:!0,padding:2}],[5,{rowAlign:!0,padding:2}],[6,{rowAlign:!0,padding:2}],[7,{reserveSpace:!0,rowAlign:!0}],[8,{reserveSpace:!0,rowAlign:!0}],[9,{reserveSpace:!0,rowAlign:!0}],[10,{reserveSpace:!0,rowAlign:!0}]]);function a0(i){for(;i;){if(i instanceof bi)return i;i=i.getParent()}throw new N(6,"Parent measure is required but not found!")}var hc=class{constructor(t,e,r){this.groupName=t;this.staffsTabsAndGroups=e;this.verticalPosition=r}},uc=class{constructor(t,e,r,n){this.musicObj=t;this.line=e;this.layoutGroupId=r;this.verticalPos=n;d(this,"anchor");d(this,"measure");d(this,"row");d(this,"layoutGroup");d(this,"positionResolved",!0);this.measure=a0(this.musicObj),this.row=this.measure.row;let o=this.musicObj.getParent();if(!o)throw new N(6,"Parent music object is required as an anchor.");this.anchor=o,this.anchor.addAnchoredLayoutObject(this),this.layoutGroup=this.line.getLayoutGroup(r),this.layoutGroup.add(this)}resetPositionResolved(){this.positionResolved=!1}setPositionResolved(){this.positionResolved=!0}isPositionResolved(){return this.positionResolved}resolveClosestToStaffY(t){let{musicObj:e,measure:r,verticalPos:n,line:o}=this,s=o.getTopLineY(),a=o.getBottomLineY(),c=t.unitSize*2,u=n===1?a+c+e.getRect().toph:s-c-e.getRect().bottomh,h=r.getStaticObjects(o),l=e.getShapeRects();return h.forEach(p=>{let m=p.getShapeRects();l.forEach(f=>{m.forEach(g=>{G.overlapX(f,g)&&(u=n===1?Math.max(u,g.bottom+f.toph+f.anchorY):Math.min(u,g.top-f.bottomh-f.anchorY))})})}),u}layout(t){this.line.addObject(this)}offset(t,e){this.musicObj.offset(t,e)}setAnchorY(t){this.musicObj.setAnchorY(t)}getRect(){return this.musicObj.getRect()}},lc=class{constructor(t){this.layoutGroupId=t;d(this,"layoutObject",Us(new vr));d(this,"rowAlign");d(this,"reserveSpace");d(this,"padding");var e,r,n,o;this.rowAlign=((e=jh.get(t))==null?void 0:e.rowAlign)===!0,this.reserveSpace=((r=jh.get(t))==null?void 0:r.reserveSpace)===!0,this.padding=(o=(n=jh.get(t))==null?void 0:n.padding)!=null?o:0}getLayoutObjects(t){return this.layoutObject.getAll(t)}add(t){this.layoutObject.add(t.verticalPos,t)}remove(t){this.layoutObject.remove(t.verticalPos,t)}layout(t){for(let e of this.layoutObject.values())e.resetPositionResolved(),e.musicObj.layout(t)}getPadding(t){return this.padding*t.unitSize}};var dc=class extends tt{constructor(e){super(e);this.row=e;d(this,"objects",[]);d(this,"layoutGroups",new lt)}getRowGroup(){return this.row.getRowGroupByLineId(this.id)}addObject(e){this.objects.push(e)}removeObjects(){this.objects.length=0}getLayoutGroup(e){return this.layoutGroups.getOrCreate(e,()=>new lc(e))}resetLayoutGroups(e){this.layoutGroups.forEach(r=>r.layout(e))}layoutLayoutGroups(e){for(let r of $.Enum.getEnumValues(cc)){let n=this.getLayoutGroup(r);n&&(this.layoutLayoutGroup(e,n,0),this.layoutLayoutGroup(e,n,1))}}setObjectY(e,r){r!==void 0&&(e.setAnchorY(r-e.getRect().anchorY),e.setPositionResolved())}alignObjectsY(e,r,n){let o=r.filter(u=>!u.isPositionResolved()&&u.verticalPos===n);if(o.length===0)return;let s=n===1?1:-1,a=o.map(u=>u.resolveClosestToStaffY(e)+u.layoutGroup.getPadding(e)*s),c=n===1?Math.max(...a):Math.min(...a);o.forEach(u=>this.setObjectY(u,c))}layoutLayoutGroup(e,r,n){let o=r.getLayoutObjects(n).filter(s=>!s.isPositionResolved());o.forEach(s=>{let{musicObj:a,anchor:c}=s;a instanceof Zi||a instanceof Xn||a instanceof Kn?a.layoutFitToMeasure(e):a.setAnchorX(c.getRect().anchorX)}),r.rowAlign?this.alignObjectsY(e,o,n):o.forEach(s=>{let a=s.musicObj.getLink();if(a&&a.getHead()===s.musicObj){let c=[a.getHead(),...a.getTails()],u=o.filter(h=>c.some(l=>l===h.musicObj));this.alignObjectsY(e,u,n)}else this.alignObjectsY(e,[s],n)})}drawVerticalLine(e,r,n,o=!1){e.color(this.getConfig().type==="tab"?X.Tab_Frame:X.Staff_Frame);let s=this.row.getNotationLines().indexOf(this),a=s>=0?this.row.getNotationLines()[s+1]:void 0,c=this.getRowGroup().lines.length>1,u=this instanceof Et&&this.isGrandTreble(),h=this.getTopLineY(),l=a&&(o||c||u)?a.getTopLineY():this.getBottomLineY();e.fillRect(r,h,n,l-h)}},Et=class extends dc{constructor(e,r,n){super(e);this.staffConfig=r;this.id=n;d(this,"clefImageAsset");d(this,"clefLineDiatonicId");d(this,"topLineDiatonicId");d(this,"middleLineDiatonicId");d(this,"bottomLineDiatonicId");d(this,"minDiatonicId");d(this,"maxDiatonicId");d(this,"joinedGrandStaff");d(this,"topLineY",0);d(this,"bottomLineY",0);d(this,"mi");let o=(s,a)=>U.getNote(s).diatonicId-(a?7:0);if(r.clef==="G")this.clefImageAsset=0,this.clefLineDiatonicId=o("G4",r.isOctaveDown===!0),this.middleLineDiatonicId=this.clefLineDiatonicId+2;else if(r.clef==="F")this.clefImageAsset=1,this.clefLineDiatonicId=o("F3",r.isOctaveDown===!0),this.middleLineDiatonicId=this.clefLineDiatonicId-2;else throw new N(6,`Invalid staffConfig.clef ${r.clef}.`);this.topLineDiatonicId=this.middleLineDiatonicId+4,this.bottomLineDiatonicId=this.middleLineDiatonicId-4,this.minDiatonicId=r.minNote!==void 0?Math.min(o(r.minNote,!1),this.bottomLineDiatonicId):void 0,this.maxDiatonicId=r.maxNote!==void 0?Math.max(o(r.maxNote,!1),this.topLineDiatonicId):void 0,this.mi=new vs(this)}getMusicInterface(){return this.mi}get isOctaveDown(){return this.staffConfig.isOctaveDown===!0}get name(){var e;return(e=this.staffConfig.name)!=null?e:""}getConfig(){return this.staffConfig}getTopLineY(){return this.topLineY}getMiddleLineY(){return(this.topLineY+this.bottomLineY)/2}getBottomLineY(){return this.bottomLineY}joinGrandStaff(e){e!==this&&(this.joinedGrandStaff=e)}isGrandTreble(){return this.joinedGrandStaff!==void 0&&this.staffConfig.clef==="G"}isGrandBass(){return this.joinedGrandStaff!==void 0&&this.staffConfig.clef==="F"}getLineSpacing(){return(this.bottomLineY-this.topLineY)/4}getDiatonicSpacing(){return this.getLineSpacing()/2}containsDiatonicId(e){return U.validateDiatonicId(e),(this.minDiatonicId===void 0||e>=this.minDiatonicId)&&(this.maxDiatonicId===void 0||e<=this.maxDiatonicId)}getDiatonicIdY(e){if(this.containsDiatonicId(e))return this.bottomLineY+(this.bottomLineDiatonicId-e)*this.getDiatonicSpacing();if(this.joinedGrandStaff&&this.joinedGrandStaff.containsDiatonicId(e))return this.joinedGrandStaff.getDiatonicIdY(e);throw new N(6,"Staff does not contain diatonicId "+e)}getActualStaff(e){if(this.containsDiatonicId(e))return this;if(this.joinedGrandStaff&&this.joinedGrandStaff.containsDiatonicId(e))return this.joinedGrandStaff;throw new N(6,"Staff does not contain diatonicId "+e)}getDiatonicIdAt(e){let r=Math.round(this.bottomLineDiatonicId-(e-this.bottomLineY)/this.getDiatonicSpacing());return this.containsDiatonicId(r)?r:void 0}isLine(e){return e%2===this.middleLineDiatonicId%2}isSpace(e){return e%2!==this.middleLineDiatonicId%2}containsVoiceId(e){return y.isUndefined(this.staffConfig.voiceId)||$.Arr.toArray(this.staffConfig.voiceId).includes(e)}calcTop(){let e=this.topLineY;if(this.objects.forEach(r=>e=Math.min(e,r.getRect().top)),this.maxDiatonicId!==void 0){let r=this.getDiatonicIdY(this.maxDiatonicId),n=this.getDiatonicIdY(this.maxDiatonicId-1);e=Math.min(e,r-Math.abs(n-r)+1)}return e}calcBottom(){let e=this.bottomLineY;if(this.objects.forEach(r=>e=Math.max(e,r.getRect().bottom)),this.minDiatonicId!==void 0){let r=this.getDiatonicIdY(this.minDiatonicId),n=this.getDiatonicIdY(this.minDiatonicId+1);e=Math.max(e,r+Math.abs(n-r)-1)}return e}pick(e,r){return this.getRect().contains(e,r)?[this]:[]}layoutHeight(e){let{unitSize:r}=e,n=r*ct.StaffHeight;this.topLineY=-n/2,this.bottomLineY=n/2,this.rect=new G(0,0,this.topLineY,this.bottomLineY)}layoutWidth(e){this.rect.left=this.row.getRect().left,this.rect.right=this.row.getRect().right}offset(e,r){this.topLineY+=r,this.bottomLineY+=r,this.objects.forEach(n=>{n.offsetInPlace?n.offsetInPlace(0,r):n.offset&&n.offset(0,r)}),this.rect.offsetInPlace(e,r)}draw(e){}},Pt=class extends dc{constructor(e,r,n){super(e);this.tabConfig=r;this.id=n;d(this,"top",0);d(this,"bottom",0);d(this,"tuningName");d(this,"tuningStrings");d(this,"mi");y.isArray(r.tuning)?(this.tuningName=void 0,this.tuningStrings=r.tuning.map(o=>U.getNote(o)).reverse()):typeof r.tuning=="string"?(this.tuningName=fu(r.tuning),this.tuningStrings=$s(this.tuningName)):(this.tuningName="Standard",this.tuningStrings=$s(this.tuningName)),this.mi=new Ss(this)}getMusicInterface(){return this.mi}get name(){var e;return(e=this.tabConfig.name)!=null?e:""}getConfig(){return this.tabConfig}getTuningName(){return this.tuningName}getTuningStrings(){return this.tuningStrings}getStringY(e){return this.top+(this.bottom-this.top)/6*(e+.5)}getTopStringY(){return this.getStringY(0)}getBottomStringY(){return this.getStringY(5)}getTopLineY(){return this.getTopStringY()}getBottomLineY(){return this.getBottomStringY()}getTop(){return this.top}getBottom(){return this.bottom}containsVoiceId(e){return y.isUndefined(this.tabConfig.voiceId)||$.Arr.toArray(this.tabConfig.voiceId).includes(e)}containsDiatonicId(e){return!0}calcTop(){let{top:e}=this;return this.objects.forEach(r=>e=Math.min(e,r.getRect().top)),e}calcBottom(){let{bottom:e}=this;return this.objects.forEach(r=>e=Math.max(e,r.getRect().bottom)),e}pick(e,r){return this.getRect().contains(e,r)?[this]:[]}layoutHeight(e){let{unitSize:r}=e,n=r*ct.TabHeight;this.top=-n/2,this.bottom=n/2,this.rect=new G(0,0,this.top,this.bottom)}layoutWidth(e){this.rect.left=this.row.getRect().left,this.rect.right=this.row.getRect().right}offset(e,r){this.top+=r,this.bottom+=r,this.objects.forEach(n=>{n.offsetInPlace?n.offsetInPlace(0,r):n.offset&&n.offset(0,r)}),this.rect.offsetInPlace(e,r)}draw(e){}};function c0(i){let t=(i.startsWith("!{")?i.substring(2):i.startsWith("!")?i.substring(1):i).trim(),e=i.startsWith("!"),r=i.startsWith("!{");return{instrName:t,hideInstr:e,hideBrace:r}}var pc=class extends tt{constructor(e){var s;super(e[0].row);this.lines=e;d(this,"space",0);d(this,"instrument");d(this,"hasBrace");d(this,"instrText");d(this,"braceRect",new G);d(this,"mi");let r=X.RowGroup_Instrument,n=c0((s=e[0].getConfig().instrument)!=null?s:"");this.instrument=n.instrName,this.hasBrace=n.hideBrace?!1:this.hasInstrument&&e.length>=2;let o=n.hideInstr?"":this.instrument;this.instrText=new st(this,{text:o,color:r,scale:1},1,.5),this.mi=new ws(this)}getMusicInterface(){return this.mi}get row(){return this.lines[0].row}get hasInstrument(){return this.instrument.length>0}hasNotationLine(e){return this.lines.includes(e)}pick(e,r){if(!this.getRect().contains(e,r))return[];let n=this.instrText.pick(e,r);return n.length>0?[this,...n]:[this]}updateRect(){this.instrText.setRight(this.braceRect.left-this.space),this.instrText.setCenterY(this.braceRect.anchorY),this.rect=this.instrText.getRect().clone().expandInPlace(this.braceRect)}layout(e){this.space=e.unitSize,this.instrText.layout(e),this.braceRect=new G(-(this.hasBrace?e.unitSize*5:0),0,0,0),this.forceRectUpdate()}layoutToNotationLines(){this.braceRect.top=this.lines[0].getTopLineY(),this.braceRect.bottom=this.lines[this.lines.length-1].getBottomLineY(),this.braceRect.anchorY=this.braceRect.centerY,this.forceRectUpdate()}offset(e,r){this.instrText.offset(e,r),this.braceRect.offsetInPlace(e,r),this.rect.offsetInPlace(e,r)}draw(e){if(this.instrText.draw(e),this.hasBrace){let r=this.braceRect;e.color(X.RowGroup_Frame).lineWidth(1).drawBracket(r,"{")}}};var mc=class{constructor(){d(this,"instrWidth",0);d(this,"staffWidth",0)}resetWidths(){this.instrWidth=this.staffWidth=0}addRowInstrWidth(t){this.instrWidth=Math.max(this.instrWidth,t)}addRowstaffWidth(t){this.staffWidth=Math.max(this.staffWidth,t)}get instrLeft(){return 0}get instrRight(){return this.instrWidth}get staffLeft(){return this.instrRight}get staffRight(){return this.staffLeft+this.staffWidth}get left(){return this.instrLeft}get right(){return this.staffRight}get width(){return this.instrWidth+this.staffWidth}},fc=class extends tt{constructor(e,r,n){super(e);this.doc=e;this.prevRow=r;this.scoreConfig=n;d(this,"nextRow");d(this,"notationLines");d(this,"rowGroups");d(this,"staves");d(this,"tabs");d(this,"measures",[]);d(this,"rowGroupByLine");d(this,"needLayout",!0);d(this,"mi");this.notationLines=this.createNotationLines(),this.staves=this.notationLines.filter(s=>s instanceof Et),this.tabs=this.notationLines.filter(s=>s instanceof Pt);let o=[];for(let s=0;s<this.notationLines.length;s++){let a=this.notationLines[s],c=o[o.length-1];c===void 0||c[0].getConfig().instrument===void 0||c[0].getConfig().instrument!==a.getConfig().instrument?o.push([a]):c.push(a)}this.rowGroups=o.filter(s=>s.length>0).map(s=>new pc(s)),this.rowGroupByLine=this.notationLines.map(s=>this.rowGroups.find(a=>a.lines.includes(s))),this.prevRow&&(this.prevRow.nextRow=this),this.mi=new Is(this)}getMusicInterface(){return this.mi}createNotationLines(){let e=this.scoreConfig.map((r,n)=>r.type==="staff"?new Et(this,r,n):new Pt(this,r,n));for(let r=0;r<e.length-1;r++){let n=e[r],o=e[r+1];n instanceof Et&&o instanceof Et&&n.staffConfig.grandId!==void 0&&n.staffConfig.grandId===o.staffConfig.grandId&&(n.joinGrandStaff(o),o.joinGrandStaff(n))}return e}getNotationLines(){return this.notationLines}getRowGroups(){return this.rowGroups}getRowGroupByLineId(e){return this.rowGroupByLine[e]}findMatchingLine(e){return e.row===this?e:this.notationLines.find(r=>$.Obj.deepEqual(e.row.scoreConfig,r.row.scoreConfig)&&e.id===r.id||y.isNonEmptyString(e.getConfig().name)&&e.getConfig().name===r.getConfig().name&&e.getConfig().type===r.getConfig().type)}get regions(){return this.doc.regions}getStaves(){return this.staves}getTabs(){return this.tabs}get hasStaff(){return this.staves.length>0}get hasTab(){return this.tabs.length>0}getTopStaff(){let e=this.staves[0];if(e)return e;throw new N(6,"Top staff is required!")}getBottomStaff(){let e=this.staves[this.staves.length-1];if(e)return e;throw new N(6,"Bottom staff is required!")}getStaff(e){U.validateDiatonicId(e);for(let r=0;r<this.notationLines.length;r++){let n=this.notationLines[r];if(n instanceof Et&&n.containsDiatonicId(e))return n}}resetLayoutGroups(e){this.notationLines.forEach(r=>r.resetLayoutGroups(e))}layoutLayoutGroups(e){this.notationLines.forEach(r=>r.layoutLayoutGroups(e))}pick(e,r){if(!this.getRect().contains(e,r))return[];for(let n=0;n<this.measures.length;n++){let o=this.measures[n].pick(e,r);if(o.length>0)return[this,...o]}for(let n=0;n<this.rowGroups.length;n++){let o=this.rowGroups[n].pick(e,r);if(o.length>0)return[this,...o]}for(let n=0;n<this.notationLines.length;n++){let o=this.notationLines[n].pick(e,r);if(o.length>0)return[this,...o]}return[this]}getConnectivesContentRect(){let e=this.getRect(),r=this.getFirstMeasure(),n=r?r.getColumnsContentRect().left:e.left;return new G(n,(n+e.right)/2,e.right,e.top,e.anchorY,e.bottom)}getDiatonicIdAt(e){for(let r=0;r<this.notationLines.length;r++){let n=this.notationLines[r],o=n instanceof Et?n.getDiatonicIdAt(e):void 0;if(o!==void 0)return o}}addMeasure(e){this.measures.push(e)}getMeasures(){return this.measures}isFirstRow(){return this===this.doc.getFirstRow()}isLastRow(){return this===this.doc.getLastRow()}getPrevRow(){return this.prevRow}getNextRow(){return this.nextRow}getFirstMeasure(){return this.measures.length>0?this.measures[0]:void 0}getLastMeasure(){return this.measures.length>0?this.measures[this.measures.length-1]:void 0}solveAutoStemDir(e){if(e.length===0)return"up";{let r=e[0].voiceId,n=e.filter(u=>u instanceof At).map(u=>u.setDiatonicId),o=e.filter(u=>u instanceof ce&&u.setDiatonicId!==ce.UndefinedDiatonicId).map(u=>u.setDiatonicId);if(n.length===0&&o.length===0)return"up";let s=n.length>0?n:o,a=Math.floor($.Math.avg(...s)),c=this.getStaves().filter(u=>u.containsVoiceId(r)&&u.containsDiatonicId(a));return c.length>0?a>=c[0].middleLineDiatonicId?"down":"up":"up"}}requestLayout(){this.needLayout||(this.needLayout=!0,this.doc.requestLayout())}layout(e){if(!this.needLayout)return;this.requestRectUpdate(),this.notationLines.forEach(n=>{n.removeObjects(),n.layoutHeight(e)}),this.rowGroups.forEach(n=>{n.layout(e),this.regions.addRowInstrWidth(n.getRect().width)}),this.measures.forEach(n=>n.layout(e));let r=this.measures.map(n=>n.getMinWidth()+n.getPostMeasureBreakWidth()).reduce((n,o)=>n+o);this.regions.addRowstaffWidth(r)}layoutStretch(e){if(!this.needLayout)return;this.rect=new G(this.regions.left,this.regions.right,0,0),this.notationLines.forEach(a=>a.layoutWidth(e)),this.rowGroups.forEach(a=>a.setRight(this.regions.instrRight));let r=this.regions.staffWidth,n=0;this.measures.forEach(a=>{r-=a.getTotalSolidWidth()+a.getPostMeasureBreakWidth(),n+=a.getMinColumnsWidth()});let o=r/n,s=this.regions.staffLeft;this.measures.forEach(a=>{let c=a.getTotalSolidWidth()+a.getMinColumnsWidth()*o;a.layoutWidth(e,c);let u=a.getRect();a.setLeft(s),a.setAnchorY(0),s+=u.width,s+=a.getPostMeasureBreakWidth()}),this.measures.forEach(a=>{a.layoutConnectives(e),a.layoutBeams(e)})}updateRect(){var a;let e=this.regions.left,r=this.regions.right,n=0,o=0,s=(a=this.getLastMeasure())==null?void 0:a.getBarLineRight().getAnchoredLayoutObjects().map(c=>c.musicObj).find(c=>c instanceof Ci);s&&(r=Math.max(r,s.getRect().right)),this.measures.length>0&&(n=Math.min(...this.measures.map(c=>c.getRect().top)),o=Math.max(...this.measures.map(c=>c.getRect().bottom))),this.rect=new G(e,r,n,o)}alignStemsToBeams(){this.measures.forEach(e=>e.alignStemsToBeams())}layoutSetNotationLines(e){let{unitSize:r}=e;for(let n=1;n<this.notationLines.length;n++){let o=this.notationLines[n-1],s=this.notationLines[n];if(o instanceof Et&&s instanceof Et&&o.staffConfig.grandId!==void 0&&o.staffConfig.grandId===s.staffConfig.grandId){let a=o.getBottomLineY()-s.getTopLineY()+r*6;s.offsetY(a)}else{let a=o.calcBottom()-s.calcTop()+r*3;s.offsetY(a)}}this.measures.forEach(n=>{n.requestRectUpdate(),n.getBarLineLeft().requestRectUpdate(),n.getBarLineRight().requestRectUpdate(),n.getColumns().forEach(o=>{o.requestRectUpdate(),ae().forEach(s=>{var a;return(a=o.getVoiceSymbol(s))==null?void 0:a.requestRectUpdate()})})}),this.rowGroups.forEach(n=>n.layoutToNotationLines()),this.alignStemsToBeams(),this.requestRectUpdate()}layoutDone(){this.measures.forEach(e=>e.layoutDone()),this.needLayout=!1}offset(e,r){this.measures.forEach(n=>n.offset(e,r)),this.rect.offsetInPlace(e,r),this.notationLines.forEach(n=>n.offset(e,r)),this.rowGroups.forEach(n=>n.offset(e,r))}getStaffLineLeft(){var e;return(e=this.getFirstMeasure())==null?void 0:e.getStaffLineLeft()}draw(e){e.drawDebugRect(this.getRect());let{left:r,top:n,width:o,height:s}=this.getRect(),a=e._lineWidth;e.save(),e.rect(r-a,n,o+2*a,s),e.clip(),this.measures.forEach(u=>u.draw(e)),this.notationLines.forEach(u=>u.draw(e));let c=this.getStaffLineLeft();c!==void 0&&this.notationLines.length>1&&this.notationLines.forEach(u=>u.drawVerticalLine(e,c,e._lineWidth,!0)),this.rowGroups.forEach(u=>u.draw(e)),e.restore()}};var gc=class extends tt{constructor(e,r,n,o){super(e);this.doc=e;this.title=r;this.composer=n;this.arranger=o;d(this,"titleText");d(this,"composerText");d(this,"arrangerText");d(this,"mi");this.mi=new Ts(this);let s=X.Header_Title,a=X.Header_Composer,c=X.Header_Arranger;this.titleText=this.title?new st(this,{text:this.title,color:s,scale:2},.5,0):void 0,this.composerText=this.composer?new st(this,{text:this.composer,color:a},1,0):void 0,this.arrangerText=this.arranger?new st(this,{text:"Arr.: "+this.arranger,color:c},1,0):void 0}getMusicInterface(){return this.mi}pick(e,r){if(!this.rect.contains(e,r))return[];if(this.titleText){let n=this.titleText.pick(e,r);if(n)return[this,...n]}if(this.composerText){let n=this.composerText.pick(e,r);if(n)return[this,...n]}if(this.arrangerText){let n=this.arrangerText.pick(e,r);if(n)return[this,...n]}return[this]}layout(e){let r=0,n=this.doc.regions.staffLeft,o=this.doc.regions.staffRight;this.rect=new G(n,o,0,0),this.titleText&&(this.titleText.layout(e),this.titleText.setCenterX((n+o)/2),this.titleText.setTop(r),r+=this.titleText.getRect().height,this.rect.expandInPlace(this.titleText.getRect())),this.composerText&&(this.composerText.layout(e),this.composerText.setRight(o),this.composerText.setTop(r),r+=this.composerText.getRect().height,this.rect.expandInPlace(this.composerText.getRect())),this.arrangerText&&(this.arrangerText.layout(e),this.arrangerText.setRight(o),this.arrangerText.setTop(r),r+=this.arrangerText.getRect().height,this.rect.expandInPlace(this.arrangerText.getRect()))}offset(e,r){this.titleText&&this.titleText.offset(e,r),this.composerText&&this.composerText.offset(e,r),this.arrangerText&&this.arrangerText.offset(e,r),this.rect.offsetInPlace(e,r)}draw(e){this.titleText&&this.titleText.draw(e),this.composerText&&this.composerText.draw(e),this.arrangerText&&this.arrangerText.draw(e)}};var yc=class extends tt{constructor(){super(void 0);d(this,"needLayout",!0);d(this,"ctx");d(this,"regions",new mc);d(this,"rows",[]);d(this,"measures",[]);d(this,"measuresPerRow",1/0);d(this,"curScoreConfig",[{type:"staff",clef:"G"}]);d(this,"header");d(this,"newRowRequested",!1);d(this,"allConnectiveProps",[]);d(this,"staffGroups",new lt);d(this,"mi");this.mi=new Zr(this)}getMusicInterface(){return this.mi}setScoreConfiguration(e){if(y.isEnumValue(e,zn))switch(e){default:case"treble":this.curScoreConfig=[{type:"staff",clef:"G"}];break;case"bass":this.curScoreConfig=[{type:"staff",clef:"F"}];break;case"grand":this.curScoreConfig=[{type:"staff",clef:"G",grandId:"grand1"},{type:"staff",clef:"F",grandId:"grand1"}];break;case"guitarTreble":this.curScoreConfig=[{type:"staff",clef:"G",isOctaveDown:!0}];break;case"guitarTab":this.curScoreConfig=[{type:"tab",tuning:"Standard"}];break;case"guitarCombined":this.curScoreConfig=[{type:"staff",clef:"G",isOctaveDown:!0},{type:"tab",tuning:"Standard"}];break}else y.isArray(e)?this.curScoreConfig=e:this.curScoreConfig=[e];for(let r=0,n=[];r<this.curScoreConfig.length;){let o=this.curScoreConfig[r],s=this.curScoreConfig[r+1];if(o&&s&&o.type==="staff"&&s.type==="staff"&&o.grandId!==void 0&&o.grandId===s.grandId){if(n.includes(o.grandId))throw new N(6,`Grand staff error: grandId "${o.grandId}" already used!`);if(o.clef!=="G")throw new N(6,`Grand staff error: Invalid treble clef "${o.clef}"!`);if(s.clef!=="F")throw new N(6,`Grand staff error: Invalid treble clef "${o.clef}"!`);if(o.isOctaveDown||s.isOctaveDown)throw new N(6,"Grand staff error: cannot use isOctaveDown option!");n.push(o.grandId),o.minNote="C4",s.maxNote="B3",r+=2}else{if(o&&o.type==="staff"&&o.grandId!==void 0)throw new N(6,`Grand staff error: invalid use of grandId "${o.grandId}"!`);r++}}this.requestNewRow()}setMeasuresPerRow(e){this.measuresPerRow=e}addConnectiveProps(e){this.allConnectiveProps.push(e)}setRenderContext(e){if(this.ctx===e)return;let r=this.ctx;this.ctx=e,r&&r.setDocument(void 0),e&&e.setDocument(this.mi),this.requestFullLayout()}setHeader(e,r,n){this.header=new gc(this,e,r,n),this.requestLayout()}getTitle(){var e;return(e=this.header)==null?void 0:e.title}getComposer(){var e;return(e=this.header)==null?void 0:e.composer}getArranger(){var e;return(e=this.header)==null?void 0:e.arranger}hasSingleMeasure(){return this.measures.length===1}getFirstMeasure(){return this.measures.length>0?this.measures[0]:void 0}getLastMeasure(){return this.measures.length>0?this.measures[this.measures.length-1]:void 0}addNewRow(e){let r=new fc(this,e,this.curScoreConfig);return this.rows.push(r),r}getFirstRow(){return this.rows.length===0?this.addNewRow(void 0):this.rows[0]}getLastRow(){return this.rows.length===0?this.addNewRow(void 0):this.rows[this.rows.length-1]}getRows(){return this.rows}getMeasures(){return this.measures}requestNewRow(){this.newRowRequested=!0}addMeasure(e){let r=this.rows[this.rows.length-1];(!r||this.newRowRequested&&r.getMeasures().length>0||r.getMeasures().length>=this.measuresPerRow)&&(r=this.addNewRow(r),this.newRowRequested=!1);let n=new bi(r,e);return this.measures.push(n),r.addMeasure(n),this.requestLayout(),n}addStaffGroup(e,r,n){this.staffGroups.set(e,new hc(e,r,n))}getStaffGroup(e){return this.staffGroups.get(e)}getVoiceSymbols(e){let r=[];return this.forEachMeasure(n=>r=r.concat(n.getVoiceSymbols(e))),r}removeLayoutObjects(e){this.forEachMeasure(r=>r.removeLayoutObjects(e))}forEachMeasure(e){let r=this.getFirstMeasure();for(;r;)e(r),r=r.getNextMeasure()}resetMeasures(){this.measures.forEach(e=>e.resetPassCount())}updateCursorRect(e){this.ctx&&this.ctx.updateCursorRect(e)}requestLayout(){this.needLayout=!0}requestFullLayout(){this.rows.forEach(e=>e.requestLayout()),this.forEachMeasure(e=>{e.getColumns().forEach(r=>r.requestLayout()),e.requestLayout()}),this.requestLayout()}layout(){var n;if(!this.needLayout)return;let{ctx:e}=this;if(!e)return;let{unitSize:r}=e;this.forEachMeasure(o=>o.createBeams()),(n=this.getFirstMeasure())==null||n.updateRunningArguments(),this.forEachMeasure(o=>o.createExtensions()),this.allConnectiveProps.forEach(o=>o.removeConnectives()),this.allConnectiveProps.forEach(o=>o.createConnectives()),this.rows.forEach(o=>o.resetLayoutGroups(e)),this.regions.resetWidths(),this.regions.addRowstaffWidth(ct.MinStaffWidth*r),this.rows.forEach(o=>o.layout(e)),this.rows.forEach(o=>o.layoutStretch(e)),this.rows.forEach(o=>o.layoutLayoutGroups(e)),this.rows.forEach(o=>o.layoutSetNotationLines(e)),this.rect=new G,this.header&&(this.header.layout(e),this.rect.expandInPlace(this.header.getRect())),this.rows.forEach(o=>{o.setLeft(0),o.setTop(this.rect.bottom+r*2),this.rect.expandInPlace(o.getRect())}),this.rows.forEach(o=>o.layoutDone()),this.needLayout=!1}offset(e,r){}drawContent(){let{ctx:e}=this;e&&(this.rows.forEach(r=>r.draw(e)),this.header&&this.header.draw(e))}pickStaffPosAt(e,r){if(this.rect.contains(e,r))for(let n=0;n<this.rows.length;n++){let o=this.rows[n];if(!o.hasStaff||!o.getRect().contains(e,r))continue;let s=o.getDiatonicIdAt(r);if(s!==void 0)return{scoreRow:o,diatonicId:s}}}pick(e,r){if(!this.rect.contains(e,r))return[];if(this.header){let n=this.header.pick(e,r);if(n.length>0)return[this,...n]}for(let n=0;n<this.rows.length;n++){let o=this.rows[n].pick(e,r);if(o.length>0)return[this,...o]}return[this]}};var pg="";function bt(i,...t){let e=t.map(r=>JSON.stringify(r)).join(", ");pg=`DocumentBuilder.${i}(${e})`}function pt(...i){i.forEach(t=>{if(!t)throw new N(6,pg)})}function mg(i,t){if(!i)throw new N(6,t)}function _i(i,t,e){mg(!y.isTypedObject(i,[t]),e)}function fg(i){pt(y.isObject(i),y.isStringOrUndefined(i.name),y.isUndefined(i.voiceId)||Ve(i.voiceId)||y.isArray(i.voiceId)&&i.voiceId.every(t=>Ve(t))),_i(i,"voiceIds","Baseconfig.voiceIds was removed. Use BaseConfig.voiceId instead."),y.isArray(i.voiceId)&&(i.voiceId=$.Arr.removeDuplicates(i.voiceId)),pt(y.isStringOrUndefined(i.instrument))}function hg(i){fg(i),pt(y.isObject(i),y.isStrictEqual(i.type,"staff"),y.isEnumValue(i.clef,Ui),y.isBooleanOrUndefined(i.isOctaveDown),y.isUndefined(i.minNote)||U.isNote(i.minNote),y.isUndefined(i.maxNote)||U.isNote(i.maxNote),y.isStringOrUndefined(i.grandId)),_i(i,"isGrand","StaffConfig.isGrand was removed. Use StaffConfig.grandId instead.")}function lg(i){fg(i),pt(y.isObject(i),y.isStrictEqual(i.type,"tab"),y.isUndefined(i.tuning)||y.isString(i.tuning)&&y.isIncluded(i.tuning,lo)||y.isArray(i.tuning)&&y.isStrictEqual(i.tuning.length,Ha().length&&i.tuning.every(t=>U.isNote(t))))}function bc(i){pt(y.isObject(i),y.isEnumValueOrUndefined(i.stem,gr),y.isStringOrUndefined(i.color),y.isBooleanOrUndefined(i.arpeggio)||y.isEnumValue(i.arpeggio,fi),y.isBooleanOrUndefined(i.staccato),y.isBooleanOrUndefined(i.diamond),y.isUndefined(i.string)||Go(i.string)||y.isEmptyArray(i.string)||y.isNonEmptyArray(i.string)&&i.string.every(t=>Go(t))),_i(i,"dotted","NoteOptions.dotted was removed."),_i(i,"triplet","NoteOptions.triplet was removed."),_i(i,"tieSpan",'NoteOptions.tieSpan was removed. Use addConnective("tie", tieSpan)'),_i(i,"slurSpan",'NoteOptions.slurSpan was removed. Use addConnective("slur", slurSpan)')}function dg(i){pt(y.isObject(i),y.isStringOrUndefined(i.staffPos)||y.isInteger(i.staffPos)||i.staffPos instanceof U,y.isStringOrUndefined(i.color),y.isBooleanOrUndefined(i.hide)),_i(i,"dotted","RestOptions.dotted was removed."),_i(i,"triplet","RestOptions.triplet was removed.")}function u0(i){pt(y.isObject(i),y.isEnumValueOrUndefined(i.align,qo),y.isEnumValueOrUndefined(i.hyphen,Yn))}function h0(i){pt(y.isObject(i),y.isBooleanOrUndefined(i.showNumber))}function Ns(i){pt(y.isStringOrUndefined(i)||y.isIntegerGte(i,0)||y.isNonEmptyArray(i)&&i.every(t=>y.isString(t)||y.isIntegerGte(t,0)))}var xc=class xc{constructor(){d(this,"doc");d(this,"currentLyricsAlign","center");this.doc=new yc}setScoreConfiguration(t){return bt("setScoreConfiguration",t),y.isEnumValue(t,zn)?this.doc.setScoreConfiguration(t):y.isObject(t)&&t.type==="staff"?(hg(t),this.doc.setScoreConfiguration(t)):y.isObject(t)&&t.type==="tab"?(lg(t),this.doc.setScoreConfiguration(t)):y.isNonEmptyArray(t)?(t.forEach(e=>{y.isObject(e)&&e.type==="staff"?hg(e):y.isObject(e)&&e.type==="tab"?lg(e):pt(!1)}),this.doc.setScoreConfiguration(t)):pt(!1),this}getMeasure(){var t;return(t=this.doc.getLastMeasure())!=null?t:this.doc.addMeasure(xc.DefaultMeasureOptions)}getDocument(){return this.getMeasure(),this.doc.getMusicInterface()}setHeader(t,e,r){return bt("setHeader",t,e,r),pt(y.isStringOrUndefined(t),y.isStringOrUndefined(e),y.isStringOrUndefined(r)),this.doc.setHeader(t,e,r),this}setMeasuresPerRow(t){return bt("setMeasuresPerRow",t),pt(y.isIntegerGte(t,1)||y.isPosInfinity(t)),this.doc.setMeasuresPerRow(t),this}addMeasure(t){return bt("addMeasure",t),t!=null||(t={}),h0(t),this.doc.addMeasure(t),this}setKeySignature(...t){return bt("setKeySignature",...t),pt(t[0]instanceof ri||t[0]instanceof rr||y.isNonEmptyString(t[0])&&y.isEnumValueOrUndefined(t[1],Ti)),this.getMeasure().setKeySignature(...t),this}setTimeSignature(...t){return bt("setTimeSignature",...t),t[0]instanceof ii?this.getMeasure().setTimeSignature(t[0]):y.isEnumValue(t[0],po)&&y.isEnumValueOrUndefined(t[1],Oi)?this.getMeasure().setTimeSignature(new ii(t[0],t[1])):y.isIntegerGte(t[0],1)&&y.isIntegerGte(t[1],1)&&y.isEnumValueOrUndefined(t[2],Oi)?this.getMeasure().setTimeSignature(new ii(t[0],t[1],t[2])):pt(!1),this}setTempo(t,e){return bt("setTempo",t,e),pt(y.isIntegerGte(t,1),y.isUndefined(e)||nr(e)),this.getMeasure().setTempo(t,e),this}addNote(t,e,r,n){if(bt("addNote",t,e,r,n),pt(Ve(t),e instanceof U||y.isNonEmptyString(e)||y.isArray(e)&&e.every(o=>o instanceof U||y.isNonEmptyString(o)),nr(r)),n!=null||(n={}),bc(n),y.isArray(e)){let o=n.string;e.forEach((s,a)=>{n.string=y.isArray(o)?o[a]:o,this.getMeasure().addNoteGroup(t,[s],r,n)})}else this.getMeasure().addNoteGroup(t,[e],r,n);return this}addChord(t,e,r,n){return bt("addChord",t,e,r,n),pt(Ve(t),y.isNonEmptyArray(e)&&e.every(o=>o instanceof U||y.isNonEmptyString(o)),nr(r)),n!=null||(n={}),bc(n),this.getMeasure().addNoteGroup(t,e,r,n),this}addRest(t,e,r){return bt("addRest",t,e,r),pt(Ve(t),nr(e)),r!=null||(r={}),dg(r),this.getMeasure().addRest(t,e,r),this}addTuplet(t,e,r){bt("addTuplet",t,e),pt(Ve(t),y.isFunction(r),Zs(e)&&y.isBooleanOrUndefined(e.showRatio));let n=[],o={addNote:(s,a,c)=>{if(bt("addTuplet => addNote",s,a,c),pt(s instanceof U||y.isNonEmptyString(s)||y.isArray(s)&&s.every(u=>u instanceof U||y.isNonEmptyString(u)),nr(a)),c!=null||(c={}),bc(c),y.isArray(s)){let u=c.string;s.forEach((h,l)=>{c.string=y.isArray(u)?u[l]:u;let p=this.getMeasure().addNoteGroup(t,[h],a,c,e);n.push(p)})}else{let u=this.getMeasure().addNoteGroup(t,[s],a,c,e);n.push(u)}return o},addChord:(s,a,c)=>{bt("addTuplet => addChord",s,a,c),pt(y.isNonEmptyArray(s)&&s.every(h=>h instanceof U||y.isNonEmptyString(h)),nr(a)),c!=null||(c={}),bc(c);let u=this.getMeasure().addNoteGroup(t,s,a,c,e);return n.push(u),o},addRest:(s,a)=>{bt("addTuplet => addRest",s,a),pt(nr(s)),a!=null||(a={}),dg(a);let c=this.getMeasure().addRest(t,s,a,e);return n.push(c),o}};return r(o),Xi.createTuplet(n,e),this}addLyricsInternal(t,e,r,n,o){var s;return Ns(t),pt($a(e),y.isEnumValue(r,ir),y.isString(n)||y.isArray(n)&&n.every(a=>y.isString(a))),o!=null||(o={}),u0(o),o.align!==void 0?this.currentLyricsAlign=o.align:(s=o.align)!=null||(o.align=this.currentLyricsAlign),y.isArray(n)?n.forEach(a=>this.getMeasure().addLyrics(t,e,r,a,o)):this.getMeasure().addLyrics(t,e,r,n,o),this}addLyrics(t,e,r,n){return bt("addLyrics",t,e,r,n),this.addLyricsInternal(void 0,t,e,r!=null?r:"",n)}addLyricsTo(t,e,r,n,o){return bt("addLyricsTo",e,r,n,o),this.addLyricsInternal(t,e,r,n!=null?n:"",o)}addFermataInternal(t,e){return Ns(t),pt(y.isEnumValue(e,Wo)),this.getMeasure().addFermata(t,e),this}addFermata(t="atNote"){return bt("addFermata",t),this.addFermataInternal(void 0,t)}addFermataTo(t,e="atNote"){return bt("addFermataTo",t,e),this.addFermataInternal(t,e)}addNavigationInternal(t,e,...r){return Ns(t),pt(y.isStrictEqual(e,"endRepeat")&&y.isStrictEqual(r.length,1)||y.isStrictEqual(e,"ending")&&y.isIntegerGte(r.length,1)&&r.every(n=>y.isIntegerGte(n,1))||y.isEnumValue(e,br)&&y.isEmptyArray(r)),this.getMeasure().addNavigation(t,e,...r),this}addNavigation(t,...e){return bt("addNavigation",t,...e),this.addNavigationInternal(void 0,t,...e)}addNavigationTo(t,e,...r){return bt("addNavigationTo",t,e,...r),this.addNavigationInternal(t,e,...r)}addAnnotationInternal(t,e,r){if(e!=null||(e=og(r)),e===void 0)throw new N(6,`Annotation text "${r}" is not known annotation.`);return Ns(t),pt(y.isEnumValue(e,Hn),y.isNonEmptyString(r)),this.getMeasure().addAnnotation(t,e,r),this}addAnnotation(...t){return bt("addAnnotation",...t),t.length===1?this.addAnnotationInternal(void 0,void 0,t[0]):this.addAnnotationInternal(void 0,t[0],t[1])}addAnnotationTo(t,...e){return bt("addAnnotationTo",t,...e),e.length===1?this.addAnnotationInternal(t,void 0,e[0]):this.addAnnotationInternal(t,e[0],e[1])}addLabelInternal(t,e,r){return Ns(t),pt(y.isEnumValue(e,Yo),y.isNonEmptyString(r)),this.getMeasure().addLabel(t,e,r),this}addLabel(t,e){return bt("addLabel",t,e),this.addLabelInternal(void 0,t,e)}addLabelTo(t,e,r){return bt("addLabelTo",t,e,r),this.addLabelInternal(t,e,r)}addConnective(t,...e){if(bt("addConnective",t,...e),pt(y.isEnumValue(t,gi)),t==="tie"){pt(y.isIntegerOrUndefined(e[0])||y.isEnumValue(e[0],yr)),pt(y.isEnumValueOrUndefined(e[1],Je));let r=e[0],n=e[1];this.getMeasure().addConnective(t,r,n)}else if(t==="slur"){pt(y.isIntegerOrUndefined(e[0])),pt(y.isEnumValueOrUndefined(e[1],Je));let r=e[0],n=e[1];this.getMeasure().addConnective(t,r,n)}else if(t==="slide"){pt(y.isEnumValueOrUndefined(e[0],Je));let r=e[0];this.getMeasure().addConnective(t,r)}return this}addExtension(t){bt("addExtension"),mg(y.isFunctionOrUndefined(t),"addExtension() has new usage, e.g. addExtension(ext => ext.measures(2)).");let e=0,r=!0,n={notes:(o,s)=>(bt("addExtension.notes",o,s),pt(nr(o)),pt(y.isUndefined(s)||y.isNumber(s)&&s>=0),e+=Kt.get(o).ticks*(s!=null?s:1),n),measures:o=>(bt("addExtension.measures",o),pt(y.isNumber(o)&&o>=1),e+=this.getMeasure().getMeasureTicks()*o,n),infinity:()=>(bt("addExtension.infinity"),e=1/0,n),hide:()=>(bt("addExtension.hide"),r=!1,n)};return t?t(n):e=1/0,this.getMeasure().addExtension(e,r),this}addStaffGroup(t,e,r="auto"){return bt("addStaffGroup",t,e,r),pt(y.isNonEmptyString(t),y.isNonEmptyString(e)||y.isIntegerGte(e,0)||y.isNonEmptyArray(e)&&e.every(n=>y.isNonEmptyString(n)||y.isIntegerGte(n,0)),y.isEnumValue(r,Vo)),this.doc.addStaffGroup(t,e,r),this}endSong(){return bt("endSong"),this.getMeasure().endSong(),this}endSection(){return bt("endSection"),this.getMeasure().endSection(),this}endRow(){var t;return bt("endRow"),(t=this.doc.getLastMeasure())==null||t.endRow(),this}completeRests(t){return bt("completeRests",t),pt(y.isUndefined(t)||Ve(t)||y.isArray(t)&&t.every(e=>Ve(e))),this.getMeasure().completeRests(t),this}addScaleArpeggio(t,e,r){bt("addScaleArpeggio",t,e,r),pt(y.isNonEmptyString(e),y.isIntegerGte(r,1));let n=this.getMeasure().getTimeSignature(),o=t.getScaleNotes(e,r);for(let s=0;s<o.length;s++){s%n.beatCount===0&&s>0&&this.addMeasure();let a=o[s];this.addNote(0,a,n.beatLength),this.addLabel("note",a.formatOmitOctave(1))}return this}};d(xc,"DefaultMeasureOptions",{});var Ar=xc;var Os=class{constructor(t){this.type=t}},zi=class extends Os{constructor(e,r,n,o){super(e);this.renderContext=r;this.scoreRow=n;this.diatonicId=o}},Yi=class extends Os{constructor(e,r,n){super(e);this.renderContext=r;this.objects=n;if(arguments.length===0)throw new N(6,"Empty array in score object event!")}get topObject(){return this.objects[this.objects.length-1]}findObject(e){return this.objects.find(r=>e(r))}};function Ph(i,t,e){if(!i)throw new N(6,`Invalid arg: ${t} = ${e}`)}function Fh(i){if(i instanceof Et||i instanceof Pt)return i.getMusicInterface();throw new N(6,"Notation line not staff nor tab.")}var xt=class{constructor(t){this.name=t}getParent(){var t;return(t=this.getMusicObject().getParent())==null?void 0:t.getMusicInterface()}},Ac=class Ac extends xt{constructor(e){super(Ac.Name);this.obj=e}getMusicObject(){return this.obj}getAccidental(){return this.obj.accidental}};d(Ac,"Name","Accidental");var $o=Ac,Cc=class Cc extends xt{constructor(e){super(Cc.Name);this.obj=e}getMusicObject(){return this.obj}};d(Cc,"Name","Connective");var xs=Cc,_c=class _c extends xt{constructor(e){super(_c.Name);this.obj=e}getMusicObject(){return this.obj}getRhythmColumn(){return this.obj.col.getMusicInterface()}getNotationLine(){return Fh(this.obj.line)}};d(_c,"Name","Arpeggio");var ts=_c,vc=class vc extends xt{constructor(e){super(vc.Name);this.obj=e}getMusicObject(){return this.obj}};d(vc,"Name","BeamGroup");var fs=vc,Sc=class Sc extends xt{constructor(e){super(Sc.Name);this.obj=e}getMusicObject(){return this.obj}getStaff(){return this.obj.staff.getMusicInterface()}};d(Sc,"Name","StaffBeamGroup");var gs=Sc,wc=class wc extends xt{constructor(e){super(wc.Name);this.obj=e}getMusicObject(){return this.obj}getTitle(){return this.obj.getTitle()}getComposer(){return this.obj.getComposer()}getArranger(){return this.obj.getArranger()}getRows(){return this.obj.getRows().map(e=>e.getMusicInterface())}getMeasures(){return this.obj.getMeasures().map(e=>e.getMusicInterface())}play(e){return Ph(y.isFunctionOrUndefined(e),"playStateChangeListener",e),new Jn(this,e).play()}};d(wc,"Name","Document");var Zr=wc,Ic=class Ic extends xt{constructor(e){super(Ic.Name);this.obj=e}getMusicObject(){return this.obj}getPassages(){return this.obj.passages}hasPassage(e){return Ph(y.isIntegerGte(e,1),"passage",e),this.obj.hasPassage(e)}};d(Ic,"Name","Ending");var ps=Ic,Tc=class Tc extends xt{constructor(e){super(Tc.Name);this.obj=e}getMusicObject(){return this.obj}};d(Tc,"Name","Fermata");var ys=Tc,Nc=class Nc extends xt{constructor(e){super(Nc.Name);this.obj=e}getMusicObject(){return this.obj}getTitle(){return this.obj.title}getComposer(){return this.obj.composer}getArranger(){return this.obj.arranger}};d(Nc,"Name","Header");var Ts=Nc,Oc=class Oc extends xt{constructor(e){super(Oc.Name);this.obj=e}getMusicObject(){return this.obj}};d(Oc,"Name","Image");var Ho=Oc,Rc=class Rc extends xt{constructor(e){super(Rc.Name);this.obj=e}getMusicObject(){return this.obj}getMeasureNumber(){return this.obj.getMeasureNumber()}getRhythmColumns(){return this.obj.getColumns().map(e=>e.getMusicInterface())}getRow(){return this.obj.row.getMusicInterface()}};d(Rc,"Name","Measure");var _s=Rc,Mc=class Mc extends xt{constructor(e){super(Mc.Name);this.obj=e}getMusicObject(){return this.obj}};d(Mc,"Name","BarLineRight");var hs=Mc,Ec=class Ec extends xt{constructor(e){super(Ec.Name);this.obj=e}getMusicObject(){return this.obj}};d(Ec,"Name","BarLineLeft");var ls=Ec,Dc=class Dc extends xt{constructor(e){super(Dc.Name);this.obj=e}getMusicObject(){return this.obj}getBarLine(){let e=this.obj.barLine;if(e instanceof xi||e instanceof xr)return e.getMusicInterface();throw new N(6,"Bar line not left nor right.")}getNotationLine(){return Fh(this.obj.line)}};d(Dc,"Name","StaffBarLine");var ds=Dc,kc=class kc extends xt{constructor(e){super(kc.Name);this.obj=e}getMusicObject(){return this.obj}getNotes(){return this.obj.notes}getRhythmProps(){return this.obj.rhythmProps}getRhythmColumn(){return this.obj.col.getMusicInterface()}getMeasure(){return this.obj.measure.getMusicInterface()}};d(kc,"Name","NoteGroup");var is=kc,Lc=class Lc extends xt{constructor(e){super(Lc.Name);this.obj=e}getMusicObject(){return this.obj}getNoteGroup(){return this.obj.noteGroup.getMusicInterface()}getRhythmColumn(){return this.getNoteGroup().getRhythmColumn()}getMeasure(){return this.getNoteGroup().getMeasure()}getStaff(){return this.obj.staff.getMusicInterface()}};d(Lc,"Name","StaffNoteGroup");var ns=Lc,jc=class jc extends xt{constructor(e){super(jc.Name);this.obj=e}getMusicObject(){return this.obj}getNoteGroup(){return this.obj.noteGroup.getMusicInterface()}getRhythmColumn(){return this.getNoteGroup().getRhythmColumn()}getMeasure(){return this.getNoteGroup().getMeasure()}getTab(){return this.obj.tab.getMusicInterface()}};d(jc,"Name","TabNoteGroup");var os=jc,Pc=class Pc extends xt{constructor(e){super(Pc.Name);this.obj=e}getMusicObject(){return this.obj}getRhythmProps(){return this.obj.rhythmProps}getRhythmColumn(){return this.obj.col.getMusicInterface()}getMeasure(){return this.obj.measure.getMusicInterface()}};d(Pc,"Name","Rest");var es=Pc,Fc=class Fc extends xt{constructor(e){super(Fc.Name);this.obj=e}getMusicObject(){return this.obj}getRest(){return this.obj.rest.getMusicInterface()}getRhythmColumn(){return this.getRest().getRhythmColumn()}getMeasure(){return this.getRest().getMeasure()}getStaff(){return this.obj.staff.getMusicInterface()}};d(Fc,"Name","StaffRest");var rs=Fc,Bc=class Bc extends xt{constructor(e){super(Bc.Name);this.obj=e}getMusicObject(){return this.obj}getRhythmSymbol(e){var r;return Ph(Ve(e),"voiceId",e),(r=this.obj.getVoiceSymbol(e))==null?void 0:r.getMusicInterface()}getMeasure(){return this.obj.measure.getMusicInterface()}};d(Bc,"Name","RhythmColumn");var ss=Bc,Gc=class Gc extends xt{constructor(e){super(Gc.Name);this.obj=e}getMusicObject(){return this.obj}getDocument(){return this.obj.doc.getMusicInterface()}getMeasures(){return this.obj.getMeasures().map(e=>e.getMusicInterface())}getNotationLines(){return this.obj.getNotationLines().map(e=>Fh(e))}};d(Gc,"Name","ScoreRow");var Is=Gc,Vc=class Vc extends xt{constructor(e){super(Vc.Name);this.obj=e}getMusicObject(){return this.obj}getInstrument(){return this.obj.instrument}};d(Vc,"Name","ScoreRowGroup");var ws=Vc,qc=class qc extends xt{constructor(e){super(qc.Name);this.obj=e}getMusicObject(){return this.obj}getId(){return this.obj.id}getName(){return this.obj.name.length>0?this.obj.name:void 0}getRow(){return this.obj.row.getMusicInterface()}};d(qc,"Name","Staff");var vs=qc,Wc=class Wc extends xt{constructor(e){super(Wc.Name);this.obj=e}getMusicObject(){return this.obj}getId(){return this.obj.id}getName(){return this.obj.name.length>0?this.obj.name:void 0}getRow(){return this.obj.row.getMusicInterface()}};d(Wc,"Name","Tab");var Ss=Wc,Uc=class Uc extends xt{constructor(e){super(Uc.Name);this.obj=e}getMusicObject(){return this.obj}getStaff(){return this.obj.staff.getMusicInterface()}};d(Uc,"Name","StaffSignature");var Ko=Uc,zc=class zc extends xt{constructor(e){super(zc.Name);this.obj=e}getMusicObject(){return this.obj}getTab(){return this.obj.tab.getMusicInterface()}};d(zc,"Name","TabSignature");var Jo=zc,Yc=class Yc extends xt{constructor(e){super(Yc.Name);this.obj=e}getMusicObject(){return this.obj}getMeasure(){return this.obj.measure.getMusicInterface()}getTab(){return this.obj.tab.getMusicInterface()}};d(Yc,"Name","TabRhythm");var Cs=Yc,Hc=class Hc extends xt{constructor(e){super(Hc.Name);this.obj=e}getMusicObject(){return this.obj}getText(){return this.obj.getText()}};d(Hc,"Name","SpecialText");var as=Hc,$c=class $c extends xt{constructor(e){super($c.Name);this.obj=e}getMusicObject(){return this.obj}getText(){return this.obj.getText()}};d($c,"Name","Text");var Zo=$c,Zc=class Zc extends xt{constructor(e){super(Zc.Name);this.obj=e}getMusicObject(){return this.obj}getText(){return this.obj.getText()}};d(Zc,"Name","Lyrics");var As=Zc,Xc=class Xc extends xt{constructor(e){super(Xc.Name);this.obj=e}getMusicObject(){return this.obj}};d(Xc,"Name","ExtensionLine");var bs=Xc;function Cr(i,t,e){if(!i)throw new N(6,`Invalid arg: ${t} = ${e}`)}function Rs(i,t){if(i==null)throw new TypeError(t);return i}var Ms=class Ms{constructor(t,e){d(this,"player");Cr(t instanceof Zr,"doc",t),Cr(y.isFunctionOrUndefined(e),"playStateChangeListener",e),this.player=new oc,this.player.setDocument(t.getMusicObject()),this.player.setCursorPositionChangeListener(r=>{t.getMusicObject().updateCursorRect(r)}),e&&this.player.setPlayStateChnageListener(e)}static stopAll(){this.currentlyPlaying.forEach(t=>t.stop()),za()}play(){return Ms.currentlyPlaying.add(this),this.player.play(),this}pause(){return this.player.pause(),this}stop(){return this.player.stop(),Ms.currentlyPlaying.delete(this),this}};d(Ms,"currentlyPlaying",new Ws);var Jn=Ms,Bh=class{constructor(){d(this,"ctx");this.ctx=new Ka(this)}setDocument(t){return Cr(y.isUndefined(t)||t instanceof Zr,"doc",t),this.ctx.setDocument(t),this}setCanvas(t){return t=Rs($.Dom.getCanvas(t),typeof t=="string"?"Cannot set render canvas because invalid canvas id: "+t:"Cannot set render canvas because given canvas is undefined."),this.ctx.setCanvas(t),this}setScoreEventListener(t){Cr(y.isFunctionOrUndefined(t),"scoreEventListener",t),this.ctx.setScoreEventListener(t)}hilightObject(t){this.ctx.hilightObject(t==null?void 0:t.getMusicObject())}hilightStaffPos(t){this.ctx.hilightStaffPos(t?{scoreRow:t.scoreRow.getMusicObject(),diatonicId:t.diatonicId}:void 0)}draw(){try{this.ctx.draw()}catch(t){console.log("Draw failed in music render context!",t)}}},we=class we{constructor(){d(this,"playButton");d(this,"stopButton");d(this,"playStopButton");d(this,"pauseButton");d(this,"onPlay");d(this,"onStop");d(this,"onPlayStop");d(this,"onPause");d(this,"playLabel","Play");d(this,"stopLabel","Stop");d(this,"pauseLabel","Pause");d(this,"playState",2);d(this,"player");this.onPlay=()=>{var t;return(t=this.player)==null?void 0:t.play()},this.onStop=()=>{var t;return(t=this.player)==null?void 0:t.stop()},this.onPlayStop=()=>{var t,e;this.playState===0?(t=this.player)==null||t.stop():(e=this.player)==null||e.play()},this.onPause=()=>{var t;return(t=this.player)==null?void 0:t.pause()},this.updateButtons()}setDocument(t){return Cr(y.isUndefined(t)||t instanceof Zr,"doc",t),this.onStop(),t?this.player=new Jn(t,e=>{this.playState=e,this.updateButtons()}):this.player=void 0,this.updateButtons(),this}detachDocument(){this.setDocument(void 0)}updateButtons(){this.playButton&&(this.playButton.disabled=this.player?this.playState===0:!0,this.playButton.innerText=this.playLabel),this.stopButton&&(this.stopButton.disabled=this.player?this.playState===2:!0,this.stopButton.innerText=this.stopLabel),this.playStopButton&&(this.playStopButton.disabled=!this.player,this.playStopButton.innerText=this.playState===0?this.stopLabel:this.playLabel),this.pauseButton&&(this.pauseButton.disabled=this.player?this.playState!==0:!0,this.pauseButton.innerText=this.pauseLabel)}setPlayButton(t,e){return Cr(y.isStringOrUndefined(e),"btnLabel",e),we.removeOnClickListeners(this.playButton,this.onPlay),this.playButton=Rs($.Dom.getButton(t),"Play button required!"),this.playLabel=e!=null?e:"Play",we.removeOnClickListeners(this.playButton,"all"),we.addOnClickListener(this.playButton,this.onPlay),this.updateButtons(),this}setStopButton(t,e){return Cr(y.isStringOrUndefined(e),"btnLabel",e),we.removeOnClickListeners(this.stopButton,this.onStop),this.stopButton=Rs($.Dom.getButton(t),"Stop button required!"),this.stopLabel=e!=null?e:"Stop",we.removeOnClickListeners(this.stopButton,"all"),we.addOnClickListener(this.stopButton,this.onStop),this.updateButtons(),this}setPlayStopButton(t,e,r){return Cr(y.isStringOrUndefined(e),"playLabel",e),Cr(y.isStringOrUndefined(r),"stopLabel",r),we.removeOnClickListeners(this.playStopButton,this.onPlayStop),this.playStopButton=Rs($.Dom.getButton(t),"Play/stop button required!"),this.playLabel=e!=null?e:"Play",this.stopLabel=r!=null?r:"Stop",we.removeOnClickListeners(this.playStopButton,"all"),we.addOnClickListener(this.playStopButton,this.onPlayStop),this.updateButtons(),this}setPauseButton(t,e){return Cr(y.isStringOrUndefined(e),"btnLabel",e),we.removeOnClickListeners(this.pauseButton,this.onPause),this.pauseButton=Rs($.Dom.getButton(t),"Pause button required!"),this.pauseLabel=e!=null?e:"Pause",we.removeOnClickListeners(this.pauseButton,"all"),we.addOnClickListener(this.pauseButton,this.onPause),this.updateButtons(),this}static removeOnClickListeners(t,e){if(!t)return;let r=this.savedOnClickListeners.getOrDefault(t,[]);r=r.filter(n=>e===n||e==="all"?(t.removeEventListener("click",n),!1):!0),this.savedOnClickListeners.set(t,r)}static addOnClickListener(t,e){Cr(y.isFunction(e),"onClick",e),t.addEventListener("click",e),this.savedOnClickListeners.getOrCreate(t,[]).push(e)}};d(we,"savedOnClickListeners",new lt);var Gh=we;Ii();var Yh={};en(Yh,{createAll:()=>l0,createAndanteByDiabelli:()=>qh,createCanonInD:()=>Wh,createFrereJacques:()=>Uh,createGreensleeves:()=>zh});function qh(){return new Ar().setScoreConfiguration("guitarTreble").setHeader("Andante","A. Diabelli").addMeasure().setKeySignature("D","Major").setTimeSignature("3/4").setTempo(80).addRest(0,"8n",{staffPos:"G4"}).addAnnotation("dynamics","p").addNote(0,"F#4","8n",{stem:"up"}).addNote(0,"G4","8n").addConnective("slur",2,"below").addNote(0,"F#4","8n").addNote(0,"E4","8n").addNote(0,"D4","8n").addNote(1,"D3","2.",{stem:"down"}).addMeasure().addNote(0,"C#4","8n").addConnective("slur",2,"below").addNote(0,"D4","8n").addNote(0,"E4","8n").addNote(0,"F#4","8n").addNote(0,"G4","4n").addNote(1,"A2","2.").addMeasure().addRest(0,"8n",{staffPos:"B3"}).addAnnotation("dynamics","f").addNote(0,"A3","8n").addNote(0,"G#3","8n").addConnective("slur",2,"below").addNote(0,"A3","8n").addNote(0,"B3","8n").addNote(0,"C#4","8n").addNote(1,"A2","2.").endRow().addMeasure().addNote(0,"D4","8n",{string:3}).addNote(0,"E4","8n").addNote(0,"F#4","8n").addNote(0,"G4","8n").addNote(0,"A4","4n").addNote(1,"D3","2.").addMeasure().addRest(0,"8n",{staffPos:"G4"}).addAnnotation("dynamics","p").addNote(0,"F#4","8n").addNote(0,"G4","8n").addConnective("slur",2,"below").addNote(0,"F#4","8n").addNote(0,"E4","8n").addNote(0,"D4","8n").addNote(1,"D3","2.").addMeasure().addNote(0,"C#4","8n").addConnective("slur",2,"below").addNote(0,"D4","8n").addNote(0,"E4","8n").addNote(0,"F#4","8n").addNote(0,"G4","4n").addNote(1,"A2","2.").endRow().addMeasure().addRest(0,"8n",{staffPos:"B3"}).addAnnotation("dynamics","f").addNote(0,"A3","8n").addNote(0,"G#3","8n").addConnective("slur",2,"below").addNote(0,"A3","8n").addNote(0,"B3","8n").addNote(0,"C#4","8n").addNote(1,"A2","2.").addMeasure().addNote(0,"D4","4n").addRest(1,"4n",{staffPos:"D3"}).addNote(0,"D3","4n").addNote(1,"D3","4n").addRest(1,"4n",{staffPos:"B3"}).addNavigation("endRepeat").addMeasure().addRest(0,"8n",{staffPos:"D4"}).addAnnotation("dynamics","f").addNote(0,"D4","8n").addNote(0,"E4","8n").addConnective("slur",2,"below").addNote(0,"D4","8n").addNote(0,"C#4","8n").addNote(0,"B3","8n").addNote(1,"E2","2.").endRow().addMeasure().addNote(0,"C#4","8n").addConnective("slur",2,"below").addNote(0,"D4","8n").addNote(0,"E4","8n").addNote(0,"F#4","8n").addNote(0,"E4","4n").addNote(1,"A2","2.").addMeasure().addRest(0,"8n",{staffPos:"B3"}).addAnnotation("dynamics","p").addNote(0,"E3","8n").addNote(0,"D#3","8n").addConnective("slur",2,"below").addNote(0,"E3","8n").addNote(0,"F#3","8n").addNote(0,"G#3","8n").addNote(1,"E2","2.").addMeasure().addNote(0,"A3","8n").addConnective("slur",2,"below").addNote(0,"G#3","8n").addNote(0,"A3","8n").addNote(0,"B3","8n").addNote(0,"C#4","4n").addNote(1,"A2","2.").endRow().addMeasure().addRest(0,"8n",{staffPos:"G4"}).addAnnotation("dynamics","f").addNote(0,"G4","8n").addNote(0,"A4","8n").addConnective("slur",2,"below").addNote(0,"G4","8n").addNote(0,"F#4","8n").addNote(0,"E4","8n").addNote(1,"A2","2.").addMeasure().addNote(0,"D4","8n").addNote(0,"C#4","8n").addNote(0,"D4","8n").addNote(0,"E4","8n").addNote(0,"F#4","4n").addNote(1,"D3","2.").addMeasure().addRest(0,"8n",{staffPos:"B3"}).addAnnotation("dynamics","ff").addNote(0,"A3","8n").addNote(0,"G#3","8n").addConnective("slur",2,"below").addNote(0,"A3","8n").addNote(0,"B3","8n").addNote(0,"C#4","8n").addNote(1,"A2","2.").addMeasure().addNote(0,"D4","4n").addRest(1,"4n",{staffPos:"D3"}).addNote(0,"D3","4n").addNote(1,"D3","4n").addRest(1,"4n",{staffPos:"B3"}).endSong().getDocument()}function Wh(){return new Ar().setHeader("Canon in D","Pachelbel").setScoreConfiguration([{type:"staff",clef:"G",voiceId:0,instrument:"Piano"},{type:"staff",clef:"F",voiceId:1,instrument:"Piano"}]).addMeasure().setKeySignature("D Major").setTimeSignature("4/4").setTempo(50,"2n").completeRests(0).addNote(1,["D3","F#3","A3","D4"],"8n").addNote(1,["A2","C#3","E3","A3"],"8n").addMeasure({showNumber:!0}).completeRests(0).addNote(1,["B2","D3","F#3","B3"],"8n").addNote(1,["F#2","A2","C#3","F#3"],"8n").addMeasure().completeRests(0).addNote(1,["G2","B2","D3","G3"],"8n").addNote(1,["D2","F#2","A2","D3"],"8n").addMeasure({showNumber:!0}).completeRests(0).addNote(1,["G2","B2","D3","G3"],"8n").addNote(1,["A2","C#3","E3","A3"],"8n").addMeasure().addNote(0,["F#5","E5"],"2n").addNote(1,["D3","F#3","A3","D4"],"8n").addNote(1,["A2","C#3","E3","A3"],"8n").endRow().addMeasure({showNumber:!0}).addNote(0,["D5","C#5"],"2n").addNote(1,["B2","D3","F#3","B3"],"8n").addNote(1,["F#2","A2","C#3","F#3"],"8n").addMeasure().addNote(0,["B4","A4"],"2n").addNote(1,["G2","B2","D3","G3"],"8n").addNote(1,["D2","F#2","A2","D3"],"8n").addMeasure({showNumber:!0}).addNote(0,["B4","C#5"],"2n").addNote(1,["G2","B2","D3","G3"],"8n").addNote(1,["A2","C#3","E3","A3"],"8n").addMeasure().addChord(0,["F#5","D5"],"2n").addChord(0,["E5","C#5"],"2n").addNote(1,["D3","F#3","A3","D4"],"8n").addNote(1,["A2","C#3","E3","A3"],"8n").addMeasure({showNumber:!0}).addChord(0,["D5","B4"],"2n").addChord(0,["C#5","A4"],"2n").addNote(1,["B2","D3","F#3","B3"],"8n").addNote(1,["F#2","A2","C#3","F#3"],"8n").endRow().addMeasure({showNumber:!1}).addChord(0,["B4","G4"],"2n").addChord(0,["A4","F#4"],"2n").addNote(1,["G2","B2","D3","G3"],"8n").addNote(1,["D2","F#2","A2","D3"],"8n").addMeasure({showNumber:!0}).addChord(0,["B4","G4"],"2n").addChord(0,["C#5","A4"],"2n").addNote(1,["G2","B2","D3","G3"],"8n").addNote(1,["A2","C#3","E3","A3"],"8n").addMeasure().addNote(0,["D4","F#4","A4","G4"],"4n").addNote(1,["D3","A2"],"2n").addMeasure({showNumber:!0}).addNote(0,["F#4","D4","F#4","E4"],"4n").addNote(1,["B2","F#2"],"2n").addMeasure().addNote(0,["D4","B3","D4","A4"],"4n").addNote(1,["G2","D2"],"2n").addMeasure({showNumber:!0}).addNote(0,["G4","B4","A4","G4"],"4n").addNote(1,["G2","A2"],"2n").addMeasure().addNote(0,["F#4","D4","E4","C#5"],"4n").addNote(1,["D3","A2"],"2n").endRow().addMeasure({showNumber:!0}).addNote(0,["D5","F#5","A5","A4"],"4n").addNote(1,["B2","F#2"],"2n").addMeasure().addNote(0,["B4","G4","A4","F#4"],"4n").addNote(1,["G2","D2"],"2n").addMeasure({showNumber:!0}).addNote(0,["D4","D5","C#5"],"4n").addRest(0,"4n").addNote(1,["G2","A2"],"2n").addMeasure().addNote(0,["D5","C#5","D5","D4"],"8n").addNote(0,["C#4","A4","E4","F#4"],"8n").addNote(1,["D3","A2"],"2n").addMeasure({showNumber:!0}).addNote(0,["D4","D5","C#5","B4"],"8n").addNote(0,["C#5","F#5","A5","B5"],"8n").addNote(1,["B2","F#2"],"2n").addMeasure().addNote(0,["G5","F#5","E5","G5"],"8n").addNote(0,["F#5","E5","D5","C#5"],"8n").addNote(1,["G2","D2"],"2n").endRow().addMeasure({showNumber:!0}).addNote(0,["B4","A4","G4","F#4"],"8n").addNote(0,["E4","G4","F#4","E4"],"8n").addNote(1,["G2","A2"],"2n").addMeasure().addNote(0,["D4","E4","F#4","G4"],"8n").addNote(0,["A4","E4","A4","G4"],"8n").addNote(1,["D3","A2"],"2n").addMeasure({showNumber:!0}).addNote(0,["F#4","B4","A4","G4"],"8n").addNote(0,["A4","G4","F#4","E4"],"8n").addNote(1,["B2","F#2"],"2n").addMeasure().addNote(0,["D4","B3","B4","C#5"],"8n").addNote(0,["D5","C#5","B4","A4"],"8n").addNote(1,["G2","D2"],"2n").addMeasure({showNumber:!0}).addNote(0,["G4","F#4","E4","B4"],"8n").addNote(0,["A4","B4","A4","G4"],"8n").addNote(1,["G2","A2"],"2n").endRow().addMeasure({showNumber:!1}).addNote(0,"F#4","4n").addNote(0,"F#5","4n").addNote(0,"E5","2n").addNote(1,["D3","A2"],"2n").addMeasure({showNumber:!0}).addRest(0,"4n",{staffPos:"B4"}).addNote(0,"D5","4n").addNote(0,"F#5","2n").addNote(1,["B2","F#2"],"2n").addMeasure().addNote(0,["B5","A5"],"2n").addNote(1,["G2","D2"],"2n").addMeasure({showNumber:!0}).addNote(0,["B5","C#6"],"2n").addNote(1,["G2","A2"],"2n").addMeasure().addNote(0,["D6","D5"],"4n").addNote(0,"C#5","2n").addNote(1,["D3","A2"],"2n").addMeasure({showNumber:!0}).addRest(0,"4n",{staffPos:"B4"}).addNote(0,"B4","4n").addNote(0,"D5","2n").addNote(1,["B2","F#2"],"2n").addMeasure().addNote(0,"D5","2n").addRest(0,"4n",{staffPos:"B4"}).addNote(0,"D5","4n").addNote(1,["G2","D2"],"2n").addMeasure({showNumber:!0}).addNote(0,["D5","F#5","E5","A5"],"4n").addNote(1,["G2","A2"],"2n").endRow().addMeasure({showNumber:!1}).addNote(0,"A5","8n").addNote(0,["F#5","G5"],"16n").addNote(0,"A5","8n").addNote(0,["F#5","G5"],"16n").addNote(0,["A5","A4","B4","C#5"],"16n").addNote(0,["D5","E5","F#5","G5"],"16n").addNote(1,["D3","A2"],"2n").addMeasure({showNumber:!0}).addNote(0,"F#5","8n").addNote(0,["D5","E5"],"16n").addNote(0,"F#5","8n").addNote(0,["F#4","G4"],"16n").addNote(0,["A4","B4","A4","G4"],"16n").addNote(0,["A4","F#4","G4","A4"],"16n").addNote(1,["B2","F#2"],"2n").addMeasure().addNote(0,"G4","8n").addNote(0,["B4","A4"],"16n").addNote(0,"G4","8n").addNote(0,["F#4","E4"],"16n").addNote(0,["F#4","E4","D4","E4"],"16n").addNote(0,["F#4","G4","A4","B4"],"16n").addNote(1,["G2","D2"],"2n").endRow().addMeasure({showNumber:!0}).addNote(0,"G4","8n").addNote(0,["B4","A4"],"16n").addNote(0,"B4","8n").addNote(0,["C#5","D5"],"16n").addNote(0,["A4","B4","C#5","D5"],"16n").addNote(0,["E5","F#5","G5","A5"],"16n").addNote(1,["G2","A2"],"2n").addMeasure().addNote(0,"F#5","8n").addNote(0,["D5","E5"],"16n").addNote(0,"F#5","8n").addNote(0,["E5","D5"],"16n").addNote(0,["E5","C#5","D5","E5"],"16n").addNote(0,["F#5","E5","D5","C#5"],"16n").addNote(1,["D3","A2"],"2n").addMeasure({showNumber:!0}).addNote(0,"D5","8n").addNote(0,["B4","C#5"],"16n").addNote(0,"D5","8n").addNote(0,["D4","E4"],"16n").addNote(0,["F#4","G4","F#4","E4"],"16n").addNote(0,["F#4","D5","C#5","D5"],"16n").addNote(1,["B2","F#2"],"2n").endRow().addMeasure({showNumber:!1}).addNote(0,"B4","8n").addNote(0,["D5","C#5"],"16n").addNote(0,"B4","8n").addNote(0,["A4","G4"],"16n").addNote(0,["A4","G4","F#4","G4"],"16n").addNote(0,["A4","B4","C#5","D5"],"16n").addNote(1,["G2","D2"],"2n").addMeasure({showNumber:!0}).addNote(0,"B4","8n").addNote(0,["D5","C#5"],"16n").addNote(0,"D5","8n").addNote(0,["C#5","B4"],"16n").addNote(0,["C#5","D5","E5","D5"],"16n").addNote(0,["C#5","D5","B4","C#5"],"16n").addNote(1,["G2","A2"],"2n").addMeasure().addNavigation("startRepeat").addNote(0,"D5","4.").addNote(0,"A5","8n").addNote(0,["A5","B5","A5","G5"],"8n").addNote(1,["D3","A2"],"2n").addMeasure({showNumber:!0}).addNote(0,"F#5","4.").addNote(0,"F#5","8n").addNote(0,["F#5","G5","F#5","E5"],"8n").addNote(1,["B2","F#2"],"2n").endRow().addMeasure({showNumber:!1}).addNote(0,"D5","4.").addNote(0,"D5","8n").addNote(0,["D5","A5"],"4n").addNote(1,["G2","D2"],"2n").addMeasure({showNumber:!0}).addNote(0,["D5","C5","B5","C5"],"8n").addNote(0,"C#5","2n").addNote(1,["G2","A2"],"2n").addNavigation("endRepeat").addMeasure().addNote(0,"D5","1n").addNote(1,"D3","1n").getDocument()}function Uh(){return new Ar().setHeader("Fr\xE8re Jacques","Traditional").setScoreConfiguration([{type:"staff",clef:"G",voiceId:0,instrument:"!{Piano"},{type:"staff",clef:"F",voiceId:1,instrument:"!{Piano"}]).setMeasuresPerRow(2).addMeasure().setKeySignature("D Major").setTimeSignature("4/4").addNote(0,"D4","4n",{stem:"up"}).addLyrics(1,"4n","Are").addNote(0,"E4","4n").addLyrics(1,"4n","you").addNote(0,"F#4","4n").addLyrics(1,"4n","sleep",{hyphen:"-"}).addNote(0,"D4","4n").addLyrics(1,"4n","ing?").addRest(1,"1n",{staffPos:"F3"}).addMeasure().addNote(0,"D4","4n").addLyrics(1,"4n","Are").addNote(0,"E4","4n").addLyrics(1,"4n","you").addNote(0,"F#4","4n").addLyrics(1,"4n","sleep",{hyphen:"-"}).addNote(0,"D4","4n").addLyrics(1,"4n","ing?").addRest(1,"1n",{staffPos:"F3"}).addMeasure().addNavigation("startRepeat").addNote(0,"F#4","4n").addLyrics(1,"4n","Bro",{hyphen:"-"}).addNote(0,"G4","4n").addLyrics(1,"4n","ther").addNote(0,"A4","2n").addLyrics(1,"4n","John?").addNote(1,"D3","4n",{stem:"down"}).addLyricsTo(1,1,"4n","Are").addNote(1,"E3","4n").addLyricsTo(1,1,"4n","you").addNote(1,"F#3","4n").addLyricsTo(1,1,"4n","sleep",{hyphen:"-"}).addNote(1,"D3","4n").addLyricsTo(1,1,"4n","ing?").addMeasure().addNote(0,"F#4","4n").addLyrics(1,"4n","Bro",{hyphen:"-"}).addNote(0,"G4","4n").addLyrics(1,"4n","ther").addNote(0,"A4","2n").addLyrics(1,"4n","John?").addNote(1,"D3","4n").addLyricsTo(1,1,"4n","Are").addNote(1,"E3","4n").addLyricsTo(1,1,"4n","you").addNote(1,"F#3","4n").addLyricsTo(1,1,"4n","sleep",{hyphen:"-"}).addNote(1,"D3","4n").addLyricsTo(1,1,"4n","ing?").addMeasure().addNote(0,"A4","8n").addLyrics(1,"8n","Morn",{hyphen:"-"}).addNote(0,"B4","8n").addLyrics(1,"8n","ing").addNote(0,"A4","8n").addLyrics(1,"8n","bells").addNote(0,"G4","8n").addLyrics(1,"8n","are").addNote(0,"F#4","4n").addLyrics(1,"4n","ring",{hyphen:"-"}).addNote(0,"D4","4n").addLyrics(1,"4n","ing!").addNote(1,"F#3","4n").addLyricsTo(1,1,"4n","Bro",{hyphen:"-"}).addNote(1,"G3","4n").addLyricsTo(1,1,"4n","ther").addNote(1,"A3","2n").addLyricsTo(1,1,"2n","John?").addMeasure().addNote(0,"A4","8n").addLyrics(1,"8n","Morn",{hyphen:"-"}).addNote(0,"B4","8n").addLyrics(1,"8n","ing").addNote(0,"A4","8n").addLyrics(1,"8n","bells").addNote(0,"G4","8n").addLyrics(1,"8n","are").addNote(0,"F#4","4n").addLyrics(1,"4n","ring",{hyphen:"-"}).addNote(0,"D4","4n").addLyrics(1,"4n","ing!").addNote(1,"F#3","4n").addLyricsTo(1,1,"4n","Bro",{hyphen:"-"}).addNote(1,"G3","4n").addLyricsTo(1,1,"4n","ther").addNote(1,"A3","2n").addLyricsTo(1,1,"2n","John?").addMeasure().addNote(0,"D4","4n").addLyrics(1,"4n","Ding").addChord(0,["C#4","A4"],"4n").addLyrics(1,"4n","ding").addNote(0,"D4","4n").addLyrics(1,"4n","dong!").addRest(0,"4n").addNote(1,"A3","8n").addLyricsTo(1,1,"8n","Morn",{hyphen:"-"}).addNote(1,"B3","8n").addLyricsTo(1,1,"8n","ing").addNote(1,"A3","8n").addLyricsTo(1,1,"8n","bells").addNote(1,"G3","8n").addLyricsTo(1,1,"8n","are").addNote(1,"F#3","4n").addLyricsTo(1,1,"4n","ring",{hyphen:"-"}).addNote(1,"D3","4n").addLyricsTo(1,1,"4n","ing!").addMeasure().addNote(0,"D4","4n").addLyrics(1,"4n","Ding").addChord(0,["C#4","A4"],"4n").addLyrics(1,"4n","ding").addNote(0,"D4","4n").addLyrics(1,"4n","dong!").addRest(0,"4n").addNote(1,"A3","8n").addLyricsTo(1,1,"8n","Morn",{hyphen:"-"}).addNote(1,"B3","8n").addLyricsTo(1,1,"8n","ing").addNote(1,"A3","8n").addLyricsTo(1,1,"8n","bells").addNote(1,"G3","8n").addLyricsTo(1,1,"8n","are").addNote(1,"F#3","4n").addLyricsTo(1,1,"4n","ring",{hyphen:"-"}).addNote(1,"D3","4n").addLyricsTo(1,1,"4n","ing!").addMeasure().setMeasuresPerRow(4).addNote(0,"D4","4n").addLyrics(1,"4n","Are").addNote(0,"E4","4n").addLyrics(1,"4n","you").addNote(0,"F#4","4n").addLyrics(1,"4n","sleep",{hyphen:"-"}).addNote(0,"D4","4n").addLyrics(1,"4n","ing?").addNote(1,"D3","4n").addLyricsTo(1,1,"4n","Ding").addChord(1,["C#3","A3"],"4n").addLyricsTo(1,1,"4n","ding").addNote(1,"D3","4n").addLyricsTo(1,1,"4n","dong!").addRest(1,"4n").addMeasure().addNavigation("endRepeat").addNote(0,"D4","4n").addLyrics(1,"4n","Are").addNote(0,"E4","4n").addLyrics(1,"4n","you").addNote(0,"F#4","4n").addLyrics(1,"4n","sleep",{hyphen:"-"}).addNote(0,"D4","4n").addLyrics(1,"4n","ing?").addNote(1,"D3","4n").addLyricsTo(1,1,"4n","Ding").addChord(1,["C#3","A3"],"4n").addLyricsTo(1,1,"4n","ding").addNote(1,"D3","4n").addLyricsTo(1,1,"4n","dong!").addRest(1,"4n").addMeasure().addNote(0,"F#4","4n").addLyrics(1,"4n","YES").addNote(0,"D4","4n").addLyrics(1,"4n","I'm").addNote(0,"F#4","4n").addLyrics(1,"4n","SLEEP",{hyphen:"-"}).addNote(0,"D4","4n").addLyrics(1,"4n","ING").addNote(1,"A3","4n").addNote(1,"F#3","4n").addNote(1,"A3","4n").addNote(1,"F#3","4n").addMeasure().addNote(0,"A3","4n").addLyrics(1,"4n","Please").addNote(0,"C#4","8n").addLyrics(1,"8n","GO").addNote(0,"C#4","8n").addLyrics(1,"8n","A",{hyphen:"-"}).addNote(0,"D4","2n").addLyrics(1,"4n","WAY!").addNote(1,"D3","4n").addNote(1,"E3","4n").addNote(1,"F#3","2n").getDocument()}function zh(){return new Ar().setScoreConfiguration("guitarTreble").setHeader("Greensleeves").addMeasure().setKeySignature("C","Major").setTimeSignature("6/8").setTempo(140).addNote(0,"A3","8n").addMeasure().addNavigation("startRepeat").addNote(0,"C4","4n",{stem:"up"}).addLabel("chord","Am").addNote(0,"D4","8n").addNote(0,"E4","8.").addNote(0,"F4","16n").addNote(0,"E4","8n").addNote(1,"A2","8n",{stem:"down"}).addNote(1,"E3","4n").addNote(1,"A2","8n").addNote(1,"E3","4n").addMeasure().addNote(0,"D4","4n",{stem:"up"}).addLabel("chord","G").addNote(0,"B3","8n").addNote(0,"G3","8.").addLabel("chord","Em").addNote(0,"A3","16n").addNote(0,"B3","8n").addNote(1,"G2","8n",{stem:"down"}).addNote(1,"D3","4n").addNote(1,"E2","8n").addNote(1,"B2","4n").addMeasure().addNote(0,"C4","4n",{stem:"up"}).addLabel("chord","Am").addNote(0,"A3","8n").addNote(0,"A3","8.").addLabel("chord","F").addNote(0,"G#3","16n").addNote(0,"A3","8n").addNote(1,"A2","8n",{stem:"down"}).addNote(1,"E3","4n").addNote(1,"F2","8n").addNote(1,"A2","4n").addMeasure().addNote(0,"B3","4n",{stem:"up"}).addLabel("chord","E").addNote(0,"G#3","8n").addNote(0,"E3","4n").addNote(0,"A3","8n").addNote(1,"E2","8n",{stem:"down"}).addNote(1,"B2","4n").addNote(1,"E2","8n").addNote(1,"B2","4n").endRow().addMeasure().addNote(0,"C4","4n",{stem:"up"}).addLabel("chord","Am").addNote(0,"D4","8n").addNote(0,"E4","8.").addNote(0,"F4","16n").addNote(0,"E4","8n").addNote(1,"A2","8n",{stem:"down"}).addNote(1,"E3","4n").addNote(1,"A2","8n").addNote(1,"E3","4n").addMeasure().addNote(0,"D4","4n",{stem:"up"}).addLabel("chord","G").addNote(0,"B3","8n").addNote(0,"G3","8.").addLabel("chord","Em").addNote(0,"A3","16n").addNote(0,"B3","8n").addNote(1,"G2","8n",{stem:"down"}).addNote(1,"D3","4n").addNote(1,"E2","8n").addNote(1,"B2","4n").addMeasure().addNote(0,"C4","8.",{stem:"up"}).addLabel("chord","Am").addNote(0,"B3","16n").addNote(0,"A3","8n").addNote(0,"G#3","8.").addLabel("chord","E").addNote(0,"F#3","16n").addNote(0,"G#3","8n").addNote(1,"A2","8n",{stem:"down"}).addNote(1,"E3","4n").addNote(1,"E2","8n").addNote(1,"B2","4n").addMeasure().addNote(0,"A3","4.",{stem:"up"}).addLabel("chord","Am").addNote(0,"A3","4.").addNote(1,"A2","8n",{stem:"down"}).addNote(1,"E3","8n").addNote(1,"C4","8n").addNote(1,"A2","4.").endRow().addMeasure().addChord(0,["C3","E3","G3","C4","G4"],"4.",{arpeggio:"up",stem:"up"}).addLabel("chord","C").addNote(0,"G4","8.").addNote(0,"F#4","16n").addNote(0,"E4","8n").addRest(1,"4.",{hide:!0}).addNote(1,"C3","8n",{stem:"down"}).addNote(1,"G3","4n").addMeasure().addNote(0,"D4","4n",{stem:"up"}).addLabel("chord","G").addNote(0,"B3","8n").addNote(0,"G3","8.").addLabel("chord","Em").addNote(0,"A3","16n").addNote(0,"B3","8n").addNote(1,"G2","8n",{stem:"down"}).addNote(1,"D3","4n").addNote(1,"E2","8n").addNote(1,"B2","4n").addMeasure().addNote(0,"C4","4n",{stem:"up"}).addLabel("chord","Am").addNote(0,"A3","8n").addNote(0,"A3","8.").addLabel("chord","F").addNote(0,"G#3","16n").addNote(0,"A3","8n").addNote(1,"A2","8n",{stem:"down"}).addNote(1,"E3","4n").addNote(1,"F2","8n").addNote(1,"A2","4n").addMeasure().addNote(0,"B3","4n",{stem:"up"}).addLabel("chord","E").addNote(0,"G#3","8n").addNote(0,"E3","4.").addNote(1,"E2","8n",{stem:"down"}).addNote(1,"B2","4n").addNote(1,"E2","8n").addNote(1,"B2","8n").addNote(1,"E3","8n").endRow().addMeasure().addNote(0,"G4","4.",{stem:"up"}).addLabel("chord","C").addNote(0,"G4","8.").addNote(0,"F#4","16n").addNote(0,"E4","8n").addNote(1,"C3","8n",{stem:"down"}).addNote(1,"G3","8n").addNote(1,"C4","8n").addNote(1,"C3","8n").addNote(1,"G3","4n").addMeasure().addNote(0,"D4","4n",{stem:"up"}).addLabel("chord","G").addNote(0,"B3","8n").addNote(0,"G3","8.").addLabel("chord","Em").addNote(0,"A3","16n").addNote(0,"B3","8n").addNote(1,"G2","8n",{stem:"down"}).addNote(1,"D3","4n").addNote(1,"E2","8n").addNote(1,"B2","4n").addMeasure().addNote(0,"C4","8.",{stem:"up"}).addLabel("chord","Am").addNote(0,"B3","16n").addNote(0,"A3","8n").addNote(0,"G#3","8.").addLabel("chord","E").addNote(0,"F#3","16n").addNote(0,"G#3","8n").addNote(1,"A2","8n",{stem:"down"}).addNote(1,"E3","4n").addNote(1,"E2","8n").addNote(1,"B2","4n").addMeasure().addNavigation("ending",1).addNavigation("endRepeat").addNote(0,"A3","4.",{stem:"up"}).addLabel("chord","Am").addNote(0,"A3","4n").addNote(0,"A3","8n").addNote(1,"A2","8n",{stem:"down"}).addNote(1,"E3","8n").addNote(1,"C4","8n").addNote(1,"A2","4.").addMeasure().addNavigation("ending",2).addNote(0,"A3","4.",{stem:"up"}).addLabel("chord","Am").addNote(0,"A3","4.").addFermata().addNote(1,"A2","8n",{stem:"down"}).addNote(1,"E3","8n").addNote(1,"C4","8n").addNote(1,"A2","4.").getDocument()}function l0(){return[qh(),Wh(),Uh(),zh()]}return Sg(d0);})();
211
291
  /*! Bundled license information:
212
292
 
213
293
  @tspro/ts-utils-lib/dist/index.mjs:
@@ -225,4 +305,4 @@ tone/build/esm/core/Tone.js:
225
305
  * @copyright 2014-2024 Yotam Mann
226
306
  *)
227
307
  */
228
- //# sourceMappingURL=index.global.js.map
308
+ //# sourceMappingURL=index.js.map