@marmooo/midy 0.0.3 → 0.0.5

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.
Files changed (33) hide show
  1. package/esm/deps/cdn.jsdelivr.net/npm/@marmooo/{soundfont-parser@0.0.1 → soundfont-parser@0.0.2}/+esm.d.ts +13 -6
  2. package/esm/deps/cdn.jsdelivr.net/npm/@marmooo/soundfont-parser@0.0.2/+esm.d.ts.map +1 -0
  3. package/esm/deps/cdn.jsdelivr.net/npm/@marmooo/{soundfont-parser@0.0.1 → soundfont-parser@0.0.2}/+esm.js +5 -5
  4. package/esm/midy-GM1.d.ts +27 -36
  5. package/esm/midy-GM1.d.ts.map +1 -1
  6. package/esm/midy-GM1.js +199 -135
  7. package/esm/midy-GM2.d.ts +51 -35
  8. package/esm/midy-GM2.d.ts.map +1 -1
  9. package/esm/midy-GM2.js +234 -141
  10. package/esm/midy-GMLite.d.ts +25 -36
  11. package/esm/midy-GMLite.d.ts.map +1 -1
  12. package/esm/midy-GMLite.js +187 -135
  13. package/esm/midy.d.ts +68 -24
  14. package/esm/midy.d.ts.map +1 -1
  15. package/esm/midy.js +274 -141
  16. package/package.json +1 -1
  17. package/script/deps/cdn.jsdelivr.net/npm/@marmooo/{soundfont-parser@0.0.1 → soundfont-parser@0.0.2}/+esm.d.ts +13 -6
  18. package/script/deps/cdn.jsdelivr.net/npm/@marmooo/soundfont-parser@0.0.2/+esm.d.ts.map +1 -0
  19. package/script/deps/cdn.jsdelivr.net/npm/@marmooo/{soundfont-parser@0.0.1 → soundfont-parser@0.0.2}/+esm.js +5 -5
  20. package/script/midy-GM1.d.ts +27 -36
  21. package/script/midy-GM1.d.ts.map +1 -1
  22. package/script/midy-GM1.js +199 -135
  23. package/script/midy-GM2.d.ts +51 -35
  24. package/script/midy-GM2.d.ts.map +1 -1
  25. package/script/midy-GM2.js +234 -141
  26. package/script/midy-GMLite.d.ts +25 -36
  27. package/script/midy-GMLite.d.ts.map +1 -1
  28. package/script/midy-GMLite.js +187 -135
  29. package/script/midy.d.ts +68 -24
  30. package/script/midy.d.ts.map +1 -1
  31. package/script/midy.js +274 -141
  32. package/esm/deps/cdn.jsdelivr.net/npm/@marmooo/soundfont-parser@0.0.1/+esm.d.ts.map +0 -1
  33. package/script/deps/cdn.jsdelivr.net/npm/@marmooo/soundfont-parser@0.0.1/+esm.d.ts.map +0 -1
@@ -12,7 +12,14 @@ declare class F {
12
12
  sampleName: any;
13
13
  sampleModes: number;
14
14
  playbackRate: (e: any) => number;
15
+ modLfoToPitch: number;
16
+ vibLfoToPitch: number;
15
17
  modEnvToPitch: number;
18
+ initialFilterFc: number;
19
+ initialFilterQ: number;
20
+ modLfoToFilterFc: number;
21
+ modEnvToFilterFc: number;
22
+ modLfoToVolume: number;
16
23
  scaleTuning: number;
17
24
  start: number;
18
25
  end: number;
@@ -32,12 +39,12 @@ declare class F {
32
39
  modRelease: number;
33
40
  keyRange: d;
34
41
  velRange: d;
35
- initialFilterFc: number;
36
- modEnvToFilterFc: number;
37
- initialFilterQ: number;
42
+ delayModLFO: number;
43
+ freqModLFO: number;
44
+ delayVibLFO: number;
45
+ freqVibLFO: number;
38
46
  initialAttenuation: number;
39
- freqVibLFO: number | undefined;
40
- pan: undefined;
47
+ pan: number;
41
48
  } | null;
42
49
  getPresetNames(): {};
43
50
  }
