@modplayjs/fmt-med 0.0.0-stage → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +39 -2
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +42 -0
- package/dist/index.js.map +1 -0
- package/dist/instr.d.ts +69 -0
- package/dist/instr.d.ts.map +1 -0
- package/dist/instr.js +453 -0
- package/dist/instr.js.map +1 -0
- package/dist/med2.d.ts +12 -0
- package/dist/med2.d.ts.map +1 -0
- package/dist/med2.js +240 -0
- package/dist/med2.js.map +1 -0
- package/dist/med3.d.ts +8 -0
- package/dist/med3.d.ts.map +1 -0
- package/dist/med3.js +464 -0
- package/dist/med3.js.map +1 -0
- package/dist/med4.d.ts +5 -0
- package/dist/med4.d.ts.map +1 -0
- package/dist/med4.js +813 -0
- package/dist/med4.js.map +1 -0
- package/dist/mmd1.d.ts +11 -0
- package/dist/mmd1.d.ts.map +1 -0
- package/dist/mmd1.js +496 -0
- package/dist/mmd1.js.map +1 -0
- package/dist/mmd3.d.ts +10 -0
- package/dist/mmd3.d.ts.map +1 -0
- package/dist/mmd3.js +440 -0
- package/dist/mmd3.js.map +1 -0
- package/dist/mmdCommon.d.ts +98 -0
- package/dist/mmdCommon.d.ts.map +1 -0
- package/dist/mmdCommon.js +395 -0
- package/dist/mmdCommon.js.map +1 -0
- package/dist/readevent.d.ts +6 -0
- package/dist/readevent.d.ts.map +1 -0
- package/dist/readevent.js +168 -0
- package/dist/readevent.js.map +1 -0
- package/package.json +47 -4
package/dist/med4.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"med4.js","sourceRoot":"","sources":["../src/med4.ts"],"names":[],"mappings":"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"}
|
package/dist/mmd1.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { LoadCtx, ModuleData } from '@modplayjs/core';
|
|
2
|
+
/** mmd1_test (mmd1_load.c:40-49) — signature check only; the title probe
|
|
3
|
+
* is folded into the registry test() contract. */
|
|
4
|
+
export declare function mmd1Test(bytes: Uint8Array): boolean;
|
|
5
|
+
/** Title read (mmd1_test :51-62 / mmd3_test :55-68): expdata->songname. */
|
|
6
|
+
export declare function mmdReadTitle(bytes: Uint8Array, start?: number): string;
|
|
7
|
+
/**
|
|
8
|
+
* mmd1_load (mmd1_load.c:68-628). Handles MMD0, MMD1 and MMDC (packed MMD0).
|
|
9
|
+
*/
|
|
10
|
+
export declare function mmd1Load(bytes: Uint8Array, ctx: LoadCtx): ModuleData;
|
|
11
|
+
//# sourceMappingURL=mmd1.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mmd1.d.ts","sourceRoot":"","sources":["../src/mmd1.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAIV,OAAO,EACP,UAAU,EAGX,MAAM,iBAAiB,CAAC;AAgCzB;mDACmD;AACnD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAInD;AAED,2EAA2E;AAC3E,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,SAAI,GAAG,MAAM,CAoBjE;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,GAAG,UAAU,CAscpE"}
|
package/dist/mmd1.js
ADDED
|
@@ -0,0 +1,496 @@
|
|
|
1
|
+
// SPDX-License-Identifier: BSD-3-Clause
|
|
2
|
+
// Copyright (c) 2026 Bitti09 — modplayjs contributors
|
|
3
|
+
// Ported from: libxmp src/loaders/mmd1_load.c (mmd1_test :40-65,
|
|
4
|
+
// mmd1_load :68-628). MMD0/MMD1/MMDC = MED 2.10 / OctaMED. Instrument
|
|
5
|
+
// loading lives in instr.ts (mmd_common.c port).
|
|
6
|
+
import { C4_NTSC_RATE, ParseError, Quirk, ReadEventType, } from '@modplayjs/core';
|
|
7
|
+
import { FLAG2_BMASK, FLAG2_BPM, FLAG_8CHANNEL, FLAG_STSLIDE, FLAG_VOLHEX, MMD_NUM_OCT, mmdSetBpm, mmdTrackerVersion, mmdXlatFx, readInstrExtArray, readInstrInfoArray, zeroExpData, zeroInstrExt, } from './mmdCommon.js';
|
|
8
|
+
import { mmdLoadInstrument, } from './instr.js';
|
|
9
|
+
/** XMP_MAX_KEYS — note clamp. */
|
|
10
|
+
const XMP_MAX_KEYS = 121;
|
|
11
|
+
/** mmd1_test (mmd1_load.c:40-49) — signature check only; the title probe
|
|
12
|
+
* is folded into the registry test() contract. */
|
|
13
|
+
export function mmd1Test(bytes) {
|
|
14
|
+
if (bytes.length < 4)
|
|
15
|
+
return false;
|
|
16
|
+
const id = String.fromCharCode(bytes[0], bytes[1], bytes[2], bytes[3]);
|
|
17
|
+
return id === 'MMD0' || id === 'MMD1' || id === 'MMDC';
|
|
18
|
+
}
|
|
19
|
+
/** Title read (mmd1_test :51-62 / mmd3_test :55-68): expdata->songname. */
|
|
20
|
+
export function mmdReadTitle(bytes, start = 0) {
|
|
21
|
+
if (bytes.length < 36)
|
|
22
|
+
return '';
|
|
23
|
+
const dv = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
|
|
24
|
+
const offset = dv.getUint32(32, false); // expdata_offset
|
|
25
|
+
if (offset) {
|
|
26
|
+
const p = start + offset + 44;
|
|
27
|
+
if (p + 8 > bytes.length)
|
|
28
|
+
return '';
|
|
29
|
+
const off2 = dv.getUint32(p, false);
|
|
30
|
+
const len = dv.getUint32(p + 4, false);
|
|
31
|
+
const q = start + off2;
|
|
32
|
+
if (q >= bytes.length)
|
|
33
|
+
return '';
|
|
34
|
+
let s = '';
|
|
35
|
+
for (let i = 0; i < len && q + i < bytes.length; i++) {
|
|
36
|
+
const c = bytes[q + i];
|
|
37
|
+
if (c === 0)
|
|
38
|
+
break;
|
|
39
|
+
s += String.fromCharCode(c);
|
|
40
|
+
}
|
|
41
|
+
return s;
|
|
42
|
+
}
|
|
43
|
+
return '';
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* mmd1_load (mmd1_load.c:68-628). Handles MMD0, MMD1 and MMDC (packed MMD0).
|
|
47
|
+
*/
|
|
48
|
+
export function mmd1Load(bytes, ctx) {
|
|
49
|
+
const start = 0;
|
|
50
|
+
let pos = start;
|
|
51
|
+
// hio_read8/16b/32b return all-ones on EOF (dataio.c read8/read16b/
|
|
52
|
+
// read32b error returns) — a truncated header must be seen as 0xffff...,
|
|
53
|
+
// not as zeros (load_mmd0_truncated.med).
|
|
54
|
+
const u8 = () => {
|
|
55
|
+
const v = pos < bytes.length ? bytes[pos] : 0xff;
|
|
56
|
+
pos++;
|
|
57
|
+
return v;
|
|
58
|
+
};
|
|
59
|
+
const s8 = () => ((u8() << 24) >> 24);
|
|
60
|
+
const u16 = () => {
|
|
61
|
+
if (pos + 2 > bytes.length) {
|
|
62
|
+
pos += 2;
|
|
63
|
+
return 0xffff;
|
|
64
|
+
}
|
|
65
|
+
const v = (bytes[pos] << 8) | bytes[pos + 1];
|
|
66
|
+
pos += 2;
|
|
67
|
+
return v;
|
|
68
|
+
};
|
|
69
|
+
const s16 = () => (u16() << 16) >> 16;
|
|
70
|
+
const u32 = () => {
|
|
71
|
+
if (pos + 4 > bytes.length) {
|
|
72
|
+
pos += 4;
|
|
73
|
+
return 0xffffffff;
|
|
74
|
+
}
|
|
75
|
+
const v = ((bytes[pos] << 24) | (bytes[pos + 1] << 16) |
|
|
76
|
+
(bytes[pos + 2] << 8) | bytes[pos + 3]) >>> 0;
|
|
77
|
+
pos += 4;
|
|
78
|
+
return v;
|
|
79
|
+
};
|
|
80
|
+
/** C `int` read of a 32-bit field (offset fields are signed ints). */
|
|
81
|
+
const s32 = () => u32() | 0;
|
|
82
|
+
const seek = (p) => {
|
|
83
|
+
// hio_seek fails (C: goto err) for negative targets; offsets are C
|
|
84
|
+
// `int`, so 0xffffffff is -1 (load_mmd0_truncated.med).
|
|
85
|
+
if (p < 0)
|
|
86
|
+
throw new ParseError('MED: seek error');
|
|
87
|
+
pos = p;
|
|
88
|
+
};
|
|
89
|
+
const skip = (n) => { pos += n; };
|
|
90
|
+
const raw = (n) => { const s = bytes.subarray(pos, pos + n); pos += n; return s; };
|
|
91
|
+
// ver = id[3] - '1' + 1; MMDC ("C" > "1") wraps to ver 0 + mmdc flag.
|
|
92
|
+
let ver = bytes[3] - '1'.charCodeAt(0) + 1;
|
|
93
|
+
let mmdc = 0;
|
|
94
|
+
if (ver > 1) {
|
|
95
|
+
ver = 0;
|
|
96
|
+
mmdc = 1;
|
|
97
|
+
}
|
|
98
|
+
// Header (mmd1_load.c:107-128).
|
|
99
|
+
seek(start + 4);
|
|
100
|
+
u32(); // modlen
|
|
101
|
+
const songOffset = s32();
|
|
102
|
+
skip(4); // psecnum + pseq
|
|
103
|
+
const blockarrOffset = s32();
|
|
104
|
+
u32(); // reserved
|
|
105
|
+
const smplarrOffset = s32();
|
|
106
|
+
u32(); // reserved2
|
|
107
|
+
const expdataOffset = s32();
|
|
108
|
+
u32(); // reserved3
|
|
109
|
+
skip(10); // pstate/pblock/pline/pseqnum/actplayline
|
|
110
|
+
u8(); // counter
|
|
111
|
+
u8(); // extra_songs
|
|
112
|
+
// Song structure (mmd1_load.c:133-173).
|
|
113
|
+
seek(start + songOffset);
|
|
114
|
+
const song = [];
|
|
115
|
+
for (let i = 0; i < 63; i++) {
|
|
116
|
+
song.push({
|
|
117
|
+
rep: u16(), replen: u16(), midich: u8(), midipreset: u8(),
|
|
118
|
+
svol: u8(), strans: s8(),
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
const numblocks = u16();
|
|
122
|
+
const songlen = u16();
|
|
123
|
+
// Sanity check.
|
|
124
|
+
if (numblocks > 255 || songlen > 256) {
|
|
125
|
+
throw new ParseError(`MED: unsupported block count (${numblocks}) or song length (${songlen})`);
|
|
126
|
+
}
|
|
127
|
+
const playseq = [];
|
|
128
|
+
for (let i = 0; i < 256; i++)
|
|
129
|
+
playseq.push(u8());
|
|
130
|
+
const deftempo = u16();
|
|
131
|
+
const playtransp = s8();
|
|
132
|
+
const flags = u8();
|
|
133
|
+
const flags2 = u8();
|
|
134
|
+
const tempo2 = u8();
|
|
135
|
+
const trkvol = [];
|
|
136
|
+
for (let i = 0; i < 16; i++)
|
|
137
|
+
trkvol.push(u8());
|
|
138
|
+
u8(); // mastervol
|
|
139
|
+
const numsamples = u8();
|
|
140
|
+
if (numsamples > 63) {
|
|
141
|
+
throw new ParseError(`MED: invalid instrument count ${numsamples}`);
|
|
142
|
+
}
|
|
143
|
+
// Convert header (mmd1_load.c:176-196).
|
|
144
|
+
let quirks = Quirk.RTONCE; /* FF1 */
|
|
145
|
+
const stslide = (flags & FLAG_STSLIDE) !== 0;
|
|
146
|
+
if (!stslide)
|
|
147
|
+
quirks |= Quirk.VSALL | Quirk.PBALL;
|
|
148
|
+
const hexvol = (flags & FLAG_VOLHEX) !== 0 ? 1 : 0;
|
|
149
|
+
const med8ch = (flags & FLAG_8CHANNEL) !== 0 ? 1 : 0;
|
|
150
|
+
const bpmOn = (flags2 & FLAG2_BPM) !== 0 ? 1 : 0;
|
|
151
|
+
const bpmlen = 1 + (flags2 & FLAG2_BMASK);
|
|
152
|
+
const { bpm, timeFactor } = mmdSetBpm(med8ch, deftempo, bpmOn, bpmlen);
|
|
153
|
+
const pat = numblocks;
|
|
154
|
+
const ins = numsamples;
|
|
155
|
+
const len = songlen;
|
|
156
|
+
const xxo = playseq.slice(0, len);
|
|
157
|
+
// Read smplarr (mmd1_load.c:201-216).
|
|
158
|
+
const smplarr = [];
|
|
159
|
+
seek(start + smplarrOffset);
|
|
160
|
+
for (let i = 0; i < ins; i++) {
|
|
161
|
+
if (pos >= bytes.length)
|
|
162
|
+
throw new ParseError(`MED: read error at smplarr pos ${i}`);
|
|
163
|
+
smplarr.push(s32());
|
|
164
|
+
}
|
|
165
|
+
// Sample count scan (mmd1_load.c:221-250).
|
|
166
|
+
let smp = 0;
|
|
167
|
+
for (let i = 0; i < ins; i++) {
|
|
168
|
+
if (smplarr[i] === 0)
|
|
169
|
+
continue;
|
|
170
|
+
seek(start + smplarr[i]);
|
|
171
|
+
u32(); // length
|
|
172
|
+
const type = s16();
|
|
173
|
+
if (type === -1 || type === -2) { // synth
|
|
174
|
+
skip(14);
|
|
175
|
+
const wforms = u16();
|
|
176
|
+
if (wforms > 256) {
|
|
177
|
+
throw new ParseError(`MED: invalid wform count at instrument ${i}`);
|
|
178
|
+
}
|
|
179
|
+
smp += wforms;
|
|
180
|
+
}
|
|
181
|
+
else if (type >= 1 && type <= 6) {
|
|
182
|
+
smp += MMD_NUM_OCT[type - 1];
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
smp++;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
// Sample count sanity (libxmp_init_instrument, loaders/common.c:46-52):
|
|
189
|
+
// an initial sample count above MAX_SAMPLES fails the load.
|
|
190
|
+
if (smp > 1024 /* MAX_SAMPLES */) {
|
|
191
|
+
throw new ParseError(`MED: too many samples (${smp})`);
|
|
192
|
+
}
|
|
193
|
+
// Expdata (mmd1_load.c:255-315).
|
|
194
|
+
const expdata = zeroExpData();
|
|
195
|
+
let expsmpOffset = 0;
|
|
196
|
+
let iinfoOffset = 0;
|
|
197
|
+
let annotxtOffset = 0;
|
|
198
|
+
let songnameOffset = 0;
|
|
199
|
+
let title = '';
|
|
200
|
+
let comment = '';
|
|
201
|
+
if (expdataOffset) {
|
|
202
|
+
seek(start + expdataOffset);
|
|
203
|
+
u32(); // nextmod
|
|
204
|
+
expsmpOffset = s32();
|
|
205
|
+
expdata.s_ext_entries = u16();
|
|
206
|
+
expdata.s_ext_entrsz = u16();
|
|
207
|
+
annotxtOffset = s32();
|
|
208
|
+
expdata.annolen = u32();
|
|
209
|
+
iinfoOffset = s32();
|
|
210
|
+
expdata.i_ext_entries = u16();
|
|
211
|
+
expdata.i_ext_entrsz = u16();
|
|
212
|
+
// Sanity check (mmd1_load.c:278-288).
|
|
213
|
+
if (expsmpOffset < 0 || annotxtOffset < 0 || expdata.annolen > 0x10000 || iinfoOffset < 0) {
|
|
214
|
+
throw new ParseError(`MED: invalid expdata (annotxt=0x${(annotxtOffset >>> 0).toString(16)} annolen=0x${expdata.annolen.toString(16)})`);
|
|
215
|
+
}
|
|
216
|
+
u32(); // jumpmask
|
|
217
|
+
u32(); // rgbtable
|
|
218
|
+
skip(4); // channelsplit
|
|
219
|
+
u32(); // n_info
|
|
220
|
+
songnameOffset = s32();
|
|
221
|
+
expdata.songnamelen = u32();
|
|
222
|
+
seek(start + songnameOffset);
|
|
223
|
+
let s = '';
|
|
224
|
+
for (let i = 0; i < expdata.songnamelen; i++) {
|
|
225
|
+
if (i >= 64)
|
|
226
|
+
break; // XMP_NAME_SIZE
|
|
227
|
+
const c = u8();
|
|
228
|
+
if (c === 0)
|
|
229
|
+
break;
|
|
230
|
+
s += String.fromCharCode(c);
|
|
231
|
+
}
|
|
232
|
+
title = s;
|
|
233
|
+
// Read annotation.
|
|
234
|
+
if (annotxtOffset !== 0 && expdata.annolen !== 0) {
|
|
235
|
+
seek(start + annotxtOffset);
|
|
236
|
+
const buf = raw(expdata.annolen);
|
|
237
|
+
let c = '';
|
|
238
|
+
for (let i = 0; i < buf.length; i++) {
|
|
239
|
+
const ch = buf[i];
|
|
240
|
+
if (ch === 0)
|
|
241
|
+
break;
|
|
242
|
+
c += String.fromCharCode(ch);
|
|
243
|
+
}
|
|
244
|
+
comment = c;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
// Read blockarr (mmd1_load.c:319-335).
|
|
248
|
+
const blockarr = [];
|
|
249
|
+
seek(start + blockarrOffset);
|
|
250
|
+
for (let i = 0; i < pat; i++) {
|
|
251
|
+
if (pos > bytes.length)
|
|
252
|
+
throw new ParseError(`MED: read error at blockarr pos ${i}`);
|
|
253
|
+
blockarr.push(u32());
|
|
254
|
+
}
|
|
255
|
+
// Scan patterns for channel count (mmd1_load.c:340-380).
|
|
256
|
+
let chn = 0;
|
|
257
|
+
for (let i = 0; i < pat; i++) {
|
|
258
|
+
if (blockarr[i] === 0)
|
|
259
|
+
continue;
|
|
260
|
+
seek(start + blockarr[i]);
|
|
261
|
+
let numtracks;
|
|
262
|
+
let lines;
|
|
263
|
+
if (ver > 0) {
|
|
264
|
+
numtracks = u16();
|
|
265
|
+
lines = u16();
|
|
266
|
+
}
|
|
267
|
+
else {
|
|
268
|
+
numtracks = u8();
|
|
269
|
+
lines = u8();
|
|
270
|
+
}
|
|
271
|
+
// Amiga OctaMED files have an upper bound of 3200 lines per block.
|
|
272
|
+
if (lines + 1 > 3200) {
|
|
273
|
+
throw new ParseError(`MED: invalid line count ${lines + 1} in block ${i}`);
|
|
274
|
+
}
|
|
275
|
+
if (numtracks > chn)
|
|
276
|
+
chn = numtracks;
|
|
277
|
+
}
|
|
278
|
+
// MMD0/MMD1 can't have more than 16 channels.
|
|
279
|
+
if (chn > Math.min(16, 64)) {
|
|
280
|
+
throw new ParseError(`MED: invalid channel count ${chn}`);
|
|
281
|
+
}
|
|
282
|
+
const { medver, type } = mmdTrackerVersion(ver, mmdc, med8ch, expdataOffset ? expdata : null);
|
|
283
|
+
// Patterns (mmd1_load.c:396-508).
|
|
284
|
+
const patterns = [];
|
|
285
|
+
for (let i = 0; i < pat; i++) {
|
|
286
|
+
if (blockarr[i] === 0) {
|
|
287
|
+
// Empty block pointer: libxmp leaves the pattern zero-filled.
|
|
288
|
+
const tracks = [];
|
|
289
|
+
for (let k = 0; k < chn; k++) {
|
|
290
|
+
const ev = [];
|
|
291
|
+
for (let j = 0; j < 64; j++)
|
|
292
|
+
ev.push({ note: 0, ins: 0, vol: 0, fxt: 0, fxp: 0, f2t: 0, f2p: 0 });
|
|
293
|
+
tracks.push({ rows: 64, event: ev });
|
|
294
|
+
}
|
|
295
|
+
patterns.push({ rows: 64, tracks });
|
|
296
|
+
continue;
|
|
297
|
+
}
|
|
298
|
+
seek(start + blockarr[i]);
|
|
299
|
+
let numtracks;
|
|
300
|
+
let lines;
|
|
301
|
+
if (ver > 0) {
|
|
302
|
+
numtracks = u16();
|
|
303
|
+
lines = u16();
|
|
304
|
+
u32(); // blockinfo pointer
|
|
305
|
+
}
|
|
306
|
+
else {
|
|
307
|
+
numtracks = u8();
|
|
308
|
+
lines = u8();
|
|
309
|
+
}
|
|
310
|
+
const rows = lines + 1;
|
|
311
|
+
const size = numtracks * rows * (ver ? 4 : 3);
|
|
312
|
+
// MMDC is just MMD0 with simple pattern packing (mmd1_load.c:427-452).
|
|
313
|
+
const patbuf = new Uint8Array(size);
|
|
314
|
+
if (mmdc) {
|
|
315
|
+
let j = 0;
|
|
316
|
+
while (j < size) {
|
|
317
|
+
const pack = u8();
|
|
318
|
+
if (pack & 0x80) {
|
|
319
|
+
// Run of 0.
|
|
320
|
+
j += 256 - pack;
|
|
321
|
+
continue;
|
|
322
|
+
}
|
|
323
|
+
// Uncompressed block.
|
|
324
|
+
let n = pack + 1;
|
|
325
|
+
if (n > size - j)
|
|
326
|
+
n = size - j;
|
|
327
|
+
patbuf.set(bytes.subarray(pos, pos + n), j);
|
|
328
|
+
pos += n;
|
|
329
|
+
j += n;
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
else {
|
|
333
|
+
if (pos + size > bytes.length) {
|
|
334
|
+
throw new ParseError(`MED: read error in block ${i}`);
|
|
335
|
+
}
|
|
336
|
+
patbuf.set(bytes.subarray(pos, pos + size));
|
|
337
|
+
pos += size;
|
|
338
|
+
}
|
|
339
|
+
const perTrack = [];
|
|
340
|
+
for (let k = 0; k < chn; k++) {
|
|
341
|
+
const evs = [];
|
|
342
|
+
for (let j = 0; j < rows; j++)
|
|
343
|
+
evs.push({ note: 0, ins: 0, vol: 0, fxt: 0, fxp: 0, f2t: 0, f2p: 0 });
|
|
344
|
+
perTrack.push(evs);
|
|
345
|
+
}
|
|
346
|
+
let p = 0;
|
|
347
|
+
if (ver > 0) { // MMD1
|
|
348
|
+
for (let j = 0; j < rows; j++) {
|
|
349
|
+
for (let k = 0; k < numtracks; k++) {
|
|
350
|
+
const e = { note: patbuf[p] & 0x7f, ins: 0, vol: 0, fxt: 0, fxp: 0, f2t: 0, f2p: 0 };
|
|
351
|
+
if (e.note)
|
|
352
|
+
e.note += 12 + playtransp;
|
|
353
|
+
if (e.note >= XMP_MAX_KEYS)
|
|
354
|
+
e.note = 0;
|
|
355
|
+
e.ins = patbuf[p + 1] & 0x3f;
|
|
356
|
+
e.fxt = patbuf[p + 2];
|
|
357
|
+
e.fxp = patbuf[p + 3];
|
|
358
|
+
mmdXlatFx(e, bpmOn, bpmlen, med8ch, hexvol);
|
|
359
|
+
perTrack[k][j] = e;
|
|
360
|
+
p += 4;
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
else { // MMD0
|
|
365
|
+
for (let j = 0; j < rows; j++) {
|
|
366
|
+
for (let k = 0; k < numtracks; k++) {
|
|
367
|
+
const e = { note: patbuf[p] & 0x3f, ins: 0, vol: 0, fxt: 0, fxp: 0, f2t: 0, f2p: 0 };
|
|
368
|
+
if (e.note)
|
|
369
|
+
e.note += 12 + playtransp;
|
|
370
|
+
if (e.note >= XMP_MAX_KEYS)
|
|
371
|
+
e.note = 0;
|
|
372
|
+
e.ins =
|
|
373
|
+
(patbuf[p + 1] >> 4) | ((patbuf[p] & 0x80) >> 3) |
|
|
374
|
+
((patbuf[p] & 0x40) >> 1);
|
|
375
|
+
e.fxt = patbuf[p + 1] & 0x0f;
|
|
376
|
+
e.fxp = patbuf[p + 2];
|
|
377
|
+
mmdXlatFx(e, bpmOn, bpmlen, med8ch, hexvol);
|
|
378
|
+
perTrack[k][j] = e;
|
|
379
|
+
p += 3;
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
const tracksArr = [];
|
|
384
|
+
for (let k = 0; k < chn; k++)
|
|
385
|
+
tracksArr.push({ rows, event: perTrack[k] });
|
|
386
|
+
patterns.push({ rows, tracks: tracksArr });
|
|
387
|
+
}
|
|
388
|
+
// Instruments (mmd1_load.c:519-611).
|
|
389
|
+
const instruments = [];
|
|
390
|
+
for (let i = 0; i < ins; i++) {
|
|
391
|
+
instruments.push({
|
|
392
|
+
name: '',
|
|
393
|
+
volume: 0x40,
|
|
394
|
+
nsm: 0,
|
|
395
|
+
rls: 0,
|
|
396
|
+
map: new Array(121).fill(0),
|
|
397
|
+
mapXpo: new Array(121).fill(0),
|
|
398
|
+
sub: [],
|
|
399
|
+
aei: { flags: 0, npt: 0, scl: 0, sus: 0, sue: 0, lps: 0, lpe: 0, x: [], y: [] },
|
|
400
|
+
fei: { flags: 0, npt: 0, scl: 0, sus: 0, sue: 0, lps: 0, lpe: 0, x: [], y: [] },
|
|
401
|
+
pei: { flags: 0, npt: 0, scl: 0, sus: 0, sue: 0, lps: 0, lpe: 0, x: [], y: [] },
|
|
402
|
+
});
|
|
403
|
+
}
|
|
404
|
+
// Instrument extras (InstrExt array).
|
|
405
|
+
const expSmp = new Array(ins);
|
|
406
|
+
for (let i = 0; i < ins; i++)
|
|
407
|
+
expSmp[i] = zeroInstrExt();
|
|
408
|
+
if (expsmpOffset) {
|
|
409
|
+
seek(start + expsmpOffset);
|
|
410
|
+
const list = readInstrExtArray((n) => { if (n)
|
|
411
|
+
skip(n); return u8(); }, () => u16(), () => u32(), (d) => skip(d), ins, expdata, false);
|
|
412
|
+
// hio_error(f) after each entry read (mmd1_load.c:553-556): reading past
|
|
413
|
+
// EOF fails the instrument-extras block.
|
|
414
|
+
if (pos > bytes.length)
|
|
415
|
+
throw new ParseError('MED: read error at expsmp');
|
|
416
|
+
for (let i = 0; i < list.length; i++)
|
|
417
|
+
expSmp[i] = list[i];
|
|
418
|
+
}
|
|
419
|
+
// Instrument names.
|
|
420
|
+
if (iinfoOffset) {
|
|
421
|
+
seek(start + iinfoOffset);
|
|
422
|
+
const names = readInstrInfoArray((n) => raw(n), (d) => skip(d), ins, expdata);
|
|
423
|
+
for (let i = 0; i < names.length && i < ins; i++) {
|
|
424
|
+
// libxmp_instrument_name (common.c:230-234) clamps to 31 chars.
|
|
425
|
+
instruments[i].name = names[i].slice(0, 31);
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
// Sample data — register through the load context (the store assigns
|
|
429
|
+
// the sample ids that sub.sid values reference).
|
|
430
|
+
const samples = new Array(smp);
|
|
431
|
+
const st = {
|
|
432
|
+
bytes, start, pos, ver, samples, instruments, expdata, expSmp, song,
|
|
433
|
+
};
|
|
434
|
+
let smpIdx = 0;
|
|
435
|
+
for (let i = 0; i < ins; i++) {
|
|
436
|
+
if (smplarr[i] === 0)
|
|
437
|
+
continue;
|
|
438
|
+
st.pos = start + smplarr[i];
|
|
439
|
+
smpIdx = mmdLoadInstrument(st, i, smpIdx);
|
|
440
|
+
}
|
|
441
|
+
void smpIdx;
|
|
442
|
+
for (const raw of samples) {
|
|
443
|
+
if (raw)
|
|
444
|
+
ctx.addSample(raw);
|
|
445
|
+
}
|
|
446
|
+
// Channel volumes + LRLR pans (mmd1_load.c:613-616). DEFPAN(x) with the
|
|
447
|
+
// context default defpan=100 is identity — but the pan VALUE here is the
|
|
448
|
+
// LRLR pattern through DEFPAN: 0x80 + (pattern - 0x80) with pattern 0/255
|
|
449
|
+
// (clamped by the shared load_helpers epilogue).
|
|
450
|
+
const channels = [];
|
|
451
|
+
for (let i = 0; i < chn; i++) {
|
|
452
|
+
const pattern = Math.floor((i + 1) / 2) % 2 * 0xff;
|
|
453
|
+
channels.push({
|
|
454
|
+
vol: trkvol[i] ?? 0,
|
|
455
|
+
pan: Math.min(255, Math.max(0, 0x80 + (pattern - 0x80))),
|
|
456
|
+
flg: 0,
|
|
457
|
+
});
|
|
458
|
+
}
|
|
459
|
+
const mod = {
|
|
460
|
+
title,
|
|
461
|
+
format: 'med',
|
|
462
|
+
comment,
|
|
463
|
+
chn,
|
|
464
|
+
pat,
|
|
465
|
+
ins,
|
|
466
|
+
len,
|
|
467
|
+
restart: 0,
|
|
468
|
+
xxo,
|
|
469
|
+
channels,
|
|
470
|
+
patterns,
|
|
471
|
+
instruments,
|
|
472
|
+
samples: samples.map((s) => s ?? { name: '', data: new Uint8Array(0), length: 0, loopStart: 0, loopEnd: 0, sustainStart: 0, sustainEnd: 0, finetune: 0, volume: 0, flags: 0, c5spd: 8363 }),
|
|
473
|
+
num_sequences: 0,
|
|
474
|
+
sequences: [],
|
|
475
|
+
speed: tempo2,
|
|
476
|
+
bpm,
|
|
477
|
+
volbase: 0x40,
|
|
478
|
+
gvolbase: 0x40,
|
|
479
|
+
gvol: 0x40,
|
|
480
|
+
quirks,
|
|
481
|
+
flowMode: 0,
|
|
482
|
+
readEventType: ReadEventType.MED,
|
|
483
|
+
periodType: 0,
|
|
484
|
+
defpan: 0x80,
|
|
485
|
+
time_factor: timeFactor,
|
|
486
|
+
rrate: 250,
|
|
487
|
+
c4rate: C4_NTSC_RATE,
|
|
488
|
+
compare_vblank: false,
|
|
489
|
+
tracker: type,
|
|
490
|
+
extras: { kind: 'med', trackerVersion: medver },
|
|
491
|
+
};
|
|
492
|
+
void ctx.sampleRate;
|
|
493
|
+
void ctx.outputRate;
|
|
494
|
+
return mod;
|
|
495
|
+
}
|
|
496
|
+
//# sourceMappingURL=mmd1.js.map
|
package/dist/mmd1.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mmd1.js","sourceRoot":"","sources":["../src/mmd1.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,sDAAsD;AACtD,iEAAiE;AACjE,sEAAsE;AACtE,iDAAiD;AAWjD,OAAO,EACL,YAAY,EACZ,UAAU,EACV,KAAK,EACL,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,WAAW,EACX,SAAS,EACT,aAAa,EACb,YAAY,EACZ,WAAW,EACX,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,SAAS,EACT,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EACX,YAAY,GAGb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,iBAAiB,GAElB,MAAM,YAAY,CAAC;AAEpB,iCAAiC;AACjC,MAAM,YAAY,GAAG,GAAG,CAAC;AAEzB;mDACmD;AACnD,MAAM,UAAU,QAAQ,CAAC,KAAiB;IACxC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACnC,MAAM,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,KAAK,CAAC,CAAC,CAAE,EAAE,KAAK,CAAC,CAAC,CAAE,EAAE,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;IAC3E,OAAO,EAAE,KAAK,MAAM,IAAI,EAAE,KAAK,MAAM,IAAI,EAAE,KAAK,MAAM,CAAC;AACzD,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,YAAY,CAAC,KAAiB,EAAE,KAAK,GAAG,CAAC;IACvD,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE;QAAE,OAAO,EAAE,CAAC;IACjC,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAC1E,MAAM,MAAM,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,iBAAiB;IACzD,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,CAAC,GAAG,KAAK,GAAG,MAAM,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACpC,MAAM,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;QACvC,MAAM,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QACjC,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrD,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC;YACxB,IAAI,CAAC,KAAK,CAAC;gBAAE,MAAM;YACnB,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAiB,EAAE,GAAY;IACtD,MAAM,KAAK,GAAG,CAAC,CAAC;IAChB,IAAI,GAAG,GAAG,KAAK,CAAC;IAChB,oEAAoE;IACpE,yEAAyE;IACzE,0CAA0C;IAC1C,MAAM,EAAE,GAAG,GAAG,EAAE;QACd,MAAM,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAClD,GAAG,EAAE,CAAC;QACN,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;IACF,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,GAAG,EAAE;QACf,IAAI,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAAC,GAAG,IAAI,CAAC,CAAC;YAAC,OAAO,MAAM,CAAC;QAAC,CAAC;QACxD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAE,CAAC;QAC/C,GAAG,IAAI,CAAC,CAAC;QACT,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;IACF,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;IACtC,MAAM,GAAG,GAAG,GAAG,EAAE;QACf,IAAI,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAAC,GAAG,IAAI,CAAC,CAAC;YAAC,OAAO,UAAU,CAAC;QAAC,CAAC;QAC5D,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAE,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAE,IAAI,EAAE,CAAC;YACtD,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAE,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC;QAClD,GAAG,IAAI,CAAC,CAAC;QACT,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;IACF,sEAAsE;IACtE,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC5B,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE;QACzB,mEAAmE;QACnE,wDAAwD;QACxD,IAAI,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,UAAU,CAAC,iBAAiB,CAAC,CAAC;QACnD,GAAG,GAAG,CAAC,CAAC;IACV,CAAC,CAAC;IACF,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3F,sEAAsE;IACtE,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAE,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC5C,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;QACZ,GAAG,GAAG,CAAC,CAAC;QACR,IAAI,GAAG,CAAC,CAAC;IACX,CAAC;IAED,gCAAgC;IAChC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAChB,GAAG,EAAE,CAAC,CAAC,SAAS;IAChB,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC;IACzB,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB;IAC1B,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC;IAC7B,GAAG,EAAE,CAAC,CAAC,WAAW;IAClB,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC;IAC5B,GAAG,EAAE,CAAC,CAAC,YAAY;IACnB,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC;IAC5B,GAAG,EAAE,CAAC,CAAC,YAAY;IACnB,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,0CAA0C;IACpD,EAAE,EAAE,CAAC,CAAC,UAAU;IAChB,EAAE,EAAE,CAAC,CAAC,cAAc;IAEpB,wCAAwC;IACxC,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC;IACzB,MAAM,IAAI,GAAgB,EAAE,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC;YACR,GAAG,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;YACzD,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;SACzB,CAAC,CAAC;IACL,CAAC;IACD,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC;IACxB,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC;IAEtB,gBAAgB;IAChB,IAAI,SAAS,GAAG,GAAG,IAAI,OAAO,GAAG,GAAG,EAAE,CAAC;QACrC,MAAM,IAAI,UAAU,CAAC,iCAAiC,SAAS,qBAAqB,OAAO,GAAG,CAAC,CAAC;IAClG,CAAC;IAED,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE;QAAE,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC;IACvB,MAAM,UAAU,GAAG,EAAE,EAAE,CAAC;IACxB,MAAM,KAAK,GAAG,EAAE,EAAE,CAAC;IACnB,MAAM,MAAM,GAAG,EAAE,EAAE,CAAC;IACpB,MAAM,MAAM,GAAG,EAAE,EAAE,CAAC;IACpB,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;QAAE,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/C,EAAE,EAAE,CAAC,CAAC,YAAY;IAClB,MAAM,UAAU,GAAG,EAAE,EAAE,CAAC;IAExB,IAAI,UAAU,GAAG,EAAE,EAAE,CAAC;QACpB,MAAM,IAAI,UAAU,CAAC,iCAAiC,UAAU,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,wCAAwC;IACxC,IAAI,MAAM,GAAW,KAAK,CAAC,MAAM,CAAC,CAAC,SAAS;IAC5C,MAAM,OAAO,GAAG,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAC7C,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAClD,MAAM,MAAM,GAAG,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC;IAE1C,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAEvE,MAAM,GAAG,GAAG,SAAS,CAAC;IACtB,MAAM,GAAG,GAAG,UAAU,CAAC;IACvB,MAAM,GAAG,GAAG,OAAO,CAAC;IACpB,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAElC,sCAAsC;IACtC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM;YAAE,MAAM,IAAI,UAAU,CAAC,kCAAkC,CAAC,EAAE,CAAC,CAAC;QACrF,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACtB,CAAC;IAED,2CAA2C;IAC3C,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;YAAE,SAAS;QAC/B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC;QAC1B,GAAG,EAAE,CAAC,CAAC,SAAS;QAChB,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC;QACnB,IAAI,IAAI,KAAK,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ;YACxC,IAAI,CAAC,EAAE,CAAC,CAAC;YACT,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC;YACrB,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;gBACjB,MAAM,IAAI,UAAU,CAAC,0CAA0C,CAAC,EAAE,CAAC,CAAC;YACtE,CAAC;YACD,GAAG,IAAI,MAAM,CAAC;QAChB,CAAC;aAAM,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;YAClC,GAAG,IAAI,WAAW,CAAC,IAAI,GAAG,CAAC,CAAE,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,GAAG,EAAE,CAAC;QACR,CAAC;IACH,CAAC;IAED,wEAAwE;IACxE,4DAA4D;IAC5D,IAAI,GAAG,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACjC,MAAM,IAAI,UAAU,CAAC,0BAA0B,GAAG,GAAG,CAAC,CAAC;IACzD,CAAC;IAED,iCAAiC;IACjC,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;IAC9B,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,aAAa,EAAE,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC;QAC5B,GAAG,EAAE,CAAC,CAAC,UAAU;QACjB,YAAY,GAAG,GAAG,EAAE,CAAC;QACrB,OAAO,CAAC,aAAa,GAAG,GAAG,EAAE,CAAC;QAC9B,OAAO,CAAC,YAAY,GAAG,GAAG,EAAE,CAAC;QAC7B,aAAa,GAAG,GAAG,EAAE,CAAC;QACtB,OAAO,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC;QACxB,WAAW,GAAG,GAAG,EAAE,CAAC;QACpB,OAAO,CAAC,aAAa,GAAG,GAAG,EAAE,CAAC;QAC9B,OAAO,CAAC,YAAY,GAAG,GAAG,EAAE,CAAC;QAE7B,sCAAsC;QACtC,IAAI,YAAY,GAAG,CAAC,IAAI,aAAa,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,GAAG,OAAO,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YAC1F,MAAM,IAAI,UAAU,CAAC,mCAAmC,CAAC,aAAa,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,cAAc,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QAC3I,CAAC;QAED,GAAG,EAAE,CAAC,CAAC,WAAW;QAClB,GAAG,EAAE,CAAC,CAAC,WAAW;QAClB,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe;QACxB,GAAG,EAAE,CAAC,CAAC,SAAS;QAChB,cAAc,GAAG,GAAG,EAAE,CAAC;QACvB,OAAO,CAAC,WAAW,GAAG,GAAG,EAAE,CAAC;QAE5B,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC,CAAC;QAC7B,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,IAAI,CAAC,IAAI,EAAE;gBAAE,MAAM,CAAC,gBAAgB;YACpC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAC;gBAAE,MAAM;YACnB,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC;QACD,KAAK,GAAG,CAAC,CAAC;QAEV,mBAAmB;QACnB,IAAI,aAAa,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC;YAC5B,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACjC,IAAI,CAAC,GAAG,EAAE,CAAC;YACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAE,CAAC;gBACnB,IAAI,EAAE,KAAK,CAAC;oBAAE,MAAM;gBACpB,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YAC/B,CAAC;YACD,OAAO,GAAG,CAAC,CAAC;QACd,CAAC;IACH,CAAC;IAED,uCAAuC;IACvC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM;YAAE,MAAM,IAAI,UAAU,CAAC,mCAAmC,CAAC,EAAE,CAAC,CAAC;QACrF,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACvB,CAAC;IAED,yDAAyD;IACzD,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;YAAE,SAAS;QAChC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAC;QAC3B,IAAI,SAAiB,CAAC;QACtB,IAAI,KAAa,CAAC;QAClB,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACZ,SAAS,GAAG,GAAG,EAAE,CAAC;YAClB,KAAK,GAAG,GAAG,EAAE,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,SAAS,GAAG,EAAE,EAAE,CAAC;YACjB,KAAK,GAAG,EAAE,EAAE,CAAC;QACf,CAAC;QACD,mEAAmE;QACnE,IAAI,KAAK,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;YACrB,MAAM,IAAI,UAAU,CAAC,2BAA2B,KAAK,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAC7E,CAAC;QACD,IAAI,SAAS,GAAG,GAAG;YAAE,GAAG,GAAG,SAAS,CAAC;IACvC,CAAC;IAED,8CAA8C;IAC9C,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,UAAU,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAE9F,kCAAkC;IAClC,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YACtB,8DAA8D;YAC9D,MAAM,MAAM,GAAsB,EAAE,CAAC;YACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7B,MAAM,EAAE,GAAY,EAAE,CAAC;gBACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;oBAAE,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;gBAClG,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YACvC,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YACpC,SAAS;QACX,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAC;QAC3B,IAAI,SAAiB,CAAC;QACtB,IAAI,KAAa,CAAC;QAClB,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACZ,SAAS,GAAG,GAAG,EAAE,CAAC;YAClB,KAAK,GAAG,GAAG,EAAE,CAAC;YACd,GAAG,EAAE,CAAC,CAAC,oBAAoB;QAC7B,CAAC;aAAM,CAAC;YACN,SAAS,GAAG,EAAE,EAAE,CAAC;YACjB,KAAK,GAAG,EAAE,EAAE,CAAC;QACf,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC;QACvB,MAAM,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE9C,uEAAuE;QACvE,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC;gBAChB,MAAM,IAAI,GAAG,EAAE,EAAE,CAAC;gBAClB,IAAI,IAAI,GAAG,IAAI,EAAE,CAAC;oBAChB,YAAY;oBACZ,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC;oBAChB,SAAS;gBACX,CAAC;gBACD,sBAAsB;gBACtB,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;gBACjB,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC;oBAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;gBAC/B,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC5C,GAAG,IAAI,CAAC,CAAC;gBACT,CAAC,IAAI,CAAC,CAAC;YACT,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,GAAG,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC9B,MAAM,IAAI,UAAU,CAAC,4BAA4B,CAAC,EAAE,CAAC,CAAC;YACxD,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;YAC5C,GAAG,IAAI,IAAI,CAAC;QACd,CAAC;QAED,MAAM,QAAQ,GAAc,EAAE,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAY,EAAE,CAAC;YACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE;gBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACrG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO;YACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;oBACnC,MAAM,CAAC,GAAU,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAE,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;oBAC7F,IAAI,CAAC,CAAC,IAAI;wBAAE,CAAC,CAAC,IAAI,IAAI,EAAE,GAAG,UAAU,CAAC;oBACtC,IAAI,CAAC,CAAC,IAAI,IAAI,YAAY;wBAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;oBAEvC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAE,GAAG,IAAI,CAAC;oBAC9B,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC;oBACvB,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC;oBACvB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;oBAC5C,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACpB,CAAC,IAAI,CAAC,CAAC;gBACT,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC,CAAC,OAAO;YACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;oBACnC,MAAM,CAAC,GAAU,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAE,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;oBAC7F,IAAI,CAAC,CAAC,IAAI;wBAAE,CAAC,CAAC,IAAI,IAAI,EAAE,GAAG,UAAU,CAAC;oBACtC,IAAI,CAAC,CAAC,IAAI,IAAI,YAAY;wBAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;oBAEvC,CAAC,CAAC,GAAG;wBACH,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;4BAClD,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;oBAE7B,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAE,GAAG,IAAI,CAAC;oBAC9B,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC;oBACvB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;oBAC5C,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACpB,CAAC,IAAI,CAAC,CAAC;gBACT,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAsB,EAAE,CAAC;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE;YAAE,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC;QAC5E,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,qCAAqC;IACrC,MAAM,WAAW,GAAiB,EAAE,CAAC;IACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,WAAW,CAAC,IAAI,CAAC;YACf,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,IAAI;YACZ,GAAG,EAAE,CAAC;YACN,GAAG,EAAE,CAAC;YACN,GAAG,EAAE,IAAI,KAAK,CAAS,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACnC,MAAM,EAAE,IAAI,KAAK,CAAS,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACtC,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;YAC/E,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;YAC/E,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;SAChF,CAAC,CAAC;IACL,CAAC;IAED,sCAAsC;IACtC,MAAM,MAAM,GAAkB,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE;QAAE,MAAM,CAAC,CAAC,CAAC,GAAG,YAAY,EAAE,CAAC;IACzD,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,CAAC;QAC3B,MAAM,IAAI,GAAG,iBAAiB,CAC5B,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC;YAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,EACvC,GAAG,EAAE,CAAC,GAAG,EAAE,EACX,GAAG,EAAE,CAAC,GAAG,EAAE,EACX,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EACd,GAAG,EACH,OAAO,EACP,KAAK,CACN,CAAC;QACF,yEAAyE;QACzE,yCAAyC;QACzC,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM;YAAE,MAAM,IAAI,UAAU,CAAC,2BAA2B,CAAC,CAAC;QAC1E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;YAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;IAC7D,CAAC;IAED,oBAAoB;IACpB,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,CAAC;QAC1B,MAAM,KAAK,GAAG,kBAAkB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QAC9E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YACjD,gEAAgE;YAChE,WAAW,CAAC,CAAC,CAAE,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,qEAAqE;IACrE,iDAAiD;IACjD,MAAM,OAAO,GAAgB,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5C,MAAM,EAAE,GAAwB;QAC9B,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI;KACpE,CAAC;IACF,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;YAAE,SAAS;QAC/B,EAAE,CAAC,GAAG,GAAG,KAAK,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;QAC7B,MAAM,GAAG,iBAAiB,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IACD,KAAK,MAAM,CAAC;IACZ,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,GAAG;YAAE,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,wEAAwE;IACxE,yEAAyE;IACzE,0EAA0E;IAC1E,iDAAiD;IACjD,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QACnD,QAAQ,CAAC,IAAI,CAAC;YACZ,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;YACnB,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;YACxD,GAAG,EAAE,CAAC;SACP,CAAC,CAAC;IACL,CAAC;IAED,MAAM,GAAG,GAAe;QACtB,KAAK;QACL,MAAM,EAAE,KAAK;QACb,OAAO;QACP,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,OAAO,EAAE,CAAC;QACV,GAAG;QACH,QAAQ;QACR,QAAQ;QACR,WAAW;QACX,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC3L,aAAa,EAAE,CAAC;QAChB,SAAS,EAAE,EAAE;QACb,KAAK,EAAE,MAAM;QACb,GAAG;QACH,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,IAAI;QACV,MAAM;QACN,QAAQ,EAAE,CAAC;QACX,aAAa,EAAE,aAAa,CAAC,GAAG;QAChC,UAAU,EAAE,CAAC;QACb,MAAM,EAAE,IAAI;QACZ,WAAW,EAAE,UAAU;QACvB,KAAK,EAAE,GAAG;QACV,MAAM,EAAE,YAAY;QACpB,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE;KAChD,CAAC;IAEF,KAAK,GAAG,CAAC,UAAU,CAAC;IACpB,KAAK,GAAG,CAAC,UAAU,CAAC;IACpB,OAAO,GAAG,CAAC;AACb,CAAC"}
|
package/dist/mmd3.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { LoadCtx, ModuleData } from '@modplayjs/core';
|
|
2
|
+
/** mmd3_test (mmd3_load.c:48-72). */
|
|
3
|
+
export declare function mmd3Test(bytes: Uint8Array): boolean;
|
|
4
|
+
/** Title read shared with mmd1 (mmd3_test). */
|
|
5
|
+
export { mmdReadTitle } from './mmd1.js';
|
|
6
|
+
/**
|
|
7
|
+
* mmd3_load (mmd3_load.c:74-597).
|
|
8
|
+
*/
|
|
9
|
+
export declare function mmd3Load(bytes: Uint8Array, ctx: LoadCtx): ModuleData;
|
|
10
|
+
//# sourceMappingURL=mmd3.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mmd3.d.ts","sourceRoot":"","sources":["../src/mmd3.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAIV,OAAO,EACP,UAAU,EAGX,MAAM,iBAAiB,CAAC;AAgCzB,qCAAqC;AACrC,wBAAgB,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAInD;AAED,+CAA+C;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,GAAG,UAAU,CA4apE"}
|