@@ -95,7 +102,7 @@ declare namespace T {
95
102
  let initialFilterQ: number;
96
103
  let initialFilterFc: number;
97
104
  let sampleModes: number;
98
- let pan: undefined;
105
+ let pan: number;
99
106
  }
100
107
  declare function b(e: any, n?: {}): {
101
108
  samples: any;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"+esm.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/cdn.jsdelivr.net/npm/@marmooo/soundfont-parser@0.0.2/+esm.js"],"names":[],"mappings":";;AAMizX;IAAQ,oBAA2H;IAAd,YAAa;IAAC,qDAAoJ;IAAA,mCAAoP;IAAA,uCAAwQ;IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAAkqE;IAAA,qBAA0I;CAAC;AAAA,mCAAwC;AAA9oI,+BAA8F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAA98D;;;;;;;;;;;;;;;;EAA27B;AAAr4I;IAAqQ,wBAAwD;IAArT,4BAAyN;IAApB,QAAS;IAAC,QAAS;IAAC,oBAAoC;CAAyD;AAAllG;IAAwjC,gCAA8d;CAAC"}
@@ -6,7 +6,7 @@ exports.createGeneratorObject = I;
6
6
  exports.parse = b;
7
7
  /**
8
8
  * Bundled by jsDelivr using Rollup v2.79.2 and Terser v5.37.0.
9
- * Original file: /npm/@marmooo/soundfont-parser@0.0.1/esm/mod.js
9
+ * Original file: /npm/@marmooo/soundfont-parser@0.0.2/esm/mod.js
10
10
  *
11
11
  * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
12
12
  */
@@ -114,7 +114,7 @@ function I(e) { const t = {}; for (const r of e) {
114
114
  const e = r.type;
115
115
  void 0 !== e && (t[e] = r.value);
116
116
  } return t; }
117
- const T = { keynum: void 0, instrument: void 0, velocity: void 0, exclusiveClass: void 0, keyRange: new d(0, 127), velRange: new d(0, 127), sampleID: void 0, delayVolEnv: -12e3, attackVolEnv: -12e3, decayVolEnv: -12e3, holdVolEnv: -12e3, sustainVolEnv: 0, releaseVolEnv: -12e3, delayModEnv: -12e3, attackModEnv: -12e3, decayModEnv: -12e3, holdModEnv: -12e3, sustainModEnv: 0, releaseModEnv: -12e3, modEnvToPitch: 0, modEnvToFilterFc: 0, modLfoToFilterFc: 0, modLfoToPitch: 0, modLfoToVolume: 0, vibLfoToPitch: 0, chorusEffectsSend: 0, reverbEffectsSend: 0, delayModLFO: 0, freqModLFO: 0, delayVibLFO: 0, keynumToModEnvDecay: 0, keynumToModEnvHold: 0, keynumToVolEnvDecay: 0, keynumToVolEnvHold: 0, coarseTune: 0, fineTune: 0, scaleTuning: 100, freqVibLFO: 0, startAddrsOffset: 0, startAddrsCoarseOffset: 0, endAddrsOffset: 0, endAddrsCoarseOffset: 0, startloopAddrsOffset: 0, startloopAddrsCoarseOffset: 0, initialAttenuation: 0, endloopAddrsOffset: 0, endloopAddrsCoarseOffset: 0, overridingRootKey: void 0, initialFilterQ: 1, initialFilterFc: 13500, sampleModes: 0, pan: void 0 };
117
+ const T = { keynum: void 0, instrument: void 0, velocity: void 0, exclusiveClass: void 0, keyRange: new d(0, 127), velRange: new d(0, 127), sampleID: void 0, delayVolEnv: -12e3, attackVolEnv: -12e3, decayVolEnv: -12e3, holdVolEnv: -12e3, sustainVolEnv: 0, releaseVolEnv: -12e3, delayModEnv: -12e3, attackModEnv: -12e3, decayModEnv: -12e3, holdModEnv: -12e3, sustainModEnv: 0, releaseModEnv: -12e3, modEnvToPitch: 0, modEnvToFilterFc: 0, modLfoToFilterFc: 0, modLfoToPitch: 0, modLfoToVolume: 0, vibLfoToPitch: 0, chorusEffectsSend: 0, reverbEffectsSend: 0, delayModLFO: 0, freqModLFO: 0, delayVibLFO: 0, keynumToModEnvDecay: 0, keynumToModEnvHold: 0, keynumToVolEnvDecay: 0, keynumToVolEnvHold: 0, coarseTune: 0, fineTune: 0, scaleTuning: 100, freqVibLFO: 0, startAddrsOffset: 0, startAddrsCoarseOffset: 0, endAddrsOffset: 0, endAddrsCoarseOffset: 0, startloopAddrsOffset: 0, startloopAddrsCoarseOffset: 0, initialAttenuation: 0, endloopAddrsOffset: 0, endloopAddrsCoarseOffset: 0, overridingRootKey: void 0, initialFilterQ: 1, initialFilterFc: 13500, sampleModes: 0, pan: 0 };
118
118
  exports.defaultInstrumentZone = T;
119
119
  class F {
120
120
  constructor(e) { Object.defineProperty(this, "parsed", { enumerable: !0, configurable: !0, writable: !0, value: void 0 }), this.parsed = e; }
@@ -151,12 +151,12 @@ class F {
151
151
  break;
152
152
  } if (!l)
153
153
  return console.warn("instrument not found: bank=%s instrument=%s", e, t), null; if (void 0 === l.sampleID)
154
- throw new Error("Invalid SoundFont: sampleID not found"); const d = { ...T, ...A(o || {}), ...A(s || {}), ...A(l) }, u = this.parsed.samples[d.sampleID], c = this.parsed.sampleHeaders[d.sampleID], f = d.coarseTune + d.fineTune / 100 + c.pitchCorrection / 100 - (d.overridingRootKey || c.originalPitch), p = d.scaleTuning / 100; return { sample: u, sampleRate: c.sampleRate, sampleName: c.sampleName, sampleModes: d.sampleModes, playbackRate: e => Math.pow(Math.pow(2, 1 / 12), (e + f) * p), modEnvToPitch: d.modEnvToPitch / 100, scaleTuning: p, start: 32768 * d.startAddrsCoarseOffset + d.startAddrsOffset, end: 32768 * d.endAddrsCoarseOffset + d.endAddrsOffset, loopStart: c.loopStart + 32768 * d.startloopAddrsCoarseOffset + d.startloopAddrsOffset, loopEnd: c.loopEnd + 32768 * d.endloopAddrsCoarseOffset + d.endloopAddrsOffset, volDelay: M(d.delayVolEnv), volAttack: M(d.attackVolEnv), volHold: M(d.holdVolEnv), volDecay: M(d.decayVolEnv), volSustain: d.sustainVolEnv / 1e3, volRelease: M(d.releaseVolEnv), modDelay: M(d.delayModEnv), modAttack: M(d.attackModEnv), modHold: M(d.holdModEnv), modDecay: M(d.decayModEnv), modSustain: d.sustainModEnv / 1e3, modRelease: M(d.releaseModEnv), keyRange: d.keyRange, velRange: d.velRange, initialFilterFc: d.initialFilterFc, modEnvToFilterFc: d.modEnvToFilterFc, initialFilterQ: d.initialFilterQ, initialAttenuation: d.initialAttenuation, freqVibLFO: d.freqVibLFO ? 8.176 * M(d.freqVibLFO) : void 0, pan: d.pan }; }
154
+ throw new Error("Invalid SoundFont: sampleID not found"); const d = { ...T, ...L(o || {}), ...L(s || {}), ...L(l) }, u = this.parsed.samples[d.sampleID], c = this.parsed.sampleHeaders[d.sampleID], f = d.coarseTune + d.fineTune / 100 + c.pitchCorrection / 100 - (d.overridingRootKey || c.originalPitch), p = d.scaleTuning / 100; return { sample: u, sampleRate: c.sampleRate, sampleName: c.sampleName, sampleModes: d.sampleModes, playbackRate: e => Math.pow(Math.pow(2, 1 / 12), (e + f) * p), modLfoToPitch: d.modLfoToPitch, vibLfoToPitch: d.vibLfoToPitch, modEnvToPitch: d.modEnvToPitch, initialFilterFc: d.initialFilterFc, initialFilterQ: d.initialFilterQ, modLfoToFilterFc: d.modLfoToFilterFc, modEnvToFilterFc: d.modEnvToFilterFc, modLfoToVolume: d.modLfoToVolume, scaleTuning: p, start: 32768 * d.startAddrsCoarseOffset + d.startAddrsOffset, end: 32768 * d.endAddrsCoarseOffset + d.endAddrsOffset, loopStart: c.loopStart + 32768 * d.startloopAddrsCoarseOffset + d.startloopAddrsOffset, loopEnd: c.loopEnd + 32768 * d.endloopAddrsCoarseOffset + d.endloopAddrsOffset, volDelay: M(d.delayVolEnv), volAttack: M(d.attackVolEnv), volHold: M(d.holdVolEnv), volDecay: M(d.decayVolEnv), volSustain: d.sustainVolEnv / 1e3, volRelease: M(d.releaseVolEnv), modDelay: M(d.delayModEnv), modAttack: M(d.attackModEnv), modHold: M(d.holdModEnv), modDecay: M(d.decayModEnv), modSustain: d.sustainModEnv / 1e3, modRelease: M(d.releaseModEnv), keyRange: d.keyRange, velRange: d.velRange, delayModLFO: M(d.delayModLFO), freqModLFO: d.freqModLFO, delayVibLFO: M(d.delayVibLFO), freqVibLFO: d.freqVibLFO, initialAttenuation: d.initialAttenuation, pan: d.pan }; }
155
155
  getPresetNames() { const e = {}; return this.parsed.presetHeaders.forEach((t => { e[t.bank] || (e[t.bank] = {}), e[t.bank][t.preset] = t.presetName; })), e; }
156
156
  }
157
157
  exports.SoundFont = F;
158
158
  function M(e) { return Math.pow(2, e / 1200); }
159
- function A(e) { const t = {}; for (const r in e)
159
+ function L(e) { const t = {}; for (const r in e)
160
160
  void 0 !== e[r] && (t[r] = e[r]); return t; }
161
161
  exports.default = null;
162
- //# sourceMappingURL=/sm/f81f37edef0ee7c3c75f39a74df8b8e54ea144490d686e35430b76b426f1559d.map
162
+ //# sourceMappingURL=/sm/22d03ff23e99217677631c656a57eea14149d50ae4425cf6cd850760c3e93c1e.map
@@ -2,9 +2,6 @@ export class MidyGM1 {
2
2
  static channelSettings: {
3
3
  volume: number;
4
4
  pan: number;
5
- vibratoRate: number;
6
- vibratoDepth: number;
7
- vibratoDelay: number;
8
5
  bank: number;
9
6
  dataMSB: number;
10
7
  dataLSB: number;
@@ -44,12 +41,8 @@ export class MidyGM1 {
44
41
  masterGain: any;
45
42
  channels: {
46
43
  scheduledNotes: Map<any, any>;
47
- sostenutoNotes: Map<any, any>;
48
44
  gainNode: any;
49
45
  pannerNode: any;
50
- modulationEffect: {
51
- lfo: any;
52
- };
53
46
  expression: number;
54
47
  modulation: number;
55
48
  sustainPedal: boolean;
@@ -58,9 +51,6 @@ export class MidyGM1 {
58
51
  pitchBendRange: number;
59
52
  volume: number;
60
53
  pan: number;
61
- vibratoRate: number;
62
- vibratoDepth: number;
63
- vibratoDelay: number;
64
54
  bank: number;
65
55
  dataMSB: number;
66
56
  dataLSB: number;
@@ -77,18 +67,11 @@ export class MidyGM1 {
77
67
  setChannelAudioNodes(audioContext: any): {
78
68
  gainNode: any;
79
69
  pannerNode: any;
80
- modulationEffect: {
81
- lfo: any;
82
- };
83
70
  };
84
71
  createChannels(audioContext: any): {
85
72
  scheduledNotes: Map<any, any>;
86
- sostenutoNotes: Map<any, any>;
87
73
  gainNode: any;
88
74
  pannerNode: any;
89
- modulationEffect: {
90
- lfo: any;
91
- };
92
75
  expression: number;
93
76
  modulation: number;
94
77
  sustainPedal: boolean;
@@ -97,9 +80,6 @@ export class MidyGM1 {
97
80
  pitchBendRange: number;
98
81
  volume: number;
99
82
  pan: number;
100
- vibratoRate: number;
101
- vibratoDepth: number;
102
- vibratoDelay: number;
103
83
  bank: number;
104
84
  dataMSB: number;
105
85
  dataLSB: number;
@@ -109,8 +89,8 @@ export class MidyGM1 {
109
89
  coarseTuning: number;
110
90
  modulationDepthRange: number;
111
91
  }[];
112
- createNoteBuffer(noteInfo: any, isSF3: any): Promise<any>;
113
- createNoteBufferNode(noteInfo: any, isSF3: any): Promise<any>;
92
+ createNoteBuffer(instrumentKey: any, isSF3: any): Promise<any>;
93
+ createNoteBufferNode(instrumentKey: any, isSF3: any): Promise<any>;
114
94
  convertToFloat32Array(uint8Array: any): Float32Array;
115
95
  scheduleTimelineEvents(t: any, offset: any, queueIndex: any): Promise<any>;
116
96
  getQueueIndex(second: any): number;
@@ -129,30 +109,26 @@ export class MidyGM1 {
129
109
  seekTo(second: any): void;
130
110
  calcTotalTime(): number;
131
111
  currentTime(): number;
132
- getActiveNotes(channel: any): Map<any, any>;
133
- getActiveChannelNotes(scheduledNotes: any): any;
134
- createModulationEffect(audioContext: any): {
135
- lfo: any;
136
- };
112
+ getActiveNotes(channel: any, time: any): Map<any, any>;
113
+ getActiveNote(noteList: any, time: any): any;
137
114
  connectNoteEffects(channel: any, gainNode: any): void;
138
115
  cbToRatio(cb: any): number;
139
116
  centToHz(cent: any): number;
140
- createNoteAudioChain(channel: any, noteInfo: any, noteNumber: any, velocity: any, startTime: any, isSF3: any): Promise<{
141
- bufferSource: any;
142
- gainNode: any;
143
- filterNode: any;
144
- lfoGain: any;
145
- }>;
117
+ calcSemitoneOffset(channel: any): any;
118
+ calcPlaybackRate(instrumentKey: any, noteNumber: any, semitoneOffset: any): number;
119
+ setVolumeEnvelope(channel: any, note: any): void;
120
+ setFilterEnvelope(channel: any, note: any): void;
121
+ startModulation(channel: any, note: any, time: any): void;
122
+ createNote(channel: any, instrumentKey: any, noteNumber: any, velocity: any, startTime: any, isSF3: any): Promise<Note>;
146
123
  scheduleNoteOn(channelNumber: any, noteNumber: any, velocity: any, startTime: any): Promise<void>;
147
124
  noteOn(channelNumber: any, noteNumber: any, velocity: any): Promise<void>;
148
125
  scheduleNoteRelease(channelNumber: any, noteNumber: any, velocity: any, stopTime: any, stopPedal?: boolean): Promise<any> | undefined;
149
126
  releaseNote(channelNumber: any, noteNumber: any, velocity: any): Promise<any> | undefined;
150
127
  releaseSustainPedal(channelNumber: any, halfVelocity: any): any[];
151
128
  handleMIDIMessage(statusByte: any, data1: any, data2: any): void | any[] | Promise<any>;
152
- handlePolyphonicKeyPressure(channelNumber: any, noteNumber: any, pressure: any): void;
153
129
  handleProgramChange(channelNumber: any, program: any): void;
154
- handleChannelPressure(channelNumber: any, pressure: any): void;
155
- handlePitchBend(channelNumber: any, lsb: any, msb: any): void;
130
+ handlePitchBendMessage(channelNumber: any, lsb: any, msb: any): void;
131
+ handlePitchBend(channelNumber: any, pitchBend: any): void;
156
132
  handleControlChange(channelNumber: any, controller: any, value: any): void | any[];
157
133
  setModulation(channelNumber: any, modulation: any): void;
158
134
  setVolume(channelNumber: any, volume: any): void;
@@ -175,4 +151,19 @@ export class MidyGM1 {
175
151
  handleSysEx(data: any): void;
176
152
  scheduleTask(callback: any, startTime: any): Promise<any>;
177
153
  }
154
+ declare class Note {
155
+ constructor(noteNumber: any, velocity: any, startTime: any, instrumentKey: any);
156
+ bufferSource: any;
157
+ gainNode: any;
158
+ filterNode: any;
159
+ modLFO: any;
160
+ modLFOGain: any;
161
+ vibLFO: any;
162
+ vibLFOGain: any;
163
+ noteNumber: any;
164
+ velocity: any;
165
+ startTime: any;
166
+ instrumentKey: any;
167
+ }
168
+ export {};
178
169
  //# sourceMappingURL=midy-GM1.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"midy-GM1.d.ts","sourceRoot":"","sources":["../src/midy-GM1.js"],"names":[],"mappings":"AAMA;IAmBE;;;;;;;;;;;;;;MAcE;IAEF;;;;;;;MAOE;IAEF,+BAMC;IAjDD,qBAAmB;IACnB,kBAAc;IACd,0BAAwB;IACxB,kBAAc;IACd,mBAAiB;IACjB,kBAAc;IACd,mBAAe;IACf,kBAAgB;IAChB,sBAA2C;IAC3C,mBAAkB;IAClB,mBAAkB;IAClB,kBAAiB;IACjB,oBAAmB;IACnB,mBAAkB;IAClB,gBAAc;IACd,mBAAiB;IACjB,oBAAkB;IA4BhB,kBAAgC;IAChC,gBAA4C;IAE5C;;;;;;;;;;;;;;;;;;;;;;;;;;;QAAiD;IAInD,4BAMC;IAED,mCASC;IAED,gDAMC;IAED,sCASC;IAED;;;;;;MAgBC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;QAWC;IAED,0DAyBC;IAED,8DAUC;IAED,qDAOC;IAED,2EA4CC;IAED,mCAOC;IAED,0BA+CC;IAED,uDAEC;IAED,wDAEC;IAED;;;MAyEC;IAED,4BAsBC;IAED,uBAKC;IAED,aAGC;IAED,cAKC;IAED,wBAIC;IAED,0BAKC;IAED,wBAOC;IAED,sBAGC;IAED,4CASC;IAED,gDAKC;IAED;;MAOC;IAED,sDAEC;IAED,2BAEC;IAED,4BAEC;IAED;;;;;OA6EC;IAED,kGAuCC;IAED,0EAGC;IAED,sIA4CC;IAED,0FAGC;IAED,kEAeC;IAED,wFAqBC;IAED,sFAeC;IAED,4DAGC;IAED,+DAEC;IAED,8DAGC;IAED,mFA+BC;IAED,yDAIC;IAED,iDAIC;IAED,2CAMC;IAED,yDAIC;IAED,sCAKC;IAED,sDAMC;IAED,gDAEC;IAED,gDAEC;IAED,+DAoBC;IAED,uCAoBC;IAED,8CAEC;IAED,uCAoBC;IAED,4DAgBC;IAED,oBAQC;IAED,yDAaC;IAED,yCAGC;IAED,sCAIC;IAED,wCAEC;IAED,6BASC;IAED,0DAUC;CACF"}
1
+ {"version":3,"file":"midy-GM1.d.ts","sourceRoot":"","sources":["../src/midy-GM1.js"],"names":[],"mappings":"AAuBA;IAmBE;;;;;;;;;;;MAWE;IAEF;;;;;;;MAOE;IAEF,+BAMC;IA9CD,qBAAmB;IACnB,kBAAc;IACd,0BAAwB;IACxB,kBAAc;IACd,mBAAiB;IACjB,kBAAc;IACd,mBAAe;IACf,kBAAgB;IAChB,sBAA2C;IAC3C,mBAAkB;IAClB,mBAAkB;IAClB,kBAAiB;IACjB,oBAAmB;IACnB,mBAAkB;IAClB,gBAAc;IACd,mBAAiB;IACjB,oBAAkB;IAyBhB,kBAAgC;IAChC,gBAA4C;IAE5C;;;;;;;;;;;;;;;;;;;;QAAiD;IAInD,4BAMC;IAED,mCASC;IAED,gDAMC;IAED,sCASC;IAED;;;MAaC;IAED;;;;;;;;;;;;;;;;;;;;QAUC;IAED,+DAyBC;IAED,mEAWC;IAED,qDAOC;IAED,2EA+CC;IAED,mCAOC;IAED,0BA+CC;IAED,uDAEC;IAED,wDAEC;IAED;;;MAyEC;IAED,4BAsBC;IAED,uBAKC;IAED,aAGC;IAED,cAKC;IAED,wBAIC;IAED,0BAKC;IAED,wBAOC;IAED,sBAGC;IAED,uDASC;IAED,6CAQC;IAED,sDAEC;IAED,2BAEC;IAED,4BAEC;IAED,sCAGC;IAED,mFAGC;IAED,iDAmBC;IAED,iDAiCC;IAED,0DAmBC;IAED,wHA6BC;IAED,kGA6BC;IAED,0EAGC;IAED,sIAmDC;IAED,0FAGC;IAED,kEAeC;IAED,wFAiBC;IAED,4DAGC;IAED,qEAGC;IAED,0DAiBC;IAED,mFA+BC;IAED,yDAiBC;IAED,iDAIC;IAED,2CAMC;IAED,yDAIC;IAED,sCAKC;IAED,sDAMC;IAED,gDAEC;IAED,gDAEC;IAED,+DAoBC;IAED,uCAoBC;IAED,8CAEC;IAED,uCAoBC;IAED,4DAgBC;IAED,oBAQC;IAED,yDAaC;IAED,yCAGC;IAED,sCAQC;IAED,wCAEC;IAED,6BASC;IAED,0DAUC;CACF;AAv+BD;IASE,gFAKC;IAbD,kBAAa;IACb,cAAS;IACT,gBAAW;IACX,YAAO;IACP,gBAAW;IACX,YAAO;IACP,gBAAW;IAGT,gBAA4B;IAC5B,cAAwB;IACxB,eAA0B;IAC1B,mBAAkC;CAErC"}